:root{--paper:#f4f5f6;--paper-raised:#ffffff;--paper-sunk:#eef0f2;--ink-900:#101828;--ink-700:#344054;--ink-500:#667085;--ink-300:#98a2b3;--ink-150:#e4e7ec;--rule:#d0d5dd;--rule-soft:#e4e7ec;--grid:rgba(16,24,40,0.04);--grid-blue:rgba(120,170,205,0.14);--teal-900:#0a3a3a;--teal-800:#0d4d4d;--teal-700:#115e5e;--teal-100:#d7e8e8;--teal-help:#12605f;--teal-ink:#0d4d4d;--redline:#ff6800;--redline-deep:#d2540a;--redline-text:#b54708;--redline-wash:#fff4ec;--survey-blue:#2d5ba6;--survey-blue-wash:#e7edf6;--blueprint:#0d4d4d;--blueprint-line:rgba(255,255,255,0.08);--blueprint-ink:#f0f4f4;--blueprint-mut:#b6cccc;--st-new:#667085;--st-letter:#175cd3;--st-followup:#b54708;--st-responded:#027a48;--st-converted:#027a48;--st-declined:#b42318;--pill-green-fg:#027a48;--pill-green-bg:#ecfdf3;--pill-amber-fg:#b54708;--pill-amber-bg:#fffaeb;--pill-red-fg:#b42318;--pill-red-bg:#fef3f2;--pill-blue-fg:#175cd3;--pill-blue-bg:#eff8ff;--pill-grey-fg:#475467;--pill-grey-bg:#f2f4f7;--r-structural:12px;--r-card:16px;--r-interactive:8px;--r-pill:999px;--shadow-xs:0 1px 2px rgba(16,24,40,0.04);--shadow-sm:0 1px 3px rgba(16,24,40,0.06),0 1px 2px rgba(16,24,40,0.04);--shadow-md:0 4px 8px rgba(16,24,40,0.06),0 2px 4px rgba(16,24,40,0.04);--shadow-lg:0 12px 24px rgba(16,24,40,0.10),0 4px 8px rgba(16,24,40,0.05);--font-ui:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--t-xs:0.694rem;--t-sm:0.833rem;--t-base:1rem;--t-md:1.2rem;--t-lg:1.44rem;--t-xl:1.728rem;--t-2xl:2.074rem;--t-3xl:2.488rem;--t-4xl:2.986rem;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--ease-draught:cubic-bezier(0.22,0.61,0.12,1);--dur-plot:520ms;--dur-ui:140ms;--bs-body-bg:var(--paper);--bs-body-color:var(--ink-900);--bs-body-font-family:var(--font-ui);--bs-body-font-size:1rem;--bs-body-line-height:1.55;--bs-emphasis-color:var(--ink-900);--bs-secondary-color:var(--ink-500);--bs-tertiary-color:var(--ink-300);--bs-border-color:var(--rule-soft);--bs-border-radius:var(--r-structural);--bs-border-radius-sm:var(--r-interactive);--bs-border-radius-lg:var(--r-card);--bs-border-radius-xl:var(--r-card);--bs-border-radius-2xl:var(--r-card);--bs-border-radius-pill:var(--r-pill);--bs-link-color:var(--redline-text);--bs-link-hover-color:var(--redline-deep);--bs-primary:var(--redline);--bs-primary-rgb:255,104,0;--bs-link-color-rgb:181,71,8;--bs-secondary-bg:var(--paper-sunk);--bs-tertiary-bg:var(--paper-sunk);--bs-card-bg:#fff;--bs-card-border-color:var(--rule-soft);--bs-card-cap-bg:transparent;--bs-box-shadow-sm:var(--shadow-sm);--bs-box-shadow:var(--shadow-md);--bs-box-shadow-lg:var(--shadow-lg)}body{background-color:var(--paper);color:var(--ink-900);font-family:var(--font-ui);font-feature-settings:"ss01","cv05";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,h1,h2,h3,h4,h5,h6{font-family:var(--font-ui);font-weight:800;letter-spacing:-.02em;color:inherit}.display-5,.display-6{letter-spacing:-.025em;line-height:1.04}.lead{font-weight:400;color:var(--ink-700)}::selection{background:var(--redline);color:#fff}:focus-visible{outline:2px solid var(--redline);outline-offset:2px;border-radius:1px}:focus:not(:focus-visible){outline:none}@keyframes ihus-field-flash{0%{box-shadow:0 0 0 0 rgba(255,104,0,.5);border-color:var(--redline)}to{box-shadow:0 0 0 6px rgba(255,104,0,0)}}.field-flash{animation:ihus-field-flash 1.1s var(--ease-draught);border-color:var(--redline)!important}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--paper-sunk)}::-webkit-scrollbar-thumb{background:var(--ink-150);border:3px solid var(--paper-sunk)}::-webkit-scrollbar-thumb:hover{background:var(--ink-300)}.display-6 .fig,.fig{font-family:var(--font-ui);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.01em}.font-mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.shadow-sm{box-shadow:var(--shadow-sm)!important}.shadow{box-shadow:var(--shadow-md)!important}.shadow-lg{box-shadow:var(--shadow-lg)!important}.card{background:var(--paper-raised);border:1px solid var(--rule-soft);border-radius:var(--r-structural);box-shadow:var(--shadow-sm)}.card-header{background:transparent;border-bottom:1px solid var(--rule-soft);font-family:var(--font-ui);font-size:var(--t-base);font-weight:700;letter-spacing:-.01em;text-transform:none;color:var(--ink-900)}.btn{border-radius:var(--r-interactive);font-weight:600;letter-spacing:-.005em;transition:background-color var(--dur-ui) var(--ease-draught),border-color var(--dur-ui),color var(--dur-ui),box-shadow var(--dur-ui)}.btn-primary,.btn-warning{--bs-btn-bg:var(--redline);--bs-btn-border-color:var(--redline);--bs-btn-color:#fff;--bs-btn-hover-bg:var(--redline-deep);--bs-btn-hover-border-color:var(--redline-deep);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--redline-deep);--bs-btn-active-border-color:var(--redline-deep);--bs-btn-active-color:#fff}.btn-dark{--bs-btn-bg:var(--teal-800);--bs-btn-border-color:var(--teal-800);--bs-btn-color:#fff;--bs-btn-hover-bg:var(--teal-900);--bs-btn-hover-border-color:var(--teal-900);--bs-btn-hover-color:#fff}.btn-success{--bs-btn-bg:var(--st-converted);--bs-btn-border-color:var(--st-converted);--bs-btn-color:#fff;--bs-btn-hover-bg:#1f6b40;--bs-btn-hover-border-color:#1f6b40;--bs-btn-hover-color:#fff;--bs-btn-active-bg:#1f6b40;--bs-btn-active-border-color:#1f6b40;--bs-btn-active-color:#fff}.btn-outline-primary{--bs-btn-color:var(--redline-text);--bs-btn-border-color:var(--redline);--bs-btn-hover-bg:var(--redline);--bs-btn-hover-border-color:var(--redline);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--redline);--bs-btn-active-color:#fff}.btn-outline-secondary{--bs-btn-color:var(--ink-700);--bs-btn-border-color:var(--rule);--bs-btn-hover-bg:var(--paper-sunk);--bs-btn-hover-border-color:var(--rule);--bs-btn-hover-color:var(--ink-900)}.btn-outline-dark{--bs-btn-color:var(--teal-800);--bs-btn-border-color:var(--teal-800);--bs-btn-hover-bg:var(--teal-800);--bs-btn-hover-color:#fff}.form-control,.form-select{background:var(--paper-raised);border:1px solid var(--rule-soft);border-radius:var(--r-interactive);color:var(--ink-900)}.form-control:focus,.form-select:focus{background:#fff;border-color:var(--redline);box-shadow:0 0 0 2px var(--redline-wash)}.form-label{font-size:var(--t-sm);color:var(--ink-700)}.badge,.form-label{font-family:var(--font-ui);font-weight:600;letter-spacing:0;text-transform:none}.badge{border-radius:var(--r-pill);padding:.35em .7em}.alert{border-radius:var(--r-structural);border-width:1px}.alert-success{--bs-alert-color:var(--st-converted);--bs-alert-bg:#e7f0ea;--bs-alert-border-color:var(--st-responded)}.alert-warning{--bs-alert-color:#8a5310;--bs-alert-bg:var(--redline-wash);--bs-alert-border-color:var(--st-followup)}.alert-danger{--bs-alert-color:var(--st-declined);--bs-alert-bg:#f6e6e3;--bs-alert-border-color:var(--st-declined)}.table{--bs-table-border-color:var(--rule-soft)}.table-sm td,.table-sm th{padding:.35rem .5rem}thead th{font-family:var(--font-ui);font-size:var(--t-sm);font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink-500);border-bottom:1px solid var(--rule-soft)!important}.table-hover tbody tr:hover td{background-color:var(--paper-sunk)}.breadcrumb{font-size:.833rem;margin-bottom:0;font-family:var(--font-ui)}.navbar.navbar-dark{background-color:var(--blueprint)!important;border-bottom:1px solid var(--rule)}.navbar-dark .nav-link{color:var(--blueprint-mut)!important;font-size:var(--t-sm);letter-spacing:.01em}.navbar-dark .nav-link:focus,.navbar-dark .nav-link:hover{color:var(--blueprint-ink)!important}.dropdown-menu{border:1px solid var(--rule-soft);border-radius:var(--r-structural);box-shadow:var(--shadow-md);background:var(--paper-raised)}.dropdown-item:active{background:var(--redline);color:#fff}.sheet-grid{position:relative;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px}.blueprint,.hero-dark,.portal-hero{position:relative;background-color:var(--teal-800);background-image:linear-gradient(135deg,var(--teal-800),var(--teal-900));border:none;border-radius:var(--r-card);color:var(--blueprint-ink);box-shadow:var(--shadow-sm);overflow:hidden}.hero-dark .text-white-50,.portal-hero .text-white-50{color:var(--blueprint-mut)!important}.hero-dark,.portal-hero{isolation:isolate}.text-ihus{color:var(--redline-text)!important}.blueprint .text-ihus,.hero-dark .text-ihus,.navbar .text-ihus,.portal-hero .text-ihus{color:var(--redline)!important}.titleblock-label{font-family:var(--font-ui);font-size:var(--t-sm);font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-500)}.dim-line{position:relative;border-top:1px solid var(--rule);margin:var(--sp-4) 0}.dim-line:after,.dim-line:before{content:"";position:absolute;top:-5px;width:1px;height:10px;background:var(--rule)}.dim-line:before{left:0}.dim-line:after{right:0}.scalebar{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--t-xs);color:var(--ink-500)}.scalebar .bar{display:inline-flex;height:7px;border:1px solid}.scalebar .bar i{width:16px;height:100%;display:inline-block}.scalebar .bar i:nth-child(odd){background:currentColor}.northpoint{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.1em;display:inline-flex;align-items:center;gap:4px;color:var(--ink-500)}.northpoint:before{content:"▲";font-size:.7em}.stage-card{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-structural);position:relative}.weatherboard-rule{height:8px;background-image:repeating-linear-gradient(180deg,var(--paper-sunk) 0 3px,var(--rule-soft) 3px 4px,var(--paper-raised) 4px 8px);border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft)}.dwg-ref{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.04em;color:var(--redline-text);border:1px solid var(--rule-soft);border-radius:var(--r-pill);padding:.15em .5em}.portal-bg{background-color:var(--paper)}.badge-new{background-color:var(--pill-grey-bg);color:var(--pill-grey-fg)}.badge-letter{background-color:var(--pill-blue-bg);color:var(--pill-blue-fg)}.badge-followup{background-color:var(--pill-amber-bg);color:var(--pill-amber-fg)}.badge-converted,.badge-responded{background-color:var(--pill-green-bg);color:var(--pill-green-fg)}.badge-declined{background-color:var(--pill-red-bg);color:var(--pill-red-fg)}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-weight:600;font-size:var(--t-sm);line-height:1.2;padding:.3em .7em;border-radius:var(--r-pill)}.pill-green{color:var(--pill-green-fg);background:var(--pill-green-bg)}.pill-amber{color:var(--pill-amber-fg);background:var(--pill-amber-bg)}.pill-red{color:var(--pill-red-fg);background:var(--pill-red-bg)}.pill-blue{color:var(--pill-blue-fg);background:var(--pill-blue-bg)}.chip,.pill-grey{color:var(--pill-grey-fg);background:var(--pill-grey-bg)}.chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:0;border:1px solid transparent;border-radius:var(--r-pill);padding:.3em .7em}.chip-live{background:var(--pill-green-bg);color:var(--pill-green-fg)}.chip-paused{background:var(--pill-amber-bg);color:var(--pill-amber-fg)}.chip-ok{background:var(--pill-green-bg);color:var(--pill-green-fg)}.chip-bad{background:var(--pill-red-bg);color:var(--pill-red-fg)}.progress{background:var(--paper-sunk);border-radius:var(--r-pill)}.progress-bar{background-color:var(--redline)}.progress-bar.is-survey{background-color:var(--survey-blue)}.tile-link{display:block;height:100%}.tile-link .card{transition:border-color var(--dur-ui) var(--ease-draught),transform var(--dur-ui) var(--ease-draught),background-color var(--dur-ui)}.tile-link:hover .card{border-color:var(--rule);transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--paper-raised)}.tile-link:hover .figure-value{color:var(--redline-text)}.tile-link:focus-visible{outline:none}.tile-link:focus-visible .card{border-color:var(--redline);outline:2px solid var(--redline);outline-offset:2px}.figure-cell{text-align:center}.figure-cell .figure-value{font-family:var(--font-ui);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:800;font-size:var(--t-2xl);line-height:1.05;letter-spacing:-.02em}.figure-cell .figure-sub{font-family:var(--font-ui);font-size:var(--t-sm);color:var(--ink-500)}.well{background:var(--paper-sunk);border:1px solid var(--rule-soft);border-left:2px solid var(--redline);border-radius:var(--r-structural);padding:var(--sp-4)}.display-6{font-size:2rem}.app-shell{min-height:100vh}.app-topbar{position:fixed;top:0;left:0;right:0;height:56px;z-index:1020;display:flex;align-items:center;gap:12px;padding:0 16px;background:#fff;border-bottom:1px solid var(--rule-soft)}.topbar-burger{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;font-size:1.3rem;color:var(--teal-800);background:transparent;border:1px solid var(--rule-soft);border-radius:10px;cursor:pointer}.topbar-burger:hover{background:var(--paper-sunk)}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:linear-gradient(180deg,var(--teal-800),var(--teal-900));color:var(--teal-100);display:flex;flex-direction:column;padding:22px 14px 18px;z-index:1045;overflow-y:auto;transform:translateX(-100%);transition:transform var(--dur-ui) var(--ease-draught)}.sidebar.is-open{transform:translateX(0)}.sidebar-brand{padding:0 8px 6px}.sidebar-brand .sidebar-title{font-family:var(--font-ui);font-weight:800;letter-spacing:.02em;color:var(--redline);font-size:var(--t-sm);text-transform:uppercase;margin-top:10px}.sidebar-brand .sidebar-sub{color:var(--teal-100);font-size:var(--t-xs);opacity:.85;line-height:1.35}.sidebar-nav{display:flex;flex-direction:column;gap:3px;margin-top:18px}.sidebar-link{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;color:var(--teal-100);text-decoration:none;font-weight:500;font-size:var(--t-sm);border-radius:10px;transition:background-color var(--dur-ui) var(--ease-draught),color var(--dur-ui)}.sidebar-link i{font-size:1.05rem;width:20px;text-align:center}.sidebar-link:hover{background:rgba(255,255,255,.08);color:#fff}.sidebar-link.active{background:#fff;color:var(--redline-text);font-weight:600}.sidebar-link.active i{color:var(--redline)}.sidebar-link.active:before{content:"";position:absolute;left:-14px;top:7px;bottom:7px;width:4px;border-radius:0 4px 4px 0;background:var(--redline)}.sidebar-group-toggle{width:100%;background:transparent;border:none;text-align:left;cursor:pointer}.sidebar-group-toggle.parent-active{color:#fff}.sidebar-subnav{margin:2px 0 4px 22px;padding-left:8px;border-left:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;gap:2px}.sidebar-sublink{padding:8px 12px;font-size:var(--t-sm)}.sidebar-sublink i{font-size:.95rem}.sidebar-foot{margin-top:auto;padding-top:14px}.sidebar-help{background:var(--teal-help);border-radius:14px;padding:14px;color:var(--teal-100);font-size:var(--t-sm)}.sidebar-help .sidebar-help-title{color:#fff;font-weight:700;display:flex;align-items:center;gap:8px}.sidebar-help a{color:var(--teal-100);text-decoration:none}.sidebar-help a:hover{color:#fff}.app-main{margin-left:0;min-width:0;background:var(--paper);padding-top:56px;box-sizing:border-box;min-height:100vh;display:flex;flex-direction:column}.app-main>main{flex:1 0 auto}.sidebar-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.45);z-index:1044}.tile-badge{width:46px;height:46px;min-width:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;color:#fff}.tile-badge.teal{background:var(--teal-800)}.tile-badge.orange{background:var(--redline)}.tile-badge.soft-teal{background:var(--teal-100);color:var(--teal-800)}.tile-badge.soft-orange{background:var(--redline-wash);color:var(--redline-text)}.stat-tile{display:flex;align-items:center;gap:14px}.stat-tile .stat-value{font-family:var(--font-ui);font-weight:800;font-size:var(--t-xl);line-height:1.05;letter-spacing:-.02em;color:var(--ink-900)}.stat-tile .stat-label{font-size:var(--t-sm);color:var(--ink-500);line-height:1.2}a.stat-card-link{text-decoration:none;color:inherit;display:block;height:100%}a.stat-card-link .card{transition:box-shadow var(--dur-ui) var(--ease-draught),transform var(--dur-ui)}a.stat-card-link:hover .card{box-shadow:var(--shadow-md);transform:translateY(-2px)}.score-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.score-ring .score-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.score-ring .score-ring-value{font-family:var(--font-ui);font-weight:800;font-size:var(--t-xl);color:var(--teal-800)}.score-ring .score-ring-max{font-size:var(--t-xs);color:var(--ink-500)}.journey{list-style:none;margin:0;padding:0}.journey-step{position:relative;display:flex;gap:12px;padding-bottom:14px}.journey-step:last-child{padding-bottom:0}.journey-marker{position:relative;width:30px;min-width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;background:var(--paper-sunk);color:var(--ink-500);border:2px solid var(--rule-soft);z-index:1}.journey-step.is-done .journey-marker{background:var(--teal-800);color:#fff;border-color:var(--teal-800)}.journey-step.is-current .journey-marker{background:var(--redline);color:#fff;border-color:var(--redline)}.journey-step:not(:last-child) .journey-marker:after{content:"";position:absolute;top:30px;left:50%;transform:translateX(-50%);width:2px;height:calc(100% - 16px);min-height:14px;background:var(--rule-soft)}.journey-step.is-done:not(:last-child) .journey-marker:after{background:var(--teal-700)}.journey-label{font-size:var(--t-sm);color:var(--ink-700);padding-top:4px}.journey-step.is-current .journey-label{font-weight:600;color:var(--ink-900)}.health-dot{display:inline-block;width:12px;height:12px;border-radius:50%}.health-dot.green{background:var(--st-responded)}.health-dot.amber{background:var(--st-followup)}.health-dot.red{background:var(--st-declined)}.tracker-row{display:flex;align-items:center;gap:10px;padding:8px 0}.tracker-row .tracker-icon{width:22px;text-align:center;font-size:1.05rem}.tracker-row .tracker-count{margin-left:auto;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.text-teal{color:var(--teal-800)!important}@keyframes plot-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes draw-line{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.plot-in{animation:plot-in var(--dur-plot) var(--ease-draught) both}.draw-line{transform-origin:left center;animation:draw-line var(--dur-plot) var(--ease-draught) both}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}