:root{--bg:#f5f5f5;--panel:#fff;--ink:#1a1a1a;--muted:#6b7280;--line:#e5e7eb;--accent:#b91c1c;--accent-2:#991b1b;--danger:#b91c1c;--warning:#b54708;--good:#15803d;--soft:#fef2f2;--soft-blue:#f9fafb;--shadow:0 10px 30px #00000014;--radius:16px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:#f5f5f5;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;color:var(--ink);white-space:nowrap;background:#e6edf3;border:0;border-radius:999px;padding:9px 14px;font-weight:700}button:hover{filter:brightness(.97)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:#fff}button.ghost{color:var(--accent-2);border:1px solid var(--line);background:0 0}button.danger{color:var(--danger);background:#fee4e2}button.small{padding:6px 10px;font-size:12px}button.icon{border-radius:10px;padding:8px;line-height:1}.app-shell{min-height:100vh;display:flex}.sidebar{color:#1a1a1a;border-right:1px solid var(--line);z-index:100;background:#fff;border-right:1px solid #e2e6ea;flex-direction:column;width:240px;min-width:240px;height:100vh;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.main-content{flex:1;max-width:1540px;margin-left:240px;padding:24px}.page-header{margin-bottom:20px}.page-header h1{letter-spacing:-.03em;margin:0 0 4px;font-size:clamp(13px,1.25vw,16px)}.page-header p{color:var(--muted);margin:0}.cards{grid-template-columns:repeat(5,minmax(160px,1fr));gap:14px;display:grid}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;min-height:104px;padding:16px}.card .label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700}.card .value{letter-spacing:-.03em;margin-top:7px;font-size:clamp(11px,1.1vw,16px);font-weight:800}.card .sub{color:var(--muted);margin-top:6px;font-size:13px}.card.good{background:#f6fef9;border-color:#abefc6}.card.warn{background:#fffcf5;border-color:#fedf89}.card.bad{background:#fffbfa;border-color:#fecdca}.panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:18px}.panel h2,.panel h3{letter-spacing:-.02em;margin:0 0 8px;font-size:14px}.grid{gap:16px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:14px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:600px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:5px 8px;font-size:11px}th{text-transform:uppercase;letter-spacing:.06em;color:#475467;background:#f8fafc;font-size:10px}tr:last-child td{border-bottom:0}tr:hover td{background:#fafcff}.numeric{text-align:right;font-variant-numeric:tabular-nums}input,textarea,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:8px 10px;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #0f766e1a}textarea{resize:vertical;min-height:110px}label{color:var(--ink);gap:5px;font-size:13px;font-weight:600;display:grid}.form-grid{gap:14px;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.field-hint{color:var(--muted);margin-top:3px;font-size:12px;font-weight:400}.pill,.status-pill{color:#344054;white-space:nowrap;background:#eef2f6;border-radius:999px;align-items:center;padding:4px 9px;font-size:12px;font-weight:700;display:inline-flex}.status-Estimating{color:#175cd3;background:#eff8ff}.status-Awarded,.status-Active{color:#067647;background:#ecfdf3}.status-Complete{color:#5925dc;background:#f4f3ff}.status-On-Hold{color:#b54708;background:#fffaeb}.status-Cancelled{color:#c01048;background:#fff1f3}.status-Planned{color:#155e75;background:#eef7ff}.status-draft{color:#344054;background:#eef2f6}.status-submitted{color:#175cd3;background:#eff8ff}.status-approved{color:#067647;background:#ecfdf3}.status-rejected{color:#c01048;background:#fff1f3}.status-invoiced{color:#5925dc;background:#f4f3ff}.status-sent{color:#175cd3;background:#eff8ff}.status-paid{color:#067647;background:#ecfdf3}.status-void{color:var(--muted);background:#eef2f6}.muted{color:var(--muted)}.bad{color:var(--danger)}.warn{color:var(--warning)}.good{color:var(--good)}.fine-print{color:var(--muted);font-size:12px}.nowrap{white-space:nowrap}.split{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.empty{color:var(--muted);text-align:center;padding:28px}.mini{width:95px;min-width:95px}.wide{min-width:260px}.progress{background:#eef2f6;border-radius:999px;height:10px;overflow:hidden}.progress-bar{background:var(--accent);border-radius:999px;width:0%;height:100%;transition:width .3s;display:block}.section-card{border:1px solid var(--line);background:#fbfdff;border-radius:16px;margin:14px 0;padding:14px}.notice{background:var(--soft-blue);border:1px solid #c7e7ff;border-radius:12px;padding:12px 14px;font-size:13px}.notice.warn{background:#fffaeb;border-color:#fedf89}.notice.good{background:#f6fef9;border-color:#abefc6}.notice.danger{background:#fffbfa;border-color:#fecdca}@media (max-width:768px){.sidebar{width:100%;height:auto;position:relative}.main-content{margin-left:0;padding:16px}.app-shell{flex-direction:column}.cards,.grid.four,.grid.three,.grid.two,.form-grid.four,.form-grid.three,.form-grid.two{grid-template-columns:1fr}}@media print{.sidebar,button,.no-print{display:none!important}.main-content{margin-left:0;padding:0}.panel,.card{box-shadow:none;break-inside:avoid}.table-wrap{overflow:visible}table{min-width:0;font-size:11px}}
