.session-page { min-height: 100vh; background: var(--bg-body); }
.session-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.session-card { width: min(100%, 430px); padding: 32px; border: 1px solid var(--border); border-radius: var(--radius-card, 16px); background: var(--bg-card); box-shadow: var(--shadow-card, 0 20px 45px rgba(0, 0, 0, .2)); }
.session-header { margin-bottom: 24px; text-align: center; }
.session-brand { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 12px; border-radius: 14px; color: #fff; background: var(--accent); font-size: 21px; }
.session-eyebrow { margin: 0 0 4px; color: var(--accent); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.session-header h1 { margin: 0; color: var(--text-primary); font-size: 1.65rem; }
.session-header > p:last-child { margin: 8px 0 0; color: var(--text-secondary); }
.session-card .alert { margin-bottom: 20px; }
.session-form { display: grid; gap: 18px; }
.session-form .form-group { margin: 0; }
.session-form .form-label { color: var(--text-primary); font-weight: 600; }
.session-form .input-icon-addon { color: var(--text-secondary); }
.session-password .form-control { padding-right: 48px; }
.session-password-toggle { position: absolute; z-index: 3; top: 0; right: 0; display: grid; width: 44px; height: 100%; place-items: center; border: 0; color: var(--text-secondary); background: transparent; border-radius: var(--radius-control, 8px); }
.session-password-toggle:hover { color: var(--text-primary); }
.session-password-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
.session-divider { display: flex; align-items: center; gap: 12px; color: var(--text-secondary); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.session-divider::before, .session-divider::after { content: ""; flex: 1; border-top: 1px solid var(--border); }
.session-pin-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.pin-display { display: flex; justify-content: center; gap: 10px; min-height: 14px; margin-bottom: 16px; }
.pin-dot { width: 12px; height: 12px; border: 1px solid var(--border); border-radius: 50%; background: var(--surface-muted, var(--bg-body)); }
.pin-dot.is-filled { border-color: var(--accent); background: var(--accent); }
.numpad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.numpad-btn { min-height: 48px; border-color: var(--border); color: var(--text-primary); background: var(--surface-muted, var(--bg-body)); font-size: 1.1rem; font-weight: 700; }
.numpad-btn:hover { border-color: var(--accent); color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, var(--bg-card)); }
.session-submit { min-height: 46px; margin-top: 2px; }
@media (max-width: 480px) { .session-shell { padding: 12px; place-items: start center; } .session-card { margin-top: 12px; padding: 22px 18px; } }
