*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f4ff;color:#2d3748;min-height:100vh;-webkit-text-size-adjust:100%}#root{max-width:100%;margin:0 auto;min-height:100vh;min-height:100dvh;background:#fff}@media (min-width: 768px){#root{max-width:768px;box-shadow:0 0 40px #0000001f}}@media (min-width: 1024px){#root{max-width:900px;border-radius:0}}input{width:100%;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;font-size:16px;margin-bottom:10px;outline:none;background:#f7fafc}input:focus{border-color:#4a90d9}button{cursor:pointer;border:none;font-weight:600;border-radius:10px;transition:.15s;touch-action:manipulation}button:active{transform:scale(.97)}h1,h2,h3{color:#2d3748}h1{font-size:clamp(20px,5vw,28px)}h2{font-size:clamp(18px,4vw,24px)}h3{font-size:clamp(15px,3.5vw,17px);margin:16px 0 8px}label{display:block;font-size:13px;font-weight:600;color:#4a5568;margin-bottom:4px;margin-top:10px}.login-screen{padding:clamp(24px,5vw,40px) clamp(16px,3vw,24px);text-align:center}.logo{font-size:clamp(24px,6vw,36px);margin-bottom:4px}.tagline{color:#718096;margin-bottom:28px}.tabs{display:flex;background:#e2e8f0;border-radius:12px;padding:4px;margin-bottom:24px}.tab{flex:1;padding:12px;border-radius:10px;font-size:16px;background:transparent;color:#4a5568}.tab.active{background:#4a90d9;color:#fff}.card{background:#fff;border-radius:16px;padding:clamp(16px,3vw,24px);box-shadow:0 2px 12px #0000000f}.hint{color:#a0aec0;font-size:13px;margin-bottom:12px}.error{color:#f56565;margin-top:10px;font-size:13px}.link{background:none;color:#4a90d9;font-size:13px;margin-top:10px;font-weight:400}.loading{text-align:center;padding:60px;color:#718096;font-size:18px}.empty{color:#a0aec0;text-align:center;padding:20px;font-size:14px}.btn-primary{width:100%;padding:14px;background:#4a90d9;color:#fff;font-size:16px;margin-top:8px}.btn-primary:disabled{opacity:.6}.btn-sm{width:auto;padding:8px 16px;font-size:13px;margin:0}.btn-green{background:#48bb78;color:#fff;padding:10px 16px}.btn-blue{background:#4a90d9;color:#fff;padding:10px 16px}.btn-red{background:#f56565;color:#fff;padding:10px 16px}.btn-orange{background:#ed8936;color:#fff;padding:6px 12px;font-size:12px}.back{background:none;color:#4a90d9;font-size:14px;padding:0;margin-bottom:16px}.points-card{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;border-radius:16px;padding:clamp(16px,4vw,24px);text-align:center;margin:16px clamp(12px,3vw,20px)}.points-big{font-size:clamp(36px,10vw,48px);font-weight:800}.task-row{display:flex;justify-content:space-between;align-items:center;background:#fff;margin:0 clamp(8px,2vw,16px) 8px;padding:clamp(10px,2vw,14px);border-radius:12px;box-shadow:0 1px 4px #0000000d;gap:8px;flex-wrap:wrap}.pts{color:#4a90d9;font-weight:600;margin-left:8px;font-size:14px}.muted{color:#a0aec0;font-size:12px}.green{color:#48bb78;font-weight:600}.status{font-size:11px;font-weight:600;color:#ed8936;margin-top:2px}.done-btn{background:#48bb78;color:#fff;padding:8px 16px;font-size:14px;white-space:nowrap}.done-btn:disabled{opacity:.5}.badge{padding:6px 12px;border-radius:8px;font-size:11px;font-weight:600;white-space:nowrap}.badge.yellow{background:#fefcbf;color:#975a16}.approved-row{opacity:.85;border-left:3px solid #48bb78}.rejected-row{opacity:.85;border-left:3px solid #e53e3e}.kid-dash header,.parent-header{display:flex;justify-content:space-between;align-items:center;padding:clamp(12px,2vw,16px) clamp(12px,3vw,20px);background:#4a90d9;color:#fff;position:sticky;top:0;z-index:10}.kid-dash header h1{color:#fff;font-size:clamp(16px,4vw,22px)}.kid-dash header button,.parent-header button{background:#fff3;color:#fff;padding:6px 14px;border-radius:8px}.kid-dash header p{color:#fffc;font-size:13px}.parent-header h2{color:#fff;font-size:clamp(16px,4vw,22px)}.action-row{display:flex;gap:8px;padding:12px clamp(8px,2vw,16px)}.action-row button{flex:1;padding:12px;font-size:14px}.kid-row{display:flex;gap:8px;padding:0 clamp(8px,2vw,16px);overflow-x:auto;margin-bottom:8px}.kid-chip{flex:0 0 auto;min-width:clamp(140px,35vw,180px);background:#fff;border-radius:12px;padding:12px;box-shadow:0 1px 4px #0000000d;display:flex;align-items:center;gap:8px}.kid-chip strong{font-size:15px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:100}.modal{background:#fff;border-radius:16px;padding:clamp(16px,3vw,24px);width:90%;max-width:400px}.task-assign{padding:clamp(12px,2vw,16px)}.kid-sel{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.chip{background:#e2e8f0;color:#4a5568;padding:8px 14px;border-radius:20px;font-size:13px;white-space:nowrap}.chip.active{background:#4a90d9;color:#fff}.presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.presets .chip{background:#ebf4ff;color:#4a90d9;border:1px solid #bee3f8}.streak-card{background:linear-gradient(135deg,#ffb8451a,#ff7a1a0f);border:1px solid rgba(255,122,26,.18);border-radius:14px;padding:14px 16px 12px;margin:14px clamp(8px,2vw,16px);display:flex;flex-direction:column;gap:10px}.streak-headline{display:flex;align-items:baseline;gap:6px;font-weight:700;color:#2a1a05}.streak-flame{font-size:1.6rem;line-height:1}.streak-count{font-size:1.7rem;color:#ff7a1a}.streak-unit{font-size:.95rem;color:#6b4a2a}.streak-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;justify-items:center}.streak-bubble{width:clamp(24px,6vw,32px);height:clamp(24px,6vw,32px);border-radius:50%;border:2px solid rgba(0,0,0,.1);background:transparent;transition:transform .12s ease,background .12s ease,border-color .12s ease}.streak-bubble-on{background:#ff7a1a;border-color:#e26000;transform:scale(1.05)}.streak-bubble-today{box-shadow:0 0 0 2px #ffb84566}.streak-bubble-on.streak-bubble-today{box-shadow:0 0 0 4px #ffb845d9;transform:scale(1.1)}@media (prefers-reduced-motion:reduce){.streak-bubble,.streak-bubble-on{transition:none;transform:none}}.task-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.camera-btn{background:#edf2f7;color:#4a5568;padding:8px 10px;font-size:18px;border-radius:10px;flex-shrink:0}.camera-btn:hover{background:#e2e8f0}.photo-preview-row{display:flex;align-items:center;gap:8px}.proof-thumb{width:clamp(40px,10vw,56px);height:clamp(40px,10vw,56px);border-radius:8px;object-fit:cover;border:2px solid #cbd5e0}.cancel-photo-btn{background:#fed7d7;color:#c53030;padding:4px 8px;font-size:14px;border-radius:6px;flex-shrink:0}.photo-waiting{font-size:12px;color:#a0aec0}.parent-dashboard{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.parent-tabs{display:flex;background:#edf2f7;padding:4px;margin:12px clamp(8px,2vw,16px);border-radius:12px;overflow-x:auto}.parent-tabs button{flex:1;padding:10px 8px;border-radius:10px;font-size:clamp(11px,2.5vw,14px);background:transparent;color:#4a5568;white-space:nowrap;min-width:0}.parent-tabs button.on{background:#4a90d9;color:#fff}.parent-main{padding:0 clamp(8px,2vw,16px) 24px;flex:1}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}.section-header h3{margin:0}.kid-card{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:14px;border-radius:12px;box-shadow:0 1px 4px #0000000d;margin-bottom:8px}.money{color:#48bb78;font-weight:700;font-size:clamp(14px,3vw,18px)}.review-card{background:#fff;border-radius:12px;box-shadow:0 1px 4px #0000000d;margin-bottom:10px;overflow:hidden}.review-card-loading{opacity:.6;pointer-events:none}.review-header{display:flex;justify-content:space-between;align-items:center;padding:14px;cursor:pointer;-webkit-user-select:none;user-select:none;gap:8px}.review-header:hover{background:#f7fafc}.review-header-left{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.review-header-left strong{font-size:clamp(13px,3vw,15px)}.review-kid-name{font-size:12px;color:#718096;background:#edf2f7;padding:2px 8px;border-radius:6px}.review-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.review-meta .badge.green{background:#c6f6d5;color:#22543d}.expand-arrow{font-size:12px;color:#a0aec0}.review-detail{padding:12px 14px 14px;border-top:1px solid #e2e8f0}.proof-image-container{margin-bottom:12px;text-align:center}.proof-label{font-size:13px;font-weight:600;color:#4a5568;margin-bottom:8px}.proof-image{width:100%;max-height:clamp(200px,50vw,350px);object-fit:contain;border-radius:10px;border:1px solid #e2e8f0;cursor:pointer}.review-actions{display:flex;gap:8px}.btn-approve{flex:1;padding:12px;background:#48bb78;color:#fff;font-size:14px;border-radius:10px;font-weight:600}.btn-approve:disabled{opacity:.5}.btn-reject{flex:1;padding:12px;background:#f56565;color:#fff;font-size:14px;border-radius:10px;font-weight:600}.btn-reject:disabled{opacity:.5}.history-row{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:12px 14px;margin-bottom:6px;border-radius:10px;box-shadow:0 1px 3px #0000000a;gap:8px}.history-left{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.history-left strong{font-size:clamp(13px,3vw,15px)}.history-meta{font-size:11px;color:#a0aec0}.history-status{font-size:11px;flex-shrink:0}@media (min-width: 768px){.task-row,.kid-card,.review-card,.history-row{padding:16px 20px}.task-actions{gap:10px}.done-btn{padding:10px 20px;font-size:15px}.parent-tabs button{font-size:15px;padding:12px}.review-actions{gap:12px}.btn-approve,.btn-reject{font-size:15px;padding:14px}.login-screen{padding:60px 40px}.logo{font-size:40px}}@media (min-width: 1024px){.kid-dash,.parent-main{padding:0 32px 32px}h3{margin:20px 0 12px}}
