/* railway-ask module shell (askShell): the journey log and the IAM login
   under the shared app bar (pkg/ui/appbar, its --ui-* tokens loaded first).
   Mobile first at 375 px: one column, 44 px taps, 16 px inputs (no iOS zoom). */
.rw-body { overflow-x: hidden; background: var(--ui-bg); color: var(--ui-ink); }
.rw-shell { padding-block: var(--ui-sp-4) var(--ui-sp-7); } /* width + gutter: the shared .ui-page column */
.rw-page { min-width: 0; }

/* "Vo vlaku" is a phone tab only (owner 2026-10-22): the desktop bar shows
   Hľadať · Moje cesty · Podujatia. */
.ui-appbar__nav [data-key="riding"] { display: none; }

/* IAM login card (pkg/publicaccount markup). */
.rw-page .portal-login { display: grid; justify-items: center; }
.rw-page .portal-login__card {
  width: 100%; max-width: 440px; display: grid; gap: 14px; padding: 20px 16px;
  background: var(--ui-surface); border: 1px solid var(--ui-line); border-radius: var(--ui-radius);
  box-shadow: var(--ui-shadow); color: var(--ui-ink);
}
.rw-page .portal-login__card h1 { margin: 0; font-size: 1.4rem; color: var(--ui-brand); }
.rw-page .portal-login__modes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 4px; border-radius: 999px; background: var(--ui-soft); }
.rw-page .portal-login__mode-input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.rw-page .portal-login__mode {
  min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px;
  color: var(--ui-muted); font-weight: 700; text-decoration: none;
}
.rw-page .portal-login__mode-input:checked + .portal-login__mode { background: var(--ui-surface); color: var(--ui-brand); box-shadow: var(--ui-shadow-1); }
.rw-page .portal-login form { display: grid; gap: 12px; }
.rw-page .portal-login label { display: grid; gap: 4px; font-size: 0.9rem; font-weight: 600; color: var(--ui-ink); }
/* The SDUI field label holds only its text and the required "*": one line. */
.rw-page .portal-login label.nhc-form__label { display: block; }
.rw-page .portal-login input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
  width: 100%; min-height: 48px; padding: 10px 12px; font: inherit; font-size: 16px; color: var(--ui-ink);
  background: var(--ui-surface); border: 1px solid var(--ui-line); border-radius: 10px;
}
.rw-page .portal-login input[type="checkbox"] { width: 22px; height: 22px; accent-color: var(--ui-accent); }
.rw-page .portal-login button[type="submit"], .rw-page .portal-login__submit {
  width: 100%; min-height: 48px; border: 0; border-radius: 999px; background: var(--ui-accent); color: var(--ui-on-dark);
  font: inherit; font-weight: 800; text-transform: none; letter-spacing: 0; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; text-decoration: none;
}
.rw-page .portal-login a { color: var(--ui-brand); }
.rw-page .portal-login__admin, .rw-page .portal-login__recovery, .rw-page .portal-login__back-app { min-height: 44px; display: inline-flex; align-items: center; }
.rw-page .portal-login__notice, .rw-page .portal-login__error { padding: 10px 12px; border-radius: 10px; background: var(--ui-soft); }
.rw-page .portal-login__error { background: var(--ui-danger-bg); color: var(--ui-accent-2); }
.rw-page .portal-login__divider { text-align: center; font-size: 0.8rem; color: var(--ui-muted); }
.rw-page .portal-login__footer { display: grid; gap: 4px; font-size: 0.8rem; color: var(--ui-muted); }
.rw-page .portal-login__caption { margin: 0; }
.rw-page .portal-login__field { display: grid; gap: 4px; }
.rw-page .portal-login__label { font-size: 0.9rem; font-weight: 600; color: var(--ui-ink); }
.rw-page .portal-login__trust {
  display: flex; align-items: flex-start; gap: 10px; min-height: 48px; padding: 12px; cursor: pointer;
  border: 1px solid var(--ui-line); border-radius: 10px; background: var(--ui-soft);
}
.rw-page .portal-login__trust-text { display: grid; gap: 2px; }
.rw-page .portal-login__trust-title { font-size: 0.9rem; font-weight: 700; }
.rw-page .portal-login__trust-hint { font-size: 0.8rem; color: var(--ui-muted); }
.rw-page .portal-login__privacy { min-height: 44px; display: inline-flex; align-items: center; color: var(--ui-brand); }
/* Mode-bound fields (no script): register-only fields show, login-only ones
   hide while the "Registrácia" radio is checked (same rule as portal-account.css). */
.rw-page .portal-login .portal-login__register-only { display: none; }
.rw-page .portal-login:has(#portal-login-mode-register:checked) .portal-login__field.portal-login__register-only { display: grid; }
.rw-page .portal-login:has(#portal-login-mode-register:checked) .portal-login__submit .portal-login__register-only { display: inline; }
.rw-page .portal-login:has(#portal-login-mode-register:checked) .portal-login__login-only { display: none; }


/* Special rides (rides.go): country chips, then one dated list per country. */
.rw-rides { display: grid; gap: 16px; }
.rw-rides__title { margin: 0; font-size: 1.6rem; color: var(--ui-ink); }
.rw-rides__lead { margin: 0; color: var(--ui-muted); }
.rw-rides__notice { margin: 0; padding: 12px; border-radius: var(--ui-radius); background: var(--ui-soft); color: var(--ui-ink); }
.rw-rides__filter { display: flex; flex-wrap: wrap; gap: 8px; }
.rw-rides__filter a {
  min-height: 44px; display: inline-flex; align-items: center; gap: 6px; padding: 0 14px;
  border: 1px solid var(--ui-line); border-radius: 999px; background: var(--ui-surface);
  color: var(--ui-brand); font-weight: 700; text-decoration: none;
}
.rw-rides__filter a[aria-current="page"] { background: var(--ui-brand); border-color: var(--ui-brand); color: var(--ui-surface); }
.rw-rides__count { font-weight: 400; opacity: .75; }
.rw-rides__country h2 { margin: 8px 0; font-size: 1.15rem; color: var(--ui-ink); }
.rw-rides__list { list-style: none; margin: 0; padding: 0; border-radius: var(--ui-radius); background: var(--ui-surface); box-shadow: var(--ui-shadow); }
.rw-ride { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 12px 14px; border-top: 1px solid var(--ui-line); }
.rw-ride:first-child { border-top: 0; }
.rw-ride__date { font-weight: 700; color: var(--ui-accent-2); font-variant-numeric: tabular-nums; }
.rw-ride__body { display: grid; gap: 2px; min-width: 0; }
.rw-ride__title { color: var(--ui-ink); overflow-wrap: anywhere; }
.rw-ride__place { color: var(--ui-muted); font-size: .9rem; }
.rw-ride__operator { justify-self: start; min-height: 44px; display: inline-flex; align-items: center; color: var(--ui-brand); overflow-wrap: anywhere; }
@media (min-width: 768px) {
  .rw-ride { grid-template-columns: 11rem minmax(0, 1fr); gap: 16px; }
}
