:root { --bg:#f6f6f4; --fg:#1d1d1b; --muted:#6b6b66; --card:#fff; --line:#e2e2dc; --accent:#2f6f4f; --accent-fg:#fff; --err:#b3261e; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#141413; --fg:#ececea; --muted:#9a9a94; --card:#1e1e1c; --line:#33332f; --accent:#5fae86; --accent-fg:#0d1a13; --err:#f2b8b5; }
}
* { box-sizing: border-box; }
html, body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
main { max-width:560px; margin:0 auto; padding:16px; padding-bottom:calc(16px + env(safe-area-inset-bottom)); }
header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:16px; }
h1 { font-size:1.25rem; margin:0; }
.muted { color:var(--muted); font-size:.9rem; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:16px; }
button, .btn { font:inherit; border:0; border-radius:10px; padding:12px 16px; background:var(--accent); color:var(--accent-fg); cursor:pointer; }
button.link { background:none; color:var(--muted); padding:4px 8px; text-decoration:underline; }
.big { display:block; width:100%; padding:20px; font-size:1.15rem; font-weight:600; text-align:center; }
label { display:block; margin:12px 0 4px; font-size:.9rem; color:var(--muted); }
input[type=text], input[type=password] { width:100%; font:inherit; padding:12px; border-radius:10px; border:1px solid var(--line); background:var(--bg); color:var(--fg); }
.err { color:var(--err); }
img.preview { width:100%; border-radius:8px; margin-top:12px; }
.hidden { display:none; }
select { width:100%; font:inherit; padding:12px; border-radius:10px; border:1px solid var(--line); background:var(--bg); color:var(--fg); }
input[type=date], input[type=time] { width:100%; font:inherit; padding:11px; border-radius:10px; border:1px solid var(--line); background:var(--bg); color:var(--fg); }
.row2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ok { color:var(--accent); font-weight:600; }
.err { font-weight:600; }
.grouphead { display:flex; justify-content:space-between; align-items:baseline; }
ul.items { list-style:none; padding:0; margin:12px 0 0; }
ul.items li { display:grid; grid-template-columns:1fr 96px; gap:6px 8px; padding:10px 0; border-top:1px solid var(--line); }
ul.items .iname { align-self:center; font-size:.95rem; overflow-wrap:anywhere; }
ul.items .iamt { text-align:right; padding:8px; }
ul.items select { grid-column:1 / -1; padding:8px; font-size:.9rem; }
button:disabled { opacity:.5; cursor:not-allowed; }
.spinner { display:inline-block; width:1em; height:1em; border:3px solid var(--line); border-top-color:var(--accent); border-radius:50%; animation:spin 1s linear infinite; vertical-align:-2px; }
@keyframes spin { to { transform:rotate(360deg); } }
