.ex-shell{--paper:#eeebe3;--ink:#303b35;--muted:#777b70;--line:#d9d7cb;--accent:#ad6339;z-index:10000;background:var(--paper);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;display:flex;position:fixed;inset:0}.ex-shell *{box-sizing:border-box}.ex-revision-note{border-left:3px solid var(--accent);overflow-wrap:anywhere;background:#f6f0e5;padding:10px 12px;line-height:1.5}.ex-shell button,.ex-shell input,.ex-shell select{font:inherit}.ex-shell button{cursor:pointer}.ex-shell button:disabled{cursor:not-allowed;opacity:.4}.ex-shell button:focus-visible,.ex-shell a:focus-visible,.ex-shell input:focus-visible,.ex-shell select:focus-visible,.ex-shell canvas:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.ex-shell button{color:inherit}.ex-top{border-bottom:1px solid var(--line);background:#f6f3ec;flex-shrink:0;justify-content:space-between;align-items:center;height:66px;padding:0 27px;display:flex}.ex-brand{letter-spacing:.12em;color:var(--ink);white-space:nowrap;font-size:12px;font-weight:750;text-decoration:none}.ex-brand-icon{color:var(--accent);margin-right:12px;font-size:24px}.ex-brand-muted{color:#7d8278;margin-left:5px;font-weight:400}.ex-project{text-align:center;font-weight:600}.ex-project>span{letter-spacing:.04em;color:var(--muted);margin-top:4px;font-size:10px;font-weight:400;display:block}.ex-close{background:0 0;border:1px solid #c6c8ba;border-radius:4px;padding:9px 12px;font-size:11px!important}.ex-close span{color:var(--accent);margin-left:18px}.ex-body{flex:1;grid-template-columns:265px minmax(300px,1fr) 285px;min-height:0;display:grid}.ex-left{border-right:1px solid var(--line);background:#f6f3ec;flex-direction:column;min-height:0;padding:32px 23px 18px;display:flex}.ex-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 16px;font-family:JetBrains Mono,monospace;font-size:9px;line-height:1.6}.ex-left h1{letter-spacing:-.06em;margin:0 0 18px;font-size:43px;font-weight:450;line-height:1.04}.ex-left h1 em{color:#69745c;font-family:Georgia,serif;font-weight:400}.ex-intro{color:var(--muted);max-width:210px;margin:0 0 25px;font-size:12px;line-height:1.75}.ex-label{letter-spacing:.1em;color:var(--muted);margin-bottom:8px;font-size:9px}.ex-left select{width:100%;min-height:38px;color:var(--ink);border:1px solid var(--line);background:#eeece3;border-radius:3px;flex-shrink:0;padding:10px 8px;font-size:11px}.ex-stats{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.4fr;gap:12px;margin-top:20px;padding:18px 0;display:grid}.ex-stats strong{letter-spacing:-.05em;white-space:nowrap;font-size:22px;font-weight:450}.ex-stats small{letter-spacing:0;font-size:11px}.ex-stats span{color:var(--muted);margin-top:4px;font-size:9px;display:block}.ex-section-heading{justify-content:space-between;align-items:center;margin-top:18px;display:flex}.ex-section-heading h2{font-size:12px;font-weight:600}.ex-section-heading>span{color:var(--muted);font-family:monospace;font-size:10px}.ex-coverage{color:var(--muted);margin:0 0 8px;font-size:11px;line-height:1.5}.ex-search{border:0;border-bottom:1px solid var(--line);color:var(--ink);background:0 0;width:100%;padding:10px 0;outline-offset:0!important;font-size:11px!important}.ex-room-list{flex:1;min-height:80px;margin:8px -10px 12px;overflow:auto}.ex-room-list button{text-align:left;background:0 0;border:0;border-bottom:1px solid #d9d7cb77;border-radius:3px;align-items:center;gap:10px;width:100%;padding:12px 10px;font-size:10px;line-height:1.5;display:flex}.ex-room-list button.active{color:#343d2d;background:#e6e5d7}.ex-room-list button:hover{background:#eceadd}.ex-room-list small{color:var(--muted);margin-top:4px;font-size:10px;display:block}.ex-index{color:#999d8f;align-self:flex-start;font-family:monospace;font-size:10px}.ex-arrow{color:var(--accent);margin-left:auto}.ex-trust{border-top:1px solid var(--line);padding-top:14px;font-size:10px}.ex-trust i{background:#7d8d64;border-radius:50%;width:5px;height:5px;margin-right:6px;display:inline-block}.ex-trust span{color:var(--muted);margin-top:5px;font-size:9px;display:block}.ex-stage{background:var(--paper);min-width:0;position:relative;overflow:hidden}.ex-scene{position:absolute;inset:0}.ex-scene canvas{touch-action:none;width:100%;height:100%;display:block}.ex-stage-head{z-index:2;pointer-events:none;justify-content:space-between;gap:10px;display:flex;position:absolute;top:22px;left:25px;right:25px}.ex-stage-head .ex-kicker{color:var(--ink);margin:0}.ex-coordinate{color:var(--muted);font-family:monospace;font-size:9px}.ex-modes{z-index:2;white-space:nowrap;background:#f6f3ecee;border:1px solid #d0d2c5;border-radius:5px;padding:4px;display:flex;position:absolute;top:60px;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #3c42300a}.ex-modes button{color:#8d9285;background:0 0;border:0;border-radius:3px;padding:9px 11px;font-size:9px}.ex-modes button span{color:var(--ink);margin-left:5px;font-size:11px}.ex-shell .ex-modes button[aria-pressed=true],.ex-shell .ex-modes button[aria-pressed=true]:hover:not(:disabled){color:#cad5c3;background:#364238}.ex-modes button[aria-pressed=true] span{color:#faf8ee}.ex-stage-foot{letter-spacing:.06em;color:#757e6c;justify-content:space-between;align-items:center;font-family:monospace;font-size:8px;display:flex;position:absolute;bottom:18px;left:24px;right:24px}.ex-stage-foot label{letter-spacing:0;align-items:center;gap:4px;font-family:inherit;display:flex}.ex-stage-foot input{accent-color:var(--accent);width:11px;height:11px}.ex-map{background:#f7f4eced;border:1px solid #c9cfc0;border-radius:4px;width:155px;padding:11px;position:absolute;bottom:61px;right:22px;box-shadow:0 8px 32px #3642380b}.ex-map>div{color:#7a8270;justify-content:space-between;font-family:monospace;font-size:7px;display:flex}.ex-map svg{width:100%;height:92px;margin:9px 0 3px}.ex-map polygon{fill:#e9e8df;stroke:#989e8d;stroke-width:.05px}.ex-map polygon.selected{fill:#d5b28e;stroke:#a76031;stroke-width:.12px}.ex-map circle{fill:#ac5d2c}.ex-map path{fill:#ac5d2c55}.ex-map p{color:#67715d;max-height:25px;margin:0;font-size:8px;line-height:1.5;overflow:hidden}.ex-room-caption{border-left:2px solid var(--accent);background:#f7f4eced;max-width:55%;padding:16px 20px;position:absolute;bottom:75px;left:27px}.ex-room-caption h2{letter-spacing:-.02em;margin:8px 0;font-size:19px;font-weight:500}.ex-room-caption p{color:var(--muted);margin:0 0 8px;font-size:10px}.ex-room-caption small{color:#8a765e;font-size:9px}.ex-room-caption .ex-kicker{margin:0;font-size:8px}.ex-right{border-left:1px solid var(--line);background:#f7f5ef;padding:30px 22px 20px;overflow:auto}.ex-right>h2{letter-spacing:-.04em;margin:0 0 16px;font-size:22px;font-weight:450}.ex-element-title{letter-spacing:.01em;font-size:12px;line-height:1.7}.ex-quantity{border-bottom:1px solid var(--line);padding:20px 0}.ex-quantity strong{letter-spacing:-.06em;font-size:40px;font-weight:400}.ex-quantity>span{color:var(--muted);margin-left:8px;font-size:15px}.ex-quantity small{color:var(--muted);margin-top:5px;font-size:9px;display:block}.ex-facts{margin:15px 0}.ex-facts>div{justify-content:space-between;gap:12px;padding:7px 0;font-size:10px;display:flex}.ex-facts dt{color:var(--muted)}.ex-facts dd{text-align:right;margin:0}.ex-source{border:1px solid var(--line);background:#fff;margin:18px 0}.ex-source svg{width:100%;height:140px;display:block}.ex-source button{border:0;border-top:1px solid var(--line);text-align:left;background:#eeece3;width:100%;padding:10px;font-size:10px}.ex-source button span{float:right;color:var(--accent)}.ex-details{margin-top:22px}.ex-details h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:9px;font-weight:600}.ex-details>div{border-bottom:1px solid #d9d7cb88;padding:8px 0;font-size:10px;line-height:1.6}.ex-details b{font-weight:500;display:block}.ex-details code{white-space:normal;color:#857057;font-size:10px}.ex-details span,.ex-details p{color:var(--muted);font-size:10px;line-height:1.6}.ex-issues{color:#8e6747;margin-top:22px;font-size:10px}.ex-issues summary{cursor:pointer}.ex-issues p{line-height:1.6}.ex-prototype{border-top:1px solid var(--line);color:#8e9486;margin-top:32px;padding-top:14px;font-family:monospace;font-size:8px;line-height:1.8}.ex-prototype span{font-family:inherit;font-size:8px}.ex-empty-selection{color:var(--muted);font-size:12px;line-height:1.8}.ex-empty-selection>span{color:#b7bca9;font-size:40px}.ex-empty-selection ul{margin-top:22px;padding-left:16px;font-size:10px;line-height:2.5}.ex-empty{max-width:550px;margin:auto;padding:30px;line-height:1.8}.ex-empty h1{letter-spacing:-.04em;font-size:40px;font-weight:400}.ex-empty button,.ex-error button{background:#f6f3ec;border:1px solid #99a187;border-radius:4px;padding:10px 16px}.ex-loading{color:var(--muted);place-items:center;font-family:monospace;font-size:11px;display:grid;position:absolute;inset:0}.ex-error{z-index:10;background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:50px;line-height:1.8;display:flex;position:absolute;inset:0}.ex-muted{color:var(--muted);padding:10px;font-size:11px;line-height:1.8}.ex-launch{z-index:200;color:#f4f1e7;cursor:pointer;background:#364238;border:1px solid #78826c;border-radius:5px;padding:9px 14px;font-size:11px;position:fixed;bottom:15px;left:18px;box-shadow:0 3px 14px #0002}@media (width<=1150px){.ex-body{grid-template-columns:220px minmax(280px,1fr) 240px}.ex-left{padding:25px 16px 16px}.ex-left h1{font-size:36px}.ex-right{padding:25px 16px}.ex-modes button{padding:8px}.ex-coordinate{display:none}.ex-stats strong{font-size:19px}.ex-room-caption{max-width:50%;padding:12px}}@media (width<=850px){.ex-body{grid-template-columns:180px minmax(250px,1fr)}.ex-right{z-index:4;border:1px solid var(--line);width:230px;max-height:40vh;position:absolute;top:125px;right:12px;box-shadow:0 6px 25px #0001}.ex-right:has(.ex-empty-selection){display:none}.ex-right .ex-kicker,.ex-right>h2{display:none}.ex-right .ex-quantity{padding:5px 0}.ex-right .ex-quantity strong{font-size:26px}.ex-left h1{font-size:29px}.ex-intro{font-size:10px}.ex-top{padding:0 15px}.ex-project{display:none}.ex-modes span{font-size:10px!important}.ex-modes button{padding:7px 5px}.ex-map{width:120px}.ex-stage-foot>span{display:none}.ex-room-caption{max-width:80%;bottom:190px}.ex-stats{grid-template-columns:1fr}.ex-stats strong{font-size:20px}}@media (prefers-reduced-motion:reduce){.ex-shell *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.ex-snapshot{z-index:10002;color:#7b816f;pointer-events:none;white-space:nowrap;font-family:monospace;font-size:8px;position:fixed;top:49px;left:50%;transform:translate(-50%)}.ex-fallback{background:var(--paper);z-index:5;position:absolute;inset:0}.ex-fallback img{object-fit:contain;width:100%;height:100%}.ex-fallback p{border:1px solid var(--line);background:#f7f4ecf5;padding:15px;font-size:12px;line-height:1.6;position:absolute;bottom:40px;left:20px;right:20px}.ex-layers-toggle{z-index:5;border:1px solid var(--line);cursor:pointer;background:#f8f6ef;border-radius:5px;padding:9px 12px;position:absolute;top:112px;left:24px}.ex-layers{z-index:6;border:1px solid var(--line);background:#f8f6ef;border-radius:6px;width:min(340px,100% - 48px);max-height:calc(100% - 220px);padding:14px;font-size:12px;position:absolute;top:154px;left:24px;overflow:auto;box-shadow:0 8px 30px #0002}.ex-layers header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.ex-layers label{align-items:center;gap:8px;margin:10px 0;display:flex}.ex-layers input[type=checkbox]{accent-color:#526455}.ex-layers summary{cursor:pointer;border-top:1px solid var(--line);padding:12px 0}.ex-layers summary small{float:right;color:#626b61}.ex-layer-row{border-top:1px solid #deded3;padding:8px 0 12px}.ex-layer-row small{color:#626b61;line-height:1.6;display:block}.ex-layer-row button,.ex-details button{color:#526455;text-align:left;cursor:pointer;background:0 0;border:0;padding:6px 0;text-decoration:underline}.ex-source-dialog{z-index:10000;background:#eeece5;border:1px solid #aaa;flex-direction:column;display:flex;position:fixed;inset:20px;box-shadow:0 0 0 25px #17221c99}.ex-source-dialog header{background:#f8f6ef;align-items:center;gap:16px;padding:14px;display:flex}.ex-source-dialog header div{flex:1;min-width:0}.ex-source-dialog header span{font-size:12px;display:block}.ex-source-dialog button{cursor:pointer;padding:8px}.ex-source-scroll{flex:1;min-height:0;overflow:auto}.ex-source-scroll img{margin-inline:auto;display:block}@media (width<=850px){.ex-shell{overflow:auto}.ex-body{flex-direction:column;display:flex;overflow:auto}.ex-left{border:0;flex:none;padding:16px}.ex-left h1,.ex-left>.ex-kicker,.ex-intro,.ex-trust{display:none}.ex-stats{gap:24px;margin:12px 0;display:flex}.ex-room-list{flex:none;min-height:80px;max-height:150px;overflow:auto}.ex-stage{flex:none;min-height:560px}.ex-right{width:auto;max-height:none;box-shadow:none;flex:none;margin:0;position:static}.ex-modes{max-width:calc(100% - 24px)}.ex-source-dialog{inset:6px}.ex-source-dialog header{gap:6px}}.ex-align-tools{flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;font-size:12px;display:flex}.ex-align-panes{flex:1;grid-template-columns:1fr 1fr;gap:12px;min-height:0;padding:12px;display:grid}.ex-align-panes section{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.ex-align-scroll{background:#fff;flex:1;min-height:0;overflow:auto}.ex-control-point{color:#fff;text-align:center;pointer-events:none;background:#aa5d24;border:2px solid #fff;border-radius:50%;width:24px;height:24px;font:700 14px/20px sans-serif;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #aa5d24}.ex-source-dialog button:disabled{opacity:.4;cursor:not-allowed}.ex-fit{z-index:5;border:1px solid var(--line);cursor:pointer;background:#f8f6ef;border-radius:5px;padding:9px 12px;position:absolute;top:112px;right:24px}.ex-structural-fields{border-bottom:1px solid var(--line);background:#f7f5ef;flex-wrap:wrap;gap:12px;padding:12px 20px;display:flex}.ex-structural-fields label{flex-direction:column;gap:5px;min-width:110px;max-width:260px;font-size:11px;display:flex}.ex-structural-fields input,.ex-structural-fields select{border:1px solid var(--line);width:100%;min-height:34px;color:var(--ink);background:#fff;border-radius:4px;padding:8px}.ex-structural-fields .ex-evidence-note{flex:1;min-width:280px;max-width:none}.ex-structural-help,.ex-structural-confirm{margin:0;padding:12px 20px;font-size:12px;line-height:1.6}.ex-structural-confirm{background:#ecefe5;align-items:center;gap:10px;display:flex}.ex-structural-proof{background:#edf0e7;border:1px solid #ced6c5;border-radius:6px;margin-top:20px;padding:15px;font-size:12px;line-height:1.5}.ex-structural-proof h3{margin:0 0 10px;font-size:12px}.ex-structural-proof button{width:100%;margin-top:8px;padding:8px}.ex-structural-proof ul{padding-left:16px}.ex-structural-editor .ex-align-panes{flex:1;min-height:180px}@media (width<=850px){.ex-structural-editor{overflow:auto}.ex-structural-editor .ex-align-panes{min-height:450px}.ex-structural-fields label{flex:1}.ex-structural-editor header{flex-wrap:wrap}}.ex-scope-tabs{background:#e8e8de;border-radius:5px;flex-shrink:0;gap:4px;margin-top:12px;padding:4px;display:flex}.ex-scope-tabs button{background:0 0;border:0;flex:1;padding:7px;font-size:12px}.ex-shell .ex-scope-tabs button[aria-pressed=true]{color:#fff;background:#364238}.ex-details>button{text-align:left;width:100%;margin:6px 0;padding:7px 9px;line-height:1.5;display:block}.ex-structural-proof dl{grid-template-columns:1fr auto;gap:8px;margin:10px 0 16px;display:grid}.ex-structural-proof dt,.ex-structural-proof dd{margin:0;padding:0;font-size:12px}.ex-scope-tabs{flex-wrap:wrap}.ex-scope-tabs button{white-space:normal;min-width:0}.ex-room-list button.ex-element-row{white-space:normal;overflow-wrap:anywhere;display:block}.ex-room-list button.ex-element-row>span{display:block}.ex-details>button{white-space:normal;overflow-wrap:anywhere;min-width:0}.ex-beta{letter-spacing:.06em;text-transform:uppercase;color:#b4530f;background:#fff1e0;border-radius:3px;margin-left:6px;padding:1px 4px;font-size:9px;font-weight:700}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(./space-grotesk-vietnamese-500-normal-BmEvtly_.woff2)format("woff2"),url(./space-grotesk-vietnamese-500-normal-BTqKIpxg.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(./space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2)format("woff2"),url(./space-grotesk-latin-ext-500-normal-3dgZTiw9.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(./space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(./space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(./space-grotesk-vietnamese-600-normal-DUi7WF5p.woff2)format("woff2"),url(./space-grotesk-vietnamese-600-normal-D6zpsUhD.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(./space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2)format("woff2"),url(./space-grotesk-latin-ext-600-normal-VcznFIpX.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(./space-grotesk-latin-600-normal-DjKNqYRj.woff2)format("woff2"),url(./space-grotesk-latin-600-normal-BflQw4A9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(./space-grotesk-vietnamese-700-normal-DMty7AZE.woff2)format("woff2"),url(./space-grotesk-vietnamese-700-normal-Duxec5Rn.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(./space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2)format("woff2"),url(./space-grotesk-latin-ext-700-normal-HVCqSBdx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(./space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2"),url(./space-grotesk-latin-700-normal-CwsQ-cCU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2)format("woff2"),url(./jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-greek-500-normal-JpySY46c.woff2)format("woff2"),url(./jetbrains-mono-greek-500-normal-D7SFKleX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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)format("woff2"),url(./jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2)format("woff2"),url(./jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--window:#f5f5f7;--surface:#fff;--desk:#e5e5ea;--text:#1d1d1f;--text-2:#6e6e73;--text-3:#8e8e93;--line:#e1e1e6;--line-strong:#d1d1d6;--control:#fff;--control-hover:#f2f2f5;--fill:#7676801f;--fill-strong:#76768033;--accent:#0071e3;--accent-hover:#0077ed;--accent-soft:#e8f1fc;--on-accent:#fff;--row-active:#dfe7f5;--ai:#8a3fc6;--ai-soft:#f4ecfa;--danger:#d70015;--danger-soft:#fdecee;--warn:#b25000;--warn-soft:#fff3e3;--good:#1f8a3c;--good-soft:#e9f6ec;--overlay:#1d1d1fdb;--overlay-text:#fff;--backdrop:#00000047;--shadow-1:0 1px 2px #0000000f, 0 1px 1px #0000000a;--shadow-2:0 10px 30px #0000001f, 0 2px 6px #0000000f;--shadow-3:0 24px 60px #00000038, 0 4px 12px #00000014;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;--font-mono:"SF Mono", ui-monospace, Menlo, Consolas, monospace;--radius-s:6px;--radius:8px;--radius-l:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.38}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--window);color:var(--text);margin:0}button,select,input,textarea{font:inherit;color:inherit}h1,h2,h3,h4{font-family:var(--font-display);text-wrap:balance}code{font-family:var(--font-mono);background:var(--fill);border-radius:4px;padding:0 4px;font-size:.92em}:focus-visible{outline-offset:1px;outline:3px solid #0071e373}.muted{color:var(--text-2)}.small-text{font-size:12px}.spacer{flex:1}button{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--control);min-height:28px;box-shadow:var(--shadow-1);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}button:hover:not(:disabled){background:var(--control-hover)}button:active:not(:disabled){background:var(--fill-strong)}button:disabled{opacity:.4;cursor:default}button.primary,button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.primary:hover:not(:disabled),button.on:hover:not(:disabled){background:var(--accent-hover)}button.secondary{background:var(--control)}button.large{border-radius:var(--radius);min-height:38px;padding:0 20px;font-size:15px}button.wide{width:100%}button.quiet{box-shadow:none;color:var(--accent);background:0 0;border-color:#0000;padding:0 6px}button.quiet:hover:not(:disabled){background:var(--fill)}button.quiet.danger,button.danger{color:var(--danger)}button.destructive{color:var(--danger);background:var(--control)}button.destructive:hover:not(:disabled){background:var(--danger-soft);border-color:#f3b6bd}button.danger-solid{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}button.danger-solid:hover:not(:disabled){background:#c00013}.icon-button{width:30px;min-height:28px;box-shadow:none;color:var(--text-2);background:0 0;border-color:#0000;padding:0}.icon-button:hover:not(:disabled){background:var(--fill);color:var(--text)}.icon-button.small{width:24px;min-height:22px}.icon-button.danger:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}button.icon{box-shadow:none;min-height:0;color:var(--text-2);background:0 0;border:none;padding:0 4px}.icon-svg{flex:none}select,input:not([type=color]):not([type=checkbox]):not([type=radio]),textarea{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--control);min-height:28px;padding:3px 8px;box-shadow:inset 0 1px 1px #00000008}select{padding-right:6px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #0071e338}input[type=color]{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--control);width:44px;height:28px;padding:2px}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.segmented{background:var(--fill);border-radius:8px;gap:2px;padding:2px;display:inline-flex}.segmented button{min-height:26px;box-shadow:none;color:var(--text);background:0 0;border:none;border-radius:6px;padding:0 11px;font-weight:500}.segmented button:hover:not(:disabled){background:#fff9}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000f}.segmented button.on:hover:not(:disabled){background:var(--surface)}.segmented.small button{min-height:22px;padding:0 10px;font-size:12px}.loading{height:100%;color:var(--text-2);place-items:center;display:grid}.app{grid-template-rows:52px minmax(0,1fr);grid-template-columns:252px minmax(0,1fr) 320px;height:100%;display:grid}.titlebar{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--line);background:#f6f6f8eb;grid-column:1/-1;align-items:center;gap:12px;min-width:0;padding:0 12px;display:flex}.tb-left{flex:none;align-items:center;gap:8px;width:auto;display:flex}.app-mark{place-items:center;display:grid}.project-name{flex:none;width:168px;min-width:0;font-size:14px;font-weight:600;box-shadow:none!important;background:0 0!important;border-color:#0000!important;padding-inline:6px!important}.project-name:hover{background:var(--fill)!important}.project-name:focus{background:var(--surface)!important;border-color:var(--accent)!important}.tb-center{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.tb-right{flex:none;align-items:center;gap:6px;display:flex}.tools button{gap:5px}.tools button:disabled{opacity:.35}.scale-pill{font-variant-numeric:tabular-nums;border-radius:14px;gap:6px;min-height:28px;padding:0 10px}.scale-pill.unset{color:var(--warn);background:var(--warn-soft);border-color:#f0c48e}.scale-pill.check .pill-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--warn);background:var(--warn-soft);border-radius:8px;padding:1px 6px;font-size:10px;font-weight:600}.ai-group{gap:6px;display:flex}.ai-button{color:var(--ai);background:var(--surface);border-color:#e2cdf2}.ai-button:hover:not(:disabled){background:var(--ai-soft)}.sidebar{background:var(--window);border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.source{flex-direction:column;min-height:0;padding:10px 8px 6px;display:flex}.source.sheets{border-bottom:1px solid var(--line);flex:52%}.source.types{flex:48%}.source-head{justify-content:space-between;align-items:center;min-height:24px;padding:0 8px 6px;display:flex}.source-head h2{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:0;font-size:11px;font-weight:600}.source-head .push-right{margin-left:auto}.source-head .count{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.search{border-radius:var(--radius-s);background:var(--fill);color:var(--text-3);align-items:center;gap:6px;margin:0 4px 6px;padding:0 8px;display:flex}.search input{flex:1;min-width:0;box-shadow:none!important;background:0 0!important;border:none!important;padding-inline:0!important}.source-list{min-height:0;margin:0;padding:0;list-style:none;overflow:auto}.source-row{border-radius:var(--radius-s);width:100%;min-height:36px;box-shadow:none;text-align:left;color:var(--text-2);background:0 0;border:none;align-items:center;gap:8px;padding:4px 8px;font-weight:400;display:flex}.source-row:hover:not(:disabled){background:var(--fill)}.source-row.active,.source-row.active:hover:not(:disabled){background:var(--row-active)}.row-main{flex-direction:column;flex:1;min-width:0;display:flex}.row-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.row-sub{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;overflow:hidden}.row-sub.scale-unset{color:var(--warn)}.repeat-tag,.found-tag{color:var(--text-2);font-weight:600}.found-tag{color:#b77900}.check-dot{vertical-align:1px;background:#ff9f0a;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.badge{background:var(--fill-strong);min-width:20px;color:var(--text-2);text-align:center;font-variant-numeric:tabular-nums;border-radius:10px;padding:0 6px;font-size:11px;font-weight:600}.source-row.active .badge{background:var(--accent);color:var(--on-accent)}.source-empty{color:var(--text-3);margin:4px 8px;font-size:12px}.dot{border-radius:50%;flex:none;width:10px;height:10px;box-shadow:inset 0 0 0 .5px #00000026}.type-item{align-items:center;display:flex;position:relative}.type-item>.source-row{flex:1;min-width:0}.type-item.linked>.source-row{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.type-item.linked .type-name{color:var(--accent)}.icon-button.eye{width:22px;height:22px;color:var(--text-3);opacity:.55;flex:none}.type-item:hover .icon-button.eye,.type-group:hover .icon-button.eye,.icon-button.eye.off{opacity:1}.eye-space{flex:none;width:22px}.type-item.is-hidden .source-row,.type-group.is-hidden .group-head{opacity:.45}.type-group{border-radius:var(--radius-s);align-items:center;margin-top:4px;display:flex;position:relative}.type-group.drop{background:var(--accent-soft,var(--fill));box-shadow:inset 0 0 0 1px var(--accent,#2f6fde)}.type-group .group-head{flex:1;min-width:0}.type-group.loose .group-head{padding:4px 6px;font-size:12px}.type-item.in-group{padding-left:14px}.group-empty{color:var(--text-3);padding:4px 8px 6px 42px;font-size:12px}.type-group:hover .row-actions-hover,.type-group:focus-within .row-actions-hover{display:flex}.row-actions-hover{background:linear-gradient(90deg, transparent, var(--window) 12px);gap:2px;padding-left:12px;display:none;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.type-item:hover .row-actions-hover,.type-item:focus-within .row-actions-hover{display:flex}.stage{background:var(--desk);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.viewer{background:var(--desk);-webkit-user-select:none;user-select:none;flex:1;position:relative;overflow:hidden}.viewer>canvas,.viewer>svg{position:absolute;inset:0}.viewer>canvas{filter:drop-shadow(0 2px 10px #0000001f)}.viewer .shape{pointer-events:none}.viewer .text-hit{fill:#ffcc004d;stroke:#f5a300;pointer-events:none}.viewer .shape.interactive{pointer-events:visiblePainted;cursor:pointer}.viewer .pick-halo{fill:none;stroke:#ffd60a;stroke-opacity:.85}.viewer .faded{opacity:.2}.viewer .draft{pointer-events:none}.viewer .label{fill:#1d1d1f;stroke:#fff;paint-order:stroke;font-family:var(--font);pointer-events:none;font-weight:600}.readout,.status,.empty{background:var(--overlay);color:var(--overlay-text);border-radius:var(--radius);pointer-events:none;white-space:nowrap;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:4px 9px;position:absolute}.status{top:12px;left:50%;transform:translate(-50%)}.empty{display:none}.zoom-controls{box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-radius:10px;gap:2px;padding:3px;display:flex;position:absolute;bottom:14px;right:14px}.zoom-controls button{min-width:30px;min-height:26px;box-shadow:none;background:0 0;border:none;border-radius:7px;padding:0 8px}.zoom-controls button:hover{background:var(--fill)!important}.hint-pill{max-width:calc(100% - 340px);box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#ffffffeb;border-radius:16px;padding:6px 14px;font-size:12px;position:absolute;bottom:14px;left:50%;overflow:hidden;transform:translate(-50%)}.tool-options{box-shadow:var(--shadow-2);color:var(--text-2);background:#fffffff0;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex;position:absolute;top:12px;left:12px}.tool-options input{width:60px}.busy,.item-basis select{width:100%;margin:6px 0 0;font-size:12px}.doc-group{align-items:center;margin-top:6px;display:flex}.doc-head{min-width:0;box-shadow:none;color:var(--text-2);text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:6px;padding:4px 6px;font-size:12px;font-weight:600;display:flex}.doc-head:hover{background:var(--fill)}.doc-chevron{transition:transform .15s;display:inline-flex}.doc-chevron.open{transform:rotate(90deg)}.doc-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.doc-count{color:var(--text-3);font-weight:400}.doc-group .doc-remove,.doc-group .doc-building-edit{opacity:0}.doc-group:hover .doc-remove,.doc-group:hover .doc-building-edit{opacity:1}.doc-building{text-overflow:ellipsis;white-space:nowrap;background:var(--fill);max-width:40%;color:var(--text-2);border-radius:999px;flex:none;padding:0 6px;font-weight:500;overflow:hidden}.qty-grouping{align-items:center;gap:6px;margin-bottom:10px;font-size:12px;display:flex}.qty-grouping select{font-size:12px}.qty-section{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.qty-section.depth-1{margin-left:10px}.qty-section-head{box-shadow:none;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:4px 2px;font-size:13px;font-weight:700;display:flex}.qty-section.depth-1>.qty-section-head{color:var(--text-2);font-size:12px;font-weight:600}.qty-section-title{flex:1}.source-head .number-sheets{margin-left:auto;margin-right:8px;font-size:11px}.sheet-title{color:var(--text-2);font-weight:400}.sheet-numbers-scroll{max-height:56vh;overflow:auto}.modal.folder-setup{text-align:center;max-width:460px}.folder-setup .welcome-icon{margin:0 auto 8px}.folder-setup-actions{flex-direction:column;gap:8px;margin:18px 0 6px;display:flex}.selection-bar{z-index:5;background:var(--surface);max-width:calc(100% - 32px);box-shadow:var(--shadow-2);white-space:nowrap;border-radius:12px;align-items:center;gap:10px;padding:6px 6px 6px 14px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.selection-count{font-weight:600}.selection-types{text-overflow:ellipsis;color:var(--text-2);font-size:12px;overflow:hidden}.toast{background:var(--overlay);color:var(--overlay-text);box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;z-index:3;border-radius:12px;align-items:center;gap:10px;padding:8px 14px;display:flex;position:absolute;bottom:56px;left:50%;transform:translate(-50%)}.toast button{min-height:24px;box-shadow:none;color:#fff;background:#ffffff29;border:none;border-radius:6px}.toast button:hover{background:#ffffff42!important}.welcome{background:var(--desk);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.welcome-card{background:var(--surface);width:min(460px,100%);box-shadow:var(--shadow-2);text-align:center;border-radius:18px;padding:36px 36px 28px}.welcome-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:14px;place-items:center;display:inline-grid}.welcome-card h1{letter-spacing:-.01em;margin:16px 0 8px;font-size:22px;font-weight:600}.welcome-card p{max-width:38ch;color:var(--text-2);margin:0 auto 20px;font-size:14px;line-height:1.5}.welcome-card .welcome-foot{color:var(--text-3);margin:18px 0 0;font-size:12px}.inspector-pane{background:var(--surface);border-left:1px solid var(--line);min-height:0;overflow:auto}.inspector{flex-direction:column;min-height:100%;display:flex}.inspector-tabs{z-index:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#fffffff2;padding:10px 12px;position:sticky;top:0}.inspector-tabs .segmented{display:flex}.inspector-tabs .segmented button{flex:1}.inspector-body{padding:12px}.empty-note{color:var(--text-3);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:28px 12px;display:flex}.empty-note p{max-width:30ch;margin:0;font-size:12px;line-height:1.5}.selection-card{border-radius:var(--radius-l);background:var(--window);border:1px solid var(--line);flex-direction:column;gap:10px;margin:12px 12px 0;padding:12px;display:flex}.selection-top{align-items:center;gap:10px;display:flex}.selection-text{flex:1;min-width:0}.selection-qty{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:20px;font-weight:600}.selection-sub{color:var(--text-2);font-size:12px}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field>span{color:var(--text-2);font-size:11px;font-weight:500}.field-row{gap:8px;display:flex}.field-row .field{flex:1}.field-row .field.narrow{flex:0 0 104px}.field-row .field.color{flex:none}.field-hint{color:var(--text-3);font-size:11px}.field-hint.error{color:var(--danger)}.quantities{flex-direction:column;gap:10px;display:flex}.qty-card{border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden}.qty-head{width:100%;min-height:40px;box-shadow:none;background:var(--surface);text-align:left;border:none;border-radius:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.qty-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.qty-val{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.qty-unit{color:var(--text-2);font-size:12px;font-weight:500}.qty-items{border-collapse:collapse;background:var(--window);width:100%;font-size:12px}.qty-items td{border-top:1px solid var(--line);color:var(--text-2);padding:5px 12px}.qty-items td.num{color:var(--text)}.inline-warn{background:var(--warn-soft);color:var(--warn);padding:6px 12px;font-size:12px}.num{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right!important}.unit-col{width:36px;color:var(--text-3)}.err{color:var(--danger);font-size:11px}.list-toolbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.takeoff-group{margin-bottom:12px}.takeoff-group header{align-items:center;gap:8px;padding:4px 2px;display:flex}.group-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.group-count{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.takeoff-group ul{border:1px solid var(--line);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.takeoff-group li{border-top:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;min-height:32px;padding:0 4px 0 10px;display:flex}.takeoff-group li:first-child{border-top:none}.takeoff-group li:hover{background:var(--window)}.takeoff-group li.selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.takeoff-disc{margin-bottom:6px}.tree-head{border-radius:var(--radius-s);width:100%;min-height:28px;box-shadow:none;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:4px 6px;display:flex}.tree-head:hover:not(:disabled){background:var(--fill)}.tree-name{flex:none;font-weight:600}.tree-sub{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-3);flex:1;font-size:11px;font-weight:400;overflow:hidden}.disc-head{background:var(--window);margin-bottom:4px}.disc-head .tree-name{letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);font-size:11px}.takeoff-sheet{margin:0 0 6px 8px}.sheet-head .tree-name{font-size:12px}.takeoff-sheet.current>.sheet-head .tree-name:after{content:" · open";color:var(--accent);font-weight:400}.takeoff-sheet .takeoff-group{margin-left:12px}.takeoff-disc>.takeoff-group{margin-left:4px}.takeoff-disc .takeoff-group{margin-bottom:4px}.takeoff-disc .takeoff-group ul{margin:2px 0 8px}.takeoff-group header{border-radius:var(--radius-s);gap:2px;padding:0}.takeoff-group header .fold{width:22px;min-height:28px;color:var(--text-3)}.type-pick{border-radius:var(--radius-s);min-width:0;min-height:28px;box-shadow:none;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:2px 6px;font-weight:400;display:flex}.type-pick:hover:not(:disabled){background:var(--fill)}.group-total{color:var(--text-2);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.takeoff-group.picked header,.takeoff-group.lit header{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.takeoff-group.picked .type-pick:hover:not(:disabled),.takeoff-group.lit .type-pick:hover:not(:disabled){background:0 0}.takeoff-group.picked .group-name,.takeoff-group.lit .group-name{color:var(--accent)}.takeoff-group.has-picked header .group-count{color:var(--accent);font-weight:600}.takeoff-group.picked ul{border-color:var(--accent)}.row-index{width:20px;color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.row-qty{font-variant-numeric:tabular-nums;flex:1}.row-sheet{color:var(--text-3);font-size:12px}.row-where{flex-direction:column;align-items:flex-end;min-width:0;max-width:45%;line-height:1.25;display:flex}.row-where>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.row-room{color:var(--text-2);font-size:11px}.selection-sub .link-button{font-size:inherit;padding:0}.qty-where{padding:2px 12px 8px}.qty-where>.link-button{align-items:center;gap:4px;padding:2px 0;font-size:12px;display:inline-flex}.qty-where ul{margin:4px 0 0;padding:0;list-style:none}.qty-where li button{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;border-radius:6px;align-items:baseline;gap:8px;padding:4px 6px;font-size:12px;display:flex}.qty-where li button:hover{background:var(--window)}.where-sheet{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.qty-where .num{font-variant-numeric:tabular-nums}.row-delete{opacity:0}.takeoff-group li:hover .row-delete,.takeoff-group li.selected .row-delete,.row-delete:focus-visible{opacity:1}.row-delete:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.history{margin:0;padding:0;list-style:none}.history-item{border-bottom:1px solid var(--line)}.history-row{width:100%;min-height:0;box-shadow:none;text-align:left;color:var(--text-3);background:0 0;border:none;border-radius:0;align-items:flex-start;gap:10px;padding:9px 2px;font-weight:400;display:flex}.history-row:hover:not(:disabled){background:0 0}.history-mark{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.history-mark.created{background:var(--good)}.history-mark.deleted{background:var(--danger)}.history-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.history-title{color:var(--text);white-space:normal;font-weight:500}.history-detail{color:var(--text-2);font-variant-numeric:tabular-nums;font-weight:400}.history-meta{white-space:normal;font-size:11px}.history-details{margin:0 0 8px 18px;padding:0;font-size:12px;list-style:none}.history-details li{font-variant-numeric:tabular-nums;justify-content:space-between;gap:10px;padding:2px 0;display:flex}.type-editor{flex-direction:column;gap:14px;padding:0 12px 16px;display:flex}.editor-head{z-index:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#fffffff2;align-items:center;gap:8px;margin:0 -12px;padding:10px 12px;display:flex;position:sticky;top:0}.editor-head .back{box-shadow:none;color:var(--accent);background:0 0;border:none;padding:0 4px}.editor-head .back .icon-svg{transform:rotate(180deg)}.editor-title{font-weight:600}.form-group{flex-direction:column;gap:10px;display:flex}.group-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:-6px;font-size:11px;font-weight:600}.assembly-items{flex-direction:column;gap:8px;display:flex}.assembly-item{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:6px;padding:8px;display:flex}.item-top,.item-bottom{align-items:center;gap:6px;display:flex}.item-name{flex:1;min-width:0;font-weight:500}.item-qty{text-align:right;font-variant-numeric:tabular-nums;min-width:56px;font-weight:600}.formula{min-width:0;font-family:var(--font-mono);flex:1;font-size:12px}.formula.bad{border-color:var(--danger)!important}input.unit{width:56px}.add-row{box-shadow:none;color:var(--accent);border-style:dashed;align-self:flex-start}.vars-card{border-radius:var(--radius);background:var(--window);padding:10px 12px}.vars-title{margin-bottom:6px;font-weight:600}.vars-card dl{margin:0 0 8px}.vars-card dl>div{justify-content:space-between;gap:8px;padding:2px 0;font-size:12px;display:flex}.vars-card dt{color:var(--text-2)}.vars-card dd{font-variant-numeric:tabular-nums;margin:0}.vars-card p{margin:0;line-height:1.6}.popover{z-index:30;border-radius:var(--radius-l);background:var(--surface);max-height:calc(100vh - 80px);box-shadow:var(--shadow-3), 0 0 0 .5px #0000001f;animation:.14s ease-out pop-in;position:fixed;overflow:auto}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}}.scale-picker{flex-direction:column;display:flex}.pop-head{padding:14px 16px 10px}.pop-title{font-size:14px;font-weight:600}.pop-sub{color:var(--text-2);margin-top:2px;font-size:12px}.pop-section{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:10px 16px;display:flex}.pop-label{color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.scale-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.scale-choice{background:var(--window);min-height:30px;box-shadow:none;font-variant-numeric:tabular-nums;border:1px solid #0000;justify-content:space-between;padding:0 10px;font-weight:500}.scale-choice:hover:not(:disabled){background:var(--fill)}.scale-choice.current{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.input-row{gap:6px;display:flex}.input-row input{flex:1;min-width:0}.pop-actions{border-top:1px solid var(--line);justify-content:space-between;gap:8px;padding:10px 16px 14px;display:flex}.menu{max-height:min(70vh,560px);padding:5px;overflow-y:auto}.menu-group+.menu-group{border-top:1px solid var(--line);margin-top:5px;padding-top:5px}.menu-item{width:100%;min-height:28px;box-shadow:none;text-align:left;background:0 0;border:none;border-radius:6px;justify-content:space-between;gap:12px;padding:0 10px;font-weight:400}.menu-item span:first-child{text-overflow:ellipsis;overflow:hidden}.menu-item:hover:not(:disabled){background:var(--accent);color:var(--on-accent)}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover:not(:disabled){background:var(--danger);color:var(--on-accent)}.menu-hint{white-space:nowrap;opacity:.6;flex-shrink:0;font-size:11px}.modal-backdrop{z-index:40;background:var(--backdrop);justify-content:center;align-items:center;padding:16px;animation:.14s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.modal{background:var(--surface);width:min(480px,100%);max-height:calc(100vh - 48px);box-shadow:var(--shadow-3), 0 0 0 .5px #0000001f;border-radius:14px;padding:20px 22px;overflow:auto}.modal.wide{width:min(920px,100%)}.modal.small{width:min(400px,100%)}.modal p{line-height:1.5}.modal h3{margin:0;font-size:17px;font-weight:600}.panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.dialog-title{margin:0 0 10px;font-size:15px;font-weight:600}.modal input#dialog-text{width:100%}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.row-actions.sticky{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);background:#fffffff5;margin-inline:-22px;padding:12px 22px;position:sticky;bottom:-20px}label.inline{align-items:center;gap:8px;display:inline-flex}label.inline input[type=number]{width:70px}.stack{flex-direction:column;gap:6px;margin:8px 0;display:flex}.running{color:var(--text-2);align-items:center;gap:14px;padding:20px 0;display:flex}.spinner{border:2.5px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}.spinner.small{border-width:2px;border-color:#fff #ffffff59 #ffffff59;width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.warn{color:var(--warn);background:var(--warn-soft);border-radius:var(--radius-s);padding:6px 10px;font-size:12px}.warn-text{color:var(--warn)}.err-box{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius);padding:8px 12px}.hint{color:var(--text-2);font-size:12px}.help{background:var(--window);border-radius:var(--radius);color:var(--text-2);margin-top:14px;padding:10px 12px;font-size:12px}.coverage{margin:6px 0 10px}.assembly-list{flex-direction:column;gap:8px;display:flex}.assembly{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;gap:10px;padding:10px 12px;display:flex}.assembly.picked{background:var(--ai-soft);border-color:#cfa8ee}.assembly-body{flex:1;min-width:0}.assembly-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag{background:var(--fill);color:var(--text-2);border-radius:10px;padding:1px 8px;font-size:11px;font-weight:500}.warn-tag{background:var(--warn-soft);color:var(--warn)}.layers{margin:6px 0 0;padding-left:20px}.layers li{margin:1px 0}.role{color:var(--text-3);margin-left:6px;font-size:11px}.notes{color:var(--text-2);margin-top:4px;font-size:12px}button.ai{color:var(--ai);border-color:#e2cdf2}.score{border-radius:var(--radius);background:var(--window);margin-top:12px;padding:12px 14px}.score-head{overflow-wrap:anywhere;margin-bottom:10px}.stats{flex-wrap:wrap;gap:8px;display:flex}.stat{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;min-width:100px;padding:8px 12px;display:flex}.stat.good .stat-value{color:var(--good)}.stat.fair .stat-value{color:var(--warn)}.stat.poor .stat-value{color:var(--danger)}.stat-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:17px;font-weight:600}.stat-label{color:var(--text-2);font-size:11px}.problems{max-height:220px;margin:8px 0 0;padding-left:18px;overflow:auto}.problems li{overflow-wrap:anywhere;margin:2px 0}.wall-table,table.items{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.wall-table th,.wall-table td,table.items th,table.items td{border-bottom:1px solid var(--line);text-align:left;padding:7px 8px;font-weight:400}.wall-table th,table.items th{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.wall-table select{max-width:280px}.wall-table tr.good td:last-child{color:var(--good)}.wall-table tr.fair td:last-child{color:var(--warn)}.wall-table tr.poor td:last-child{color:var(--danger)}@media (width<=1800px){.tb-right .chat-toggle span,.tool-label.minor,.hide-medium{display:none}.project-name{width:150px}}@media (width<=1600px){.tool-label.box{display:none}.project-name{width:136px}}@media (width<=1520px){.tool-label{display:none}}@media (width<=1240px){.tb-right .hide-narrow{display:none}}@media (width<=1300px){.view-switch button.on span{display:none}}@media (width<=1100px){.scale-pill>span:not(.pill-badge){display:none}.project-name{width:96px!important}.titlebar,.tb-center{gap:6px}.tb-right{gap:3px}}@media (width<=1180px){.app{grid-template-columns:220px minmax(0,1fr) 290px}.project-name{width:130px}.tool-label,.ai-button span{display:none}}@media (width<=900px){.app{grid-template-rows:auto;grid-template-columns:minmax(0,1fr);height:auto}.titlebar{flex-wrap:wrap;height:auto;padding-block:8px;padding-inline:16px}.tb-left{flex:100%;width:auto}.tb-center{flex-wrap:wrap;flex:100%;order:3}.hide-narrow{display:none}.sidebar{border-right:none;border-bottom:1px solid var(--line);flex-direction:column;max-height:50vh}.source{padding-inline:16px}.stage{height:70vh}.inspector-pane{border-left:none;border-top:1px solid var(--line)}.hint-pill{max-width:calc(100% - 32px);bottom:60px}}@media (prefers-reduced-motion:reduce){.spinner,.popover,.modal-backdrop{animation:none}}.shortcuts{margin:0}.shortcuts>div{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:6px 0;display:flex}.shortcuts dt{flex:0 0 170px}.shortcuts dd{color:var(--text-2);margin:0}kbd{border:1px solid var(--line-strong);background:var(--window);min-width:22px;font-family:var(--font);text-align:center;border-bottom-width:2px;border-radius:5px;padding:1px 7px;font-size:12px;display:inline-block}.row-label{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.row-qty{min-width:0}.selection-label{margin-top:2px;font-weight:500}.rooms-table input.room-name{width:100%;min-width:160px}.rooms-table .room-number{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.rooms-table tr.disabled-row td{color:var(--text-3)}progress.progress{width:240px;height:6px;accent-color:var(--accent);margin-top:8px;display:block}.automate-menu{flex-direction:column;padding:6px;display:flex}.automate-item{border-radius:var(--radius);min-height:0;box-shadow:none;text-align:left;white-space:normal;background:0 0;border:none;justify-content:flex-start;align-items:flex-start;gap:12px;padding:10px;font-weight:400}.automate-item:hover:not(:disabled){background:var(--ai-soft)}.automate-icon{background:var(--ai-soft);width:32px;height:32px;color:var(--ai);border-radius:8px;flex:none;place-items:center;display:grid}.automate-text{flex-direction:column;gap:2px;display:flex}.automate-title{font-weight:600}.automate-desc{color:var(--text-2);font-size:12px;line-height:1.4}.project-list{max-height:320px;margin:0;padding:0 8px 8px;list-style:none;overflow:auto}.project-list li{border-radius:var(--radius);align-items:center;gap:4px;display:flex}.project-list li:hover{background:var(--window)}.project-list li.current{background:var(--accent-soft)}.project-row{min-width:0;min-height:0;box-shadow:none;text-align:left;background:0 0;border:none;flex:1;justify-content:space-between;padding:8px;font-weight:400}.project-row:disabled{opacity:1;cursor:default}.project-row:hover:not(:disabled){background:0 0}.project-name-cell{flex-direction:column;min-width:0;display:flex}.project-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.project-meta{color:var(--text-2);white-space:normal;font-size:11px}.open-badge{color:var(--text-2);align-items:center;gap:3px;font-size:11px;font-weight:600;display:inline-flex}.open-hint{color:var(--accent);opacity:0;font-size:11px;font-weight:600}.project-row:hover .open-hint,.project-row:focus-visible .open-hint{opacity:1}.project-empty{padding:8px}.button-row{flex-wrap:wrap;gap:8px;display:flex}.button-row button{flex:1}.storage-line{color:var(--text-3);font-size:11px}.modal.wide.finishes{width:min(1180px,100%)}.finishes-table select.cell-select{width:100%;min-width:110px;max-width:190px;font-size:12px}.finishes-table input.cell-input{text-align:right;width:64px;font-size:12px}.finishes-table .room-label{min-width:160px;font-weight:500}.finishes-table td.num{white-space:nowrap;font-variant-numeric:tabular-nums}.bulk-bar{background:var(--accent-soft,#0a84ff14);border-radius:10px;padding:8px 10px}.bulk-bar button.plain{box-shadow:none;color:var(--accent,#0a84ff);background:0 0;border:none}.finish-chips{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.finish-chip{background:var(--fill,#0000000d);color:var(--text-2);border-radius:999px;padding:1px 7px;font-size:11px}button.link-button{box-shadow:none;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:1px 4px;font-size:12px}button.link-button:hover{text-decoration:underline}.welcome-units{color:var(--text-2);justify-content:center;align-items:center;gap:10px;margin-top:18px;font-size:13px;display:flex}.handles .handle{fill:#fff;stroke:var(--accent);cursor:move}.handles .handle.mid{fill:var(--accent);stroke:#fff;opacity:.75;cursor:copy}.handles .handle:hover{fill:var(--accent-soft)}.scale-verify{background:var(--fill);border-radius:8px;margin:4px 0 8px;padding:8px 10px;font-size:12px;line-height:1.4}.scale-verify .check-ok{color:var(--good,#248a3d);align-items:center;gap:6px;display:inline-flex}.scale-verify .check-warn{color:var(--warn,#b25000)}.quick-start{margin:4px 0 0;padding-left:14px}.quick-start li{margin-bottom:12px}.quick-start li p{color:var(--text-2);margin:3px 0 0;font-size:13px;line-height:1.5}.scale-banner{z-index:5;color:#a1260d;box-shadow:var(--shadow-2,0 2px 8px #0000001f);background:#fff1f0;border-radius:10px;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:7px 8px 7px 14px;font-size:13px;display:flex;position:absolute;top:54px;left:50%;transform:translate(-50%)}.scale-banner button.small-button{padding:4px 10px;font-size:12px}.modal.compare{width:min(1400px,100%)}.compare-image{border:1px solid var(--line);border-radius:8px;max-height:calc(100vh - 200px);overflow:auto}.compare-image img{width:200%;display:block}.swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin:0 4px 0 10px;display:inline-block}.swatch.removed{background:#e11e1e}.swatch.added{background:#005ae6}.swatch.same{background:#bebebe}.takeoff-search{margin:0 12px 8px}.library{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:4px 20px;margin-top:8px;display:grid}.library-trade .group-title{margin-top:12px}.library-row{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:7px 8px;display:flex}.library-row:hover{background:var(--hover,#0000000a)}.library-row.on{background:var(--accent-soft,#0071e314)}.library-row .row-main{flex:1;min-width:0}.library-kind{color:var(--text-3);font-size:11px}.library-actions{justify-content:flex-end}.scale-banner.info-banner{color:#1d3f72;background:#f2f6fd}.legend-table{width:100%}.legend-table td:nth-child(2){width:60%}.legend-table input.room-name{box-sizing:border-box;width:100%}.legend-table td.num{white-space:nowrap;color:var(--text-2)}.legend-table th{text-align:left}.legend-table th.num{text-align:right}.welcome .try-sample{margin:10px auto 0;font-size:13px;display:block}.legend-everywhere{margin-right:auto}.source .count-tags{text-align:left;margin:6px 16px 0;font-size:12px;display:block}.done-tag{color:#248a3d;font-weight:600}.source-head .type-view{white-space:nowrap;margin-left:4px;font-size:11px}.type-group.division-group .group-head{padding-left:18px;font-weight:500}.type-item.in-division .source-row{padding-left:14px}.access-gate{background:var(--window);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.access-card{background:var(--surface);width:100%;max-width:360px;color:var(--text);border-radius:12px;flex-direction:column;gap:12px;padding:28px 24px;display:flex;box-shadow:0 8px 30px #00000014}.access-card h1{margin:0;font-size:22px}.access-card p{margin:0}.access-card input{padding:10px 12px;font-size:16px}.access-card button{padding:10px;font-size:15px}.access-card .small{font-size:12px}.ai-button.smart-toggle.on{background:var(--ai);border-color:var(--ai);color:#fff}.viewer .smart-tag{fill:color-mix(in srgb, var(--tag) 14%, transparent);stroke:var(--tag);pointer-events:none;transition:fill .12s,opacity .12s}.viewer .smart-layer.live .smart-tag{pointer-events:all;cursor:pointer}.viewer .smart-layer.live .smart-tag:hover{fill:color-mix(in srgb, var(--tag) 34%, transparent)}.viewer .smart-tag.dim{opacity:.18}.viewer .smart-tag.lit:not(.dim){opacity:1}.viewer .smart-layer:has(.dim) .smart-tag.lit{fill:color-mix(in srgb, var(--tag) 45%, transparent)}.viewer .smart-tag.on{fill:color-mix(in srgb, var(--tag) 40%, transparent)}.smart-bar{z-index:6;background:var(--surface);box-shadow:var(--shadow-2);border-radius:12px;align-items:center;gap:10px;min-width:0;padding:6px 8px 6px 12px;display:flex;position:absolute;top:10px;left:12px;right:12px}.smart-title{color:var(--ai);white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:inline-flex}.smart-chips{scrollbar-width:none;gap:4px;min-width:0;display:flex;overflow-x:auto}.smart-bar .smart-chip{border:1px solid var(--line);background:var(--control);min-height:24px;color:var(--text-2);box-shadow:none;white-space:nowrap;border-radius:12px;align-items:center;gap:5px;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.smart-bar .smart-chip.on{color:var(--text);border-color:color-mix(in srgb, var(--tag) 50%, var(--line));background:color-mix(in srgb, var(--tag) 9%, var(--control))}.smart-bar .smart-chip:disabled{opacity:.4}.smart-chip .dot,.smart-results .dot,.smart-summary .dot{background:var(--tag);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.smart-chip .n{color:var(--text-2);font-variant-numeric:tabular-nums}.smart-search{background:var(--fill);min-width:150px;max-width:320px;color:var(--text-2);border-radius:8px;flex:200px;align-items:center;gap:6px;padding:0 8px;display:flex;position:relative}.smart-search input{min-width:0;font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:6px 0}.smart-results{background:var(--surface);box-shadow:var(--shadow-3);z-index:8;border-radius:10px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:-60px}.smart-results li.muted{padding:8px 10px}.smart-results button{width:100%;box-shadow:none;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;min-height:0;padding:6px 8px;display:flex}.smart-results button:hover{background:var(--control-hover)}.smart-results .name{text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);flex:1;overflow:hidden}.smart-results .muted,.smart-summary .muted,.smart-card .muted{color:var(--text-3);font-size:12px}.selection-bar.below-smart{top:62px}.smart-card,.smart-summary{z-index:5;background:var(--surface);width:340px;max-width:calc(100% - 24px);max-height:calc(100% - 80px);box-shadow:var(--shadow-3);border-radius:12px;padding:12px 14px 14px;position:absolute;top:62px;right:12px;overflow:auto}.smart-summary{width:460px;left:12px;right:auto}.smart-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.kind-pill{letter-spacing:.02em;text-transform:uppercase;color:color-mix(in srgb, var(--tag) 75%, #000);background:color-mix(in srgb, var(--tag) 14%, transparent);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.smart-card h3{margin:8px 0 2px;font-size:17px;line-height:1.25}.smart-card .source{color:var(--text-3);margin:0 0 6px;font-size:12px}.smart-card h4,.smart-summary h4{letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin:12px 0 4px;font-size:11px;font-weight:600}.smart-card dl{margin:0}.smart-card .row{border-bottom:1px solid var(--line);grid-template-columns:112px 1fr;gap:8px;padding:4px 0;font-size:13px;display:grid}.smart-card .row:last-child{border-bottom:none}.smart-card dt{color:var(--text-2)}.smart-card dd{overflow-wrap:anywhere;margin:0}.smart-card dd .line{display:block}.inline-link{min-height:0;box-shadow:none;font:inherit;color:color-mix(in srgb, var(--tag) 80%, #000);background:color-mix(in srgb, var(--tag) 14%, transparent);cursor:pointer;border:none;border-radius:4px;padding:0 3px;font-weight:600;display:inline}.smart-card .where{flex-wrap:wrap;gap:4px;display:flex}.code-chip{font-variant-numeric:tabular-nums;border-radius:11px;min-height:22px;padding:0 8px;font-size:12px}.code-chip.here{border-color:var(--accent);color:var(--accent)}.smart-summary table{border-collapse:collapse;width:100%;font-size:13px}.smart-summary td{border-bottom:1px solid var(--line);vertical-align:top;padding:5px 4px}.smart-summary td.num{white-space:nowrap;color:var(--text-2);font-variant-numeric:tabular-nums}.smart-summary .missing{flex-wrap:wrap;gap:3px;display:flex}.smart-sources{margin:0;padding-left:16px;font-size:13px;line-height:1.6}.smart-summary p.small{margin:10px 0}.smart-fab{z-index:4;min-height:32px;color:var(--ai);background:var(--surface);box-shadow:var(--shadow-2);border-color:#e2cdf2;border-radius:16px;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex;position:absolute;top:12px;left:12px}.smart-fab:hover{background:var(--ai-soft)!important}.editor-head .editor-actions{gap:6px;margin-left:auto;display:flex}.editor-head .editor-actions button{min-height:26px;padding:0 10px}.viewer .link-box{fill:#0000;stroke:#0000;pointer-events:none}.viewer .link-layer.live .link-box{pointer-events:all;cursor:pointer}.viewer .link-box.callout,.viewer .link-box.sheet,.viewer .link-box.schedule{fill:color-mix(in srgb, var(--tag) 12%, transparent);stroke:color-mix(in srgb, var(--tag) 70%, transparent)}.viewer .link-box.tag{stroke:color-mix(in srgb, var(--tag) 55%, transparent)}.viewer .link-box.view{stroke:color-mix(in srgb, var(--tag) 60%, transparent);stroke-dasharray:4 3}.viewer .link-layer.live .link-box:hover{fill:color-mix(in srgb, var(--tag) 26%, transparent);stroke:var(--tag)}.viewer .link-layer.live .link-box.definition:hover{fill:color-mix(in srgb, var(--tag) 14%, transparent)}.viewer .link-flash{fill:#ffcc0047;stroke:#f5a300;pointer-events:none;animation:2.6s ease-out forwards link-flash}@keyframes link-flash{0%,55%{opacity:1}to{opacity:0}}.links-fab{z-index:4;min-height:32px;color:var(--accent);background:var(--surface);box-shadow:var(--shadow-2);border-radius:16px;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex;position:absolute;top:12px;left:12px}.links-fab.shifted{left:92px}.nav-buttons{z-index:7;background:var(--surface);box-shadow:var(--shadow-2);border-radius:16px;gap:2px;padding:2px;display:flex;position:absolute;top:12px;left:12px}.nav-buttons .icon-button{border-radius:14px;width:32px;height:28px}.links-bar{z-index:6;background:var(--surface);box-shadow:var(--shadow-2);border-radius:12px;align-items:center;gap:10px;padding:6px 8px 6px 12px;display:flex;position:absolute;top:10px;left:12px;right:12px}.app:has(.nav-buttons) .links-bar{left:92px}.links-title{color:var(--accent);white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:inline-flex}.links-bar .smart-search{max-width:520px}.follow-bar{z-index:6;background:var(--surface);max-width:calc(100% - 40px);box-shadow:var(--shadow-3);white-space:nowrap;border-radius:12px;align-items:center;gap:10px;padding:6px 6px 6px 14px;display:flex;position:absolute;bottom:104px;left:50%;transform:translate(-50%)}.follow-label{text-overflow:ellipsis;overflow:hidden}.follow-steps{align-items:center;gap:4px;display:inline-flex}.follow-steps .num{font-variant-numeric:tabular-nums;color:var(--text-2);font-size:12px}.icon-svg.flip{transform:rotate(180deg)}.map-overlay{z-index:9;background:var(--surface);box-shadow:var(--shadow-3);border-radius:14px;flex-direction:column;display:flex;position:absolute;inset:8px;overflow:hidden}.map-head{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:10px 14px;display:flex}.map-head strong{align-items:center;gap:6px;display:inline-flex}.map-head .icon-button{margin-left:auto}.map-kinds{color:var(--text-2);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.map-kinds label{align-items:center;gap:4px;display:inline-flex}.map-body{background:var(--window);flex:1;min-height:0;position:relative}.map-body svg{cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:100%}.map-trade{letter-spacing:.06em;font-size:13px;font-weight:700}.map-edge{stroke:#8e8e93;stroke-opacity:.4}.map-edge.dim{stroke-opacity:.06}.map-node{cursor:pointer}.map-node circle{stroke:#fff;stroke-width:1.5px}.map-node text{fill:var(--text);pointer-events:none;font-size:9px}.map-node.dim{opacity:.2}.map-node.here circle{stroke:var(--text);stroke-width:2.5px}.map-node:hover circle{stroke:var(--text)}.map-tip{background:var(--surface);max-width:360px;box-shadow:var(--shadow-2);border-radius:10px;padding:8px 12px;font-size:13px;position:absolute;top:12px;left:12px}.map-help{margin:0;font-size:12px;position:absolute;bottom:8px;left:14px}.map-table{flex:1;min-height:0;padding:10px 14px;overflow:auto}.map-filter{max-width:420px;margin-bottom:8px}.map-table table{border-collapse:collapse;width:100%;font-size:13px}.map-table th{background:var(--surface);text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--line);padding:6px 8px;font-size:11px;font-weight:600;position:sticky;top:0}.map-table td{border-bottom:1px solid var(--line);padding:5px 8px}.view-switch{margin-left:6px}.view-switch button{align-items:center;gap:5px;padding:0 9px;display:inline-flex}.view-switch button:not(.on) span{display:none}.tb-center.hidden-view{visibility:hidden}.view-pane{z-index:30;background:var(--window);min-height:0;animation:.22s ease-out view-in;position:fixed;inset:52px 0 0;overflow:hidden}@keyframes view-in{0%{opacity:0;transform:translateY(6px)}}.spec-view{grid-template-columns:300px minmax(0,1fr) 330px;height:100%;display:grid}.spec-toc{border-right:1px solid var(--line);background:var(--window);flex-direction:column;min-height:0;display:flex}.spec-toc-head{align-items:center;gap:8px;padding:14px 14px 6px;display:flex}.spec-toc-head strong{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.spec-toc-head select{flex:1;min-width:0}.spec-toc-stats{color:var(--text-2);gap:12px;padding:0 14px 10px;font-size:12px;display:flex}.spec-toc-stats b{color:var(--text);font-variant-numeric:tabular-nums}.spec-toc-stats .warn b,.spec-toc-stats .warn{color:var(--warn)}.spec-search{background:var(--fill);height:30px;color:var(--text-3);border-radius:8px;align-items:center;gap:6px;margin:0 12px 8px;padding:0 10px;display:flex}.spec-search input{font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0}.spec-toc-list{flex:1;padding:0 8px 12px;overflow:auto}.spec-div-head{width:100%;box-shadow:none;text-align:left;color:var(--text);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:7px 6px;font-size:12.5px;font-weight:600;display:flex}.spec-div-head:hover{background:var(--fill)}.spec-div-head .count{color:var(--text-3);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:500}.spec-div-head .chev{color:var(--text-3);transition:transform .15s;transform:rotate(-90deg)}.spec-div.open .spec-div-head .chev{transform:none}.spec-div-num{min-width:26px;height:20px;font:700 11px var(--font-mono);color:#fff;background:var(--c,#8e8e93);box-shadow:0 1px 4px color-mix(in srgb, var(--c,#888) 45%, transparent);border-radius:5px;place-items:center;padding:0 4px;display:inline-grid}.spec-div-num.small{min-width:22px;height:18px;font-size:10px}.spec-div-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spec-div ul{margin:0 0 6px;padding:0 0 0 8px;list-style:none}.spec-sec{width:100%;box-shadow:none;text-align:left;color:var(--text);background:0 0;border:none;border-radius:6px;align-items:baseline;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.spec-sec:hover:not(:disabled){background:var(--fill)}.spec-sec.on,.spec-sec.on:hover:not(:disabled){background:var(--row-active);color:var(--text)}.spec-sec .n{font:600 11.5px var(--font-mono);color:var(--text-2);flex:none}.spec-sec .t{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.spec-sec.missing{opacity:.75}.spec-sec.missing .t{color:var(--text-3);font-style:italic}.spec-sec .tag,.pmap-list .tag{border-radius:10px;flex:none;padding:1px 6px;font-size:10.5px;font-weight:600}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.link{background:var(--accent-soft);color:var(--accent);font-variant-numeric:tabular-nums}.spec-remove{color:var(--text-3);align-self:flex-start;margin:6px 14px 12px;font-size:12px}.spec-reading{color:var(--text-2);margin:4px 14px 10px;font-size:12px}.spec-reading .bar{background:var(--fill);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.spec-reading .bar i{background:linear-gradient(90deg, var(--accent), #5e5ce6);height:100%;transition:width .2s;display:block}.spec-page-pane{background:var(--desk);flex-direction:column;min-width:0;min-height:0;display:flex}.spec-pagebar{background:var(--window);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:8px 14px;display:flex}.spec-crumb{flex:1;align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.spec-crumb strong{font-family:var(--font-mono)}.spec-crumb span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spec-pager{align-items:center;gap:6px;font-size:12px;display:flex}.spec-pagenum{text-align:center;font-variant-numeric:tabular-nums;width:46px;height:26px}.spec-sep{background:var(--line-strong);width:1px;height:18px;margin:0 4px}.spec-scroll{flex:1;padding:24px;overflow:auto}.spec-paper{box-shadow:var(--shadow-2);background:#fff;border-radius:3px;margin:0 auto;position:relative}.spec-paper canvas{border-radius:3px;display:block}.spec-hot{cursor:pointer;background:#0071e31a;border:none;border-radius:3px;padding:0;transition:background .12s;position:absolute;box-shadow:inset 0 -2px #0071e3bf}.spec-hot:hover{background:#0071e338}.spec-hot.sheet{background:#1f8a3c1a;box-shadow:inset 0 -2px #1f8a3ccc}.spec-hot.sheet:hover{background:#1f8a3c38}.spec-hot.schedule{background:#8a3fc61a;box-shadow:inset 0 -2px #8a3fc6cc}.spec-hot.missing{cursor:help;background:#b2500014;box-shadow:inset 0 -2px #b25000b3}.spec-hot-tip{white-space:nowrap;background:var(--overlay);color:var(--overlay-text);pointer-events:none;z-index:2;border-radius:6px;padding:4px 8px;font-size:11.5px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.spec-side{border-left:1px solid var(--line);background:var(--surface);padding:16px;overflow:auto}.spec-side h4{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:6px;margin:18px 0 8px;font-size:11px;display:flex}.spec-side h4 .count{background:var(--fill);color:var(--text-2);border-radius:8px;padding:0 6px}.spec-side-head{align-items:flex-start;gap:10px;display:flex}.spec-side-head .spec-div-num{margin-top:3px}.spec-side-head h3{font:700 18px var(--font-mono);margin:0}.spec-side-head p{color:var(--text-2);margin:2px 0 0;font-size:13px}.spec-side-actions{justify-content:space-between;align-items:center;margin-top:12px;font-size:12px;display:flex}.spec-side-actions button{align-items:center;gap:6px;display:inline-flex}.spec-ties{gap:6px;margin:0;padding:0;list-style:none;display:grid}.spec-ties button{border:1px solid var(--line);background:var(--surface);width:100%;box-shadow:none;text-align:left;border-radius:9px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:12.5px;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex}.spec-ties button:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 14px #0071e31f}.spec-tie-main{flex:1;min-width:0}.spec-tie-main small{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:block;overflow:hidden}.spec-ties .go{color:var(--text-3);margin-top:3px}.spec-chips{flex-wrap:wrap;gap:6px;display:flex}.spec-chip{border:1px solid var(--line);background:var(--control);box-shadow:none;font:600 11.5px var(--font-mono);border-radius:12px;padding:3px 8px}.spec-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.spec-chip.missing{color:var(--warn);border-style:dashed}.spec-articles,.spec-articles ul{margin:0;padding:0;list-style:none}.spec-articles ul{margin:2px 0 8px}.spec-articles button{width:100%;box-shadow:none;text-align:left;color:var(--text);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:12.5px;display:block}.spec-articles button:hover{background:var(--fill)}.spec-articles button.on{background:var(--accent-soft)}.spec-articles .n{min-width:30px;font:600 11px var(--font-mono);color:var(--text-3);display:inline-block}.spec-part{letter-spacing:.02em;color:var(--text-2)!important;font-size:11.5px!important;font-weight:700!important}.spec-side-empty{text-align:center;margin-top:40px}.spec-empty,.pmap-empty{place-items:center;height:100%;display:grid}.spec-empty-card{text-align:center;max-width:440px;padding:40px}.spec-empty-card h2{font:700 24px var(--font-display);margin:22px 0 8px}.spec-empty-card p{color:var(--text-2);margin:0 0 22px;line-height:1.5}.spec-empty-card button{align-items:center;gap:8px;display:inline-flex}.spec-empty-art{width:120px;height:90px;margin:0 auto;position:relative}.spec-empty-art span{background:var(--surface);width:62px;height:80px;box-shadow:var(--shadow-2);border-radius:6px;position:absolute;top:5px;left:29px}.spec-empty-art span:before,.spec-empty-art span:after{content:"";background:var(--fill-strong);height:4px;box-shadow:0 10px 0 var(--fill), 0 20px 0 var(--fill), 0 30px 0 var(--fill);border-radius:2px;position:absolute;top:16px;left:10px;right:10px}.spec-empty-art span:after{background:var(--accent);box-shadow:none;top:12px;right:30px}.spec-empty-art span:first-child{transform:rotate(-12deg)translate(-30px)}.spec-empty-art span:nth-child(3){transform:rotate(12deg)translate(30px)}.pmap-empty{color:#e8ecff;text-align:center;background:radial-gradient(#111a2e 0%,#05070d 75%)}.pmap-empty h2{font:700 26px var(--font-display);margin:0 0 8px}.pmap-empty p{color:#e8ecff99;margin:0 0 20px}.pmap-empty-actions{justify-content:center;gap:10px;display:flex}.pmap{color:#e8ecff;font-family:var(--font);background:#05070d;position:absolute;inset:0;overflow:hidden}.pmap-stage,.pmap-stage canvas,.pmap-3d{position:absolute;inset:0}.pmap-stage canvas{cursor:grab;touch-action:none}.pmap-hud{pointer-events:none;align-items:center;gap:12px;display:flex;position:absolute;top:14px;left:14px;right:14px}.pmap-hud>*{pointer-events:auto}.pmap-glass,.pmap-title,.pmap-search,.pmap-toggles,.pmap-seg,.pmap-close,.pmap-panel,.pmap-legend{-webkit-backdrop-filter:blur(18px)saturate(160%);background:#1016289e;border:1px solid #8caaff29;box-shadow:0 10px 40px #00000073,inset 0 1px #ffffff0d}.pmap-title{white-space:nowrap;border-radius:12px;align-items:center;gap:8px;height:38px;padding:0 14px;font-size:13px;display:flex}.pmap-title strong{font-family:var(--font-display);background:linear-gradient(90deg,#8fd0ff,#c49bff);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:14px}.pmap-sub{color:#e8ecff8c;font-size:12px}.pmap-search{color:#e8ecff80;border-radius:12px;align-items:center;gap:8px;width:270px;height:38px;padding:0 12px;display:flex;position:relative}.pmap-search input{color:#fff;height:100%;font:inherit;outline:none;flex:1;min-width:0;padding:0;font-size:13px;box-shadow:none!important;background:0 0!important;border:none!important}.pmap-search input::placeholder{color:#e8ecff66}.pmap-results{background:#101628f0;border:1px solid #8caaff2e;border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 16px 50px #00000080}.pmap-results button,.pmap-list button,.pmap-links button{width:100%;box-shadow:none;color:#e8ecff;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.pmap-results button:hover,.pmap-list button:hover,.pmap-links button:hover{background:#8caaff1f}.pmap .muted{color:#e8ecff80}.pmap .dot{border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 8px}.pmap .dot.ring{background:0 0;border:1.5px dashed}.pmap-toggles{border-radius:12px;gap:4px;padding:4px;display:flex}.pmap-chip{height:30px;box-shadow:none;color:#e8ecff73;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.pmap-chip:hover{color:#fff}.pmap-chip.on{color:#fff;background:#8caaff24}.pmap-chip .swatch{border-top:2px solid #8fd0ff;width:16px;height:0}.pmap-chip.matched .swatch{border-top:2px dashed #c49bff}.pmap-chip.spec-spec .swatch{border-top-color:#fff6}.pmap-chip.items .swatch{background:#6fe3c5;border:none;width:8px;height:8px;transform:rotate(45deg)}.pmap-chip.gaps .n{color:#ffc861;background:#ffb34038;border-radius:8px;padding:0 6px}.pmap-actions{gap:8px;margin-left:auto;display:flex}.pmap-seg{border-radius:11px;padding:3px;display:flex}.pmap-seg button{height:30px;box-shadow:none;color:#e8ecff8c;background:0 0;border:none;border-radius:8px;padding:0 14px;font-size:12px;font-weight:700}.pmap-seg button.on{color:#05070d;background:linear-gradient(135deg,#8fd0ff,#c49bff);box-shadow:0 0 18px #a0b4ff73}.pmap-close{color:#e8ecff;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.pmap-panel{border-radius:16px;width:340px;padding:16px;animation:.24s cubic-bezier(.2,.9,.3,1.2) pmap-in;position:absolute;top:66px;bottom:56px;overflow:auto}.pmap-panel.right{right:14px}.pmap-panel.left{left:14px}@keyframes pmap-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.pmap-panel-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.pmap-x{width:26px;height:26px;box-shadow:none;color:#e8ecff;background:#ffffff0f;border:none;border-radius:8px;place-items:center;padding:0;display:grid}.pmap-kind{letter-spacing:.04em;text-transform:uppercase;color:var(--c);background:color-mix(in srgb, var(--c) 16%, transparent);box-shadow:0 0 14px color-mix(in srgb, var(--c) 30%, transparent);border-radius:10px;padding:3px 9px;font-size:11px;font-weight:700}.pmap-panel h3{font:700 20px var(--font-display);color:#fff;margin:4px 0 2px}.pmap-panel h3 span{color:#e8ecffbf;font-size:15px;font-weight:500}.pmap-panel h4{letter-spacing:.08em;text-transform:uppercase;color:#e8ecff73;margin:18px 0 6px;font-size:10.5px}.pmap-panel p{margin:0;font-size:12.5px}.pmap-warn{color:#ffd38a;background:#ffb3401f;border:1px solid #ffb3404d;border-radius:10px;margin-top:12px;padding:10px 12px;font-size:12.5px;line-height:1.45}.pmap-buttons{gap:8px;margin-top:14px;display:flex}.pmap-buttons .primary{background:linear-gradient(135deg,#3d8bff,#8a5cff);border:none;box-shadow:0 6px 20px #5a78ff66}.pmap-buttons .secondary{color:#e8ecff;background:#ffffff14;border:1px solid #ffffff24}.pmap-list,.pmap-links{margin:0;padding:0;list-style:none}.pmap-results button,.pmap-list button{justify-content:flex-start}.pmap-list button{white-space:normal;flex-wrap:wrap}.pmap-links li{align-items:stretch;gap:2px;display:flex}.pmap-links .pmap-link{flex:1;justify-content:flex-start;align-items:flex-start;min-width:0;padding:8px}.pmap-links .pmap-go{width:30px;min-height:0;box-shadow:none;color:#e8ecff73;background:0 0;border:none;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.pmap-links .pmap-go:hover{color:#fff;background:linear-gradient(135deg,#3d8bff80,#8a5cff80)}.pmap-panel h4 .n{color:#e8ecffb3;background:#ffffff14;border-radius:8px;margin-left:4px;padding:0 6px}.pmap-link-main{flex:1;min-width:0}.pmap-link-main span{color:#e8ecffb3}.pmap-link-main small{color:#e8ecff6b;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:block;overflow:hidden}.pmap-badge{letter-spacing:.03em;text-transform:uppercase;border-radius:8px;flex:none;margin-top:1px;padding:1px 7px;font-size:10px;font-weight:700}.pmap-badge.written{color:#8fd0ff;background:#8fd0ff24}.pmap-badge.matched{color:#c49bff;background:#c49bff24}.pmap-badge.spec-spec{color:#e8ecffb3;background:#ffffff14}.spec-side .pmap-badge.written{color:var(--accent);background:var(--accent-soft)}.spec-side .pmap-badge.matched{color:var(--ai);background:var(--ai-soft)}.pmap-legend{color:#e8ecff99;white-space:nowrap;border-radius:12px;gap:16px;padding:8px 16px;font-size:11.5px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.pmap-legend span{align-items:center;gap:6px;display:inline-flex}.pmap-legend .l{border-top:2px solid #8fd0ff;width:18px}.pmap-legend .l.matched{border-top:2px dashed #c49bff}.pmap-legend .s{background:#8fb4ff;width:9px;height:9px}.pmap-legend .s.round{border-radius:50%}.pmap-legend .s.ring{background:0 0;border:1.5px dashed #ffc861;border-radius:50%}.pmap-legend .s.square{background:#4da3ff;border-radius:2px}.pmap-legend .s.diamond{background:#6fe3c5;transform:rotate(45deg)}.map3d-tip{color:#fff;font:12px var(--font);background:#101628e6;border-radius:6px;padding:4px 8px}@media (width<=1100px){.spec-view{grid-template-columns:240px minmax(0,1fr)}.spec-side,.pmap-toggles,.pmap-legend{display:none}}.files-button{margin-left:8px;font-size:12px}.modal.fm{width:min(860px,100%)}.fm-section{margin-top:18px}.fm-section-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.fm-section-head h4{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);flex:1;margin:0;font-size:11px}.fm-section-head h4 .count{background:var(--fill);color:var(--text-2);border-radius:8px;margin-left:4px;padding:0 6px}.fm-section-head button{align-items:center;gap:5px;display:inline-flex}.fm-empty{border:1px dashed var(--line-strong);border-radius:10px;padding:14px}.fm-list{border:1px solid var(--line);border-radius:10px;max-height:46vh;margin:0;padding:0;list-style:none;overflow:hidden auto}.fm-row{border-bottom:1px solid var(--line);background:var(--surface)}.fm-row:last-child{border-bottom:none}.fm-row.picked{background:var(--accent-soft)}.fm-row.over,.fm-sheet.over{box-shadow:inset 0 2px 0 var(--accent)}.fm-row.dragging{opacity:.45}.fm-line{align-items:center;gap:8px;padding:6px 10px;display:flex}.fm-grip{cursor:grab;color:var(--text-3);letter-spacing:-2px;-webkit-user-select:none;user-select:none;font-size:11px}.fm-expand{width:20px;height:20px;box-shadow:none;color:var(--text-2);background:0 0;border:none;place-items:center;padding:0;display:grid}.fm-expand .closed{transform:rotate(-90deg)}.fm-icon{color:var(--text-2);flex:none}.fm-name{flex:1;min-width:0;height:28px;font-weight:600;box-shadow:none!important;background:0 0!important;border-color:#0000!important;padding-inline:6px!important}.fm-name:hover,.fm-name:focus{border-color:var(--line-strong)!important;background:var(--control)!important}.fm-meta{color:var(--text-2);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.fm-actions{flex:none;gap:2px;display:flex}.fm-del:hover:not(:disabled){color:var(--danger)}.fm-sheets{padding:0 10px 10px 58px}.fm-sheets ul{border-left:2px solid var(--line);margin:0;padding:0;list-style:none}.fm-sheets-bar{color:var(--text-2);align-items:center;gap:10px;margin-bottom:6px;font-size:12px;display:flex}.fm-sheets-bar button{align-items:center;gap:5px;display:inline-flex}.fm-sheet{align-items:center;gap:8px;padding:3px 8px;font-size:12.5px;display:flex}.fm-sheet:hover{background:var(--fill)}.fm-sheet .muted{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.fm-sheet.old{opacity:.6}.fm-page{width:38px;font:11px var(--font-mono);color:var(--text-3)}.fm-sheet .tag{background:var(--fill);border-radius:10px;flex:none;padding:1px 6px;font-size:10.5px;font-weight:600}.pmap-hist{align-items:center;gap:4px;display:flex}.pmap-hist .pmap-x:disabled{opacity:.3}.pmap-hist .pmap-kind{margin-left:4px}.pmap-badge.parent{color:#ffd38a;background:#ffb34024}.pmap-badge.child{color:#6fe3c5;background:#6fe3c524}.pmap-badge.via{color:#e8ecffbf;background:#ffffff12;border:1px dashed #fff3}.pmap-more{box-shadow:none;color:#8fd0ff;background:0 0;border:none;margin:4px 0 0 8px;padding:2px 6px;font-size:12px}.pmap,.pmap-empty{font-family:Space Grotesk,SF Pro Display,-apple-system,BlinkMacSystemFont,sans-serif}.pmap-title,.pmap-chip,.pmap-seg button,.pmap-panel h3,.pmap-panel h4,.pmap-panel-head strong,.pmap-kind,.pmap-badge,.pmap-link-main,.pmap-list button,.pmap-results button,.pmap-legend,.pmap-buttons button,.pmap-panel>p,.pmap-warn,.pmap-more,.pmap-empty h2,.pmap-empty p{text-transform:uppercase;letter-spacing:.06em}.pmap-title strong{letter-spacing:.14em;font-weight:700}.pmap-sub{letter-spacing:.08em;font-size:11px}.pmap-search input{letter-spacing:.04em}.pmap-search input::placeholder{text-transform:uppercase;letter-spacing:.08em;font-size:12px}.pmap-panel h3{letter-spacing:.05em;font-family:Space Grotesk,sans-serif;font-size:19px;line-height:1.25}.pmap-panel h3 span{font-size:14px}.pmap-panel h4{letter-spacing:.14em}.pmap-link-main{font-size:12px}.pmap-link-main small{letter-spacing:.05em;font-size:10.5px}.pmap-badge{letter-spacing:.1em;font-size:9.5px}.pmap-badge.revises{color:#ff8cbe;background:#ff5fa226}.pmap-chip.revises .swatch{border-top:2px solid #ff5fa2}.pmap-legend .s.planet{background:#4da3ff;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 2px #050915,0 0 0 3px #4da3ffb3}.pmap-legend .s.flare{background:radial-gradient(circle,#fff 0 18%,#0000 20%),linear-gradient(#ff5fa2,#ff5fa2) 50%/100% 1.5px no-repeat,linear-gradient(#ff5fa2,#ff5fa2) 50%/1.5px 100% no-repeat;width:10px;height:10px}.map3d-tip{letter-spacing:.06em;font-family:Space Grotesk,sans-serif}.spec-sec .t,.spec-crumb span:last-child,.spec-side-head p,.spec-tie-main{text-transform:uppercase;letter-spacing:.02em}.tag.add{color:#c2185b;letter-spacing:.04em;background:#fde7f0;font-size:10px;font-weight:700}.spec-changes{gap:6px;margin:0;padding:0;list-style:none;display:grid}.spec-changes>li>button{white-space:normal;overflow-wrap:anywhere;border:1px solid var(--line);background:var(--surface);width:100%;box-shadow:none;text-align:left;color:var(--text);border-radius:8px;padding:7px 9px;font-size:12px;line-height:1.4;display:block}.spec-changes>li>button:hover,.spec-changes>li>button.here{border-color:#e0457b}.spec-changes .chg{text-transform:uppercase;letter-spacing:.05em;background:var(--fill);border-radius:6px;padding:0 6px;font-size:10px;font-weight:700;display:inline-block}.spec-changes .chg.added{background:var(--good-soft);color:var(--good)}.spec-changes .chg.revised{background:var(--warn-soft);color:var(--warn)}.spec-changes .chg.deleted{background:var(--danger-soft);color:var(--danger)}.spec-changes .spec-chips{margin-top:4px}.spec-chip.sheet{color:var(--good)}.pmap-zoom{-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%);background:#1016289e;border:1px solid #8caaff29;border-radius:12px;gap:2px;padding:3px;display:flex;position:absolute;bottom:14px;right:14px;box-shadow:0 10px 40px #00000073}.pmap-zoom button{width:32px;height:32px;box-shadow:none;color:#e8ecff;background:0 0;border:none;border-radius:8px;place-items:center;padding:0;font:500 18px Space Grotesk,sans-serif;display:grid}.pmap-zoom button:hover{background:#8caaff29}.pmap-space{flex-direction:column;align-items:flex-start;gap:8px;max-width:330px;display:flex;position:absolute;bottom:14px;left:14px}.pmap-space-switch{-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%);background:#1016289e;border:1px solid #8caaff29;border-radius:12px;gap:2px;padding:3px;display:flex}.pmap-space-switch button{box-shadow:none;color:#aab4d8;letter-spacing:.08em;text-transform:uppercase;background:0 0;border:none;border-radius:8px;padding:6px 12px;font:600 11px Space Grotesk,sans-serif}.pmap-space-switch button.on{color:#fff;background:#7cc4ff2e}.pmap-space-key{-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%);color:#c9d2f0;letter-spacing:.04em;text-transform:uppercase;background:#1016289e;border:1px solid #8caaff29;border-radius:12px;flex-direction:column;gap:4px;padding:10px 14px;font:500 11px Space Grotesk,sans-serif;display:flex}.pmap-space-key b{color:#fff;letter-spacing:.12em}.pmap-space-key .ax i{margin-right:4px;font-family:JetBrains Mono,monospace;font-style:normal}.pmap-space-key .ax0 i{color:#7cc4ff}.pmap-space-key .ax1 i{color:#c58cff}.pmap-space-key .ax2 i{color:#6fe3c5}.pmap-space-key .dim{color:#7d87a8}.map3d-tip span{color:#aab4d8;font-size:11px}.tb-right .chat-toggle.on,.tb-right .chat-toggle.on:hover,.tb-right .chat-toggle.on:focus-visible{color:#5b3fd6;background:#7c5cff24;border-color:#7c5cff80}.chat-panel{z-index:60;-webkit-backdrop-filter:blur(22px)saturate(160%);color:#dfe5fb;background:#0e1222e6;border:1px solid #8caaff2e;border-radius:16px;flex-direction:column;width:min(420px,100vw - 24px);font:400 13px/1.5 Space Grotesk,system-ui,sans-serif;display:flex;position:fixed;top:64px;bottom:12px;right:12px;overflow:hidden;box-shadow:0 24px 80px #00000080}.chat-panel header{color:#c9b8ff;border-bottom:1px solid #8caaff1f;align-items:center;gap:8px;padding:12px 12px 12px 16px;display:flex}.chat-panel header strong{color:#fff;letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:600}.chat-sub{text-overflow:ellipsis;white-space:nowrap;color:#7d87a8;flex:1;min-width:0;font-size:11px;overflow:hidden}.chat-icon{width:28px;height:28px;box-shadow:none;color:#aab4d8;background:0 0;border:none;border-radius:8px;place-items:center;padding:0;display:grid}.chat-icon:hover{color:#fff;background:#8caaff24}.chat-body{flex-direction:column;flex:1;gap:14px;padding:14px 16px;display:flex;overflow-y:auto}.chat-empty{flex-direction:column;align-items:stretch;gap:8px;display:flex}.chat-empty p{margin:0 0 4px}.chat-empty .dim{color:#8b95b8;margin-top:10px}.chat-suggest{text-align:left;box-shadow:none;color:#dfe5fb;font:inherit;background:#8caaff0f;border:1px solid #8caaff29;border-radius:10px;padding:9px 12px}.chat-suggest:hover{background:#8caaff24}.chat-turn p,.chat-turn ul,.chat-turn h4{margin:0 0 6px}.chat-turn ul{padding-left:18px}.chat-turn h4{letter-spacing:.08em;text-transform:uppercase;color:#fff;font-size:12px}.chat-turn.user{color:#fff;background:linear-gradient(135deg,#5b5cf0,#7c5cff);border-radius:12px 12px 4px;align-self:flex-end;max-width:85%;padding:8px 12px}.chat-turn.user p{margin:0}.chat-turn code{background:#8caaff1f;border-radius:4px;padding:1px 4px;font-family:JetBrains Mono,monospace;font-size:12px}.chat-tools{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.chat-tool{color:#9aa6cc;letter-spacing:.06em;text-transform:uppercase;background:#8caaff1a;border-radius:999px;padding:2px 8px;font-size:10px}.chat-tool.run{color:#c9b8ff;animation:1.2s ease-in-out infinite chat-pulse}.chat-tool.error{color:#ff8a8a}.chat-ref{box-shadow:none;cursor:pointer;border:none;border-radius:4px;margin:0 1px;padding:0 4px;font:600 12px JetBrains Mono,monospace;display:inline}.chat-ref.sheet{color:#9cc4ff;background:#5b9cff2e}.chat-ref.spec{color:#b9a4ff;background:#7cc4ff1f}.chat-ref:hover{filter:brightness(1.3);text-decoration:underline}.chat-error{color:#ff9b9b}.chat-dots:after{content:"•••";letter-spacing:3px;color:#8b95b8;animation:1.2s ease-in-out infinite chat-pulse}@keyframes chat-pulse{50%{opacity:.35}}.chat-input{border-top:1px solid #8caaff1f;align-items:flex-end;gap:8px;padding:10px 12px 12px;display:flex}.chat-input textarea{resize:none;color:#fff;font:inherit;background:#00000040;border:1px solid #8caaff33;border-radius:10px;outline:none;flex:1;padding:8px 10px}.chat-input textarea:focus{border-color:#7c5cffb3}.settings-sub{border-top:1px solid var(--border,#00000014);margin:18px 0 6px;padding-top:14px;font-size:13px}.pmap-badge.similar{color:#9fe8ff;background:#9fe8ff24;font-family:JetBrains Mono,monospace}.pmap-space-key{width:330px;max-height:min(56vh,520px);overflow:hidden}.pmap-space-key .mk-head{align-items:center;gap:8px;display:flex}.mk-src{color:#aab4d8;background:#8caaff1f;border-radius:999px;padding:2px 8px;font-size:10px}.mk-src.embeddings{color:#d6c9ff;background:#7c5cff38;box-shadow:0 0 12px #7c5cff59}.mk-busy{color:#9fe8ff;animation:1.2s ease-in-out infinite chat-pulse}.mk-note{color:#ffb4a8;text-transform:none;letter-spacing:0}.mk-link{box-shadow:none;color:#c9b8ff;font:inherit;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0}.mk-link:hover{color:#fff}.mk-tabs{align-items:center;gap:4px;margin-top:6px;display:flex}.mk-tabs>button,.mk-color button{box-shadow:none;color:#aab4d8;letter-spacing:.08em;text-transform:uppercase;background:0 0;border:none;border-radius:7px;padding:4px 8px;font:600 10px Space Grotesk,sans-serif}.mk-tabs>button.on,.mk-color button.on{color:#fff;background:#8caaff29}.mk-tabs i{background:#8caaff29;border-radius:999px;margin-left:3px;padding:0 5px;font-style:normal}.mk-tabs i.warn{color:#ffb4a8;background:#ff5f5738}.mk-color{background:#00000040;border-radius:9px;gap:1px;margin-left:auto;padding:2px;font-size:0;display:flex}.mk-list{max-height:300px;margin:2px -6px 0;padding:0;list-style:none;overflow-y:auto}.mk-list button{width:100%;box-shadow:none;color:#e8ecff;letter-spacing:.06em;text-transform:uppercase;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:12px 1fr auto;align-items:center;column-gap:8px;padding:5px 6px;font:600 11px Space Grotesk,sans-serif;display:grid}.mk-list button:hover{background:#8caaff1f}.mk-list button>i{border-radius:50%;grid-row:1/span 2;width:9px;height:9px}.mk-list button>i.ring{background:0 0;border:2px solid #ff5f57;box-shadow:0 0 8px #ff5f57}.mk-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mk-sub{white-space:nowrap;text-overflow:ellipsis;color:#7d87a8;grid-column:2;font-size:10px;font-weight:500;overflow:hidden}.mk-n{color:#7d87a8;grid-area:1/3/span 2;font-family:JetBrains Mono,monospace}.mk-check{text-transform:none;letter-spacing:0;align-items:center;gap:6px;margin-top:4px;display:flex}.build-pane{background:#0b0f1a}.bld-loading{color:#aab4d8;background:#0b0f1a;place-items:center;height:100%;font:500 13px Space Grotesk,sans-serif;display:grid}.bld{--g-name:250px;--control:#8caaff0f;--control-hover:#8caaff24;--fill-strong:#8caaff33;--line:#8caaff1f;--line-strong:#8caaff33;--text:#dfe5fb;--shadow-1:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#dfe5fb;background:#0b0f1a;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);font:400 12.5px/1.45 Space Grotesk,system-ui,sans-serif;display:grid;position:absolute;inset:0}.bld button{font:inherit}.bld-bar{background:#0e1322f2;border-bottom:1px solid #8caaff1f;align-items:center;gap:12px;min-width:0;padding:10px 14px;display:flex}.bld-title{color:#9cc4ff;align-items:center;gap:8px;display:flex}.bld-title strong{color:#fff;letter-spacing:.14em;text-transform:uppercase;font-weight:600}.bld-sub{color:#7d87a8;letter-spacing:.06em;text-transform:uppercase;font-size:11px}.bld-feas{letter-spacing:.04em;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:600}.bld-feas.ok{color:#6ff0a8;background:#3ddc8424}.bld-feas.late{color:#ff9b94;background:#ff5f5729}.bld-feas.none{color:#aab4d8;background:#8caaff1f}.bld-stale{color:#ffc861;box-shadow:none;cursor:pointer;background:#ffb3401f;border:1px solid #ffb34080;border-radius:999px;padding:4px 10px}.bld-actions{gap:4px;margin-left:auto;display:flex}.bld-actions>button,.bld-tabs button,.bld-chips button,.bld-controls button,.bld-controls select,.bld-edit button,.bld-edit select{box-shadow:none;color:#c9d2f0;cursor:pointer;background:#8caaff0f;border:1px solid #8caaff29;border-radius:8px;padding:5px 10px}.bld-actions>button:hover,.bld-chips button:hover{background:#8caaff24}.bld-actions>button.on,.bld-tabs button.on,.bld-chips button.on{color:#fff;background:#7cc4ff2e;border-color:#7cc4ff73}.bld-actions>button:disabled{opacity:.4;cursor:default}.bld-actions i{color:#ffc861;background:#ffb34033;border-radius:999px;margin-left:4px;padding:0 6px;font-style:normal}.bld-actions i.bad{color:#ffb4a8;background:#ff5f5738}.bld-close{place-items:center;width:28px;height:28px;display:grid;padding:0!important}.bld-main{min-height:0;display:flex;position:relative}.bld-setup{background:#0e1322f5;border-right:1px solid #8caaff1f;flex-direction:column;flex:none;width:340px;min-height:0;display:flex}.bld-tabs{gap:4px;padding:10px 12px 6px;display:flex}.bld-tabs button{flex:1;padding:5px 4px;font-size:11px!important}.bld-form{flex:1;padding:6px 14px 14px;overflow:auto}.bld-form h4,.bld-card h4{color:#8fa0cc;letter-spacing:.12em;text-transform:uppercase;margin:14px 0 6px;font-size:10.5px;font-weight:600}.bld-field{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;display:flex}.bld-field>span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:120px;min-width:0;overflow:hidden}.bld-field.warn>span:first-child{color:#ffc861}.bld-field.check>span{white-space:normal}.bld .bld-field input,.bld .bld-field select,.bld .bld-edit input,.bld .bld-trade input{color:#fff;width:76px;min-height:0;font:inherit;box-shadow:none;background:#0000004d;border:1px solid #8caaff33;border-radius:6px;padding:4px 6px}.bld .bld-edit input{width:64px;margin-left:4px}.bld-field input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;width:140px}.bld-field input[type=text]{width:100%}.bld-field input[type=checkbox]{width:auto}.bld .bld-field select{width:104px}.bld-field em,.bld-trade label{color:#7d87a8;font-size:11px;font-style:normal}.bld-days{gap:2px;display:flex}.bld-days button{width:24px;height:24px;box-shadow:none;color:#7d87a8;background:0 0;border:1px solid #8caaff29;border-radius:6px;padding:0}.bld-days button.on{color:#fff;background:#7cc4ff33}.bld-trade{border:1px solid #8caaff1a;border-radius:10px;margin:8px 0;padding:8px 10px}.bld-trade b{align-items:center;gap:6px;margin-bottom:6px;font-weight:600;display:flex}.bld-trade b i,.bld-chips button i{border-radius:50%;width:8px;height:8px;display:inline-block}.bld-trade div{flex-wrap:wrap;gap:6px 10px;display:flex}.bld-trade input{width:58px}.bld-go{border-top:1px solid #8caaff1f;padding:12px 14px}.bld .primary.big{color:#fff;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:linear-gradient(135deg,#3d7bff,#7c5cff);border:none;border-radius:10px;width:100%;padding:10px 16px;font-weight:600}.bld .primary.big:disabled{opacity:.5;cursor:default}.bld-badge{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:1px 6px;font-size:9.5px;font-weight:700}.bld-badge.documented{color:#6ff0a8;background:#3ddc8429}.bld-badge.inferred{color:#9cc4ff;background:#7cc4ff29}.bld-badge.assumed{color:#ffc861;background:#ffb34026}.bld-badge.unknown{color:#ffb4a8;background:#ff5f5729}.bld .dim{color:#7d87a8}.bld .small{font-size:11px}.bld .link-button{box-shadow:none;color:#9cc4ff;cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.bld .link-button.block{margin:2px 0;display:block}.bld-stage{flex:1;min-width:0;position:relative}.bld-scene{position:absolute;inset:0}.bld-scene canvas{display:block}.bld-empty{text-align:center;place-content:center;gap:10px;max-width:520px;height:100%;margin:0 auto;display:grid}.bld-empty h2{color:#fff;letter-spacing:.16em;text-transform:uppercase;margin:0}.bld-error{color:#ffb4a8}.bld-filters{pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;top:12px;left:12px;right:12px}.bld-filters>*{pointer-events:auto}.bld-chips{flex-wrap:wrap;gap:4px;display:flex}.bld-chips button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-items:center;gap:5px;display:flex;background:#0e1322bf!important;padding:3px 9px!important;font-size:11px!important}.bld-chips button.on{background:#283c6ecc!important}.bld-chips button:not(.on){opacity:.55}.bld-ghost{color:#aab4d8;background:#0e1322bf;border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:flex}.bld-day{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#0e1322cc;border-radius:12px;flex-direction:column;align-items:flex-end;padding:8px 12px;display:flex;position:absolute;top:12px;right:14px}.bld-day b{color:#fff;letter-spacing:.02em;font-size:18px;font-weight:600}.bld-day span{color:#8fa0cc;font-size:11px}.bld-hover{color:#fff;pointer-events:none;white-space:nowrap;background:#0e1322e6;border-radius:8px;padding:4px 10px;font-size:11.5px;position:absolute;bottom:44px;left:50%;transform:translate(-50%)}.bld-legend{color:#aab4d8;background:#0e1322cc;border-radius:8px;gap:12px;padding:5px 10px;font-size:11px;display:flex;position:absolute;bottom:12px;left:12px}.bld-legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:4px;display:inline-block}.bld-legend .todo{border:1px solid #8fa3d680}.bld-legend .doing{background:#ffd60a;box-shadow:0 0 8px #ffd60a}.bld-legend .done{background:#4da3ff}.bld-legend .demo{background:#ff6b6b99}.bld-inspect{background:#0e1322f5;border-left:1px solid #8caaff1f;flex:none;width:340px;overflow:hidden auto}.bld-card{padding:14px 16px}.bld-card h3{color:#fff;margin:6px 0 2px;font-size:15px;font-weight:600}.bld-card p{margin:4px 0}.bld-big{color:#fff;font-size:14px;font-weight:600}.bld-big span{color:#8fa0cc;font-weight:500}.bld-kind{color:#aab4d8;letter-spacing:.1em;text-transform:uppercase;border:1px solid #8caaff4d;border-radius:999px;padding:1px 8px;font-size:10px;display:inline-block}.bld-flags{gap:6px;display:flex}.bld-flags span{background:#8caaff1f;border-radius:999px;padding:1px 8px;font-size:11px}.bld-flags .crit{color:#ffb4a8;background:#ff5f572e}.bld-flags .late{color:#fff;background:#ff5f574d}.bld-edit{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.bld-edit select{flex:1;min-width:0;padding:4px 6px!important}.bld-deps,.bld-warn,.bld-levers{margin:0;padding-left:16px}.bld-deps li{margin:4px 0;line-height:1.4}.bld-deps .dim{font-size:11px}.bld-deps li.driver>.link-button{color:#fff;font-weight:600}.bld-deps .tag{color:#9cc4ff;background:#7cc4ff2e;border-radius:999px;margin-left:4px;padding:0 6px;font-size:10px}.bld-x{box-shadow:none;color:#7d87a8;cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0 4px}.bld-x:hover{color:#ff9b94}.bld-warn li{color:#ffc861}.bld-chips2{flex-wrap:wrap;gap:4px;display:flex}.bld-chips2 button{white-space:normal;max-width:100%;box-shadow:none;color:#c9d2f0;cursor:pointer;text-align:left;background:#7cc4ff14;border:1px solid #7cc4ff40;border-radius:6px;justify-content:flex-start;padding:2px 8px;font-size:11px}.bld-chips2 button.missing{color:#ffc861;border-color:#ffb34066}.bld-chain{counter-reset:step;margin:0;padding:0;list-style:none}.bld-chain li{counter-increment:step}.bld-chain button{width:100%;min-width:0;box-shadow:none;color:#dfe5fb;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:3px 0;display:flex}.bld-chain button:before{content:counter(step);color:#7d87a8;flex:none;width:18px;font-family:JetBrains Mono,monospace;font-size:10px}.bld-chain button span:first-child{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.bld-chain button:hover span:first-child{color:#9cc4ff}.bld-chain b{color:#fff;font-family:JetBrains Mono,monospace;font-size:11px}.bld-levers li{color:#c9d2f0;margin:3px 0}.bld-issues{z-index:3;background:#0e1322f7;border:1px solid #8caaff2e;border-radius:12px;width:420px;max-height:calc(100% - 20px);position:absolute;top:10px;right:352px;overflow:auto;box-shadow:0 20px 60px #00000080}.bld-issues-head{border-bottom:1px solid #8caaff1f;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.bld-issues ul{margin:0;padding:8px 12px 12px 26px}.bld-issues li{margin:6px 0}.bld-issues li.conflict{color:#ffb4a8}.bld-issues li.warning{color:#ffc861}.bld-time{background:#0a0e1afa;border-top:1px solid #8caaff24;flex-direction:column;min-width:0;height:34vh;min-height:180px;display:flex}.bld-controls{border-bottom:1px solid #8caaff1a;align-items:center;gap:8px;padding:6px 12px;display:flex}.bld-controls .primary{width:34px;color:#fff!important;background:linear-gradient(135deg,#3d7bff,#7c5cff)!important;border:none!important;padding:4px 0!important}.bld-controls input[type=range]{flex:1}.bld-date{color:#fff;min-width:110px;font-weight:600}.bld-zoom{gap:2px;display:flex}.bld-zoom button{width:28px;padding:3px 0!important}.bld-gantt{flex:1;position:relative;overflow:auto}.bld-g-inner{width:max-content;min-width:100%;position:relative}.bld-g-head,.bld-g-row{display:flex}.bld-g-head{z-index:3;background:#0a0e1afa;border-bottom:1px solid #8caaff1a;height:22px;position:sticky;top:0}.bld-g-name{z-index:2;width:var(--g-name);white-space:nowrap;text-overflow:ellipsis;color:#c9d2f0;background:#0a0e1afa;flex:none;padding:0 10px;font-size:11.5px;line-height:20px;position:sticky;left:0;overflow:hidden}.bld-g-head .bld-g-name{color:#7d87a8;letter-spacing:.12em;text-transform:uppercase;font-size:10px;line-height:22px}.bld-g-scale{cursor:ew-resize;flex:none;position:relative}.bld-g-scale span{color:#7d87a8;white-space:nowrap;border-left:1px solid #8caaff33;padding-left:4px;font-size:10px;position:absolute;top:4px}.bld-g-title{color:#8fa0cc;letter-spacing:.12em;text-transform:uppercase;width:max-content;padding:6px 10px 2px;font-size:10px;font-weight:600;position:sticky;left:0}.bld-g-row{cursor:pointer;height:20px}.bld-g-row:hover .bld-g-name,.bld-g-row:hover .bld-g-track{background-color:#8caaff0f}.bld-g-row.sel .bld-g-name{color:#fff;background:#283c6ef2}.bld-g-row.sel .bld-g-track{background:#7cc4ff14}.bld-g-track{flex:none;position:relative}.bld-g-bar{opacity:.85;border-radius:3px;height:10px;position:absolute;top:5px}.bld-g-bar.submittal,.bld-g-bar.review,.bld-g-bar.resubmittal,.bld-g-bar.procurement{opacity:.45;background-image:repeating-linear-gradient(135deg,#ffffff40 0 3px,#0000 3px 6px)!important}.bld-g-bar.crit{outline-offset:1px;opacity:1;outline:1.5px solid #ff6b6b}.bld-g-bar.late{box-shadow:0 0 0 1px #ff3b30,0 0 8px #ff3b3099}.bld-g-ms{background:#fff;width:11px;height:11px;position:absolute;top:4px;transform:rotate(45deg)}.bld-g-ms.late{background:#ff6b6b}.bld-g-cursor,.bld-g-target{pointer-events:none;z-index:4;width:2px;position:absolute;top:0;bottom:0}.bld-g-cursor{background:#ffd60a;box-shadow:0 0 10px #ffd60a99}.bld-g-target{border-left:2px dashed #ff6b6b}.bld-left-tabs{z-index:3;background:#0e1322fa;border-bottom:1px solid #8caaff14;border-right:1px solid #8caaff1f;gap:2px;width:300px;padding:8px 10px;display:flex;position:absolute;top:0;left:0}.bld-left-tabs button,.bld-btabs button{box-shadow:none;color:#8fa0cc;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;padding:5px 8px;font:600 10.5px Space Grotesk,sans-serif!important}.bld-left-tabs button.on,.bld-btabs button.on{color:#fff;background:#7cc4ff24;border-color:#7cc4ff4d}.bld-left,.bld-left-tabs~.bld-setup{padding-top:46px}.bld-left{background:#0e1322f5;border-right:1px solid #8caaff1f;flex-direction:column;flex:none;width:300px;min-height:0;display:flex}.bld-left-tabs~.bld-setup{width:300px}.bld-tree{flex:1;padding:4px 6px 12px;overflow:auto}.bld-tree-search{z-index:1;color:#7d87a8;background:#0a0e1af2;border:1px solid #8caaff29;border-radius:8px;align-items:center;gap:6px;margin:2px 4px 6px;padding:0 8px;display:flex;position:sticky;top:0}.bld .bld-tree-search input{color:#fff;flex:1;min-height:28px;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.bld-tree-row{cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;min-height:26px;padding:2px 6px;display:flex}.bld-tree-row:hover{background:#8caaff14}.bld-tree-row.on{background:#7cc4ff29}.bld-tree-row.lvl b{color:#fff;letter-spacing:.06em;text-transform:uppercase;font-size:11.5px;font-weight:600}.bld-tree-row.trade{padding-left:18px}.bld-tree-row.type{color:#aab4d8;padding-left:38px;font-size:11.5px}.bld-tree-row .nm{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.bld-tree-row>i{border-radius:2px;flex:none;width:8px;height:8px}.bld-tree-row em{color:#7d87a8;margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10px;font-style:normal}.bld-tree-row .caret,.bld-pg .caret{color:#7d87a8;flex:none;width:10px;font-size:9px;transition:transform .15s;display:inline-block}.bld-tree-row .caret.open,.bld-pg.open>header .caret{transform:rotate(90deg)}.bld-eye{color:#8fa0cc;opacity:.5;place-items:center;width:22px;height:22px;display:grid;background:0 0!important;border:none!important;min-height:0!important;padding:0!important}.bld-tree-row:hover .bld-eye,.bld-eye.off,.bld-eye.some{opacity:1}.bld-eye.off{color:#5a6485}.bld-eye.some{color:#ffc861}.bld-tree-hint{padding:8px 8px 0}.bld-toolbar{-webkit-backdrop-filter:blur(16px)saturate(150%);backdrop-filter:blur(16px)saturate(150%);white-space:nowrap;z-index:2;background:#0c111fd1;border:1px solid #8caaff29;border-radius:12px;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:5px;display:flex;position:absolute;top:12px;left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 12px 40px #00000073}.bld-tg{color:#8fa0cc;letter-spacing:.08em;text-transform:uppercase;border-right:1px solid #8caaff1f;align-items:center;gap:2px;padding:0 4px;font-size:10.5px;display:flex}.bld-tg:last-child{border-right:none}.bld-tg>span{margin-right:4px}.bld-tg button{color:#c9d2f0;letter-spacing:.08em;text-transform:uppercase;min-height:26px!important;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:7px!important;padding:0 8px!important;font:600 10.5px Space Grotesk,sans-serif!important}.bld-tg button:hover{background:#8caaff24!important}.bld-tg button.on{color:#fff;background:#7cc4ff33!important}.bld-tg button.warn{color:#ffc861;background:#ffb34033!important}.bld-tg input[type=range]{accent-color:#7cc4ff;width:90px}.bld-tg em{color:#c9d2f0;letter-spacing:0;text-transform:none;min-width:34px;font-family:JetBrains Mono,monospace;font-size:10px;font-style:normal}.bld .bld-tg select{text-transform:none;letter-spacing:0;border-radius:6px;min-height:24px;padding:0 6px;font-size:11px}.bld-legend2{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#aab4d8;pointer-events:none;background:#0c111fcc;border-radius:10px;flex-wrap:wrap;gap:4px 12px;max-width:62%;padding:6px 10px;font-size:10.5px;display:flex;position:absolute;bottom:12px;left:12px}.bld-legend2 i{vertical-align:-1px;border-radius:2px;width:9px;height:9px;margin-right:4px;display:inline-block}.bld-day{top:64px!important}.bld-props{padding-bottom:20px}.bld-props-head{z-index:1;background:linear-gradient(#0e1322fc 85%,#0e132200);padding:14px 16px 10px;position:sticky;top:0}.bld-props-head h3{color:#fff;margin:6px 0 2px;font-size:15px;font-weight:600;line-height:1.3}.bld-props-actions{gap:4px;margin-top:8px;display:flex}.bld-props-actions button{align-items:center;gap:5px;display:inline-flex;min-height:26px!important;padding:0 9px!important;font-size:11px!important}.bld-state{color:#c9d2f0;background:#8caaff24;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:10.5px;font-weight:600}.bld-state.doing,.bld-state.removing{color:#ffe066;background:#ffd60a2e}.bld-state.done{color:#6ff0a8;background:#3ddc8429}.bld-pg{border-top:1px solid #8caaff1a}.bld-pg>header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:9px 16px;display:flex}.bld-pg>header:hover{background:#8caaff0d}.bld-pg>header b{color:#8fa0cc;letter-spacing:.12em;text-transform:uppercase;font-size:10.5px;font-weight:600}.bld-count{color:#c9d2f0;background:#8caaff24;border-radius:999px;margin-left:auto;padding:0 6px;font-size:10px;font-style:normal}.bld-count.warn{color:#ffc861;background:#ffb34033}.bld-pg-body{padding:0 16px 12px}.bld-prop{border-bottom:1px dashed #8caaff14;grid-template-columns:112px minmax(0,1fr);gap:8px;padding:3px 0;display:grid}.bld-prop>span:first-child{color:#7d87a8}.bld-prop>span:last-child{color:#e8ecff;overflow-wrap:anywhere}.bld-prop code{color:#aab4d8;font-family:JetBrains Mono,monospace;font-size:11px}.bld-prop .crit,.bld-pg .crit{color:#ff9b94;font-weight:600}.bld-mats{border-collapse:collapse;width:100%;margin-top:6px;font-size:11.5px}.bld-mats td{border-bottom:1px solid #8caaff12;padding:3px 0}.bld-mats .num{text-align:right;color:#fff;white-space:nowrap;padding-right:6px;font-family:JetBrains Mono,monospace}.bld-mats .u{color:#7d87a8;width:34px}.bld-desc{margin-top:8px!important}.bld-blowup{cursor:zoom-in;width:100%;display:block;position:relative;overflow:hidden;background:#fff!important;border:1px solid #8caaff33!important;border-radius:10px!important;padding:0!important}.bld-blowup.loading{color:#7d87a8;place-items:center;height:160px;font-size:11px;display:grid;background:#8caaff0f!important}.bld-blowup img{width:100%;display:block}.bld-blowup svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.bld-blowup .hl{fill:none;stroke:#ff2d55;stroke-width:3px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px #ff2d55cc)}.bld-blowup .hl.area{fill:#ff2d551f}.bld-blowup-tag{color:#dfe5fb;text-align:left;background:#0c111fd9;border-radius:6px;justify-content:space-between;gap:8px;padding:4px 8px;font-size:10.5px;display:flex;position:absolute;bottom:6px;left:6px;right:6px}.bld-blowup-tag b{color:#9cc4ff;white-space:nowrap}.bld-spec{margin:6px 0 12px}.bld-spec-title{color:#e8ecff;cursor:pointer;width:100%;display:block;min-height:0!important;box-shadow:none!important;text-align:left!important;white-space:normal!important;background:0 0!important;border:none!important;justify-content:flex-start!important;padding:0!important}.bld-spec-title b{color:#9cc4ff;font-family:JetBrains Mono,monospace;font-weight:500}.bld-spec-tags{flex-wrap:wrap;gap:4px;margin:4px 0;display:flex}.bld-spec-tags .tag{color:#aab4d8;letter-spacing:.06em;text-transform:uppercase;background:#8caaff1f;border-radius:999px;padding:1px 7px;font-size:9.5px;font-weight:600}.bld-spec-tags .tag.warn{color:#ffc861;background:#ffb3402e}.bld-spec-tags .tag.add{color:#ff9fc8;background:#ff5fa22e}.bld-excerpt{color:#aab4d8;border-left:2px solid #8caaff40;padding-left:8px;font-size:11px;line-height:1.5;margin:4px 0!important}.bld-arts{flex-direction:column;margin-top:4px;display:flex}.bld-arts button{color:#c9d2f0;text-align:left;white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden;min-height:0!important;box-shadow:none!important;background:0 0!important;border:none!important;justify-content:flex-start!important;padding:2px 0!important;font-size:11px!important}.bld-arts button:hover{color:#9cc4ff}.bld-arts em{color:#7d87a8;width:30px;font-family:JetBrains Mono,monospace;font-size:10px;font-style:normal;display:inline-block}.bld-btabs{gap:2px;margin-right:6px;display:flex}.bld-btabs button{flex:none}.bld-qty{flex:1;overflow:auto}.bld-qty table{border-collapse:collapse;width:100%;font-size:11.5px}.bld-qty th{z-index:1;color:#7d87a8;letter-spacing:.1em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#0a0e1afa;border-bottom:1px solid #8caaff24;padding:6px 10px;font-size:10px;font-weight:600;position:sticky;top:0}.bld-qty td{white-space:nowrap;border-bottom:1px solid #8caaff0f;padding:4px 10px}.bld-qty .num{text-align:right;font-family:JetBrains Mono,monospace}.bld-qty .b{color:#fff;font-weight:600}.bld-qty .nm{text-overflow:ellipsis;color:#e8ecff;max-width:340px;overflow:hidden}.bld-qty .dot{border-radius:2px;width:8px;height:8px;margin-right:4px;display:inline-block}.bld-qty tbody tr{cursor:pointer}.bld-qty tbody tr:hover td{background:#8caaff0f}.bld-qty tbody tr.on td{background:#7cc4ff24}.bld-compass{z-index:3;cursor:pointer;filter:drop-shadow(0 4px 12px #00000073);background:0 0;border:0;padding:0;position:absolute;bottom:14px;right:14px}.bld-compass .ring{fill:#0e1322d1;stroke:#8caaff47;stroke-width:1px}.bld-compass:hover .ring{stroke:#8caaffb3}.bld-compass .needle{transform:rotate(var(--az,0deg));transform-origin:0 0}.bld-compass .n{fill:#ff6b6b}.bld-compass .s{fill:#dce4ff8c}.bld-compass text{fill:#e8edff;font:700 7px var(--font-mono,ui-monospace, monospace)}.tb-right .chat-toggle.byo:not(.on){color:var(--ai);border-color:#e2cdf2}.tb-right .chat-toggle.byo span{display:inline}.chat-empty.byo{gap:12px}.byo-lead{line-height:1.5}.byo-lead strong{color:#fff}.byo-card{background:#ffffff0a;border:1px solid #8caaff29;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.byo-card h4,.byo-faq h4{color:#fff;margin:0;font-size:13px;font-weight:600}.byo-card p{margin:0;line-height:1.5}.byo-card .dim{margin-top:0}.byo-card a{color:#a9b8ff}.byo-card a.button{color:#fff;background:#7c5cff;border-radius:8px;justify-content:center;align-items:center;min-height:32px;padding:0 12px;font-weight:600;text-decoration:none;display:inline-flex}.byo-card a.button:hover{background:#8f74ff}.byo-card button.primary{color:#fff;background:#7c5cff;border-color:#7c5cff}.byo-card button.primary:disabled{opacity:.45}.byo-card button.link-button{color:#a9b8ff}.byo-key{gap:6px;display:flex}.byo-key input{color:#fff;background:#0000004d;border:1px solid #8caaff40;flex:1;min-width:0}.byo-faq details{border-top:1px solid #8caaff1f;padding:7px 0}.byo-faq summary{cursor:pointer;color:#fff}.byo-faq details p{color:#b9c2e2;margin:6px 0 0;line-height:1.5}.byo-pick{background:#0000004d;border-radius:9px;align-self:flex-start;gap:4px;padding:3px;display:inline-flex}.byo-pick button{min-height:26px;box-shadow:none;color:#b9c2e2;background:0 0;border:0}.byo-pick button.on{color:#fff;background:#7c5cff}
