*,:before,:after{box-sizing:border-box}:root{--bg:#f4f7f5;--card:#fff;--text:#1c2b28;--muted:#5f7370;--accent:#0e7c66;--accent-dark:#0a5c4c;--danger:#c0392b;--warn-bg:#fdf3d7;--warn-border:#e0b84e;--ok:#2e8b57;--border:#dde5e2;--radius:10px}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,sans-serif;line-height:1.5}main{max-width:640px;margin:0 auto;padding:1rem}h1{font-size:1.4rem}h2{font-size:1.15rem}a{color:var(--accent)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1rem}button,.btn{font:inherit;border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;border:none;padding:.6rem 1.1rem;text-decoration:none;display:inline-block}button:hover,.btn:hover{background:var(--accent-dark)}button.secondary,.btn.secondary{color:var(--accent);border:1px solid var(--accent);background:0 0}button.danger,.btn.danger{background:var(--danger)}button.small,.btn.small{padding:.3rem .7rem;font-size:.85rem}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);background:#fff;padding:.55rem}label{margin:.7rem 0 .25rem;font-size:.9rem;font-weight:600;display:block}label.check{align-items:center;gap:.5rem;margin:.35rem 0;font-weight:400;display:flex}label.check input{width:auto}.muted{color:var(--muted);font-size:.9rem}.warn{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);margin-bottom:1rem;padding:.75rem 1rem}.badge{border-radius:999px;padding:.1rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.badge.given{color:var(--ok);background:#e0f2e9}.badge.skipped{color:var(--danger);background:#fbe4e1}.badge.pending{color:#8a6d1a;background:#fdf3d7}header.topnav{background:var(--accent);color:#fff}header.topnav .inner{flex-wrap:wrap;align-items:center;gap:.9rem;max-width:640px;margin:0 auto;padding:.5rem 1rem;display:flex}header.topnav a{color:#fff;font-size:.95rem;font-weight:600;text-decoration:none}header.topnav a:hover{text-decoration:underline}header.topnav .spacer{flex:1}header.topnav form button{background:0 0;border:1px solid #ffffff80;padding:.2rem .6rem;font-size:.85rem}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.error{color:var(--danger);font-weight:600}@media print{header.topnav,.no-print{display:none!important}body{background:#fff}.card{border:none;padding:0}}
