* {
    box-sizing: border-box;
}

::selection {
    color: #ffffff;
    background: var(--accent-bright);
}

body {
    margin: 0;
    min-height: 100vh;
    font-family: var(--font-body);
    font-size: var(--fs-body);
    line-height: var(--lh-normal);
    color: var(--text-main);
    background: var(--bg-soft);
}

* {
    scrollbar-color: rgba(70, 72, 212, 0.28) transparent;
    scrollbar-width: thin;
}

*::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

*::-webkit-scrollbar-track {
    background: transparent;
}

*::-webkit-scrollbar-thumb {
    min-height: 48px;
    border: 3px solid transparent;
    border-radius: var(--radius-pill);
    background: rgba(70, 72, 212, 0.2);
    background-clip: padding-box;
}

*::-webkit-scrollbar-thumb:hover {
    background: rgba(70, 72, 212, 0.34);
    background-clip: padding-box;
}

*::-webkit-scrollbar-corner {
    background: transparent;
}

.shell {
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: stretch;
    padding: 0;
    background: var(--bg-soft);
}

.panel {
    width: 100%;
    background: transparent;
    border: 0;
    border-radius: 0;
    backdrop-filter: none;
}

.dashboard-panel,
.admin-panel,
.admin-organizations-panel,
.admin-methodology-panel,
.admin-reports-panel,
.admin-report-detail-panel,
.ai-welcome-panel,
.prechat-panel,
.profile-panel,
.reports-panel,
.processing-panel,
.report-panel,
.interview-panel,
.chat-panel,
.onboarding-panel {
    width: 100%;
    min-height: 100vh;
}

.auth-panel {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    align-self: center;
    width: min(calc(100% - 64px), 448px);
    max-width: 448px;
    min-height: auto;
    padding: var(--space-6) var(--space-7);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 18px 34px -24px rgba(45, 48, 87, 0.3), 0 8px 18px -18px rgba(45, 48, 87, 0.18);
    text-align: center;
}

.auth-panel::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background: url("/web/assets/decor/subtle-animated-background-decor.png") center / cover no-repeat;
    opacity: 0.9;
    pointer-events: none;
}

.brand {
    font-family: var(--font-heading);
    font-size: var(--fs-body-lg);
    font-weight: var(--fw-bold);
    margin-bottom: var(--space-3);
}

h1,
h2,
h3,
h4 {
    margin: 0;
    font-family: var(--font-heading);
    color: var(--text-strong);
}

h1 {
    font-size: var(--fs-h1);
    font-weight: var(--fw-extrabold);
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-tight);
}

h2 {
    font-size: var(--fs-display);
    font-weight: var(--fw-extrabold);
    line-height: var(--lh-display);
    letter-spacing: var(--ls-tight);
}

h3 {
    font-size: var(--fs-h3);
    font-weight: var(--fw-bold);
    line-height: var(--lh-tight);
}

h4 {
    font-size: var(--fs-h4);
    font-weight: var(--fw-bold);
    line-height: var(--lh-snug);
}

.subtitle {
    margin: var(--space-3) 0 0;
    color: var(--text-muted);
    font-size: var(--fs-body-lg);
    line-height: var(--lh-normal);
}

.eyebrow {
    color: var(--text-muted);
    font-family: var(--font-heading);
    font-size: var(--fs-caption);
    font-weight: var(--fw-bold);
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-eyebrow);
    text-transform: uppercase;
}

.caption {
    color: var(--text-muted);
    font-size: var(--fs-caption);
    line-height: var(--lh-snug);
}

.meta {
    color: var(--text-muted);
    font-size: var(--fs-meta);
    line-height: var(--lh-snug);
}

.stack {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-5);
}

.field {
    display: grid;
    gap: var(--space-2);
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
}
