.auth-page { background:var(--tk-bg); color:var(--tk-ink); min-height:100vh; }
.auth-page *, .auth-page *::before, .auth-page *::after { box-sizing:border-box; }
.auth-page .btn,.auth-page .btn:hover { border-radius:var(--tk-radius); box-shadow:none; transform:none; }
.auth-page .btn-coral,.auth-page .btn-primary { background:var(--tk-action-coral); color:var(--tk-action-coral-ink); border-color:var(--tk-action-coral); }
.auth-page .btn-coral:hover,.auth-page .btn-primary:hover { background:var(--tk-coral-deep); border-color:var(--tk-coral-deep); }
.auth-page :focus-visible { outline:2px solid var(--tk-coral-deep); outline-offset:4px; }
.auth-page a { text-underline-offset:.2em; }
.auth-page .brand { width:auto; height:auto; flex:none; background:none; text-indent:0; overflow:visible; color:var(--tk-ink); font:800 52px/1 var(--sans); letter-spacing:-.075em; text-decoration:none; }
.auth-page .brand::before { content:none; }
.auth-top { display:flex; align-items:center; justify-content:space-between; gap:var(--tk-space-24); max-width:82rem; padding:var(--tk-space-28) var(--tk-space-40); margin:auto; }
.auth-top nav { display:flex; gap:var(--tk-space-28); }
.auth-top a:not(.brand) { text-decoration:none; font-size:.85rem; font-weight:500; color:var(--tk-ink-2); }
.auth-locale { display:flex; gap:var(--tk-space-12); }
.auth-locale a[aria-current] { font-weight:700; color:var(--tk-ink); }
.auth-layout { max-width:76rem; padding:var(--tk-space-32) var(--tk-space-40) var(--tk-space-40); margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:calc(2 * var(--tk-space-40)); min-height:calc(100vh - 13rem); }
.auth-form-column { min-width:0; }
.auth-page .auth-form { max-width:27rem; width:100%; display:flex; flex-direction:column; margin:var(--tk-space-24) 0; }
.auth-page h1 { font-size:clamp(2.4rem,4.5vw,3.8rem); font-weight:800; line-height:1.04; letter-spacing:-.05em; margin:0 0 var(--tk-space-20); }
.auth-heading-mark { position:relative; display:inline-block; isolation:isolate; }
.auth-heading-mark::after { content:""; position:absolute; bottom:-.06em; left:0; right:0; height:var(--tk-space-4); background:var(--tk-marker-yellow); border-radius:50%; transform:rotate(-.8deg); z-index:-1; }
.auth-form .sub { color:var(--tk-ink-2); line-height:1.6; font-size:1rem; margin:0 0 var(--tk-space-20); }
.auth-form .field { margin:var(--tk-space-12) 0; }
.auth-page .label { display:block; font-size:.8rem; font-weight:600; margin-bottom:var(--tk-space-8); color:var(--tk-ink-2); }
.auth-page .input { background:var(--tk-surface); border:1px solid var(--tk-rule-strong); border-radius:var(--tk-radius-small); padding:var(--tk-space-16); font-size:1rem; width:100%; min-width:0; }
.auth-page .input:focus { border-color:var(--tk-coral-deep); }
.auth-form .field-head { display:flex; justify-content:space-between; align-items:center; gap:var(--tk-space-12); }
.auth-form .field-head .label { overflow-wrap:anywhere; }
.auth-form .field-head a { font-size:.75rem; white-space:nowrap; color:var(--tk-ink-3); }
.auth-form .submit { width:100%; margin-top:var(--tk-space-20); padding:var(--tk-space-16); font-size:.95rem; }
.auth-form .terms { display:flex; align-items:flex-start; gap:var(--tk-space-12); margin:var(--tk-space-12) 0 0; font-size:.78rem; line-height:1.55; color:var(--tk-ink-2); cursor:pointer; }
.auth-form .terms input { width:1.1rem; height:1.1rem; flex:none; margin-top:var(--tk-space-2); accent-color:var(--tk-coral-deep); }
.auth-form .terms a { color:var(--tk-ink); }
.auth-form .divider { display:flex; gap:var(--tk-space-12); align-items:center; font-size:.75rem; color:var(--tk-ink-3); margin:var(--tk-space-24) 0; }
.auth-form .divider::before,.auth-form .divider::after { content:""; flex:1; height:1px; background:var(--tk-rule); }
.auth-form .sso a { display:flex; align-items:center; justify-content:center; gap:var(--tk-space-12); padding:var(--tk-space-16); border:1px solid var(--tk-rule-strong); border-radius:var(--tk-radius); text-decoration:none; font-size:.9rem; font-weight:600; color:var(--tk-ink); }
.auth-form .sso .ico { display:flex; }
.auth-form .sso .ico img { display:block; width:var(--tk-space-24); height:var(--tk-space-24); }
.auth-form .pw-actions { display:flex; flex-direction:column-reverse; }
.auth-form .pw-codelink { text-align:right; }
.auth-form .codelink { background:transparent; border:0; color:var(--tk-ink-2); text-decoration:underline; text-underline-offset:.25em; font:inherit; font-size:.75rem; cursor:pointer; padding:var(--tk-space-8) 0; }
.auth-form .switch { text-align:center; margin-top:var(--tk-space-16); }
.auth-art { min-height:30rem; position:relative; display:grid; place-items:center; }
.auth-cover-scene { width:100%; aspect-ratio:1; position:relative; container-type:inline-size; }
.auth-cover {
  position:absolute; padding:6%; border:1px solid color-mix(in srgb,var(--tk-ink) 10%,transparent);
  border-radius:var(--tk-radius-small); color:var(--tk-ink);
  background-image:linear-gradient(105deg,color-mix(in srgb,var(--tk-surface) 26%,transparent),transparent 48%),repeating-linear-gradient(7deg,transparent 0 2px,color-mix(in srgb,var(--tk-ink) 2%,transparent) 2px 3px);
  box-shadow:0 var(--tk-space-16) var(--tk-space-24) color-mix(in srgb,var(--tk-ink) 16%,transparent),inset 0 1px 0 color-mix(in srgb,var(--tk-surface) 65%,transparent);
  overflow:hidden;
}
.auth-cover-heading { font-weight:700; font-size:var(--tk-space-20); font-size:4cqw; letter-spacing:-.04em; line-height:1.12; }
.auth-cover-rule { height:1px; background:currentColor; opacity:.35; margin:7% 0; }
.auth-cover-notes { width:49%; height:75%; top:7%; left:1%; transform:rotate(-9deg); background-color:color-mix(in srgb,var(--tk-mint-soft) 60%,var(--tk-live-paper)); }
.auth-cover-notes::before { content:""; position:absolute; inset:0 auto 0 4%; width:var(--tk-space-4); background:color-mix(in srgb,var(--tk-mint-ink) 8%,transparent); border-right:1px solid color-mix(in srgb,var(--tk-surface) 50%,transparent); }
.auth-cover-notes .auth-cover-heading { max-width:80%; }
.auth-cover-plot { width:100%; display:block; color:var(--tk-mint-ink); fill:none; }
.auth-plot-grid { stroke:currentColor; stroke-width:.5; opacity:.18; }
.auth-plot-axis { stroke:currentColor; stroke-width:1; opacity:.4; }
.auth-plot-curve { stroke:currentColor; stroke-width:1.25; opacity:.8; }
.auth-cover-lines { display:grid; gap:var(--tk-space-16); margin-top:14%; }
.auth-cover-lines i { height:1px; background:currentColor; opacity:.25; }
.auth-cover-decks { width:50%; height:72%; top:3%; right:0; transform:rotate(7deg); background-color:color-mix(in srgb,var(--tk-violet-soft) 72%,var(--tk-live-paper)); }
.auth-cover-chart { display:flex; align-items:center; margin:12% -2% 0; gap:var(--tk-space-8); color:var(--tk-violet-ink); }
.auth-cover-chart svg { width:72%; min-width:0; }
.auth-cover-chart circle { fill:currentColor; opacity:.1; }
.auth-cover-chart path { fill:currentColor; opacity:.42; }
.auth-cover-chart span { font-size:var(--tk-space-8); font-size:1.5cqw; line-height:1.8; text-transform:uppercase; }
.auth-cover-week { width:70%; height:58%; left:20%; top:36%; transform:rotate(10deg); background-color:var(--tk-bg); padding:5%; }
.auth-week-title { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--tk-space-16); margin-bottom:5%; }
.auth-week-title .auth-cover-heading { max-width:67%; }
.auth-week-title small { font-size:var(--tk-space-8); font-size:1.6cqw; white-space:nowrap; color:var(--tk-ink-3); }
.auth-week-grid { height:76%; display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); grid-template-rows:18% repeat(6,minmax(0,1fr)); border:1px solid var(--tk-rule-strong); border-radius:var(--tk-radius-xsmall); background:repeating-linear-gradient(to right,transparent 0 calc(100% / 7 - 1px),var(--tk-rule) calc(100% / 7 - 1px) calc(100% / 7)); }
.auth-week-day { font-size:var(--tk-space-8); font-size:1.6cqw; color:var(--tk-ink-3); text-transform:uppercase; align-self:center; text-align:center; }
.auth-week-block { border-radius:var(--tk-radius-xsmall); margin:var(--tk-space-2); padding:var(--tk-space-6); display:flex; flex-direction:column; justify-content:center; gap:var(--tk-space-4); }
.auth-week-block i { height:1px; background:currentColor; opacity:.4; }
.auth-week-block i:last-child { width:65%; }
.auth-week-block-a,.auth-week-block-j { background:var(--tk-coral-soft); color:var(--tk-coral-ink); }
.auth-week-block-b,.auth-week-block-d,.auth-week-block-g,.auth-week-block-h { background:color-mix(in srgb,var(--tk-mint-soft) 75%,var(--tk-live-paper)); color:var(--tk-mint-ink); }
.auth-week-block-c,.auth-week-block-f { background:color-mix(in srgb,var(--tk-violet-soft) 70%,var(--tk-live-paper)); color:var(--tk-violet-ink); }
.auth-week-block-e,.auth-week-block-i { background:var(--tk-surface-muted); color:var(--tk-sun-ink); }
.auth-week-block-a { grid-area:2 / 1 / span 2; }.auth-week-block-b { grid-area:3 / 2 / span 2; }
.auth-week-block-c { grid-area:4 / 3 / span 2; }.auth-week-block-d { grid-area:2 / 4; }
.auth-week-block-e { grid-area:4 / 5 / span 2; }.auth-week-block-f { grid-area:3 / 6 / span 2; }
.auth-week-block-g { grid-area:5 / 7 / span 2; }.auth-week-block-h { grid-area:5 / 1 / span 2; }
.auth-week-block-i { grid-area:7 / 6; }.auth-week-block-j { grid-area:6 / 4 / span 2; }
.auth-foot { max-width:82rem; margin:auto; padding:var(--tk-space-24) var(--tk-space-40); display:flex; gap:var(--tk-space-24); flex-wrap:wrap; color:var(--tk-ink-3); font-size:.72rem; border-top:1px solid var(--tk-rule); }
.auth-foot>span { margin-right:auto; }
.auth-foot a { color:var(--tk-ink-3); text-decoration:none; }
.auth-onboarding .ob { max-width:82rem; margin:auto; padding:var(--tk-space-28) var(--tk-space-40) var(--tk-space-40); }
.auth-onboarding .ob-top { display:flex; align-items:center; gap:var(--tk-space-24); }
.auth-onboarding .ob-top .who { margin-left:auto; color:var(--tk-ink-3); font-size:.75rem; overflow-wrap:anywhere; }
.auth-onboarding .ob-top .skip { display:inline-flex; align-items:center; min-height:calc(var(--tk-space-32) + var(--tk-space-12)); padding-inline:var(--tk-space-8); font-size:.875rem; color:var(--tk-ink-2); text-decoration:none; white-space:nowrap; }
.auth-onboarding .ob-main { display:grid; grid-template-columns:minmax(0,31rem) minmax(0,1fr); gap:var(--tk-space-40); align-items:center; max-width:66rem; margin:var(--tk-space-40) auto 0; }
.auth-onboarding .ob-step { grid-column:1; grid-row:1; }
.auth-onboarding .ob-art { grid-column:2; grid-row:1; }
.auth-onboarding .ob-art { text-align:center; }
.auth-onboarding .ob-art img { width:100%; max-width:calc(7 * var(--tk-space-32)); height:auto; object-fit:contain; }
.auth-onboarding h1 { font-size:clamp(2.4rem,4vw,3.25rem); margin-top:var(--tk-space-16); }
.auth-onboarding .lede { color:var(--tk-ink-2); line-height:1.6; margin-bottom:var(--tk-space-24); }
.auth-onboarding .roles { display:flex; flex-direction:column; gap:var(--tk-space-10); margin-bottom:var(--tk-space-24); }
.auth-onboarding .roles label { display:flex; align-items:center; gap:var(--tk-space-12); border:1px solid var(--tk-rule); padding:var(--tk-space-16); border-radius:var(--tk-radius-small); background:var(--tk-surface); cursor:pointer; font-size:.9rem; }
.auth-onboarding .roles label:has(input:checked) { background:var(--tk-coral-soft); border-color:var(--tk-coral); }
.auth-onboarding .roles input { accent-color:var(--tk-coral-deep); width:1rem; height:1rem; }
.auth-onboarding .footer-row { display:flex; justify-content:space-between; align-items:center; gap:var(--tk-space-16); margin-top:var(--tk-space-24); }
.auth-onboarding .back { color:var(--tk-ink-3); font-size:.85rem; text-decoration:none; }
.auth-checkout .co-wrap { max-width:36rem; margin:var(--tk-space-40) auto calc(2 * var(--tk-space-40)); padding:0 var(--tk-space-20); }
.auth-checkout .co-back { color:var(--tk-ink-3); font-size:.8rem; text-decoration:none; display:inline-block; margin-bottom:var(--tk-space-24); }
.auth-checkout h1 { font-size:clamp(2rem,4vw,3rem); margin-bottom:var(--tk-space-28); }
.auth-checkout .co-subtitle { color:var(--tk-ink-2); font-size:1rem; line-height:1.6; margin:calc(-1 * var(--tk-space-12)) 0 var(--tk-space-28); }
.auth-checkout .co-card { padding:var(--tk-space-32); border:1px solid var(--tk-rule); border-radius:var(--tk-radius-large); background:var(--tk-surface); box-shadow:var(--tk-shadow-card); }
.auth-checkout .co-card .eyebrow { font-size:.7rem; color:var(--tk-ink-3); }
.auth-checkout .co-plan { display:flex; justify-content:space-between; align-items:baseline; gap:var(--tk-space-16); padding:var(--tk-space-20) 0; border-bottom:1px solid var(--tk-rule); }
.auth-checkout .co-plan .n { font-size:1.2rem; line-height:1.35; font-weight:700; }
.auth-checkout .co-plan small { display:block; font-size:.8rem; font-weight:400; line-height:1.5; color:var(--tk-ink-3); margin-top:var(--tk-space-8); }
.auth-checkout .co-plan .p { font-size:1.7rem; font-weight:800; white-space:nowrap; letter-spacing:-.04em; }
.auth-checkout .co-feats { display:grid; gap:var(--tk-space-12); padding:var(--tk-space-24) 0 0; margin:0; list-style:none; }
.auth-checkout .co-feats li { display:flex; gap:var(--tk-space-12); color:var(--tk-ink-2); font-size:.85rem; }
.auth-checkout .co-feats li::before { content:"✓"; color:var(--tk-mint-ink); font-weight:700; }
.auth-checkout .co-consent { display:flex; align-items:flex-start; gap:var(--tk-space-12); margin-top:var(--tk-space-24); padding-top:var(--tk-space-24); border-top:1px solid var(--tk-rule); font-size:.8rem; line-height:1.6; color:var(--tk-ink-2); }
.auth-checkout .co-consent input { accent-color:var(--tk-coral-deep); margin-top:var(--tk-space-4); flex:none; width:1rem; height:1rem; }
.auth-checkout .co-submit { width:100%; margin-top:var(--tk-space-24); padding:var(--tk-space-16); }
.auth-checkout .co-note { margin-top:var(--tk-space-20); color:var(--tk-ink-3); font-size:.75rem; line-height:1.6; }
.auth-state-wrap { padding:var(--tk-space-40) var(--tk-space-24) calc(2 * var(--tk-space-40)); max-width:50rem; margin:0 auto; }
.auth-state-content,.auth-state .bres { max-width:42rem; margin:auto; text-align:center; }
.auth-state .bres { padding:var(--tk-space-40) var(--tk-space-24) calc(2 * var(--tk-space-40)); }
.auth-state h1 { font-size:clamp(2.2rem,4.5vw,3.5rem); color:var(--tk-ink); }
.auth-state .bres h1 .acc { color:inherit; }
.auth-state-content>p,.auth-state .bres>p { font-size:var(--tk-space-18); line-height:1.65; color:var(--tk-ink-2); margin:var(--tk-space-20) auto var(--tk-space-32); }
.auth-state .btn { font-size:var(--tk-space-18); padding:var(--tk-space-16) var(--tk-space-28); min-height:calc(var(--tk-space-40) + var(--tk-space-12)); }
.auth-state-actions,.auth-state .bres .actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:var(--tk-space-12); }
.auth-state .mark,.error-code { display:block; font-size:.75rem; color:var(--tk-ink-3); margin:var(--tk-space-20) 0; }
.auth-state-content>.error-support { font-size:.8rem; margin-top:var(--tk-space-32); }
.auth-state .iu-drop { position:relative; border:1px dashed var(--tk-rule-strong); border-radius:var(--tk-radius); background:var(--tk-surface); padding:var(--tk-space-32); cursor:pointer; }
.auth-state .iu-drop.over,.auth-state .iu-drop:hover { background:var(--tk-coral-soft); border-color:var(--tk-coral); }
.auth-state .iu-drop .ic { margin-bottom:var(--tk-space-16); color:var(--tk-coral-ink); }
.auth-state .iu-drop .t { font-weight:700; font-size:1rem; cursor:pointer; }
.auth-state .iu-drop .s { color:var(--tk-ink-3); margin-top:var(--tk-space-8); font-size:.8rem; }
.auth-state .iu-drop .formats { display:flex; flex-wrap:wrap; gap:var(--tk-space-6); justify-content:center; margin-top:var(--tk-space-20); }
.auth-file-input { position:absolute; opacity:0; width:1px; height:1px; }
.auth-state .iu-drop:focus-within { outline:2px solid var(--tk-coral-deep); outline-offset:4px; }
.auth-callback { display:grid; place-items:center; padding:var(--tk-space-24); }
.auth-callback .cb { padding:var(--tk-space-40); text-align:center; max-width:26rem; background:var(--tk-surface); border:1px solid var(--tk-rule); border-radius:var(--tk-radius); }
.auth-callback .spinner { width:2rem; height:2rem; border:3px solid var(--tk-rule); border-top-color:var(--tk-coral); border-radius:50%; margin:0 auto var(--tk-space-20); animation:auth-spin 1s linear infinite; }
.auth-callback p { font-size:.95rem; color:var(--tk-ink-2); }
@keyframes auth-spin { to { transform:rotate(360deg); } }
@media(max-width:980px) { .auth-layout { gap:var(--tk-space-32); } .auth-art { min-height:24rem; } .auth-onboarding .ob-main { gap:var(--tk-space-24); } }
@media(max-width:760px) {
  .auth-page .brand { font-size:40px; }
  .auth-top { padding:var(--tk-space-24); }
  .auth-top nav { display:none; }
  .auth-layout { display:block; max-width:32rem; padding:var(--tk-space-24); min-height:calc(100vh - 12rem); }
  .auth-page .auth-form { max-width:none; margin:var(--tk-space-24) 0; }
  .auth-page h1 { font-size:2.55rem; }
  .auth-art { display:none; }
  .auth-foot { padding:var(--tk-space-24); gap:var(--tk-space-12) var(--tk-space-20); font-size:.68rem; }
  .auth-foot>span { width:100%; }
  .auth-onboarding .ob { padding:var(--tk-space-24); }
  .auth-onboarding .ob-top { gap:var(--tk-space-16); flex-wrap:wrap; }
  .auth-onboarding .ob-top .who { display:none; }
  .auth-onboarding .ob-top .skip { margin-left:auto; }
  .auth-onboarding .ob-main { display:block; max-width:30rem; margin-top:var(--tk-space-40); }
  .auth-onboarding .ob-art { display:none; }
  .auth-onboarding .eyebrow { font-size:.7rem; }
  .auth-checkout .co-wrap { margin-top:var(--tk-space-24); }
  .auth-checkout .co-card { padding:var(--tk-space-24); }
  .auth-checkout .co-plan { gap:var(--tk-space-12); }
  .auth-checkout .co-plan .n { font-size:1rem; }
  .auth-checkout .co-plan .p { font-size:1.45rem; }
  .auth-checkout h1 { font-size:2.2rem; }
  .auth-state-wrap,.auth-state .bres { padding:var(--tk-space-40) var(--tk-space-20); }
  .auth-state h1 { font-size:2.25rem; }
  .auth-state-content>p,.auth-state .bres>p { font-size:var(--tk-space-16); }
  .auth-state .btn { font-size:var(--tk-space-16); padding:var(--tk-space-14) var(--tk-space-20); min-height:calc(2 * var(--tk-space-24)); }
  .auth-state .iu-drop { padding:var(--tk-space-24) var(--tk-space-16); }
}
@media(prefers-reduced-motion:reduce) { .auth-callback .spinner { animation:none; } }
