:root{--navy:#071c2e;--gold:#f6c846}*{box-sizing:border-box}.login-page{margin:0;min-height:100vh;padding:3rem 1rem;background:linear-gradient(135deg,#071c2e,#0c4f60);font:1rem/1.5 system-ui,sans-serif;color:#102635}.login-card{max-width:460px;margin:auto;padding:2rem;background:white;border-radius:1.25rem}.login-brand{display:flex;align-items:center;gap:.8rem;color:var(--navy);font-weight:700;text-decoration:none}.login-brand img{border-radius:50%}.login-card h1{font-size:1.9rem;line-height:1.15;margin-top:1.8rem}.login-card label{display:block;font-weight:600;margin-top:1rem}.login-card input,.login-card select{display:block;width:100%;padding:.8rem;margin-top:.4rem;border:1px solid #bdcdd3;border-radius:.6rem;font:inherit}.login-card button{width:100%;padding:.85rem;background:var(--gold);border:0;border-radius:2rem;font:700 1rem system-ui;cursor:pointer}.login-card a{color:var(--navy)}#pin-help{font-size:.875rem;color:#5d7180}#login-message{color:#9f261b}.portal-session{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:.8rem 1rem;border-radius:.8rem;background:white;color:#102635;font-size:.875rem}.portal-session button{font:inherit;border:1px solid #bdcdd3;background:white;padding:.6rem .8rem;border-radius:.6rem;cursor:pointer}.portal-alerts{display:grid;gap:.7rem;margin:0 0 1rem}.portal-alert{padding:1rem;border-radius:.8rem;background:white;color:#102635}.portal-alert strong{display:block;margin-bottom:.35rem}.portal-alert ul{margin:.35rem 0 0;padding-left:1.25rem}.portal-alert li+li{margin-top:.35rem}.portal-alert a{font-weight:800}.portal-alert.overdue{border:2px solid #d93a2f;background:#fff0ee;color:#a32118;font-weight:800}.portal-alert.overdue a{color:#86170f}.portal-alert.returned{border-left:5px solid #e39b16;background:#fff8e7}.portal-alert.awaiting{border-left:5px solid #198a87;background:#eef9f8}label,legend{font-size:.875rem}select,input,textarea{font-size:1rem}.portal-switch{flex-wrap:wrap}.fine{font-size:.875rem}button:disabled{opacity:.6}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
