/* Modern registration shell. Keeps the existing registration and location logic intact. */
:root {
    --reg-canvas: #071c14;
    --reg-canvas-soft: #0b241a;
    --reg-surface: #102b20;
    --reg-surface-soft: #173629;
    --reg-field: #0b241a;
    --reg-ink: #f2f8f4;
    --reg-muted: #b4c7bc;
    --reg-line: #315343;
    --reg-brand: #52ca8a;
    --reg-brand-strong: #159159;
    --reg-gold: #f0c94d;
    --reg-danger: #ffaaa5;
    --reg-shadow: 0 30px 80px rgba(0, 0, 0, .28);
}

html[data-theme='light'] {
    --reg-canvas: #f1f7f3;
    --reg-canvas-soft: #e5efe9;
    --reg-surface: #ffffff;
    --reg-surface-soft: #edf6f0;
    --reg-field: #f8fbf9;
    --reg-ink: #17251e;
    --reg-muted: #5b6c62;
    --reg-line: #d1e1d7;
    --reg-brand: #087443;
    --reg-brand-strong: #056136;
    --reg-gold: #966700;
    --reg-danger: #a52621;
    --reg-shadow: 0 30px 80px rgba(20, 52, 34, .14);
}

html { min-width: 320px; background: var(--reg-canvas); }

body[data-peso-page='jobseeker-register'] {
    min-height: 100vh;
    min-height: 100dvh;
    display: block !important;
    padding: 0 0 64px !important;
    color: var(--reg-ink) !important;
    background:
        radial-gradient(circle at 6% 8%, color-mix(in srgb, var(--reg-brand) 14%, transparent), transparent 28rem),
        radial-gradient(circle at 94% 90%, color-mix(in srgb, var(--reg-gold) 10%, transparent), transparent 26rem),
        var(--reg-canvas) !important;
}

body[data-peso-page='jobseeker-register']::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    opacity: .12;
    pointer-events: none;
    background-image:
        linear-gradient(var(--reg-line) 1px, transparent 1px),
        linear-gradient(90deg, var(--reg-line) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, transparent, #000 15%, #000 82%, transparent);
}

.registration-toolbar {
    width: min(calc(100% - 32px), 1120px);
    min-height: 78px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 18px;
}

.registration-back,
.registration-theme-toggle {
    width: max-content;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 0 16px;
    color: var(--reg-ink);
    background: color-mix(in srgb, var(--reg-surface) 88%, transparent);
    border: 1px solid var(--reg-line);
    border-radius: 999px;
    font: inherit;
    font-size: .8rem;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
    backdrop-filter: blur(16px);
}

.registration-back:hover,
.registration-theme-toggle:hover {
    color: var(--reg-brand);
    border-color: var(--reg-brand);
    transform: translateY(-1px);
}

.registration-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.registration-brand img {
    width: 40px;
    height: 40px;
    object-fit: cover;
    background: #fff;
    border: 2px solid var(--reg-gold);
    border-radius: 50%;
}

