:root{--bg:#f4f2ee;--panel:#fff;--text:#1d1d1f;--muted:#6e6e73;--line:#e3e0da;--accent:#2f7cf6;--danger:#d93f3f;--field:#f7f6f3;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select,textarea{font:inherit;color:inherit}.app{grid-template-columns:340px 1fr;height:100%;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:0 0 24px;overflow-y:auto}.sidebar header{background:var(--panel);z-index:2;align-items:baseline;gap:8px;padding:16px 16px 8px;display:flex;position:sticky;top:0}.sidebar h1{margin:0;font-size:18px}section{border-bottom:1px solid var(--line);padding:12px 16px}section h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-size:12px}section h3{color:var(--muted);margin:12px 0 6px;font-size:12px;font-weight:500}.field{flex-direction:column;gap:3px;min-width:0;display:flex}.field>span:first-child{color:var(--muted);font-size:11px}.field input:not([type=color]):not([type=checkbox]),.field select,.field textarea,.search{border:1px solid var(--line);background:var(--field);border-radius:6px;width:100%;padding:6px 8px}.field textarea{resize:vertical;line-height:1.4}.field input[type=color]{border:1px solid var(--line);background:var(--field);border-radius:6px;width:100%;height:30px;padding:2px}.input-wrap{display:block;position:relative}.input-wrap em{color:var(--muted);pointer-events:none;font-size:11px;font-style:normal;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.input-wrap input{padding-right:28px!important}input[type=number]::-webkit-inner-spin-button{opacity:.4}.grid2{grid-template-columns:repeat(2,1fr);align-items:end;gap:8px;margin-bottom:8px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);align-items:end;gap:8px;margin-bottom:8px;display:grid}.grid3>.span2{grid-column:span 2}.row{align-items:center;gap:6px;margin-top:6px;display:flex}.row.wrap{flex-wrap:wrap}button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;padding:6px 10px}button:hover:not(:disabled){border-color:#bdb8ae}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{color:var(--danger)}button.link{color:var(--accent);background:0 0;border:0;padding:8px 0 0}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--danger)}code{background:var(--field);border-radius:4px;padding:1px 4px;font-size:11px}.search{margin-bottom:4px}.cards{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.card{border:1px solid var(--line);border-radius:8px;grid-template-columns:48px 1fr auto;align-items:center;gap:10px;padding:6px;display:grid}.card img,.card .ph{object-fit:contain;background:var(--field);width:48px;height:48px;color:var(--muted);border-radius:6px;place-items:center;font-weight:600;display:grid}.card-body{min-width:0}.card-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.card button{width:32px;height:32px;padding:0;font-size:18px}.card a{color:var(--accent)}.custom{border:1px dashed var(--line);border-radius:8px;flex-direction:column;gap:8px;margin-top:10px;padding:10px;display:flex}.items{margin:0;padding:0;list-style:none}.items li{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.items li:hover{background:var(--field)}.items li.active{background:#e3edff}.swatch{border:1px solid #00000026;border-radius:3px;flex:none;width:12px;height:12px}.check{align-items:center;gap:6px;font-size:13px;display:inline-flex}.check select{border:1px solid var(--line);background:#fff;border-radius:6px;padding:3px 6px}.stage{flex-direction:column;min-width:0;min-height:0;display:flex}.stage-room{display:contents}.stage-room[hidden]{display:none}.app.model-open{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.app.model-open>.sidebar{display:none}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;padding:8px 12px;display:flex}.seg{display:inline-flex}.seg button{border-radius:0}.seg button:first-child{border-radius:6px 0 0 6px}.seg button:last-child{border-radius:0 6px 6px 0;margin-left:-1px}.hint{white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-left:auto;overflow:hidden}.canvas-wrap{flex:1;min-height:0;position:relative}.canvas-wrap canvas{touch-action:none}.tag{border:1px solid var(--line);white-space:nowrap;background:#fffffff0;border-radius:8px;padding:6px 8px;font-size:12px;box-shadow:0 2px 8px #00000014}@media (width<=760px){.app{grid-template-rows:55vh 1fr;grid-template-columns:1fr}.sidebar{border-right:0;border-top:1px solid var(--line);order:2}.stage{order:1}.hint{display:none}}.grid4{grid-template-columns:repeat(2,1fr);gap:6px;margin-top:6px;display:grid}.opening{border-bottom:1px dashed var(--line);padding:8px 0}.opening .row{margin-top:0}.opening select{border:1px solid var(--line);background:var(--field);border-radius:6px;flex:1;padding:4px 6px}button.icon{width:28px;height:28px;padding:0}.dim-label{color:var(--accent);border:1px solid var(--accent);white-space:nowrap;cursor:text;-webkit-user-select:none;user-select:none;background:#fffffff2;border-radius:10px;align-items:center;gap:3px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-flex;box-shadow:0 1px 4px #0000001f}.dim-label:hover{background:#e3edff}.dim-label.overlap{color:var(--danger);border-color:var(--danger)}.dim-label.room-gap{color:#343a40;cursor:default;pointer-events:none;border-color:#343a40;gap:5px}.dim-label.room-gap .room-gap-walls{color:var(--muted);font-weight:500}.dim-label.room-gap.shared{color:#2b8a3e;border-color:#2b8a3e}.dim-label.room-gap.room-side{border-style:dashed}.dim-label.editing{background:#fff;padding:2px 5px}.dim-label input{border:1px solid var(--line);text-align:right;width:44px;color:var(--text);background:var(--field);border-radius:4px;padding:1px 4px;font-size:12px}.dim-label span{color:var(--muted);font-weight:400}.warnings{background:#fff7ec}.warnings .items li{align-items:baseline}.warn-dot{background:#f08c00;border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.viewport-loading{text-align:center;place-content:center;gap:8px;font-size:13px;display:grid;position:absolute;inset:0}.shop-lines{margin:0;padding:0;list-style:none}.shop-line{border-bottom:1px dashed var(--line);grid-template-columns:1fr auto;align-items:start;gap:8px;padding:6px 0;display:grid}.shop-name{overflow-wrap:anywhere;min-width:0;line-height:1.3}.shop-name a{color:var(--text);text-decoration:none}.shop-name a:hover{color:var(--accent);text-decoration:underline}.shop-price{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}.shop-total{justify-content:space-between;align-items:baseline;padding:8px 0 2px;font-size:15px;display:flex}.shop-total b{font-variant-numeric:tabular-nums}button.link.inline{font-size:inherit;padding:0}.share-status{flex-direction:column;flex-basis:100%;order:99;gap:4px;display:flex}.share-status.warn{color:#9a5b00}.share-status input{border:1px solid var(--line);background:var(--field);border-radius:6px;width:100%;padding:5px 8px;font-size:11px}.shop-name .src{color:var(--accent);text-decoration:none}.share-banner{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;width:max-content;max-width:min(560px,100vw - 364px);padding:10px 12px;display:flex;position:fixed;top:60px;left:calc(50% + 170px);transform:translate(-50%);box-shadow:0 6px 24px #00000024}.share-banner .share-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.share-banner.error-banner{border-color:#f0c4c4}.share-error{white-space:pre-wrap;max-height:4.5em;overflow:auto}@media (width<=760px){.share-banner{flex-wrap:wrap;max-width:calc(100vw - 16px);top:56px;left:50%}}.shape-seg{margin-bottom:8px;display:flex}.shape-seg button{flex:1}.vertices{border-collapse:collapse;width:100%;margin-bottom:4px}.vertices th{color:var(--muted);text-align:left;padding:0 4px 2px;font-size:11px;font-weight:500}.vertices td{vertical-align:middle;padding:2px 4px 2px 0}.vertices td:first-child{width:18px;font-size:12px}.vertices td.actions{white-space:nowrap;width:62px}.vertices .field>span:first-child:empty{display:none}.shape-edit{margin:8px 0 2px}.wall-tag{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#ffffffeb;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.advisor{margin-top:6px}.advisor-options{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.advisor-options button{text-align:left;grid-template-columns:1fr 48px auto;align-items:center;gap:8px;width:100%;font-size:12px;line-height:1.3;display:grid}.advisor-label{overflow-wrap:anywhere}.advisor-score{background:var(--field);border-radius:3px;height:6px;overflow:hidden}.advisor-score span{background:var(--accent);height:100%;display:block}.lighting .hour{color:var(--text);font-variant-numeric:tabular-nums}.lighting input[type=range],.lamp-controls input[type=range]{width:100%;accent-color:var(--accent);margin:2px 0 6px}.lighting .presets{width:100%;margin:2px 0 6px}.lighting .presets button{flex:1;padding:5px 4px;font-size:12px}.lighting .sun-info{margin-bottom:8px}.lighting .grid2{grid-template-columns:auto 1fr;align-items:end;gap:12px;margin-bottom:8px;display:grid}.lighting .grid2 select{border:1px solid var(--line);background:var(--field);border-radius:6px;padding:5px 6px}.lamp-controls{background:#fbfdff;border:1px solid #d6e3fb;border-radius:8px;margin:4px 0 8px;padding:8px}.lamp-controls .row{justify-content:space-between;margin:0 0 6px}.lamp-controls .row select{border:1px solid var(--line);background:var(--field);border-radius:6px;padding:3px 6px;font-size:12px}.lamp-controls .grid3{margin-bottom:4px}.lamp-controls .temps{grid-column:span 2;gap:4px;display:flex}.lamp-controls .cable-slider{grid-column:span 2}.lamp-controls .temp{color:#5a4a35;flex:1;padding:6px 0;font-size:11px}.walk-hud{color:#fff;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:5;background:#14161c9e;border-radius:8px;max-width:calc(100% - 24px);padding:7px 12px;font-size:12px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.sidebar{flex-direction:column;display:flex;overflow-x:hidden}.sidebar>.room-section{flex:none}.sidebar:has(>.step-footer){padding-bottom:0}.sidebar header{border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:10px;padding-bottom:12px}.sidebar .brand{align-items:baseline;gap:8px;display:flex}.stepper{gap:3px;display:flex}.stepper button{white-space:nowrap;min-width:0;color:var(--muted);background:var(--field);flex:auto;justify-content:center;align-items:center;gap:4px;padding:6px 5px;font-size:11.5px;font-weight:500;display:flex}.stepper button .num{background:var(--line);width:16px;height:16px;color:var(--text);border-radius:50%;flex:none;place-items:center;font-size:10.5px;font-weight:600;display:inline-grid}.stepper button.on{border-color:var(--accent);color:var(--text);background:#e3edff}.stepper button.on .num{background:var(--accent);color:#fff}.step-intro{border-bottom:1px solid var(--line);background:#f7f9fd;padding:10px 16px;font-size:12px;line-height:1.45}.step-footer{background:var(--panel);border-top:1px solid var(--line);z-index:2;margin-top:auto;padding:12px 16px;position:sticky;bottom:0}.step-footer button{width:100%}button.big{padding:9px 12px;font-weight:600}.step-actions{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px;display:grid}.room-summary{background:var(--field);border-bottom:1px solid var(--line);flex-direction:column;gap:3px;padding:8px 16px;font-size:12.5px;line-height:1.35;display:flex}.room-summary-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.room-summary button{align-self:flex-start}.room-summary .row{gap:6px}.hint-box{margin:0 0 6px;line-height:1.4}section.rollup{padding:0}.rollup-head{text-align:left;text-transform:uppercase;letter-spacing:.06em;width:100%;color:var(--muted);background:0 0;border:0;border-radius:0;align-items:center;gap:8px;padding:11px 16px;font-size:12px;font-weight:600;display:flex}.rollup-head:hover:not(:disabled){background:var(--field)}.rollup-head .chev{font-size:10px;transition:transform .15s;display:inline-block}.rollup.open .rollup-head .chev{transform:rotate(90deg)}.rollup-title{flex:none}.rollup .badge{text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:0;max-width:55%;color:var(--text);background:var(--field);border:1px solid var(--line);border-radius:10px;margin-left:auto;padding:1px 8px;font-size:11px;font-weight:500;overflow:hidden}.rollup-body{padding:0 16px 14px}.rollup-body section{background:0 0;border:0;padding:0}.rollup-body section>h2{display:none}.rollup.info{background:#f1f6ff}.rollup.info .rollup-head:hover{background:#e6efff}.rollup.warn{background:#fff7ec}.rollup.warn .badge{background:#ffe6c2;border-color:#f5c88a}.inspector{background:0 0}.opening.active{background:#f1f6ff;border-bottom-color:#0000;border-radius:8px;margin:0 -8px;padding:8px}.opening-name{text-align:left;background:0 0;border:0;flex:1;align-items:baseline;gap:6px;padding:4px 0;display:flex}.opening select{flex:auto;min-width:0}.opening select.opening-wall{width:100%;margin-top:4px;display:block}.opening-note{margin:4px 0 0}.opening-type{margin-top:8px}.passage-fields{flex-direction:column;align-items:flex-start;gap:6px;margin-top:8px;display:flex}.passage-fields .chips{padding:0}.items.chosen li{gap:6px}.item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.item-actions{gap:2px;display:none}.items.chosen li:hover .item-actions,.items.chosen li.active .item-actions,.items.chosen li:focus-within .item-actions{display:inline-flex}.item-actions button.icon{width:24px;height:24px;font-size:13px}button.icon.item-eye{width:24px;height:24px;color:var(--muted);visibility:hidden;background:0 0;border-color:#0000;flex:none;place-items:center;display:grid}button.icon.item-eye:hover{color:var(--text);border-color:var(--line)}.items.chosen li:hover .item-eye,.items.chosen li.active .item-eye,.items.chosen li:focus-within .item-eye,.items.chosen li.hidden-item .item-eye{visibility:visible}.items.chosen li.hidden-item .item-name,.items.chosen li.hidden-item .swatch{opacity:.45}.hidden-bar{background:var(--field);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;line-height:1.3;display:flex}.hidden-bar button{white-space:nowrap;flex:none}.hidden-note{margin:0 0 8px}button.with-icon{align-items:center;gap:5px;display:inline-flex}.confirm{align-items:center;gap:6px;font-size:12px;display:inline-flex}.step-banner{z-index:4;border:1px solid var(--line);pointer-events:none;background:#ffffffeb;border-radius:8px;max-width:calc(100% - 24px);padding:6px 11px;font-size:12px;position:absolute;top:10px;left:12px;box-shadow:0 2px 10px #00000014}.step-banner.room{border-color:#c8dafc}.modal-backdrop{z-index:50;background:#14161c61;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border-radius:12px;outline:none;flex-direction:column;width:min(1080px,100%);max-height:calc(100vh - 48px);display:flex;position:relative;box-shadow:0 20px 60px #00000040}.modal-medium{width:min(760px,100%)}.modal-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 14px 12px 18px;display:flex}.modal-head h2{text-transform:none;letter-spacing:0;color:var(--text);margin:0;font-size:16px}.modal-actions{gap:6px;margin-left:auto;display:flex}.modal-close{width:32px;height:32px;font-size:18px}.modal-body{min-height:0;padding:16px 18px;overflow:auto}.modal-large .modal-body{height:min(720px,100vh - 120px);padding:0;overflow:hidden}.catalog{grid-template-columns:210px 1fr;height:100%;min-height:0;display:grid}.cat-nav{border-right:1px solid var(--line);background:#fbfaf8;padding:14px 10px;overflow:auto}.cat-nav h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:4px 6px 6px;font-size:11px;font-weight:600}.cat-nav ul{margin:0 0 14px;padding:0;list-style:none}.cat-nav li button{text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;gap:8px;width:100%;padding:6px 8px;display:flex}.cat-nav li button:hover{background:var(--field)}.cat-nav li button.on{background:#e3edff;font-weight:600}.cat-nav .n{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.chips{flex-wrap:wrap;gap:4px;padding:0 4px;display:flex}.chips button{border-radius:12px;padding:3px 9px;font-size:12px}.chips button.on{background:var(--text);color:#fff;border-color:var(--text)}.cat-main{flex-direction:column;gap:10px;min-height:0;padding:14px 16px;display:flex;overflow:auto}.cat-tools{align-items:center;gap:12px;display:flex}.cat-tools .search{flex:1;margin:0}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.cat-card{border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.cat-card:hover{border-color:#c9c4ba;box-shadow:0 4px 14px #0000000f}.cat-thumb{aspect-ratio:4/3;border-bottom:1px solid var(--line);background:#fff;place-items:center;display:grid;position:relative;overflow:hidden}.cat-thumb img{object-fit:contain;width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;inset:6px}.cat-thumb .cat-ph{background:var(--bg);place-items:center;width:100%;height:100%;display:grid}.cat-ph{opacity:.55;filter:grayscale(.3);font-size:38px}.cat-count{background:var(--accent);color:#fff;border-radius:10px;padding:1px 7px;font-size:11px;position:absolute;top:6px;left:6px}.cat-info{flex-direction:column;flex:1;gap:3px;min-width:0;padding:8px 10px 4px;display:flex}.cat-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.cat-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cat-meta a{color:var(--accent);text-decoration:none}.src-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--field);border:1px solid var(--line);color:var(--muted);border-radius:4px;padding:1px 5px;font-size:10px}.cat-add{margin:6px 10px 10px}.cat-empty{text-align:center;padding:30px 0}.custom .grid-custom{grid-template-columns:2fr 1.4fr 1fr 1fr 1fr;align-items:end;gap:8px;display:grid}.toast{background:var(--text);color:#fff;z-index:3;white-space:normal;text-align:center;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;max-width:min(560px,100% - 32px);padding:8px 14px;font-size:13px;line-height:1.35;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0003}.toast .link{color:#9cc1ff;white-space:nowrap;flex:none;margin-left:4px}@media (width<=760px){.catalog{grid-template-rows:auto 1fr;grid-template-columns:1fr}.cat-nav{border-right:0;border-bottom:1px solid var(--line);max-height:30vh}.custom .grid-custom{grid-template-columns:1fr 1fr}.modal-backdrop{padding:8px}.step-banner{display:none}}.wall-split{border:1.5px solid var(--accent);width:22px;height:22px;color:var(--accent);cursor:pointer;background:#fff;border-radius:50%;place-items:center;padding:0;font-size:15px;font-weight:700;line-height:1;display:grid;box-shadow:0 1px 4px #0000002e}.wall-split:hover{background:var(--accent);color:#fff}.room-move{pointer-events:auto;border:1.5px solid var(--accent);width:32px;height:32px;color:var(--accent);cursor:move;touch-action:none;-webkit-user-select:none;user-select:none;background:#fff;border-radius:50%;place-items:center;padding:0;display:grid;position:relative;box-shadow:0 1px 6px #00000040}.room-move:hover:not(:disabled),.room-move.on{background:var(--accent);color:#fff;border-color:var(--accent)}.wall-tag.moving{color:var(--accent);border-color:var(--accent)}.wall-tag.bad{color:var(--danger);border-color:var(--danger)}.checks{flex-direction:column;justify-content:flex-end;gap:4px;display:flex}.baseboard-fields{border-top:1px dashed var(--line);flex-direction:column;gap:6px;margin-top:10px;padding-top:8px;display:flex}.baseboard-fields .row{justify-content:space-between;margin-top:0}.baseboard-fields .seg button{padding:4px 10px;font-size:12px}.baseboard-fields .seg button.on{background:var(--text);color:#fff;border-color:var(--text)}.baseboard-colors{padding:0}.baseboard-colors .dot{vertical-align:-1px;border:1px solid #0003;border-radius:50%;width:10px;height:10px;display:inline-block}.baseboard-colors button.on .dot{border-color:#fff}.room-tiles{grid-template-columns:repeat(2,1fr);gap:8px;padding:12px 16px 4px;display:grid}.room-tile{text-align:left;background:var(--panel);border-radius:10px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:4px 8px;min-height:66px;padding:10px;display:grid;position:relative}.room-tile.wide{grid-column:1/-1;gap:1px 10px;padding:11px 12px}.room-tile:hover{background:#f6f9ff;border-color:#b9cff8}.room-tile:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.room-tile-icon{color:#3b5f9e;background:#eef3fc;border-radius:8px;grid-row:1;place-items:center;width:32px;height:32px;display:grid;position:relative}.room-tile-icon svg{width:22px;height:22px}.room-tile.wide .room-tile-icon{border-radius:9px;grid-row:1/span 2;width:38px;height:38px}.room-tile.wide .room-tile-icon svg{width:25px;height:25px}.room-tile-title{font-size:13px;font-weight:600;line-height:1.2}.room-tile-summary{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;grid-column:1/-1;min-width:0;line-height:1.25;display:-webkit-box;overflow:hidden}.room-tile.wide .room-tile-summary{grid-column:2}.room-tile-badge{background:var(--panel);border:1px solid var(--line);min-width:18px;color:var(--text);text-align:center;border-radius:9px;padding:0 5px;font-size:11px;line-height:16px;position:absolute;top:-6px;right:-8px}.room-tile.tone-primary{border-color:#b9cff8}.room-tile.tone-primary .room-tile-icon{background:var(--accent);color:#fff}.room-tile.tone-warn{background:#fff7ec;border-color:#f5c88a}.room-tile.tone-warn:hover{background:#fff1de;border-color:#eaa94f}.room-tile.tone-warn .room-tile-icon{color:#9a5b00;background:#ffe6c2}.room-tile.tone-warn .room-tile-badge{color:#9a5b00;background:#ffe6c2;border-color:#f5c88a;font-weight:600}section.room-section{padding:0 0 8px}.room-section-head{border-bottom:1px solid var(--line);background:var(--panel);flex-direction:column;gap:6px;padding:10px 16px;display:flex}.room-back{color:var(--accent);background:0 0;border:0;align-self:flex-start;padding:2px 0;font-size:13px}.room-back:hover{text-decoration:underline}.room-section-head h2{text-transform:none;letter-spacing:0;color:var(--text);align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.room-section-icon{color:#3b5f9e;background:#eef3fc;border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.room-section-icon svg{width:20px;height:20px}.room-section-body{flex-direction:column;gap:8px;padding:12px 16px 4px;display:flex}.room-section-body section{background:0 0;border:0;padding:0}.room-section-body section>h2{display:none}.room-section-body h3{margin:8px 0 0}.room-section-body .baseboard-fields{border-top:0;margin-top:0;padding-top:0}.wall-selected-box{background:#f1f6ff;border:1px solid #c8dafc;border-radius:10px;padding:10px}.wall-selected-title{color:var(--muted);margin-bottom:8px;font-size:12px}.wall-selected-title b{color:var(--text)}.walls-common{grid-template-columns:1fr 1fr;gap:8px;display:grid}.rod-card .opening-name{flex-wrap:wrap}.rod-fields{flex-direction:column;gap:8px;margin-top:6px;display:flex}.rod-fields h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:6px 0 0;font-size:12px}.rod-fields .row{margin-top:0}.rod-fields .grid3{margin-bottom:0}.rod-fields .seg button{padding:4px 10px;font-size:12px}.rod-summary{margin:0}.swatches{padding:0}.swatches .dot{vertical-align:-1px;border:1px solid #0003;border-radius:50%;width:10px;height:10px;display:inline-block}.swatches button.on .dot{border-color:#fff}.curtain-layer{border-top:1px dashed var(--line);flex-direction:column;gap:6px;padding:6px 0;display:flex}.curtain-open{align-items:center;gap:8px;display:flex}.curtain-open input[type=range]{flex:1;min-width:0}.curtain-color{align-items:flex-end;gap:8px;display:flex}.curtain-color .field{flex:0 0 64px}.pelmet-fields{border-top:1px dashed var(--line);flex-direction:column;gap:6px;padding-top:6px;display:flex}.pelmet-fields button{padding:4px 10px;font-size:12px}.pelmet-fields button.on{background:var(--text);color:#fff;border-color:var(--text)}.pelmet-fields .warn{color:#9a5b00;margin:0}.item-buttons button{white-space:nowrap}.color-field{position:relative}.color-field>label:first-child{color:var(--muted);font-size:11px}.color-row{align-items:stretch;gap:4px;display:flex}.color-row input[type=color]{flex:1;min-width:36px}.color-tools{flex:none;gap:4px;display:inline-flex}.color-tools button{justify-content:center;align-items:center;padding:0 7px;font-size:11px;line-height:1;display:inline-flex}.color-tools button.on{background:var(--text);color:#fff;border-color:var(--text)}.color-caption{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette-pop{z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:8px;width:320px;max-height:min(560px,100vh - 16px);padding:10px;display:flex;position:fixed;box-shadow:0 10px 30px #0000002e}.palette-head{justify-content:space-between;align-items:center;display:flex}.palette-head .seg button{padding:4px 14px;font-size:12px}.palette-close{cursor:pointer;background:0 0;border:0;padding:2px 6px;font-size:18px;line-height:1}.palette-search{border:1px solid var(--line);background:var(--field);border-radius:6px;padding:6px 8px;font-size:13px}.palette-body{flex-direction:column;gap:10px;min-height:0;display:flex;overflow:auto}.palette-group{flex-direction:column;gap:4px;display:flex}.palette-swatches,.palette-hues{flex-wrap:wrap;gap:3px;display:flex}.palette-swatches button,.palette-hues button{cursor:pointer;border:1px solid #0000002e;border-radius:4px;width:20px;height:20px;padding:0}.palette-hues button{border-radius:3px;width:14px;height:22px}.palette-swatches button.on,.palette-hues button.on,.palette-list button.on,.palette-typed.on{outline:2px solid var(--accent);outline-offset:1px}.palette-grid{flex-direction:column;gap:3px;display:flex}.palette-list{flex-direction:column;gap:2px;display:flex}.palette-list button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:4px 6px;font-size:12px;display:flex}.palette-list button:hover{background:var(--field)}.palette-dot{border:1px solid #0000002e;border-radius:4px;flex:none;width:18px;height:18px}.palette-dot.big{border-radius:6px;width:40px;height:40px}.palette-typed{text-align:left;border-radius:8px;align-items:center;gap:10px;padding:6px;display:flex}.palette-note{margin:0}.color-pick-overlay{z-index:7;cursor:crosshair;position:absolute;inset:0}.color-pick-banner{color:#fff;pointer-events:none;background:#141414d1;border-radius:8px;max-width:calc(100% - 24px);padding:6px 12px;font-size:12px;position:absolute;top:52px;left:50%;transform:translate(-50%)}.color-pick-chip{pointer-events:none;background:var(--panel);border:1px solid var(--line);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:flex;position:absolute;box-shadow:0 4px 14px #00000026}.color-pick-chip em{color:var(--muted);font-style:normal}.color-pick-swatch{border:1px solid #0003;border-radius:4px;width:18px;height:18px}.shop-scope{margin:0 0 6px}.shop-scope button{padding:4px 10px;font-size:12px}.shop-room+.shop-room{margin-top:6px}.shopping h3.shop-room-name{color:var(--text);margin:10px 0 0;font-size:13px;font-weight:600}.shop-subtotal{color:var(--muted);justify-content:space-between;align-items:baseline;padding:6px 0 2px;font-size:12px;display:flex}.shop-subtotal b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.shop-room+.shop-total{border-top:1px solid var(--line);margin-top:6px}.bedding{border:1px solid var(--line);background:#fcfbf9;border-radius:8px;margin:4px 0 8px;padding:8px}.bedding-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.bedding-head b,.bedding-head .muted{font-size:12px}.bedding .grid3{margin-bottom:6px}.bedding-sets{grid-template-columns:repeat(6,1fr);gap:5px;margin:2px 0 8px;display:grid}.bedding-sets button{aspect-ratio:1;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;padding:0;overflow:hidden}.bedding-sets button.on,.bedding-sets button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.bedding-swatch{width:100%;height:100%;display:block}.bedding-swatch.none{opacity:.55;background:linear-gradient(135deg,#fff 0 46%,#d93f3f 46% 54%,#fff 54% 100%)}.bedding .bedding-size{grid-template-columns:repeat(2,1fr)}.wall-list li{align-items:center}.wall-swatch{border:1px solid var(--line);border-radius:5px;flex:none;width:40px;height:28px;position:relative;overflow:hidden}.wall-swatch img{object-fit:cover;width:100%;height:100%;display:block}.wall-swatch img.shaped{object-fit:contain}.wall-row-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.wall-row-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wall-panel{flex-direction:column;gap:10px;display:flex}.wall-current{grid-template-columns:112px 1fr;align-items:center;gap:10px;display:grid}.wall-preview{width:112px;height:76px;color:var(--muted);border-radius:8px;place-items:center;padding:0;font-size:11px;display:grid;overflow:hidden}.wall-preview img{object-fit:cover;width:100%;height:100%;display:block}.wall-preview img.shaped{object-fit:contain}.wall-preview span{background:#ffffffd9;border-radius:8px;padding:1px 6px}.wall-current-text{flex-direction:column;gap:2px;min-width:0;display:flex}.wall-current-text b{overflow-wrap:anywhere}.wp-fit{display:flex}.wp-fit button{flex:1;padding:6px 4px}.wall-color{align-items:end}.wall-color .link{text-align:left;padding:0 0 7px}.wall-color-note,.wp-tile-note{align-self:end;padding-bottom:8px}.stage-body{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.stage-body>.canvas-wrap{min-width:0}.wp-drawer{z-index:6;background:var(--panel);border-left:1px solid var(--line);flex-direction:column;flex:none;width:min(400px,42%);display:flex;position:relative;box-shadow:-8px 0 24px #00000014}.wp-head{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 14px 10px;display:flex}.wp-title{justify-content:space-between;align-items:center;display:flex}.wp-title h2{margin:0;font-size:15px}.wp-head .chips{padding:0}.wp-head .chips .n{opacity:.65;margin-left:2px;font-size:11px}.wp-filters{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.wp-filters .seg button{padding:4px 8px;font-size:12px}.wp-filters select{border:1px solid var(--line);background:var(--field);border-radius:6px;flex:1;min-width:120px;padding:4px 6px;font-size:12px}.seg button.on{background:var(--text);color:#fff;border-color:var(--text)}.wp-count{justify-content:space-between;align-items:baseline;display:flex}.wp-list{flex:1;min-height:0;padding:10px 14px 16px;overflow-y:auto}.wp-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.wp-card{position:relative}.wp-pick{text-align:left;background:var(--panel);border-radius:8px;flex-direction:column;width:100%;padding:0;display:flex;overflow:hidden}.wp-pick:hover{border-color:#b9cff8;box-shadow:0 2px 10px #2f7cf61f}.wp-card.on .wp-pick{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.wp-thumb{aspect-ratio:3/2;background:var(--field);flex:none;min-height:0;display:block;position:relative;overflow:hidden}.wp-thumb img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.wp-thumb.shaped{background:repeating-conic-gradient(#ecebe7 0 25%, #f8f7f4 0 50%) 0 0 / 14px 14px}.wp-thumb.shaped img{object-fit:contain}.wp-name{text-overflow:ellipsis;white-space:nowrap;padding:6px 8px 0;font-size:12px;font-weight:500;overflow:hidden}.wp-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:3px 6px;min-width:0;padding:3px 8px 7px;font-size:10.5px;line-height:1.3;display:flex}.wp-kind{background:var(--field);border:1px solid var(--line);border-radius:8px;flex:none;padding:0 5px}.wp-kind.pattern{background:#eef7ee;border-color:#cfe6cf}.wp-kind.shaped{background:#fff3e6;border-color:#f2d6b3}.wp-coll{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.wp-del{background:#ffffffeb;width:24px;height:24px;position:absolute;top:4px;right:4px}.wp-confirm{background:#fffffff2;border-radius:6px;justify-content:flex-end;align-items:center;gap:4px;padding:3px;font-size:12px;display:flex;position:absolute;top:4px;left:4px;right:4px}.wp-confirm button{padding:2px 8px}button.danger{color:#fff;background:var(--danger);border-color:var(--danger)}.wp-more{text-align:center;grid-column:1/-1;padding:8px}.wp-msg{padding:8px 0}.wp-msg code{font-size:11px}.wp-source{margin-top:12px}.wp-upload{border:1px dashed var(--line);background:var(--field);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:12px;padding:10px;display:flex}.wp-drop{cursor:pointer;height:110px;color:var(--muted);background:#fff;border:1px dashed #c9c5bd;border-radius:6px;place-items:center;font-size:12px;display:grid;position:relative;overflow:hidden}.wp-drop img{object-fit:contain;width:100%;height:100%}.wp-drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.wp-drawer .toast{white-space:normal;text-align:center;width:calc(100% - 28px)}@media (width<=760px){.wp-drawer{border-left:0;border-top:1px solid var(--line);width:auto;height:62%;position:absolute;inset:auto 0 0;box-shadow:0 -8px 24px #0000001a}.wp-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}.recent-colors{flex-direction:column;gap:4px;margin:2px 0 8px;display:flex}.recent-colors-row{flex-wrap:wrap;gap:5px;display:flex}.recent-colors-row button{cursor:pointer;border:1px solid #0000002e;border-radius:6px;width:24px;height:24px;padding:0}.recent-colors-row button.on,.recent-colors-row button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.split-fields{flex-direction:column;gap:8px;display:flex}.split-dir{display:flex}.split-dir button{flex:1;padding:6px 4px;font-size:12px}.split-cut{border-left:3px solid var(--line);grid-template-columns:1fr 84px;align-items:end;gap:4px 10px;padding:6px 8px;display:grid}.split-cut .field{grid-column:1/-1;grid-template-columns:1fr 84px;align-items:center;gap:10px;display:grid}.split-cut input[type=range]{grid-column:1/-1;width:100%}.split-band{flex-direction:column;gap:2px;display:flex}.split-band>.split-remove{align-self:flex-start;padding:2px 0 0;font-size:12px}.wall-color .split-remove{text-align:left;padding:0 0 7px;font-size:12px}.split-add{align-self:flex-start}.gen-progress{border:1px solid var(--line);background:var(--field);border-radius:8px;min-width:0;margin:10px 0;padding:10px 12px;font-size:13px}.gen-progress.ok{border-color:#b9d8c0}.gen-progress.failed{border-color:#e6b8bc}.gen-status{align-items:center;gap:8px;min-width:0;display:flex}.gen-text{overflow-wrap:anywhere;flex:1;min-width:0}.gen-time{font-variant-numeric:tabular-nums;color:var(--muted);flex-shrink:0}.gen-spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:.8s linear infinite gen-spin}@keyframes gen-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.gen-spinner{animation-duration:2.4s}}.gen-steps{flex-wrap:wrap;gap:4px 6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.gen-steps li{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:2px 8px;font-size:12px}.gen-steps li.done{color:var(--text)}.gen-steps li.active{color:#fff;background:var(--accent);border-color:var(--accent)}.gen-steps li.failed{color:#a51b28;background:#fdf3f3;border-color:#e6b8bc}.gen-log{margin-top:8px}.gen-log summary{cursor:pointer;color:var(--muted);font-size:12px}.gen-thought{color:var(--muted);overflow-wrap:anywhere;margin:4px 0 0 20px;font-size:12px}.gen-log ol{max-height:180px;margin:6px 0 0;padding:0;font-size:12px;line-height:1.45;list-style:none;overflow-y:auto}.gen-log li{overflow-wrap:anywhere}.gen-log li.detail{color:var(--muted);padding-left:1.5em}.gen-log time{color:var(--muted);font-variant-numeric:tabular-nums}.tile-fields{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:8px;padding:8px 10px;display:flex}.tile-fields.empty{padding:6px 10px}.tile-fields.picking{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.tile-band-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:600}.tile-fields .row{align-items:center;gap:6px}.tile-fields.empty .row{justify-content:space-between}.tile-current{grid-template-columns:76px 1fr;align-items:center;gap:10px;display:grid}.tile-preview{border-radius:8px;width:76px;height:76px;padding:0;overflow:hidden}.tile-thumb{background:var(--field);width:100%;height:100%;display:block}.tile-thumb img,.wall-swatch img{object-fit:cover;width:100%;height:100%;display:block}.tile-seg{display:flex}.tile-seg button{flex:1;padding:6px 4px;font-size:12px}.tile-grouts{gap:6px;display:flex}.tile-grouts button{border:1px solid var(--line);border-radius:5px;width:26px;height:22px;padding:0}.tile-grouts button.on{box-shadow:0 0 0 2px var(--accent);border-color:#fff}.tile-target{font-size:13px;line-height:1.4}.tile-card-thumb{aspect-ratio:1}.tile-needs{flex-direction:column;gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.tile-needs li{border:1px solid var(--line);background:var(--field);border-radius:8px;padding:8px 10px;line-height:1.45}.check.small{font-size:12px}.band-finish{flex-direction:column;gap:8px;display:flex}.band-finish-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.band-finish-kind{margin-left:auto;display:flex}.band-finish-kind button{padding:4px 10px;font-size:12px}.split-quick{align-items:baseline;gap:4px 10px}.radiator-card .opening-name{flex-wrap:wrap}.radiator-card .row .icon{flex:none}.radiator-fields{flex-direction:column;gap:8px;margin-top:8px;display:flex}.radiator-fields .row{margin-top:0}.radiator-fields .grid3{margin-bottom:0}.radiator-fields .seg button{padding:4px 10px;font-size:12px}.radiator-fields .field .seg{margin-top:1px}.radiator-chips{padding:0}.radiator-chips button{font-variant-numeric:tabular-nums;padding:2px 8px;font-size:11.5px}.radiator-chips .dot{vertical-align:-1px;border:1px solid #0003;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.radiator-chips button.on .dot{border-color:#fff}.radiator-color{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.radiator-color>.field{flex:100%}.radiator-note{color:#9a5b00;margin:4px 0 0}.room-strip{--strip-bg:#e8e5df;--tab-h:34px;--tab-w:210px;--tab-min:108px;--tab-r:9px;background:var(--strip-bg);flex:none;align-items:flex-end;gap:2px;min-width:0;padding:6px 10px 0 4px;display:flex;box-shadow:inset 0 -1px #00000012}.room-tabs-scroll{--arrow-w:22px;--fade-w:30px;--clear-l:0px;--fade-l:0px;--clear-r:0px;--fade-r:0px;flex:0 auto;min-width:0;display:flex;position:relative}.room-tabs-scroll.more-start{--clear-l:var(--arrow-w);--fade-l:calc(var(--arrow-w) + var(--fade-w))}.room-tabs-scroll.more-end{--clear-r:var(--arrow-w);--fade-r:calc(var(--arrow-w) + var(--fade-w))}.room-tabs-list{scrollbar-width:none;min-width:0;padding:0 var(--tab-r);-webkit-mask-image:linear-gradient(to right, transparent var(--clear-l), #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent calc(100% - var(--clear-r)));mask-image:linear-gradient(to right, transparent var(--clear-l), #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent calc(100% - var(--clear-r)));flex:auto;align-items:flex-end;display:flex;position:relative;overflow:auto hidden}.room-tabs-list::-webkit-scrollbar{display:none}.room-tabs-arrow{z-index:2;width:var(--arrow-w);height:26px;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:0 0 2px;font-size:20px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.room-tabs-arrow:hover{color:var(--text);background:#00000012}.room-tabs-arrow.start{left:0}.room-tabs-arrow.end{right:0}.room-tab{width:var(--tab-w);min-width:var(--tab-min);height:var(--tab-h);border-radius:var(--tab-r) var(--tab-r) 0 0;color:var(--muted);flex:0 auto;align-items:center;display:flex;position:relative;container-type:inline-size}.room-tab:not(.on):hover{color:var(--text);background:#ffffff8c}.room-tab.on{z-index:1;min-width:calc(var(--tab-min) + 30px);background:var(--panel);color:var(--text)}.room-tab+.room-tab:not(.on):before{content:"";background:#cdc8bf;width:1px;position:absolute;top:9px;bottom:9px;left:0}.room-tab.on+.room-tab:before,.room-tab:not(.on):hover:before,.room-tab:hover+.room-tab:not(.on):before{opacity:0}.room-tab.on:before,.room-tab.on:after{content:"";width:var(--tab-r);height:var(--tab-r);pointer-events:none;position:absolute;bottom:0}.room-tab.on:before{left:calc(-1 * var(--tab-r));background:radial-gradient(circle at 0 0, transparent calc(var(--tab-r) - .5px), var(--panel) var(--tab-r))}.room-tab.on:after{right:calc(-1 * var(--tab-r));background:radial-gradient(circle at 100% 0, transparent calc(var(--tab-r) - .5px), var(--panel) var(--tab-r))}.room-tab>button[role=tab]{border-radius:inherit;min-width:0;color:inherit;text-align:left;white-space:nowrap;background:0 0;border:0;flex:1;grid-template-columns:minmax(0,max-content) max-content;place-content:center start;align-self:stretch;align-items:baseline;column-gap:7px;padding:0 12px;display:grid}.room-tab.on>button[role=tab]{padding-right:4px}.room-tab>button[role=tab]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.room-tab-name{text-overflow:ellipsis;min-width:0;font-weight:500;overflow:hidden}.room-tab-area{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}@container (width<=150px){.room-tab-area{display:none}}.room-tab-more{width:26px;height:26px;color:var(--muted);letter-spacing:.05em;background:0 0;border:0;border-radius:6px;flex:none;margin-right:5px;padding:0;font-weight:700;line-height:1}.room-tab-more:hover,.room-tab-more[aria-expanded=true]{color:var(--text);background:#eeebe5}.room-tab-rename{outline:2px solid var(--accent);outline-offset:-2px;background:#fff;border:0;border-radius:6px;flex:1;min-width:0;height:26px;margin:0 5px;padding:0 7px;font-weight:500}.room-tabs-add{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:7px;flex:none;align-self:center;padding:0;font-size:19px;font-weight:300;line-height:1}.room-tabs-add:hover:not(:disabled){color:var(--text);background:#00000012}.room-scope{flex:none;align-self:center;margin-left:auto;padding-left:12px}.room-scope button{padding:4px 10px;font-size:12px}.room-menu{z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-width:190px;padding:4px;display:flex;position:fixed;box-shadow:0 10px 30px #00000029}.room-menu button{text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;display:flex}.room-menu button:hover:not(:disabled),.room-menu button:focus-visible{background:var(--field);outline:none}.room-menu button.danger{color:var(--danger);background:0 0;border:0}.room-menu button.danger:hover,.room-menu button.danger:focus-visible{background:#fdf0f0}.room-menu kbd{font:inherit;color:var(--muted);font-size:11px}.room-tile.wide{grid-column:1/-1;min-height:58px}.room-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.room-row{border:1px solid var(--line);background:var(--panel);border-radius:10px}.room-row.active{background:#f1f6ff;border-color:#c8dafc}.room-row-head{text-align:left;background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:8px 10px;display:flex}.room-row-head:hover:not(:disabled){background:#f6f9ff}.room-row.active .room-row-head{cursor:default;background:0 0}.room-row-body{flex-direction:column;gap:8px;padding:0 10px 10px;display:flex}.room-row-body .row{margin-top:0}.room-row-pos{grid-template-columns:1fr 1fr;gap:8px;display:grid}.room-row-note{margin:-4px 0 0}.room-partition,.wall-thickness-row{grid-template-columns:minmax(110px,1fr) 1.4fr;align-items:end;gap:8px;display:grid}.room-partition .muted,.wall-thickness-row .muted{padding-bottom:2px;line-height:1.35}.wall-thickness-row button.link{justify-self:start;padding:0 0 7px}.plan-notes{margin-top:2px}.plan-notes li{padding:0}.plan-notes button{text-align:left;background:0 0;border:0;border-radius:6px;align-items:baseline;gap:8px;width:100%;padding:6px 8px;font-size:12px;line-height:1.35;display:flex}.plan-notes button:hover{background:var(--field)}.plan-notes.warnings-list{background:#fff7ec;border-radius:8px}.plan-notes.warnings-list button:hover{background:#ffefd8}.plan-info button{color:var(--muted)}.info-dot{background:#9db8e6;border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.wall-thickness{border-top:1px dashed #c8dafc;flex-direction:column;gap:8px;padding-top:8px;display:flex}.shared-wall{background:#fff;border:1px solid #d6e3fb;border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.shared-wall-title{font-size:12px;line-height:1.35}.add-room{flex-direction:column;gap:12px;display:flex}.add-room .grid3{margin-bottom:0}.add-room-names{margin-top:-6px;padding:0}.add-room-group{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.add-room-group legend{color:var(--muted);margin-bottom:6px;padding:0;font-size:11px}.room-options{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px;display:grid}.room-option{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.room-option.on{border-color:var(--accent);background:#f1f6ff}.room-option.disabled{opacity:.45;cursor:default}.room-option input{margin:2px 0 0}.room-option>span{flex-direction:column;gap:2px;display:flex}.add-room-next{grid-template-columns:1fr 1.4fr;gap:8px;display:grid}.add-room-next select{width:100%}.add-room-align{grid-column:1/-1}.add-room-align .seg{display:flex}.add-room-align .seg button{white-space:nowrap;flex:1;padding:5px 6px;font-size:12px}.add-room-preview{background:var(--field);border-radius:8px;padding:8px 10px;line-height:1.45}.warn-note{color:#9a5b00;margin-top:4px}.app:has(.room-strip)~.share-banner{top:100px}@media (width<=760px){.room-strip{--tab-h:40px;--tab-w:160px;--tab-min:104px;padding:4px 8px 0 0}.room-tab-more{width:32px;height:36px;margin-right:2px}.room-tab-rename{height:32px}.room-tabs-add{width:36px;height:36px}.room-tabs-scroll{--arrow-w:28px;--fade-w:12px}.room-tabs-arrow{height:36px}.room-scope{padding-left:6px}.room-scope button{min-height:36px;padding:4px 9px}}@media (width<=520px){.add-room-next{grid-template-columns:1fr}.add-room .grid3{grid-template-columns:1fr 1fr}}.room-tab.model-tab{flex:0 auto;width:auto;min-width:120px;max-width:260px;container-type:normal}.room-tab.model-tab:not(.on):before{display:none}.room-tab.model-tab>button[aria-pressed]{border-radius:var(--tab-r) var(--tab-r) 0 0;min-width:0;color:inherit;background:0 0;border:0;flex:1;align-self:stretch;align-items:center;gap:6px;padding:0 4px 0 12px;font-weight:500;display:flex}.room-tab.model-tab .room-tab-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-tab.model-tab:not(.on){background:#ffffff59}.model-tab-icon{color:#b5600a}.model-tab-dirty{color:#b5600a;font-weight:700}.model-tab-close{width:22px;height:22px;color:var(--muted);background:0 0;border:0;border-radius:5px;flex:none;margin-right:6px;padding:0;font-size:16px;line-height:1}.model-tab-close:hover{color:var(--text);background:#00000014}.cat-thumb img.cat-render{object-fit:cover;width:100%;height:100%;animation:.25s ease-out cat-render-in;inset:0}@keyframes cat-render-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.cat-thumb img.cat-render{animation:none}}.imp-content{box-sizing:border-box;width:100%;min-width:0;max-width:720px;max-height:75vh;padding:2px 8px 12px 2px;overflow-y:auto}.imp-form{gap:8px;display:grid}.imp-url-row,.imp-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.imp-url-row input{flex:260px;min-width:0}.imp-content input,.imp-content select{color:#222;font:inherit;background:#fff;border:1px solid #c9cdd1;border-radius:6px;padding:8px}.imp-content button{padding:8px 12px}.imp-content :is(button,input,select):focus-visible{outline-offset:2px;outline:2px solid #2674bf}.imp-content button:disabled,.imp-content select:disabled{opacity:.55}.imp-product{align-items:flex-start;gap:14px;padding:14px 0;display:flex}.imp-photo{object-fit:contain;background:#f4f4f2;border-radius:8px;flex-shrink:0;width:88px;height:88px}.imp-placeholder{color:#666;place-items:center;font-size:12px;display:grid}.imp-info{overflow-wrap:anywhere;flex:1;min-width:0}.imp-info h3,.imp-info p{margin:0 0 8px}.imp-category{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.imp-category select{max-width:100%}.imp-list{margin:0;padding:0;list-style:none}.imp-list>li+li{border-top:1px solid #ddd}.imp-result,.imp-message{background:#f2f6fa;border-radius:8px;margin:14px 0;padding:12px}.imp-warning{background:#fff8e8;border-left:4px solid #b77913;margin:12px 0;padding:10px}.imp-error{color:#a51b28}@media (width<=480px){.imp-photo{width:60px;height:60px}.imp-product{gap:10px}}.imp-confirm{background:#fdf3f3;border-left:4px solid #a51b28;border-radius:6px;margin-top:8px;padding:10px 12px}.imp-confirm p{margin:0 0 8px}.imp-bookmarklet-help{margin-top:12px}.imp-bookmarklet-help summary{cursor:pointer;font-weight:600}.imp-bookmarklet-help ol{padding-left:20px}.imp-bookmarklet{color:#2674bf;cursor:grab;background:#fff;border:1px dashed #2674bf;border-radius:8px;padding:8px 14px;font-weight:600;text-decoration:none;display:inline-block}.imp-hint{color:#8a5a00}.imp-hint-bg{color:var(--muted);margin:4px 0 6px}.imp-running{margin-bottom:10px}.imp-running .imp-tray-actions{margin-top:0}.imp-cancel-ask{border-left:3px solid var(--danger);background:#fdf3f3;border-radius:6px;margin-top:8px;padding:8px 10px}.imp-cancel-ask p{margin:0;font-size:12px}.imp-tray{z-index:6;box-sizing:border-box;background:var(--panel);border:1px solid var(--line);border-radius:10px;width:300px;max-width:calc(100% - 24px);padding:10px 12px;font-size:13px;animation:.16s ease-out imp-tray-in;position:absolute;bottom:12px;right:12px;box-shadow:0 6px 24px #00000024}.imp-tray-home{z-index:40;max-width:calc(100vw - 32px);position:fixed;bottom:16px;right:16px}.imp-tray.ok{border-color:#b9d8c0}.imp-tray.failed{border-color:#e6b8bc}.imp-tray-row{align-items:center;gap:8px;min-width:0;display:flex}.imp-tray-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.imp-tray-time{margin-left:auto}.imp-tray-row button{flex-shrink:0;padding:4px 10px}.imp-tray-row .imp-tray-close{width:26px;height:26px;padding:0}.imp-tray-mark{color:#2e7d46;flex-shrink:0;font-weight:700}.imp-tray.failed .imp-tray-mark{color:#a51b28}.imp-tray-stage{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:6px 0 0 20px;overflow:hidden}.imp-tray-hint{color:var(--muted);margin:6px 0 0;font-size:12px}.imp-tray-warn{color:#8a5a00;margin:6px 0 0;font-size:12px}.imp-tray-error{color:#a51b28;-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:6px 0 0;font-size:12px;display:-webkit-box;overflow:hidden}.imp-tray-actions{gap:8px;margin-top:8px;display:flex}.imp-tray-actions button{padding:6px 12px}@keyframes imp-tray-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.imp-tray{animation:none}}.elec-badge{color:#fff;letter-spacing:.2px;border-radius:5px;flex-shrink:0;place-items:center;min-width:24px;height:20px;padding:0 5px;font-size:11px;font-weight:700;display:inline-grid}.elec-dot{border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.electrical-card.has-issue{background:#fffbeb;border-color:#f59e0b}.elec-quick-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.elec-quick-item{gap:3px;display:flex}.elec-add-btn{text-align:left;flex:auto;align-items:center;gap:6px;min-width:0;padding:6px 8px;font-size:12px;display:flex}.elec-pin-btn{flex:none;width:28px;padding:0;font-size:14px}.elec-pin-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.tech-stage{background:#f1f5f9;flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.tech-stage.mode-3d{flex:none}.stage-body[hidden]{display:none!important}.tech-toolbar{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;gap:8px}.tech-subbar{border-bottom:1px solid var(--line);background:#f8fafc;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:6px 12px;display:flex}.tech-place-bar button{padding:5px 8px;font-size:12px}.tech-wall-tabs{border-bottom:1px solid var(--line);background:#f8fafc;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;display:flex;overflow-x:auto}.tech-wall-tab{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:7px;padding:6px 12px;font-size:12.5px;display:inline-flex}.tech-wall-tab.on{border-color:var(--accent);background:#e3edff;font-weight:600}.tech-wall-num{background:#e2e8f0;border-radius:50%;place-items:center;width:19px;height:19px;font-size:11px;font-weight:700;display:inline-grid}.tech-wall-tab.on .tech-wall-num{background:var(--accent);color:#fff}.tech-wall-badge{color:#1d4ed8;background:#dbeafe;border-radius:10px;padding:1px 6px;font-size:11px;font-weight:600}.tech-canvas-area{flex-direction:column;flex:auto;align-items:center;min-height:0;padding:18px;display:flex;overflow:auto}.tech-single-card{background:#fff;border:1px solid #cbd5e1;border-radius:10px;justify-content:center;align-items:center;width:100%;max-width:1160px;padding:14px;display:flex;box-shadow:0 4px 18px #0f172a0f}.tech-svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:calc(100vh - 210px);display:block}.tech-svg.placing{cursor:crosshair}.tech-svg.dragging{cursor:grabbing}.tech-all-grid{grid-template-columns:repeat(auto-fit,minmax(460px,1fr));gap:14px;width:100%;max-width:1320px;display:grid}.tech-elev-grid-card{cursor:pointer;background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;box-shadow:0 2px 10px #0f172a0a}.tech-elev-grid-card.active{border-color:var(--accent);box-shadow:0 0 0 2px #2f7cf626}.tech-elev-grid-head{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;display:flex}.tech-sheet{background:#fff;border:1px solid #94a3b8;width:100%;max-width:1360px;padding:16px;box-shadow:0 6px 24px #0f172a14}.tech-sheet-frame{border:2px solid #0f172a;flex-direction:column;gap:14px;padding:14px;display:flex}.tech-sheet-top{grid-template-columns:1fr 1.35fr;align-items:start;gap:14px;display:grid}@media (width<=1100px){.tech-sheet-top{grid-template-columns:1fr}}.tech-sheet-box-title{text-transform:uppercase;letter-spacing:.4px;color:#0f172a;border-bottom:1.5px solid #0f172a;margin-bottom:8px;padding-bottom:4px;font-size:11.5px;font-weight:700}.tech-sheet-plan-col,.tech-sheet-elevs-col{background:#fff;border:1px solid #cbd5e1;padding:10px}.tech-sheet-elevs-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tech-sheet-elev-card{border:1px solid #e2e8f0;border-radius:4px;padding:4px}.tech-sheet-elev-card .tech-svg{max-height:230px}.tech-sheet-bottom{border-top:1.5px solid #0f172a;grid-template-columns:1fr 1fr 1.15fr;align-items:stretch;gap:12px;padding-top:12px;display:grid}@media (width<=1100px){.tech-sheet-bottom{grid-template-columns:1fr}}.tech-legend-box,.tech-summary-box{border:1px solid #cbd5e1;padding:8px 10px;font-size:12px}.tech-legend-grid{grid-template-columns:1fr 1fr;gap:5px 10px;margin-bottom:8px;display:grid}.tech-legend-item{align-items:center;gap:6px;font-size:11.5px;display:flex}.tech-notes-line{border-top:1px dashed #cbd5e1;padding-top:6px;line-height:1.35}.tech-titleblock{background:#f8fafc;border:1.8px solid #0f172a;flex-direction:column;justify-content:space-between;display:flex}.tb-row{border-bottom:1px solid #0f172a;grid-template-columns:1.3fr 1fr;display:grid}.tb-row:last-child{border-bottom:none}.tb-row.tb-foot{grid-template-columns:1.4fr .7fr .9fr .7fr}.tb-row>div{border-right:1px solid #0f172a;flex-direction:column;gap:2px;padding:6px 8px;font-size:12px;display:flex}.tb-row>div:last-child{border-right:none}.tb-label{color:#64748b;letter-spacing:.4px;font-size:9px;font-weight:700}.tb-num{color:#1d4ed8;font-size:14px}.schedule-stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.schedule-stat{background:var(--field);border:1px solid var(--line);text-align:center;border-radius:8px;flex-direction:column;align-items:center;padding:8px 10px;display:flex}.schedule-stat b{color:var(--text);font-size:18px}.schedule-block{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:8px;display:flex}.schedule-block h3{margin:0;font-size:12.5px;font-weight:700}.schedule-wall-group{flex-direction:column;gap:4px;padding:6px 0;display:flex}.schedule-wall-title{font-size:12px}.tech-table{border-collapse:collapse;width:100%;font-size:11.5px}.tech-table th,.tech-table td{border-bottom:1px solid var(--line);text-align:left;padding:4px 6px}.tech-table th{color:var(--muted);background:#f8fafc;font-weight:600}.tech-table tr.clickable{cursor:pointer}.tech-table tr.clickable:hover{background:#eff6ff}@media print{.sidebar,.room-strip,.tech-toolbar,.tech-wall-tabs,.step-banner,.session-banner{display:none!important}.app,.stage,.stage-room,.tech-stage,.tech-canvas-area{background:#fff!important;height:auto!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.tech-single-card,.tech-sheet{box-shadow:none!important;border:none!important;max-width:100%!important;padding:0!important}.tech-svg{max-height:none!important}}.home{background:var(--bg);flex-direction:column;min-height:100%;display:flex}.home-bar{z-index:5;background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:12px 24px;display:flex;position:sticky;top:0}.home-bar .brand{align-items:baseline;gap:8px;display:flex}.home-bar h1{margin:0;font-size:18px}.home-actions{gap:8px;margin-left:auto;display:flex}.mode-badge{border:1px solid var(--line);background:var(--field);white-space:nowrap;cursor:help;border-radius:999px;padding:3px 9px;font-size:12px}.mode-badge.server{color:#217a3c;background:#f0faf3;border-color:#bfe3c9}.mode-badge.local{color:#9a5b00;background:#fff7ec;border-color:#f2d7a8}.home-main{width:100%;max-width:1240px;margin:0 auto;padding:20px 24px 64px}.home-tools{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.home-tools h2{margin:0 auto 0 0;font-size:20px}.home-tools h2 .muted{font-size:14px;font-weight:400}.home-search{width:min(320px,100%);margin:0}.home-loading{text-align:center;padding:40px 0}.home-error{color:var(--danger);background:#fff5f5;border:1px solid #f0c4c4;border-radius:8px;margin-bottom:14px;padding:10px 14px}.home-empty{text-align:center;background:var(--panel);border:1px dashed var(--line);border-radius:14px;max-width:440px;margin:48px auto;padding:32px}.home-empty h3{margin:0 0 6px;font-size:17px}.home-empty p{margin:0 0 18px;line-height:1.5}.project-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.project-list{flex-direction:column;gap:8px;display:flex}.project-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:visible}.project-card:hover,.project-card:focus-within{border-color:#c9c4ba;box-shadow:0 4px 18px #00000012}.project-open{all:unset;cursor:pointer;box-sizing:border-box;border-radius:12px;flex-direction:column;width:100%;display:flex}.project-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-thumb{aspect-ratio:16/10;background:var(--field);border-bottom:1px solid var(--line);border-radius:12px 12px 0 0;place-items:center;display:grid;overflow:hidden}.project-thumb img{object-fit:cover;width:100%;height:100%;display:block}.project-thumb .plan{width:70%;height:70%}.plan rect{fill:#fff;stroke:#b9b3a8;stroke-width:1.5px}.plan text{fill:var(--muted);font-family:inherit;font-size:7px}.project-info{flex-direction:column;gap:3px;min-width:0;padding:10px 40px 12px 12px;display:flex}.project-name{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:600;overflow:hidden}.project-desc{color:var(--text);opacity:.8;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-card.list .project-open{flex-direction:row;align-items:center}.project-card.list .project-thumb{border-bottom:0;border-right:1px solid var(--line);border-radius:12px 0 0 12px;flex:none;width:120px}.project-card.list .project-info{flex:1}.card-menu{position:absolute;bottom:8px;right:6px}.project-card.list .card-menu{top:50%;bottom:auto;transform:translateY(-50%)}.menu-btn{background:0 0;border-color:#0000;width:30px;height:30px;padding:0;font-size:18px;line-height:1}.menu-btn:hover,.menu-btn[aria-expanded=true]{background:var(--field);border-color:var(--line)}.menu{z-index:10;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-width:200px;padding:4px;display:flex;position:absolute;bottom:34px;right:0;box-shadow:0 10px 30px #00000029}.project-card.list .menu{top:34px;bottom:auto}.menu button{text-align:left;background:0 0;border:0;border-radius:6px;padding:7px 10px}.menu button:hover{background:var(--field)}.dialog-form,.settings{flex-direction:column;gap:12px;display:flex}.dialog-form textarea,.settings textarea{border:1px solid var(--line);background:var(--field);width:100%;font:inherit;resize:vertical;border-radius:6px;padding:6px 8px}.dialog-buttons{justify-content:flex-end;align-items:center;gap:8px;margin-top:4px;display:flex}.dialog-buttons .link{margin-right:auto}.templates{border:0;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;display:grid}.templates legend{margin-bottom:6px}.template{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;align-items:flex-start;gap:8px;padding:10px;display:flex}.template.on{border-color:var(--accent);background:#f1f6ff}.template input{margin-top:2px}.template>span{flex-direction:column;gap:2px;display:flex}.confirm-text{margin:0 0 12px;line-height:1.5}button.danger-fill{background:var(--danger);border-color:var(--danger);color:#fff}.settings section{padding:0 0 14px}.settings section:last-of-type{border-bottom:0}.settings .check{align-self:end;padding-bottom:6px}.field.narrow{max-width:220px}.accounts p{margin:0 0 8px;line-height:1.5}.accounts .row{margin:0 0 8px}.account-list{border:1px solid var(--line);border-radius:8px;margin:0 0 8px;padding:0;list-style:none}.account-list>li{padding:8px 10px}.account-list>li+li{border-top:1px solid var(--line)}.account-row{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.account-mail{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.account-tag{border:1px solid var(--line);background:var(--field);color:var(--muted);white-space:nowrap;border-radius:999px;padding:1px 6px;font-size:11px}.account-actions{gap:6px;margin-left:auto;display:flex}.account-form{border:1px solid var(--line);background:var(--field);border-radius:8px;margin:8px 0;padding:10px 12px}.account-form .field input{background:var(--panel)}.account-form .check{align-self:auto;padding:0 0 8px}.account-form .row{margin:0}.accounts p.account-note{margin:6px 0 0}@media (width<=560px){.account-form .grid2,.account-form .grid3{grid-template-columns:1fr}}.codex p{margin:0 0 8px;line-height:1.5}.codex-status p{margin:0 0 4px}.codex-dot{vertical-align:1px;background:var(--line);border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.codex-dot.on{background:#2b8a3e}.codex-dot.off{background:#c77c02}.codex-login{border:1px solid var(--line);background:var(--field);border-radius:8px;margin-bottom:8px;padding:10px 12px}.codex-login ol{margin:0 0 8px;padding-left:20px;line-height:1.7}.codex-code{letter-spacing:.06em;background:var(--panel);border:1px solid var(--line);-webkit-user-select:all;user-select:all;border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px}.spinner.small-spinner{vertical-align:-1px;border-width:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.codex .row{margin-bottom:8px}.trash-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.trash-list li{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 0;display:flex}.trash-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.trash-info b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trash-empty{text-align:center;padding:24px 0}.center-screen{text-align:center;place-content:center;justify-items:center;gap:12px;min-height:100%;padding:24px;display:grid}.down-card{background:var(--panel);border:1px solid var(--line);text-align:left;border-radius:14px;max-width:520px;padding:24px 28px;box-shadow:0 10px 40px #0000000f}.down-card h1{margin:0 0 8px;font-size:19px}.down-card p{margin:0 0 10px;line-height:1.5}.login-card{gap:10px;width:min(360px,100vw - 48px);display:grid}.login-card h1,.login-card p{margin:0}.login-card .field input{padding:8px 9px;font-size:15px}.login-card button.primary{margin-top:2px}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{z-index:60;color:#fff;white-space:normal;background:#1d1d1f;border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;max-width:min(560px,100vw - 32px);padding:10px 14px 10px 16px;line-height:1.35;animation:.18s ease-out toast-in;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000040}.toast .link{color:#8db8ff;white-space:nowrap;flex:none;font-weight:600}.toast-error{background:#7a1f1f}.toast-close{color:#fff;background:0 0;border-color:#0000;width:26px;height:26px}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.project-head{flex-direction:column;gap:4px;min-width:0;display:flex}.project-head .row{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin:0}.project-head .back{white-space:nowrap;flex:none;align-items:center;gap:4px;padding:4px 8px;font-size:13px;display:inline-flex}.project-title{all:unset;cursor:text;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;margin-left:-4px;padding:2px 4px;font-size:17px;font-weight:600;overflow:hidden}.project-title:hover{background:var(--field)}.project-title:focus-visible{outline:2px solid var(--accent)}.save-status{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;overflow:hidden}.saved-flash{animation:1.6s ease-out saved-flash}@keyframes saved-flash{0%,35%{color:#2b8a3e}}@media (prefers-reduced-motion:reduce){.saved-flash{animation:none}}@media (width<=760px){.app{box-sizing:border-box;padding-top:48px}.project-head{z-index:30;box-sizing:border-box;background:var(--panel);border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;height:48px;padding:6px 10px;display:grid;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px #0000000f}.project-head .row{display:contents}.project-head .back{order:1}.project-head .project-title{order:2;margin:0;font-size:15px}.project-head .save-status{text-overflow:ellipsis;order:3;max-width:34vw;overflow:hidden}.project-head .save-when{display:none}.project-head .back-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.save-status.error{color:var(--danger)}.save-status.warn{color:#9a5b00}.session-banner{z-index:15;background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:10px 12px;font-size:13px;display:flex;position:absolute;top:52px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000024}.session-banner.warn{background:#fffaf1;border-color:#f2d7a8}.session-banner.error-banner{border-color:#f0c4c4}.home~.share-banner{max-width:min(640px,100vw - 32px);left:50%}@media (width<=760px){.home-bar{flex-wrap:wrap;padding:10px 12px}.home-actions{width:100%;margin-left:0}.home-actions .primary{margin-left:auto}.home-main{padding:14px 12px 48px}.templates{grid-template-columns:1fr}.project-card.list .project-thumb{width:88px}}.session-banner button{white-space:nowrap;flex:none}.import-choice{background:#fffaf1;border:1px solid #f2d7a8;border-radius:8px;margin-top:8px;padding:10px 12px}.import-choice p{margin:0 0 8px}.app-version{text-align:right;margin:4px 0 0}.local-banner{background:#f3f7ff;border:1px solid #c9dcff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px;padding:10px 12px;font-size:13px;display:flex}.local-banner span{flex:320px}.trash-retention{margin:0 0 10px}
