:root{--indigo:#635aff;--navy:#0e1330;--saffron:#f5a524;--vermilion:#e5484d;--teal:#16a38c;--ink:#0e1330;--ink-2:#2b3154;--muted:#6b7191;--line:#e4e6f1;--line-strong:#cdd1e6;--paper:#fff;--canvas:#f6f7fb;--chip:#eef0f9;--font-body:"Inter Tight", system-ui, -apple-system, sans-serif;--font-display:"Instrument Serif", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px #0e13300f, 0 8px 24px #0e13300f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body);color:var(--ink);background:var(--canvas)}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--canvas);margin:0}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}button{font-family:inherit}a{color:var(--indigo)}.serif{font-family:var(--font-display);font-style:italic;font-weight:400}.mono,code,.mono{font-family:var(--font-mono)}.app{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:30;background:var(--navy);color:#fff;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0;box-shadow:0 1px #ffffff0f}.brand{align-items:baseline;gap:10px;display:flex}.brand .logo-dot{background:var(--indigo);border-radius:50%;align-self:center;width:10px;height:10px;box-shadow:0 0 0 4px #635aff40}.brand .title{letter-spacing:-.02em;font-size:18px;font-weight:600}.brand .title em{font-family:var(--font-display);color:#c9c5ff;font-style:italic;font-weight:400}.brand .tag{color:#9aa0c4;font-size:12px;font-family:var(--font-mono)}.topbar .spacer{flex:1}.topbar .btn{color:#fff}.main{flex-direction:column;gap:20px;width:min(1320px,100%);margin:0 auto;padding:24px;display:flex}.btn{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);cursor:pointer;align-items:center;gap:8px;padding:9px 14px;font-size:14px;font-weight:500;transition:background .12s,border-color .12s,transform 40ms;display:inline-flex}.btn:hover{border-color:var(--indigo)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--indigo);border-color:var(--indigo);color:#fff}.btn.primary:hover{background:#4f46e6}.btn.ghost{background:0 0;border-color:#ffffff40}.btn.ghost:hover{background:#ffffff14;border-color:#fff}.btn.sm{padding:6px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card>.card-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 18px;display:flex}.card>.card-head h3{font-size:15px}.card>.card-head .sub{color:var(--muted);font-size:12px}.card>.card-head .spacer{flex:1}.card-body{padding:16px 18px}.grid-2{grid-template-columns:1.35fr 1fr;align-items:start;gap:20px;display:grid}.stack{flex-direction:column;gap:20px;display:flex}@media (width<=1040px){.grid-2{grid-template-columns:1fr}}.chip{background:var(--chip);color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.chip.mono{font-family:var(--font-mono);font-size:11px}.trust{font-family:var(--font-mono);border-radius:6px;padding:2px 7px;font-size:11px;font-weight:600}.trust.highest{color:#0c7a63;background:#e7f6f1}.trust.high{color:#463bd6;background:#e9e8ff}.trust.medium{color:#9a6708;background:#fdf1dc}.trust.light{color:#6b7191;background:#f1f2f7}.conf{font-family:var(--font-mono);border-radius:6px;padding:2px 7px;font-size:11px;font-weight:600}.conf.high{color:#0c7a63;background:#e7f6f1}.conf.medium{color:#9a6708;background:#fdf1dc}.conf.low{color:#c0322f;background:#fdeaea}.scope-dot{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.scope-tag{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.table-wrap{overflow:visible}table.t{border-collapse:collapse;width:100%;font-size:13.5px}table.t th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 12px;font-size:11px;font-weight:600}table.t td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 12px}table.t tr:last-child td{border-bottom:none}table.t td.num{font-family:var(--font-mono);text-align:right}table.t .device-id{font-family:var(--font-mono);font-size:12px;font-weight:600}.why{color:var(--ink-2);max-width:360px}.facts{flex-wrap:wrap;gap:22px;display:flex}.fact .k{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-family:var(--font-mono)}.fact .v{margin-top:2px;font-size:15px;font-weight:600}.docs-list{flex-direction:column;gap:8px;margin-top:4px;display:flex}.doc-row{align-items:center;gap:10px;font-size:13px;display:flex}.doc-row .name{flex:1}.doc-row .kind{color:var(--muted);font-family:var(--font-mono);font-size:11px}.seg{background:#ffffff1a;border-radius:999px;padding:3px;display:inline-flex}.seg button{color:#c7cbe6;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500}.seg button.on{color:var(--navy);background:#fff}.hero{text-align:center;padding:40px 24px}.hero .display{font-family:var(--font-display);color:var(--navy);font-size:40px;font-style:italic;line-height:1.1}.hero p{color:var(--ink-2);max-width:640px;margin:12px auto 0}.hero .actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;display:flex}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--radius);max-width:560px;color:var(--muted);background:var(--paper);margin:22px auto 0;padding:26px;transition:border-color .12s,background .12s}.dropzone.drag{border-color:var(--indigo);color:var(--ink-2);background:#f5f4ff}.errors{text-align:left;color:#8c2926;border-radius:var(--radius-sm);background:#fdeaea;border:1px solid #f5b9b7;max-width:560px;margin:18px auto 0;padding:14px 16px;font-size:13.5px}.errors ul{margin:8px 0 0;padding-left:18px}.errors li{font-family:var(--font-mono);margin:3px 0;font-size:12.5px}.canvas-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.canvas-toolbar .spacer{flex:1}.floor-input{color:var(--muted);font-size:12px;font-family:var(--font-mono);border:1px solid var(--line-strong);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.floor-input input{width:72px;font-family:var(--font-mono);color:var(--ink);background:0 0;border:none;outline:none;font-size:13px}.scope-filter{flex-wrap:wrap;gap:6px;display:inline-flex}.scope-filter button{border:1px solid var(--line-strong);background:var(--paper);cursor:pointer;color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.scope-filter button.on{color:var(--ink);border-color:var(--ink-2)}.scope-filter button .scope-dot{opacity:.35}.scope-filter button.on .scope-dot{opacity:1}.plan-stage{aspect-ratio:4/3;background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius-sm);touch-action:none;-webkit-user-select:none;user-select:none;background-image:linear-gradient(#0e13300a 1px,#0000 1px),linear-gradient(90deg,#0e13300a 1px,#0000 1px);background-size:28px 28px;width:100%;position:relative;overflow:hidden}.plan-stage img.plan-img{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.plan-empty{text-align:center;color:var(--muted);justify-content:center;align-items:center;padding:24px;font-size:14px;display:flex;position:absolute;inset:0}.pin{cursor:grab;border:2px solid #fff;border-radius:50% 50% 50% 2px;justify-content:center;align-items:center;width:22px;height:22px;display:flex;position:absolute;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 2px 5px #0e13304d}.pin:active{cursor:grabbing}.pin .pin-label{font-family:var(--font-mono);color:#fff;font-size:8px;font-weight:700;rotate:-45deg}.pin.confirmed{box-shadow:0 0 0 3px #16a38c80,0 2px 5px #0e13304d}.pin.rejected{opacity:.32}.pin.selected{box-shadow:0 0 0 3px var(--navy), 0 2px 5px #0e133059;z-index:5}.pin-detail{border-top:1px solid var(--line);padding:14px 18px}.pin-detail .row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.pin-detail .where{font-size:15px;font-weight:600}.pin-detail .reason{color:var(--ink-2);margin:6px 0 12px;font-size:13.5px}.pin-detail .preq{color:#9a6708;font-size:12.5px;font-family:var(--font-mono);background:#fdf1dc;border-radius:6px;padding:6px 9px;display:inline-block}.pin-detail .actions{gap:8px;margin-top:12px;display:flex}.hint{color:var(--muted);margin-top:8px;font-size:12.5px}.coverage{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.cov-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px}.cov-card .head{align-items:center;gap:8px;display:flex}.cov-card .head .name{font-size:13.5px;font-weight:600}.cov-card .count{letter-spacing:-.02em;margin-top:6px;font-size:30px;font-weight:700}.cov-card .count .lbl{color:var(--muted);margin-left:6px;font-size:12px;font-weight:500}.cov-card .desc{color:var(--ink-2);margin-top:6px;font-size:12.5px}.cov-card .sub{color:var(--muted);font-size:11.5px;font-family:var(--font-mono);margin-top:6px}.survey-list{margin:0;padding:0;list-style:none}.survey-list li{border-bottom:1px solid var(--line);color:var(--ink-2);gap:10px;padding:9px 0;font-size:13.5px;display:flex}.survey-list li:last-child{border-bottom:none}.survey-list li .mark{color:var(--saffron);flex:none;font-weight:700}.note{color:var(--muted);font-size:12.5px}.callout{color:var(--ink-2);border-radius:var(--radius-sm);background:#f5f4ff;border:1px solid #ddd9ff;padding:12px 14px;font-size:13px}.callout strong{color:var(--navy)}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.legend .scope-tag{color:var(--ink-2)}.kpis{flex-wrap:wrap;gap:28px;display:flex}.kpi .n{letter-spacing:-.02em;font-size:30px;font-weight:700}.kpi .l{color:var(--muted);font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}.hero-wrap{text-align:center;flex-direction:column;align-items:center;gap:0;max-width:760px;margin:6vh auto 0;display:flex}.hero-eyebrow{letter-spacing:.18em;color:var(--indigo);font-size:12px;font-weight:500}.hero-title{letter-spacing:-.025em;color:var(--navy);max-width:16ch;margin:18px 0 0;font-size:46px;font-weight:600;line-height:1.08}.hero-title em{font-family:var(--font-display);color:var(--indigo);font-style:italic;font-weight:400}.hero-lede{color:var(--ink-2);max-width:60ch;margin:20px 0 0;font-size:16px;line-height:1.6}.hero-drop{border:1.5px dashed var(--line-strong);background:var(--paper);border-radius:16px;flex-direction:column;align-items:center;gap:14px;width:100%;margin-top:34px;padding:40px 24px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.hero-drop.drag{border-color:var(--indigo);background:#f5f4ff;box-shadow:0 12px 40px #635aff24}.hero-drop-sub{color:var(--muted);font-size:13.5px}.btn.lg{border-radius:10px;padding:14px 24px;font-size:15.5px;box-shadow:0 8px 24px #635aff40}.hero-or{color:var(--muted);margin-top:22px;font-size:14px}.linklike{color:var(--indigo);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.linklike:hover{text-decoration:underline}.hero-scopes{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:center;gap:22px;width:100%;margin-top:42px;padding-top:26px;display:flex}.tab-strip{border-bottom:1px solid var(--line);background:#fbfbfe;gap:6px;padding:12px 18px;display:flex;overflow-x:auto}.tab-strip::-webkit-scrollbar{height:6px}.tab-strip::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.tab{white-space:nowrap;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink-2);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.tab:hover{border-color:var(--indigo)}.tab.on{background:var(--navy);border-color:var(--navy);color:#fff}.tab-n{font-family:var(--font-mono);background:var(--chip);color:var(--ink-2);border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}.tab.on .tab-n{color:#fff;background:#ffffff2e}.tray{border-bottom:1px solid var(--line);background:#fffaf0;padding:12px 18px}.tray-head{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.tray-title{color:var(--ink);align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.tray-items{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.tray-pin{white-space:nowrap;border:1px solid var(--line-strong);border-left:3px solid var(--c,var(--indigo));background:var(--paper);color:var(--ink-2);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;padding:7px 12px;font-size:12.5px;display:inline-flex}.tray-pin:active{cursor:grabbing}.tray-pin.selected{border-color:var(--navy);box-shadow:0 0 0 2px #0e13301f}.tray-where{color:var(--muted);text-overflow:ellipsis;max-width:240px;overflow:hidden}.entry{max-width:1100px;margin:5vh auto 0}.entry-head{text-align:center;margin-bottom:36px}.entry-head .hero-title{margin:16px auto 0}.entry-head .hero-lede{margin:18px auto 0}.entry-cols{grid-template-columns:1.1fr .9fr;align-items:start;gap:24px;display:grid}@media (width<=900px){.entry-cols{grid-template-columns:1fr}}.guide .card-body{padding:8px 22px 22px}.guide-steps{counter-reset:none;margin:0;padding:0;list-style:none}.guide-steps li{border-bottom:1px solid var(--line);gap:16px;padding:16px 0;display:flex}.guide-steps li:last-child{border-bottom:none}.guide-n{width:30px;height:30px;font-family:var(--font-mono);color:var(--indigo);background:#eee9ff;border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.guide-t{color:var(--navy);font-size:15px;font-weight:600}.guide-d{color:var(--ink-2);margin-top:4px;font-size:13.5px;line-height:1.55}.cta-card{position:sticky;top:88px}.cta-card .card-body{padding:22px}.cta-card .hero-drop{margin-top:0}.asset-pills{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.asset-pills-label{letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-right:4px;font-size:11px}.asset-pill{border:1px solid var(--line-strong);background:var(--paper);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.asset-pill:hover{border-color:var(--indigo)}.asset-pill.on{background:var(--indigo);border-color:var(--indigo);color:#fff;box-shadow:0 6px 18px #635aff40}.coverage-bar{border-bottom:1px solid var(--line);background:#fbfbfe;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px;display:flex}.cov-pill{color:var(--ink-2);align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}.cov-n{font-family:var(--font-mono);color:var(--navy);font-weight:700}.cov-total{color:var(--muted);font-size:12px}.methodology .card-head h3{font-size:16px}.method-grid{flex-direction:column;gap:18px;display:flex}.method-context{color:var(--ink-2);margin:0;font-size:14px;font-weight:500}.method-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--indigo);margin-bottom:10px;font-size:11px;font-weight:600}.method-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.method-list li{color:var(--ink-2);gap:10px;font-size:13.5px;line-height:1.55;display:flex}.method-list li .scope-dot{margin-top:5px}.method-docs{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.doc-chip{color:var(--ink-2);background:var(--chip);border-radius:999px;align-items:center;gap:7px;padding:4px 10px 4px 4px;font-size:12.5px;display:inline-flex}.method-note{color:var(--ink-2);margin:0;font-size:13.5px;line-height:1.55}.method-assumptions{color:var(--ink-2);margin:8px 0 0;padding-left:18px;font-size:13px}.method-assumptions li{margin:4px 0}.card.accordion{overflow:visible}.acc-head{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:16px 18px;display:flex}.acc-head h3{font-size:15px}.acc-head .chevron{color:var(--muted);font-size:20px;line-height:1;transition:transform .25s;transform:rotate(0)}.accordion.open .acc-head .chevron{transform:rotate(90deg)}.acc-count{color:var(--muted);background:var(--chip);border-radius:999px;margin-left:auto;padding:3px 10px;font-size:12px}.acc-body{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.accordion.open .acc-body{grid-template-rows:1fr}.acc-inner{min-height:0;padding:0 18px;transition:overflow;overflow:hidden}.accordion.open .acc-inner{padding-bottom:18px;transition:overflow 0s .3s;overflow:visible}.glossary{grid-template-columns:1fr;gap:2px;margin:8px 0 0;display:grid}.gl-row{border-bottom:1px solid var(--line);grid-template-columns:92px 1fr;align-items:baseline;gap:14px;padding:9px 0;display:grid}.gl-row:last-child{border-bottom:none}.gl-row dt{color:var(--navy);font-size:12.5px;font-weight:700}.gl-row dd{color:var(--ink-2);margin:0;font-size:13.5px}.gl-row dd strong{color:var(--navy);font-weight:600}.gl-def{color:var(--muted)}@media (width>=760px){.glossary{grid-template-columns:1fr 1fr;gap:2px 40px}}.term{border-bottom:1px dotted var(--line-strong);cursor:help;outline:none;position:relative}.term:hover,.term:focus{border-bottom-color:var(--indigo)}.term-tip{z-index:60;background:var(--navy);color:#fff;width:max-content;max-width:260px;font-family:var(--font-body);opacity:0;visibility:hidden;pointer-events:none;text-transform:none;letter-spacing:0;border-radius:8px;padding:9px 11px;font-size:12px;font-weight:400;line-height:1.45;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 10px 30px #0e133047}.term-tip:after{content:"";border:6px solid #0000;border-top-color:var(--navy);position:absolute;top:100%;left:50%;transform:translate(-50%)}.term-tip strong{color:#fff;font-weight:600;display:block}.term-tip .term-def{color:#c7cbe6;margin-top:4px;display:block}.term:hover .term-tip,.term:focus .term-tip{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.cell-id{color:var(--muted);font-size:11px}.floor-cell{color:var(--ink-2);white-space:nowrap;font-weight:600}.gateway-body{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.gateway-text{flex-direction:column;flex:1;gap:8px;min-width:260px;display:flex}.errors.banner{max-width:none;margin:0}.errors.banner ul{margin:8px 0 0}.pin.schematic-view{border-style:dashed}
