
:root{--bg:#f3f6f7;--panel:#fff;--ink:#18232c;--muted:#6b7680;--line:#dfe5e8;--green:#163d35;--green2:#285e53;--good:#e5f4eb;--goodt:#17633b;--warn:#fff1d6;--warnt:#8b5c00;--bad:#fde8e8;--badt:#9b2424;--blue:#e8f1ff;--bluet:#2b5f9f}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
.app{display:flex;min-height:100vh}aside{width:245px;position:fixed;inset:0 auto 0 0;background:var(--green);padding:22px 15px;color:#fff}
.brand{font-size:20px;font-weight:700;padding:0 8px 18px}.brand small{display:block;font-size:11px;font-weight:400;color:#b8cbc6;margin-top:5px}
nav a{display:block;padding:10px 11px;margin:2px 0;text-decoration:none;color:#dce8e5;border-radius:8px;font-size:13px}nav a:hover,nav a.active{background:var(--green2);color:#fff}
main{margin-left:245px;width:calc(100% - 245px);padding:25px 28px 50px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.top h1{margin:2px 0 0;font-size:27px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--muted)}.role{color:var(--muted);font-size:12px}
.note,.flash{padding:12px 14px;border-radius:8px;margin-bottom:14px;font-size:13px}.note{background:#eaf3f0;border-left:4px solid var(--green2)}.flash.success{background:var(--good);color:var(--goodt)}.flash.error{background:var(--bad);color:var(--badt)}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric,.panel,.match-card{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:15px}.metric span{display:block;text-transform:uppercase;font-size:10px;letter-spacing:.05em;color:var(--muted)}.metric b{display:block;font-size:23px;margin-top:7px}
.panel{margin-top:14px}.panel h3,.match-card h4{margin-top:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.row{display:flex;justify-content:space-between;gap:10px;align-items:center}.search{display:flex;gap:7px}.search input{min-width:320px}
input,select,textarea,button{font:inherit}input,select,textarea{width:100%;padding:9px;border:1px solid #cdd5da;border-radius:7px;background:#fff}textarea{min-height:80px}
label{display:block;font-size:12px;color:var(--muted);margin-bottom:11px}label input,label select,label textarea{margin-top:5px}
.btn,button{display:inline-block;border:1px solid #cbd4d9;background:#fff;border-radius:7px;padding:8px 11px;text-decoration:none;color:var(--ink);cursor:pointer;font-size:12px}.btn.primary,button.primary{background:var(--green2);border-color:var(--green2);color:#fff}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1/-1}.narrow{max-width:620px}
.table-wrap{overflow:auto;margin-top:12px;border-radius:10px}table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}th,td{padding:9px;border-bottom:1px solid var(--line);text-align:left;font-size:11px;white-space:nowrap}th{background:#f8fafb;color:#5f6a73;text-transform:uppercase;font-size:10px}td a{color:#215f53}.muted{color:var(--muted);font-size:10px}
.badge{display:inline-block;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:700}.badge.good{background:var(--good);color:var(--goodt)}.badge.warn{background:var(--warn);color:var(--warnt)}.badge.blue{background:var(--blue);color:var(--bluet)}.badge.bad{background:var(--bad);color:var(--badt)}
.match-card{margin-bottom:12px}.score{font-size:21px;font-weight:700}.compare{display:grid;grid-template-columns:1fr 1.25fr 210px;gap:12px;margin-top:12px}.compare>div{border:1px solid var(--line);border-radius:9px;padding:11px}.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:11px}.kv span{color:var(--muted)}.supplier-line{padding:8px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.5}.totals{padding-top:9px;font-size:11px}
@media(max-width:1100px){.metrics,.cards{grid-template-columns:repeat(2,1fr)}.compare,.two-col{grid-template-columns:1fr}}@media(max-width:760px){aside{position:static;width:100%}.app{display:block}main{margin:0;width:100%}.metrics{grid-template-columns:1fr}}

/* PJX v1.4 refinements */
.brand{padding:0 8px 20px}.brand-logo-shell{background:#fff;border-radius:10px;padding:7px 10px;height:68px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:9px}.brand-logo-shell img{display:block;max-width:100%;max-height:56px;object-fit:contain}.brand small{font-size:12px;font-weight:700;color:#fff;letter-spacing:.02em}.brand em{display:block;font-size:9px;font-style:normal;font-weight:400;color:#9eb7b0;margin-top:3px}
.role-box{text-align:right}.role-switch{margin-top:5px;font-size:10px;color:var(--muted)}.role-switch a{display:inline-block;padding:3px 6px;margin-left:3px;border-radius:5px;text-decoration:none;color:var(--green2);border:1px solid #cbd4d9;background:#fff}.role-switch a.selected{background:var(--green2);color:#fff;border-color:var(--green2)}
.flash.warning{background:var(--warn);color:var(--warnt)}
.dashboard-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 14px}.dash-tab{padding:8px 12px;background:#fff;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);font-size:12px;font-weight:700}.dash-tab:hover,.dash-tab.active{background:var(--green2);border-color:var(--green2);color:#fff}.dashboard-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dashboard-heading h2{margin:0 0 4px}.dashboard-heading p{margin:0;color:var(--muted);font-size:12px}.metric.attention{border-color:#eed39d;background:#fffaf0}
.section-title{margin-top:22px}.larger{font-size:12px}.subpanel{margin:18px 0;padding:14px;background:#f8fafb;border:1px solid var(--line);border-radius:10px}.form-actions{display:flex;gap:8px;margin-top:18px}.pending-box{display:flex;gap:8px;align-items:center;padding:11px 13px;border:1px solid #f0c675;background:#fff7e6;border-radius:8px;color:#7b5200;font-size:12px}.pending-box span{color:#7b6440}.checkbox-label{display:flex;gap:8px;align-items:center}.checkbox-label input{width:auto;margin:0}
.slip-workflow{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.slip-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.slip-title h3{margin:0}.slip-title p{margin:5px 0;color:var(--muted);font-size:12px}.drop-zone{border:2px dashed #aebdc3;background:#f8fbfb;border-radius:12px;padding:22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px;transition:.15s}.drop-zone.dragging,.drop-zone.paste-success{border-color:var(--green2);background:#eef7f4}.drop-icon{width:34px;height:34px;border-radius:50%;background:#e5efec;color:var(--green2);display:grid;place-items:center;font-size:24px}.drop-zone span{font-size:10px;color:var(--muted)}.document-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}.document-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:5px;min-height:100px}.document-card img{width:100%;height:130px;object-fit:contain;background:#f5f6f7;border-radius:6px}.document-card span{font-size:10px;overflow-wrap:anywhere}.document-card small{font-size:9px;color:var(--muted)}.pdf-card{height:130px;display:grid;place-items:center;background:#f2f4f5;border-radius:6px;font-weight:700;color:#8b2c2c}.remove-file{margin-top:auto}.existing-title{margin-bottom:0}
.btn.danger,button.danger{background:#a62a2a;color:#fff;border-color:#a62a2a}.danger-panel{border-color:#efc7c7}.big-number{font-size:30px;font-weight:700;color:var(--green2);margin:5px 0}.brand-preview{display:flex;align-items:center;gap:16px}.brand-preview img{width:150px;max-height:62px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#fff;padding:5px}
.master-actions{margin-bottom:4px}.inline-upload{display:flex;gap:7px;align-items:center}.inline-upload input{max-width:250px;padding:6px}.table-filter{max-width:260px}.wrap-cell{white-space:normal;min-width:250px;line-height:1.35}
.tolerance-note{font-size:10px;color:var(--muted);margin:8px 0}.match-card .btn.primary{margin-top:5px}
@media(max-width:760px){.role-box{display:none}.brand-logo-shell{max-width:220px}.inline-upload,.master-actions{align-items:stretch;flex-direction:column}.row.master-actions{display:flex}.form-grid{grid-template-columns:1fr}}

/* PJX v1.5 performance + testing refinements */
.filter-row{display:grid;grid-template-columns:180px 180px minmax(260px,1fr) auto;gap:10px;align-items:end}.filter-row label{margin:0}.filter-action{display:flex;gap:6px;padding-bottom:1px}.recon-summary{margin:12px 0;font-size:12px;color:var(--muted)}.pagination{display:flex;align-items:center;justify-content:center;gap:9px;margin:16px 0;font-size:12px;color:var(--muted)}.btn.disabled{opacity:.45;pointer-events:none}.unused-banner{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 16px;margin-bottom:14px;background:var(--bad);border:1px solid #e6b9b9;border-radius:10px;color:var(--badt)}.unused-banner span{font-size:11px}.compact-panel{padding:10px 14px}.unused-form{display:flex;gap:10px;align-items:end}.unused-form label{margin:0;min-width:320px}.detail-actions{display:flex;gap:7px}@media(max-width:900px){.filter-row{grid-template-columns:1fr 1fr}.filter-action{grid-column:1/-1}.unused-form{flex-direction:column;align-items:stretch}.unused-form label{min-width:0}}

/* PJX v1.6.1 go-live test refinements */
.period-filter{min-width:190px}.period-filter label{margin:0}.upload-helper{font-size:11px;color:var(--muted);padding:9px 10px;background:#f8fafb;border:1px solid var(--line);border-radius:7px;margin:-2px 0 12px}.import-format{margin-top:10px}.exception-filter{grid-template-columns:200px 220px auto}.exception-detail{margin-top:7px;white-space:normal;max-width:280px;line-height:1.35}.exception-work-cell{min-width:210px}.exception-work-cell form{display:grid;gap:5px}.exception-work-cell textarea{min-height:55px}.exceptions-table td{vertical-align:top}.print-area h3{margin-bottom:10px}.print-only{display:none}
@media print{@page{size:landscape;margin:8mm}aside,.top,.flash,.no-print{display:none!important}.print-only{display:table-cell!important}main{margin:0!important;width:100%!important;padding:0!important}.panel{border:0!important;padding:0!important;margin:0!important}.table-wrap{overflow:visible!important}table{border-collapse:collapse!important}th,td{font-size:8px!important;padding:4px!important;white-space:normal!important}.exceptions-table{width:100%!important}.print-area h3{font-size:15px!important}}

/* PJX v1.7 go-live controls */
.auth-body{min-height:100vh;display:grid;place-items:center;background:#eef3f1;padding:20px}.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:0 16px 45px rgba(0,0,0,.08)}.auth-logo{display:block;max-width:210px;max-height:80px;object-fit:contain;margin:0 auto 14px}.auth-card h2{text-align:center;margin:4px 0 8px}.auth-card>p{text-align:center;margin-bottom:20px}.auth-button{width:100%;padding:11px}.password-menu{margin-top:6px;font-size:10px;color:var(--muted);position:relative}.password-menu summary{cursor:pointer;list-style:none}.password-menu form{position:absolute;right:0;z-index:20;width:260px;background:#fff;border:1px solid var(--line);padding:10px;border-radius:9px;box-shadow:0 10px 30px rgba(0,0,0,.12)}.password-menu input{margin-bottom:6px}.transaction-search{flex-wrap:wrap}.transaction-search select{width:170px}.inline-form{display:flex;gap:5px;align-items:center}.inline-form input,.inline-form select{min-width:120px;padding:6px}.bulk-exact{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0 12px;padding:10px;background:#eef7f4;border:1px solid #c9e1d8;border-radius:9px}.report-launch{display:flex;justify-content:space-between;gap:20px;align-items:center}.report-launch h3{margin-bottom:5px}.report-launch p{margin:0;color:var(--muted)}.consumption-filter{display:grid;grid-template-columns:145px 145px 190px 1fr 180px auto;gap:9px;align-items:end}.consumption-filter label{margin:0}.report-actions{display:flex;gap:7px;margin-top:12px}.role-box .role{font-size:12px}.role-box .role-switch{display:flex;justify-content:flex-end;gap:7px;align-items:center}
@media(max-width:1150px){.consumption-filter{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.consumption-filter{grid-template-columns:1fr}.report-launch{align-items:stretch;flex-direction:column}.inline-form{flex-direction:column;align-items:stretch}}
