*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0f1117;--surface: #1a1d27;--surface-light: #242836;--text: #e8eaf0;--text-dim: #8b8fa3;--text-muted: #5a5e72;--border: #2a2e3d}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.dashboard{display:flex;flex-direction:column;height:100vh;padding:1.5rem;gap:1.5rem}.header{flex:2;display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-radius:1rem;padding:2rem 2.5rem;gap:2rem;min-height:0}.header-left{flex:0 0 auto;text-align:left}.clock{font-size:4rem;font-weight:700;letter-spacing:-.02em;line-height:1}.date{font-size:1.25rem;color:var(--text-dim);margin-top:.5rem}.stale-notice{font-size:.75rem;color:#e8875b;margin-top:.5rem}.header-center{flex:1;min-width:0}.section-title{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:1rem}.events-columns{display:flex;gap:2rem}.events-col{flex:1}.events-day-label{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem}.event-item{display:flex;align-items:baseline;gap:.75rem;padding:.4rem 0;font-size:1.1rem}.event-time{flex-shrink:0;font-size:.95rem;color:var(--text-dim);min-width:5.5rem}.event-name{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-events{color:var(--text-muted);font-size:.85rem;font-style:italic}.header-right{flex:0 0 auto;text-align:center}.weather-columns{display:flex;gap:1.5rem}.weather-day{text-align:center}.weather-day-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.25rem}.weather-main{display:flex;align-items:center;justify-content:center;gap:.25rem}.weather-icon{width:48px;height:48px}.weather-temp{font-size:2.5rem;font-weight:700;line-height:1}.weather-desc{font-size:.85rem;color:var(--text-dim);text-transform:capitalize;margin-top:.15rem}.weather-details{font-size:.8rem;color:var(--text-dim);margin-top:.15rem}.weather-forecast-main{display:flex;align-items:center;gap:.25rem}.weather-forecast-temps{display:flex;flex-direction:column;align-items:center;line-height:1.1}.weather-forecast-high{font-size:1.8rem;font-weight:700;color:var(--text)}.weather-forecast-low{font-size:1.4rem;font-weight:600;color:var(--text-dim)}.weather-loading{color:var(--text-muted);font-size:.9rem}.weather-countdown{font-size:.65rem;color:var(--text-muted);margin-top:.5rem;text-align:center;letter-spacing:.04em}.children-row{flex:3;display:flex;gap:1.5rem;min-height:0}.child-panel{flex:1;background:var(--surface);border-radius:1rem;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;border-top:3px solid var(--accent);overflow-y:auto}.child-header{display:flex;align-items:baseline;gap:.75rem}.child-name{font-size:1.5rem;font-weight:700;color:var(--accent)}.child-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.5rem}.child-tomorrow-title{margin-top:.75rem}.child-calendar{flex:0 0 auto}.child-calendar .event-item{font-size:.9rem;padding:.3rem 0}.child-calendar .event-time{font-size:.8rem;min-width:5rem}.baby-schedule-row{display:flex;align-items:baseline;gap:.75rem;padding:.3rem 0;font-size:.9rem}.baby-schedule-label{flex-shrink:0;font-size:.8rem;color:var(--text-dim);min-width:5rem;font-weight:500}.baby-schedule-times{color:var(--text)}.wonder-week-banner{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;border-radius:.6rem;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s;cursor:pointer}.wonder-week-banner:hover{transform:translateY(-1px);box-shadow:0 4px 16px #0000004d}.wonder-week-active{background:linear-gradient(135deg,#4a1a6b,#6b2fa0,#84c);background-size:200% 200%;animation:wonder-shimmer 3s ease infinite;box-shadow:0 0 12px #8844cc4d,inset 0 0 12px #ffffff0d}.wonder-week-upcoming{background:linear-gradient(135deg,#1a3a4a,#244e6b);border:1px solid rgba(72,180,220,.25)}.wonder-week-emoji{font-size:1.3rem;flex-shrink:0;animation:wonder-pulse 2s ease-in-out infinite}.wonder-week-text{display:flex;flex-direction:column;min-width:0;flex:1}.wonder-week-title{font-size:.75rem;font-weight:700;letter-spacing:.02em;color:#fff}.wonder-week-detail{font-size:.65rem;color:#ffffffa6;font-weight:500}.wonder-week-active .wonder-week-detail{color:#ffc8ffbf}.wonder-week-arrow{font-size:1.2rem;color:#ffffff4d;flex-shrink:0;font-weight:300}@keyframes wonder-shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes wonder-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.child-balances{flex:1;min-height:0}.balance-grid{display:flex;flex-direction:column;gap:.35rem}.balance-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem .75rem;background:var(--surface-light);border-radius:.5rem;font-size:.9rem}.balance-label{color:var(--text-dim)}.balance-value{font-weight:600;font-variant-numeric:tabular-nums}.balance-spending{background:var(--accent);color:#fff;padding:.5rem .75rem;font-size:1rem}.balance-spending .balance-label,.balance-spending .balance-value{color:#fff}.balance-spending .balance-value{font-size:1.1rem}.balance-secondary{font-size:.8rem;padding:.3rem .75rem}.balance-secondary .balance-label{color:var(--text-muted)}.balance-secondary .balance-value{font-weight:500;color:var(--text-dim)}.balance-magic{background:transparent;border:1px dashed var(--border)}.balance-magic .balance-label{font-style:italic}.birthday-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000}.birthday-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.birthday-content{position:relative;z-index:1;text-align:center;pointer-events:none}.birthday-emoji{font-size:5rem;margin-bottom:1rem;animation:birthday-bounce 1s ease-in-out infinite alternate}.birthday-title{font-size:4rem;font-weight:300;color:#fff;letter-spacing:.02em;line-height:1.1;text-shadow:0 0 40px rgba(255,255,255,.3)}.birthday-name{font-size:6rem;font-weight:800;background:linear-gradient(135deg,#feca57,#ff6b6b,#ff9ff3,#48dbfb,#7bed9f);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:birthday-gradient 4s ease infinite;line-height:1.1;text-shadow:none}.birthday-age{font-size:2rem;font-weight:400;color:#ffffffb3;margin-top:.5rem;letter-spacing:.05em}.birthday-dismiss{position:absolute;bottom:2.5rem;z-index:1;padding:.75rem 2rem;border:1px solid rgba(255,255,255,.2);border-radius:2rem;background:#ffffff14;color:#ffffff80;font-size:.9rem;font-family:inherit;cursor:pointer;transition:all .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.birthday-dismiss:hover{background:#ffffff26;color:#fffc;border-color:#fff6}@keyframes birthday-bounce{0%{transform:translateY(0)}to{transform:translateY(-12px)}}@keyframes birthday-gradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@media(max-width:768px){html,body,#root{height:auto;overflow:auto}.dashboard{padding:.75rem;gap:.75rem;height:auto;overflow:auto}.header{flex-direction:column;align-items:flex-start;padding:1.25rem}.header-left{text-align:left}.clock{font-size:2.5rem}.header-right{text-align:left}.weather-main{justify-content:flex-start}.weather-temp{font-size:2rem}.events-columns{flex-direction:column;gap:1rem}.children-row{flex-direction:column}.child-panel{padding:1rem}.child-name{font-size:1.25rem}}
