@font-face{font-family:"Bricolage Grotesque";src:url("assets/fonts/BricolageGrotesque.ttf") format("truetype");font-weight:200 800;font-stretch:75% 100%;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("assets/fonts/InstrumentSans.ttf") format("truetype");font-weight:400 700;font-stretch:75% 100%;font-style:normal;font-display:swap}
:root{--bg: #EDEEF0;--surface: #FFFFFF;--surface-2: #F5F6F7;--border: #D8DADF;--border-strong:#B3B6BF;--text: #12131A;--text-2: #565862;--text-3: #8A8D97;--accent: #12131A;--on-accent: #FFFFFF;--accent-text: #12131A;--accent-bg: rgba(18,19,26,.1);--dock-bg: #12131A;--dock-fg: #EDEEF0;--success: #178A57;--danger: #D63A3A;--orange: #B8480C;--ink-1: #8EA2FF;--ink-2: #C79BFF;--ink-3: #FFD23F;--ink-4: #52E0A1;--ink-5: #FF8A4C;--ink-6: #2EC4B6;--ink-7: #52C7F2;--ink-8: #FF7EB0;--ink-9: #C3E34A;--ink-text: #12131A;--r-lg: 24px;--r-md: 16px;--r-sm: 12px;--radius: var(--r-lg);--radius-sm: var(--r-md);--radius-xs: var(--r-sm);--f-display: "Bricolage Grotesque", "Arial Narrow", system-ui, sans-serif;--f-body: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--dock-h: 64px;--safe-b: env(safe-area-inset-bottom, 0px);--shadow-md: 0 10px 30px rgba(18,19,26,.22)}
[data-theme=dark]{--bg: #0E0F13;--surface: #181A21;--surface-2: #20222B;--border: #2B2E39;--border-strong:#464A59;--text: #F0EFEA;--text-2: #A3A6B2;--text-3: #70737F;--accent: #F0EFEA;--on-accent: #0E0F13;--accent-text: #F0EFEA;--accent-bg: rgba(240,239,234,.12);--dock-bg: #F0EFEA;--dock-fg: #0E0F13;--success: #4ADE99;--danger: #FF7A7A;--orange: #FF9A5C;--shadow-md: 0 10px 30px rgba(0,0,0,.5)}
*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}
html{height:100%;-webkit-tap-highlight-color:transparent}
body{font-family:var(--f-body);font-size:.9375rem;background:var(--bg);color:var(--text);min-height:100%;line-height:1.5;overscroll-behavior:none;-webkit-font-smoothing:antialiased}
button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit}
input{font-family:inherit}
svg{display:block}
.hidden{display:none}
:focus-visible{outline:3px solid var(--text);outline-offset:2px;border-radius:6px}
::-webkit-scrollbar{width:0}
canvas{display:block;width:100%!important}
.app{max-width:430px;margin:0 auto;min-height:100dvh;position:relative;background:var(--bg)}
@media(min-width:600px){body{background:var(--surface-2)}.app{box-shadow:0 0 0 1.5px var(--border)}}
.page{display:flex;flex-direction:column;min-height:100dvh;padding-bottom:calc(var(--dock-h) + var(--safe-b) + 56px)}
.page.hidden{display:none}
.page-header{--logo-h:44px;--logo-m:16px;position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;height:calc(var(--logo-h) + 2*var(--logo-m) + env(safe-area-inset-top,0px));min-height:calc(var(--logo-h) + 2*var(--logo-m) + env(safe-area-inset-top,0px));max-height:calc(var(--logo-h) + 2*var(--logo-m) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 20px 0;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.page-header>:last-child{flex:0 0 auto;margin-left:auto}
.header-logo{display:block;flex:0 1 auto;min-width:0;width:auto;height:var(--logo-h);max-height:var(--logo-h);color:var(--text);overflow:visible}
.header-action-btn{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1.5px solid var(--border-strong);color:var(--text);transition:background .15s}
.header-action-btn:hover{background:var(--surface-2)}
.today-hero{padding:6px 20px 20px}
.hero-date{font-size:.9rem;font-weight:500;color:var(--text-2)}
.hero-score{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:2px}
.hero-count{font-family:var(--f-display);font-stretch:75%;font-weight:800;font-size:clamp(5.5rem,31vw,8.5rem);line-height:.84;letter-spacing:-.04em;color:var(--text);display:flex;align-items:baseline}
.hero-count small{font-size:.36em;letter-spacing:-.02em;color:var(--text-2);margin-left:.08em}
.hero-side{text-align:right;padding-bottom:6px}
.hero-caption{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.15rem;line-height:1.15}
.hero-level{font-size:.82rem;color:var(--text-2);margin-top:2px}
.ink-strip{display:flex;gap:5px;margin-top:18px}
.ink-seg{flex:1;height:16px;border-radius:8px;border:2px solid var(--ink, var(--border-strong));background:transparent;transition:background-color .3s}
.tabs-row{display:flex;gap:24px;padding:0 20px;margin:0 0 16px;border-bottom:1.5px solid var(--border)}
.tab-btn{position:relative;min-height:44px;padding:10px 0 12px;font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.1rem;letter-spacing:-.01em;color:var(--text-2)}
.tab-btn.active{color:var(--text)}
.tab-btn.active:after{content:"";position:absolute;left:0;right:0;bottom:-1.5px;height:4px;border-radius:2px;background:var(--text)}
.tab-panel{padding:0 16px}
.tab-panel.hidden{display:none}
.habits-list{display:flex;flex-direction:column;gap:10px}
.habit-card{position:relative;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:16px;overflow:hidden;box-shadow:4px 4px 0 var(--ink-3);transition:background-color .25s,border-color .25s}
.habit-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.habit-card-left{display:flex;align-items:center;gap:12px;min-width:0}
.habit-card-emoji,.today-emoji-box,.my-habit-emoji{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.25rem;background:var(--ink, var(--text));color:var(--ink-text);transition:background-color .25s,color .25s}
.habit-card-emoji svg,.today-emoji-box svg,.my-habit-emoji svg{width:22px;height:22px}
.habit-card-name,.today-card-name,.my-habit-name{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.2rem;line-height:1.15;letter-spacing:-.01em;color:var(--text)}
.habit-card-freq{font-size:.8rem;color:var(--text-2)}
.streak-pill{flex-shrink:0;font-size:.8rem;font-weight:700;color:var(--orange);background:var(--surface-2);padding:4px 10px;border-radius:20px}
.today-card{display:flex;flex-direction:column;gap:12px}
.today-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.today-card-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.today-card-info{min-width:0}
.today-card-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-card-sub{font-size:.8rem;color:var(--text-2);margin-top:2px}
.today-card-sub.done-flourish{font-family:var(--f-body);font-weight:600;font-size:.8rem;line-height:1.3}
.today-card.done{background:var(--ink);border-color:var(--ink);color:var(--ink-text)}
.today-card.done .today-card-name,.today-card.done .today-card-sub,.today-card.done .ctl-value,.today-card.done .ctl-value small,.today-card.done .ctl-hint{color:var(--ink-text)}
.today-card.done .today-card-sub{opacity:.78}
.today-card.done .today-emoji-box{background:var(--ink-text);color:var(--ink)}
.habit-toggle-btn{width:52px;height:52px;border-radius:50%;border:2.5px solid var(--text);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:transparent;background:transparent;transition:background-color .2s,border-color .2s,color .2s}
.habit-toggle-btn svg{width:24px;height:24px;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.habit-toggle-btn .check-icon{display:none}
.habit-toggle-btn.done{background:var(--text);border-color:var(--text);color:var(--bg)}
.habit-toggle-btn.done .check-icon{display:block}
.habit-toggle-btn.fail{background:var(--danger);border-color:var(--danger);color:#fff}
.today-card.done .habit-toggle-btn{border-color:var(--ink-text)}
.today-card.done .habit-toggle-btn.done{background:var(--ink-text);color:var(--ink)}
.pbar{height:14px;background:var(--accent-bg);border-radius:7px;overflow:hidden;margin-bottom:4px}
.today-card.done .pbar{background:#12131a2e}
.pbar-fill{height:100%;border-radius:7px;background:var(--ink, var(--accent));transition:width .3s ease}
.today-card.done .pbar-fill{background:var(--ink-text)}
.step-btns{display:flex;gap:8px;margin-top:10px}
.step-btn{flex:1;height:46px;border-radius:14px;border:2px solid var(--text);font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.02rem;color:var(--text);transition:background-color .15s,color .15s}
.step-btn:hover{background:var(--text);color:var(--bg)}
.today-card.done .step-btn{border-color:var(--ink-text);color:var(--ink-text)}
.today-card.done .step-btn:hover{background:var(--ink-text);color:var(--ink)}
.week-day-row{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.week-day-cell{display:flex;flex-direction:column;align-items:center;gap:6px}
.week-day-label{font-size:.74rem;font-weight:600;color:var(--text-2)}
.week-day-label.today-label,.week-day-label.sunday-label{color:var(--text)}
.week-day-label.today-label{font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.week-day-dot{width:38px;height:38px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s,border-color .2s}
.week-day-dot.done{border-color:transparent}
.week-day-dot.inactive{opacity:.35;cursor:default}
.week-day-dot svg{width:18px;height:18px;stroke:var(--ink-text);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.week-day-dot.done svg{opacity:1}
.overall-dot-grid{display:grid;grid-template-columns:14px repeat(16,1fr);gap:3px;align-items:center}
.overall-row-label{font-size:.64rem;color:var(--text-2);font-weight:600;text-align:right;padding-right:2px;line-height:1}
.overall-dot{width:100%;aspect-ratio:1;border-radius:30%;background:var(--border)}
.overall-dot.inactive{background:transparent}
.fab{position:fixed;bottom:calc(var(--dock-h) + var(--safe-b) + 28px);right:max(18px,calc((100vw - 430px)/2 + 18px));width:56px;height:56px;border-radius:18px;background:var(--text);color:var(--bg);display:flex;align-items:center;justify-content:center;box-shadow:4px 4px 0 var(--ink-3);z-index:30;transition:transform .15s,box-shadow .15s}
.fab:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink-3)}
.bottom-nav{position:fixed;left:50%;bottom:calc(var(--safe-b) + 14px);transform:translate(-50%);width:calc(100% - 28px);max-width:402px;height:var(--dock-h);padding:6px;display:flex;gap:2px;background:var(--dock-bg);border-radius:32px;box-shadow:var(--shadow-md);z-index:50}
.nav-btn{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:26px;color:color-mix(in srgb,var(--dock-fg) 72%,transparent);transition:flex .25s ease,background-color .2s,color .2s}
.nav-btn.active{flex:2.4;background:var(--dock-fg);color:var(--dock-bg)}
.nav-btn:focus-visible{outline-color:var(--ink-3)}
.nav-icon{width:22px;height:22px;flex-shrink:0}
.nav-label{display:none;font-size:.82rem;font-weight:700;line-height:1;white-space:nowrap}
.nav-btn.active .nav-label{display:block}
.home-wellness{padding:32px 16px 0;display:flex;flex-direction:column;gap:12px}
.home-wellness.hidden{display:none}
.section-heading,.account-section-title{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.25rem;letter-spacing:-.01em;color:var(--text);padding:0 4px}
.mind-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mind-tile{min-height:112px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;padding:14px;border-radius:22px;background:var(--ink);color:var(--ink-text);font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1rem;line-height:1.1;transition:transform .15s}
.mind-tile svg{width:28px;height:28px}
.mind-tile:active{transform:scale(.97)}
.sleep-summary-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:16px}
.sleep-head{display:flex;align-items:center;justify-content:space-between}
.sleep-title{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.2rem;letter-spacing:-.01em}
.sleep-enter-btn{min-height:40px;padding:0 18px;border-radius:20px;border:2px solid var(--text);font-weight:700;font-size:.88rem;color:var(--text);transition:background-color .15s,color .15s}
.sleep-enter-btn:hover{background:var(--text);color:var(--bg)}
.sleep-summary-display{margin-top:8px;color:var(--text-2)}
.sleep-empty{font-size:.9rem;color:var(--text-2)}
.sleep-big-value{font-family:var(--f-display);font-stretch:75%;font-weight:800;font-size:3.2rem;line-height:1;letter-spacing:-.03em;color:var(--text)}
.sleep-big-unit{font-size:1rem;font-weight:600;color:var(--text-2);margin:0 6px 0 2px}
.sleep-meta-row{display:flex;gap:24px;margin-top:10px}
.sleep-meta-item{display:flex;flex-direction:column;gap:2px}
.sleep-meta-label{font-size:.8rem;color:var(--text-2)}
.sleep-meta-value{font-weight:700;color:var(--text)}
.report-wrap{padding:8px 16px 0;display:flex;flex-direction:column;gap:12px}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5px;background:var(--border);border:1.5px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.stat-card{background:var(--surface);padding:18px 16px}
.stat-val{font-family:var(--f-display);font-stretch:75%;font-weight:800;font-size:3rem;line-height:.9;letter-spacing:-.03em;color:var(--text);margin-bottom:8px}
.stat-label{font-size:.82rem;color:var(--text-2);font-weight:500}
.report-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:18px}
.report-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}
.report-card-title{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.15rem;letter-spacing:-.01em;color:var(--text)}
.report-period-badge{display:flex;align-items:center;gap:4px;font-size:.78rem;font-weight:600;color:var(--text);border:1.5px solid var(--border-strong);padding:4px 11px;border-radius:20px;white-space:nowrap}
.report-period-badge svg{width:10px;height:10px}
.bar-chart{display:flex;align-items:flex-end;gap:8px;height:140px;padding-bottom:20px;position:relative}
.bar-col{flex:1;min-height:130px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px}
.bar-fill{width:100%;min-height:4px;border-radius:8px 8px 4px 4px;background:var(--accent-bg);position:relative;transition:height .5s ease}
.bar-fill.active{background:var(--accent)}
.bar-tooltip{position:absolute;top:-30px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:8px;white-space:nowrap;pointer-events:none;opacity:0}
.bar-fill.active .bar-tooltip{opacity:1}
.bar-label{font-size:.74rem;color:var(--text-2);font-weight:600}
.cal-stats-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-stats-header{text-align:center;font-size:.72rem;font-weight:700;color:var(--text-2);padding-bottom:6px}
.cal-stats-cell{min-width:0;min-height:30px;aspect-ratio:1;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;border:1.5px solid var(--border);color:var(--text-2)}
.cal-stats-cell.perfect{background:var(--text);border-color:var(--text);color:var(--bg)}
.cal-stats-cell.good{background:var(--accent-bg);border-color:transparent;color:var(--text)}
.cal-stats-cell.missed{border:1.5px dashed var(--danger);color:var(--danger)}
.cal-stats-cell.future{border-color:transparent;color:var(--text-3)}
.mood-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.mood-cal-nav-btn{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text)}
.mood-cal-nav-btn:hover{background:var(--accent-bg)}
.mood-cal-nav-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.mood-cal-month{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.1rem;color:var(--text)}
.mood-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.mood-cal-header{text-align:center;font-size:.74rem;font-weight:700;color:var(--text-2);padding-bottom:8px}
.mood-cal-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0}
.mood-cal-emoji{font-size:1.4rem;line-height:1.2}
.mood-cal-day-label{font-size:.66rem;color:var(--text-2);font-weight:600}
.mood-cal-empty{width:30px;height:30px;border-radius:50%;border:1.5px dashed var(--border-strong);display:flex;align-items:center;justify-content:center;color:var(--text-2);cursor:pointer;transition:background-color .15s}
.mood-cal-empty:hover{background:var(--accent-bg)}
.mood-cal-empty svg{width:14px;height:14px}
.report-card .mood-cal-nav{margin-bottom:16px}
#moodStatContent{padding-top:8px}
.my-habits-list{padding:8px 16px 0;display:flex;flex-direction:column;gap:10px}
.my-habit-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);padding:12px 14px}
.my-habit-info{flex:1;min-width:0}
.my-habit-name{font-size:1.1rem}
.my-habit-meta{font-size:.8rem;color:var(--text-2)}
.my-habit-row .habit-toggle-btn{width:42px;height:42px;border-width:2px}
.my-habit-row .habit-toggle-btn svg{width:20px;height:20px}
.streak-inline{display:inline-flex;align-items:center;gap:3px;font-size:.78rem;font-weight:700;color:var(--orange)}
.account-wrap{padding:8px 16px 16px;display:flex;flex-direction:column;gap:14px}
.account-profile-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;row-gap:6px;align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:18px}
.account-avatar{grid-row:1 / 3;width:68px;height:68px;border-radius:22px;background:var(--text);color:var(--bg);box-shadow:4px 4px 0 var(--ink-3);display:flex;align-items:center;justify-content:center;font-size:2rem;line-height:1;transition:transform .15s,box-shadow .15s}
.account-avatar:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink-3)}
.account-name{align-self:end;font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:1.7rem;line-height:1;letter-spacing:-.02em;color:var(--text)}
.account-level-badge{align-self:start;justify-self:start;background:var(--text);color:var(--bg);font-size:.8rem;font-weight:700;padding:4px 12px;border-radius:20px}
.xp-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);padding:16px}
.xp-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.xp-label{font-size:.85rem;font-weight:600;color:var(--text-2)}
.xp-value{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1rem;color:var(--text);text-align:right}
.xp-bar-track{height:14px;background:var(--accent-bg);border-radius:7px;overflow:hidden}
.xp-bar-fill{height:100%;background:var(--accent);border-radius:7px;transition:width .5s ease}
.pref-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);overflow:hidden;margin-top:8px}
.pref-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1.5px solid var(--border)}
.pref-row:last-child{border-bottom:none}
.pref-info{display:flex;align-items:center;gap:12px;min-width:0}
.pref-icon{font-size:1.15rem;flex-shrink:0}
.pref-label-text{font-size:.95rem;font-weight:600;color:var(--text)}
.pref-hint{font-size:.8rem;color:var(--text-2)}
.pref-toggle{position:relative;width:54px;height:32px;border-radius:16px;flex-shrink:0;font-size:0;color:transparent;transition:background-color .2s}
.pref-toggle:after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;transition:transform .2s,background-color .2s}
.pref-toggle.off{background:var(--border-strong)}
.pref-toggle.on{background:var(--text)}
.pref-toggle.on:after{transform:translate(22px);background:var(--bg)}
.pref-edit{min-height:40px;padding:0 16px;border-radius:20px;border:2px solid var(--text);font-size:.85rem;font-weight:700;color:var(--text)}
.pref-edit:hover{background:var(--text);color:var(--bg)}
.danger-zone-card{background:var(--surface);border:1.5px dashed var(--danger);border-radius:var(--r-md);padding:16px}
.modal-reset-btn{width:100%;height:48px;border-radius:14px;border:2px solid var(--danger);color:var(--danger);font-size:.92rem;font-weight:700;transition:background-color .15s,color .15s}
.modal-reset-btn:hover{background:var(--danger);color:#fff}
.achievements-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.ach-section{margin-bottom:10px}
.achievement-badge{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:16px 8px 14px;border-radius:20px;background:transparent;border:1.5px dashed var(--border-strong)}
.achievement-badge.locked .ach-emoji{filter:grayscale(1);opacity:.5}
.achievement-badge.unlocked{background:var(--ink, var(--ink-3));border:1.5px solid transparent;color:var(--ink-text)}
.achievements-grid>.achievement-badge:nth-child(9n+1){--ink: var(--ink-1)}
.achievements-grid>.achievement-badge:nth-child(9n+2){--ink: var(--ink-3)}
.achievements-grid>.achievement-badge:nth-child(9n+3){--ink: var(--ink-4)}
.achievements-grid>.achievement-badge:nth-child(9n+4){--ink: var(--ink-8)}
.achievements-grid>.achievement-badge:nth-child(9n+5){--ink: var(--ink-5)}
.achievements-grid>.achievement-badge:nth-child(9n+6){--ink: var(--ink-7)}
.achievements-grid>.achievement-badge:nth-child(9n+7){--ink: var(--ink-2)}
.achievements-grid>.achievement-badge:nth-child(9n+8){--ink: var(--ink-9)}
.achievements-grid>.achievement-badge:nth-child(9n+9){--ink: var(--ink-6)}
.ach-unlocked-badge{position:absolute;top:7px;right:7px;width:18px;height:18px;border-radius:50%;background:var(--ink-text);color:#fff;font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.ach-emoji{font-size:1.6rem;line-height:1.2}
.ach-name{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:.92rem;line-height:1.15;color:var(--text)}
.ach-desc{font-size:.72rem;line-height:1.3;color:var(--text-2)}
.achievement-badge.unlocked .ach-name{color:var(--ink-text)}
.achievement-badge.unlocked .ach-desc{color:#12131ac7}
.modal-overlay{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#0e0f138c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;opacity:0;pointer-events:none;transition:opacity .25s}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal-card,.mood-sheet{width:100%;max-width:430px;background:var(--surface);border-radius:28px 28px 0 0;transform:translateY(100%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.modal-card{max-height:90dvh;overflow-y:auto;padding-bottom:max(20px,var(--safe-b))}
.mood-sheet{padding:0 0 max(24px,var(--safe-b))}
.modal-overlay.open .modal-card,.modal-overlay.open .mood-sheet{transform:translateY(0)}
.modal-card:before,.mood-sheet:before{content:"";display:block;width:40px;height:4px;border-radius:2px;background:var(--border-strong);margin:10px auto 0}
.mood-sheet-handle{display:none}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px}
.modal-title,.mood-sheet-title{font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:1.5rem;line-height:1.1;letter-spacing:-.02em;color:var(--text)}
.mood-sheet-title{text-align:center;padding:18px 24px 16px}
.modal-x{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text)}
.modal-x:hover{background:var(--accent-bg)}
.modal-section{padding:0 20px 18px}
.modal-label{display:block;margin-bottom:10px;font-size:.88rem;font-weight:600;color:var(--text-2)}
.modal-row{display:flex;gap:8px}
.modal-divider,.mood-sheet-divider{height:1.5px;background:var(--border);margin:0 20px 18px}
.mood-sheet-divider{margin:0 0 20px}
.pseudo-input,.sleep-time-input{flex:1;height:48px;border-radius:14px;border:2px solid var(--border);background:var(--surface-2);padding:0 14px;font-size:1rem;color:var(--text);outline:none;transition:border-color .2s}
.sleep-time-input{width:100%;flex:none}
.pseudo-input:focus,.sleep-time-input:focus{border-color:var(--text)}
.modal-save-btn{height:48px;padding:0 20px;border-radius:14px;background:var(--text);color:var(--bg);font-weight:700;font-size:.95rem}
.modal-save-btn:hover{opacity:.88}
.mood-emoji-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 16px 20px}
.mood-emoji-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;border:2px solid var(--border);border-radius:18px;background:var(--surface-2);transition:background-color .2s,border-color .2s,color .2s}
.mood-card-emoji{font-size:2rem;line-height:1}
.mood-card-label{font-size:.85rem;font-weight:700;color:var(--text-2)}
.mood-emoji-card.selected{background:var(--text);border-color:var(--text)}
.mood-emoji-card.selected .mood-card-label{color:var(--bg)}
.mood-confirm-btn{display:block;width:calc(100% - 32px);height:56px;margin:0 16px 16px;border-radius:18px;background:var(--text);color:var(--bg);font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.15rem;box-shadow:4px 4px 0 var(--ink-3);transition:transform .15s,box-shadow .15s}
.mood-confirm-btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink-3)}
.mood-confirm-btn:disabled{display:none}
#moodStep2{padding-bottom:8px}
.feelings-grid{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 20px}
.feeling-tag{min-height:44px;padding:0 18px;border-radius:22px;border:2px solid var(--border-strong);font-size:.9rem;font-weight:600;color:var(--text);white-space:nowrap;transition:background-color .2s,color .2s}
.feeling-tag.selected{background:var(--text);border-color:var(--text);color:var(--bg)}
.sleep-duration-row,.sleep-time-row{display:flex;gap:12px}
.sleep-input-group{display:flex;align-items:center;gap:8px;flex:1}
.sleep-num-input{width:100%;height:60px;border-radius:16px;border:2px solid var(--border);background:var(--surface-2);text-align:center;font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:2rem;color:var(--text);outline:none;-moz-appearance:textfield;transition:border-color .2s}
.sleep-num-input::-webkit-inner-spin-button{-webkit-appearance:none}
.sleep-num-input:focus{border-color:var(--text)}
.sleep-unit{font-weight:700;color:var(--text-2);flex-shrink:0}
.sleep-time-field{flex:1;display:flex;flex-direction:column;gap:6px}
.sleep-time-label{font-size:.85rem;font-weight:600;color:var(--text-2)}
.sleep-date-input{margin-top:0}
.breathing-overlay{--text: #F0EFEA;--text-2: #B3B6C2;--text-3: #80838F;--border: #2B2E39;--border-strong: #464A59;--surface: #1E2028;position:fixed;inset:0;z-index:500;display:flex;flex-direction:column;align-items:center;overflow-y:auto;background:#12131a;color:var(--text);opacity:0;pointer-events:none;transition:opacity .3s ease}
.breathing-overlay.open{opacity:1;pointer-events:all}
.breathing-inner{width:100%;max-width:430px;min-height:100dvh;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 14px) 20px calc(var(--safe-b) + 24px)}
.breathing-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.breathing-title{font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:2rem;line-height:1;letter-spacing:-.02em}
.breathing-close{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border-strong);color:var(--text)}
.breathing-close:hover{background:var(--surface)}
.breath-pattern-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}
.breath-pattern-btn{min-height:58px;padding:8px 4px;border-radius:18px;border:2px solid var(--border-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text);transition:background-color .18s,color .18s,border-color .18s}
.breath-pattern-btn b{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.1rem;line-height:1;letter-spacing:-.01em}
.breath-pattern-btn span{font-size:.72rem;font-weight:600;line-height:1;color:var(--text-2)}
.breath-pattern-btn.active{background:var(--text);border-color:var(--text);color:#12131a}
.breath-pattern-btn.active span{color:#12131a;opacity:.7}
.breath-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:20px 0 12px}
.breath-stage{--dur: 4s;position:relative;width:min(300px,78vw);aspect-ratio:1}
.breath-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.breath-ring-track,.breath-ring-fill{fill:none;stroke-width:4}
.breath-ring-track{stroke:var(--border)}
.breath-ring-fill{stroke:var(--ink-2);stroke-linecap:round;stroke-dasharray:880;stroke-dashoffset:880;transform:rotate(-90deg);transform-origin:50% 50%}
.breath-orb{position:absolute;inset:6%;transform:scale(.8)}
.breath-halo,.breath-core{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%)}
.breath-halo-1{width:100%;height:100%;background:#c79bff1a}
.breath-halo-2{width:76%;height:76%;background:#c79bff2e}
.breath-core{width:54%;height:54%;background:var(--ink-2);box-shadow:0 0 44px #c79bff73}
.breath-countdown{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-stretch:75%;font-weight:800;font-size:3.4rem;line-height:1;color:#12131a}
@keyframes orbExpand{0%{transform:scale(.62)}to{transform:scale(1)}}
@keyframes orbShrink{0%{transform:scale(1)}to{transform:scale(.62)}}
@keyframes ringA{0%{stroke-dashoffset:880}to{stroke-dashoffset:0}}
@keyframes ringB{0%{stroke-dashoffset:880}to{stroke-dashoffset:0}}
.breath-stage.phase-inhale .breath-orb{animation:orbExpand var(--dur) cubic-bezier(.4,0,.2,1) forwards}
.breath-stage.phase-exhale .breath-orb{animation:orbShrink var(--dur) cubic-bezier(.4,0,.2,1) forwards}
.breath-stage.phase-hold .breath-orb{transform:scale(1)}
.breath-stage.phase-hold-out .breath-orb{transform:scale(.62)}
.breath-stage.running[data-tick="0"] .breath-ring-fill{animation:ringA var(--dur) linear forwards}
.breath-stage.running[data-tick="1"] .breath-ring-fill{animation:ringB var(--dur) linear forwards}
.breath-phase-label{min-height:2.4rem;text-align:center;font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.9rem;line-height:1.2;letter-spacing:-.01em}
.breath-pattern-desc{max-width:290px;text-align:center;font-size:.88rem;line-height:1.4;color:var(--text-2)}
.breath-steps{display:flex;gap:6px;margin-bottom:18px}
.breath-step{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding-top:10px;border-top:4px solid var(--border-strong);border-radius:2px;color:var(--text-2);transition:border-color .2s,color .2s}
.breath-step .bs-name{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1rem;line-height:1.1}
.breath-step .bs-sec{font-size:.8rem;font-weight:600}
.breath-step.active{border-top-color:var(--ink-2);color:var(--text)}
.breath-rounds-display{text-align:center;color:var(--text-2);font-size:.9rem;margin-bottom:16px}
.breath-rounds-num{font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:1.6rem;color:var(--ink-2);vertical-align:-1px}
.breath-start-btn{width:100%;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--text);color:#12131a;font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.15rem;box-shadow:4px 4px 0 var(--ink-2);transition:transform .15s,box-shadow .15s}
.breath-start-btn .ic{width:18px;height:18px}
.breath-start-btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink-2)}
.breath-start-btn.active{background:#ff7a7a;box-shadow:4px 4px #f0efea}
@media(prefers-reduced-motion:reduce){.breath-stage .breath-orb,.breath-stage .breath-ring-fill{animation:none!important}.breath-stage.phase-inhale .breath-orb{transform:scale(1)}.breath-stage.phase-exhale .breath-orb{transform:scale(.62)}.breath-stage.running .breath-ring-fill{stroke-dashoffset:0}}
@media(max-height:700px){.breath-stage{width:min(240px,70vw)}.breath-countdown{font-size:2.8rem}}
.toast{position:fixed;left:50%;bottom:calc(var(--dock-h) + var(--safe-b) + 30px);transform:translate(-50%) translateY(12px);max-width:min(90vw,400px);padding:12px 20px;border-radius:16px;background:var(--text);color:var(--bg);font-size:.9rem;font-weight:600;text-align:center;opacity:0;pointer-events:none;z-index:200;transition:opacity .25s,transform .25s;box-shadow:var(--shadow-md)}
.toast.show{opacity:1;transform:translate(-50%) translateY(0)}
.confetti-overlay{position:fixed;inset:0;pointer-events:none;z-index:300}
@keyframes stamp{0%{transform:scale(.97)}60%{transform:scale(1.015)}to{transform:scale(1)}}
.habit-card.flash{animation:stamp .3s ease-out}
.habit-card.zen-collapse{opacity:0;box-shadow:none;height:0;padding-top:0;padding-bottom:0;margin:-5px 0;border-width:0;overflow:hidden;transition:all .4s ease}
@media(max-width:360px){.overall-dot-grid{grid-template-columns:12px repeat(14,1fr)}.week-day-dot{width:34px;height:34px}.mind-tile{font-size:.9rem;padding:12px}}
@media(prefers-reduced-motion:reduce){.modal-overlay,.modal-card,.mood-sheet,.nav-btn,.toast,.bar-fill,.xp-bar-fill,.pbar-fill,.ink-seg,.pref-toggle,.pref-toggle:after{transition:none}.habit-card.flash{animation:none}}
.ic{width:1em;height:1em;display:inline-block;flex-shrink:0;vertical-align:-.15em}
.streak-pill,.streak-inline{display:inline-flex;align-items:center;gap:4px}
.streak-pill .ic,.streak-inline .ic{width:14px;height:14px}
.today-card-sub .ic{width:13px;height:13px;vertical-align:-2px;color:var(--orange)}
.today-card.done .today-card-sub .ic{color:inherit}
.xp-label .ic{width:16px;height:16px;vertical-align:-3px;margin-right:4px}
.pref-icon{width:36px;height:36px;border-radius:12px;background:var(--surface-2);display:flex;align-items:center;justify-content:center}
.pref-icon .ic{width:18px;height:18px}
.account-avatar .ic{width:32px;height:32px}
.modal-label .ic{width:15px;height:15px;vertical-align:-2px}
.modal-reset-btn{display:flex;align-items:center;justify-content:center;gap:8px}
.modal-reset-btn .ic{width:18px;height:18px}
.sleep-time-label{display:flex;align-items:center;gap:6px}
.sleep-time-label .ic{width:15px;height:15px}
.toast{display:flex;align-items:center;justify-content:center;gap:8px}
.toast .ic{width:18px;height:18px}
.danger-zone-card .account-section-title{display:flex;align-items:center;gap:6px}
.ctl{width:100%}
.ctl-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}
.ctl-value{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.4rem;line-height:1;letter-spacing:-.01em;color:var(--text)}
.ctl-value small{font-size:.6em;font-weight:600;color:var(--text-2);letter-spacing:0}
.ctl-hint{font-size:.78rem;font-weight:600;color:var(--text-2)}
.ctl .pbar{margin-bottom:0}
.step-btn{min-width:0}
.step-btn-minus{flex:0 0 56px}
.step-btn:disabled{opacity:.3;cursor:default}
.step-btn:disabled:hover{background:transparent;color:var(--text)}
.today-card.done .step-btn:disabled:hover{background:transparent;color:var(--ink-text)}
.pbar-thin{height:6px;border-radius:3px;margin:6px 0 0}
.pbar-thin .pbar-fill{border-radius:3px}
.my-habit-info{min-width:0}
.ink-seg{background:linear-gradient(90deg,var(--ink, var(--text)) var(--fill, 0%),transparent var(--fill, 0%))}
.ink-seg.done{background:var(--ink, var(--text))}
.toast{width:max-content}
.hf-input{width:100%;flex:none}
select.hf-input{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 14px) 21px;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}
.hf-opt{font-weight:500;color:var(--text-3)}
.hf-hint{font-size:.8rem;color:var(--text-2);margin-top:8px}
.hf-fixed{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.15rem;color:var(--text)}
.hf-seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hf-chip{min-height:44px;border-radius:14px;border:2px solid var(--border-strong);color:var(--text);text-align:left;padding:10px 14px;transition:background-color .15s,color .15s}
.hf-kind{display:flex;flex-direction:column;gap:2px}
.hf-kind b{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1rem}
.hf-kind span{font-size:.75rem;font-weight:500;color:var(--text-2)}
.hf-chip.selected{background:var(--text);border-color:var(--text);color:var(--bg)}
.hf-chip.selected span{color:inherit;opacity:.75}
.hf-emoji-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.hf-emoji-input{flex:none;width:64px;padding:0;text-align:center;font-size:1.5rem}
.hf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}
.hf-emoji-btn{height:44px;border-radius:12px;border:2px solid transparent;background:var(--surface-2);font-size:1.25rem}
.hf-emoji-btn.selected{border-color:var(--text)}
.hf-swatches{display:flex;flex-wrap:wrap;gap:12px}
.hf-swatch{width:40px;height:40px;border-radius:50%;background:var(--c);border:2px solid var(--border)}
.hf-swatch.selected{outline:3px solid var(--text);outline-offset:2px;border-color:var(--bg)}
.hf-days{display:flex;gap:6px}
.hf-day{flex:1;min-width:0;height:46px;border-radius:12px;border:2px solid var(--border-strong);font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1rem;color:var(--text);transition:background-color .15s,color .15s}
.hf-day.selected{background:var(--text);border-color:var(--text);color:var(--bg)}
.hf-presets{display:flex;gap:16px;margin-top:6px}
.hf-link{min-height:36px;font-size:.82rem;font-weight:700;color:var(--text-2);text-decoration:underline;text-underline-offset:3px}
.hf-num-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hf-num-field label{display:block;margin-bottom:6px;font-size:.8rem;font-weight:600;color:var(--text-2)}
.hf-num-field .pseudo-input[readonly]{opacity:.6}
.hf-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px 20px}
.hf-actions{display:flex;flex-direction:column;gap:10px;padding:0 20px 4px}
.hf-actions .modal-save-btn{width:100%;height:50px;border-radius:14px;font-size:.95rem}
.my-habit-edit{width:36px;height:36px;flex-shrink:0;border-radius:50%;border:1.5px solid var(--border-strong);color:var(--text);display:flex;align-items:center;justify-content:center;transition:background-color .15s,color .15s}
.my-habit-edit:hover{background:var(--text);color:var(--bg)}
.my-habit-edit .ic{width:16px;height:16px}
.my-habit-meta{display:flex;flex-wrap:wrap;align-items:center;column-gap:10px}
.empty-note{padding:28px 20px;text-align:center;font-size:.92rem;color:var(--text-2)}
.reminder-row{cursor:pointer}
.reminder-row:hover{background:var(--surface-2)}
.reminder-time{flex-shrink:0;min-width:62px;font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.5rem;letter-spacing:-.01em;color:var(--text)}
.reminder-info{flex:1}
.reminder-row.off .reminder-time,.reminder-row.off .reminder-info{opacity:.45}
.reminder-add{width:100%;min-height:44px;font-weight:700;font-size:.95rem;color:var(--text)}
.reminders-note{margin:10px 4px 0}
.reminder-test{margin-top:12px}
.theme-seg{display:inline-flex;padding:3px;gap:2px;border:1.5px solid var(--border-strong);border-radius:12px;flex-shrink:0}
.theme-seg-btn{min-height:34px;padding:0 12px;border-radius:9px;font-size:.82rem;font-weight:700;color:var(--text-2);transition:background-color .15s,color .15s}
.theme-seg-btn.active{background:var(--text);color:var(--bg)}
.pause-wrap{padding:0 20px 14px}
.pause-pill{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;border-radius:20px;border:1.5px dashed var(--border-strong);font-size:.84rem;font-weight:700;color:var(--text)}
.pause-pill span{font-weight:600;color:var(--text-2)}
.pause-pill:hover{background:var(--surface-2)}
.pause-banner{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:var(--surface);border:2px solid var(--ink-1)}
.pause-ico{font-size:1.4rem;line-height:1}
.pause-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.pause-txt b{font-family:var(--f-display);font-stretch:85%;font-size:1.05rem;color:var(--text)}
.pause-txt span{font-size:.82rem;color:var(--text-2)}
.pause-btn{min-height:38px;padding:0 14px;border-radius:12px;border:1.5px solid var(--text);font-size:.85rem;font-weight:700;color:var(--text)}
.pause-btn:hover{background:var(--text);color:var(--bg)}
.pause-note{padding-top:36px}
.pause-note-ico{font-size:2rem}
.pf-status{min-height:1.3em}
.pf-ok{color:var(--text-2)}
.pf-bad{color:var(--danger);font-weight:700}
.pf-reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pf-reason{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;text-align:center}
.pf-reason span{font-size:1.3rem;line-height:1.2}
.pf-reason b{font-size:.78rem;font-weight:700}
.pf-list{display:flex;flex-direction:column;gap:6px}
.pf-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:12px;background:var(--surface-2);font-size:.88rem;color:var(--text)}
.pf-del{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-2)}
.pf-del:hover{background:var(--danger);color:#fff}
.pf-del .ic{width:16px;height:16px}
.stepper{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1.5px solid var(--border-strong);border-radius:12px}
.stepper button{width:36px;height:36px;border-radius:9px;font-size:1.2rem;font-weight:700;color:var(--text)}
.stepper button:hover:not(:disabled){background:var(--text);color:var(--bg)}
.stepper button:disabled{opacity:.3;cursor:default}
.stepper span{min-width:26px;text-align:center;font-family:var(--f-display);font-weight:800;font-size:1.1rem;color:var(--text)}
.week-day-dot.paused{background:repeating-linear-gradient(45deg,transparent 0 4px,var(--border) 4px 5px)}
.overall-dot.paused{background:repeating-linear-gradient(45deg,transparent 0 3px,var(--border-strong) 3px 4px);border-radius:30%}
.cal-stats-cell.paused{border:1.5px dashed var(--border-strong);color:var(--text-3);background:repeating-linear-gradient(45deg,transparent 0 4px,var(--border) 4px 5px)}
.bad-levels{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.bad-chip{min-height:40px;padding:0 14px;border-radius:20px;border:2px solid var(--border-strong);font-size:.88rem;font-weight:700;color:var(--text);transition:background-color .15s,color .15s,border-color .15s}
.bad-chip.sel{background:var(--danger);border-color:var(--danger);color:#fff}
.bad-chip.bad-chip-ok.sel{background:var(--ink);border-color:var(--ink);color:var(--ink-text)}
.overall-dot.failed{background:var(--danger);border:none}
.hf-presets-wrap{display:flex;flex-wrap:wrap;gap:8px}
.hf-seg .hf-kind:last-child:nth-child(odd){grid-column:1 / -1}
.hf-suggest{min-height:36px;padding:0 12px;border-radius:18px;border:1.5px solid var(--border-strong);font-size:.84rem;font-weight:600;color:var(--text)}
.hf-suggest:hover{background:var(--text);color:var(--bg)}
.med-amb-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.med-amb-btn{min-height:40px;border-radius:12px;border:1.5px solid var(--border-strong);font-size:.84rem;font-weight:700;color:var(--text-2);transition:background-color .15s,color .15s}
.med-amb-btn.active{background:var(--text);border-color:var(--text);color:#12131a}
.breath-pattern-btn:disabled{opacity:.45;cursor:default}
.med-clock{font-size:2.7rem}
.med-actions{display:flex;flex-direction:column;gap:10px}
.med-stop-btn{min-height:44px;border-radius:14px;border:1.5px solid var(--border-strong);font-weight:700;color:var(--text-2)}
.med-stop-btn:hover{background:var(--surface);color:var(--text)}
@keyframes medPulse{0%,to{transform:scale(.74)}50%{transform:scale(.92)}}
.breath-stage.med-running .breath-orb{animation:medPulse 8s ease-in-out infinite}
.breath-stage .breath-ring-fill#medRing{transition:stroke-dashoffset .3s linear}
@media(prefers-reduced-motion:reduce){.breath-stage.med-running .breath-orb{animation:none}}
.rep-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.rep-seg{display:grid;grid-template-columns:repeat(3,1fr);padding:3px;gap:2px;border:1.5px solid var(--border-strong);border-radius:14px}
.rep-seg-btn{min-height:38px;border-radius:11px;font-weight:700;font-size:.9rem;color:var(--text-2);transition:background-color .15s,color .15s}
.rep-seg-btn.active{background:var(--text);color:var(--bg)}
.rep-row{display:flex;flex-direction:column;gap:10px}
.rep-nav{display:flex;align-items:center;justify-content:space-between}
.rep-nav .mood-cal-nav-btn:disabled{opacity:.25;cursor:default}
.rep-range{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.15rem;color:var(--text);text-align:center}
.rep-select{width:100%;flex:none;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 14px) 21px;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}
button.report-period-badge{background:none;font-family:inherit;cursor:pointer}
button.report-period-badge:hover{background:var(--text);color:var(--bg)}
.bar-chart.dense{gap:3px}
.bar-chart.dense .bar-fill{border-radius:4px 4px 2px 2px}
.bar-chart.dense .bar-label{font-size:.6rem;white-space:nowrap}
.bar-chart.dense .bar-col{position:relative}
.bar-chart.dense .bar-label{position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}
.insight-summary{font-size:.9rem;color:var(--text-2);margin-bottom:12px}
.insight-summary b{color:var(--text);font-family:var(--f-display);font-size:1.1rem}
.insight-row{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1.5px solid var(--border)}
.insight-ico{width:40px;height:40px;flex-shrink:0;border-radius:12px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:1.2rem}
.insight-main{flex:1;min-width:0}
.insight-text{font-size:.92rem;line-height:1.4;color:var(--text)}
.insight-text b{font-family:var(--f-display);font-weight:800}
.insight-n{margin-top:3px;font-size:.74rem;color:var(--text-3)}
.insight-delta{flex-shrink:0;padding:4px 10px;border-radius:12px;font-family:var(--f-display);font-weight:800;font-size:.9rem;color:#12131a}
.insight-delta.up{background:var(--ink-4)}
.insight-delta.down{background:#ff8a8a}
.insight-empty{padding:8px 0 4px;font-size:.9rem;color:var(--text-2)}
.insight-progress{display:flex;align-items:center;gap:12px;margin-top:12px}
.insight-progress .pbar{flex:1}
.insight-progress span{font-size:.8rem;font-weight:700;color:var(--text);white-space:nowrap}
.insight-note{margin-top:10px;padding-top:10px;border-top:1.5px solid var(--border);font-size:.74rem;color:var(--text-3)}
.journal-field{padding:0 16px 16px}
.journal-field label{display:block;margin-bottom:8px;font-size:.85rem;font-weight:700;color:var(--text)}
.journal-field label span{font-weight:500;color:var(--text-3)}
.journal-field textarea{width:100%;min-height:96px;resize:vertical;padding:12px 14px;border-radius:14px;border:2px solid var(--border-strong);background:var(--surface-2);color:var(--text);font:inherit;font-size:.95rem;line-height:1.4}
.journal-field textarea:focus{border-color:var(--text);outline:none}
.journal-count{margin-top:4px;text-align:right;font-size:.74rem;color:var(--text-3)}
.mood-cal-cell.editable{cursor:pointer;border-radius:10px}
.mood-cal-cell.editable:hover{background:var(--surface-2)}
.mood-cal-emoji{position:relative}
.mood-note-dot{position:absolute;right:-3px;top:2px;width:8px;height:8px;border-radius:50%;background:var(--text);border:1.5px solid var(--surface)}
.journal-search{width:100%;flex:none;margin-bottom:12px}
.journal-entry{padding:14px 0;border-top:1.5px solid var(--border)}
.journal-head{display:flex;align-items:center;gap:10px}
.journal-emoji{font-size:1.5rem;line-height:1}
.journal-date{flex:1;min-width:0;font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1rem;color:var(--text)}
.journal-mood{font-family:var(--f-body, inherit);font-weight:600;font-size:.85rem;color:var(--text-2)}
.journal-actions{display:flex;gap:2px}
.journal-actions button{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-2)}
.journal-actions button:hover{background:var(--surface-2);color:var(--text)}
.journal-actions .ic{width:16px;height:16px}
.journal-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.journal-tag{padding:2px 10px;border-radius:12px;border:1.5px solid var(--border-strong);font-size:.74rem;font-weight:600;color:var(--text-2)}
.journal-text{margin-top:10px;font-size:.93rem;line-height:1.5;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.journal-empty{padding:8px 0 4px;font-size:.9rem;color:var(--text-2)}
.journal-more{width:100%;min-height:44px;margin-top:6px;border-top:1.5px solid var(--border);font-weight:700;font-size:.88rem;color:var(--text-2)}
.journal-more:hover{color:var(--text)}
.ach-tabs{margin-bottom:14px}
.season-card{margin:0 0 20px;padding:18px 18px 16px;border-radius:20px;background:var(--text);color:var(--bg)}
.season-top{display:flex;align-items:center;gap:14px}
.season-emoji{font-size:2.2rem;line-height:1}
.season-main{flex:1;min-width:0}
.season-label{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.7}
.season-rank{font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:1.9rem;line-height:1.05}
.season-rank span{font-size:1.2rem;font-weight:700;opacity:.85}
.season-left{text-align:right;line-height:1.1}
.season-left b{display:block;font-family:var(--f-display);font-size:1.6rem;font-weight:800}
.season-left span{font-size:.7rem;opacity:.7}
.season-bar{height:10px;margin:16px 0 8px;border-radius:6px;background:#7f7f7f59;overflow:hidden}
.season-bar div{height:100%;border-radius:6px;background:var(--ink-2);transition:width .5s ease}
.season-foot{display:flex;justify-content:space-between;gap:10px;font-size:.8rem;font-weight:600;opacity:.85}
.season-past{margin-top:14px;padding-top:12px;border-top:1px solid rgba(127,127,127,.4)}
.season-past-title{margin-bottom:6px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.6}
.season-past-row{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:.82rem;opacity:.9}
.chal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.chal-head .pref-edit:disabled{opacity:.35;cursor:default}
.chal-list{display:flex;flex-direction:column;gap:12px}
.chal-card{padding:14px 16px;border-radius:18px;background:var(--surface);border:2px solid var(--c, var(--border-strong))}
.chal-top{display:flex;align-items:center;gap:12px}
.chal-emoji{width:44px;height:44px;flex-shrink:0;border-radius:14px;background:var(--c);display:flex;align-items:center;justify-content:center;font-size:1.4rem}
.chal-main{flex:1;min-width:0}
.chal-title{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.1rem;line-height:1.15;color:var(--text);overflow-wrap:anywhere}
.chal-sub{margin-top:2px;font-size:.8rem;color:var(--text-2)}
.chal-x{width:36px;height:36px;flex-shrink:0;border-radius:50%;color:var(--text-3);font-size:.95rem}
.chal-x:hover{background:var(--danger);color:#fff}
.chal-bar{height:10px;margin:14px 0 8px;border-radius:6px;background:var(--border);overflow:hidden}
.chal-bar div{height:100%;border-radius:6px;background:var(--c, var(--text));transition:width .5s ease}
.chal-foot{display:flex;justify-content:space-between;gap:10px;font-size:.82rem;color:var(--text-2)}
.chal-foot b{color:var(--text);font-family:var(--f-display);font-size:1rem}
.chal-empty{padding:20px 8px}
.chal-hist-list{display:flex;flex-direction:column}
.chal-hist{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1.5px solid var(--border);font-size:.92rem;color:var(--text)}
.chal-hist-ico{width:28px;height:28px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;color:#12131a;background:var(--border-strong)}
.chal-hist.ok .chal-hist-ico{background:var(--ink-4)}
.chal-hist.ko .chal-hist-ico{background:#ff8a8a}
.chal-hist-sub{font-size:.76rem;color:var(--text-2)}
.cf-durations .hf-day{font-size:.95rem}
.cf-custom{margin-left:4px}
.cf-days-input{display:inline-block;width:76px;height:38px;padding:0 8px;text-align:center;flex:none}
.cf-min{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px;font-size:.9rem;color:var(--text)}
[hidden]{display:none!important}
[tabindex="-1"]:focus{outline:none}
.pref-hint.warn{color:var(--danger);font-weight:600}
.undo-toast{position:fixed;left:50%;z-index:650;bottom:calc(var(--dock-h) + var(--safe-b) + 84px);display:flex;align-items:center;gap:14px;width:max-content;max-width:min(92vw,420px);padding:8px 8px 8px 18px;border-radius:16px;background:var(--text);color:var(--bg);font-size:.9rem;font-weight:600;line-height:1.3;box-shadow:0 8px 28px #00000040;transform:translate(-50%) translateY(14px);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility 0s linear .2s}
.undo-toast.show{opacity:1;visibility:visible;transform:translate(-50%) translateY(0);transition-delay:0s}
.undo-toast button{min-height:40px;padding:0 16px;border-radius:11px;background:var(--bg);color:var(--text);font-weight:800;font-size:.88rem;flex-shrink:0}
.undo-toast button:hover{background:var(--accent-bg, var(--bg))}
@media(prefers-reduced-motion:reduce){.undo-toast{transition:none}}
.hf-archive-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;border-radius:14px;border:1.5px solid var(--border-strong);font-weight:700;font-size:.92rem;color:var(--text)}
.hf-archive-btn:hover{background:var(--surface-2)}
.archived-section{margin-top:28px;padding:0 16px}
.archived-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.archived-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:var(--surface);border:1.5px dashed var(--border-strong)}
.archived-emoji{width:40px;height:40px;flex-shrink:0;border-radius:12px;background:var(--ink);display:flex;align-items:center;justify-content:center;color:var(--ink-text, #12131A);opacity:.55}
.archived-emoji svg{width:22px;height:22px}
.archived-info{flex:1;min-width:0}
.archived-name{font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1rem;color:var(--text);overflow-wrap:anywhere}
.archived-meta{font-size:.76rem;color:var(--text-2)}
.archived-del{width:36px;height:36px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-3)}
.archived-del:hover{background:var(--danger);color:#fff}
.archived-del .ic{width:16px;height:16px}
.backup-nudge{display:flex;align-items:center;gap:10px;padding:10px 8px 10px 14px;border-radius:16px;background:var(--surface);border:1.5px solid var(--border-strong)}
.backup-nudge-txt{flex:1;min-width:0;font-size:.85rem;font-weight:600;color:var(--text)}
.backup-x{width:34px;height:34px;flex-shrink:0;border-radius:50%;color:var(--text-3);font-size:.9rem}
.backup-x:hover{background:var(--surface-2);color:var(--text)}
.toast{z-index:700}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tdots{letter-spacing:3px;font-size:.78rem;margin-right:2px}
.header-actions{display:flex;align-items:center;gap:10px}
.header-action-btn.active{background:var(--text);color:var(--bg)}
.reorder-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 16px 0;padding:12px 14px;border-radius:14px;background:var(--surface-2);font-size:.85rem;color:var(--text-2)}
.my-habits-list.reordering{position:relative}
.reorder-row{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 6px;border-radius:16px;background:var(--surface);border:1.5px solid var(--border);transition:transform .18s ease,box-shadow .18s ease;touch-action:pan-y}
.is-dragging .reorder-row:not(.dragging){transition:transform .18s ease}
.reorder-row.dragging{position:relative;z-index:20;transition:box-shadow .18s ease;box-shadow:0 12px 32px #00000047;border-color:var(--text);background:var(--surface)}
.drag-handle{width:44px;height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:12px;color:var(--text-2);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.drag-handle:active,.reorder-row.dragging .drag-handle{cursor:grabbing;color:var(--text)}
.drag-handle:hover{background:var(--surface-2)}
.reorder-name{flex:1;min-width:0;font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.05rem;color:var(--text);overflow-wrap:anywhere}
.reorder-btns{display:flex;gap:6px}
.reorder-btns button{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--border-strong);font-size:1.05rem;font-weight:700;color:var(--text)}
.reorder-btns button:hover:not(:disabled){background:var(--text);color:var(--bg)}
.reorder-btns button:disabled{opacity:.25;cursor:default}
.my-habit-open{text-align:left;border-radius:10px}
.my-habit-name .my-habit-open{font:inherit;color:inherit;overflow-wrap:anywhere}
.my-habit-name .my-habit-open:hover{text-decoration:underline;text-underline-offset:3px}
button.my-habit-emoji{cursor:pointer;border:0}
.rv-range{margin-top:2px;font-size:.8rem;color:var(--text-2)}
.rep-fiche{align-self:flex-start}
.day-start-select{height:40px;padding:0 10px;border-radius:12px;border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:700;font-size:.9rem;flex-shrink:0}
.dt-head{display:flex;align-items:center;gap:14px;padding:0 20px 16px}
.dt-emoji{width:52px;height:52px;flex-shrink:0;border-radius:16px;background:var(--ink);display:flex;align-items:center;justify-content:center;color:var(--ink-text, #12131A);font-size:1.6rem}
.dt-emoji svg{width:28px;height:28px}
.dt-head-txt{min-width:0}
.dt-name{font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:1.5rem;line-height:1.1;color:var(--text);overflow-wrap:anywhere}
.dt-freq{margin-top:2px;font-size:.82rem;color:var(--text-2)}
.dt-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 20px 6px}
.dt-tile{padding:12px 14px;border-radius:16px;background:var(--surface-2)}
.dt-val{font-family:var(--f-display);font-stretch:85%;font-weight:800;font-size:1.45rem;line-height:1.1;color:var(--text)}
.dt-lab{margin-top:3px;font-size:.74rem;font-weight:600;color:var(--text-2)}
.dt-mood{display:flex;align-items:center;gap:12px;margin:12px 20px 0;padding:12px 14px;border-radius:14px;border:1.5px solid var(--border);font-size:.86rem;line-height:1.4;color:var(--text)}
.dt-mood>span{font-size:1.6rem}
.dt-levels{margin:12px 20px 0}
.dt-sub{margin-bottom:6px;font-size:.76rem;font-weight:700;color:var(--text-2)}
.dt-chip{display:inline-block;margin:0 6px 6px 0;padding:4px 10px;border-radius:14px;background:var(--surface-2);font-size:.8rem;color:var(--text)}
.dt-section{padding:20px 20px 0}
.dt-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.dt-section-title{margin-bottom:10px;font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.05rem;color:var(--text)}
.dt-section-head .dt-section-title{margin:0}
.dt-nav{display:flex;gap:6px}
.dt-nav .mood-cal-nav-btn:disabled{opacity:.25;cursor:default}
.dt-text{margin-top:10px;font-size:.86rem;line-height:1.45;color:var(--text-2)}
.dt-text b{color:var(--text)}
.dg-scroll{overflow-x:auto;padding-bottom:8px;border-radius:10px}
.dg-scroll:focus-visible{outline:2px solid var(--text);outline-offset:2px}
.dg-inner{--dg-cell: 12px;width:max-content}
.dg-months{display:grid;column-gap:3px;margin-bottom:4px;font-size:.62rem;font-weight:600;color:var(--text-3);height:12px}
.dg-months span{white-space:nowrap;overflow:visible}
.dg-grid{display:grid;grid-template-rows:repeat(7,var(--dg-cell));grid-auto-flow:column;grid-auto-columns:var(--dg-cell);gap:3px}
.dg-cell{display:block;width:var(--dg-cell, 12px);height:var(--dg-cell, 12px);border-radius:3px;background:var(--border)}
.dg-done{background:var(--hc, var(--text))}
.dg-part{background:var(--hc, var(--text));opacity:calc(.3 + .55 * var(--a, .5))}
.dg-miss{background:var(--border)}
.dg-rest{background:var(--surface-2)}
.dg-fail{background:var(--danger)}
.dg-off,.dg-none,.dg-future{background:transparent;box-shadow:inset 0 0 0 1px var(--border);opacity:.55}
.dg-future,.dg-none{box-shadow:none;opacity:0}
.dg-blank{background:transparent}
.dg-paused{background:repeating-linear-gradient(45deg,transparent 0 2px,var(--border-strong) 2px 3px)}
.dg-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:.72rem;color:var(--text-2)}
.dg-legend span{display:inline-flex;align-items:center;gap:5px}
.dw-chart{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.dw-col{display:flex;flex-direction:column;align-items:center;gap:4px}
.dw-bar{width:100%;height:84px;display:flex;align-items:flex-end;border-radius:8px;background:var(--surface-2);overflow:hidden}
.dw-bar i{display:block;width:100%;background:var(--hc, var(--text));border-radius:8px 8px 0 0}
.dw-val{font-size:.72rem;font-weight:700;color:var(--text)}
.dw-lab{font-size:.72rem;color:var(--text-2)}
.rv-hero{text-align:center;padding:0 20px 14px}
.rv-score{font-family:var(--f-display);font-stretch:75%;font-weight:800;font-size:5.2rem;line-height:1;letter-spacing:-.03em;color:var(--text)}
.rv-score span{font-size:2rem;margin-left:2px;opacity:.6}
.rv-delta{display:inline-block;margin-top:8px;padding:4px 12px;border-radius:14px;background:var(--surface-2);font-weight:800;font-size:.9rem;color:var(--text)}
.rv-delta small{font-weight:600;color:var(--text-2)}
.rv-delta.up{background:var(--ink-4);color:#12131a}
.rv-delta.up small{color:#12131a;opacity:.7}
.rv-delta.down{background:#ff8a8a;color:#12131a}
.rv-delta.down small{color:#12131a;opacity:.7}
.rv-verdict{margin-top:10px;font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.25rem;color:var(--text)}
.rv-sub{margin-top:2px;font-size:.82rem;color:var(--text-2)}
.rv-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 20px}
.rv-tile{padding:12px 14px;border-radius:16px;background:var(--surface-2)}
.rv-ico{font-size:1.2rem;line-height:1}
.rv-val{margin-top:6px;font-family:var(--f-display);font-stretch:85%;font-weight:800;font-size:1.3rem;line-height:1.1;color:var(--text);overflow-wrap:anywhere}
.rv-lab{margin-top:2px;font-size:.74rem;font-weight:600;color:var(--text-2)}
.rv-season{margin:14px 20px 0;padding:14px 16px;border-radius:18px;background:var(--text);color:var(--bg)}
.rv-season-top{display:flex;align-items:center;gap:12px}
.rv-season-emoji{font-size:1.8rem}
.rv-season-label{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.7}
.rv-season-rank{font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:1.4rem;line-height:1.1}
.rv-season .season-bar{margin:12px 0 6px}
.rv-season-foot{font-size:.78rem;font-weight:600;opacity:.85}
.rv-sec{padding:16px 20px 4px}
.rv-sec-title{margin-bottom:8px;font-family:var(--f-display);font-stretch:85%;font-weight:700;font-size:1.05rem;color:var(--text)}
.rv-forgot{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;border:1.5px dashed var(--border-strong)}
.rv-forgot-emoji{font-size:1.5rem}
.rv-forgot-emoji svg{width:26px;height:26px}
.rv-forgot-txt{flex:1;min-width:0;display:flex;flex-direction:column;font-size:.82rem;color:var(--text-2)}
.rv-forgot-txt b{font-size:.98rem;color:var(--text);overflow-wrap:anywhere}
.rv-perfect{font-size:.9rem;color:var(--text-2)}
.rv-best{margin-top:12px;font-size:.86rem;color:var(--text-2)}
.rv-best b{color:var(--text)}
.rv-mini{display:flex;align-items:center;gap:14px}
.rv-mini-score{font-family:var(--f-display);font-stretch:80%;font-weight:800;font-size:2.2rem;color:var(--text)}
.rv-mini-txt{flex:1;font-size:.9rem;font-weight:600;color:var(--text);line-height:1.25}
.rv-mini-txt small{font-weight:500;color:var(--text-2)}
