:root {
    --pbc-navy: #071b2b;
    --pbc-blue: #0a3d62;
    --pbc-teal: #2aa7a1;
    --pbc-gold: #eab543;
    --pbc-ink: #112536;
    --pbc-muted: #5b6b78;
    --pbc-line: #dce5ea;
}

.pbc-auth {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(420px, 45%) minmax(0, 55%);
    color: var(--pbc-ink);
    background: #f3f7f8;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.pbc-auth__visual {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
    color: #fff;
    background: var(--pbc-navy);
}

.pbc-auth__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(4, 19, 31, .08) 20%, rgba(4, 19, 31, .9) 100%);
}

.pbc-auth__visual-image { width: 100%; height: 100%; object-fit: cover; }
.pbc-auth__visual-brand,
.pbc-auth__visual-content { position: absolute; left: clamp(28px, 5vw, 72px); right: clamp(28px, 5vw, 72px); z-index: 2; }
.pbc-auth__visual-brand { top: clamp(28px, 5vw, 58px); }
.pbc-auth__visual-brand img { width: 190px; max-height: 64px; object-fit: contain; object-position: left; }
.pbc-auth__visual-content { bottom: clamp(34px, 7vw, 84px); max-width: 560px; }
.pbc-auth__portal-tag {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 9px 13px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    color: #d8e9ee;
    background: rgba(4,19,31,.55);
    font-size: .73rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
    backdrop-filter: blur(12px);
}
.pbc-auth__portal-tag::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #62d3bd; box-shadow: 0 0 0 5px rgba(98,211,189,.14); }
.pbc-auth__visual-content h2 { max-width: 540px; margin: 0 0 18px; color: #fff; font-size: clamp(2.4rem,4.4vw,4.8rem); line-height: 1.02; letter-spacing: -.045em; }
.pbc-auth__visual-content p { max-width: 510px; margin: 0; color: #c2d3db; font-size: 1.03rem; line-height: 1.65; }

.pbc-auth__panel {
    min-width: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: radial-gradient(circle at 92% 5%, rgba(42,167,161,.11), transparent 28%), #f3f7f8;
}
.pbc-auth__utility { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px clamp(28px,5vw,72px); border-bottom: 1px solid rgba(220,229,234,.9); }
.pbc-auth__utility-logo { display: none; }
.pbc-auth__utility-logo img { width: 150px; max-height: 48px; object-fit: contain; }
.pbc-auth__public-link,
.pbc-auth__support-link { color: var(--pbc-blue); font-size: .88rem; font-weight: 760; text-decoration: none; }
.pbc-auth__public-link:hover,
.pbc-auth__support-link:hover { color: var(--pbc-teal); text-decoration: underline; }
.pbc-auth__utility-help { margin: 0; color: var(--pbc-muted); font-size: .88rem; }
.pbc-auth__content { width: min(100%,760px); margin: auto; padding: clamp(42px,7vh,76px) clamp(28px,6vw,78px) 46px; }
.pbc-auth--register .pbc-auth__content { width: min(100%,900px); }
.pbc-auth__eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; color: var(--pbc-blue); font-size: .75rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.pbc-auth__eyebrow::before { content: ""; width: 24px; height: 2px; background: var(--pbc-gold); }
.pbc-auth__intro h1 { margin: 0 0 14px; color: var(--pbc-navy); font-size: clamp(2.45rem,4vw,4rem); line-height: 1.05; letter-spacing: -.045em; }
.pbc-auth__intro > p:last-child { max-width: 660px; margin: 0 0 26px; color: var(--pbc-muted); font-size: 1rem; line-height: 1.65; }
.pbc-auth__notice { display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: start; margin-bottom: 28px; padding: 15px 17px; border: 1px solid #cbe3df; border-radius: 16px; color: #31525a; background: rgba(223,245,242,.72); }
.pbc-auth__notice-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: #04131f; background: var(--pbc-gold); font-size: .9rem; font-weight: 900; }
.pbc-auth__notice strong { display: block; margin-bottom: 2px; color: var(--pbc-navy); }
.pbc-auth__notice p { margin: 0; font-size: .86rem; line-height: 1.5; }
.pbc-auth__form { padding: 30px; border: 1px solid var(--pbc-line); border-radius: 24px; background: rgba(255,255,255,.95); box-shadow: 0 22px 60px rgba(4,19,31,.08); }
.pbc-auth__form .form-group { margin-bottom: 20px; }
.pbc-auth__form .form--label { display: inline-block; margin-bottom: 8px; color: #273e4e; font-size: .82rem; font-weight: 780; }
.pbc-auth__form .form--control,
.pbc-auth__form .select2-container--default .select2-selection--single { min-height: 52px; padding: 10px 18px; border: 1px solid #cfdce2; border-radius: 14px; color: var(--pbc-ink); background: #fff !important; font-size: 1rem; line-height: 1.5; transition: border-color .2s, box-shadow .2s; }
.pbc-auth__form .form--control:focus,
.pbc-auth__form .select2-container--focus .select2-selection--single { border-color: var(--pbc-teal); box-shadow: 0 0 0 4px rgba(42,167,161,.13); }
.pbc-auth__form .input--group .form--control { border-radius: 0 14px 14px 0; }
.pbc-auth__form .input-group-text { min-width: 64px; justify-content: center; border-color: #cfdce2; border-radius: 14px 0 0 14px; color: var(--pbc-blue); background: #edf4f5; font-weight: 750; }
.pbc-auth__form .password-show-hide { right: 18px; color: var(--pbc-blue); }
.pbc-auth__form .form--check { display: flex; align-items: flex-start; gap: 8px; }
.pbc-auth__form .form-check-input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; border-color: #9db1bc; }
.pbc-auth__form .form-check-input:checked { border-color: var(--pbc-blue); background-color: var(--pbc-blue); }
.pbc-auth__form .form-check-label,
.pbc-auth__form .forgot-password,
.pbc-auth__form .have-account__text { color: var(--pbc-muted); font-size: .87rem; }
.pbc-auth__form .form-check-label a,
.pbc-auth__form .forgot-password,
.pbc-auth__form .have-account__link { color: var(--pbc-blue) !important; font-weight: 760; text-decoration: none; }
.pbc-auth__form .form-check-label a:hover,
.pbc-auth__form .forgot-password:hover,
.pbc-auth__form .have-account__link:hover { text-decoration: underline; }
.pbc-auth__form .btn--base { min-height: 54px; border: 0; border-radius: 999px; color: #04131f; background: var(--pbc-gold); box-shadow: 0 12px 28px rgba(234,181,67,.24); font-size: 1rem; font-weight: 820; }
.pbc-auth__form .btn--base:hover,
.pbc-auth__form .btn--base:focus { color: #04131f; background: #f0c257; transform: translateY(-1px); }
.pbc-auth__form .have-account__text { margin: 5px 0 0; }
.pbc-auth__policies { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 14px; margin: 22px 0 0; font-size: .77rem; }
.pbc-auth__policies a { color: var(--pbc-blue); font-weight: 700; text-decoration: none; }
.pbc-auth__policies a:hover { text-decoration: underline; }
.pbc-auth__domain-note { margin: 15px 0 0; color: #71818c; font-size: .75rem; text-align: center; }
.pbc-auth__domain-note strong { color: var(--pbc-blue); }

@media (max-width: 1199px) {
    .pbc-auth { grid-template-columns: minmax(350px,40%) minmax(0,60%); }
    .pbc-auth__visual-content h2 { font-size: clamp(2.2rem,4vw,3.5rem); }
    .pbc-auth__content { padding-inline: 40px; }
}

@media (max-width: 899px) {
    .pbc-auth { display: block; }
    .pbc-auth__visual { position: relative; height: 290px; }
    .pbc-auth__visual-image { object-position: center 42%; }
    .pbc-auth__visual-brand { display: none; }
    .pbc-auth__visual-content { bottom: 28px; }
    .pbc-auth__visual-content h2 { margin-bottom: 10px; font-size: clamp(2rem,6vw,3rem); }
    .pbc-auth__visual-content p { max-width: 650px; font-size: .93rem; }
    .pbc-auth__panel { min-height: auto; }
    .pbc-auth__utility-logo { display: block; }
    .pbc-auth__public-link { display: none; }
    .pbc-auth__content,
    .pbc-auth--register .pbc-auth__content { width: min(100%,820px); padding: 48px 32px; }
}

@media (max-width: 575px) {
    .pbc-auth__visual { height: 225px; }
    .pbc-auth__visual-content { left: 20px; right: 20px; bottom: 22px; }
    .pbc-auth__visual-content h2 { font-size: 2rem; }
    .pbc-auth__visual-content p { display: none; }
    .pbc-auth__portal-tag { margin-bottom: 12px; padding: 7px 10px; font-size: .66rem; }
    .pbc-auth__utility { padding: 20px; }
    .pbc-auth__utility-logo img { width: 132px; }
    .pbc-auth__utility-help { font-size: .76rem; text-align: right; }
    .pbc-auth__content,
    .pbc-auth--register .pbc-auth__content { padding: 38px 16px; }
    .pbc-auth__intro h1 { font-size: 2.4rem; }
    .pbc-auth__form { padding: 22px 18px; border-radius: 20px; }
    .pbc-auth__notice { grid-template-columns: 28px 1fr; padding: 13px; }
    .pbc-auth__notice-icon { width: 28px; height: 28px; }
    .pbc-auth__form .d-flex.justify-content-between { align-items: flex-start; flex-direction: column; gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .pbc-auth *, .pbc-auth *::before, .pbc-auth *::after { transition-duration: .01ms !important; }
}
