:root{color-scheme:light;--ink:#15231c;--soft:#607068;--faint:#89968f;--green:#315f49;--green2:#477b61;--mint:#dcece3;--blue:#dce9f6;--amber:#f2dfb6;--rose:#f4deda;--line:rgba(56,78,66,.13);--glass:rgba(255,255,255,.68);--shadow:0 22px 70px rgba(42,68,53,.13);--radius:28px;--sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{min-width:320px;min-height:100%;background:#edf3ef}body{margin:0;min-height:100vh;color:var(--ink);font-family:var(--sans);background:linear-gradient(135deg,#f4f7f4 0,#e7f0eb 48%,#edf0f6 100%);-webkit-font-smoothing:antialiased}.ambient{position:fixed;z-index:-1;border-radius:50%;filter:blur(2px);opacity:.65}.ambient-a{width:42vw;height:42vw;top:-15vw;left:-8vw;background:radial-gradient(circle,#cce8d9,transparent 68%)}.ambient-b{width:55vw;height:55vw;right:-20vw;bottom:-25vw;background:radial-gradient(circle,#d6e1f2,transparent 70%)}button,input,select,textarea{font:inherit;color:inherit}button{border:0;cursor:pointer}svg{display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.glass{background:var(--glass);border:1px solid rgba(255,255,255,.72);box-shadow:0 12px 40px rgba(51,74,61,.08);backdrop-filter:blur(28px) saturate(150%);-webkit-backdrop-filter:blur(28px) saturate(150%)}.topbar{position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:10px max(24px,calc((100vw - 1180px)/2));border-width:0 0 1px}.brand{display:flex;align-items:center;gap:12px;background:transparent;text-align:left}.brand-mark,.login-mark{display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--green2),#244c39);box-shadow:0 8px 22px rgba(49,95,73,.25)}.brand-mark{width:42px;height:42px;border-radius:14px 14px 14px 6px;font-size:17px;font-weight:750}.brand b{display:block;font-size:15px}.brand small{display:block;margin-top:3px;color:var(--soft);font-size:11px}.sync-pill{display:flex;align-items:center;gap:7px;padding:8px 12px;color:var(--soft);font-size:12px;background:rgba(255,255,255,.52);border:1px solid rgba(255,255,255,.85);border-radius:999px}.sync-pill i{width:7px;height:7px;background:#52a675;border-radius:50%;box-shadow:0 0 0 3px rgba(82,166,117,.13)}.icon-button{display:grid;width:42px;height:42px;place-items:center;background:rgba(255,255,255,.48);border-radius:14px}.icon-button svg{width:21px}.loading{display:flex;min-height:60vh;align-items:center;justify-content:center;gap:12px;color:var(--soft)}.loading span{width:18px;height:18px;border:2px solid #b8c7be;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}main#app{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:44px 0 130px}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}.glass-card{background:rgba(255,255,255,.61);border:1px solid rgba(255,255,255,.86);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(24px) saturate(135%);-webkit-backdrop-filter:blur(24px) saturate(135%)}.progress-card{position:relative;min-height:390px;padding:42px;overflow:hidden}.progress-card:after{content:"";position:absolute;width:260px;height:260px;right:-80px;top:-90px;background:radial-gradient(circle,rgba(190,226,207,.72),transparent 70%);border-radius:50%}.eyebrow{margin:0 0 9px;color:var(--green2);font-size:12px;font-weight:750;letter-spacing:.11em;text-transform:uppercase}.progress-card h1,.section-heading h1{margin:0;font-size:clamp(36px,6vw,68px);font-weight:520;letter-spacing:-.052em;line-height:.98}.progress-number{display:flex;align-items:flex-end;gap:12px;margin:38px 0 18px}.progress-number strong{font-size:clamp(65px,10vw,112px);font-weight:670;letter-spacing:-.075em;line-height:.7}.progress-number span{color:var(--soft);font-size:20px}.track{height:13px;overflow:hidden;background:rgba(48,91,70,.1);border-radius:999px}.track i{display:block;height:100%;background:linear-gradient(90deg,#2f654a,#74aa87);border-radius:inherit;box-shadow:0 0 18px rgba(63,132,91,.35)}.progress-meta{display:flex;justify-content:space-between;margin-top:13px;color:var(--soft);font-size:13px}.remaining-card{display:flex;flex-direction:column;justify-content:space-between;padding:34px;background:linear-gradient(145deg,rgba(39,79,59,.92),rgba(58,101,78,.87));color:#fff}.remaining-card .eyebrow{color:#cce1d5}.remaining-card h2{margin:0;font-size:29px;font-weight:540;letter-spacing:-.035em}.remaining-number{margin:24px 0}.remaining-number strong{font-size:76px;letter-spacing:-.07em}.remaining-number span{font-size:18px;opacity:.7}.pace{padding:16px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.14);border-radius:20px}.pace b{display:block;margin-bottom:4px;font-size:15px}.pace small{opacity:.72}.section{margin-top:36px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;margin:0 4px 15px}.section-title h2{margin:0;font-size:26px;letter-spacing:-.035em}.section-title p{margin:0;color:var(--soft);font-size:13px}.alerts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.alert{display:flex;min-height:130px;gap:14px;padding:20px}.alert-icon{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:14px;font-size:20px}.away .alert-icon{background:var(--rose)}.family .alert-icon{background:var(--amber)}.calendar .alert-icon{background:var(--blue)}.alert h3{margin:2px 0 6px;font-size:15px}.alert p{margin:0;color:var(--soft);font-size:13px;line-height:1.45}.slot-list{display:grid;gap:12px}.slot{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:17px 19px}.date-badge{display:grid;width:54px;height:58px;place-items:center;background:rgba(220,236,227,.82);border-radius:17px;line-height:1}.date-badge b{font-size:21px}.date-badge small{color:var(--green);font-size:10px;font-weight:750;text-transform:uppercase}.slot h3{margin:0 0 5px;font-size:16px}.slot p{margin:0;color:var(--soft);font-size:12px}.slot-actions{display:flex;gap:8px}.secondary,.primary{min-height:44px;padding:0 17px;border-radius:14px;font-weight:680}.secondary{background:rgba(255,255,255,.72);border:1px solid var(--line)}.primary{color:#fff;background:var(--green);box-shadow:0 8px 20px rgba(49,95,73,.18)}.tabbar{position:fixed;z-index:20;right:50%;bottom:max(16px,env(safe-area-inset-bottom));display:grid;width:min(600px,calc(100% - 24px));height:76px;grid-template-columns:repeat(5,1fr);padding:7px 10px;border-radius:26px;transform:translateX(50%)}.tabbar button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;color:var(--faint);background:transparent;border-radius:19px;font-size:10px}.tabbar button svg{width:22px;height:22px}.tabbar button.active{color:var(--green);background:rgba(210,230,218,.6)}.tabbar .add-tab{position:relative;color:var(--green)}.add-tab>span{display:grid;width:48px;height:48px;margin-top:-24px;place-items:center;color:#fff;background:linear-gradient(145deg,var(--green2),var(--green));border:5px solid rgba(244,248,245,.85);border-radius:50%;box-shadow:0 8px 20px rgba(36,76,56,.28);font-size:28px;font-weight:300}.add-tab small{font-size:10px}.sheet-backdrop{position:fixed;z-index:40;inset:0;background:rgba(21,35,28,.2);backdrop-filter:blur(5px)}.sheet{position:fixed;z-index:41;right:50%;bottom:0;width:min(620px,100%);max-height:88vh;overflow:auto;padding:34px;border-radius:34px 34px 0 0;transform:translateX(50%);box-shadow:0 -20px 80px rgba(25,46,35,.22)}.sheet-close{position:absolute;right:18px;top:16px;width:38px;height:38px;background:rgba(60,80,69,.08);border-radius:50%;font-size:26px}.sheet h2{margin:4px 0 7px;font-size:30px;letter-spacing:-.04em}.sheet .intro{margin:0 0 24px;color:var(--soft);line-height:1.45}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:grid;gap:7px;margin-bottom:14px;color:var(--soft);font-size:12px;font-weight:650}.field input,.field select,.field textarea{width:100%;padding:14px 15px;background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:14px;outline:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:#6a9e80;box-shadow:0 0 0 3px rgba(84,142,107,.12)}.wide{width:100%}.message-preview{padding:18px;background:rgba(255,255,255,.64);border:1px solid var(--line);border-radius:18px;white-space:pre-wrap;line-height:1.5}.year-list{display:grid;gap:10px}.month-row{display:grid;grid-template-columns:115px 1fr 72px;align-items:center;gap:15px;padding:15px 18px}.month-row h3{margin:0;font-size:15px}.mini-track{height:8px;background:rgba(48,91,70,.09);border-radius:999px;overflow:hidden}.mini-track i{display:block;height:100%;background:#6fa384;border-radius:inherit}.month-row strong{text-align:right;font-size:16px}.month-row strong small{color:var(--faint);font-size:11px;font-weight:500}.section-heading{margin-bottom:28px}.section-heading p{max-width:620px;margin:14px 0 0;color:var(--soft);font-size:16px;line-height:1.5}.plan-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.metric{padding:22px}.metric small{display:block;color:var(--soft)}.metric strong{display:block;margin-top:8px;font-size:30px;letter-spacing:-.04em}.weekly-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.weekly{display:flex;gap:16px;padding:21px}.weekly .day{display:grid;width:48px;height:48px;place-items:center;background:var(--mint);border-radius:15px;color:var(--green);font-weight:780}.weekly h3{margin:1px 0 5px}.weekly p{margin:0;color:var(--soft);font-size:13px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-card{padding:27px}.settings-card h2{margin:0 0 8px;font-size:21px}.settings-card p{color:var(--soft);line-height:1.5}.toast{position:fixed;z-index:60;left:50%;bottom:110px;padding:13px 18px;color:#fff;background:#183426;border-radius:14px;box-shadow:var(--shadow);transform:translateX(-50%);font-size:13px}.login-page{display:grid;place-items:center;padding:24px}.login-wrap{width:min(480px,100%)}.login-card{padding:44px;border-radius:34px;box-shadow:var(--shadow)}.login-mark{width:64px;height:64px;margin-bottom:32px;border-radius:21px 21px 21px 8px;font-size:24px;font-weight:750}.login-card h1{margin:0 0 15px;font-size:48px;line-height:1;letter-spacing:-.055em}.muted{color:var(--soft);line-height:1.55}.login-card form{margin-top:30px}.login-card label{display:grid;gap:8px;margin-bottom:15px;color:var(--soft);font-size:12px;font-weight:650}.login-card input{padding:15px;background:rgba(255,255,255,.67);border:1px solid var(--line);border-radius:15px}.privacy{display:block;margin-top:20px;color:var(--faint);text-align:center}.login-error{padding:11px;color:#8c3f38;background:var(--rose);border-radius:12px;font-size:13px}
@media(max-width:760px){.topbar{min-height:66px;padding:8px 15px}.brand b{font-size:14px}.brand small,.sync-pill{display:none}main#app{width:min(100% - 22px,620px);padding-top:22px}.hero-grid{grid-template-columns:1fr}.progress-card{min-height:330px;padding:27px}.remaining-card{padding:27px}.alerts{grid-template-columns:1fr}.alert{min-height:auto}.section-title{align-items:flex-start;flex-direction:column;gap:4px}.slot{grid-template-columns:auto 1fr;padding:15px}.slot-actions{grid-column:1/-1}.slot-actions button{flex:1}.plan-summary{grid-template-columns:1fr 1fr}.weekly-grid,.settings-grid{grid-template-columns:1fr}.month-row{grid-template-columns:90px 1fr 60px;padding:14px}.field-grid{grid-template-columns:1fr}.sheet{padding:30px 20px}.login-card{padding:31px 24px}.login-card h1{font-size:40px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}

.plan-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.plan-heading>div{flex:1}.refresh-button{display:flex;align-items:center;gap:9px;white-space:nowrap}.refresh-button span{font-size:22px;font-weight:400}.metric-focus{color:#fff;background:linear-gradient(145deg,rgba(39,79,59,.92),rgba(58,101,78,.87))}.metric-focus small{color:#d5e7dd}.calendar-shell{padding:25px;overflow:hidden}.calendar-toolbar{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;text-align:center}.calendar-toolbar .eyebrow{margin-bottom:4px}.calendar-toolbar h2{margin:0;font-size:30px}.calendar-arrow{display:grid;width:44px;height:44px;place-items:center;background:rgba(255,255,255,.68);border:1px solid var(--line);border-radius:15px;color:var(--green);font-size:30px;line-height:1}.calendar-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin:20px 0 18px;color:var(--soft);font-size:11px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:10px;height:10px;border-radius:4px}.legend-away{background:#e3a39b}.legend-reserved{background:#8fb7d5}.legend-proposed{background:#d9b86d}.legend-locked{background:#477b61}.legend-done{background:#7eb08e}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{padding:9px;color:var(--faint);font-size:11px;font-weight:750;text-align:center;text-transform:uppercase}.calendar-grid{overflow:hidden;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:18px}.calendar-day{min-width:0;min-height:128px;padding:9px;background:rgba(255,255,255,.46);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day.empty{background:rgba(223,231,226,.25)}.calendar-day>b{display:grid;width:26px;height:26px;place-items:center;color:var(--soft);font-size:12px}.day-events{display:grid;gap:4px;margin-top:4px}.calendar-chip{display:block;width:100%;min-width:0;padding:5px 6px;overflow:hidden;border:0;border-radius:7px;text-align:left;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:680;line-height:1.2}.chip-away{color:#783d38;background:#f1d2ce}.chip-reserved{color:#28546f;background:#d8e9f5}.chip-proposed{color:#765916;background:#f3e5bd;cursor:pointer}.chip-locked{color:#fff;background:#477b61;cursor:pointer;box-shadow:0 3px 9px rgba(49,95,73,.2)}.chip-done{color:#295b3d;background:#d7ebdd}.slot-locked{border-color:rgba(61,124,87,.25);box-shadow:0 13px 42px rgba(37,89,59,.13)}.slot-locked .date-badge{color:#fff;background:var(--green)}.slot-locked .date-badge small{color:#dcece3}.planning-impact{display:flex;align-items:center;justify-content:space-between;padding:18px;background:rgba(220,236,227,.72);border:1px solid rgba(70,116,89,.12);border-radius:18px}.planning-impact span{color:var(--soft);font-size:13px}.planning-impact strong{color:var(--green);font-size:24px}

@media(max-width:760px){.plan-heading{align-items:stretch;flex-direction:column}.refresh-button{width:100%;justify-content:center}.plan-summary{grid-template-columns:1fr 1fr}.calendar-shell{margin-right:-11px;margin-left:-11px;padding:15px 7px;border-radius:22px}.calendar-toolbar{grid-template-columns:42px 1fr 42px}.calendar-toolbar h2{font-size:25px}.calendar-legend{justify-content:flex-start;padding:0 5px;gap:9px}.calendar-weekdays span{padding:7px 1px;font-size:9px}.calendar-day{min-height:102px;padding:4px 3px}.calendar-day>b{width:22px;height:22px;font-size:11px}.day-events{gap:3px;margin-top:2px}.calendar-chip{padding:4px 3px;border-radius:5px;font-size:7px}.planning-impact{align-items:flex-start;flex-direction:column;gap:5px}}
