
:root{
  --bg:#f7f8fb;--card:#fff;--text:#111214;--muted:#8b8d93;--accent:#f2647d;
  --accent-soft:#fde8ee;--line:#eceef2;--shadow:0 16px 44px rgba(34,37,44,.08);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:var(--text)}
body{min-height:100dvh}
button,input,select{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}
.app-shell{max-width:560px;margin:0 auto;padding:env(safe-area-inset-top) 18px calc(112px + env(safe-area-inset-bottom));min-height:100dvh}
.screen{display:none}.screen.active{display:block;animation:fade .18s ease}
@keyframes fade{from{opacity:.25;transform:translateY(3px)}to{opacity:1;transform:none}}
.hidden{display:none!important}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:900;margin-bottom:5px}
.muted{color:var(--muted)}
.ref-topbar,.overall-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:88px}
.ref-topbar h1{font-size:29px;margin:0;text-align:center}.filter-pill{justify-self:start;background:var(--accent);color:#fff;padding:11px 16px;border-radius:18px;font-weight:800}.mood-mini{justify-self:end;width:40px;height:40px;border-radius:50%;background:#ffd460;font-size:20px;box-shadow:var(--shadow)}
.date-ribbon-wrap{overflow:hidden;margin:4px -18px 20px}.date-ribbon{display:flex;gap:14px;overflow-x:auto;padding:6px 24px 12px;scrollbar-width:none;scroll-snap-type:x proximity}.date-ribbon::-webkit-scrollbar{display:none}
.ribbon-day{flex:0 0 58px;text-align:center;color:#6f7176;scroll-snap-align:center}.ribbon-day .dow{font-size:12px;margin-bottom:7px}.ribbon-day .num{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;margin:auto;border:2px solid #f5dce2;font-weight:700}.ribbon-day.selected{color:#111}.ribbon-day.selected .num{background:var(--accent);color:#fff;border-color:var(--accent)}.ribbon-day.today{border-radius:24px;background:#fff;box-shadow:0 8px 18px rgba(0,0,0,.04);padding:7px 0}
.today-list-head{display:flex;justify-content:space-between;align-items:end;margin:8px 4px 14px}.today-list-head h2{margin:0;font-size:24px}.floating-add{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;font-size:28px;box-shadow:0 10px 22px rgba(242,100,125,.3)}.floating-add.small{width:40px;height:40px;font-size:22px}
.habit-list{display:grid;gap:12px}.habit-card{background:#fff;border-radius:24px;padding:15px;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;box-shadow:0 8px 24px rgba(33,36,44,.05)}.habit-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;font-size:24px;background:color-mix(in srgb,var(--habit) 15%,white)}.habit-copy h3{margin:0 0 4px;font-size:18px}.habit-copy p{margin:0;color:var(--muted);font-size:12px}.habit-actions{display:flex;gap:7px;align-items:center}.check-btn{width:42px;height:42px;border-radius:50%;border:2px solid color-mix(in srgb,var(--habit) 70%,white);color:transparent;font-weight:900}.habit-card.done .check-btn{background:var(--habit);border-color:var(--habit);color:#fff}.count-control{display:flex;align-items:center;gap:6px;background:#f5f6f8;border-radius:14px;padding:5px}.count-control button{width:30px;height:30px;background:#fff;border-radius:10px;font-weight:900}.count-control strong{min-width:64px;text-align:center;font-size:12px}.more-btn{color:#aaa;font-size:18px}
.empty-reference{text-align:center;padding:150px 20px 40px}.rocket-art{width:220px;height:220px;border-radius:50%;display:grid;place-items:center;background:#fde9e9;margin:0 auto 28px;font-size:100px;filter:saturate(.55)}.empty-reference h2{font-size:20px;color:#85868b;margin:0 0 6px}.empty-reference p{color:#8d8e94;margin:0}
.overall-head{padding-top:12px}.round-symbol{width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff}.overall-title{font-size:24px;font-weight:800}.overall-title span{margin:0 7px}
.month-mini-card,.overall-card,.mood-card,.tracker-paper,.settings-card{background:#fff;border-radius:28px;box-shadow:var(--shadow)}
.month-mini-card{padding:18px;margin:8px 0 16px}.month-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.mini-day{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;border:1px solid #f0f0f3;font-size:12px}.mini-day.done{background:var(--accent);color:#fff}.mini-day.partial{background:var(--accent-soft)}.mini-day.out{color:#c3c4c9}
.overall-card{padding:28px 22px}.big-ring{--p:0;width:190px;height:190px;margin:0 auto;border-radius:50%;background:conic-gradient(#f7cfe0 calc(var(--p)*1%),#f6f1f4 0);display:grid;place-items:center;position:relative}.big-ring:after{content:"";position:absolute;inset:14px;background:#fff;border-radius:50%}.big-ring>div{position:relative;z-index:1;text-align:center}.big-ring strong{display:block;font-size:38px}.big-ring span{color:#9a9ba1}
.metric-2x2{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px;margin-top:36px}.metric-2x2>div{text-align:center}.metric-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin:0 auto 7px;background:#faf5ea}.metric-icon.blue{background:#eef6ff}.metric-icon.mint{background:#ebfbf7}.metric-icon.purple{background:#f7efff}.metric-2x2 strong{display:block;font-size:30px}.metric-2x2 small{display:block;color:#777;margin-top:3px}
.simple-header{padding:28px 0 10px}.simple-header h1{margin:0;font-size:30px}
.tracker-tabs-head{padding:22px 0 12px}.tracker-tabs{display:flex;gap:18px}.tracker-tabs button{font-size:18px;color:#aaa;padding:0 0 10px;position:relative}.tracker-tabs button.active{color:#333}.tracker-tabs button.active:after{content:"";position:absolute;left:25%;right:25%;bottom:0;height:4px;border-radius:99px;background:#ff7c89}
.tracker-paper{padding:18px 12px 22px;overflow:hidden}.tracker-brand{text-align:center;font-size:34px;font-weight:800;font-style:italic;color:#ff6680;margin:3px 0 20px}
.period-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:14px}.period-nav button{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff}.period-label{font-weight:800;background:linear-gradient(transparent 55%,#fff59c 55%);padding:0 7px}
.week-table{width:100%}.week-grid{width:100%;min-width:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr)) 36px;border-top:1px solid #eee;border-left:1px solid #eee}.wg-cell{min-width:0;min-height:48px;border-right:1px solid #eee;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:center;background:#fff}.wg-name{grid-column:1 / -1;justify-content:flex-start;padding:12px 10px;gap:8px;font-size:14px;font-weight:700;background:#fafafb;overflow-wrap:anywhere}.wg-name span:last-child{min-width:0}.wg-day{font-weight:700}.wg-day{font-size:11px}.wg-day span{width:min(30px,100%);height:30px;border-radius:50%;background:#fff7df;display:grid;place-items:center}.wg-box{width:calc(100% - 4px);max-width:38px;min-width:0;height:36px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;background:color-mix(in srgb,var(--habit) 18%,white);border:1px solid color-mix(in srgb,var(--habit) 40%,#eee);font-size:10px;font-weight:800}.wg-box.done{background:var(--habit);color:#fff;border-color:var(--habit)}.wg-rate{font-size:11px;font-weight:900}.week-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:18px 4px 0}.week-summary div{text-align:center}.week-summary strong{display:block;font-size:31px}.week-summary span{font-size:11px;color:#8d8e94}.week-summary div:nth-child(1) strong{color:#f54d4d}.week-summary div:nth-child(2) strong{color:#38b9f0}.week-summary div:nth-child(3) strong{color:#48d5b6}.week-summary div:nth-child(4) strong{color:#f1a354}
.month-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.habit-month-card{border:1px solid #e9eaed;border-radius:18px;padding:10px}.habit-month-title{text-align:center;font-weight:700;margin-bottom:8px}.habit-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.hm-day{aspect-ratio:1;border-radius:4px;background:#f1f1f3;font-size:8px;display:grid;place-items:center;color:#aaa}.hm-day.done{background:var(--habit);color:#fff}.habit-month-meta{display:flex;justify-content:space-between;margin-top:10px;font-size:11px}
.year-list{display:grid;gap:20px}.year-habit-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.year-habit-head strong{font-size:14px}.year-habit-head span{font-size:11px;color:#6fc}.heatmap{display:grid;grid-template-columns:repeat(53,1fr);gap:2px}.heat{aspect-ratio:1;border-radius:2px;background:#f0f1f3}.heat.done{background:var(--habit)}.heat.partial{background:color-mix(in srgb,var(--habit) 45%,white)}
.profile-bg{margin:-18px -18px 18px;padding:90px 28px 30px;background:linear-gradient(180deg,#feeef4,#fff)}.profile-row{display:flex;align-items:center;gap:16px}.profile-avatar{width:78px;height:78px;border-radius:50%;background:#fff;border:3px solid #ffd57d;display:grid;place-items:center;font-size:34px}.profile-row h1{margin:0;font-size:28px}.profile-row p{margin:4px 0;color:#7c7d83}.settings-card{padding:18px 20px;margin-bottom:16px}.settings-title{font-weight:800;margin-bottom:8px}.settings-row{min-height:58px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eee;width:100%;font-size:16px}.settings-title+.settings-row{border-top:0}.settings-row small{color:#999}.danger{color:#e55366}.file-row{position:relative}.file-row input{position:absolute;inset:0;opacity:0}
.ref-nav{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 28px),520px);height:74px;border-radius:30px;background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%);border:1px solid rgba(255,255,255,.75);box-shadow:0 12px 36px rgba(29,32,40,.12),inset 0 1px 0 rgba(255,255,255,.85);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));padding:7px 10px;z-index:40}.nav-btn{border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#55565c}.nav-btn span{font-size:22px}.nav-btn small{font-size:9px}.nav-btn.active{background:transparent;color:var(--accent)}
.ref-nav{--nav-index:0;isolation:isolate}
.ref-nav::before{content:"";position:absolute;left:10px;top:7px;bottom:7px;width:calc((100% - 20px) / 6);border-radius:22px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.85);box-shadow:0 3px 12px rgba(70,55,65,.08);box-sizing:border-box;transform:translateX(calc(var(--nav-index) * 100%));transition:transform .38s cubic-bezier(.22,.8,.25,1);pointer-events:none;z-index:0}
.ref-nav .nav-btn{position:relative;z-index:1;min-width:0;padding:0 2px;transition:color .2s}
.ref-nav .nav-btn svg{transition:transform .25s}
.ref-nav .nav-btn.active svg{transform:translateY(-2px)}
.ref-nav .nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.no-animations .ref-nav::before,.no-animations .ref-nav .nav-btn,.no-animations .ref-nav .nav-btn svg{transition:none}
@media(prefers-reduced-motion:reduce){.ref-nav::before,.ref-nav .nav-btn,.ref-nav .nav-btn svg{transition:none}}
.home-add{position:fixed;right:max(calc(50% - 250px),24px);bottom:98px;z-index:41;width:46px;height:46px}
.popover{position:fixed;z-index:55;top:76px;left:max(calc(50% - 260px),18px);background:#fff;padding:7px;border-radius:16px;box-shadow:var(--shadow);display:grid;min-width:150px}.popover button{padding:10px;text-align:left;border-radius:10px}.popover button.active{background:var(--accent-soft);color:#d74f66;font-weight:800}
.modal-backdrop{position:fixed;inset:0;background:rgba(18,18,22,.32);backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;z-index:70}.modal-sheet{width:min(100%,560px);max-height:92dvh;overflow:auto;background:#fff;border-radius:30px 30px 0 0;padding:10px 20px calc(25px + env(safe-area-inset-bottom));box-shadow:0 -18px 40px rgba(0,0,0,.12)}.modal-handle{width:42px;height:5px;border-radius:99px;background:#ddd;margin:4px auto 14px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0}.icon-btn{width:40px;height:40px;border-radius:50%;background:#f5f6f8;font-size:22px}
.field{display:block;margin:17px 0}.field>span,.field label>span{display:block;font-size:13px;font-weight:800;color:#666;margin-bottom:7px}.field input,.field select{width:100%;border:1px solid #ececf0;background:#f8f8fa;border-radius:15px;padding:13px;outline:none}.split-field{display:grid;grid-template-columns:1fr 1fr;gap:10px}.emoji-grid,.color-grid,.days-grid,.chip-grid{display:flex;gap:8px;flex-wrap:wrap}.emoji-grid button,.days-grid button,.chip-grid button{height:42px;border-radius:13px;background:#f5f6f8;padding:0 12px}.emoji-grid button{width:42px;padding:0;font-size:20px}.emoji-grid button.selected,.days-grid button.selected,.chip-grid button.selected{background:var(--accent-soft);outline:2px solid var(--accent)}.color-grid button{width:38px;height:38px;border-radius:50%;background:var(--c)}.color-grid button.selected:after{content:"✓";color:#fff;font-weight:900}.segmented{display:flex;gap:5px;background:#eceef3;border-radius:17px;padding:5px}.segmented button{flex:1;padding:11px;border-radius:13px;color:#888;font-weight:800}.segmented button.active{background:#fff;color:#111;box-shadow:0 4px 12px rgba(0,0,0,.06)}.primary,.secondary{width:100%;padding:15px;border-radius:17px;font-weight:900}.primary{background:var(--accent);color:#fff}.secondary{background:#f4f5f7;margin-top:8px}.manager-list{display:grid;gap:10px;margin-top:14px}.manager-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:#f7f8fa;border-radius:16px;padding:12px}.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);background:#222;color:#fff;border-radius:13px;padding:10px 14px;z-index:100;font-size:13px}
body.compact .habit-card{padding:10px}body.compact .habit-icon{width:42px;height:42px}
@media(max-width:560px){.month-cards{grid-template-columns:1fr}.tracker-brand{font-size:30px}}

/* 2.4.1 fixed first screen */
.week-switcher{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:4px;margin:6px 0 22px}
.week-switcher .date-ribbon-wrap{margin:0;min-width:0;overflow:visible}
.week-switcher .date-ribbon{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;padding:0;width:100%;overflow:visible}
.week-switcher .ribbon-day{min-width:0;width:100%;padding:0;display:grid;grid-template-rows:25px 48px;justify-items:center;align-items:center}
.week-switcher .ribbon-day .dow{margin:0;font-size:13px;line-height:25px;color:#77797e}
.week-switcher .ribbon-day .num{width:42px;height:42px;margin:3px 0 0;border-radius:50%;display:grid;place-items:center;border:2px solid #f3dce3;font-size:16px;font-weight:700;line-height:1}
.week-switcher .ribbon-day.today{background:transparent;box-shadow:none;padding:0}
.week-switcher .ribbon-day.today .num{outline:1px solid #f3dfe5;outline-offset:4px}
.week-switcher .ribbon-day.selected .num{background:var(--accent);border-color:var(--accent);color:#fff}
.week-nav-btn{width:28px;height:72px;padding:0;display:grid;place-items:center;border-radius:14px;color:#989aa0;font-size:29px;line-height:1}
.week-nav-btn:active{background:#eff0f3}

 .mood-reference-btn{width:46px;height:46px;padding:5px;background:#fff2ed;color:#c57d65;border:1px solid #f4ded4;box-shadow:0 4px 12px rgba(154,98,73,.06);border-radius:17px}
.mood-reference-btn svg{display:block;width:100%;height:100%}
.mood-header{padding:28px 2px 20px}
.mood-header p{font-size:14px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.mood-card{padding:24px 18px 20px;border:1px solid #f0e9e7;background:linear-gradient(155deg,#fff8f4 0%,#fff 45%)}
.mood-intro{text-align:center}
.mood-hero-face{width:84px;height:84px;padding:10px;margin:0 auto 16px;border-radius:28px;color:#c57d65;background:#fbe9df;box-shadow:0 8px 24px rgba(174,117,85,.08)}
.mood-hero-face svg{width:100%;height:100%}
.mood-date{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#a58d83;font-weight:700}
.mood-title{font-size:24px;line-height:1.2;letter-spacing:-.6px;margin:10px 0}
.mood-intro p{max-width:270px;margin:0 auto;color:var(--muted);font-size:13px;line-height:1.6}
.mood-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}
.mood-choice{position:relative;display:flex;align-items:center;gap:9px;min-height:68px;padding:10px;border:1px solid var(--line);border-radius:18px;background:#fff;text-align:left;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s}
.mood-choice:last-child{grid-column:1 / -1;justify-content:center}
.mood-face{display:block;width:40px;height:40px;flex-shrink:0;color:var(--mood-color)}
.mood-face svg{width:100%;height:100%;display:block}
.mood-choice.selected{border-color:var(--mood-color);background:color-mix(in srgb,var(--mood-color) 8%,white);box-shadow:0 0 0 1px var(--mood-color)}
.mood-tick{display:none;position:absolute;right:6px;top:4px;color:var(--mood-color);font-size:10px}
.mood-choice.selected .mood-tick{display:block}
.mood-choice:focus-visible,.mood-reference-btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(hover:hover){.mood-choice:hover{background:color-mix(in srgb,var(--mood-color) 6%,white)}}
.mood-last{text-align:center;margin-top:22px;font-size:13px;font-weight:600;color:#70837b;line-height:1.5}
.mood-hint{text-align:center;font-size:11px;color:var(--muted);margin:5px 0 0}
@media(max-width:360px){.mood-card{padding:20px 12px}.mood-choice{gap:5px;padding:8px;font-size:12px}.mood-face{width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){.mood-choice{transition:none}}


.filter-backdrop{position:fixed;inset:0;background:rgba(20,20,25,.22);z-index:53;backdrop-filter:blur(1px)}
.filter-sheet{position:fixed;z-index:55;left:50%;top:0;transform:translateX(-50%);width:min(100%,560px);padding:calc(env(safe-area-inset-top) + 55px) 20px 16px;background:rgba(249,249,251,.97);border-radius:0 0 27px 27px;box-shadow:0 12px 35px rgba(0,0,0,.12);backdrop-filter:blur(20px)}
.filter-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:center;margin:9px 0}
.filter-label{font-size:16px;color:#222;line-height:34px}
.status-segment{height:34px;display:grid;grid-template-columns:.8fr 1.35fr .8fr;background:#fff;border-radius:18px;overflow:hidden;max-width:300px}
.status-segment button{padding:0 7px;border-radius:18px;color:#676970;font-size:13px;white-space:nowrap}
.status-segment button.active{background:var(--accent);color:#fff;font-weight:700}
.filter-options{display:flex;flex-wrap:wrap;gap:7px 9px}
.filter-options button{height:32px;padding:0 13px;border-radius:17px;background:#fff;color:#686a70;font-size:13px}
.filter-options button.active{background:var(--accent);color:#fff;font-weight:700}

.ref-nav .nav-btn svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ref-nav .nav-btn span{display:none}

/* ===== 2.6.1 Overview only; first screen preserved ===== */
.overview-clean-head{
  grid-template-columns:1fr auto 1fr;
  min-height:92px;
  padding-top:8px;
}
.overview-clean-head .overall-title{
  justify-self:center;
  font-size:27px;
  font-weight:800;
  letter-spacing:-.02em;
}
.overview-calendar-card{
  padding:18px 18px 20px;
  border-radius:30px;
}
.overview-calendar-head{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  margin-bottom:12px;
}
.overview-month-title{
  text-align:center;
  font-size:20px;
  font-weight:800;
}
.overview-month-nav{
  width:40px;height:40px;display:grid;place-items:center;border-radius:50%;
  font-size:34px;line-height:1;color:#8d8f95;
}
.overview-month-nav:active{background:#f1f2f5}
.overview-weekdays{
  display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:10px;
}
.overview-weekdays span{
  text-align:center;font-size:14px;font-weight:800;color:#17181b;
}
.overview-calendar-card .month-mini-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:10px 8px;
}
.overview-calendar-card .mini-day{
  width:100%;aspect-ratio:1/1;max-width:46px;justify-self:center;border-radius:50%;
  border:2px solid #f7dfe7;background:#fff;color:#17181b;font-size:14px;
  display:grid;place-items:center;position:relative;
}
.overview-calendar-card .mini-day.out{color:#b9bbc1;border-color:#f3f3f5}
.overview-calendar-card .mini-day.partial{background:#fff2f5}
.overview-calendar-card .mini-day.done{background:var(--accent);border-color:var(--accent);color:#fff}
.overview-calendar-card .mini-day.today::after{
  content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#111;
  bottom:-8px;left:50%;transform:translateX(-50%);
}
.overall-card{margin-top:16px}

/* ===== 2.6.2 clickability fix ===== */
.screen{pointer-events:none}
.screen.active{pointer-events:auto}

.filter-backdrop.hidden,
.filter-sheet.hidden,
.modal-backdrop.hidden,
.popover.hidden{
  display:none!important;
  pointer-events:none!important;
}

.filter-backdrop,
.filter-sheet,
.modal-backdrop,
.popover{
  pointer-events:auto;
}

/* keep inactive screen content from sitting above active screen */
.screen:not(.active){
  visibility:hidden;
  position:absolute;
  inset:0;
  width:100%;
  z-index:-1;
}
.screen.active{
  visibility:visible;
  position:relative;
  z-index:1;
}

/* nav must always stay clickable */
.bottom-nav{
  z-index:100!important;
  pointer-events:auto!important;
}
.bottom-nav .nav-btn{
  pointer-events:auto!important;
}

/* Keep dialogs above navigation and their contents scrollable on short screens. */
.modal-backdrop{
  z-index:120;
}
.modal-sheet{
  min-height:0;
  max-height:92vh;
  max-height:92dvh;
  overflow-y:auto;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
}
.modal-actions{
  position:sticky;
  bottom:0;
  z-index:1;
  background:#fff;
  padding:12px 0;
}
.toast{z-index:130}

/* top first-screen controls */
#today-screen .filter-pill,
#today-screen .week-nav-btn,
#today-screen .ribbon-day,
#today-screen .mood-reference-btn,
#today-screen .floating-add,
#today-screen .habit-card button{
  pointer-events:auto!important;
  position:relative;
  z-index:2;
}

/* Shared line icons retain the same weight at every size. */
.ui-icon{width:22px;height:22px;display:inline-block;vertical-align:middle;flex-shrink:0}
.habit-icon{color:var(--habit)}
.habit-icon .ui-icon{width:27px;height:27px}
.emoji-grid button{display:grid;place-items:center;color:#78758d}
.emoji-grid button.selected{color:var(--accent)}
.wg-name>.ui-icon,.wg-name>span:first-child{color:#9290aa}
.habit-month-title .ui-icon,.year-habit-head .ui-icon{color:var(--habit);margin-right:5px}
.manager-item>span:first-child{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#eeedf6;color:#8982a7}
.rocket-art{width:140px;height:140px;background:#f5eaf0;color:#bd819a;filter:none}
.rocket-art .ui-icon{width:62px;height:62px}
.metric-icon{color:#b3975d}.metric-icon.blue{color:#7a9dbb}.metric-icon.mint{color:#68a995}.metric-icon.purple{color:#a18cbd}
.profile-avatar{color:#b39ab3}.profile-avatar .ui-icon{width:34px;height:34px}
.profile-row h1 .ui-icon{width:16px;height:16px;color:#a29aaa}
.floating-add,.icon-btn,.count-control button,.check-btn{display:inline-grid;place-items:center}
.more-btn .ui-icon{width:20px;height:20px}.period-nav button{display:grid;place-items:center}
.period-nav .ui-icon{width:18px;height:18px}.filter-pill .ui-icon{width:14px;height:14px}
.settings-row .ui-icon{width:18px;height:18px;color:#aaa}
.tracker-empty{padding:32px 12px;text-align:center;color:var(--muted)}
.tracker-empty>.ui-icon{width:44px;height:44px;color:#ac9fb9}
.tracker-empty h3{font-size:18px;color:var(--text);margin:16px 0 8px}
.tracker-empty p{font-size:13px;line-height:1.6;margin:0 0 20px}
.tracker-empty .primary{max-width:280px}

.profile-avatar{overflow:hidden;flex-shrink:0}.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-row>div:last-child{min-width:0}.profile-row h1{overflow-wrap:anywhere}
.profile-photo-actions{display:flex;gap:8px}.profile-photo-actions .secondary{font-size:13px;text-align:center;margin:0}
.photo-upload{position:relative;overflow:hidden;cursor:pointer;display:grid;place-items:center}.photo-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
button:disabled{opacity:.4;cursor:default}
.wellbeing-card{background:#fff;border:1px solid #efedf2;border-radius:26px;padding:20px;margin-bottom:16px;box-shadow:0 8px 28px rgba(40,35,55,.03)}
.wellbeing-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.wellbeing-head h2{font-size:18px;margin:0;letter-spacing:-.3px}
.history-nav{display:flex;align-items:center;gap:6px;font-size:11px;color:#8c8596}.history-nav button{font-size:22px;width:26px;height:32px}
.mood-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:18px}
.mood-day{min-width:0;border-radius:14px;padding:10px 3px;font-size:11px;color:#93909d}.mood-day.selected{background:#f7edf2;color:#b36e8b;box-shadow:inset 0 0 0 1px #efdce5}
.mood-day-track{height:65px;display:flex;align-items:flex-end;justify-content:center;margin:10px 0}.mood-day-track i{display:block;width:14px;border-radius:8px;min-height:4px}.mood-day strong{font-size:12px}
.stress-card{margin-top:16px;background:linear-gradient(130deg,#fff,#faf8fc)}.stress-score{white-space:nowrap;font-size:32px;font-weight:700;color:#a88ea9}.stress-score small{font-size:12px;font-weight:400;color:var(--muted)}
.stress-description{font-size:13px;line-height:1.6;color:var(--muted);margin:15px 0}.stress-state{display:block;font-size:14px;font-weight:600;color:#817687;margin-bottom:16px}
.stress-range{appearance:none;-webkit-appearance:none;width:100%;height:12px;margin:12px 0;border-radius:10px;background:linear-gradient(90deg,#9ed5c5,#e7d6a1,#dc9aac);cursor:pointer}
.stress-range::-webkit-slider-thumb{-webkit-appearance:none;width:27px;height:27px;border:4px solid white;border-radius:50%;background:#96809f;box-shadow:0 2px 8px #0002}
.stress-range::-moz-range-thumb{width:19px;height:19px;border:4px solid white;border-radius:50%;background:#96809f;box-shadow:0 2px 8px #0002}
.stress-scale{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:4px 0 22px}
.stress-range:focus-visible,.mood-day:focus-visible,.photo-upload:focus-within{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:360px){.wellbeing-card{padding:16px 12px}.wellbeing-head h2{font-size:16px}.history-nav{gap:2px}}

:root{--bg:#f8f7fa;--text:#292733;--muted:#93909e;--accent:#bd7e99;--accent-soft:#f5e9ef;--shadow:0 8px 30px rgba(48,37,60,.045)}
.profile-bg{padding:60px 24px 28px;background:radial-gradient(ellipse at top right,#eee3f1,transparent 70%),linear-gradient(180deg,#f9edf1,#f8f7fa)}
.profile-avatar{padding:0;border:3px solid #fff;box-shadow:0 8px 24px #7e65821a}
.profile-name-button{padding:0;text-align:left;font-size:inherit;font-weight:inherit;letter-spacing:-.7px}
.profile-name-button::after{content:'✎';font-size:16px;color:#b3a3b6;margin-left:8px}
.profile-row p{font-size:12px;line-height:1.6}.profile-editor{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.profile-editor h2{font-size:22px}.profile-editor .muted{font-size:13px;line-height:1.6}
.daily-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 20px;margin:12px 0 24px;border:1px solid #eee5ee;border-radius:26px;background:linear-gradient(115deg,#f2eaf3,#fcf7f4)}
.daily-progress h2{font-size:23px;letter-spacing:-.6px;margin:4px 0 7px}.daily-progress p{font-size:12px;color:#938696;margin:0;line-height:1.5}.daily-progress .eyebrow{font-size:9px;letter-spacing:.07em}
.daily-progress-ring{--progress:0%;position:relative;width:72px;height:72px;flex-shrink:0;border-radius:50%;background:conic-gradient(#b690ac var(--progress),#e8dce8 0);display:grid;place-items:center}
.daily-progress-ring::before{content:'';position:absolute;inset:6px;border-radius:50%;background:#faf5f7}.daily-progress-ring strong{position:relative;font-size:18px;color:#9d7899}
.tracker-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px 18px}.tracker-heading h1{font-size:25px;letter-spacing:-.7px;margin:0}.text-button{font-size:11px;color:#a57e9d;font-weight:600;padding:8px;border-radius:10px}.text-button:hover{background:#f7eef4}
.tracker-toolbar{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:8px 2px 14px;color:var(--muted);font-size:11px}
.period-label{background:#f5eff6;border-radius:10px;padding:7px 12px;font-size:13px}.period-nav button{background:#eee6f0;color:#a383a7}
.wg-day span{background:#f7f1f7}.wg-name{background:#faf8fb;color:#655d70}.week-summary strong{font-size:25px}.week-summary span{font-size:10px}
.empty-reference{padding:32px 16px 24px}.empty-reference h2{color:#7f7385;margin-top:18px}.empty-reference p{font-size:13px;line-height:1.6}.rocket-art{width:100px;height:100px;margin-bottom:20px}.rocket-art .ui-icon{width:44px;height:44px}
.habit-card{border:1px solid #f0edf3;box-shadow:0 5px 18px #40304704}.habit-copy{min-width:0}.habit-copy h3{overflow-wrap:anywhere;font-size:16px}.settings-card{border:1px solid #eeebf2}.settings-row{font-size:14px}
button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:380px){.habit-card{gap:8px;padding:12px}.habit-actions{gap:3px}.count-control{gap:2px}.count-control strong{min-width:45px;font-size:10px}.count-control button{width:25px}.habit-icon{width:38px;height:38px}.habit-copy h3{font-size:14px}.tracker-heading{gap:6px}.tracker-heading .text-button{max-width:110px}.daily-progress{padding:18px 14px}}

.profiles-list{display:grid;gap:8px;margin:12px 0}.profile-switch{display:grid;grid-template-columns:40px 1fr 22px;gap:12px;align-items:center;padding:12px;text-align:left;border:1px solid #eeebf2;border-radius:17px;min-width:0}.profile-switch[aria-pressed="true"]{background:#f8eff4;border-color:#e4ccdc}.profile-switch-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:#efe9f2;color:#a08aa5}.profile-switch strong{display:block;font-size:14px;overflow-wrap:anywhere}.profile-switch small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.profile-switch-check{color:var(--accent)}.save-card{display:flex;align-items:flex-start;gap:12px}.save-dot{width:8px;height:8px;border-radius:50%;background:#96b9a9;flex-shrink:0;margin-top:5px}.save-card strong{font-size:14px}.save-card p{font-size:12px;color:#8b8292;margin:6px 0}.save-card small{font-size:10px;color:var(--muted)}

/* Daily values are editable; tracker cells are a read-only summary. */
.wg-box{display:inline-grid;place-items:center;cursor:default}
.habit-card.count-habit{grid-template-columns:auto minmax(0,1fr)}
.count-habit .habit-actions{grid-column:1 / -1;min-width:0}
.count-habit .count-control{flex:1;min-width:0;padding:9px;gap:8px}
.count-value-label{display:flex;flex-direction:column;flex:1;min-width:0;gap:3px}
.count-value-label>span,.count-value-label>small{font-size:10px;color:var(--muted);font-weight:400;overflow-wrap:anywhere}
.count-value-input{width:100%;min-width:0;padding:5px 8px;background:white;border:1px solid #e3dce8;border-radius:9px;color:var(--text);font-size:17px;font-weight:650}
.count-control button{flex-shrink:0;min-height:36px;width:32px}
.count-control .count-save{background:var(--accent);color:white}
.count-value-input:focus{outline:2px solid var(--accent);outline-offset:1px}
@media(max-width:380px){.count-habit .count-control{gap:5px;padding:7px}.count-control button{width:29px}.count-habit .more-btn{padding:3px}}

.habit-card.count-habit.done{grid-template-columns:auto minmax(0,1fr) 42px}
.count-completion{display:grid;place-items:center;flex-shrink:0}

/* Profile-scoped appearance. */
.theme-setting{gap:12px;flex-wrap:wrap;padding:12px 0}.theme-toggle{display:flex;gap:4px;padding:4px;background:#f0edf3;border-radius:13px}.theme-toggle button{padding:9px 13px;font-size:12px;border-radius:10px;color:var(--muted)}.theme-toggle button[aria-pressed="true"]{background:var(--card);color:var(--text);box-shadow:0 2px 6px #0000000a}
:root[data-theme="dark"]{--bg:#17161d;--card:#23212b;--text:#efebf4;--muted:#b0a7bd;--accent:#ce9fbb;--accent-soft:#3e2d3a;--line:#3a3444;--shadow:0 8px 30px #0002;color-scheme:dark}
.dark-theme .habit-card,.dark-theme .settings-card,.dark-theme .overall-card,.dark-theme .month-mini-card,.dark-theme .tracker-paper,.dark-theme .wellbeing-card,.dark-theme .modal-sheet,.dark-theme .modal-actions,.dark-theme .popover{background:var(--card);border-color:var(--line)}
.dark-theme .mood-card,.dark-theme .stress-card{background:linear-gradient(140deg,var(--night-302530,#302530),var(--card));border-color:var(--line)}
.dark-theme .daily-progress{background:linear-gradient(115deg,var(--night-342a3d,#342a3d),var(--night-2a232c,#2a232c));border-color:var(--night-453648,#453648)}.dark-theme .daily-progress-ring{background:conic-gradient(var(--night-c398b9,#c398b9) var(--progress),var(--night-49394b,#49394b) 0)}.dark-theme .daily-progress-ring::before{background:var(--night-302631,#302631)}.dark-theme .daily-progress-ring strong{color:var(--night-e2bed7,#e2bed7)}
.dark-theme .profile-bg{background:radial-gradient(ellipse at top right,var(--night-3b2b42,#3b2b42),transparent 70%),linear-gradient(var(--night-251f2c,#251f2c),var(--bg))}.dark-theme .profile-avatar{background:var(--night-352b3d,#352b3d);border-color:var(--night-534059,#534059);color:var(--night-d0b7d5,#d0b7d5)}
.dark-theme .count-control,.dark-theme .segmented,.dark-theme .theme-toggle,.dark-theme .icon-btn,.dark-theme .secondary,.dark-theme .manager-item,.dark-theme .emoji-grid button,.dark-theme .days-grid button,.dark-theme .chip-grid button{background:var(--night-302b38,#302b38);color:var(--text)}
.dark-theme .count-control button,.dark-theme .count-value-input,.dark-theme .field input,.dark-theme .field select{background:var(--night-1b1922,#1b1922);border-color:var(--night-51465b,#51465b);color:var(--text)}
.dark-theme .primary,.dark-theme .count-control .count-save{background:var(--night-92617c,#92617c);color:#fff}
.dark-theme .segmented button.active,.dark-theme .emoji-grid button.selected,.dark-theme .days-grid button.selected,.dark-theme .chip-grid button.selected{background:var(--accent-soft);color:var(--text)}
.dark-theme .settings-row,.dark-theme .profile-switch,.dark-theme .habit-month-card{border-color:var(--line)}.dark-theme .profile-switch[aria-pressed="true"]{background:var(--night-362937,#362937);border-color:var(--night-75526b,#75526b)}.dark-theme .profile-switch-icon{background:var(--night-403247,#403247);color:var(--night-d0b5d6,#d0b5d6)}
.dark-theme .ref-nav{background:rgba(35,31,43,.78);border-color:#65536980;box-shadow:0 12px 36px #0005,inset 0 1px 0 #ffffff0d}.dark-theme .ref-nav::before{background:#ffffff12;border-color:#ffffff19;box-shadow:0 3px 12px #0002}.dark-theme .nav-btn{color:var(--night-b6a9c2,#b6a9c2)}.dark-theme .nav-btn.active{color:var(--accent)}
.dark-theme .filter-sheet{background:rgba(36,31,44,.98)}.dark-theme .filter-label{color:var(--text)}.dark-theme .status-segment,.dark-theme .filter-options button{background:var(--night-302a3a,#302a3a);color:var(--muted)}.dark-theme .status-segment button.active,.dark-theme .filter-options button.active{background:var(--accent-soft);color:var(--night-edc5dd,#edc5dd)}
.dark-theme .ribbon-day.today{background:var(--night-302733,#302733)}.dark-theme .week-switcher .ribbon-day .num{border-color:var(--night-544053,#544053)}.dark-theme .week-switcher .ribbon-day.selected .num{background:var(--night-92617c,#92617c);border-color:var(--night-b484a2,#b484a2);color:white}.dark-theme .week-switcher .ribbon-day .dow{color:var(--muted)}
.dark-theme .mood-choice{background:var(--night-26222d,#26222d);border-color:var(--night-463c50,#463c50);color:var(--text)}.dark-theme .mood-choice.selected{background:color-mix(in srgb,var(--mood-color) 16%,var(--night-23212b,#23212b))}.dark-theme .mood-choice:hover{background:var(--night-332c3c,#332c3c)}.dark-theme .mood-hero-face,.dark-theme .mood-reference-btn{background:var(--night-3b2e31,#3b2e31);border-color:var(--night-66494b,#66494b)}.dark-theme .mood-day.selected{background:var(--night-3d2c3d,#3d2c3d);color:var(--night-e1b5cf,#e1b5cf);box-shadow:inset 0 0 0 1px var(--night-735168,#735168)}
.dark-theme .wg-cell,.dark-theme .week-grid{background:var(--card);border-color:var(--line)}.dark-theme .wg-name,.dark-theme .wg-day span,.dark-theme .period-label,.dark-theme .period-nav button{background:var(--night-302938,#302938);color:var(--text)}.dark-theme .wg-box:not(.done){background:color-mix(in srgb,var(--habit) 18%,var(--night-23212b,#23212b));border-color:color-mix(in srgb,var(--habit) 35%,var(--night-3a3444,#3a3444))}
.dark-theme .hm-day:not(.done),.dark-theme .heat:not(.done){background:var(--night-3a3244,#3a3244);color:var(--night-c2b6d0,#c2b6d0)}.dark-theme .big-ring{background:conic-gradient(var(--night-c28ba9,#c28ba9) calc(var(--p)*1%),var(--night-3c2f40,#3c2f40) 0)}.dark-theme .big-ring:after{background:var(--card)}
.dark-theme .overview-calendar-card .mini-day{background:var(--card);color:var(--text);border-color:var(--line)}.dark-theme .overview-calendar-card .mini-day.out{color:var(--night-807589,#807589)}.dark-theme .overview-calendar-card .mini-day.partial{background:var(--night-473041,#473041)}.dark-theme .overview-calendar-card .mini-day.done{background:var(--night-92617c,#92617c);border-color:var(--night-b484a2,#b484a2);color:white}.dark-theme .overview-calendar-card .mini-day.today::after{background:var(--night-ecd6e7,#ecd6e7)}
.dark-theme .metric-icon{background:var(--night-3c3427,#3c3427)}.dark-theme .metric-icon.blue{background:var(--night-283442,#283442)}.dark-theme .metric-icon.mint{background:var(--night-273b34,#273b34)}.dark-theme .metric-icon.purple{background:var(--night-392e47,#392e47)}.dark-theme .rocket-art{background:var(--night-3c2b3b,#3c2b3b);color:var(--night-d5a6c0,#d5a6c0)}.dark-theme .toast{background:var(--night-eee7f3,#eee7f3);color:var(--night-29212f,#29212f)}
.dark-theme .habit-icon{background:color-mix(in srgb,var(--habit) 18%,var(--night-23212b,#23212b))}
.dark-theme .daily-progress p,.dark-theme .profile-row p,.dark-theme .save-card p,.dark-theme .mood-last,.dark-theme .mood-date,.dark-theme .stress-state,.dark-theme .empty-reference h2,.dark-theme .empty-reference p,.dark-theme .field>span,.dark-theme .field label>span,.dark-theme .tracker-tabs button{color:var(--muted)}.dark-theme .tracker-tabs button.active{color:var(--text)}

/* Completed habits collapse to one consistent status row. */
.habit-card.completion-collapsed,.habit-card.count-habit.done{grid-template-columns:auto minmax(0,1fr)}
.completion-collapsed .habit-actions{grid-column:1 / -1;min-width:0}
.completion-summary{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.completion-summary strong{font-size:14px;color:var(--text)}
.completion-summary .count-completion{width:36px;height:36px}
.completion-edit{display:inline-flex;align-items:center;justify-content:center;gap:5px;margin-left:auto;padding:9px 10px;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:11px}
.completion-edit .ui-icon{width:15px;height:15px}
.undo-completion-label{font-size:11px;color:var(--muted)}
@media(max-width:380px){.completion-summary{gap:7px}.completion-summary strong{font-size:12px}.completion-edit{padding:9px 7px;gap:3px}.completion-edit .ui-icon{display:none}.count-habit .habit-actions{flex-wrap:wrap}.count-habit .count-control{flex-basis:100%}}

.achievements-entry{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;width:100%;text-align:left;margin:16px 0;padding:16px;border-radius:22px;border:1px solid var(--line);background:var(--card)}.achievements-entry-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:var(--accent-soft);color:var(--accent);font-size:28px}.achievements-entry strong{display:block;font-size:15px}.achievements-entry small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.achievement-header{display:flex;align-items:center;gap:14px;padding:26px 0 20px}.achievement-header h1{font-size:28px;letter-spacing:-.6px;margin:0}.achievement-hero{padding:24px;border-radius:26px;background:linear-gradient(125deg,#f3e7ee,#f7efe1);border:1px solid var(--line)}.achievement-hero h2{font-size:28px;margin:8px 0 10px;letter-spacing:-.8px}.achievement-hero p,.achievement-rules{font-size:12px;line-height:1.7;color:var(--muted)}.achievement-hero p{margin:0}.achievement-rules{margin:18px 4px}
.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.achievement-badge{min-width:0;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:22px 14px}.achievement-medal{position:relative;display:grid;place-items:center;width:74px;height:74px;margin:0 auto 16px;border-radius:26px;color:var(--badge);background:color-mix(in srgb,var(--badge) 14%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--badge) 30%,transparent)}.achievement-medal>.ui-icon{width:34px;height:34px}.achievement-medal>span{position:absolute;bottom:-8px;right:-5px;border:3px solid var(--card);border-radius:12px;background:var(--badge);color:#fff;padding:3px 7px;font-size:11px;font-weight:800}.achievement-badge.locked .achievement-medal{filter:grayscale(1);opacity:.5}.achievement-status{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.unlocked .achievement-status{color:var(--badge)}.achievement-badge h3{font-size:15px;margin:8px 0;overflow-wrap:anywhere}.achievement-badge p{font-size:11px;color:var(--muted);margin:0}.achievement-progress{height:5px;background:var(--line);border-radius:5px;overflow:hidden;margin:15px 0 10px}.achievement-progress i{height:100%;display:block;background:var(--badge);border-radius:5px}.achievement-badge small{display:block;min-height:30px;font-size:10px;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}.dark-theme .achievement-hero{background:linear-gradient(125deg,#362937,#322c24)}

.day-readonly-notice{padding:12px 14px;border-radius:14px;background:var(--accent-soft);color:var(--muted);font-size:12px;line-height:1.5}
.history-habit-status{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.history-habit .habit-actions{grid-column:1 / -1}.history-habit-status .count-completion{width:34px;height:34px}

.vacation-button{grid-column:1 / -1;justify-self:start;padding:6px 0;font-size:11px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.vacation-habit{grid-template-columns:auto minmax(0,1fr);border-style:dashed}.vacation-habit .habit-actions{grid-column:1 / -1}
.vacation-status{display:flex;align-items:center;gap:9px;font-size:12px;color:#aa9063}.vacation-status .ui-icon{width:22px;height:22px}
.vacation-mark,.dark-theme .hm-day.vacation-mark,.dark-theme .heat.vacation-mark{background:var(--accent-soft);color:var(--accent);border-radius:6px}.vacation-mark .ui-icon{width:19px;height:19px}

.habit-journal-link{font:inherit;font-weight:inherit;text-align:left;padding:0;overflow-wrap:anywhere}.habit-journal-link:hover{color:var(--accent)}.journal-card-caption{display:block;font-size:10px;color:var(--muted);margin-top:5px}.habit-card{cursor:pointer}.journal-sheet{padding-top:14px}.journal-sheet h2{font-size:23px;overflow-wrap:anywhere}.journal-hint,.journal-empty{font-size:12px;color:var(--muted);line-height:1.6}.journal-entries{display:grid;gap:10px;margin:20px 0}.journal-entry{padding:14px;border-radius:16px;background:var(--bg);border:1px solid var(--line)}.journal-entry-head{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--accent)}.journal-entry p{font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0}.journal-entry small{font-size:10px;color:var(--muted)}.journal-entry .text-button{display:block;margin-left:auto}.field textarea{width:100%;resize:vertical;min-height:100px;font:inherit;padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--bg);color:var(--text)}.field textarea:focus{outline:2px solid var(--accent)}.journal-contribute{display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.5;padding:10px 0}.journal-contribute input{width:18px;height:18px;flex-shrink:0;accent-color:var(--accent)}

#completion-history-screen .achievement-header h1{font-size:25px}.history-filters{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px}.history-filters input{min-width:0}.history-date-heading{font-size:14px;color:var(--muted);margin:22px 4px 10px}.completed-history-row{display:flex;align-items:center;gap:12px;width:100%;padding:15px;margin-bottom:10px;border-radius:21px;border:1px solid var(--line);background:var(--card);text-align:left}.history-row-copy{flex:1;min-width:0}.history-row-copy strong{display:block;font-size:15px;overflow-wrap:anywhere}.history-row-copy small{display:block;font-size:11px;color:var(--muted);line-height:1.6;margin-top:5px}.history-row-check{color:var(--accent)}
@media(max-width:360px){.history-filters{grid-template-columns:1fr}.history-filters .field{margin:6px 0}#completion-history-screen .achievement-header h1{font-size:21px}}

.diary-entry-link{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;width:100%;padding:14px 16px;margin:0 0 20px;border:1px solid var(--line);border-radius:20px;background:var(--card);text-align:left}.diary-entry-link>span:first-child{font-size:26px;color:var(--accent)}.diary-entry-link strong{display:block;font-size:14px}.diary-entry-link small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:4px}
.diary-intro{padding:22px;border-radius:26px;background:var(--accent-soft);margin:0 0 22px}.diary-intro p{font-size:15px;line-height:1.7;margin:0 0 20px;color:var(--text)}.diary-feed{display:grid;gap:16px}.diary-post{padding:22px;background:var(--card);border:1px solid var(--line);border-radius:26px}.diary-post-date{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;flex-wrap:wrap}.diary-post-date .ui-icon{width:17px;height:17px}.diary-post-date>span{margin-left:auto;color:var(--accent)}.diary-post-section{margin-top:20px}.diary-post-section h2{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}.diary-post-section p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.8}.diary-post-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);margin-top:20px;padding-top:8px}.diary-editor h2{font-size:22px}.diary-editor textarea{line-height:1.6}.diary-editor .modal-actions{padding-bottom:10px}

#oneoff-screen .achievement-header h1{font-size:25px}.task-weekdays,.task-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.task-weekdays{margin:18px 0 8px;text-align:center;font-size:11px;color:var(--muted)}.task-day{height:43px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:13px}.task-day.outside{opacity:.4}.task-day.today{box-shadow:inset 0 0 0 1px var(--accent)}.task-day.selected{background:var(--accent-soft);color:var(--accent)}.task-day i{width:5px;height:5px;border-radius:50%;background:#c6897b}.task-day i.all-done{background:#83a593}.task-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.task-toolbar .primary{width:auto;margin-left:auto;padding:12px 16px;font-size:12px}.oneoff-card{background:var(--card);border:1px solid var(--line);padding:18px;border-radius:22px;margin-bottom:12px}.oneoff-heading{display:flex;align-items:center;gap:12px}.oneoff-heading>div{min-width:0}.oneoff-heading h3{margin:0 0 5px;font-size:16px;overflow-wrap:anywhere}.oneoff-heading small{font-size:11px;color:var(--muted)}.oneoff-check{width:32px;height:32px;flex-shrink:0;border:1px solid var(--accent);border-radius:10px;display:grid;place-items:center}.oneoff-card.done .oneoff-check{background:var(--accent-soft);color:var(--accent)}.oneoff-card.done h3{text-decoration:line-through;color:var(--muted)}.oneoff-card>p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:var(--muted);line-height:1.6}
/* Installed web app and text-only personal feed. */
html { overscroll-behavior: none; touch-action: pan-x pan-y; }
body { overscroll-behavior-y: none; -webkit-tap-highlight-color: transparent; }
input,select,textarea { font-size: max(16px,1em); }
.auth-locked > :not(.auth-gate):not(script) { display: none !important; }
.auth-gate { min-height: 100dvh; display: grid; place-items: center; padding: max(24px,env(safe-area-inset-top)) 24px; background: var(--bg,#f5f6f8); }
.auth-card { width: min(100%,380px); display: grid; gap: 20px; padding: 30px; border-radius: 28px; background: var(--card,#fff); box-shadow: 0 20px 70px #26334212; }
.auth-card h1,.auth-card p { margin:0; }
.auth-card p,.auth-card small { color:var(--muted,#727683); line-height:1.5; }
.auth-card select { width:100%; padding:14px; border:1px solid #aab0b440; border-radius:14px; background:transparent; color:inherit; }
.feed-author { display:flex; gap:12px; align-items:center; margin-bottom:16px; }
.feed-author small { display:block; color:var(--muted,#727683); margin-top:3px; }
.feed-avatar { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; overflow:hidden; background:#bd7e991a; }
.feed-avatar img { width:100%;height:100%;object-fit:cover; }
/* Account settings and welcome screen */
.settings-screen .profile-bg{padding:28px 20px;margin-bottom:24px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,var(--accent-soft),var(--card));}
.settings-screen .profile-row{gap:16px}.settings-screen .profile-row>div{min-width:0}.settings-screen .profile-row p{font-size:12px;line-height:1.5;color:var(--muted)}
.settings-screen .profile-avatar{width:68px;height:68px;flex-shrink:0;border:4px solid var(--card);box-shadow:0 5px 16px #00000008}
.settings-screen .profile-name-button{overflow-wrap:anywhere;text-align:left}
.settings-screen .settings-card{padding:20px;margin-bottom:16px;border:1px solid var(--line);border-radius:24px;box-shadow:0 4px 18px #00000002}
.settings-screen .settings-title{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.settings-screen .settings-row{min-height:56px;gap:12px;font-size:14px;text-align:left;border-color:var(--line)}
.settings-screen .settings-row>span:first-child{min-width:0}.settings-screen .settings-row small{font-size:11px;line-height:1.5}
.account-identity{display:flex;align-items:center;gap:12px;padding:2px 0 18px}.account-identity>div{min-width:0;flex:1}
.account-identity .profiles-list{font-size:17px;font-weight:650;margin:0 0 4px;overflow-wrap:anywhere}.account-identity small{font-size:12px;color:var(--muted)}
.account-symbol,.settings-action-icon,.save-symbol{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:14px;background:var(--accent-soft);color:var(--accent)}
.account-label{font-size:11px;background:var(--bg);color:var(--muted);padding:6px 10px;border-radius:20px}
.settings-screen .settings-action{display:flex;width:100%;padding:14px 0}.settings-action-icon{width:36px;height:36px;background:var(--bg);color:var(--muted)}
.settings-action-copy{flex:1;min-width:0}.settings-action-copy strong{font-size:14px;font-weight:550;display:block}.settings-action-copy small{display:block;color:var(--muted);margin-top:4px}.settings-chevron{color:var(--muted);font-size:22px}
.settings-screen .save-card{display:flex;align-items:center;gap:12px;background:color-mix(in srgb,var(--card) 92%,#7da38e)}
.save-symbol{background:#7da38e18;color:#6d9981}.save-copy{min-width:0;flex:1}.save-copy strong{font-size:13px;font-weight:600}.settings-screen .save-copy p{font-size:11px;line-height:1.5;overflow-wrap:anywhere;margin:5px 0 0;color:var(--muted)}
.sync-button{width:42px;height:42px;flex-shrink:0;border-radius:14px;background:var(--card);color:var(--muted);display:grid;place-items:center}
.data-settings summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font-size:14px;font-weight:550;list-style:none;min-height:28px}.data-settings summary::-webkit-details-marker{display:none}.data-settings[open] summary>span:last-child{transform:rotate(180deg)}
.settings-description{font-size:12px;line-height:1.6;color:var(--muted);margin:12px 0}.settings-screen .theme-setting{flex-wrap:wrap}.settings-screen #resetBtn{font-size:13px;color:#c36f7b}
.auth-gate{padding:40px 22px max(28px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 15% 10%,#f2dfe7 0,transparent 50%),radial-gradient(ellipse at 100% 75%,#e2ece6 0,transparent 45%),#f8f7f5;color:#34343c;}
.auth-layout{width:min(100%,420px)}.auth-brand{display:flex;align-items:center;justify-content:center;gap:10px;font-size:17px;font-weight:650;letter-spacing:-.4px}.auth-brand img{border-radius:10px}
.auth-intro{text-align:center;margin:36px 0 26px}.auth-eyebrow{font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:#927583}.auth-intro h1{font-size:30px;line-height:1.22;letter-spacing:-1.1px;font-weight:650;margin:13px 0}.auth-intro h1 span{color:#a5788d}.auth-intro p{font-size:14px;line-height:1.7;color:#818087;margin:0}
.auth-card{width:100%;padding:28px;gap:19px;background:#ffffffd9;border:1px solid #fff;border-radius:28px;box-shadow:0 18px 55px #7861710b;color:#34343c}
.auth-form-heading h2{font-size:20px;letter-spacing:-.5px;margin:0 0 7px}.auth-form-heading p{font-size:12px;color:#818087;line-height:1.6}
.auth-card .field{margin:0;display:grid;gap:8px}.auth-card .field>span{font-size:12px;font-weight:550;color:#65636e}.auth-input-wrap{position:relative;min-width:0}.auth-input-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#a99aa2;pointer-events:none;display:flex}.auth-input-icon svg{width:19px;height:19px}
.auth-card input,.auth-card select{display:block;width:100%;min-width:0;min-height:54px;padding:14px 14px 14px 44px;font-size:16px;border-radius:15px;background:#f6f5f7;border:1px solid #eae7ec;color:#34343c;outline:none}.auth-card input::placeholder{color:#aaa5ae;font-size:14px}.auth-card input:focus,.auth-card select:focus{border-color:#b6889e;box-shadow:0 0 0 3px #b6889e18}
.auth-card .auth-submit{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:17px 20px;min-height:54px;border-radius:16px;background:#a97890;color:#fff;font-size:14px;font-weight:600;box-shadow:0 6px 18px #a9789025}.auth-submit:disabled{opacity:.6;cursor:wait}.auth-submit svg{width:19px;height:19px}
.auth-card #authStatus{font-size:12px;line-height:1.6;color:#ad566c;overflow-wrap:anywhere}.auth-card #authStatus:empty{display:none}.auth-private{display:flex;align-items:center;justify-content:center;gap:7px;color:#93909a;font-size:10px}.auth-private svg{width:15px;height:15px}.auth-footer{text-align:center;color:#9b969f;font-size:10px;line-height:1.6;margin:23px 0 0}
.settings-screen button:focus-visible,.data-settings summary:focus-visible,.auth-card button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(hover:hover){.settings-screen button.settings-row:hover{color:var(--accent)}.sync-button:hover{color:var(--accent)}.auth-submit:hover{filter:brightness(1.05)}}
@media(max-width:360px){.auth-gate{padding:25px 16px}.auth-intro{margin:26px 0 22px}.auth-intro h1{font-size:26px}.auth-card{padding:22px}.settings-screen .settings-card{padding:16px}.settings-screen .profile-bg{padding:22px 16px}.settings-screen .profile-avatar{width:56px;height:56px}}

:root[data-theme="dark-aubergine"]{--bg:#1e1425;--card:#2c2034;--text:#f4eaf7;--muted:#bdaac6;--accent:#d6a4da;--accent-soft:#493050;--line:#493751;--shadow:0 8px 30px #0003;color-scheme:dark}
:root[data-theme="navy-blue"]{--bg:#101b2c;--card:#192940;--text:#eaf1fc;--muted:#a3b7d1;--accent:#97bdf4;--accent-soft:#273f60;--line:#304763;--shadow:0 8px 30px #0003;color-scheme:dark}
.theme-setting .theme-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:6px}
.theme-toggle button{min-height:44px;display:flex;align-items:center;justify-content:flex-start;gap:8px;text-align:left}
.theme-toggle button::before{content:"";width:13px;height:13px;flex-shrink:0;border-radius:50%;border:1px solid #ffffff40;background:#f7f8fb}
.theme-toggle button[data-theme="dark"]::before{background:#17161d}
.theme-toggle button[data-theme="dark-aubergine"]::before{background:#664273}
.theme-toggle button[data-theme="navy-blue"]::before{background:#315789}
:root[data-theme="dark-aubergine"]{--night-1b1922:#211526;--night-23212b:#2b1b31;--night-251f2c:#2b1b30;--night-26222d:#2d1c33;--night-273b34:#38233f;--night-283442:#3c2644;--night-29212f:#2d1d33;--night-2a232c:#2d1c33;--night-302530:#301f36;--night-302631:#311f38;--night-302733:#33203a;--night-302938:#37233e;--night-302a3a:#392440;--night-302b38:#38243f;--night-332c3c:#3b2543;--night-342a3d:#3a2542;--night-352b3d:#3b2543;--night-362937:#36233d;--night-392e47:#422a4b;--night-3a3244:#432a4c;--night-3a3444:#442b4d;--night-3b2b42:#3e2746;--night-3b2e31:#3c2643;--night-3c2b3b:#3a2542;--night-3c2f40:#3f2847;--night-3c3427:#38243f;--night-3d2c3d:#3c2643;--night-403247:#452c4d;--night-453648:#472d51;--night-463c50:#4f325a;--night-473041:#432b4c;--night-49394b:#4b3054;--night-51465b:#5b3a67;--night-534059:#573762;--night-544053:#54355f;--night-66494b:#633f70;--night-735168:#6f477d;--night-75526b:#71487f;--night-807589:#905ba3;--night-92617c:#8a579c;--night-b484a2:#a980b8;--night-b6a9c2:#bfa1ca;--night-c28ba9:#b28ebf;--night-c2b6d0:#cbb2d4;--night-c398b9:#b897c4;--night-d0b5d6:#cdb5d6;--night-d0b7d5:#ceb6d6;--night-d5a6c0:#c6abd0;--night-e1b5cf:#d2bcda;--night-e2bed7:#d6c3dd;--night-ecd6e7:#e5d9e9;--night-edc5dd:#decee4;--night-eee7f3:#efe8f2}
:root[data-theme="navy-blue"]{--night-1b1922:#111b2a;--night-23212b:#162336;--night-251f2c:#152236;--night-26222d:#172438;--night-273b34:#1c2d46;--night-283442:#1e304c;--night-29212f:#172539;--night-2a232c:#172438;--night-302530:#18273d;--night-302631:#19283e;--night-302733:#1a2940;--night-302938:#1c2c45;--night-302a3a:#1c2e48;--night-302b38:#1c2d47;--night-332c3c:#1e304a;--night-342a3d:#1d2f4a;--night-352b3d:#1e304a;--night-362937:#1b2c45;--night-392e47:#213554;--night-3a3244:#223654;--night-3a3444:#223756;--night-3b2b42:#1f324e;--night-3b2e31:#1e304b;--night-3c2b3b:#1d2f4a;--night-3c2f40:#20334f;--night-3c3427:#1c2d47;--night-3d2c3d:#1e304b;--night-403247:#223757;--night-453648:#243a5a;--night-463c50:#284064;--night-473041:#223655;--night-49394b:#263c5e;--night-51465b:#2e4a73;--night-534059:#2c466d;--night-544053:#2a446a;--night-66494b:#32507d;--night-735168:#385a8c;--night-75526b:#395b8e;--night-807589:#4874b6;--night-92617c:#456fae;--night-b484a2:#7193c7;--night-b6a9c2:#96afd5;--night-c28ba9:#809fcd;--night-c2b6d0:#a9bedd;--night-c398b9:#8aa6d1;--night-d0b5d6:#adc1de;--night-d0b7d5:#adc1df;--night-d5a6c0:#a1b8da;--night-e1b5cf:#b5c7e1;--night-e2bed7:#bccce4;--night-ecd6e7:#d4deee;--night-edc5dd:#c9d6e9;--night-eee7f3:#e5ebf5}

.push-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px}.push-actions .primary{width:100%;font-size:14px}.push-actions .text-button{min-height:44px}.push-actions button:disabled{opacity:.45;cursor:default}.push-settings input[type="time"]{max-width:135px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px}.push-settings input[type="checkbox"]{accent-color:var(--accent);width:20px;height:20px;flex-shrink:0}
.focus-card,.weekly-review{padding:22px;border-radius:24px;border:1px solid var(--line);background:var(--card);margin:0 0 22px}.focus-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.focus-heading h2,.weekly-review h2{font-size:20px;letter-spacing:-.5px;margin:7px 0}.focus-heading>span{padding:8px 12px;border-radius:14px;color:var(--accent);background:var(--accent-soft);font-size:13px}.focus-card p,.weekly-review p{font-size:12px;color:var(--muted);line-height:1.6}.focus-picks{display:grid;gap:8px;margin:16px 0}.focus-pick{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg);border-radius:14px}.focus-pick svg{flex-shrink:0;color:var(--accent)}.focus-pick strong{font-size:13px;flex:1;overflow-wrap:anywhere}.focus-pick small{font-size:10px;color:var(--muted)}.focus-chooser summary{cursor:pointer;color:var(--accent);font-size:13px;padding:10px 0;min-height:44px}.focus-option{display:block;width:100%;padding:12px;margin-top:6px;border:1px solid var(--line);border-radius:12px;text-align:left;font-size:13px;overflow-wrap:anywhere}.focus-option[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent)}.review-score{display:flex;gap:14px;align-items:center;margin:18px 0}.review-score strong{font-size:36px;letter-spacing:-1px;color:var(--accent)}.review-score span,.weekly-review>small{font-size:11px;color:var(--muted)}.review-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin:22px 0}.review-day{text-align:center;font-size:10px;color:var(--muted)}.review-track{height:65px;background:var(--bg);border-radius:7px;overflow:hidden;display:flex;align-items:flex-end;margin:8px 0}.review-track i{display:block;width:100%;background:var(--accent);border-radius:7px}.manager-tools{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px}.manager-tools input,.manager-tools select{min-width:0;width:100%}@media(max-width:360px){.manager-tools{grid-template-columns:1fr}.focus-card,.weekly-review{padding:18px}.review-bars{gap:6px}}

/* Lightweight, nonblocking feedback; no timers or particles outside the toast. */
.toast,.dark-theme .toast{width:max-content;max-width:calc(100vw - 32px);bottom:calc(112px + env(safe-area-inset-bottom));padding:14px 18px;border-radius:20px;background:var(--card);color:var(--text);border:1px solid var(--line);box-shadow:0 12px 40px #0002;pointer-events:none;line-height:1.5}
.toast-success{display:flex;align-items:center;gap:13px;min-width:min(300px,calc(100vw - 32px));overflow:visible}
.toast-emblem{position:relative;flex-shrink:0;width:44px;height:44px;display:grid;place-items:center;border-radius:15px;background:var(--accent-soft);color:var(--accent)}
.toast-copy{display:block;min-width:0}.toast-copy strong{display:block;font-size:14px;font-weight:650;overflow-wrap:anywhere}.toast-copy small{display:block;font-size:11px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}
.toast-sparkles{position:absolute;left:39px;top:50%;width:1px;height:1px;pointer-events:none}.toast-sparkles i{position:absolute;width:5px;height:5px;border-radius:2px;background:var(--accent);opacity:0;transform:rotate(calc(var(--i)*45deg)) translateX(24px)}
.toast-enter{animation:feedback-arrive 420ms cubic-bezier(.16,1,.3,1) both,feedback-leave 200ms ease-in 2200ms forwards}
.toast-success.toast-enter{animation-duration:480ms,250ms;animation-delay:0ms,2950ms}
.toast-enter .toast-emblem{animation:feedback-bounce 600ms cubic-bezier(.2,.9,.25,1.25) both}
.toast-enter .toast-emblem svg path{stroke-dasharray:100;stroke-dashoffset:100;animation:feedback-draw 700ms ease-out 120ms forwards}
.toast-enter .toast-sparkles i{animation:feedback-spark 850ms ease-out calc(var(--i)*25ms) both}
.modal-backdrop:not(.hidden) .modal-sheet{animation:sheet-arrive 280ms cubic-bezier(.2,.8,.2,1) both}
.screen.active{animation:screen-arrive 240ms ease-out both}
@keyframes feedback-arrive{from{opacity:0;transform:translate(-50%,18px) scale(.94)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes feedback-leave{to{opacity:0;transform:translate(-50%,8px) scale(.97)}}
@keyframes feedback-bounce{0%{transform:scale(.65) rotate(-12deg)}65%{transform:scale(1.1) rotate(3deg)}100%{transform:scale(1) rotate(0)}}
@keyframes feedback-draw{to{stroke-dashoffset:0}}
@keyframes feedback-spark{0%{opacity:0;transform:rotate(calc(var(--i)*45deg)) translateX(18px) scale(.3)}25%{opacity:.8}100%{opacity:0;transform:rotate(calc(var(--i)*45deg)) translateX(62px) scale(.2)}}
@keyframes sheet-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes screen-arrive{from{opacity:.6}to{opacity:1}}
.no-animations .toast,.no-animations .toast *,.no-animations .modal-sheet,.no-animations .screen{animation:none!important}.no-animations .toast-sparkles{display:none}.no-animations .toast-emblem svg path{stroke-dashoffset:0}
@media(prefers-reduced-motion:reduce){.toast,.toast *,.modal-backdrop:not(.hidden) .modal-sheet,.screen.active{animation:none!important}.toast-sparkles{display:none}.toast-emblem svg path{stroke-dashoffset:0}}
#todayHabitList .habit-card{animation:habit-arrive 260ms ease-out both}
@keyframes habit-arrive{from{opacity:.7;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.no-animations #todayHabitList .habit-card{animation:none}
@media(prefers-reduced-motion:reduce){#todayHabitList .habit-card{animation:none}}

.push-invite{margin:18px 0 24px;padding:22px;border-radius:24px;border:1px solid var(--line);background:linear-gradient(130deg,var(--accent-soft),var(--card));animation:habit-arrive 300ms ease-out both}.push-invite-heading{display:flex;align-items:center;gap:12px}.push-invite-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;background:var(--card);color:var(--accent);border-radius:15px}.push-invite h2{font-size:19px;margin:6px 0 0;letter-spacing:-.4px}.push-invite p{font-size:12px;color:var(--muted);line-height:1.7}.push-invite-actions{display:flex;gap:12px;align-items:center}.push-invite-actions .primary{width:auto;flex:1;font-size:14px}.push-invite-actions .text-button{min-height:44px;padding:10px 14px}.push-invite button:disabled{opacity:.6;cursor:wait}#pushInviteStatus:empty{display:none}.no-animations .push-invite{animation:none}@media(prefers-reduced-motion:reduce){.push-invite{animation:none}}
/* Consistent form rhythm and bounded native date inputs. */
#oneOffForm>.field,#oneOffForm>.split-field{margin:18px 0}#oneOffForm>.split-field>.field{margin:0;min-width:0}#oneOffForm .split-field{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}#oneOffForm .field>span{min-height:18px;line-height:1.4}#oneOffForm input,#oneOffForm textarea,.history-filters input{box-sizing:border-box;min-width:0;max-width:100%;min-height:48px}.history-filters{gap:14px;align-items:end}.history-filters .field{min-width:0;margin:12px 0}.history-filters input[type="date"],#oneOffForm input[type="date"],#oneOffForm input[type="time"]{display:block;width:100%;-webkit-appearance:none;appearance:none}input[type="date"]::-webkit-date-and-time-value{text-align:left;min-height:1.25em}@media(max-width:390px){.history-filters{grid-template-columns:1fr;gap:0}#oneOffForm .split-field{grid-template-columns:1fr;gap:18px}}
.shared-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:20px;margin:16px 0}.shared-card h2{font-size:19px;margin:0}.shared-task{display:flex;align-items:center;gap:10px;padding:15px 0;border-bottom:1px solid var(--line)}.shared-task>div{flex:1;min-width:0}.shared-task strong{font-size:14px;overflow-wrap:anywhere}.shared-task small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.shared-task .text-button{font-size:11px}.shared-task-form{margin:18px 0}.shared-task-form input{min-width:0;max-width:100%;min-height:48px}#sharingStatus{font-size:13px;line-height:1.6;color:var(--muted)}#sharingBody[aria-busy="true"] button{pointer-events:none;opacity:.6}#sharing-screen .overall-head{gap:10px;flex-wrap:wrap}
.leaderboard-link{display:grid;grid-template-columns:1fr auto;gap:6px;width:100%;padding:20px;text-align:left;background:var(--accent-soft);border-radius:22px;color:var(--text)}.leaderboard-link>span{font-weight:650}.leaderboard-link small{color:var(--muted);font-size:12px}.leaderboard-link b{grid-column:2;grid-row:1 / 3;align-self:center}.leaderboard-intro{background:var(--accent-soft);border-radius:26px;padding:24px;margin:18px 0}.leaderboard-intro h2{font-size:23px;margin:10px 0}.leaderboard-intro p{font-size:13px;line-height:1.7;color:var(--muted)}.leaderboard-player{display:flex;align-items:center;gap:14px;padding:18px;margin:10px 0;border:1px solid var(--line);border-radius:20px;background:var(--card)}.leaderboard-player.is-self{border-color:var(--accent);background:var(--accent-soft)}.leaderboard-place{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:12px;color:var(--accent);background:var(--bg);font-weight:700}.leaderboard-player>div{min-width:0}.leaderboard-player strong{display:block;overflow-wrap:anywhere}.leaderboard-player small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.leaderboard-score{margin-left:auto;text-align:right;flex-shrink:0}.leaderboard-score strong{font-size:25px;color:var(--accent)}#leaderboard-screen .overall-head{gap:8px;flex-wrap:wrap}#leaderboard-screen h1{font-size:22px}

.habit-friend-invite{grid-column:1/-1;justify-self:start;min-height:36px;font-size:11px;color:var(--accent);padding:6px 0}.shared-tracker-panel{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.shared-tracker-panel h2,#sharedToday h2{font-size:19px}.invitation-message{width:92%;padding:18px;border:1px solid var(--line);border-radius:22px;background:var(--card);margin:16px 0}.invitation-message.outgoing{margin-left:auto;background:var(--accent-soft);border-bottom-right-radius:6px}.invitation-message.incoming{border-bottom-left-radius:6px}.invitation-message h3{font-size:17px;margin:10px 0;overflow-wrap:anywhere}.invitation-message small,.invitation-message p{font-size:12px;line-height:1.6;color:var(--muted)}.invitation-message strong{display:block;font-size:12px;color:var(--accent)}.invitation-message button{margin:10px 12px 0 0;min-height:36px}#friend-chat-screen .overall-head{gap:8px;flex-wrap:wrap}#meetingInviteForm select,#meetingInviteForm input{min-width:0;max-width:100%}.shared-card h2 .text-button{display:block;font-size:12px;min-height:44px}#sharedToday .text-button{display:block;min-height:44px}.ref-nav .nav-btn small{font-size:9px}@media(max-width:360px){.ref-nav{width:calc(100% - 16px);padding-left:6px;padding-right:6px}.ref-nav::before{left:6px;width:calc((100% - 12px)/6)}.ref-nav .nav-btn small{font-size:8px}.ref-nav .nav-btn svg{width:22px;height:22px}}
/* Social spaces: calm hierarchy, compact secondary actions and bounded form controls. */
#sharing-screen,#friend-chat-screen,#leaderboard-screen{padding-top:10px}
#sharing-screen>.overall-head,#friend-chat-screen>.overall-head,#leaderboard-screen>.overall-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:8px 0 24px}
#sharing-screen>.overall-head h1,#friend-chat-screen>.overall-head h1,#leaderboard-screen>.overall-head h1{font-size:20px;letter-spacing:-.6px;margin:0;text-align:center;overflow-wrap:anywhere}
#sharing-screen>.overall-head button,#friend-chat-screen>.overall-head button,#leaderboard-screen>.overall-head button{min-height:44px;font-size:11px;font-weight:500;padding:6px 0;color:var(--muted)}
#sharingBody>.settings-description{margin:20px 4px;line-height:1.8;font-size:12px}
#inviteForm{padding:22px;background:var(--card);box-shadow:none}#inviteForm h2{font-size:19px;letter-spacing:-.4px;margin:8px 0}#inviteForm .field{margin:20px 0 14px}#inviteForm .primary{font-size:13px;font-weight:600;padding:14px}
.leaderboard-link{padding:22px 24px;border:1px solid var(--line);background:linear-gradient(120deg,var(--accent-soft),var(--card));border-radius:24px}.leaderboard-link>span{font-size:17px;letter-spacing:-.3px}.leaderboard-link b{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--card);color:var(--accent)}
.friend-card{padding:22px;border-radius:24px;box-shadow:0 4px 18px #00000003}.friend-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}.friend-heading h2{flex:1;min-width:0;overflow-wrap:anywhere;font-size:16px;letter-spacing:-.3px}.friend-monogram{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:19px;font-weight:650;flex-shrink:0}.friend-status{font-size:9px;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:5px 8px;max-width:105px;overflow-wrap:anywhere}
.friend-chat-button{display:block;width:100%;padding:14px 16px;min-height:48px;border-radius:14px;background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:13px;text-align:left}.friend-chat-button::after{content:'›';float:right}.friend-card>.settings-description{font-size:11px;margin:12px 0 18px}.friend-task-details{border-top:1px solid var(--line);padding-top:4px;margin-top:16px}.friend-task-details summary{cursor:pointer;min-height:48px;align-content:center;font-size:12px;color:var(--muted)}.friend-card>.text-button:last-child{font-size:10px;color:var(--muted);min-height:44px;display:block;margin:8px auto -8px;font-weight:400}.shared-task-form .primary{font-size:12px;font-weight:600}
#friend-chat-screen>#inviteHabitFriend{font-size:13px;font-weight:600;border-radius:16px;padding:15px}#meetingMessages{padding:6px 0 20px}.invitation-message{padding:20px;border-radius:22px;width:90%;box-shadow:0 3px 14px #00000003}.invitation-message>small{font-size:10px;letter-spacing:.02em}.invitation-message h3{font-size:20px;letter-spacing:-.5px;margin:14px 0 8px}.invitation-message .invitation-date{font-size:12px;margin-bottom:16px}.invitation-message>strong{display:table;padding:6px 10px;background:var(--card);border:1px solid var(--line);border-radius:20px;font-size:10px;font-weight:500}.invitation-message.incoming>strong{background:var(--bg)}.invitation-message[data-status="declined"],.invitation-message[data-status="cancelled"]{background:var(--bg);box-shadow:none}.invitation-message button{min-height:44px;padding:8px 10px;border-radius:12px;font-size:12px;margin-right:6px}.invitation-message button:hover{background:var(--card)}
#meetingInviteForm,#passwordForm{box-sizing:border-box;min-width:0;width:min(100%,560px);max-width:100vw;padding:24px 22px calc(24px + env(safe-area-inset-bottom));overflow-x:hidden}#meetingInviteForm .modal-head,#passwordForm .modal-head{gap:12px;margin-bottom:24px}#meetingInviteForm .modal-head h2,#passwordForm .modal-head h2{font-size:22px;letter-spacing:-.6px;min-width:0}#meetingInviteForm .icon-btn,#passwordForm .icon-btn{flex-shrink:0}#meetingInviteForm .field{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;margin:18px 0}#meetingInviteForm .field>span{font-size:12px;font-weight:550;margin:0;color:var(--muted)}#meetingInviteForm select,#meetingInviteForm input,.shared-task-form input[type="date"]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-inline-size:0;min-height:50px;font-size:16px;border:1px solid var(--line);border-radius:14px;padding:13px;background:var(--bg);color:var(--text)}#meetingInviteForm input[type="date"],.shared-task-form input[type="date"]{-webkit-appearance:none;appearance:none;inline-size:100%;overflow:hidden}#meetingDate::-webkit-datetime-edit{padding:0;min-width:0}#meetingDate::-webkit-date-and-time-value{text-align:left;min-height:1.25em}#meetingInviteForm>.primary{margin-top:14px;font-size:14px;font-weight:600}#meetingInviteForm .settings-description{font-size:11px;line-height:1.8}#meetingInviteStatus:empty,#meetingStatus:empty,#sharingStatus:empty,#sharedTrackerStatus:empty{display:none}
#sharedToday .shared-card,.shared-tracker-panel .shared-card{padding:18px 20px;box-shadow:none}.shared-tracker-panel{border:1px solid var(--line);border-radius:24px;padding:18px;margin-top:24px;background:var(--card)}.shared-tracker-panel .shared-card{background:var(--bg);border:0;margin:10px 0}.shared-tracker-panel .field>span{font-size:12px}.shared-tracker-panel small,#sharedToday .shared-card small{display:block;font-size:11px;line-height:1.8;color:var(--muted)}
@media(max-width:360px){.friend-card{padding:17px}.friend-heading{gap:9px}.friend-monogram{width:36px;height:36px;font-size:16px}.friend-status{font-size:8px;max-width:85px}.invitation-message{width:95%;padding:17px}#meetingInviteForm{padding-left:16px;padding-right:16px}#friend-chat-screen>.overall-head h1,#leaderboard-screen>.overall-head h1{font-size:17px}}

.today-header-actions{display:flex;align-items:center;gap:7px}.header-settings{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--muted);flex-shrink:0}.header-settings svg{width:22px;height:22px}.settings-back{min-height:44px;margin:0 0 10px;padding:8px 0;font-size:13px}.ref-topbar .today-header-actions .mood-mini{width:36px;height:36px;min-width:36px}.ref-topbar h1{min-width:0}.header-settings:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#sharedToday{margin:0 0 24px}#sharedToday:empty{display:none}#sharedToday>h2{font-size:20px;letter-spacing:-.4px;margin:20px 0 14px}#sharedToday .together-habit{grid-template-columns:auto minmax(0,1fr) auto;cursor:default;margin-bottom:12px}#sharedToday .habit-copy{min-width:0}#sharedToday .habit-copy h3{overflow-wrap:anywhere}#sharedToday .together-friend-status{font-size:10px;color:var(--muted);line-height:1.5;display:block;margin-top:6px}#sharedToday .check-btn[aria-pressed="true"]{background:var(--accent);color:var(--card);border-color:var(--accent)}.together-readonly{color:var(--accent);font-size:22px;padding:8px}
#sharing-screen>.overall-head,#friend-chat-screen>.overall-head,#leaderboard-screen>.overall-head{margin:8px 0 22px;gap:12px;min-height:48px}#sharing-screen>.overall-head button,#friend-chat-screen>.overall-head button,#leaderboard-screen>.overall-head button{display:flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:11px;white-space:nowrap}#sharing-screen>.overall-head h1,#friend-chat-screen>.overall-head h1,#leaderboard-screen>.overall-head h1{font-weight:650;font-size:19px}#sharingBody{padding-top:2px}#sharingList{display:grid;gap:14px;margin-top:20px}#sharingList>.friend-card{margin:0}#sharingBody>.settings-description{margin:18px 2px;line-height:1.7}#inviteForm{margin:18px 0}#sharing-screen .leaderboard-link{margin:0 0 6px}#friend-chat-screen>#inviteHabitFriend{margin:8px 0 12px}#friend-chat-screen>.settings-description{margin:0 2px 16px}#sharing-screen>.overall-head button:focus-visible,#friend-chat-screen>.overall-head button:focus-visible,#leaderboard-screen>.overall-head button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:360px){.today-header-actions{gap:4px}.header-settings{width:36px;height:36px}#sharing-screen>.overall-head,#friend-chat-screen>.overall-head,#leaderboard-screen>.overall-head{gap:7px}#sharing-screen>.overall-head button,#friend-chat-screen>.overall-head button,#leaderboard-screen>.overall-head button{padding:7px 9px;font-size:10px}}
/* Unified controls and app-native choice sheets. */
.enhanced-select{display:none!important}.app-select{display:flex;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box;width:100%;min-width:0;min-height:50px;padding:13px 15px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:15px;font-size:14px;text-align:left;font-weight:500}.app-select>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-select svg{width:19px;height:19px;flex-shrink:0;color:var(--muted)}.app-select[aria-invalid="true"]{border-color:#bc6278}.select-overlay{position:fixed;inset:0;z-index:160;display:flex;align-items:flex-end;justify-content:center;background:#10111b65;backdrop-filter:blur(7px);padding:16px 12px max(12px,env(safe-area-inset-bottom))}.select-sheet{width:min(100%,500px);max-height:75dvh;display:flex;flex-direction:column;min-height:0;padding:20px;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:26px;box-shadow:0 20px 70px #0003;animation:sheet-arrive 220ms ease-out both}.select-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.select-sheet-head h2{font-size:19px;font-weight:650;letter-spacing:-.4px;margin:0}.select-close{width:40px;height:40px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:var(--bg);color:var(--muted);font-size:25px}.select-options{display:grid;gap:6px;overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:3px}.select-option{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;min-height:50px;border-radius:14px;text-align:left;font-size:14px;line-height:1.5;border:1px solid transparent;color:var(--text)}.select-option>span:first-child{min-width:0;overflow-wrap:anywhere}.select-option[aria-selected="true"]{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.select-option-mark{width:24px;flex-shrink:0;text-align:center;font-weight:700}
button{touch-action:manipulation;transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease}button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{opacity:.45;cursor:not-allowed}.primary,.dark-theme .primary{font-size:14px;font-weight:600;letter-spacing:.01em;border-radius:16px;min-height:48px;box-shadow:0 4px 12px #00000008}.secondary,.dark-theme .secondary{font-weight:550;font-size:13px;border:1px solid var(--line);border-radius:15px;min-height:46px}.text-button{font-weight:500;line-height:1.4}.icon-btn{display:inline-grid;place-items:center;border:1px solid var(--line);box-shadow:none}.settings-row{transition:background-color .18s ease,color .18s ease}.theme-toggle button,.segmented button{font-weight:550}.modal-actions{gap:12px}.check-btn{transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.screen.active{animation:page-reveal .24s ease-out both}@keyframes page-reveal{from{opacity:0}to{opacity:1}}
@media(hover:hover){button:not(:disabled):is(.primary,.friend-chat-button):hover{filter:brightness(1.06)}.select-option:not(:disabled):hover,.settings-row:hover{background:var(--accent-soft)}.app-select:not(:disabled):hover{border-color:var(--accent)}.text-button:not(:disabled):hover{color:var(--accent)}}button:not(:disabled):is(.primary,.secondary,.app-select,.select-option,.icon-btn):active{box-shadow:inset 0 0 0 100px #00000008}
@media(min-width:650px){.select-overlay{align-items:center}.select-sheet{max-height:65dvh}}.no-animations button,.no-animations .screen,.no-animations .select-sheet{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){button,.screen.active,.select-sheet{animation:none!important;transition:none!important}}
/* Invitation conversation and shared progress cards. */
#meetingMessages{padding:10px 0 24px}.chat-day-divider{display:table;margin:22px auto 18px;padding:6px 12px;border-radius:20px;background:var(--card);border:1px solid var(--line);font-size:10px;font-weight:500;color:var(--muted)}.invitation-message{position:relative;padding:22px;max-width:420px;border-radius:24px;margin-top:12px;margin-bottom:16px;box-shadow:0 4px 18px #00000004}.invitation-author{display:block;padding-right:42px;font-size:10px!important}.invitation-symbol{position:absolute;right:18px;top:18px;width:32px;height:32px;display:grid;place-items:center;border-radius:11px;background:var(--card);color:var(--accent)}.invitation-symbol svg{width:18px;height:18px}.invitation-message h3{margin-top:24px;font-weight:600;font-size:21px}.invitation-message .invitation-date{margin:8px 0 16px}.invitation-message>.text-button{border:1px solid var(--line);background:var(--card);font-weight:550;padding:10px 13px;margin:14px 6px 0 0;min-height:42px;font-size:11px}.invitation-message>.text-button:last-child{color:var(--muted)}.invitation-message[data-status="accepted"]>strong{color:var(--accent)}
.meeting-participants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.participant-state{display:flex;align-items:center;gap:8px;min-width:0}.participant-state>div{min-width:0}.participant-state strong{font-size:11px!important;display:block;overflow-wrap:anywhere;color:var(--text)!important;font-weight:550}.participant-state small{display:block;font-size:10px!important;color:var(--muted);margin-top:3px}.participant-dot{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--bg);color:var(--muted)}.participant-dot svg{width:15px;height:15px}.participant-state.complete .participant-dot{background:var(--accent-soft);color:var(--accent)}
.shared-add-button{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:13px 16px;margin:14px 0 6px;border:1px dashed var(--line);background:var(--bg);color:var(--accent);border-radius:15px;font-size:13px;font-weight:550}.shared-add-button:hover{background:var(--accent-soft)}.social-task-sheet{min-width:0;padding:18px 22px calc(24px + env(safe-area-inset-bottom))}.social-task-sheet h2{font-size:23px;letter-spacing:-.5px;margin-top:7px}.social-task-sheet .modal-head{gap:12px}.social-task-sheet .field{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:20px 0;min-width:0}.social-task-sheet .field>span{margin:0;font-size:12px;font-weight:550}.social-task-sheet input{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:50px;background:var(--bg);color:var(--text);border:1px solid var(--line)}#sharedTaskDate{-webkit-appearance:none;appearance:none;overflow:hidden;min-inline-size:0}#sharedTaskDate::-webkit-date-and-time-value{text-align:left;min-height:1.25em}.social-task-sheet>.primary{margin-top:12px}#sharedTaskStatus:empty{display:none}
.together-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0}.together-stats>div{padding:15px 8px;text-align:center;border:1px solid var(--line);border-radius:16px;background:var(--card)}.together-stats strong{font-size:24px;display:block;font-weight:600;color:var(--accent);letter-spacing:-.7px}.together-stats small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.shared-tracker-panel .tracker-meeting{background:var(--card);border:1px solid var(--line);padding:18px;border-radius:20px;margin:12px 0}.tracker-meeting-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.tracker-meeting-date{font-size:10px;color:var(--muted)}.tracker-meeting-badge{font-size:9px;padding:5px 8px;background:var(--accent-soft);color:var(--accent);border-radius:20px}.tracker-meeting h3{font-size:17px;margin:16px 0 0;font-weight:600;letter-spacing:-.3px;overflow-wrap:anywhere}.tracker-meeting .meeting-participants{margin-top:16px}.shared-tracker-panel #sharedTracker>h2{font-size:21px;letter-spacing:-.5px;margin-bottom:6px}@media(max-width:360px){.invitation-message{padding:18px}.meeting-participants{gap:8px}.participant-state{gap:6px}.participant-dot{width:24px;height:24px}.together-stats>div{padding:12px 5px}.social-task-sheet{padding-left:16px;padding-right:16px}}
/* Keep the Today header aligned when both action buttons are present. */
#today-screen .ref-topbar{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) auto;column-gap:8px;align-items:center}
#today-screen .ref-topbar h1{font-size:clamp(20px,6vw,29px);line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#today-screen .ref-topbar .filter-pill{min-width:0;max-width:100%;min-height:44px;padding:10px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
#today-screen .today-header-actions{justify-self:end;display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:6px;min-width:94px}
#today-screen .today-header-actions .mood-mini,#today-screen .today-header-actions .header-settings{box-sizing:border-box;display:grid;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;margin:0;border-radius:15px}
#today-screen .today-header-actions .mood-mini{padding:5px}
#today-screen .today-header-actions .header-settings{padding:10px}
#today-screen .today-header-actions .header-settings svg{display:block;width:22px;height:22px}
@media(max-width:360px){#today-screen .ref-topbar{column-gap:6px}#today-screen .ref-topbar .filter-pill{padding:10px 8px;font-size:12px}}
.friend-task-details{border-top:0;padding-top:0;margin-top:18px}.friend-task-details>summary{display:flex;align-items:center;gap:10px;list-style:none;padding:13px 14px;min-height:52px;border:1px solid var(--line);border-radius:16px;background:var(--bg);color:var(--text);font-size:13px;font-weight:550;cursor:pointer}.friend-task-details>summary::-webkit-details-marker{display:none}.shared-tasks-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:var(--card);color:var(--accent);flex-shrink:0}.shared-tasks-icon svg{width:17px;height:17px}.shared-tasks-caption{flex:1;min-width:0}.shared-tasks-count{padding:3px 8px;border-radius:12px;background:var(--card);color:var(--muted);font-size:11px}.shared-tasks-chevron{display:flex;color:var(--muted)}.shared-tasks-chevron svg{width:16px;height:16px}.friend-task-details[open]>summary{background:var(--accent-soft);border-color:var(--line)}.friend-task-details[open] .shared-tasks-chevron{transform:rotate(180deg)}
.habit-card.progress-editing{grid-template-columns:auto minmax(0,1fr)}.habit-card.progress-editing .habit-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;min-width:0;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.habit-card.progress-editing:not(.count-habit) .check-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:auto;min-width:0;min-height:44px;height:auto;padding:10px 14px;border-radius:13px;background:var(--accent-soft);border:1px solid var(--line);color:var(--text);font-size:12px;font-weight:550}.habit-card.progress-editing:not(.count-habit) .check-btn svg{width:18px;height:18px;color:var(--accent)}.progress-editing .cancel-progress{min-height:44px}.progress-editing .count-control{max-width:100%;min-width:0;flex:1 1 100%}
/* Centered Today heading and social profiles. */
#today-screen .ref-topbar{display:grid;grid-template-columns:94px minmax(0,1fr) 94px;column-gap:4px;align-items:center;min-height:88px}
#today-screen .ref-topbar h1{position:static;transform:none;grid-column:2;grid-row:1;width:auto;max-width:none;min-width:0;margin:0;font-size:clamp(18px,5.4vw,27px);line-height:1.3;text-align:center}
#today-screen .ref-topbar .filter-pill{grid-column:1;grid-row:1;max-width:94px}
#today-screen .today-header-actions{grid-column:3;grid-row:1;justify-self:end;align-self:center;display:flex;align-items:center;gap:6px;width:94px;min-width:94px}

.ref-nav .nav-btn .nav-badge{position:absolute;top:0;right:3px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border:2px solid var(--card);border-radius:10px;background:#df4c62;color:#fff;font-size:9px;font-weight:700;line-height:1;pointer-events:none}.ref-nav .nav-btn .nav-badge.hidden{display:none}
.social-top h1{font-size:22px}.social-top .text-button{font-size:11px}.social-hero{position:relative;padding:28px 22px 20px;text-align:center;background:linear-gradient(140deg,var(--accent-soft),var(--card) 70%);border:1px solid var(--line);border-radius:28px}.social-avatar,.rank-avatar,.chat-avatar{display:inline-grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;overflow:hidden;background:var(--accent-soft);color:var(--accent);font-weight:600}.social-avatar img,.rank-avatar img,.chat-avatar img,.friend-monogram img{width:100%;height:100%;object-fit:cover}.friend-monogram{overflow:hidden}.social-hero>.social-avatar{width:82px;height:82px;font-size:30px;border:4px solid var(--card);box-shadow:0 6px 24px #0000000a}.social-hero h1{font-size:24px;letter-spacing:-.6px;margin:14px 0 5px;overflow-wrap:anywhere}.social-handle{display:block;font-size:11px;color:var(--muted)}.presence-badge{display:inline-flex;align-items:center;gap:5px;margin-top:12px;padding:5px 10px;border-radius:20px;background:var(--card);font-size:10px;color:var(--muted)}.presence-badge:before{content:'';width:6px;height:6px;border-radius:50%;background:#9da4ad}.presence-badge.online:before{background:#6da580}.presence-badge.busy:before{background:#c3945d}.social-mood{font-size:14px;line-height:1.7;margin:16px auto 0;white-space:pre-wrap;overflow-wrap:anywhere}.social-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:23px 0 16px}.social-stat{font-size:10px;color:var(--muted);min-height:50px}.social-stat strong{display:block;font-size:23px;color:var(--text);font-weight:600;margin-bottom:5px}.social-chats{margin:24px 0}.social-chats h2{font-size:18px}.social-chat-chip{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--card);border-radius:18px;padding:9px 13px;margin:0 8px 8px 0;font-size:12px}.social-chat-chip .social-avatar{width:30px;height:30px}.social-directory{margin:16px 0 20px;font-size:13px}.social-directory summary{padding:12px 2px;color:var(--muted);cursor:pointer}#socialPeople{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0}.social-person{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:15px;background:var(--card);border:1px solid var(--line);font-size:11px}.social-person .social-avatar{width:27px;height:27px}.social-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:22px 0;background:var(--card);border-radius:16px;border:1px solid var(--line)}.social-tabs button{padding:12px 8px;min-height:42px;border-radius:12px;font-size:11px;color:var(--muted)}.social-tabs button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}.social-post{padding:22px;border-radius:24px;border:1px solid var(--line);background:var(--card);margin-bottom:16px}.social-post-author{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;max-width:100%;overflow-wrap:anywhere;text-align:left}.social-post-meta{display:block;font-size:10px;color:var(--muted);margin:10px 0 0}.social-post-body{font-size:15px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:20px 0}.social-repost{display:inline-block;padding:5px 9px;background:var(--accent-soft);color:var(--accent);font-size:10px;border-radius:10px;margin-top:14px}.social-post-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px}.social-post-actions button{min-height:44px;font-size:12px}.social-post-actions button[aria-pressed="true"]{color:var(--accent)}.social-comments summary{min-height:40px;align-content:center;color:var(--muted);font-size:12px;cursor:pointer}.social-comment{padding:12px;border-radius:14px;background:var(--bg);margin:8px 0}.social-comment strong{font-size:11px}.social-comment p{font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}.social-comment button{font-size:10px}.social-comment-form{display:flex;gap:8px;margin-top:14px}.social-comment-form input{width:100%;min-width:0;border:1px solid var(--line);background:var(--bg);color:var(--text);padding:12px;border-radius:13px;font-size:16px}.social-comment-form button{font-size:11px;color:var(--accent)}.chat-avatar{width:27px;height:27px;margin-bottom:7px}.rank-avatar{width:30px;height:30px}.diary-share{margin-top:16px;min-height:40px}#socialComposer .modal-sheet,#socialProfileEditor .modal-sheet{padding:24px 22px calc(24px + env(safe-area-inset-bottom))}#socialPostBody{min-height:180px}#socialStatus:empty{display:none}@media(max-width:360px){#today-screen .ref-topbar h1{font-size:18px;width:auto}#today-screen .ref-topbar .filter-pill{max-width:80px}.social-post{padding:17px}.social-hero{padding:24px 16px 18px}.leaderboard-player{gap:9px}}
/* One community space: consistent spacing, controls and readable cards. */
.community-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 22px}.community-header h1{font-size:28px;line-height:1.2;letter-spacing:-.7px;margin:6px 0 0}.community-header .eyebrow{font-size:10px}.community-refresh{min-height:44px;padding:10px 15px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--muted);font-size:12px;font-weight:550}
.community-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:5px;margin:0 0 24px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.community-tabs button{position:relative;min-width:0;min-height:46px;padding:10px 14px;border-radius:13px;font-size:12px;font-weight:600;line-height:1.4;color:var(--muted)}.community-tabs .is-current{background:var(--accent-soft);color:var(--accent)}.community-tabs .nav-badge{position:absolute;right:4px;top:2px;display:grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:10px;background:#df4c62;color:white;font-size:9px}.community-tabs .nav-badge.hidden{display:none}
:is(#social-screen,#sharing-screen) .primary{min-height:48px;margin:0;padding:13px 18px;border-radius:16px;font-size:14px;font-weight:600;line-height:1.5}
:is(#social-screen,#sharing-screen) .settings-description{margin:12px 0 18px;font-size:13px;line-height:1.65}
#social-screen .social-hero{padding:26px 20px 20px;border-radius:24px}#social-screen .social-stats{margin:22px 0 18px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:0}#social-screen .social-stat{padding:0 6px;font-size:11px;line-height:1.5}#social-screen .social-stat+ .social-stat{border-left:1px solid var(--line)}#social-screen .social-stat strong{font-size:24px;margin-bottom:4px}#social-screen .social-hero>.text-button{width:100%;padding:12px;min-height:44px;border-radius:13px;background:var(--card);font-size:12px;line-height:1.5}
#social-screen .social-chats{margin:24px 0 16px;display:flex;flex-wrap:wrap;gap:10px}#social-screen .social-chats h2{flex-basis:100%;font-size:18px;margin:0 0 4px}#social-screen .social-chat-chip{margin:0;min-height:48px;padding:9px 13px;border-radius:16px;max-width:100%;overflow-wrap:anywhere}.social-directory{margin:18px 0;border:1px solid var(--line);border-radius:16px;background:var(--card);padding:0 14px}.social-directory summary{min-height:46px;padding:13px 0;font-size:12px}.social-person{min-height:44px}#social-screen .social-tabs{margin:20px 0 16px}.social-post{padding:20px;border-radius:22px}.social-post-actions{gap:10px;flex-wrap:wrap}.social-post-actions .text-button{padding:9px 12px;border-radius:12px;background:var(--bg)}.social-comment-form{align-items:stretch}.social-comment-form button{min-height:44px;padding:10px;border-radius:12px;background:var(--accent-soft);font-weight:600}.social-comments summary{padding:12px 0;line-height:1.5}.social-comment button{min-height:36px;padding:6px 0}
#sharing-screen .leaderboard-link{margin:0 0 20px;padding:18px;border:1px solid var(--line);border-radius:20px;min-height:82px}#sharing-screen .leaderboard-link span{font-size:15px}#sharing-screen .leaderboard-link small{font-size:12px;line-height:1.5}#sharing-screen .shared-card{margin:0 0 16px;padding:20px;border-radius:22px}#sharing-screen .shared-card h2{font-size:18px;line-height:1.4}#sharing-screen #inviteForm .field{margin:18px 0}#sharing-screen #inviteForm .field>span{display:block;margin-bottom:8px}#sharing-screen .friend-heading{display:grid;grid-template-columns:42px minmax(0,1fr);gap:4px 12px;align-items:center;margin-bottom:16px}#sharing-screen .friend-monogram{grid-row:1/3;width:42px;height:42px}#sharing-screen .friend-heading h2{margin:0;overflow-wrap:anywhere}#sharing-screen .friend-status{grid-column:2;justify-self:start;margin:0;font-size:10px}#sharing-screen .friend-chat-button{min-height:48px;padding:12px 14px;margin:0;border-radius:14px;font-size:13px;line-height:1.5}#sharing-screen .friend-card>.text-button{min-height:44px;margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--bg);font-size:12px}#sharing-screen .friend-task-details{margin-top:16px}#sharing-screen .shared-task{flex-wrap:wrap;gap:10px;padding:14px 0}#sharing-screen .shared-task>div{flex:1 1 130px}#sharing-screen .shared-task .text-button{min-height:40px;padding:8px 10px;border-radius:12px;background:var(--bg)}#sharingStatus:empty{display:none}
:is(#socialComposer,#socialProfileEditor,#socialPeopleModal,#sharedTaskModal) .field{margin:18px 0}:is(#socialComposer,#socialProfileEditor,#socialPeopleModal,#sharedTaskModal) .modal-sheet{padding:24px 20px calc(24px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0}:is(#socialComposer,#socialProfileEditor,#socialPeopleModal,#sharedTaskModal) .modal-head{gap:12px;margin-bottom:20px}:is(#socialComposer,#socialProfileEditor,#socialPeopleModal,#sharedTaskModal) .modal-head h2{font-size:20px;line-height:1.35;margin:0}:is(#socialComposer,#socialProfileEditor,#socialPeopleModal,#sharedTaskModal) .primary{min-height:48px;border-radius:15px}
:is(.community-tabs button,.community-refresh,.social-chat-chip,.social-person):focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(hover:hover){:is(.community-refresh,.social-chat-chip,.social-person):hover{background:var(--accent-soft)}}
@media(max-width:360px){.community-tabs button{padding:10px 7px;font-size:11px}.community-header h1{font-size:25px}#sharing-screen .shared-card,.social-post{padding:16px}.social-comment-form{flex-wrap:wrap}.social-comment-form input{flex:1 1 100%}.social-comment-form button{margin-left:auto}}
:is(#friend-chat-screen,#leaderboard-screen) .overall-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 12px;margin:8px 0 22px;align-items:center}:is(#friend-chat-screen,#leaderboard-screen) .overall-head h1{grid-column:1/-1;grid-row:2;font-size:25px;text-align:left;line-height:1.3;margin:0;overflow-wrap:anywhere}:is(#friend-chat-screen,#leaderboard-screen) .overall-head .text-button{grid-row:1;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:12px;line-height:1.4}:is(#friend-chat-screen,#leaderboard-screen) .overall-head .text-button:first-child{justify-self:start}:is(#friend-chat-screen,#leaderboard-screen) .settings-description{font-size:13px;line-height:1.65;margin:16px 0}#friend-chat-screen>.primary{min-height:48px;padding:13px 16px;border-radius:16px;font-size:14px;margin:4px 0 8px}#friend-chat-screen .invitation-message button{min-height:44px;padding:10px 14px;border-radius:13px;margin:8px 8px 0 0;line-height:1.4}#leaderboard-screen .leaderboard-intro{padding:22px;border-radius:22px;margin:0 0 20px}
.social-directory h2{font-size:16px;margin:18px 0 8px}.social-directory>.settings-description{margin:0 0 8px!important;font-size:12px!important}#socialPeople{padding:8px 0 16px}.friend-profile-link{display:block;text-align:left;font:inherit;color:var(--text);min-height:36px;overflow-wrap:anywhere}.friend-profile-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}#sharing-screen .friend-heading h2 .friend-profile-link{font-size:18px;min-height:36px}.friend-profile-link:hover{color:var(--accent)}

.friend-profile-link::after{content:"Открыть профиль ›";display:block;color:var(--accent);font-size:11px;font-weight:500;margin-top:4px;line-height:1.4}.social-person::after{content:"›";color:var(--accent);margin-left:4px}

/* Profile, feed and friends share one top-level switcher. */
.community-tabs{grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1.2fr)}.community-tabs button{padding:10px 6px;font-size:11px}.social-post-actions{justify-content:flex-start;gap:8px}.social-post-actions>.text-button:last-child:not(.social-comments-toggle){margin-left:auto}.social-comments-toggle{display:inline-flex;align-items:center;gap:5px}.social-comments:not(.hidden){border-top:1px solid var(--line);margin-top:12px;padding-top:8px}#newSocialPost{margin-bottom:18px!important}
