:root{--primary:#0f766e;--primary-hover:#115e59;--accent:#f59e0b;--bg:#fafaf9;--surface:#fff;--text:#1c1917;--muted:#57534e;--border:#e7e5e4;--success:#15803d;--danger:#b91c1c;--warning-bg:#fef3c7;--fs-32:32px;--fs-24:24px;--fs-20:20px;--fs-16:16px;--fs-12:12px;--s-4:4px;--s-8:8px;--s-16:16px;--s-24:24px;--s-32:32px;--s-40:40px;--s-48:48px;--r-4:4px;--r-8:8px;--r-12:12px;--r-16:16px;--r-24:24px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0c0a09;--surface:#1c1917;--text:#fafaf9;--muted:#d6d3d1;--border:#44403c;--primary:#2dd4bf;--primary-hover:#5eead4;--warning-bg:#422006;--success:#4ade80;--danger:#f87171}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:400 var(--fs-16) / 1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-variant-numeric:tabular-nums;margin:0}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:var(--fs-24);font-weight:700}h2{font-size:var(--fs-20);font-weight:600}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a{color:var(--primary)}.shell{flex-direction:column;min-height:100%;display:flex}.main{padding:var(--s-16);padding-bottom:calc(var(--s-48) + var(--s-40) + env(safe-area-inset-bottom));gap:var(--s-16);flex-direction:column;flex:1;width:100%;max-width:960px;margin:0 auto;display:flex}.topbar{padding:var(--s-8) var(--s-16);background:var(--surface);border-bottom:1px solid var(--border);z-index:5;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand{font-weight:700;font-size:var(--fs-16)}.tabs{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:5;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{justify-content:center;align-items:center;gap:var(--s-4);min-height:56px;font-size:var(--fs-12);color:var(--muted);flex-direction:column;flex:1;font-weight:500;text-decoration:none;display:flex}.tab.active{color:var(--primary)}@media (width>=1024px){.shell{flex-direction:row}.topbar{display:none}.tabs{border-top:0;border-right:1px solid var(--border);width:224px;height:100vh;padding:var(--s-16) var(--s-8);justify-content:flex-start;gap:var(--s-4);flex-direction:column;position:sticky;top:0}.tab{justify-content:flex-start;gap:var(--s-16);padding:0 var(--s-16);border-radius:var(--r-8);min-height:48px;font-size:var(--fs-16);flex-direction:row;flex:none}.tab.active{background:color-mix(in srgb, var(--primary) 12%, transparent)}.main{padding:var(--s-32);padding-bottom:var(--s-32)}.side-brand{display:block!important}}.side-brand{padding:var(--s-8) var(--s-16) var(--s-16);font-weight:700;font-size:var(--fs-20);display:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-12);padding:var(--s-16);gap:var(--s-8);flex-direction:column;display:flex}.row{align-items:center;gap:var(--s-8);display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.stack{gap:var(--s-8);flex-direction:column;display:flex}.grid{gap:var(--s-16);grid-template-columns:1fr;display:grid}@media (width>=768px){.grid.cols-2{grid-template-columns:1fr 1fr}.grid.cols-3{grid-template-columns:repeat(3,1fr)}}.muted{color:var(--muted)}.small{font-size:var(--fs-12)}.big{font-size:var(--fs-32);font-weight:700}.price{white-space:nowrap;font-weight:600}.empty{text-align:center;color:var(--muted);padding:var(--s-32) var(--s-16)}.btn{min-height:48px;padding:0 var(--s-16);border-radius:var(--r-8);background:var(--primary);color:#fff;cursor:pointer;justify-content:center;align-items:center;gap:var(--s-8);border:1px solid #0000;font-weight:600;display:inline-flex}.btn:hover{background:var(--primary-hover)}.btn.secondary{color:var(--text);border-color:var(--border);background:0 0}.btn.secondary:hover{background:var(--bg)}.btn.danger{background:var(--danger)}.btn.block{width:100%}.btn.sm{min-height:40px;padding:0 var(--s-16)}.btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn{border:1px solid var(--border);border-radius:var(--r-8);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex}.field{gap:var(--s-4);flex-direction:column;display:flex}.field label{font-size:var(--fs-12);color:var(--muted);font-weight:500}.input,.select{min-height:48px;padding:0 var(--s-16);border:1px solid var(--border);border-radius:var(--r-4);background:var(--surface);width:100%}.input.err{border-color:var(--danger)}.err-text{color:var(--danger);font-size:var(--fs-12)}.badge{padding:0 var(--s-8);border-radius:var(--r-24);min-height:24px;font-size:var(--fs-12);background:var(--border);align-items:center;font-weight:500;display:inline-flex}.badge.warn{background:var(--warning-bg);color:var(--text)}.badge.bad{background:var(--danger);color:#fff}.badge.ok{background:color-mix(in srgb, var(--success) 18%, transparent)}.item{justify-content:space-between;align-items:center;gap:var(--s-16);padding:var(--s-16);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-12);display:flex}.item.low{background:var(--warning-bg)}.item .name{font-size:var(--fs-16);font-weight:600}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;padding:var(--s-8) var(--s-16);border-bottom:1px solid var(--border);font-size:var(--fs-16)}.table th{font-size:var(--fs-12);color:var(--muted);font-weight:500}.sheet-bg{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-radius:var(--r-16) var(--r-16) 0 0;width:100%;max-height:92vh;padding:var(--s-24) var(--s-16);gap:var(--s-16);flex-direction:column;display:flex;overflow:auto}@media (width>=768px){.sheet-bg{align-items:center}.sheet{border-radius:var(--r-16);max-width:560px}}.toast{background:var(--text);color:var(--bg);padding:var(--s-16) var(--s-24);border-radius:var(--r-12);z-index:30;max-width:calc(100% - 32px);position:fixed;bottom:88px;left:50%;transform:translate(-50%)}.toast.error{background:var(--danger);color:#fff}.skeleton{border-radius:var(--r-12);background:linear-gradient(90deg, var(--border), var(--surface), var(--border));background-size:200% 100%;height:64px;animation:1.2s infinite sk}@keyframes sk{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.banner{background:var(--warning-bg);padding:var(--s-8) var(--s-16);text-align:center;font-size:var(--fs-12)}.bars{align-items:flex-end;gap:var(--s-8);height:120px;display:flex}.bar{background:var(--primary);border-radius:var(--r-4) var(--r-4) 0 0;flex:1;min-height:4px}.barcol{align-items:center;gap:var(--s-4);flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex}.login{min-height:100%;padding:var(--s-16);justify-content:center;align-items:center;display:flex}.login .card{width:100%;max-width:400px;padding:var(--s-24);gap:var(--s-16)}.photo{border-radius:var(--r-8);object-fit:cover;background:var(--border);width:48px;height:48px}
