/* ===========================================================================
   TrustHours v5: account pages (sign in, sign up, plan, connect app, forgot,
   reset, join). Rebuilt from TrustHours-Public-Pages.html.
   Tokens only, ui- prefix only.
   =========================================================================== */
.ui-auth{min-height:100vh;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));background:var(--canvas)}
.ui-auth-story{background:var(--ink);color:var(--white);padding:40px 44px;display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.ui-auth-logo img{height:34px;width:auto}
.ui-auth-copy{display:flex;flex-direction:column;gap:22px;max-width:440px}
.ui-auth-copy h1{margin:0;font:800 34px/1.15 var(--font-display);letter-spacing:-.03em;text-wrap:pretty;color:var(--white)}
.ui-auth-copy p{margin:0;font:400 15px/1.6 var(--font-body);color:var(--on-ink-70)}
.ui-auth-rib{display:flex;gap:2px;height:14px;max-width:420px}
.ui-auth-rib i{flex:1;border-radius:1.5px;background:var(--on-ink-12)}
.ui-auth-rib i.ui-rp{background:var(--rib-productive)} .ui-auth-rib i.ui-rn{background:var(--rib-neutral)} .ui-auth-rib i.ui-ru{background:var(--rib-idle)}
.ui-auth-leg{display:flex;gap:16px;font:500 12px var(--font-body);color:var(--on-ink-60)}
.ui-auth-leg span{display:flex;align-items:center;gap:5px}
.ui-auth-leg i{width:8px;height:8px;border-radius:2px;display:inline-block}
.ui-auth-foot{font:400 12px var(--font-body);color:var(--on-ink-45)}
.ui-auth-foot a{color:var(--on-ink-60)}
.ui-auth-side{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;gap:18px;position:relative}
.ui-auth-back{position:absolute;top:20px;right:24px;font:600 12.5px var(--font-body);color:var(--slate)}
.ui-auth-back:hover{color:var(--iris)}
.ui-auth-steps{display:flex;gap:4px;background:var(--white);border:1px solid var(--hairline);border-radius:var(--r-control);padding:4px;flex-wrap:wrap;justify-content:center}
.ui-auth-steps span{font:600 12px var(--font-body);padding:6px 10px;border-radius:var(--r-chip);color:var(--slate);white-space:nowrap}
.ui-auth-steps span.ui-on{background:var(--ink);color:var(--white)}
.ui-auth-card{width:100%;max-width:420px;background:var(--white);border:1px solid var(--hairline);border-radius:var(--r-card);padding:28px;display:flex;flex-direction:column;gap:16px}
.ui-auth-card.ui-wide{max-width:520px}
.ui-auth-head h2{margin:6px 0 0;font:700 22px/1.2 var(--font-display);letter-spacing:-.025em;color:var(--ink)}
.ui-auth-head p{margin:6px 0 0;font:400 13.5px/1.5 var(--font-body);color:var(--slate)}
.ui-auth-card .ui-label{margin-bottom:6px;display:block}
.ui-auth-in{font:500 14px var(--font-body);color:var(--ink);border:1px solid var(--hairline);border-radius:var(--r-control);background:var(--white);padding:11px 12px;outline:none;width:100%}
.ui-auth-in:focus{border-color:var(--iris)}
.ui-auth-in::placeholder{color:var(--muted)}
.ui-auth-pri{height:42px;border-radius:var(--r-control);border:0;background:var(--ink);color:var(--white);font:600 14px var(--font-body);cursor:pointer;width:100%}
.ui-auth-pri:hover{background:var(--ink-hover)}
.ui-auth-pri:disabled{background:var(--disabled);cursor:default}
.ui-auth-sec{height:42px;border-radius:var(--r-control);border:1px solid var(--hairline);background:var(--white);color:var(--ink);font:600 14px var(--font-body);cursor:pointer;width:100%;display:flex;align-items:center;justify-content:center}
.ui-auth-sec:hover{background:var(--soft)}
.ui-auth-or{display:flex;align-items:center;gap:10px;font:400 12px var(--font-body);color:var(--muted)}
.ui-auth-or::before,.ui-auth-or::after{content:'';flex:1;height:1px;background:var(--hairline)}
.ui-auth-note{font:400 12.5px var(--font-body);color:var(--slate);text-align:center}
.ui-auth-note a{font-weight:600}
.ui-auth-small{font:400 12px/1.5 var(--font-body);color:var(--muted)}
.ui-auth-fine{font:400 11.5px var(--font-body);color:var(--muted);text-align:center}
.ui-auth-err{font:500 12.5px/1.45 var(--font-body);color:var(--bad-text);background:var(--bad-soft);border-radius:var(--r-control);padding:9px 12px}
.ui-auth-err:empty{display:none}
.ui-auth-ok{font:500 12.5px/1.5 var(--font-body);color:var(--ok-text);background:var(--ok-tint);border-radius:var(--r-control);padding:10px 12px}
.ui-auth-plans{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ui-auth-plan{text-align:left;border:1.5px solid var(--hairline);background:var(--white);border-radius:var(--r-control);padding:12px;cursor:pointer}
.ui-auth-plan.ui-on{border-color:var(--iris);background:var(--iris-tint)}
.ui-auth-plan b{display:block;font:700 13px var(--font-body);color:var(--ink)}
.ui-auth-plan strong{display:block;font:800 20px var(--font-display);letter-spacing:-.03em;color:var(--ink);margin-top:4px}
.ui-auth-plan strong small{font:500 11px var(--font-body);color:var(--muted);letter-spacing:0}
.ui-auth-plan span{display:block;font:400 11.5px/1.45 var(--font-body);color:var(--slate);margin-top:4px}
.ui-auth-code{display:flex;gap:8px;justify-content:center}
.ui-auth-code input{width:40px;height:48px;border-radius:var(--r-control);border:1px solid var(--hairline);background:var(--white);text-align:center;font:800 20px var(--font-display);color:var(--ink);outline:none;text-transform:uppercase;padding:0}
.ui-auth-code input:focus{border-color:var(--iris)}
.ui-auth-code em{align-self:center;font:800 20px var(--font-display);color:var(--muted);font-style:normal}
.ui-auth-co{display:flex;align-items:center;gap:10px;background:var(--soft);border-radius:var(--r-control);padding:10px 12px}
.ui-auth-co .ui-mono{background:var(--iris-tint);color:var(--iris)}
.ui-auth-co b{display:block;font:600 13px var(--font-body);color:var(--ink)}
.ui-auth-co span{display:block;font:400 11.5px var(--font-body);color:var(--muted)}
.ui-auth-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:920px){
  .ui-auth-story{padding:24px 20px;gap:18px}
  .ui-auth-copy{gap:12px}
  .ui-auth-copy h1{font-size:24px}
  .ui-auth-copy p,.ui-auth-rib,.ui-auth-leg,.ui-auth-foot{display:none}
  .ui-auth-side{justify-content:flex-start;padding:52px 14px 32px}
  .ui-auth-card{padding:22px}
}
/* additions for the real pages (same language: segmented control, summary lines, result card) */
.ui-auth-seg{display:flex;gap:2px;background:var(--seg-bg);padding:3px;border-radius:var(--r-control)}
.ui-auth-seg button{flex:1;border:0;background:transparent;color:var(--slate);font:600 12.5px var(--font-body);padding:7px 0;border-radius:var(--r-chip);cursor:pointer;white-space:nowrap}
.ui-auth-seg button.ui-on{background:var(--white);color:var(--ink);box-shadow:var(--sh-seg)}
.ui-auth-seg button:disabled{opacity:.45;cursor:default}
.ui-auth-seg em{font-style:normal;color:var(--ok-text);margin-left:4px}
.ui-auth-lines{display:flex;flex-direction:column;border-top:1px solid var(--soft)}
.ui-auth-lines div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--soft);font:400 12.5px var(--font-body);color:var(--slate)}
.ui-auth-lines div b{font-weight:600;color:var(--ink);text-align:right}
.ui-auth-lines div.ui-tot{border-bottom:0;font-weight:700;color:var(--ink)}
.ui-auth-plan small.ui-auth-was{font:500 12px var(--font-body);color:var(--muted);text-decoration:line-through;margin-right:4px}
.ui-auth-res{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:6px 0}
.ui-auth-res h3{margin:0;font:700 18px var(--font-display);letter-spacing:-.02em;color:var(--ink)}
.ui-auth-res p{margin:0;font:400 13.5px/1.55 var(--font-body);color:var(--slate)}
.ui-auth-ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--muted)}
.ui-auth-ic.ui-ok{background:var(--ok-tint);color:var(--ok-text)} .ui-auth-ic.ui-warn{background:var(--warn-tint);color:var(--amber-text)} .ui-auth-ic.ui-bad{background:var(--bad-tint);color:var(--bad-text)} .ui-auth-ic.ui-iris{background:var(--iris-tint);color:var(--iris)}
.ui-auth-choice .ui-auth-plan{display:flex;gap:10px;align-items:flex-start}
.ui-auth-choice .ui-auth-plan svg{flex:none;margin-top:2px;color:var(--iris)}
.ui-auth-row{display:flex;gap:8px}
.ui-auth-row>*{flex:1}
.ui-auth-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ui-auth-gbtn{display:flex;justify-content:center;min-height:44px}
.ui-auth-warn{font:400 12.5px/1.5 var(--font-body);color:var(--amber-text);background:var(--warn-tint);border-radius:var(--r-control);padding:10px 12px}
.ui-auth-dl{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ui-auth-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.ui-auth-list li{display:flex;gap:10px;font:400 13px/1.5 var(--font-body);color:var(--slate)}
.ui-auth-list li b{color:var(--ink);font-weight:600}
.ui-auth-list li svg{flex:none;margin-top:2px;color:var(--iris)}
.ui-auth-mono{font:500 12px/1.5 var(--font-body);background:var(--soft);border-radius:var(--r-control);padding:10px 12px;word-break:break-all;color:var(--ink)}
@media (max-width:600px){.ui-auth-2,.ui-auth-plans,.ui-auth-choice,.ui-auth-dl{grid-template-columns:1fr}.ui-auth-code input{width:30px;height:42px;font-size:17px}.ui-auth-code{gap:5px}}
/* ===========================================================================
   Standalone public pages (sign up, plan, connect app, forgot, reset, join,
   download, setup, health) load ONLY tokens.css + account.css, so the few base
   rules and shared atoms they need live here, scoped to html.ui-pub so the
   dashboard (which also loads app.css) is never affected.
   =========================================================================== */
html.ui-pub,html.ui-pub body{margin:0;padding:0}
html.ui-pub *,html.ui-pub *::before,html.ui-pub *::after{box-sizing:border-box}
html.ui-pub body{background:var(--canvas);color:var(--ink);font:400 13px/1.45 var(--font-body);-webkit-font-smoothing:antialiased}
:where(html.ui-pub) a{color:var(--iris);text-decoration:none}
:where(html.ui-pub) a:hover{color:var(--iris-deep)}
:where(html.ui-pub) :is(button,input){font-family:var(--font-body)}
html.ui-pub [hidden]{display:none!important}
html.ui-pub .ui-label{font:600 10.5px/1 var(--font-body);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--muted)}
html.ui-pub .ui-mono{width:34px;height:34px;border-radius:var(--r-control);display:grid;place-items:center;font:800 13px var(--font-display);flex:none}
html.ui-pub .ui-k-prod{background:var(--rib-productive)} html.ui-pub .ui-k-neut{background:var(--rib-neutral)} html.ui-pub .ui-k-idle{background:var(--rib-idle)}
.ui-auth-card{animation:thfade var(--m-fade) ease-out both}
a.ui-auth-pri,a.ui-auth-sec{display:flex;align-items:center;justify-content:center;text-decoration:none}
a.ui-auth-pri,a.ui-auth-pri:hover{color:var(--white)}
a.ui-auth-sec,a.ui-auth-sec:hover{color:var(--ink)}
.ui-auth-in:disabled{background:var(--soft);color:var(--slate)}
.ui-auth-hint{margin-top:6px;font:400 12px/1.45 var(--font-body);color:var(--muted)}
.ui-auth-plan:hover{border-color:var(--card-hover)}
.ui-auth-plan.ui-on:hover{border-color:var(--iris)}
.ui-auth-plan em{display:inline-block;margin-left:6px;font:600 10px/1 var(--font-body);font-style:normal;letter-spacing:var(--label-track);text-transform:uppercase;color:var(--iris-text);background:var(--iris-tint);padding:3px 6px;border-radius:var(--r-tag);vertical-align:2px}
.ui-auth-plan.ui-on em{background:var(--white)}
.ui-auth-plans.ui-one{grid-template-columns:1fr}
.ui-auth-code input[readonly]{background:var(--canvas)}
.ui-auth-code input[readonly]:focus{border-color:var(--hairline)}
.ui-auth-co .ui-mono{text-transform:uppercase}
.ui-auth-co>div{min-width:0}
.ui-auth-sum{display:flex;flex-direction:column;gap:6px}
/* wider info pages: download, setup, health */
.ui-auth-side.ui-top{justify-content:flex-start;padding-top:64px}
.ui-auth-card.ui-info{max-width:600px}
.ui-auth-sect{display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid var(--soft)}
.ui-auth-sect h3{margin:0;font:600 10.5px/1 var(--font-body);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--muted)}
.ui-auth-sect p{margin:0;font:400 13px/1.55 var(--font-body);color:var(--slate)}
.ui-auth-steps-ol{margin:0;padding:0;list-style:none;counter-reset:ui-step;display:flex;flex-direction:column;gap:14px}
.ui-auth-steps-ol li{counter-increment:ui-step;position:relative;padding-left:36px;font:400 13px/1.55 var(--font-body);color:var(--slate)}
.ui-auth-steps-ol li::before{content:counter(ui-step);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:var(--r-chip);background:var(--iris-tint);color:var(--iris-text);display:grid;place-items:center;font:700 12px var(--font-display)}
.ui-auth-steps-ol li b{color:var(--ink);font-weight:600}
.ui-auth-steps-ol li>b:first-child{display:block;margin-bottom:2px}
.ui-auth-pre{margin:8px 0 0;font:500 12px/1.55 ui-monospace,monospace;background:var(--ink);color:var(--white);border-radius:var(--r-control);padding:10px 12px;overflow-x:auto;white-space:pre}
.ui-auth-pre i{font-style:normal;color:var(--iris-pale)}
:where(html.ui-pub) code{font:500 12px ui-monospace,monospace;background:var(--soft);color:var(--ink);padding:1px 6px;border-radius:var(--r-tag);word-break:break-all}
.ui-auth-file{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--soft);border-radius:var(--r-control);padding:12px 14px}
.ui-auth-file b{display:block;font:600 13px var(--font-body);color:var(--ink);word-break:break-all}
.ui-auth-file span{display:block;font:400 12px var(--font-body);color:var(--muted)}
.ui-auth-file .ui-auth-pri{width:auto;padding:0 18px}
.ui-auth-chk{display:flex;flex-direction:column}
.ui-auth-chk>div{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--soft);align-items:flex-start}
.ui-auth-chk>div:last-child{border-bottom:0}
.ui-auth-chk .ui-auth-ic{width:28px;height:28px;flex:none}
.ui-auth-chk b{font-weight:600}
.ui-auth-chk>div>div>b:first-child{display:block;font:600 13.5px var(--font-body);color:var(--ink)}
.ui-auth-chk p{margin:3px 0 0;font:400 12.5px/1.55 var(--font-body);color:var(--slate)}
.ui-auth-chk p.ui-bad{color:var(--bad-text)} .ui-auth-chk p.ui-warn{color:var(--amber-text)}
.ui-auth-verdict{border-radius:var(--r-control);padding:14px 16px;font:700 15px/1.35 var(--font-display);letter-spacing:-.01em}
.ui-auth-verdict small{display:block;margin-top:4px;font:400 12.5px/1.55 var(--font-body);color:var(--slate);letter-spacing:0}
.ui-auth-verdict.ui-ok{background:var(--ok-tint);color:var(--ok-text)}
.ui-auth-verdict.ui-bad{background:var(--bad-soft);color:var(--bad-text)}
.ui-auth-facts{display:grid;grid-template-columns:150px 1fr;gap:8px 16px;font:400 12.5px/1.5 var(--font-body);color:var(--ink)}
.ui-auth-facts>span{color:var(--muted)}
.ui-auth-facts small{color:var(--muted)}
.ui-auth-mini{display:inline-flex;align-items:center;height:26px;padding:0 10px;margin-left:4px;border-radius:var(--r-chip);border:1px solid var(--hairline);background:var(--white);color:var(--ink);font:600 12px var(--font-body);cursor:pointer;vertical-align:middle;white-space:nowrap}
.ui-auth-mini:hover:not(:disabled){border-color:var(--iris);color:var(--iris)}
.ui-auth-mini:disabled{cursor:default}
.ui-auth-mini.ui-ok{border-color:var(--ok);color:var(--ok-text)} .ui-auth-mini.ui-bad{border-color:var(--red);color:var(--bad-text)}
.ui-auth-badge{align-self:flex-start;font:600 10.5px/1 var(--font-body);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--amber-text);background:var(--warn-tint);padding:6px 9px;border-radius:var(--r-chip)}
@media (max-width:600px){.ui-auth-facts{grid-template-columns:1fr;gap:2px 0}.ui-auth-facts>span{margin-top:8px}.ui-auth-file .ui-auth-pri{width:100%}}
.ui-auth-gwrap{display:flex;flex-direction:column;gap:16px}
.ui-auth-stack{display:flex;flex-direction:column;gap:14px}
.ui-auth-small.ui-c{text-align:center}
.ui-auth-code input{flex:1 1 0;min-width:0;max-width:40px}
.ui-auth-plans>.ui-auth-plan:last-child:nth-child(odd):not(:only-child){grid-column:1/-1}
@media (max-width:920px){.ui-auth{align-content:start}}
/* server-rendered pages (maintenance, unsubscribe, AI-assistant consent): one centred card */
.ui-auth-solo{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px 16px}
.ui-auth-brand img{height:30px;width:auto;display:block}
.ui-auth-msg h1{margin:0;font:700 22px/1.2 var(--font-display);letter-spacing:-.025em;color:var(--ink)}
.ui-auth-msg p{margin:0;font:400 13.5px/1.6 var(--font-body);color:var(--slate)}
.ui-auth-msg form{display:flex;flex-direction:column}
.ui-auth-box{background:var(--soft);border-radius:var(--r-control);padding:12px 14px;font:400 12.5px/1.6 var(--font-body);color:var(--slate)}
.ui-auth-box b{color:var(--ink);font-weight:600}
.ui-auth-box ul{margin:6px 0 0 18px;padding:0}
.ui-auth-box li{margin:2px 0}
.ui-auth-box p{margin:8px 0 0}
.ui-auth-pill{align-self:center;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--r-chip);background:var(--warn-tint);color:var(--amber-text);font:600 12.5px var(--font-body)}
.ui-auth-pill i{width:7px;height:7px;border-radius:50%;background:var(--amber)}
.ui-auth-dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex:none}
.ui-auth-muted{color:var(--muted)}
