:root{--accent: #0F766E;--accent-strong: color-mix(in srgb, var(--accent) 78%, black);--accent-soft: color-mix(in srgb, var(--accent) 14%, var(--surface));--bg: #F5F3EE;--surface: #FFFFFF;--surface2: #EEEAE2;--border: #DCD6CA;--text: #1B1A17;--muted: #69655D;--side: #14302D;--side-text: #C9DAD6;--side-active: rgba(255,255,255,.12);--good: #1F7A4D;--good-soft: #E1F2E8;--warn: #A6570A;--warn-soft: #FBEEDC;--bad: #B42318;--bad-soft: #FBE4E1;--bar-exp: #C9BFAE;--f-display: "DM Serif Display", Georgia, serif;--f-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--radius: 10px;--nav-h: 58px;color-scheme:light}:root[data-theme=dark]{--accent-strong: color-mix(in srgb, var(--accent) 60%, white);--bg: #121412;--surface: #1B1E1C;--surface2: #242826;--border: #343A37;--text: #ECEAE4;--muted: #9A968D;--side: #0C1A18;--side-text: #A9C2BD;--good: #5CC48C;--good-soft: #15291E;--warn: #E3A35A;--warn-soft: #2E2213;--bad: #F08A7E;--bad-soft: #331A17;--bar-exp: #5A554C;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-body);font-size:15px;line-height:1.5;-webkit-text-size-adjust:100%}h1,h2,h3{font-family:var(--f-display);font-weight:400;margin:0;line-height:1.15;text-wrap:balance}h1{font-size:1.7rem}h2{font-size:1.25rem}h3{font-size:1.05rem;font-family:var(--f-body);font-weight:600}p{margin:0}a{color:var(--accent-strong)}button,input,select,textarea{font:inherit;color:inherit}.num,td.r,th.r{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:.82rem}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.eyebrow{font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:600}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.stack{display:grid;gap:14px;align-content:start}[hidden]{display:none!important}.shell{display:grid;grid-template-columns:216px 1fr;min-height:100%}.side{background:var(--side);color:var(--side-text);padding:16px 10px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100dvh;overflow-y:auto;font-size:.88rem}.brand{display:flex;gap:10px;align-items:center;padding:2px 8px 14px;color:#fff}.brand img,.brand .logo{width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--accent);display:grid;place-items:center;font-family:var(--f-display);flex-shrink:0}.brand b{font-family:var(--f-display);font-weight:400;font-size:1.02rem;line-height:1.15}.navlbl{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;opacity:.55;padding:12px 10px 4px}.nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:7px;color:inherit;text-decoration:none}.nav:hover{background:#ffffff0f;color:#fff}.nav.active{background:var(--side-active);color:#fff}.badge{font-size:.66rem;background:#c2410c;color:#fff;border-radius:9px;padding:0 6px;font-weight:700}.syncline{color:inherit;text-decoration:none;margin-top:auto;padding:10px;font-size:.74rem;opacity:.8;display:flex;gap:6px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}.dot.ok{background:#5cc48c}.dot.busy{background:#e3a35a}.dot.err{background:#f08a7e}.main{padding:22px clamp(16px,3vw,32px) 48px;min-width:0}.page{max-width:1080px;margin:0 auto;display:grid;gap:18px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.page-head p{color:var(--muted);font-size:.88rem}.tabbar{display:none}@media(max-width:820px){.shell{display:block}.side{display:none}.side.open{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;height:auto;padding-top:calc(16px + env(safe-area-inset-top))}.main{padding:calc(14px + env(safe-area-inset-top)) 16px calc(var(--nav-h) + 28px + env(safe-area-inset-bottom))}.tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabbar a,.tabbar button{height:var(--nav-h);display:grid;place-content:center;justify-items:center;gap:2px;font-size:.66rem;font-weight:600;color:var(--muted);text-decoration:none;background:none;border:0}.tabbar .active{color:var(--accent-strong)}.tabbar svg{width:22px;height:22px}h1{font-size:1.45rem}}.btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 14px;font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap;min-height:38px}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-strong)}.btn.danger{color:var(--bad)}.btn.ghost{border-color:transparent;background:none}.btn.sm{padding:4px 10px;min-height:30px;font-size:.8rem}.btn:disabled{opacity:.45;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select,textarea{width:100%;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 10px;min-height:38px}textarea{min-height:84px;resize:vertical}input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--accent)}.field{display:grid;gap:4px;min-width:0}.field>span{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600}.field small{color:var(--muted);font-size:.76rem}.fields{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.check{display:flex;gap:8px;align-items:center;font-size:.9rem}.search{max-width:260px}.seg{display:inline-flex;justify-self:start;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);flex-wrap:wrap}.seg button{border:0;background:none;padding:6px 12px;font-size:.8rem;font-weight:600;color:var(--muted);cursor:pointer;min-height:34px}.seg button.on{background:var(--accent);color:#fff}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:grid;gap:10px;align-content:start;min-width:0}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.kpi .v{font-size:1.5rem;font-weight:600;letter-spacing:-.01em}.kpi .d{font-size:.76rem;color:var(--muted)}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px}.pill{display:inline-block;font-size:.68rem;font-weight:700;border-radius:20px;padding:2px 8px;white-space:nowrap;background:var(--surface2);color:var(--muted)}.pill.ok{background:var(--good-soft);color:var(--good)}.pill.wait{background:var(--warn-soft);color:var(--warn)}.pill.low{background:var(--bad-soft);color:var(--bad)}.empty{text-align:center;color:var(--muted);padding:32px 16px;border:1px dashed var(--border);border-radius:var(--radius);display:grid;gap:10px;justify-items:center}.notice{border-radius:var(--radius);padding:10px 14px;font-size:.88rem;background:var(--warn-soft);color:var(--warn)}.notice.bad{background:var(--bad-soft);color:var(--bad)}.notice.ok{background:var(--good-soft);color:var(--good)}.track{height:7px;border-radius:4px;background:var(--surface2);overflow:hidden;min-width:60px}.track span{display:block;height:100%;background:var(--accent);border-radius:4px}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:.88rem}th{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:left;font-weight:600;padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:9px 12px;border-bottom:1px solid var(--surface2);vertical-align:middle}tr:last-child td{border-bottom:0}td.r,th.r{text-align:right}tr.click{cursor:pointer}tr.click:hover td{background:var(--surface2)}tr.group td{background:var(--surface2);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:5px 12px}td .sub{display:block;font-size:.76rem;color:var(--muted)}.card table th:first-child,.card table td:first-child{padding-left:0}.card table th:last-child,.card table td:last-child{padding-right:0}@media(max-width:820px){.hide-sm{display:none}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:50;display:grid;place-items:center;padding:16px}.modal{background:var(--bg);border-radius:14px;width:min(100%,560px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal.wide{width:min(100%,780px)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-body{padding:16px 18px;overflow-y:auto;display:grid;gap:14px;align-content:start}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--border);flex-wrap:wrap}.modal-foot .left{margin-right:auto}@media(max-width:820px){.overlay{padding:0;place-items:end stretch}.modal,.modal.wide{width:100%;max-height:100dvh;border-radius:14px 14px 0 0;padding-bottom:env(safe-area-inset-bottom)}.modal.full{height:100dvh;border-radius:0;padding-top:env(safe-area-inset-top)}}.toasts{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom));display:grid;justify-items:center;gap:6px;z-index:60;pointer-events:none}.toast{background:var(--text);color:var(--bg);padding:9px 16px;border-radius:10px;font-size:.86rem;box-shadow:0 6px 20px #00000040}.ing{display:grid;grid-template-columns:1fr 96px 80px 34px;gap:6px;align-items:center}.ing .cost{text-align:right;font-size:.82rem;color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.tile{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px;display:grid;gap:2px;cursor:pointer;position:relative;min-height:84px;align-content:start}.tile:active{transform:scale(.98)}.tile b{font-size:.84rem;font-weight:600;line-height:1.2;padding-right:24px}.tile .pr{font-weight:700;color:var(--accent-strong)}.tile small{font-size:.7rem;color:var(--muted)}.tile .q{position:absolute;top:8px;right:8px;background:var(--accent);color:#fff;border-radius:10px;font-size:.72rem;font-weight:700;padding:0 7px;min-width:22px;text-align:center}.tile.out{opacity:.55}.cart{position:sticky;bottom:-16px;max-height:55dvh;overflow-y:auto;box-shadow:0 -6px 20px #00000014;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:grid;gap:8px}.cart-line{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;font-size:.86rem}.stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:8px;overflow:hidden}.stepper button{border:0;background:var(--surface2);width:30px;height:30px;cursor:pointer;font-weight:700}.stepper span{min-width:28px;text-align:center;font-variant-numeric:tabular-nums}.total{display:flex;justify-content:space-between;align-items:baseline}.total b{font-size:1.5rem}.chart svg{display:block;width:100%;height:auto}.legend{display:flex;gap:14px;font-size:.74rem;color:var(--muted);flex-wrap:wrap}.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}@media print{.side,.tabbar,.no-print{display:none!important}.shell{display:block}.main{padding:0}body{background:#fff}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
