/* auth.css — shared styles for standalone pages (login, password reset, apply) */

/* Base reset */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:'DM Sans',ui-sans-serif,system-ui,sans-serif;min-height:100vh;background:#f8fafc}

/* Page layout */
.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;background:radial-gradient(ellipse at 50% 0%,#e0e7ff 0%,#f8fafc 60%)}

/* Card */
.auth-card{width:100%;max-width:26rem;background:#fff;border-radius:1rem;border:1px solid #e2e8f0;box-shadow:0 4px 24px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);padding:2.5rem}

/* Brand */
.auth-brand{font-size:.9375rem;font-weight:600;color:#1e293b;text-decoration:none;display:block;text-align:center;margin-bottom:1.75rem}

/* Typography */
.auth-title{font-size:1.5rem;font-weight:600;color:#0f172a;margin:0 0 .25rem}
.auth-subtitle{font-size:.875rem;color:#64748b;margin:0 0 1.75rem}
.auth-text{font-size:.875rem;color:#64748b;margin:0 0 1.5rem;line-height:1.5}

/* Inputs */
.input-wrap{position:relative;margin-bottom:1rem}
.input-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}
.auth-input{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:.625rem;font-size:.9375rem;font-family:inherit;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}
.auth-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.auth-input::placeholder{color:#94a3b8}
.auth-input-icon{padding-left:2.75rem}
.label{display:block;font-size:.875rem;font-weight:500;color:#334155;margin-bottom:.25rem}

/* Button */
.auth-btn{width:100%;padding:.75rem;border:none;border-radius:.625rem;font-size:.9375rem;font-weight:500;font-family:inherit;color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 1px 3px rgba(37,99,235,.3);cursor:pointer;transition:all .15s;text-decoration:none}
.auth-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8)}
.auth-btn:active{transform:scale(.98)}
.auth-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}
.auth-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}

/* Errors & hints */
.field-error{margin-top:.25rem;font-size:.75rem;color:#dc2626}
.field-hint{margin-top:.25rem;font-size:.75rem;color:#64748b;line-height:1.4}
.field-hint ul{list-style:disc;padding-left:1.25rem;margin:.25rem 0 0}
.field-hint li{margin-bottom:.125rem}
.form-error-banner{margin-bottom:1rem;padding:.75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.625rem;font-size:.875rem;color:#b91c1c}
.form-error-banner ul{list-style:none;margin:0;padding:0}

/* Link */
.auth-link{font-size:.8125rem;color:#3b82f6;text-decoration:none;transition:color .15s}
.auth-link:hover{color:#1d4ed8}

/* Icon circle */
.icon-circle{width:3.5rem;height:3.5rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}

/* Footer */
.auth-footer{margin-top:1.5rem;text-align:center;font-size:.75rem;color:#94a3b8}
.auth-footer a{color:#94a3b8;text-decoration:none;transition:color .15s}
.auth-footer a:hover{color:#64748b}

/* Utility */
.hidden{display:none!important}

/* Mobile */
@media(max-width:480px){
  .auth-card{box-shadow:0 1px 4px rgba(0,0,0,.06);border-radius:.75rem;padding:1.5rem;max-width:100%}
  .auth-page{padding:1rem;justify-content:flex-start;padding-top:2.5rem}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
