:root{--ink:#061925;--panel:#0d3444;--panel2:#124658;--line:#2d6574;--cream:#fff7e8;--muted:#b8ced6;--gold:#f0bd55;--cyan:#28d4ed;--danger:#ff8e7e;--radius:24px;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html{background:var(--ink)}body{margin:0;background:radial-gradient(circle at 95% -5%,#174e63 0,transparent 35%),var(--ink);color:var(--cream);min-height:100vh}a{color:inherit}button,input,select,textarea{font:inherit}button,.button{border:0;border-radius:14px;padding:.8rem 1rem;background:var(--gold);color:var(--ink);font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}button.secondary,.button.secondary{background:transparent;color:var(--cream);border:1px solid var(--line)}button.danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}button.icon{width:42px;height:42px;padding:0;border-radius:50%}button:disabled{opacity:.45}header{position:sticky;z-index:5;top:0;display:flex;align-items:center;justify-content:space-between;padding:.75rem max(1rem,env(safe-area-inset-left));background:rgba(6,25,37,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(45,101,116,.55)}.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;font-weight:900}.brand img{width:42px;height:42px;border-radius:12px}.brand span{font-family:Georgia,serif;font-size:1.35rem}nav{display:flex;gap:.35rem;align-items:center}nav a{padding:.55rem .7rem;text-decoration:none;color:var(--muted);border-radius:999px;font-size:.9rem}nav a:hover{background:var(--panel)}main{width:min(1100px,100%);margin:auto;padding:clamp(1.25rem,4vw,3rem)}h1,h2,h3{font-family:Georgia,serif;margin:.2em 0}.hero h1{font-size:clamp(2.7rem,10vw,6.5rem);line-height:.9}.hero{padding:clamp(1rem,5vw,4rem) 0}.eyebrow{font-size:.78rem;color:var(--gold);font-weight:900;letter-spacing:.16em;text-transform:uppercase}.muted{color:var(--muted)}.sub{font-size:clamp(1.1rem,3vw,1.5rem);color:var(--muted);max-width:40rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:1rem}.card{background:linear-gradient(145deg,rgba(18,70,88,.85),rgba(13,52,68,.9));border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:0 18px 45px rgba(0,0,0,.18)}.app-card{min-height:240px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;transition:.2s transform,.2s border}.app-card:hover{transform:translateY(-4px);border-color:var(--cyan)}.app-icon{font-size:2rem}.app-card h2{font-size:2rem}.section-head,.row,.actions{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.stack{display:grid;gap:1rem}.tabs{display:flex;gap:.5rem;overflow:auto;padding:.25rem 0 1rem}.tabs button{white-space:nowrap;background:transparent;color:var(--muted);border:1px solid var(--line)}.tabs button.active{background:var(--gold);color:var(--ink);border-color:var(--gold)}label{display:grid;gap:.4rem;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:.8rem;background:#082632;color:var(--cream)}textarea{min-height:90px;resize:vertical}.auth{max-width:540px;padding-top:8vh}.auth-logo{width:110px;height:110px;border-radius:28px}.auth h1{font-size:clamp(3rem,12vw,5rem)}.loading{text-align:center;color:var(--muted);padding:5rem}.error{color:var(--danger);min-height:1.25rem}#toast{position:fixed;z-index:20;bottom:1.2rem;left:50%;transform:translate(-50%,120px);background:var(--gold);color:var(--ink);font-weight:800;padding:.8rem 1rem;border-radius:999px;transition:.25s}#toast.show{transform:translate(-50%,0)}dialog{width:min(650px,calc(100% - 1.5rem));max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:24px;padding:1.25rem;background:var(--panel);color:var(--cream)}dialog::backdrop{background:rgba(0,0,0,.7)}.close{float:right;background:transparent;color:var(--cream);font-size:1.8rem;padding:0 .4rem}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:.65rem}.day{min-height:170px}.day .date{font-weight:900;color:var(--gold)}.day h3{font-family:inherit;font-size:1rem}.list-card progress{width:100%;accent-color:var(--gold)}.items{display:grid;gap:.75rem}.item{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;border-top:1px solid var(--line);padding-top:.8rem}.memory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.8rem}.memory{position:relative;aspect-ratio:1;border-radius:18px;overflow:hidden;background:var(--panel)}.memory img{width:100%;height:100%;object-fit:cover}.memory figcaption{position:absolute;inset:auto 0 0;padding:2rem .8rem .7rem;background:linear-gradient(transparent,rgba(0,0,0,.85));font-weight:800}.grocery{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--line)}.grocery.have{opacity:.5;text-decoration:line-through}.pill{display:inline-block;padding:.25rem .55rem;background:#082632;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.78rem}.ingredient-row{display:grid;grid-template-columns:1fr .55fr 1fr auto;gap:.45rem}.empty{text-align:center;padding:3rem 1rem;color:var(--muted)}@media(max-width:780px){nav a:not(:first-child){display:none}.week{grid-template-columns:1fr}.day{min-height:0}.ingredient-row{grid-template-columns:1fr 1fr}.ingredient-row input:nth-child(3){grid-column:1/-1}.hero h1{font-size:3.7rem}.section-head{align-items:flex-start}}
