:root{--sky: #5ec8f8;--lavender: #b98cf2;--pink: #ff8fc7;--sun: #ffcd3c;--grass: #57d38c;--coral: #ff7a6e;--ink: #33285a;--card: #ffffff;--card-shadow: 0 10px 0 rgba(51, 40, 90, .12), 0 16px 30px rgba(51, 40, 90, .12);--radius: 28px;--bg-gradient: linear-gradient(160deg, var(--sky) 0%, var(--lavender) 55%, var(--pink) 100%);--muted-text: #7a7290;--hairline: rgba(51, 40, 90, .1);--hairline-strong: rgba(51, 40, 90, .15);--ghost-bg: rgba(255, 255, 255, .5);--status-success: #1a7a45;--status-warning: #8a5a00;--status-danger: #a3341f;--status-success-bg: #d7f7e3;--status-warning-bg: #ffe6b0;--status-danger-bg: #ffe1de;color-scheme:light}[data-theme=dark]{--ink: #f1ecff;--card: #241b3f;--card-shadow: 0 10px 0 rgba(0, 0, 0, .35), 0 16px 30px rgba(0, 0, 0, .4);--bg-gradient: linear-gradient(160deg, #1c1533 0%, #2c2050 55%, #3a2350 100%);--muted-text: #b8aee0;--hairline: rgba(255, 255, 255, .12);--hairline-strong: rgba(255, 255, 255, .22);--ghost-bg: rgba(255, 255, 255, .08);--status-success: #6fe3a0;--status-warning: #ffcf5c;--status-danger: #ff8a7a;--status-success-bg: rgba(111, 227, 160, .16);--status-warning-bg: rgba(255, 207, 92, .16);--status-danger-bg: rgba(255, 138, 122, .16);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Nunito,system-ui,sans-serif;color:var(--ink);background:var(--bg-gradient);background-attachment:fixed;min-height:100vh;transition:background .3s ease,color .3s ease;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}h1,h2,h3,.heading{font-family:"Baloo 2",Nunito,system-ui,sans-serif;font-weight:800;letter-spacing:.2px}h1{font-size:clamp(1.5rem,4vw + 1rem,2.2rem)}h2{font-size:clamp(1.25rem,3vw + .85rem,1.6rem)}h3{font-size:clamp(1.05rem,2vw + .75rem,1.3rem)}.app-shell{max-width:1000px;margin:0 auto;padding:24px 20px 60px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--card-shadow);padding:24px;min-width:0}.btn{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:1.05rem;border:none;border-radius:999px;padding:14px 28px;cursor:pointer;color:#fff;background:var(--grass);box-shadow:0 6px #00000026;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(4px);box-shadow:0 2px #00000026}.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.btn.sun{background:var(--sun);color:#4a3300}.btn.pink{background:var(--pink)}.btn.sky{background:var(--sky)}.btn.coral{background:var(--coral)}.btn.ghost{background:var(--ghost-bg);color:var(--ink);box-shadow:none;border:2px solid var(--hairline-strong)}.btn.small{padding:8px 16px;font-size:.9rem;box-shadow:0 4px #00000026}input,select,textarea{font-family:Nunito,sans-serif;font-size:1rem;padding:12px 14px;border-radius:14px;border:2px solid var(--hairline-strong);outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--lavender)}label{font-weight:700;font-size:.9rem;color:var(--ink);display:block;margin-bottom:6px}.field{margin-bottom:16px}.error-banner{background:var(--status-danger-bg);color:var(--status-danger);border-radius:14px;padding:12px 16px;font-weight:700;margin-bottom:16px}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px;margin:28px 0}.avatar-tile{background:var(--card);border-radius:var(--radius);box-shadow:var(--card-shadow);padding:20px;text-align:center;cursor:pointer;border:none;transition:transform .12s ease;font-family:"Baloo 2",sans-serif}.avatar-tile:hover{transform:translateY(-4px) scale(1.02)}.avatar-circle{width:84px;height:84px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.4rem;margin:0 auto 12px}.pin-dots{display:flex;gap:14px;justify-content:center;margin:20px 0}.pin-dot{width:20px;height:20px;border-radius:50%;border:3px solid var(--ink);background:transparent}.pin-dot.filled{background:var(--ink)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:300px;margin:0 auto}.pin-key{font-family:"Baloo 2",sans-serif;font-size:1.6rem;font-weight:700;padding:18px 0;border-radius:18px;border:none;background:var(--card);color:var(--ink);box-shadow:var(--card-shadow);cursor:pointer}.pin-key:active{transform:scale(.95)}.progress-track{background:var(--hairline);border-radius:999px;height:22px;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--grass),var(--sun),var(--coral));transition:width .4s ease}.task-card{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--card);border-radius:20px;padding:16px 18px;box-shadow:0 4px #33285a14;margin-bottom:12px;transition:opacity .2s ease}.task-info{flex:1 1 160px;min-width:0}.card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}.task-card.pending{opacity:.85;border:2px dashed var(--sun)}.task-card.completed{opacity:.55}.task-card.not-today{opacity:.6}.task-check:disabled{cursor:not-allowed;opacity:.6}.task-icon{font-size:1.8rem}.task-check{margin-left:auto;width:42px;height:42px;border-radius:50%;border:3px solid var(--grass);background:var(--card);cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center}.task-check.done{background:var(--grass);color:#fff}.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:24px}.pill-tag{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.pill-tag.chore{background:#ffe6b0;color:#8a5a00}.pill-tag.school{background:#cfe8ff;color:#14507a}.pill-tag.hygiene{background:#d6f5e6;color:#0f6b45}.pill-tag.reading{background:#f0dcff;color:#6a1b9a}.pill-tag.exercise{background:#ffd9d9;color:#9b1c1c}.pill-tag.success{background:var(--status-success-bg);color:var(--status-success)}.pill-tag.warning{background:var(--status-warning-bg);color:var(--status-warning)}.pill-tag.danger{background:var(--status-danger-bg);color:var(--status-danger)}.tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.tab-btn{font-family:"Baloo 2",sans-serif;font-weight:700;padding:10px 20px;border-radius:999px;border:2px solid rgba(255,255,255,.6);background:#ffffff59;color:#fff;cursor:pointer}.tab-btn.active{background:var(--card);color:var(--ink)}.nav-burger{display:none}@media (max-width: 700px){.nav-burger{display:flex}.tabs{display:none;flex-direction:column;gap:4px;margin:0 0 20px;padding:10px;background:var(--card);border-radius:20px;box-shadow:var(--card-shadow)}.tabs.open{display:flex}.tab-btn{color:var(--ink);background:transparent;border-color:transparent;text-align:left;padding:12px 16px}.tab-btn.active{background:var(--hairline-strong)}}.admin-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}table.admin-table{width:100%;border-collapse:collapse}table.admin-table th,table.admin-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--hairline)}.wheel-wrap{display:flex;flex-direction:column;align-items:center;gap:24px}.wheel-pointer{font-size:2rem}.wheel-svg{filter:drop-shadow(0 10px 20px rgba(51,40,90,.25));width:100%;max-width:380px;height:auto}.icon-toggle{background:#ffffff59;border:2px solid rgba(255,255,255,.6);color:#fff;border-radius:999px;width:44px;height:44px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center}.stat-row{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.stat-pill{background:#ffffffe6;color:#33285a;border-radius:999px;padding:8px 16px;font-weight:800;font-family:"Baloo 2",sans-serif;box-shadow:var(--card-shadow)}.badge-shelf{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.badge{font-size:1.8rem;background:var(--card);border-radius:16px;padding:8px 12px;box-shadow:var(--card-shadow)}.day-picker{display:flex;gap:6px;flex-wrap:wrap}.day-chip{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:.85rem;padding:10px 14px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:2px solid var(--hairline-strong);background:var(--card);color:var(--ink);cursor:pointer}.day-chip.active{border-color:var(--lavender);background:var(--lavender);color:#fff}.view-toggle{display:inline-flex;background:#ffffff4d;border-radius:999px;padding:4px;gap:4px;margin-bottom:16px}.view-toggle button{font-family:"Baloo 2",sans-serif;font-weight:700;border:none;border-radius:999px;padding:8px 18px;cursor:pointer;background:transparent;color:#fff}.view-toggle button.active{background:#fff;color:var(--ink)}.notice-banner,.info-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-radius:20px;padding:14px 18px;margin-bottom:16px;font-weight:600}.notice-banner{background:var(--status-warning-bg);color:var(--status-warning)}.info-banner{background:var(--status-success-bg);color:var(--status-success)}.camera-permission-hint{margin-top:8px;padding:10px 12px;border-radius:14px;background:var(--status-warning-bg);color:var(--status-warning);font-size:.8rem;font-weight:600}.ledger-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--hairline);font-size:.9rem}.leaderboard-row{align-items:center}.proof-thumb{width:56px;height:56px;min-width:56px;border-radius:14px;object-fit:cover;cursor:pointer;box-shadow:0 4px #33285a14}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000;cursor:zoom-out}.modal-photo{max-width:min(90vw,640px);max-height:85vh;width:auto;height:auto;border-radius:var(--radius);box-shadow:var(--card-shadow)}@media print{.no-print{display:none!important}body{background:#fff!important}.card{box-shadow:none;border:1px solid #ccc}}
