:root{--bg:#f7f0f7;--ink:#332a38;--muted:#776d7b;--rose:#b86f91;--rose-deep:#8d4d70;--blush:#f0bfd3;--lilac:#cbbde8;--pearl:rgba(255,255,255,.54);--pearl-strong:rgba(255,255,255,.72);--line:rgba(255,255,255,.68);--shadow:0 22px 60px rgba(94,63,91,.13),inset 0 1px 0 rgba(255,255,255,.8);--input:rgba(255,255,255,.62)}
*{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-height:100vh;color:var(--ink);font-family:"DM Sans",sans-serif;background:radial-gradient(circle at 12% 12%,rgba(244,190,215,.7),transparent 27%),radial-gradient(circle at 88% 18%,rgba(203,189,232,.7),transparent 28%),radial-gradient(circle at 75% 88%,rgba(246,215,228,.72),transparent 32%),linear-gradient(145deg,#fbf7fb 0%,#f0e8f4 50%,#f9eef3 100%);background-attachment:fixed}body::before,body::after{content:"";position:fixed;z-index:-1;border-radius:50%;filter:blur(8px);opacity:.75}body::before{width:280px;height:280px;left:3vw;bottom:4vh;background:linear-gradient(135deg,#efd0df,#cabee4)}body::after{width:220px;height:220px;right:4vw;top:28vh;background:linear-gradient(135deg,#f8d6e1,#dccff0)}button,input{font:inherit}button{color:inherit}.shell{max-width:1380px;margin:auto;padding:58px 4.5vw 70px}.theme-fab{position:fixed;right:24px;bottom:24px;z-index:20;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--pearl-strong);box-shadow:var(--shadow);backdrop-filter:blur(18px) saturate(140%);cursor:pointer;font-size:18px}.theme-fab:hover{transform:translateY(-2px)}
.welcome{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:8px 3px 38px}.eyebrow,.kicker{margin:0 0 8px;text-transform:uppercase;letter-spacing:.17em;font-size:10px;font-weight:700;color:var(--rose-deep)}h1,h2,blockquote{font-family:"DM Serif Display",serif;font-weight:400}h1{font-size:clamp(42px,5.2vw,70px);line-height:1;margin:0;letter-spacing:-.035em}h2{font-size:27px;margin:0}.lede{color:var(--muted);margin:14px 0 0}.weather-pill{display:flex;align-items:center;gap:10px;padding:12px 17px;border:1px solid var(--line);border-radius:100px;background:var(--pearl);box-shadow:inset 0 1px 0 rgba(255,255,255,.8);backdrop-filter:blur(20px);white-space:nowrap}.weather-pill>span:first-child{color:#dca754;font-size:20px}.weather-pill span:last-child{color:var(--muted);font-size:12px}
.dashboard-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:22px}.card,.quote-card{position:relative;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(28px) saturate(150%);-webkit-backdrop-filter:blur(28px) saturate(150%)}.card{background:linear-gradient(145deg,var(--pearl-strong),var(--pearl));border-radius:28px;padding:29px}.card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.42),transparent 32%,rgba(255,255,255,.12) 70%)}.card>*{position:relative}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.icon-button{border:1px solid var(--line);background:rgba(255,255,255,.42);border-radius:50%;width:38px;height:38px;cursor:pointer}.icon-button.small{width:34px;height:34px}.icon-button:hover{background:rgba(255,255,255,.72)}.month-controls{display:flex;gap:7px}.month-name{font-weight:700;margin:24px 0 14px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar>div{height:38px;display:grid;place-items:center;border-radius:50%;font-size:13px}.calendar .day-name{height:24px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase}.calendar .outside{color:#b7aeba}.calendar .date{position:relative;cursor:pointer;border:0;background:none;border-radius:50%;min-height:38px}.calendar .date:hover{background:rgba(255,255,255,.48)}.calendar .today{background:var(--rose-deep);color:white;box-shadow:0 7px 18px rgba(141,77,112,.24)}.calendar .selected{outline:2px solid var(--rose);outline-offset:2px}.calendar .has-events::after{content:"";position:absolute;bottom:3px;left:50%;width:4px;height:4px;border-radius:50%;transform:translateX(-50%);background:var(--rose)}.calendar .today.has-events::after{background:white}.agenda{display:flex;gap:14px;align-items:center;border-top:1px solid rgba(134,104,132,.14);margin-top:20px;padding-top:18px}.agenda-line{width:4px;height:38px;background:linear-gradient(var(--rose),var(--lilac));border-radius:3px}.agenda p{margin:3px 0 0;color:var(--muted);font-size:13px}
.task-count{background:rgba(240,191,211,.38);color:var(--rose-deep);font-size:11px;font-weight:700;border:1px solid rgba(255,255,255,.55);border-radius:100px;padding:7px 10px}.task-day-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 0 9px;font-size:13px;font-weight:700}.today-button{border:0;background:none;color:var(--rose-deep);font-size:11px;cursor:pointer}.task-form{display:grid;grid-template-columns:minmax(0,1fr) 148px 48px;align-items:stretch;margin:0 0 16px;border-radius:14px;box-shadow:0 9px 24px rgba(97,62,90,.08)}.task-form input{width:100%;min-width:0;height:48px;border:1px solid rgba(127,96,124,.17);background:var(--input);padding:0 14px;outline:none;color:var(--ink)}.task-form .task-text{border-radius:14px 0 0 14px}.task-form input[type=date]{border-left:0;font-size:11px}.task-form input:focus{position:relative;z-index:1;border-color:var(--rose)}.date-picker-label{display:block;min-width:0}.task-form button{width:48px;border:0;border-radius:0 14px 14px 0;background:linear-gradient(145deg,var(--rose),var(--rose-deep));color:#fff;font-size:23px;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}.task-form button:hover{filter:brightness(1.05)}.task-list{list-style:none;padding:0;margin:0;min-height:172px}.task-item{display:flex;align-items:center;gap:11px;padding:11px 2px;border-bottom:1px solid rgba(134,104,132,.13)}.task-item label{flex:1;font-size:14px}.task-item.completed label{text-decoration:line-through;color:var(--muted)}.task-item input{accent-color:var(--rose-deep);width:17px;height:17px}.delete-task{border:0;background:none;color:var(--muted);cursor:pointer;font-size:18px;opacity:.55}.delete-task:hover{opacity:1}.empty{color:var(--muted);text-align:center;padding:40px 0;font-size:13px}.progress-wrap{margin-top:20px}.progress-copy{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}.progress-track{margin-top:9px;height:7px;border-radius:9px;background:rgba(116,88,112,.1);overflow:hidden}.progress-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--rose),var(--lilac));transition:width .3s}
.events-section{margin-top:26px;padding-top:23px;border-top:1px solid rgba(134,104,132,.14)}.events-heading{display:flex;justify-content:space-between;align-items:flex-start}.events-heading h3{font-family:"DM Serif Display",serif;font-size:22px;font-weight:400;margin:0}.connected{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--rose-deep);font-weight:700;display:flex;align-items:center;gap:6px}.connected i{width:7px;height:7px;border-radius:50%;background:#7ca88a}.events-list{margin-top:15px}.event-row{display:flex;align-items:center;gap:12px;padding:11px 0}.event-time{width:64px;color:var(--muted);font-size:11px}.event-dot{width:8px;height:8px;border-radius:50%;background:var(--rose)}.event-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.event-copy a{color:var(--ink);text-decoration:none;font-size:13px;font-weight:600}.event-copy a:hover{text-decoration:underline}.event-copy small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:290px}.events-empty{color:var(--muted);font-size:13px;background:rgba(255,255,255,.32);padding:14px;border:1px solid rgba(255,255,255,.42);border-radius:12px}
.links-card{grid-column:1/-1}.text-button{background:rgba(255,255,255,.38);border:1px solid var(--line);border-radius:100px;padding:8px 12px;color:var(--rose-deep);font-size:11px;font-weight:700;cursor:pointer}.links-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:24px}.link-tile{position:relative;display:flex;flex-direction:column;gap:16px;min-width:0;padding:17px;background:rgba(255,255,255,.31);border:1px solid rgba(255,255,255,.54);border-radius:17px;text-decoration:none;color:var(--ink);transition:.2s;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}.link-tile:hover{transform:translateY(-3px);background:rgba(255,255,255,.54)}.site-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:var(--tile,#eadce6);font-weight:700}.link-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remove-link{position:absolute;right:7px;top:7px;border:0;background:transparent;color:var(--muted);cursor:pointer;opacity:0}.link-tile:hover .remove-link{opacity:1}.quote-card{grid-column:1/-1;display:flex;align-items:center;gap:20px;background:linear-gradient(135deg,rgba(78,53,78,.88),rgba(112,69,100,.82));color:#fff;border-radius:28px;padding:25px 32px}.quote-mark{font-family:serif;font-size:58px;color:var(--blush);line-height:.6}.quote-card blockquote{font-size:20px;margin:0;flex:1}.quote-card p{font-size:9px;letter-spacing:.16em;color:#e5d8e2}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{border:1px solid var(--line);border-radius:24px;padding:0;background:rgba(252,247,251,.88);color:var(--ink);width:min(440px,calc(100% - 32px));box-shadow:0 30px 80px rgba(72,44,68,.25);backdrop-filter:blur(26px)}dialog::backdrop{background:rgba(54,39,54,.28);backdrop-filter:blur(6px)}dialog form{padding:27px}.dialog-head{display:flex;justify-content:space-between;margin-bottom:22px}.dialog-head h2{margin:0}dialog label{display:block;font-weight:600;font-size:13px;margin-top:16px}dialog input{display:block;width:100%;padding:12px;margin-top:7px;border:1px solid rgba(127,96,124,.18);border-radius:11px;background:rgba(255,255,255,.66);color:var(--ink)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.primary,.secondary{border-radius:11px;padding:10px 16px;cursor:pointer}.primary{background:var(--rose-deep);color:white;border:1px solid var(--rose-deep)}.secondary{background:transparent;border:1px solid rgba(127,96,124,.18)}
body.dark{--bg:#241d28;--ink:#f7eef5;--muted:#b8a9b7;--rose:#d38eae;--rose-deep:#efa8c6;--blush:#e5a9c2;--lilac:#9e8bc6;--pearl:rgba(52,39,55,.58);--pearl-strong:rgba(65,48,67,.7);--line:rgba(255,255,255,.14);--shadow:0 22px 60px rgba(10,5,12,.28),inset 0 1px 0 rgba(255,255,255,.12);--input:rgba(38,28,41,.58);background:radial-gradient(circle at 12% 12%,rgba(121,55,91,.48),transparent 30%),radial-gradient(circle at 88% 18%,rgba(83,63,126,.48),transparent 30%),linear-gradient(145deg,#1e1821,#2b2130)}body.dark .quote-card{background:linear-gradient(135deg,rgba(63,42,65,.92),rgba(91,50,77,.88))}body.dark input[type=date]{color-scheme:dark}
@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}.links-grid{grid-template-columns:repeat(3,1fr)}.welcome{align-items:flex-start}.quote-card{align-items:flex-start}.quote-card p{display:none}}
@media(max-width:560px){.shell{padding:36px 18px 48px}.welcome{padding:4px 0 28px;display:block}.weather-pill{margin-top:22px;width:max-content}.card{padding:22px;border-radius:23px}.task-form{grid-template-columns:minmax(0,1fr) 48px}.date-picker-label{grid-column:1/-1;grid-row:2}.task-form input[type=date]{border-left:1px solid rgba(127,96,124,.17);border-top:0;border-radius:0 0 14px 14px}.task-form button{grid-column:2;grid-row:1;border-radius:0 14px 0 0}.links-grid{grid-template-columns:repeat(2,1fr)}.quote-card{padding:23px}.quote-card blockquote{font-size:18px}.calendar>div{height:34px}.theme-fab{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.dashboard-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.12fr) minmax(240px,.68fr);gap:18px}.calendar-card,.tasks-card,.planners-card{padding:22px;border-radius:24px}.calendar-card h2,.tasks-card h2,.planners-card h2{font-size:24px}.calendar-card .month-name{margin:18px 0 10px}.calendar-card .calendar>div{height:31px;font-size:12px}.calendar-card .calendar .day-name{height:21px;font-size:9px}.calendar-card .calendar .date{min-height:31px}.calendar-card .agenda{margin-top:15px;padding-top:14px}.tasks-card .task-day-heading{margin:17px 0 8px}.tasks-card .task-form{grid-template-columns:minmax(0,1fr) 125px 44px}.tasks-card .task-form input{height:44px;padding:0 11px}.tasks-card .task-form button{width:44px}.tasks-card .task-list{min-height:110px;max-height:160px;overflow:auto}.tasks-card .task-item{padding:9px 2px}.tasks-card .progress-wrap{margin-top:15px}.tasks-card .events-section{margin-top:18px;padding-top:17px}.tasks-card .events-heading h3{font-size:19px}.tasks-card .events-list{margin-top:10px}.tasks-card .event-row{padding:8px 0}.tasks-card .events-empty{padding:11px}.planners-card{display:flex;flex-direction:column}.planner-intro{margin:14px 0 20px;color:var(--muted);font-size:12px;line-height:1.55}.planner-links{display:flex;flex-direction:column;gap:10px}.planner-link{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 12px;border:1px solid rgba(255,255,255,.56);border-radius:16px;background:rgba(255,255,255,.3);color:var(--ink);text-decoration:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.58);transition:.2s}.planner-link:hover{transform:translateY(-2px);background:rgba(255,255,255,.54)}.planner-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;font-family:"DM Serif Display",serif;font-size:17px}.meal-icon{background:linear-gradient(145deg,#f3c9d7,#e9b1c8);color:#7d4561}.budget-icon{background:linear-gradient(145deg,#d7c9ec,#c4b2e1);color:#5e4c82}.planner-link strong{display:block;font-size:12px}.planner-link small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.planner-link i{font-style:normal;color:var(--rose);font-size:16px}.planner-soon{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:20px;color:var(--muted);font-size:10px}.soon-dots{color:var(--rose);letter-spacing:3px}.links-card,.quote-card{grid-column:1/-1}
@media(max-width:1120px){.dashboard-grid{grid-template-columns:1fr 1fr}.planners-card{grid-column:1/-1}.planner-links{display:grid;grid-template-columns:1fr 1fr}.planner-soon{margin-top:12px}}
@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}.planners-card{grid-column:auto}.planner-links{grid-template-columns:1fr}.links-card,.quote-card{grid-column:1/-1}}
@media(max-width:560px){.tasks-card .task-form{grid-template-columns:minmax(0,1fr) 44px}.tasks-card .date-picker-label{grid-column:1/-1;grid-row:2}.tasks-card .task-form button{grid-column:2;grid-row:1}}
.calendar .selected{outline:0;background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(255,255,255,.34));color:var(--rose-deep);border:1px solid rgba(255,255,255,.95);box-shadow:inset 2px 2px 2px rgba(255,255,255,.95),inset -3px -3px 6px rgba(142,91,124,.16),0 8px 15px rgba(93,55,84,.18),0 2px 4px rgba(255,255,255,.75);text-shadow:0 1px 0 #fff;transform:translateY(-1px)}.calendar .today.selected{color:var(--rose-deep)}.link-tile{background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(255,255,255,.25));border:1px solid rgba(255,255,255,.92);box-shadow:inset 2px 2px 3px rgba(255,255,255,.92),inset -4px -4px 8px rgba(137,90,126,.11),0 12px 22px rgba(85,53,82,.13),0 2px 4px rgba(255,255,255,.72)}.link-tile:hover{transform:translateY(-4px) scale(1.015);background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,255,255,.38));box-shadow:inset 2px 2px 3px #fff,inset -4px -4px 8px rgba(137,90,126,.12),0 16px 26px rgba(85,53,82,.18)}.site-icon{border:1px solid rgba(255,255,255,.7);box-shadow:inset 1px 1px 2px rgba(255,255,255,.8),0 5px 10px rgba(87,54,81,.12)}.weather-pill{cursor:default;transition:.2s}.weather-pill.weather-error{opacity:.7}.weather-pill #weatherIcon{min-width:20px;text-align:center}
.calendar .date{width:31px!important;height:31px!important;min-width:31px;min-height:31px!important;aspect-ratio:1/1;padding:0;justify-self:center;align-self:center;display:grid;place-items:center;border-radius:50%}.calendar-events{margin-top:17px;padding-top:16px}.calendar-events .events-heading h3{font-size:19px}.calendar-events .events-list{margin-top:9px}.calendar-events .event-row{padding:8px 0}.calendar-events .events-empty{padding:11px}.calendar-events .event-copy small{max-width:210px}
.tasks-card{display:flex;flex-direction:column;height:100%}
.tasks-card .task-list{flex:1 1 auto;min-height:180px;max-height:none;overflow:auto}
.tasks-card .progress-wrap{margin-top:auto;padding-top:18px}
:root{}
.google-search{grid-column:1/-1;display:flex;align-items:center;gap:10px;width:min(620px,100%);margin:0 auto 24px;padding:8px 12px;border:1px solid rgba(255,255,255,.65);border-radius:999px;background:rgba(255,255,255,.42);box-shadow:inset 0 1px 0 #fff,0 10px 25px rgba(83,55,75,.08);backdrop-filter:blur(16px)}.google-search i{color:#7b5b74}.google-search input{flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:500 13px "DM Sans",sans-serif}.google-search button{width:32px;height:32px;border:0;border-radius:50%;background:linear-gradient(145deg,#d59ab2,#ae7092);color:#fff;cursor:pointer}.planner-icon{display:grid;place-items:center;font-size:15px}.site-icon{display:grid!important;place-items:center;overflow:hidden}.site-icon img{width:24px;height:24px;border-radius:6px;object-fit:contain}.site-icon span{font-weight:700}
.shopping-page a,.shopping-page select{border-radius:999px!important;background:rgba(255,255,255,.42)!important;box-shadow:inset 0 1px #fff,0 8px 20px rgba(83,55,75,.07)}.shopping-page .shopping-group{border:1px solid rgba(255,255,255,.62);border-radius:24px;background:rgba(255,255,255,.36);box-shadow:inset 0 1px #fff,0 16px 35px rgba(83,55,75,.08);backdrop-filter:blur(18px)}.shopping-page .shopping-group li small{padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.48)}
.google-search{width:100%}
.shopping-category{margin-top:12px}.shopping-category h3{margin:0 0 5px}.shopping-pill{display:inline-block;padding:5px 12px;border-radius:999px;background:var(--pill);color:#5e4c5a;font-size:11px;font-weight:700;box-shadow:inset 0 1px rgba(255,255,255,.8)}
.back-link{display:inline-flex;align-items:center;gap:8px;width:max-content;padding:10px 14px;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:rgba(255,255,255,.33);box-shadow:inset 0 1px 0 #fff;color:var(--ink);text-decoration:none;font-size:13px;font-weight:700}.back-link:hover{background:rgba(255,255,255,.58);transform:translateY(-1px)}
.shopping-page header>div>a{display:inline-flex;align-items:center;gap:8px;width:max-content;padding:10px 14px;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:rgba(255,255,255,.33);box-shadow:inset 0 1px 0 #fff;color:var(--ink);text-decoration:none;font-size:13px;font-weight:700}
.has-daily-wide .chore-card:first-child{grid-column:1/-1}.remove-chore{border:0;background:none;color:#9b6989;cursor:pointer;font-size:16px}
.chore-list input[type=checkbox]{appearance:none;width:21px;height:21px;border:2px solid #c6b5c2;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;position:relative}.chore-list input[type=checkbox]:checked{border-color:#82a58e;background:#82a58e}.chore-list input[type=checkbox]:checked::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:700}.remove-chore i:before,.delete-log i:before{content:'×'}
:root{--bg:#f7f0f7;--ink:#332a38;--muted:#776d7b;--rose:#b86f91;--rose-deep:#8d4d70;--blush:#f0bfd3;--lilac:#cbbde8;--pearl:rgba(255,255,255,.54);--pearl-strong:rgba(255,255,255,.72);--line:rgba(255,255,255,.68);--shadow:0 22px 60px rgba(94,63,91,.13),inset 0 1px 0 rgba(255,255,255,.8);--input:rgba(255,255,255,.62)}
