:root{
    --auth-blue:#1a8cff;
    --auth-blue-dark:#0f7fe9;
    --auth-blue-soft:#eef7ff;
    --auth-navy:#101828;
    --auth-text:#172033;
    --auth-muted:#667085;
    --auth-border:#dfe5ed;
    --auth-bg:#f5f7fa;
    --auth-success:#067647;
    --auth-error:#b42318;
    --auth-frame:1060px;
}

.guest-shell{
    display:block!important;
    min-height:100vh!important;
    padding:0!important;
    background:var(--auth-bg)!important;
}

.fps-auth-page{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    background:var(--auth-bg);
    color:var(--auth-text);
    font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

.fps-auth-topbar{
    flex:0 0 auto;
    height:74px;
    background:#fff;
    border-bottom:1px solid #e4e9f0;
}

.fps-auth-topbar-inner{
    width:min(var(--auth-frame),calc(100% - 36px));
    height:100%;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.fps-auth-brand{
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--auth-text);
    min-width:0;
}

.fps-auth-brand img{
    width:auto;
    height:42px;
    max-width:132px;
    object-fit:contain;
    flex:0 0 auto;
}

.fps-auth-brand-copy{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.fps-auth-brand-copy strong{
    font-size:14px;
    line-height:1.25;
    color:#111827;
    white-space:nowrap;
}

.fps-auth-brand-copy small{
    margin-top:2px;
    font-size:10.5px;
    color:#7b8494;
    white-space:nowrap;
}

/* Unified authentication branding: the logo already carries the Kwikfit name.
   Show only the product tagline beside it to avoid duplicate brand wording. */
.fps-auth-brand-tagline{
    display:flex;
    align-items:center;
    min-height:30px;
    padding-left:14px;
    border-left:1px solid #dbe2ec;
    color:#5f6c80;
    font-size:11px;
    font-weight:700;
    line-height:1.25;
    letter-spacing:.01em;
    white-space:nowrap;
}

.fps-auth-home-link{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#40516a;
    font-size:12px;
    font-weight:750;
    white-space:nowrap;
}

.fps-auth-home-link:hover{color:var(--auth-blue-dark)}

.fps-auth-main{
    flex:1 0 auto;
    width:min(var(--auth-frame),calc(100% - 36px));
    margin:0 auto;
    padding:58px 0 46px;
    display:flex;
    align-items:center;
}

.fps-auth-card{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr);
    overflow:hidden;
    background:#fff;
    border:1px solid var(--auth-border);
    border-radius:14px;
    box-shadow:0 18px 45px rgba(15,23,42,.075);
}

.fps-auth-form-pane{
    min-width:0;
    padding:42px 46px 40px;
    background:#fff;
}

.fps-auth-form-inner{
    width:100%;
    max-width:560px;
    margin:0 auto;
}

.fps-auth-kicker{
    display:block;
    margin-bottom:9px;
    color:var(--auth-blue-dark);
    font-size:10.5px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.09em;
}

.fps-auth-title{
    margin:0 0 10px!important;
    color:#101828!important;
    font-size:31px!important;
    line-height:1.14!important;
    letter-spacing:-.032em;
}

.fps-auth-intro{
    margin:0 0 24px;
    max-width:520px;
    color:var(--auth-muted);
    font-size:13px;
    line-height:1.65;
}

.fps-auth-tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:22px;
}

.fps-auth-tab{
    min-width:0;
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 13px;
    background:#fff;
    border:1px solid #dde3eb;
    border-radius:9px;
    color:#3e4c60;
    text-align:left;
    cursor:pointer;
    transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease;
}

