:root {
    --blue: #1e3a8a;
    --blue-dark: #142861;
    --crimson: #c8294c;
    --navy: #0f1e45;
    --bg: #eef3fb;
    --surface: #ffffff;
    --soft: #f6f8fd;
    --border: #dbe4f0;
    --text: #15233d;
    --muted: #64748b;
    --shadow-sm: 0 18px 40px rgba(15, 30, 69, 0.08);
    --shadow-md: 0 26px 80px rgba(15, 30, 69, 0.12);
    --radius-sm: 16px;
    --radius-md: 24px;
    --radius-lg: 32px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    font-family: "Inter", sans-serif;
    color: var(--text);
    background:
        radial-gradient(circle at top left, rgba(30, 58, 138, 0.08), transparent 26%),
        radial-gradient(circle at bottom right, rgba(200, 41, 76, 0.08), transparent 24%),
        var(--bg);
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

img {
    display: block;
    max-width: 100%;
}

.portal-page {
    padding: 28px 16px 40px;
}

.portal-shell {
    width: min(1220px, 100%);
    margin: 0 auto;
}

.portal-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
    padding: 16px 20px;
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.76);
    backdrop-filter: blur(12px);
    box-shadow: var(--shadow-sm);
}

.portal-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.portal-brand img {
    width: 42px;
    height: 42px;
    border-radius: 12px;
}

.portal-brand span {
    display: grid;
    gap: 2px;
}

.portal-brand strong,
.portal-card h1,
.portal-aside h2 {
    font-family: "Poppins", sans-serif;
}

.portal-brand strong {
    font-size: 1rem;
    color: var(--text);
}

.portal-brand small {
    font-size: 0.75rem;
    color: var(--muted);
}

.portal-topbar__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    color: var(--muted);
    font-size: 0.9rem;
    font-weight: 600;
}

.portal-topbar__meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.portal-topbar__meta i {
    color: var(--crimson);
}

.portal-topbar__link {
    padding: 11px 16px;
    border-radius: 12px;
    background: var(--surface);
    border: 1px solid var(--border);
    color: var(--blue);
    font-size: 0.9rem;
    font-weight: 700;
}

.portal-layout {
    display: grid;
    grid-template-columns: minmax(320px, 0.92fr) minmax(0, 1.08fr);
    gap: 0;
    overflow: hidden;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(21, 35, 61, 0.08);
    background: var(--surface);
    box-shadow: var(--shadow-md);
}

.portal-aside {
    position: relative;
    display: grid;
    align-content: start;
    gap: 24px;
    padding: 42px;
    color: #ffffff;
    background:
        linear-gradient(145deg, rgba(15, 30, 69, 0.96), rgba(20, 40, 97, 0.92)),
        url("../images/network-pattern.jpg") center/cover no-repeat;
}

.portal-badge {
    width: fit-content;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-aside h2 {
    margin: 0;
    font-size: clamp(2.3rem, 4vw, 3.7rem);
    line-height: 1.08;
    color: #ffffff;
}

.portal-aside p {
    margin: 0;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.8;
    font-size: 1.02rem;
}

.portal-highlight-list,
.portal-feature-grid {
    display: grid;
    gap: 14px;
}

.portal-highlight,
.portal-feature {
    padding: 18px 18px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.portal-highlight strong,
.portal-feature strong {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
    color: #ffffff;
    font-size: 0.96rem;
}

.portal-highlight span,
.portal-feature span {
    display: block;
    color: rgba(255, 255, 255, 0.76);
    line-height: 1.65;
}

.portal-feature {
    display: flex;
    align-items: start;
    gap: 14px;
}

.portal-feature i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    flex-shrink: 0;
}

.portal-panel {
    padding: 36px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.portal-card {
    max-width: 660px;
    margin: 0 auto;
    display: grid;
    gap: 22px;
}

.portal-card__intro {
    display: grid;
    gap: 14px;
}

.portal-pill {
    display: inline-flex;
    width: fit-content;
    padding: 9px 14px;
    border-radius: 999px;
    background: rgba(30, 58, 138, 0.08);
    color: var(--blue);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.portal-card h1 {
    margin: 0;
    font-size: clamp(2.5rem, 5vw, 4.2rem);
    line-height: 1.02;
    color: var(--text);
}

.portal-card__intro p {
    margin: 0;
    color: var(--muted);
    font-size: 1.04rem;
    line-height: 1.8;
}

.portal-note {
    display: flex;
    align-items: start;
    gap: 12px;
    padding: 16px 18px;
    border-radius: 18px;
    background: var(--soft);
    border: 1px solid var(--border);
    color: var(--muted);
}

.portal-note i {
    color: var(--blue);
    margin-top: 2px;
}

.portal-form {
    display: grid;
    gap: 18px;
}

.portal-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.portal-field {
    display: grid;
    gap: 10px;
}

.portal-field--full {
    grid-column: 1 / -1;
}

.portal-field span {
    font-size: 0.94rem;
    font-weight: 700;
    color: var(--text);
}

.portal-field input {
    width: 100%;
    padding: 15px 16px;
    border-radius: 14px;
    border: 1px solid var(--border);
    background: #ffffff;
    color: var(--text);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.portal-field input::placeholder {
    color: #94a3b8;
}

.portal-field input:focus,
.portal-field select:focus {
    outline: none;
    border-color: rgba(30, 58, 138, 0.35);
    box-shadow: 0 0 0 4px rgba(30, 58, 138, 0.08);
    background: #fbfdff;
}

.portal-field select {
    width: 100%;
    padding: 15px 16px;
    border-radius: 14px;
    border: 1px solid var(--border);
    background: #ffffff;
    color: var(--text);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.portal-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--muted);
    font-weight: 600;
}

.portal-checkbox input {
    width: 16px;
    height: 16px;
}

.portal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.portal-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 22px;
    border: 0;
    border-radius: 14px;
    font-weight: 800;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.portal-button:hover {
    transform: translateY(-1px);
}

.portal-button--primary {
    color: #ffffff;
    background: linear-gradient(135deg, var(--blue) 0%, var(--blue-dark) 100%);
    box-shadow: 0 18px 34px rgba(30, 58, 138, 0.18);
}

.portal-button--secondary {
    color: var(--blue);
    background: var(--soft);
    border: 1px solid var(--border);
}

.portal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    padding-top: 4px;
}

.portal-links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--blue);
    font-weight: 700;
}

