/* T9 UI-A access/account screens (design/tambo-premium-v2/04-07). Tokens are the design/system.md values
   exactly as captured in the approved artboards; scoped to the public auth layout and the authenticated
   shell. No :root rules; motion (anim-01) is transform/opacity on the design/system.md tokens, at most
   180 ms on first paint (the auth card); reduced motion removes every animation and transition. */
body{margin:0}
.tb-auth,.il-shell{
  --color-white:#ffffff;--color-brand-steel:#457b9d;--color-brand-navy:#1d3557;--color-brand-charcoal:#313234;--color-brand-deep-navy:#102344;
  --color-red-600:#c42331;--color-red-700:#a3182a;--color-steel-700:#356687;--color-steel-800:#2a5270;--color-navy-950:#0a1a35;
  --color-neutral-0:#ffffff;--color-neutral-50:#f5f7fa;--color-neutral-100:#eef1f5;--color-neutral-150:#e6eaf0;--color-neutral-200:#dce1e8;--color-neutral-300:#c3cad4;--color-neutral-400:#848e9d;--color-neutral-450:#717b8a;--color-neutral-500:#5e6878;--color-neutral-600:#4a5463;--color-neutral-700:#3b4553;
  --color-bg:var(--color-neutral-50);--color-surface:var(--color-neutral-0);--color-surface-sunken:var(--color-neutral-100);--color-surface-hover:var(--color-neutral-50);--color-surface-selected:#eef3f6;
  --color-border:var(--color-neutral-200);--color-border-strong:var(--color-neutral-300);--color-border-control:var(--color-neutral-400);
  --color-text-primary:var(--color-brand-charcoal);--color-text-secondary:var(--color-neutral-600);--color-text-muted:var(--color-neutral-500);--color-text-disabled:var(--color-neutral-450);
  --color-disabled-fill:var(--color-neutral-150);--color-border-disabled:var(--color-neutral-450);--color-text-on-fill:var(--color-neutral-0);
  --color-action-primary:var(--color-brand-navy);--color-action-primary-hover:var(--color-brand-deep-navy);--color-action-primary-active:var(--color-navy-950);
  --color-danger:var(--color-red-600);--color-focus-ring:var(--color-brand-steel);--color-link:var(--color-steel-700);--color-link-hover:var(--color-steel-800);
  --color-on-dark-text:#ffffff;--color-on-dark-text-secondary:rgba(255, 255, 255, 0.8);--color-on-dark-border:rgba(255, 255, 255, 0.56);--color-on-dark-divider:rgba(255, 255, 255, 0.16);--color-on-dark-focus:#ffffff;
  --color-status-slate-tint:#f1f2f4;--color-status-slate-border:#c5c9d0;--color-status-slate-text:#4a525e;
  --color-status-steel-tint:#eef3f6;--color-status-steel-border:#b8cdda;--color-status-steel-icon:#457b9d;--color-status-steel-text:#30566e;
  --color-status-amber-tint:#f8f3e9;--color-status-amber-border:#e1cca2;--color-status-amber-icon:#b07a0a;--color-status-amber-text:#6d4c06;
  --color-status-red-tint:#faebec;--color-status-red-border:#e9abb1;--color-status-red-icon:#c42331;--color-status-red-text:#991b26;
  --color-status-green-tint:#ecf4ef;--color-status-green-border:#b0d3bb;--color-status-green-icon:#2e8a4c;--color-status-green-text:#1e5b32;
  --font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --shadow-1:0 1px 2px rgba(16, 35, 68, 0.06), 0 2px 6px -2px rgba(16, 35, 68, 0.08);
  --shadow-2:0 2px 4px -1px rgba(16, 35, 68, 0.08), 0 8px 20px -4px rgba(16, 35, 68, 0.14);
  --ease-standard:cubic-bezier(0.2, 0, 0, 1);--ease-enter:cubic-bezier(0.16, 1, 0.3, 1);--duration-instant:80ms;--duration-fast:120ms;--duration-base:180ms;--skeleton-cycle:1400ms;
  --surface-hero:radial-gradient(60% 160% at 90% 0%, rgba(69, 123, 157, 0.45) 0%, rgba(69, 123, 157, 0) 60%), linear-gradient(135deg, var(--color-brand-navy) 0%, var(--color-brand-deep-navy) 55%, var(--color-navy-950) 100%);
}
.tb-auth,.tb-auth *,.il-shell .tb-account-grid *,.il-shell .tb-center *{box-sizing:border-box}
.tb-auth{min-height:100svh;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text-primary);font:400 14px/20px var(--font-sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
.tb-auth :where(h1,h2,h3,p,ul,ol,dl,dd),.il-shell :where(.tb-account-grid,.tb-center) :where(h1,h2,h3,p,ul,ol,dl,dd){margin:0}
.tb-auth :where(h1,h2),.il-shell :where(.tb-account-grid,.tb-center) :where(h1,h2){text-wrap:balance}
.tb-auth p,.il-shell .tb-account-grid p,.il-shell .tb-center p{text-wrap:pretty}
.tb-auth :where(button,input),.il-shell :where(.tb-account-grid,.tb-center) :where(button,input){font:inherit;color:inherit}
.tb-auth :where(a,button,input,[tabindex]):focus{outline:none}
.tb-auth :where(a,button,input,[tabindex]):focus-visible,.il-shell :where(.tb-account-grid,.tb-center) :where(a,button,input,[tabindex]):focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}
.tb-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* icons and type */
.tb-ico{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tb-ico-lg{width:20px;height:20px}
.tb-secondary{color:var(--color-text-secondary)}
.tb-muted{color:var(--color-text-muted)}
.tb-cap{font:500 12px/16px var(--font-sans);letter-spacing:.01em}
.tb-bodysm{font:400 13px/18px var(--font-sans)}
.tb-title-sm{font:600 15px/22px var(--font-sans)}
.tb-strong{font-weight:600}
.tb-subtitle,.tb-gap-xs{margin-top:4px}
.tb-gap-md{margin-top:12px}
.tb-h1{font:600 20px/28px var(--font-sans);letter-spacing:-.015em}
.tb-h1:focus{outline:none}
.tb-h1:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:4px;border-radius:4px}

