/* SPEC114 U.5 (owner 03.10, ledger 134–135): the sign-in / first-run card after the owner's reference screen —
   a dark centered card on a dark page, the logo, "Welcome to prime LAB ADMIN", one subtitle line, two equal
   full-width rounded buttons (Continue with Google only when the lab's client is ready, Continue with email),
   "By continuing, you agree to the Agreement" with the text in an in-card overlay. The same card carries the
   owner-creation form, the sign-in form, "Forgot password?" (U.4) and the starting / not-running status (X).
   Gold is the app's champagne (ledger 211: #d7b56d, the dark value of the main_y2.css family — set on the card itself,
   because the page is always dark here, whatever the lab's theme; it replaces the Y4 yellow #f0c75e). */
.recovery-auth,.update-card{--gold:#d7b56d}
body.pl-auth,body.pl-auth[data-theme]{background:#0d0e10!important;margin:0}
.recovery-auth{min-height:100vh;min-height:100dvh;box-sizing:border-box;padding:24px 0;display:grid;place-items:center;background:#0d0e10;color:#f2f2f3;font-family:Inter,"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}
/* The card never leaves a phone screen: 16 px gutters at 360/390 px, no horizontal scroll (U QA finding 1). */
.recovery-auth form{position:relative;width:min(440px,calc(100vw - 32px));max-width:100%;box-sizing:border-box;background:#141517;border:1px solid #26272b;border-radius:24px;padding:40px 36px 32px;display:grid;gap:18px;min-width:0;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.recovery-auth form>*{min-width:0}
@media(max-width:420px){.recovery-auth form{padding:32px 20px 24px;border-radius:20px}}
.recovery-auth img{height:56px;width:auto;justify-self:center;margin-bottom:2px}
/* Owner 04.10: first line is "Welcome to Prime"; LAB ADMIN stays large, centered below it. */
.recovery-auth h1{margin:0;text-align:center;font-weight:700;color:#f6f6f7;overflow-wrap:anywhere}
.recovery-auth h1 .recovery-auth-welcome{display:block;font-size:15px;font-weight:500;color:#9a9ca3;letter-spacing:.01em;margin-bottom:4px}
.recovery-auth h1 .recovery-auth-prime{color:#c9c9cd;font-weight:500;white-space:nowrap}
/* U.7: LAB ADMIN keeps the brand-book shimmer (no orange); ledger 211: champagne #d7b56d at the sides, light #f2dba6 in the middle. */
.recovery-auth h1 .recovery-auth-brand{display:block;white-space:nowrap;font-size:clamp(24px,7vw,32px);letter-spacing:.06em;line-height:1.15;color:#d7b56d;
  background:linear-gradient(90deg,#d7b56d 0%,#f2dba6 50%,#d7b56d 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.recovery-auth h2.signin-headline{margin:2px 0 0;text-align:center;font-size:20px;font-weight:600;color:#f2f2f3;overflow-wrap:anywhere}
.recovery-auth p.signin-subtitle{margin:-8px 0 2px;text-align:center;color:#9a9ca3;font-size:14px;line-height:1.45}
.recovery-auth #authWelcome{display:grid;gap:12px}
/* U.7: the first run asks the language and the country first — two selects side by side at the top of the card. */
.recovery-auth .signin-region{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 4px}
@media(max-width:420px){.recovery-auth .signin-region{grid-template-columns:1fr}}
.recovery-auth .signin-region label{min-width:0}
.recovery-auth .signin-region select,body .recovery-auth .signin-region select{height:44px;padding:0 12px;font-size:14px}
/* Two equal buttons — nothing highlighted (owner, ledger 135 p.2). */
.recovery-auth .signin-choice,body .recovery-auth .signin-choice{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:52px;box-sizing:border-box;padding:0 18px;border:1px solid #2e2f34;border-radius:14px;background:#1b1c1f;color:#f2f2f3;font:inherit;font-size:16px;font-weight:600;text-decoration:none;cursor:pointer;transition:border-color .15s,background .15s,transform .1s;box-shadow:none}
.recovery-auth .signin-choice:hover{border-color:rgba(215,181,109,.7);background:#202125;color:#f6f6f7}
.recovery-auth .signin-choice:active{transform:translateY(1px)}
.recovery-auth .signin-choice:focus-visible{outline:2px solid var(--gold,#d7b56d);outline-offset:3px}
.recovery-auth .signin-choice svg{flex:none;width:20px;height:20px}
.recovery-auth p.signin-or{display:flex;align-items:center;gap:14px;margin:0;color:#7b7d84;font-size:13px}
.recovery-auth p.signin-or::before,.recovery-auth p.signin-or::after{content:"";flex:1;height:1px;background:#2a2b30}
.recovery-auth p.signin-consent{margin:6px 0 0;text-align:center;color:#8b8d94;font-size:13px;line-height:1.5}
.recovery-auth button.recovery-auth-link,body .recovery-auth button.recovery-auth-link{background:none;border:0;box-shadow:none;padding:0;margin:0;height:auto;font:inherit;font-size:inherit;font-weight:600;color:var(--gold,#d7b56d);text-decoration:underline;text-underline-offset:3px;cursor:pointer;justify-self:center}
.recovery-auth button.recovery-auth-link:hover{color:#f2dba6}
.recovery-auth button.recovery-auth-link:focus-visible{outline:2px solid var(--gold,#d7b56d);outline-offset:3px;border-radius:4px}
/* Step two in the same card: the owner-creation form or the sign-in form, with a quiet Back link. */
.recovery-auth #authCreate{display:grid;gap:16px}
.recovery-auth #authCreate .recovery-auth-link{font-size:14px}
.recovery-auth label{display:grid;gap:7px;font-size:13px;font-weight:500;color:#c9cacf}
.recovery-auth input,body .recovery-auth input,.recovery-auth select,body .recovery-auth select{font:inherit;font-size:15px;border:1px solid #2e2f34;border-radius:12px;padding:0 14px;height:48px;width:100%;box-sizing:border-box;background:#0f1012;color:#f2f2f3;color-scheme:dark}
.recovery-auth input::placeholder{color:#5f6168}
/* Owner 04.10: eye button on account-password fields; it never covers typed text and remains keyboard accessible. */
.recovery-auth .signin-password-field{position:relative;display:block;min-width:0}
.recovery-auth .signin-password-field>input{padding-right:50px}
.recovery-auth .signin-password-toggle,body .recovery-auth .signin-password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:9px;background:transparent;color:#8f9198;box-shadow:none;cursor:pointer}
.recovery-auth .signin-password-toggle:hover{background:#1b1c1f;color:#f2dba6}
.recovery-auth .signin-password-toggle:focus-visible{outline:2px solid var(--gold,#d7b56d);outline-offset:1px}
.recovery-auth .signin-password-toggle[aria-pressed="true"]{color:#f2dba6}
.recovery-auth .signin-password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.recovery-auth input:focus,.recovery-auth select:focus{border-color:var(--gold,#d7b56d);box-shadow:0 0 0 3px rgba(215,181,109,.22);outline:none}
.recovery-auth button.primary,body .recovery-auth button.primary{height:52px;border:1px solid #c39f58;border-radius:14px;background:var(--gold,#d7b56d);color:#1a1405;font:inherit;font-size:16px;font-weight:700;box-shadow:none;cursor:pointer;transition:background .15s}
.recovery-auth button.primary:hover{background:#ecd08e}
.recovery-auth button.primary:disabled{opacity:.55;cursor:default}
.recovery-auth p{margin:0}
.recovery-auth p:empty{display:none}
.recovery-auth p#authError{color:#ffb3a8;background:rgba(189,104,88,.14);border:1px solid rgba(189,104,88,.45);border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.45;white-space:pre-wrap}
.recovery-auth p#authError[hidden]{display:none}
/* Field hints sit right under their input (U QA findings 3, 20). */
.recovery-auth p.recovery-auth-hint,.recovery-auth label>.recovery-auth-hint,.recovery-auth label>small.recovery-auth-hint{display:block;color:#8b8d94;font-size:12px;line-height:1.45;font-weight:400;margin:0}
.recovery-auth label>.recovery-auth-hint,.recovery-auth label>small.recovery-auth-hint{margin-top:-2px}
.recovery-auth p.recovery-auth-hint[hidden]{display:none}
.recovery-auth p.recovery-auth-lead{color:#e4e4e7;font-size:14px;line-height:1.5}
/* SPEC114 X: the starting / not-running status — the same card, a calm line with the small spinner. */
.recovery-auth p.recovery-auth-status,body .recovery-auth p.recovery-auth-status{display:flex;align-items:flex-start;justify-content:center;gap:10px;color:#c9cacf;font-size:14px;line-height:1.5}
.recovery-auth p.recovery-auth-status[hidden]{display:none}
.recovery-auth p.recovery-auth-status .recovery-spinner{margin-top:3px;border-color:#2e2f34;border-top-color:var(--gold,#d7b56d)}
/* The Agreement opens as an overlay over the card (fixed to the screen, so a short card never clips it);
   Close, Escape or a click outside returns to the buttons. */
.signin-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;box-sizing:border-box;background:rgba(13,14,16,.82);backdrop-filter:blur(4px)}
.signin-overlay[hidden]{display:none}
.signin-overlay-card{width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);box-sizing:border-box;display:grid;gap:12px;grid-template-rows:auto minmax(0,1fr) auto auto;background:#141517;border:1px solid #2e2f34;border-radius:18px;padding:20px;box-shadow:0 18px 60px rgba(0,0,0,.6)}
.signin-overlay-card h2{margin:0;font-size:18px;font-weight:600;color:#f2f2f3}
.recovery-agreement{max-height:min(45vh,420px);overflow:auto;white-space:pre-wrap;border:1px solid #2e2f34;border-radius:12px;padding:12px 14px;font-size:12.5px;line-height:1.55;color:#d6d7db;background:#0f1012;scrollbar-width:thin}
.recovery-agreement:focus-visible{outline:2px solid var(--gold,#d7b56d);outline-offset:2px}
/* SPEC114 U.6 (owner 03.10, ledger 136): the in-program update card — the same dark plate, logo, "prime LAB ADMIN"
   and two equal rounded buttons as the sign-in card, over the main screen; whatever the lab's theme. */
.update-card-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;box-sizing:border-box;background:rgba(13,14,16,.72);backdrop-filter:blur(4px)}
.update-card,body .update-card{position:relative;width:min(440px,calc(100vw - 32px));max-width:100%;box-sizing:border-box;background:#141517;border:1px solid #26272b;border-radius:24px;padding:36px 36px 28px;display:grid;gap:16px;min-width:0;color:#f2f2f3;font-family:Inter,"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;box-shadow:0 24px 80px rgba(0,0,0,.55);text-align:center}
@media(max-width:420px){.update-card,body .update-card{padding:28px 20px 22px;border-radius:20px}}
.update-card img{height:48px;width:auto;justify-self:center}
.update-card h1{margin:0;font-weight:700;color:#f6f6f7;overflow-wrap:anywhere}
/* The shared title markup also feeds the in-app update card: hide only "Welcome to", keep "Prime LAB ADMIN" on one line there. */
.update-card h1 .recovery-auth-welcome{display:inline;margin:0}
.update-card h1 .recovery-auth-welcome>[data-i18n]{display:none}
.update-card h1 .recovery-auth-prime{font-size:clamp(11px,3vw,14px);font-weight:400;letter-spacing:.04em;color:#c9c9cd;vertical-align:.2em;margin-right:.18em}
.update-card h1 .recovery-auth-brand{display:inline;white-space:nowrap;font-size:clamp(22px,6vw,28px);letter-spacing:.06em;line-height:1.15;color:#d7b56d;
  background:linear-gradient(90deg,#d7b56d 0%,#f2dba6 50%,#d7b56d 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.update-card h2.signin-headline{margin:0;font-size:20px;font-weight:600;color:#f2f2f3}
.update-card p{margin:0;color:#b4b6bc;font-size:14px;line-height:1.5}
.update-card p.update-card-status{color:#e4e4e7}
.update-card p[hidden]{display:none}
.update-card-actions{display:grid;gap:12px}
.update-card .signin-choice,body .update-card .signin-choice{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:52px;box-sizing:border-box;padding:0 18px;border:1px solid #2e2f34;border-radius:14px;background:#1b1c1f;color:#f2f2f3;font:inherit;font-size:15px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:border-color .15s,background .15s;box-shadow:none;text-transform:uppercase}
.update-card .signin-choice:hover{border-color:rgba(215,181,109,.7);background:#202125}
.update-card .signin-choice:disabled{opacity:.55;cursor:default}
.update-card .signin-choice.update-card-primary,body .update-card .signin-choice.update-card-primary{border-color:#c39f58;background:var(--gold,#d7b56d);color:#1a1405}
.update-card .signin-choice.update-card-primary:hover{background:#ecd08e}
.update-card .signin-choice:focus-visible{outline:2px solid var(--gold,#d7b56d);outline-offset:3px}
