*{box-sizing:border-box}body{margin:0;background:#f5f6f3;color:#20251f;font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1{font-size:34px;line-height:1.2;letter-spacing:-1.2px;margin-bottom:12px}h2{font-size:20px;letter-spacing:-.5px}h3{font-size:16px}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#171d18;color:#f9faf5;padding:30px 23px;display:flex;flex-direction:column}.brand{display:block;margin-bottom:55px}.brand img{width:180px;display:block;margin:0 0 14px -10px}.brand span{font-size:29px;font-weight:700}.brand small{display:block;font-size:9px;letter-spacing:2px;color:#a4ac9e}.nav-label{font-size:10px;color:#879482;letter-spacing:2px;margin-bottom:13px}nav a{display:block;padding:13px 12px;color:#c6cdc1;border-radius:7px;margin-bottom:6px;font-size:14px}nav a[aria-current=page]{color:#e8ef42;background:#2c352a}nav a:hover{background:#293126;text-decoration:none}.sidebar-foot{margin-top:auto;color:#c2ccb8;font-size:12px}.sidebar-foot small{display:block;color:#899782;margin-top:8px}.dot{display:inline-block;width:7px;height:7px;background:#dbe63d;border-radius:50%;margin-right:5px}main{margin-left:248px}.topbar{height:76px;border-bottom:1px solid #dfe3d9;display:flex;justify-content:space-between;align-items:center;padding:0 38px;font-size:12px;letter-spacing:.4px;background:#fafbf7}.content{max-width:1550px;margin:auto;padding:38px}.muted{color:#727b6e}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#687461;margin-bottom:13px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.page-heading p{margin-bottom:0}.button{display:inline-block;background:#e2eb35;color:#1d2715;padding:11px 18px;border:1px solid #d4df2b;border-radius:6px;font-weight:650;font-size:13px;cursor:pointer;white-space:nowrap;text-align:center}.button:hover{background:#d4df2b;text-decoration:none}.button.secondary{background:white;border-color:#d9dfd2}.hero{display:flex;justify-content:space-between;overflow:hidden;background:#1e2b23;border-radius:12px;padding:34px 40px;color:#f5f7ed;margin-bottom:24px;min-height:285px}.hero h2{font-size:36px;line-height:1.15;margin:18px 0;letter-spacing:-1px}.hero p{color:#b6c4b2;font-size:14px}.pill{font-size:9px;letter-spacing:1.5px;color:#e3eb54;border:1px solid #62713c;padding:6px 10px;border-radius:20px}.hero-art{display:grid;grid-template-columns:105px 105px;grid-template-rows:105px 105px;gap:8px;transform:rotate(-9deg);align-self:center;margin-right:30px}.hero-art span{background:#e2eb35;color:#203020;font-size:45px;font-weight:800;display:grid;place-items:center;border-radius:8px}.hero-art span:nth-child(2),.hero-art span:nth-child(3){background:#344736;color:#dde7cd;font-size:34px}.hero-art span:last-child{font-size:27px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:26px}.metric,.panel{background:#fff;border:1px solid #e1e5da;border-radius:9px;padding:24px}.metric span{display:block;font-size:12px;color:#727b6e}.metric strong{display:block;font-size:38px;font-weight:600;margin:8px 0}.metric small,small{display:block;color:#7d8578;font-size:11px}.columns{display:grid;grid-template-columns:1.65fr 1fr;gap:22px;margin-bottom:25px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-head>a{font-size:12px}.empty{text-align:center;padding:38px 15px}.empty>span{font-size:30px;color:#9da78f}.empty h3{margin:10px 0}.empty p{color:#7d8578;font-size:13px;max-width:350px;margin:0 auto 20px}.notice{background:#edf0e4;border:1px solid #dbe2ce;padding:15px 20px;border-radius:7px;margin-bottom:22px;font-size:13px;color:#53604c}.notice.error{background:#fff0e9;color:#944522}.notice.success{background:#edf6e6}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#7c8475;padding:13px 7px;border-bottom:1px solid #e3e7dc}td{padding:17px 7px;border-bottom:1px solid #edf0e8}.badge{font-size:10px;background:#f0f3e8;border:1px solid #e1e6d7;padding:4px 8px;border-radius:20px;display:inline-block;white-space:nowrap}.inline{display:inline}.link{background:none;border:0;color:#65715c;cursor:pointer;margin-left:15px}.form-panel{max-width:760px}label{display:block;font-size:12px;font-weight:600;margin-bottom:6px}input,select,textarea{font:inherit;width:100%;padding:10px 12px;border:1px solid #d8dfd0;border-radius:5px;background:#fff;color:#27321f}input:focus,textarea:focus,select:focus{outline:2px solid #b7c453;outline-offset:2px}.helptext{display:block;font-size:12px;color:#77806e;margin-top:6px}.errorlist{color:#a33b2a;font-size:13px}.search{display:flex;gap:10px;margin-bottom:20px}.deadline{display:flex;gap:17px;padding:18px 0;border-top:1px solid #e7ebdf}.deadline>strong{background:#f1f4e8;padding:8px;font-size:13px;white-space:nowrap;height:40px}.deadline a{font-size:13px}.upload-box{background:#f8f9f3;border:1px dashed #c9d2bb;border-radius:7px;padding:20px}.document-row{padding:16px 0;border-bottom:1px solid #e8ecdf;font-size:13px;overflow-wrap:anywhere}.notes{white-space:pre-wrap;font-size:13px}.activity{padding:10px 0;border-bottom:1px solid #e8ecdf;font-size:12px}.requirement{display:grid;grid-template-columns:1fr 220px;gap:30px;padding:22px 0;border-top:1px solid #e4e9dc}.requirement p{font-size:13px;margin:9px 0;white-space:pre-wrap;overflow-wrap:anywhere}.requirement form button{margin-top:8px}.back{display:block;font-size:12px;color:#77846d;margin-bottom:24px}summary{cursor:pointer;font-weight:600;padding:18px 0;font-size:13px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.7 ui-monospace,monospace;max-height:70vh;overflow:auto}.roadmap li{padding:10px 12px 20px}.roadmap p{color:#727b6e;font-size:14px;margin:7px 0}.login-main{margin:0;min-height:100vh;display:grid;place-items:center;background:#1e2b23}.login-card{max-width:480px;background:#f9fbf4;border-radius:13px;padding:35px}.login-card h1{font-size:30px}.login-brand{background:#1e2b23;border-radius:7px;padding:20px;margin-bottom:25px}.login-brand img{max-width:260px;width:100%}.small{font-size:12px;margin-top:20px}@media(min-width:1500px){.content{padding:45px 55px}}@media(max-width:1000px){.sidebar{width:205px;padding:25px 16px}.brand img{width:170px}main{margin-left:205px}.content{padding:25px}.columns{grid-template-columns:1fr}.hero-art{margin-right:0;grid-template-columns:75px 75px;grid-template-rows:75px 75px}.hero{padding:28px}.hero h2{font-size:30px}}@media(max-width:700px){.sidebar{position:static;width:auto;padding:16px}.brand{margin:0}.brand img{width:140px;margin:0}.brand span,.nav-label,.sidebar-foot{display:none}nav{display:flex;flex-wrap:wrap;margin-top:14px}nav a{font-size:11px;padding:7px}main{margin:0}.topbar{height:55px;padding:0 18px;font-size:10px}.topbar .muted{display:none}.content{padding:22px 16px}h1{font-size:27px}.page-heading{align-items:flex-start;flex-direction:column}.hero-art{display:none}.metrics{gap:8px}.metric{padding:14px}.metric strong{font-size:28px}.metric span,.metric small{font-size:10px}.panel{padding:18px}.requirement{grid-template-columns:1fr;gap:14px}.hero h2{font-size:30px}.section-head{flex-wrap:wrap}}
/* ---- Milestone 2: suppliers, pricing, quotations ---- */
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.metrics.five{grid-template-columns:repeat(5,1fr)}.metrics.five strong{font-size:24px}
.search select{width:auto;min-width:180px}
.numbers td,.numbers th,.compare td{text-align:right;vertical-align:top}.numbers td.text,.compare td.text,.compare th,.numbers th:nth-child(2){text-align:left}
tr.problem td{background:#fff7f1}small.warn,.warn{color:#a3461d}
.compare td.cheapest{background:#f3f8e4}.compare td.selected{background:#e2eb35}
.cell-btn{background:none;border:0;font:inherit;cursor:pointer;text-align:right;width:100%;padding:0}.cell-btn:hover{text-decoration:underline}
tfoot th{text-align:left}tfoot td,tfoot th{border-top:1px solid #dfe3d9;font-size:12px}
.price-row{padding:14px 0;border-top:1px solid #e8ecdf}.price-inputs{display:flex;gap:12px;align-items:center;margin-bottom:6px}.price-inputs input[name^=price]{max-width:220px}
.check{display:flex;gap:6px;align-items:center;font-weight:400;margin:0;white-space:nowrap}.check input{width:auto}
.danger-zone{margin-top:24px}.top-gap{margin-top:16px}.compact p{margin-bottom:10px}
ul[id$=categories]{list-style:none;padding:0;columns:2}ul[id$=categories] label{font-weight:400;display:flex;gap:6px}ul[id$=categories] input{width:auto}
input[type=checkbox]{width:auto}
.action-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:24px}.action-bar p{margin:0 auto 0 0}
button[disabled]{opacity:.45;cursor:not-allowed}
.quote-doc{background:#fff;border:1px solid #e1e5da;border-radius:9px;padding:44px;max-width:900px;margin:auto;position:relative;font-size:13px}
.quote-doc.draft::before{content:'DRAFT';position:absolute;top:40%;left:50%;transform:translate(-50%,-50%) rotate(-25deg);font-size:120px;font-weight:800;color:rgba(160,30,30,.07);pointer-events:none}
.quote-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}.quote-brand{padding:0 0 4px}.quote-brand img{width:270px;display:block;margin-left:-10px}.quote-company{text-align:right;font-size:12px;line-height:1.6}
.quote-title{letter-spacing:3px;font-size:18px;margin:30px 0 18px;border-bottom:3px solid #e2eb35;padding-bottom:8px}
.quote-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:26px}.quote-meta span{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#7c8475;margin-top:8px}.quote-meta strong{display:block}
.quote-lines td,.quote-lines th{text-align:right;padding:10px 7px}.quote-lines td.text,.quote-lines th:nth-child(2){text-align:left}.quote-lines tfoot td{border-top:1px solid #e3e7dc}.quote-lines tr.grand td{font-weight:700;font-size:15px;border-top:2px solid #20251f}
.quote-sign{display:flex;justify-content:space-between;margin-top:50px;color:#555}
@media(max-width:1000px){.metrics.five{grid-template-columns:repeat(2,1fr)}.quote-meta{grid-template-columns:1fr}.quote-head{flex-direction:column}.quote-company{text-align:left}.quote-doc{padding:22px}}
@media print{.sidebar,.topbar,.no-print,.notice{display:none!important}main{margin:0}.content{padding:0}.quote-doc{border:0;padding:0;max-width:none}body{background:#fff}.quote-brand{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.numbers td,.compare td,.quote-lines td{white-space:nowrap}.numbers td.text,.compare td.text,.quote-lines td.text{white-space:normal;min-width:220px}
.po-line{display:grid;grid-template-columns:60px 1fr 90px 80px 120px 60px;gap:8px;align-items:end;border-top:1px solid #e8ecdf;padding-top:10px}.po-line p{margin:0 0 8px}.po-line .pl-DELETE input{width:auto}
@media(max-width:1000px){.po-line{grid-template-columns:1fr 1fr}}
.po-line{grid-template-columns:70px 1fr 1fr 1.3fr 60px}.po-line .pl-description{grid-column:1/-1;order:-1}.po-line textarea{min-height:60px}
.numbers th.text{text-align:left}
.q-line{grid-template-columns:70px 1fr 1fr 1fr 1fr 60px}
.sign-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:40px}.sign-grid p{margin:14px 0}
.ageing{margin-top:24px}.ageing th,.ageing td{text-align:right}
.stmt th:nth-child(3),.stmt td:nth-child(3){text-align:left}.stmt th:first-child,.stmt td:first-child{text-align:left;white-space:nowrap}
.steps{display:flex;gap:6px;margin:0 0 22px;flex-wrap:wrap}.steps span{font-size:11px;letter-spacing:1px;padding:6px 12px;border-radius:20px;background:#eef1e6;color:#5e6b57}.steps span.on{background:#e2eb35;color:#1d2715}
.est-item{padding:16px 0;border-top:1px solid #e8ecdf}.est{display:grid;grid-template-columns:200px 1fr 170px;gap:14px;align-items:center;padding:8px 10px;margin-top:6px;border-radius:6px;background:#fafbf7}.est.accepted{background:#f1f6dc;outline:1px solid #cfd96a}
.risk-low{background:#e3f3dc}.risk-medium{background:#fff4d6}.risk-high{background:#ffe3d6}
.send-row{align-items:flex-start;padding:10px 0;border-bottom:1px solid #eef0e8;white-space:normal}.send-row small{display:block}
@media(max-width:700px){.est{grid-template-columns:1fr}}
input.ai-filled{background:#fbfde6;border-color:#c9d24a}
.coupa-lines td{vertical-align:top}.coupa-lines input,.coupa-lines textarea{font-size:12px;padding:6px;margin-bottom:4px}.coupa-lines td:nth-child(6){min-width:260px}
input.narrow{max-width:110px}
.question{padding:14px 0;border-top:1px solid #eef0e8}.question label{font-weight:500;white-space:normal}.question.problem{background:#fff7f1}
.qr svg{width:220px;height:220px;background:#fff;padding:8px;border:1px solid #e1e5da;border-radius:8px}.codes{font-size:20px;letter-spacing:2px;line-height:1.8}
.sidebar{overflow-y:auto}nav a{padding:10px 12px;margin-bottom:3px}
.enquiry-row{display:flex;justify-content:space-between;gap:24px;padding:18px 0;border-top:1px solid #e8ecdf}.enquiry-row.new{border-left:4px solid #e2eb35;padding-left:14px}.enquiry-row p{white-space:pre-wrap;font-size:14px;margin:8px 0}
.count{background:#e2eb35;color:#1d2715;border-radius:10px;padding:1px 7px;font-size:11px;margin-left:4px}
.draft-item{display:grid;grid-template-columns:60px 1fr 100px 90px 180px;gap:10px;align-items:start;border-top:1px solid #e8ecdf;padding:12px 0}.draft-item textarea{margin-top:6px;min-height:50px}.draft-item label{margin:0 0 4px}.draft-item input+label{margin-top:8px}
@media(max-width:1000px){.draft-item{grid-template-columns:1fr 1fr}.draft-item>div:nth-child(2){grid-column:1/-1}}
.busy[hidden]{display:none}.busy{position:fixed;inset:0;z-index:100;background:rgba(23,29,24,.72);display:grid;place-items:center;padding:16px}.busy-card{background:#fafbf7;border-radius:12px;padding:32px 36px;max-width:460px;width:100%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.3)}.busy-card h2{margin:18px 0 8px}.busy-card p{font-size:13px;color:#53604c}.spinner{width:46px;height:46px;margin:auto;border:4px solid #e3e8d8;border-top-color:#b7c42b;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}
.run-summary>p:first-of-type{font-size:14px;max-width:900px}.ai-checks{background:#fff8f2;border:1px solid #f1dcc9;border-radius:7px;padding:0 16px;margin:12px 0}.ai-checks summary{color:#94461d}.ai-checks ul,.risks{margin:0 0 14px;padding-left:20px;font-size:13px;line-height:1.5}.ai-checks li,.risks li{margin-bottom:6px;color:#4a5345}.risks li::marker{content:'⚠  ';color:#a3461d}
.cand{padding:14px 0;border-bottom:1px solid #e8ecdf;font-size:13px;overflow-wrap:anywhere}.cand.rejected{opacity:.5}.cand-head{margin-bottom:4px}.cand-meta{color:#5e6b57;font-size:12px}.cand-notes{color:#727b6e;font-size:12px;margin:6px 0 0}.cand-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.sources{font-size:12px;color:#727b6e}.sources a{display:inline-block;min-width:22px;text-align:center;border:1px solid #d9dfd2;border-radius:4px;margin-left:3px;text-decoration:none}.sources a:hover{background:#f0f3e8}
.summary-more>summary{font-weight:400;font-size:14px;padding:0 0 6px;list-style:none;max-width:900px}.summary-more>summary::-webkit-details-marker{display:none}.summary-more .more{font-size:12px;font-weight:600;color:#687461;text-decoration:underline;white-space:nowrap}.summary-more[open]>summary{display:none}.summary-more>p{font-size:14px;max-width:900px}
.metrics.four{grid-template-columns:repeat(4,1fr)}@media(max-width:700px){.metrics.four{grid-template-columns:1fr 1fr}}.metric.alert{border-color:#e9b9a2;background:#fff6f1}.metric.alert strong{color:#a3461d}.metric.warn{border-color:#ecd99a;background:#fffbea}
.status{display:inline-block;font-size:11px;font-weight:650;padding:3px 9px;border-radius:20px;white-space:nowrap;background:#f0f3e8;color:#4a5345}.s-expired{background:#fbe0d4;color:#8f3a14}.s-due{background:#fff0bf;color:#6e5300}.s-valid{background:#e3f3dc;color:#2f5d22}.s-missing{background:#eef0ea;color:#6b766c;border:1px dashed #c9cfc2}
table.compliance td{vertical-align:top}table.compliance tr.c-expired td{background:#fff8f4}table.compliance tr.c-due td{background:#fffdf3}.row-actions{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap;font-size:13px}.row-actions .button{padding:7px 12px;font-size:12px}
.count.alert{background:#f2a37f;color:#3d1608}.compliance-alert{border-color:#eccdb9;margin-bottom:25px}.compliance-alert .status{margin-right:6px}
.multi-upload input[type=file]{background:#fff}.multi-upload p{margin:0 0 12px}.req-tools{display:grid;gap:8px;padding:6px 0 16px;border-bottom:1px solid #e4e9dc}.req-tools p{margin:0}
tr.tender-expired td{background:#fff8f4}tr.tender-expired td strong{color:#5d4a42}.tender-expired-note a{font-weight:600;margin-left:4px}
