html,body,#root{width:100%;min-height:100%;margin:0;padding:0}:root{--ink: #1a2a3a;--muted: #5a6e80;--card: rgba(255, 255, 255, .55);--card-strong: rgba(255, 255, 255, .7);--line: rgba(255, 255, 255, .6);--accent: #2a7ab5;--ok: #1e6d8a;--error: #c53030;--focus: #4a9fd4;--bg: linear-gradient(135deg, #c3d9ec 0%, #a8c6df 35%, #d6e4ef 65%, #b8d4e8 100%);--item-bg: rgba(255, 255, 255, .35);--item-border: rgba(255, 255, 255, .5);--hive-border: rgba(0, 0, 0, .08);--input-bg: rgba(255, 255, 255, .5);--btn-color: #fff}[data-theme=dark]{--ink: #e8f0f8;--muted: #8fa4b8;--card: rgba(30, 40, 55, .65);--card-strong: rgba(35, 48, 65, .75);--line: rgba(120, 160, 200, .25);--accent: #5cb8e6;--ok: #4aadcc;--error: #f87171;--focus: #5cb8e6;--bg: linear-gradient(135deg, #0f1923 0%, #162030 35%, #1a2a3d 65%, #121c28 100%);--item-bg: rgba(255, 255, 255, .06);--item-border: rgba(140, 180, 220, .2);--hive-border: rgba(255, 255, 255, .1);--input-bg: rgba(255, 255, 255, .1);--btn-color: #0f1923}*{box-sizing:border-box}body{color:var(--ink);font-family:Avenir Next,Trebuchet MS,sans-serif;background:linear-gradient(135deg,#c3d9ec,#a8c6df 35%,#d6e4ef 65%,#b8d4e8);background-attachment:fixed;min-height:100vh;transition:background .4s ease,color .3s ease}[data-theme=dark] body{background:linear-gradient(135deg,#0a0f14,#0f1a26 35%,#132234 65%,#0b1018)}.dashboard-wrap{width:min(1280px,94vw);margin:0 auto;padding:clamp(1rem,2.6vw,2.4rem);display:grid;gap:clamp(1rem,2.2vw,1.6rem)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{width:min(540px,94vw);padding:clamp(1.2rem,3vw,2rem)}.auth-form{margin-top:1rem;display:grid;gap:.6rem}.auth-form label{font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:.84rem}.auth-form input{border:1px solid var(--line);border-radius:10px;padding:.75rem .85rem;font-size:1rem;color:var(--ink);background:var(--input-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.auth-form input:focus{outline:2px solid var(--focus);outline-offset:2px}.auth-form button{margin-top:.35rem;border:0;border-radius:10px;padding:.75rem 1rem;font-size:.98rem;font-weight:700;color:var(--btn-color);background:var(--accent);cursor:pointer}.auth-form button:hover{filter:brightness(1.1)}.auth-error{margin-top:.8rem}.auth-warning{margin-top:.7rem}.card{border-radius:18px;border:1px solid var(--line);background:var(--card);-webkit-backdrop-filter:blur(20px) saturate(120%);backdrop-filter:blur(20px) saturate(120%);box-shadow:0 8px 32px #00000014;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}.title-strip{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:clamp(1rem,2.4vw,1.8rem);background:var(--card-strong)}.eyebrow{margin:0;font-size:.86rem;text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-weight:700}h1{margin:.3rem 0;font-size:clamp(1.8rem,4vw,3.3rem);line-height:1;letter-spacing:.04em}.subline{margin:0;color:var(--muted);font-weight:600}.time-stack{text-align:right}.title-actions{margin-top:.55rem;display:inline-flex;align-items:center;gap:.5rem}.clock{margin:0;font-family:Menlo,Consolas,monospace;font-size:clamp(2rem,5vw,4.2rem);line-height:.95;color:var(--ink);letter-spacing:.02em}.date-line{margin:.35rem 0 0;color:var(--muted);font-weight:600}.content-grid{display:grid;grid-template-columns:minmax(280px,.92fr) minmax(380px,1.3fr);gap:clamp(1rem,2vw,1.4rem)}.weather-card,.agenda-card{padding:clamp(1rem,2.2vw,1.6rem)}.card-head{margin-bottom:1rem}h2{margin:0;font-size:clamp(1.3rem,2.4vw,2rem);text-transform:uppercase;letter-spacing:.1em}.meta{margin:.15rem 0 0;color:var(--muted);font-weight:600}.meta.small{margin-top:.65rem;font-size:.9rem}.weather-content{margin-top:.4rem}.hive-row{margin-top:.8rem;padding-top:.75rem;border-top:1px solid var(--hive-border)}.hive-temp{margin:.2rem 0 0;font-size:clamp(1.25rem,2.6vw,1.8rem);font-weight:760;line-height:1}.hive-loading-row{margin-top:.55rem}.temp{margin:0;font-size:clamp(2.6rem,6vw,4.8rem);font-weight:800;line-height:.95}.conditions{margin:.5rem 0 .25rem;font-size:clamp(1.05rem,2vw,1.45rem);font-weight:650}.agenda-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.agenda-item{display:grid;grid-template-columns:96px 1fr;gap:.85rem;padding:.7rem;border-radius:12px;border:1px solid var(--item-border);background:var(--item-bg)}.agenda-day{font-family:Menlo,Consolas,monospace;font-size:.95rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.agenda-title{margin:0;font-size:1.05rem;font-weight:700;color:var(--ink)}.agenda-time,.agenda-location{margin:.15rem 0 0;color:var(--muted)}.loading-row{display:inline-flex;align-items:center;gap:.6rem;color:var(--muted)}.error{margin:0;color:var(--error);font-weight:650}.nav-button{border:1px solid var(--line);border-radius:10px;padding:.4rem .75rem;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:var(--item-bg);text-decoration:none;transition:background .2s ease,border-color .2s ease}.nav-button:hover{background:var(--card-strong)}.shopping-grid{grid-template-columns:1fr}.shopping-form{display:grid;gap:.55rem;margin-bottom:.85rem}.shopping-form label{font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:.8rem}.shopping-form-row{display:grid;grid-template-columns:1fr auto;gap:.55rem}.shopping-form input{border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;font-size:1rem;color:var(--ink);background:var(--input-bg)}.shopping-form input:focus{outline:2px solid var(--focus);outline-offset:2px}.shopping-form button{border:0;border-radius:10px;padding:.7rem .95rem;font-size:.95rem;font-weight:700;color:var(--btn-color);background:var(--accent);cursor:pointer}.shopping-form button:disabled{opacity:.6;cursor:not-allowed}.shopping-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.shopping-item{border:1px solid var(--item-border);border-radius:12px;background:var(--item-bg);padding:.7rem .8rem}.shopping-item label{display:flex;align-items:center;gap:.7rem;cursor:pointer}.shopping-item-row{display:flex;justify-content:space-between;align-items:center;gap:.65rem}.shopping-item input{width:18px;height:18px}.shopping-item span{font-size:1.02rem;font-weight:650}.shopping-item.checked span{color:var(--muted);text-decoration:line-through}.shopping-delete-button{border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.36rem .56rem;cursor:pointer;white-space:nowrap}.shopping-delete-button:disabled{opacity:.6;cursor:not-allowed}.shopping-delete-button:hover:not(:disabled){border-color:var(--error);color:var(--error)}.dashboard-shopping-card{min-height:0}.shopping-list-scroll{max-height:320px;overflow-y:auto;padding-right:.2rem}.shopping-list-scroll::-webkit-scrollbar{width:8px}.shopping-list-scroll::-webkit-scrollbar-track{background:transparent}.shopping-list-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:var(--item-border)}.nav-inline-link{color:var(--accent);font-weight:700;text-decoration:none}.nav-inline-link:hover{text-decoration:underline}.fade-in{animation:fade-in .42s ease-out both}.slide-up{animation:slide-up .56s cubic-bezier(.12,.7,.14,1) both}.slide-up.delay{animation-delay:.12s}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 980px){.content-grid{grid-template-columns:1fr}.title-strip{flex-direction:column;align-items:flex-start}.time-stack{text-align:left}.shopping-form-row{grid-template-columns:1fr}}@media (max-width: 620px){.agenda-item{grid-template-columns:1fr;gap:.4rem}}.theme-toggle{border:1px solid var(--line);border-radius:10px;padding:.4rem .75rem;font-size:.82rem;font-weight:700;letter-spacing:.06em;color:var(--ink);background:var(--item-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:background .2s ease,border-color .2s ease}.theme-toggle:hover{background:var(--card-strong)}.theme-mode-label{text-transform:uppercase}.spinner{display:inline-block;width:20px;height:20px;border:2px solid #5a6e80;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.spinner-xs{width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}
