/* PackGPT Authentication — shared front-door styling */
.pg-auth-page{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px 12px;
    box-sizing:border-box;
    background:#f6f8fb;
    color:#172033;
    font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}

/* One compact authentication frame shared by Login / Activate / Reset. */
.pg-auth-card{
    width:360px;
    min-height:540px;
    max-width:calc(100vw - 24px);
    box-sizing:border-box;
    padding:24px 28px 18px;
    border:1px solid #e5e9f0;
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 24px rgba(16,24,40,.07);
    text-align:center;
    display:flex;
    flex-direction:column;
    overflow:visible;
}

.pg-auth-brand{ text-align:center; flex:0 0 auto; }
.pg-auth-brandmark{
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 10px;
    height:58px;
}
.pg-auth-brandmark img{
    width:180px;
    height:auto;
    max-width:82%;
    max-height:58px;
    display:block;
    object-fit:contain;
}
.pg-auth-brand p{
    margin:0 auto 18px;
    max-width:300px;
    color:#667085;
    font-size:12px;
    line-height:1.4;
}
.pg-auth-title{
    margin:0 0 6px;
    color:#172033;
    font-size:20px;
    line-height:1.25;
    font-weight:700;
    letter-spacing:-.02em;
}
.pg-auth-subtitle{
    margin:0 auto 14px;
    max-width:300px;
    color:#667085;
    font-size:12px;
    line-height:1.4;
}
.pg-auth-form{
    display:flex;
    flex-direction:column;
    gap:9px;
    flex:0 0 auto;
}
.pg-auth-field{ width:100%; text-align:left; position:relative; }
.pg-auth-field label:not(.sr-only){
    display:block;
    margin:0 0 4px;
    color:#172033;
    font-size:12px;
    font-weight:600;
}
.pg-auth-input{
    width:100%;
    height:40px;
    box-sizing:border-box;
    padding:0 11px;
    border:1px solid #d8dee8;
    border-radius:9px;
    background:#fff;
    color:#172033;
    font-size:13px;
    outline:none;
    transition:border-color .14s ease,box-shadow .14s ease;
}
.pg-auth-input:focus{
    border-color:#2563eb;
    box-shadow:0 0 0 3px rgba(37,99,235,.10);
}
.pg-auth-input::placeholder{ color:#98a2b3; }
.pg-auth-button{
    width:100%;
    height:40px;
    margin-top:3px;
    border:0;
    border-radius:9px;
    background:#2563eb;
    color:#fff;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
    transition:background .14s ease,opacity .14s ease;
}
.pg-auth-button:hover{ background:#1d4ed8; }
.pg-auth-button:disabled{ opacity:.55; cursor:not-allowed; }
.pg-auth-status{
    min-height:17px;
    margin-top:2px;
    color:#667085;
    font-size:12px;
    line-height:1.35;
}
.pg-auth-status.error{ color:#dc2626; }
.pg-auth-status.success{ color:#16a34a; }
.pg-auth-links{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin-top:auto;
    padding-top:14px;
    font-size:12px;
    font-weight:600;
    flex:0 0 auto;
}
.pg-auth-links a{ color:#2563eb; text-decoration:none; }
.pg-auth-links a:hover{ text-decoration:underline; }
.pg-auth-links span{ color:#98a2b3; }
.pg-auth-footer{
    margin-top:10px;
    padding-top:9px;
    border-top:1px solid #edf0f4;
    color:#98a2b3;
    font-size:10px;
    flex:0 0 auto;
}
.pg-password-field-wrap{ position:relative; }
.pg-password-help{
    position:absolute;
    z-index:20;
    left:0;
    right:0;
    top:calc(100% + 6px);
    display:none;
    padding:10px 12px;
    border:1px solid #e5e9f0;
    border-radius:9px;
    background:#fff;
    box-shadow:0 8px 24px rgba(16,24,40,.12);
    color:#667085;
    font-size:11px;
    line-height:1.45;
    text-align:left;
}
.pg-password-help.is-visible{ display:block; }
.pg-password-help::before{
    content:"";
    position:absolute;
    top:-5px;
    left:22px;
    width:9px;
    height:9px;
    background:#fff;
    border-left:1px solid #e5e9f0;
    border-top:1px solid #e5e9f0;
    transform:rotate(45deg);
}
.pg-password-help strong{ display:block; margin-bottom:4px; color:#172033; font-size:11px; }
.pg-password-help ul{
    margin:0;
    padding-left:16px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:2px 10px;
}
.pg-password-help li.valid{ color:#16a34a; }
.sr-only{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
}

@media(max-width:520px){
    .pg-auth-page{
        min-height:100vh;
        align-items:flex-start;
        padding:12px;
    }
    .pg-auth-card{
        width:360px;
        max-width:100%;
        min-height:540px;
        margin:0 auto;
        padding:22px 20px 16px;
    }
    .pg-auth-brandmark{ height:54px; margin-bottom:9px; }
    .pg-auth-brandmark img{ width:170px; max-width:82%; max-height:54px; }
    .pg-auth-brand p{ margin-bottom:16px; }
    .pg-auth-title{ font-size:19px; }
    .pg-auth-subtitle{ margin-bottom:13px; }
    .pg-password-help ul{ grid-template-columns:1fr; }
}

@media(max-width:360px){
    .pg-auth-card{ padding-left:16px; padding-right:16px; }
    .pg-auth-input,.pg-auth-button{ height:39px; }
}
