/* Login uses the shared shell and design tokens; the preview contains no live data. */
.ui-shell:has(.ui-login-layout) { display: flex; flex-direction: column; min-height: 100dvh; }
.ui-shell:has(.ui-login-layout) .ui-topbar { flex-shrink: 0; }
.ui-shell:has(.ui-login-layout) .ui-shell__body { min-height: 0; flex: 1; display: flex; align-items: center; }
.ui-login-layout { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.9fr); gap: var(--ui-space-6); padding-block: 1rem; }
.ui-login-layout > .ui-card { padding: clamp(1.5rem,3vw,2.5rem); min-width: 0; }
.ui-login-layout h1, .ui-login-preview h2 { margin: 0; font-size: clamp(1.75rem,2.5vw,2rem); letter-spacing: -.025em; line-height: 1.2; }
.ui-login-intro { margin: .75rem 0 2rem; color: var(--ui-muted); font-size: 1.05rem; line-height: 1.55; max-width: 28rem; }
.ui-login-password { position: relative; }
.ui-login-password input { padding-right: 3rem; width: 100%; }
.ui-login-reveal { position: absolute; inset-block: 0; right: 0; width: 2.75rem; border: 0; background: transparent; color: var(--ui-muted); cursor: pointer; display: grid; place-items: center; border-radius: var(--ui-radius-sm); }
.ui-login-reveal[hidden] { display: none; }
.ui-login-recovery { text-align: right; font-size: .875rem; margin: .75rem 0 1.5rem; }
.ui-login-recovery a { text-decoration: none; }
.ui-login-submit, .ui-login-passkey { width: 100%; justify-content: center; gap: .75rem; }
.ui-login-divider { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0; color: var(--ui-muted); font-size: .875rem; }
.ui-login-divider::before, .ui-login-divider::after { content: ""; height: 1px; background: var(--ui-border); flex: 1; }
.ui-login-security { display: flex; align-items: center; justify-content: center; gap: .5rem; margin: 1.75rem 0 0; color: var(--ui-muted); font-size: .75rem; line-height: 1.5; }
.ui-login-security svg { flex-shrink: 0; }
.ui-login-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem clamp(1rem,3vw,2rem); border-top: 1px solid var(--ui-border); background: var(--ui-surface); color: var(--ui-muted); }
.ui-login-language { display: flex; align-items: center; gap: .5rem; margin: 0; }
.ui-login-language .ui-select { width: 9rem; }
.ui-login-schedule { display: grid; grid-template-columns: minmax(4rem,.9fr) repeat(5,minmax(0,1fr)); margin-top: 2.5rem; border: 1px solid var(--ui-border); border-radius: var(--ui-radius); overflow: hidden; }
.ui-login-schedule > span { min-width: 0; padding: .65rem .3rem; border-right: 1px solid var(--ui-border); border-bottom: 1px solid var(--ui-border); }
.ui-login-schedule > span:nth-child(6n) { border-right: 0; }
.ui-login-schedule > span:nth-last-child(-n+6) { border-bottom: 0; }
.ui-login-schedule__day { text-align: center; font-size: .75rem; font-weight: 600; background: var(--ui-surface-subtle); }
.ui-login-schedule__person { display: grid; justify-items: center; align-content: center; gap: .5rem; text-align: center; }
.ui-login-schedule__person small { font-size: .65rem; color: var(--ui-muted); }
.ui-login-initials { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: .75rem; font-weight: 700; font-size: .75rem; }
.ui-login-schedule__cell { display: flex; align-items: center; justify-content: center; min-height: 6rem; }
.ui-login-shift { display: grid; gap: .35rem; width: 100%; padding: .65rem .35rem; border-radius: .5rem; font-size: .7rem; }
.ui-login-shift small { font-size: .6rem; line-height: 1.5; }
.ui-login-shift--day { background: #ccfbf1; color: #115e59; }
.ui-login-shift--early { background: #dbeafe; color: #1e40af; }
.ui-login-shift--late { background: #e0e7ff; color: #3730a3; }
.ui-login-rest { color: var(--ui-muted); }
@media (max-width: 60rem) { .ui-login-layout { grid-template-columns: minmax(0,1fr); max-width: 32rem; margin-inline: auto; } .ui-login-preview { display: none; } }

.ui-login-language [hidden] { display: none; }
