/* Daily Edge UI pass (2026-10-22): touch targets, primary/secondary/danger styles, pressed/loading/disabled states, feedback. Loaded last. */
.btn2,a.btn2{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:14px;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 12px;text-decoration:none;cursor:pointer}
.btn2.on{border-color:var(--acc);background:var(--h1)}
.cta{border-radius:10px;box-shadow:0 1px 0 rgba(0,0,0,.25)}
.danger,button[data-del],button[data-rdel],button[data-adel],button[data-hdel],button[data-alertdel],button[data-delacct],button[data-clear],#wipe{color:var(--bad)!important;border-color:color-mix(in srgb,var(--bad) 45%,var(--line))!important}
button,.btnl,.btn2,.navlink,.cta{transition:transform .06s,filter .12s,background-color .12s,border-color .12s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:active:not(:disabled),.btnl:active,.btn2:active,.navlink:active,.tapped{transform:scale(.96);filter:brightness(1.2)}
button:disabled,button[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}
button[aria-busy=true]{cursor:progress;opacity:.85}
button[aria-busy=true]::before{content:"";display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:uispin .7s linear infinite}
@keyframes uispin{to{transform:rotate(360deg)}}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
body.loading::after{content:"";position:fixed;top:0;left:0;height:3px;width:40%;background:var(--acc);z-index:9999;animation:uibar 1s ease-in-out infinite}
@keyframes uibar{0%{left:-40%}100%{left:100%}}
#toast{z-index:9998;max-width:calc(100vw - 24px);text-align:center;box-shadow:0 4px 18px rgba(0,0,0,.35)}
@media (max-width:900px),(pointer:coarse){
 button,.btnl,.btn2,select,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),summary{min-height:44px}
 button,.btnl,.btn2{min-width:44px}
 input[type=checkbox],input[type=radio]{width:24px;height:24px}
 header{padding:8px 10px}
 .navwrap{position:relative;display:flex;align-items:stretch;min-width:0;flex:1 1 auto;max-width:100%}
 header nav{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%;gap:2px;flex:1 1 auto;min-width:0}
 header nav::-webkit-scrollbar{display:none}
 .navlink,nav button,nav a{display:inline-flex!important;align-items:center;min-height:44px;padding:0 10px!important;flex:0 0 auto}
 .navmore{display:none;flex:none;align-items:center;justify-content:center;gap:2px;min-width:52px;min-height:44px;margin:0 0 0 4px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--acc);font-size:13px;font-weight:600;line-height:1;cursor:pointer;z-index:3;box-shadow:0 1px 0 rgba(0,0,0,.25),-10px 0 14px color-mix(in srgb,var(--bg) 90%,transparent)}
 .nav-hasmore .navmore{display:inline-flex}
 .nav-hasmore::after{content:"";position:absolute;right:56px;top:0;bottom:0;width:48px;pointer-events:none;z-index:1;background:linear-gradient(to right,transparent,var(--bg) 70%)}
 .nav-hasleft::before{content:"";position:absolute;left:0;top:0;bottom:0;width:24px;pointer-events:none;background:linear-gradient(to left,transparent,var(--bg) 85%);z-index:1}
 .hint{min-width:32px;min-height:32px;position:relative}.hint::after{content:"";position:absolute;inset:-6px}
 .row{gap:8px}.card{padding:12px}
 input,select,textarea{font-size:16px}  /* stops iOS zoom on focus */
}
.homelink{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 8px;margin-left:-8px;border-radius:8px;color:inherit;text-decoration:none;cursor:pointer}
.homelink:hover{background:var(--h1);text-decoration:none}.homelink:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.homelink:active{transform:scale(.97)}
/* sticky header polish: translucent, shadow + compact after 40px; margin-bottom compensates so content doesn't shift */
html{scroll-padding-top:72px}
header{z-index:10!important;background:color-mix(in srgb,var(--bg) 88%,transparent)!important;-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);transition:padding .25s,margin-bottom .25s,box-shadow .25s}
.hdr-c header{padding-top:6px;padding-bottom:6px;margin-bottom:12px;box-shadow:0 6px 18px rgba(0,0,0,.35)}
@media (max-width:900px),(pointer:coarse){.hdr-c header{padding-top:4px;padding-bottom:4px;margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){header{transition:none}}
html,body{overflow-x:clip}
@media (max-width:620px){header{flex-wrap:nowrap;gap:6px}header .brand{flex:none}header .brand .by{display:none}.navwrap,header nav{flex:1 1 auto;min-width:0}}
@media (max-width:1100px){header{flex-wrap:nowrap;gap:8px;align-items:center}.navwrap{flex:1 1 auto;min-width:0;overflow:hidden}header nav{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain;padding-right:4px}header nav::-webkit-scrollbar{display:none}}

/* Nav overflow cue (any width): fade + › when more links are off to the side */
.navwrap{position:relative;display:flex;align-items:stretch;min-width:0;max-width:100%}
header .navwrap{flex:1 1 auto}
/* Laptop+: center nav in the header so it isn't jammed against the logo */
@media (min-width:1101px){
 header{position:sticky;justify-content:flex-start}
 header .brand{position:relative;z-index:2;flex:none}
 header .navwrap{
  position:absolute;left:50%;transform:translateX(-50%);
  flex:none;max-width:min(920px,calc(100% - 280px));
  justify-content:center
 }
 header nav{justify-content:center;flex-wrap:wrap;overflow-x:visible;max-width:100%}
 .navmore,.nav-hasmore .navmore{display:none}
 .nav-hasmore::after,.nav-hasleft::before{display:none}
}
.navmore{display:none;flex:none;align-items:center;justify-content:center;gap:2px;min-width:52px;min-height:36px;margin:0 0 0 4px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--acc);font-size:13px;font-weight:600;letter-spacing:.01em;line-height:1;cursor:pointer;z-index:3;box-shadow:0 1px 0 rgba(0,0,0,.25),-10px 0 14px color-mix(in srgb,var(--bg) 90%,transparent)}
.nav-hasmore .navmore{display:inline-flex;animation:navcue 1.1s ease-in-out 3}
@keyframes navcue{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
@media(prefers-reduced-motion:reduce){.nav-hasmore .navmore{animation:none}}
.nav-hasmore::after{content:"";position:absolute;right:56px;top:0;bottom:0;width:48px;pointer-events:none;z-index:1;background:linear-gradient(to right,transparent,var(--bg) 70%)}
.nav-hasleft::before{content:"";position:absolute;left:0;top:0;bottom:0;width:28px;pointer-events:none;z-index:1;background:linear-gradient(to left,transparent,var(--bg) 85%)}
/* gentle Pro notes + trial */
.lock{border:1px solid var(--line)!important;border-left:3px solid var(--acc)!important;background:color-mix(in srgb,var(--acc) 6%,transparent);border-radius:10px;padding:10px 12px;color:var(--mut)}
.trialwrap{margin-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.trialbadge{color:var(--acc)!important;border:1px solid color-mix(in srgb,var(--acc) 45%,transparent);border-radius:999px;font-size:12px!important;text-decoration:none;margin-left:4px}
.trialend{max-width:1300px;margin:10px auto 0;padding:8px 12px;border:1px solid var(--line);border-left:3px solid var(--acc);border-radius:10px;background:var(--card);font-size:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.trialend a{color:var(--acc)}
.trialbadge{flex:none;white-space:nowrap;padding:0 10px!important;min-height:32px!important;margin:0 4px}
/* 2026-10-24: help (?) buttons meet the 24px WCAG 2.5.8 minimum on desktop too (phones already 32px) */
.hint{width:24px;height:24px;line-height:22px;font-size:13px}
/* Daily guardrails (Journal) */
.limits{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 6px}
.limits .lim{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--mut);flex:1 1 140px;min-width:0;margin:0}
.limits .lim input{width:100%;min-height:40px;box-sizing:border-box}
.guard{border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:10px;padding:8px 10px;margin:0 0 8px;font-size:14px}
.guard .gbar{display:flex;flex-wrap:wrap;gap:2px 16px}
.guard p{margin:4px 0 0}
.guard.near{border-left-color:var(--acc)}
.guard.stop{border-left-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent)}