.alert {
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid transparent;
}

.alert ul {
    margin: 0;
    padding-left: 18px;
}

.alert-success {
    color: #14532d;
    background: rgba(20, 83, 45, 0.1);
    border-color: rgba(20, 83, 45, 0.15);
}

.alert-error {
    color: #991b1b;
    background: rgba(153, 27, 27, 0.08);
    border-color: rgba(153, 27, 27, 0.12);
}

.alert-info {
    color: var(--blue);
    background: rgba(30, 58, 138, 0.08);
    border-color: rgba(30, 58, 138, 0.12);
}

.auth-compact-page {
    padding: 32px 16px 48px;
}

.auth-compact-shell {
    width: min(820px, 100%);
    margin: 0 auto;
}

/* Wider container for the registration form */
.auth-compact-shell:has(.register-sheet) {
    width: min(1040px, 100%);
}

/* Wider container for the payment / status page */
.auth-compact-shell:has(.status-sheet) {
    width: min(980px, 100%);
}

/* ============================================================
   Full-screen admin login
   ============================================================ */
.fs-auth {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    min-height: 100vh;
    min-height: 100dvh;
    background: #eef2fb;
}

/* ---- Left brand panel ---- */
.fs-auth__brand {
    position: relative;
    display: flex;
    align-items: stretch;
    padding: 48px;
    color: #ffffff;
    overflow: hidden;
    background:
        linear-gradient(150deg, rgba(20, 40, 97, 0.94) 0%, rgba(30, 58, 138, 0.88) 45%, rgba(225, 29, 72, 0.82) 130%),
        url('../images/hero-sibcon.jpg') center/cover no-repeat;
}

.fs-auth__brand::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(1100px circle at 15% 12%, rgba(255, 255, 255, 0.16), transparent 45%);
    pointer-events: none;
}

.fs-auth__brand-inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 40px;
    width: 100%;
    max-width: 480px;
    margin: auto 0;
}

.fs-auth__logo {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: #ffffff;
}

.fs-auth__logo img {
    width: 52px;
    height: 52px;
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.16);
    padding: 6px;
}

.fs-auth__logo strong {
    display: block;
    font-family: "Poppins", sans-serif;
    font-size: 1.15rem;
    letter-spacing: 0.02em;
}

.fs-auth__logo small {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.82);
}

.fs-auth__pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.25);
}

.fs-auth__headline h1 {
    margin: 18px 0 14px;
    font-family: "Poppins", sans-serif;
    font-size: clamp(2rem, 3.2vw, 3rem);
    line-height: 1.12;
    letter-spacing: -0.01em;
}

.fs-auth__headline p {
    margin: 0;
    max-width: 38ch;
    font-size: 1rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.9);
}

.fs-auth__facts {
    list-style: none;
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
}

.fs-auth__facts li {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.94);
}

.fs-auth__facts i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

/* ---- Right form panel ---- */
.fs-auth__panel {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 40px;
    background: #ffffff;
}

.fs-auth__back {
    position: absolute;
    top: 28px;
    right: 40px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--muted);
    transition: color 0.2s ease;
}

.fs-auth__back:hover {
    color: var(--blue);
}

.fs-auth__form-wrap {
    width: 100%;
    max-width: 400px;
}

