:root {
    --color-brand: #167c70;
    --color-brand-hover: #0f6259;
    --color-brand-light: #8ed8c3;
    --color-brand-dark: #173d3b;
    --color-ink: #172a2a;
    --color-muted: #607371;
    --color-field: #d6e2df;
    --color-canvas: #f3f8f6;
    --shadow-soft: 0 18px 45px rgba(23, 61, 59, .10);
    font-family: "Trebuchet MS", "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; min-width: 320px; background: var(--color-canvas); color: var(--color-ink); font-size: 15px; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
svg { display: block; }

/* Shared utility compatibility for the existing Blade views. */
.h-full { height: 100%; } .min-h-full { min-height: 100%; } .min-h-screen { min-height: 100vh; }
.flex { display: flex; } .inline-flex { display: inline-flex; } .grid { display: grid; } .block { display: block; }
.hidden { display: none !important; } .relative { position: relative; } .absolute { position: absolute; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.flex-1 { flex: 1 1 0%; } .flex-col { flex-direction: column; } .flex-wrap { flex-wrap: wrap; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.items-center { align-items: center; } .items-start { align-items: flex-start; } .items-end { align-items: flex-end; }
.justify-center { justify-content: center; } .justify-between { justify-content: space-between; } .justify-end { justify-content: flex-end; }
.w-full { width: 100%; } .w-auto { width: auto; } .max-w-md { max-width: 28rem; } .max-w-xl { max-width: 36rem; }
.max-w-2xl { max-width: 42rem; } .max-w-7xl { max-width: 80rem; } .mx-auto { margin-left: auto; margin-right: auto; }
.max-w-\[360px\] { max-width: 360px; } .max-w-\[1100px\] { max-width: 1100px; }
.h-2 { height: .5rem; } .h-2\.5 { height: .625rem; } .h-4 { height: 1rem; } .h-5 { height: 1.25rem; } .h-8 { height: 2rem; } .h-11 { height: 2.75rem; }
.h-7 { height: 1.75rem; } .w-2 { width: .5rem; } .w-2\.5 { width: .625rem; } .w-4 { width: 1rem; } .w-5 { width: 1.25rem; } .w-7 { width: 1.75rem; } .w-8 { width: 2rem; }
.gap-2 { gap: .5rem; } .gap-3 { gap: .75rem; } .gap-4 { gap: 1rem; } .gap-8 { gap: 2rem; }
.space-y-1\.5 > * + * { margin-top: .375rem; } .space-y-3 > * + * { margin-top: .75rem; }
.space-y-4 > * + * { margin-top: 1rem; } .space-y-9 > * + * { margin-top: 2.25rem; }
.mt-1 { margin-top: .25rem; } .mt-1\.5 { margin-top: .375rem; } .mt-2 { margin-top: .5rem; }
.mt-3 { margin-top: .75rem; } .mt-4 { margin-top: 1rem; } .mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; } .mt-16 { margin-top: 4rem; } .my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem; }
.p-1\.5 { padding: .375rem; } .p-4 { padding: 1rem; } .p-7 { padding: 1.75rem; } .p-8 { padding: 2rem; }
.px-3 { padding-left: .75rem; padding-right: .75rem; } .px-3\.5 { padding-left: .875rem; padding-right: .875rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; } .px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; } .py-2 { padding-top: .5rem; padding-bottom: .5rem; }
.px-10 { padding-left: 2.5rem; padding-right: 2.5rem; } .py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.py-2\.5 { padding-top: .625rem; padding-bottom: .625rem; } .py-3 { padding-top: .75rem; padding-bottom: .75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; } .py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; } .py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.pb-10 { padding-bottom: 2.5rem; } .pb-16 { padding-bottom: 4rem; } .pt-4 { padding-top: 1rem; } .pt-6 { padding-top: 1.5rem; }
.pr-10 { padding-right: 2.5rem; } .pr-11 { padding-right: 2.75rem; } .pl-4 { padding-left: 1rem; }
.text-center { text-align: center; } .text-right { text-align: right; } .text-left { text-align: left; }
.text-xs { font-size: .75rem; } .text-sm { font-size: .875rem; } .text-base { font-size: 1rem; } .text-lg { font-size: 1.125rem; } .text-2xl { font-size: 1.5rem; }
.font-medium { font-weight: 600; } .font-semibold { font-weight: 700; } .font-bold { font-weight: 800; }
.leading-tight { line-height: 1.15; } .leading-relaxed { line-height: 1.65; } .uppercase { text-transform: uppercase; }
.text-white { color: #fff; } .text-red-600 { color: #b42318; } .text-green-700 { color: #147d54; }
.opacity-0 { opacity: 0; } .opacity-100 { opacity: 1; }
.overflow-hidden { overflow: hidden; } .overflow-x-auto { overflow-x: auto; } .overflow-y-auto { overflow-y: auto; } .whitespace-nowrap { white-space: nowrap; }
.z-10 { z-index: 10; } .shrink-0 { flex-shrink: 0; } .pointer-events-none { pointer-events: none; } .mx-auto { margin-left: auto; margin-right: auto; }
.border { border: 1px solid var(--color-field); } .border-t { border-top: 1px solid var(--color-field); }
.rounded-lg { border-radius: 10px; } .rounded-xl { border-radius: 14px; } .rounded-2xl { border-radius: 20px; } .rounded-full { border-radius: 9999px; }
.bg-white { background: #fff; } .bg-white\/95 { background: rgba(255,255,255,.95); } .shadow-sm { box-shadow: 0 2px 10px rgba(23,61,59,.07); }

/* Project visual language. */
body { background: radial-gradient(circle at 5% 0%, #e5f4ed 0, transparent 32rem), var(--color-canvas); }
header { background: rgba(255,255,255,.9); backdrop-filter: blur(12px); }
.signup-shell { background: #fff; }
.signup-form-column { min-width: 0; flex: 1 1 60%; }
.signup-aside { position: sticky; top: 0; align-self: flex-start; height: 100vh; min-height: 100vh; background: linear-gradient(145deg, #0f6259 0%, #167c70 52%, #54b697 100%); }
.signup-aside::before, .signup-aside::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; }
.signup-aside::before { width: 34rem; height: 34rem; right: -14rem; top: 8rem; }
.signup-aside::after { width: 20rem; height: 20rem; left: -10rem; bottom: 4rem; }
.signup-aside > div:last-child { position: relative; z-index: 10; height: 100%; overflow-y: auto; padding: 3.5rem 2.5rem; }
.signup-aside > div:last-child > div:first-child { max-width: 28rem; }
.signup-aside > div:last-child > div:first-child,
.signup-aside > div:last-child > div:last-child > h3 { color: #fff; }
.signup-aside .grid > div,
.signup-aside figure { color: var(--color-ink); }
.signup-aside svg { max-width: 100%; color: var(--color-brand); }
.signup-form-column > main { width: 100%; }
.signup-form-column form { padding-bottom: 1rem; }
.auth-shell main { width: 100%; }
.register-page { width: 100%; max-width: 44rem; padding: 2.5rem 0 4rem; }
.register-page > h1 { margin: 0; color: var(--color-brand-dark); font-size: 2rem; letter-spacing: -.02em; }
.register-page > .max-w-md { max-width: 100%; }
.register-page form { margin-top: 2rem; }
.register-page form > section { padding: 1.5rem; border: 1px solid #e0ebe7; border-radius: 16px; background: rgba(255,255,255,.82); box-shadow: 0 8px 24px rgba(23,61,59,.045); }
.register-page form > section > h2 { color: var(--color-brand-dark); }
.register-page form > section + section { margin-top: 1.5rem; }
.register-page form > section:first-child { border-top: 3px solid var(--color-brand); }
.register-page form > section:nth-of-type(2) { border-top: 3px solid #8ed8c3; }
.register-page form > section:nth-of-type(2) > .mt-4 { margin-top: 1.25rem; }
.register-page label.group > div { min-height: 6.25rem; display: flex; flex-direction: column; justify-content: center; border-radius: 12px; }
.register-page label.group { position: relative; display: block; cursor: pointer; }
.register-page label.group > div { position: relative; z-index: 1; pointer-events: none; }
.register-page label.group input.sr-only { z-index: 2; width: 100%; height: 100%; margin: 0; clip: auto; clip-path: none; opacity: 0; cursor: pointer; }
.register-page label.group input.sr-only:focus-visible + div { outline: 3px solid rgba(22,124,112,.28); outline-offset: 3px; }
.register-page label.group > div:hover { border-color: #8ab8ad; background: #f7fcfa; }
.register-page .mt-6.max-w-md { max-width: 100%; }
.register-page form > .flex { border: 1px solid #cce8dc; background: #effaf5; }
.register-page form > .border-t { margin-top: 1rem; }
.register-page form > section:nth-of-type(2) label.group > div { transition: border-color .18s, box-shadow .18s, transform .18s; }
.register-page form > section:nth-of-type(2) label.group > div:hover { transform: translateY(-1px); border-color: #8ab8ad; }
.register-page form > section:nth-of-type(2) label.group input:checked + div { border-color: var(--color-brand); background: #f0faf6; box-shadow: 0 0 0 1px var(--color-brand); }
.register-page input[name="campaign_targets[]"]:checked + div { border-color: var(--color-brand); background: #f0faf6; box-shadow: 0 0 0 1px var(--color-brand), 0 8px 18px rgba(22,124,112,.10); }
.register-page input[name="campaign_targets[]"]:checked + div svg { color: var(--color-brand); }
.register-page input[type="text"], .register-page input[type="email"], .register-page input[type="tel"], .register-page input[type="password"], .register-page select { width: 100%; }
.register-page textarea { resize: vertical; min-height: 5.5rem; }
.register-page button[type="submit"] { min-height: 3rem; font-size: .95rem; }
[data-toggle-password] { position: absolute; top: 0; right: 0; bottom: 0; display: flex; align-items: center; padding: 0 .75rem; border: 0; background: transparent; color: var(--color-muted); }
[data-toggle-password]:hover { color: var(--color-ink); }
input[type="radio"].sr-only + div { display: block; }
input[type="radio"].sr-only:checked + div { border-color: var(--color-brand); box-shadow: 0 0 0 1px var(--color-brand); }
input[type="radio"].sr-only:checked + div > span:first-child { border-color: var(--color-brand); }
input[type="radio"].sr-only:checked + div > span:first-child span { opacity: 1; background-color: var(--color-brand); }
.register-page input[name="business_model"]:checked + div > div > span:first-child { border-color: var(--color-brand); background-color: var(--color-brand); }
.register-page input[name="business_model"]:checked + div > div > span:first-child span { opacity: 1; background-color: #fff; }
input, select, textarea { border: 1px solid var(--color-field); border-radius: 10px; background: #fff; color: var(--color-ink); outline: 0; transition: border-color .18s, box-shadow .18s, transform .18s; }
input:focus, select:focus, textarea:focus { border-color: var(--color-brand); box-shadow: 0 0 0 4px rgba(22,124,112,.14); }
input::placeholder, textarea::placeholder { color: #9aaba7; }
button[type="submit"], a.bg-\[var\(--color-brand\)\] { border: 0; background: var(--color-brand); color: #fff; box-shadow: 0 8px 18px rgba(22,124,112,.18); }
button[type="submit"]:hover, a.bg-\[var\(--color-brand\)\]:hover { background: var(--color-brand-hover); transform: translateY(-1px); }
.signup-form-column header button, .auth-shell header button { border: 1px solid #9aaba7; border-radius: 10px; background: #fff; padding: .5rem .75rem; color: var(--color-ink); }
.signup-form-column header button:hover, .auth-shell header button:hover { background: #edf5f1; }

/* Auth surfaces. */
body > div > main, body > div > div > main { animation: rise-in .45s ease both; }
@keyframes rise-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

@media (min-width: 640px) {
    .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sm\:col-span-2 { grid-column: span 2 / span 2; }
    .sm\:px-8 { padding-left: 2rem; padding-right: 2rem; } .sm\:px-10 { padding-left: 2.5rem; padding-right: 2.5rem; }
    .sm\:p-8 { padding: 2rem; } .sm\:py-12 { padding-top: 3rem; padding-bottom: 3rem; }
}
@media (min-width: 1024px) {
    .lg\:block { display: block !important; } .lg\:hidden { display: none !important; } .lg\:w-\[42\%\] { width: 42%; } .lg\:w-\[58\%\] { width: 58%; }
    .lg\:items-start { align-items: flex-start; } .lg\:justify-center { justify-content: center; }
    .signup-aside { flex: 1 1 40%; }
}
@media (max-width: 639px) {
    .px-5 { padding-left: 1rem; padding-right: 1rem; }
    .p-7 { padding: 1.25rem; }
    .register-page { padding-top: 1.5rem; }
    .register-page form > section { padding: 1rem; border-radius: 12px; }
    .register-page .grid-cols-2 { grid-template-columns: 1fr; }
}
@media (max-width: 1023px) {
    .signup-aside { display: none; position: static; height: auto; }
}

/* Table polish for the admin view. */
table { border-collapse: collapse; }
thead { background: #edf5f1; }
tbody tr { transition: background .15s; }
tbody tr:hover { background: #f1f8f5; }

/* Autofill keeps the owned white field treatment. */
input:-webkit-autofill, input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px #fff inset; box-shadow: 0 0 0 1000px #fff inset; }
