:root{color-scheme:light;--bg: #f7f7f8;--panel: #ffffff;--panel-2: #f4f4f5;--panel-3: #ececee;--border: #e8e8ea;--border-strong: #d6d6da;--text: #18181b;--text-2: #3f3f46;--muted: #71717a;--faint: #a1a1aa;--ink: #18181b;--ink-hover: #000000;--accent: #2563eb;--accent-2: #1d4ed8;--accent-soft: #eef3ff;--danger: #dc2626;--danger-soft: #fef2f2;--warn: #b45309;--warn-soft: #fff7ed;--ok: #15803d;--ok-soft: #f0fdf4;--radius: 10px;--radius-sm: 7px;--radius-pill: 999px;--shadow: none;--shadow-pop: 0 16px 40px -20px rgba(24, 24, 27, .28), 0 2px 8px -4px rgba(24, 24, 27, .08);--ring: 0 0 0 3px rgba(37, 99, 235, .16);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Roboto, Helvetica, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.mono,.procurement-metric strong,.kanban-numbers strong,td,th{font-variant-numeric:tabular-nums}a{color:var(--accent-2);text-decoration:none;transition:color .12s ease}a:hover{text-decoration:underline}button{background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:var(--radius-sm);padding:8px 14px;cursor:pointer;font-size:13px;font-weight:500;transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}button:hover{background:var(--ink-hover);border-color:var(--ink-hover)}button:focus-visible{outline:none;box-shadow:var(--ring)}button.secondary{background:var(--panel);border:1px solid var(--border);color:var(--text-2)}button.secondary:hover{background:var(--panel-2);border-color:var(--border-strong);color:var(--text)}button.secondary.active{background:var(--ink);border-color:var(--ink);color:#fff}button.ghost{background:transparent;border:1px solid transparent;color:var(--muted)}button.ghost:hover{background:var(--panel-2);color:var(--text)}button.danger{background:var(--danger);border-color:var(--danger)}button.danger:hover{background:#b91c1c;border-color:var(--danger)}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 11px;font-size:13px;width:100%;font-family:inherit;transition:border-color .12s ease,box-shadow .12s ease}input::placeholder,textarea::placeholder{color:var(--faint)}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}textarea{font-family:var(--mono);resize:vertical;min-height:80px}label{display:block;font-size:11px;font-weight:500;letter-spacing:.01em;color:var(--muted);margin-bottom:5px}.field{margin-bottom:10px}.app{display:grid;grid-template-columns:248px 1fr;height:100vh;transition:grid-template-columns .16s ease}.app.sidebar-collapsed{grid-template-columns:68px 1fr}.sidebar{display:flex;flex-direction:column;background:var(--panel);border-right:1px solid var(--border);padding:16px 0 12px;overflow-y:auto}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 16px 16px}.sidebar h1{display:flex;align-items:center;color:var(--text);margin:0}.sidebar h1 svg{display:block;height:22px;width:auto}.sidebar-toggle{width:28px;height:28px;padding:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);border:1px solid transparent;font-size:15px}.sidebar-toggle:hover{background:var(--panel-2);border-color:var(--border);color:var(--text)}.sidebar-meta{padding:0 16px 14px;margin-bottom:6px;font-size:12px;color:var(--muted);line-height:1.6}.sidebar-meta .mono{word-break:break-all;margin-top:2px;color:var(--faint)}.sidebar nav a{position:relative;display:flex;align-items:center;gap:11px;min-height:36px;margin:1px 10px;padding:8px 11px;border-radius:var(--radius-sm);color:var(--text-2);font-size:13.5px;font-weight:450;transition:background .12s ease,color .12s ease}.sidebar nav a:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.sidebar nav a.active{background:var(--panel-2);color:var(--text);font-weight:550}.sidebar nav a.active:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--ink)}.nav-short{display:none;width:36px;font-size:11px;font-weight:700;letter-spacing:.02em;text-align:center}.app.sidebar-collapsed .sidebar nav a.active:before{left:0}.app.sidebar-collapsed .sidebar h1{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--radius-sm);background:var(--ink);color:#fff;letter-spacing:0}.app.sidebar-collapsed .sidebar h1 svg{height:17px}.app.sidebar-collapsed .sidebar-head{display:grid;justify-content:center}.app.sidebar-collapsed .nav-label,.app.sidebar-collapsed .sidebar-meta{display:none}.app.sidebar-collapsed .nav-short{display:inline-block}.app.sidebar-collapsed .sidebar nav a{justify-content:center;padding:8px 4px}.main{padding:28px 36px 56px;overflow-y:auto}.main h2{margin:0 0 6px;font-size:21px;font-weight:600;letter-spacing:-.012em}.banner{background:var(--accent-soft);border:1px solid transparent;color:var(--accent-2);padding:9px 13px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:12px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}.row>button{flex:0 0 auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:500;font-size:11px;letter-spacing:.04em;text-transform:uppercase;background:var(--panel);border-bottom-color:var(--border-strong)}tbody tr:last-child td{border-bottom:0}tbody tr{transition:background .1s ease}tbody tr:hover td{background:var(--panel-2)}tr.deleted td{color:var(--muted);text-decoration:line-through}.mono{font-family:var(--mono);font-size:12px;color:var(--text-2)}.muted{color:var(--muted);font-size:12px}.error{color:var(--danger);margin-top:8px;font-size:13px}.ok{color:var(--ok);margin-top:8px;font-size:13px}.login{height:100vh;display:grid;place-items:center}.login .card{width:360px}.login h2{margin-top:0}.actions{display:flex;gap:6px;flex-wrap:wrap}.sidebar-footer{margin-top:auto;padding:14px 16px 6px}.sidebar-footer button{width:100%}.app.sidebar-collapsed .sidebar-footer{padding:10px 8px}.app.sidebar-collapsed .sidebar-footer button{width:100%;padding:6px 4px;font-size:11px}.kv{display:grid;grid-template-columns:160px 1fr;gap:4px 12px;font-size:12px}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-all}pre.json{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:8px;font-family:var(--mono);font-size:12px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;overflow-y:auto;max-height:max(60vh,400px)}.procurement-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:22px}.procurement-top h2{margin-bottom:4px}.procurement-top>div:first-child .muted{font-size:13px}.procurement-tools{display:grid;grid-template-columns:minmax(260px,420px) auto;gap:8px}.procurement-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.selected-project-bar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(240px,1fr) max-content;gap:12px;align-items:center;border:1px solid var(--border);border-radius:8px;background:var(--panel);padding:10px 12px;margin-bottom:12px}.selected-project-bar label{display:block;margin:0;color:var(--muted);font-size:12px}.selected-project-bar strong{display:block;margin-top:2px}.secondary-link{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font-size:12px}.secondary-link:hover{border-color:var(--border);background:var(--panel-2);color:var(--text);text-decoration:none}.project-table-filters{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr)) auto;gap:10px;align-items:end;margin-bottom:12px}.project-table-filters label{margin:0}.project-table-filters span{display:block;margin-bottom:4px}.project-table-wrap{overflow-x:auto}.project-table{min-width:1040px}.source-policy-table{min-width:980px}.source-policy-table td,.source-policy-table th{padding:8px 10px}.source-policy-route{display:grid;gap:2px;font-size:12px}.project-table th{position:sticky;top:0;z-index:1}.project-table-row{cursor:pointer}.project-table-row:focus td{background:var(--accent-soft);outline:none}.project-table-row:focus td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.project-detail-page{max-width:1120px;margin:0 auto}.project-detail-back{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.project-detail-stack{display:grid;gap:12px}.project-detail-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.project-detail-title h2{margin:0 0 4px}.project-detail-note{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);color:var(--muted);font-size:13px}.project-detail-note strong{color:var(--text)}.project-detail-mini-list{display:grid;gap:8px;margin-top:12px}.project-detail-mini-list div{display:grid;gap:2px;padding:8px 0;border-top:1px solid var(--border)}.project-detail-mini-list strong{font-size:13px}.project-detail-mini-list span{color:var(--muted);font-size:12px}.project-detail-file-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.project-detail-file-grid a,.project-detail-file-grid span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.agent-run-summary{display:grid;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.agent-run-current{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:10px;align-items:start}.agent-run-current div{display:grid;gap:2px}.agent-run-current strong{font-size:13px}.agent-run-current span,.agent-run-meta,.agent-run-history{color:var(--muted);font-size:12px}.agent-run-meta,.agent-run-history div{display:flex;flex-wrap:wrap;gap:8px}.agent-run-flags{margin-top:0}.agent-run-history{display:grid;gap:4px}.agent-run-history div{justify-content:space-between;padding-top:6px;border-top:1px solid var(--border)}.project-workflow-table{display:grid;gap:2px}.project-workflow-row{display:grid;grid-template-columns:minmax(180px,1fr) 120px 120px;gap:12px;align-items:center;min-height:42px;padding:8px 0;border-bottom:1px solid var(--border);color:var(--text)}.project-workflow-row:hover{background:var(--panel-2);text-decoration:none}.project-workflow-row span{color:var(--muted);font-size:12px}.detail-list-row{display:block;width:100%;padding:0;border:0;background:transparent;color:var(--text);text-align:left}.detail-list-row:hover{background:transparent}.detail-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:start center;padding:48px 18px;background:#0f172a47;overflow:auto}.detail-modal{width:min(760px,100%);max-height:calc(100vh - 96px);overflow:auto;padding:16px;border-radius:8px;border:1px solid var(--border);background:var(--panel)}.detail-modal-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.detail-modal-head h3{margin:0}.file-preview-backdrop{place-items:center;padding:18px}.file-preview-modal{width:min(1400px,96vw);height:min(900px,92vh);max-height:calc(100vh - 36px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.file-preview-modal-head{margin-bottom:10px}.file-preview-modal-body{min-height:0;overflow:hidden}.file-preview-modal-body .spreadsheet-preview,.file-preview-modal-body .text-file-preview{height:100%;min-height:0;margin-top:0;grid-template-rows:auto minmax(0,1fr)}.file-preview-modal-body .spreadsheet-scroll,.file-preview-modal-body .text-file-preview pre{max-height:none;height:100%}.workflow-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.kanban-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;align-items:start;overflow-x:auto}.kanban-lane{display:grid;gap:10px;min-width:230px;padding:10px;border:0;border-radius:8px;background:var(--panel-2)}.kanban-lane header div{display:flex;align-items:center;justify-content:space-between;gap:8px}.kanban-lane header span{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;background:var(--accent-soft);color:var(--accent-2);font-size:12px;font-weight:700}.kanban-cards{display:grid;gap:10px}.kanban-card{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:none}.kanban-card-title{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}.kanban-card-title strong{min-width:0;overflow-wrap:anywhere}.kanban-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.kanban-numbers span{display:grid;gap:2px;min-width:0;padding:6px;border:0;border-radius:6px;background:var(--panel-2);color:var(--muted);font-size:11px}.kanban-numbers strong{color:var(--text);font-size:14px}.fast-quote-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:10px}.inline-check{display:inline-flex;align-items:center;gap:6px;min-height:28px;margin:0;color:var(--text);font-size:13px}.inline-check input{width:auto}.fast-quote-workspace{display:grid;grid-template-columns:minmax(520px,.46fr) minmax(0,.54fr);gap:16px;align-items:start}.fast-quote-list{display:grid;gap:8px}.fast-quote-row{display:grid;grid-template-columns:minmax(180px,1.1fr) max-content minmax(220px,.8fr) minmax(120px,.55fr) minmax(180px,.8fr);gap:12px;align-items:center;width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:var(--text);text-align:left}.fast-quote-row:hover,.fast-quote-row.active{background:var(--panel-2)}.fast-quote-completeness{display:flex;flex-wrap:wrap;gap:5px}.fast-quote-completeness span{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:999px;background:var(--panel-2);color:var(--muted);font-size:11px}.fast-quote-completeness span.ok{background:var(--ok-soft);color:var(--ok)}.fast-quote-detail{display:grid;gap:12px}.fast-quote-project-strip,.fast-quote-summary-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.fast-quote-project-strip{font-size:13px}.fast-quote-project-strip strong{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.fast-quote-project-strip span,.fast-quote-summary-strip span{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:var(--panel-2);white-space:nowrap}.fast-quote-project-strip span:nth-last-child(2),.fast-quote-project-strip span:last-child{color:var(--text)}.fast-quote-summary-strip{margin-top:8px;font-size:12px}.fast-quote-compact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.fast-quote-compact-head h3{margin:0 0 3px}.fast-quote-top-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,440px);gap:12px;align-items:start}.fast-quote-output-primary{display:grid;gap:6px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.fast-quote-primary-file{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px}.fast-quote-primary-file strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fast-quote-workbook-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px) auto;gap:8px;align-items:center;margin-bottom:10px}.fast-quote-sheet-tabs{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.fast-quote-sheet-tabs button{width:auto;min-height:30px;padding:5px 9px;border:1px solid var(--border);background:var(--panel);color:var(--muted)}.fast-quote-sheet-tabs button.active{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.fast-quote-workbook{display:grid;gap:8px}.fast-quote-workbook-scroll{max-height:76vh}.fast-quote-workbook-table{min-width:980px}.fast-quote-workbook-table th,.fast-quote-workbook-table td,.fast-quote-workbook-issue-table th,.fast-quote-workbook-issue-table td{padding:6px 8px;vertical-align:top}.fast-quote-workbook-table th:nth-child(1),.fast-quote-workbook-table td:nth-child(1),.fast-quote-workbook-table th:nth-child(2),.fast-quote-workbook-table td:nth-child(2),.fast-quote-workbook-table th:nth-child(6),.fast-quote-workbook-table td:nth-child(6){white-space:nowrap}.fast-quote-workbook-issues{display:grid;gap:8px;margin-top:14px}.fast-quote-workbook-issue-table{min-width:900px}.fast-quote-issues{display:grid;gap:8px}.fast-quote-issue-summary{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:12px}.fast-quote-issue-summary span{padding:2px 7px;border-radius:999px;background:var(--panel-2)}.fast-quote-issue-table{min-width:720px}.fast-quote-issue-table th,.fast-quote-issue-table td{padding:6px 8px;vertical-align:top}.fast-quote-issue-table th:nth-child(1),.fast-quote-issue-table th:nth-child(2),.fast-quote-issue-table th:nth-child(3),.fast-quote-issue-table td:nth-child(1),.fast-quote-issue-table td:nth-child(2),.fast-quote-issue-table td:nth-child(3){width:1%;white-space:nowrap}.fast-quote-issue-message{min-width:260px;max-width:720px;overflow-wrap:anywhere}.project-next-action{display:grid;gap:4px;min-width:0}.project-next-action strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin:0 0 10px}.pagination+table{margin-top:0}.pagination:last-child{margin:10px 0 0}.function-tabs{border-bottom:1px solid var(--border);padding-bottom:12px}.procurement-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:12px;margin-bottom:20px}.procurement-metric{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 16px 18px;transition:border-color .12s ease}.procurement-metric:hover{border-color:var(--border-strong)}.procurement-metric span{display:block;color:var(--muted);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.procurement-metric strong{display:block;margin-top:10px;font-family:var(--mono);font-size:28px;font-weight:500;line-height:1;letter-spacing:-.02em;color:var(--text)}.procurement-grid{display:grid;gap:16px}.procurement-grid.two{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.procurement-grid.profile,.procurement-grid.workspace{grid-template-columns:minmax(280px,.38fr) minmax(0,.62fr)}.procurement-grid.compact{gap:12px}.procurement-panel h3{margin:0 0 14px;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--text)}.procurement-card,.procurement-row{display:grid;gap:6px;width:100%;margin-bottom:8px;padding:10px 0;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);text-align:left}.procurement-row{border-width:0 0 1px;border-radius:0}.procurement-row:hover,.supplier-pill:hover{background:var(--panel-2)}.procurement-card.inline{grid-template-columns:minmax(0,1fr) max-content;align-items:center}.procurement-row.thread{grid-template-columns:minmax(190px,1fr) minmax(220px,1fr) max-content max-content;align-items:center}.procurement-row.supplier,.procurement-row.project{grid-template-columns:minmax(0,1fr) max-content max-content;align-items:center}.procurement-headerline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.procurement-kv{display:grid;grid-template-columns:140px minmax(0,1fr);gap:6px 12px;margin-bottom:16px;font-size:13px}.procurement-kv dt{color:var(--muted)}.procurement-kv dd{margin:0;overflow-wrap:anywhere}.chipline{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chipline span,.procurement-badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 9px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--panel-2);color:var(--muted);font-size:11.5px;font-weight:500;white-space:nowrap}.procurement-badge{color:var(--ok);border-color:transparent;background:var(--ok-soft)}.procurement-badge.waiting,.procurement-badge.pending,.procurement-badge.blocked,.procurement-badge.in{color:var(--warn);border-color:transparent;background:var(--warn-soft)}.procurement-badge.rejected,.procurement-badge.cancelled,.procurement-badge.lost{color:var(--danger);border-color:transparent;background:var(--danger-soft)}.procurement-workspace{display:grid;gap:16px}.project-flow-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.project-flow-body{display:grid;gap:16px}.status-strip{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}.status-strip div{display:flex;align-items:center;gap:8px;min-height:36px;padding:8px 10px;border:0;border-radius:8px;color:var(--muted);background:var(--panel-2);font-size:12px}.status-strip span{width:9px;height:9px;border-radius:50%;background:var(--border)}.status-strip .done{color:var(--text)}.status-strip .done span{background:var(--ok)}.supplier-stage-grid,.action-board{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:16px}.action-board{grid-template-columns:repeat(4,minmax(220px,1fr))}.supplier-pill{display:grid;gap:4px;width:100%;margin-bottom:8px;padding:10px 0;border:0;border-bottom:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);text-align:left}.supplier-pill span{color:var(--muted);font-size:12px}.file-card{grid-template-columns:minmax(0,1fr) max-content;align-items:center}.file-actions{display:flex;gap:6px;justify-content:flex-end}.file-actions.compact{gap:4px}.file-actions button,.file-card button{min-width:88px}.file-actions.compact button{min-width:68px;padding:5px 8px}.fast-quote-file-table{display:grid;gap:8px}.fast-quote-file-table .spreadsheet-scroll{max-height:max(60vh,360px)}.fast-quote-file-table table{min-width:780px}.fast-quote-file-table th,.fast-quote-file-table td{padding:6px 8px;vertical-align:top}.fast-quote-file-name{display:flex;align-items:center;gap:6px;min-width:0}.fast-quote-file-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fast-quote-file-name span{flex:0 0 auto;padding:1px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px}.file-preview-row>td{padding:8px;background:var(--panel-2)}.spreadsheet-preview{grid-column:1 / -1;display:grid;gap:8px;margin-top:4px}.spreadsheet-preview-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px}.spreadsheet-preview-head strong{color:var(--text)}.spreadsheet-scroll{max-height:max(70vh,420px);overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.spreadsheet-scroll table{margin:0;min-width:720px}.spreadsheet-scroll th{position:sticky;top:0;background:var(--panel);z-index:1}.text-file-preview{grid-column:1 / -1;display:grid;gap:8px;margin-top:4px}.text-file-preview pre{max-height:max(70vh,420px);margin:0;overflow:auto;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.empty-state{display:grid;gap:4px;padding:36px 16px;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);background:var(--panel-2);font-size:13px;text-align:center}.empty-state strong{color:var(--text);font-weight:500}.readiness-list{display:grid;gap:8px}.readiness-row{display:grid;grid-template-columns:10px minmax(140px,.5fr) minmax(0,1fr);gap:10px;align-items:center;min-height:34px;padding:8px 10px;border:0;border-radius:8px;background:var(--panel-2)}.ready-dot{width:9px;height:9px;border-radius:999px;background:var(--border)}.ready-dot.ok{background:var(--ok)}.project-all-files{margin-top:16px}.pcb-board-list{display:grid;gap:10px}.pcb-board-card{display:grid;grid-template-columns:minmax(180px,.45fr) minmax(0,.55fr);gap:12px;align-items:start;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.inbox-page{display:grid;gap:14px}.inbox-top{margin-bottom:0}.inbox-quiet-button{background:transparent;border-color:transparent;color:var(--muted)}.inbox-quiet-button:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.inbox-toolbar{display:grid;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border)}.inbox-filter-row,.inbox-filter-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.inbox-toolbar .field{margin-bottom:0}.inbox-toolbar label{margin-bottom:3px}.inbox-toolbar input,.inbox-toolbar select{background:var(--panel);border-color:var(--border);min-height:34px}.inbox-toolbar input:focus,.inbox-toolbar select:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.mail-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(520px,1.4fr);gap:0;align-items:start;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.mail-list,.mail-thread{min-height:620px;background:var(--panel)}.mail-list{border-right:1px solid var(--border)}.mail-thread{min-width:0;padding:16px}.mail-list-head,.mail-thread-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.mail-list-head{margin:0;padding:12px 14px;border-bottom:1px solid var(--border)}.mail-thread-head{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.mail-thread-head h3{margin:0 0 4px;font-size:18px}.mail-thread-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.mail-list-item{display:grid;grid-template-columns:8px minmax(0,1fr) max-content;gap:10px;width:100%;margin:0;padding:12px 14px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:var(--panel);color:var(--text);text-align:left}.mail-list-item:hover{background:var(--panel-2)}.mail-list-item.active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.mail-list-item span:nth-child(2){display:grid;gap:3px;min-width:0}.mail-list-item strong,.mail-list-item small,.mail-list-item em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal}.mail-list-item small,.mail-list-item em,.mail-list-item time{color:var(--muted);font-size:12px}.mail-dot{width:8px;height:8px;margin-top:6px;border-radius:999px;background:var(--muted)}.mail-dot.inbound{background:var(--accent)}.mail-dot.outbound{background:var(--ok)}.mail-thread-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0;color:var(--muted);font-size:12px}.mail-thread-meta code{color:var(--muted)}.mail-thread-messages{display:grid;gap:16px;margin-top:14px}.mail-message{display:grid;gap:10px;padding:0 0 16px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent}.mail-message header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.mail-message time{color:var(--muted);font-size:12px;white-space:nowrap}.mail-message-body{max-height:max(60vh,420px);overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:0;border-radius:0;background:transparent;font-size:13px}.mail-message-body a{overflow-wrap:anywhere}.mail-message-html{width:100%;min-height:520px;height:70vh;border:1px solid var(--border);border-radius:6px;background:#fff;resize:vertical}.mail-message footer{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.inbox-noise-button{min-height:24px;padding:3px 8px;font-size:12px}.mail-message .actions{margin:0}.mail-message .actions button{max-width:100%;overflow:hidden;border-color:var(--border);background:var(--panel-2);color:var(--text);text-overflow:ellipsis;white-space:nowrap}.mail-message .actions button:hover{background:var(--accent-soft);border-color:var(--border-strong)}.mail-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:0;border-radius:999px;background:var(--panel-2);color:var(--muted);font-size:12px}.mail-badge.warn{border-color:transparent;background:var(--warn-soft);color:var(--warn)}.mail-badge.danger{border-color:transparent;background:var(--danger-soft);color:var(--danger)}.sms-page{display:grid;gap:16px}.sms-toolbar{display:grid;grid-template-columns:minmax(220px,320px) minmax(140px,180px) auto;gap:10px;align-items:end}.sms-toolbar .field{margin:0}.sms-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:16px;align-items:start}.sms-table-wrap{max-height:calc(100vh - 280px);overflow:auto}.sms-table-wrap tr{cursor:pointer}.sms-table-wrap tr.selected-row td{background:var(--accent-soft)}.sms-preview-cell{max-width:520px;color:var(--text-2);overflow-wrap:anywhere}.sms-preview-cell .mail-badge{margin-left:8px}.sms-detail{display:grid;gap:14px}.sms-detail header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sms-detail pre{min-height:180px;max-height:calc(100vh - 430px);margin:0;overflow:auto;white-space:pre-wrap;word-break:break-word;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.55}.sms-detail dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:0}.sms-detail dt{color:var(--muted);font-size:11px}.sms-detail dd{margin:0;overflow-wrap:anywhere}.inbox-checkbox{display:inline-flex;flex:0 0 auto;gap:6px;align-items:center;justify-content:flex-start;min-height:34px;margin:0}.inbox-checkbox input{width:auto}.inbox-checkbox span{color:var(--muted);font-size:12px}.inbox-project-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0}.inbox-project-strip button{display:inline-flex;gap:8px;align-items:center;min-height:28px;padding:2px 12px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--muted);font-size:12px;cursor:pointer}.inbox-project-strip button:hover{border-color:var(--accent)}.inbox-project-strip button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--text)}.inbox-project-strip strong{color:var(--text)}.inbox-folders{display:flex;gap:4px;border-bottom:1px solid var(--border)}.inbox-folder-tab{display:inline-flex;gap:8px;align-items:center;margin:0;padding:8px 14px;border:0;border-bottom:2px solid transparent;border-radius:6px 6px 0 0;background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}.inbox-folder-tab:hover{color:var(--text);background:color-mix(in srgb,var(--accent) 6%,transparent)}.inbox-folder-tab.active{color:var(--text);border-bottom-color:var(--accent)}.inbox-folder-tab.spam.active{border-bottom-color:#d33}.inbox-folder-count{min-width:20px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--muted) 16%,transparent);color:var(--muted);font-size:11px;font-weight:600;text-align:center}.inbox-folder-tab.active .inbox-folder-count{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--text)}.inbox-folder-count.unread{background:var(--accent);color:#fff}.mail-list-item.unread strong{font-weight:700}.mail-list-item.unread small{color:var(--text);font-weight:600}.mail-list-item.unread time{color:var(--accent);font-weight:600}.mail-list-item.unread .mail-dot.inbound{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.inbox-top-actions{display:flex;gap:8px;align-items:center}.inbox-top-actions select{min-height:34px;background:var(--panel);border-color:var(--border)}.project-picker{position:relative;min-width:0}.project-picker input{width:100%}.project-picker-value{display:flex;gap:8px;align-items:center;justify-content:space-between;min-height:34px;padding:0 6px 0 10px;border:1px solid var(--accent);border-radius:6px;background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.project-picker-value span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}.project-picker-value button{flex:0 0 auto;margin:0;padding:0 6px;border:0;background:transparent;color:var(--muted);font-size:16px;line-height:1;cursor:pointer}.project-picker-value button:hover{color:var(--text)}.project-picker-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.project-picker-menu button{display:flex;flex-direction:column;gap:2px;width:100%;margin:0;padding:8px 12px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.project-picker-menu button:last-child{border-bottom:0}.project-picker-menu button.active{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}.project-picker-menu button strong{font-size:13px}.project-picker-menu button span{color:var(--muted);font-size:12px}.project-picker-empty{padding:10px 12px;color:var(--muted);font-size:13px}.metric-loading{color:var(--muted);letter-spacing:2px}.stage-chip{display:inline-flex;align-items:center;gap:6px;min-height:22px;padding:2px 9px 2px 7px;border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.stage-chip-sm{font-size:11px;min-height:19px;padding:1px 7px 1px 6px}.stage-chip-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.stage-funnel{display:flex;flex-wrap:wrap;gap:6px}.stage-funnel-step{--stage-color: var(--muted);display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1 1 0;min-width:96px;padding:8px 10px;border:1px solid var(--border);border-left:3px solid var(--stage-color);border-radius:8px;background:var(--panel);cursor:pointer;text-align:left;transition:background .12s ease,box-shadow .12s ease}.stage-funnel-step:hover{background:var(--panel-2)}.stage-funnel-step.active{background:color-mix(in srgb,var(--stage-color) 12%,white);box-shadow:inset 0 0 0 1px var(--stage-color)}.stage-funnel-step.dim{opacity:.55}.stage-funnel-count{font-size:18px;font-weight:700;line-height:1;color:var(--stage-color)}.stage-funnel-name{font-size:11px;color:var(--muted);line-height:1.2}.fq-offer-group{border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:10px;background:var(--panel-2)}.fq-offer-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.fq-offer-row-selected td{background:var(--ok-soft);font-weight:600}.fq-output-panel .procurement-card.file-card{border-left:3px solid var(--ok)}.fq-stepper-wrap{margin:10px 0 14px}.fq-stepper{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}.fq-step{display:flex;align-items:center;gap:6px;flex:1 1 0;min-width:84px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);font-size:12px}.fq-step-marker{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 auto;border-radius:50%;background:var(--border);color:var(--muted);font-size:11px;font-weight:700}.fq-step-done{border-color:transparent;background:var(--ok-soft)}.fq-step-done .fq-step-marker{background:var(--ok);color:#fff}.fq-step-current{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.fq-step-current .fq-step-marker{background:var(--accent);color:#fff}.fq-step-failed{border-color:transparent;background:var(--danger-soft)}.fq-step-failed .fq-step-marker{background:var(--danger);color:#fff}.fq-step-upcoming{opacity:.7}.fq-waterfall{display:flex;flex-direction:column;gap:10px}.fq-bar-head{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.fq-bar-track{margin-top:3px;height:8px;border-radius:999px;background:var(--panel-2);overflow:hidden}.fq-bar-track span{display:block;height:100%;border-radius:999px;background:var(--border-strong);transition:width .2s ease}.fq-bar-accent .fq-bar-track span{background:var(--accent)}.fq-bar-accent .fq-bar-head strong{color:var(--accent-2)}.fq-bar-note{font-size:11px;margin-top:1px}.fq-waterfall-saving{font-size:12px;color:var(--ok);background:var(--ok-soft);border:1px solid transparent;border-radius:6px;padding:4px 8px}.fq-waterfall-floor{border-top:1px dashed var(--border);padding-top:8px}.fq-waterfall-floor .row{display:flex;justify-content:space-between;font-size:13px;padding:2px 0}.fq-floor-total{font-size:15px;border-top:1px solid var(--border);margin-top:4px;padding-top:6px}.fq-waterfall-meta{font-size:12px}@media (max-width: 1100px){.procurement-metrics,.procurement-grid.two,.procurement-grid.profile,.procurement-grid.workspace,.procurement-row.thread,.status-strip,.supplier-stage-grid,.action-board,.selected-project-bar,.project-table-filters,.project-workflow-row,.fast-quote-workspace,.fast-quote-top-grid,.fast-quote-workbook-toolbar,.fast-quote-row,.pcb-board-card,.mail-layout,.fast-quote-primary-file{grid-template-columns:1fr}.workflow-links{justify-content:flex-start}}@media (max-width: 760px){.app{grid-template-columns:1fr}.sidebar{max-height:none}.procurement-top,.procurement-tools{display:grid;grid-template-columns:1fr}}
