:root{--font-display:"Fraunces", "Georgia", serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--ease:cubic-bezier(.22, 1, .36, 1);--day-bg:#f7f4ee;--day-surface:#fff;--day-ink:#201d18;--day-muted:#85796a;--day-accent:#e08a3e;--day-accent-2:#2b6e6e;--night-bg:#0a0908;--night-surface:#17130f;--night-ink:#f3ece2;--night-muted:#8a7a6a;--night-accent:#d97a3a;--night-accent-2:#3a7d6e;--bg:var(--day-bg);--surface:var(--day-surface);--ink:var(--day-ink);--muted:var(--day-muted);--accent:var(--day-accent);--accent-2:var(--day-accent-2);--radius:20px}[data-theme=night]{--bg:var(--night-bg);--surface:var(--night-surface);--ink:var(--night-ink);--muted:var(--night-muted);--accent:var(--night-accent);--accent-2:var(--night-accent-2)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);transition:background .9s var(--ease), color .9s var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-shell{width:100vw;height:100vh;position:relative}.idle-screen{cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:18px;height:100%;display:flex}.idle-clock{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:max(72px,min(16vw,200px));font-weight:500;line-height:1}.idle-date{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:max(14px,min(2vw,20px))}.idle-meta{color:var(--muted);align-items:center;gap:12px;margin-top:8px;font-size:15px;display:flex}.mode-dot{background:var(--accent);border-radius:50%;width:10px;height:10px;animation:4s ease-in-out infinite breathe}@keyframes breathe{0%,to{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.idle-hint{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);opacity:.6;font-size:12px;position:absolute;bottom:40px}.scan-overlay{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;animation:fadein .3s var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes fadein{0%{opacity:0}to{opacity:1}}.scan-ring{border:3px solid var(--accent);border-radius:50%;width:220px;height:220px;position:relative;overflow:hidden}.scan-ring video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.scan-status{color:var(--muted);font-size:16px}.dashboard{height:100%;animation:fadein .4s var(--ease);padding:28px 32px 100px;overflow-y:auto}.dashboard-header{justify-content:space-between;align-items:baseline;margin-bottom:24px;display:flex}.dashboard-title{font-family:var(--font-display);font-size:34px;font-weight:500}.dashboard-sub{color:var(--muted);font-size:14px}.grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;display:grid}.card{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:0 1px #0000000a}.card h3{font-family:var(--font-display);margin:0 0 12px;font-size:18px;font-weight:500}.dock{background:var(--surface);z-index:30;border-radius:999px;gap:8px;padding:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0000001f}.dock button{color:var(--muted);transition:background .2s var(--ease), color .2s var(--ease);border-radius:999px;padding:10px 16px;font-size:13px}.dock button.active{background:var(--accent);color:#fff}.lock-btn{color:var(--muted);z-index:30;font-size:13px;position:fixed;top:20px;right:24px}.grocery-item{border-bottom:1px solid color-mix(in srgb, var(--muted) 20%, transparent);align-items:center;gap:10px;padding:8px 0;display:flex}.grocery-item.done span{color:var(--muted);text-decoration:line-through}.grocery-check{border:2px solid var(--accent-2);border-radius:6px;flex-shrink:0;width:20px;height:20px}.grocery-check.done{background:var(--accent-2)}.grocery-add{gap:8px;margin-top:12px;display:flex}.grocery-add input{border:1px solid color-mix(in srgb, var(--muted) 30%, transparent);background:var(--bg);color:var(--ink);border-radius:10px;flex:1;padding:10px 12px;font-family:inherit}.grocery-add button{background:var(--accent-2);color:#fff;border-radius:10px;padding:10px 16px;font-weight:600}.recipe-import{gap:8px;display:flex}.recipe-import input{border:1px solid color-mix(in srgb, var(--muted) 30%, transparent);background:var(--bg);color:var(--ink);border-radius:10px;flex:1;padding:10px 12px}.recipe-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}.recipe-row{background:var(--bg);cursor:pointer;border-radius:10px;justify-content:space-between;padding:8px 10px;display:flex}.cooking-mode{background:var(--bg);z-index:60;animation:fadein .3s var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:40px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.cooking-step-index{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:13px}.cooking-step-text{font-family:var(--font-display);text-align:center;max-width:900px;font-size:max(32px,min(5vw,56px));line-height:1.25}.cooking-timer{font-family:var(--font-mono);color:var(--accent);font-size:48px}.cooking-controls{gap:16px;display:flex}.cooking-controls button{background:var(--surface);border-radius:14px;padding:14px 28px;font-size:16px}.cooking-close{color:var(--muted);position:absolute;top:24px;right:24px}.timer-chip{background:var(--bg);font-family:var(--font-mono);border-radius:999px;align-items:center;gap:6px;margin:2px 4px 2px 0;padding:4px 10px;font-size:13px;display:inline-flex}.apod-img{object-fit:cover;border-radius:14px;width:100%;max-height:220px;margin-bottom:10px;display:block}.audio-tracks{flex-wrap:wrap;gap:8px;display:flex}.audio-tracks button{background:var(--bg);border-radius:10px;padding:8px 14px;font-size:13px}.audio-tracks button.playing{background:var(--accent);color:#fff}.enroll-box{flex-direction:column;align-items:center;gap:14px;display:flex}.enroll-box button{background:var(--accent);color:#fff;border-radius:12px;padding:10px 20px;font-weight:600}.muted{color:var(--muted);font-size:14px}.inline-error{color:#b64b3e;margin-top:10px;font-size:13px;line-height:1.4}.mini-status{color:var(--muted);font-size:12px}.status-block{margin-top:8px}.empty-space{margin-top:16px}.card-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-title-row h3{margin-bottom:12px}.text-button{color:var(--muted);text-underline-offset:3px;font-size:12px;text-decoration:underline}.primary-button{background:var(--accent);color:#fff;border-radius:12px;padding:12px 18px;font-weight:600}.primary-button.compact{align-self:flex-start;padding:10px 14px}.primary-button:disabled{opacity:.55;cursor:default}.soft-button{background:var(--surface);color:var(--muted);border-radius:12px;padding:10px 16px}.danger-button{color:#fff;background:#a73f36;border-radius:12px;padding:10px 14px;font-weight:600}.stack-form{flex-direction:column;gap:9px;display:flex}.stack-form input,.notes-card textarea{border:1px solid color-mix(in srgb, var(--muted) 30%, transparent);background:var(--bg);width:100%;color:var(--ink);font:inherit;border-radius:10px;padding:11px 12px}.notes-card textarea{resize:vertical;min-height:110px;margin-bottom:10px}.setup-screen{background:var(--bg);place-items:center;min-height:100vh;padding:28px;display:grid}.setup-card{background:var(--surface);border-radius:28px;width:min(520px,100%);padding:34px;box-shadow:0 20px 70px #0000001f}.setup-kicker{text-transform:uppercase;letter-spacing:.14em;color:var(--accent);font-size:12px;font-weight:700}.setup-card h1{font-family:var(--font-display);margin:8px 0 10px;font-size:42px;font-weight:500}.setup-card p{color:var(--muted);margin:0 0 20px;line-height:1.6}.setup-status{margin-top:14px}.setup-footnote{color:var(--muted);margin-top:18px;font-size:12px;line-height:1.5}.mode-picker{flex-wrap:wrap;gap:8px;display:flex}.mode-picker button{background:var(--bg);color:var(--muted);border-radius:999px;padding:9px 13px}.mode-picker button.selected{background:var(--accent);color:#fff}.habit-list{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.habit-row{background:var(--bg);text-align:left;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;display:flex}.habit-row strong{font-family:var(--font-mono);color:var(--accent)}.apod-title{margin-bottom:4px;font-weight:600}.apod-copy{color:var(--muted);font-size:13px;line-height:1.45}.spotify-frame{border:0;border-radius:12px;margin-top:14px}.recipe-help{line-height:1.5}.recipe-row{text-align:left;border:0;width:100%}.recipe-import button{background:var(--accent-2);color:#fff;border-radius:10px;padding:10px 15px;font-weight:600}.cooking-recipe-name{color:var(--muted);font-size:14px}.timer-options{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.hidden-video{display:none}.settings-dashboard{padding-bottom:110px}.about-card p{line-height:1.6}@media (max-width:720px){.dashboard{padding:22px 18px 100px}.grid{grid-template-columns:1fr}.dock{justify-content:space-between;width:calc(100% - 24px);bottom:12px}.dock button{padding:10px 12px}.lock-btn{top:14px;right:16px}.setup-card{padding:26px 22px}.setup-card h1{font-size:36px}.cooking-mode{padding:28px 18px}.cooking-controls{flex-wrap:wrap;justify-content:center}}