.fps-auth-tab:hover{background:#f8fbff;border-color:#bfdcff}
.fps-auth-tab.active{background:#f2f8ff;border-color:#76baff;box-shadow:inset 0 0 0 1px #b9dcff;color:#173b70}
.fps-auth-tab-icon{
    width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;
    border-radius:7px;background:#f3f6fa;color:#6b778a;
}
.fps-auth-tab.active .fps-auth-tab-icon{background:#e2f2ff;color:var(--auth-blue-dark)}
.fps-auth-tab-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fps-auth-tab span:last-child{min-width:0;display:flex;flex-direction:column}
.fps-auth-tab strong{font-size:12.5px;color:#172033;line-height:1.25}
.fps-auth-tab small{margin-top:2px;color:#7b8494;font-size:9.7px;line-height:1.3}

.fps-auth-alert{
    margin:0 0 18px;
    padding:12px 14px;
    border-radius:8px;
    font-size:12px;
    font-weight:700;
    line-height:1.55;
}
.fps-auth-alert.success{background:#ecfdf3;border:1px solid #abefc6;color:var(--auth-success)}
.fps-auth-alert.error{background:#fef3f2;border:1px solid #fecdca;color:var(--auth-error)}

.fps-auth-field{margin-bottom:17px}
.fps-auth-label-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:7px}
.fps-auth-field label,.fps-auth-label-row label{display:block;color:#27364b;font-size:11.5px;font-weight:750}
.fps-auth-label-row a{color:#156fd3;font-size:11px;font-weight:750}
.fps-auth-label-row a:hover{text-decoration:underline}
.fps-auth-control{position:relative}
.fps-auth-control input{
    width:100%;height:48px;padding:0 44px 0 40px;
    border:1px solid #d4dce7;border-radius:9px;background:#fff;color:#182230;
    font:inherit;font-size:12.5px;outline:0;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.fps-auth-control input::placeholder{color:#98a2b3}
.fps-auth-control input:focus{border-color:#73b8ff;box-shadow:0 0 0 3px rgba(26,140,255,.11);background:#fff}
.fps-auth-field-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);display:grid;place-items:center;color:#8b98aa;pointer-events:none}
.fps-auth-field-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.fps-auth-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:#7e8b9d;cursor:pointer}
.fps-auth-password-toggle:hover{background:#f1f5f9;color:#41546d}
.fps-auth-password-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.fps-auth-submit{
    width:100%;height:48px;margin-top:1px;border:0;border-radius:9px;
    display:flex;align-items:center;justify-content:center;gap:10px;
    background:var(--auth-blue);color:#fff;font-size:12.5px;font-weight:800;cursor:pointer;
    box-shadow:0 8px 18px rgba(26,140,255,.18);transition:background .15s ease,transform .15s ease,box-shadow .15s ease;
}
.fps-auth-submit:hover{background:var(--auth-blue-dark);transform:translateY(-1px);box-shadow:0 10px 22px rgba(26,140,255,.22)}

.fps-auth-help{
    margin-top:16px;padding:11px 13px;border:1px solid #e1e7ee;border-radius:8px;background:#fafbfc;
    color:#59677a;font-size:10.5px;line-height:1.55;
}
.fps-auth-help strong{color:#344054}

.fps-auth-side{
    position:relative;
    min-width:0;
    display:flex;
    align-items:center;
    padding:40px 38px;
    overflow:hidden;
    background:var(--auth-blue);
    color:#fff;
}
.fps-auth-side::before{
    content:"";position:absolute;right:-86px;top:-88px;width:235px;height:235px;border-radius:50%;
    border:34px solid rgba(255,255,255,.08);
}
.fps-auth-side::after{
    content:"";position:absolute;left:-80px;bottom:-100px;width:205px;height:205px;border-radius:50%;
    background:rgba(255,255,255,.07);
}
.fps-auth-side-inner{position:relative;z-index:1;width:100%}
.fps-auth-side-badge{
    display:inline-flex;align-items:center;padding:7px 11px;margin-bottom:18px;border:1px solid rgba(255,255,255,.28);
    border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:9.5px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;
}
.fps-auth-side h2{margin:0 0 11px;font-size:28px;line-height:1.15;letter-spacing:-.025em;color:#fff}
.fps-auth-side-intro{margin:0;color:rgba(255,255,255,.92);font-size:12px;line-height:1.65}
.fps-auth-side-list{margin-top:26px;display:grid;gap:0}
.fps-auth-side-item{display:grid;grid-template-columns:30px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.19)}
.fps-auth-side-item:last-child{border-bottom:0}
.fps-auth-step{width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:7px;background:rgba(255,255,255,.09);font-size:9px;font-weight:850}
.fps-auth-side-item p{margin:0}
.fps-auth-side-item strong{display:block;color:#fff;font-size:11px;line-height:1.35}
.fps-auth-side-item small{display:block;margin-top:2px;color:rgba(255,255,255,.83);font-size:9.5px;line-height:1.45}
.fps-auth-security{display:flex;align-items:flex-start;gap:11px;margin-top:34px;padding-top:18px;border-top:1px solid rgba(255,255,255,.2)}
.fps-auth-security svg{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fps-auth-security strong{display:block;color:#fff;font-size:10.5px}
.fps-auth-security small{display:block;margin-top:2px;color:rgba(255,255,255,.82);font-size:9.3px;line-height:1.45}

.fps-auth-footer{
    flex:0 0 auto;
    width:min(var(--auth-frame),calc(100% - 36px));
    margin:0 auto;
    min-height:52px;
    padding:0 0 18px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    color:#98a2b3;
    font-size:9.5px;
}

.fps-recovery-note{
    margin-top:16px;padding:12px 14px;border:1px solid #f5d69a;border-radius:8px;background:#fff9ed;
    color:#9a4b0a;font-size:10.5px;line-height:1.55;
}
.fps-recovery-note strong{color:#8d3700}
.fps-auth-links{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;font-weight:750;color:#156fd3}
.fps-auth-links a:hover{text-decoration:underline}
.fps-auth-links form{margin:0}
.fps-auth-text-button{border:0;background:transparent;color:#156fd3;font:inherit;font-size:11px;font-weight:750;cursor:pointer;padding:0}
.fps-auth-text-button:hover{text-decoration:underline}

.fps-auth-role-badge{display:inline-flex;align-items:center;padding:6px 10px;margin:0 0 12px;border-radius:999px;background:var(--auth-blue-soft);color:#156fd3;font-size:10px;font-weight:800}
.fps-auth-otp input{text-align:center!important;padding-left:14px!important;padding-right:14px!important;font-size:24px!important;font-weight:800!important;letter-spacing:8px}
.fps-password-rules{display:grid;gap:4px;margin-top:4px;padding:12px 14px;border:1px solid #e1e7ee;border-radius:8px;background:#fafbfc;color:#59677a;font-size:10px;line-height:1.45}
.fps-password-rules strong{color:#344054;margin-bottom:2px}
.fps-password-rules span::before{content:"✓ ";color:#12a150;font-weight:900}

@media(max-width:900px){
    .fps-auth-main{padding:34px 0}
    .fps-auth-card{grid-template-columns:1fr}
    .fps-auth-side{display:none}
    .fps-auth-form-pane{padding:38px 34px}
}

@media(max-width:620px){
    .fps-auth-topbar{height:auto;min-height:70px}
    .fps-auth-topbar-inner{width:min(100% - 24px,var(--auth-frame));padding:10px 0}
    .fps-auth-brand-copy{display:none}
    .fps-auth-brand{gap:8px}
    .fps-auth-brand img{height:36px;max-width:116px}
    .fps-auth-brand-tagline{min-height:26px;padding-left:9px;font-size:9.5px;white-space:normal;max-width:122px}
    .fps-auth-home-link{font-size:10.5px}
    .fps-auth-main{width:calc(100% - 24px);padding:22px 0 28px}
    .fps-auth-form-pane{padding:28px 20px 26px}
    .fps-auth-title{font-size:26px!important}
    .fps-auth-tabs{grid-template-columns:1fr}
    .fps-auth-footer{width:calc(100% - 24px);flex-direction:column;gap:4px}
    .fps-auth-links{flex-direction:column;align-items:flex-start}
}

/* Employee onboarding - uses the same fixed authentication frame as sign-in. */
.fps-onboarding-main{align-items:flex-start;padding-top:38px;padding-bottom:38px}
.fps-onboarding-card{grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr)}
.fps-onboarding-form-pane{padding:38px 42px 40px}
.fps-onboarding-inner{max-width:650px}
.fps-onboarding-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #dfe5ed;border-radius:10px;background:#f8fafc;margin:18px 0 28px;overflow:hidden}
.fps-onboarding-summary>div{padding:11px 13px;border-right:1px solid #e5eaf0;border-bottom:1px solid #e5eaf0;min-width:0}
.fps-onboarding-summary>div:nth-child(2n){border-right:0}.fps-onboarding-summary>div:nth-last-child(-n+2){border-bottom:0}
.fps-onboarding-summary span{display:block;color:#7b8494;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.fps-onboarding-summary strong{display:block;color:#172033;font-size:11.5px;line-height:1.35;overflow-wrap:anywhere}.fps-onboarding-summary strong.pending{color:#147bd1}
.fps-onboarding-section-head{display:flex;align-items:flex-start;gap:11px;margin:24px 0 14px;padding-top:20px;border-top:1px solid #e5eaf0}
.fps-onboarding-section-head>span{width:28px;height:28px;border-radius:7px;background:#eef7ff;color:#147bd1;display:grid;place-items:center;flex:0 0 auto;font-size:9px;font-weight:850}
.fps-onboarding-section-head>div{min-width:0;flex:1}.fps-onboarding-section-head strong{display:block;color:#172033;font-size:12px;line-height:1.35}.fps-onboarding-section-head small{display:block;color:#7b8494;font-size:9.7px;line-height:1.45;margin-top:2px}
.fps-onboarding-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fps-onboarding-grid .fps-auth-field{margin-bottom:0}
.fps-auth-control-noicon input{padding-left:13px;padding-right:13px}
.fps-policy-section-title{align-items:center}.fps-policy-pack-link{margin-left:auto;flex:0 0 auto;border:1px solid #b9dcff;border-radius:7px;background:#f2f8ff;color:#147bd1;padding:8px 10px;font-size:9.5px;font-weight:800}.fps-policy-pack-link:hover{background:#e7f3ff}
.fps-onboarding-policies{display:grid;gap:10px}.fps-policy-card{border:1px solid #dfe5ed;border-radius:10px;background:#fff;overflow:hidden}.fps-policy-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 14px}.fps-policy-card-head>div{min-width:0}.fps-policy-type{display:block;color:#147bd1;font-size:8.4px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}.fps-policy-card h3{margin:0;color:#172033;font-size:12px;line-height:1.35}.fps-policy-card p{margin:4px 0 0;color:#667085;font-size:9.5px;line-height:1.5}.fps-policy-download{flex:0 0 auto;border:1px solid #d1d9e4;border-radius:7px;padding:7px 9px;color:#40516a;background:#fff;font-size:9px;font-weight:800}.fps-policy-download:hover{border-color:#73b8ff;color:#147bd1;background:#f8fbff}
.fps-policy-details{border-top:1px solid #edf0f4;background:#fafbfc}.fps-policy-details summary{cursor:pointer;padding:9px 14px;color:#40516a;font-size:9.5px;font-weight:800;list-style:none}.fps-policy-details summary::-webkit-details-marker{display:none}.fps-policy-details summary::after{content:'+';float:right;color:#7b8494}.fps-policy-details[open] summary::after{content:'−'}.fps-policy-content{padding:0 14px 12px;color:#475467;font-size:9.6px;line-height:1.6}.fps-policy-content p{margin:0 0 7px}.fps-policy-content ul{margin:4px 0 7px 17px;padding:0}.fps-policy-content li{margin:0 0 4px}.fps-policy-file-note{padding:10px 14px;border-top:1px solid #edf0f4;background:#fafbfc;color:#667085;font-size:9.4px;line-height:1.5}.fps-policy-empty{border:1px dashed #cfd8e4;border-radius:9px;padding:13px 14px;background:#fafbfc;color:#667085;font-size:10px;line-height:1.5}
.fps-policy-ack{display:flex;align-items:flex-start;gap:10px;margin:14px 0 18px;padding:12px 13px;border:1px solid #cfe5fb;border-radius:9px;background:#f5faff;color:#40516a;font-size:10px;line-height:1.55;cursor:pointer}.fps-policy-ack input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--auth-blue);flex:0 0 auto}.fps-onboarding-submit{margin-top:0}.fps-onboarding-side{align-items:flex-start;padding-top:54px}.fps-onboarding-side .fps-auth-security{margin-top:32px}

@media(max-width:900px){.fps-onboarding-card{grid-template-columns:1fr}.fps-onboarding-form-pane{padding:34px 30px}.fps-onboarding-side{display:none}}
@media(max-width:620px){.fps-onboarding-form-pane{padding:26px 18px}.fps-onboarding-summary,.fps-onboarding-grid{grid-template-columns:1fr}.fps-onboarding-summary>div{border-right:0!important;border-bottom:1px solid #e5eaf0!important}.fps-onboarding-summary>div:last-child{border-bottom:0!important}.fps-policy-section-title{flex-wrap:wrap}.fps-policy-pack-link{margin-left:39px}.fps-policy-card-head{flex-direction:column}.fps-policy-download{align-self:flex-start}}
