:root{--bg: #f4f6f8;--surface: #ffffff;--ink: #1b2733;--muted: #64748b;--border: #e2e8f0;--accent: #0d9488;--accent-ink: #0f766e;--danger: #dc2626;--success: #15803d;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);font-size:15px}h1,h2,h3{margin:0 0 12px}.muted{color:var(--muted)}.right{text-align:right}.error{color:var(--danger)}.success{color:var(--success)}.centered{display:grid;place-items:center;height:100vh}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.btn{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-ink)}.btn.ghost{border-color:transparent;background:transparent}.btn.block{width:100%}.btn.small{padding:4px 8px}.btn:disabled{opacity:.55;cursor:not-allowed}label{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}input,select{display:block;width:100%;margin-top:4px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:14px;color:var(--ink);background:#fff}input.num{width:84px;margin:0}.login-screen{display:grid;place-items:center;min-height:100vh;padding:16px}.login-card{width:100%;max-width:360px}.brand{color:var(--accent-ink);letter-spacing:-.02em}.brand.small{font-size:18px;font-weight:700}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar-right{display:flex;align-items:center;gap:16px}.pharmacy-picker{display:flex;align-items:center;gap:8px;margin:0}.pharmacy-picker select{margin:0;width:auto}.app-body{display:flex;flex:1}.sidenav{width:190px;padding:16px 10px;display:flex;flex-direction:column;gap:4px}.sidenav a{padding:9px 12px;border-radius:8px;text-decoration:none;color:var(--ink);font-weight:600;font-size:14px}.sidenav a:hover{background:#eef2f5}.sidenav a.active{background:var(--accent);color:#fff}.content{flex:1;padding:20px}.pos{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}.scan-row{display:flex;gap:8px;margin-bottom:16px}.scan-row input{margin:0}.empty{padding:24px 0;text-align:center}.total-row{display:flex;justify-content:space-between;align-items:baseline;font-size:18px;margin:14px 0;padding-top:14px;border-top:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border)}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}@media(max-width:760px){.pos{grid-template-columns:1fr}}.reports{display:flex;flex-direction:column;gap:16px}.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.kpi{display:flex;flex-direction:column;gap:6px}.kpi-label{color:var(--muted);font-size:13px}.kpi-value{font-size:26px;letter-spacing:-.02em}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:8px}.receive-actions{display:flex;align-items:center;gap:16px;margin-top:16px}.receive-actions .primary{margin-left:auto}@media(max-width:760px){.kpi-row,.form-grid{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:20px}.row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.row>label{margin-bottom:0;flex:0 1 auto}.row>label.grow,label.grow{flex:1 1 220px}.suggestions{list-style:none;margin:8px 0 0;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg);display:flex;flex-direction:column;gap:4px}.suggestions .btn.ghost{width:100%;text-align:left}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;text-transform:capitalize;background:var(--border);color:var(--ink)}.badge.status-requested{background:#fef9c3;color:#854d0e}.badge.status-approved{background:#e0f2fe;color:#075985}.badge.status-dispatched{background:#ede9fe;color:#5b21b6}.badge.status-received,.badge.status-returned{background:#dcfce7;color:var(--success)}.badge.status-issued{background:#ccfbf1;color:var(--accent-ink)}.badge.status-cancelled{background:#fee2e2;color:var(--danger)}@media(max-width:760px){.row{flex-direction:column;align-items:stretch}}.rx{border:1px solid var(--border);border-radius:8px;padding:10px 12px 2px;margin:0 0 12px}.rx legend{font-size:13px;font-weight:600;padding:0 4px}.rx input[aria-invalid=true]{border-color:var(--danger)}.badge.sched{margin-left:6px;background:#fee2e2;color:var(--danger);text-transform:uppercase;font-size:11px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs button{border:0;background:none;padding:8px 14px;font:inherit;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer}.tabs button.active{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:600}.scan-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.scan-progress{display:grid;gap:6px;margin:12px 0}.scan-progress .bar{height:8px;border-radius:4px;background:var(--border);overflow:hidden}.scan-progress .bar>div{height:100%;background:var(--accent);transition:width .4s ease}.scan-done{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.scan-review.with-pdf{display:grid;grid-template-columns:1fr;gap:16px}.scan-pdf{width:100%;height:70vh;border:1px solid var(--border);border-radius:var(--radius)}@media(min-width:1800px){.scan-review.with-pdf{grid-template-columns:minmax(0,1fr) minmax(360px,32%);align-items:start}.scan-pdf{position:sticky;top:12px;height:85vh}}.table-scroll{overflow-x:auto}.scan-lines{min-width:1240px}.scan-lines input{width:100%;min-width:0}.scan-lines .col-item{min-width:230px}.scan-lines .col-batch{width:120px}.scan-lines .col-expiry{width:150px}.scan-lines .col-num{width:92px}.scan-lines .col-packs{width:150px}.scan-lines .col-packs input,.scan-lines input.tiny{width:58px;display:inline-block}.scan-lines td{vertical-align:top}.scan-lines .nowrap{white-space:nowrap}.scan-desc{display:grid;gap:2px;min-width:180px}.scan-flags{color:#b45309}.scan-lines tr.sev-error{box-shadow:inset 4px 0 0 var(--danger);background:#fef2f2}.scan-lines tr.sev-error .scan-flags{color:var(--danger)}.scan-lines tr.sev-warn{box-shadow:inset 4px 0 #f59e0b;background:#fffbeb}.scan-lines tr.sev-ok{box-shadow:inset 4px 0 0 var(--success)}.scan-lines tr.excluded{opacity:.45;box-shadow:none;background:none}.scan-totals{display:flex;gap:20px;flex-wrap:wrap;margin:12px 0}.warn-text{color:#b45309;font-weight:600}
