:root{--ink:#071521;--snow:#f3f7f8;--ice:#d9f2f1;--orange:#ff5a36;--line:#d9e1e3;--muted:#66747d}*{box-sizing:border-box}html{background:var(--snow)}body{margin:0;color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding-bottom:78px}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--ink);color:white}.brand{color:white;text-decoration:none;font-weight:900;letter-spacing:.08em}.brand span{color:var(--orange)}.user-name{font-size:13px;opacity:.8}.container{max-width:800px;margin:auto;padding:34px 20px}.eyebrow{letter-spacing:.18em;font-size:12px;font-weight:800;color:var(--muted)}h1{font-size:42px;line-height:1.05;margin:8px 0 30px;letter-spacing:-.04em}h2{margin-top:32px}.hero{text-align:center}.day-number{font-size:112px;line-height:1;font-weight:900;letter-spacing:-.08em}.day-label{font-weight:800;letter-spacing:.18em}.rank{margin:25px 0;font-size:14px;letter-spacing:.12em}.rank strong{font-size:22px}.checkin,.primary{border:0;background:var(--orange);color:white;border-radius:100px;font-weight:900;letter-spacing:.08em;cursor:pointer}.checkin{width:min(310px,85vw);height:110px;font-size:26px;box-shadow:0 16px 30px #ff5a3640}.checkin span{display:block;font-size:11px;font-weight:500;letter-spacing:.04em;margin-top:5px}.checkin:disabled{opacity:.55}.primary{width:100%;padding:16px}.verification{margin-top:30px}.sample-dots{display:grid;gap:5px;max-width:180px;margin:auto;text-align:left}.sample-dots span{color:var(--muted)}.sample-dots .done{color:#087d70;font-weight:700}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;background:white;border-top:1px solid var(--line);z-index:10;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a{flex:1;max-width:140px;padding:16px 5px;text-align:center;color:var(--muted);text-decoration:none;font-size:11px;font-weight:700}.list-card{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.leader-row{display:flex;align-items:center;min-height:64px;padding:12px 16px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.leader-row:last-child{border:0}.place{width:45px;color:var(--muted)}.leader-name{flex:1;font-weight:700}.leader-row small{font-size:9px;color:var(--muted)}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-grid div{background:var(--ink);color:white;padding:24px;border-radius:18px}.stat-grid strong{display:block;font-size:40px}.stat-grid span{font-size:10px;letter-spacing:.12em}.date-grid{display:flex;flex-wrap:wrap;gap:8px}.date-grid time{display:grid;text-align:center;background:white;border:1px solid var(--line);border-radius:12px;width:58px;padding:8px;font-size:22px}.date-grid b{font-size:9px;color:var(--muted)}label{display:block;font-weight:700;margin:18px 0 6px}input,select,textarea{display:block;width:100%;padding:13px;border:1px solid #b9c5c9;border-radius:10px;background:white;font:inherit}textarea{min-height:130px}form .primary{margin-top:22px}.auth-card{max-width:420px;margin:auto;background:white;padding:32px;border-radius:24px}.error-box,.flash{padding:14px;border-radius:10px;background:#ffe3dc;color:#92290f}.flash{max-width:760px;margin:15px auto}.flash.success{background:#dff5e9;color:#096037}.muted{color:var(--muted)}dialog{border:0;border-radius:24px;padding:30px;max-width:390px;width:calc(100% - 40px);text-align:center}dialog::backdrop{background:#071521bb}.success-mark{font-size:44px;color:#087d70}.result-stats{display:flex;justify-content:center;gap:30px;margin:25px}.result-stats b{display:block;font-size:28px}.logout-form{text-align:center}.text-button{border:0;background:none;color:#a32e1b;padding:20px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.admin-card{background:white;border:1px solid var(--line);border-radius:16px;padding:20px;color:inherit;text-decoration:none;font-weight:700}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}.actions{display:flex;gap:6px}.danger{color:#a32e1b}.map{height:440px;border-radius:16px;background:#dce8e8;margin:15px 0}@media(min-width:700px){.container{padding-top:50px}.bottom-nav{position:static;margin:auto}.hero{padding-top:25px}}
