@font-face{font-family:Frutiger EvacPlan;src:url(/fonts/FrutigerLTW04-45Light.woff) format("woff");font-weight:400;font-display:swap}@font-face{font-family:Frutiger EvacPlan;src:url(/fonts/FrutigerLTW04-65Bold.woff) format("woff");font-weight:700;font-display:swap}:root{--accent: #a52019;--on-accent: #ffffff;--accent-hover: rgba(255, 255, 255, .12);--accent-active: rgba(255, 255, 255, .22);--surface: #ecece7;--surface-raised: #f5f5f1;--line: rgba(74, 20, 15, .12);--line-strong: rgba(74, 20, 15, .22);--text: #2b211e;--text-muted: #6a5852;--text-disabled: #b3a9a4;--hover: #e2e1d8;--pressed: #d6d4c9;--checked: rgba(165, 32, 25, .14);--checked-line: rgba(165, 32, 25, .55);--focus: #2563eb;--ui-font: "Frutiger EvacPlan", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html{touch-action:manipulation;-webkit-text-size-adjust:100%}html,body{position:fixed;inset:0;overscroll-behavior:none}html,body,#root{margin:0;height:100%;font-family:var(--ui-font);font-size:12px;color:var(--text);background:var(--surface);overflow:hidden}.app{display:flex;flex-direction:column;height:100%}.boot{display:grid;place-items:center;height:100%;color:var(--text-muted);font-size:14px;padding:0 16px;text-align:center}.ribbon{flex:none;background:var(--surface);user-select:none;font-family:var(--ui-font);font-size:12px;color:var(--text)}.rb-band{display:flex;align-items:stretch;height:30px;padding:0 4px;background:var(--accent);color:var(--on-accent)}.rb-quick,.rb-right{display:flex;align-items:center}.rb-right{margin-left:auto}.rb-band-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:1px;padding:0;border:0;border-radius:3px;background:transparent;color:var(--on-accent);font:inherit;cursor:default}.rb-band-btn:hover:not(:disabled){background:var(--accent-hover)}.rb-band-btn:active:not(:disabled){background:var(--accent-active)}.rb-zoom-value{width:52px;font-variant-numeric:tabular-nums}.rb-collapse{margin-left:8px}.rb-band-sep{align-self:center;width:1px;height:14px;margin:0 4px 0 8px;background:#fff6}.rb-tabs{display:flex;align-items:stretch;padding-top:2px;overflow:hidden}.rb-tab{position:relative;padding:0 12px;border:0;border-radius:3px 3px 0 0;background:transparent;color:var(--on-accent);font:inherit;white-space:nowrap;cursor:default}.rb-tab.contextual{font-weight:700}.rb-tab:hover:not(.active){background:var(--accent-hover)}.rb-tab.active{background:var(--surface);color:var(--text);font-weight:700}.rb-tab.active-collapsed:after{content:"";position:absolute;left:8px;right:8px;bottom:1px;height:2px;background:var(--on-accent)}.rb-body{display:flex;height:96px;padding-left:4px;border-bottom:1px solid var(--line-strong);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.rb-group{position:relative;display:flex;flex-direction:column;align-items:center;flex:none;padding:3px 4px 0;margin-right:4px}.rb-group:after{content:"";position:absolute;right:-3px;top:6px;bottom:6px;width:1px;background:var(--line-strong)}.rb-columns{display:flex;gap:2px;height:72px}.rb-column{display:flex;flex-direction:column;align-items:stretch}.rb-caption{margin-top:auto;padding-bottom:3px;font-size:11px;line-height:15px;color:var(--text-muted);white-space:nowrap}.rb-btn{position:relative;display:flex;align-items:center;border:0;padding:0;background:transparent;color:var(--text);font:inherit;white-space:nowrap;cursor:default;isolation:isolate}.rb-btn:before{content:"";position:absolute;inset:1px;z-index:-1;border-radius:4px}.rb-btn:hover:not(:disabled):before{background:var(--hover)}.rb-btn.checked:before{background:var(--checked);box-shadow:inset 0 0 0 1px var(--checked-line)}.rb-btn:active:not(:disabled):before{background:var(--pressed)}.rb-btn:disabled{color:var(--text-disabled)}.rb-btn:focus-visible{outline:2px solid var(--focus);outline-offset:-1px;border-radius:4px}.rb-large{flex-direction:column;justify-content:flex-start;min-width:48px;height:72px;padding:4px 5px 0}.rb-lines{display:flex;flex-direction:column;align-items:center;margin-top:6px;line-height:14px}.rb-line{display:inline-flex;align-items:center}.rb-small{height:24px;padding:0 8px 0 4px;gap:4px}.rb-icon{justify-content:center;width:30px;height:30px}.rb-icon.menu{width:41px;justify-content:flex-start;padding-left:5px}.rb-chevron{flex:none;color:currentColor}.rb-small .rb-chevron{margin-left:auto}.icon{position:relative;display:inline-block;flex:none}.icon>i,.icon>img{position:absolute;inset:0;display:block}.icon-svg>svg{display:block;width:100%;height:100%}.app-body{display:flex;flex:1;min-height:0}.plan{position:relative;background:#fff;flex:1;min-width:0;overflow:hidden;overflow:clip;touch-action:none}.plan canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.plan canvas.plan-page{pointer-events:none}.plan-frame{position:relative;flex:1;min-width:0;display:flex;overflow:hidden;overflow:clip}.ruler-h,.ruler-v{position:absolute;top:0;left:0;z-index:4;display:block;pointer-events:none;mix-blend-mode:difference}.ruler-h{width:100%}.ruler-v{height:100%}.status{flex:none;display:flex;align-items:center;gap:16px;height:26px;padding:0 12px;padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--line);background:var(--surface);color:var(--text-muted);font-size:11.5px;white-space:nowrap}.status-message{color:var(--text);overflow:hidden;text-overflow:ellipsis}.status-right{margin-left:auto;display:flex;align-items:center;gap:16px;min-width:0;font-variant-numeric:tabular-nums}.status-text{overflow:hidden;text-overflow:ellipsis}.status-selection{flex:0 1 auto;min-width:0}.status-toggles,.status-zoom{flex:none;display:flex;align-items:center;gap:2px}.status-zoom{margin-left:-4px}.status-btn{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 1px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text);font:inherit}.status-toggles .status-btn{width:24px}.status-btn:hover{background:var(--hover)}.status-btn:active{background:var(--pressed)}.status-btn.on{background:var(--checked);border-color:var(--checked-line)}.status-percent{width:52px}.status-slider{display:flex;align-items:center;width:118px;height:22px;padding:0 4px;touch-action:none}.status-track{position:relative;flex:1;height:2px;background:var(--line-strong)}.status-real{position:absolute;top:-3px;width:1px;height:8px;background:var(--text-muted)}.status-knob{position:absolute;top:50%;width:11px;height:11px;border:1.5px solid var(--surface-raised);border-radius:50%;background:var(--accent);transform:translate(-50%,-50%);box-sizing:border-box}@media(max-width:900px){.status-format,.status-toggles{display:none}}@media(max-width:640px){.status-selection,.status-slider{display:none}}.rail{flex:none;display:flex;flex-direction:column;width:48px;padding-top:6px;background:var(--accent);user-select:none}.rail-section{display:flex;flex-direction:column}.rail-section+.rail-section{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.16);margin-inline:0}.rail-bottom{margin-top:auto;padding-bottom:6px;border-top:1px solid rgba(255,255,255,.14)}.rail-btn{display:grid;place-items:center;width:48px;height:44px;padding:0;border:0;background:transparent;cursor:default}.rail-btn:hover{background:var(--accent-hover)}.rail-btn.on{background:var(--surface);border-radius:6px 0 0 6px;margin-left:4px;width:44px}.rail-btn.on .icon>i{background:var(--accent)!important}.side-panel{flex:none;display:flex;flex-direction:column;gap:6px;width:216px;padding:6px 6px 0;border-right:1px solid var(--line-strong);background:var(--surface);min-height:0}.side-head{display:flex;align-items:center;gap:6px;height:21px}.side-title{font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-count{color:var(--text-muted);font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums}.side-close{margin-left:auto;display:grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface-raised)}.side-search,.side-select,.side-size-value{height:28px;padding:0 8px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface-raised);color:var(--text);font:inherit;min-width:0}.side-search:focus,.side-select:focus,.side-size-value:focus{outline:2px solid var(--focus);outline-offset:-1px}.side-size{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:10px}.side-size input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.side-size-value{width:42px;height:24px;padding:0 4px;text-align:center;font-size:11px}.side-grid{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;align-content:start;overflow-y:auto;padding-bottom:6px;scrollbar-width:thin}.side-cell{box-sizing:border-box;min-width:0;padding:3px;border:0;border-radius:4px;background:transparent;cursor:grab;touch-action:none}.side-panel.drag-out{opacity:0;pointer-events:none;transition:opacity .12s}.side-cell img{display:block;width:100%;height:auto;aspect-ratio:1;min-width:0;object-fit:contain}.rb-menu{position:fixed;z-index:50;min-width:200px;max-height:calc(100vh - 140px);overflow-y:auto;padding:4px;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:6px;box-shadow:0 8px 24px #4a140f24;font-family:var(--ui-font);font-size:12px}.rb-menu-row{display:flex;align-items:center;gap:8px;width:100%;height:28px;padding:0 10px 0 6px;border:0;border-radius:4px;background:transparent;color:var(--text);font:inherit;text-align:left;white-space:nowrap;cursor:default}.rb-menu-row:hover:not(:disabled),.rb-menu-row:focus-visible{background:var(--hover);outline:none}.rb-menu-row.checked{font-weight:700}.rb-menu-row:disabled{color:var(--text-disabled)}.rb-check{width:16px;text-align:center;color:var(--accent)}.rb-swatch{flex:none;width:16px;height:16px;border:1px solid var(--line-strong);border-radius:3px}.rb-swatch.none{background:linear-gradient(to top right,transparent calc(50% - 1px),#d52b1e calc(50% - 1px),#d52b1e calc(50% + 1px),transparent calc(50% + 1px)),#fff}.rb-menu-sep{height:1px;margin:4px 6px;background:var(--line-strong)}.ask-text{margin:0 0 12px;max-width:360px;white-space:pre-line;line-height:1.45}.ask-veil{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:#2b211e2e;padding:16px}.ask{display:flex;flex-direction:column;gap:10px;width:min(360px,100%);padding:16px;border-radius:8px;background:var(--surface-raised);box-shadow:0 16px 40px #4a140f33}.ask input{height:30px;padding:0 8px;border:1px solid var(--line-strong);border-radius:4px;font:inherit;background:#fff}.ask-buttons{display:flex;justify-content:flex-end;gap:8px}.ask-buttons button{height:28px;padding:0 14px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);font:inherit}.ask-buttons button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.typing-input{position:absolute;left:0;top:0;width:1px;height:1em;padding:0;border:0;opacity:0;resize:none;overflow:hidden;pointer-events:none;font-size:16px}.side-list{flex:1;overflow-y:auto;margin:0 -6px;scrollbar-width:thin}.side-row{display:flex;align-items:center;gap:6px;min-height:30px;padding:4px 14px;border-left:3px solid transparent;cursor:default}.side-row:hover{background:#b1014212;border-left-color:#b10142}.side-row.selected{background:#a520191f}.side-row.soft .side-row-name{color:var(--text-muted)}.side-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-row-name.wrap{white-space:normal}.side-row-state{color:var(--text-muted);font-size:10.5px;white-space:nowrap}.side-row.layer{padding-left:8px;gap:2px}.layer-toggle{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:4px;background:transparent}.layer-toggle:hover{background:var(--hover)}.side-hint{margin:4px 2px;color:var(--text-muted);line-height:1.45}.side-hint.ok{color:#16a34a;font-weight:700}.side-button{height:28px;margin-bottom:6px;border:1px solid var(--accent);border-radius:5px;background:transparent;color:var(--accent);font:inherit;font-weight:700}.side-button:hover{background:var(--checked)}.side-check{display:flex;align-items:center;gap:6px;color:var(--text)}.check-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#f59e0b}.check-dot.error{background:#ef4444}.check-fix{flex:none;height:22px;padding:0 8px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface-raised);color:var(--accent);font:inherit;font-size:11px;font-weight:700}.side-row.check.inert:hover{background:transparent;border-left-color:transparent}.check-fix:disabled,.side-button:disabled{border-color:var(--line-strong);color:var(--text-muted)}.prop-name{font-size:14px;font-weight:700;margin:4px 2px}.prop-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 8px}.prop-field{display:flex;flex-direction:column;gap:2px;color:#4b5563}.prop-box{display:flex;align-items:center;height:28px;border:1px solid #d5d9e0;border-radius:5px;background:#fff}.prop-box input{flex:1;min-width:0;height:100%;padding:0 6px;border:0;background:transparent;font:inherit;color:#111827}.prop-box input:disabled{background:#eef0f3}.prop-box em{padding-right:6px;font-style:normal;color:var(--text-muted)}.pages-bar{position:relative;flex:none;display:flex;align-items:stretch;height:30px;padding:0 8px 0 56px;background:var(--surface);border-top:1px solid var(--line-strong);user-select:none}.pages-tabs{display:flex;align-items:flex-start;gap:0;min-width:0;flex:0 1 auto;overflow-x:auto;scrollbar-width:none}.pages-tabs::-webkit-scrollbar{display:none}.page-tab{position:relative;flex:none;height:26px;max-width:220px;margin-right:-6px;padding:0 18px;border:0;border-radius:0 0 9px 9px;background:transparent;color:var(--text-muted);font:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;touch-action:none}.page-tab+.page-tab:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:1px;background:var(--line-strong)}.page-tab:hover{background:var(--hover)}.page-tab:hover:before,.page-tab.active:before,.page-tab.active+.page-tab:before,.page-tab:hover+.page-tab:before{background:transparent}.page-tab.active{z-index:2;background:#fff;color:var(--text);box-shadow:0 1px 3px #4a140f2e;margin-top:-1px;height:27px}.page-tab.dragging{z-index:3;opacity:.92;box-shadow:0 4px 12px #4a140f38;transition:none}.page-tab-color{position:absolute;left:10px;right:10px;bottom:2px;height:3px;border-radius:2px;background:var(--tab-color)}input.page-rename{width:160px;padding:0 10px;border:1px solid var(--accent);outline:none;color:var(--text);cursor:text}.page-add{flex:none;display:grid;place-items:center;width:24px;height:22px;margin:2px 0 0 10px;padding:0;border:0;border-radius:4px;background:transparent}.page-add:hover,.pages-arrow:hover,.pages-goto:hover{background:var(--hover)}.pages-arrow{flex:none;width:20px;margin:3px 2px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--text-muted);font-size:16px;line-height:1}.pages-goto{flex:none;margin:3px 0 3px auto;padding:0 8px;border:0;border-radius:4px;background:transparent;color:var(--text-muted);font:inherit;font-variant-numeric:tabular-nums;white-space:nowrap}.pages-sync{flex:none;display:flex;align-items:center;gap:4px;margin-left:8px;color:var(--text-muted);white-space:nowrap}.pages-list{position:absolute;right:80px;bottom:32px;width:300px;padding:6px}.pages-search{width:100%;height:26px;margin-bottom:4px;padding:0 8px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;font:inherit}.pages-list-rows{max-height:320px;overflow-y:auto}.pages-list-n{width:26px;color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:right}.pages-list-name{flex:1;overflow:hidden;text-overflow:ellipsis}.pages-list-size{color:var(--text-muted);font-size:11px}.rb-menu-row kbd{margin-left:auto;padding-left:16px;color:var(--text-muted);font:inherit}.rb-more{margin-left:auto;color:var(--text-muted)}.rb-symbol{flex:none;width:16px;height:16px;color:var(--text)}.rb-symbol svg{display:block;width:100%;height:100%}.ask label{white-space:pre-line;line-height:1.4}.minimap{position:absolute;right:16px;bottom:16px;padding:0;border:1px solid var(--line-strong);border-radius:4px;background:#fff;box-shadow:0 4px 14px #4a140f24;line-height:0}.minimap canvas{display:block;cursor:pointer;border-radius:4px}.minimap-close{position:absolute;top:3px;right:3px;display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:3px;background:#ffffffd9}.code-dialog{width:min(680px,100%)}.code-dialog h2{margin:0;font-size:15px}.code-body{display:flex;gap:16px;flex-wrap:wrap}.code-fields{flex:1 1 280px;display:flex;flex-direction:column;gap:8px}.code-fields label{display:flex;flex-direction:column;gap:3px;color:var(--text-muted)}.code-fields select,.code-fields input:not([type]),.code-fields input[inputmode],.code-fields textarea{height:28px;padding:0 8px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;font:inherit;color:var(--text)}.code-fields textarea{height:auto;padding:6px 8px;resize:vertical}.code-fields fieldset{border:1px solid var(--line);border-radius:5px;padding:6px 8px}.code-row{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.code-row button{height:26px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);font:inherit}.code-side{flex:0 1 260px;display:flex;flex-direction:column;gap:6px}.code-preview{width:100%;max-width:260px;aspect-ratio:1;border-radius:6px}.code-counter,.code-dims{margin:0;color:var(--text-muted);font-size:11px}.code-advice{margin:0;white-space:pre-line;line-height:1.4}.code-advice.alarm{color:#b91c1c}.code-fields label.side-check{flex-direction:row;align-items:center}.rb-toggle{position:relative}.rb-toggle.on,.rb-armed{background:#ffffff3d;box-shadow:inset 0 0 0 1px #ffffff80}.rb-toggle:not(.on) .icon{opacity:.55}.rb-toggle:not(.on):after{content:"";position:absolute;left:7px;right:7px;top:50%;height:1.5px;background:#fffc;transform:rotate(-40deg)}.side-cell{position:relative;transition:transform .3s cubic-bezier(.25,.1,.25,1),opacity .12s}.side-cell:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:6px;background:#fff;box-shadow:0 8px 18px #2b211e38;opacity:0;transition:opacity .3s cubic-bezier(.25,.1,.25,1)}@media(hover:hover)and (pointer:fine){.side-cell:hover{z-index:1;transform:scale(1.1);transition-duration:.22s,.12s;background:transparent}.side-cell:hover:after{opacity:1;transition-duration:.22s}.side-cell.lifted{z-index:2;transform:scale(1.18);transition-duration:.18s,.12s}.side-cell.lifted:after{opacity:1}}@media(hover:none),(pointer:coarse){.side-cell{transition:none;-webkit-touch-callout:none}.side-cell:active{opacity:.7}}.side-cell.held{opacity:.35}.pictogram-ghost{position:fixed;left:0;top:0;z-index:100;opacity:.8;pointer-events:none;will-change:transform;filter:drop-shadow(0 6px 10px rgba(43,33,30,.25))}.size-sample{position:absolute;left:calc(100% + 10px);top:120px;z-index:20;display:grid;place-items:center;width:max(56px,calc(var(--side) + 16px));height:max(56px,calc(var(--side) + 16px));border-radius:8px;background:#fff;box-shadow:0 8px 24px #2b211e2e;pointer-events:none}.size-sample img{width:var(--side);height:var(--side)}.side-panel{position:relative}.context-root{position:fixed;inset:0;z-index:70;pointer-events:none}.context-menu{position:fixed;min-width:230px;max-width:360px;padding:4px;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:6px;box-shadow:0 8px 24px #4a140f29;font-family:var(--ui-font);font-size:12px;color:var(--text);outline:none;pointer-events:auto}.context-row{position:relative;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:6px;height:28px;padding:0 10px 0 6px;border-radius:4px;white-space:nowrap;cursor:default}.context-row.active:not(.disabled),.context-row[aria-expanded=true]{background:var(--hover)}.context-row.disabled{color:var(--text-disabled)}.context-check{display:grid;place-items:center;color:var(--accent);font-weight:600}.context-label{overflow:hidden;text-overflow:ellipsis}.context-keys{padding-left:18px;color:var(--text-muted)}.context-row.disabled .context-keys{color:var(--text-disabled)}.context-sep{height:1px;margin:4px 8px;background:var(--line-strong)}.float-bar{position:absolute;left:0;top:0;z-index:5;display:flex;flex-direction:column;gap:3px;padding:3px;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:6px;box-shadow:0 4px 14px #4a140f29;will-change:transform;user-select:none}.float-row{display:flex;align-items:center;justify-content:center;gap:2px}.float-row.second{justify-content:stretch}.float-btn{position:relative;display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--text)}.float-btn:hover:not(:disabled),.float-menu-btn:hover{background:var(--hover)}.float-btn.on{background:var(--checked);box-shadow:inset 0 0 0 1px var(--checked-line)}.float-sep{width:1px;height:20px;margin:0 2px;background:var(--line-strong)}.float-menu-btn{display:flex;align-items:center;justify-content:space-between;gap:4px;height:28px;padding:0 6px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--text);font:inherit;white-space:nowrap;overflow:hidden}.float-menu-btn.wide{flex:1 1 30%;min-width:80px}.float-menu-btn.wide:first-child{flex:1 1 70%}.float-menu-btn span:first-child{overflow:hidden;text-overflow:ellipsis}.float-caret{color:var(--text-muted);font-size:10px}.float-letter{font-weight:700;font-size:14px;line-height:1;margin-top:-4px}.float-bar-color{position:absolute;left:6px;right:6px;bottom:4px;height:4px;border-radius:1px;box-shadow:inset 0 0 0 1px #00000026}.float-bar-color.none{background:linear-gradient(to top right,transparent calc(50% - 1px),#d52b1e calc(50% - 1px),#d52b1e calc(50% + 1px),transparent calc(50% + 1px)),#fff}.app-body{position:relative}.plan,.plan canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}@media(max-width:760px){.rb-band{padding-top:env(safe-area-inset-top,0px);height:calc(34px + env(safe-area-inset-top,0px))}.rb-tabs{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.rb-tabs::-webkit-scrollbar{display:none}.rb-right>.rb-band-btn:nth-child(-n+5),.rb-right>.rb-band-sep:first-of-type{display:none}.rb-zoom-value{width:44px}.rb-body{height:86px;-webkit-overflow-scrolling:touch}.rail{width:44px}.rail-btn{width:44px;height:42px}.side-panel{height:100%;width:min(calc(100vw - 44px),264px);box-shadow:6px 0 22px #4a140f33}.dock-right .side-panel{box-shadow:-6px 0 22px #4a140f33}.size-sample{left:auto;right:10px;top:150px;max-width:min(70vw,480px);max-height:min(60vh,480px);overflow:hidden}.pages-bar{padding-left:48px;padding-bottom:env(safe-area-inset-bottom,0px);height:calc(36px + env(safe-area-inset-bottom,0px))}.pages-sync span{display:none}}@media(pointer:coarse){.rb-band-btn{width:36px;height:32px}.float-btn{width:38px;height:38px}.float-menu-btn{height:38px}.page-tab{height:32px}.rb-menu-row,.context-row{height:40px}}.home{position:absolute;inset:0;z-index:30;display:grid;place-items:center;overflow-y:auto;padding:16px;background:var(--surface)}.home-card{width:min(600px,100%);padding:28px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 2px 6px #2b211e0d,0 6px 18px #2b211e0a}.home-brand{color:var(--accent);font-size:22px;font-weight:700;line-height:1.1}.home-subtitle{margin:4px 0 18px;color:var(--text-muted);font-size:12px}.home-resume{display:flex;align-items:center;width:100%;min-height:60px;margin-bottom:12px;padding:0 16px;border:0;border-radius:6px;background:var(--accent);color:#fff;font:inherit;text-align:left;cursor:pointer}.home-resume:hover{background:#8c1b15}.home-resume-text{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.home-resume-text strong{font-size:13px}.home-resume-text span{overflow:hidden;color:#ffffffe6;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.home-chevron{font-size:22px;line-height:1}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.home-button{height:34px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface-raised);color:var(--text);font:inherit;font-size:12px;cursor:pointer}.home-button:hover{border-color:var(--accent);background:var(--hover)}.home-heading{margin:22px 0 6px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.home-list{margin:0 -8px;padding:0;list-style:none}.home-none{padding:12px 8px;color:var(--text-muted)}.home-row{display:flex;align-items:center;gap:12px;width:100%;height:56px;padding:0 10px 0 12px;border:0;border-bottom:1px solid var(--line);border-radius:4px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;-webkit-touch-callout:none}@media(hover:hover)and (pointer:fine){.home-row:hover{background:#f1f0ea}}.home-thumb{display:grid;flex:none;place-items:center;width:60px;height:42px}.home-thumb img{max-width:60px;max-height:42px;border:1px solid var(--line-strong);background:#fff}.home-row.pinned .home-thumb img{border:1.5px solid var(--accent)}.home-page-icon{width:14px;height:18px;border:1.2px solid var(--text-muted);border-radius:1px 5px 1px 1px}.home-row.pinned .home-page-icon{border-color:var(--accent)}.home-row-text{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.home-row-text strong{overflow:hidden;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.home-row.missing strong{color:var(--text-muted)}.home-missing{color:var(--accent);font-size:10.5px}.home-date{flex:none;color:var(--text-muted);font-size:10.5px}.home-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.home-reopen{display:flex;align-items:center;gap:8px;font-size:12px}.home-reopen input{accent-color:var(--accent)}.home-link{border:0;background:none;color:var(--text-muted);font:inherit;text-decoration:underline;cursor:pointer}@media(max-width:760px){.home-card{padding:20px 16px}.home-date{display:none}}.ask-buttons .choice{min-width:72px}.font-picker{position:fixed;left:0;top:0;z-index:70;display:flex;flex-direction:column;width:min(320px,calc(100vw - 16px));height:min(440px,calc(100vh - 16px));border:1px solid var(--line-strong);border-radius:6px;background:#fff;box-shadow:0 10px 28px #4a140f2e}.font-search{height:28px;margin:8px;padding:0 8px;border:1px solid var(--line-strong);border-radius:4px;font:inherit}.font-list{flex:1;min-height:0;overflow-y:auto;padding-bottom:4px}.font-header{padding:8px 10px 4px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.font-row{display:flex;align-items:center;width:100%;height:30px;padding:0 10px;overflow:hidden;border:0;background:transparent;color:var(--text);text-align:left;white-space:nowrap;cursor:default}.font-row.hot{background:var(--hover)}.font-row.current{box-shadow:inset 3px 0 0 var(--accent)}.font-sample path{fill:var(--text)}.font-sample.soft path{fill:var(--text-muted)}.font-fallback{display:flex;align-items:center;gap:10px;font-size:12.5px}.font-foot{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-top:1px solid var(--line)}.font-more{height:26px;padding:0 10px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface-raised);font:inherit;cursor:pointer}.font-more:hover{border-color:var(--accent)}.rb-icon-box{position:relative;display:inline-flex;flex:none}.rb-swatch{position:absolute;left:0;right:0;bottom:-4px;height:4px;border:1px solid var(--line-strong)}.rb-swatch.none{background:linear-gradient(to top right,#fff calc(50% - 1px),#d52b1e calc(50% - 1px) calc(50% + 1px),#fff calc(50% + 1px))}.rb-field{gap:4px;cursor:default}.rb-field-box{width:40px;height:20px;padding:0 4px;border:1px solid var(--line-strong);border-radius:3px;background:#fff;color:var(--text);font:inherit;text-align:right}.rb-field-box:focus{border-color:var(--accent);outline:none}.rb-field-unit{color:var(--text-muted);font-size:11px}.rb-field.off .rb-field-box{color:var(--text-disabled)}.replace-bar{display:flex;flex:none;flex-direction:column;gap:4px;padding:8px;border-top:1px solid var(--line-strong);background:var(--surface)}.replace-bar strong{overflow:hidden;font-size:11.5px;white-space:nowrap;text-overflow:ellipsis}.replace-bar span{color:var(--text-muted);font-size:10px}.replace-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.replace-buttons button{height:28px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface-raised);font:inherit;cursor:pointer}.side-grid.choosing .side-cell{cursor:pointer}.cell-editor{position:absolute;z-index:6;padding:2px 4px;border:1.5px solid var(--accent);border-radius:0;background:#fff;color:#000;font-family:var(--ui-font);line-height:1.2;resize:none;outline:none}.form-dialog{width:min(440px,100%)}.form-title{font-size:13px}.form-row{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:8px}.form-row input{min-width:0}.form-note{color:var(--text-muted);font-size:11px;line-height:1.4}@media(max-width:520px){.form-row{grid-template-columns:1fr;gap:2px}}.layer-rename{flex:1;min-width:0;height:22px;padding:0 4px;border:1px solid var(--accent);border-radius:3px;font:inherit}.side-section{padding:10px 6px 4px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.layer-background select{width:100%;height:26px;font:inherit}.layer-hint{margin:12px 6px;color:var(--text-muted);font-size:10.5px;line-height:1.4}.notes{display:flex;flex-direction:column;gap:6px;padding:8px 6px}.notes-name{font-weight:700}.notes-label{display:flex;justify-content:space-between;margin-top:6px;color:var(--text-muted);font-size:11px}.notes-note{height:120px;padding:4px 6px;border:1px solid var(--line-strong);border-radius:0;font:inherit;resize:vertical}.notes-link{display:flex;gap:4px}.notes-link input{flex:1;min-width:0;height:26px;padding:0 6px;border:1px solid var(--line-strong);font:inherit}.notes-link a{display:grid;place-items:center;width:26px;border:1px solid var(--line-strong);color:var(--accent);text-decoration:none}.notes-why{margin:0;color:var(--accent);font-size:11px}.notes-help{margin:4px 0 0;color:var(--text-muted);font-size:10.5px;line-height:1.4}.side-empty{margin:12px 8px;color:var(--text-muted)}.prop-layer{display:grid;grid-template-columns:60px 1fr;align-items:center;gap:6px;margin:6px 6px 2px}.prop-layer select,.prop-font{min-width:0;height:26px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;font:inherit;text-align:left}.prop-arrange,.prop-buttons{display:flex;flex-wrap:wrap;gap:4px;margin:6px}.prop-btn{display:grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border:1px solid var(--line-strong);border-radius:5px;background:#fff;color:var(--text);font:inherit}.prop-btn.wide{flex:1}.prop-btn.on{border-color:var(--accent);background:var(--checked)}.prop-btn:disabled{color:var(--text-disabled);background:var(--surface)}.glyph-b{font-weight:700}.glyph-i{font-style:italic}.glyph-u{text-decoration:underline}.prop-gap{width:8px}.prop-swatch{width:24px;height:24px;border:1px solid var(--line-strong);border-radius:5px}.prop-swatch.on{outline:2px solid var(--accent);outline-offset:1px}.prop-section{margin:12px 6px 4px;font-weight:700}.prop-note{margin:0 6px 6px;overflow:hidden;color:var(--text-muted);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.settings .side-list{padding:0 6px 12px}.settings-section .side-section{padding:10px 2px 4px}.settings-rows{display:flex;flex-direction:column;gap:4px}.settings-segments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.settings-row{display:flex;align-items:center;gap:6px;min-height:22px;padding:2px 6px;border:1px solid var(--line);border-radius:2px;background:var(--surface-raised);color:var(--text);font:inherit;font-size:11px;text-align:left}.settings-row>span{flex:1;min-width:0}.settings-row:hover{background:var(--hover)}.settings-row.on{border-color:var(--accent)}.settings-tick{flex:none;color:var(--accent)}.settings-row.segment{justify-content:center;padding:2px 3px;border-color:var(--line-strong);font-size:10.5px;text-align:center}.settings-row.segment>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-row.segment.on{border-color:var(--accent);background:var(--accent);color:#fff}.settings-dialog{width:min(560px,100%);max-height:calc(100dvh - 32px)}.settings-dialog select{height:28px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;font:inherit}.dialog-table{flex:1 1 auto;min-height:120px;max-height:300px;overflow:auto;border:1px solid var(--line-strong);border-radius:4px;background:#fff}.dialog-table-head,.dialog-table-row{display:grid;align-items:center;gap:8px;padding:3px 8px}.dialog-table-head{position:sticky;top:0;border-bottom:1px solid var(--line);background:var(--surface);color:var(--text-muted);font-size:11px}.dialog-table-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialog-table-row:hover{background:var(--hover)}.dialog-table-row.selected{background:var(--checked)}.fonts-grid{grid-template-columns:16px minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr)}.bars-grid{grid-template-columns:16px minmax(0,1fr)}.shortcuts-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}.dialog-file{color:var(--text-muted)}.dialog-check{display:flex;align-items:center;gap:6px}.dialog-tools{flex-wrap:wrap;justify-content:flex-start}.ask-buttons button:disabled{color:var(--text-disabled)}.shortcuts-dialog{width:min(720px,100%)}.shortcuts-filters{display:flex;gap:8px}.shortcuts-filters .form-row{flex:1}.shortcuts-state{min-height:2.9em;margin:0;color:var(--text-muted);font-size:11px;line-height:1.45}@media(max-width:520px){.shortcuts-filters{flex-direction:column}.shortcuts-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.shortcuts-grid>span:nth-child(3){display:none}}.composer{width:min(940px,100%);height:min(640px,calc(100dvh - 32px))}.composer-body{flex:1;min-height:0;display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px}.composer-library{display:flex;flex-direction:column;gap:6px;min-height:0}.composer-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-strong)}.composer-tabs button{flex:1;height:28px;padding:0 4px;border:1px solid transparent;border-bottom:0;border-radius:4px 4px 0 0;background:transparent;font:inherit;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.composer-tabs button.on{border-color:var(--line-strong);background:#fff;font-weight:700}.composer-list{flex:1;min-height:120px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));align-content:start;gap:4px;padding:4px;border:1px solid var(--line-strong);border-radius:4px;background:#fff}.composer-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;border:1px solid transparent;border-radius:4px;background:transparent;font:inherit;font-size:10px;touch-action:pan-y}.composer-item:hover{background:var(--hover)}.composer-item img{width:48px;height:48px;object-fit:contain;pointer-events:none}.composer-item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-draft{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.composer-layout{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}.composer-layout label{display:flex;align-items:center;gap:6px}.composer-cells{flex:1;min-height:120px;display:flex;align-items:center;justify-content:center;container-type:size}.composer-cells.column{flex-direction:column}.composer-cell{--side: min(calc(100cqw / var(--count)), 100cqh);flex:none;display:grid;place-items:center;width:var(--side);height:var(--side);padding:6px;border:1px dotted #b8b2ac;background:#f7f7f4;color:#6e5c55;font:inherit;font-size:11px;overflow:hidden}.composer-cells.column .composer-cell{--side: min(100cqw, calc(100cqh / var(--count)))}.composer-cell img{width:100%;height:100%;object-fit:contain;pointer-events:none}.composer-cell.chosen{border:3px solid #b10142}.composer-cell.target{border:3px solid #c47a95}.composer-tools{display:flex;flex-wrap:wrap;gap:6px}.composer-tools button{height:28px;padding:0 10px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);font:inherit}.composer-tools button:disabled{color:var(--text-disabled)}.composer-name{grid-template-columns:48px 1fr}.composer-hint{min-height:2.9em;margin:0;color:var(--text-muted);font-size:11px;line-height:1.45}.composer-hint.problem{color:#b91c1c}.composer-buttons .composer-close{margin-right:auto}.composer-ask{margin-right:auto;align-self:center}@media(max-width:720px){.composer{height:calc(100dvh - 32px);overflow:auto}.composer-body{grid-template-columns:1fr}.composer-list{max-height:30dvh}.composer-cells{min-height:160px}}.app-body{overflow:hidden}.rail{position:relative;z-index:25}.dock{flex:none;display:flex;min-height:0;position:relative;z-index:4}.dock-right .side-panel{border-right:0;border-left:1px solid var(--line-strong)}.dock.slide-out{position:absolute;top:0;bottom:0;z-index:21}.dock-right.slide-out{right:0}.dock.slide-in,.dock.slide-out{will-change:transform}.dock-left.slide-in{animation:dock-in-left .18s cubic-bezier(.2,0,0,1)}.dock-left.slide-out{animation:dock-out-left .18s cubic-bezier(.4,0,1,1) forwards}.dock-right.slide-in{animation:dock-in-right .18s cubic-bezier(.2,0,0,1)}.dock-right.slide-out{animation:dock-out-right .18s cubic-bezier(.4,0,1,1) forwards}@keyframes dock-in-left{0%{transform:translate(-100%)}}@keyframes dock-out-left{to{transform:translate(-100%)}}@keyframes dock-in-right{0%{transform:translate(100%)}}@keyframes dock-out-right{to{transform:translate(100%)}}@media(max-width:760px){.dock,.dock.slide-out{position:absolute;top:0;bottom:0;left:44px;z-index:20}.dock-right,.dock-right.slide-out{left:auto!important;right:0}}@media(prefers-reduced-motion:reduce){.dock.slide-in,.dock.slide-out{animation:none}}.calib-bar{position:fixed;left:0;top:0;z-index:30;display:flex;flex-direction:column;gap:8px;width:min(530px,calc(100vw - 16px));padding:10px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-raised);box-shadow:0 12px 32px #4a140f38;font-size:12px}.calib-title{font-size:12.5px}.calib-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.calib-row>span{min-width:0}.calib-pick{width:40px;height:24px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);font:inherit;font-weight:700}.calib-pick.on{border-color:#d52b1e;background:#d52b1e;color:#fff}.calib-distance{width:120px;height:26px;padding:0 6px;border:1px solid var(--line-strong);border-radius:4px;font:inherit;background:#fff}.calib-row select{height:26px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;font:inherit}.calib-result{min-height:2.9em;margin:0;white-space:pre-line;line-height:1.4}.calib-result.alarm{color:#b3261e}.calib-buttons{display:flex;flex-wrap:wrap;gap:6px}.calib-buttons button{height:28px;padding:0 10px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);font:inherit}.calib-buttons button.primary{margin-left:auto;border-color:var(--accent);background:var(--accent);color:#fff}.calib-buttons button:disabled{opacity:.5}.calib-warning{margin:0;color:#b45309;font-size:11px;line-height:1.4}.measure-bar{width:min(560px,calc(100vw - 16px))}.measure-modes{display:inline-flex;gap:2px}.calib-pick.wide{width:auto;padding:0 10px;font-weight:400}.measure-finish{margin-left:auto;height:26px;padding:0 10px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);font:inherit}.calib-buttons .measure-close{margin-left:auto}.form-row select{min-width:0;height:30px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;font:inherit}.map-dialog{width:min(780px,100%);height:min(720px,calc(100dvh - 32px));position:relative}.map-search{position:relative}.map-search input{width:100%;box-sizing:border-box}.map-hits{position:absolute;left:0;right:0;top:100%;z-index:5;display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:4px;background:#fff;box-shadow:0 8px 20px #4a140f2e}.map-hits button{padding:6px 8px;border:0;background:transparent;font:inherit;text-align:left}.map-hits button:hover,.map-hits button:focus{background:var(--hover);outline:none}.map-message{min-height:1.3em;margin:-4px 0 0;color:var(--text-muted);font-size:11px}.map-message.error{color:#b3261e}.map-area{position:relative;flex:1;min-height:160px}.map-canvas{position:absolute;border:1px solid var(--line-strong);box-sizing:border-box;cursor:grab;touch-action:none;outline:none}.map-canvas:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}.map-zoom{position:absolute;left:calc(var(--map-x, 0px) + 8px);top:calc(var(--map-y, 0px) + 8px);display:flex;flex-direction:column;gap:2px}.map-zoom button{width:26px;height:26px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;font:inherit;font-size:16px;line-height:1}.map-choices{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:12px}.map-choices>span{min-width:70px;color:var(--text-muted)}.map-choices label{display:inline-flex;align-items:center;gap:4px}.map-buttons{align-items:center}.map-hint{flex:1;min-width:0;overflow:hidden;color:var(--text-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.map-failure{position:absolute;left:50%;top:50%;z-index:6;width:min(360px,90%);padding:14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-raised);box-shadow:0 16px 40px #4a140f40;transform:translate(-50%,-50%)}.map-failure p{margin:0 0 10px;white-space:pre-line}@media(max-width:520px){.map-hint{display:none}}@font-face{font-family:Expose Black;src:url(/fonts/expose/Expose-Black.otf) format("opentype");font-display:block}@font-face{font-family:Expose Regular;src:url(/fonts/expose/Expose-Regular.otf) format("opentype");font-display:block}.launcher{position:fixed;inset:0;z-index:55;display:grid;place-items:center;padding:16px;background:var(--surface);animation:launcher-in var(--fade-in) ease-out}.launcher.closing{opacity:0;transition:opacity var(--fade-out) ease-in;pointer-events:none}.launcher.still,.launcher.still.closing{animation:none;transition:none}@keyframes launcher-in{0%{opacity:0}}.launcher-card{width:min(640px,100%);height:auto;font-family:var(--ui-font);filter:drop-shadow(0 9px 18px rgba(0,0,0,.28));user-select:none}.launcher-button{cursor:default;outline:none}.launcher-button:focus-visible rect:last-of-type{stroke:#ffd36a}.perf-box{position:fixed;right:8px;bottom:60px;z-index:90;padding:6px 8px;border-radius:6px;background:#141414c7;color:#fff;font:11px/1.4 ui-monospace,monospace;white-space:pre;pointer-events:none}
