:root{color:#17202a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}h1{color:#111827;letter-spacing:0;font-size:34px;font-weight:760;line-height:1.1}h2{color:#17202a;letter-spacing:0;font-size:18px;font-weight:720}h3{color:#17202a;letter-spacing:0;margin:0;font-size:15px;font-weight:720}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #e2e8f0;padding:14px 16px}th{color:#64748b;text-transform:uppercase;font-size:12px;font-weight:720}td strong,td span{display:block}td span{color:#64748b;margin-top:3px;font-size:13px}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.boot-state,.login-page{background:#f4f6f8;align-items:center;min-height:100vh;padding:24px;display:grid}.boot-state{color:#64748b;text-align:center;justify-content:center;gap:12px}.login-page{justify-items:center}.login-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:24px;width:100%;max-width:440px;padding:28px;display:grid}.login-brand{padding:0}.login-brand strong{color:#111827}.login-copy{gap:8px;display:grid}.login-copy h1{font-size:30px}.login-copy p{color:#64748b}.login-form{gap:14px;display:grid}.login-form label{color:#475569;gap:7px;font-size:13px;font-weight:700;display:grid}.spinner,.spin{animation:.8s linear infinite spin}.spinner{border:3px solid #dbe4ee;border-top-color:#0f766e;border-radius:999px;justify-self:center;width:32px;height:32px}.sidebar{color:#e5e7eb;background:#0f172a;flex-direction:column;gap:24px;padding:24px 18px;display:flex}.brand{align-items:center;gap:12px;padding:4px 6px 12px;display:flex}.brand strong,.brand span{display:block}.brand strong{color:#fff;letter-spacing:0;font-size:17px}.brand span{color:#94a3b8;font-size:13px}.brand-mark{color:#042f2e;background:#14b8a6;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.nav-section{gap:6px;display:grid}.nav-title,.eyebrow{color:#94a3b8;letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:720}.nav-link{color:#cbd5e1;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:11px 12px;display:flex}.nav-link:hover,.nav-link.active{color:#fff;background:#1e293b}.nav-link.disabled{color:#64748b;cursor:not-allowed;opacity:.7}.workspace{min-width:0;padding:24px 28px 40px}.topbar{background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:14px 16px;display:flex}.topbar strong{color:#334155;font-size:14px}.topbar-actions{color:#475569;align-items:center;gap:8px;font-size:14px;display:flex}.status-dot{border-radius:999px;width:9px;height:9px}.status-dot.online{background:#22c55e}.page-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px;display:flex}.page-header p{color:#64748b;max-width:720px;margin-top:8px}.button,.chip{border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:9px 14px;display:inline-flex}.button{color:#1f2937;background:#fff;font-weight:680}.button:disabled{color:#64748b;background:#f1f5f9;border-color:#dbe4ee}.button.primary{color:#fff;background:#0f766e;border-color:#0f766e}.button.wide-button{width:100%}.chip{color:#475569;background:#fff}.chip.active{color:#115e59;background:#dff6f2;border-color:#99f6e4}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.metric,.panel,.list-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px}.metric{padding:18px}.metric span{color:#64748b;font-size:13px;font-weight:700}.metric strong{color:#111827;margin:8px 0 4px;font-size:32px;line-height:1.2;display:block}.metric p,.muted-text{color:#64748b;font-size:14px}.metric.blue{border-left:4px solid #2563eb}.metric.amber{border-left:4px solid #f59e0b}.metric.green{border-left:4px solid #22c55e}.metric.red{border-left:4px solid #ef4444}.work-layout,.detail-grid{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:18px;display:grid}.panel{padding:18px}.panel-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-title a{color:#0f766e;font-size:14px;font-weight:700}.action-list,.list-stack,.timeline{gap:10px;display:grid}.action-row,.list-item,.timeline-row{align-items:center;gap:12px;display:grid}.action-row{border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;padding:14px}.action-row.urgent{background:#fff7ed;border-color:#fed7aa}.action-row span,.list-item span,.timeline-row span{color:#64748b;margin-top:2px;font-size:13px;display:block}.table-wrap{overflow-x:auto}.icon-link{color:#0f766e;border:1px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-link.danger{color:#b91c1c}.filter-row{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.badge{color:#3730a3;white-space:nowrap;background:#eef2ff;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:760;display:inline-flex}.badge.pending,.badge.in_progress,.badge.invoice_sent,.badge.нужен{color:#92400e;background:#fffbeb}.badge.accepted,.badge.active,.badge.completed,.badge.paid_confirmed,.badge.новая{color:#166534;background:#dcfce7}.badge.rejected,.badge.disputed,.badge.cancelled{color:#991b1b;background:#fee2e2}.spec-list{gap:12px;display:grid}.spec-list div{border-bottom:1px solid #eef2f7;justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.spec-list div:last-child{border-bottom:0;padding-bottom:0}.spec-list dt{color:#64748b;font-size:13px}.spec-list dd{color:#111827;text-align:right;margin:0;font-weight:680}.preview-panel{gap:12px;display:grid}.house-preview{background:#f8fafc;border:1px solid #dbe4ee;border-radius:8px;height:360px;position:relative;overflow:hidden}.house-preview canvas{width:100%;height:100%;display:block}.preview-overlay,.preview-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.preview-overlay{pointer-events:none;position:absolute;top:12px;left:12px}.preview-overlay span,.preview-meta span{color:#334155;background:#ffffffeb;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:5px;padding:6px 8px;font-size:12px;font-weight:720;display:inline-flex}.preview-meta span{background:#f8fafc}.preview-empty{color:#64748b;text-align:center;place-items:center;gap:10px;min-height:220px;padding:24px;display:grid}.overlay-error{z-index:1;background:#ffffffeb;position:absolute;inset:0}.estimate-lines,.change-grid{gap:8px;display:grid}.estimate-line,.change-row{border:1px solid #eef2f7;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.estimate-line span,.change-row span{color:#64748b;font-size:13px}.estimate-line strong,.change-row strong{color:#111827;text-align:right;word-break:break-word;font-size:14px}.spec-list.company div{align-items:flex-start}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{color:#475569;gap:7px;font-size:13px;font-weight:700;display:grid}.action-form,.document-upload{border:1px solid #e2e8f0;border-radius:8px;gap:12px;padding:14px;display:grid}.action-form+.action-form,.action-form+.button,.button+.action-form{margin-top:10px}.action-form label,.document-upload label{color:#475569;gap:7px;font-size:13px;font-weight:700;display:grid}.document-upload{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}.form-grid .wide{grid-column:1/-1}input,textarea,select{color:#111827;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px}input:focus,textarea:focus,select:focus{border-color:#14b8a6;outline:0;box-shadow:0 0 0 3px #14b8a629}textarea{resize:vertical;min-height:92px}select[multiple]{min-height:116px}.list-item{grid-template-columns:auto minmax(0,1fr) auto auto;padding:14px}.list-item.payment-row{grid-template-columns:auto minmax(0,1fr) auto}.document-list{gap:8px;display:grid}.document-row{border:1px solid #eef2f7;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;display:grid}.document-row strong,.document-row span{display:block}.document-row span{color:#64748b;margin-top:2px;font-size:13px}.list-item.clickable:hover,.action-row:hover{border-color:#14b8a6}.timeline-row{border-bottom:1px solid #eef2f7;grid-template-columns:auto minmax(0,1fr) auto;padding:12px 0}.timeline-row:last-child{border-bottom:0}.timeline-index{color:#075985;background:#e0f2fe;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;font-weight:760;display:inline-flex}.action-panel{align-self:start}.empty-state{background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:flex-start;gap:12px;padding:28px;display:grid}.panel>.empty-state{border:0;padding:18px 0}.error-state{color:#991b1b}.form-error,.form-success{border-radius:8px;padding:10px 12px;font-size:14px}.form-error{color:#991b1b;background:#fee2e2}.form-success{color:#166534;background:#dcfce7}.wide{grid-column:1/-1}.toggle-row{flex-wrap:wrap;gap:12px;display:flex}.toggle-row label{border:1px solid #e2e8f0;border-radius:8px;flex-direction:row;align-items:center;gap:8px;padding:10px 12px;display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1050px){.app-shell,.work-layout,.detail-grid,.metric-grid{grid-template-columns:1fr}.sidebar{position:static}.page-header,.topbar{flex-direction:column;align-items:stretch}}@media (width<=680px){.workspace{padding:18px 14px 32px}.list-item{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.form-grid,.document-upload{grid-template-columns:1fr}.document-row{grid-template-columns:auto minmax(0,1fr)}th,td{padding:12px 10px}}