.fs-auth__lock {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    margin-bottom: 22px;
    border-radius: 18px;
    font-size: 1.4rem;
    color: #ffffff;
    background: linear-gradient(135deg, var(--blue) 0%, var(--blue-dark) 100%);
    box-shadow: 0 16px 30px -10px rgba(30, 58, 138, 0.55);
}

.fs-auth__form-wrap h2 {
    margin: 0 0 6px;
    font-family: "Poppins", sans-serif;
    font-size: 1.9rem;
    color: var(--text);
}

.fs-auth__sub {
    margin: 0 0 26px;
    color: var(--muted);
    font-size: 0.96rem;
}

.fs-form {
    display: grid;
    gap: 18px;
}

.fs-field {
    display: grid;
    gap: 8px;
}

.fs-field > span {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text);
}

.fs-input {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 14px;
    border-radius: 14px;
    background: var(--soft);
    border: 1.5px solid var(--border);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.fs-input:focus-within {
    background: #ffffff;
    border-color: var(--blue);
    box-shadow: 0 0 0 4px rgba(30, 58, 138, 0.12);
}

.fs-input > i {
    color: var(--muted);
    font-size: 0.95rem;
}

.fs-input input {
    flex: 1;
    width: 100%;
    padding: 14px 0;
    border: 0;
    background: transparent;
    font-size: 0.98rem;
    color: var(--text);
}

.fs-input input:focus {
    outline: none;
}

.fs-input__toggle {
    border: 0;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    padding: 6px;
}

.fs-input__toggle:hover {
    color: var(--blue);
}

.fs-form__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.fs-check {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.9rem;
    color: var(--muted);
    cursor: pointer;
}

.fs-check input {
    width: 17px;
    height: 17px;
    accent-color: var(--blue);
}

.fs-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin-top: 4px;
    padding: 15px 22px;
    border: 0;
    border-radius: 14px;
    color: #ffffff;
    font-size: 1rem;
    font-weight: 800;
    cursor: pointer;
    background: linear-gradient(135deg, var(--blue) 0%, var(--blue-dark) 100%);
    box-shadow: 0 18px 34px -12px rgba(30, 58, 138, 0.6);
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.fs-submit:hover {
    transform: translateY(-1px);
    filter: brightness(1.05);
}

.fs-submit:active {
    transform: translateY(0);
}

.fs-auth__foot {
    margin: 24px 0 0;
    text-align: center;
    font-size: 0.82rem;
    color: var(--muted);
}

/* ---- Responsive ---- */
@media (max-width: 900px) {
    .fs-auth {
        grid-template-columns: 1fr;
    }

    .fs-auth__brand {
        display: none;
    }

    .fs-auth__panel {
        padding: 72px 22px 48px;
    }

    .fs-auth__back {
        right: 22px;
        left: 22px;
        top: 22px;
    }
}

.register-sheet {
    overflow: hidden;
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 20px 60px -20px rgba(30, 40, 120, 0.25);
    border: 1px solid rgba(30, 58, 138, 0.08);
}

.register-sheet__hero {
    padding: 34px 32px;
    text-align: center;
    color: #ffffff;
    background: linear-gradient(135deg, #1e3a8a 0%, #3b3fb8 55%, #e11d48 100%);
}

.register-sheet__brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.register-sheet__brand img {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.14);
}

.register-sheet__brand div {
    display: grid;
    gap: 2px;
    text-align: left;
}

.register-sheet__brand strong,
.register-sheet__hero h1,
.register-sheet__body h2 {
    font-family: "Poppins", sans-serif;
}

.register-sheet__brand strong {
    font-size: 1rem;
}

.register-sheet__brand span {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.8);
}

.register-sheet__hero h1 {
    margin: 0;
    font-size: 2.1rem;
    letter-spacing: 0.04em;
}

.register-sheet__hero p {
    margin: 8px 0 0;
    font-size: 0.93rem;
    color: rgba(255, 255, 255, 0.92);
    letter-spacing: 0.01em;
}

.register-sheet__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    margin-top: 16px;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.86);
}

.register-sheet__meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.register-sheet__body {
    padding: 32px;
}

.register-sheet__intro {
    display: grid;
    gap: 10px;
    margin-bottom: 22px;
}

