:root{color-scheme:light;font-family:Segoe UI Variable Text,Segoe UI,Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased;--bg: #f3f4f6;--surface: #ffffff;--surface-2: #fafbfc;--surface-3: #f1f3f5;--line: #e4e7eb;--line-2: #d5dae0;--text: #14181d;--text-2: #4c5560;--muted: #7b848f;--accent: #2f6bed;--accent-ink: #1d4fbd;--accent-soft: #ecf2fe;--pred: #0d9488;--pred-soft: #e6f6f4;--succ: #d2760a;--succ-soft: #fdf3e5;--critical: #d64545;--ok: #15a34a;--band-0: #2f6bed;--band-1: #7c5cf0;--band-2: #0d9488;--band-3: #d2760a;--band-4: #c2489a;--band-5: #5b6675;--r: 8px;--r-sm: 6px;--r-full: 999px;--row-h: 36px;--shadow-1: 0 1px 2px rgba(16, 24, 40, .05);--shadow-2: 0 12px 32px -8px rgba(16, 24, 40, .18), 0 2px 6px rgba(16, 24, 40, .06);background:var(--bg);color:var(--text)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:var(--r-sm)}::selection{background:#cfe0ff}.btn{height:32px;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-size:12.5px;font-weight:500;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn:hover:not(:disabled){background:var(--surface-3);color:var(--text);border-color:var(--line-2)}.btn:disabled{opacity:.42;cursor:default}.btn.icon-only{width:32px;padding:0;justify-content:center}.btn.active{background:var(--text);border-color:var(--text);color:#fff}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.accent:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover:not(:disabled){background:var(--surface-3)}.btn.danger:hover:not(:disabled){color:var(--critical);border-color:#edbebe;background:#fdf2f2}.btn.sm{height:28px;padding:0 8px;font-size:12px}.btn svg{flex:0 0 auto}.btn b{min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--accent);color:#fff;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.btn.active b{background:#ffffff38}.group{display:flex;align-items:center;flex:0 0 auto}.group>.btn{border-radius:0;margin-left:-1px}.group>.btn:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm);margin-left:0}.group>.btn:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}.group>.btn.active,.group>.btn:hover:not(:disabled){position:relative;z-index:1}.divider{width:1px;height:22px;flex:0 0 auto;background:var(--line);margin:0 2px}.label{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.mono{font-family:Cascadia Mono,Consolas,ui-monospace,monospace}.num{font-variant-numeric:tabular-nums}.app-shell{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.topbar{height:56px;flex:0 0 56px;display:flex;align-items:center;gap:16px;padding:0 14px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.application-mark{width:32px;height:32px;flex:0 0 32px;display:block;object-fit:contain}.brand-text{min-width:0;display:flex;flex-direction:column}.brand-text h1{margin:0;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.25}.brand-text span{color:var(--muted);font-size:11px;line-height:1.25}.metrics{display:flex;align-items:center;gap:4px;margin-left:6px;min-width:0;overflow:hidden}.metric{display:flex;flex-direction:column;gap:2px;padding:0 12px;border-left:1px solid var(--line);white-space:nowrap}.metric small{color:var(--muted);font-size:10.5px}.metric strong{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.metric strong em{color:var(--muted);font-style:normal;font-weight:500}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.audit-pill{display:flex;align-items:center;gap:7px;height:28px;padding:0 10px;border-radius:var(--r-full);background:var(--surface-3);color:var(--text-2);font-size:11.5px;white-space:nowrap}.audit-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px #15a34a24}.programme-source-line{min-width:0;display:flex;align-items:center;gap:6px}.programme-source-line>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-badge{width:fit-content;display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border:1px solid #aebbd1;border-radius:3px;background:#f6f8fb;color:#334155;font-family:Cascadia Mono,Consolas,ui-monospace,monospace;font-size:9.5px;font-weight:700;letter-spacing:.045em;line-height:1;text-transform:uppercase;white-space:nowrap}.source-badge.mspdi{border-color:#9db8b1;background:#f2f8f6;color:#245d50}.brand-text .source-badge{flex:0 0 auto;color:#334155;font-size:8.5px}.brand-text .source-badge.mspdi{color:#245d50}.warning-chip,.warning-indicator{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border:1px solid #e6b75f;border-radius:var(--r-full);background:#fff8e8;color:#855a0b;font-size:10.5px;font-weight:700;line-height:1;white-space:nowrap}.warning-popover>summary{cursor:pointer}.warning-popover[open] .warning-chip{border-color:#cf942b;background:#fff2d2}.warning-panel{border-top:3px solid #d79a2f}.import-warning-list{display:grid;gap:8px}.import-warning-list article{min-width:0;padding:10px;border:1px solid #ead8b5;border-radius:var(--r-sm);background:#fffbf1}.import-warning-list article>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.import-warning-list code{overflow-wrap:anywhere;color:#6f4b09;font-family:Cascadia Mono,Consolas,monospace;font-size:10.5px;font-weight:700}.import-warning-list article span,.import-warning-list small{color:#8c6a2e;font-size:10.5px}.import-warning-list p{margin:6px 0;color:var(--text-2);font-size:11.5px;line-height:1.4}a.btn{text-decoration:none}.controls{flex:0 0 auto;background:var(--surface);border-bottom:1px solid var(--line)}.controls-row{min-height:52px;display:flex;align-items:center;gap:8px;padding:10px 14px}.search{height:32px;flex:1 1 380px;min-width:220px;max-width:480px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface-2);transition:border-color .12s ease,background .12s ease}.search:focus-within{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px #2f6bed1f}.search svg{color:var(--muted);flex:0 0 auto}.search input{flex:1 1 auto;min-width:0;border:0;outline:0;background:transparent;font-size:13px}.search input::placeholder{color:var(--muted)}.search button{width:20px;height:20px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--muted)}.search button:hover{background:var(--surface-3);color:var(--text)}kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;background:var(--surface);color:var(--muted);font-family:inherit;font-size:11px;font-weight:600}.spacer{flex:1 1 auto}.daynav{display:flex;align-items:center;gap:6px;flex:0 0 auto}.daynav input[type=date]{height:32px;width:138px;padding:0 8px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);font-size:12.5px;font-variant-numeric:tabular-nums}.daynav input[type=date]:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2f6bed1f}.daynav .group .btn{font-size:12px;padding:0 9px}.pad-field{height:32px;display:inline-flex;align-items:center;gap:2px;padding:0 8px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--muted);font-size:12px}.pad-field input{width:40px;border:0;outline:0;background:transparent;color:var(--text);font-size:12.5px;font-variant-numeric:tabular-nums;text-align:center}.pad-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #2f6bed1f}.daynav .group .btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.popover{position:relative;flex:0 0 auto}.popover>summary{list-style:none;display:block}.popover>summary::-webkit-details-marker{display:none}.popover[open]>summary .btn{background:var(--surface-3);border-color:var(--line-2);color:var(--text)}.panel{position:absolute;z-index:40;top:40px;left:0;width:min(760px,calc(100vw - 28px));max-height:min(620px,calc(100vh - 150px));overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-2)}.popover.right .panel{left:auto;right:0}.panel.narrow{width:min(340px,calc(100vw - 28px))}.keys{margin:0}.keys>div{display:grid;grid-template-columns:76px 1fr;gap:10px;align-items:center;min-height:32px;border-bottom:1px solid var(--line)}.keys>div:last-child{border-bottom:0}.keys dt{display:flex}.keys dd{margin:0;color:var(--text-2);font-size:12.5px}.panel-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:var(--surface);border-bottom:1px solid var(--line)}.panel-head strong{font-size:13.5px;font-weight:600}.panel-head p{margin:2px 0 0;color:var(--muted);font-size:11.5px}.panel-body{padding:4px 14px 14px}.panel-section{padding:12px 0;border-bottom:1px solid var(--line)}.panel-section:last-child{border-bottom:0}.panel-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.rule{display:flex;align-items:center;gap:8px;min-height:36px}.rule>label{width:58px;flex:0 0 auto;color:var(--text-2);font-size:12.5px}.rule select,.rule input{height:32px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);padding:0 8px;font-size:12.5px}.rule select{width:150px}.rule input{font-variant-numeric:tabular-nums}.rule select:focus,.rule input:focus{border-color:var(--accent);outline:none}.rule span{color:var(--muted);font-size:11.5px}.facets{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.facet{position:relative}.facet>summary{list-style:none;height:34px;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);font-size:12.5px}.facet>summary::-webkit-details-marker{display:none}.facet[open]>summary{border-color:var(--accent)}.facet>summary span{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}.facet>summary span.on{color:var(--accent);font-weight:600}.facet-menu{position:absolute;z-index:3;left:0;top:38px;width:max(230px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-2);overflow:hidden}.facet-menu header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--line)}.facet-menu header strong{font-size:12px;font-weight:600}.facet-list{max-height:240px;overflow:auto;padding:6px}.facet-list label{display:flex;align-items:center;gap:8px;min-height:30px;padding:0 8px;border-radius:var(--r-sm);font-size:12.5px}.facet-list label:hover{background:var(--surface-3)}.facet-list input{accent-color:var(--accent);width:14px;height:14px}.facet-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quickviews{display:flex;align-items:center;gap:6px;padding:0 14px 10px;overflow-x:auto;scrollbar-width:thin}.quickviews .label{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;margin-right:2px}.pill{height:28px;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r-full);background:var(--surface);color:var(--text-2);font-size:12.5px;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease}.pill:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.pill:disabled{cursor:not-allowed;opacity:.52}.pill.on{background:var(--accent);border-color:var(--accent);color:#fff}.pill.on:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.chipbar{display:flex;align-items:center;gap:6px;padding:0 14px 10px;overflow-x:auto;scrollbar-width:thin}.chip{height:26px;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:0 6px 0 10px;border:1px solid var(--line-2);border-radius:var(--r-full);background:var(--surface-2);color:var(--text-2);font-size:11.5px;white-space:nowrap}.chip:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.chip i{color:var(--muted);font-style:normal}.chip svg{opacity:.65}.chip:hover svg{opacity:1}.chip.scope{border-color:#cadaf9;background:var(--accent-soft);color:var(--accent-ink)}.chip.clear-all{padding:0 10px;border-style:dashed}.stage{position:relative;flex:1 1 auto;min-height:0;display:flex}.workbench{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;padding:10px 14px 14px}.board{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1)}.board-toolbar{height:44px;flex:0 0 44px;display:flex;align-items:center;gap:8px;padding:0 10px;border-bottom:1px solid var(--line);background:var(--surface-2);border-radius:var(--r) var(--r) 0 0}.crumbs{display:flex;align-items:center;gap:2px;min-width:0;flex:0 1 auto;overflow:hidden}.crumbs::-webkit-scrollbar{display:none}.crumbs button{height:24px;flex:0 0 auto;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 7px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--muted);font-size:12px}.crumbs button:last-child{color:var(--text-2)}.crumbs button:hover{background:var(--surface-3);color:var(--text)}.crumbs button.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.crumbs svg{color:var(--line-2);flex:0 0 auto}.crumbs .crumb{display:flex;align-items:center;flex:0 0 auto}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.level-grid .btn{justify-content:center}.zoom{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:0 2px}.zoom input[type=range]{width:110px;accent-color:var(--accent);cursor:ew-resize}.zoom .btn{font-size:15px;line-height:1;color:var(--muted)}.zoom-label{min-width:46px;color:var(--muted);font-size:12px}.count-note{flex:0 0 auto;color:var(--muted);font-size:12px;white-space:nowrap}.trace-tools{margin-left:auto;display:flex;align-items:center;gap:6px;flex:0 0 auto}.trace-hint{color:var(--muted);font-size:12px;white-space:nowrap}.trace-tools .btn.pred:hover:not(:disabled){color:var(--pred);border-color:#a7ddd6;background:var(--pred-soft)}.trace-tools .btn.succ:hover:not(:disabled){color:var(--succ);border-color:#f0d4a8;background:var(--succ-soft)}.trace-tools .btn.on-pred{background:var(--pred);border-color:var(--pred);color:#fff}.trace-tools .btn.on-succ{background:var(--succ);border-color:var(--succ);color:#fff}.split{flex:1 1 auto;min-height:0;display:grid;overflow:hidden}.grip{width:9px;border:0;background:transparent;padding:0;cursor:col-resize;position:relative;z-index:3;display:grid;place-items:center}.grip:before{content:"";position:absolute;inset:0 4px;background:var(--line)}.grip span{position:relative;width:3px;height:26px;border-radius:var(--r-full);background:var(--line-2)}.grip:hover:before,.grip:active:before{background:var(--accent-soft)}.grip:hover span,.grip:active span{background:var(--accent)}.grip.vertical{flex:0 0 9px;height:auto}.table-scroll,.gantt-scroll{min-width:0;min-height:0;overflow:auto;background:var(--surface);scrollbar-color:#c7ccd3 transparent;scrollbar-width:thin}.table-scroll::-webkit-scrollbar,.gantt-scroll::-webkit-scrollbar{width:10px;height:10px}.table-scroll::-webkit-scrollbar-thumb,.gantt-scroll::-webkit-scrollbar-thumb{background:#cdd2d9;border:3px solid var(--surface);border-radius:var(--r-full)}.thead,.gantt-head{position:sticky;top:0;z-index:10;height:34px;background:var(--surface);border-bottom:1px solid var(--line)}.grid{display:grid;grid-template-columns:var(--cols, minmax(230px, 1fr) 86px 86px 56px 56px)}.thead span{display:flex;align-items:center;padding:0 10px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.thead span:not(:first-child){justify-content:flex-end}.thead .sort{height:24px;display:inline-flex;align-items:center;gap:4px;padding:0 6px;border:0;border-radius:var(--r-sm);background:transparent;color:inherit;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.thead .sort:hover{background:var(--surface-3);color:var(--text-2)}.thead .sort.on{color:var(--accent-ink);background:var(--accent-soft)}.table-empty{display:flex;flex-direction:column;gap:4px;padding:32px 16px;text-align:center}.table-empty strong{font-size:13px;font-weight:600}.table-empty span{color:var(--muted);font-size:12.5px}.tbody,.thead{min-width:var(--table-min, 640px)}.tbody{min-height:calc(100% - 34px)}.row{height:var(--row-h);min-height:var(--row-h);width:100%;position:relative;border:0;border-bottom:1px solid var(--line);background:var(--surface);padding:0;text-align:left}.row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--band, transparent)}button.row:hover{background:var(--surface-2)}.row.grid>span{min-width:0;display:flex;align-items:center;justify-content:flex-end;padding:0 10px;color:var(--text-2);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.row.selected{background:var(--accent-soft)}.row.selected:before{background:var(--accent);width:3px}.row.traced.predecessors{background:var(--pred-soft)}.row.traced.predecessors:before{background:var(--pred)}.row.traced.successors{background:var(--succ-soft)}.row.traced.successors:before{background:var(--succ)}.row.traced.both{background:var(--accent-soft)}.row.traced.both:before{background:var(--accent)}.row.inactive{background:#f6f7f8}.row.inactive>span{color:#7b8490}.row.inactive .identity>span:first-child{color:#68717c}.row.inactive .critical{color:#7b8490!important;font-weight:500}.identity{justify-content:flex-start!important;gap:8px;overflow:hidden;padding-left:calc(12px + var(--depth) * 12px)!important}.thead .sort.reset{padding:0 4px}.cell-code{justify-content:flex-start!important;color:var(--muted)!important;font-family:Cascadia Mono,Consolas,monospace;font-size:11px;overflow:hidden}.identity>span{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:12.5px}.identity small{margin-left:auto;padding-left:8px;color:var(--muted);font-size:10.5px;font-variant-numeric:tabular-nums}.critical{color:var(--critical)!important;font-weight:600}.inactive-badge{display:inline-flex;flex:0 0 auto;align-items:center;min-height:17px;padding:1px 6px;border:1px solid #c9ced4;border-radius:var(--r-full);background:#eef0f2;color:#626b75!important;font-size:9.5px!important;font-weight:600;letter-spacing:.035em;line-height:1;text-transform:uppercase}.row.wbs{display:flex;align-items:center;gap:2px;background:var(--surface-3);border-bottom-color:var(--line-2);padding-left:calc(6px + var(--depth) * 12px)}.row.wbs:hover{background:#e9ecef}.twisty{width:24px;height:24px;flex:0 0 auto;display:grid;place-items:center;border:0;border-radius:var(--r-sm);background:transparent;color:var(--muted)}.twisty:hover{background:#0000000f;color:var(--text)}.twisty svg{transition:transform .14s ease}.twisty.open svg{transform:rotate(90deg)}.wbs-title{min-width:0;flex:1 1 auto;display:flex;align-items:center;gap:8px;border:0;border-radius:var(--r-sm);background:transparent;padding:3px 4px;text-align:left}.wbs-title code{color:var(--muted);font-family:Cascadia Mono,Consolas,monospace;font-size:10.5px;white-space:nowrap}.wbs-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600}.wbs-count{flex:0 0 auto;min-width:22px;height:18px;padding:0 6px;display:grid;place-items:center;border-radius:var(--r-full);background:#0000000f;color:var(--text-2);font-size:10.5px;font-variant-numeric:tabular-nums}.wbs-actions{margin-right:8px;display:flex;gap:4px;opacity:0;transition:opacity .12s ease}.row.wbs:hover .wbs-actions,.wbs-actions:focus-within{opacity:1}.gantt-scroll{background:var(--surface);position:relative}.logic-bar{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:7px 10px;overflow-x:auto;scrollbar-width:none;background:var(--accent-soft);border-bottom:1px solid #d7e3fb}.logic-bar::-webkit-scrollbar{display:none}.hud-label{color:var(--text-2);font-size:12px;white-space:nowrap}.hud-note{margin-left:auto;padding-left:10px;color:var(--muted);font-size:12px;white-space:nowrap}.hud-title{display:inline-flex;align-items:center;gap:6px;padding-right:4px;color:var(--text-2);font-family:Cascadia Mono,Consolas,monospace;font-size:11.5px;white-space:nowrap}.btn.on-pred{background:var(--pred);border-color:var(--pred);color:#fff}.btn.on-succ{background:var(--succ);border-color:var(--succ);color:#fff}.gantt-head{min-width:100%;background:var(--surface)}.tick-label{position:absolute;bottom:4px;height:16px;padding-left:6px;border-left:1px solid var(--line);color:var(--muted);font-size:10.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.tick-label.major{color:var(--text-2);font-weight:600;border-left-color:var(--line-2)}.gantt-content{position:relative;min-width:100%;min-height:calc(100% - 34px);background-color:var(--surface);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--row-h) - 1px),var(--line) calc(var(--row-h) - 1px),var(--line) var(--row-h))}.grid-line{position:absolute;top:0;bottom:0;width:1px;background:#f0f2f4}.grid-line.major{background:var(--line)}.window-band{position:absolute;z-index:1;top:0;bottom:0;background:#2f6bed12;border-left:1px solid rgba(47,107,237,.3);border-right:1px solid rgba(47,107,237,.3);pointer-events:none}.today-line{position:absolute;z-index:4;top:0;bottom:0;width:2px;background:var(--accent);pointer-events:none}.today-line span{position:sticky;top:4px;display:block;width:max-content;transform:translate(4px);border-radius:var(--r-full);background:var(--accent);color:#fff;padding:2px 8px;font-size:10.5px;font-variant-numeric:tabular-nums}.gantt-row{position:absolute;left:0;width:100%;height:var(--row-h)}.gantt-row{cursor:pointer}.gantt-row:hover{background:var(--surface-2)}.gantt-row.selected{background:var(--accent-soft)}.gantt-row.inactive{background:#7d86910f}.gantt-row.inactive .bar,.gantt-row.inactive .milestone{background:#a7adb4;filter:saturate(.25)}.gantt-row.inactive .bar:after{background:#858d96}.gantt-row.wbs{background:var(--surface-3);cursor:default}.summary-bar{position:absolute;top:15px;height:6px;border-radius:2px;background:#9aa4b0}.summary-bar:before,.summary-bar:after{content:"";position:absolute;top:0;width:2px;height:11px;background:#7b8794}.summary-bar:before{left:0}.summary-bar:after{right:0}.gantt-row.traced.predecessors{background:var(--pred-soft)}.gantt-row.traced.successors{background:var(--succ-soft)}.bar{position:absolute;z-index:3;top:10px;height:16px;min-width:4px;border-radius:4px;background:#6b7684}.bar:after{content:"";position:absolute;left:0;top:0;bottom:0;width:min(100%,var(--progress, 0%));border-radius:4px 0 0 4px;background:#3d4855}.bar span{position:absolute;z-index:2;left:7px;top:1px;color:#fff;font-size:10.5px;line-height:14px;white-space:nowrap}.milestone{position:absolute;z-index:3;top:11px;width:13px!important;height:13px;border-radius:2px;transform:rotate(45deg);background:#3d4855}.gantt-row.traced.predecessors .bar,.gantt-row.traced.predecessors .milestone{background:var(--pred)}.gantt-row.traced.predecessors .bar:after{background:#0a7268}.gantt-row.traced.successors .bar,.gantt-row.traced.successors .milestone{background:var(--succ)}.gantt-row.traced.successors .bar:after{background:#a95c07}.gantt-row.traced.both{background:var(--accent-soft)}.gantt-row.traced.both .bar,.gantt-row.traced.both .milestone{background:var(--accent)}.gantt-row.traced.both .bar:after{background:var(--accent-ink)}.links.both path{stroke:var(--accent)}.gantt-row.selected .bar,.gantt-row.selected .milestone{background:var(--accent);box-shadow:0 0 0 2px #2f6bed40}.gantt-row.selected .bar:after{background:var(--accent-ink)}.links{position:absolute;z-index:2;inset:0;pointer-events:none;overflow:visible}.links path{fill:none;stroke:var(--pred);stroke-width:1.4;opacity:.85}.links.successors path{stroke:var(--succ)}.detail-dock{position:absolute;z-index:40;right:0;top:45px;bottom:0;display:flex;min-width:320px;background:var(--surface);border-left:1px solid var(--line);box-shadow:-14px 0 30px -18px #10182880;animation:drawer-in .16s ease-out both}.drawer{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.drawer.inactive{color:#626b75}.drawer.inactive .drawer-head{background:#f6f7f8}@keyframes drawer-in{0%{opacity:0;transform:translate(10px)}}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 14px 12px;border-bottom:1px solid var(--line)}.drawer-head>div{min-width:0}.drawer-head code{color:var(--muted);font-family:Cascadia Mono,Consolas,monospace;font-size:11.5px}.activity-heading{display:flex;align-items:center;gap:7px}.summary-kind,.node-kind{display:inline-flex;flex:0 0 auto;align-items:center;min-height:17px;padding:1px 6px;border:1px solid #cfd8e6;border-radius:var(--r-full);background:#eef4ff;color:var(--accent-ink)!important;font-size:9.5px!important;font-weight:600;letter-spacing:.035em;line-height:1;text-transform:uppercase}.node-kind.broken{border-color:#edbebe;background:#fdf1f1;color:var(--critical)!important}.drawer-head h2{margin:4px 0 0;font-size:16px;font-weight:600;line-height:1.3;letter-spacing:-.01em}.tabs{display:flex;gap:2px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--surface-2)}.tabs button{height:28px;padding:0 12px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);font-size:12.5px;font-weight:500}.tabs button:hover{background:var(--surface-3)}.tabs button.active{background:var(--text);color:#fff}.drawer-body{flex:1;overflow:auto;padding:14px}.path-note{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-3)}.path-note span{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.path-note strong{font-size:12.5px;font-weight:500;line-height:1.45}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.kpis>div{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm)}.kpis span{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.kpis strong{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}.kpis .is-critical{border-color:#f0cfcf;background:#fdf5f5}.kpis .is-critical strong{color:var(--critical)}.section{margin-top:18px}.section h3{margin:0 0 8px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.kv{margin:0}.kv>div{min-height:32px;display:grid;grid-template-columns:42% 58%;align-items:center;gap:8px;border-bottom:1px solid var(--line);font-size:12.5px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags>span{display:flex;flex-direction:column;gap:2px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:12px}.tags small{color:var(--muted);font-size:10px;letter-spacing:.03em;text-transform:uppercase}.rsrc,.link-row{min-height:36px;display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}.rsrc{flex-direction:column;align-items:flex-start;gap:3px}.rsrc strong{font-size:12.5px;font-weight:600}.rsrc span,.link-row span{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}.link-row code{min-width:104px;flex:0 0 auto;font-family:Cascadia Mono,Consolas,monospace;font-size:11.5px}.logic-line{display:flex;flex-direction:column;gap:2px;padding:4px 0;border-bottom:1px solid var(--line)}.logic-line .link-row{width:100%;border:0;border-radius:var(--r-sm);background:transparent;padding:4px 6px;min-height:28px;text-align:left}.logic-line .link-row:hover:not(:disabled){background:var(--surface-3)}.logic-line .link-row:disabled{cursor:default;opacity:.6}.link-name{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:12.5px}.link-row svg{margin-left:auto;color:var(--muted);flex:0 0 auto}.rel-meta{padding:0 6px 2px;color:var(--muted);font-size:11px}.trace-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.trace-actions.summary-trace-actions{grid-template-columns:1fr 1fr 1fr}.trace-actions .btn{height:34px;justify-content:center}.btn.pred:hover:not(:disabled){color:var(--pred);border-color:#a7ddd6;background:var(--pred-soft)}.btn.succ:hover:not(:disabled){color:var(--succ);border-color:#f0d4a8;background:var(--succ-soft)}.notice{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-ink);font-size:12px;line-height:1.45}.notice svg{flex:0 0 auto;margin-top:1px}.notice.omission{margin-top:8px;background:#fff8e7;color:#79520a}.notice.fallback-note{margin-top:10px;background:#fff8e7;color:#79520a}.placeholder{margin-top:14px;padding:22px;border:1px dashed var(--line-2);border-radius:var(--r-sm);color:var(--muted);font-size:12.5px;text-align:center}.placeholder.error{border-color:#edbebe;color:var(--critical)}.raw-group{margin-top:8px;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.raw-group>summary{list-style:none;height:34px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;background:var(--surface-2);font-size:12px;font-weight:600}.raw-group>summary::-webkit-details-marker{display:none}.raw-group>summary span{padding:1px 7px;border-radius:var(--r-full);background:var(--surface-3);color:var(--text-2);font-size:11px;font-weight:500}.source-broken{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border-bottom:1px solid #efd6a3;background:#fff8e7;color:#79520a;font-size:10.5px}.source-broken strong{font-size:10px;letter-spacing:.03em;text-transform:uppercase}.raw-fields{margin:0;padding:6px 10px 10px}.raw-fields>div{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:10px;padding:4px 0;border-bottom:1px solid var(--surface-3);font-family:Cascadia Mono,Consolas,monospace;font-size:10.5px}.raw-fields dt{color:var(--muted);overflow-wrap:anywhere}.raw-fields dd{margin:0;overflow-wrap:anywhere}.raw-fields em{color:#b9bfc6}.raw-fields .source-absent{color:#8d96a0}.source-occurrences{display:flex;flex-direction:column;gap:3px;margin:0;padding:0;list-style:none}.source-occurrences li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:5px}.source-occurrences small{color:var(--muted);font-size:9px}.empty{color:var(--muted);font-size:12.5px}.overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:#10182873;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:overlay-in .14s ease-out both}@keyframes overlay-in{0%{opacity:0}}.overlay-panel{width:min(1180px,100%);height:min(92vh,100%);display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-2)}.overlay-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--surface-2)}.overlay-head strong{display:block;font-size:14px;font-weight:600;letter-spacing:-.01em}.overlay-head span{color:var(--muted);font-size:12px}.overlay-actions{display:flex;align-items:center;gap:6px}.pdf-viewport{position:relative;flex:1 1 auto;min-height:0;overflow:auto;padding:16px;display:flex;align-items:flex-start;justify-content:center;background:var(--surface-3);cursor:grab;scrollbar-width:thin}.pdf-viewport.panning{cursor:grabbing}.pdf-page{display:block;flex:0 0 auto;margin:auto;height:auto;background:#fff;border:1px solid var(--line-2);box-shadow:var(--shadow-1);-webkit-user-select:none;user-select:none}.render-note{color:var(--muted);font-size:12px;white-space:nowrap}.zoom-value{min-width:58px;justify-content:center;font-variant-numeric:tabular-nums}.load-screen{height:100vh;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--bg)}.load-screen.viewer-route-state{flex-direction:column;align-items:stretch;justify-content:flex-start;padding:0}.viewer-route-topbar{width:100%}.viewer-route-topbar .brand-text p{margin:0;color:var(--text-2);font-size:11px;line-height:1.25}.viewer-route-body{min-height:0;flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:40px}.load-card{width:min(420px,100%);display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1)}.load-card>span{color:var(--accent);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.load-card h1{margin:2px 0 0;font-size:18px;font-weight:600;letter-spacing:-.01em}.load-card p{margin:4px 0 0;color:var(--muted);font-size:12.5px;line-height:1.5}.load-card code{padding:1px 5px;border-radius:4px;background:var(--surface-3);font-family:Cascadia Mono,Consolas,monospace;font-size:11.5px}.load-bars{display:flex;gap:4px;height:22px;align-items:flex-end;margin-bottom:6px}.load-bars span{display:block;width:6px;border-radius:2px;background:var(--accent);animation:loadbar .7s ease-in-out infinite alternate}.load-bars span:nth-child(1){height:10px}.load-bars span:nth-child(2){height:16px;animation-delay:.15s}.load-bars span:nth-child(3){height:22px;animation-delay:.3s}@keyframes loadbar{to{height:7px;opacity:.4}}.load-screen.error .load-card{border-top:3px solid var(--critical)}.load-screen.error .load-card>span{color:var(--critical)}.tour-layer{position:fixed;z-index:100;inset:0;isolation:isolate;pointer-events:auto}.tour-layer[data-anchor-status=none],.tour-layer[data-anchor-status=missing]{background:#0e141c94}.tour-spot{position:fixed;z-index:1;border:2px solid #8eb1ff;border-radius:calc(var(--r) + 2px);background:transparent;box-shadow:0 0 0 9999px #0e141c94,0 0 0 4px #2f6bed2e;pointer-events:none}.tour-card{position:fixed;z-index:2;width:min(360px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);box-shadow:0 24px 70px -18px #080f1985,0 3px 10px #080f1924;color:var(--text)}.tour-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--surface-2)}.tour-card-head strong{color:var(--text-2);font-size:11.5px;font-weight:600}.tour-progress{color:var(--accent);font-family:Cascadia Mono,Consolas,ui-monospace,monospace;font-size:10.5px;font-weight:700;letter-spacing:.045em;text-transform:uppercase}.tour-card h2{margin:0;padding:17px 18px 0;font-size:19px;font-weight:650;letter-spacing:-.018em;line-height:1.25}.tour-card>p{margin:9px 18px 0;color:var(--text-2);font-size:13px;line-height:1.52}.tour-tips{display:grid;gap:7px;margin:13px 18px 0;padding:0 0 0 17px;color:var(--text-2)}.tour-tips li{padding-left:2px;font-size:12px;line-height:1.45}.tour-tips li::marker{color:var(--accent)}.tour-card-actions{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:7px;margin-top:17px;padding:12px 14px;border-top:1px solid var(--line);background:var(--surface-2)}.tour-card-actions .btn{justify-content:center}@media(max-width:1360px){.metrics .metric:nth-child(4){display:none}}@media(max-width:1180px){.metrics .metric:nth-child(2){display:none}.audit-pill{display:none}.guide-trigger{width:32px;padding:0;justify-content:center}.guide-trigger span{display:none}.grid{grid-template-columns:minmax(210px,1fr) 80px 80px 48px 48px}.trace-hint{display:none}}@media(max-width:940px){.metrics{display:none}.controls-row{flex-wrap:wrap}.search{max-width:none}.drawer{position:absolute;z-index:50;right:0;top:0;bottom:0;flex-basis:auto;width:min(420px,calc(100vw - 28px));margin:10px 14px 14px 0}}@media(forced-colors:active){.tour-spot{border:3px solid Highlight;box-shadow:none;outline:2px solid Canvas;outline-offset:1px}.tour-card{border:2px solid CanvasText;box-shadow:none}.tour-layer[data-anchor-status=none],.tour-layer[data-anchor-status=missing]{background:Canvas}}.library-shell{min-height:100vh;overflow:auto;background:var(--bg)}.library-head{position:sticky;top:0;z-index:5;height:64px;display:flex;align-items:center;gap:16px;padding:0 24px;background:#fffffff5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar.library-head{height:56px;min-height:56px;padding:0 14px}.library-head>.btn{margin-left:auto}.library-content{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:36px 0 64px}.programme-list{display:grid;gap:10px}.programme-card{width:100%;min-height:106px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 14px 12px 0;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-1);text-align:left}.programme-card:hover{border-color:#b9c9ed;box-shadow:0 8px 20px -16px #101828b3;transform:translateY(-1px)}.programme-card-title{min-width:0;display:flex;flex-direction:column;gap:5px}.programme-card-open{min-width:0;align-self:stretch;display:grid;grid-template-columns:minmax(210px,1.2fr) minmax(440px,2fr);align-items:center;gap:22px;padding:6px 20px;border:0;background:transparent;text-align:left}.programme-card-actions{max-width:360px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.programme-card-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.programme-card-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.programme-card-signals{display:flex;align-items:center;gap:6px;margin-top:2px}.programme-card-title .source-badge{color:#334155;font-size:9.5px}.programme-card-title .source-badge.mspdi{color:#245d50}.programme-card-title .warning-indicator{color:#855a0b;font-size:10.5px}.programme-card dl{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:16px;margin:0}.programme-card dl>div{min-width:0}.programme-card dt{margin-bottom:4px;color:var(--muted);font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.programme-card dd{margin:0;overflow:hidden;text-overflow:ellipsis;color:var(--text-2);font-size:12px;white-space:nowrap}.status-badge{padding:5px 8px;border-radius:var(--r-full);background:var(--surface-3);color:var(--muted);font-size:11px;white-space:nowrap}.status-badge.attached{background:#e9f7ee;color:#15723b}.library-empty,.error-panel{width:min(540px,100%);margin:8vh auto 0;padding:30px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-1);text-align:center}.library-empty>span{color:var(--accent);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.library-empty h2{margin:8px 0 6px;font-size:20px}.library-empty p,.error-panel p,.library-note{color:var(--muted);font-size:12.5px;line-height:1.5}.library-empty .btn,.error-panel .btn{margin-top:10px}.error-panel{border-top:3px solid var(--critical)}.error-panel strong{color:var(--critical)}.library-loading{display:grid;gap:10px}.library-loading span{height:106px;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(90deg,var(--surface) 25%,var(--surface-3) 50%,var(--surface) 75%);background-size:200% 100%;animation:library-shimmer 1.2s infinite}@keyframes library-shimmer{to{background-position:-200% 0}}.route-state{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.route-state .btn{margin-top:14px}@media(max-width:900px){.programme-card{grid-template-columns:1fr;padding:12px}.programme-card-open{grid-template-columns:1fr;padding:6px}.programme-card dl{grid-template-columns:repeat(2,minmax(100px,1fr))}.programme-card-actions{max-width:none;align-items:flex-start}}.upload-shell{min-height:100vh;overflow:auto;background:var(--bg)}.upload-card{width:min(820px,calc(100% - 40px));display:flex;flex-direction:column;align-items:flex-start;gap:18px;margin:36px auto 64px;padding:26px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-1)}.file-drop{width:100%;display:flex;flex-direction:column;gap:8px;padding:20px;border:1px dashed var(--line-2);border-radius:var(--r);background:var(--surface-2)}.file-drop label{font-size:13px;font-weight:600}.file-drop input{width:100%;padding:9px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-size:12px}.file-drop small{color:var(--muted);font-size:11.5px}.programme-summary{width:100%;display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--line)}.programme-summary>div{min-width:0;display:flex;flex-direction:column;gap:5px;padding:13px;background:var(--surface)}.programme-summary span{color:var(--muted);font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.programme-summary strong{overflow:hidden;text-overflow:ellipsis;font-size:12.5px;white-space:nowrap}.programme-summary .summary-format .source-badge{color:#334155;font-size:9.5px;letter-spacing:.045em}.programme-summary .summary-format .source-badge.mspdi{color:#245d50}.programme-summary>.import-warnings{grid-column:1 / -1;padding:12px;background:var(--surface)}.import-warnings>summary{cursor:pointer;color:#855a0b;font-size:12px;font-weight:700}.import-warnings>.import-warning-list{margin-top:10px}.upload-progress{width:100%;display:flex;flex-direction:column;gap:9px;color:var(--text-2);font-size:12.5px}.upload-progress progress{width:100%;height:8px;accent-color:var(--accent)}.upload-progress .btn{align-self:flex-start}.upload-warning{width:100%;padding:11px 13px;border:1px solid #edbebe;border-radius:var(--r-sm);background:#fdf2f2;color:var(--critical);font-size:12.5px;line-height:1.45}.upload-actions{display:flex;gap:8px}@media(max-width:700px){.viewer-route-topbar{height:56px;flex-basis:56px;flex-wrap:nowrap}.viewer-route-topbar .topbar-right{width:auto;flex:0 0 auto;margin-left:auto}.account-menu--topbar{flex:0 0 32px}.programme-summary{grid-template-columns:1fr 1fr}}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.zone-manager{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.zone-progress{color:var(--accent);font-size:11px;font-variant-numeric:tabular-nums}.zone-error{flex-basis:100%;color:var(--critical);font-size:11px;line-height:1.35;text-align:right}.zone-confirm{position:absolute;z-index:20;right:0;top:calc(100% + 7px);width:300px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;padding:12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-2)}.zone-confirm span{flex-basis:100%;color:var(--text-2);font-size:12px;line-height:1.4}.auth-shell{height:100%;overflow-y:auto;padding:32px 20px;background:var(--bg);color:var(--text)}.auth-shell{display:grid;place-items:start center}.auth-board{width:min(100%,560px);margin:32px 0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-1)}.auth-toolbar{height:44px;display:flex;align-items:center;gap:9px;padding:0 14px;border-bottom:1px solid var(--line);background:var(--surface-2)}.auth-region{margin-left:auto;color:var(--text-2);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.auth-brand{display:inline-flex;align-items:center;gap:8px;color:var(--text);text-decoration:none}.auth-product-name{color:var(--text-2);font-size:11px;font-weight:600;letter-spacing:.02em}.auth-intro{padding:16px 14px 14px}.auth-intro h1{margin:0 0 4px;font-size:18px;font-weight:600;letter-spacing:-.01em}.auth-intro h1:last-child{margin-bottom:0}.auth-intro p{margin:0;color:var(--text-2);font-size:12.5px;line-height:1.5}.auth-content{border-top:1px solid var(--line)}.auth-ledger{border-bottom:1px solid var(--line)}.auth-ledger-row{position:relative;min-height:var(--row-h);display:grid;grid-template-columns:148px minmax(0,1fr);align-items:stretch;border-top:1px solid var(--line)}.auth-ledger-row:first-child{border-top:0}.auth-ledger-row:focus-within:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--accent)}.auth-ledger-row:focus-within{background:var(--accent-soft)}.auth-ledger-key{display:flex;align-items:center;padding:0 14px;color:var(--text-2);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.auth-ledger-value{min-width:0;display:grid;align-content:center;gap:3px;padding:7px 14px;border-left:1px solid var(--line);color:var(--text-2);font-size:12.5px;line-height:1.5;overflow-wrap:anywhere}.auth-field-row .auth-ledger-value{background:var(--surface-2)}.auth-field-row:focus-within .auth-ledger-value{background:var(--accent-soft)}.auth-field-row:has(input:disabled) .auth-ledger-value{background:var(--surface-3)}.auth-ledger-value input:not([type=checkbox]){width:100%;height:32px;padding:0;border:0;border-bottom:1px solid var(--muted);outline-offset:3px;background:transparent;font-family:Cascadia Mono,Consolas,ui-monospace,monospace;font-size:12.5px}.auth-ledger-value input:disabled{color:var(--muted);border-bottom-color:var(--line);cursor:not-allowed}.auth-ledger-value small,.auth-actions small{font-size:10.5px;font-weight:500;line-height:1.35}.auth-ledger-value small,.auth-actions small{color:var(--text-2)}.auth-ledger-value a{color:var(--accent-ink);font-size:12.5px}.auth-actions{display:grid;gap:5px;padding:12px 14px 14px}.auth-actions .btn{width:100%;height:34px;justify-content:center}.auth-actions .btn:disabled{border-color:var(--line-2);background:var(--surface-3);color:var(--muted);opacity:1}.auth-flow-navigation{display:flex;flex-wrap:wrap;gap:6px;padding:0 6px 14px}.auth-flow-navigation a{min-height:28px;display:inline-flex;align-items:center;padding:0 8px;border-radius:var(--r-sm);color:var(--accent-ink);font-size:12px;text-decoration:none}.auth-flow-navigation a:hover{background:var(--accent-soft)}.auth-policy-links{display:flex;flex-wrap:wrap;gap:14px;padding:10px 14px;border-top:1px solid var(--line);background:var(--surface-2)}.auth-policy-links a{color:var(--text-2);font-size:11px;text-decoration:none}.auth-policy-links a:hover{color:var(--text-2);text-decoration:underline}.auth-status-row[data-tone=critical]{border-top:3px solid var(--critical)}.auth-status-row[data-tone=critical] .auth-ledger-value{color:var(--text-2);font-weight:600}.auth-status-row[data-tone=success]{border-top:3px solid var(--ok)}.auth-status-row[data-tone=success] .auth-ledger-value{color:var(--text-2);font-weight:600}.auth-status-row p{margin:0;color:inherit;font:inherit}.auth-ledger-form{margin:0}.auth-loading-state{display:flex;align-items:center;gap:8px}.auth-loading-state .load-bars{margin-bottom:0}.auth-check-value{min-height:24px;display:flex;align-items:center;gap:8px;font-family:inherit;font-size:12px}.auth-check-value input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent)}.auth-check-value label{min-height:24px;display:flex;align-items:center;line-height:1.4}@media(max-width:560px){.auth-shell{padding:14px}.auth-board{margin:0}.auth-ledger-row{grid-template-columns:1fr}.auth-ledger-key{padding-top:8px}.auth-ledger-value{border-left:0}}@media(max-height:560px){.auth-shell{padding:14px 20px}.auth-board{margin:0}}@media(pointer:coarse){.auth-ledger-value input:not([type=checkbox]){height:36px}.auth-actions .btn{height:36px}.auth-check-value,.auth-check-value label{min-height:36px}.account-menu-trigger{width:36px;min-width:36px;height:36px}.account-menu--topbar{flex-basis:36px}.account-menu-panel .btn{min-height:36px}}@media(prefers-reduced-motion:reduce){.auth-board,.auth-board *{animation-duration:0s!important;transition-duration:0s!important}.auth-loading-state .load-bars{display:none}}.private-application{min-height:100%}.account-menu{position:relative;z-index:80;flex:0 0 auto}.account-menu--floating{position:fixed;top:14px;right:14px}.account-menu-trigger{width:32px;height:32px;border-radius:var(--r-full);justify-content:center;font-weight:700}.account-menu-panel{position:absolute;top:calc(100% + 6px);right:0;width:min(320px,calc(100vw - 28px));padding:14px;display:grid;gap:8px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-2)}.account-menu-meta,.account-menu-actions{display:grid;gap:8px}.account-menu-meta>span{color:var(--text-2);font-size:12px}@media(pointer:coarse){.account-menu-trigger{width:36px;height:36px}}.account-screen{min-height:100vh;padding:1.25rem;background:var(--bg)}.account-card{width:min(42rem,100%);margin:3rem auto;padding:2rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface)}.account-card>span{color:var(--muted)}.account-card h2{margin:.35rem 0 1.5rem;overflow-wrap:anywhere}.pending-programmes{display:grid;gap:.65rem;margin-top:1.5rem}.pending-programme-row{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface)}.pending-programme-row div{display:grid;gap:.25rem}.pending-programme-row span,.pending-programme-row p{color:var(--muted)}
