* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { line-height: var(--nv-leading-body); }
a { color: var(--nv-text-3); }
a:hover { color: var(--nv-accent); }
button, input, select { font: inherit; }
.sign-in-page { min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.sign-in-story { padding: var(--nv-space-8) var(--nv-space-9); background: var(--nv-rail); border-right: var(--nv-border-width) solid var(--nv-line); display: flex; flex-direction: column; min-width: 0; }
.nova-wordmark { font-family: var(--nv-font-display); font-size: var(--nv-auth-brand-size); font-weight: var(--nv-weight-bold); letter-spacing: var(--nv-track-display); display: flex; align-items: baseline; }
.nova-wordmark span { width: var(--nv-auth-mark-size); height: var(--nv-auth-mark-size); background: var(--nv-accent); border-radius: var(--nv-r-pill); }
.sign-in-story-copy { margin-top: auto; padding-top: var(--nv-space-9); }
.eyebrow { margin: 0; color: var(--nv-accent); font-size: var(--nv-fs-caption); letter-spacing: var(--nv-auth-letter-spacing); text-transform: uppercase; }
h1, h2 { font-family: var(--nv-font-display); font-weight: var(--nv-weight-bold); letter-spacing: var(--nv-track-display); line-height: var(--nv-leading-heading); }
h1 { font-size: clamp(var(--nv-fs-page), 5.28vw, var(--nv-fs-display-xl)); margin: var(--nv-space-4) 0 0; }
.sign-in-description { max-width: var(--nv-auth-copy-width); font-size: var(--nv-auth-body-size); color: var(--nv-text-3); margin: var(--nv-space-5) 0 0; }
.sign-in-wave { display: flex; align-items: flex-end; gap: var(--nv-space-1); height: var(--nv-auth-wave-height); margin-top: var(--nv-space-8); flex-shrink: 0; }
.sign-in-wave span { flex: 1; height: 34%; border-radius: var(--nv-r-xs); background: var(--nv-line-strong); }
.sign-in-wave span:nth-child(2n) { height: 52%; }
.sign-in-wave span:nth-child(3n) { height: 40%; }
.sign-in-wave span:nth-child(4) { height: 68%; background: var(--nv-cat-violet); }
.sign-in-wave span:nth-child(5) { height: 86%; background: var(--nv-cat-violet); }
.sign-in-wave span:nth-child(6) { height: 58%; background: var(--nv-cat-teal); }
.sign-in-wave span:nth-child(7) { height: 74%; background: var(--nv-cat-teal); }
.sign-in-wave span:nth-child(8) { height: 100%; background: var(--nv-accent); }
.sign-in-wave span:nth-child(9) { height: 82%; background: var(--nv-accent); }
.sign-in-wave span:nth-child(10) { height: 92%; background: var(--nv-cat-coral); }
.sign-in-wave span:nth-child(11) { height: 64%; background: var(--nv-cat-gold); }
.sign-in-wave span:nth-child(12) { height: 78%; background: var(--nv-cat-gold); }
.sign-in-wave span:nth-child(13) { height: 50%; background: var(--nv-cat-pink); }
.sign-in-wave span:nth-child(14) { height: 62%; background: var(--nv-cat-pink); }
.sign-in-wave span:nth-child(15) { height: 44%; background: var(--nv-cat-blue); }
.sign-in-wave span:nth-child(16) { height: 56%; background: var(--nv-cat-blue); }
.sign-in-wave span:nth-child(19) { height: 30%; }
.sign-in-wave span:nth-child(20) { height: 22%; }
.sign-in-entry { display: flex; align-items: center; justify-content: center; padding: var(--nv-space-7); min-width: 0; }
.sign-in-content { width: 100%; max-width: var(--nv-auth-width); min-width: 0; }
h2 { font-size: var(--nv-auth-title-size); margin: 0; }
#accountStatus { color: var(--nv-muted); font-size: var(--nv-fs-body-l); margin: var(--nv-space-2) 0 var(--nv-space-6); overflow-wrap: anywhere; }
#accountStatus:empty { display: none; }
#signIn, #signIn form, #signIn .cl-rootBox, #signIn .cl-cardBox, #signIn .cl-card { width: 100%; min-width: 0; max-width: 100%; }
#signIn .cl-cardBox, #signIn .cl-card { background: transparent; box-shadow: none; border: 0; border-radius: 0; }
#signIn .cl-card { padding: 0; }
#signIn .cl-socialButtonsBlockButton, #signIn .cl-formButtonPrimary { width: 100%; min-height: var(--nv-control-height); border-radius: var(--nv-r-l); font-size: var(--nv-fs-body-l); }
#signIn .cl-socialButtonsBlockButton { background: var(--nv-card); color: var(--nv-text); border: var(--nv-border-width) solid var(--nv-line-stronger); }
#signIn .cl-socialButtonsBlockButton:hover { background: var(--nv-hover); }
#signIn .cl-formButtonPrimary { background: var(--nv-accent); color: var(--nv-on-accent); box-shadow: none; }
#signIn .cl-formButtonPrimary:hover { background: var(--nv-accent-hover); }
#signIn .cl-formFieldInput, #signIn > form input, #signIn select { width: 100%; max-width: 100%; min-width: 0; min-height: var(--nv-control-height); padding: var(--nv-space-3) var(--nv-space-4); background: var(--nv-bg); color: var(--nv-text); border: var(--nv-border-width) solid var(--nv-line-stronger); border-radius: var(--nv-r-l); font-size: var(--nv-fs-card); }
#signIn input::placeholder { color: var(--nv-muted); opacity: 1; }
#signIn form { display: grid; gap: var(--nv-space-4); }
#signIn form label { color: var(--nv-text-2); }
#signIn .cl-footer { background: transparent; }
#accountActions { display: grid; gap: var(--nv-space-3); }
#accountActions:empty { display: none; }
.button { display: flex; width: 100%; align-items: center; justify-content: center; min-height: var(--nv-control-height); padding: var(--nv-space-3) var(--nv-space-4); border: var(--nv-border-width) solid var(--nv-line-stronger); border-radius: var(--nv-r-l); background: var(--nv-card); color: var(--nv-text); text-decoration: none; text-align: center; overflow-wrap: anywhere; cursor: pointer; }
.button:hover { background: var(--nv-hover); }
.button.primary { background: var(--nv-accent); color: var(--nv-on-accent); border-color: var(--nv-accent); }
.button.primary:hover { background: var(--nv-accent-hover); }
.button:disabled { cursor: wait; }
.sign-in-note { color: var(--nv-muted); font-size: var(--nv-fs-small); margin: var(--nv-space-5) 0 0; }
.sign-in-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-4); font-size: var(--nv-fs-caption); color: var(--nv-muted); margin-top: var(--nv-space-6); }
.sign-in-footer a { display: inline-flex; align-items: center; min-height: var(--nv-touch); }
@media (max-width: 1024px) {
  .sign-in-story { padding: var(--nv-space-7) var(--nv-space-6); }
  .sign-in-entry { padding: var(--nv-space-6); }
}
@media (max-width: 768px) {
  .sign-in-page { display: flex; flex-direction: column; }
  .sign-in-story { padding: var(--nv-space-5) var(--nv-space-4); border-right: 0; border-bottom: var(--nv-border-width) solid var(--nv-line); align-items: center; }
  .sign-in-story-copy { width: 100%; max-width: var(--nv-auth-width); padding-top: var(--nv-space-5); margin: 0; }
  h1 { font-size: var(--nv-fs-page); }
  .sign-in-description { font-size: var(--nv-fs-body-l); }
  .sign-in-wave { display: none; }
  .sign-in-entry { padding: var(--nv-space-6) var(--nv-space-4); }
}

