:root{--bg:#f7f5f0;--panel:#ffffff;--ink:#1d1d1b;--muted:#6b6a64;--line:#e4e0d6;--brand:#1f3a2e;--brand-ink:#ffffff;--accent:#b5652b;--danger:#b3261e;--ok:#2e7d4f;--radius:10px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--brand)}h1{font-size:1.5rem;margin:0 0 .25rem}h2{font-size:1.1rem;margin:1.5rem 0 .5rem}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger);background:#fdecea}.error,.notice{padding:.5rem .75rem;border-radius:6px}.notice{color:var(--ok);background:#e8f5ee}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--brand);color:var(--brand-ink);padding:1rem;display:flex;flex-direction:column;gap:.25rem}.sidebar .brand{font-weight:700;font-size:1.15rem;margin-bottom:.25rem}.sidebar .shop{font-size:.8rem;opacity:.75;margin-bottom:1rem}.sidebar a{color:var(--brand-ink);text-decoration:none;padding:.45rem .6rem;border-radius:6px}.sidebar a:hover{background:rgba(255,255,255,.12)}.sidebar form{margin-top:auto}.sidebar button{width:100%;background:transparent;color:var(--brand-ink);border:1px solid rgba(255,255,255,.35)}.content{padding:1.5rem 2rem;max-width:1200px}@media (max-width:760px){.shell{grid-template-columns:1fr}.sidebar{flex-direction:row;flex-wrap:wrap;align-items:center}.sidebar .shop,.sidebar form{display:none}.content{padding:1rem}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.25rem}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat .label{color:var(--muted);font-size:.85rem}.stat .value{font-size:1.6rem;font-weight:650}.row{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap}.row>*{flex:1 1 140px}.spread{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted);margin-bottom:.6rem}label.check{flex-direction:row;align-items:center;color:var(--ink)}input,select,textarea{font:inherit;padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}textarea{min-height:70px}.button,button{font:inherit;padding:.5rem .9rem;border-radius:6px;border:1px solid var(--line);background:#fff;cursor:pointer;text-decoration:none;color:var(--ink);display:inline-block}.button.primary,button.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}button.danger{color:var(--danger);border-color:var(--danger)}button.link{border:none;background:none;color:var(--brand);padding:0}table{width:100%;border-collapse:collapse;background:var(--panel)}td,th{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line);font-size:.92rem;vertical-align:top}th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.02em}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;background:#eee9dd}.badge.warn{background:#fbe7d6;color:var(--accent)}.badge.ok{background:#e1f1e7;color:var(--ok)}.auth{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{width:min(420px,100%);display:flex;flex-direction:column}.auth-card button{margin-top:.5rem}.totals td{border:none;padding:.2rem .6rem}.totals tr.grand td{font-weight:700;border-top:2px solid var(--ink);padding-top:.5rem}