:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f5f2;--surface:#fff;--surface-muted:#efede8;--surface-pressed:#e6e3dd;--text:#1d1c1a;--text-muted:#6b6862;--line:#e6e3dd;--accent:#b4532a;--accent-pressed:#9a4522;--on-accent:#fff;--ok:#2f7d4f;--ok-bg:#e4f1e8;--err:#b3261e;--err-bg:#fbe9e7;--warn:#8a5a00;--warn-bg:#fbf0d9;--s-xs:4px;--s-sm:8px;--s-md:12px;--s-lg:16px;--s-xl:20px;--s-xxl:24px;--r-control:10px;--r-input:12px;--r-button:14px;--r-card:18px;--r-pill:999px;--dialog-pad:16px;--r-dialog:calc(var(--r-button) + var(--dialog-pad));--hit:44px;--button:54px;--input:48px;--shadow-card:0 2px 8px #0000000f;--border-card:.5px solid #0000000f;--t-press:.15s;--t-enter:.2s;--t-exit:.15s;--press-scale:.96;--ease-out:cubic-bezier(.2, 0, 0, 1);--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:400 17px/24px var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}.t-title{font-size:28px;font-weight:700;line-height:34px}.t-heading{font-size:20px;font-weight:700;line-height:26px}.t-strong{font-weight:600}.t-caption{font-size:14px;line-height:20px}.t-label{letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);font-size:13px;font-weight:600;line-height:18px}.t-total{font-size:22px;font-weight:700;line-height:28px}.muted{color:var(--text-muted)}.num,table,input,.tabular{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{min-height:100dvh}.sidebar{display:none}.topbar{justify-content:space-between;align-items:center;gap:var(--s-sm);padding:var(--s-sm) var(--s-lg);padding-top:max(var(--s-sm), env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--line);z-index:5;display:flex;position:sticky;top:0}.topbar .who{min-width:0}.topbar .who>*{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.main{padding:var(--s-lg);padding-bottom:calc(72px + var(--s-xxl) + env(safe-area-inset-bottom));max-width:1120px}.tabbar{z-index:5;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.tabbar a{min-height:60px;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 2px;font-size:12px;font-weight:600;line-height:16px;text-decoration:none;display:flex}.tabbar a[aria-current=page]{color:var(--accent)}.tabbar a:active{background:var(--surface-pressed)}@media (width>=900px){.shell{grid-template-columns:240px 1fr;display:grid}.topbar,.tabbar{display:none}.sidebar{gap:var(--s-xs);height:100dvh;padding:var(--s-lg) var(--s-sm);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;display:flex;position:sticky;top:0}.sidebar .brand{padding:var(--s-sm) var(--s-md) var(--s-lg)}.sidebar nav{gap:var(--s-xs);flex-direction:column;display:flex}.sidebar nav a{align-items:center;gap:var(--s-md);min-height:var(--hit);padding:0 var(--s-md);border-radius:var(--r-control);color:var(--text);font-weight:600;text-decoration:none;display:flex}.sidebar nav a svg{color:var(--text-muted)}.sidebar nav a[aria-current=page]{background:var(--surface-muted);color:var(--accent)}.sidebar nav a[aria-current=page] svg{color:var(--accent)}.sidebar nav a:active{background:var(--surface-pressed)}.sidebar .account{padding:var(--s-md);border-top:1px solid var(--line);gap:var(--s-sm);margin-top:auto;display:grid}.main{padding:var(--s-xxl) 32px 48px}}.page-head{justify-content:space-between;align-items:end;gap:var(--s-md);margin-bottom:var(--s-xl);flex-wrap:wrap;display:flex}.section{margin-top:var(--s-xxl)}.section>.t-label{margin-bottom:var(--s-sm);display:block}.card{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-card);border:var(--border-card)}.card.pad{padding:var(--s-lg)}.card.form-card{border-radius:calc(var(--r-input) + var(--s-lg))}.stats{gap:var(--s-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stat{padding:var(--s-lg);gap:var(--s-xs);min-width:0;display:grid}@media (width<=599px){.stat .t-title{font-size:22px;line-height:28px}}.btn{justify-content:center;align-items:center;gap:var(--s-sm);min-height:var(--button);padding:0 var(--s-xl);border-radius:var(--r-button);cursor:pointer;white-space:nowrap;background:var(--surface-muted);color:var(--text);transition-property:transform,background-color;transition-duration:var(--t-press);transition-timing-function:var(--ease-out);touch-action:manipulation;-webkit-user-select:none;user-select:none;border:0;font-weight:600;text-decoration:none;display:inline-flex}.btn.has-icon{padding-left:calc(var(--s-xl) - 2px)}.btn:active:not(:disabled){transform:scale(var(--press-scale));background:var(--surface-pressed)}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:active:not(:disabled){background:var(--accent-pressed)}.btn.danger{background:var(--err-bg);color:var(--err)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.block{width:100%}.btn.sm{min-height:var(--hit);padding:0 var(--s-md);border-radius:var(--r-control);font-size:15px;transition:none}.btn.sm:active:not(:disabled){transform:none}.icon-btn{width:var(--hit);height:var(--hit);border-radius:var(--r-control);color:var(--text);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}.icon-btn:active{background:var(--surface-pressed)}.link-btn{color:var(--accent);cursor:pointer;text-align:left;min-height:var(--hit);background:0 0;border:0;padding:0;font-weight:600}@media (hover:hover) and (pointer:fine){.btn:hover:not(:disabled){background:var(--surface-pressed)}.btn.primary:hover:not(:disabled){background:var(--accent-pressed)}.btn.danger:hover:not(:disabled){background:#f6d9d5}.icon-btn:hover,.sidebar nav a:hover:not([aria-current=page]){background:var(--surface-muted)}tr.clickable:hover td{background:var(--bg)}.link-btn:hover{text-decoration:underline}}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.form{gap:var(--s-lg);display:grid}.field{gap:6px;display:grid}.field>label,.field>.t-label{color:var(--text-muted)}.input{width:100%;height:var(--input);padding:0 var(--s-md);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-input);outline:none}.input:focus{border:1.5px solid var(--accent);padding:0 calc(var(--s-md) - .5px)}.input[aria-invalid=true]{border-color:var(--err)}.input:disabled{background:var(--surface-muted);color:var(--text-muted)}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(-45deg, transparent 50%, var(--text-muted) 50%);background-position:right 18px center,right 13px center;background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}.field-error{color:var(--err);font-size:14px;line-height:20px}.field-hint{color:var(--text-muted);font-size:14px;line-height:20px}.input-wrap{position:relative}.input-wrap .input{padding-right:52px}.input-wrap .icon-btn{position:absolute;top:2px;right:2px}.row-fields{gap:var(--s-lg);display:grid}@media (width>=600px){.row-fields{grid-template-columns:2fr 1fr 1fr}}.chips{gap:var(--s-sm);flex-wrap:wrap;display:flex}.chip{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);cursor:pointer;min-height:36px;padding:0 14px;font-size:15px;position:relative}.chip:after{content:"";position:absolute;inset:-4px 0}.chip[aria-pressed=true]{background:var(--text);color:var(--surface);border-color:var(--text)}.checkbox{align-items:center;gap:var(--s-sm);min-height:var(--hit);cursor:pointer;display:flex}.checkbox input{width:20px;height:20px;accent-color:var(--accent)}.form-actions{gap:var(--s-md);flex-wrap:wrap;align-items:center;display:flex}.banner{align-items:flex-start;gap:var(--s-sm);padding:var(--s-md);border-radius:var(--r-input);font-size:14px;line-height:20px;display:flex}.banner svg{flex:none;margin-top:-1px}.banner .grow{flex:1;align-self:center}.banner.err{background:var(--err-bg);color:var(--err)}.banner.ok{background:var(--ok-bg);color:var(--ok)}.banner.warn{background:var(--warn-bg);color:var(--warn)}.badge{border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;font-size:13px;font-weight:600;line-height:18px;display:inline-flex}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.err{background:var(--err-bg);color:var(--err)}.badge.muted{background:var(--surface-muted);color:var(--text-muted)}.state{text-align:center;justify-items:center;gap:var(--s-sm);padding:48px var(--s-lg);color:var(--text-muted);display:grid}.state .t-strong{color:var(--text)}.state .btn{margin-top:var(--s-sm)}.state.inline{padding:var(--s-xxl) var(--s-lg)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}caption{text-align:left;padding:var(--s-md) var(--s-lg) var(--s-xs)}th{text-align:left;padding:var(--s-md) var(--s-lg);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:var(--s-sm) var(--s-lg);border-bottom:1px solid var(--line);vertical-align:middle;height:56px}tr:last-child td{border-bottom:0}th.r,td.r{text-align:right}td.nowrap{white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:active td{background:var(--surface-pressed)}tr.dim td>.dim-target{opacity:.5}.cell-actions{gap:var(--s-xs);flex-wrap:wrap;justify-content:flex-end;display:flex}@media (width<=599px){.cell-actions{flex-wrap:nowrap}.cell-actions .btn.sm:has(>.hide-sm){width:var(--hit);padding:0}th,td{padding-left:var(--s-md);padding-right:var(--s-md)}th:first-child,td:first-child{padding-left:var(--s-lg)}th:last-child,td:last-child{padding-right:var(--s-lg)}.hide-sm{display:none}}@media (width>=600px){.show-sm{display:none}}.chart-readout{justify-content:space-between;align-items:baseline;gap:var(--s-xs) var(--s-md);margin-bottom:var(--s-md);flex-wrap:wrap;min-height:28px;display:flex}.chart{gap:var(--s-sm);grid-template-columns:auto minmax(0,1fr);display:grid}.chart-axis{height:180px;color:var(--text-muted);text-align:right;flex-direction:column;justify-content:space-between;font-size:12px;line-height:14px;display:flex}.chart-bars{border-bottom:1px solid var(--line);background-image:linear-gradient(var(--line) 1px, transparent 1px);background-size:100% 50%;grid-template-columns:repeat(14,minmax(0,1fr));align-items:end;height:180px;display:grid}.chart-bars button{cursor:pointer;background:0 0;border:0;border-radius:4px 4px 0 0;justify-content:center;align-items:flex-end;height:100%;padding:0 2px;display:flex}.chart-bars button span{background:var(--accent);opacity:.55;border-radius:4px 4px 0 0;width:100%;max-width:28px;display:block}.chart-bars button[aria-pressed=true] span{opacity:1}.chart-bars button:focus-visible{outline-offset:0}@media (hover:hover) and (pointer:fine){.chart-bars button:hover span{opacity:1}}.chart-days{color:var(--text-muted);text-align:center;grid-column:2;grid-template-columns:repeat(14,minmax(0,1fr));font-size:12px;line-height:16px;display:grid}@media (width<=599px){.chart-days span:nth-child(odd){visibility:hidden}}.top-list{margin:0;padding:0;list-style:none}.top-list li{gap:var(--s-sm);padding:var(--s-md) 0;border-bottom:1px solid var(--line);grid-template-columns:28px 1fr auto;align-items:center;display:grid}.top-list li:last-child{border-bottom:0}dialog.dlg{width:min(520px, calc(100vw - 2 * var(--s-lg)));max-height:calc(100dvh - 2 * var(--s-lg));border:var(--border-card);border-radius:var(--r-dialog);background:var(--surface);color:var(--text);padding:0;overflow:hidden;box-shadow:0 16px 48px #0000002e}dialog.dlg:focus{outline:none}dialog.dlg[open]{animation:dlg-in var(--t-enter) var(--ease-out);flex-direction:column;display:flex}dialog.dlg.closing{animation:dlg-out var(--t-exit) var(--ease-out) forwards}dialog.dlg::backdrop{animation:fade-in var(--t-enter) var(--ease-out);background:#1d1c1a66}dialog.dlg.closing::backdrop{animation:fade-out var(--t-exit) var(--ease-out) forwards}@keyframes dlg-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes dlg-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.dlg-head{justify-content:space-between;align-items:center;gap:var(--s-sm);padding:var(--s-md) var(--s-sm) var(--s-sm) var(--s-xl);display:flex}.dlg-body{padding:var(--s-sm) var(--s-xl) var(--s-xl);gap:var(--s-lg);display:grid;overflow-y:auto}.dlg-foot{gap:var(--s-sm);padding:var(--dialog-pad);border-top:1px solid var(--line);justify-content:flex-end;display:flex}.dlg-foot .btn{flex:1}@media (width>=600px){.dlg-foot .btn{flex:none;min-width:120px}}.kv{gap:var(--s-xs) var(--s-lg);grid-template-columns:auto 1fr;margin:0;display:grid}.kv dt{color:var(--text-muted)}.kv dd{margin:0}.lines{margin:0;padding:0;list-style:none}.lines li{justify-content:space-between;gap:var(--s-md);padding:var(--s-md) 0;border-bottom:1px solid var(--line);display:flex}.lines li:last-child{border-bottom:0}.total-row{padding-top:var(--s-md);border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;display:flex}.login{min-height:100dvh;padding:18dvh var(--s-lg) var(--s-lg);justify-items:center;display:grid}.login .card{width:min(400px,100%);padding:var(--s-xxl);align-self:start}.login .form{margin-top:var(--s-xxl)}@media (prefers-reduced-motion:reduce){.btn:active:not(:disabled){transform:none}@keyframes dlg-in{0%{opacity:0}to{opacity:1}}@keyframes dlg-out{0%{opacity:1}to{opacity:0}}.spinner{animation-duration:1.5s}}.grow-status{flex:240px}@media (width>=600px){.menu-table{table-layout:fixed}.menu-table th:first-child{width:40%}.menu-table th:nth-child(2){width:16%}.menu-table th:nth-child(3){width:20%}}