.register-kicker {
    display: inline-flex;
    width: fit-content;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(30, 58, 138, 0.08);
    color: var(--blue);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.register-sheet__body h2 {
    margin: 0;
    font-size: 2rem;
    color: var(--text);
}

.register-sheet__intro p {
    margin: 0;
    color: var(--muted);
    line-height: 1.8;
}

.register-form {
    display: grid;
}

.register-section-title {
    margin: 24px 0 12px;
    padding-left: 10px;
    border-left: 3px solid #e11d48;
    color: var(--blue);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.register-section-title small {
    margin-left: 6px;
    color: var(--muted);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: none;
}

.register-note-line {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0 0;
    padding: 10px 14px;
    border-radius: 12px;
    background: rgba(225, 29, 72, 0.06);
    color: #9f1239;
    font-size: 0.85rem;
    font-weight: 600;
}

.register-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.register-choice-list {
    display: grid;
    gap: 12px;
}

.register-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.register-choice {
    position: relative;
    display: block;
    cursor: pointer;
}

.register-choice__surface {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px 16px 52px;
    border: 1.5px solid #dbe1f0;
    border-radius: 14px;
    background: #fafbff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.register-choice__surface::before {
    content: "";
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid #c3cbe0;
    background: #ffffff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.register-choice:hover .register-choice__surface {
    border-color: #b9c0e6;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px -12px rgba(30, 40, 120, 0.35);
}

.register-choice__copy {
    display: grid;
    gap: 4px;
}

.register-choice__copy strong {
    color: var(--text);
    font-size: 0.98rem;
}

.register-choice__copy span {
    color: var(--muted);
    font-size: 0.88rem;
    line-height: 1.55;
}

.register-choice__price {
    color: #e11d48;
    font-size: 1rem;
    font-weight: 800;
    white-space: nowrap;
}

.register-choice input:checked + .register-choice__surface {
    border-color: #3b3fb8;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(59, 63, 184, 0.12);
}

.register-choice input:checked + .register-choice__surface::before {
    border-color: #3b3fb8;
    background: radial-gradient(circle, #3b3fb8 0 5px, #ffffff 6px);
    box-shadow: 0 0 0 3px rgba(59, 63, 184, 0.15);
}

.register-choice input:focus-visible + .register-choice__surface {
    border-color: #3b3fb8;
    box-shadow: 0 0 0 3px rgba(59, 63, 184, 0.25);
}

/* --- Payment QR card (payment page) --- */
.pay-qr {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 22px;
    margin-bottom: 18px;
    padding: 20px;
    border-radius: 16px;
    color: #ffffff;
    background: linear-gradient(135deg, #1e3a8a 0%, #3b3fb8 60%, #e11d48 140%);
}

.pay-qr__media {
    flex: none;
    padding: 10px;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 12px 30px -14px rgba(0, 0, 0, 0.5);
}

.pay-qr__media img {
    display: block;
    width: 168px;
    height: 168px;
    object-fit: contain;
}

.pay-qr__info {
    flex: 1;
    min-width: 220px;
}

.pay-qr__pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.28);
}

.pay-qr__info h3 {
    margin: 12px 0 6px;
    font-family: "Poppins", sans-serif;
    font-size: 1.3rem;
}

.pay-qr__info p {
    margin: 0 0 14px;
    font-size: 0.9rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.9);
}

.pay-qr__meta {
    list-style: none;
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
}

.pay-qr__meta li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    font-size: 0.9rem;
}

.pay-qr__meta li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.pay-qr__meta span {
    color: rgba(255, 255, 255, 0.82);
}

.pay-qr__meta strong {
    font-weight: 800;
}

.register-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 20px;
    padding: 16px 18px;
    border-radius: 12px;
    color: #ffffff;
    background: linear-gradient(135deg, #1e3a8a, #3b3fb8);
}

.register-total span {
    font-size: 1rem;
    font-weight: 600;
}

.register-total strong {
    font-size: 1.5rem;
    font-weight: 800;
}

.register-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.register-field--full {
    grid-column: 1 / -1;
}

.register-field span {
    font-size: 0.84rem;
    font-weight: 700;
    color: #334;
}

.register-field span em {
    font-style: normal;
    color: #e11d48;
}

