/* Scoped account UI. Existing app and tab-bar geometry stay unchanged. */
html[data-cadushi-private="true"]:not([data-auth-ready="true"]) body,
html[data-cadushi-private="true"]:not([data-auth-ready="true"]) body * {
  visibility: hidden !important;
}

.cadushi-login-page,
.cadushi-session-page {
  min-height: 100svh;
  margin: 0;
  padding: max(32px, env(safe-area-inset-top)) 24px max(32px, env(safe-area-inset-bottom));
  box-sizing: border-box;
  display: grid;
  place-items: center;
  background: var(--background, #fafafa);
  color: var(--foreground, #111);
  font-family: var(--font-sans, system-ui, sans-serif);
}
.cadushi-login-card {
  width: min(100%, 360px);
  display: grid;
  gap: 24px;
}
.cadushi-login-brand { display: flex; align-items: center; gap: 12px; }
.cadushi-login-brand img { width: 48px; height: 48px; border-radius: 12px; }
.cadushi-login-brand span { font-size: 23px; font-weight: 750; letter-spacing: -1px; }
.cadushi-login-card h1 { margin: 0 0 10px; font-size: 29px; letter-spacing: -1px; line-height: 1.15; }
.cadushi-login-card p { margin: 0; line-height: 1.5; }
.cadushi-login-note { color: var(--muted-foreground, #666); font-size: 14px; }
.cadushi-login-form { display: grid; gap: 18px; }
.cadushi-login-field { display: grid; gap: 8px; font-size: 14px; font-weight: 600; }
.cadushi-login-field input {
  width: 100%; box-sizing: border-box; min-height: 48px; border: 1px solid var(--border, #ddd);
  border-radius: 12px; padding: 12px 14px; background: var(--card, #fff);
  color: inherit; font: inherit; font-size: 16px; font-weight: 400;
}
.cadushi-login-field input:focus-visible,
.cadushi-auth-button:focus-visible { outline: 2px solid var(--foreground, #111); outline-offset: 3px; }
.cadushi-auth-button {
  min-height: 46px; border: 1px solid transparent; border-radius: 12px; padding: 12px 18px;
  background: #c8f542; color: #111; font: inherit; font-size: 14px; font-weight: 650; cursor: pointer;
}
.cadushi-auth-button:disabled { cursor: wait; opacity: .65; }
.cadushi-login-status { min-height: 1.5em; font-size: 14px; color: var(--destructive, #b42318); }
.cadushi-account { margin: 24px 0; padding: 20px 0; border-block: 1px solid var(--border, #ddd); }
.cadushi-account h4 { margin: 0 0 12px; }

.cadushi-account .cadushi-login-note { margin: 0 0 12px; overflow-wrap: anywhere; }

/* Login brand treatment. These overrides intentionally stay on the public
   login page: the private-page guard and logout recovery UI above are shared. */
.cadushi-login-page {
  --login-lime: #c8f542;
  --login-ink: #111111;
  --login-background: #f7f8f5;
  --login-surface: #ffffff;
  --login-intro: #f0f3e9;
  --login-text: #111111;
  --login-muted: #62675d;
  --login-border: #dce1d5;
  --login-field-border: #858a7e;
  --login-error: #b42318;
  place-items: start center;
  padding: max(40px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(40px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
  background: var(--login-background);
  color: var(--login-text);
}
.cadushi-login-shell {
  display: grid;
  grid-template-columns: 1.06fr 1fr;
  width: min(100%, 1000px);
  min-height: 604px;
  border: 1px solid var(--login-border);
  border-radius: 32px;
  overflow: hidden;
  background: var(--login-surface);
  box-shadow: 0 20px 70px -40px rgb(17 17 17 / .18);
}
.cadushi-login-intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 48px;
  background: var(--login-intro);
}
.cadushi-login-page .cadushi-login-brand {
  display: flex;
  align-items: center;
  gap: .28em;
  width: min(100%, 320px);
  color: var(--login-text);
  font-size: 45px;
}
.cadushi-login-logo { display: block; width: 100%; height: auto; flex: none; }
.cadushi-approved-lockup { display:none; }
.cadushi-mobile-tagline { display:none; }
@media(max-width:600px),(max-width:1000px) and (max-height:540px) {
 .cadushi-login-page :is(.cadushi-access-brand,.cadushi-login-brand)>.cadushi-login-logo {display:none;}
 .cadushi-login-page .cadushi-approved-lockup {display:block;width:100%;height:auto;flex:none;color:var(--login-text);}
}
.cadushi-login-page .cadushi-login-brand span {
  font-family: "Space Grotesk", sans-serif;
  font-size: 1em;
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: .9;
}
.cadushi-login-message { margin-block: auto; padding-block: 52px 44px; }
.cadushi-login-eyebrow {
  margin: 0 0 20px;
  color: var(--login-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
}
.cadushi-login-intro h1 {
  margin: 0;
  font-size: clamp(34px, 3.9vw, 48px);
  font-weight: 650;
  line-height: 1.08;
  letter-spacing: -.055em;
}
.cadushi-login-description {
  max-width: 280px;
  margin: 24px 0 0;
  color: var(--login-muted);
  font-size: 15px;
  line-height: 1.65;
}
.cadushi-login-signature { width: 52px; height: 6px; border-radius: 6px; background: var(--login-lime); }
.cadushi-login-panel { display: grid; align-items: center; padding: 52px 48px; }
.cadushi-login-page .cadushi-login-card { width: 100%; gap: 28px; }
.cadushi-login-page .cadushi-login-card h2 { margin: 0 0 8px; font-size: 23px; font-weight: 650; letter-spacing: -.035em; line-height: 1.25; }
.cadushi-login-page .cadushi-login-note { color: var(--login-muted); font-size: 14px; }
.cadushi-login-page .cadushi-login-form { gap: 20px; }
.cadushi-login-page .cadushi-login-field { gap: 9px; font-size: 14px; font-weight: 600; }
.cadushi-login-page .cadushi-login-field input {
  min-height: 52px;
  border: 1px solid var(--login-field-border);
  border-radius: 12px;
  padding: 13px 15px;
  background: var(--login-surface);
  color: var(--login-text);
  caret-color: var(--login-text);
  transition: border-color .15s ease;
}
.cadushi-login-page .cadushi-login-field input::placeholder { color: var(--login-muted); opacity: .85; }
.cadushi-login-page .cadushi-login-field input:hover { border-color: var(--login-muted); }
.cadushi-login-page .cadushi-login-field input:focus-visible,
.cadushi-login-page .cadushi-auth-button:focus-visible { outline: 2px solid var(--login-text); outline-offset: 4px; }
.cadushi-login-page .cadushi-auth-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 52px;
  margin-top: 4px;
  border-radius: 12px;
  background: var(--login-lime);
  color: var(--login-ink);
  font-size: 15px;
  font-weight: 650;
  transition: background .15s ease;
}
.cadushi-login-page .cadushi-auth-button:hover:not(:disabled) { background: #b9e735; }
.cadushi-login-page .cadushi-auth-button:disabled { cursor: wait; opacity: .7; }
.cadushi-login-page .cadushi-login-status {
  min-height: 1.5em;
  margin-top: -8px;
  color: var(--login-error);
  font-size: 13px;
  overflow-wrap: anywhere;
}
.cadushi-login-page .cadushi-login-form[aria-busy="true"] .cadushi-login-status { color: var(--login-muted); }
.cadushi-login-connection { display: flex; align-items: flex-start; gap: 9px; color: var(--login-muted); font-size: 12px; }
.cadushi-login-connection svg { flex: none; margin-top: 2px; }
.cadushi-login-connection span { max-width: 270px; }
.cadushi-login-page noscript { font-size: 14px; color: var(--login-error); }

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .cadushi-login-page {
    --login-background: #0a0a0a;
    --login-surface: #171916;
    --login-intro: #20251b;
    --login-text: #f6f7f3;
    --login-muted: #a9afa1;
    --login-border: #40463a;
    --login-field-border: #717a64;
    --login-error: #ff9d95;
  }
}
:root[data-tema="oscuro"] .cadushi-login-page {
  --login-background: #0a0a0a;
  --login-surface: #171916;
  --login-intro: #20251b;
  --login-text: #f6f7f3;
  --login-muted: #a9afa1;
  --login-border: #40463a;
    --login-field-border: #717a64;
  --login-error: #ff9d95;
}

@media (max-width: 760px), (max-width: 1000px) and (max-height: 540px) {
  .cadushi-login-page {
    padding: max(32px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
    background: var(--login-surface);
  }
  .cadushi-login-shell { grid-template-columns: 1fr; max-width: 400px; min-height: 0; border: 0; border-radius: 0; overflow: visible; box-shadow: none; }
  .cadushi-login-intro { align-items: center; padding: 0; background: none; text-align: center; }
  .cadushi-login-page .cadushi-login-brand { font-size: 39px; }
  .cadushi-login-message { margin: 0; padding: 30px 0 34px; }
  .cadushi-login-eyebrow { margin-bottom: 13px; font-size: 9px; }
  .cadushi-login-intro h1 { font-size: 34px; letter-spacing: -.05em; }
  .cadushi-login-description { display: none; }
  .cadushi-login-signature { display: none; }
  .cadushi-login-panel { padding: 29px 0 0; border-top: 1px solid var(--login-border); }
  .cadushi-login-page .cadushi-login-card { gap: 25px; }
  .cadushi-login-page .cadushi-login-card h2 { font-size: 21px; }
  .cadushi-login-page .cadushi-login-form { gap: 18px; }
  .cadushi-login-connection { justify-content: center; }
}

@media (max-width: 360px) {
  .cadushi-login-page { padding-inline: max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right)); }
  .cadushi-login-page .cadushi-login-brand { font-size: 35px; }
  .cadushi-login-intro h1 { font-size: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  .cadushi-login-page .cadushi-login-field input,
  .cadushi-login-page .cadushi-auth-button { transition: none; }
}

@media (forced-colors: active) {
  .cadushi-login-page .cadushi-auth-button { border: 1px solid ButtonText; }
  .cadushi-login-page .cadushi-login-field input { border-color: ButtonText; }
  .cadushi-login-page .cadushi-login-field input:focus-visible,
  .cadushi-login-page .cadushi-auth-button:focus-visible { outline-color: Highlight; }
}

/* The server exposes this entry only with the reviewed guest route enabled.
   Its source lives in an inert template, so static/default-off login stays safe. */
.cadushi-login-page .cadushi-login-guest-link {
  display: grid;
  place-items: center;
  min-height: 52px;
  border: 1px solid var(--login-field-border);
  border-radius: 12px;
  padding: 12px 18px;
  color: var(--login-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
}
.cadushi-login-page .cadushi-login-guest-link:hover { background: var(--login-intro); }
.cadushi-login-page .cadushi-login-guest-link:focus-visible { outline: 2px solid var(--login-text); outline-offset: 4px; }
@media (forced-colors: active) {
  .cadushi-login-page .cadushi-login-guest-link { border-color: LinkText; }
  .cadushi-login-page .cadushi-login-guest-link:focus-visible { outline-color: Highlight; }
}

/* LabelInput interaction adapted from Bencho (MIT, Lorenzo Cabra, 2026).
   See licenses/bencho-MIT.txt. Native inputs remain uncontrolled: CSS handles
   focus, value presence and autofill without reading or storing credentials. */
.cadushi-login-page .cadushi-label-input {
  position: relative;
  display: block;
  margin-top: 10px;
}
.cadushi-login-page .cadushi-label-input input {
  display: block;
  min-height: 56px;
  border-radius: 26px;
  padding: 15px 25px;
  font-size: 16px;
  line-height: 24px;
}
.cadushi-login-page .cadushi-label-input input::placeholder { opacity: 0; }
.cadushi-login-page .cadushi-floating-label {
  position: absolute;
  left: 22px;
  top: 28px;
  max-width: calc(100% - 44px);
  padding: 0 5px;
  color: var(--login-muted);
  background: var(--login-surface);
  border-radius: 4px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  transform: translateY(-50%);
  transform-origin: left center;
  transition: transform 780ms cubic-bezier(.22,1,.36,1), color 400ms ease;
  cursor: text;
}
.cadushi-login-page .cadushi-label-letters { white-space: pre; }
.cadushi-login-page .cadushi-label-letters > span { display: inline-block; }
.cadushi-login-page .cadushi-label-input input:focus + .cadushi-floating-label,
.cadushi-login-page .cadushi-label-input input:not(:placeholder-shown) + .cadushi-floating-label {
  transform: translateY(-50%) translateY(-28px) scale(.82);
  color: var(--login-text);
}
.cadushi-login-page .cadushi-label-input input:-webkit-autofill + .cadushi-floating-label {
  transform: translateY(-50%) translateY(-28px) scale(.82);
  color: var(--login-text);
}
@supports selector(:autofill) {
  .cadushi-login-page .cadushi-label-input input:autofill + .cadushi-floating-label {
    transform: translateY(-50%) translateY(-28px) scale(.82);
    color: var(--login-text);
  }
}
.cadushi-login-page .cadushi-label-input input:focus { border-color: var(--login-text); }
.cadushi-login-page .cadushi-label-input input:focus + .cadushi-floating-label .cadushi-label-letters > span {
  animation: cadushi-label-hop 800ms cubic-bezier(.3,.7,.3,1) both;
  animation-delay: var(--label-delay, 0ms);
}
.cadushi-login-page .cadushi-label-letters > span:nth-child(2) { --label-delay: 16ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(3) { --label-delay: 32ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(4) { --label-delay: 48ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(5) { --label-delay: 64ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(6) { --label-delay: 80ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(7) { --label-delay: 96ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(8) { --label-delay: 112ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(9) { --label-delay: 128ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(10) { --label-delay: 144ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(11) { --label-delay: 160ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(12) { --label-delay: 176ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(13) { --label-delay: 192ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(14) { --label-delay: 208ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(15) { --label-delay: 224ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(16) { --label-delay: 240ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(17) { --label-delay: 256ms; }
.cadushi-login-page .cadushi-label-letters > span:nth-child(18) { --label-delay: 272ms; }
@keyframes cadushi-label-hop { 38% { transform: translateY(-2px); } }
@supports selector(input:user-invalid) {
  .cadushi-login-page .cadushi-label-input input:user-invalid { border-color: var(--login-error); }
}
.cadushi-login-page .cadushi-label-input input[aria-invalid="true"] { border-color: var(--login-error); }
@media (prefers-reduced-motion: reduce) {
  .cadushi-login-page .cadushi-floating-label { transition: none; }
  .cadushi-login-page .cadushi-label-input input:focus + .cadushi-floating-label .cadushi-label-letters > span { animation: none; }
}
@media (forced-colors: active) {
  .cadushi-login-page .cadushi-floating-label { background: Canvas; color: CanvasText; }
  .cadushi-login-page .cadushi-label-input input { border-color: ButtonText; }
}

/* A single high-contrast contour; focused text never gets a second outer ring. */
.cadushi-login-page .cadushi-label-input input:focus-visible {
  outline: none;
  border: 2px solid var(--login-text);
  padding: 14px 24px;
  box-shadow: none;
}
@media (forced-colors: active) {
  .cadushi-login-page .cadushi-label-input input:focus-visible { border-color: Highlight; }
}

/* Anchor the whole intrinsic login block above the keyboard. Its dimensions
   stay stable when the visual viewport shrinks; all content can scroll on
   short screens. Guest/private app scrolling and native zoom stay separate. */
@media (max-width: 760px), (max-width: 1000px) and (max-height: 540px) {
  .cadushi-login-page {
    position: fixed;
    inset: var(--login-viewport-top, 0px) 0 auto;
    width: 100%;
    height: 100svh;
    height: var(--login-viewport-height, 100dvh);
    min-height: 0;
    overflow-y: auto;
    scrollbar-gutter: stable;
    overscroll-behavior-y: contain;
    padding-block: max(20px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-bottom));
  }
  .cadushi-login-page .cadushi-login-shell {
    height: auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  .cadushi-login-page .cadushi-login-intro {
    flex: none;
    min-height: 0;
  }
  .cadushi-login-page .cadushi-login-brand { width: min(100%, 240px); }
  .cadushi-login-page .cadushi-login-intro h1 { font-size: 28px; }
  .cadushi-login-page .cadushi-login-message { padding-block: 16px 20px; }
  .cadushi-login-page .cadushi-login-panel {
    flex: none;
    min-height: 0;
    display: block;
    padding-top: 18px;
  }
  .cadushi-login-page .cadushi-login-card { gap: 18px; }
}
.cadushi-login-page :is(input, button, a) { scroll-margin-block: 20px; }

/* Apply the native double-tap policy at each login hit target and scroll
   boundary. Manipulation retains pinch zoom, panning and text selection. */
body.cadushi-login-page,
body.cadushi-login-page * { touch-action: manipulation; }

/* Shrink intrinsic flex/grid sizes rather than creating a horizontal page.
   Only the login root is contained; deliberate pinch zoom remains native. */
html:has(> body.cadushi-login-page) {
  overflow-x: clip;
  overscroll-behavior-x: none;
}
body.cadushi-login-page { max-width: 100%; overscroll-behavior-x: none; }
.cadushi-login-page .cadushi-login-shell { min-width: 0; }
.cadushi-login-page .cadushi-login-intro,
.cadushi-login-page .cadushi-login-panel,
.cadushi-login-page .cadushi-login-card,
.cadushi-login-page .cadushi-login-form,
.cadushi-login-page .cadushi-login-field,
.cadushi-login-page .cadushi-login-field input {
  min-width: 0;
  max-width: 100%;
}
.cadushi-login-page .cadushi-login-panel { overflow-x: hidden; }

/* Installed apps use the document's native scroller. A fixed, offset-following
   body competes with WebKit's password/autofill keyboard pan. No focus hacks,
   forced scroll positions or credential handling are needed here. */
@media (max-width: 760px), (max-width: 1000px) and (max-height: 540px) {
  body.cadushi-login-page[data-login-standalone="true"] {
    position: static;
    inset: auto;
    height: auto;
    min-height: var(--login-viewport-height, 100svh);
    overflow-y: visible;
    scrollbar-gutter: auto;
    overscroll-behavior-y: auto;
  }
}

/* Controls stay native-disabled until server capabilities pass. Account
   provisioning and provider authorization live at the server boundary. */
.cadushi-login-account-options {
  display: grid;
  gap: 12px;
  padding-top: 20px;
  border-top: 1px solid var(--login-border);
}
.cadushi-login-account-options button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid var(--login-field-border);
  border-radius: 12px;
  font: inherit;
  font-size: 15px;
  font-weight: 550;
  color: var(--login-text);
  background: var(--login-surface);
  cursor: not-allowed;
}
.cadushi-login-account-options .cadushi-login-provider {
  background: #fff;
  color: #1f1f1f;
  font-weight: 500;
}
.cadushi-login-provider img { flex: none; object-fit: contain; }
.cadushi-login-account-options .cadushi-login-apple { gap: 0; }
.cadushi-login-page .cadushi-login-card .cadushi-login-readiness-note {
  margin: 0;
  color: var(--login-muted);
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
}
@media (forced-colors: active) {
  .cadushi-login-account-options button:disabled { border-color: GrayText; color: GrayText; }
}

.cadushi-login-provider-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.cadushi-login-account-options { padding-top:10px; }
@media(max-width:760px),(max-width:1000px) and (max-height:540px) {
 .cadushi-login-page .cadushi-login-message { padding-bottom:10px; }
 .cadushi-login-page .cadushi-login-panel { padding-top:9px; }
 .cadushi-login-page .cadushi-login-card { gap:9px; }
 .cadushi-login-provider-row button { min-width:0; }
 .cadushi-login-provider-row button span { display:none; }
}

/* Keep provider names only when the actual card row can fit both names. */
.cadushi-login-provider-row { container-type:inline-size; }
.cadushi-login-provider-row button span { display:none; }
@container (min-width:440px) { .cadushi-login-provider-row button span { display:inline; white-space:nowrap; } }

/* Minimal method selection; the existing compact form remains a second screen. */
.cadushi-access-entry { width:min(100%,390px); min-height:calc(100svh - 80px); display:flex; flex-direction:column; padding:clamp(64px,18svh,150px) 0 0; box-sizing:border-box; }
.cadushi-access-brand { width:min(80%,280px); margin-inline:auto; color:var(--login-text); animation:cadushi-access-reveal .45s ease-out both; }
.cadushi-access-actions { display:grid; gap:10px; margin-top:auto; padding-top:70px; text-align:center; animation:cadushi-access-reveal .45s .08s ease-out both; }
.cadushi-access-actions .cadushi-login-provider { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:50px; padding:8px 14px; border:1px solid var(--login-border); border-radius:12px; background:var(--login-surface); color:var(--login-text); font:inherit; font-size:14px; font-weight:600; opacity:1; cursor:not-allowed; }
.cadushi-access-actions .cadushi-login-provider img { object-fit:contain; width:22px; height:22px; }
.cadushi-access-actions .cadushi-entry-apple { background:#fff; color:#111; }
.cadushi-access-divider { margin:2px 0; font-size:12px; color:var(--login-muted); }
.cadushi-access-email { min-height:48px; padding:10px 14px; border:1px solid var(--login-border); border-radius:12px; background:var(--login-lime); color:var(--login-ink); font:inherit; font-size:14px; font-weight:650; cursor:pointer; }
.cadushi-access-guest { display:inline-flex; justify-content:center; align-items:center; min-height:44px; color:var(--login-text); text-decoration:underline; text-underline-offset:4px; font-size:13px; }
#cadushi-entry-readiness { margin:0; color:var(--login-muted); font-size:11px; line-height:1.4; }
#cadushi-entry-status:empty { display:none; }
#cadushi-entry-status { margin:0; color:var(--login-muted); font-size:12px; }
.cadushi-access-back { justify-self:start; min-height:44px; padding:8px 0; border:0; background:transparent; color:var(--login-text); font:inherit; font-size:13px; cursor:pointer; }
.cadushi-access-entry :focus-visible,.cadushi-access-back:focus-visible { outline:2px solid var(--login-text); outline-offset:3px; }
.cadushi-login-page[data-access-screen="inicio"] { background:var(--login-intro); }
@keyframes cadushi-access-reveal { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { .cadushi-access-brand,.cadushi-access-actions { animation:none; } }
@media(max-height:600px) { .cadushi-access-entry { min-height:calc(100svh - 48px); padding-top:30px; } .cadushi-access-actions { padding-top:36px; } }

/* Mobile welcome shares the exact preexisting darker form surface. */
@media(max-width:760px) {
 .cadushi-login-page[data-access-screen="inicio"] { background:var(--login-surface); }
}

@media (max-width:600px) {
 :root[data-tema="oscuro"] .cadushi-login-page {--login-background:#000000; --login-surface:#000000; --login-intro:#000000;
    --login-provider-surface:#171916;}
 .cadushi-access-actions #cadushi-entry-google {background:var(--login-provider-surface,var(--login-surface));}
}
@media (max-width:600px) and (prefers-color-scheme:dark) {
 :root:not([data-tema="claro"]) .cadushi-login-page {--login-background:#000000; --login-surface:#000000; --login-intro:#000000;
    --login-provider-surface:#171916;}
}

/* Equal icon slots and label columns align the C in both welcome providers.
   Apple's official88px bitmap has38px ink height; scale its painted height
   to Google's22px while retaining the same22px layout box on both screens. */
@media (max-width:600px) {
 .cadushi-login-page {--login-grid-cell:calc((100vw - 15px)/6);}
 .cadushi-login-page :is(.cadushi-access-brand,.cadushi-login-brand) {position:relative;isolation:isolate;display:grid;grid-template-rows:var(--login-grid-cell) minmax(var(--login-grid-cell),max-content) var(--login-grid-cell);justify-items:center;align-items:center;gap:3px;}
 .cadushi-login-page :is(.cadushi-access-brand,.cadushi-login-brand)::before {content:"";position:absolute;top:var(--brand-veil-top,0px);height:var(--brand-veil-height,calc(2*var(--login-grid-cell) + 3px));left:-8%;right:-8%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,rgb(0 0 0 / var(--brand-veil,.15)) 0%,transparent 72%);filter:blur(12px);}
 .cadushi-login-page .cadushi-approved-lockup {position:relative;top:var(--login-brand-drop,0px);}
 .cadushi-login-page .cadushi-mobile-tagline {display:block;width:120%;min-width:0;max-width:calc(100vw - 32px);overflow-wrap:anywhere;margin:0;grid-row:2;position:relative;top:var(--login-tagline-offset,0px);color:var(--login-text);font:700 13px/1.45 var(--font-sans,system-ui,sans-serif);letter-spacing:0;text-align:center;text-shadow:0 1px 3px rgb(0 0 0 / .45);}
 .cadushi-login-page .cadushi-login-message h1 {display:none;}
 .cadushi-login-page .cadushi-login-message {display:none;}
 :root[data-tema="oscuro"] .cadushi-login-page {--brand-veil:.75;}
 .cadushi-access-actions .cadushi-login-provider {display:grid;grid-template-columns:22px 160px;justify-content:center;gap:10px;}
 .cadushi-access-actions .cadushi-login-provider span {text-align:left;}
 .cadushi-login-page :is(#cadushi-entry-apple,#cadushi-entry-google,#cadushi-login-apple,#cadushi-login-google) img {width:22px;height:22px;}
 /* Round outward at CSSOM precision: preserve the complete first ink row20. */
 .cadushi-login-page :is(#cadushi-entry-apple,#cadushi-login-apple) img {transform:translateY(2.894737px) scale(2.315789);clip-path:inset(22.7272% 32.954545% 34.090909% 32.954545%);}
 .cadushi-access-actions #cadushi-entry-apple img {transform:translate(2.315789px,2.894737px) scale(2.315789);}
 .cadushi-access-actions #cadushi-entry-google img {object-position:right center;}
}
@media (max-width:600px) and (prefers-color-scheme:dark) {
 :root:not([data-tema="claro"]) .cadushi-login-page {--brand-veil:.75;}
}
@media(forced-colors:active) {
 .cadushi-login-page :is(.cadushi-access-brand,.cadushi-login-brand)::before {display:none;}
}

/* Oct11 mobile email presentation; readiness and auth selectors remain native. */
.cadushi-register-mobile,.cadushi-back-icon,.cadushi-opening-mobile {display:none;}
@media(max-width:600px) {
 .cadushi-login-page,:root[data-tema] .cadushi-login-page,:root:not([data-tema]) .cadushi-login-page {--login-background:#000;--login-surface:#000;--login-intro:#000;--login-text:#f6f7f3;--login-muted:#a9afa1;--login-border:#40463a;--login-field-border:#717a64;--login-error:#c8f542;--brand-veil:.75;}
 .cadushi-login-page .cadushi-login-intro {padding-top:clamp(64px,18svh,150px);}
 .cadushi-login-page .cadushi-login-brand {width:min(80%,280px);}
 .cadushi-login-page .cadushi-login-panel {border-top:0;padding-top:36px;}
 .cadushi-login-page .cadushi-login-card {margin-inline:auto;gap:12px;}
 .cadushi-login-page .cadushi-login-provider-row,.cadushi-login-page .cadushi-login-form .cadushi-login-guest-link {display:none;}
 .cadushi-login-page .cadushi-login-account-options {border-top:0;padding-top:0;}
 .cadushi-login-page [data-particle-cactus] {display:none;}
 .cadushi-register-desktop,.cadushi-back-label {display:none;}
 .cadushi-register-mobile,.cadushi-back-icon {display:inline;}
 .cadushi-login-page .cadushi-access-back {position:absolute;top:calc(var(--login-grid-cell) + 3px + (var(--login-grid-cell) - 44px)/2);left:calc((var(--login-grid-cell) - 44px)/2);display:grid;place-items:center;width:44px;height:44px;padding:0;box-sizing:border-box;border:3px solid #fff;border-radius:50%;background:transparent;color:#fff;z-index:1;}
 .cadushi-login-page .cadushi-back-icon {width:30px;height:30px;}
 .cadushi-login-page .cadushi-back-icon path {stroke-width:3px;vector-effect:non-scaling-stroke;}
 .cadushi-opening-mobile .cadushi-access-brand {animation:none;}
 .cadushi-opening-mobile {display:grid;position:absolute;inset:0;width:100%;height:100%;padding-block:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-bottom));overflow:hidden;pointer-events:none;}
 .cadushi-apertura:has(.cadushi-opening-mobile) {background:#000;padding:0;}
 .cadushi-apertura>.cadushi-apertura-lockup {display:none;}
}
@media(max-width:600px) and (max-height:600px) {
 .cadushi-login-page .cadushi-login-intro {padding-top:30px;}
}

@media(max-width:360px) {
 /* Restore the original narrow-screen clearance from a99b317. */
 .cadushi-login-page .cadushi-access-back {top:calc((var(--login-grid-cell) - 44px)/2);}
}

/* Paired email actions; native disabled registration and auth handlers unchanged. */
.cadushi-login-primary-actions {display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cadushi-login-primary-actions button {width:100%;min-height:48px;border:1px solid var(--login-field-border);border-radius:12px;font:inherit;}
.cadushi-login-primary-actions #cadushi-create-account {background:var(--login-surface);color:var(--login-text);cursor:not-allowed;}

.cadushi-login-page .cadushi-login-primary-actions button{margin:0;align-self:stretch;}

/* Capability checks enable these existing controls; disabled remains inert. */
.cadushi-login-account-options button:not(:disabled),
.cadushi-access-actions .cadushi-login-provider:not(:disabled),
.cadushi-login-primary-actions #cadushi-create-account:not(:disabled){cursor:pointer;}
