
.pt{ padding:calc(var(--nav-h) + 32px) 0 64px; min-height:100vh; background:radial-gradient(70% 50% at 80% 0%,rgba(0,74,173,.25),transparent 70%),var(--ground) }
.pt-wrap{ max-width:1240px; margin:0 auto; padding:0 var(--pad) }
.pt-note{ max-width:1240px; margin:28px auto 0; padding:0 var(--pad); font-size:12.5px; color:var(--slate) }
.pt h1{ font-size:clamp(30px,3.6vw,48px); margin:0 0 6px }
.pt .sub{ color:var(--text-2); margin:0 0 24px; max-width:60ch }
.pt-top{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:22px }
.pt-who{ display:flex; align-items:center; gap:12px; padding:8px 12px 8px 8px; border:1px solid var(--line); border-radius:2px; background:rgba(1,20,58,.6) }
.pt-who i{ width:36px; height:36px; display:grid; place-items:center; background:var(--cobalt); color:#fff; font:600 14px var(--f-display); font-style:normal; border-radius:2px }
.pt-who b{ display:block; font-weight:500; font-size:14px } .pt-who span{ font-size:12px; color:var(--slate) }
.pt-who button{ background:none; border:0; color:var(--sky); font:500 11px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; cursor:pointer; margin-left:8px }
.pt-grid{ display:grid; gap:20px } @media (min-width:1000px){ .pt-grid{ grid-template-columns:1.6fr 1fr } }
.pt-card{ background:rgba(37,50,56,.55); border:1px solid var(--line); border-radius:4px; padding:22px }
.pt-card h2{ font-size:20px; margin:0 0 4px } .pt-card .k{ font:500 10.5px var(--f-mono); letter-spacing:.14em; text-transform:uppercase; color:var(--yellow) }
.pt-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:4px; overflow:hidden; margin-bottom:20px }
.pt-stats div{ background:var(--ground); padding:16px 18px } .pt-stats b{ display:block; font:700 30px/1 var(--f-display); color:var(--mist) } .pt-stats b.y{ color:var(--yellow) } .pt-stats span{ font:500 10.5px var(--f-mono); letter-spacing:.12em; text-transform:uppercase; color:var(--slate) }
.proj{ border:1px solid var(--line); border-radius:4px; background:rgba(1,20,58,.55); margin-bottom:12px; overflow:hidden }
.proj-h{ display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:16px 18px; cursor:pointer }
.proj-h h3{ font-size:18px; margin:0 } .proj-h p{ margin:3px 0 0; font-size:13px; color:var(--text-2) }
.proj-h .tag{ font:500 10px var(--f-mono); letter-spacing:.12em; text-transform:uppercase; color:var(--ice); border:1px solid var(--line-strong); padding:4px 7px; white-space:nowrap }
.track{ display:flex; gap:4px; padding:0 18px 14px }
.track i{ flex:1; height:4px; background:rgba(108,167,249,.18); border-radius:1px } .track i.b{ background:var(--sky) } .track i.d{ background:var(--yellow) }
.visits{ border-top:1px solid var(--line) }
.visit{ display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; padding:12px 18px; border-bottom:1px solid var(--line) }
.visit:last-child{ border-bottom:0 }
.visit .dt{ text-align:center; min-width:52px; padding:6px 4px; border:1px solid var(--line-strong); border-radius:2px } .visit .dt b{ display:block; font:700 20px/1 var(--f-display) } .visit .dt span{ font:500 9.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--sky) }
.visit .dt.tbc{ border-style:dashed } .visit .dt.tbc b{ font-size:12px; color:var(--slate) }
.visit h4{ font-size:15px; margin:0 } .visit p{ margin:2px 0 0; font-size:12.5px; color:var(--text-2) }
.visit .st{ font:500 10px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; padding:4px 7px; border-radius:2px; white-space:nowrap }
.st.req{ color:#0B1A2E; background:var(--yellow) } .st.ok{ color:#fff; background:var(--cobalt) } .st.tbc{ color:var(--ice); border:1px solid var(--line-strong) } .st.done{ color:var(--slate); border:1px solid var(--line) }
.visit .act{ display:flex; gap:6px } .visit .act button{ background:none; border:1px solid var(--line); color:var(--text-2); font:500 10px var(--f-mono); letter-spacing:.08em; text-transform:uppercase; padding:5px 7px; border-radius:2px; cursor:pointer } .visit .act button:hover{ color:var(--mist); border-color:var(--sky) }
.proj-f{ display:flex; gap:8px; flex-wrap:wrap; padding:12px 18px; background:rgba(0,74,173,.12) }
.empty{ text-align:center; padding:40px 20px; border:1px dashed var(--line-strong); border-radius:4px; color:var(--text-2) }

.wz{ display:grid; gap:20px } @media (min-width:1000px){ .wz{ grid-template-columns:1.5fr 1fr; align-items:start } }
.wz-steps{ display:flex; gap:0; margin-bottom:18px; border:1px solid var(--line); border-radius:2px; overflow:hidden }
.wz-steps span{ flex:1; padding:10px 12px; font:500 10.5px var(--f-mono); letter-spacing:.12em; text-transform:uppercase; color:var(--slate); background:var(--ground); border-right:1px solid var(--line); position:relative }
.wz-steps span:last-child{ border-right:0 } .wz-steps span.on{ color:var(--yellow); background:rgba(0,74,173,.3) } .wz-steps span.done{ color:var(--ice) }
.wz-steps span.on::after{ content:""; position:absolute; left:0; right:0; top:0; height:2px; background:var(--yellow) }
@media (max-width:600px){ .wz-steps span{ font-size:9px; padding:8px 6px; letter-spacing:.06em } }
.svc{ display:grid; gap:8px } @media (min-width:640px){ .svc{ grid-template-columns:1fr 1fr } }
.opt{ position:relative; display:block; cursor:pointer }
.opt input{ position:absolute; opacity:0 }
.opt > span{ display:block; padding:14px 16px; border:1px solid var(--line); border-radius:4px; background:rgba(1,26,64,.6); transition:border-color .2s,background .2s }
.opt b{ display:block; font-family:var(--f-display); font-weight:600; font-size:15.5px } .opt small{ display:block; font-size:12.5px; color:var(--text-2); margin-top:2px }
.opt em{ font-style:normal; font:500 10.5px var(--f-mono); color:var(--yellow); float:right }
.opt input:checked + span{ border-color:var(--yellow); background:rgba(0,74,173,.3); box-shadow:inset 0 2px 0 var(--yellow) }
.opt input:focus-visible + span{ outline:2px solid var(--surge); outline-offset:2px }
.stg-rows{ display:grid; gap:8px }
.stg-row{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center; padding:12px 14px; border:1px solid var(--line); border-radius:4px; background:rgba(1,26,64,.5) }
.stg-row.on{ border-color:rgba(242,203,7,.5); background:rgba(0,74,173,.2) }
.stg-row .chk{ width:22px; height:22px; accent-color:var(--yellow) }
.stg-row .nm b{ font-family:var(--f-display); font-weight:600; font-size:15px } .stg-row .nm small{ display:block; font-size:12px; color:var(--text-2) }
.stg-row .when{ grid-column:1/-1; display:none; gap:8px; grid-template-columns:1fr 1fr; padding-top:6px }
.stg-row.on .when{ display:grid }
.stg-row .when select,.stg-row .when input{ font:inherit; font-size:14px; color:var(--mist); background:rgba(1,26,64,.8); border:1px solid var(--line); border-radius:2px; min-height:42px; padding:6px 10px; width:100% }

.cal{ border:1px solid var(--line); border-radius:4px; overflow:hidden; background:rgba(1,20,58,.6) }
.cal-h{ display:flex; justify-content:space-between; align-items:center; padding:12px 14px; border-bottom:1px solid var(--line) }
.cal-h b{ font-family:var(--f-display); font-weight:600 } .cal-h button{ background:none; border:1px solid var(--line); color:var(--mist); width:36px; height:36px; border-radius:2px; cursor:pointer }
.cal-g{ display:grid; grid-template-columns:repeat(7,1fr); gap:1px; background:var(--line) }
.cal-g > *{ background:var(--ground); text-align:center; padding:8px 0; font-size:13px }
.cal-g .dw{ font:500 10px var(--f-mono); letter-spacing:.1em; color:var(--slate); text-transform:uppercase }
.cal-g button{ border:0; color:var(--mist); font:inherit; cursor:pointer; min-height:42px; position:relative }
.cal-g button:disabled{ color:#3c5563; cursor:default }
.cal-g button.av::after{ content:""; position:absolute; left:50%; bottom:6px; width:5px; height:5px; margin-left:-2.5px; background:var(--sky); border-radius:50% }
.cal-g button.lo::after{ background:var(--yellow) }
.cal-g button.sel{ background:var(--yellow); color:#0B1A2E; font-weight:600 } .cal-g button.sel::after{ background:#0B1A2E }
.cal-g button:not(:disabled):hover{ background:#022150 } .cal-g button.sel:hover{ background:var(--yellow) }
.slots{ display:flex; flex-wrap:wrap; gap:6px; padding:12px 14px; border-top:1px solid var(--line) }
.slots button{ font:500 12px var(--f-mono); color:var(--ice); background:transparent; border:1px solid var(--line-strong); padding:8px 10px; border-radius:2px; cursor:pointer } .slots button.sel{ background:var(--cobalt); color:#fff; border-color:var(--sky) }
.cal-k{ display:flex; gap:14px; padding:8px 14px 12px; font:500 10px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--slate) } .cal-k i{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--sky); margin-right:6px } .cal-k i.y{ background:var(--yellow) }
.sum{ position:sticky; top:calc(var(--nav-h) + 16px) }
.sum dl{ margin:12px 0 0; display:grid; grid-template-columns:auto 1fr; gap:6px 14px; font-size:13.5px } .sum dt{ color:var(--slate); font:500 10.5px var(--f-mono); letter-spacing:.1em; text-transform:uppercase; padding-top:2px } .sum dd{ margin:0; color:var(--mist) }
.sum .est{ margin-top:16px; padding-top:14px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:baseline } .sum .est b{ font:700 26px var(--f-display); color:var(--yellow) } .sum .est span{ font-size:12px; color:var(--text-2) }
.wz-nav{ display:flex; justify-content:space-between; gap:10px; margin-top:20px }

.auth{ display:grid; gap:28px; max-width:1040px } @media (min-width:900px){ .auth{ grid-template-columns:1fr 1fr; align-items:center } }
.auth ul{ margin:16px 0 0 }
.tabs2{ display:flex; border:1px solid var(--line); border-radius:2px; overflow:hidden; margin-bottom:16px } .tabs2 button{ flex:1; background:var(--ground); border:0; color:var(--text-2); padding:12px; font:600 14px var(--f-display); cursor:pointer } .tabs2 button.on{ background:var(--cobalt); color:#fff }
.modal{ position:fixed; inset:0; z-index:80; background:rgba(1,10,30,.72); backdrop-filter:blur(6px); display:none; place-items:center; padding:20px }
.modal.on{ display:grid } .modal .pt-card{ max-width:520px; width:100%; background:var(--ground-2,#022150); box-shadow:0 30px 80px -20px rgba(0,0,0,.6) }