.register-field input {
    width: 100%;
    padding: 13px 15px;
    border: 1.5px solid #dbe1f0;
    border-radius: 12px;
    background: #fafbff;
    color: var(--text);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.register-field input::placeholder {
    color: #aab3c5;
}

.register-field input:focus {
    outline: none;
    border-color: #3b3fb8;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(59, 63, 184, 0.12);
}

.register-steps {
    display: grid;
    gap: 10px;
    padding: 14px 16px;
    border-radius: 12px;
    background: #f5f7ff;
    border: 1px solid #e4e8f7;
}

.register-step {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.register-step strong {
    color: var(--text);
    font-size: 0.94rem;
}

.register-step span {
    color: var(--muted);
    font-size: 0.9rem;
    line-height: 1.6;
}

.register-submit-row {
    display: grid;
    gap: 16px;
    margin-top: 22px;
}

.register-support {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border-radius: 12px;
    color: #ffffff;
    background: linear-gradient(135deg, #1e3a8a, #3b3fb8);
}

.register-support strong {
    font-size: 1rem;
}

.register-support span {
    color: rgba(255, 255, 255, 0.88);
    text-align: right;
}

.register-submit {
    width: 100%;
    padding: 15px;
    border: 0;
    border-radius: 12px;
    color: #ffffff;
    background: linear-gradient(135deg, #1e3a8a, #e11d48);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.register-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 30px -10px rgba(225, 29, 72, 0.5);
}

.register-sheet__links {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 20px;
}

.register-sheet__links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--blue);
    font-weight: 700;
}

.register-sheet__foot {
    padding: 18px;
    border-top: 1px solid #eef1fa;
    background: #fafbff;
    text-align: center;
    color: #6b7290;
    font-size: 0.78rem;
}

.register-kicker--light {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
}

.status-sheet {
    overflow: hidden;
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 20px 60px -20px rgba(30, 40, 120, 0.25);
    border: 1px solid rgba(30, 58, 138, 0.08);
}

.status-sheet__hero {
    padding: 30px 32px;
    color: #ffffff;
    background: linear-gradient(135deg, #1e3a8a 0%, #3b3fb8 55%, #e11d48 100%);
}

.status-sheet__hero h1 {
    margin: 12px 0 8px;
    font-family: "Poppins", sans-serif;
    font-size: 2.2rem;
    line-height: 1.08;
}

.status-sheet__hero p {
    margin: 0;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.75;
}

/* Progress stepper */
.status-steps {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 22px;
    flex-wrap: wrap;
}

.status-step {
    display: flex;
    align-items: center;
    gap: 10px;
}

.status-step__dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex: none;
    border-radius: 50%;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.75);
    background: rgba(255, 255, 255, 0.12);
    border: 1.5px solid rgba(255, 255, 255, 0.3);
    transition: all 0.2s ease;
}

.status-step.is-done .status-step__dot {
    color: #1e3a8a;
    background: #ffffff;
    border-color: #ffffff;
    box-shadow: 0 6px 16px -6px rgba(0, 0, 0, 0.4);
}

.status-step__label {
    font-size: 0.85rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.78);
}

.status-step.is-done .status-step__label {
    color: #ffffff;
}

.status-step__bar {
    flex: 1;
    min-width: 16px;
    height: 3px;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.22);
}

.status-step__bar.is-done {
    background: rgba(255, 255, 255, 0.85);
}

.status-card__header h2 i {
    color: var(--blue);
    margin-right: 6px;
}

.status-sheet__body {
    padding: 30px 32px;
    display: grid;
    gap: 24px;
}

.status-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.status-card {
    display: grid;
    gap: 18px;
    padding: 22px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: #ffffff;
}

.status-card__header {
    display: grid;
    gap: 12px;
}

.status-card__header h2 {
    margin: 0;
    font-family: "Poppins", sans-serif;
    font-size: 1.5rem;
    color: var(--text);
}

.status-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.status-badge.is-approved {
    color: #166534;
    background: rgba(22, 101, 52, 0.12);
}

.status-badge.is-rejected {
    color: #b91c1c;
    background: rgba(185, 28, 28, 0.1);
}

.status-badge.is-pending {
    color: #9a3412;
    background: rgba(154, 52, 18, 0.12);
}

.status-badge.is-muted {
    color: var(--muted);
    background: #f1f5f9;
}

.status-table {
    display: grid;
    gap: 12px;
}

.status-row {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid #edf2f7;
}

.status-row:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.status-row span {
    color: var(--muted);
    font-size: 0.92rem;
}

.status-row strong {
    color: var(--text);
    text-align: right;
}

.status-note {
    display: flex;
    align-items: start;
    gap: 12px;
    padding: 16px 18px;
    border-radius: 16px;
    background: var(--soft);
    border: 1px solid var(--border);
    color: var(--muted);
    line-height: 1.7;
}

.status-note i {
    color: var(--blue);
    margin-top: 2px;
}

.status-note--danger {
    color: #991b1b;
    background: rgba(153, 27, 27, 0.08);
    border-color: rgba(153, 27, 27, 0.12);
}

.status-note--danger i {
    color: #b91c1c;
}

.status-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

@media (max-width: 1080px) {
    .portal-layout {
        grid-template-columns: 1fr;
    }

    .portal-aside,
    .portal-panel {
        padding: 30px;
    }
}

@media (max-width: 820px) {
    .portal-topbar {
        display: grid;
        justify-items: start;
    }

    .portal-form-grid {
        grid-template-columns: 1fr;
    }

    .portal-field--full {
        grid-column: auto;
    }

    .register-grid {
        grid-template-columns: 1fr;
    }

    .register-field--full {
        grid-column: auto;
    }

    .register-choice__surface,
    .register-support {
        align-items: start;
        flex-direction: column;
    }

    .register-choice__price,
    .register-support span {
        text-align: left;
    }

    .status-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .portal-page {
        padding: 16px 10px 28px;
    }

    .portal-topbar,
    .portal-aside,
    .portal-panel {
        padding: 22px;
    }

    .portal-aside h2,
    .portal-card h1 {
        font-size: 2.1rem;
    }

    .portal-links,
    .portal-actions,
    .portal-topbar__meta {
        flex-direction: column;
        align-items: stretch;
    }

    .auth-compact-page {
        padding: 18px 10px 30px;
    }

    .register-sheet__hero,
    .register-sheet__body,
    .status-sheet__hero,
    .status-sheet__body {
        padding: 22px;
    }

    .register-sheet__hero h1,
    .register-sheet__body h2,
    .status-sheet__hero h1 {
        font-size: 1.8rem;
    }

    .register-sheet__meta,
    .register-sheet__links {
        flex-direction: column;
        align-items: stretch;
    }

    .register-total,
    .status-row {
        flex-direction: column;
        align-items: stretch;
    }

    .status-row strong {
        text-align: left;
    }
}

