:root{--bg:#faf6ef;--surface:#ffffff;--ink:#2b2018;--muted:#7a6a5c;--brand:#7a4a2b;--brand-dark:#5d3820;--accent:#e8dccb;--border:#e3d9c9;--ok:#2e7d4f;--warn:#b3541e;--danger:#a33a2a}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5}a{color:var(--brand)}main{max-width:56rem;margin:0 auto;padding:1.25rem 1rem 4rem}.site-header{background:var(--brand);color:#fff}.site-header .inner{max-width:56rem;margin:0 auto;padding:.7rem 1rem;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.site-header .logo{font-weight:700;font-size:1.05rem;color:#fff;text-decoration:none}.site-header nav{display:flex;gap:1rem;flex:1 1}.site-header nav a{color:#f3e8da;text-decoration:none;font-size:.95rem}.site-header nav a:hover{color:#fff;text-decoration:underline}.userbox{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:#f3e8da}h1{font-size:1.5rem;margin:1rem 0 .5rem}h2{font-size:1.15rem;margin:1.75rem 0 .5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem;margin:.75rem 0}.muted{color:var(--muted);font-size:.9rem}table{width:100%;border-collapse:collapse;background:var(--surface)}td,th{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}td.num,th.num{text-align:right}.btn,button{display:inline-block;background:var(--brand);color:#fff;border:none;border-radius:8px;padding:.55rem 1rem;font-size:.95rem;font-family:inherit;cursor:pointer;text-decoration:none}.btn:hover,button:hover{background:var(--brand-dark)}.btn.secondary,button.secondary{background:transparent;color:var(--brand);border:1px solid var(--brand)}.btn.secondary:hover,button.secondary:hover{background:var(--accent)}.btn.small,button.small{padding:.3rem .7rem;font-size:.85rem}button.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}button.danger:hover{background:#f9ece9}input,select{font-family:inherit;font-size:1rem;padding:.5rem .6rem;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--ink)}input:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}input.qty{width:7rem;text-align:right;font-size:1.1rem;padding:.6rem}form.inline{display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-end}.field{display:flex;flex-direction:column;gap:.2rem}.field label{font-size:.8rem;color:var(--muted)}.badge{display:inline-block;border-radius:999px;font-size:.75rem;padding:.1rem .6rem;font-weight:600}.badge.open{background:#fdf1e2;color:var(--warn)}.badge.completed{background:#e6f2ea;color:var(--ok)}.savestate{font-size:.75rem;min-width:4.5rem;display:inline-block}.savestate.saving{color:var(--muted)}.savestate.saved{color:var(--ok)}.savestate.error{color:var(--danger)}.progressbar{height:8px;border-radius:999px;background:var(--accent);overflow:hidden;margin:.5rem 0 1rem}.progressbar>div{height:100%;background:var(--ok);transition:width .3s}.login-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2rem;max-width:24rem;width:100%;text-align:center}.login-card h1{margin-top:0}.actionsrow{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}@media (max-width:600px){td.hide-sm,th.hide-sm{display:none}}