:root{color:#182026;background:#eef2f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;letter-spacing:0}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{border:1px solid #9fb0bd;background:#fff;color:#182026;border-radius:6px;min-height:38px;padding:0 14px;cursor:pointer}button:hover{border-color:#0c6f78}button:disabled{cursor:not-allowed;color:#81909b;background:#e7ebee}input,select{width:100%;border:1px solid #aab8c2;border-radius:6px;min-height:36px;padding:0 10px;color:#182026;background:#fff}.app-shell{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:100vh}.sidebar{background:#1d2a31;color:#f5f8fa;padding:22px;display:flex;flex-direction:column;gap:18px}.brand{display:grid;gap:3px}.brand span{color:#9db8c7;font-size:13px;text-transform:uppercase}.brand strong{font-size:22px;line-height:1.1}.quick-form{display:grid;gap:10px;padding:14px;background:#263741;border:1px solid #3f525d;border-radius:8px}.quick-form label{display:grid;gap:5px;color:#dbe6eb;font-size:13px}.current-project{display:grid;gap:6px;padding:14px;background:#17424a;border:1px solid #65b8ae;border-radius:8px}.current-project span{color:#9bd0d3;font-size:12px;text-transform:uppercase}.current-project strong{font-size:16px}.current-project small,.current-project em{color:#d5e6eb;font-style:normal}.current-project-form label{display:grid;gap:5px;color:#dbe6eb;font-size:13px}.current-project button{margin-top:6px}.workspace{min-width:0;padding:24px;display:grid;gap:16px;align-content:start}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}h1,h2,h3,p{margin:0}h1{font-size:26px;line-height:1.2}h2{font-size:18px}h3{font-size:15px}.topbar p{color:#5a6872;margin-top:4px}.actions,.export-actions{display:flex;flex-wrap:wrap;gap:8px}.actions button:last-child,.export-actions button{background:#0c6f78;color:#fff;border-color:#0c6f78}.actions button.secondary{background:#fff;color:#9b2c24;border-color:#d8a09a}.actions button.secondary:hover{border-color:#9b2c24}.top-actions{align-items:flex-end}.project-direction{display:grid;gap:5px;min-width:210px;color:#53616b;font-size:13px}.status-line{min-height:36px;display:flex;align-items:center;padding:0 12px;border-radius:6px;background:#fff;border:1px solid #d2dbe1;color:#53616b}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric{background:#fff;border:1px solid #d2dbe1;border-radius:8px;min-height:82px;padding:14px;display:grid;gap:8px}.metric span{color:#62717a}.metric strong{font-size:28px;line-height:1}.metric.ok strong{color:#198754}.metric.danger strong{color:#b42318}.tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid #cbd6dd;padding-bottom:8px}.tabs button{min-width:92px;background:transparent}.tabs button.active{background:#1d2a31;border-color:#1d2a31;color:#fff}.panel{display:grid;gap:14px;background:#fff;border:1px solid #d2dbe1;border-radius:8px;padding:16px;min-width:0}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.project-browser{align-content:start}.project-filter,.room-filter{display:grid;gap:5px;min-width:min(360px,100%);color:#53616b;font-size:13px}.room-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.room-tools .room-filter{min-width:210px}.project-browser-list{display:grid;gap:8px}.project-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.project-row-main{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(120px,1fr) 120px 140px;gap:12px;align-items:center;text-align:left;min-height:58px;padding:10px 12px;border:1px solid #d2dbe1;border-radius:6px;background:#fff;width:100%}.project-row-main.static{cursor:default}.project-row-main span:first-child{display:grid;gap:3px}.project-row-main small,.project-row-main em{color:#5d6b74;font-style:normal}.project-row-main b{color:#0c6f78;font-weight:700;text-align:right}.project-row.selected .project-row-main{border-color:#0c6f78;background:#edf7f8}.project-row.archived .project-row-main{background:#f7f9fa}.project-row-action{white-space:nowrap;min-width:140px}.secondary-action{margin-top:6px}.current-project-form{display:grid;gap:8px}.table{display:grid;gap:1px;overflow:auto;border:1px solid #d6dfe5;border-radius:6px}.row{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px;min-width:720px;padding:10px 12px;background:#fff;align-items:center}.rooms .row{grid-template-columns:100px 1.1fr 130px 2fr 1.4fr;min-width:920px}.results .row{grid-template-columns:1.35fr 1.15fr 105px 95px 95px 85px 95px 95px 75px 105px 130px 120px 100px 105px 75px;min-width:1880px}.row.header{background:#edf3f6;color:#45545d;font-weight:700}.row.total{background:#f1faf8;font-weight:700}.row.variant-muted{color:#6d7b84;background:#f8fafb}.split{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px}.catalog{display:grid;gap:10px;align-content:start;border-left:1px solid #d6dfe5;padding-left:14px}.catalog-item{display:grid;gap:4px;padding:10px;border:1px solid #d6dfe5;border-radius:6px}.catalog-item span{color:#64727c;font-size:13px}.calc-help{display:grid;gap:6px;background:#f7f9fa;border:1px solid #d2dbe1;border-radius:8px;padding:14px;color:#263741}.calc-help p{color:#53616b;margin:0}.catalog-grid{display:grid;gap:12px}.catalog-card{display:grid;gap:12px;border:1px solid #d2dbe1;border-radius:8px;padding:14px;background:#fbfcfd}.catalog-card.new{background:#f4faf9;border-color:#b8d8d6}.catalog-fields{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.catalog-fields label{display:grid;gap:5px;color:#53616b;font-size:13px}.catalog-fields .check-line{display:flex;align-items:center;gap:8px;min-height:36px;padding-top:18px}.catalog-fields .check-line input{width:auto;min-height:auto}.pill{width:fit-content;border-radius:999px;padding:4px 9px;font-size:13px}.pill.ok{background:#dff3e8;color:#11613a}.pill.warn{background:#fff0d8;color:#7a4a00}.alert-list{display:grid;gap:8px}.alert{display:grid;gap:4px;border-left:4px solid #6d7b84;background:#f7f9fa;padding:10px 12px;border-radius:6px}.alert.warn{border-color:#d98600}.alert.high{border-color:#b42318}.alert span{color:#53616b}.alert-link{width:fit-content;min-height:32px;background:#fff;color:#0c6f78;border-color:#9fb0bd}.empty{min-height:120px;display:grid;place-items:center;color:#667780;background:#f7f9fa;border:1px dashed #b7c4cc;border-radius:6px;text-align:center;padding:20px}.export-panel{min-height:180px;align-content:start}.import-panel{grid-template-columns:minmax(0,1fr)}.import-panel p{color:#53616b;margin-top:4px}.upload-line{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:10px;align-items:center}.room-grid{display:grid;gap:12px}.room-card{display:grid;gap:12px;border:1px solid #d2dbe1;border-radius:8px;padding:14px;background:#fbfcfd}.room-card.excluded{background:#f7f9fa}.room-card:target{border-color:#0c6f78;box-shadow:0 0 0 3px #0c6f7829}.room-card-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.room-fields,.material-line,.stair-fields{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px}.material-line{grid-template-columns:minmax(240px,2fr) minmax(110px,1fr) minmax(120px,1fr) minmax(150px,1fr)}.room-fields label,.material-line label,.stair-fields label{display:grid;gap:5px;color:#53616b;font-size:13px}.baseboard-line{color:#263741;background:#eef4f7;border:1px solid #d2dbe1;border-radius:6px;padding:9px 10px}.stair-section{display:grid;gap:10px;padding:12px;border:1px solid #d2dbe1;border-radius:8px;background:#f7fafb}.stair-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.stair-head h3{margin:0}.stair-section small{color:#63727b}.stair-list{display:flex;flex-wrap:wrap;gap:8px}.stair-list span{border:1px solid #c8d4db;border-radius:999px;background:#fff;padding:5px 10px;color:#263741}.stair-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#eef4f7;border:1px solid #d2dbe1;border-radius:6px;padding:9px 10px;color:#263741}.stair-summary span{color:#263741}.stair-summary button{min-height:32px;margin-left:auto}.system-settings{background:#f7fafb}.import-summary{display:grid;gap:10px;background:#fff;border:1px solid #d2dbe1;border-radius:8px;padding:12px 14px}.import-summary.warning{border-color:#d98600;background:#fffaf0}.import-summary.ok{border-color:#8ec7a7}.import-summary div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.import-summary span,.import-summary p,.import-summary summary{color:#53616b}.import-summary pre{max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word;margin:6px 0 0;padding:10px;border:1px solid #d2dbe1;border-radius:6px;background:#f7f9fa;color:#263741;font:13px/1.45 ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}@media (max-width: 980px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto}.split{grid-template-columns:1fr}.catalog{border-left:0;padding-left:0}.upload-line,.user-row,.user-row.new-user,.room-fields,.material-line,.stair-fields,.catalog-fields{grid-template-columns:1fr 1fr}}@media (max-width: 680px){.workspace{padding:16px}.topbar{display:grid}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs button{flex:1 1 120px}.panel-head{display:grid}.room-tools{justify-content:stretch}.room-tools .room-filter{min-width:0}.project-row,.project-row-main{grid-template-columns:1fr}.project-row-main b{text-align:left}.project-row-action{width:100%}.upload-line,.user-row,.user-row.new-user,.room-fields,.material-line,.stair-fields,.catalog-fields{grid-template-columns:1fr}}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#eef2f5}.login-card{width:min(420px,100%);display:grid;gap:14px;background:#fff;border:1px solid #d2dbe1;border-radius:8px;padding:24px;box-shadow:0 16px 45px #1820261a}.login-card p{color:#53616b}.login-card label{display:grid;gap:5px;color:#53616b;font-size:13px}.user-chip{min-height:38px;display:inline-flex;align-items:center;gap:4px;padding:0 10px;border:1px solid #c8d4db;border-radius:6px;background:#fff;color:#53616b}.user-management p{color:#53616b}.user-list{display:grid;gap:8px}.user-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(130px,160px) minmax(90px,120px) auto minmax(140px,1fr) auto;gap:10px;align-items:end;padding:10px;border:1px solid #d2dbe1;border-radius:6px;background:#fff}.user-row.new-user{grid-template-columns:minmax(120px,1fr) minmax(150px,1fr) minmax(130px,160px) minmax(90px,120px) auto;background:#f4faf9}.user-row label{display:grid;gap:5px;color:#53616b;font-size:13px}.user-row .check-line{display:flex;align-items:center;gap:8px;min-height:36px}.user-row .check-line input{width:auto;min-height:auto}
