.setup-dialog{width:min(94%,540px);padding:24px}.setup-progress{display:block;width:100%;height:7px;border:0;border-radius:20px;overflow:hidden;background:#30332a;accent-color:var(--accent);margin:18px 0 26px}.setup-progress::-webkit-progress-bar{background:#30332a}.setup-progress::-webkit-progress-value{background:var(--accent);border-radius:20px;transition:width .3s}.setup-progress::-moz-progress-bar{background:var(--accent)}.step-slide{animation:card-in .25s ease-out}.habit-cover{display:flex;align-items:center;gap:20px;border-radius:22px;background:var(--accent);color:#171b0d;padding:25px;margin:22px 0}.habit-cover>span{font-size:54px;line-height:1.2}.habit-cover small{font-size:10px;letter-spacing:2px;font-weight:800}.habit-cover h3{font-size:27px;letter-spacing:-1px;margin:4px 0}.pick-art{font-size:30px;display:block;margin-bottom:10px}.setup-dialog .pick{padding:18px;transition:background .18s,transform .18s}.setup-dialog .pick:active{transform:scale(.97)}.goal-list{display:grid;gap:9px}.goal-check{margin:0;display:flex;gap:12px;align-items:center;min-height:52px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;cursor:pointer;background:var(--card)}.goal-check:has(input:checked){border-color:var(--accent);background:#2c321b}.goal-check input{width:20px;height:20px;flex-shrink:0;accent-color:var(--accent);margin:0}.wizard-actions{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;margin-top:20px}.review-habit{display:flex;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.review-habit>span{font-size:28px}.review-habit>div{flex:1;min-width:0}.review-habit p{margin:4px 0;font-size:13px}.review-habit small{color:var(--muted)}@keyframes card-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@media(prefers-reduced-motion:reduce){.step-slide{animation:none}.setup-dialog *{transition:none}}@media(max-width:400px){.setup-dialog{padding:18px}.habit-cover{padding:20px;gap:12px}.habit-cover h3{font-size:23px}.habit-cover>span{font-size:42px}.setup-dialog .pick{padding:13px}}

/* Stable selection: no rerender, movement or scroll reset on toggle. */
.setup-dialog .pick,.setup-dialog .pick:active{transform:none;transition:none}.lucide{width:1.25em;height:1.25em;display:inline-block;vertical-align:-.25em;flex-shrink:0}.pick-art{color:var(--accent);line-height:1}.pick-art .lucide{width:30px;height:30px}.pick.selected .pick-art{color:#171b0d}.habit-cover{display:grid;grid-template-columns:1fr;gap:14px;padding:22px;overflow:visible}.habit-cover>span{font-size:40px;line-height:1}.habit-cover>span .lucide{width:40px;height:40px}.habit-cover>div{min-width:0;width:100%}.habit-cover h3{font-size:clamp(20px,5.2vw,27px);line-height:1.15;overflow-wrap:normal;word-break:normal;text-wrap:balance;letter-spacing:-.7px;margin:7px 0 0}.review-habit>span{color:var(--accent)}.habit>b>.lucide{color:var(--accent);margin-right:5px}@media(max-width:360px){.habit-cover{padding:17px}.habit-cover h3{font-size:19px}}

/* Keep the check-in inside the mobile viewport, including Safari date controls. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body:has(dialog[open]){overflow:hidden}
#modal{position:fixed;inset:0;box-sizing:border-box;width:calc(100% - 24px);max-width:490px;max-height:calc(100dvh - 32px);margin:auto;overflow-x:hidden;overflow-y:auto;touch-action:pan-y pinch-zoom}
#modal.setup-dialog{max-width:540px}
#modal form,#modal label,#modal .habit{min-width:0;max-width:100%}
#modal input:not([type=checkbox]),#modal select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;font-size:16px}
#modal input[type=date]{display:block;appearance:none;-webkit-appearance:none;min-height:48px;overflow:hidden}
#modal input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}
#checkin-title:focus{outline:none}
@media(max-width:540px){#modal{padding:20px}#modal .choices{gap:8px}#modal .choice{padding:11px;flex:0 1 auto}}

html,body{width:100%;max-width:100%;touch-action:pan-y}#modal{touch-action:pan-y}.shell,main,.card,.stats,.calendar{min-width:0;max-width:100%}.calendar{grid-template-columns:repeat(7,minmax(0,1fr))}input,select,textarea{font-size:16px}input[type=time]{appearance:none;-webkit-appearance:none;min-width:0;max-width:100%}.push-switch{width:56px;height:34px;min-width:56px;flex-shrink:0;padding:4px;border:1px solid var(--line);border-radius:30px;background:#34382d}.push-switch span{display:block;background:#f6f7ef;border-radius:50%;width:24px;height:24px;transition:transform .15s}.push-switch[aria-checked=true]{background:var(--accent)}.push-switch[aria-checked=true] span{transform:translateX(20px);background:#11120f}
.league-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 22px}.league-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 18px;scrollbar-width:thin}.league-tabs button{flex:0 0 auto;max-width:220px}.league-trophy{display:inline-block;color:var(--accent);font-size:42px}.league-board h2{font-size:26px;margin-top:7px}.league-board .person:first-of-type{border-color:var(--accent)}.league-footer{display:flex;gap:12px;justify-content:space-between;margin-top:18px}.league-empty{text-align:center;padding:36px 24px}.league-empty h2{margin-top:18px}.league-empty .cta{margin-top:16px}

.person.leader,.person.leader.me{position:relative;border:0;background:transparent;border-radius:14px;padding:17px 0;margin:12px 0 4px;gap:13px;isolation:isolate}.person.leader::before{content:"";position:absolute;inset:0 -12px;border:1px solid #b8f542;border-radius:14px;background:linear-gradient(110deg,#b8f54220,#b8f54208);z-index:-1;pointer-events:none}.person.leader .rank{position:relative;width:18px;height:28px;color:#b8f542}.person.leader .rank svg{position:absolute;right:-3px;top:0;width:28px;height:28px;stroke-width:2.5}.person.leader .score{color:#b8f542;font-weight:900}.person.leader .name{font-weight:800}.person.leader .avatar{box-shadow:0 0 0 1px #b8f54266;flex-shrink:0}@media(max-width:400px){.person.leader,.person.leader.me{gap:8px}}

.selection-dock{position:sticky;top:-18px;z-index:2;background:#11120ff5;padding:14px 0;border-bottom:1px solid var(--line);margin-bottom:12px}#chosen-habits{display:flex;gap:6px;overflow-x:auto;margin-top:9px;padding-bottom:4px;min-height:34px}.chosen-chip{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;background:#b8f54218;border:1px solid #b8f54244;color:#b8f542;border-radius:20px;padding:5px 9px;font-size:12px}.chosen-chip svg{width:16px;height:16px}.habit-category{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:10px}.habit-category summary{font-size:17px;font-weight:750}.category-count{float:right;font-size:12px;font-weight:400;color:var(--muted);padding-top:4px}.habit-category .catalog{margin-top:10px}.habit-category .pick{min-width:0}

.tone-segments{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#11120f;border:1px solid var(--line);border-radius:14px;padding:4px}.tone-segments button{border:0;border-radius:10px;min-height:46px;padding:10px;color:#c4c9ba;background:transparent;font-weight:750}.tone-segments button[aria-pressed=true]{background:#b8f542;color:#11120f}.tone-picker{margin:20px 0}.tone-picker legend{margin-bottom:10px}#tone-description{min-height:3em}

.profile-notifications{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin:22px 0}.profile-notifications h2{font-size:18px}.profile-notifications .compact-time{display:block;width:145px;padding:9px 12px;min-height:44px}.profile-notifications [hidden]{display:none}

.notification-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:12px 0;border-top:1px solid var(--line);font-size:14px}.profile-notifications .compact-time{width:115px;flex:0 0 115px;margin:0}.tone-example{font-size:13px;line-height:1.5;color:#b5bba9;margin:12px 0 0}.profile-notifications .tone-picker{margin:16px 0}.profile-notifications>p:empty{display:none}.compact-toggle{appearance:none;width:42px;height:26px;min-height:26px;flex:0 0 42px;padding:3px;border-radius:20px;background:#43483b;border:0;cursor:pointer}.compact-toggle::before{content:"";display:block;width:20px;height:20px;border-radius:50%;background:white}.compact-toggle:checked{background:#b8f542}.compact-toggle:checked::before{transform:translateX(16px);background:#11120f}.profile-notifications .mini{margin-top:12px}

/* Folder tabs keep panels mounted so switching never discards a draft. */
.profile-folder{max-width:740px;margin:auto}.profile-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;align-items:stretch;padding:0 6px}.profile-tabs button{position:relative;min-width:0;min-height:58px;border:1px solid var(--line);border-bottom:0;border-radius:15px 15px 0 0;background:#171a13;color:var(--muted);font-size:14px;font-weight:750;padding:12px 8px;line-height:1.25;overflow-wrap:normal;transform:none}.profile-tabs button[aria-selected=true]{background:var(--card);color:#b8f542;border-top:3px solid #b8f542;z-index:1}.profile-tabs button[aria-selected=true]::after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--card)}.profile-sheet{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px;min-height:300px}.profile-sheet [data-profile-panel][hidden]{display:none}.profile-sheet section>label{display:block;margin:18px 0}.profile-sheet input[type=date]{display:block;appearance:none;-webkit-appearance:none;min-width:0;width:100%;max-width:100%;min-height:48px}.profile-sheet input[type=date]::-webkit-date-and-time-value{text-align:left}.profile-sheet .profile-notifications{border:0;margin:0 0 18px;padding:0}.profile-data{border-top:1px solid var(--line);margin-top:26px;padding-top:24px}.profile-sheet details.card{padding:16px;margin:24px 0 0}.profile-signout{max-width:740px;margin:22px auto 0;text-align:center;padding-bottom:12px}.profile-signout button{width:100%}@media(max-width:400px){.profile-sheet{padding:18px}.profile-tabs{gap:3px;padding:0 3px}.profile-tabs button{font-size:12px;padding:10px 5px}}
/* Give focus outlines breathing room and keep folder labels within their tabs. */
.auth form>label{display:block;margin:20px 0}.auth form>label>input{display:block;margin-top:10px}.profile-tabs button{font-size:clamp(10px,2.9vw,14px);padding-inline:3px;letter-spacing:-.2px}
#modal.welcome-dialog{max-width:430px;padding:24px;border-radius:28px;background:#10120e}.welcome-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.welcome-top>span{font-size:10px;letter-spacing:1.6px;color:#9ba390;font-weight:800}.welcome-top button{font-size:12px}.welcome-progress{display:flex;gap:6px;margin:14px 0 24px}.welcome-progress i{height:4px;flex:1;border-radius:5px;background:#303629}.welcome-progress .on{background:#b8f542}.welcome-art{height:238px;display:flex;flex-direction:column;justify-content:center;gap:9px;background:radial-gradient(ellipse at 50% 15%,#b8f54212,transparent 75%)}.welcome-art>small{text-align:center;color:#a9b29c;font-size:11px;margin:5px 0}.welcome-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.welcome-tile{background:#1c2117;border:1px solid #354028;border-radius:16px;padding:16px 4px;text-align:center;font-size:11px;animation:welcome-rise .5s both}.welcome-tile svg{display:block;width:26px;height:26px;margin:0 auto 9px;color:#b8f542}.welcome-tile.chosen{background:#b8f542;color:#152009}.welcome-tile.chosen svg{color:#152009}.welcome-check,.welcome-player{display:flex;align-items:center;gap:10px;padding:15px;border:1px solid #333c29;background:#1c2117;border-radius:15px;font-size:13px;animation:welcome-rise .45s both}.welcome-check>svg{width:23px;height:23px;color:#b8f542}.welcome-check b,.welcome-player b{flex:1}.welcome-check>span{font-size:10px;color:#b8f542}.welcome-check>strong{color:#17210b;background:#b8f542;border-radius:50%;width:25px;height:25px;display:grid;place-items:center}.welcome-position{width:25px;text-align:center;color:#9ba68c}.welcome-position svg{width:25px;height:25px;color:#b8f542}.welcome-avatar{width:34px;height:34px;border-radius:50%;background:#343e28;display:grid;place-items:center;font-size:11px;font-weight:800}.welcome-player small{font-size:9px;color:#a6b195}.welcome-player.winner{border-color:#b8f542;background:#b8f54212;animation:welcome-rise .7s both}.welcome-player.winner strong,.welcome-art .welcome-win{color:#b8f542}.welcome-kicker{color:#b8f542;font-weight:800;font-size:11px;letter-spacing:2px;margin:25px 0 10px}#welcome-title{font-size:34px;line-height:1.08;letter-spacing:-1.4px;outline:none}.welcome-copy{font-size:15px;line-height:1.6;color:#b1b8a7;min-height:72px;margin:16px 0 24px}.welcome-actions{display:flex;gap:10px}.welcome-actions .cta{flex:1;width:auto;background:#b8f542;color:#16200c;padding:16px 12px;font-size:14px}.welcome-actions .choice{font-size:13px;padding:13px}.welcome-enter{animation:welcome-enter .3s ease-out}@keyframes welcome-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes welcome-enter{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}@media(max-width:360px){#modal.welcome-dialog{padding:18px}#welcome-title{font-size:30px}.welcome-check,.welcome-player{padding:12px}.welcome-art{height:222px}}@media(prefers-reduced-motion:reduce){.welcome-dialog *{animation:none!important;transition:none!important}}
