:root{--nav:#071e31;--blue:#0b2f4a;--teal:#2b88a3;--gold:#c9a43b;--bg:#f3f6f8;--card:#fff;--line:#d7e1ea;--text:#17212b;--muted:#667085;--green:#1e7a4a;--red:#b42318;--orange:#946200}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login{position:fixed;inset:0;background:radial-gradient(circle at 20% 20%,#143c58 0,#071e31 48%,#020c13 100%);display:grid;place-items:center;z-index:100}.login-card{width:min(430px,92vw);background:#fff;border-radius:18px;padding:38px;box-shadow:0 25px 80px #0008}.brand{font-size:30px;font-weight:900;letter-spacing:.07em;color:var(--blue)}.sub{font-size:9px;letter-spacing:.22em;color:var(--teal);text-transform:uppercase;margin:5px 0 28px}.label{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:800}.inp{width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;margin:6px 0 15px;background:#fbfdff}.primary{background:var(--blue);color:#fff;border:0;border-radius:8px;padding:11px 15px;font-weight:800;cursor:pointer}.primary:hover{background:var(--teal)}.ghost{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 12px;cursor:pointer}.danger{color:var(--red)}.err{color:var(--red);font-size:11px;margin-top:10px}.app{min-height:100vh}.side{position:fixed;left:0;top:0;bottom:0;width:238px;background:linear-gradient(#0b2f4a,#071e31);color:#c1d3db;overflow:auto}.side-head{padding:23px 18px 18px;border-bottom:1px solid #ffffff15}.side-head .brand{color:#fff;font-size:20px}.company{font-size:10px;color:#a8c2ce;margin-top:9px}.sec{font-size:8px;letter-spacing:.18em;color:#6c94a6;padding:18px 18px 7px}.nav{display:block;padding:11px 18px;color:#c1d3db;text-decoration:none;border-left:3px solid transparent;font-size:12px;cursor:pointer}.nav:hover{background:#ffffff0d}.nav.on{background:#c9a43b18;color:#f0d27b;border-left-color:var(--gold)}.side-bottom{padding:18px;margin-top:25px;border-top:1px solid #ffffff15;font-size:10px}.main{margin-left:238px;min-height:100vh}.top{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:5}.title{font-size:19px;font-weight:800;color:var(--blue)}.subtitle{font-size:10px;color:var(--muted);margin-top:4px}.content{padding:24px}.page{display:none}.page.on{display:block}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px;border-left:4px solid var(--teal)}.kpi .k{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:800}.kpi .v{font-size:26px;font-weight:800;color:var(--blue);margin-top:7px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:18px}.card-h{padding:14px 17px;border-bottom:1px solid #e7eef3;display:flex;justify-content:space-between;align-items:center}.card-h h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue)}.card-b{padding:17px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.toolbar input,.toolbar select{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:11.5px}th{background:var(--blue);color:#fff;padding:10px 12px;text-align:left;font-size:9px;letter-spacing:.07em;text-transform:uppercase}td{padding:10px 12px;border-bottom:1px solid #e8eef3;vertical-align:top}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:800;background:#eef3f6;color:#425466}.badge.green{background:#eaf7ef;color:var(--green)}.badge.red{background:#fdecec;color:var(--red)}.badge.gold{background:#fff4d6;color:var(--orange)}.modal{position:fixed;inset:0;background:#00101db5;display:none;align-items:center;justify-content:center;padding:20px;z-index:40}.modal.on{display:flex}.modal-card{background:#fff;border-radius:14px;max-width:900px;width:100%;max-height:92vh;overflow:auto}.modal-h{background:var(--blue);color:#fff;padding:15px 19px;display:flex;justify-content:space-between;align-items:center}.modal-b{padding:19px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{grid-column:1/-1}.fi label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin-bottom:5px}.fi input,.fi select,.fi textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfdff}.fi textarea{min-height:85px}.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.items-editor .row{display:grid;grid-template-columns:2fr .7fr .7fr .8fr 34px;gap:8px;margin-bottom:8px}.notice{background:#eff8fb;border:1px solid #c9e4ed;border-radius:9px;padding:12px;font-size:11px;color:#31586a}.drop{border:1px dashed #9eb7c6;border-radius:10px;padding:18px;text-align:center;background:#f8fbfd}.msg-thread{max-height:420px;overflow:auto}.msg{padding:10px 12px;border-radius:9px;background:#eef4f7;margin:8px 0;max-width:80%}.msg.vendor{margin-left:auto;background:#eaf5f8}.muted{color:var(--muted);font-size:10px}@media(max-width:1000px){.kpis{grid-template-columns:1fr 1fr}.side{width:205px}.main{margin-left:205px}.grid{grid-template-columns:1fr}.full{grid-column:1}}@media(max-width:700px){.side{position:static;width:100%;height:auto}.main{margin-left:0}.top{position:static}.kpis{grid-template-columns:1fr}.content{padding:14px}}
/* v1.5 linked-record context */
.message-context{display:grid;grid-template-columns:220px minmax(0,1fr);gap:8px;margin-bottom:10px}.message-context .inp{margin:0}.msg-ref{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;background:#dbe8ee;color:#36566a;font-size:8px;font-weight:800;vertical-align:middle}.msg b{color:var(--blue)}
@media(max-width:700px){.message-context{grid-template-columns:1fr}}
.quote-items{border:1px solid var(--line);border-radius:10px;overflow:hidden}.quote-item{display:grid;grid-template-columns:minmax(0,1fr) 70px 150px;gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid #e8eef3}.quote-item:last-child{border-bottom:0}.quote-item .fi input{margin:0}.quote-item .label{display:block;margin-bottom:4px}@media(max-width:700px){.quote-item{grid-template-columns:1fr 70px}.quote-item .fi{grid-column:1/-1}}
.po-ready-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.po-ready-item{display:grid;grid-template-columns:minmax(0,1fr) 80px 130px 80px;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #e8eef3}.po-ready-item:last-child{border-bottom:0}.po-ready-item .fi input{margin:0}@media(max-width:700px){.po-ready-item{grid-template-columns:1fr 80px}.po-ready-item .fi{grid-column:1/-1}}

/* v1.8.3 PO-specific vendor documents */
.po-section-title,.po-uploaded h3{margin:0 0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue)}
.po-pad{padding:14px}.po-confirmation{margin-top:15px}.po-save-actions{padding-bottom:18px;border-bottom:1px solid #e2eaf0}
.po-doc-section{margin-top:18px;border:1px solid var(--line);border-radius:11px;background:#f8fbfd;overflow:hidden}
.po-doc-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:15px 16px;border-bottom:1px solid var(--line);background:#eef6f9}
.po-doc-title h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue)}
.po-doc-title p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.5}
.po-upload-grid{padding:16px 16px 0}.po-invoice-fields{padding:12px;border:1px solid #d8e6ed;border-radius:9px;background:#fff}
.po-doc-section>.actions{padding:0 16px 16px}.po-uploaded{padding:15px 16px;border-top:1px solid var(--line);background:#fff}
.po-doc-table{border:1px solid var(--line);border-radius:9px;overflow:hidden}
.po-doc-row{display:grid;grid-template-columns:130px minmax(170px,1fr) 110px 90px 155px;gap:9px;align-items:center;padding:10px 11px;border-bottom:1px solid #e8eef3;font-size:10px}
.po-doc-row:last-child{border-bottom:0}.po-doc-head{background:var(--blue);color:#fff;font-size:8px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}
.po-doc-row small{display:block;color:var(--muted);margin-top:3px}.po-doc-actions,.doc-actions{display:flex;gap:6px;flex-wrap:wrap}.ghost.compact{padding:6px 8px;font-size:9px}
.po-doc-empty{padding:16px;border:1px dashed #afc2ce;border-radius:9px;text-align:center;color:var(--muted);font-size:10px;background:#fbfdff}
button:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:850px){.po-doc-row{grid-template-columns:1fr 1fr}.po-doc-head{display:none}.po-doc-actions{grid-column:1/-1}}
@media(max-width:700px){.po-doc-row{grid-template-columns:1fr}.po-doc-actions{grid-column:auto}.po-doc-title{display:block}}

/* v1.8.4 vendor performance dashboard */
.vp-dashboard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.vp-dashboard-head h2{margin:0;color:var(--blue);font-size:18px}.vp-dashboard-head p{margin:5px 0 0;color:var(--muted);font-size:10px}.vp-kpi{position:relative;overflow:hidden}.vp-kpi.green{border-left-color:var(--green)}.vp-kpi.gold{border-left-color:var(--gold)}.vp-kpi .v{font-size:21px}.vp-kpi small{display:block;color:var(--muted);font-size:9px;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr);gap:14px;margin-bottom:18px}.vp-dashboard-card{min-height:255px;padding:0 18px 16px}.vp-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:17px 0 14px}.vp-card-head b{font-size:11px;color:var(--blue);letter-spacing:.08em}.vp-card-head small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.vp-pill{display:inline-block;background:#edf6fa;color:var(--blue);border-radius:14px;padding:6px 11px;font-size:9px;font-weight:900}.vp-chart{height:180px;display:flex;align-items:flex-end;gap:10px;border-bottom:1px solid var(--line);padding:10px 8px 0;background:repeating-linear-gradient(to top,transparent 0,transparent 44px,#edf1f4 45px)}.vp-month{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0}.vp-bar-wrap{height:138px;width:100%;display:flex;align-items:flex-end;justify-content:center}.vp-bar{width:min(42px,70%);min-height:3px;background:linear-gradient(180deg,#4b9bb5,#2f7f9b);border-radius:7px 7px 2px 2px;position:relative}.vp-bar:hover{background:var(--gold)}.vp-bar span{position:absolute;left:50%;transform:translateX(-50%);top:-16px;font-size:8px;font-weight:900;color:var(--blue);white-space:nowrap}.vp-month>small{font-size:8px;color:var(--muted);font-weight:900;margin:8px 0 7px}.vp-speed-layout{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center;padding-top:8px}.vp-speed-gauge{width:132px;height:132px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--vp-gauge-color,var(--green)) 0deg,var(--vp-gauge-color,var(--green)) var(--vp-gauge,0deg),#e8eef3 var(--vp-gauge,0deg),#e8eef3 360deg);position:relative}.vp-speed-gauge:after{content:"";position:absolute;inset:13px;background:#fff;border-radius:50%}.vp-speed-gauge>div{position:relative;z-index:1;text-align:center}.vp-speed-gauge b{display:block;color:var(--blue);font-size:27px}.vp-speed-gauge small{font-size:8px;font-weight:900;color:var(--muted);letter-spacing:.1em}.vp-speed-stats{display:grid;gap:17px}.vp-speed-stats>div{display:flex;justify-content:space-between;gap:12px;font-size:10px}.vp-speed-stats span{color:var(--muted)}.vp-speed-stats b{color:var(--blue)}.vp-orders{overflow:hidden}.vp-orders .vp-card-head{padding:16px 18px}.vp-link{border:0;background:none;color:var(--teal);font-size:9px;text-transform:uppercase;font-weight:900;cursor:pointer}.vp-orders td{white-space:nowrap}.vp-orders td:first-child{color:var(--blue);font-weight:900}.vp-po-row{cursor:pointer}.vp-po-row:hover{background:#f8fbfd}.vp-empty{height:180px;display:grid;place-items:center;color:var(--muted);font-size:10px;border:1px dashed var(--line);border-radius:9px}.vp-activity{margin-top:18px}
@media(max-width:1100px){.vp-dashboard-grid{grid-template-columns:1fr}.vp-dashboard-card{min-height:auto}}@media(max-width:700px){.vp-dashboard-head{align-items:flex-start}.vp-speed-layout{grid-template-columns:1fr}.vp-speed-gauge{margin:auto}}
