:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#173a2d;background:#f4f6f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #a0cf88;outline-offset:2px}.shell{max-width:1220px;margin:auto;padding:0 28px 64px}.site-header{height:76px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dbe4d8}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:21px;letter-spacing:-.04em}.brand-mark{display:grid;place-items:center;background:#173a2d;color:#d9efb9;border-radius:11px;width:34px;height:34px;font-size:24px}.local-note{font-size:13px;color:#63776a}.intro{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:42px 0 32px}.intro h1{font-size:clamp(32px,4vw,52px);letter-spacing:-.055em;line-height:1.05;margin:9px 0 11px}.intro p:not(.eyebrow){color:#64776b;margin:0;max-width:620px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;color:#5b865e;margin:0}.dashboard{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(315px,1fr);gap:22px;align-items:start}.main-column,.side-column{display:grid;gap:22px;min-width:0}.card{background:#fff;border:1px solid #dce5d9;border-radius:20px;box-shadow:0 8px 30px rgba(25,63,40,.035);padding:24px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.section-heading h2,.dialog-head h2{font-size:21px;letter-spacing:-.035em;margin:5px 0 0}.hint,.fine-print{font-size:12px;color:#75857a}.button{border:0;border-radius:11px;padding:12px 16px;font-weight:700;min-height:44px}.primary{background:#254d37;color:#fff}.primary:hover{background:#356b4b}.secondary{background:#dcebd7;color:#254d37}.secondary:hover{background:#cce1c7}.outline{background:#fff;color:#254d37;border:1px solid #bbd0bc}.outline:hover{background:#f3f8ef}.text-button{border:0;background:none;color:#2d7050;font-size:13px;font-weight:700;padding:8px}.log-fields{display:grid;grid-template-columns:1fr 150px auto;align-items:end;gap:10px}label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#526b58}input,select{width:100%;min-height:44px;padding:10px 11px;border:1px solid #d6e2d5;border-radius:10px;background:#fff;color:#173a2d;font-size:14px}input::placeholder{color:#a1aca3}.save-button{white-space:nowrap}.details{margin-top:16px;border-top:1px solid #e8eee5;padding-top:14px}.details summary{width:max-content;color:#397953;font-size:13px;font-weight:700;cursor:pointer}.detail-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:15px}.shortcut{margin-top:17px;border-radius:12px;background:#f1f7ec;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.shortcut[hidden]{display:none}.shortcut button{border:0;background:#fff;color:#285d3e;border-radius:8px;padding:9px;font-weight:700}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.stat{background:#f3f7f0;border-radius:13px;padding:13px}.stat strong{display:block;font-size:28px;letter-spacing:-.04em}.stat span{font-size:12px;color:#617669}.calendar-nav{display:flex;align-items:center;gap:7px;font-size:13px}.calendar-nav button{border:0;background:#f0f5ec;border-radius:8px;width:30px;height:30px;color:#284e36;font-size:20px}.calendar-labels,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-labels{text-align:center;font-size:11px;color:#819186;margin-bottom:6px}.day{min-height:42px;border:0;border-radius:9px;background:#f5f7f2;color:#56705d;font-size:13px;text-align:left;padding:6px 9px}.day.active{background:#dcebd7;color:#244c35;font-weight:700}.day.multiple{background:#8cbd91;color:#173a2d}.day.today{box-shadow:inset 0 0 0 2px #325c40}.day.selected{outline:2px solid #325c40;outline-offset:1px}.day:disabled{visibility:hidden}.legend{font-size:12px;color:#748679;margin:15px 0 0}.legend-dot{display:inline-block;width:12px;height:12px;border-radius:3px;background:#dcebd7;vertical-align:-2px}.day-detail{margin-top:13px;font-size:13px;color:#526a59}.history-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;border-top:1px solid #e9eee8}.history-item:first-child{border-top:0}.history-item b{display:block;font-size:14px}.history-item span{display:block;color:#7b8a7e;font-size:12px;margin-top:4px}.history-item button,.venue-item button,.goal-actions button{border:0;background:none;color:#a04838;font-size:12px;padding:7px}.empty{background:#f6f8f4;border-radius:12px;padding:17px;color:#7a8c7d;font-size:13px}.goals-card{background:#f9fbf7}.goal{background:#fff;border:1px solid #e1e9df;border-radius:14px;padding:16px;margin-top:12px}.goal:first-child{margin-top:0}.goal-top{display:flex;justify-content:space-between;align-items:start;gap:10px}.goal h3{font-size:17px;margin:4px 0 0;letter-spacing:-.025em}.goal .eyebrow{font-size:10px}.goal-days{color:#667a6c;font-size:12px;white-space:nowrap}.progress-track{height:9px;background:#e5efe1;border-radius:8px;overflow:hidden;margin:16px 0 8px}.progress-track div{height:100%;background:#6da36f;border-radius:8px}.goal-progress{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#627365}.goal-progress strong{color:#315d3b}.goal-next{border-top:1px solid #edf0e9;margin-top:13px;padding-top:12px;font-size:13px;color:#3e5b45}.goal-next b{display:block;margin-bottom:4px}.goal-reason{font-size:12px;color:#687b6c;margin:8px 0 0}.goal-actions{text-align:right}.places-card>p:not(.fine-print){color:#617769;font-size:13px;line-height:1.5;margin-top:-4px}.venue-form{display:grid;grid-template-columns:1fr 120px;gap:10px}.venue-form button{grid-column:1/-1}.venue-item{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ebefea;font-size:13px;padding:9px 0}.venue-item:first-child{margin-top:15px}.nearby-prompt,.active-session{background:#eaf3e5;border-radius:12px;padding:13px;margin-top:12px;font-size:13px}.nearby-prompt p,.active-session p{margin:0 0 10px}.nearby-prompt .button,.active-session .button{margin-right:7px}.fine-print{line-height:1.45}#location-toggle{width:100%;margin-top:12px}dialog{width:min(94vw,600px);border:0;border-radius:20px;padding:25px;box-shadow:0 20px 80px #173a2d44;color:#173a2d}dialog::backdrop{background:#173a2d8c}.dialog-head{display:flex;justify-content:space-between;align-items:start}.icon-button{border:0;background:#f0f5ec;color:#315c3c;border-radius:8px;width:32px;height:32px;font-size:22px}.dialog-intro{font-size:13px;color:#637769;line-height:1.45}.goal-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:18px 0}.goal-fields .full{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:17px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#173a2d;color:white;padding:12px 17px;border-radius:10px;box-shadow:0 10px 30px #173a2d44;font-size:13px;z-index:10}.toast[hidden],[hidden]{display:none!important}@media(max-width:840px){.dashboard{grid-template-columns:1fr}.side-column{grid-template-columns:1fr 1fr}.log-fields{grid-template-columns:1fr 150px auto}}@media(max-width:640px){.shell{padding:0 14px 40px}.site-header{height:62px}.local-note{font-size:10px;max-width:115px;text-align:right}.intro{padding:25px 0;align-items:start;flex-direction:column}.intro h1{font-size:36px}.card{padding:18px;border-radius:15px}.side-column{grid-template-columns:1fr}.log-fields{grid-template-columns:1fr 1fr}.save-button{grid-column:1/-1}.detail-fields{grid-template-columns:1fr}.day{min-height:39px;padding:5px}.venue-form{grid-template-columns:1fr 1fr}.goal-fields{grid-template-columns:1fr}.goal-fields .full{grid-column:auto}.calendar-labels,.calendar-grid{gap:3px}}

