/* TravelServe DFMS Airline Portal - Auth module.
   Shared tokens come from ../assets/css/app.css supplied by Dashboard package. */
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);background:linear-gradient(135deg,#edf4f3 0,#f7faf9 45%,#eef4f6 100%)}
.auth-brand-panel{position:relative;overflow:hidden;background:linear-gradient(155deg,#073f43 0,#075f60 54%,#087b76 100%);color:#fff;padding:38px 46px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}
.auth-brand-panel:before{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-180px;top:-170px;box-shadow:0 0 0 90px rgba(255,255,255,.025),0 0 0 180px rgba(255,255,255,.02)}
.auth-brand-panel:after{content:"";position:absolute;inset:auto -70px -90px auto;width:360px;height:250px;background:radial-gradient(circle at center,rgba(255,255,255,.12),transparent 66%);transform:rotate(-14deg)}
.auth-brand-top,.auth-brand-copy,.auth-brand-bottom{position:relative;z-index:2}
.auth-brand-top{display:flex;align-items:center;gap:12px}.auth-logo{width:38px;height:38px;border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.18)}.auth-logo img{width:100%;height:100%;object-fit:cover}.auth-brand-name{font-size:14px;font-weight:900;letter-spacing:.01em}.auth-brand-sub{font-size:8px;opacity:.68;text-transform:uppercase;letter-spacing:.11em;margin-top:2px}
.auth-brand-copy{max-width:540px;margin-top:auto;margin-bottom:auto;padding:80px 0}.auth-brand-copy .eyebrow{color:#8de2db;margin-bottom:10px}.auth-brand-copy h1{font-size:36px;line-height:1.05;color:#fff;max-width:520px;margin:0 0 14px;letter-spacing:-.035em}.auth-brand-copy p{font-size:12px;line-height:1.7;color:rgba(255,255,255,.74);max-width:470px;margin:0}.auth-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:22px}.auth-benefit{border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(255,255,255,.06);padding:10px}.auth-benefit b{display:block;font-size:9px;color:#fff}.auth-benefit span{display:block;font-size:7.5px;line-height:1.45;color:rgba(255,255,255,.62);margin-top:3px}
.auth-brand-bottom{font-size:8px;color:rgba(255,255,255,.58);display:flex;justify-content:space-between;gap:14px}
.auth-form-panel{display:grid;place-items:center;padding:34px;min-height:100vh}.auth-card{width:min(430px,100%);background:rgba(255,255,255,.97);border:1px solid #dbe7e9;border-radius:13px;box-shadow:0 18px 60px rgba(23,54,67,.10);overflow:hidden}.auth-card-head{padding:22px 24px 16px;border-bottom:1px solid #edf1f1}.auth-kicker{font-size:8px;text-transform:uppercase;letter-spacing:.11em;color:var(--ts-teal);font-weight:900;margin-bottom:5px}.auth-card-head h2{font-size:20px;margin:0;color:#17343f;letter-spacing:-.025em}.auth-card-head p{font-size:8.5px;color:#81959c;line-height:1.55;margin:5px 0 0}.auth-card-body{padding:20px 24px 22px}.auth-field{margin-bottom:12px}.auth-field label{display:block;font-size:8px;color:#657d85;font-weight:800;margin-bottom:5px}.auth-input-wrap{height:40px;border:1px solid #d8e4e5;border-radius:8px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 10px;transition:.16s}.auth-input-wrap:focus-within{border-color:#8bc4bf;box-shadow:0 0 0 3px rgba(0,122,118,.07)}.auth-input-wrap svg{width:14px;height:14px;stroke:#8ca1a7;fill:none;stroke-width:1.8}.auth-input-wrap input{border:0;outline:0;background:transparent;width:100%;font-size:10px;color:#23434d}.auth-input-wrap input::placeholder{color:#b0bec1}.auth-input-action{border:0;background:transparent;color:var(--ts-teal);font-size:7.5px;font-weight:900;padding:0}.auth-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-2px 0 14px}.auth-link{font-size:8px;color:var(--ts-teal);font-weight:800}.auth-link:hover{text-decoration:underline}.auth-submit{width:100%;height:39px;font-size:9px}.auth-help{margin-top:14px;border-top:1px solid #edf1f1;padding-top:12px;font-size:7.8px;color:#8c9ea4;line-height:1.55}.auth-help b{color:#4b6870}.auth-security{margin-top:10px;display:flex;align-items:flex-start;gap:7px;background:#f5faf9;border:1px solid #dcebe8;border-radius:8px;padding:9px}.auth-security svg{width:14px;height:14px;stroke:var(--ts-teal);fill:none;stroke-width:1.8;flex:0 0 auto}.auth-security b{display:block;font-size:8px;color:#3a5a62}.auth-security span{display:block;font-size:7.2px;color:#85999f;line-height:1.45;margin-top:2px}
.auth-alert{display:none;margin:0 0 12px;border:1px solid #f0d8dc;background:#fff3f5;color:#a84a56;border-radius:8px;padding:8px 9px;font-size:8px;line-height:1.45}.auth-alert.open{display:block}.auth-success{border-color:#d6ede2;background:#eff9f4;color:#2e7658}.auth-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:#f3f6f6;border:1px solid #e4ebec;border-radius:6px;padding:2px 5px;font-size:7.5px}
.auth-footer{text-align:center;margin-top:13px;color:#99a8ad;font-size:7.5px}.auth-footer a{color:#698189;font-weight:800}.auth-footer a:hover{color:var(--ts-teal)}
.denied-icon{width:48px;height:48px;border-radius:13px;background:var(--ts-red-soft);color:#b44e5a;display:grid;place-items:center;margin-bottom:13px}.denied-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7}.auth-card-body h3{font-size:12px;margin:0 0 5px;color:#27464f}.auth-card-body>p{font-size:8.5px;color:#82969d;line-height:1.55;margin:0 0 14px}.access-summary{border:1px solid #e1e9ea;border-radius:8px;background:#fbfcfc;margin-bottom:14px}.access-summary>div{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 9px;border-bottom:1px solid #edf1f1;font-size:8px}.access-summary>div:last-child{border-bottom:0}.access-summary span{color:#85989e}.access-summary b{color:#3b5962;text-align:right}
.auth-actions{display:flex;gap:7px}.auth-actions .btn{flex:1}
@media(max-width:900px){.auth-page{grid-template-columns:1fr}.auth-brand-panel{min-height:auto;padding:24px}.auth-brand-copy{padding:42px 0 30px}.auth-brand-copy h1{font-size:28px}.auth-benefits{grid-template-columns:1fr 1fr 1fr}.auth-form-panel{min-height:auto;padding:28px 18px 42px}.auth-brand-bottom{display:none}}
@media(max-width:560px){.auth-brand-copy h1{font-size:23px}.auth-benefits{grid-template-columns:1fr}.auth-benefit:nth-child(3){display:none}.auth-card-head,.auth-card-body{padding-left:18px;padding-right:18px}.auth-form-panel{padding:20px 12px 34px}.auth-brand-panel{padding:18px}.auth-brand-copy{padding:34px 0 20px}.auth-row{align-items:flex-start}.auth-actions{flex-direction:column}}
