:root{--bg:#f5f6f8;--card:#fff;--border:#d8dbe0;--accent:#0b5cad;color:#1c1e21;background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4}@media (prefers-color-scheme:dark){:root{--bg:#14161a;--card:#1e2126;--border:#363b43;--accent:#3b8ee0;color:#e6e8eb}}*{box-sizing:border-box}body{background:var(--bg);margin:0}.app{max-width:720px;margin:0 auto;padding:0 16px 32px}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 0 8px;display:flex}h1{margin:0;font-size:1.3rem}h2{margin:0;font-size:1.1rem}.who{align-items:center;gap:10px;font-size:.9rem;display:flex}nav{gap:8px;margin-bottom:16px;display:flex}nav button{border:1px solid var(--border);background:var(--card);color:inherit;font:inherit;cursor:pointer;border-radius:8px;flex:1;padding:12px}nav button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.card{background:var(--card);border:1px solid var(--border);text-align:left;border-radius:12px;flex-direction:column;gap:12px;margin-bottom:16px;padding:16px;display:flex}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.count{flex-direction:column;gap:4px;font-weight:600;display:flex}.count input{text-align:center;font-size:1.4rem}input,select{font:inherit;border:1px solid var(--border);background:var(--bg);color:inherit;border-radius:8px;min-width:0;padding:10px}input.sort{width:70px}label{flex-direction:column;gap:4px;display:flex}td label{flex-direction:row;align-items:center}button.primary{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:8px;padding:12px 16px;font-weight:600}button.primary:disabled{opacity:.5}button.link{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--border);text-align:left;padding:8px 4px}td input{width:100%}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}tfoot th{border-bottom:0}.ok{color:#1a7f37;margin:0}.warn{color:#b45309;margin:0}.error{color:#c62828;margin:0}.hint{opacity:.7;margin:0;font-size:.85rem}.login{max-width:360px;margin:15vh auto 0}.center{text-align:center;margin-top:30vh}.scroll{overflow-x:auto}