/* Workspace picker (S02) */
.picker-mode .sign-in-entry{max-width:820px}
.picker-cards{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:24px 0}
.picker-admin{grid-column:1/-1;justify-self:start;order:2}
.picker-card{display:flex;flex-direction:column;gap:12px;padding:28px;border-radius:20px;background:var(--nv-card);border:1px solid var(--nv-line-strong);color:var(--nv-text);text-decoration:none;transition:border-color var(--nv-dur-fast) var(--nv-ease)}
.picker-card:hover,.picker-card:focus-visible{border-color:var(--nv-accent);outline:none}
.picker-row{display:flex;justify-content:space-between;align-items:center}
.picker-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px}
.picker-sup{background:var(--nv-accent-soft);color:var(--nv-accent)}
.picker-cre{background:var(--nv-violet-bg);color:var(--nv-violet-fg)}
.picker-pill{font-size:var(--nv-fs-caption);padding:4px 10px;border-radius:var(--nv-r-pill);background:var(--nv-chip);color:var(--nv-text-2)}
.picker-pill.picker-warn{background:var(--nv-warning-bg);color:var(--nv-warning-fg)}
.picker-title{font:700 24px/1.15 var(--nv-font-display);letter-spacing:-.02em}
.picker-desc{font-size:var(--nv-fs-small);color:var(--nv-text-2);line-height:1.5}
.picker-counts{border-top:1px solid var(--nv-line);padding-top:12px;font-size:var(--nv-fs-small);color:var(--nv-muted)}
