:root { color-scheme: dark; --bg:#0b0d12; --card:#151821; --line:#252a37; --text:#f3f5fa; --muted:#9299a9; --accent:#8aa4ff; --good:#69d5a4; --warn:#ff8c72; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:radial-gradient(circle at 80% -10%,#202b48 0,transparent 35%),var(--bg); color:var(--text); font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
.shell { width:min(100%,720px); margin:auto; padding:calc(24px + env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom)); }
.hero { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:10px 4px 26px; }
.eyebrow { margin:0 0 3px; color:var(--accent); font-size:.84rem; font-weight:650; text-transform:capitalize; }
h1 { margin:0; font-size:3.35rem; line-height:1; letter-spacing:-.06em; font-variant-numeric:tabular-nums; }
.muted,.hint { color:var(--muted); font-size:.78rem; }
.muted { margin:9px 0 0; }
.weather { min-width:128px; text-align:right; }
.weather-temp { font-size:1.9rem; font-weight:700; letter-spacing:-.04em; }
.weather-text { margin-top:4px; font-size:.78rem; color:var(--muted); }
.card { margin-bottom:12px; padding:18px; border:1px solid rgba(255,255,255,.06); border-radius:20px; background:rgba(21,24,33,.93); box-shadow:0 12px 34px rgba(0,0,0,.18); }
.section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
h2 { margin:0; font-size:1.02rem; letter-spacing:-.015em; }
.badge { padding:4px 8px; border-radius:999px; background:#222735; color:#b9c0d0; font-size:.7rem; }
.stack { display:grid; gap:8px; }
.empty { padding:15px; border:1px dashed #303545; border-radius:13px; color:var(--muted); text-align:center; font-size:.88rem; }
.error { color:#ffb0a0; background:rgba(255,105,80,.08); border-color:rgba(255,105,80,.2); }
.calendar-warning { padding:2px 4px 6px; color:#d8b889; font-size:.72rem; }
.task,.event { display:flex; gap:11px; align-items:center; min-height:43px; padding:8px 10px; background:#191d27; border-radius:12px; }
.check { width:18px; height:18px; flex:0 0 18px; border:1.5px solid #65708b; border-radius:6px; }
.check.done { background:var(--good); border-color:var(--good); box-shadow:inset 0 0 0 4px #191d27; }
.task-title,.event-title { font-size:.88rem; line-height:1.3; }
.task-title.done { text-decoration:line-through; color:var(--muted); }
.event-time { width:48px; flex:0 0 48px; color:var(--accent); font-size:.74rem; font-variant-numeric:tabular-nums; }
.event-details { display:grid; min-width:0; gap:3px; }
.event-title { overflow-wrap:anywhere; }
.event-calendar { color:var(--muted); font-size:.68rem; overflow-wrap:anywhere; }
.day-label { margin:10px 2px 2px; color:var(--muted); font-size:.69rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.day-label:first-child { margin-top:0; }
.nutrition-day + .nutrition-day,.nutrition-week { margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.nutrition-title { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px; }
.nutrition-title h3 { margin:0; font-size:.83rem; }
.kcal-row { display:flex; align-items:baseline; justify-content:space-between; margin:3px 0 10px; }
.kcal-main { font-size:1.65rem; font-weight:720; letter-spacing:-.04em; }
.kcal-target { color:var(--muted); font-size:.8rem; }
.progress { display:block; width:100%; height:9px; overflow:hidden; border:0; border-radius:99px; background:#252a36; appearance:none; }
.progress::-webkit-progress-bar { border-radius:99px; background:#252a36; }
.progress::-webkit-progress-value { border-radius:99px; background:linear-gradient(90deg,#6b8cff,var(--good)); transition:width .4s ease; }
.progress::-moz-progress-bar { border-radius:99px; background:linear-gradient(90deg,#6b8cff,var(--good)); transition:width .4s ease; }
.progress.over::-webkit-progress-value { background:linear-gradient(90deg,#ffb454,var(--warn)); }
.progress.over::-moz-progress-bar { background:linear-gradient(90deg,#ffb454,var(--warn)); }
.macros { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:15px; }
.metric { padding:10px; border-radius:12px; background:#191d27; text-align:center; }
.metric strong { display:block; font-size:.96rem; }
.metric span { display:block; margin-top:3px; color:var(--muted); font-size:.67rem; }
.secondary { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; }
.week-summary { font-size:.9rem; font-weight:650; line-height:1.45; }
.week-metrics { margin-top:6px; color:var(--muted); font-size:.72rem; line-height:1.5; }
footer { padding:18px 4px 2px; color:#626979; font-size:.72rem; text-align:center; }
@media (min-width:600px) { .shell{padding-left:24px;padding-right:24px}.card{padding:22px} }
@media (prefers-reduced-motion:reduce) { * { transition:none!important; } }
/* Login */
.login-shell{min-height:100vh;display:grid;place-items:center}.login-card{width:min(100%,28rem)}
.login-card h1{margin:.2rem 0 1.5rem}.login-form{display:grid;gap:.8rem}.login-form label{color:var(--muted)}
.login-form input{width:100%;box-sizing:border-box;border:1px solid #303542;border-radius:12px;background:#11141b;color:inherit;padding:.9rem 1rem;font:inherit}
.login-form button{border:0;border-radius:12px;background:#f0f2f5;color:#0b0d12;padding:.9rem 1rem;font:inherit;font-weight:700;cursor:pointer}