.goal-evidence{background:#f4f8f1;border-radius:8px;padding:9px 10px;margin:12px 0 0;font-size:12px;color:#45624d;line-height:1.4}.goal.paused{opacity:.72}.goal-actions button{color:#367551;font-weight:700}.goal-actions button:last-child{color:#a04838}.optional{font-weight:400;color:#809185}.goal-fields label[hidden]{display:none}.goal-fields label span[hidden]{display:none}
@media(max-width:840px){.dashboard{display:flex;flex-direction:column}.main-column,.side-column{display:contents}.dashboard>.main-column>.card,.dashboard>.side-column>.card{width:100%}.log-card{order:1}.goals-card{order:2}.calendar-card{order:3}.history-card{order:4}.places-card{order:5}}

.day.planned{position:relative}.plan-dot{position:absolute;right:5px;bottom:0;color:#326c9b;font-size:20px;line-height:1}.day.planned.active .plan-dot{color:#245274}.goal-win{color:#2e7850;font-size:12px;font-weight:700;margin:10px 0 0}.insight-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.insight-summary>div{background:#f3f7f0;border-radius:10px;padding:10px}.insight-summary strong{display:block;font-size:19px}.insight-summary span{font-size:11px;color:#66796b}.insights-card h3{font-size:13px;margin:22px 0 10px}.insight-week{display:grid;grid-template-columns:85px minmax(50px,1fr) 44px;align-items:center;gap:9px;margin:8px 0;font-size:12px;color:#586c5e}.insight-week b{text-align:right;color:#315d3b}.insight-bar{height:9px;border-radius:7px;background:#edf3e9;overflow:hidden}.insight-bar i{display:block;height:100%;background:#75a578;border-radius:7px}.plan-item{border:1px solid #e1e9df;border-radius:12px;padding:13px;margin:10px 0}.plan-top{display:flex;justify-content:space-between;gap:10px;font-size:13px}.plan-top span{font-size:11px;color:#51745b}.plan-item p{font-size:12px;color:#6a7e6d;margin:8px 0}.plan-actions{display:flex;gap:10px;flex-wrap:wrap}.plan-actions button{background:none;border:0;padding:5px 0;color:#34714e;font-size:12px;font-weight:700}.plan-actions button:last-child{color:#a04838}
@media(max-width:840px){.plans-card{order:3}.calendar-card{order:4}.insights-card{order:5}.history-card{order:6}.places-card{order:7}}
@media(max-width:430px){.insight-summary{grid-template-columns:1fr 1fr}.insight-week{grid-template-columns:78px minmax(40px,1fr) 36px}}

.history-item>div:first-child{min-width:0}.history-item span{overflow-wrap:anywhere}.history-actions{display:flex;gap:7px;flex-shrink:0}.history-actions button:first-child{color:#34714e;font-weight:700}.history-actions button:last-child{color:#a04838}#toggle-history{margin-top:10px}

.header-actions{display:flex;align-items:center;gap:15px}.header-actions .text-button{white-space:nowrap}.preference-choices{border:1px solid #e1e9df;border-radius:12px;margin:16px 0;padding:13px 15px}.preference-choices legend{font-weight:700;font-size:14px;padding:0 5px}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.choice-grid label{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;background:#f4f8f1;font-size:13px;font-weight:600;color:#294a34;cursor:pointer}.choice-grid input{width:18px;height:18px;min-height:18px;margin:0;accent-color:#2d7050;flex-shrink:0}@media(max-width:640px){.header-actions{gap:6px}.header-actions .local-note{display:none}.choice-grid{grid-template-columns:1fr 1fr}.preference-choices{padding:11px}}

/* Editorial type and activity color: colorful data, quiet controls. */
:root{font-family:"DM Sans",Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#273145;background:#f8f6fb}
body{background:radial-gradient(circle at 4% 2%,#eee7ff 0,transparent 33%),radial-gradient(circle at 96% 10%,#ffece3 0,transparent 29%),#f8f6fb}
.brand,.intro h1,.section-heading h2,.dialog-head h2,.goal h3{font-family:"Playfair Display","Iowan Old Style",Baskerville,Georgia,serif}
.brand{font-weight:700;letter-spacing:-.025em;color:#332458}
.brand-mark{background:#5a3b98;color:#ffe7b8}
.intro h1{font-weight:600;letter-spacing:-.035em;color:#30224d}
.intro p:not(.eyebrow){color:#59657a}
.eyebrow{color:#6d4ba3}
.card{--card-accent:#8b68cb;border-color:#e5deed;border-top:4px solid var(--card-accent);box-shadow:0 11px 32px rgba(64,43,104,.055)}
.log-card{--card-accent:#8b68cb}.calendar-card{--card-accent:#2ba88f}.insights-card{--card-accent:#5799cf}.history-card{--card-accent:#a877bb}.goals-card{--card-accent:#e58a6b;background:#fffaf6}.plans-card{--card-accent:#d7a745}.places-card{--card-accent:#7189c3}
.card .eyebrow{color:var(--card-accent)}
.button.primary,.primary{background:#563b98;color:#fff}.button.primary:hover,.primary:hover{background:#432b7a}
.secondary{background:#e8defb;color:#3b286e}.secondary:hover{background:#dbcbf5}
.text-button,.details summary{color:#633fa0}.outline{color:#503480;border-color:#c8b5dd}.outline:hover{background:#f7f1ff}
.shortcut,.goal-evidence{background:#f3eefc;color:#4a376f}
.stats .stat:nth-child(1){background:#efe6ff}.stats .stat:nth-child(2){background:#ddf5ec}.stats .stat:nth-child(3){background:#ffeadd}
.stat strong{color:#342b5e}.stat span,.hint,.fine-print,.day-detail{color:#607087}
.calendar-nav button{background:#f2eafa;color:#573b86}
.day{background:#f3f3f8;color:#617085}.day.today{box-shadow:inset 0 0 0 2px #6b4b9b}.day.selected{outline-color:#6b4b9b}
.day.active.activity-running{background:#e4d6fa;color:#493079}.day.active.activity-climbing{background:#cff0e2;color:#17634b}.day.active.activity-strength{background:#ffe0cb;color:#7b3d1c}.day.active.activity-cycling{background:#d8e9ff;color:#285686}.day.active.activity-swimming{background:#d1f0f2;color:#195b69}.day.active.activity-other{background:#e5e5f0;color:#434361}.day.active.activity-mixed{background:linear-gradient(135deg,#e4d6fa 48%,#cff0e2 48%);color:#3b355d}
.legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px 15px;color:#647187}.legend span{display:inline-flex;align-items:center}.legend-dot{margin-right:5px;background:#cfecdf}.legend-dot.activity-running{background:#a077d8}.legend-dot.activity-climbing{background:#3cb489}.legend-dot.activity-strength{background:#e89760}.legend-dot.activity-cycling{background:#6ea8e3}.legend-dot.activity-swimming{background:#69bfc9}.legend-dot.activity-other{background:#9c9ab1}.legend-dot.activity-mixed{background:linear-gradient(135deg,#a077d8 48%,#3cb489 48%)}.legend-plan{width:8px;height:8px;border-radius:50%;background:#548ecb;margin-right:6px}.plan-dot,.day.planned.active .plan-dot{color:#24648f}
.goal{border-color:#eeddd6}.progress-track{background:#f1e7fb}.progress-track div{background:#8964bf}.goal-progress strong,.goal-win{color:#664398}
.choice-grid label{background:#f4effc;color:#40315f}.choice-grid input{accent-color:#6a49aa}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-color:#9e7dce}

/* Daily workspace: one focused overview, with the long-form tools behind More. */
.shell{max-width:1220px;padding:0 24px 28px}
.site-header{height:58px}
.intro{padding:18px 0 20px;align-items:center}
.intro h1{font-size:clamp(28px,3vw,38px);line-height:1.12;margin:3px 0 4px}
.intro p:not(.eyebrow){font-size:13px}
.dashboard{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(265px,.8fr);gap:18px;align-items:stretch}
.main-column{display:grid;gap:14px;grid-template-rows:auto 1fr}
.side-column{display:grid;gap:14px;grid-template-rows:1fr 1fr 1fr}
.dashboard .card{border-top:0;box-shadow:0 10px 24px rgba(64,43,104,.035)}
.dashboard .card,.glance{padding:17px 19px}
.dashboard .section-heading{margin-bottom:12px}
.dashboard .section-heading h2,.glance h2{font-size:20px;margin:2px 0 0}
.dashboard .card .eyebrow,.glance .eyebrow{font-size:10px;letter-spacing:.12em}
.log-card{background:#fff}
.log-card .details{margin-top:10px;padding-top:9px}
.log-card .shortcut{margin-top:9px}
.log-status{margin:7px 0 0;font-size:12px;color:#356f50}
.log-status:empty{display:none}
.calendar-card{min-height:0}
.calendar-card .stats{margin-bottom:14px}
.calendar-card .stat{padding:8px 12px}
.calendar-card .stat strong{font-size:23px}
.calendar-card .day{min-height:33px}
.calendar-card .calendar-grid{gap:4px}
.calendar-card .legend{margin-top:9px}
.calendar-card .day-detail{margin-top:7px}
.glance{border:1px solid #e6dfed;border-radius:18px;background:#fff;min-width:0}
.glance-goal{background:#eee7fb;border-color:#eee7fb}
.glance-plan{background:#e5f6ee;border-color:#e5f6ee}
.glance-recent{background:#fff0e5;border-color:#fff0e5}
.glance-top{display:flex;align-items:center;justify-content:space-between;gap:7px}
.glance h2{font-family:"Playfair Display","Iowan Old Style",Baskerville,Georgia,serif;color:#30224d}
.glance p:not(.eyebrow){font-size:13px;line-height:1.4;color:#48546a;margin:8px 0 0}
.glance .text-button{padding:4px;white-space:nowrap}
.glance-number{font-size:32px;font-weight:700;letter-spacing:-.045em;color:#392866;margin-top:4px}
.glance-number span{font-size:14px;font-weight:500;letter-spacing:0}
.glance .progress-track{margin:6px 0 0;background:#dcd0ee}
.glance-goal .progress-track div{background:#6b48ad}
.side-column{background:#f0f5f2;border-radius:20px;padding:8px 16px;gap:0}
.side-column .glance{background:transparent;border:0;border-bottom:1px solid #d9e5dd;border-radius:0;padding:13px 2px}
.side-column .glance:last-child{border-bottom:0}
.glance-goal .eyebrow{color:#6d4ba3}.glance-plan .eyebrow{color:#16815d}.glance-recent .eyebrow{color:#a85f36}
.more-section{margin-top:16px}
.more-section>summary{list-style:none;width:100%;padding:11px 16px;border-radius:12px;background:#f0eaf6;color:#503784;font-size:13px;font-weight:700;cursor:pointer}
.more-section>summary::-webkit-details-marker{display:none}
.more-section>summary::after{content:"＋";float:right}
.more-section[open]>summary::after{content:"－"}
.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;margin-top:16px}
.more-grid .places-card{grid-column:1/-1}
@media(max-width:840px){
  .dashboard{display:grid;grid-template-columns:1fr;gap:12px}
  .main-column,.side-column{display:contents}
  .side-column .glance{border:1px solid #e6dfed;border-radius:16px;padding:15px}
  .side-column .glance-goal{background:#eee7fb}.side-column .glance-plan{background:#e5f6ee}.side-column .glance-recent{background:#fff0e5}
  .glance-goal{order:1}.log-card{order:2}.glance-plan{order:3}.calendar-card{order:4}.glance-recent{order:5}
  .more-grid{grid-template-columns:1fr}.more-grid .places-card{grid-column:auto}
}
@media(max-width:640px){
  .shell{padding:0 14px 28px}.intro{padding:15px 0;gap:10px}.intro h1{font-size:29px}.intro p:not(.eyebrow){display:none}
  .dashboard .card,.glance{padding:15px}
  .calendar-card .day{min-height:35px}
}

/* Selected activities keep menus short; uncommon sports live in an optional drawer. */
dialog{max-height:min(92vh,850px);overflow:auto}
.preference-choices .dialog-intro{margin:2px 0 13px}
.other-activities{margin-top:14px;border-top:1px solid #e8e1ef;padding-top:13px}
.other-activities summary{color:#563b98;font-weight:700;font-size:13px;cursor:pointer;padding:6px 0}
.other-activities .choice-grid{margin:9px 0 12px}
.custom-activity-label{display:block;margin:12px 0 7px}
.custom-activity-entry{display:flex;gap:8px;align-items:center}
.custom-activity-entry input{min-width:0;flex:1}
.custom-activity-entry .button{flex:0 0 auto}
.other-activities .fine-print{margin:6px 0}
.day.active.activity-walking,.day.active.activity-hiking{background:#fff2cb;color:#695017}
.day.active.activity-yoga,.day.active.activity-dance{background:#fbdceb;color:#703e60}
.day.active.activity-basketball,.day.active.activity-soccer,.day.active.activity-tennis{background:#d9eafd;color:#285381}
.day.active.activity-custom{background:#e6e6fa;color:#45437c}
.legend-dot.activity-walking,.legend-dot.activity-hiking{background:#d7ad3e}
.legend-dot.activity-yoga,.legend-dot.activity-dance{background:#d675a7}
.legend-dot.activity-basketball,.legend-dot.activity-soccer,.legend-dot.activity-tennis{background:#6b9ccf}
.legend-dot.activity-custom{background:#9894cb}
.activity-colors{display:grid;gap:7px}
.color-row{display:grid;grid-template-columns:18px minmax(0,1fr) 48px;align-items:end;gap:11px;padding:7px 0;border-bottom:1px solid #f0ebf3}
.color-row:last-child{border-bottom:0}
.color-row label{min-width:0}
.color-row select{min-height:40px}
.color-swatch{width:18px;height:18px;border-radius:5px;align-self:center;border:1px solid #29334a30}
.color-row input[type=color]{width:44px;height:40px;min-height:40px;padding:3px;border-radius:8px}
.day.planned.active .plan-dot{text-shadow:0 0 2px #fff,0 0 4px #fff}
textarea{width:100%;min-height:76px;padding:10px 11px;border:1px solid #d6e2d5;border-radius:10px;background:#fff;color:#273145;font:inherit;font-size:14px;resize:vertical}
textarea:focus-visible{outline:3px solid #9e7dce;outline-offset:2px}
.detail-fields .full{grid-column:1/-1}
.history-item{display:block}
.history-item summary{display:flex;justify-content:space-between;gap:12px;align-items:center;cursor:pointer;min-height:44px}
.history-item summary span{margin:0;text-align:right}
.history-detail{padding:3px 0 10px 16px;color:#52637a;font-size:13px}
.history-detail p{margin:7px 0}
.history-note{white-space:pre-wrap;overflow-wrap:anywhere}
.history-actions{justify-content:flex-end}
#open-history{margin-top:7px;padding-left:0}
@media(max-width:640px){.history-item summary{align-items:flex-start;flex-direction:column;gap:2px}.history-item summary span{text-align:left}}

/* Companion-first blue home: color signals activity identity or status, never card decoration. */
:root{font-family:"Nunito",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#233c50;background:#eaf5fb}
body{background:#eaf5fb;color:#233c50}
.shell{max-width:600px;margin:auto;padding:0 20px 42px}
.site-header{height:58px;border-bottom:1px solid #d4e7f2}
.brand,.intro h1,.section-heading h2,.dialog-head h2,.goal h3,.glance h2{font-family:"Fredoka",ui-sans-serif,sans-serif;letter-spacing:0}
.brand{color:#275b81;font-size:20px;font-weight:600}
.brand-mark{background:#65a9d5;color:#fff}
.header-actions .text-button{color:#2f729e}
.intro{padding:19px 0 15px;flex-direction:row;align-items:center}
.intro h1{color:#244763;font-size:33px;font-weight:600;margin:2px 0 0}
.eyebrow,.card .eyebrow,.glance .eyebrow,.glance-goal .eyebrow{color:#58809b}
.button{border-radius:13px}.button.primary,.primary{background:#367eac;color:#fff}.button.primary:hover,.primary:hover{background:#286a95}
.secondary{background:#d9ecf8;color:#285f86}.secondary:hover{background:#cde4f3}
.text-button,.details summary,.other-activities summary{color:#3279a5}
.outline{color:#2c668e;border-color:#bad7e9}.outline:hover{background:#f1f8fc}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-color:#3988ba}
input,select,textarea{border-color:#c7dce8;color:#263f53}
.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;background:#f7fbfe;padding:9px;border-radius:20px}
.week-day{min-width:0;min-height:65px;text-align:center;position:relative;background:#fff;border-radius:15px;padding:7px 1px 6px;color:#5f7890}
.week-day span{display:block;font-size:11px;text-transform:uppercase;font-weight:700}
.week-day b{font-family:"Fredoka",sans-serif;display:block;font-size:17px;font-weight:500;margin:2px auto}
.week-day.today{box-shadow:inset 0 0 0 2px #3988ba;color:#246390}
.week-day i{position:absolute;width:6px;height:6px;border-radius:50%;left:calc(50% - 3px);bottom:5px}
.week-day i.completed{background:#318466}.week-day i.planned{background:#397eb3}
.feature-action{width:100%;display:flex;align-items:center;gap:14px;margin:14px 0 0;padding:14px 19px;border:0;border-radius:20px;background:#367eac;color:#fff;text-align:left;min-height:75px;box-shadow:0 8px 0 #275f85,0 14px 24px #367eac35}
.feature-action:hover{background:#2e719e}.feature-action strong{font:600 22px "Fredoka",sans-serif;display:block}.feature-action small{display:block;color:#e7f5fd;font-size:12px;margin-top:1px}
.feature-plus{display:grid;place-items:center;background:#fff;color:#317eae;border-radius:14px;width:44px;height:44px;flex:none;font:600 28px "Fredoka",sans-serif}
.feature-arrow{margin-left:auto;font-size:23px}
.companion-area{margin:11px 0 15px;overflow:hidden}
.companion-art{position:relative;height:188px;background:radial-gradient(circle at 50% 67%,#d7ecf9 0 25%,transparent 59%)}
.companion-blob{position:absolute;background:#d3e9f8;border-radius:50%;width:88px;height:33px;opacity:.8}.companion-blob.a{top:33px;left:12%;transform:rotate(-9deg)}.companion-blob.b{right:12%;bottom:35px;transform:rotate(12deg)}
.spark{position:absolute;color:#65add5;font:600 25px "Fredoka",sans-serif}.spark.a{left:15%;top:75px}.spark.b{right:19%;top:20px}
.simple-sprite{position:absolute;top:26px;left:50%;transform:translateX(-50%) rotate(-5deg);width:145px;height:145px;border-radius:47% 53% 44% 56%;display:grid;place-items:center;background:#6cafd8;color:#fff;box-shadow:inset 11px -12px 0 #549bc7,0 14px 0 #b4d9ee;font:600 47px "Fredoka",sans-serif;letter-spacing:-.12em;padding-right:9px}
.glance{background:#fff;border:0;border-radius:18px;padding:15px 17px;min-width:0}
.glance h2{color:#284e6d;font-size:20px;font-weight:500}
.glance p:not(.eyebrow){color:#597083}.glance .text-button{white-space:nowrap}
.glance-goal{text-align:center;background:transparent;border:0;padding:0 8px}
.glance-goal .glance-top{justify-content:center;gap:14px}.glance-goal h2{font-size:24px;margin:3px 0}
.glance-number{color:#286c9b;font-family:"Fredoka",sans-serif;font-weight:500;font-size:31px;margin:2px 0}.glance-number span{font-family:"Nunito",sans-serif;color:#516e83}
.glance-goal .progress-track{max-width:400px;margin:8px auto 0;background:#cce2f0}.glance-goal .progress-track div,.progress-track div{background:#4594c2}
.glance-goal p:not(.eyebrow){margin:5px 0}
.daily-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.daily-metrics>.glance,.daily-stat{background:#fff;border:0;border-radius:18px;min-height:112px;padding:14px;box-shadow:0 8px 20px #25567d0a}
.daily-metrics .glance h2{font-size:19px}.daily-metrics .glance p:not(.eyebrow){font-size:12px;margin:4px 0}
.daily-metrics .glance-plan h2,.daily-metrics .glance-plan .eyebrow{color:#326e9b}
.daily-metrics .glance-recent h2,.daily-metrics .glance-recent .eyebrow{color:#2b795d}
.daily-stat .stats{display:flex;gap:12px;margin:8px 0 0;flex-wrap:wrap}.daily-stat .stat{background:transparent;padding:0;min-width:42px}.daily-stat .stat strong{font:500 22px "Fredoka",sans-serif;color:#264b68}.daily-stat .stat span{font-size:11px;color:#617c8e;display:block;max-width:67px;line-height:1.15}
.goal-link .eyebrow{color:#3479a7}.goal-link p{font-size:12px;margin:8px 0 3px;color:#587186}.goal-link .text-button{padding:3px 0}
.card,.goals-card{background:#fff;border:0;border-radius:20px;box-shadow:0 8px 24px #25567d0a}
.calendar-card,.mix-card{margin-top:13px;padding:19px}
.section-heading h2,.dialog-head h2{color:#294f6e;font-size:21px;font-weight:500}
.calendar-nav{color:#426784}.calendar-nav button{background:#e8f4fb;color:#31749e}
.day,.day.active,.day.active.activity-running,.day.active.activity-climbing,.day.active.activity-strength,.day.active.activity-cycling,.day.active.activity-swimming,.day.active.activity-other,.day.active.activity-walking,.day.active.activity-hiking,.day.active.activity-yoga,.day.active.activity-dance,.day.active.activity-basketball,.day.active.activity-soccer,.day.active.activity-tennis,.day.active.activity-custom{background:#f5f9fc;color:#476980}
.day.today{box-shadow:inset 0 0 0 2px #3b8cba}.day.selected{outline-color:#367eac}
.day.active{font-weight:700}.day.planned.active .plan-dot{color:#317baa}
.legend,.day-detail,.hint,.fine-print{color:#627e90}
.mix-layout{display:flex;align-items:center;gap:18px}.mix-ring{width:190px;height:190px;flex:none;overflow:visible}.mix-number{font:500 42px "Fredoka",sans-serif;fill:#244763}.mix-caption{font:700 13px "Nunito",sans-serif;fill:#607e91}
.mix-legend{list-style:none;padding:0;margin:0;flex:1;min-width:0}.mix-legend li{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;color:#324d63}.mix-legend li strong{margin-left:auto;white-space:nowrap}.mix-legend li small{color:#6e8291;font-size:11px}.mix-swatch{width:11px;height:11px;border-radius:50%;flex:none}
.goal-grid-wrap{margin:15px 0 5px;padding:12px;border-radius:14px;background:#f5fafd}.goal-grid-wrap.compact{margin:12px auto 0;max-width:430px;text-align:left}
.goal-grid-heading{display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap;font-size:12px;color:#345e7a}.goal-grid-heading span{color:#5c7990}
.goal-cubes{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:4px;margin-top:9px}
.goal-cube{aspect-ratio:1;border-radius:3px;background:#e5eef4}.goal-cube.met{background:#3a91bf}.goal-cube.current{background:#acd6ed;box-shadow:inset 0 0 0 2px #3a91bf}.goal-cube.before,.goal-cube.future{background:#f0f4f7}.cube-key{font-size:11px!important;color:#73899b!important;margin:7px 0 0!important}
.progress-track{background:#dcecf6}.goal{border:1px solid #e0edf5}.goal-progress strong,.goal-win,.goal-actions button{color:#327da9}.goal-evidence,.shortcut{background:#f1f8fc;color:#496b82}.goal-days{color:#617f91}
.more-section>summary{background:#dfeffa;color:#2a658b}.more-grid{grid-template-columns:1fr}.more-grid .places-card{grid-column:auto}
.choice-grid label{background:#f0f7fc;color:#315b78}.choice-grid input{accent-color:#367eac}.color-row{border-color:#e5f0f7}
.toast{background:#244b68;box-shadow:0 10px 30px #244b6844}
dialog{background:#fff;color:#233c50;border-radius:22px;max-height:min(92vh,850px)}dialog::backdrop{background:#183b54a3}.icon-button{background:#e9f4fa;color:#28678f}
.log-fields{grid-template-columns:1fr 145px}.save-button{grid-column:1/-1;width:100%;min-height:52px;font-size:16px}
.log-card .details{margin-top:14px;border-color:#e3eff7}.log-status{color:#278065}
.preference-choices{border-color:#dcebf4}.goal-next{color:#3d6380}.insight-summary>div,.empty{background:#f2f8fc}.insight-bar{background:#e5f1f8}.insight-bar i{background:#489ac6}
.active-session,.nearby-prompt{background:#e4f3fb}.plan-item{border-color:#dcebf4}.plan-actions button,.history-actions button:first-child{color:#317ca9}
@media(max-width:640px){.shell{padding:0 14px 32px}.intro{flex-direction:row;padding:16px 0}.intro h1{font-size:30px}.week-strip{gap:4px;padding:6px}.week-day{min-height:60px}.daily-metrics>.glance,.daily-stat{min-height:105px;padding:12px}.daily-stat .stats{gap:6px}.daily-stat .stat strong{font-size:19px}.mix-ring{width:160px;height:160px}.mix-layout{gap:8px}.calendar-card,.mix-card{padding:15px}.goal-cubes{gap:3px}}
@media(max-width:390px){.daily-metrics{gap:7px}.daily-stat .stats{gap:3px}.daily-stat .stat{min-width:37px}.mix-ring{width:140px;height:140px}.mix-legend li{font-size:12px}.feature-action strong{font-size:19px}.goal-cubes{gap:2px}}

/* Exact companion-first screen, scaled from the selected 3A reference. */
:root{color:#292944;background:#fff;font-family:"Nunito",sans-serif}
body{background:radial-gradient(#e8e6f3 1px,transparent 1px) 0 0/18px 18px,#fdfcff;color:#292944}
.shell{max-width:760px;width:100%;margin:0 auto 30px;padding:0;background:#f1f0ff;border:14px solid #fff;border-radius:39px;box-shadow:0 18px 40px #36327418;min-height:0}
.phone-status{display:none}
main{padding:31px 36px 0}
.intro{margin:0 0 43px;padding:0;align-items:center;flex-direction:row}
.intro .eyebrow{font:600 20px "Nunito",sans-serif;letter-spacing:.01em;color:#6a7094}
.intro h1{font:600 54px "Fredoka",sans-serif;color:#292944;margin:6px 0 0}
.profile-button{width:76px;height:76px;flex:none;border:0;border-radius:25px;background:#fff;color:#625bd6;font:500 33px "Fredoka",sans-serif}
.week-strip{padding:15px;gap:8px;border-radius:38px;background:#fbfaff}
.week-day{min-height:112px;border-radius:29px;padding:16px 2px 11px;color:#505773;background:#fff}
.week-day span{font:700 19px "Nunito",sans-serif;color:inherit}
.week-day b{font:500 24px "Fredoka",sans-serif;margin:22px auto 0;color:inherit}
.week-day.today{box-shadow:inset 0 0 0 3px #625bd6;color:#514bbf}
.week-day i{width:9px;height:9px;left:calc(50% - 4.5px);bottom:9px;background:transparent}
.week-day i.completed{background:#5e58ca}.week-day i.planned{background:#3f719a}
.week-day:has(i.completed){color:#5751bd}.week-day:has(i.planned){color:#3d719b}
.feature-action{min-height:126px;margin:26px 0 0;padding:24px 31px;gap:23px;border-radius:35px;background:#5e58ca;box-shadow:0 16px 0 #4842ae;color:#fff}
.feature-action:hover{background:#544dc2}.feature-action strong{font:600 31px "Fredoka",sans-serif}.feature-action small{font:400 20px "Nunito",sans-serif;color:#f0efff;margin-top:0}
.feature-plus{width:74px;height:74px;border-radius:24px;background:#fff;color:#5c55c9;font:600 43px "Fredoka",sans-serif}
.feature-arrow{font-size:34px}
.companion-area{margin:28px 0 5px;overflow:visible}
.companion-art{height:330px;background:radial-gradient(circle at 52% 60%,#e2dfff 0 23%,transparent 56%)}
.companion-blob{background:#e4e1ff;opacity:1}.companion-blob.a{width:170px;height:70px;left:2%;top:45px;transform:rotate(-8deg)}.companion-blob.b{width:148px;height:66px;right:3%;bottom:30px;transform:rotate(9deg)}
.spark{color:#7069e1;font:500 39px "Fredoka",sans-serif}.spark.a{left:7%;top:118px}.spark.b{right:7%;top:45px}
.simple-sprite{top:30px;left:50%;transform:translateX(-50%);width:270px;height:270px;border-radius:50%;background:#6966d8;box-shadow:inset 17px -22px 0 #5a55ca,0 28px 0 #d8d5ff;padding:0;letter-spacing:normal}
.sprite-face{position:absolute;inset:0}.sprite-face .eye{position:absolute;top:104px;width:20px;height:20px;background:#fff;border-radius:50%}.sprite-face .eye.left{left:82px}.sprite-face .eye.right{right:82px}.sprite-face .mouth{position:absolute;left:50%;top:145px;transform:translateX(-50%);width:48px;height:25px;border:9px solid #fff;border-top:0;border-radius:0 0 30px 30px}
.glance-goal{padding:0;background:transparent}.glance-goal .glance-top{display:none}.glance-goal h2{font:600 38px "Fredoka",sans-serif;color:#292944;margin:0 0 1px}
.glance-goal .hero-progress-label{font:400 21px "Nunito",sans-serif;color:#5e6686;margin:0!important}
.glance-goal .progress-track{height:15px;max-width:none;margin:29px 69px 14px;background:#dad8fa;border-radius:20px}
.glance-goal .progress-track div{background:#6861d8;border-radius:20px}
.glance-goal .hero-encouragement{font:400 20px "Nunito",sans-serif;color:#5d6687;margin:0!important}
#goal-week-preview{display:none}
.daily-metrics{gap:18px;margin:3px 0 30px;grid-template-columns:repeat(2,minmax(0,1fr))}
.daily-metrics>.glance,.daily-stat{min-height:186px;padding:27px 26px;border-radius:33px;background:#fff;box-shadow:none;overflow:hidden}
.daily-metrics .eyebrow,.daily-metrics .glance-plan .eyebrow,.daily-metrics .glance-recent .eyebrow{font:500 20px "Nunito",sans-serif;letter-spacing:0;color:#5e6585}
.daily-metrics .glance-plan .eyebrow,.daily-metrics .glance-plan h2{color:#376b9a}
.daily-metrics .glance-recent .eyebrow,.daily-metrics .glance-recent h2{color:#236d58}
.daily-metrics .goal-link .eyebrow,.goal-link #goal-spotlight strong{color:#5c55bd}
.daily-metrics .glance-top{display:block}.daily-metrics .glance-top .text-button{display:none}
.daily-metrics .glance h2,.goal-link #goal-spotlight strong{font:600 39px "Fredoka",sans-serif;display:block;margin:7px 0 0;line-height:1.1}
.daily-metrics .glance p:not(.eyebrow),.goal-link #goal-spotlight span{display:block;font:400 19px "Nunito",sans-serif;color:#5d6483;margin:2px 0 0;line-height:1.25}
.daily-stat .stats{display:block;margin:7px 0 0}.daily-stat .stat{padding:0;background:transparent}.daily-stat .stat strong{font:600 39px "Fredoka",sans-serif;color:#292944;line-height:1.1}.daily-stat .stat span{max-width:none;display:block;font:400 19px "Nunito",sans-serif;color:#5d6483;margin-top:2px}
.goal-link .text-button{font-size:13px;padding:4px 0;margin-top:4px;color:#5d55c4}
.app-nav{position:sticky;bottom:0;z-index:2;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:4px;background:#fbfaff;border-top:1px solid #dedcf3;border-radius:0 0 25px 25px;min-height:116px;padding:14px 22px 17px}
.app-nav button{border:0;background:none;color:#999bbc;min-height:70px;font:600 18px "Nunito",sans-serif;display:grid;place-content:center;justify-items:center;gap:5px}
.app-nav button.selected{color:#635cd2}.app-nav i{font-style:normal;font:400 29px "Nunito",sans-serif;line-height:1}.app-nav .nav-more{align-self:center;justify-self:center;width:59px;height:59px;min-height:59px;border:1px solid #e7e3ef;border-radius:50%;background:#fff;color:#5e5669}.app-nav .nav-more i{font-size:23px;letter-spacing:2px}
.app-screen[hidden]{display:none!important}.screen-heading{padding:7px 0 19px}.screen-heading h1{font:600 35px "Fredoka",sans-serif;margin:3px 0}.screen-heading .eyebrow{font-size:12px}
.profile-privacy{font-size:13px;color:#686b87}.card,.goals-card{background:#fff;border:0;box-shadow:none}.calendar-card,.mix-card,.goals-card{margin:12px 0 18px;border-radius:25px;padding:19px}
.more-section>summary{background:#e5e3ff;color:#5650ae}.more-grid{display:grid;grid-template-columns:1fr;gap:12px}.more-grid .card{margin:0}
.button.primary,.primary{background:#5e58ca;color:#fff}.button.primary:hover,.primary:hover{background:#514bb4}.secondary{background:#e2dfff;color:#504abd}.secondary:hover{background:#d6d2fc}
.text-button,.details summary,.other-activities summary{color:#5d55bd}.outline{color:#5b55b7;border-color:#c8c4ec}.outline:hover{background:#f3f2ff}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-color:#625bd6}
.goal-cube.met{background:#6861d8}.goal-cube.current{background:#d4d0fa;box-shadow:inset 0 0 0 2px #6861d8}
.progress-track div{background:#6861d8}.goal-grid-wrap,.empty,.insight-summary>div{background:#f5f4ff}.goal-evidence,.shortcut{background:#f4f3ff}
.choice-grid label{background:#f4f3ff}.choice-grid input{accent-color:#625bd6}.toast{background:#393472}
dialog::backdrop{background:#2c286a99}.icon-button{background:#f1efff;color:#514abb}
@media(max-width:720px){.shell{border-width:5px;border-radius:29px}.intro{margin-bottom:19px}.intro .eyebrow{font-size:12px}.intro h1{font-size:34px}.profile-button{width:46px;height:46px;border-radius:17px;font-size:23px}.week-strip{padding:8px;gap:5px;border-radius:20px}.week-day{min-height:65px;border-radius:16px;padding:7px 1px}.week-day span{font-size:11px}.week-day b{font-size:16px;margin:4px auto 0}.week-day i{width:5px;height:5px;left:calc(50% - 2.5px);bottom:5px}.week-day.today{box-shadow:inset 0 0 0 2px #625bd6}.feature-action{min-height:70px;margin-top:15px;border-radius:20px;padding:13px 18px;gap:12px;box-shadow:0 8px 0 #4842ae}.feature-action strong{font-size:19px}.feature-action small{font-size:12px}.feature-plus{width:42px;height:42px;border-radius:14px;font-size:28px}.feature-arrow{font-size:21px}.companion-area{margin-top:14px}.companion-art{height:207px}.companion-blob.a{width:95px;height:39px;top:30px}.companion-blob.b{width:83px;height:33px;bottom:30px}.spark{font-size:25px}.spark.a{top:65px}.spark.b{top:28px}.simple-sprite{top:22px;width:148px;height:148px;box-shadow:inset 10px -12px 0 #5a55ca,0 15px 0 #d8d5ff}.sprite-face .eye{width:12px;height:12px;top:58px}.sprite-face .eye.left{left:44px}.sprite-face .eye.right{right:44px}.sprite-face .mouth{top:82px;width:28px;height:16px;border-width:5px;border-top:0}.glance-goal h2{font-size:23px}.glance-goal .hero-progress-label,.glance-goal .hero-encouragement{font-size:12px!important}.glance-goal .progress-track{height:9px;margin:13px 38px 7px}.daily-metrics{gap:10px;margin:14px 0 17px}.daily-metrics>.glance,.daily-stat{min-height:104px;padding:13px;border-radius:18px}.daily-metrics .eyebrow,.daily-metrics .glance-plan .eyebrow,.daily-metrics .glance-recent .eyebrow{font-size:11px}.daily-metrics .glance h2,.goal-link #goal-spotlight strong,.daily-stat .stat strong{font-size:24px;margin-top:3px}.daily-metrics .glance p:not(.eyebrow),.goal-link #goal-spotlight span,.daily-stat .stat span{font-size:11px}.goal-link .text-button{font-size:11px}.app-nav{min-height:68px;padding:9px 6px 12px}.app-nav button{font-size:11px;min-height:49px}.app-nav i{font-size:18px}.app-nav .nav-more{width:42px;height:42px;min-height:42px}.app-nav .nav-more i{font-size:15px}}
@media(max-width:640px){main{padding:14px 18px 0}.shell{width:100%;margin-bottom:0}.daily-metrics{grid-template-columns:1fr 1fr}.intro{flex-direction:row}.glance-goal{padding:0}.calendar-card,.mix-card{margin-top:12px}}
@media(max-width:370px){main{padding:13px 12px 0}.week-strip{gap:3px;padding:5px}.week-day span{font-size:10px}.daily-metrics{gap:7px}.daily-metrics>.glance,.daily-stat{padding:10px}.daily-metrics .eyebrow,.daily-metrics .glance-plan .eyebrow,.daily-metrics .glance-recent .eyebrow{font-size:10px}}

/* Happy completed days: filled weekly ovals and activity-colored calendar faces. */
.week-day{overflow:hidden;background:#e8e6fb;color:#646487}
.week-day.done{background:#6962dc;color:#fff}
.week-day.today:not(.done){box-shadow:inset 0 0 0 3px #625bd6;background:#fff;color:#514bbf}
.week-day.done.today{box-shadow:inset 0 0 0 3px #4c45b9;background:#5c55cb}
.week-day.has-plan:not(.done){box-shadow:inset 0 0 0 2px #5185b0}
.week-day.done span,.week-day.done b{color:#fff}
.week-day b{margin:13px auto 0}
.week-day .mini-face{display:block;position:relative;width:42px;height:28px;margin:4px auto 0;border-radius:20px 20px 12px 12px;background:#f9f8ff;color:#383156}
.week-day.done .mini-face{color:#383156}
.week-day .mini-face:before,.week-day .mini-face:after{content:"";position:absolute;top:-3px;width:8px;height:8px;background:inherit;border-radius:50%}.week-day .mini-face:before{left:6px}.week-day .mini-face:after{right:6px}
.week-day:not(.done) .mini-face{background:#f5f4ff;color:#71718d}
.week-day .mini-face i{display:block;position:absolute;margin:0;background:currentColor}
.week-day .mini-face .mini-eye{width:4px;height:5px;top:9px;border-radius:50%;bottom:auto}
.week-day .mini-face .mini-eye.left{left:12px}.week-day .mini-face .mini-eye.right{left:auto;right:12px}
.week-day .mini-face .mini-mouth{width:12px;height:7px;top:13px;left:50%;bottom:auto;transform:translateX(-50%);background:none;border:2px solid currentColor;border-top:0;border-radius:0 0 10px 10px}
.week-day:not(.done) .mini-face .mini-mouth{height:1px;width:9px;top:17px;border:0;border-radius:0;background:currentColor}
.week-day .week-plan-dot{position:absolute;right:6px;bottom:7px;left:auto;width:6px;height:6px;border-radius:50%;background:#5185b0}

.calendar-card{padding:24px 22px}.calendar-card .section-heading{align-items:flex-start;flex-wrap:wrap}
.calendar-card .calendar-labels{gap:6px;margin:14px 0 7px;color:#73778e;font-size:13px}
.calendar-card .calendar-grid{gap:7px 5px}
.calendar-card .day{display:flex;flex-direction:column;align-items:center;gap:5px;position:relative;width:100%;min-width:0;min-height:101px;padding:4px 0;border:0;border-radius:15px;background:transparent!important;color:#596078!important;text-align:center;box-shadow:none}
.calendar-card .day:hover{background:#f7f6ff!important}
.calendar-card .day.selected{outline:2px solid #625bd6;outline-offset:0}
.calendar-card .day.today{box-shadow:none}
.calendar-card .day-number{font:500 15px "Nunito",sans-serif;line-height:1.25;color:#505776}
.calendar-card .day-bubble{position:relative;display:block;width:min(100%,66px);aspect-ratio:1;border-radius:50%;flex:none}
.calendar-card .day-bubble.happy{background:var(--day-fill);color:var(--face-ink,#292944)}
.calendar-card .day-bubble.pending{border:2px dashed #6389b2;background:#f3f8fd}
.calendar-card .day-bubble.pending .pending-dot{position:absolute;inset:calc(50% - 4px);border-radius:50%;background:#6389b2}
.calendar-card .day-bubble.blank{background:transparent}
.calendar-card .day-bubble .face-eye{position:absolute;top:36%;width:6%;height:9%;background:currentColor;border-radius:50%}
.calendar-card .day-bubble .face-eye.left{left:30%}.calendar-card .day-bubble .face-eye.right{right:30%}
.calendar-card .day-bubble .face-mouth{position:absolute;left:50%;top:49%;transform:translateX(-50%);width:25%;height:17%;border:2.5px solid currentColor;border-top:0;border-radius:0 0 20px 20px}
.calendar-card .day-bubble.happy:after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 19% 61%,currentColor 0 7%,transparent 8%),radial-gradient(circle at 81% 61%,currentColor 0 7%,transparent 8%);opacity:.16}
.calendar-card .day-detail{background:#f6f5ff;border-radius:12px;padding:12px 14px;margin-top:17px;color:#4f5774;font-size:13px}
.calendar-card .legend{margin-top:16px;color:#656c87;font-size:12px}
.calendar-card .legend-dot{width:10px;height:10px;border-radius:50%}
.year-overview{padding:18px 20px;margin:0 0 17px;border-radius:24px;background:#fff}
.year-overview summary{list-style:none;cursor:pointer;color:#292944;font:500 21px "Fredoka",sans-serif}
.year-overview summary::-webkit-details-marker{display:none}
.year-overview summary:after{content:"＋";float:right;color:#625bd6}.year-overview[open] summary:after{content:"－"}
.year-overview summary span{font:600 13px "Nunito",sans-serif;color:#7d8099;margin-left:6px}
.year-grid{display:grid;grid-template-columns:23px repeat(12,minmax(0,1fr));gap:4px;margin:17px 0 5px;align-items:center}
.year-month,.year-day-label{text-align:center;color:#737a93;font-size:11px}
.year-cell,.year-invalid{display:block;aspect-ratio:1;width:100%;padding:0;border:0;border-radius:5px;background:#efeffa}
.year-cell.logged{background:var(--year-fill)}.year-cell.today{outline:2px solid #625bd6;outline-offset:1px}.year-cell:hover{box-shadow:0 0 0 2px #635cc0}
.year-invalid{background:transparent}
@media(max-width:720px){.week-day b{margin:3px auto 0}.week-day .mini-face{width:28px;height:18px;margin:3px auto 0}.week-day .mini-face:before,.week-day .mini-face:after{width:5px;height:5px;top:-2px}.week-day .mini-face:before{left:4px}.week-day .mini-face:after{right:4px}.week-day .mini-face .mini-eye{width:3px;height:3px;top:6px}.week-day .mini-face .mini-eye.left{left:8px}.week-day .mini-face .mini-eye.right{right:8px}.week-day .mini-face .mini-mouth{top:10px;width:9px;height:5px;border-width:1.5px}.week-day:not(.done) .mini-face .mini-mouth{top:12px;width:7px}.week-day .week-plan-dot{right:2px;bottom:5px;width:4px;height:4px}.calendar-card .day{min-height:70px;gap:3px}.calendar-card .day-bubble{width:min(100%,43px)}.calendar-card .day-number{font-size:12px}.calendar-card .calendar-labels{font-size:11px}.calendar-card .day-bubble .face-mouth{border-width:2px}.year-grid{gap:3px;grid-template-columns:17px repeat(12,minmax(0,1fr))}.year-overview{padding:15px}}
@media(max-width:370px){.calendar-card{padding:13px 9px}.calendar-card .calendar-grid{gap:4px 2px}.calendar-card .day{min-height:59px}.calendar-card .day-bubble{width:min(100%,36px)}.year-grid{gap:2px}.week-day .mini-face{width:25px}}

/* One quiet square for every ISO week of the goal year. */
.goal-grid-wrap,.goal-grid-wrap.compact{max-width:none;margin:18px 0 8px;padding:18px;background:#fff;border:1px solid #eae8f4;border-radius:24px;text-align:left}
.goal-grid-heading{align-items:baseline;gap:8px}.goal-grid-heading strong{font:500 19px "Fredoka",sans-serif;color:#292944}.goal-grid-heading span{font-size:12px;color:#777b94}
.cube-scale{display:flex;justify-content:flex-end;align-items:center;gap:5px;margin:7px 0 17px;color:#81839c;font-size:11px}.cube-scale i{display:block;width:14px;height:14px;border-radius:4px;background:#f0effb}.cube-scale i:nth-of-type(2){background:#cfcaf4}.cube-scale i:nth-of-type(3){background:#6962dc}
.goal-cubes{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:5px;margin:0}.goal-cube{aspect-ratio:1;border-radius:5px;background:#f0effb}.goal-cube.before,.goal-cube.future{background:#f7f6fc}.goal-cube.missed{background:#e7e5f7}.goal-cube.current{background:#cbc6f5;box-shadow:inset 0 0 0 2px #6962dc}.goal-cube.met{background:#625bd4}
.goal-grid-months{display:flex;justify-content:space-between;color:#8a8ca3;font-size:11px;margin:9px 3px 0}.cube-key{font-size:11px!important;color:#7f8298!important;margin:8px 0 0!important}
.venue-form .venue-address-label,.venue-form .venue-help{grid-column:1/-1}.venue-form .venue-help{margin:0;color:#68718d;font-size:12px;line-height:1.4}.venue-help a{color:#5a54bd}.venue-item small{display:block;margin-top:3px;color:#788098;font-size:11px}.address-confirmation{margin-top:12px;padding:13px;background:#f6f5ff;border-radius:14px}.address-confirmation label{margin-bottom:8px}.address-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}#save-address-only{margin-bottom:9px;text-align:left}
@media(max-width:430px){.goal-grid-wrap{padding:12px}.goal-cubes{gap:3px}.goal-cube{border-radius:3px}.goal-grid-heading strong{font-size:16px}.cube-scale{gap:3px}.cube-scale i{width:11px;height:11px}.venue-form{grid-template-columns:1fr 1fr}}

/* Flat surfaces throughout; outlines and solid fills still indicate state. */
*,*::before,*::after{box-shadow:none!important;text-shadow:none!important;filter:none!important}
body{background:#fdfcff}
.shell{background:#f1f0ff}
.companion-art{background:transparent}
.simple-sprite{background:#6966d8}
.calendar-card .day-bubble.happy:after{display:none}
.week-day.today:not(.done){outline:3px solid #625bd6;outline-offset:-3px}
.week-day.done.today{outline:3px solid #4c45b9;outline-offset:-3px}
.week-day.has-plan:not(.done){outline:2px solid #5185b0;outline-offset:-2px}
.goal-cube.current{outline:2px solid #6962dc;outline-offset:-2px}
.year-cell:hover{outline:2px solid #635cc0;outline-offset:0}

/* Responsive website shell, not a simulated phone. */
body{background:#f8f8fe}
.shell{width:100%;max-width:none;margin:0;padding:0;min-height:100vh;border:0;border-radius:0;background:#f8f8fe}
.site-header{height:auto;min-height:78px;position:sticky;top:0;z-index:5;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px;padding:12px max(24px,calc((100vw - 1200px)/2));background:#fff;border-bottom:1px solid #e7e5f1}
.site-brand{display:inline-flex;align-items:center;gap:10px;border:0;background:none;padding:0;color:#332e77;font:600 24px "Fredoka",sans-serif;white-space:nowrap}
.brand-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#6761d5;color:#fff;font-size:25px}
.app-nav{position:static;min-height:0;display:flex;justify-content:center;gap:5px;padding:0;background:transparent;border:0;border-radius:0}
.app-nav button{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:10px 16px;border-radius:12px;font:700 14px "Nunito",sans-serif;color:#626985;white-space:nowrap}
.app-nav button:hover{background:#f5f3ff;color:#4e48ac}.app-nav button.selected{background:#eeedff;color:#514bbd}
.header-log{white-space:nowrap;padding:11px 18px;border-radius:13px}
main{width:min(100%,1240px);margin:0 auto;padding:34px 28px 74px}
.app-screen{scroll-margin-top:105px}
.intro{margin:0 0 24px;align-items:start}.intro .eyebrow{font-size:12px;letter-spacing:.1em;color:#686a96}.intro h1{font-size:clamp(34px,3.8vw,50px);margin:4px 0 0}.intro-subtitle{display:block!important;margin:4px 0 0!important;font-size:16px!important;color:#6c718e!important}
.home-stage{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);align-items:stretch;gap:22px}
.home-actions{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:26px;border-radius:24px;background:#fff;border:1px solid #e8e6f4}
.home-actions .week-strip{width:100%;padding:12px;background:#f6f5ff;border-radius:20px;gap:7px}
.home-actions .week-day{min-height:105px;border-radius:19px;padding:11px 1px}.home-actions .week-day span{font-size:13px}.home-actions .week-day b{font-size:22px;margin:10px auto 0}.home-actions .mini-face{margin-top:4px}
.home-actions .feature-action{margin:0;min-height:98px;border-radius:21px;padding:18px 22px;gap:17px}.home-actions .feature-action strong{font-size:25px}.home-actions .feature-action small{font-size:14px}.home-actions .feature-plus{width:58px;height:58px;border-radius:16px;font-size:34px}
.companion-area{min-width:0;margin:0;padding:10px 24px 25px;border-radius:24px;background:#eeedff;overflow:hidden}
.companion-art{height:200px;background:transparent}.companion-blob.a{width:100px;height:39px;top:28px}.companion-blob.b{width:84px;height:34px;bottom:30px}.spark{font-size:27px}.spark.a{top:66px}.spark.b{top:32px}
.simple-sprite{top:18px;width:165px;height:165px;animation:companion-drift 7s ease-in-out infinite}
.sprite-face .eye{top:65px;width:13px;height:13px}.sprite-face .eye.left{left:51px}.sprite-face .eye.right{right:51px}.sprite-face .mouth{top:91px;width:31px;height:18px;border-width:5px;border-top:0}
@keyframes companion-drift{0%,100%{transform:translateX(-50%) translateY(0) rotate(-1deg)}50%{transform:translateX(-50%) translateY(-7px) rotate(1deg)}}
@media(prefers-reduced-motion:reduce){.simple-sprite{animation:none}}

/* Expose the secondary routes instead of hiding navigation beyond the viewport. */
.quick-links{margin:18px 0 0;padding:18px;border:1px solid #e5e8ef;border-radius:16px;background:#fff}
.quick-links-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.quick-links-head .eyebrow{margin:0}.quick-links h2{font:600 21px "Iowan Old Style","Baskerville",Georgia,serif;letter-spacing:-.03em;color:#252d41;margin:0}
.quick-links-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.quick-links-grid button{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:47px;padding:9px 12px;border:1px solid #d9dce9;border-radius:9px;background:#fff;color:#414968;font:600 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;text-align:left}
.quick-links-grid button:hover{border-color:#8582c7;background:#f7f7fd;color:#4641a3}
.quick-links-grid button span{color:#5450b7;font-size:17px}
.quick-links-grid button:focus-visible{outline:3px solid #514bb2;outline-offset:2px}
.more-heading{font:600 27px "Iowan Old Style","Baskerville",Georgia,serif;color:#252d41;letter-spacing:-.03em;margin:26px 0 13px}
.more-section .more-grid{margin-top:0}
.history-card,.plans-card,.places-card{scroll-margin-top:24px}
.friends-panel{scroll-margin-top:24px}
@media(max-width:900px){.history-card,.plans-card,.places-card,.friends-panel{scroll-margin-top:125px}}
@media(max-width:740px){
  .app-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible;gap:2px}
  .app-nav button{min-width:0;width:100%;padding:8px 2px;font-size:11px;white-space:nowrap}
  .quick-links{padding:15px;margin-top:11px}.quick-links-head{display:block}.quick-links h2{margin:4px 0 0}
  .quick-links-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.glance-goal h2{font-size:25px}.glance-goal .hero-progress-label,.glance-goal .hero-encouragement{font-size:14px!important}.glance-goal .progress-track{height:10px;margin:14px 12px 9px}
.glance-goal .glance-top{display:flex;justify-content:center;gap:8px}.glance-goal .glance-top .eyebrow{font-size:10px}.glance-goal .glance-top .text-button{padding:0 5px;font-size:11px}
.daily-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0 0}
.daily-metrics>.glance,.daily-stat{min-height:150px;padding:20px 21px;border:1px solid #e8e6f4;border-radius:22px}
.daily-metrics .eyebrow,.daily-metrics .glance-plan .eyebrow,.daily-metrics .glance-recent .eyebrow{font-size:12px}
.daily-metrics .glance h2,.goal-link #goal-spotlight strong,.daily-stat .stat strong{font-size:29px;margin-top:8px;overflow-wrap:anywhere}
.daily-metrics .glance p:not(.eyebrow),.goal-link #goal-spotlight span,.daily-stat .stat span{font-size:13px}
.daily-metrics .glance-top .text-button{display:inline-block;font-size:11px;margin-left:auto}.daily-metrics .glance-top{display:flex;align-items:start;gap:5px}
.site-footer{display:flex;justify-content:space-between;gap:18px;padding:24px max(28px,calc((100vw - 1200px)/2));background:#fff;border-top:1px solid #e7e5f1;color:#797e9a;font-size:12px}.site-footer span:first-child{color:#504bb4;font:500 17px "Fredoka",sans-serif}
.screen-heading{padding:0 0 12px}.screen-heading h1{font-size:42px}
#screen-calendar{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr);grid-template-rows:auto auto 1fr;align-items:start;gap:18px}
#screen-calendar>.screen-heading{grid-column:1/-1}#screen-calendar>.calendar-card{grid-column:1;grid-row:2/4;margin:0}#screen-calendar>.mix-card{grid-column:2;grid-row:2;margin:0}#screen-calendar>.year-overview{grid-column:2;grid-row:3;margin:0}
.calendar-card,.mix-card,.year-overview,.goals-card,.more-grid .card{border:1px solid #e8e6f4;border-radius:23px;background:#fff}
.calendar-card .day-bubble.pending{border-color:#6f81c3;background:#f6f7ff}.calendar-card .day-bubble.pending .pending-dot{background:#6f81c3}
.calendar-nav button{background:#eeedff;color:#514bbb}.calendar-card .day-detail{background:#f4f3ff}.year-overview summary:after{color:#625bd6}
#screen-goals>.button{margin-bottom:18px}.goals-card{max-width:none;margin:0;padding:24px}#goals{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:16px}.goal{margin:0;border-color:#e8e6f4}
#screen-profile>.button{margin:0 0 10px}.more-section{margin-top:18px}.more-section>summary{background:#eeedff}.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.more-grid .places-card{grid-column:1/-1}
@media(max-width:980px){.site-header{gap:15px}.home-stage{grid-template-columns:1fr 1fr}.home-actions{padding:18px}.home-actions .week-day{min-height:82px}.home-actions .week-day span{font-size:11px}.home-actions .week-day b{font-size:17px;margin:4px auto 0}.daily-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#screen-calendar{grid-template-columns:1fr}#screen-calendar>.screen-heading,#screen-calendar>.calendar-card,#screen-calendar>.mix-card,#screen-calendar>.year-overview{grid-column:1;grid-row:auto}.more-grid{grid-template-columns:1fr}.more-grid .places-card{grid-column:1}}
@media(max-width:740px){.site-header{grid-template-columns:1fr auto;gap:8px 12px;padding:12px 18px}.site-brand{font-size:21px}.brand-icon{width:32px;height:32px;font-size:21px}.header-log{grid-column:2;grid-row:1;padding:10px 12px;font-size:12px}.app-nav{grid-column:1/-1;grid-row:2;justify-content:space-between;border-top:1px solid #f0eff7;padding-top:8px}.app-nav button{flex:1;padding:7px 5px;font-size:12px;min-height:38px}main{padding:21px 16px 50px}.home-stage{grid-template-columns:1fr;gap:14px}.home-actions{padding:16px}.companion-area{padding:10px 18px 22px}.simple-sprite{width:150px;height:150px}.sprite-face .eye{top:59px;width:12px;height:12px}.sprite-face .eye.left{left:46px}.sprite-face .eye.right{right:46px}.sprite-face .mouth{top:84px;width:28px;height:16px}.companion-art{height:185px}.daily-metrics{gap:10px;margin-top:14px}.daily-metrics>.glance,.daily-stat{min-height:108px;padding:13px}.daily-metrics .glance h2,.goal-link #goal-spotlight strong,.daily-stat .stat strong{font-size:23px}.daily-metrics .glance p:not(.eyebrow),.goal-link #goal-spotlight span,.daily-stat .stat span{font-size:11px}#goals{grid-template-columns:1fr}.site-footer{padding:18px;flex-direction:column;gap:5px}}
@media(max-width:390px){.home-actions .week-strip{gap:3px;padding:6px}.home-actions .week-day{min-height:65px;padding:6px 0}.home-actions .week-day b{font-size:15px}.home-actions .week-day span{font-size:10px}.home-actions .week-day .mini-face{width:25px;height:17px}.home-actions .feature-action{min-height:76px;padding:12px}.home-actions .feature-action strong{font-size:19px}.home-actions .feature-plus{width:42px;height:42px;font-size:26px}.calendar-card{padding:14px 9px}}

/* Visible, keyboard-selectable activity colors, including a custom picker. */
.color-choice{border:0;border-bottom:1px solid #e8e6f4;padding:12px 0;margin:0;min-width:0}
.color-choice legend{font-weight:700;color:#343857;padding:0}
.color-options{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:8px}
.color-option{position:relative;display:inline-flex;align-items:center;gap:5px;cursor:pointer;min-height:40px}
.color-option input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}
.color-chip,.custom-chip{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid #78769650}
.color-option input:checked+.color-chip,.color-option input:checked+.custom-chip{outline:3px solid #36337e;outline-offset:2px}
.color-option input:focus-visible+.color-chip,.color-option input:focus-visible+.custom-chip{outline:3px solid #2c71aa;outline-offset:3px}
.custom-chip{background:#f2f1ff;color:#36337e;font-size:24px;font-weight:700}
.custom-choice{color:#49466e;font-size:12px}
.color-options input[type=color]{width:42px;height:40px;padding:2px;border:1px solid #b9b6d9;border-radius:9px}
.color-options input[type=color][hidden]{display:none}
.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}
.friends-teaser,.profile-overview,.profile-highlights{border:1px solid #e8e6f4;border-radius:23px;background:#fff;padding:22px;margin-top:18px}
.friends-teaser{display:flex;justify-content:space-between;align-items:center;gap:20px}
.friends-teaser h2,.profile-highlights h2{margin:4px 0 6px;color:#353172;font-size:22px}
.friends-teaser p:not(.eyebrow),.profile-highlights p{color:#646b85;margin:4px 0}
.profile-overview{display:flex;align-items:center;gap:20px;margin:4px 0 16px}
.profile-overview h2{margin:2px 0 5px;color:#343172}
.profile-overview p:last-child{margin:0;color:#646b85}
.profile-avatar{display:grid;place-items:center;flex:none;width:64px;height:64px;border-radius:50%;background:#e8e6ff;color:#5750ba;font-size:30px}
.profile-actions{display:flex;gap:9px;flex-wrap:wrap}
.profile-highlights{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.profile-highlights>div+div{border-left:1px solid #e8e6f4;padding-left:20px}
.privacy-settings{display:grid;gap:14px}.privacy-settings label{display:grid;gap:5px;font-weight:700}.privacy-settings select{width:100%;min-height:42px}
@media(max-width:650px){.friends-teaser{align-items:flex-start;flex-direction:column}.profile-highlights{grid-template-columns:1fr}.profile-highlights>div+div{border-left:0;border-top:1px solid #e8e6f4;padding:15px 0 0}}

/* Collection: flat, distinct medallions with a clear earned/locked state. */
#screen-calendar>.pattern-card{grid-column:2;grid-row:4;margin:0;border:1px solid #e8e6f4;border-radius:23px;background:#fff}
.pattern-card .insight-week{grid-template-columns:74px 1fr 72px}
.badge-summary{color:#5e5a9a;font-weight:700;margin:0 0 18px}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:15px}
.badge-card{display:flex;align-items:center;gap:18px;min-height:148px;padding:19px;border:1px solid #e8e6f4;border-radius:22px;background:#fff}
.badge-card h2{font:600 21px "Fredoka",sans-serif;color:#313052;margin:0 0 5px}
.badge-card p{color:#686d88;margin:0 0 9px;font-size:13px;line-height:1.4}
.badge-status{display:inline-block;color:#524bb5;font-weight:800;font-size:12px}
.badge-card.locked .badge-status{color:#73788d}.badge-card.locked .badge-medal{filter:grayscale(1);opacity:.42}
.badge-medal{display:grid;place-items:center;flex:none;width:74px;height:74px;border-radius:50%;border:5px solid #fff;outline:2px solid #c0b8e6;background:#d9d2fa;color:#5341aa;font:700 35px "Fredoka",sans-serif}
.badge-first{background:#dddcff;color:#4e49b4;outline-color:#8e8ad9}
.badge-ten{background:#d1ebeb;color:#256b83;outline-color:#6faab9}
.badge-fifty{background:#fae6b6;color:#936523;outline-color:#d9af62}
.badge-week{background:#e1ead0;color:#557945;outline-color:#99ba81}
.badge-goal{background:#f9dbe6;color:#9b4774;outline-color:#d995b3}
.badge-account{background:#e7e6ed;color:#747383;outline-color:#aaa9b6}
.profile-badges{padding:22px;margin-top:18px;border:1px solid #e8e6f4;border-radius:23px;background:#fff}
.profile-badges h2{margin:4px 0 0;color:#353172}
.profile-badge-list{display:flex;flex-wrap:wrap;gap:12px}
.profile-badge{display:flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid #e8e6f4;border-radius:16px;font-size:13px}
.profile-badge .badge-medal{width:38px;height:38px;border-width:3px;font-size:18px;outline-width:1px}
.app-screen[hidden],[hidden]{display:none!important}
@media(max-width:980px){#screen-calendar>.pattern-card{grid-column:1;grid-row:auto}}
@media(max-width:740px){.app-nav button{font-size:11px;padding:7px 3px}.badge-card{min-height:130px}.badge-medal{width:62px;height:62px;font-size:30px}}
@media(max-width:420px){.app-nav button{font-size:10px;letter-spacing:-.02em}.site-header{padding-left:10px;padding-right:10px}.badge-grid{grid-template-columns:1fr}}

/* One scrollable overview; the navigation buttons jump within this page. */
#screen-home,#screen-calendar,#screen-goals{scroll-margin-top:110px}
#screen-calendar,#screen-goals{margin-top:42px;padding-top:32px;border-top:1px solid #e4e2f1}
#screen-calendar>.screen-heading,#screen-goals>.screen-heading{padding-bottom:4px}
#screen-calendar>.screen-heading h1,#screen-goals>.screen-heading h1{margin-bottom:0}
@media(max-width:740px){#screen-home,#screen-calendar,#screen-goals{scroll-margin-top:130px}#screen-calendar,#screen-goals{margin-top:27px;padding-top:22px}}

/* Connected profile and friends, with quick logging still first on the overview. */
.friends-home,.account-panel,.friends-panel{border:1px solid #e8e6f4;background:#fff;border-radius:23px;padding:22px;margin:18px 0}
.friends-home h2,.friends-panel h2{margin:3px 0;color:#353172}
.friend-card,.request-line{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #eceaf5}
.friend-card>span:nth-child(2),.request-line>span:first-child{flex:1;min-width:0}
.friend-card strong,.friend-card small{display:block}.friend-card small{font-size:12px;color:#68708a}
.friend-avatar{display:grid;place-items:center;width:39px;height:39px;flex:none;border-radius:50%;background:#e5e3ff;color:#5550b1;font-weight:800}
.friend-card button,.request-line button,.friend-actions button{border:1px solid #bfbbe5;background:#fff;color:#514bb0;border-radius:9px;padding:8px 11px;font-weight:700}
.friends-panel h3{font-size:17px;margin:22px 0 7px;color:#363373}
.friends-panel #friend-search-form{display:flex;gap:8px;align-items:end;margin:14px 0}.friends-panel #friend-search-form label{flex:1}
.account-panel p{margin:0 0 13px;color:#626987}.account-panel #profile-form{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-top:17px}.account-panel #profile-form label{flex:1;min-width:160px}
.friend-profile{padding:18px;background:#f7f6ff;border-radius:17px;margin-top:15px}.friend-profile h3{margin:0 0 5px}.friend-profile h3 small{font-size:12px;color:#686c88;font-weight:400}.friend-profile h4{margin:15px 0 5px}.friend-profile ul{margin:4px 0;padding-left:20px}.friend-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.auth-mode{display:flex;gap:12px;margin-bottom:18px}.auth-mode label,.import-guest{display:flex;align-items:center;gap:9px}.auth-mode input,.import-guest input{width:auto;min-height:0;accent-color:#625bd6}
.import-guest{margin-top:17px}.form-error{color:#a53045;min-height:1em}
[hidden]{display:none!important}
@media(max-width:650px){.friends-panel #friend-search-form{flex-wrap:wrap}.request-line{flex-wrap:wrap}.account-panel #profile-form{display:grid}}

/* Action hierarchy: one strong logging action, clear but quieter next steps. */
.action-pill{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:10px 14px;border:1.5px solid #726bce;border-radius:12px;background:#fff;color:#4c45a8;font:800 13px "Nunito",sans-serif;text-align:left;line-height:1.2}
.action-pill:hover{background:#f5f4ff;border-color:#5149bc}.action-pill span{font-size:17px;line-height:1;flex:none}
.glance-goal #glance-goal-action{margin:16px auto 0}
.glance-goal .glance-top{justify-content:center}.glance-goal .glance-top .eyebrow{font-size:11px}
.daily-metrics>.glance,.daily-metrics>.goal-link{display:flex;flex-direction:column;align-items:stretch}
.daily-metrics .action-pill{width:100%;margin-top:auto}
.daily-metrics .glance h2{margin-bottom:4px}
.daily-metrics .glance p:not(.eyebrow){margin-bottom:12px}
#screen-goals #open-goal{min-height:48px;padding:12px 19px;background:#e8e6ff;border:1px solid #a9a4df;color:#413a9d;font-weight:800}
#screen-goals #open-goal:hover{background:#dad7fc}
.calendar-nav button{width:42px;height:42px;border:1px solid #c6c1eb;border-radius:10px;font-size:23px}
.goal-actions,.history-actions,.plan-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;margin-top:13px}
.goal-actions button,.history-actions button,.plan-actions button{min-height:42px;padding:8px 12px;border:1px solid #c9c5ea;border-radius:10px;background:#fff;color:#514aaa;font:700 12px "Nunito",sans-serif}
.goal-actions button:hover,.history-actions button:hover,.plan-actions button:hover{background:#f5f4ff}
.goal-actions button:last-child,.history-actions button:last-child,.plan-actions button:last-child{border-color:#e8c9ce;color:#9b394c}
.profile-badges #view-badges,.friends-home #friends-home-link,.friends-panel #copy-invite{min-height:40px;padding:9px 12px;border:1px solid #cbc7ed;border-radius:10px;background:#f7f6ff;color:#4e48a9;font-weight:800}
.more-section>summary{min-height:48px;display:block;padding:13px 16px;font-size:14px}
@media(max-width:740px){.glance-goal #glance-goal-action{width:min(100%,230px)}.daily-metrics>.glance,.daily-metrics>.goal-link{min-height:154px}.daily-metrics .action-pill{font-size:11px;padding:9px 10px}.daily-metrics .action-pill span{font-size:15px}#screen-goals #open-goal{width:100%}}
@media(max-width:980px){#screen-calendar{display:flex;flex-direction:column;gap:14px}#screen-calendar>.screen-heading,#screen-calendar>.calendar-card,#screen-calendar>.year-overview,#screen-calendar>.mix-card,#screen-calendar>.pattern-card{width:100%;margin:0}#screen-calendar>.screen-heading{padding-bottom:0}}

/* A quiet, application-style type scale and desktop navigation rail. */
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;font-synthesis:none;color:#292b3f}
body,button,input,select,textarea{font-family:inherit}
.site-brand,.app-nav button,.site-footer span:first-child,.intro h1,.screen-heading h1,
.section-heading h2,.dialog-head h2,.goal h3,.glance h2,.glance-goal h2,
.feature-action strong,.feature-action small,.feature-plus,.week-day span,.week-day b,
.daily-metrics .eyebrow,.daily-metrics .glance-plan .eyebrow,.daily-metrics .glance-recent .eyebrow,
.daily-metrics .glance h2,.daily-metrics .glance p:not(.eyebrow),
.daily-stat .stat strong,.daily-stat .stat span,.goal-link #goal-spotlight strong,
.goal-link #goal-spotlight span,.glance-goal .hero-progress-label,.glance-goal .hero-encouragement,
.glance-number,.glance-number span,.mix-number,.mix-caption,.year-overview summary,
.year-overview summary span,.goal-grid-heading strong,.badge-card h2,.badge-medal,
.action-pill,.goal-actions button,.history-actions button,.plan-actions button{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;
}
.site-brand{font-size:21px;font-weight:700;letter-spacing:-.035em}
.intro h1,.screen-heading h1{font-weight:700;letter-spacing:-.045em;line-height:1.1}
.intro h1{font-size:clamp(32px,3vw,44px)}.screen-heading h1{font-size:34px}
.section-heading h2,.glance h2,.glance-goal h2,.goal h3{font-weight:650;letter-spacing:-.025em}
.feature-action strong{font-weight:700;letter-spacing:-.025em}
.daily-stat .stat strong,.daily-metrics .glance h2{font-weight:700;letter-spacing:-.035em}
.eyebrow{letter-spacing:.09em;font-weight:700}
.card,.home-actions,.companion-area,.daily-metrics>.glance,.daily-stat,
.calendar-card,.mix-card,.year-overview,.goals-card,.more-grid .card{border-radius:16px;box-shadow:none}
.home-actions .feature-action{border-radius:14px;box-shadow:none}
.home-actions .feature-action:hover{background:#4f49ba}
.action-pill,.button,.goal-actions button,.history-actions button,.plan-actions button{border-radius:9px}
@media(min-width:901px){
  .shell{display:grid;grid-template-columns:212px minmax(0,1fr);grid-template-rows:minmax(100vh,auto) auto}
  .site-header{grid-column:1;grid-row:1/3;position:sticky;top:0;height:100vh;min-height:0;align-self:start;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;padding:25px 13px;background:#fff;border-right:1px solid #e6e6ef;border-bottom:0}
  .site-brand{align-self:flex-start;margin:0 10px 29px}
  .brand-icon{border-radius:10px}
  .header-log{order:1;width:100%;min-height:45px;margin-bottom:25px;text-align:center}
  .app-nav{order:2;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;width:100%}
  .app-nav button{justify-content:flex-start;min-height:42px;width:100%;padding:10px 13px;border-radius:9px;font-size:13px;font-weight:600;text-align:left}
  .app-nav button.selected{background:#eeedff;color:#4e48a9}
  main{grid-column:2;grid-row:1;width:min(100%,1236px);min-width:0;padding:34px clamp(22px,3.1vw,54px) 74px}
  .site-footer{grid-column:2;grid-row:2;padding:20px clamp(22px,3.1vw,54px)}
  #screen-home,#screen-goals,#screen-calendar{scroll-margin-top:24px}
}
@media(min-width:901px) and (max-width:1170px){.home-stage{grid-template-columns:1fr}#screen-calendar{display:flex;flex-direction:column;gap:14px}#screen-calendar>.screen-heading,#screen-calendar>.calendar-card,#screen-calendar>.year-overview,#screen-calendar>.mix-card,#screen-calendar>.pattern-card{width:100%;margin:0}}
@media(max-width:900px){.site-header{position:sticky;top:0}.app-nav button{font-family:inherit}}

/* Editorial, task-first treatment: restrained typography and fewer competing panels. */
:root{color:#252c3d;background:#f8f9fc}
body,.shell{background:#f8f9fc;color:#252c3d}
.intro h1,.screen-heading h1,.section-heading h2,.dialog-head h2,
.glance-goal h2,.daily-metrics .glance h2,.goal h3,.site-brand,
.profile-overview h2,.profile-highlights h2,.profile-badges h2,
.friends-home h2,.friends-panel h2,.badge-card h2{
  font-family:"Iowan Old Style","Baskerville","Palatino Linotype",Georgia,serif;
  font-weight:600;
  letter-spacing:-.035em;
}
.site-brand{font-size:23px;letter-spacing:-.04em;color:#252d41}
.intro{margin-bottom:18px}.intro h1{font-size:clamp(36px,3.5vw,48px);line-height:1.06}
.intro .eyebrow,.eyebrow{color:#69748c;letter-spacing:.12em;font-size:10px}
.intro-subtitle{font-size:14px!important;color:#687286!important}
.section-heading h2,.dialog-head h2{font-size:23px;color:#252d41}
.screen-heading h1{font-size:36px;color:#252d41}
.glance-goal h2{font-size:25px;color:#252d41}
.daily-metrics .glance h2{font-size:22px;line-height:1.15;color:#252d41}
.daily-metrics .eyebrow,.daily-metrics .glance-plan .eyebrow,.daily-metrics .glance-recent .eyebrow{font-size:10px;letter-spacing:.12em;color:#69748c}
.daily-metrics .glance p:not(.eyebrow),.goal-link #goal-spotlight span,.daily-stat .stat span{font-size:13px;line-height:1.4;color:#687286}
.site-header,.site-footer{background:#fff;border-color:#e6e8f0}
.app-nav button{color:#535d73}.app-nav button.selected{background:#f0effc;color:#514bb2}
.header-log,.feature-action,.save-button{background:#534fb8;color:#fff}
.header-log:hover,.feature-action:hover,.save-button:hover{background:#4540a4}
.week-heading{margin:0 0 8px 2px}
.home-stage{grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:14px}
.home-actions{gap:0;justify-content:flex-start;padding:18px;border:1px solid #e5e8ef;background:#fff}
.home-actions .week-strip{padding:6px;gap:5px;border:1px solid #ebeaf4;background:#f8f8fd;border-radius:12px}
.home-actions .week-day{min-height:76px;padding:9px 2px 5px;border-radius:9px}
.home-actions .week-day span{font-size:10px}.home-actions .week-day b{font-size:18px;margin:4px auto 0}
.home-actions .feature-action{min-height:73px;margin-top:15px;padding:12px 17px;gap:13px}
.home-actions .feature-action strong{font-size:18px}.home-actions .feature-action small{font-size:12px}
.home-actions .feature-plus{width:42px;height:42px;border-radius:9px;font-size:27px}
.home-actions .feature-arrow{font-size:23px}
.companion-area{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:15px;padding:18px;border:1px solid #e5e8ef;background:#fff}
.companion-art{width:76px;height:88px;background:none}
.companion-blob,.spark{display:none}
.simple-sprite{top:8px;left:50%;width:72px;height:72px;background:#6867c9;box-shadow:none;transform:translateX(-50%);animation:companion-drift 7s ease-in-out infinite}
.sprite-face .eye{top:27px;width:6px;height:6px}.sprite-face .eye.left{left:22px}.sprite-face .eye.right{right:22px}
.sprite-face .mouth{top:40px;width:16px;height:9px;border-width:2.5px;border-top:0}
.glance-goal{text-align:left;padding:0}
.glance-goal .glance-top{justify-content:flex-start}.glance-goal .glance-top .eyebrow{font-size:10px}
.glance-goal .hero-progress-label,.glance-goal .hero-encouragement{font-size:12px!important;line-height:1.4;color:#657186}
.glance-goal .progress-track{height:7px;margin:9px 0 7px;max-width:none;background:#e8e7f7}
.glance-goal #glance-goal-action{margin:10px 0 0;min-height:39px;padding:7px 11px;font-size:12px}
.daily-metrics{grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,1fr));gap:14px;margin:14px 0 0}
.daily-metrics>.glance,.daily-stat{min-height:145px;padding:17px 18px;border:1px solid #e5e8ef;background:#fff}
.daily-stat .stats{display:flex;gap:25px;margin:13px 0 0;align-items:baseline}
.daily-stat .stats .stat{background:transparent;padding:0;min-width:0}
.daily-stat .stat{min-width:0}.daily-stat .stat strong{font-size:26px;color:#252d41;letter-spacing:-.03em}
.daily-stat .stat span{font-size:12px;max-width:none;margin-top:3px}
.daily-metrics .action-pill{min-height:39px;padding:7px 11px;font-size:12px;margin-top:auto}
.daily-metrics .glance p:not(.eyebrow){margin:5px 0 10px}
.daily-metrics>.goal-link{grid-column:1/-1;min-height:90px;display:grid;grid-template-columns:1fr auto;gap:4px 20px;align-items:center}
.daily-metrics>.goal-link .eyebrow{grid-column:1}.daily-metrics>.goal-link #goal-spotlight{grid-column:1}
.daily-metrics>.goal-link .action-pill{grid-column:2;grid-row:1/3;width:auto;margin:0}
#screen-goals,#screen-calendar{margin-top:30px;padding-top:25px;border-color:#e5e8ef}
#screen-goals>.screen-heading,#screen-calendar>.screen-heading{padding-bottom:10px}
.goals-card,.calendar-card,.mix-card,.year-overview,.pattern-card,.friends-home,.friends-panel,.account-panel{border-color:#e5e8ef;background:#fff}
.calendar-card .day{min-height:65px;gap:2px;border-radius:9px}
.calendar-card .day-bubble{width:min(100%,38px)}
.calendar-card .day-number{font-family:inherit;font-size:12px}
.calendar-card .day:hover{background:#f5f5fc!important}
.calendar-card .day-detail{background:#f7f7fc}
#screen-goals #open-goal{background:#f0effc;border-color:#d7d5ef;color:#4944a1}
.button:focus-visible,.feature-action:focus-visible,.action-pill:focus-visible,.app-nav button:focus-visible{outline:3px solid #514bb2;outline-offset:2px}
@media(min-width:901px) and (max-width:1170px){.home-stage{grid-template-columns:1fr}.daily-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-stat:first-child{grid-column:1/-1}}
@media(max-width:900px){.home-stage{grid-template-columns:1fr}.daily-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-stat:first-child{grid-column:1/-1}}
@media(max-width:740px){
  .site-header{padding:10px 14px;gap:7px 10px}.site-brand{font-size:21px}.header-log{font-size:12px}
  .app-nav{overflow-x:auto;justify-content:flex-start;gap:4px;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}
  .app-nav button{flex:none;min-width:66px;padding:7px 10px;font-size:12px}
  main{padding:19px 16px 48px}.intro{margin-bottom:15px}.intro h1{font-size:36px}
  .home-actions{padding:14px}.home-actions .week-day{min-height:68px}.home-actions .week-day b{font-size:16px}
  .companion-area{padding:15px}.daily-metrics{gap:10px;margin-top:10px}
  .daily-metrics>.glance,.daily-stat{min-height:128px;padding:15px}
  .daily-metrics .glance h2{font-size:21px}.daily-stat .stat strong{font-size:24px}
  #screen-goals,#screen-calendar{margin-top:25px;padding-top:23px}
  .calendar-card .day{min-height:56px}.calendar-card .day-bubble{width:min(100%,32px)}
}
@media(max-width:580px){
  .daily-metrics{grid-template-columns:1fr}.daily-stat:first-child{grid-column:auto}
  .daily-metrics>.glance,.daily-stat{min-height:0}.daily-metrics>.goal-link{grid-template-columns:1fr}
  .daily-metrics>.goal-link .action-pill{grid-column:1;grid-row:auto;width:100%}
  .daily-stat .stats{gap:26px}.daily-metrics .action-pill{margin-top:10px}
}
@media(max-width:740px){
  .companion-area{grid-template-columns:minmax(0,1fr) 72px;gap:10px}
  .companion-area .glance-goal{grid-column:1;grid-row:1}
  .companion-art{grid-column:2;grid-row:1}
  .glance-goal h2{font-size:23px}
}
@media(prefers-reduced-motion:reduce){.simple-sprite{animation:none}}
