.wallet-dialog{color:var(--ink,#ecebdd);background:var(--bg,#172125);border:1px solid var(--line,#8885);border-radius:var(--radius,10px);width:min(820px,calc(100vw - 20px));max-height:calc(100dvh - 20px);padding:0;overflow:auto;box-shadow:0 30px 120px #0008}.wallet-dialog::backdrop{background:#071016bb;backdrop-filter:blur(8px)}.wallet-title{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;position:sticky;top:0;z-index:2;background:var(--bg,#172125);border-bottom:1px solid var(--line,#8885)}.wallet-title button{background:transparent;border:1px solid var(--line,#8885);padding:8px 14px;color:inherit}.wallet-body{padding:24px}.wallet-body h2{font-size:34px;line-height:1.1;margin:10px 0}.wallet-body h3{font-size:18px;margin:22px 0 10px}.wallet-body p{font-size:13px;line-height:1.7;margin:12px 0;max-width:65ch}.wallet-body button{min-height:44px;padding:10px 16px;border:1px solid var(--line,#8885);background:var(--accent,#c4ef8a);color:var(--button-ink,#142018);border-radius:4px;font-size:12px}.wallet-body button:disabled{opacity:.45}.wallet-body dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.wallet-body dl>div{border:1px solid var(--line,#8885);padding:14px;min-width:0}.wallet-body dt{font-size:10px;text-transform:uppercase;letter-spacing:1px;opacity:.65}.wallet-body dd{font-size:17px;margin:8px 0 0;overflow-wrap:anywhere}.wallet-body select{max-width:100%;padding:10px;background:var(--bg,#172125);color:inherit;border:1px solid var(--line,#8885)}.wallet-body label{display:block;font-size:12px}.wallet-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.wallet-status{border-left:3px solid var(--accent,#c4ef8a);padding:12px;overflow-wrap:anywhere;background:var(--line,#8882);font-size:12px;line-height:1.6}.wallet-address{font:10px/1.6 monospace;overflow-wrap:anywhere}.allocation-strip{display:flex;height:10px;width:100%;margin:22px 0 12px;gap:3px}.allocation-strip i{background:var(--accent,#c4ef8a)}.allocation-strip i:nth-child(2){opacity:.6}.allocation-strip i:nth-child(3){opacity:.3}.allocation-labels{display:flex;justify-content:space-between;font-size:11px;gap:10px}.wallet-rules{border-block:1px solid var(--line,#8885);padding:16px 0;margin:18px 0}.wallet-rules summary{cursor:pointer;font-size:13px}.economy-chip{display:flex;align-items:center;gap:12px;border:1px solid var(--line,#8885);background:var(--panel,#172125);color:var(--ink,#ecebdd);padding:10px 16px;text-align:left;min-height:48px}.economy-chip b{font-size:18px}.economy-chip small{display:block;font-size:9px;letter-spacing:1px}.economy-chip span:last-child{margin-left:auto;font-size:22px}@media(max-width:600px){.wallet-body{padding:16px}.wallet-body dl{grid-template-columns:1fr}.wallet-dialog{width:100%;max-height:100dvh;height:100dvh;border-radius:0;margin:0}.wallet-title{padding:14px 16px}.wallet-body h2{font-size:28px}}@font-face{font-family:Tech;src:url(../fonts/tech.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Round;src:url(../fonts/round.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Serif;src:url(../fonts/serif.woff2) format("woff2");font-display:swap}*{box-sizing:border-box}html,body,#app{height:100%;width:100%;margin:0;overflow:hidden}body{font-family:Round,Arial,sans-serif;background:var(--paper);color:var(--ink)}button,input,select{font:inherit}button{color:inherit;background:var(--paper);border:1px solid var(--line);cursor:pointer;min-height:36px;touch-action:manipulation}button:disabled{opacity:.42;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}canvas{display:block;width:100%;height:100%;touch-action:none}input[type=range]{accent-color:var(--accent);width:100%;min-width:0}dialog{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}dialog::backdrop{background:#040810b8;backdrop-filter:blur(6px)}.system-sheet{width:540px;padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px}.system-sheet header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);font:10px monospace;letter-spacing:2px}.system-sheet header button{width:36px;border:0;background:transparent;font-size:25px}.system-body{padding:24px;overflow:auto}.system-body h2{font-size:30px;margin-top:0}.system-body p{font-size:13px;line-height:1.8}.system-body fieldset{border:1px solid var(--line);padding:14px;margin:20px 0;display:grid;gap:12px}.system-body legend{font-size:10px;padding:0 8px}.system-body label{font-size:13px}.system-body>button{padding:12px 16px;background:var(--accent);color:var(--paper)}.wallet-dialog{--bg:var(--paper);--panel:var(--paper);--ink:inherit;--muted:inherit;--accent:inherit;background:var(--paper);color:inherit;border-color:var(--line);font-family:inherit}.wallet-title{background:var(--paper);color:inherit}.wallet-body{color:inherit}.wallet-actions button{background:var(--accent);color:var(--paper);border:1px solid var(--line)}.wallet-body select{color:var(--ink);background:var(--paper)}.wallet-body .allocation-strip i:nth-child(1){background:var(--accent)}.wallet-body .allocation-strip i:nth-child(2){background:var(--ink);opacity:.65}.wallet-body .allocation-strip i:nth-child(3){background:var(--ink);opacity:.3}@media(max-width:600px){dialog{width:calc(100vw - 16px)}.system-body,.wallet-body{padding:18px}.wallet-title{padding:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root{--paper:#d7d3c9;--ink:#202620;--accent:#ff6b2b;--line:#8c9086}.district{display:grid;grid-template-columns:minmax(0,1fr) 350px;height:100dvh;background:#cac5bb;color:#252c27;font-family:Arial,sans-serif}.building{position:relative;min-height:0;overflow:hidden}#scene{position:absolute;inset:0}.district-title{position:absolute;top:35px;left:35px;pointer-events:none}.district-title>span{font:9px monospace;letter-spacing:2px}.district-title h1{font:900 clamp(35px,5vw,75px)/.85 Arial;letter-spacing:-5px;margin:25px 0}.district-title h1 span{font:14px Arial;vertical-align:top;margin-left:5px}.district-title p{font:11px/1.7 monospace}.drawing-code{position:absolute;top:38px;right:30px;font:9px/1.8 monospace;text-align:right;border-top:2px solid #303c34;padding-top:9px}.drawing-code span{font-size:7px}.lift-tags{position:absolute;right:40px;top:43%;display:grid;gap:10px}.lift-tags span{border:1px solid #889081;width:27px;height:27px;display:grid;place-items:center;font:12px monospace}.service-stamp{position:absolute;bottom:95px;left:35px;max-width:280px;background:#d1cec2d4;padding:14px;border-left:4px solid #ff6b2b}.service-stamp>span{font:8px monospace;letter-spacing:1px}.service-stamp strong{display:block;font:900 62px Arial;letter-spacing:-3px}.service-stamp strong span{font:17px monospace;letter-spacing:0;margin-left:10px}.service-stamp p{font:10px/1.7 monospace;max-width:230px;margin:5px 0}.building-tools{position:absolute;bottom:25px;left:35px;right:35px;display:flex;gap:14px}.building-tools button{background:#c2c4b6;font:8px monospace;padding:10px 15px;border:1px solid #828c7f}.building-tools button:last-child{margin-left:auto;background:#ff6b2b;border:0;color:#242c26}.dispatch{display:flex;flex-direction:column;min-height:0;background:#e8e5da;border-left:2px solid #424c41;padding:24px}.dispatch-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px;font:9px monospace;letter-spacing:1px}.dispatch-top b{font-size:21px}.service-button button{width:100%;background:#252c27;color:#e8e7d7;padding:16px;font:10px monospace;text-align:left;display:flex;justify-content:space-between}.cabin-select{display:flex;gap:8px;margin:25px 0}.cabin-select button{width:33.33%;display:flex;flex-direction:column;align-items:flex-start;padding:10px 8px;gap:8px;background:transparent;border:1px solid #9b9f92}.cabin-select button b{font:900 27px Arial}.cabin-select button span{font:7px/1.6 monospace}.cabin-select button[aria-pressed=true]{background:#ff6b2b;border-color:#ff6b2b}.floor-title{display:flex;justify-content:space-between;font:8px monospace;border-bottom:2px solid #535e50;padding:12px 0}.floor-dispatch{flex:1;min-height:240px;display:grid;grid-template-rows:repeat(8,1fr)}.floor-dispatch button{background:transparent;border:0;border-bottom:1px solid #acb0a2;display:grid;grid-template-columns:45px 1fr 20px;align-items:center;text-align:left;min-height:30px}.floor-dispatch button b{font:700 20px Arial}.floor-dispatch button span{font:10px monospace}.floor-dispatch button i{font-style:normal;font-size:17px}.floor-dispatch button:hover{background:#c8cbbd}.operational{display:flex;flex-direction:column;gap:9px;margin-top:24px;font:9px monospace}.operational span{display:flex;justify-content:space-between}.dispatch-foot{font:8px/1.8 monospace;padding-top:22px;color:#68745f}.wallet-dialog{border-radius:0!important;font-family:monospace!important}@media(max-width:760px){.district{grid-template-columns:1fr;grid-template-rows:minmax(280px,1fr) 310px}.district-title{top:20px;left:20px}.district-title h1{font-size:36px;letter-spacing:-2px;margin:14px 0}.district-title>span{font-size:7px;letter-spacing:.5px}.district-title p{display:none}.drawing-code{right:18px;top:20px;font-size:7px}.drawing-code span,.lift-tags{display:none}.service-stamp{left:15px;bottom:58px;padding:8px;max-width:125px}.service-stamp strong{font-size:37px}.service-stamp p{font-size:8px}.service-stamp>span{font-size:6px}.building-tools{bottom:12px;left:15px;right:15px;gap:6px}.building-tools button{font-size:7px;padding:8px}.dispatch{border-left:0;border-top:2px solid #424c41;padding:12px;display:grid;grid-template-columns:120px 1fr;grid-template-rows:28px 47px 1fr;gap:8px 15px}.dispatch-top{grid-column:1/-1;padding:0}.service-button{grid-column:1;grid-row:2}.service-button button{font-size:8px;padding:9px;height:100%}.cabin-select{grid-column:1;grid-row:3;margin:0;flex-direction:column;gap:5px}.cabin-select button{width:100%;flex:1;flex-direction:row;align-items:center;padding:5px}.cabin-select button b{font-size:20px}.cabin-select button span{font-size:6px}.floor-title{display:none}.floor-dispatch{grid-column:2;grid-row:2/4;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,1fr);min-height:0;gap:5px}.floor-dispatch button{border:1px solid #a1a694;padding:5px;grid-template-columns:24px 1fr}.floor-dispatch button b{font-size:17px}.floor-dispatch button span{font-size:8px}.floor-dispatch button i,.operational,.dispatch-foot{display:none}}@media(max-height:620px)and (min-width:760px){.district{grid-template-columns:1fr 320px}.dispatch{padding:12px;display:grid;grid-template-columns:100px 1fr;grid-template-rows:25px 44px minmax(0,1fr);gap:10px}.dispatch-top{grid-column:1/-1;padding:0}.service-button{grid-column:1;grid-row:2}.service-button button{font-size:8px;padding:8px;height:100%}.cabin-select{grid-column:1;grid-row:3;flex-direction:column;margin:0;gap:6px}.cabin-select button{width:100%;padding:7px;flex:1}.cabin-select button b{font-size:20px}.floor-title,.operational,.dispatch-foot{display:none}.floor-dispatch{grid-column:2;grid-row:2/4;min-height:0;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,1fr);gap:4px}.floor-dispatch button{border:1px solid #9ba18f;padding:5px;grid-template-columns:25px 1fr}.floor-dispatch button i{display:none}.floor-dispatch button span{font-size:8px}.district-title{top:20px;left:20px}.district-title h1{font-size:35px;letter-spacing:-2px;margin:15px 0}.district-title p,.drawing-code{display:none}.service-stamp{bottom:60px;left:20px;padding:8px}.service-stamp strong{font-size:32px}.building-tools{bottom:12px;left:20px;right:20px;gap:6px}.building-tools button{font-size:7px;padding:7px}}