.registration-brand span { display: grid; line-height: 1.2; }
.registration-brand strong { color: var(--reg-ink); font-size: .83rem; }
.registration-brand small { color: var(--reg-muted); font-size: .62rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.registration-theme-toggle { justify-self: end; }
.registration-theme-toggle i { width: 16px; color: var(--reg-brand); }

body[data-peso-page='jobseeker-register'] > .page {
    width: min(calc(100% - 32px), 960px) !important;
    max-width: 960px !important;
    margin: 8px auto 0 !important;
}

body[data-peso-page='jobseeker-register'] .card {
    overflow: hidden;
    color: var(--reg-ink) !important;
    background: color-mix(in srgb, var(--reg-surface) 96%, transparent) !important;
    border: 1px solid var(--reg-line) !important;
    border-radius: 28px !important;
    box-shadow: var(--reg-shadow) !important;
    backdrop-filter: blur(18px);
}

body[data-peso-page='jobseeker-register'] .card:hover { transform: none !important; }

body[data-peso-page='jobseeker-register'] .card-header {
    min-height: 220px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 10px;
    padding: 40px 28px !important;
    background:
        radial-gradient(circle at 88% 14%, rgba(240, 201, 77, .18), transparent 14rem),
        linear-gradient(135deg, #075d37, #043d25) !important;
}

body[data-peso-page='jobseeker-register'] .card-header h1 {
    margin: 2px 0 0;
    color: #fff !important;
    font-size: clamp(1.75rem, 4vw, 2.4rem) !important;
    letter-spacing: -.035em;
}

body[data-peso-page='jobseeker-register'] .card-header p { color: #d8eee2 !important; }
body[data-peso-page='jobseeker-register'] .logo-container img { background: #fff; border-color: var(--reg-gold); }
body[data-peso-page='jobseeker-register'] .card-body { padding: clamp(24px, 5vw, 48px) !important; }
body[data-peso-page='jobseeker-register'] .back-link { color: var(--reg-brand) !important; }

body[data-peso-page='jobseeker-register'] .section {
    margin-top: 28px;
    padding: clamp(18px, 3vw, 26px) !important;
    background: var(--reg-surface-soft) !important;
    border: 1px solid var(--reg-line) !important;
    border-radius: 18px !important;
}

body[data-peso-page='jobseeker-register'] :is(.section-title, label, .terms-content h3, .modal-header h2) { color: var(--reg-ink) !important; }
body[data-peso-page='jobseeker-register'] :is(.section-head i, .required, a) { color: var(--reg-brand) !important; }
body[data-peso-page='jobseeker-register'] :is(.field label, .helper-text, .terms-content, .terms-content p, .terms-content li, .card-footer) { color: var(--reg-muted) !important; }

body[data-peso-page='jobseeker-register'] :is(input, select, textarea) {
    min-height: 48px;
    color: var(--reg-ink) !important;
    background: var(--reg-field) !important;
    border: 1px solid var(--reg-line) !important;
    border-radius: 12px !important;
}

body[data-peso-page='jobseeker-register'] input::placeholder { color: color-mix(in srgb, var(--reg-muted) 78%, transparent) !important; }
body[data-peso-page='jobseeker-register'] :is(input, select, textarea):focus { border-color: var(--reg-brand) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--reg-brand) 18%, transparent) !important; }
body[data-peso-page='jobseeker-register'] .input-group .icon { color: var(--reg-muted) !important; }

body[data-peso-page='jobseeker-register'] :is(.password-requirements, .terms-acceptance, .terms-content .terms-example) {
    color: var(--reg-muted) !important;
    background: var(--reg-field) !important;
    border-color: var(--reg-line) !important;
}

body[data-peso-page='jobseeker-register'] .btn-submit {
    min-height: 52px;
    background: var(--reg-brand-strong) !important;
    border-radius: 13px !important;
    box-shadow: 0 12px 24px color-mix(in srgb, var(--reg-brand) 22%, transparent) !important;
}

body[data-peso-page='jobseeker-register'] .btn-submit:hover { background: var(--reg-brand) !important; }
body[data-peso-page='jobseeker-register'] .message { border-radius: 13px !important; }

body[data-peso-page='jobseeker-register'] :is(.modal-container, .modal-body, .modal-footer) {
    color: var(--reg-ink) !important;
    background: var(--reg-surface) !important;
    border-color: var(--reg-line) !important;
}

body[data-peso-page='jobseeker-register'] .modal-header {
    background: linear-gradient(135deg, #075d37, #043d25) !important;
}

body[data-peso-page='jobseeker-register'] .modal-header h2 { color: #fff !important; }
body[data-peso-page='jobseeker-register'] .btn-close { color: var(--reg-ink) !important; background: var(--reg-surface-soft) !important; border-color: var(--reg-line) !important; }

@media (max-width: 700px) {
    .registration-toolbar { grid-template-columns: 1fr auto; min-height: 70px; }
    .registration-brand { display: none; }
    .registration-theme-toggle span { display: none; }
    body[data-peso-page='jobseeker-register'] > .page { width: min(calc(100% - 20px), 960px) !important; margin-top: 4px !important; }
    body[data-peso-page='jobseeker-register'] .card { border-radius: 22px !important; }
    body[data-peso-page='jobseeker-register'] .card-header { min-height: 190px; padding: 32px 20px !important; }
    body[data-peso-page='jobseeker-register'] .logo-container { flex-direction: column; }
    body[data-peso-page='jobseeker-register'] .logo-container span { font-size: 1.12rem !important; }
    body[data-peso-page='jobseeker-register'] .section { margin-top: 20px; padding: 18px !important; }
}

@media (prefers-reduced-motion: reduce) {
    body[data-peso-page='jobseeker-register'] *,
    body[data-peso-page='jobseeker-register'] *::before,
    body[data-peso-page='jobseeker-register'] *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
