:root{color:#10131a;font-synthesis:none;text-rendering:geometricprecision;background:#f6f7fb;font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:236px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:#fff;border-right:1px solid #dce1eb;flex-direction:column;gap:20px;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.brand img{width:122px;height:auto;display:block}.sidebar nav{gap:6px;display:grid}.nav-item{color:#343946;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;height:42px;padding:0 12px;display:flex}.nav-item.active{color:#1f2fff;background:#eef1ff;font-weight:700}.user-block{border-top:1px solid #edf0f6;align-items:center;gap:10px;margin-top:auto;padding:12px;display:flex}.avatar{color:#fff;background:#4b5567;border-radius:50%;place-items:center;width:38px;height:38px;font-size:13px;font-weight:700;display:grid}.user-block span,.muted{color:#687083;font-size:13px;display:block}.workspace{min-width:0;padding:18px 22px 34px}.topbar,.request-header,.section-title,.panel-title{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar{margin-bottom:18px}.topbar h1,.section-title h2,.request-header h2{letter-spacing:0;margin:0}.topbar h1{font-size:21px}.topbar span,.request-header p,.back-link{color:#687083;font-size:13px}.topbar-actions,.header-actions{align-items:center;gap:10px;display:flex}.icon-button,.primary{color:#fff;background:#1f2fff;border:1px solid #1f2fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:0 14px;font-size:14px;font-weight:700;display:inline-flex}.icon-button{color:#202635;background:#fff;border-color:#d8deea;width:36px;padding:0}.primary.ghost{color:#1f2fff;background:#fff}.primary.full{width:100%}.primary:disabled,.icon-button:disabled{opacity:.55;cursor:not-allowed}.content-stack{gap:16px;display:grid}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric,.panel{background:#fff;border:1px solid #dce1eb;border-radius:8px}.metric{padding:16px}.metric span{color:#687083;font-size:13px}.metric strong{margin-top:8px;font-size:30px;display:block}.two-column{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:16px;display:grid}.panel{padding:14px}.panel-title{border-bottom:1px solid #eef1f6;margin-bottom:12px;padding-bottom:10px}.panel-title h3{margin:0;font-size:16px}.panel-title span,.filter-row span,.status{color:#596173;background:#f1f4f9;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.status-needs_review,.status-ai_analysis{color:#a26000;background:#fff7df}.status-questionnaire_confirmed,.status-proposal_generated{color:#16753a;background:#e9f8ee}.status-proposal_sent{color:#1f2fff;background:#eef1ff}.request-layout{grid-template-columns:310px minmax(0,1fr);gap:16px;display:grid}.request-list{background:#fff;border:1px solid #dce1eb;border-radius:8px;align-self:start;padding:12px}.section-title.compact{margin-bottom:10px}.filter-row{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.request-row{width:100%;color:inherit;text-align:left;background:#fff;border:1px solid #e2e7f0;border-radius:8px;gap:5px;margin-bottom:8px;padding:12px;display:grid}.request-row.active{border-color:#1f2fff;box-shadow:inset 3px 0 #1f2fff}.request-row span,.request-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.request-row small{color:#687083}.request-detail{gap:14px;min-width:0;display:grid}.request-header{background:#fff;border:1px solid #dce1eb;border-radius:8px;padding:16px}.request-header h2{margin-top:6px;font-size:24px}.workbench{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:14px;display:grid}.main-column,.right-rail{gap:14px;min-width:0;display:grid}.file-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.file-tile{color:inherit;gap:8px;text-decoration:none;display:grid}.preview{aspect-ratio:1.55;background:#f7f8fb;border:1px solid #dce1eb;border-radius:8px;place-items:center;display:grid;overflow:hidden}.preview img{object-fit:cover;width:100%;height:100%}.file-tile strong,.file-tile span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-tile span{color:#687083;font-size:12px}.source-text,.ai-summary{color:#343946;margin:12px 0 0;line-height:1.5}.ai-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.ai-field{border:1px solid #e1e6ef;border-radius:8px;gap:6px;padding:10px;display:grid}.ai-field span,.ai-field small,.field span{color:#687083;font-size:12px}.confidence{background:#edf0f5;border-radius:999px;height:6px;overflow:hidden}.confidence i{border-radius:inherit;background:#15a64a;height:100%;display:block}.warning-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.warning-row span{color:#8a5600;background:#fff7df;border-radius:999px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:inline-flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.field{gap:6px;display:grid}.field.wide{grid-column:1/-1}.field input,.field select{color:#10131a;background:#fff;border:1px solid #cfd6e3;border-radius:7px;width:100%;height:38px;padding:0 10px}.toggle-line{color:#343946;align-items:center;gap:8px;min-height:38px;display:flex}.customer-card{grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.customer-card span,.customer-card small{color:#687083;margin-top:4px;font-size:13px;display:block}.proposal-list,.supplier-row,.similar-row{gap:8px;display:grid}.proposal-row{border-bottom:1px solid #edf0f5;grid-template-columns:34px minmax(0,1fr) auto 26px;align-items:center;gap:8px;padding:8px 0;display:grid}.proposal-row small,.supplier-row span,.supplier-row small,.similar-row span,.similar-row small{color:#687083;font-size:12px}.market-range{color:#13903e;font-size:22px;font-weight:800}.supplier-row,.similar-row{border-top:1px solid #edf0f5;margin-top:10px;padding-top:10px}.timeline{gap:12px;display:grid}.timeline-item{grid-template-columns:12px minmax(0,1fr);align-items:start;gap:8px;display:grid}.timeline-item i{background:#1f2fff;border-radius:50%;width:9px;height:9px;margin-top:4px}.timeline-item span{color:#687083;grid-column:2;font-size:12px}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #edf0f5;padding:10px 8px}.data-table th{color:#687083;font-size:12px;font-weight:700}.status-breakdown,.settings-grid{flex-wrap:wrap;gap:8px;display:flex}.link-customer,.supplier-form{gap:10px;margin-top:12px;display:grid}.mini-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.settings-grid div{border:1px solid #e1e6ef;border-radius:8px;min-width:220px;padding:12px}.settings-grid span{color:#687083;margin-top:5px;font-size:13px;display:block}.empty-state,.loading-state{text-align:center;background:#fff;border:1px solid #dce1eb;border-radius:8px;align-content:center;place-items:center;gap:12px;min-height:420px;display:grid}.empty-state p,.empty-inline{color:#687083}.empty-inline{background:#fafbfe;border:1px dashed #d8deea;border-radius:8px;padding:14px;font-size:14px}.error-banner{color:#aa3600;background:#fff5ef;border:1px solid #ffd4c2;border-radius:8px;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;display:flex}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1180px){.app-shell{grid-template-columns:82px minmax(0,1fr)}.brand img{width:52px}.nav-item{justify-content:center;padding:0}.nav-item span,.nav-item{font-size:0}.user-block{display:none}.request-layout,.workbench,.two-column{grid-template-columns:1fr}}@media (width<=760px){.app-shell{display:block}.sidebar{flex-direction:row;height:auto;position:static;overflow-x:auto}.sidebar nav{display:flex}.brand{display:none}.workspace{padding:14px}.request-header,.topbar,.section-title{flex-direction:column;align-items:flex-start}.header-actions{flex-wrap:wrap}.metric-grid,.file-grid,.ai-grid,.form-grid{grid-template-columns:1fr}}