/* auth layout: phone/tablet strip first, brand panel from 64rem (system.md) */
.tb-auth-brand{isolation:isolate;position:relative;overflow:hidden;background-color:var(--color-brand-navy);background-image:var(--surface-hero);color:var(--color-on-dark-text);padding:16px;display:flex;align-items:center;gap:12px;flex:none}
.tb-lattice{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;color:var(--color-white);opacity:.07}
.tb-plate{background:#ffffff;border-radius:8px;padding:8px 10px;width:fit-content;box-shadow:var(--shadow-2);flex:none}
.tb-plate-logo{display:block;width:104px;height:auto;aspect-ratio:628.5 / 164.8;flex:none}
.tb-strip-caption{color:var(--color-on-dark-text-secondary);font:500 12px/16px var(--font-sans);letter-spacing:.01em}
.tb-brand-copy,.tb-brand-body,.tb-points,.tb-auth-foot{display:none}
/* Explicit shrinkable column: an implicit auto track would take the card's 440px width and overflow phones. */
.tb-auth-main{flex:1;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-content:start;padding:16px;min-width:0}
.tb-auth-card{width:440px;max-width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-1);padding:20px;display:flex;flex-direction:column;gap:16px;min-width:0;overflow-wrap:anywhere;animation:tb-enter var(--duration-base) var(--ease-enter)}
.tb-form{display:grid;gap:16px}
.tb-form-stack{gap:14px}
/* Empty live regions stay in the accessibility tree (reliable announcements) but take no space. */
.tb-alert-slot:empty{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.tb-auth-card,.tb-card-pad,.tb-card{position:relative}
.tb-card-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.tb-confirm-head{display:flex;gap:12px;align-items:start}
.tb-success-icon{color:var(--color-status-green-icon);padding-top:4px}
.tb-steps{padding-left:20px;display:grid;gap:4px;color:var(--color-text-secondary);font:400 13px/18px var(--font-sans)}
.tb-policy{margin:0}
@media(min-width:600px){
  .tb-plate-logo{width:120px}
  .tb-auth-main{padding:32px 24px}
  .tb-auth-card{padding:32px;gap:20px;box-shadow:var(--shadow-2)}
  .tb-h1{font-size:24px;line-height:32px}
}
@media(min-width:1024px){
  .tb-auth{display:grid;grid-template-columns:minmax(22rem,36%) minmax(0,1fr)}
  .tb-auth-brand{flex-direction:column;align-items:stretch;justify-content:flex-start;padding:40px;gap:28px;min-height:100svh;position:sticky;top:0}
  .tb-plate{border-radius:12px;padding:14px 18px}
  .tb-plate-logo{width:168px}
  .tb-strip-caption{display:none}
  .tb-brand-copy,.tb-brand-body,.tb-auth-foot{display:block}
  .tb-points{display:grid}
  .tb-auth-main{align-content:center;padding:40px}
}
.tb-brand-eyebrow{color:var(--color-on-dark-text-secondary);font:500 12px/16px var(--font-sans);letter-spacing:.01em}
.tb-brand-copy h2{font:700 32px/40px var(--font-sans);letter-spacing:-.02em;margin-top:6px;max-width:16ch}
.tb-brand-body{color:var(--color-on-dark-text-secondary);max-width:44ch}
.tb-points{list-style:none;margin:0;padding:0;gap:12px;max-width:48ch}
.tb-points li{display:flex;gap:10px;align-items:start;color:var(--color-on-dark-text-secondary)}
.tb-points .tb-ico{margin-top:2px;color:var(--color-on-dark-text)}
.tb-auth-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--color-on-dark-divider);color:var(--color-on-dark-text-secondary);font:400 12px/16px var(--font-sans)}

