:root{--bg: #0d1117;--panel: #161b22;--panel-2: #1c222b;--border: #2a313c;--text: #e6edf3;--muted: #8b949e;--accent: #4da3ff;--accent-bg: rgba(77, 163, 255, .15);--danger: #f85149;--radius: 8px;font-family:Inter,Segoe UI,system-ui,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-size:13px;overflow:hidden}#app{display:grid;grid-template-rows:auto 1fr auto auto;height:100vh}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:15px;margin-right:6px;white-space:nowrap}.group{display:flex;gap:2px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:2px}.group.right{margin-left:auto}button{font:inherit;color:var(--text);background:transparent;border:1px solid transparent;border-radius:6px;padding:6px 10px;cursor:pointer;white-space:nowrap}button:hover:not(:disabled){background:#262d38}button.active{background:var(--accent-bg);border-color:var(--accent);color:#cfe6ff}button:disabled{opacity:.35;cursor:default}button.danger{color:var(--danger);border-color:#f8514966}button.danger:hover{background:#f851491f}button.small{padding:3px 8px;font-size:12px}button.link{padding:0;border:0;color:var(--accent);background:none;text-align:left}button.link:hover{text-decoration:underline;background:none}#workspace{display:grid;grid-template-columns:1fr 300px;min-height:0}#viewport{display:grid;min-height:0;min-width:0;gap:1px;background:var(--border)}#viewport.split{grid-template-columns:1fr 1fr}#viewport.\33 d #view2d,#viewport.\32 d #view3d{display:none}.view{position:relative;min-width:0;min-height:0;overflow:hidden;background:#14171c}.view canvas{display:block}.label-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.room-label{display:flex;flex-direction:column;align-items:center;gap:1px;background:#0d1117b8;border:1px solid rgba(255,255,255,.08);padding:3px 8px;border-radius:6px;font-size:11px;line-height:1.25;white-space:nowrap}.room-label span{color:var(--muted)}.room-label.selected{border-color:var(--accent)}#props{background:var(--panel);border-left:1px solid var(--border);padding:14px;overflow-y:auto}#props h2{margin:0 0 12px;font-size:15px}#props h3{margin:16px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;flex:1;min-width:0}.field>span{color:var(--muted);font-size:12px}.field small{color:var(--muted);font-size:11px}.row{display:flex;gap:8px}input,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 8px;width:100%;min-width:0}input:focus,select:focus{outline:none;border-color:var(--accent)}input[type=color]{padding:2px;height:32px}input[type=checkbox]{width:auto}.check{display:flex;align-items:center;gap:8px;margin:2px 0 12px;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.actions button{border-color:var(--border);background:var(--panel-2)}.actions button.danger{border-color:#f8514966}.stat{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.stat span{color:var(--muted)}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;align-items:center;padding:5px 0}.list li i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:8px;vertical-align:middle}.list li span{color:var(--muted)}.hint{color:var(--muted);font-size:12px;line-height:1.6;margin-top:16px}.muted{color:var(--muted)}.small{font-size:11px}kbd{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:0 4px;font-size:11px}#budget{background:var(--panel);border-top:1px solid var(--border)}.budget-head{display:flex;align-items:center;gap:10px;padding:6px 12px}.budget-head .toggle{font-weight:600}.budget-head>button:last-child{margin-left:auto;border-color:var(--border);background:var(--panel-2)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:12px;white-space:nowrap}.chip i,.sw{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px}.chip.total{border-color:var(--accent)}.tabs{display:flex;align-items:center;gap:4px;padding:0 12px;border-bottom:1px solid var(--border)}.tabs button{border-radius:6px 6px 0 0}.tabs .small{margin-left:auto}.budget-body{height:230px;overflow:auto;padding:8px 12px 12px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:6px 8px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-weight:500;position:sticky;top:0;background:var(--panel)}tfoot td{font-weight:600;border-top:2px solid var(--border)}td.strong{font-weight:700;color:#cfe6ff}table.clickable tbody tr{cursor:pointer}table.clickable tbody tr:hover{background:var(--panel-2)}tr.sel{background:var(--accent-bg)!important}.params{display:flex;flex-direction:column;gap:10px}.param-grid{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.param-grid .field{max-width:190px;margin:0}.param-grid .check{margin:0 0 8px}.mat-table input,.mat-table select{padding:4px 6px}.mat-table td{text-align:left}.mat-table input[type=number]{max-width:90px}.params>button{align-self:flex-start;border-color:var(--border);background:var(--panel-2)}#status{padding:5px 12px;font-size:12px;color:var(--muted);background:var(--bg);border-top:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1200px){#workspace{grid-template-columns:1fr 260px}.brand span{display:none}}
