:root{--text:#1f2933;--muted:#5f6b7a;--line:#d9dee5;--panel:#f6f7f9;--accent:#1f6feb;--accent-soft:#e7f0ff;--bad:#c0392b;--warn:#c27c0e;--good:#1e8e3e;color:var(--text);background:#fff;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}*{box-sizing:border-box}body{background:#fff;margin:0}h3{margin:16px 0 8px}button,input,select{font:inherit;border:1px solid var(--line);color:var(--text);background:#fff;border-radius:8px;min-height:42px;padding:8px 12px}button{cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.danger{color:var(--bad)}button.small{min-height:32px;padding:4px 8px}input[type=checkbox]{vertical-align:middle;width:20px;height:20px;min-height:auto}.app{grid-template:"top top""side main"1fr/340px 1fr;height:100vh;display:grid}.topbar{color:#fff;background:#2c3e50;flex-wrap:wrap;grid-area:top;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.project-name{color:#fff;background:0 0;border:1px solid #0000;min-width:200px;font-size:20px;font-weight:600}.project-name:hover,.project-name:focus{border-color:#fff6}.actions{flex-wrap:wrap;gap:8px;display:flex}.sidebar{border-right:1px solid var(--line);background:var(--panel);grid-area:side;padding:12px;overflow-y:auto}.cabinet-list{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.cabinet-item{text-align:left;flex-direction:column;align-items:flex-start;display:flex}.cabinet-item small{color:var(--muted)}.cabinet-item.active{border-color:var(--accent);background:var(--accent-soft)}.row{gap:6px;margin-bottom:12px;display:flex}.cabinet-form .grid2,.settings .grid2{grid-template-columns:1fr 1fr;gap:8px 10px;display:grid}.field{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.field span{color:var(--muted);font-size:14px}.field input,.field select{width:100%}.main{flex-direction:column;grid-area:main;min-width:0;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--line);gap:4px;padding:8px 12px 0;display:flex;overflow-x:auto}.tabs button{white-space:nowrap;border-bottom:none;border-radius:8px 8px 0 0}.tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.summary{flex-wrap:wrap;gap:16px;padding:8px 16px;font-weight:600;display:flex}.summary .bad{color:var(--bad)}.summary .warn{color:var(--warn)}.summary .good{color:var(--good)}.content{flex:1;min-height:0;padding:8px 16px 16px;position:relative;overflow:auto}.toggle{z-index:2;background:#fffd;border-radius:8px;padding:6px 10px;position:absolute;top:12px;right:24px}.viewer3d{border-radius:8px;width:100%;height:100%;min-height:400px;overflow:hidden}.front-view{width:100%;height:100%;min-height:400px}table.data{border-collapse:collapse;width:100%;margin-bottom:16px}table.data th,table.data td{border:1px solid var(--line);text-align:left;padding:6px 8px}table.data th{background:var(--panel)}table.data .num{text-align:right;font-variant-numeric:tabular-nums}table.data .strong{font-weight:700}table.edit input[type=number],table.edit input:not([type]){width:100%;min-width:70px}.total{font-size:20px}.issues{padding:0;list-style:none}.issues li,p.issues{border-radius:8px;margin-bottom:6px;padding:8px 12px}.issues .error,p.issues.error{color:#8a1c12;background:#fdecea}.issues .warning{color:#7a4a00;background:#fff4e0}.ok{color:var(--good);font-weight:600}.sheets{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px;display:grid}.sheet{margin:0}.sheet svg{border:1px solid var(--line);background:#fff;width:100%;height:auto}.sheet text{fill:#222}@media (width<=800px){.app{grid-template:"top""side""main"1fr/1fr;height:auto}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.content{min-height:60vh}.sheets{grid-template-columns:1fr}}@media print{.topbar,.sidebar,.tabs,.toggle{display:none}.app{height:auto;display:block}.content{overflow:visible}.sheet{break-inside:avoid}}
