@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');
:root{--ink:#17211f;--muted:#6d7773;--cream:#f7f4ec;--white:#fff;--green:#276a58;--dark:#1c4e42;--line:#e4e7df;--danger:#a13b3b}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:var(--cream);font-family:'DM Sans',sans-serif}h1,h2,p{margin-top:0}h1,h2{font-family:'Playfair Display',serif;letter-spacing:-.02em}h1{font-size:clamp(2rem,5vw,4rem);line-height:1.02;margin-bottom:1.2rem}h2{font-size:1.8rem;margin-bottom:.7rem}p{line-height:1.6;color:var(--muted)}.eyebrow{color:var(--green);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.7rem}.page-shell{max-width:1120px;margin:auto;padding:52px 28px 72px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:42px}.topbar h1{font-size:clamp(2rem,4vw,3.5rem);margin:0}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;padding:13px 18px;background:var(--green);color:white;font:600 .92rem 'DM Sans',sans-serif;text-decoration:none;cursor:pointer}.button:hover{background:var(--dark)}.button-secondary{background:transparent;color:var(--green);border:1px solid #b9ccc3}.welcome-card{display:flex;gap:18px;align-items:flex-start;background:var(--dark);border-radius:18px;color:#fff;padding:30px 36px;margin-bottom:22px}.welcome-card .eyebrow,.welcome-card p{color:#c2d9d0}.welcome-card h2{margin-bottom:5px}.status-dot{width:11px;height:11px;margin-top:8px;border-radius:50%;background:#b6e56c;flex:none}.card,.login-card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 10px 30px #263c3220}.attendance-card{margin-bottom:22px}.date-form{max-width:260px;margin-bottom:32px}.date-form label,label{font-size:.86rem;font-weight:600;display:block;margin:8px 0}.list-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.people-list{border-top:1px solid var(--line);margin-top:10px}.person-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 8px;border-bottom:1px solid var(--line)}.person-row.is-present{background:#f0f7f2}.person-main{display:flex;align-items:center;gap:13px;margin:0;cursor:pointer}.person-main input,.paid-check input{width:auto}.person-main span{display:grid;gap:3px}.person-main small{color:var(--muted)}.paid-check{display:flex;align-items:center;gap:7px;margin:0;white-space:nowrap}.paid-check input{accent-color:var(--green)}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.card form{display:grid;gap:8px}.muted-card{background:#f3f4ee;box-shadow:none}.alert{padding:12px 14px;border-radius:8px;font-size:.9rem;margin-bottom:18px}.alert-success{background:#e1f1e8;color:#1d654c}.alert-error{background:#fae7e5;color:var(--danger)}input,textarea{width:100%;border:1px solid #d4dbd5;border-radius:8px;padding:13px 14px;color:var(--ink);background:#fbfcf9;font:1rem 'DM Sans',sans-serif;outline:none}textarea{resize:vertical;line-height:1.5}input:focus,textarea:focus{border-color:var(--green)}small{color:var(--muted)}.add-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:15px}.login-page{display:grid;place-items:center;padding:28px}.login-layout{width:min(100%,1000px);display:grid;grid-template-columns:1fr 420px;gap:74px;align-items:center}.single-column{width:min(100%,500px);display:block}.login-intro p{max-width:430px;font-size:1.1rem}.login-card h2,.login-card h1{font-size:2.2rem;margin-bottom:24px}.login-card form{display:grid;gap:9px}.button-full{width:100%;margin-top:12px}.back-link{display:inline-block;color:var(--green);text-decoration:none;font-size:.9rem;margin-bottom:38px}@media(max-width:700px){.page-shell{padding:30px 18px 50px}.topbar{align-items:flex-start;flex-direction:column;margin-bottom:30px}.admin-grid,.login-layout{grid-template-columns:1fr;gap:28px}.welcome-card{padding:25px}.card,.login-card{padding:25px}.list-heading{align-items:flex-start;flex-direction:column}.person-row{align-items:flex-start;flex-direction:column;gap:8px}}