/* fields */
.tb-field{min-width:0}
.tb-field label{display:block;font:500 13px/18px var(--font-sans);margin-bottom:6px}
.tb-input{width:100%;height:var(--il-control,40px);border:1px solid var(--color-border-control);border-radius:6px;padding:0 12px;background:var(--color-surface);font:400 14px/20px var(--font-sans);font-variant-numeric:tabular-nums;transition:border-color var(--duration-fast) var(--ease-standard)}
.tb-input:hover{border-color:var(--color-neutral-700)}
.tb-input:focus-visible{border-color:var(--color-brand-steel)}
.tb-input[aria-invalid=true]{border-color:var(--color-danger)}
.tb-input:read-only{background:var(--color-surface-hover)}
.tb-auth-card .tb-input{height:44px}
.tb-hint{margin-top:6px;color:var(--color-text-muted);font:400 12px/16px var(--font-sans)}
.tb-err{margin-top:6px;color:var(--color-status-red-text);font:500 12px/16px var(--font-sans)}
.tb-pw{position:relative}
.tb-pw .tb-input{padding-right:104px}
.tb-reveal{position:absolute;right:4px;top:4px;bottom:4px;min-width:88px;border:0;border-radius:4px;background:transparent;color:var(--color-link);font:600 13px/18px var(--font-sans);display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}
.tb-reveal:hover{background:var(--color-surface-selected);color:var(--color-link-hover)}
@media(max-width:599.98px){
  .tb-input,.tb-auth-card .tb-input{height:48px;font-size:16px;line-height:24px}
}

