.calendar{padding:16px}.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cal-title{font-weight:700;font-size:1rem}.cal-nav{padding:6px 12px;font-size:1rem;font-weight:700}.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.cal-day-label{text-align:center;font-size:.7rem;font-weight:700;color:var(--text-dim);padding:4px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-cell{aspect-ratio:1;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.8rem;background:var(--bg-input);position:relative;min-height:36px}.cal-cell.empty{background:transparent}.cal-cell.today{outline:2px solid var(--accent);outline-offset:-1px}.cal-cell.perfect{background:#c8f7c5}.cal-cell.partial{background:#fff3cd}.cal-cell.none{background:var(--bg-input)}.cal-cell.penalty{background:#fdd}.cal-num{font-weight:600;font-size:.75rem}.cal-dot{font-size:.55rem;color:var(--text-dim);font-weight:600}@media (max-width: 480px){.cal-cell{min-height:30px;border-radius:6px}.cal-num{font-size:.65rem}.cal-dot{font-size:.5rem}}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.btn-admin{background:var(--bg-input);color:var(--text-dim);padding:8px 18px;font-size:.85rem;font-weight:600}.kid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px}@media (max-width: 400px){.kid-cards{grid-template-columns:repeat(2,1fr);gap:10px}.kid-card{padding:16px 10px}.kid-card-stats{gap:10px}.stat-value{font-size:.95rem}}.kid-card{text-align:center;padding:24px 16px;cursor:pointer;transition:transform .15s,box-shadow .15s;position:relative}.kid-card:active{transform:scale(.97)}.kid-card:hover{box-shadow:0 4px 24px #6c5ce726}.crown{position:absolute;top:8px;right:10px;background:linear-gradient(135deg,#fdcb6e,#e17055);color:#fff;font-size:.7rem;font-weight:800;padding:3px 8px;border-radius:8px}.kid-card-name{font-weight:700;font-size:1.1rem;margin-top:8px}.kid-card-age{font-size:.75rem;color:var(--text-dim);margin-top:2px}.kid-card-stats{display:flex;justify-content:center;gap:16px;margin-top:12px}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-weight:800;font-size:1.1rem;color:var(--accent)}.stat-label{font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.vitality-bar{height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden;margin-top:12px}.vitality-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:3px;transition:width .5s ease}.disabled-kid{opacity:.5}.kid-disabled-tag{font-size:.7rem;color:var(--danger);font-weight:700;text-transform:uppercase;margin-top:2px}.penalty-note{font-size:.7rem;color:var(--danger);font-weight:600;margin-top:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:var(--radius);padding:32px;box-shadow:0 10px 40px #0003;text-align:center;max-width:340px;width:90%}.modal h2{margin-bottom:16px}.points-badge{display:flex;align-items:center;gap:10px}.points-main{background:linear-gradient(135deg,#fdcb6e,#e17055);border-radius:20px;padding:6px 16px;display:flex;align-items:baseline;gap:4px}.points-number{font-size:1.2rem;font-weight:800;color:#fff}.points-unit{font-size:.7rem;font-weight:600;color:#fffc;text-transform:uppercase}.streak-badge{background:#fff3e0;border-radius:12px;padding:4px 10px;font-size:.75rem;color:#e65100;font-weight:600}.task-card{background:#fff;border-radius:var(--radius);padding:16px;margin-bottom:10px;box-shadow:var(--shadow);transition:transform .15s,opacity .3s;position:relative;overflow:hidden}.task-card.done{opacity:.6;border-left:4px solid var(--success)}.task-card.skipped{opacity:.4;border-left:4px solid var(--text-dim)}.task-card-main{display:flex;align-items:center;gap:14px;cursor:pointer}.task-card-main:active{transform:scale(.98)}.task-check{width:36px;height:36px;border-radius:50%;border:3px solid var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0;transition:all .3s}.done .task-check{background:var(--success);border-color:var(--success);color:#fff}.skipped .task-check{border-color:var(--text-dim);color:var(--text-dim)}.task-info{flex:1;min-width:0}.task-title{font-weight:600;font-size:1.05rem}.done .task-title{text-decoration:line-through}.task-desc{font-size:.8rem;color:var(--text-dim);margin-top:2px}.task-points{text-align:center;flex-shrink:0}.points-value{display:block;font-size:1.3rem;font-weight:700;color:var(--accent)}.points-label{font-size:.65rem;color:var(--text-dim);text-transform:uppercase}.task-actions{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--bg-input)}.btn-small{padding:6px 14px;font-size:.8rem;border-radius:8px}.kid-tasks .back-btn{margin-bottom:8px;font-size:.9rem}.kid-tasks .kid-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.kid-tasks .kid-header h1{margin-bottom:6px;font-size:1.3rem}.auth-status{background:#e8f5e9;color:#2e7d32;padding:10px 16px;border-radius:var(--radius);font-size:.85rem;font-weight:600;text-align:center;margin-bottom:16px}.auth-status.not-authed{background:#fff3e0;color:#e65100;cursor:pointer}.progress-bar-wrap{display:flex;align-items:center;gap:12px;margin-bottom:20px}.progress-bar{flex:1;height:10px;background:var(--bg-input);border-radius:5px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:5px;transition:width .5s ease}.progress-text{font-size:.85rem;color:var(--text-dim);font-weight:600}.task-section{margin-bottom:24px}.task-section h2{font-size:.9rem;color:var(--text-dim);margin-bottom:10px;text-transform:uppercase;letter-spacing:1px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{background:#fff;border-radius:var(--radius);padding:28px 24px;box-shadow:0 10px 40px #0003;text-align:center;max-width:340px;width:100%}.modal h2{margin-bottom:16px;font-size:1.1rem}.community-card{margin-bottom:10px}.community-completions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.community-who{background:#e8f5e9;color:#2e7d32;padding:2px 8px;border-radius:6px;font-size:.7rem;font-weight:600}@media (max-width: 480px){.kid-tasks .kid-header{gap:12px}.kid-tasks .kid-header h1{font-size:1.1rem}}.kid-filter{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;padding-bottom:4px}.filter-btn{background:#fff;border:2px solid var(--bg-input);color:var(--text-dim);padding:6px 14px;font-size:.8rem;font-weight:600;border-radius:20px;white-space:nowrap}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.cal-card{padding:16px}.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.cal-title{font-weight:700;font-size:1.1rem}.cal-nav{padding:6px 14px;font-size:1.1rem;font-weight:700}.month-summary{display:flex;gap:12px;justify-content:center;font-size:.85rem;color:var(--text-dim);font-weight:600;margin-bottom:12px}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.cal-weekday{text-align:center;font-size:.7rem;font-weight:700;color:var(--text-dim);padding:4px 0}.cal-grid-full{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell-full{border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 2px;min-height:54px;background:var(--bg-input);cursor:pointer;transition:all .15s}.cal-cell-full.empty{background:transparent;cursor:default}.cal-cell-full:active:not(.empty){transform:scale(.95)}.cal-cell-full.today{outline:2px solid var(--accent);outline-offset:-1px}.cal-cell-full.selected{outline:3px solid var(--accent);outline-offset:-1px;background:#ede7f6}.cal-cell-full.perfect{background:#c8f7c5}.cal-cell-full.partial{background:#fff8c4}.cal-cell-full.none{background:var(--bg-input)}.cal-cell-full.penalty{background:#fdd}.cal-day-num{font-weight:700;font-size:.85rem}.cal-day-info{font-size:.6rem;font-weight:600;color:var(--text-dim)}.cal-done{color:var(--success)}.cal-slash{margin:0 1px}.cal-penalty{font-size:.55rem;font-weight:700;color:var(--danger)}.cal-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.cal-page-header h1{margin:0}.cal-page-actions{display:flex;gap:8px;align-items:center}.cal-event-dot{font-size:.5rem;color:var(--accent);line-height:1}.event-list{display:flex;flex-direction:column;gap:8px}.event-card{padding:12px 16px}.event-title{font-weight:700;font-size:.95rem}.event-time{font-size:.8rem;color:var(--accent);font-weight:600;margin-top:2px}.event-desc{font-size:.82rem;margin-top:4px}.event-meta{font-size:.75rem;margin-top:4px}.day-detail h2{font-size:1rem;margin:0}@media (max-width: 480px){.cal-cell-full{min-height:44px;padding:4px 1px}.cal-day-num{font-size:.75rem}.cal-day-info{font-size:.55rem}}.kid-tabs{display:flex;gap:10px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px}.kid-tab{display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;padding:10px 18px;border-radius:var(--radius);font-size:.8rem;font-weight:600;color:var(--text-dim);white-space:nowrap;box-shadow:var(--shadow);transition:all .2s}.kid-tab.active{background:var(--accent);color:#fff;box-shadow:0 4px 15px #6c5ce74d}.kid-tab.tab-disabled,.task-item.inactive{opacity:.5}.task-meta{display:flex;gap:6px;flex-wrap:wrap}.badge{background:var(--bg-input);padding:4px 10px;border-radius:8px;font-size:.75rem;font-weight:600;color:var(--text-dim)}.badge-penalty{background:#ffebee;color:var(--danger)}.section-title{font-size:.9rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;margin-top:8px}.icon-picker{display:flex;gap:6px;flex-wrap:wrap}.icon-btn{font-size:1.4rem;padding:8px;background:var(--bg-input);border-radius:8px;line-height:1}.icon-btn.selected{background:var(--accent);box-shadow:0 0 10px #6c5ce780}.rewards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.reward-card{text-align:center;display:flex;flex-direction:column;gap:8px}.reward-icon{font-size:2.2rem}.reward-title{font-weight:700;font-size:1rem}.reward-cost{font-size:1.1rem;font-weight:800;color:var(--accent)}.status-badge{padding:4px 10px;border-radius:8px;font-size:.75rem;font-weight:700;text-transform:uppercase}.status-pending{background:#fff3e0;color:#e65100}.status-approved{background:#e8f5e9;color:#2e7d32}.status-denied{background:#ffebee;color:#c62828}@media (max-width: 400px){.rewards-grid{grid-template-columns:repeat(2,1fr);gap:10px}.reward-icon{font-size:1.8rem}.reward-title{font-size:.85rem}}.navbar{display:flex;align-items:center;padding:10px 16px;background:#fff;border-bottom:2px solid #e8edf6;gap:12px;min-height:48px}.nav-brand{font-size:1.2rem;font-weight:800;color:var(--accent);cursor:pointer;margin-right:auto;white-space:nowrap}.nav-links{display:flex;gap:4px}.nav-link{background:transparent;color:var(--text-dim);padding:6px 12px;font-size:.8rem;border-radius:8px;font-weight:600;white-space:nowrap}.nav-link.active{background:var(--accent);color:#fff}.nav-right{display:flex;align-items:center;gap:8px}.nav-logout{font-size:.8rem;white-space:nowrap}@media (max-width: 480px){.navbar{padding:8px 12px}.nav-brand{font-size:1rem}.nav-link{padding:5px 8px;font-size:.75rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f0f4ff;--bg-card: #ffffff;--bg-input: #e8edf6;--text: #2d3436;--text-dim: #636e72;--accent: #6c5ce7;--accent-light: #a29bfe;--success: #00b894;--warning: #fdcb6e;--danger: #e17055;--pink: #fd79a8;--blue: #74b9ff;--radius: 14px;--shadow: 0 2px 12px rgba(0,0,0,.08)}html,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}#root{min-height:100vh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer;border:none;border-radius:var(--radius);padding:12px 24px;font-size:1rem;font-weight:600;transition:transform .1s,opacity .2s;-webkit-tap-highlight-color:transparent}button:active{transform:scale(.96)}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--text-dim);padding:8px 16px}input,select{font-family:inherit;font-size:1rem;padding:12px 16px;border:2px solid var(--bg-input);border-radius:var(--radius);background:#fff;color:var(--text);outline:none;transition:border-color .2s;width:100%}input:focus,select:focus{border-color:var(--accent)}.card{background:var(--bg-card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.page{flex:1;padding:20px;max-width:900px;margin:0 auto;width:100%}.page h1{font-size:1.5rem;margin-bottom:20px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:.85rem;color:var(--text-dim);font-weight:600}.flex{display:flex;gap:12px;align-items:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.text-center{text-align:center}.text-dim{color:var(--text-dim)}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-16{margin-bottom:16px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal{width:100%;max-width:420px;padding:24px}.modal h3{margin:0 0 16px}.modal input,.modal select{width:100%;padding:10px 12px;border:2px solid var(--bg-input);border-radius:var(--radius);font-size:.9rem;box-sizing:border-box;background:var(--bg-input)}.modal input:focus,.modal select:focus{outline:none;border-color:var(--accent)}@media (max-width: 600px){.page{padding:12px}.page h1{font-size:1.25rem}.grid-2{grid-template-columns:1fr}.flex-between{flex-wrap:wrap;gap:8px}.card{padding:14px}button{padding:10px 18px;font-size:.9rem}}
