:root{--bg:#0b121d;--surface:#141e2b;--surface2:#1a2635;--line:#28384a;--ink:#eff5f8;--muted:#9baab8;--teal:#53d1c1;--blue:#70b8ec;--coral:#ff947a;--gold:#f6c967}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,#16344a 0,#0b121d 35%,#091019 100%);color:var(--ink);font-family:"DM Sans",sans-serif;padding:0 0 96px}.shell{max-width:660px;margin:auto;padding:24px 20px 32px}.topbar,.section-heading,.dialog-title{display:flex;align-items:center;justify-content:space-between}.brand{font-size:21px;font-weight:700;letter-spacing:-.8px;display:flex;align-items:center;gap:8px}.brand-mark{width:31px;height:31px;background:linear-gradient(145deg,var(--teal),var(--blue));color:#09202a;border-radius:10px;display:grid;place-items:center;font-size:23px}.avatar{border:1px solid #42637c;background:#20364a;color:#fff;width:38px;height:38px;border-radius:50%;font:600 15px inherit}.welcome{padding:34px 3px 20px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;font-weight:700;color:var(--muted);margin:0 0 6px}.welcome h1{font:700 clamp(35px,7vw,47px)/1.05 "Playfair Display",serif;letter-spacing:-1.8px;margin:0}.welcome em{font-style:normal;color:var(--teal)}.subcopy{color:var(--muted);margin:12px 0 0}.family-overview{display:flex;align-items:center;gap:13px;background:linear-gradient(125deg,#124f58,#173d5d);border:1px solid #2f8790;border-radius:21px;padding:16px 17px;margin:0 0 20px;box-shadow:0 14px 30px #0004}.family-overview .eyebrow{color:#b8eee8;margin-bottom:3px}.family-overview strong{font-size:14px}.overview-icon{background:#f5ca72;color:#163846;border-radius:13px;width:42px;height:42px;display:grid;place-items:center;font-size:23px}.chevron{margin-left:auto;font-size:29px;color:#b9efeb}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:0 -5px 20px}.day{border:0;background:transparent;border-radius:16px;padding:10px 2px 8px;color:var(--muted);font:600 12px inherit}.day b{display:grid;place-items:center;width:35px;height:35px;margin:5px auto 0;border-radius:50%;color:var(--ink);font-size:15px}.day.selected{background:#19283a;color:#bcd0df}.day.selected b{background:var(--coral);color:#10202b}.agenda-card,.upcoming-card,.task-card,.grocery-card,.reminder-card{background:linear-gradient(150deg,#16212e,#111b27);border:1px solid var(--line);box-shadow:0 12px 30px #0003;border-radius:23px;padding:20px;margin-bottom:16px}.section-heading{margin-bottom:14px}.section-heading h2{margin:0;font-size:20px;letter-spacing:-.5px}.text-button,.more,.icon-button,.close{border:0;background:transparent;color:var(--teal);font:600 13px inherit}.event{display:grid;grid-template-columns:5px 1fr auto;gap:12px;padding:12px 0;border-top:1px solid var(--line);align-items:center}.event:first-child,.upcoming-item:first-child{border-top:0}.event-bar{height:38px;border-radius:5px}.event-title{font-weight:600;font-size:15px}.event-detail,.event time{font-size:12px;color:var(--muted);margin-top:3px}.add-inline{color:var(--teal);border:0;border-top:1px solid var(--line);background:transparent;width:100%;text-align:left;margin-top:5px;padding:15px 0 0;font:600 13px inherit}.upcoming-card{background:#14272c}.upcoming-item{display:grid;grid-template-columns:43px 1fr auto;gap:11px;align-items:center;padding:11px 0;border-top:1px solid #284148}.date-chip{background:#20373d;border-radius:11px;text-align:center;padding:5px 2px;color:var(--teal);font-size:10px;font-weight:700;text-transform:uppercase;line-height:1.1}.date-chip strong{display:block;color:var(--ink);font-size:17px;margin-top:2px}.upcoming-item .event-title{font-size:14px}.tasks,.groceries{display:grid;gap:3px}.task,.grocery{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.check{width:22px;height:22px;border-radius:50%;border:1.5px solid #718599;background:transparent;color:#09202a;display:grid;place-items:center;flex:none}.task.done .check,.grocery.done .check{border-color:var(--teal);background:var(--teal)}.task.done .task-name,.grocery.done span{text-decoration:line-through;color:var(--muted)}.task-name{font-weight:500;font-size:15px;flex:1}.owner{color:#a5d8ff;font-size:11px;background:#213b51;padding:4px 8px;border-radius:99px}.grocery-card{background:linear-gradient(150deg,#202333,#161a28)}.grocery{font-size:15px;font-weight:500}.reminder-card{background:linear-gradient(130deg,#1d354c,#102838);display:flex;align-items:center;gap:14px}.reminder-card .eyebrow,.reminder-card p{color:#b9c9d4}.reminder-card strong{font-size:16px}.reminder-card p:last-child{font-size:12px;margin:4px 0 0}.bell{background:#2d5069;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-size:23px;color:var(--gold)}.reminder-card .icon-button{margin-left:auto;color:var(--gold);font-size:22px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#101924ed;backdrop-filter:blur(13px);border-top:1px solid var(--line);height:78px;display:flex;justify-content:center;gap:min(8vw,44px);align-items:center;padding:8px 16px}.nav-item{border:0;background:transparent;color:#8d9bab;display:flex;flex-direction:column;align-items:center;gap:3px;font:600 10px inherit;min-width:42px}.nav-item span{font-size:21px}.nav-item.active{color:var(--teal)}.create{border:0;border-radius:50%;width:48px;height:48px;background:linear-gradient(145deg,var(--teal),#4a9fe0);color:#09202a;font:400 31px/1 inherit;box-shadow:0 6px 18px #48b7b666}dialog{border:1px solid var(--line);background:#15202d;border-radius:24px;max-width:min(410px,calc(100vw - 32px));width:100%;box-shadow:0 20px 60px #000a;padding:24px;color:var(--ink)}dialog::backdrop{background:#02070dbb}.dialog-title h2{margin:0;font-size:25px}.close{font-size:28px;color:var(--muted)}label{display:block;font-size:13px;font-weight:700;margin:13px 0}input{display:block;width:100%;padding:12px 13px;border:1px solid #33475b;border-radius:11px;margin-top:6px;font:400 15px inherit;color:var(--ink);background:#0e1722}menu{display:flex;justify-content:flex-end;gap:10px;padding:10px 0 0;margin:8px 0 0}.primary,.secondary{border-radius:10px;border:0;padding:10px 15px;font:600 14px inherit}.primary{background:var(--teal);color:#09202a}.secondary{background:#263545;color:var(--ink)}#toast{position:fixed;bottom:95px;left:50%;transform:translate(-50%,20px);opacity:0;background:#edf6f7;color:#0b1d2a;padding:11px 16px;border-radius:99px;font-size:13px;transition:.2s;pointer-events:none;white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%,0)}.auth-screen{min-height:100vh;padding:32px 22px;display:grid;align-content:center;max-width:460px;margin:auto}.auth-screen.hidden,.app-hidden{display:none}.auth-intro{margin:45px 0 28px}.auth-intro h1{font:700 42px/1.06 "Playfair Display",serif;margin:12px 0}.auth-intro p{color:var(--muted);line-height:1.5}.auth-card{background:#15202d;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 18px 45px #0005}.auth-tabs{display:flex;gap:17px;border-bottom:1px solid var(--line);margin-bottom:16px}.auth-tab{border:0;background:transparent;color:var(--muted);padding:0 0 11px;font:600 14px inherit}.auth-tab.active{color:var(--teal);border-bottom:2px solid var(--teal)}.auth-card .primary{width:100%;margin-top:10px;padding:13px}.auth-note{font-size:12px;color:var(--muted);line-height:1.5;margin:16px 0 0}@media(min-width:700px){body{padding-top:24px}.shell{background:#0e1722;border-radius:30px;box-shadow:0 18px 60px #0006}.bottom-nav{left:calc(50% - 330px);right:calc(50% - 330px);border-radius:18px 18px 0 0}}
.month-calendar{background:linear-gradient(150deg,#16212e,#111b27);border:1px solid var(--line);box-shadow:0 12px 30px #0003;border-radius:23px;padding:18px 14px 13px;margin-bottom:16px}.month-heading{display:flex;align-items:center;justify-content:space-between;padding:0 5px 13px}.month-heading h2{margin:0;font-size:21px;letter-spacing:-.5px}.month-controls{display:flex;gap:7px}.month-control{width:32px;height:32px;border-radius:10px;border:1px solid var(--line);background:#1d2b3b;color:var(--ink);font:400 25px/1 inherit}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-weekdays{padding:0 0 6px}.month-weekdays span{text-align:center;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase}.month-day{position:relative;min-height:42px;border:0;background:transparent;color:var(--ink);font:600 13px inherit;border-radius:11px}.month-day b{display:grid;place-items:center;width:27px;height:27px;margin:0 auto;border-radius:50%}.month-day.today b{background:var(--coral);color:#10202b}.month-day:hover{background:#1b3041}.month-day.blank{pointer-events:none}.dots{display:flex;justify-content:center;gap:3px;margin-top:1px}.dots em{display:block;width:4px;height:4px;border-radius:50%;background:var(--teal)}.dots.two em:last-child{background:var(--coral)}
