:root{--bg:#f5f6f8;--surface:#fff;--text:#1c2430;--muted:#5d6878;--border:#dde1e7;--accent:#1f4e79;--accent-hover:#173d5f;--error:#b42318;--ok:#1e7b3a;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}.shell{max-width:960px;margin:0 auto;padding:24px 16px}.center-screen{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}h1{color:var(--accent);margin:0 0 4px;font-size:1.6rem}.muted{color:var(--muted);margin:0 0 24px}.small{font-size:.875rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 20px}.card.narrow{width:100%;max-width:400px;padding:24px}.card+.card{margin-top:16px}.card h2{margin-top:0;font-size:1.1rem}.form{flex-direction:column;gap:14px;display:flex}.form label{flex-direction:column;gap:6px;font-size:.9rem;font-weight:600;display:flex}input,select,textarea{font:inherit;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:1rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 16px;font-weight:600}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.6;cursor:default}button.secondary{color:var(--accent);border:1px solid var(--border);background:0 0;padding:6px 12px}button.secondary:hover:not(:disabled){background:var(--bg)}button.link{color:var(--accent);background:0 0;align-self:flex-start;padding:0;font-weight:500}button.link:hover:not(:disabled){background:0 0;text-decoration:underline}.error{color:var(--error);margin:0}.notice{color:var(--ok);margin:0}.app-shell{grid-template-columns:210px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:16px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0}.sidebar-brand{color:var(--accent);padding:0 10px;font-size:1.05rem;font-weight:700}.side-nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.side-nav a{color:var(--muted);border-radius:6px;padding:9px 10px;font-weight:600;text-decoration:none}.side-nav a:hover{background:var(--bg);color:var(--text)}.side-nav a.active{color:var(--accent);background:#eaf1f8}.sidebar-user{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:12px 10px 0;display:flex}.sidebar-user .muted{margin:0 0 8px}.app-shell .shell{width:100%}.mobile-bar{display:none}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.page-head .muted{margin:0}.crumb{margin:0 0 8px}a{color:var(--accent)}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 12px;display:flex}.toolbar input[type=search]{flex:1;min-width:200px;max-width:360px}.form-card{margin-bottom:16px}.grid-form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 16px;display:grid}.grid-form .wide{grid-column:1/-1}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500;display:flex}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow-x:auto}.card .table-wrap{border:none}table.data{border-collapse:collapse;width:100%;font-size:.95rem}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}table.data thead th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);white-space:nowrap;font-size:.8rem}table.data tfoot th,table.data tbody tr:last-child td{border-bottom:none}table.data .num{text-align:right;white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--bg)}input.money{text-align:right;width:140px;padding:6px 8px}.badge{background:var(--bg);border:1px solid var(--border);color:var(--muted);vertical-align:middle;border-radius:10px;margin-left:8px;padding:1px 8px;font-size:.75rem;display:inline-block}.facts{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0;display:grid}.facts dt{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem}.facts dd{white-space:pre-line;margin:2px 0 0}.status-pill{vertical-align:middle;border:1px solid var(--border);color:var(--muted);background:var(--bg);border-radius:10px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-block}.status-pill.status-issued{color:var(--ok);background:#eef8f1;border-color:#b7dfc3}.status-pill.status-closed{color:var(--muted)}.status-pill.status-draft{color:#8a5a00;background:#fff8e8;border-color:#f0d9a8}h1 .status-pill{margin-left:8px}.card .page-head{margin-bottom:8px}.card .page-head h2{margin:0}.checklist{flex-direction:column;gap:8px;margin:8px 0;display:flex}.editing-row td{vertical-align:top;background:#f8fafc}.editing-row select,.editing-row input{width:100%;padding:6px 8px}.editing-row input.money{width:120px}.nowrap{flex-wrap:nowrap;justify-content:flex-end}.danger{color:var(--error)!important}td.error,dd.error{color:var(--error)}.facts .wide{grid-column:1/-1}.pre{white-space:pre-line}.print-only{display:none}.status-pill.inv-submitted{color:#1f4e79;background:#eef4fb;border-color:#bcd3ea}.status-pill.inv-approved{color:var(--ok);background:#eef8f1;border-color:#b7dfc3}.status-pill.inv-needs_documents,.status-pill.inv-rejected{color:var(--error);background:#fdf1f0;border-color:#f2c4c0}.status-pill.inv-draft{color:#8a5a00;background:#fff8e8;border-color:#f0d9a8}.card.attention{background:#fffbf2;border-color:#f0d9a8}ul.plain{margin:0;padding-left:18px}.card h3{margin:20px 0 8px;font-size:1rem}ul.attachments{flex-direction:column;gap:10px;margin:0 0 12px;padding:0;list-style:none;display:flex}.attachment{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;display:flex}.attach-state{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.85rem;font-weight:700;display:inline-flex}.attach-state.ok{color:var(--ok);background:#eef8f1}.attach-state.missing{color:var(--error);background:#fdf1f0}.attach-label{flex-direction:column;flex:1;gap:2px;min-width:160px;display:flex}.attach-label .link{text-align:left;word-break:break-all}label.file-button{border:1px solid var(--border);color:var(--accent);cursor:pointer;background:var(--surface);border-radius:6px;padding:6px 12px;font-weight:600;display:inline-block}label.file-button:hover{background:var(--bg)}label.file-button.disabled{opacity:.6;cursor:default}label.file-button input{display:none}.submit-row,.reject-box{margin-top:16px}button.danger-fill{background:var(--error)}button.danger-fill:hover:not(:disabled){background:#8f1c13}th.notice{color:var(--ok)}th.error{color:var(--error)}.card.over-po{border:2px solid var(--error);background:#fdf1f0}.card.over-po dt,.card.over-po dd{color:#8f1c13}.over-po-title{color:var(--error);text-transform:uppercase;letter-spacing:.03em;margin:0 0 12px;font-size:.85rem;font-weight:700}.over-po-note{color:#8f1c13;margin:12px 0 0;font-weight:600}.override-box{border:2px solid var(--error);background:#fdf1f0;border-radius:6px;margin-top:16px;padding:12px 14px}.override-box label{color:#8f1c13}.inline-label{align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:flex}a.button-link{border:1px solid var(--border);color:var(--accent);background:var(--surface);border-radius:6px;padding:6px 12px;font-weight:600;text-decoration:none;display:inline-block}a.button-link:hover{background:var(--bg)}.backup-table tr.category-row th{color:var(--accent);text-transform:none;letter-spacing:0;background:#eaf1f8;font-size:.95rem}.backup-table tr.subtotal-row td{background:#f8fafc;font-weight:700}.backup-print-head p{margin:2px 0}@media print{.backup-sheet .card{border:none;padding:0}.backup-sheet .table-wrap{border:none;overflow:visible}.backup-table{font-size:10pt}.backup-table th,.backup-table td{padding:4px 6px}a.no-print-link{color:inherit;text-decoration:none}.backup-print-head{margin-bottom:12px}.backup-print-head h1{color:#000;font-size:16pt}}.card.inset{background:#f8fafc}tr.superseded td{color:var(--muted)}fieldset.vendor-picks{border:1px solid var(--border);border-radius:6px;margin:0;padding:10px 14px}fieldset.vendor-picks legend{padding:0 4px;font-size:.9rem;font-weight:600}label.check.small{margin-top:10px;font-weight:400}.tiles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;flex-direction:column;gap:4px;padding:16px;text-decoration:none;display:flex}.tile:hover{border-color:var(--accent)}.tile-count{color:var(--muted);font-size:2rem;font-weight:700;line-height:1}.tile.has-items .tile-count{color:var(--accent)}.tile-label{font-weight:600}.tile-hint{color:var(--muted);font-size:.85rem}@media print{body{background:#fff}.no-print{display:none!important}.print-only{display:block}.shell{max-width:none;padding:0}}.po-print{color:#000;font-size:11pt}.po-print header{border-bottom:2px solid #000;justify-content:space-between;margin-bottom:16px;padding-bottom:8px;display:flex}.po-print h1{color:#000}.po-print p{margin:2px 0}.po-print h3{text-transform:uppercase;margin:12px 0 4px;font-size:10pt}.po-print-meta{text-align:right}.po-print-parties{grid-template-columns:1fr 1fr;gap:24px;display:grid}.po-print table{border-collapse:collapse;width:100%;margin:16px 0}.po-print th,.po-print td{text-align:left;border-bottom:1px solid #999;padding:6px 4px}.po-print .num{text-align:right}@media (width<=760px){.app-shell{grid-template-columns:minmax(0,1fr)}.mobile-bar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.mobile-bar strong{color:var(--accent)}.sidebar{z-index:15;width:240px;height:calc(100vh - 53px);transition:transform .2s;position:fixed;top:53px;left:0;transform:translate(-100%)}.sidebar-brand{display:none}.menu-open .sidebar{transform:none;box-shadow:4px 0 16px #0000001f}}@media print{.app-shell{display:block}}
