:root{--bg:#f4f6f8;--fg:#1f2933;--card:#fff;--pri:#2563eb;--bd:#d9e0e6;--ok:#16a34a;--err:#dc2626}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--fg)}
.topbar{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;background:#111827;color:#fff;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none}.brand{font-weight:700}
.topbar nav{display:flex;gap:1rem;flex:1}
.logout{display:flex;align-items:center;gap:.75rem;margin:0}
.container{max-width:1100px;margin:1.5rem auto;padding:0 1rem}
.card{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:1.5rem}
body.guest{display:grid;place-items:center;min-height:100vh;padding:1rem}
.login{width:100%;max-width:360px}.login h1{margin-top:0;font-size:1.4rem;text-align:center}
label{display:block;margin:.75rem 0 .25rem;font-weight:600}
input,select{width:100%;padding:.6rem;border:1px solid var(--bd);border-radius:6px;font:inherit}
.btn{display:inline-block;margin-top:1rem;padding:.6rem 1.1rem;background:var(--pri);color:#fff;border:0;border-radius:6px;font:inherit;cursor:pointer}
.login .btn{width:100%}.btn-sm{margin:0;padding:.3rem .7rem}
.alert{padding:.7rem 1rem;border-radius:6px;margin-bottom:1rem;max-width:360px}
body:not(.guest) .alert{max-width:none}
.alert-warn{background:#fef3c7;color:#78350f}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.page-head h1 small{font-weight:400;color:#6b7280}
.filters{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin:1rem 0}
.filters input[type=search]{max-width:280px}
.inline{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-weight:400}.inline input{width:auto}
.table-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--bd);border-radius:8px}
table{width:100%;border-collapse:collapse}
th,td{padding:.6rem .8rem;text-align:left;border-bottom:1px solid var(--bd);white-space:nowrap}
th{background:#f9fafb;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}
.num{text-align:right}
.empty{text-align:center;color:#6b7280;padding:1.5rem}
.row-low{background:#fff7ed}
.badge{display:inline-block;padding:.05rem .45rem;border-radius:999px;font-size:.75rem;font-weight:600}
.badge-low{background:#fed7aa;color:#7c2d12}
.actions{display:flex;gap:.75rem;align-items:center}.actions form{margin:0}
.link-danger{background:none;border:0;padding:0;color:var(--err);cursor:pointer;font:inherit}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 1.25rem}
.form-grid .full{grid-column:1/-1}
textarea{width:100%;padding:.6rem;border:1px solid var(--bd);border-radius:6px;font:inherit}
.details{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1.5rem;margin:0}
.details dt{font-weight:600}.details dd{margin:0}
.pos{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:1rem;align-items:start}
@media(max-width:800px){.pos{grid-template-columns:1fr}}
.results{list-style:none;margin:.5rem 0 0;padding:0;max-height:55vh;overflow:auto}
.results li{padding:.55rem .6rem;border-bottom:1px solid var(--bd);cursor:pointer;display:flex;flex-direction:column}
.results li:hover{background:#eff6ff}.results small{color:#6b7280}
.qty{width:5rem;text-align:right}
.pos-total{display:flex;justify-content:flex-end;gap:1rem;align-items:baseline;font-size:1.6rem;margin:1rem 0 0}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-ghost{background:transparent;color:var(--fg);border:1px solid var(--bd)}
tfoot th{background:#f9fafb}
@media print{.topbar,.btn,.page-head div{display:none}body{background:#fff}}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1rem}
.stat{display:flex;flex-direction:column}.stat span{color:#6b7280;font-size:.85rem;text-transform:uppercase}
.stat strong{font-size:1.7rem}.stat-ok strong{color:var(--ok)}
.row-void{color:#9ca3af;text-decoration:line-through}
.inline-form{display:inline;margin:0}
.btn-danger{background:var(--err)}
.hint{color:#6b7280;font-size:.85rem}
.badge{background:#e5e7eb;color:#374151}
.pager{display:flex;gap:1rem;justify-content:center;margin:1rem 0}
.alert-ok{background:#dcfce7;color:#14532d}.alert-error{background:#fee2e2;color:#7f1d1d}
