*{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)}.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}}
