@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(./barlow-latin-400-normal-fsAxiSwU.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(./barlow-latin-500-normal-C1h8hMer.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(./barlow-latin-600-normal-CNwfPWQD.woff)format("woff")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-semi-condensed-latin-500-normal-G0uxJNrM.woff2)format("woff2"),url(./barlow-semi-condensed-latin-500-normal-CFOoVYFH.woff)format("woff")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-semi-condensed-latin-600-normal-BkLiAYu4.woff2)format("woff2"),url(./barlow-semi-condensed-latin-600-normal-DyOfdMBA.woff)format("woff")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(./barlow-semi-condensed-latin-700-normal-BpqDG8I9.woff2)format("woff2"),url(./barlow-semi-condensed-latin-700-normal-BMyZXq_9.woff)format("woff")}:root{--bg:#f1f3f5;--panel:#fff;--border:#d3d8de;--text:#22272e;--muted:#5d6670;--accent:#1f6fd1;--accent-text:#fff;--frame:#2b3138;--viewport:linear-gradient(180deg, #eef0f3 0%, #c5ccd4 100%);--numbers:"Barlow Semi Condensed", "Barlow", system-ui, sans-serif;--error:#b42318;--warn-bg:#fff4e0;--warn-text:#7a4b00;--shell:#c9d1da;--compartment:#fff;--divider:#1f6fd1;color:var(--text);background:var(--bg);font-family:Barlow,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0}.app{grid-template:"toolbar toolbar toolbar""banner banner banner""settings view layout"minmax(0,1fr)/280px minmax(0,1fr) 360px;height:100vh;display:grid}.toolbar{background:var(--frame);grid-area:toolbar;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.toolbar h1{color:#fff;margin:0;font-size:19px;font-weight:600}.toolbar button{color:#e8ecf0;background:#3a414a;border-color:#4a525c}.toolbar button:hover:not(:disabled){border-color:#8fb4e8}.toolbar button.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.actions{flex-wrap:wrap;gap:6px;display:flex}button{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.icon{padding:4px 6px;line-height:0}.banner{grid-area:banner;margin:0;padding:8px 16px}.banner.error{color:var(--error);background:#fdecea}.banner.notice{color:#174a7c;background:#e8f1fb;justify-content:space-between;align-items:center;gap:12px;display:flex}button.dismiss{color:inherit;background:0 0;border:none;padding:0 6px;font-size:18px;line-height:1}.settings,.layout{background:var(--bg);padding:10px;overflow-y:auto}.settings{border-right:1px solid var(--border);grid-area:settings}.layout{border-left:1px solid var(--border);grid-area:layout}.view{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1NjAiIGhlaWdodD0iNDIwIiB2aWV3Qm94PSIwIDAgNTYwIDQyMCI+CiAgPCEtLSBBIGZhaW50LCByZXBlYXRpbmcgdGVjaG5pY2FsLWRyYXdpbmcgcGF0dGVybiBmb3IgdGhlIDNEIHZpZXcncyBiYWNrZ3JvdW5kLiBEcmF3biBmb3IgQ29vbEJveC4gLS0+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjM2Y1NDY4IiBzdHJva2Utb3BhY2l0eT0iMC4xMSIgc3Ryb2tlLXdpZHRoPSIxIj4KICAgIDwhLS0gQSBwbGF0ZSB3aXRoIHR3byBob2xlcywgY2VudGVyIG1hcmtzIGFuZCBhIGRpbWVuc2lvbiBsaW5lLiAtLT4KICAgIDxyZWN0IHg9IjQwIiB5PSI0OCIgd2lkdGg9IjE5MCIgaGVpZ2h0PSIxMTAiIHJ4PSIxMCIvPgogICAgPGNpcmNsZSBjeD0iOTAiIGN5PSIxMDMiIHI9IjIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxODAiIGN5PSIxMDMiIHI9IjIyIi8+CiAgICA8cGF0aCBkPSJNOTAgNzN2NjBNNjAgMTAzaDYwTTE4MCA3M3Y2ME0xNTAgMTAzaDYwIiBzdHJva2UtZGFzaGFycmF5PSI2IDMgMiAzIi8+CiAgICA8cGF0aCBkPSJNNDAgMTgyaDE5ME00MCAxNzZ2MTJNMjMwIDE3NnYxMiIvPgogICAgPHBhdGggZD0iTTQwIDE4Mmw4LTN2NnpNMjMwIDE4MmwtOC0zdjZ6IiBmaWxsPSIjM2Y1NDY4IiBmaWxsLW9wYWNpdHk9IjAuMTEiLz4KCiAgICA8IS0tIEEgaGV4IGJvbHQgaGVhZCBzZWVuIGZyb20gYWJvdmUuIC0tPgogICAgPHBvbHlnb24gcG9pbnRzPSIzODAsNDAgNDEyLDU4IDQxMiw5NCAzODAsMTEyIDM0OCw5NCAzNDgsNTgiLz4KICAgIDxjaXJjbGUgY3g9IjM4MCIgY3k9Ijc2IiByPSIyMiIvPgogICAgPHBhdGggZD0iTTM4MCAzMHY5Mk0zMzggNzZoODQiIHN0cm9rZS1kYXNoYXJyYXk9IjYgMyAyIDMiLz4KCiAgICA8IS0tIEEgc2lkZSB2aWV3IG9mIGEgc3RlcHBlZCBzaGFmdCB3aXRoIGEgbGVhZGVyIHRvIGEgbm90ZS4gLS0+CiAgICA8cGF0aCBkPSJNMzAwIDIzMGg3MHYtMjRoODB2MjRoNjB2NDBoLTYwdjI0aC04MHYtMjRoLTcweiIvPgogICAgPHBhdGggZD0iTTI5MCAyNTBoMjQwIiBzdHJva2UtZGFzaGFycmF5PSIxMCA0IDIgNCIvPgogICAgPHBhdGggZD0iTTQxMCAyMDZsNDAtNDBoNDYiLz4KCiAgICA8IS0tIEEgZ2Vhci1saWtlIHJpbmcuIC0tPgogICAgPGNpcmNsZSBjeD0iMTIwIiBjeT0iMzAwIiByPSI2MiIvPgogICAgPGNpcmNsZSBjeD0iMTIwIiBjeT0iMzAwIiByPSI0MCIvPgogICAgPGNpcmNsZSBjeD0iMTIwIiBjeT0iMzAwIiByPSIxMCIvPgogICAgPHBhdGggZD0iTTEyMCAyMjZ2MTQ4TTQ2IDMwMGgxNDgiIHN0cm9rZS1kYXNoYXJyYXk9IjYgMyAyIDMiLz4KCiAgICA8IS0tIENvbnN0cnVjdGlvbiBsaW5lcyBhbmQgYSByYWRpdXMgY2FsbG91dC4gLS0+CiAgICA8cGF0aCBkPSJNMCAzODBoNTYwTTI1MCAwdjQyMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDYiLz4KICAgIDxwYXRoIGQ9Ik0xNjggMjYybDQ2LTQ2aDYwIi8+CiAgPC9nPgo8L3N2Zz4K) repeat, var(--viewport);grid-area:view;min-height:300px;position:relative}.preview{position:absolute;inset:0}.measure-layer{pointer-events:none;position:absolute;inset:0}.measure-label{font-family:var(--numbers);font-variant-numeric:tabular-nums;white-space:nowrap;background:#fffffff0;border-radius:3px;padding:1px 5px;font-size:14px;font-weight:600;line-height:1.3}.measure-outer,.measure-inner{color:var(--text)}.measure-label.measure-guide{color:#5d6670;background:0 0;padding:0;font-size:13px;font-weight:500}button.pressed{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.overlay{background:var(--panel);border:1px solid var(--border);font-family:var(--numbers);font-variant-numeric:tabular-nums;border-radius:6px;align-items:center;gap:10px;padding:4px 4px 4px 10px;display:flex;position:absolute;top:10px;left:10px}.overlay button{font-family:Barlow,system-ui,sans-serif}.updating{color:var(--muted);padding-right:6px}.size-pill{flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute}.size-pill.bottom{bottom:12px;left:50%;transform:translate(-50%)}.size-pill.left,.size-pill.right{top:50%;transform:translateY(-50%)}.size-pill.left{left:12px}.size-pill.right{right:12px}.pill-row{align-items:center;gap:4px;display:flex}.pill{background:var(--frame);cursor:text;border-radius:24px;padding:6px 16px 7px}.pill .field{flex-direction:column;align-items:center;margin:0;display:flex}.pill .field label{color:#b5bec8;font-size:13px;font-weight:500}.pill .field-input{gap:3px}.pill .field input[type=number]{color:#fff;text-align:right;-moz-appearance:textfield;background:0 0;border:none;width:64px;padding:0;font-size:24px;font-weight:700}.pill .field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pill .field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pill .field input:focus{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.pill .unit{color:#b5bec8;font-size:13px}.pill .field-error{display:none}button.nudge{color:#5d6670;background:0 0;border:none;padding:0 6px;font-size:20px;line-height:1}button.nudge:hover:not(:disabled){color:var(--accent)}.pill-error{text-align:center;background:#fff;border-radius:6px;max-width:220px;margin:2px 0 0;padding:4px 8px}.warnings{background:var(--warn-bg);color:var(--warn-text);border-radius:6px;margin:0;padding:8px 12px 8px 28px;position:absolute;bottom:92px;left:10px;right:10px}section{margin-bottom:10px}h2{margin:0 0 8px;font-size:15px;font-weight:600}h3{color:var(--muted);margin:14px 0 6px;font-size:13px;font-weight:600}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.group{background:var(--panel);border:1px solid var(--border);border-radius:8px}.group-head{text-align:left;background:0 0;border:none;border-radius:8px;align-items:baseline;gap:8px;width:100%;padding:10px 12px;display:flex}.group-head:hover:not(:disabled){background:#f3f6f4}.chevron{width:10px;color:var(--muted)}.group-title{font-size:15px;font-weight:600}.group-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);text-align:right;flex:1;font-size:12px;overflow:hidden}.group-body{padding:2px 12px 12px}.group-body>h3:first-child{margin-top:4px}.feature{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.switch-row{cursor:pointer;justify-content:space-between;align-items:center;font-weight:600;display:flex}.switch{appearance:none;cursor:pointer;background:#c4c9d1;border-radius:10px;width:34px;height:20px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px}.switch:checked{background:var(--accent)}.switch:checked:after{left:16px}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.feature .switch-row+.field,.feature .switch-row+.choices{margin-top:8px}.shape-picker{grid-template-columns:repeat(4,1fr);gap:4px;margin:2px 0 8px;display:grid}.shape-picker button{color:var(--muted);flex-direction:column;align-items:center;gap:2px;padding:5px 2px 4px;font-size:12px;display:flex}.shape-picker svg path{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.shape-picker svg path.edge{stroke-opacity:.35}.shape-picker button.selected{border-color:var(--accent);color:var(--accent);background:#eaf2fd}.shape-picker.three{grid-template-columns:repeat(3,1fr);margin-bottom:10px}.shape-picker.three svg path{stroke-width:1.4px}.layout>.panel>.field-block{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:10px;padding:8px 12px}.field-label{color:var(--muted);margin-bottom:6px;display:block}.switch-row.blocked,.checkbox.blocked{color:var(--muted);cursor:not-allowed}.switch:disabled,.checkbox input:disabled{opacity:.45;cursor:not-allowed}.blocked-reason{margin:4px 0 6px}.field .blocked-reason{grid-column:1/-1}.choices{grid-template-columns:1fr 1fr;gap:2px 8px;margin-bottom:8px;display:grid}.section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.section-head h2{margin:0}.field{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;margin-bottom:6px;display:grid}.field label{color:var(--muted)}.field-input{align-items:center;gap:4px;display:flex}.field input{font:inherit;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 6px}.field input[type=number]{text-align:right;width:76px;font-family:var(--numbers);font-variant-numeric:tabular-nums;font-size:15px;font-weight:500}.field input[type=text]{width:150px}.field .unit{width:18px}.field .field-error{grid-column:1/-1}.field input[aria-invalid=true]{border-color:var(--error)}.unit{color:var(--muted)}.field-error{color:var(--error);margin:4px 0 0;font-size:12px}.hint{color:var(--muted);margin:4px 0 8px;font-size:12px}.toggle{border:none;margin:0 0 8px;padding:0}.toggle legend{color:var(--muted);margin-bottom:4px}.toggle label,.checkbox{align-items:center;gap:6px;margin-bottom:4px;display:flex}.readout{color:var(--muted);grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0 0;display:grid}.readout dd{color:var(--text);font-family:var(--numbers);font-variant-numeric:tabular-nums;margin:0;font-size:15px}.layout>.panel>.field,.divider-table,.editor{background:var(--panel);border:1px solid var(--border);border-radius:8px}.layout>.panel>.field{margin-bottom:10px;padding:8px 12px}.divider-table{padding:10px 12px}.divider-row{grid-template-columns:28px 1fr 1fr 32px;align-items:start;gap:6px;display:grid}.divider-row.heading{color:var(--muted);margin-bottom:2px;font-size:12px}.divider-row .divider-name{font-family:var(--numbers);padding-top:5px;font-weight:600}.divider-row .field{margin-bottom:6px;display:block}.divider-row .field input[type=number]{width:70px}.editor{-webkit-user-select:none;user-select:none;touch-action:none;width:100%;max-height:360px;margin-bottom:10px}.editor .shell{fill:var(--shell)}.editor .compartment{fill:var(--compartment)}.editor .hole,.editor .cell{fill:var(--shell)}.editor .scoop{fill:none;stroke:#e3ebf5}.editor .divider-body{fill:var(--divider)}.editor .divider.low .divider-body{fill:#93b7e6}.editor .divider-hit{fill:#0000}.editor .divider.vertical{cursor:ew-resize}.editor .divider.horizontal{cursor:ns-resize}.editor .divider:hover .divider-body,.editor .divider.active .divider-body{fill:#e07a1f}.editor .pie-divider{stroke:var(--divider)}.editor .notch{fill:#f2b35c;pointer-events:none}.editor text{fill:var(--muted)}.editor .wall-text{fill:var(--accent)}@media (width<=1000px){.app{grid-template:"toolbar""banner""view"360px"layout""settings"/minmax(0,1fr);height:auto}.settings,.layout{border:none;border-top:1px solid var(--border)}}.hint.changes{color:var(--text);background:#eaf2fd;border-radius:6px;margin:2px 0 8px;padding:6px 10px 6px 24px}button.wide{width:100%;margin:2px 0 6px}.containers{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.container-list{gap:2px;margin:0 0 8px;padding:0;list-style:none;display:grid}.container-list button,.container-list input{text-align:left;width:100%;font:inherit;border-radius:6px;padding:5px 8px}.container-list button{background:0 0;border-color:#0000}.container-list button.selected{border-color:var(--accent);color:var(--accent);cursor:text;background:#eaf2fd;font-weight:600}.container-list input{border:1px solid var(--accent);color:var(--text)}.container-actions{flex-wrap:wrap;gap:4px;display:flex}.container-actions button{padding:4px 8px;font-size:13px}.tabs{grid-template-columns:1fr 1fr;gap:4px;margin-bottom:10px;display:grid}.tabs button{font-weight:600}.tabs button.selected{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.tab-alert{color:#e07a1f}.tabs button.selected .tab-alert{color:#ffd9a8}.layout-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.layout-editor{background:var(--panel)}.layout-editor .game-floor{fill:#f4f6f8;stroke:#3d4a5a;stroke-width:.6px;vector-effect:non-scaling-stroke}.layout-editor .placed{cursor:grab}.layout-editor .placed.active{cursor:grabbing}.layout-editor .placed path,.layout-editor .placed rect{fill:#c4d5ea;fill-opacity:.85;stroke:#7f93ab;stroke-width:1px;vector-effect:non-scaling-stroke}.layout-editor .placed.selected path,.layout-editor .placed.selected rect{fill:#6f9fd8;stroke:#0f2440;stroke-width:1.5px}.layout-editor .placed text{fill:var(--text);pointer-events:none;font-weight:600}.layout-editor .placed.selected text{fill:#fff}.layout-actions{align-items:center;gap:10px;margin-bottom:10px;display:flex}.layout-place{color:var(--muted);font-family:var(--numbers);font-variant-numeric:tabular-nums}.fit-result{border-radius:6px;margin:0 0 10px;padding:8px 12px}.fit-result.fits{color:#1e6b34;background:#e6f4ea}.fit-result.problems{background:var(--warn-bg);color:var(--warn-text);padding-left:28px}.layout-editor .on-top{pointer-events:none}
