@import url("https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css");@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css");:root{--paper:#f2f1ec;--paper-raised:#fbfaf7;--paper-sunk:#ebeae3;--ink-900:#191b1d;--ink-700:#3a3d40;--ink-500:#5e6266;--ink-300:#9a9ea1;--ink-150:#c8c9c4;--rule:#191b1d;--rule-soft:rgba(25,27,29,0.16);--grid:rgba(25,27,29,0.055);--grid-blue:rgba(120,170,205,0.14);--redline:#ff6800;--redline-deep:#d2540a;--redline-text:#a8460a;--redline-wash:#fbeadc;--survey-blue:#2d5ba6;--survey-blue-wash:#e7edf6;--blueprint:#14181d;--blueprint-line:rgba(150,195,225,0.16);--blueprint-ink:#e8ecef;--blueprint-mut:#97a3ad;--st-new:#6b7075;--st-letter:#2d5ba6;--st-followup:#c8761a;--st-responded:#3f7d54;--st-converted:#2f6b4f;--st-declined:#b3402f;--r-structural:2px;--r-interactive:4px;--r-pill:2px;--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-structural);--bs-border-radius-lg:var(--r-structural);--bs-border-radius-xl:var(--r-structural);--bs-border-radius-2xl:var(--r-structural);--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:168,70,10}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}::-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-mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.shadow,.shadow-lg,.shadow-sm{box-shadow:none!important}.card{background:var(--paper-raised);border:1px solid var(--rule-soft);border-radius:var(--r-structural)}.card.shadow,.card.shadow-sm{border-color:var(--rule-soft)}.card-header{background:transparent;border-bottom:1px solid var(--rule);font-family:var(--font-mono);font-size:var(--t-sm);font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-700)}.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)}.btn-primary,.btn-warning{--bs-btn-bg:var(--redline);--bs-btn-border-color:var(--ink-900);--bs-btn-color:var(--ink-900);--bs-btn-hover-bg:var(--redline-deep);--bs-btn-hover-border-color:var(--ink-900);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--redline-deep);--bs-btn-active-border-color:var(--ink-900);--bs-btn-active-color:#fff}.btn-dark{--bs-btn-bg:var(--ink-900);--bs-btn-border-color:var(--ink-900);--bs-btn-hover-bg:#000}.btn-success{--bs-btn-bg:var(--st-converted);--bs-btn-border-color:var(--ink-900);--bs-btn-color:#fff;--bs-btn-hover-bg:var(--st-responded);--bs-btn-hover-border-color:var(--ink-900);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--st-responded);--bs-btn-active-border-color:var(--ink-900);--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(--ink-900);--bs-btn-hover-color:var(--ink-900);--bs-btn-active-bg:var(--redline);--bs-btn-active-color:var(--ink-900)}.btn-outline-secondary{--bs-btn-color:var(--ink-700);--bs-btn-border-color:var(--rule);--bs-btn-hover-bg:var(--ink-900);--bs-btn-hover-border-color:var(--ink-900);--bs-btn-hover-color:var(--paper)}.btn-outline-dark{--bs-btn-color:var(--ink-900);--bs-btn-border-color:var(--ink-900);--bs-btn-hover-bg:var(--ink-900);--bs-btn-hover-color:var(--paper)}.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-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500)}.badge,.form-label{font-family:var(--font-mono);font-weight:500}.badge{letter-spacing:.04em;border-radius:var(--r-pill);padding:.3em .6em}.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-mono);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500);border-bottom:1px solid var(--rule)!important}.table-hover tbody tr:hover td{background-color:var(--redline-wash)}.breadcrumb{font-size:.833rem;margin-bottom:0;font-family:var(--font-mono)}.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);border-radius:var(--r-structural);box-shadow:none;background:var(--paper-raised)}.dropdown-item:active{background:var(--redline);color:var(--ink-900)}.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(--blueprint);background-image:linear-gradient(var(--blueprint-line) 1px,transparent 1px),linear-gradient(90deg,var(--blueprint-line) 1px,transparent 1px);background-size:28px 28px;border:1px solid #2a3138;border-top:2px solid var(--redline);color:var(--blueprint-ink);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-mono);font-size:var(--t-xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;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:var(--blueprint)!important;border:1px solid #2a3138;border-top:2px solid var(--redline);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(--st-new)}.badge-letter{background-color:var(--st-letter)}.badge-followup{background-color:var(--st-followup)}.badge-responded{background-color:var(--st-responded)}.badge-converted{background-color:var(--st-converted)}.badge-declined{background-color:var(--st-declined)}.chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--t-xs);font-weight:500;letter-spacing:.04em;border:1px solid var(--rule-soft);border-radius:var(--r-pill);padding:.2em .55em;color:var(--ink-700);background:transparent}.chip-live{border-color:var(--st-responded);color:var(--st-converted)}.chip-paused{border-color:var(--st-followup);color:#8a5310}.chip-ok{border-color:var(--st-responded);color:var(--st-converted)}.chip-bad{border-color:var(--st-declined);color:var(--st-declined)}.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(--redline);transform:translateY(-2px);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-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--t-2xl);line-height:1.05;letter-spacing:-.02em}.figure-cell .figure-sub{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--redline-text)}.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}.tool-rail{position:fixed;inset:0 auto 0 0;width:56px;background:var(--blueprint);border-right:1px solid #2a3138;display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:4px;z-index:1030}.tool-rail .rail-burger{width:38px;height:38px;margin-bottom:6px;display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--blueprint-ink);background:transparent;border:1px solid #2a3138;border-radius:var(--r-interactive);cursor:pointer;transition:color var(--dur-ui) var(--ease-draught),border-color var(--dur-ui)}.tool-rail .rail-burger:hover{color:var(--redline);border-color:var(--redline)}.tool-rail .rail-link{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--blueprint-mut);text-decoration:none;border-radius:var(--r-interactive);transition:color var(--dur-ui) var(--ease-draught),background-color var(--dur-ui)}.tool-rail .rail-link:hover{color:var(--blueprint-ink);background:rgba(255,255,255,.06)}.tool-rail .rail-link.brand{color:var(--redline)}.tool-rail .rail-foot{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:4px}.app-main{margin-left:56px}.nav-drawer.offcanvas{width:288px;background:var(--blueprint);color:var(--blueprint-ink);border-right:1px solid #2a3138;border-top:2px solid var(--redline)}.nav-drawer .offcanvas-header{border-bottom:1px solid #2a3138}.nav-drawer .btn-close{filter:invert(1) grayscale(1) brightness(1.6)}.nav-drawer .drawer-link{display:flex;align-items:center;gap:10px;padding:9px 10px;color:var(--blueprint-ink);text-decoration:none;font-weight:500;border-radius:var(--r-interactive);transition:background-color var(--dur-ui) var(--ease-draught),color var(--dur-ui)}.nav-drawer .drawer-link:hover{background:rgba(255,255,255,.07);color:#fff}.nav-drawer .drawer-link i{width:18px;text-align:center;color:var(--redline)}.nav-drawer .drawer-section{color:var(--blueprint-mut)}@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}}