/* buttons and links */
.tb-btn{font:600 14px/20px var(--font-sans);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--il-control,40px);padding:0 16px;border:1px solid transparent;border-radius:6px;white-space:normal;overflow-wrap:normal;word-break:normal;text-align:center;background:var(--color-action-primary);color:var(--color-text-on-fill);cursor:pointer;text-decoration:none;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),translate var(--duration-instant) var(--ease-standard)}
.tb-btn:hover{background:var(--color-action-primary-hover)}
.tb-btn:active{background:var(--color-action-primary-active);translate:0 1px}
.tb-btn-main{min-height:44px;width:100%}
.tb-btn-fit,.tb-fit{width:fit-content}
.tb-btn-sm{min-height:32px;padding:0 12px;font-size:13px}
.tb-btn-outline{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-control)}
.tb-btn-outline:hover{background:var(--color-surface-hover);border-color:var(--color-neutral-700)}
.tb-btn-ghost{background:transparent;color:var(--color-neutral-700);width:fit-content}
.tb-btn-ghost:hover{background:var(--color-surface-selected)}
.tb-btn[aria-busy=true]{cursor:progress}
.tb-btn[aria-disabled=true]{background:var(--color-disabled-fill);color:var(--color-text-disabled);border-color:var(--color-border-disabled);translate:0 0}
.tb-link{color:var(--color-link);font:600 14px/20px var(--font-sans);text-decoration:underline;text-underline-offset:2px;border-radius:4px;width:fit-content}
.tb-link:hover{color:var(--color-link-hover)}
.tb-link-icon{display:inline-flex;align-items:center;gap:6px}
@media(max-width:599.98px){.tb-btn-main{min-height:48px}.tb-btn-fit{width:100%;min-height:48px}}
/* m3: on a coarse pointer the reveal control spans the whole field height (>= 44 px), flush with its border. */
@media(pointer:coarse){.tb-btn,.tb-btn-sm{min-height:44px}.tb-link{display:inline-flex;align-items:center;min-height:44px}.tb-pw .tb-input{min-height:44px}.tb-reveal{min-width:88px;top:0;bottom:0;right:0;min-height:44px;border-radius:0 6px 6px 0}}

