:root{--green: #2b4a2f;--green-light: #3d6943;--bg: #f4f3ee;--card: #ffffff;--text: #1d231e;--muted: #6b7268;--border: #d8d6cd;--accent: #b3541e;--danger: #a8322d;--ok: #2e7d32;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:16px}#root{min-height:100vh;display:flex;flex-direction:column}header.topbar{background:var(--green);color:#fff;padding:10px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}header.topbar h1{font-size:18px;margin:0;font-weight:600;letter-spacing:.5px}header.topbar .tenant-name{display:block;font-size:12px;font-weight:400;letter-spacing:normal;color:#d8e3d6;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}nav.tabs{display:flex;gap:4px;flex-wrap:wrap}nav.tabs button{background:transparent;border:1px solid transparent;color:#d8e3d6;padding:8px 12px;border-radius:8px;font-size:14px;cursor:pointer;min-height:40px}nav.tabs button:hover{background:var(--green-light);color:#fff}nav.tabs button.active{background:#fff;color:var(--green);font-weight:600}nav.tabs button kbd{background:#00000040;border-radius:4px;padding:1px 5px;font-size:11px;margin-right:6px}nav.tabs button.active kbd{background:var(--green);color:#fff}.tab-group{display:flex;gap:4px;align-items:center;padding-left:10px;margin-left:6px;border-left:1px solid rgba(255,255,255,.25)}.tab-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:#a9bda7;margin-right:2px}nav.subtabs{background:var(--green-light);padding:6px 16px;display:flex;gap:4px;flex-wrap:wrap}nav.subtabs button{background:transparent;border:1px solid transparent;color:#e2ece0;padding:6px 12px;border-radius:8px;font-size:14px;cursor:pointer;min-height:36px}nav.subtabs button:hover{background:#ffffff26;color:#fff}nav.subtabs button.active{background:#fff;color:var(--green);font-weight:600}nav.subtabs button kbd{background:#00000040;border-radius:4px;padding:1px 5px;font-size:11px;margin-right:6px}nav.subtabs button.active kbd{background:var(--green);color:#fff}main{flex:1;padding:16px;max-width:1100px;width:100%;margin:0 auto}h2{font-size:20px;margin:8px 0 16px}h3{font-size:16px;margin:16px 0 8px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.hint{color:var(--muted);font-size:13px;margin:8px 0}.hint kbd,.kbd{background:#e8e6df;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-size:12px;font-family:inherit}label.field{display:block;margin-bottom:12px}label.field span{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}input,select,textarea{width:100%;padding:10px 12px;font-size:16px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);min-height:44px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:140px}button.primary,button.secondary,button.danger{padding:10px 18px;font-size:16px;border-radius:8px;border:1px solid transparent;cursor:pointer;min-height:44px}button.primary{background:var(--green);color:#fff}button.primary:hover{background:var(--green-light)}button.secondary{background:#fff;border-color:var(--border);color:var(--text)}button.danger{background:#fff;border-color:var(--danger);color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}.picker{position:relative}.picker ul{position:absolute;z-index:10;left:0;right:0;margin:2px 0 0;padding:0;list-style:none;background:#fff;border:1px solid var(--border);border-radius:8px;max-height:260px;overflow-y:auto;box-shadow:0 6px 16px #0000001f}.picker li{padding:10px 12px;cursor:pointer;display:flex;justify-content:space-between;gap:8px}.picker li.selected{background:var(--green);color:#fff}.picker li .sku{color:var(--muted);font-size:13px}.picker li.selected .sku{color:#d8e3d6}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:13px;white-space:nowrap}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.total td{font-weight:700;border-top:2px solid var(--text)}.neg{color:var(--danger)}.pos{color:var(--ok)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:#e8e6df}.badge.DELIVERY{background:#f7e2d6;color:var(--accent)}.badge.RECEIPT{background:#ddecdd;color:var(--ok)}.badge.BOTTLING{background:#dfe7f5;color:#2c4a7c}.badge.ADJUSTMENT{background:#f0e6f5;color:#6a3a86}:root{--chart-in: #3f7d49;--chart-out: #b3541e}.kpi-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.kpi{flex:1;min-width:150px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.kpi-value{display:block;font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.kpi-label{display:block;font-size:13px;color:var(--muted);margin-top:2px}.kpi.warn{border-color:var(--danger)}.kpi.warn .kpi-value{color:var(--danger)}.legend{display:flex;gap:16px;font-size:13px;color:var(--muted);margin-bottom:8px}.legend .swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}.swatch.in,.bar.in{background:var(--chart-in)}.swatch.out,.bar.out{background:var(--chart-out)}.weekly-chart{display:flex;gap:10px;align-items:flex-end;height:140px;padding-top:8px}.week{flex:1;display:flex;flex-direction:column;height:100%;min-width:0}.week .bars{flex:1;display:flex;gap:2px;align-items:flex-end;justify-content:center}.week .bar{width:14px;max-width:40%;border-radius:4px 4px 0 0;min-height:1px}.week-label{text-align:center;font-size:11px;color:var(--muted);margin-top:4px;white-space:nowrap}.hbar{height:10px;border-radius:0 4px 4px 0;background:var(--chart-in);min-width:2px}.hbar.out{background:var(--chart-out)}.hbar.negbar{background:var(--danger)}td.actions{white-space:nowrap}td.actions button{margin-right:6px;padding:6px 10px;min-height:34px;font-size:14px}.chip-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.chip-row+.chip-row{margin-top:10px}.chip-label{font-size:14px;color:var(--muted)}.chip{background:#fff;border:1px solid var(--border);border-radius:999px;padding:10px 20px;font-size:16px;min-height:48px;cursor:pointer;color:var(--text)}.chip-active{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}.chip-input{flex:1;min-width:160px;max-width:280px;border-radius:999px;min-height:48px}.take-search{width:100%;min-height:52px;font-size:17px;border-radius:999px;padding:10px 20px;margin-bottom:12px}.take-list{list-style:none;margin:0 0 16px;padding:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.take-row{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 0;border-bottom:1px solid var(--border)}.take-row:last-child{border-bottom:none}.take-row-active{background:#f2f7f2}.take-row-main{flex:1;background:none;border:none;text-align:left;padding:12px 16px;cursor:pointer;min-height:64px;color:var(--text);font-size:16px}.take-row-name{display:block;font-weight:600}.take-row-meta{display:block;font-size:13px;color:var(--muted);margin-top:2px}.take-add{width:52px;height:52px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--green);font-size:26px;cursor:pointer;flex-shrink:0}.take-add:active{background:#ecf2ec}.take-stepper-pill{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--green);border-radius:999px;padding:2px;flex-shrink:0}.take-stepper-pill .stepper{border:none;width:48px;height:48px;border-radius:50%}.stepper{width:52px;height:52px;border-radius:10px;border:1px solid var(--border);background:#fff;font-size:24px;cursor:pointer;color:var(--text)}.stepper:active{background:#ecf2ec}.take-qty{width:76px;text-align:center;font-size:20px;font-variant-numeric:tabular-nums;min-height:52px}.take-has-bar{padding-bottom:88px}.take-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:center;gap:12px;max-width:1100px;margin:0 auto;padding:12px 16px;background:var(--card);border-top:1px solid var(--border);box-shadow:0 -4px 16px #0000001f}.take-bar-summary{flex:1;font-size:16px;font-weight:600}.take-bar-dest{color:var(--accent)}.take-bar-save{min-height:52px;min-width:130px;font-size:18px}.take-bar-clear{min-height:52px}.take-log{list-style:none;margin:0;padding:0}.take-log li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:15px}.take-log li:last-child{border-bottom:none}.take-log-when{color:var(--muted);font-size:13px;min-width:64px}.take-log-what{flex:1}.take-log-dest{color:var(--muted)}.take-undo{padding:8px 14px;min-height:40px;font-size:14px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--text);color:#fff;padding:12px 20px;border-radius:8px;font-size:15px;z-index:100;max-width:90vw;box-shadow:0 4px 14px #0000004d}.toast.error{background:var(--danger)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--green)}.login-card{background:#fff;padding:32px;border-radius:14px;width:320px;max-width:90vw;text-align:center}.login-card h1{color:var(--green);margin:0 0 4px;font-size:22px}.login-card p{color:var(--muted);margin:0 0 20px}.login-card input{text-align:center;font-size:24px;letter-spacing:8px}.login-card .error{color:var(--danger);font-size:14px;min-height:20px;margin:8px 0}.notice{background:#fdf6e3;border:1px solid #e0d3a8;border-radius:8px;padding:10px 14px;font-size:13px;color:#6b5d2e;margin-bottom:16px}@media (max-width: 640px){main{padding:10px}header.topbar{padding:8px 10px}nav.tabs button{padding:8px 10px}nav.tabs button kbd{display:none}body{font-size:15px}}.archived-card{border-color:var(--green)}.archived-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.archived-head .hint{flex:1}.demo-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:16px 0 12px}.demo-divider:before,.demo-divider:after{content:"";flex:1;border-top:1px solid var(--border)}
