*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f1a;--bg-card:#1a1a2e;--text:#e2e8f0;--text-muted:#94a3b8;--border:#2a2a3e;--slate:#2a2a3e;--green:#22c55e;--amber:#f59e0b;--purple:#a855f7;--font:"Manrope", system-ui, -apple-system, sans-serif;--radius:16px;--radius-sm:10px}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;overflow:hidden}.login-screen{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);justify-content:center;align-items:center;display:flex}.login-card{background:var(--bg-card);border-radius:var(--radius);text-align:center;width:100%;max-width:380px;padding:48px 40px}.login-title{margin-bottom:4px;font-size:28px;font-weight:800}.login-subtitle{color:var(--text-muted);margin-bottom:32px;font-size:15px}.login-hint{color:var(--text-muted);margin-bottom:16px;font-size:13px}.login-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);font-family:var(--font);outline:none;margin-bottom:12px;padding:14px 16px;font-size:16px;transition:border-color .2s;display:block}.login-input:focus{border-color:var(--purple)}.login-code-input{text-align:center;letter-spacing:.3em;font-size:32px;font-weight:700}.login-button{border-radius:var(--radius-sm);background:var(--purple);color:#fff;width:100%;font-family:var(--font);cursor:pointer;border:none;padding:14px;font-size:16px;font-weight:700;transition:opacity .2s;display:block}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-back{width:100%;color:var(--text-muted);font-family:var(--font);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:10px;font-size:14px;display:block}.login-error{color:#ef4444;margin-top:12px;font-size:13px}.dashboard{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex}.dashboard--loading{justify-content:center;align-items:center}.loading-text{color:var(--text-muted);font-size:18px}.dashboard__header{flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px 8px;display:flex}.dashboard__title{font-size:22px;font-weight:800}.dashboard__grid{flex:1;gap:12px;min-height:0;padding:8px 24px;display:grid;overflow:hidden}.dashboard__footer{flex-shrink:0;padding:8px 24px 16px}.clock{flex-direction:column;align-items:flex-end;display:flex}.clock__time{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.clock__date{color:var(--text-muted);font-size:13px}.member-column{background:var(--bg-card);border-radius:var(--radius);flex-direction:column;gap:8px;min-height:0;padding:16px 12px;display:flex;overflow-y:auto}.member-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding-bottom:8px;display:flex}.member-name{font-size:18px;font-weight:700}.member-tasks{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.task-card{border-radius:var(--radius-sm);align-items:center;gap:14px;padding:14px 16px;transition:background-color .5s;display:flex}.task-card__icon{flex-shrink:0;font-size:36px;line-height:1}.task-card__name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.task-card--not-attempted{background:var(--slate);color:var(--text-muted)}.task-card--not-attempted .task-card__icon{filter:grayscale()opacity(.4)}.task-card--attempted{background:color-mix(in srgb, var(--amber) 20%, var(--bg-card));color:var(--amber);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--amber) 30%, transparent)}.task-card--completed{background:color-mix(in srgb, var(--green) 18%, var(--bg-card));color:var(--green);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--green) 30%, transparent)}.task-card--rewarded{background:color-mix(in srgb, var(--purple) 20%, var(--bg-card));color:var(--purple);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--purple) 30%, transparent);animation:3s ease-in-out infinite shimmer}@keyframes shimmer{0%,to{opacity:1}50%{opacity:.85}}.task-card--completed .task-card__icon,.task-card--rewarded .task-card__icon{animation:.4s pop-in}@keyframes pop-in{0%{transform:scale(.8)}50%{transform:scale(1.15)}to{transform:scale(1)}}.family-progress{text-align:center}.family-progress__bar{background:var(--slate);border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden}.family-progress__fill{background:linear-gradient(90deg, var(--amber), var(--green));border-radius:4px;height:100%;transition:width .6s}.family-progress--complete .family-progress__fill{background:linear-gradient(90deg, var(--green), var(--purple));animation:2s ease-in-out infinite progress-pulse}@keyframes progress-pulse{0%,to{opacity:1}50%{opacity:.7}}.family-progress__label{color:var(--text-muted);font-size:14px;font-weight:600}.family-progress--complete .family-progress__label{color:var(--green)}.progress-ring{flex-shrink:0}