/* alerts, badges, requirements */
.tb-alert{padding:12px;border:1px solid var(--color-border);border-radius:8px;font-size:13px;line-height:18px;background:var(--color-surface);display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:start;animation:tb-enter var(--duration-base) var(--ease-enter)}
@keyframes tb-enter{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.tb-alert .tb-ico{margin-top:2px}
.tb-alert-copy strong{display:block;font-weight:600;font-size:14px;line-height:20px}
.tb-alert-info{background:var(--color-status-steel-tint);border-color:var(--color-status-steel-border);color:var(--color-status-steel-text)}
.tb-alert-success{background:var(--color-status-green-tint);border-color:var(--color-status-green-border);color:var(--color-status-green-text)}
.tb-alert-warning{background:var(--color-status-amber-tint);border-color:var(--color-status-amber-border);color:var(--color-status-amber-text)}
.tb-alert-destructive{background:var(--color-status-red-tint);border-color:var(--color-status-red-border);color:var(--color-status-red-text)}
.tb-badge{display:inline-flex;align-items:center;width:fit-content;max-width:100%;min-height:22px;padding:0 8px;border:1px solid transparent;border-radius:9999px;font:500 12px/16px var(--font-sans);white-space:nowrap;gap:4px}
.tb-badge-steel{background:var(--color-status-steel-tint);border-color:var(--color-status-steel-border);color:var(--color-status-steel-text)}
.tb-reqs{list-style:none;margin:0;padding:0;display:grid;gap:6px;font:400 13px/18px var(--font-sans);color:var(--color-text-secondary)}
.tb-reqs li{display:flex;gap:8px;align-items:start}
.tb-reqs .tb-ico{margin-top:1px;color:var(--color-neutral-500)}
.tb-reqs li[data-ok=true]{color:var(--color-status-green-text)}
.tb-reqs li[data-ok=true] .tb-ico{color:var(--color-status-green-icon)}
.tb-reqs li[data-ok=bad]{color:var(--color-status-red-text)}
.tb-reqs li[data-ok=bad] .tb-ico{color:var(--color-status-red-icon)}

/* authenticated content (inside .il-shell) */
.tb-stack{display:flex;flex-direction:column;gap:12px}
.tb-stack-lg{display:flex;flex-direction:column;gap:24px;min-width:0}
.tb-center{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-content:start}
.tb-card-wide{width:520px;max-width:100%}
.tb-signout{margin:0}
.tb-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-1);padding:var(--il-card,20px);min-width:0;overflow-wrap:anywhere}
.tb-card.tb-stack{gap:16px}
.tb-card-flush{padding:0;overflow:hidden}
.tb-card-pad{padding:var(--il-card,20px);display:flex;flex-direction:column;gap:12px}
.tb-card-title{margin-bottom:12px}
/* Readable measure for card prose and alert copy on very wide screens (system.md reading 72ch; m8). */
.tb-card p,.tb-alert-copy p{max-width:72ch}
.tb-profile{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px 12px}
.tb-profile dt{color:var(--color-text-secondary)}
.tb-profile dd{min-width:0;overflow-wrap:anywhere}
.tb-account-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
.tb-tray-row{display:flex;align-items:start;gap:8px}
.tb-tray-row .tb-ico{margin-top:1px}
.tb-devices{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-border);container-type:inline-size}
.tb-device{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ic copy badge" "action action action";gap:8px 12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--color-border)}
.tb-device:last-child{border-bottom:0}
.tb-device-ic{grid-area:ic;width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:var(--color-surface-selected);color:var(--color-brand-navy)}
.tb-device-copy{grid-area:copy;min-width:0}
.tb-device-title{font-weight:600}
.tb-device>.tb-badge,.tb-device>span[aria-hidden]{grid-area:badge}
.tb-device-action{grid-area:action;margin:0}
.tb-skel{display:block;background:var(--color-neutral-150);border-radius:4px;position:relative;overflow:hidden;height:14px}
.tb-skel:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--color-neutral-100),transparent);transform:translateX(-100%);animation:tb-sweep var(--skeleton-cycle) linear infinite}
.tb-skel-icon{width:36px;height:36px;border-radius:8px}
.tb-skel-line{grid-column:2 / -1;width:60%}
@keyframes tb-sweep{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@container (min-width:34rem){.tb-device{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"ic copy badge action"}}
@media(min-width:1024px){.tb-account-grid{grid-template-columns:400px minmax(0,1fr)}}
@media(max-width:599.98px){.tb-card-wide{width:100%}.tb-center .tb-auth-card{box-shadow:var(--shadow-1)}}

/* status pages (root 404/500/503 and admin 403 boundaries; ui-audit-01 M2/m5) */
.tb-status-ic{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:var(--color-status-steel-tint);color:var(--color-status-steel-icon)}
.tb-status-ic[data-tone=red]{background:var(--color-status-red-tint);color:var(--color-status-red-icon)}
.tb-status-code code{font:500 12px/16px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;overflow-wrap:anywhere}
@media(min-width:1024px){.tb-auth-main:has(.tb-status-card){align-content:center}}

/* shell additions used by these screens (work-header eyebrow, locked navigation, limited-access badge) */
.il-workeyebrow{margin:0 0 4px;color:var(--color-on-dark-text-secondary);font:500 12px/16px var(--font-sans);letter-spacing:.01em}
.il-navlink-locked{color:var(--color-text-disabled);cursor:not-allowed}
.il-navlink-locked:hover{background:transparent}
.il-navlink-locked .il-lock-icon{width:16px;height:16px;margin-left:auto}
.il-shell[data-il-rail="true"] .il-sidebar .il-lock-icon{display:none}
@media(min-width:600px) and (max-width:1023.98px){.il-shell[data-il-rail="auto"] .il-sidebar .il-lock-icon{display:none}}
.il-status-badge{display:inline-flex;align-items:center;gap:4px;min-height:22px;padding:0 8px;border:1px solid var(--color-status-amber-border);border-radius:9999px;background:var(--color-status-amber-tint);color:var(--color-status-amber-text);font:500 12px/16px var(--font-sans);white-space:nowrap}
.il-status-badge .il-icon{width:12px;height:12px}

@media(prefers-reduced-motion:reduce){
  .tb-auth *,.tb-auth *:before,.tb-auth *:after,.il-shell .tb-account-grid *,.il-shell .tb-account-grid *:after,.il-shell .tb-center *,.tb-auth-card,.tb-alert,.tb-btn{transition:none!important;animation:none!important}
  .tb-btn:active{translate:none}
}
.tb-device[aria-hidden]{grid-template-areas:none;grid-template-columns:auto minmax(0,1fr)}