/* Accessible, low-friction registration */
.easy-register-intro { text-align:center; max-width:720px; margin:0 auto 28px; }
.easy-register-intro h2 { font-size:clamp(1.75rem,4vw,2.35rem); }
.easy-progress { display:flex; align-items:flex-start; justify-content:center; max-width:640px; margin:0 auto 26px; }
.easy-progress div { display:grid; justify-items:center; gap:7px; min-width:90px; color:#64748b; font-weight:700; font-size:.9rem; }
.easy-progress b { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; color:#fff; background:#94a3b8; font-size:1.05rem; }
.easy-progress .is-active { color:#1e3a8a; }
.easy-progress .is-active b { background:#1e3a8a; box-shadow:0 0 0 6px #e8edff; }
.easy-progress i { width:110px; height:3px; margin-top:21px; background:#dbe4f0; }
.easy-help { display:flex; align-items:center; gap:14px; margin-bottom:28px; padding:16px 18px; border:1px solid #bfdbfe; border-radius:14px; color:#334155; background:#eff6ff; line-height:1.55; }
.easy-help i { color:#2563eb; font-size:1.3rem; }
.easy-help span { display:grid; }
.easy-register .register-section-title { margin-top:30px; padding:0 0 12px; border-bottom:2px solid #e7ebf5; color:#172554; font-size:1.05rem; letter-spacing:0; text-transform:none; }
.easy-register .register-section-title small,.easy-register .register-field small { color:#64748b; font-weight:500; }
.easy-register .register-grid { gap:18px; }
.easy-register .register-field span { font-size:.95rem; }
.easy-register .register-field input { min-height:54px; font-size:1rem; background:#fff; }
.easy-register .register-choice__surface { min-height:74px; padding:17px 18px; }
.easy-register .register-choice__copy strong { font-size:1.05rem; }
.easy-register .register-choice__price { font-size:1.1rem; }
.easy-register .register-total { margin-top:28px; padding:20px 22px; }
.easy-register .register-submit { min-height:58px; font-size:1.06rem; background:#1e3a8a; }
.easy-register .register-support { background:#f1f5f9; color:#172554; border:1px solid #dbe4f0; }
.easy-register .register-support span { color:#475569; }
@media(max-width:560px){.easy-progress i{width:32px}.easy-progress div{min-width:68px;font-size:.78rem}.easy-progress b{width:40px;height:40px}.easy-help{align-items:flex-start}.easy-register .register-choice__surface{gap:12px}.easy-register .register-submit{font-size:.95rem}.easy-register .register-support span{text-align:left}}

/* Registration studio */
.auth-compact-page:has(.registration-studio){padding:36px 20px;background:#f3f6fb}
.auth-compact-shell:has(.registration-studio){width:min(1240px,100%)}
.registration-studio{display:grid;grid-template-columns:370px minmax(0,1fr);overflow:hidden;border:1px solid #e2e8f0;border-radius:28px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.11)}
.registration-studio__aside{position:relative;display:flex;flex-direction:column;min-height:100%;padding:38px;color:#fff;background:linear-gradient(160deg,#111d3c 0%,#193978 68%,#2856a6 100%)}
.registration-studio__aside:after{content:"";position:absolute;right:-100px;bottom:-120px;width:330px;height:330px;border:70px solid rgba(255,255,255,.045);border-radius:50%}
.registration-studio__aside .register-sheet__brand{margin-bottom:70px}.registration-studio__aside .register-sheet__brand img{width:48px;height:48px}.registration-studio__aside .register-sheet__brand span{color:rgba(255,255,255,.65)}
.studio-eyebrow{width:max-content;margin-bottom:17px;padding:7px 11px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(255,255,255,.08);font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.registration-studio__aside h1{margin:0;font:700 clamp(2.2rem,4vw,3.15rem)/1.06 "Poppins",sans-serif;letter-spacing:-.04em}.studio-lead{margin:16px 0 22px;color:rgba(255,255,255,.72);line-height:1.65}
.registration-studio__aside .register-sheet__meta{display:grid;gap:10px;color:#fff;font-size:.88rem}.registration-studio__aside .register-sheet__meta i{width:18px;color:#9fc0ff}
.studio-roadmap{display:grid;gap:0;margin-top:48px}.studio-roadmap>div{position:relative;display:flex;gap:15px;padding-bottom:25px;color:rgba(255,255,255,.55)}.studio-roadmap>div:not(:last-child):after{content:"";position:absolute;left:16px;top:34px;bottom:0;width:1px;background:rgba(255,255,255,.17)}
.studio-roadmap b{display:grid;place-items:center;width:34px;height:34px;flex:none;border:1px solid rgba(255,255,255,.23);border-radius:50%;font-size:.68rem}.studio-roadmap span{display:grid;gap:3px}.studio-roadmap strong{color:inherit;font-size:.9rem}.studio-roadmap small{font-size:.76rem}.studio-roadmap .is-current{color:#fff}.studio-roadmap .is-current b{border-color:#fff;background:#fff;color:#193978}
.studio-assurance{z-index:1;display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:28px;border-top:1px solid rgba(255,255,255,.14)}.studio-assurance i{font-size:1.25rem;color:#b9d0ff}.studio-assurance span{display:grid;gap:3px}.studio-assurance small{color:rgba(255,255,255,.6);line-height:1.45}
.registration-studio__main{padding:48px 54px 30px;min-width:0}.registration-studio__main .register-sheet__intro{margin-bottom:34px}.registration-studio__main .register-sheet__intro h2{margin:10px 0 8px;font-size:2.2rem;letter-spacing:-.035em}.registration-studio__main .register-sheet__intro p{margin:0;color:#64748b}
.studio-form{display:grid}.studio-section-heading{display:flex;align-items:center;gap:14px;margin-bottom:20px}.studio-section-heading--spaced{margin-top:38px}.studio-section-heading>b{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:11px;background:#eaf0ff;color:#244c99;font-size:.77rem}.studio-section-heading span{display:grid;gap:2px}.studio-section-heading h3{margin:0;color:#17233b;font:700 1.08rem "Poppins",sans-serif}.studio-section-heading p{margin:0;color:#8491a6;font-size:.82rem}
.studio-form .register-grid{gap:17px}.studio-form .register-field{gap:8px}.studio-form .register-field span{font-size:.86rem;color:#26344d}.studio-form .register-field small{float:right;padding:2px 7px;border-radius:999px;background:#f1f5f9;color:#8793a5;font-size:.64rem;text-transform:uppercase;letter-spacing:.05em}.studio-form .register-field input{min-height:50px;padding:13px 15px;border:1px solid #dce3ee;border-radius:10px;background:#fff}.studio-form .register-field input:focus{border-color:#3563b4;box-shadow:0 0 0 4px rgba(53,99,180,.1)}
.studio-form .register-choice-list{gap:10px}.studio-form .register-choice__surface{min-height:70px;border-color:#dce3ee;border-radius:12px;background:#fff}.studio-form .register-choice__price{color:#244c99}.studio-form .register-choice input:checked+.register-choice__surface{border-color:#3563b4;background:#f7f9ff;box-shadow:0 0 0 3px rgba(53,99,180,.09)}.studio-form .register-choice input:checked+.register-choice__surface:before{border-color:#3563b4;background:radial-gradient(circle,#3563b4 0 5px,#fff 6px)}
.studio-subheading{display:flex;align-items:center;justify-content:space-between;margin:30px 0 12px;padding-top:26px;border-top:1px solid #e9edf4}.studio-subheading span{font-weight:800;color:#26344d}.studio-subheading small{color:#8491a6}
.studio-form .register-total{margin-top:28px;padding:18px 20px;border-radius:12px;background:#111d3c}.studio-form .register-total strong{font-size:1.35rem}.studio-form .register-support{padding:14px 17px;border:1px solid #e2e8f0;background:#f8fafc;color:#26344d}.studio-form .register-support span{color:#64748b}.studio-form .register-submit{display:flex;align-items:center;justify-content:center;gap:12px;min-height:56px;border-radius:11px;background:#2856a6;box-shadow:0 12px 24px rgba(40,86,166,.2)}
.registration-studio__main .register-sheet__links{justify-content:space-between;margin-top:26px;padding-top:22px;border-top:1px solid #edf0f5;font-size:.86rem}
@media(max-width:900px){.registration-studio{grid-template-columns:1fr}.registration-studio__aside{padding:30px;min-height:auto}.registration-studio__aside .register-sheet__brand{margin-bottom:35px}.studio-roadmap,.studio-assurance{display:none}.registration-studio__main{padding:36px 30px}}
@media(max-width:560px){.auth-compact-page:has(.registration-studio){padding:10px}.registration-studio{border-radius:18px}.registration-studio__aside{padding:25px}.registration-studio__aside h1{font-size:2.15rem}.registration-studio__main{padding:30px 20px 22px}.registration-studio__main .register-sheet__intro h2{font-size:1.8rem}.studio-subheading,.studio-form .register-support{align-items:flex-start;flex-direction:column}.registration-studio__main .register-sheet__links{gap:15px}}

/* Registration status console */
.auth-compact-page:has(.status-console){padding:36px 20px;background:#f3f6fb}.auth-compact-shell:has(.status-console){width:min(1180px,100%)}
.status-console{overflow:hidden;border:1px solid #e0e6ef;border-radius:28px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.1)}
.status-console .status-sheet__hero{position:relative;padding:28px 36px 32px;background:#111d3c}.status-console .status-sheet__hero:after{content:"";position:absolute;right:-90px;top:-140px;width:350px;height:350px;border:70px solid rgba(255,255,255,.035);border-radius:50%;pointer-events:none}
.status-console__brand{position:relative;z-index:1;display:flex;align-items:center;gap:11px;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.12)}.status-console__brand img{width:40px;height:40px;border-radius:11px}.status-console__brand span{display:grid;gap:1px}.status-console__brand strong{font-size:.86rem}.status-console__brand small{color:rgba(255,255,255,.55);font-size:.7rem}
.status-console__title{position:relative;z-index:1;margin-top:27px}.status-console__title .register-kicker{padding:0;background:transparent;color:#9db9ee;font-size:.68rem}.status-console__title h1{margin:9px 0 7px;font-size:clamp(1.75rem,4vw,2.5rem);letter-spacing:-.025em}.status-console__title p{max-width:680px;color:rgba(255,255,255,.65);font-size:.91rem}
.status-console .status-steps{position:relative;z-index:1;margin-top:30px}.status-console .status-step__dot{width:34px;height:34px;border-color:rgba(255,255,255,.2);font-size:.78rem}.status-console .status-step.is-done .status-step__dot{color:#183770}.status-console .status-step__label{font-size:.78rem}.status-console .status-step__bar{height:1px;background:rgba(255,255,255,.16)}
.status-console .status-sheet__body{padding:30px 36px 26px;gap:22px}.status-console .status-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:20px;align-items:start}
.status-console .status-card{gap:20px;padding:26px;border-color:#e1e7f0;border-radius:16px;box-shadow:0 8px 24px rgba(15,23,42,.035)}.status-console .status-card__header{position:relative;grid-template-columns:42px 1fr;column-gap:13px;align-items:center}.status-console .status-card__header h2{font-size:1.22rem;letter-spacing:-.02em}.status-console .status-card__header>p{grid-column:2;margin:2px 0 0;color:#7b879a;font-size:.8rem;line-height:1.5}.status-console .status-card__icon{grid-row:1/span 2;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eaf0ff;color:#2856a6}.status-console .status-badges{grid-column:1/-1;margin-top:8px}.status-console .status-badge{padding:6px 9px;font-size:.66rem}
.status-console .status-table{gap:0}.status-console .status-row{padding:13px 0;border-color:#edf1f6}.status-console .status-row span{font-size:.82rem}.status-console .status-row strong{max-width:65%;font-size:.88rem;line-height:1.35}.status-console .status-note{padding:14px 15px;border:0;border-radius:11px;background:#f3f6fa;font-size:.83rem;line-height:1.55}
.status-console .pay-qr{display:grid;grid-template-columns:150px 1fr;gap:22px;margin:0;padding:20px;border-radius:14px;background:#172b55}.status-console .pay-qr__media{padding:8px;border-radius:11px}.status-console .pay-qr__media img{width:134px;height:134px}.status-console .pay-qr__info{min-width:0}.status-console .pay-qr__pill{padding:5px 9px;font-size:.62rem}.status-console .pay-qr__info h3{margin:9px 0 4px;font-size:1.05rem}.status-console .pay-qr__info p{margin-bottom:10px;font-size:.76rem;line-height:1.5}.status-console .pay-qr__meta{gap:5px}.status-console .pay-qr__meta li{padding-bottom:5px;font-size:.73rem}
.status-console .portal-form{gap:15px}.status-console .portal-field{gap:7px}.status-console .portal-field>span{font-size:.81rem}.status-console .portal-field small{display:block;margin-top:3px;color:#8b96a8;font-size:.69rem;font-weight:500}.status-console .portal-field input,.status-console .portal-field select{min-height:48px;padding:12px 13px;border-radius:10px}.status-console input[type=file]{padding:10px;background:#f8fafc}.status-console .portal-button{min-height:48px;border-radius:10px;background:#2856a6}.status-console .portal-button--secondary{background:#f2f5fa;color:#244c99}
.status-console .portal-links{justify-content:space-between;padding-top:22px;border-top:1px solid #edf1f6;font-size:.84rem}
@media(max-width:860px){.status-console .status-grid{grid-template-columns:1fr}.status-console .status-card{padding:22px}}
@media(max-width:560px){.auth-compact-page:has(.status-console){padding:10px}.status-console{border-radius:18px}.status-console .status-sheet__hero,.status-console .status-sheet__body{padding:24px 20px}.status-console .status-step__label{display:none}.status-console .status-step__bar{min-width:10px}.status-console .pay-qr{grid-template-columns:1fr}.status-console .pay-qr__media{width:max-content}.status-console .portal-links{gap:15px}.status-console .status-row strong{max-width:100%}}
