:root{--ink:#0f172a;--ink-2:#334155;--muted:#64748b;--muted-2:#94a3b8;--bg:#eef2f6;--surface:#fff;--surface-2:#f8fafc;--line:#e2e8f0;--line-2:#cbd5e1;--primary:#0b6e99;--primary-600:#095d82;--primary-50:#e6f3f8;--primary-100:#cce7f1;--accent:#0f766e;--ok:#16a34a;--ok-bg:#dcfce7;--ok-50:#f0fdf4;--warn:#d97706;--warn-bg:#fef3c7;--warn-50:#fffbeb;--risk:#dc2626;--risk-bg:#fee2e2;--risk-50:#fef2f2;--done:#2563eb;--done-bg:#dbeafe;--done-50:#eff6ff;--hold:#64748b;--hold-bg:#f1f5f9;--r-sm:6px;--r:10px;--r-lg:14px;--r-xl:18px;--sh-sm:0 1px 2px #0f172a0f,0 1px 1px #0f172a0a;--sh:0 1px 3px #0f172a14,0 4px 12px #0f172a0d;--sh-lg:0 8px 30px #0f172a1f;--ff:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--fnum:"SF Mono",ui-monospace,"Segoe UI",Roboto,sans-serif;--space:8px}*{box-sizing:border-box}html{font-size:15px}body{font-family:var(--ff);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:650;line-height:1.2}button{cursor:pointer;font-family:inherit}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--fnum)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:20px}::-webkit-scrollbar-track{background:0 0}.app{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{color:#cbd7e2;background:#0c2030;border-right:1px solid #11283b;flex-direction:column;height:100dvh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid #16344b;align-items:center;gap:11px;padding:20px 12px 16px 18px;display:flex}.brand .brand-text{flex:1;min-width:0}.brand .logo img,.auth-brand .logo img{object-fit:contain;border-radius:inherit;width:100%;height:100%;display:block}:is(.brand .logo:has(img),.auth-brand .logo:has(img)){box-sizing:border-box;background:#fff;padding:3px}.brand .logo{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border-radius:10px;flex:none;place-items:center;width:38px;height:38px;font-size:17px;font-weight:800;display:grid;box-shadow:0 4px 12px #0b6e9966}.brand .name{color:#fff;letter-spacing:-.01em;font-size:14.5px;font-weight:700}.brand .sub{color:#7f99ad;margin-top:1px;font-size:11px}.brand .wordmark{width:auto;height:15px;margin:4px 0;display:block}.auth-brand .wordmark{width:auto;height:17px;margin:0 0 3px;display:block}:is(.brand .logo:has(img[src*=keelstone]),.auth-brand .logo:has(img[src*=keelstone])){box-shadow:none;background:#fff}.nav{flex-direction:column;flex:auto;gap:2px;min-height:0;padding:12px 10px;display:flex;overflow-y:auto}.nav .group{text-transform:uppercase;letter-spacing:.08em;color:#647d92;padding:14px 12px 5px;font-size:10.5px;font-weight:700}.nav button,.nav a{color:#b8c7d4;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;width:100%;padding:9px 12px;font-size:13.5px;font-weight:550;transition:all .12s;display:flex}.nav button .ic,.nav a .ic{opacity:.85;flex:none;width:18px;height:18px}.nav button:hover,.nav a:hover{color:#fff;background:#13314660}.nav button.active,.nav a.active{color:#fff;box-shadow:var(--sh-sm);background:linear-gradient(90deg,#0b6e99,#0e5f86)}.nav button.active .ic,.nav a.active .ic{opacity:1}.nav .badge{color:#cfe0ec;background:#1c3c54;border-radius:20px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700}.nav button.active .badge,.nav a.active .badge{background:#ffffff2e}.sidebar .foot{border-top:1px solid #16344b;margin-top:auto;padding:10px;position:relative}.acct-row{color:#cbd7e2;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:8px 10px;transition:all .12s;display:flex}.acct-row:hover,.acct-row.open{background:#13314660;border-color:#1c3c54}.acct-avatar{border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:12.5px;font-weight:800;display:grid}.acct-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.acct-email{color:#e6eef5;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.acct-sub{align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.acct-chev{opacity:.7;flex:none;width:16px;height:16px}.env-chip{letter-spacing:.05em;border:1px solid #0000;border-radius:4px;padding:0 6px;font-size:9.5px;font-weight:800;line-height:16px;display:inline-block}.acct-menu{z-index:95;background:#122a3d;border:1px solid #1f4360;border-radius:12px;padding:6px;animation:.14s pop;position:absolute;bottom:calc(100% - 4px);left:10px;right:10px;box-shadow:0 14px 34px #00000073}.am-group{text-transform:uppercase;letter-spacing:.08em;color:#647d92;padding:8px 10px 3px;font-size:10px;font-weight:700}.am-item{color:#d6e1ea;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:13px;font-weight:550;transition:all .12s;display:flex}.am-item .ic{opacity:.85;width:16px;height:16px}.am-item:hover{color:#fff;background:#1a3a52}.am-item.danger{color:#fca5a5}.am-item.danger:hover{color:#fecaca;background:#4c1d1d}.am-sep{background:#1f4360;height:1px;margin:6px 4px}.am-meta{color:#7f99ad;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px 4px;font-size:10.5px;display:flex}.rail-toggle{color:#9db4c6;cursor:pointer;background:#13314660;border:1px solid #1c3c54;border-radius:7px;flex:none;place-items:center;width:28px;height:28px;transition:all .12s;display:grid}.rail-toggle:hover{background:var(--primary);border-color:var(--primary);color:#fff}.rail-toggle .ic{width:15px;height:15px}html[data-rail] .app{grid-template-columns:64px 1fr}.sidebar.rail .brand{flex-direction:column;gap:8px;padding:14px 8px 12px}.sidebar.rail .brand-text,.sidebar.rail .nav-label,.sidebar.rail .group span,.sidebar.rail .acct-text,.sidebar.rail .acct-chev{display:none}.sidebar.rail .nav{padding:10px 8px}.sidebar.rail .nav .group{background:#16344b;height:1px;margin:6px 8px;padding:6px 0 4px}.sidebar.rail .nav a{justify-content:center;padding:10px 0;position:relative}.sidebar.rail .nav .badge{text-align:center;min-width:15px;margin:0;padding:0 5px;font-size:9.5px;line-height:15px;position:absolute;top:3px;right:3px}.sidebar.rail .foot{padding:8px}.sidebar.rail .acct-row{justify-content:center;padding:6px}.sidebar.rail .acct-menu{width:236px;bottom:8px;left:calc(100% + 6px);right:auto}@media (max-width:920px){.rail-toggle{display:none}html[data-rail] .app{grid-template-columns:1fr}.sidebar.rail{width:248px}.sidebar.rail .brand-text,.sidebar.rail .nav-label,.sidebar.rail .group span,.sidebar.rail .acct-text,.sidebar.rail .acct-chev{display:initial}}.import-choice{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ic-card{text-align:left;border:1px solid var(--line-2);background:var(--surface);cursor:pointer;border-radius:11px;flex-direction:column;gap:6px;padding:14px;transition:all .12s;display:flex}.ic-card:hover{border-color:var(--primary);box-shadow:var(--sh-sm);background:var(--primary-50)}.ic-card-t{color:var(--ink);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.ic-card-t .ic{width:17px;height:17px;color:var(--primary);flex:none}.ic-card-s{color:var(--muted);font-size:12px;line-height:1.45}@media (max-width:560px){.import-choice{grid-template-columns:1fr}}.import-summary{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px;display:grid}.is-cell{border:1px solid var(--line);background:var(--surface-2);text-align:center;border-radius:11px;padding:14px}.is-n{color:var(--primary);font-size:26px;font-weight:800;line-height:1}.is-l{color:var(--muted);margin-top:5px;font-size:11.5px;font-weight:600}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#ffffffd9;align-items:center;gap:16px;padding:13px 26px;display:flex;position:sticky;top:0}.topbar .title{flex:1;min-width:0}.topbar .title h1{font-size:19px}.topbar .title p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.topbar .actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.btn{border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);white-space:nowrap;border-radius:9px;align-items:center;gap:7px;padding:8px 13px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.btn .ic{width:15px;height:15px}.btn:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--sh-sm)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-600);color:#fff;border-color:var(--primary-600)}.btn.ghost{background:0 0;border-color:#0000}.btn.sm{border-radius:7px;padding:5px 9px;font-size:12px}.btn.danger:hover{border-color:var(--risk);color:var(--risk)}.btn:focus-visible,.nav button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.tablewrap th button:focus-visible,[tabindex]:focus-visible{outline:2.5px solid var(--primary);outline-offset:2px}.view{padding:22px 26px 60px;animation:.25s fade;display:none}.view.active{display:block}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.section-h{align-items:center;gap:12px;margin:6px 0 14px;display:flex}.section-h h2{color:var(--ink);font-size:15px}.section-h .line{background:var(--line);flex:1;height:1px}.grid{gap:16px;display:grid}.kpis{grid-template-columns:repeat(4,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-2{grid-template-columns:repeat(2,1fr)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}.card .hd{flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px 0;display:flex}.card .hd h3{white-space:nowrap;color:var(--ink);font-size:13.5px}.card .hd .sub{color:var(--muted);font-size:11.5px;font-weight:500}.card .bd{padding:16px}.kpi{padding:15px 16px;position:relative;overflow:hidden}.kpi .lab{color:var(--muted);align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.kpi .val{letter-spacing:-.02em;margin-top:8px;font-size:30px;font-weight:750;line-height:1}.kpi .meta{color:var(--muted);align-items:center;gap:6px;margin-top:7px;font-size:12px;display:flex}.kpi .spark{opacity:.5;position:absolute;bottom:0;right:0}.kpi .ic-badge{border-radius:9px;flex:none;place-items:center;width:30px;height:30px;display:grid}.kpi .ic-badge .ic{width:17px;height:17px}.delta{font-size:12px;font-weight:700}.delta.up{color:var(--ok)}.delta.down{color:var(--risk)}.chip{white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:650;display:inline-flex}.chip .dot{border-radius:50%;width:7px;height:7px}.s-on-track{background:var(--ok-bg);color:#15803d}.s-on-track .dot{background:var(--ok)}.s-at-risk{background:var(--warn-bg);color:#b45309}.s-at-risk .dot{background:var(--warn)}.s-delayed{background:var(--risk-bg);color:#b91c1c}.s-delayed .dot{background:var(--risk)}.s-completed{background:var(--done-bg);color:#1d4ed8}.s-completed .dot{background:var(--done)}.s-on-hold{background:var(--hold-bg);color:#475569}.s-on-hold .dot{background:var(--hold)}.pri{border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.pri-Critical{background:var(--risk-bg);color:#b91c1c}.pri-High{background:var(--warn-bg);color:#b45309}.pri-Medium{background:var(--primary-50);color:var(--primary-600)}.pri-Low{background:var(--hold-bg);color:#475569}.tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden}.table-tools{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.search{flex:1;min-width:190px;position:relative}.search .ic{width:15px;height:15px;color:var(--muted);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search input{border:1px solid var(--line-2);background:var(--surface-2);border-radius:9px;width:100%;padding:8px 11px 8px 33px;font-size:13px}select.flt,input.flt{border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink-2);border-radius:9px;padding:8px 11px;font-size:13px;font-weight:550}.tscroll{max-height:max(320px,100vh - 230px);overflow:auto}.tablewrap th:first-child,.tablewrap td:first-child{z-index:4;background:var(--surface);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tablewrap thead th:first-child{z-index:6;background:var(--surface-2)}.tablewrap tbody tr:hover td:first-child{background:var(--primary-50)}tr.row-link:hover td:first-child{background:var(--surface-2)}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}thead th{z-index:5;background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-size:11.5px;font-weight:650;position:sticky;top:0}thead th button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;background:0 0;border:0;align-items:center;gap:5px;padding:0;display:flex}thead th .arrow{opacity:.4;font-size:10px}thead th.sorted .arrow{opacity:1;color:var(--primary)}tbody td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 12px}tbody tr{transition:background .1s}tbody tr:hover{background:var(--primary-50)}tbody tr.expander-row:hover{background:var(--surface-2)}.proj-name{color:var(--ink);cursor:pointer;font-weight:650}.proj-name:hover{color:var(--primary)}.proj-sub{color:var(--muted);font-size:11.5px;font-weight:500}.budgetbar{background:var(--line);border-radius:20px;width:74px;height:6px;margin-top:5px;overflow:hidden}.budgetbar>i{border-radius:20px;height:100%;display:block}.prog{align-items:center;gap:8px;display:flex}.prog .track{background:var(--line);border-radius:20px;flex:1;min-width:54px;height:7px;overflow:hidden}.prog .track>i{background:var(--primary);border-radius:20px;height:100%;display:block}.prog .pct{text-align:right;width:34px;color:var(--ink-2);font-size:12px;font-weight:650}.raid-dots{gap:4px;display:flex}.raid-dots span{border-radius:5px;padding:1px 6px;font-size:11px;font-weight:700}.rd-r{background:var(--risk-bg);color:#b91c1c}.rd-i{background:var(--warn-bg);color:#b45309}.rd-a{background:var(--primary-50);color:var(--primary-600)}.rd-d{background:var(--hold-bg);color:#475569}.iconbtn{border:1px solid var(--line);background:var(--surface);width:30px;height:30px;color:var(--muted);border-radius:8px;place-items:center;display:grid}.iconbtn:hover{color:var(--primary);border-color:var(--primary)}.editable{cursor:text;border-radius:6px;margin:-2px -5px;padding:2px 5px}.editable:hover{background:var(--warn-50);box-shadow:inset 0 0 0 1px var(--line-2)}.expand-cell{border:0!important;padding:0!important}.expand-inner{background:var(--surface-2);border-bottom:1px solid var(--line);padding:16px 20px}.donut-wrap{align-items:center;gap:18px;display:flex}.donut{flex:none;width:150px;height:150px;position:relative}.donut .center{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.donut .center .big{font-size:27px;font-weight:750;line-height:1}.donut .center .sm{color:var(--muted);font-size:11px;font-weight:600}.legend{flex-direction:column;flex:1;gap:9px;display:flex}.legend .row{align-items:center;gap:9px;font-size:12.5px;display:flex}.legend .row .sw{border-radius:3px;flex:none;width:11px;height:11px}.legend .row .lname{color:var(--ink-2);font-weight:550}.legend .row .lval{color:var(--ink);margin-left:auto;font-weight:700}.legend .row .lpct{color:var(--muted);text-align:right;width:42px;font-size:11.5px}.bars{flex-direction:column;gap:11px;display:flex}.bar-row{grid-template-columns:120px 1fr auto;align-items:center;gap:10px;font-size:12.5px;display:grid}.bar-row .blab{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-weight:550;overflow:hidden}.bar-row .btrack{background:var(--line);border-radius:20px;height:9px;overflow:hidden}.bar-row .btrack>i{background:linear-gradient(90deg,var(--primary),#1c8fbf);border-radius:20px;height:100%;display:block}.bar-row .bval{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.compliance{flex-direction:column;gap:10px;display:flex}.comp-row{border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;padding:9px 11px;font-size:12.5px;display:flex}.comp-row .ic{width:17px;height:17px}.comp-row .cname{color:var(--ink-2);font-weight:600}.comp-row .cstat{border-radius:20px;margin-left:auto;padding:2px 8px;font-size:11.5px;font-weight:700}.upcoming{flex-direction:column;display:flex}.up-item{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:11px 4px;display:flex}.up-item:last-child{border-bottom:0}.up-date{text-align:center;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;flex:none;width:50px;padding:6px 0}.up-date .d{font-size:18px;font-weight:750;line-height:1}.up-date .m{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.up-body{flex:1;min-width:0}.up-body .t{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.up-body .s{color:var(--muted);font-size:11.5px}.up-when{flex:none;font-size:11.5px;font-weight:700}.up-when.soon{color:var(--risk)}.up-when.near{color:var(--warn)}.up-when.far{color:var(--muted)}.gantt-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.seg{border:1px solid var(--line-2);background:var(--surface);border-radius:9px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);border:0;border-right:1px solid var(--line);background:0 0;padding:7px 13px;font-size:12.5px;font-weight:600}.seg button:last-child{border-right:0}.seg button.active{background:var(--primary);color:#fff}.gantt-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden}.gantt-scroll{max-height:70vh;overflow:auto}.gchart{min-width:760px;font-size:12px;position:relative}.grow{grid-template-columns:var(--label-w,260px) 1fr;border-bottom:1px solid var(--line);display:grid}.grow:hover{background:var(--primary-50)}.glabel{border-right:1px solid var(--line);background:var(--surface);z-index:3;align-items:center;gap:8px;padding:9px 12px;display:flex;position:sticky;left:0}.grow:hover .glabel{background:var(--primary-50)}.glabel.proj{background:var(--surface-2);font-weight:700}.glabel .gname{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.glabel .gowner{color:var(--muted);font-size:11px;font-weight:500}.gtrack{height:38px;position:relative}.ghead{z-index:6;background:var(--surface-2);border-bottom:1px solid var(--line-2);position:sticky;top:0}.ghead .glabel{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:11.5px;font-weight:700}.gscale{height:46px;position:relative}.gtick{border-left:1px solid var(--line);color:var(--muted);padding:5px 0 0 5px;font-size:10.5px;font-weight:600;position:absolute;top:0;bottom:0}.gtick.q{border-left:1px solid var(--line-2);color:var(--ink-2);font-weight:700}.gridline{border-left:1px solid var(--line);pointer-events:none;position:absolute;top:0;bottom:0}.gbar{cursor:grab;height:20px;box-shadow:var(--sh-sm);border-radius:6px;align-items:center;min-width:6px;display:flex;position:absolute;top:9px;overflow:hidden}.gbar .fill{background:#ffffff52;border-right:2px solid #ffffffa6;position:absolute;top:0;bottom:0;left:0}.gbar .gbl{color:#fff;white-space:nowrap;text-shadow:0 1px 1px #00000040;padding:0 8px;font-size:11px;font-weight:600;position:relative}.gbar.critical{box-shadow:0 0 0 2px var(--risk),var(--sh)}.gbar.dragging{opacity:.85;cursor:grabbing;box-shadow:var(--sh-lg)}.drag-tip{z-index:300;background:var(--ink);color:#fff;box-shadow:var(--sh-lg);pointer-events:none;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:9px;padding:7px 12px;position:fixed;transform:translate(-50%,calc(-100% - 14px))}.drag-tip .dt-days{font-size:14px;font-weight:800;line-height:1.15}.drag-tip .dt-date{opacity:.82;margin-top:1px;font-size:11px;font-weight:500}.drag-tip:after{content:"";border:6px solid #0000;border-top-color:var(--ink);border-bottom:0;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}.gbase{background:repeating-linear-gradient(90deg,var(--muted-2),var(--muted-2) 4px,transparent 4px,transparent 7px);opacity:.65;border-radius:3px;height:5px;position:absolute;bottom:5px}.gmile{width:16px;height:16px;box-shadow:var(--sh-sm);cursor:pointer;border:2px solid #fff;border-radius:3px;position:absolute;top:11px;transform:rotate(45deg)}.gmile.go-live{background:var(--done)}.gmile.regulatory{background:var(--risk)}.gmile.freeze{background:#7c3aed}.gmile.upgrade{background:var(--warn)}.gmile.steering{background:var(--accent)}.gmile.vendor{background:var(--primary)}.gmile.cutover{background:#db2777}.gtoday{background:var(--risk);z-index:4;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.gtoday:after{content:"Today";color:var(--risk);background:var(--risk-50);white-space:nowrap;border-radius:4px;padding:1px 4px;font-size:9.5px;font-weight:800;position:absolute;top:-1px;left:3px}.gdep{pointer-events:none;z-index:2;position:absolute}.gantt-legend{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;padding:11px 14px;font-size:11.5px;display:flex}.gantt-legend .gl{align-items:center;gap:6px;font-weight:600;display:inline-flex}.gantt-legend .gl .b{border-radius:3px;width:14px;height:10px}.gantt-legend .gl .d{border-radius:2px;width:11px;height:11px;transform:rotate(45deg)}.timeline-strip{gap:0;padding:6px 2px 14px;display:flex;position:relative;overflow-x:auto}.tl-month{border-left:2px solid var(--line);flex:0 0 200px;min-height:60px;padding:0 12px}.tl-month .mlab{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;padding:4px 0;font-size:12px;font-weight:750;position:sticky}.tl-event{border-bottom:1px dashed var(--line);align-items:flex-start;gap:8px;padding:6px 0;display:flex}.tl-event .pin{border-radius:50%;flex:none;width:9px;height:9px;margin-top:5px}.tl-event .te-t{font-size:12px;font-weight:600;line-height:1.25}.tl-event .te-s{color:var(--muted);font-size:11px}.cal-list{flex-direction:column;gap:9px;display:flex}.cal-row{border:1px solid var(--line);background:var(--surface);border-radius:11px;grid-template-columns:88px 12px 1fr auto auto;align-items:center;gap:12px;padding:11px 14px;display:grid}.cal-row:hover{box-shadow:var(--sh-sm);border-color:var(--line-2)}.cal-row.overdue{border-left:3px solid var(--risk)}.cal-date{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:700}.cal-date .dy{color:var(--muted);font-size:11px;font-weight:600}.cal-pin{border-radius:3px;width:11px;height:11px;transform:rotate(45deg)}.cal-t{font-size:13px;font-weight:600}.cal-s{color:var(--muted);font-size:11.5px}.mtype{text-transform:capitalize;border-radius:6px;padding:2px 8px;font-size:10.5px;font-weight:700}.heatmap{grid-template-columns:auto repeat(5,1fr);gap:5px;margin-top:6px;display:grid}.heatmap .hcell{aspect-ratio:1.6;color:#fff;cursor:default;border-radius:8px;place-items:center;font-size:15px;font-weight:750;display:grid;position:relative}.heatmap .haxis{color:var(--muted);text-transform:uppercase;place-items:center;font-size:10.5px;font-weight:700;display:grid}.heatmap .corner{color:var(--muted-2);font-size:10px}.hm-axis-y{writing-mode:vertical-rl;transform:rotate(180deg)}.heat-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin-top:12px;font-size:11.5px;display:flex}.util-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 130px auto;align-items:center;gap:14px;padding:11px 0;display:grid}.util-row:last-child{border-bottom:0}.util-name{font-size:13px;font-weight:600}.util-role{color:var(--muted);font-size:11.5px}.util-track{background:var(--line);border-radius:20px;height:11px;position:relative;overflow:hidden}.util-track>i{border-radius:20px;height:100%;display:block}.util-track .cap{background:var(--ink);width:2px;height:17px;position:absolute;top:-3px;left:100%;transform:translate(-2px)}.util-pct{text-align:right;font-variant-numeric:tabular-nums;width:46px;font-size:13px;font-weight:750}.over{color:var(--risk)}.rh-scroll{border:1px solid var(--line);border-radius:var(--r-lg);overflow-x:auto}.rh-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}.rh-table th,.rh-table td{text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap;padding:9px 12px}.rh-table tr:last-child th,.rh-table tr:last-child td{border-bottom:0}.rh-proj{background:var(--surface-2);color:var(--ink-2);font-size:11.5px;font-weight:700}.rh-name{text-align:left;background:var(--surface);z-index:2;border-right:2px solid var(--line-2);min-width:190px;position:sticky;left:0}.rh-corner{background:var(--surface-2);color:var(--ink-2);font-size:11.5px;font-weight:700}.rh-nm{color:var(--ink);align-items:center;gap:6px;font-size:13px;font-weight:650;display:flex}.rh-nm .ic{width:14px;height:14px;color:var(--risk);flex:none}.rh-rl{color:var(--muted);margin-top:1px;font-size:11px;font-weight:500}.rh-name.over{box-shadow:inset 4px 0 0 var(--risk)}.rh-name.near{box-shadow:inset 4px 0 0 var(--warn)}.rh-name:hover .rh-nm{color:var(--primary);text-decoration:underline}.rh-cell{font-variant-numeric:tabular-nums;font-weight:650}.rh-empty{color:var(--muted-2);background:repeating-linear-gradient(45deg,#0000,#0000 5px,#0f172a06 5px 6px)}.rh-total,.rh-thtotal{background:var(--surface-2);border-left:2px solid var(--line-2);z-index:1;border-right:0;position:sticky;right:0}.rh-thtotal{color:var(--ink-2);font-size:11.5px;font-weight:700}.rh-badge{font-variant-numeric:tabular-nums;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:800;display:inline-block}.rh-table tbody tr:hover .rh-name,.rh-row-over:hover .rh-name,.rh-row-near:hover .rh-name{background:var(--primary-50)}.rh-legend{color:var(--muted);flex-wrap:wrap;gap:18px;margin-top:13px;font-size:12px;display:flex}.rh-legend span{align-items:center;gap:6px;display:inline-flex}.rh-legend i{border-radius:3px;width:12px;height:12px;display:inline-block}.pill-count{background:var(--primary-50);min-width:22px;color:var(--primary);border-radius:20px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.res-link{cursor:pointer;color:var(--ink)}tr.row-link{cursor:pointer}tr.row-link:hover td{background:var(--surface-2)}tr.row-link:hover .res-link,.res-link:hover{color:var(--primary);text-decoration:underline}.switch{flex:none;width:44px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch .sl{background:var(--muted-2);pointer-events:none;border-radius:20px;transition:all .15s;position:absolute;inset:0}.switch .sl:after{content:"";width:18px;height:18px;box-shadow:var(--sh-sm);background:#fff;border-radius:50%;transition:all .15s;position:absolute;top:3px;left:3px}.switch input:checked+.sl{background:var(--primary)}.switch input:checked+.sl:after{transform:translate(20px)}.switch input:focus-visible+.sl{box-shadow:0 0 0 3px var(--primary-50)}.set-row{border:1px solid var(--line);background:var(--surface-2);border-radius:11px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 16px;display:flex}.set-lab{color:var(--ink);font-size:13.5px;font-weight:700}.set-sub{color:var(--muted);margin-top:2px;font-size:12px;line-height:1.45}.set-actions{align-items:center;gap:10px;margin-top:14px;display:flex}.set-note{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.5}.th-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.th-grid .th-card:nth-child(3){grid-column:1}.th-card{border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:14px 16px}.th-title{color:var(--ink);margin-bottom:12px;font-size:13px;font-weight:700}.th-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.th-row label{color:var(--muted);flex:1;font-size:12px}.th-row .hchip{text-align:center;min-width:92px}.th-in{align-items:center;gap:5px;display:inline-flex}.th-in input{border:1px solid var(--line-2);width:74px;font:inherit;text-align:right;font-variant-numeric:tabular-nums;border-radius:8px;padding:7px 9px;font-size:13px;font-weight:650}.th-in input:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed}.th-unit{color:var(--muted);font-size:12px;font-weight:600}.th-foot{color:var(--muted);align-items:center;gap:7px;margin-top:2px;font-size:11.5px;display:flex}.th-dim{opacity:.72}@media (max-width:700px){.th-grid{grid-template-columns:1fr}}.dtabs{overflow-x:auto}.dtabs button{white-space:nowrap;flex:none}.hchip{white-space:nowrap;border-radius:4px;padding:2px 10px;font-size:11.5px;font-weight:700;display:inline-block}.doc-sec{color:var(--ink);border-bottom:2px solid var(--line-2);text-transform:uppercase;letter-spacing:.02em;margin:20px 0 8px;padding-bottom:5px;font-size:13px;font-weight:800}.doc-note{color:var(--muted);text-transform:none;letter-spacing:0;margin-left:8px;font-size:11px;font-weight:500}.mn-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.mn-row input,.mn-row select{border:1px solid var(--line-2);font:inherit;border-radius:8px;flex:1;min-width:0;padding:8px 10px;font-size:13px}.mn-row .mn-wide{flex:2}.mn-row .iconbtn{flex:none}.doc-toolbar .btn.sm{padding:6px 11px}.fld-hint{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.4}.block-list{flex-direction:column;gap:12px;display:flex}.block-proj{border:1px solid var(--line);border-radius:9px;overflow:hidden}.block-proj-name{background:var(--surface-2);color:var(--ink-2);border-bottom:1px solid var(--line);padding:8px 12px;font-size:12.5px;font-weight:700}.block-task{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 12px;font-size:12.5px;display:flex}.block-task:last-child{border-bottom:0}.block-task .ic{width:14px;height:14px;color:var(--muted)}.report-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.report-title{color:var(--ink);letter-spacing:-.01em;margin:0;font-size:20px;font-weight:800}.report-sub{color:var(--muted);margin-top:3px;font-size:12.5px}.report-legend{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:12px;display:flex}.report-legend span{align-items:center;gap:6px;display:inline-flex}.report-legend .lg{border:1px solid #0000000d;border-radius:3px;width:13px;height:13px;display:inline-block}.report-legend .lg.ok{background:#dcfce7}.report-legend .lg.near{background:#fef3c7}.report-legend .lg.over{background:#fee2e2}.erh-scroll{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:auto}.erh-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}.erh-table th,.erh-table td{text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap;padding:9px 12px}.erh-table tr:last-child th,.erh-table tr:last-child td{border-bottom:0}.erh-mo{background:var(--surface-2);color:var(--ink-2);font-size:11.5px;font-weight:700}.erh-yr{color:var(--muted-2);margin-left:2px;font-weight:600}.erh-name{text-align:left;background:var(--surface);z-index:2;border-right:2px solid var(--line-2);min-width:200px;position:sticky;left:0}.erh-corner{background:var(--surface-2)}.erh-table thead th.erh-name{z-index:7;background:var(--surface-2)}.erh-table tbody .erh-name{z-index:4}.erh-nm{color:var(--ink);font-size:13px;font-weight:650}.erh-rl{color:var(--muted);margin-top:1px;font-size:11px;font-weight:500}.erh-cell{font-variant-numeric:tabular-nums;color:var(--ink-2);font-weight:700}.erh-cell.z{color:var(--muted-2);background:repeating-linear-gradient(45deg,#0000,#0000 5px,#0f172a05 5px 6px);font-weight:400}.erh-cell.ok{color:#166534;background:#dcfce7}.erh-cell.near{color:#92400e;background:#fef3c7}.erh-cell.over{color:#b91c1c;background:#fee2e2}.erh-cell[role=button]{cursor:pointer}.erh-cell[role=button]:hover{box-shadow:inset 0 0 0 2px var(--primary)}.report-foot{color:var(--muted);margin-top:11px;font-size:11.5px;line-height:1.5}.exec-pop{z-index:250;background:var(--surface);border:1px solid var(--line-2);width:290px;box-shadow:var(--sh-lg);border-radius:11px;padding:12px 13px;font-size:12.5px;position:fixed;transform:translate(-50%)}.ep-hd{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.ep-hd b{color:var(--ink);font-size:13px}.ep-hd span{color:var(--muted);font-size:11.5px}.ep-total{border-radius:7px;margin-bottom:9px;padding:6px 9px;font-size:13px;font-weight:800}.ep-total span{opacity:.8;font-size:11px;font-weight:500}.ep-total.ok{color:#166534;background:#dcfce7}.ep-total.near{color:#92400e;background:#fef3c7}.ep-total.over{color:#b91c1c;background:#fee2e2}.ep-list{flex-direction:column;gap:6px;max-height:230px;display:flex;overflow-y:auto}.ep-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:2px 8px;padding-bottom:6px;display:grid}.ep-row:last-child{border-bottom:0;padding-bottom:0}.ep-proj{color:var(--ink);font-size:12px;font-weight:650}.ep-task{color:var(--muted);grid-column:1;font-size:11px}.ep-pct{color:var(--primary);font-variant-numeric:tabular-nums;grid-row:1/3;align-self:center;font-weight:800}.rm-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.rm-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:18px;font-size:12px;display:flex}.rm-legend span{align-items:center;gap:6px;display:inline-flex}.rm-legend .rm-dia{background:var(--primary);width:11px;height:11px;box-shadow:var(--sh-sm);border:1.5px solid #fff;transform:rotate(45deg)}.rm-hint{color:var(--muted-2)}.rm-hint .ic{vertical-align:-2px;width:13px;height:13px;margin-right:3px}.rm-grid{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.rm-axis,.rm-lane{grid-template-columns:220px 1fr;display:grid}.rm-axis{border-bottom:1px solid var(--line-2);background:var(--surface-2)}.rm-axis-name{border-right:1px solid var(--line)}.rm-axis-track{height:30px;position:relative}.rm-tick{color:var(--muted);border-left:1px solid var(--line);white-space:nowrap;height:23px;padding-left:6px;font-size:11px;font-weight:600;position:absolute;top:7px}.rm-lane{border-bottom:1px solid var(--line)}.rm-lane:last-child{border-bottom:0}.rm-lane-name{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;justify-content:center;gap:4px;padding:10px 14px;display:flex}.rm-pn{color:var(--ink);font-size:13px;font-weight:650;line-height:1.25}.rm-track{background:repeating-linear-gradient(90deg,transparent,transparent calc(100% - 1px),var(--line) calc(100% - 1px),var(--line) 100%);height:56px;position:relative}.rm-today{z-index:1;background:#dc262673;width:2px;position:absolute;top:0;bottom:0}.rm-stage{background:var(--sc);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%);cursor:grab;height:30px;box-shadow:var(--sh-sm);touch-action:none;z-index:2;border-radius:6px;align-items:center;transition:filter .12s;display:flex;position:absolute;top:13px}.rm-stage:hover{filter:brightness(1.07)}.rm-stage.dragging{opacity:.9;z-index:8;cursor:grabbing;box-shadow:var(--sh-lg)}.rm-stage-lab{color:#fff;white-space:nowrap;text-overflow:ellipsis;padding:0 16px 0 11px;font-size:11.5px;font-weight:700;overflow:hidden}.rm-mile{background:var(--mc);width:13px;height:13px;box-shadow:var(--sh-sm);cursor:pointer;z-index:7;border:2px solid #fff;transition:transform .1s;position:absolute;top:6px;transform:translate(-50%)rotate(45deg)}.rm-mile:hover{transform:translate(-50%)rotate(45deg)scale(1.25)}.rm-exit{z-index:130;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer;box-shadow:var(--sh-lg);border-radius:9px;align-items:center;gap:6px;padding:9px 14px;font-size:13px;font-weight:600;display:inline-flex;position:fixed;top:16px;right:18px}.rm-exit:hover{border-color:var(--primary);color:var(--primary)}.rm-exit .ic{width:15px;height:15px}body.presenting .sidebar,body.presenting .topbar,body.presenting .scrim{display:none!important}body.presenting .app{grid-template-columns:1fr!important}body.presenting .main{margin:0!important}body.presenting #view-roadmap{max-width:none!important;padding:22px 28px!important}body.presenting .rm-track{height:72px}body.presenting .rm-stage{height:36px;top:18px}body.presenting .rm-stage-lab{font-size:13px}body.presenting .rm-mile{width:18px;height:18px;top:28px}body.presenting .rm-pn{font-size:15px}body.presenting .rm-axis,body.presenting .rm-lane{grid-template-columns:260px 1fr}body.presenting .rm-toolbar .btn.primary{display:none}@media print{@page{size:landscape;margin:12mm}.sidebar,.scrim,.toasts,.topbar,#topActions,.overlay{display:none!important}.shell{display:block!important}.main{margin:0!important;padding:0!important}.view{display:none!important}.view.active{display:block!important}#view-exec-report{padding:0!important}.erh-scroll{border:none!important;overflow:visible!important}.erh-table{font-size:10px}.erh-table th,.erh-table td{padding:5px 7px}.erh-cell.ok,.erh-cell.near,.erh-cell.over,.report-legend .lg{-webkit-print-color-adjust:exact;print-color-adjust:exact}.erh-name{position:static!important}tr,td,th{page-break-inside:avoid}.report-foot{margin-top:8px}body.doc-printing .app,body.doc-printing .drag-tip,body.doc-printing .exec-pop{display:none!important}body.doc-printing .overlay{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important;padding:0!important;display:block!important;position:static!important;overflow:visible!important}body.doc-printing .modal{box-shadow:none!important;border:none!important;border-radius:0!important;width:100%!important;max-width:100%!important;max-height:none!important;display:block!important;overflow:visible!important}body.doc-printing .modal .mbd{max-height:none!important;overflow:visible!important}body.doc-printing .mhd,body.doc-printing .mft,body.doc-printing .dtabs{display:none!important}body.doc-printing .mbd{max-height:none!important;padding:0!important;overflow:visible!important}body.doc-printing *{-webkit-print-color-adjust:exact;print-color-adjust:exact}body.doc-printing .rdoc table.rt tr{break-inside:avoid;page-break-inside:avoid}body.doc-printing .rdoc>tbody>tr,body.doc-printing .rdoc>tbody>tr>td,body.doc-printing .rdoc-body{break-inside:auto;page-break-inside:auto}body.doc-printing .rdoc{border-collapse:collapse;width:100%;display:table}body.doc-printing .rdoc>thead{display:table-header-group}body.doc-printing .rdoc>tbody{display:table-row-group}body.doc-printing .rdoc>thead>tr,body.doc-printing .rdoc>tbody>tr{display:table-row}body.doc-printing .rdoc>thead>tr>td,body.doc-printing .rdoc>tbody>tr>td{padding:0;display:table-cell}body.doc-printing .rdoc-run{color:#5b6b7a;border-bottom:1px solid #e3e8ed;justify-content:space-between;gap:16px;margin-bottom:14px;padding:0 0 8px;font-size:10.5px;display:flex}body.doc-printing .rdoc-grid{background:0 0;border:0;border-radius:0;display:block;overflow:visible}body.doc-printing .rdoc-two{table-layout:fixed;border-spacing:0;width:100%;display:table}body.doc-printing .rdoc-two>div{vertical-align:top;padding-right:24px;display:table-cell}body.doc-printing .rdoc-two>div:last-child{padding-right:0}body.doc-printing .rdoc-panel{break-after:avoid;break-inside:avoid;page-break-inside:avoid;background:#f3f6f8;border:1px solid #e3e8ed;border-radius:10px;grid-template-columns:1.1fr 1fr 1.1fr;gap:14px 18px;margin:0 0 18px;padding:14px 16px;display:grid}body.doc-printing .rdoc-panel .rdoc-brand{grid-column:1/-1;margin:0 0 2px}body.doc-printing .rdoc-panel .rdoc-group,body.doc-printing .rdoc-panel .rdoc-call{margin:0}body.doc-printing .rdoc-hrow{padding:7px 10px;font-size:11.5px}body.doc-printing .rdoc-hrow-k{font-size:9.5px}body.doc-printing .rdoc-body{padding:0}body.doc-printing .rdoc h2{break-after:avoid;page-break-after:avoid}body.doc-printing .rdoc table.rt thead{display:table-header-group}}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#0f172a80;justify-content:center;align-items:flex-start;padding:40px 16px;display:none;position:fixed;inset:0;overflow:hidden}.overlay.open{display:flex}.modal{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-lg);flex-direction:column;width:100%;max-width:920px;min-height:0;max-height:calc(100dvh - 80px);animation:.2s pop;display:flex;overflow:hidden}.modal.narrow{max-width:560px}@keyframes pop{0%{opacity:0;transform:scale(.97)translateY(8px)}to{opacity:1;transform:none}}.modal .mhd{border-bottom:1px solid var(--line);background:var(--surface);z-index:4;flex:none;align-items:center;gap:12px;padding:18px 22px;display:flex}.modal .mhd h2{flex:1;font-size:17px}.modal .mbd{overscroll-behavior:contain;flex:auto;min-height:0;padding:20px 22px;overflow-y:auto}.modal .mft{border-top:1px solid var(--line);background:var(--surface);flex:none;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.x{background:var(--surface-2);width:32px;height:32px;color:var(--muted);border:0;border-radius:9px;place-items:center;display:grid}.x:hover{background:var(--risk-bg);color:var(--risk)}.form-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.fld{flex-direction:column;gap:5px;display:flex}.fld.full{grid-column:1/-1}.fld label{color:var(--ink-2);font-size:12px;font-weight:650}.fld label .req{color:var(--risk)}.fld input,.fld select,.fld textarea{border:1px solid var(--line-2);color:var(--ink);background:var(--surface);border-radius:9px;width:100%;padding:9px 11px;font-family:inherit;font-size:13.5px}.fld textarea{resize:vertical;min-height:62px}.fld .hint{color:var(--muted);font-size:11px}.dtabs{border-bottom:1px solid var(--line);background:var(--surface);z-index:3;gap:3px;padding:0 22px;display:flex;position:sticky;top:0;overflow-x:auto}.dtabs button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:11px 9px;font-size:12.5px;font-weight:600}.dtabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.dpane{display:none}.dpane.active{display:block}.kv{grid-template-columns:160px 1fr;gap:6px 14px;font-size:13px;display:grid}.kv dt{color:var(--muted);font-weight:600}.kv dd{color:var(--ink);margin:0;font-weight:550}.minicards{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.minicard{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:13px}.minicard .l{color:var(--muted);font-size:11.5px;font-weight:600}.minicard .v{margin-top:4px;font-size:20px;font-weight:750}.sub-table{border:1px solid var(--line);border-radius:10px;width:100%;font-size:12.5px;overflow:clip}.sub-table thead th{background:var(--surface-2);z-index:5;position:sticky;top:0}.subwrap{border:1px solid var(--line);border-radius:10px;max-height:max(280px,60vh);overflow:auto}.subwrap .sub-table{border:0;border-radius:0;overflow:visible}.subwrap .sub-table th:first-child,.subwrap .sub-table td:first-child{z-index:4;background:var(--surface);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.subwrap .sub-table thead th:first-child{z-index:6;background:var(--surface-2)}.subwrap .sub-table tbody tr:hover td:first-child{background:var(--primary-50)}.list-add{justify-content:flex-end;margin:0 0 10px;display:flex}.mc-edit .minicard.inl{cursor:default;position:relative}.minicard.inl .l{justify-content:space-between;align-items:center;gap:6px;display:flex}.inl-pencil{color:var(--muted-2);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:5px;padding:2px;transition:all .12s;display:inline-flex}.minicard.inl:hover .inl-pencil{opacity:1}.inl-pencil:hover{color:var(--primary);background:var(--primary-50)}.inl-pencil .ic{width:13px;height:13px}.minicard.inl.editing{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-50)}.inl-input{border:1px solid var(--primary);width:100%;font:inherit;background:#fff;border-radius:7px;margin-top:2px;padding:5px 7px;font-size:16px;font-weight:700}select.inl-input{font-size:14px}.actcol{white-space:nowrap;text-align:right;width:1%}.rowact{justify-content:flex-end;gap:4px;display:inline-flex}.iconbtn{border:1px solid var(--line-2);background:var(--surface);width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;transition:all .12s;display:inline-flex}.iconbtn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-50)}.iconbtn.danger:hover{border-color:var(--risk);color:var(--risk);background:var(--risk-bg)}.iconbtn .ic{width:15px;height:15px}.cd-head{justify-content:space-between;align-items:center;margin:16px 0 6px;display:flex}.cd-head .list-add{margin:0}.tl-tools{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.tab-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.tab-tools-l,.tab-tools-r{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dh{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.dh-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.gantt-grid{grid-template-columns:250px 1fr;display:grid}.minicards.n4{grid-template-columns:repeat(4,1fr)}.minicards.n3{grid-template-columns:repeat(3,1fr)}.minicards.n2{grid-template-columns:repeat(2,1fr)}.kpis.n4{grid-template-columns:repeat(4,1fr)}.kpis.n3{grid-template-columns:repeat(3,1fr)}.tl-tools .list-add{margin:0}.seg.sm button{padding:6px 11px;font-size:12px}.seg.sm button .ic{vertical-align:-2px;width:13px;height:13px;margin-right:5px}.tl-row{border-bottom:1px solid var(--line);grid-template-columns:190px 1fr auto;align-items:center;gap:12px;padding:8px 0;display:grid}.tl-row:last-child{border-bottom:0}.tl-name{font-size:12.5px}.tl-track{background:var(--surface-2);border-radius:6px;height:22px;position:relative}.tl-bar{border-radius:5px;min-width:6px;height:16px;position:absolute;top:3px}.kanban{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:4px;display:grid}.kcol{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;flex-direction:column;min-height:120px;transition:all .12s;display:flex}.kcol.kover{border-color:var(--primary);background:var(--primary-50);box-shadow:inset 0 0 0 1px var(--primary)}.kcol-hd{color:var(--ink-2);border-bottom:1px solid var(--line);align-items:center;gap:7px;padding:10px 12px;font-size:12.5px;font-weight:700;display:flex}.kdot{border-radius:50%;flex:none;width:9px;height:9px}.kcount{background:var(--line);color:var(--ink-2);border-radius:20px;margin-left:auto;padding:1px 8px;font-size:11px;font-weight:700}.kcol-body{flex-direction:column;flex:1;gap:8px;padding:9px;display:flex}.kcard{background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--sh-sm);cursor:grab;border-radius:9px;padding:10px;transition:all .1s}.kcard:hover{border-color:var(--primary)}.kcard.dragging{opacity:.45;cursor:grabbing}.kcard-top{justify-content:space-between;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.3;display:flex}.kcard-act{opacity:0;transition:all .12s}.kcard:hover .kcard-act{opacity:1}.kcard-meta{color:var(--muted);flex-wrap:wrap;gap:6px;margin-top:6px;font-size:11px;display:flex}.kcard-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:9px;display:flex}.kdate{color:var(--muted-2);white-space:nowrap;font-size:10.5px}.kempty{color:var(--muted-2);text-align:center;border:1px dashed var(--line-2);border-radius:8px;padding:14px 6px;font-size:11.5px}.khint{color:var(--muted);align-items:center;gap:6px;margin-top:11px;font-size:11.5px;display:flex}@media (max-width:760px){.kanban{grid-template-columns:repeat(2,1fr)}}.toasts{z-index:200;flex-direction:column;gap:9px;display:flex;position:fixed;bottom:22px;right:22px}.toast{background:var(--ink);color:#fff;box-shadow:var(--sh-lg);border-radius:11px;align-items:center;gap:9px;max-width:340px;padding:11px 15px;font-size:13px;font-weight:550;animation:.25s slidein;display:flex}.toast.ok{background:#15803d}.toast.warn{background:#b45309}.toast.err{background:#b91c1c}.toast .ic{flex:none;width:17px;height:17px}@keyframes slidein{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.empty{text-align:center;color:var(--muted);padding:38px 20px}.empty .ic{opacity:.4;width:38px;height:38px;margin-bottom:8px}.empty p{margin:4px 0;font-size:13.5px}@media (max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:1fr}.minicards{grid-template-columns:repeat(2,1fr)}}@media (max-width:920px){.app{grid-template-columns:1fr}.sidebar{z-index:90;width:248px;transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{box-shadow:var(--sh-lg);transform:none}.menu-toggle{display:grid!important}.cols-2{grid-template-columns:1fr}.scrim{z-index:80;background:#0006;display:none;position:fixed;inset:0}.scrim.open{display:block}}@media (min-width:921px){.menu-toggle{display:none}}@media (max-width:760px){.kpis.n4,.kpis.n3,.minicards.n4,.minicards.n3{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.view{padding:14px 12px 50px}.topbar{padding:11px 12px}.topbar h1{font-size:22px}.topbar .subtitle{font-size:12.5px}.kpis,.kpis.n4,.kpis.n3{grid-template-columns:repeat(2,1fr)}.kpi{padding:12px}.kpi .val{font-size:24px}.kpi .lab,.kpi .meta{font-size:11.5px}.form-grid{grid-template-columns:1fr}.minicards,.minicards.n4,.minicards.n3,.minicards.n2{grid-template-columns:repeat(2,1fr)}.cal-row{grid-template-columns:74px 1fr;gap:8px}.cal-row .mtype,.cal-row .iconbtn{display:none}.overlay,.overlay.open{padding:0;display:flex}.modal,.modal.wide,.modal.narrow{border-radius:0;max-width:none;height:100dvh;max-height:100dvh;animation:none}.modal .mbd{padding:14px 14px 18px}.modal .mhd{border-radius:0;gap:8px;padding:12px 14px}.modal .mhd h2{font-size:16px}.modal .mft{border-radius:0;flex-wrap:wrap;padding:10px 14px}.modal .mhd .x{flex:none}.dh{flex-wrap:wrap;gap:8px}.modal .mhd .dh-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:100%;order:3;font-size:16px;line-height:1.25;display:-webkit-box;overflow:hidden}.dh .htd,.dh .btn-txt{display:none}.dh .btn.sm{padding:6px 8px}.dtabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);margin:-14px -14px 14px!important;padding:0 14px!important}.dtabs::-webkit-scrollbar{display:none}.dtabs button{padding:11px 8px;font-size:12.5px}.gantt-grid{grid-template-columns:150px 1fr;min-width:760px}.rm-grid{overflow-x:auto}.rm-axis,.rm-lane{grid-template-columns:150px 1fr;min-width:720px}.tl-updated{display:none}.modal .mbd{min-width:0;overflow-x:hidden}.heatwrap{grid-template-columns:1fr}.heatmap .hcell{aspect-ratio:1.25;border-radius:6px;font-size:12.5px}.heatmap .haxis{font-size:10px}.esc-row{flex-wrap:wrap;gap:8px 10px}.esc-actions{flex-basis:100%;justify-content:flex-end}.raid-grid{grid-template-columns:1fr}.matrix{gap:3px}.matrix-cell{aspect-ratio:1.15;border-radius:6px;min-height:40px}.raid-matrix,.raid-escalation{padding:10px}.tab-tools{gap:8px}.tab-tools-l{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.tab-tools-l .seg{display:flex}.tab-tools-l .seg button{text-align:center;flex:1;padding:8px 6px}.tab-tools-l .seg:nth-child(3){grid-column:1/-1}.tab-tools-r{width:100%}.tab-tools-r .btn.primary{flex:1;justify-content:center}.st-legend{gap:4px 10px;font-size:11px}.st-legend em{display:none}.np{width:100%}.overlay,.overlay.open{overflow-x:hidden}.modal,.modal.wide,.modal.narrow{max-width:100vw;overflow-x:hidden}.modal .mbd{max-width:100vw}.subwrap{-webkit-overflow-scrolling:touch;max-height:max(280px,55vh)}.subwrap .sub-table{min-width:560px}.subwrap .sub-table th,.subwrap .sub-table td{white-space:nowrap}.subwrap .sub-table td:first-child,.subwrap .sub-table th:first-child{white-space:normal;min-width:170px}.heatmap{gap:4px}.heatmap .hcell{border-radius:6px;font-size:13px}.esc-row{flex-wrap:wrap}.esc-main{flex:60%}.esc-meta{flex-wrap:wrap;row-gap:2px}.esc-actions{margin-left:auto}.esc-list{max-height:none}.raid-grid{gap:12px}.st-legend em{flex-basis:100%;margin-left:0}.tablewrap,.tscroll{-webkit-overflow-scrolling:touch}.page-actions{flex-wrap:wrap}}.scrim{display:none}.menu-toggle{border:1px solid var(--line-2);background:var(--surface);width:38px;height:38px;color:var(--ink-2);border-radius:9px;place-items:center;display:none}.sr-only{clip:rect(0 0 0 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a{color:inherit;text-decoration:none}.nav a{text-decoration:none}.raid-grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}@media (max-width:1100px){.raid-grid{grid-template-columns:1fr}}.raid-matrix,.raid-escalation{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}.rcc-hd{color:var(--ink);margin-bottom:10px;font-size:13px;font-weight:750}.rcc-hd span{color:var(--muted);margin-left:8px;font-size:11px;font-weight:500}.matrix{grid-template-columns:auto repeat(5,1fr);gap:5px;display:grid}.matrix-corner{color:var(--muted-2);place-items:center;font-size:9.5px;display:grid}.matrix-axis{color:var(--muted);place-items:center;font-size:10.5px;font-weight:700;display:grid}.matrix-cell{aspect-ratio:1.55;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:3px;min-height:48px;padding:4px;display:flex;position:relative}.matrix-dot{color:#fff;cursor:pointer;background:#0f2b3d;border:2px solid #fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:9.5px;font-weight:800;transition:transform .12s;display:grid;box-shadow:0 1px 3px #00000059}.matrix-dot:hover{background:var(--primary);transform:scale(1.25)}.esc-list{flex-direction:column;gap:7px;max-height:430px;padding-right:2px;display:flex;overflow-y:auto}.esc-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.esc-row.flagged{background:#fef2f2;border-color:#fca5a5}.esc-sev{text-align:center;color:#fff;border-radius:7px;min-width:34px;padding:4px 0;font-size:12.5px;font-weight:800}.esc-main{flex:1;min-width:0}.esc-desc{color:var(--ink);font-size:12.5px;font-weight:600;line-height:1.35}.esc-type{text-transform:uppercase;letter-spacing:.04em;color:var(--primary);margin-right:4px;font-size:10px;font-weight:800}.esc-meta{color:var(--muted);align-items:center;gap:4px;margin-top:2px;font-size:11px;display:flex}.esc-due{align-items:center;gap:3px;display:inline-flex}.esc-due .ic{width:12px;height:12px}.esc-due.overdue{color:#dc2626;font-weight:750}.esc-due.soon{color:#d97706;font-weight:700}.stale-badge{letter-spacing:.02em;color:#92400e;vertical-align:1px;background:#fef3c7;border:1px solid #fcd34d;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:10.5px;font-weight:800;display:inline-block}.esc-actions{gap:4px;display:flex}.raid-grid .iconbtn{border:1px solid var(--line-2);background:var(--surface);cursor:pointer;width:26px;height:26px;color:var(--ink-2);border-radius:7px;place-items:center;display:grid}.raid-grid .iconbtn .ic{width:13px;height:13px}.raid-grid .iconbtn:hover{border-color:var(--primary);color:var(--primary)}.raid-grid .iconbtn.danger:hover{color:#dc2626;border-color:#dc2626}.auth-wrap{background:linear-gradient(160deg,var(--bg) 0%,#dbe7f0 100%);place-items:center;min-height:100vh;padding:20px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-lg);border-radius:16px;width:100%;max-width:400px;padding:30px 32px}.auth-brand{align-items:center;gap:11px;margin-bottom:20px;display:flex}.auth-brand .logo{background:linear-gradient(135deg,var(--primary),#0e5f86);color:#fff;border-radius:10px;place-items:center;width:38px;height:38px;font-size:17px;font-weight:800;display:grid}.auth-brand .name{color:var(--ink);font-size:13.5px;font-weight:750;line-height:1.2}.auth-brand .sub{color:var(--muted);font-size:11px}.auth-card h2{color:var(--ink);margin:0 0 4px;font-size:19px}.auth-sub{color:var(--muted);margin:0 0 18px;font-size:12.5px}.auth-lab{color:var(--ink-2);margin:12px 0 5px;font-size:11.5px;font-weight:700;display:block}.auth-inp{box-sizing:border-box;border:1px solid var(--line-2);width:100%;font:inherit;background:var(--surface);border-radius:9px;padding:9px 11px;font-size:13.5px}.auth-inp:focus{outline:2px solid var(--primary-50);border-color:var(--primary)}.auth-msg{border-radius:9px;margin-top:12px;padding:9px 11px;font-size:12.5px;line-height:1.45}.auth-msg.err{background:var(--risk-bg);color:#b91c1c;border:1px solid #fecaca}.auth-msg.ok{background:var(--ok-bg);color:#166534;border:1px solid #bbf7d0}.auth-btn{justify-content:center;width:100%;margin-top:18px;padding:10px}.auth-switch{width:100%;color:var(--primary);cursor:pointer;text-align:center;background:0 0;border:none;margin-top:12px;font-size:12.5px;font-weight:650;display:block}.auth-loading{color:var(--muted);font-size:13px}.reg-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;display:flex}.reg-toolbar .reg-count{color:var(--muted);margin-left:auto;font-size:12px;font-weight:650}.uloader{background:var(--surface);border:1.5px dashed var(--line-2);border-radius:12px;margin-bottom:16px;padding:16px}.ul-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.ul-head b{color:var(--ink);align-items:center;gap:7px;font-size:14px;display:flex}.ul-head .ic{width:16px;height:16px;color:var(--primary)}.ul-sub{color:var(--muted);margin-top:4px;font-size:11.5px;font-weight:500;line-height:1.5;display:block}.ul-file{color:var(--ink-2);font-size:12.5px}.ul-summary{color:var(--ink-2);margin:12px 0 8px;font-size:12.5px}.ul-skip{color:var(--warn);font-weight:700}.ul-fname{color:var(--muted);margin-left:10px;font-size:11.5px}.ul-preview{margin-bottom:4px}.ul-code{color:var(--muted);font-size:11px;font-weight:500}.ul-more{color:var(--muted);margin:4px 0 8px;font-size:11.5px;font-style:italic}.ul-warnings{background:var(--warn-bg);color:#92400e;border:1px solid #fde68a;border-radius:9px;margin:10px 0;padding:10px 12px;font-size:12px}.ul-warnings b{align-items:center;gap:6px;font-size:12px;display:flex}.ul-warnings .ic{width:13px;height:13px}.ul-warnings ul{margin:7px 0 0;padding-left:18px;line-height:1.6}.ul-actions{gap:10px;margin-top:12px;display:flex}.ul-templates{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.ul-drop{border:2px dashed var(--line-2);background:var(--surface-2);text-align:center;cursor:pointer;color:var(--ink-2);border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:28px 18px;font-size:13px;display:flex}.ul-drop svg{width:22px;height:22px;color:var(--primary)}.ul-drop b{color:var(--ink)}.ul-drop span{color:var(--muted);max-width:460px;font-size:12px}.ul-drop:hover,.ul-drop.over{border-color:var(--primary);background:#eaf4f9}.ul-steps{color:var(--ink-2);margin:14px 0 0;padding-left:20px;font-size:12.5px;line-height:1.6}.ul-newres{background:var(--primary-50);color:var(--primary);border:1px solid #bfdff0;border-radius:9px;align-items:center;gap:7px;margin:10px 0;padding:9px 12px;font-size:12px;font-weight:600;display:flex}.ul-newres .ic{flex:none;width:14px;height:14px}.bl-panel{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-top:18px;padding:14px}.bl-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.bl-head b{color:var(--ink);font-size:13px}.bl-meta{color:var(--muted);font-size:11.5px}.bl-link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:11.5px;font-weight:650}.bl-empty{color:var(--muted);margin:4px 0 0;font-size:12.5px;line-height:1.5}.asave{place-items:center;width:18px;height:18px;display:inline-grid}.asave .ic{width:15px;height:15px}.asave-saved{color:var(--ok);animation:.25s asfade}.asave-error{color:var(--risk)}.asave-spin{border:2px solid var(--line-2);border-top-color:var(--primary);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite aspin}@keyframes aspin{to{transform:rotate(360deg)}}@keyframes asfade{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.fsec-stack{flex-direction:column;gap:18px;display:flex}.fsec{border-top:1px solid var(--line);padding-top:12px}.fsec:first-child{border-top:none;padding-top:0}.fsec-hd{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px;font-size:10.5px;font-weight:750}.fsec-sub{text-transform:none;letter-spacing:0;margin-left:8px;font-size:11.5px;font-weight:500}.fsec-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}@media (max-width:760px){.fsec-grid{grid-template-columns:1fr!important}}.ekpi{margin-bottom:18px}.ekpi-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.ekpi-head h3{color:var(--ink);margin:0;font-size:14px;font-weight:800}.ekpi-select{font:inherit;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:9px;min-width:220px;padding:7px 10px;font-size:13px;font-weight:600}.ekpi-grid{grid-template-columns:repeat(5,1fr);gap:12px;animation:.28s ekpiIn;display:grid}@keyframes ekpiIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ekpi-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-sm);border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.ekpi-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.ekpi-value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1.1}.ekpi-sub{color:var(--ink-2);font-size:11.5px;line-height:1.35}@media (max-width:1250px){.ekpi-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:760px){.ekpi-grid{grid-template-columns:1fr 1fr}}.ekpi-card{text-align:left;cursor:pointer;font:inherit;transition:box-shadow .15s,transform .15s,border-color .15s;position:relative}.ekpi-card:hover{box-shadow:var(--sh-md);border-color:var(--line-2);transform:translateY(-1px)}.ekpi-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ekpi-go{color:var(--muted);opacity:0;font-size:13px;transition:opacity .15s;position:absolute;top:10px;right:12px}.ekpi-card:hover .ekpi-go{opacity:1}.ms-src{letter-spacing:.05em;text-transform:uppercase;color:var(--primary);border:1px solid var(--primary);vertical-align:1px;border-radius:5px;margin-left:7px;padding:0 5px;font-size:9.5px;font-weight:800;display:inline-block}.modal.wide{max-width:1240px}.tl-wrap{border:1px solid var(--line);border-radius:10px;max-height:max(320px,100vh - 300px);overflow:auto}.tl-grid{border:0;border-radius:0;overflow:visible}.tl-grid th:nth-child(2),.tl-grid td:nth-child(2){z-index:4;background:var(--surface);box-shadow:1px 0 0 var(--line);position:sticky;left:52px}.tl-grid thead th:nth-child(2){z-index:8;background:var(--surface-2)}.tl-grid thead th{z-index:7;background:var(--surface-2);position:sticky;top:0}.tl-grid th:first-child,.tl-grid td:first-child{z-index:4;background:var(--surface);position:sticky;left:0}.tl-grid thead th:first-child{z-index:8}.tl-grid{min-width:860px}.tl-grid td{vertical-align:middle}.tl-cell .tl-val{cursor:pointer;border:1px dashed #0000;border-radius:7px;align-items:center;gap:6px;margin:-3px -6px;padding:3px 6px;display:inline-flex}.tl-cell .tl-val:hover{border-color:var(--line-2);background:var(--bg)}.tl-pct.ro.tl-val{width:100%;display:flex}.tl-savebar{min-height:20px;color:var(--muted);justify-content:flex-end;align-items:center;gap:6px;margin-bottom:4px;font-size:11.5px;display:flex}.tl-savedok{color:var(--ok);font-weight:700}.tl-saveerr{color:var(--risk);font-weight:700}.tl-dim{color:var(--muted)}.tl-extras-badge{color:var(--primary);margin-left:6px;font-size:10.5px;font-weight:800}.tl-save{width:16px;margin-right:6px;font-size:12px;font-weight:800;display:inline-block}.tl-save.saved{color:var(--ok)}.tl-save.error{color:var(--risk)}.tl-spin{border:2px solid var(--line-2);border-top-color:var(--primary);vertical-align:-1px;border-radius:50%;width:11px;height:11px;animation:.7s linear infinite tlspin;display:inline-block}@keyframes tlspin{to{transform:rotate(360deg)}}.tl-pct.ro .track{min-width:80px}.tl-grid input[type=date],.tl-grid select{font:inherit;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:7px;max-width:135px;padding:5px 7px;font-size:12.5px}.tl-grid input[type=date]:focus,.tl-grid select:focus,.tl-pct input:focus{outline:2px solid var(--primary);outline-offset:1px}.tl-name{cursor:pointer}.tl-name:hover b{color:var(--primary)}.tl-stage{color:var(--muted);margin-top:1px;font-size:10.5px;display:block}.tl-res{white-space:nowrap}.tl-res select{max-width:150px}.tl-extra{margin-left:6px;display:inline-block;position:relative}.tl-plus{border:1px dashed var(--line-2);background:var(--surface);width:24px;height:24px;color:var(--muted);cursor:pointer;border-radius:7px;font-size:11.5px;font-weight:800}.tl-plus.has{color:var(--primary);border-style:solid;border-color:var(--primary)}.tl-plus:hover{border-color:var(--primary);color:var(--primary)}.tl-pop{z-index:40;background:var(--surface);border:1px solid var(--line);min-width:260px;box-shadow:var(--sh-md);border-radius:10px;padding:8px;display:block;position:absolute;top:28px;right:0}.tl-pop-search{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--line-2);border-radius:8px;margin-bottom:6px;padding:6px 9px;font-size:12.5px;display:block}.tl-pop-search:focus{outline:2px solid var(--primary);outline-offset:1px}.tl-pop-list{overscroll-behavior:contain;max-height:240px;display:block;overflow-y:auto}.tl-pop-h{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:2px 6px 6px;font-size:11px;font-weight:800}.tl-pop-row{cursor:pointer;border-radius:7px;align-items:center;gap:8px;padding:5px 6px;font-size:12.5px;display:flex}.tl-pop-row:hover{background:var(--bg)}.tl-pop-row em{color:var(--muted);margin-left:auto;font-size:10.5px;font-style:normal}.tl-pop-empty{color:var(--muted);padding:6px;font-size:12px}.tl-pct{align-items:center;gap:8px;display:flex}.tl-pct input{width:52px;font:inherit;border:1px solid var(--line-2);text-align:right;border-radius:7px;padding:5px 6px;font-size:12.5px}.tl-pct .track{background:var(--line);border-radius:99px;flex:1;min-width:70px;height:7px;display:inline-block;overflow:hidden}.tl-pct .track i{background:var(--primary);border-radius:99px;height:100%;transition:width .2s;display:block}.tl-pctlab{color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right;width:34px;font-size:11.5px}.tl-empty{color:var(--muted);font-size:13px}.sgs-wrap{margin:0 0 16px;padding-bottom:4px;overflow-x:auto}.sgs{align-items:center;gap:4px;min-width:max-content;display:flex}.sgs-stage{border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;min-width:150px;font:inherit;text-align:left;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 50%,calc(100% - 13px) 100%,0 100%,13px 50%);padding:9px 20px 9px 24px;transition:border-color .15s;display:block;position:relative;overflow:hidden}.sgs-stage:first-of-type{clip-path:polygon(0 0,calc(100% - 13px) 0,100% 50%,calc(100% - 13px) 100%,0 100%);border-radius:8px 0 0 8px;padding-left:16px}.sgs-stage:hover{border-color:var(--primary)}.sgs-fill{background:color-mix(in srgb,var(--primary) 10%,transparent);pointer-events:none;width:0;position:absolute;inset:0}.sgs-stage.complete{background:color-mix(in srgb,var(--ok) 12%,var(--surface));border-color:color-mix(in srgb,var(--ok) 45%,var(--line-2))}.sgs-stage.complete .sgs-fill{display:none}.sgs-stage.current{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.sgs-stage.upcoming{opacity:.72}.sgs-label{line-height:1.25;display:block;position:relative}.sgs-label b{color:var(--ink);white-space:nowrap;font-size:12px;display:block}.sgs-label em{color:var(--muted);white-space:nowrap;font-size:10.5px;font-style:normal;display:block}.sgs-gate{cursor:pointer;background:0 0;border:none;align-items:center;padding:4px;display:flex}.sgs-diamond{border:2px solid var(--muted);background:var(--surface);border-radius:2.5px;width:13px;height:13px;transition:transform .15s;display:block;transform:rotate(45deg)}.sgs-gate:hover .sgs-diamond{transform:rotate(45deg)scale(1.18)}.sgs-gate.complete .sgs-diamond{background:var(--ok);border-color:var(--ok)}.sgs-gate.overdue .sgs-diamond{border-color:var(--risk);box-shadow:0 0 0 2.5px color-mix(in srgb,var(--risk) 25%,transparent)}.sgs-gate.upcoming .sgs-diamond{border-color:var(--line-2)}.na-row{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.na-row:hover{background:var(--bg)}.na-row:hover .na-go{opacity:1}.na-ic{border-radius:8px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.na-row.risk .na-ic{background:color-mix(in srgb,var(--risk) 12%,transparent);color:var(--risk)}.na-row.warn .na-ic{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn)}.na-row.info .na-ic{background:var(--bg);color:var(--muted)}.na-text{flex:1;line-height:1.4}.na-go{opacity:0;color:var(--muted);transition:opacity .15s}.na-more{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:none;padding:8px 10px 2px;font-size:12px;font-weight:700}.na-clean{color:var(--ok);align-items:center;gap:8px;margin:2px 0;font-size:13px;display:flex}.htd{flex:none;align-items:center;gap:4px;display:inline-flex}.htd-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.htd-dot.green{background:var(--ok)}.htd-dot.amber{background:var(--warn)}.htd-dot.red{background:var(--risk)}.cp-empty{color:var(--muted);max-width:560px;font-size:13px;line-height:1.6}.cp-row{cursor:pointer}.cp-row:hover td{background:var(--bg)}.cp-purpose{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:260px;margin-top:2px;font-size:11px;display:block;overflow:hidden}.cp-chan{align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.cp-sched{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12.5px}.cp-att em{color:var(--primary);margin-left:4px;font-size:11px;font-style:normal;font-weight:800}.cp-ext{letter-spacing:.03em;color:var(--muted);border:1px solid var(--line-2);text-transform:uppercase;border-radius:5px;margin-left:6px;padding:0 4px;font-size:10px;font-weight:800}.cp-dim{color:var(--muted)}.cp-actcol{text-align:right;width:40px}.cf-att{border:1px solid var(--line-2);background:var(--surface);border-radius:9px;padding:8px}.cf-att-search{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--line-2);border-radius:7px;margin-bottom:6px;padding:6px 9px;font-size:12.5px;display:block}.cf-att-search:focus{outline:2px solid var(--primary);outline-offset:1px}.cf-att-list{overscroll-behavior:contain;max-height:170px;overflow-y:auto}.fld .cf-att-row{cursor:pointer;text-align:left;color:var(--ink);border-radius:7px;justify-content:flex-start;align-items:center;gap:9px;padding:5px 6px;font-size:12.5px;font-weight:400;display:flex}.fld .cf-att-row:hover{background:var(--bg)}.fld .cf-att-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);flex:none;margin:0;padding:0}.cf-att-name{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.cf-att-cat{color:var(--muted);flex:none;font-size:10.5px;font-style:normal}.erh-duo{flex-direction:column;align-items:center;line-height:1.2;display:flex}.erh-duo b{font-size:12px}.erh-duo em{opacity:.75;font-size:10px;font-style:normal;font-weight:650}.erh-meet{align-items:center;gap:5px;display:inline-flex}.undecl-tag{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--line-2);vertical-align:1px;border-radius:5px;margin-left:7px;padding:0 5px;font-size:9.5px;font-weight:800;display:inline-block}.ra-add{align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.ra-add select,.ra-add input{font:inherit;border:1px solid var(--line-2);border-radius:7px;padding:5px 8px;font-size:12.5px}.ra-add input{text-align:right;width:64px}.ra-cell{cursor:pointer;border-radius:7px;margin:-2px -4px;padding:2px 4px;display:block}.ra-cell:hover{background:var(--bg)}.ra-inp{width:74px;font:inherit;border:1px solid var(--primary);text-align:right;border-radius:7px;padding:5px 8px;font-size:12.5px}.ra-declare{border:1px dashed var(--line-2);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:7px;padding:3px 9px;font-size:11.5px}.ra-declare:hover{border-color:var(--primary);color:var(--primary)}.gbar.ext{background:repeating-linear-gradient(45deg,var(--primary) 0 6px,color-mix(in srgb,var(--primary) 45%,#fff) 6px 12px)!important}.gbar.ext[style*=--risk]{background:repeating-linear-gradient(45deg,var(--risk) 0 6px,color-mix(in srgb,var(--risk) 45%,#fff) 6px 12px)!important}.ext-swatch{background:repeating-linear-gradient(45deg,var(--primary) 0 3px,color-mix(in srgb,var(--primary) 45%,#fff) 3px 6px);border-radius:3px;flex:none;width:11px;height:11px;margin-right:2px;display:inline-block}.lens-seg button{font-size:11.5px}.lens-strip{color:var(--ink-2);background:color-mix(in srgb,var(--primary) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:9px;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:12px;padding:8px 12px;font-size:12.5px;display:flex}.lens-strip b{color:var(--primary)}.lens-strip em{color:var(--muted);margin-left:auto;font-size:11px;font-style:normal}.ext-legend{color:var(--muted);gap:18px;margin-top:10px;font-size:11.5px;display:flex}.ext-legend .sw{vertical-align:-1px;border-radius:3px;width:22px;height:11px;margin-right:6px;display:inline-block}.ext-legend .sw.solid{background:var(--primary)}.ext-legend .sw.striped{background:repeating-linear-gradient(45deg,var(--primary) 0 5px,color-mix(in srgb,var(--primary) 45%,#fff) 5px 10px)}.kcard.ext{padding-left:14px;position:relative}.kcard.ext:before{content:"";background:repeating-linear-gradient(45deg,var(--primary) 0 4px,color-mix(in srgb,var(--primary) 45%,#fff) 4px 8px);border-radius:8px 0 0 8px;width:6px;position:absolute;top:0;bottom:0;left:0}th.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.th-sort:hover{color:var(--primary)}.sort-ind{opacity:.35;margin-left:5px;font-size:9px}.sort-ind.on{opacity:1;color:var(--primary)}.task-count{font:inherit;color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,transparent);cursor:pointer;border:none;border-radius:5px;min-width:26px;height:24px;padding:0 8px;font-size:12.5px;font-weight:400}.task-count:hover{background:color-mix(in srgb,var(--primary) 18%,transparent)}.drill-row{cursor:pointer}.drill-row:hover td{background:var(--bg)}.hyg{cursor:pointer;border:none;border-radius:8px;width:28px;height:28px;font-size:13px;font-weight:800}.hyg.ok{background:var(--ok-bg);color:var(--ok)}.hyg.bad{background:var(--risk-bg);color:var(--risk)}.hyg:hover{outline-offset:1px;outline:2px solid}.raidsum{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.rs-card{text-align:left;font:inherit;background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:12px;padding:14px 16px 13px;transition:border-color .12s,box-shadow .12s,background .12s}.rs-card:hover{border-color:color-mix(in srgb,var(--rs) 45%,var(--line));box-shadow:0 2px 10px #0f26370f}.rs-card.active{border-color:var(--rs);background:color-mix(in srgb,var(--rs) 4%,var(--surface));box-shadow:inset 0 0 0 1px var(--rs)}.rs-top{align-items:center;gap:9px;margin-bottom:12px;display:flex}.rs-mono{background:color-mix(in srgb,var(--rs) 12%,transparent);width:26px;height:26px;color:var(--rs);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:12.5px;font-weight:800;display:inline-flex}.rs-name{color:var(--ink);letter-spacing:.01em;font-size:13px;font-weight:650}.rs-n{color:var(--ink);font-variant-numeric:tabular-nums;margin-left:auto;font-size:24px;font-weight:750;line-height:1}.rs-bar{border-radius:99px;gap:2px;height:8px;margin-bottom:9px;display:flex;overflow:hidden}.rs-bar i{border-radius:2px;display:block}.rs-bar i.empty{background:var(--line);opacity:.6;flex:1}.rs-legend{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 12px;font-size:11px;display:flex}.rs-legend span{align-items:center;gap:5px;display:inline-flex}.rs-legend i{border-radius:99px;width:7px;height:7px;display:inline-block}.rs-none{color:var(--muted-2)}@media (max-width:1100px){.raidsum{grid-template-columns:repeat(2,1fr)}}.heatwrap{grid-template-columns:minmax(380px,640px) 1fr;align-items:start;gap:26px;display:grid}.heattop{border-left:1px solid var(--line);flex-direction:column;gap:4px;min-width:0;padding-left:24px;display:flex}.ht-hd{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:11px;font-weight:800}.ht-row{cursor:pointer;border-radius:9px;align-items:flex-start;gap:10px;margin:0 -8px;padding:7px 8px;display:flex}.ht-row:hover{background:var(--bg)}.ht-sev{color:#fff;font-variant-numeric:tabular-nums;border-radius:6px;flex:none;justify-content:center;align-items:center;width:30px;height:22px;margin-top:1px;font-size:11.5px;font-weight:800;display:inline-flex}.ht-body{flex-direction:column;gap:1px;min-width:0;display:flex}.ht-desc{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.ht-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}@media (max-width:1100px){.heatwrap{grid-template-columns:1fr}.heattop{border-left:none;border-top:1px solid var(--line);padding-top:14px;padding-left:0}}.kpi.clickable{cursor:pointer;transition:box-shadow .12s,transform .12s}.kpi.clickable:hover{transform:translateY(-1px);box-shadow:0 4px 14px #0f26371a}.kpi.clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sec-anchor{scroll-margin-top:96px}:is([data-role=viewer] :is(button,a):has(svg[data-i=plus]),[data-role=viewer] :is(button,a):has(svg[data-i=edit]),[data-role=viewer] :is(button,a):has(svg[data-i=trash]),[data-role=viewer] :is(button,a):has(svg[data-i=upload]),[data-role=viewer] :is(button,a):has(svg[data-i=gear]),[data-role=viewer] :is(button,a):has(svg[data-i=sync])){opacity:.35;pointer-events:none;cursor:default;filter:grayscale()}[data-role=viewer] fieldset:disabled :is(input,select,textarea){color:inherit;opacity:1;appearance:none;pointer-events:none;background:0 0;border-color:#0000;padding-left:0}[data-role=viewer] .ro-val{font-weight:600}.cc-toolbar{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.cc-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cc-nav{align-items:center;gap:6px;display:flex}.cc-label{white-space:nowrap;margin-left:6px;font-size:14px}.cc-seg{border:1px solid var(--line-2);border-radius:8px;display:inline-flex;overflow:hidden}.cc-seg button{font:inherit;background:var(--surface);color:var(--ink-2);cursor:pointer;border:0;padding:6px 12px;font-size:12.5px;font-weight:600}.cc-seg button.on{background:var(--primary);color:#fff}.cc-toggle{color:var(--ink-2);cursor:pointer;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.cc-stats{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12.5px}.cc-grid{grid-template-columns:repeat(7,1fr);gap:6px;padding:14px 16px 6px;display:grid}.cc-dow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0 4px 2px;font-size:10.5px;font-weight:700}.cc-day{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;gap:4px;min-width:0;padding:6px;display:flex}.cc-grid.week .cc-day{min-height:220px}.cc-grid.month .cc-day{cursor:pointer;min-height:96px}.cc-grid.month .cc-day:hover{border-color:var(--primary)}.cc-day.muted{opacity:.45}.cc-day.today{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.cc-day.picked{background:var(--primary-50)}.cc-daynum{color:var(--ink-2);padding:0 2px 2px;font-size:12px;font-weight:700}.cc-daymon{color:var(--muted);font-weight:500}.cc-chip{text-align:left;border:1px solid color-mix(in srgb,var(--cc) 35%,transparent);border-left:3px solid var(--cc);background:color-mix(in srgb,var(--cc) 9%,var(--surface));width:100%;min-width:0;color:var(--ink);font:inherit;cursor:pointer;border-radius:7px;align-items:center;gap:5px;padding:4px 6px;font-size:11.5px;transition:all .12s;display:flex}.cc-chip:hover{background:color-mix(in srgb,var(--cc) 18%,var(--surface))}.cc-chip.warn{box-shadow:0 0 0 2px color-mix(in srgb,var(--risk) 45%,transparent)}.cc-chip.compact{padding:2px 5px;font-size:11px}.cc-time{font-variant-numeric:tabular-nums;color:var(--cc);flex:none;font-weight:700}.cc-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.cc-proj{color:var(--muted);flex:none;margin-left:auto;font-size:10px;font-weight:700}.cc-warn{width:13px;height:13px;color:var(--risk);flex:none}.cc-date{background:var(--cc);color:#fff;width:100%;font:inherit;cursor:pointer;text-align:left;border:0;border-radius:6px;align-items:center;gap:5px;min-width:0;padding:3px 6px;font-size:10.5px;font-weight:700;display:flex}.cc-date .ic{flex:none;width:11px;height:11px}.cc-date.done{opacity:.55;text-decoration:line-through}.cc-more{color:var(--muted);padding:0 4px;font-size:11px;font-weight:600}.cc-daypanel{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex-direction:column;gap:5px;margin:6px 16px 12px;padding:10px 12px;display:flex}.cc-daypanel-hd{align-items:center;gap:10px;margin-bottom:4px;display:flex}.cc-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 16px 14px;font-size:11.5px;display:flex}.cc-legend span{align-items:center;gap:5px;display:inline-flex}.cc-legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.cc-legend .ic{width:12px;height:12px}.cc-adhoc{flex-wrap:wrap;gap:8px;padding:12px 16px 16px;display:flex}.cc-adhoc .cc-chip{width:auto}@media (max-width:920px){.cc-grid.week{grid-template-columns:1fr}.cc-grid.week .cc-dow{display:none}.cc-grid.week .cc-day{min-height:0}.cc-grid.month .cc-day{min-height:60px}.cc-chip.compact .cc-name{display:none}.cc-stats{margin-left:0}}.ai-bar{border:1px solid var(--line-2);border-left:3px solid var(--primary);background:var(--surface-2);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px;padding:9px 12px;font-size:13px;display:flex}.ai-badge{letter-spacing:.03em;color:#3730a3;background:#e0e7ff;border:1px solid #c7d2fe;border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:800;display:inline-block}.brand-preview{background:var(--sidebar,#0f2436);color:#e6eef5;border:0;border-radius:10px;align-items:center;gap:11px;padding:14px 12px;display:flex}.brand-preview .name{color:#e6eef5}.mi-drop{border:1.5px dashed var(--line-2);background:var(--surface-2);cursor:pointer;border-radius:10px;align-items:center;gap:12px;margin-bottom:6px;padding:14px 16px;transition:all .12s;display:flex}.mi-drop:hover,.mi-drop.on{border-color:var(--primary);background:var(--primary-50)}.mi-drop .ic{width:22px;height:22px;color:var(--primary);flex:none}.sw-card{max-width:560px}.sw-steps{flex-wrap:wrap;gap:4px;margin:4px 0 16px;padding:0;list-style:none;display:flex}.sw-steps li{color:var(--muted);background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-size:11.5px;font-weight:600;display:flex}.sw-steps li span{background:var(--line-2);width:18px;height:18px;color:var(--ink-2);border-radius:50%;place-items:center;font-size:10.5px;display:grid}.sw-steps li.on{color:var(--primary);background:var(--primary-50)}.sw-steps li.on span{background:var(--primary);color:#fff}.sw-steps li.done{color:var(--ok)}.sw-steps li.done span{background:var(--ok);color:#fff}.sw-h{align-items:baseline;gap:8px;margin:6px 0;font-size:15px;display:flex}.sw-p{color:var(--ink-2);margin:6px 0;font-size:13px;line-height:1.5}.sw-ok,.sw-bad{align-items:center;gap:6px;margin:8px 0;font-size:13px;display:flex}.sw-ok{color:var(--ok)}.sw-bad{color:var(--risk)}.sw-ok .ic,.sw-bad .ic{width:15px;height:15px}.sw-details{margin:10px 0;font-size:13px}.sw-details summary{cursor:pointer;color:var(--muted);font-weight:600}.sw-details .sw-p{margin-left:14px}.sw-kv{grid-template-columns:110px 1fr auto;align-items:center;gap:8px;margin:6px 0;font-size:12.5px;display:grid}.sw-kv code{background:var(--surface-2);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:4px 8px;font-size:12px;overflow:hidden}.sw-link{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.rdoc{border-collapse:collapse;color:#1c2a36;width:100%;font-family:Public Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px;line-height:1.5;display:block}.rdoc>thead,.rdoc>tbody,.rdoc>thead>tr,.rdoc>tbody>tr,.rdoc>thead>tr>td,.rdoc>tbody>tr>td{padding:0;display:block}.rdoc-run{display:none}.rdoc-grid{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:224px minmax(0,1fr);display:grid;overflow:hidden}.rdoc-panel{background:#f3f6f8;border-right:1px solid #e3e8ed;flex-direction:column;gap:20px;padding:26px 20px 22px 24px;display:flex}.rdoc-brand{align-items:center;gap:10px;min-width:0;display:flex}.rdoc-logo{color:#0f2436;background:#fff;border:1px solid #e3e8ed;border-radius:10px;flex:none;place-items:center;width:38px;height:38px;font-size:16px;font-weight:800;display:grid;overflow:hidden}.rdoc-logo img{object-fit:contain;box-sizing:border-box;width:100%;height:100%;padding:3px;display:block}.rdoc-brand-name{letter-spacing:-.01em;color:#0f2436;flex-direction:column;gap:1px;min-width:0;font-size:14.5px;font-weight:700;display:flex}.rdoc-brand-sub{color:#5b6b7a;font-size:11px;font-weight:400}.rdoc-group{flex-direction:column;gap:6px;display:flex}.rdoc-lab{letter-spacing:.08em;text-transform:uppercase;color:#5b6b7a;margin-bottom:2px;font-size:10.5px;font-weight:700}.rdoc-fact{flex-direction:column;gap:1px;margin-bottom:4px;display:flex}.rdoc-fact-k{color:#5b6b7a;font-size:11px}.rdoc-fact-v{font-weight:600}.rdoc-hrow{border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;padding:8px 12px;font-size:12.5px;font-weight:700;display:flex}.rdoc-hrow-k{letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;font-weight:600}.rdoc-hrow>span:last-child{white-space:nowrap;text-align:right;margin-left:auto}.rdoc-call{background:#fff8e6;border:1px solid #f5dfa0;border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;font-size:12.5px;display:flex}.rdoc-call.teal{background:#e6f3f8;border-color:#b9dcea}.rdoc-call.quiet{background:#fff;border-color:#e3e8ed}.rdoc-call-lab{letter-spacing:.08em;text-transform:uppercase;color:#92400e;font-size:10.5px;font-weight:700}.rdoc-call.teal .rdoc-call-lab{color:#0b5c80}.rdoc-call.quiet .rdoc-call-lab{color:#5b6b7a}.rdoc-call ul{margin:0;padding-left:16px;font-size:12.5px;line-height:1.45}.rdoc-call p{margin:0}.rdoc-body{min-width:0;padding:28px 32px 22px 28px}.rdoc-kicker{letter-spacing:.08em;text-transform:uppercase;color:#5b6b7a;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.rdoc h1{color:#0f2436;letter-spacing:0;margin:0 0 20px;font-family:"Source Serif 4",Georgia,Times New Roman,serif;font-size:28px;font-weight:600;line-height:1.15}.rdoc h2{color:#0f2436;flex-wrap:wrap;align-items:baseline;gap:8px;margin:20px 0 6px;font-family:"Source Serif 4",Georgia,Times New Roman,serif;font-size:16.5px;font-weight:600;display:flex}.rdoc-sub{color:#5b6b7a;font-family:Public Sans,system-ui,sans-serif;font-size:11.5px;font-weight:400}.rdoc ul{flex-direction:column;gap:3px;margin:0;padding-left:18px;display:flex}.rdoc-empty{color:#5b6b7a;margin:0;font-style:italic}.rdoc-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:20px;display:grid}.rdoc-two h2{margin-top:0}.rdoc table.rt{border-collapse:collapse;width:100%;margin-top:4px;font-size:12.5px}.rdoc table.rt th{text-align:left;color:#5b6b7a;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #e3e8ed;padding:6px 8px 6px 0;font-size:10.5px;font-weight:600}.rdoc table.rt td{vertical-align:top;border-bottom:1px solid #eef1f4;padding:8px 10px 8px 0}.rdoc table.rt td:last-child,.rdoc table.rt th:last-child{padding-right:0}.rdoc-chip{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-block}.rdoc-tag{color:#5b6b7a;margin-right:6px;font-size:10.5px;font-weight:700;display:inline-block}.rdoc-late{color:#b91c1c;font-weight:600}.rdoc-note{color:#5b6b7a;font-size:11.5px}.rdoc-badge{color:#166534;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;background:#dcfce7;border-radius:999px;padding:1px 8px;font-family:Public Sans,system-ui,sans-serif;font-size:10.5px;font-weight:700;display:inline-block}.rdoc-foot{color:#8a97a3;border-top:1px solid #e3e8ed;margin-top:24px;padding-top:10px;font-size:11px}@media (max-width:760px){.rdoc-grid{grid-template-columns:1fr}.rdoc-panel{border-bottom:1px solid #e3e8ed;border-right:0}.rdoc-two{grid-template-columns:1fr}}.lic-banner{color:#92400e;background:#fef3c7;border-bottom:1px solid #fcd34d;justify-content:space-between;align-items:center;gap:12px;padding:8px 26px;font-size:12.5px;font-weight:600;display:flex}.lic-banner.bad{color:#b91c1c;background:#fee2e2;border-bottom-color:#fca5a5}.tl-num{white-space:nowrap;width:52px}.tl-outline{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.tl-stagerow td{background:var(--surface-2);border-top:1px solid var(--line);z-index:5;padding:0;position:sticky;top:37px}.tl-stagerow td:first-child{z-index:6;left:0}.tl-stagerow .tl-stagebtn{width:auto;max-width:calc(100vw - 40px);position:sticky;left:0}.tl-stagerow.over td{box-shadow:inset 0 2px 0 var(--primary),inset 0 -2px 0 var(--primary);background:#e0f2fe}.tl-stagebtn{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;font-size:12.5px;display:flex}.tl-stagebtn:hover{background:var(--bg)}.tl-stagebtn b{letter-spacing:-.01em;font-weight:800}.tl-chev{color:var(--muted);width:10px;transition:transform .15s;display:inline-block}.tl-chev.openx{transform:rotate(90deg)}.tl-stageletter{color:var(--primary);border-right:1px solid var(--line-2);padding-right:10px;font-size:12px;font-weight:800;line-height:1}.tl-stagecount,.tl-stagedates{color:var(--muted);white-space:nowrap;font-size:11.5px}.tl-stagestatus{vertical-align:middle;padding:0 13px!important}.tl-taskrow[draggable=true]{cursor:grab}.tl-taskrow[draggable=true]:active{cursor:grabbing}.tl-notecol{text-align:center;width:40px}.tl-note{color:#b6c0ca;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;width:28px;height:28px;display:inline-grid;position:relative}.tl-note:hover{border-color:var(--line-2);background:var(--bg);color:var(--ink-2)}.tl-note.has{color:var(--primary)}.tl-notecount{background:var(--primary);color:#fff;text-align:center;border-radius:999px;min-width:15px;height:15px;padding:0 4px;font-size:9.5px;font-weight:800;line-height:15px;position:absolute;top:-4px;right:-4px}.st-pill{text-align:center;white-space:nowrap;box-sizing:border-box;min-width:104px;display:inline-block}.tl-grid td.num{white-space:nowrap}.kflags{align-items:center;gap:6px;margin-top:6px;display:flex}.kflags .st-pill{min-width:0;padding:1px 7px;font-size:10.5px}.knote{color:var(--primary);align-items:center;gap:3px;font-size:11px;font-weight:700;display:inline-flex}.knote svg{width:13px;height:13px}td.nowrap,th.nowrap{white-space:nowrap}.tablewrap th.w-grow{width:31%}.tablewrap th.w-date{width:118px}.tablewrap th.w-type{width:150px}.tablewrap th.w-when{width:84px}.tablewrap th.w-status{width:96px}.lic-form{grid-template-columns:2fr 2fr 1fr 1fr 1fr;gap:0 12px;display:grid}.lic-email{grid-template-columns:2fr 2fr 1fr;align-items:end;gap:0 12px;display:grid}@media (max-width:760px){.lic-form,.lic-email{grid-template-columns:1fr 1fr}.lic-form>[style*=grid-column]{grid-column:1/-1!important}}@media (max-width:560px){.lic-form,.lic-email{grid-template-columns:1fr}.tablewrap table{min-width:760px}.tablewrap th:first-child:not(.num),.tablewrap td:first-child:not(.num){min-width:200px}}.form-grid.cols3{grid-template-columns:repeat(3,1fr)}@media (max-width:560px){.form-grid.cols3{grid-template-columns:1fr}}.st-legend{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0 0 10px;font-size:11.5px;display:flex}.st-legend>span{align-items:center;gap:5px;font-weight:600;display:inline-flex}.st-legend .dot{border-radius:50%;width:8px;height:8px;display:inline-block}.st-legend em{color:var(--muted);margin-left:auto;font-style:normal}.tl-updated{color:var(--muted);white-space:nowrap;font-size:11.5px}.np-scrim{z-index:120;background:#0f172a2e;position:fixed;inset:0}.np{background:var(--surface);flex-direction:column;width:min(440px,100%);animation:.18s ease-out npin;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 32px #0f172a2e}@keyframes npin{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.np-hd{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:16px 16px 12px 20px;display:flex}.np-title{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.np-title b{font-size:15px;line-height:1.25}.np-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-weight:700;overflow:hidden}.np-state{border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-top:2px;padding:2px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.np-state .dot{border-radius:50%;width:7px;height:7px}.np-hd .x{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:30px;height:30px;color:var(--ink-2);border-radius:8px;flex:none;place-items:center;display:grid}.np-bd{flex:1;padding:14px 16px 20px 20px;overflow:auto}.nl{flex-direction:column;gap:10px;display:flex}.nl-add{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.nl-add textarea{width:100%;font:inherit;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);resize:vertical;box-sizing:border-box;border-radius:8px;padding:8px 10px;font-size:13px}.nl-add textarea:focus{outline:2px solid var(--primary);outline-offset:1px}.nl-item{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 12px}.nl-item.risk{background:#fff8e6;border-color:#f5dfa0}.nl-item.import{border-style:dashed}.nl-meta{color:var(--muted);align-items:center;gap:6px;margin-bottom:4px;font-size:11px;display:flex}.nl-meta b{color:var(--ink-2)}.nl-meta em{letter-spacing:.06em;text-transform:uppercase;background:var(--surface-2);color:var(--ink-2);border-radius:999px;padding:1px 6px;font-size:9.5px;font-style:normal;font-weight:800}.nl-item.risk .nl-meta em{color:#92400e;background:#fef3c7}.nl-del{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;margin-left:auto;display:grid}.nl-del:hover{color:var(--risk);background:var(--surface)}.nl-del svg{width:13px;height:13px}.nl-text{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.45}.nl-empty{color:var(--muted);margin:0;font-size:12.5px}.stg-list{flex-direction:column;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.stg-row{border:1px solid var(--line);background:var(--bg);border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;display:flex}.stg-letter{color:var(--primary);border-right:1px solid var(--line-2);flex:none;padding-right:10px;font-size:12px;font-weight:800;line-height:1}.stg-name{text-align:left;min-width:0;font:inherit;color:var(--ink);cursor:text;background:0 0;border:1px dashed #0000;border-radius:7px;flex:1;padding:4px 6px;font-size:13px;font-weight:600}.stg-name:hover{border-color:var(--line-2);background:var(--surface)}.stg-count{color:var(--muted);white-space:nowrap;font-size:11px}.stg-tools{gap:4px;display:flex}.stg-tools .btn.sm{min-width:0;padding:3px 7px}.stg-remove{color:var(--ink-2);flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;padding:6px 0 2px;font-size:12px;display:flex}.inst-wrap{background:linear-gradient(160deg,var(--bg) 0%,#dbe7f0 100%);min-height:100vh;padding:32px 16px}.inst-card{background:var(--surface);border:1px solid var(--line);max-width:760px;box-shadow:var(--sh-lg);border-radius:16px;margin:0 auto;padding:28px 32px 24px}.inst-h1{letter-spacing:-.01em;margin:0 0 4px;font-size:24px}.inst-h2{align-items:baseline;gap:10px;margin:0 0 6px;font-size:15px;display:flex}.inst-n{background:var(--primary);color:#fff;border-radius:50%;align-self:center;place-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:inline-grid}.inst-sec{border-top:1px solid var(--line);padding:16px 0}.inst-key{border:1px solid var(--primary);background:var(--bg);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.inst-key code{letter-spacing:.08em;font-size:18px;font-weight:700}.inst-val{grid-template-columns:200px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 0;font-size:12.5px;display:grid}.inst-k{color:var(--ink-2);font-weight:700}.inst-v{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inst-list{margin:6px 0;padding-left:20px;font-size:13px;line-height:1.6}.inst-deploy{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.inst-pre{color:#e2e8f0;background:#0f2436;border-radius:10px;margin:8px 0 0;padding:12px 14px;font-size:12px;line-height:1.5;overflow:auto}.inst-note{border-radius:10px;align-items:center;gap:8px;margin:10px 0;padding:10px 12px;font-size:13px;display:flex}.inst-note svg,.inst-err svg,.ga-err svg{flex:none;width:18px;height:18px}.inst-note.ok{color:#166534;background:#dcfce7}.inst-note.bad{color:#b91c1c;background:#fee2e2}.inst-note:not(.ok):not(.bad){color:#92400e;background:#fef3c7}.inst-note>svg{flex:none}.inst-note>span,.inst-note>div{flex:1}.inst-note code{background:#0000000f;border-radius:4px;padding:0 4px;font-size:12px}.inst-err{color:var(--risk);align-items:center;gap:8px;font-size:13px;display:flex}.inst-foot{color:var(--muted);margin:8px 0 0;font-size:12px}@media (max-width:600px){.inst-card{padding:20px 16px}.inst-val{grid-template-columns:1fr;gap:4px}}@media (max-width:560px){.matrix{grid-template-columns:auto repeat(5,minmax(0,1fr));gap:4px}.matrix-cell{aspect-ratio:1.2;border-radius:6px;min-height:0;padding:2px}.matrix-dot{width:18px;height:18px}.raid-matrix,.raid-escalation{padding:12px}.esc-list{max-height:none}}.kflags{flex-wrap:wrap}.kchip{background:var(--bg);color:var(--muted);border:1px solid var(--line-2);white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-flex}.kchip.issue{color:var(--risk);border-color:color-mix(in srgb,var(--risk) 40%,transparent);background:color-mix(in srgb,var(--risk) 8%,transparent);cursor:pointer}.kchip.issue:hover{background:color-mix(in srgb,var(--risk) 16%,transparent)}.kcard.cancelled{opacity:.6;cursor:default}.kcard.cancelled .kt,.tl-taskrow.tl-cancelled .tl-name b,tr.tl-cancelled .tl-name b{color:var(--muted);text-decoration:line-through}tr.tl-cancelled .tl-val,tr.tl-cancelled .tl-res{opacity:.65}.linked-task{background:var(--bg);border:1px solid var(--line-2);border-radius:9px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:8px 12px;font-size:12.5px;display:flex}.linked-task em{color:var(--muted);flex-basis:100%;font-size:11.5px;font-style:normal}.na-item{border-radius:9px}.na-item.parking{background:var(--bg)}.na-actions{flex-wrap:wrap;gap:6px;padding:0 10px 8px 46px;display:flex}.na-actions .btn.sm{padding:3px 9px;font-size:11.5px}.na-park{flex-wrap:wrap;align-items:center;gap:6px;padding:0 10px 10px 46px;display:flex}.na-park input{font:inherit;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:7px;padding:5px 8px;font-size:12.5px}.na-park input[type=text],.na-park input:not([type]){flex:1;min-width:160px}@media (max-width:640px){.na-actions,.na-park{padding-left:10px}}.tape{background:repeating-linear-gradient(135deg,#facc15 0 7px,#111 7px 14px)}.st-pill.blocked{color:#111;background:repeating-linear-gradient(135deg,#facc15 0 7px,#111 7px 14px);padding:2px 5px}.st-pill.blocked>span{color:#111;background:#facc15;border-radius:3px;padding:0 6px;line-height:1.5;display:inline-block}.kflags .st-pill.blocked{padding:1px 4px}.dot.blocked,.kdot.blocked{background:repeating-linear-gradient(135deg,#facc15 0 3px,#111 3px 6px)!important}.prog .track i.blocked{background:repeating-linear-gradient(135deg,#facc15 0 5px,#111 5px 10px)!important}.hchip.tape-edge{border-bottom:3px solid;border-image:repeating-linear-gradient(135deg,#facc15 0 5px,#111 5px 10px) 1;box-shadow:inset 0 -3px #0000}.cadence-bar{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;display:flex}.cadence-month{font:inherit;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:7px;padding:5px 8px;font-size:13px}.cadence-hint{flex-basis:100%;margin-left:0!important}.weeklies-box{border:1px solid var(--line-2);border-left:3px solid var(--ok);background:var(--surface-2);border-radius:8px;margin:0 0 12px;padding:9px 12px}.weeklies-box.thin{border-left-color:var(--warn)}.weeklies-hd{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.weeklies-miss{color:var(--muted);font-weight:400}.weeklies-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.weekly-pip{background:var(--surface);border:1px solid var(--line-2);border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.weekly-pip i{border-radius:50%;width:8px;height:8px;display:inline-block}.mfacts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px;display:grid}.mfact{border:1px solid var(--line-2);background:var(--surface);border-radius:8px;padding:8px 10px}.mfact .k{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:700}.mfact .v{color:var(--ink);margin-top:2px;font-size:13px;font-weight:600}.mfact.ok{border-left:3px solid var(--ok)}.mfact.warn{border-left:3px solid var(--warn)}.mfact.risk{border-left:3px solid var(--risk)}.mfacts.doc{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:6px 0 12px}.mfacts.doc .mfact{background:#fff;border-color:#e5e7eb}.hchip.ms-completed{color:#166534;background:#dcfce7}.hchip.ms-missed{color:#b91c1c;background:#fee2e2}.hchip.ms-open{color:#334155;background:#e2e8f0}.rdoc-trend{flex-wrap:wrap;gap:6px 10px;font-size:11px;display:flex}.rdoc-trend span{align-items:center;gap:4px;display:inline-flex}.rdoc-trend i{border-radius:50%;width:9px;height:9px;display:inline-block}.rdoc-missing{color:#9a3412;margin-top:6px;font-size:11px}@media (max-width:640px){.mfacts,.mfacts.doc{grid-template-columns:1fr 1fr}}@media print{.mfacts.doc{grid-template-columns:repeat(3,1fr)}}.ga-wrap{background:linear-gradient(160deg,var(--bg) 0%,#dbe7f0 100%);min-height:100vh;color:var(--ink);padding:0 16px 40px}.ga-top{justify-content:space-between;align-items:center;max-width:980px;margin:0 auto;padding:18px 0;display:flex}.ga-hero{background:var(--surface);border:1px solid var(--line);max-width:980px;box-shadow:var(--sh-lg);border-radius:16px;margin:16px auto 0;padding:36px 32px}.ga-lockup{width:auto;height:28px;display:block}.ga-wordmark{margin:10px 0 14px}.ga-wordmark img{width:auto;max-width:100%;height:84px;display:block}@media (max-width:760px){.ga-wordmark img{height:56px}}.ga-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);font-size:11.5px;font-weight:800}.ga-hero h1{letter-spacing:-.02em;margin:8px 0 10px;font-size:34px;line-height:1.1}.ga-lead{color:var(--ink-2);max-width:720px;margin:0;font-size:15.5px;line-height:1.6}.ga-cta{margin-top:18px;padding:10px 18px;font-size:14px}.ga-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:980px;margin:18px auto 0;display:grid}.ga-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.ga-card h3{margin:0 0 6px;font-size:14.5px}.ga-card p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.55}.ga-tiers,.ga-steps,.ga-request{max-width:980px;margin:28px auto 0}.ga-tiers h2,.ga-steps h2,.ga-request h2{letter-spacing:-.01em;margin:0 0 12px;font-size:22px}.ga-tier-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.ga-tier{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.ga-tier h3{margin:0;font-size:16px}.ga-tier-sub{color:var(--muted);margin:2px 0 10px;font-size:12.5px}.ga-tier ul{color:var(--ink-2);margin:0;padding-left:18px;font-size:13px;line-height:1.6}.ga-steps ol{color:var(--ink-2);margin:0;padding-left:22px;font-size:14px;line-height:1.7}.ga-fine{color:var(--muted);margin:10px 0 0;font-size:12.5px}.ga-request{background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-lg);border-radius:16px;padding:26px 28px}.ga-form{grid-template-columns:1fr 1fr;gap:12px 16px;margin-top:16px;display:grid}.ga-form label{color:var(--ink-2);flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;display:flex}.ga-form input,.ga-form select,.ga-form textarea{font:inherit;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:8px;padding:9px 11px;font-size:14px}.ga-form textarea{resize:vertical}.ga-full{grid-column:1/-1}.ga-hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.ga-err{color:var(--risk);align-items:center;gap:8px;font-size:13px;display:flex}.ga-done{background:color-mix(in srgb,var(--ok) 10%,transparent);color:var(--ink);border-radius:10px;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;font-size:14px;display:flex}.ga-done svg{color:var(--ok);flex:none;width:22px;height:22px}.ga-foot{max-width:980px;color:var(--muted);text-align:center;margin:32px auto 0;font-size:12px}@media (max-width:760px){.ga-grid,.ga-tier-grid,.ga-form{grid-template-columns:1fr}.ga-hero{padding:26px 20px}.ga-hero h1{font-size:28px}.ga-request{padding:20px 18px}}
