/* QuickBillBook sign-in pages (business login; reusable for password reset and Super Admin). */

body.qbb-auth {
    background: var(--qbb-bg);
    color: var(--qbb-text);
    font-family: var(--qbb-font);
    font-size: var(--qbb-text-base);
    margin: 0;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}
body.qbb-auth *, body.qbb-auth *::before, body.qbb-auth *::after { box-sizing: border-box; }
.qbb-auth-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100vh; }

.qbb-auth-aside {
    background: var(--qbb-nav-bg);
    color: var(--qbb-nav-text);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 40px 56px;
}
.qbb-auth-brand { align-items: center; color: #fff; display: flex; gap: 12px; font-size: 1.15rem; font-weight: var(--qbb-weight-bold); text-decoration: none; }
.qbb-auth-brand:hover { color: #fff; }
.qbb-auth-brand .qbb-brand-mark { background: #fff url("../assets/img/gstlogo.png") center / 190% no-repeat; border-radius: 10px; display: inline-block; height: 30px; width: 38px; }
.qbb-auth-pitch { max-width: 440px; }
.qbb-auth-pitch h2 { color: #fff; font-size: var(--qbb-text-2xl); font-weight: var(--qbb-weight-bold); letter-spacing: -0.02em; line-height: 1.25; margin: 0 0 12px; }
.qbb-auth-pitch p { color: var(--qbb-nav-text); font-size: var(--qbb-text-md); line-height: 1.6; margin: 0 0 24px; }
.qbb-auth-points { list-style: none; margin: 0; padding: 0; }
.qbb-auth-points li { align-items: flex-start; display: flex; gap: 12px; margin-bottom: 14px; }
.qbb-auth-points i { background: var(--qbb-nav-active-bg); border-radius: 8px; color: #c9c0fb; flex: 0 0 30px; font-size: 13px; height: 30px; line-height: 30px; text-align: center; }
.qbb-auth-points span { color: var(--qbb-nav-text); line-height: 1.45; padding-top: 5px; }
.qbb-auth-foot { color: var(--qbb-nav-muted); font-size: var(--qbb-text-sm); }

.qbb-auth-main { align-items: center; display: flex; justify-content: center; padding: 40px 24px; }
.qbb-auth-card { max-width: 400px; width: 100%; }
.qbb-auth-card h1 { font-size: var(--qbb-text-xl); font-weight: var(--qbb-weight-bold); letter-spacing: -0.01em; margin: 0 0 4px; }
.qbb-auth-sub { color: var(--qbb-muted); margin: 0 0 28px; }
.qbb-auth-field { margin-bottom: 16px; }
.qbb-auth-row { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.qbb-password { position: relative; }
.qbb-password .qbb-input { padding-right: 44px; }
.qbb-password-toggle {
    background: transparent;
    border: 0;
    border-radius: var(--qbb-radius-sm);
    color: var(--qbb-muted);
    cursor: pointer;
    height: 32px;
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
}
.qbb-password-toggle:hover { color: var(--qbb-text); }
.qbb-password-toggle:focus-visible { box-shadow: var(--qbb-focus); outline: none; }
.qbb-auth-links { display: flex; font-size: var(--qbb-text-sm); justify-content: flex-end; margin: -4px 0 20px; }
.qbb-auth-links a, .qbb-auth-alt a { color: var(--qbb-primary); font-weight: var(--qbb-weight-medium); text-decoration: none; }
.qbb-auth-links a:hover, .qbb-auth-alt a:hover { text-decoration: underline; }
.qbb-auth-submit { min-height: 44px; width: 100%; font-size: var(--qbb-text-md); }
.qbb-auth-alt { color: var(--qbb-muted); font-size: var(--qbb-text-sm); margin-top: 24px; text-align: center; }
.qbb-auth-mobile-brand { display: none; }

/* Expired-subscription dialog (opened by the server via showpop()). */
.qbb-modal-backdrop { align-items: center; background: rgba(20, 26, 46, 0.5); display: none; inset: 0; justify-content: center; padding: 16px; position: fixed; z-index: 1100; }
.qbb-modal-backdrop.is-open { display: flex; }
.qbb-modal { background: var(--qbb-surface); border-radius: var(--qbb-radius-lg); box-shadow: var(--qbb-shadow-lg); max-width: 440px; padding: 24px; width: 100%; }
.qbb-modal h2 { font-size: var(--qbb-text-lg); font-weight: var(--qbb-weight-semibold); margin: 0 0 8px; }
.qbb-modal p { color: var(--qbb-text-2); line-height: 1.55; margin: 0 0 20px; }
.qbb-modal-actions { display: flex; gap: 8px; justify-content: flex-end; }

@media (max-width: 991.98px) {
    .qbb-auth-layout { grid-template-columns: minmax(0, 1fr); }
    .qbb-auth-aside { display: none; }
    .qbb-auth-main { align-items: flex-start; padding: 32px 16px; }
    .qbb-auth-mobile-brand { align-items: center; color: var(--qbb-text); display: flex; font-weight: var(--qbb-weight-bold); gap: 10px; margin-bottom: 28px; }
    .qbb-auth-mobile-brand .qbb-brand-mark { background: #fff url("../assets/img/gstlogo.png") center / 190% no-repeat; border: 1px solid var(--qbb-border); border-radius: 9px; display: inline-block; height: 30px; width: 38px; }
}
@media (max-width: 380px) {
    .qbb-auth-row { grid-template-columns: minmax(0, 1fr); }
}
