/* Authentication uses the same type, surfaces and controls as the ERP. */
.login-page-body { margin:0; background:var(--erp-canvas); }
.pl-wrapper { min-height:100dvh; max-width:1120px; margin:auto; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:56px; align-items:center; padding:40px 24px; }
.pl-right { width:100%; min-width:0; }
.pl-form-card { background:var(--erp-surface); border:1px solid var(--erp-border); border-radius:var(--erp-radius-card); padding:32px; box-shadow:var(--erp-shadow-card); }
.pl-mobile-logo { display:none; margin-bottom:20px; }
.pl-mobile-logo img { width:44px; height:44px; object-fit:contain; }
.pl-eyebrow { display:block; font-size:13px; color:var(--erp-primary); font-weight:600; margin-bottom:8px; }
.pl-form-header h2 { font-size:26px; margin:0 0 8px; }
.pl-form-header p { color:var(--erp-text-secondary); font-size:14px; margin-bottom:24px; }
.pl-field { margin-bottom:20px; }
.pl-field label { font-size:13px; font-weight:500; margin-bottom:6px; }
.pl-field-header { display:flex; align-items:center; justify-content:space-between; }
.pl-input-group { position:relative; }
.pl-input-group input { width:100%; min-height:44px; border:1px solid var(--erp-control-border); background:var(--erp-surface); color:var(--erp-text); border-radius:var(--erp-radius-control); font-size:14px; padding:10px 44px; }
.pl-input-group input:focus { border-color:var(--erp-focus); box-shadow:var(--erp-focus-ring); outline:0; }
.pl-input-icon { position:absolute; left:14px; top:11px; font-size:18px; color:var(--erp-text-muted); }
.pl-toggle-btn { position:absolute; right:0; top:0; width:44px; height:44px; border:0; background:transparent; color:var(--erp-text-secondary); font-size:18px; }
.pl-btn-text { background:transparent; border:0; padding:6px 0; font-size:13px; color:var(--erp-primary); text-decoration:underline; text-underline-offset:3px; }
.pl-checkbox { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--erp-text-secondary); cursor:pointer; }
.pl-checkbox input { width:18px; height:18px; accent-color:var(--erp-primary); }
.pl-check-box { display:none; }
.pl-options { margin:0 0 20px; }
.pl-btn-primary { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:44px; border:1px solid var(--erp-primary); border-radius:var(--erp-radius-control); background:var(--erp-primary); color:var(--erp-on-primary); font-size:14px; font-weight:600; }
.pl-btn-primary:hover { background:var(--erp-primary-hover); }
.pl-btn-primary:disabled { opacity:.65; cursor:wait; }
.pl-btn-primary.is-loading .login-submit__icon { display:none; }
.pl-btn-primary.is-loading .login-submit__loader { display:inline-block !important; }
.pl-spin { animation:login-spin 1s linear infinite; }
@keyframes login-spin { to { transform:rotate(360deg); } }
.login-message,.pl-alert,.pl-hint { padding:12px; border-radius:var(--erp-radius-control); background:var(--erp-info-soft); color:var(--erp-info); font-size:13px; margin:0 0 16px; }
.login-message--error { background:var(--erp-danger-soft); color:var(--erp-danger); }
.login-message--success { background:var(--erp-success-soft); color:var(--erp-success); }
.pl-field.is-invalid input { border-color:var(--erp-danger); }
.pl-hint { margin:6px 0 0; background:var(--erp-warning-soft); color:var(--erp-warning); }
.pl-saved-identity { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px; border:1px solid var(--erp-border); border-radius:var(--erp-radius-control); background:var(--erp-surface-soft); margin-bottom:20px; }
.pl-saved-info { display:flex; gap:10px; min-width:0; }
.pl-saved-info span,.pl-saved-info strong { display:block; font-size:13px; overflow-wrap:anywhere; }
.pl-avatar { font-size:20px; color:var(--erp-primary); }
.pl-saved-actions { display:flex; flex-direction:column; align-items:flex-end; flex-shrink:0; }
.pl-footer { margin-top:24px; border-top:1px solid var(--erp-border); padding-top:16px; }
.pl-footer p { font-size:12px; color:var(--erp-text-muted); line-height:1.6; margin:0; }
.pl-wrapper [hidden] { display:none !important; }
.pl-overview{min-width:0}.pl-brand{display:flex;gap:12px;align-items:center;color:var(--erp-text);font-size:17px;font-weight:600;text-decoration:none}.pl-brand img{width:42px;height:42px;object-fit:contain}.pl-brand small{display:block;font-size:12px;font-weight:400;color:var(--erp-text-muted);margin-top:3px}.pl-overview-content{margin:36px 0 28px}.pl-section-label{font-size:11px;font-weight:600;color:var(--erp-primary);letter-spacing:.5px}.pl-overview h1{font-size:32px;font-weight:600;line-height:1.3;letter-spacing:-.6px;margin:12px 0 14px}.pl-overview-content>p{font-size:14px;color:var(--erp-text-secondary);line-height:1.8;max-width:420px}.pl-features{display:grid;gap:0;margin-top:24px}.pl-features>div{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--erp-border)}.pl-features>div:last-child{border-bottom:0}.pl-feature-icon{width:36px;height:36px;display:grid;place-items:center;flex-shrink:0;background:var(--erp-primary-soft);color:var(--erp-primary);border-radius:var(--erp-radius-control);font-size:19px}.pl-features strong{display:block;font-size:13px;font-weight:500;margin-bottom:5px}.pl-features small{display:block;font-size:12px;color:var(--erp-text-muted);line-height:1.6}.pl-school-start{display:flex;align-items:flex-start;gap:12px;padding:16px;background:var(--erp-surface);border:1px solid var(--erp-border);border-radius:var(--erp-radius-card);box-shadow:var(--erp-shadow-card)}.pl-school-start>i{font-size:22px;color:var(--erp-primary)}.pl-school-start strong{font-size:13px;font-weight:500}.pl-school-start p{font-size:12px;line-height:1.6;color:var(--erp-text-muted);margin:5px 0 8px}.pl-school-start a{font-size:12px;font-weight:500;color:var(--erp-primary)}.pl-signup{text-align:center;font-size:12px;line-height:1.8;margin:24px 0 0;color:var(--erp-text-secondary)}.pl-signup a{font-weight:500;color:var(--erp-primary)}.pl-eyebrow i{margin-right:5px}.pl-btn-text{text-decoration:none}.pl-form-header h2{font-size:24px}.pl-form-header p{font-size:13px;line-height:1.7}.pl-wrapper :focus-visible{outline:2px solid var(--erp-focus);outline-offset:3px}
@media(max-width:900px){.pl-wrapper{gap:28px}.pl-overview h1{font-size:27px}.pl-form-card{padding:24px}.pl-overview-content>p{font-size:13px}}
@media(max-width:700px){.pl-wrapper{display:flex;flex-direction:column;gap:24px;padding:24px 16px;max-width:490px;justify-content:center;align-items:stretch}.pl-overview-content,.pl-school-start{display:none}.pl-brand{font-size:15px}.pl-brand img{width:36px;height:36px}.pl-form-card{padding:24px}.pl-input-group input{font-size:16px}}
@media(max-width:480px){.pl-wrapper{padding:24px 12px}.pl-form-card{padding:24px 20px}.pl-btn-text{min-height:38px}}
@media(prefers-reduced-motion:reduce){.pl-spin{animation:none}}
