@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,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;touch-action:none}.plan canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.plan canvas.plan-page,.plan canvas.plan-rulers{pointer-events:none}.plan canvas.plan-rulers{mix-blend-mode:difference}.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;gap:16px;font-variant-numeric:tabular-nums}@media(max-width:640px){.status-right>span:nth-child(-n+2){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,1fr);gap:2px;align-content:start;overflow-y:auto;padding-bottom:6px;scrollbar-width:thin}.side-cell{aspect-ratio:1;padding:3px;border:0;border-radius:4px;background:transparent;cursor:grab}.side-cell img{display:block;width:100%;height:100%;object-fit:contain}@media(max-width:720px){.side-panel{width:168px}.side-grid{grid-template-columns:repeat(3,1fr)}}.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);font:inherit;font-size:11px}.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}.app-body{position:relative}.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)}.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}.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}
