:root{--bg:#f4f6f8;--panel:#fff;--border:#d8dee5;--text:#1d2733;--muted:#66788c;--accent:#1f6fd6;--accent-dark:#16549f;--danger:#c92a2a;--ok:#2b8a3e;--warn:#b8860b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-size:14px}h1{margin:0 0 16px;font-size:22px}h2{margin:0 0 10px;font-size:16px}.app{flex-direction:column;min-height:100vh;display:flex}main{flex:1;width:100%;max-width:1500px;margin:0 auto;padding:20px 24px}.centered{justify-content:center;align-items:center;min-height:100vh;display:flex}.topbar{color:#fff;background:#1d2733;align-items:center;gap:18px;height:52px;padding:0 24px;display:flex}.topbar .brand{font-size:16px;font-weight:600}.topbar nav{gap:4px;display:flex}.topbar nav a{color:#c6d2de;border-radius:6px;padding:6px 12px;text-decoration:none}.topbar nav a:hover{color:#fff;background:#2c3a4a}.topbar nav a.active{background:var(--accent);color:#fff}.topbar .spacer{flex:1}.topbar .muted{color:#9fb0c0}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:7px 14px;font-size:14px}button:hover{background:var(--accent-dark)}button:disabled{cursor:default;background:#a9b6c4}button.ghost{border:1px solid var(--border);color:inherit;background:0 0}button.ghost:hover{background:#7f7f7f1f}button.danger{background:var(--danger)}button.small{padding:3px 9px;font-size:12.5px}input,select{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:6px;padding:6px 8px;font-size:14px}input:focus,select:focus{outline:2px solid #9cc3f0}input.num{width:84px}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12.5px;display:flex}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:16px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row.top{align-items:flex-start}.muted{color:var(--muted)}.error{color:var(--danger)}.warn{color:var(--warn)}.ok{color:var(--ok)}table.grid{border-collapse:collapse;width:100%}table.grid th,table.grid td{border-bottom:1px solid var(--border);text-align:left;padding:7px 10px}table.grid th{color:var(--muted);font-size:12.5px;font-weight:500}table.grid tr:hover td{background:#f0f4f8}table.grid tr.clickable{cursor:pointer}.badge{border-radius:999px;padding:2px 9px;font-size:12px;display:inline-block}.badge.draft{color:var(--accent-dark);background:#e7f0fb}.badge.confirmed{color:var(--ok);background:#e3f3e6}.badge.leftover{color:#8a6100;background:#fdf2d9}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;width:340px;padding:32px;display:flex}.layout-page{grid-template-columns:1fr 320px;gap:16px;display:grid}.sheet-tabs{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.sheet-tab{border:1px solid var(--border);background:var(--panel);cursor:pointer;color:var(--text);border-radius:8px;padding:6px 12px;font-size:13px}.sheet-tab:hover{background:#eef3f8}.sheet-tab.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.svg-wrap{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px}.svg-wrap svg{touch-action:none;width:100%;height:auto;display:block}.piece{cursor:grab}.piece:active{cursor:grabbing}.piece rect{fill:#bcd6f5;stroke:#2b5f9e;stroke-width:1px}.piece.selected rect{fill:#8fbdf0;stroke:#174a85;stroke-width:2px}.piece.pinned rect{fill:#f5d9a8;stroke:#a8741a}.piece.pinned.selected rect{fill:#f0c87e;stroke:#7d5511;stroke-width:2px}.piece text{pointer-events:none;-webkit-user-select:none;user-select:none}.free-rect{fill:#eef1f4}.free-rect.leftover{fill:#ddf0dd}.side-panel{flex-direction:column;gap:12px;display:flex}.metric-row{justify-content:space-between;padding:3px 0;display:flex}.msg-list{margin:6px 0 0;padding-left:18px}.msg-list li{margin-bottom:3px}.unplaced-chip{border:1px dashed var(--border);border-radius:8px;align-items:center;gap:8px;margin-bottom:6px;padding:6px 10px;display:flex}.toolbar{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}
