/* Admission follows TB's shared theme. Keep workflow and print layouts local. */
body.admission-theme {
    --admission-max: var(--tb1-page-max-width, 1440px);
    --admission-blue: var(--tb1-brand);
    --admission-sky: var(--tb1-accent);
    --admission-ink: var(--tb1-ink-1);
    --admission-muted: var(--tb1-ink-3);
    --admission-border: var(--tb1-border);
    --admission-soft: var(--tb1-brand-50);
    --admission-panel: var(--tb1-surface);
    --admission-shadow: 0 14px 32px -24px rgba(15, 23, 42, .35);
    --royal: var(--tb1-brand-strong);
    --royal-700: var(--tb1-brand);
    --blue-600: var(--tb1-brand);
    --blue-500: var(--tb1-brand-soft);
    --blue-400: var(--tb1-brand-400);
    --blue-300: var(--tb1-brand-300);
    --blue-200: var(--tb1-brand-200);
    --blue-100: var(--tb1-brand-100);
    --blue-50: var(--tb1-brand-50);
    --sky: var(--tb1-accent);
    --white: var(--tb1-surface);
    --gray-50: var(--tb1-page);
    --gray-100: var(--tb1-surface-alt);
    --gray-200: var(--tb1-border);
    --gray-300: var(--tb1-border-bold);
    --gray-400: var(--tb1-ink-4);
    --gray-500: var(--tb1-ink-3);
    --gray-600: var(--tb1-ink-2);
    --gray-700: var(--tb1-ink-2);
    --gray-800: var(--tb1-ink-1);
    --gray-900: var(--tb1-ink-1);
    --glass: var(--tb1-surface);
    --glass-strong: var(--tb1-surface);
    --glass-hover: var(--tb1-surface-alt);
    --glass-border: var(--tb1-border);
    margin: 0;
    background: var(--tb1-page);
    color: var(--tb1-ink-1);
    font-family: var(--tb1-font-body);
    line-height: 1.65;
    color-scheme: light;
}
html.dark .admission-theme { color-scheme: dark; }
.admission-theme *, .admission-theme *::before, .admission-theme *::after { box-sizing: border-box; }
.admission-theme .admission-school-logo { display: block; object-fit: contain; flex-shrink: 0; }
.admission-theme :is(.admission-topbar, .admission-adminbar) {
    position: relative;
    background: var(--tb1-surface);
    border-bottom: 1px solid var(--tb1-border);
    box-shadow: 0 2px 12px rgba(15, 23, 42, .04);
    backdrop-filter: none;
}
.admission-theme :is(.admission-topbar-inner, .admission-adminbar-inner) { min-height: 76px; }
.admission-theme :is(.admission-brand-title, .admission-adminbar-name) { color: var(--tb1-ink-1); font-weight: 700; }
.admission-theme :is(.admission-brand-sub, .admission-adminbar-sub) { color: var(--tb1-ink-3); }
.admission-theme :is(.admission-navlinks, .admission-adminlinks) a {
    border-radius: 10px;
    color: var(--tb1-ink-2);
    min-height: 42px;
}
.admission-theme :is(.admission-navlinks, .admission-adminlinks) a:is(:hover, .is-active) {
    background: var(--tb1-brand-50);
    color: var(--tb1-brand);
    box-shadow: none;
}
.admission-theme .admission-navlinks a.is-primary {
    background: var(--tb1-brand);
    color: var(--tb1-on-brand);
    box-shadow: none;
}
.admission-theme :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--tb1-accent); outline-offset: 3px;
}
.admission-theme .admission-flow { background: var(--tb1-surface); border-color: var(--tb1-border); }
.admission-theme :is(.atmosphere, .grid-overlay, #particles-canvas, .cursor-glow, .hero-ring) { display: none; }
.admission-theme :is(.page-wrap, .page, .adm-container) { max-width: var(--admission-max); margin-inline: auto; }
.admission-theme .page-wrap { padding: 28px 24px 56px; }
.admission-theme .adm-page { padding: 28px 24px 56px; background: var(--tb1-page); }
.admission-theme :is(.hero, .form-hero, .header-card) {
    padding: 34px;
    margin-bottom: 24px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 22px;
    background: linear-gradient(115deg, #172554, var(--tb1-banner-1) 65%, #0284c7);
    color: #fff;
    box-shadow: 0 18px 36px -26px rgba(29, 78, 216, .65);
}
.admission-theme :is(.hero, .form-hero, .header-card) :is(h1, .line-1, .line-2, .header-title, .hero-badge span) {
    background: none; color: #fff; -webkit-text-fill-color: #fff;
}
.admission-theme :is(.hero-subtitle, .hero-sub, .form-hero-sub, .header-subtitle) { color: #dbeafe; }
.admission-theme .hero-badge { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.25); }
.admission-theme :is(.hero, .form-hero) h1 { font-size: clamp(26px, 3.4vw, 44px); line-height: 1.35; }
.admission-theme :is(.hero, .form-hero, .header-card)::before,
.admission-theme :is(.hero, .form-hero, .header-card)::after { display: none; }
.admission-theme :is(.gc, .card, .adm-card, .stat-card, .filter-card, .table-card, .section, .live-card, .toc, .feature, .rule, .check, .file-card, .status-card, .info-item, .terms-card) {
    background: var(--tb1-surface);
    color: var(--tb1-ink-1);
    border-color: var(--tb1-border);
    border-radius: 16px;
    box-shadow: var(--admission-shadow);
    backdrop-filter: none;
}
.admission-theme :is(.gc-head, .adm-card-header, .table-header, .modal-header) {
    background: var(--tb1-surface-alt); border-color: var(--tb1-border); color: var(--tb1-ink-1);
}
.admission-theme :is(.gc-title, .adm-card-title, .section-title, .info-value, .stat-card-value, .live-card strong, .section h2, .feature h3, .rule strong, .toc strong) { color: var(--tb1-ink-1); }
.admission-theme :is(.info-label, .stat-card-title, .adm-card-subtitle, .lead, .feature p, .rule span, .live-card small, .live-card .label) { color: var(--tb1-ink-3); }
.admission-theme :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) {
    background-color: var(--tb1-surface); color: var(--tb1-ink-1); border-color: var(--tb1-border-bold); border-radius: 10px;
}
.admission-theme :is(input, textarea)::placeholder { color: var(--tb1-ink-3); }
.admission-theme :is(.btn-primary, .adm-btn-primary, .button.soft) { background: var(--tb1-brand); color: var(--tb1-on-brand); border-color: transparent; }
.admission-theme :is(.btn-secondary, .adm-btn-secondary) { background: var(--tb1-surface); color: var(--tb1-ink-2); border-color: var(--tb1-border); }
.admission-theme :is(th, td) { border-color: var(--tb1-border); }
.admission-theme th { background: var(--tb1-surface-alt); color: var(--tb1-ink-2); }
.admission-theme td { color: var(--tb1-ink-2); }
.admission-theme tbody tr:hover { background: var(--tb1-surface-alt); }
.admission-theme :is(.admission-admin-footer, .admission-admin-hint, .admission-admin-dialog-panel) { background: var(--tb1-surface); color: var(--tb1-ink-2); border-color: var(--tb1-border); }
.admission-theme .admission-admin-dialog-head { background: var(--tb1-surface-alt); }
.admission-theme :is(.admission-admin-dialog-title, .admission-admin-dialog-body) { color: var(--tb1-ink-1); }
@media (max-width: 768px) {
    .admission-theme :is(.page-wrap, .adm-page, .page) { padding: 18px 14px 36px; }
    .admission-theme :is(.hero, .form-hero, .header-card) { padding: 24px 18px; border-radius: 16px; }
    .admission-theme .admission-topbar-inner { flex-wrap: wrap; gap: 12px; padding: 12px 14px; }
    .admission-theme .admission-navlinks { width: 100%; overflow-x: auto; flex-wrap: nowrap; justify-content: flex-start; }
    .admission-theme .admission-navlinks a { white-space: nowrap; flex-shrink: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .admission-theme *, .admission-theme *::before, .admission-theme *::after {
        animation-duration: .01ms !important; animation-delay: 0ms !important;
        transition-duration: .01ms !important; scroll-behavior: auto !important;
    }
}
@media print {
    .admission-theme { background: #fff; color: #000; }
    .admission-theme :is(.admission-theme-toggle, .admission-topbar, .admission-adminbar) { display: none !important; }
    .admission-theme :is(.hero, .form-hero, .header-card) { background: #fff; color: #000; box-shadow: none; }
    .admission-theme :is(.hero, .form-hero, .header-card) :is(h1, .line-1, .line-2, .header-title, p) { color: #000; -webkit-text-fill-color: #000; }
}
/* Content remains visible even when optional animation scripts cannot load. */
.admission-theme :is(.section-label, .stats-card, .step-item, .feature-card, .contact-card, .hero-heading, .hero-badge, .hero-subtitle, .school-label, .cta-group) {
    opacity: 1; transform: none; animation: none;
}
.admission-theme .admission-flow-step { background: var(--tb1-surface-alt); border-color: var(--tb1-border); }
.admission-theme .admission-flow-step.is-active { background: var(--tb1-brand-50); border-color: var(--tb1-brand); box-shadow: none; }
.admission-theme .admission-flow-title { color: var(--tb1-ink-1); }
.admission-theme .admission-flow-sub { color: var(--tb1-ink-3); }
.admission-theme .admission-flow-dot { background: var(--tb1-brand); color: var(--tb1-on-brand); }
.admission-theme :is(.hero-subtitle strong, .hero .school-label) { color: #dbeafe; }
body.admission-theme.admission-admin-ui :is(.hero, .header-card) {
    background: linear-gradient(115deg, #172554, var(--tb1-banner-1) 65%, #0284c7);
}
body.admission-theme.admission-admin-ui :is(.hero h1, .header-title) { color: #fff !important; }
body.admission-theme.admission-admin-ui :is(.hero p, .header-subtitle) { color: #dbeafe !important; }
body.admission-theme.admission-admin-ui :is(.admission-adminbar, .admission-admin-dialog-panel) { background: var(--tb1-surface); }
body.admission-theme.admission-admin-ui :is(.admission-admin-dialog-title, .admission-admin-dialog-body) { color: var(--tb1-ink-1); }
@media print {
    body.admission-theme.admission-admin-ui :is(.hero, .header-card) { background: #fff; }
    body.admission-theme.admission-admin-ui :is(.hero h1, .header-title, .hero p, .header-subtitle) { color: #000 !important; }
}

/* Compact layout uses the same rem scale as TB/index.php (90% by default). */
body.admission-theme {
    --admission-max: var(--tb1-page-max-width, 1280px);
    --admission-gutter: clamp(12px, 1.5vw, 20px);
    --form-w: 1120px; --content-w: 1120px;
    font-size: 1rem; line-height: 1.6;
}
body.admission-theme :is(.admission-topbar, .admission-adminbar) { position: relative; top: auto; z-index: 20; }
body.admission-theme :is(.admission-topbar-inner, .admission-adminbar-inner, .admission-flow-inner, .admission-admin-footer-inner, .admission-admin-hint-inner) {
    max-width: var(--admission-max); padding-inline: var(--admission-gutter);
}
body.admission-theme :is(.admission-topbar-inner, .admission-adminbar-inner) { min-height: 48px; gap: 10px; padding-block: 6px; }
body.admission-theme :is(.admission-brand, .admission-adminbar-title) { min-width: 0; gap: 8px; }
body.admission-theme :is(.admission-brand-title, .admission-adminbar-name) { font-size: 1rem; line-height: 1.4; }
body.admission-theme :is(.admission-brand-sub, .admission-adminbar-sub) { display: block; font-size: .82rem; line-height: 1.4; }
body.admission-theme :is(.admission-navlinks, .admission-adminlinks) a { font-size: .9rem; padding: 6px 10px; min-height: 36px; }
body.admission-theme .admission-flow-inner { padding-block: 8px; gap: 8px; }
body.admission-theme .admission-flow-step { padding: 7px 10px; box-shadow: none; border-radius: 8px; }
body.admission-theme .admission-flow-dot { width: 24px; height: 24px; font-size: .82rem; }
body.admission-theme .admission-flow-title { display: block; font-size: .88rem; line-height: 1.4; }
body.admission-theme .admission-flow-sub { display: none; }
body.admission-theme :is(.page-wrap, .adm-page, main.page) {
    width: 100%; max-width: var(--admission-max) !important; margin: 0 auto !important;
    padding: 16px var(--admission-gutter) 24px !important; min-width: 0;
}
body.admission-theme .adm-container { max-width: none !important; width: 100%; }
body.admission-theme :is(.stats-section, .features-section, .contact-section, .main-area, .wizard-wrap, .form-main) {
    width: 100%; max-width: 1120px; margin: 0 auto 16px; padding: 0;
}
body.admission-theme :is(.hero, .form-hero, .header-card) { padding: 20px 24px; margin-bottom: 16px; border-radius: 14px; }
body.admission-theme :is(.hero, .form-hero) h1 { font-size: clamp(1.5rem, 2.3vw, 2rem); line-height: 1.35; }
body.admission-theme :is(.hero-heading, .hero-badge, .school-label) { margin-bottom: 10px; }
body.admission-theme .hero-badge { padding: 5px 12px; font-size: .82rem; }
body.admission-theme :is(.hero-subtitle, .hero-sub, .form-hero-sub) { margin: 6px 0; font-size: 1rem; line-height: 1.6; font-weight: 400; }
body.admission-theme .school-label { font-size: .86rem; }
body.admission-theme .cta-group { gap: 8px; margin-top: 10px; }
body.admission-theme :is(.gc, .adm-card, .card, .section) { margin-bottom: 16px; border-radius: 12px; }
body.admission-theme :is(.gc-title, .adm-card-title, .section-title) { font-size: 1.08rem; line-height: 1.45; }
body.admission-theme :is(.gc-body, .card-body, .section) { padding: 16px; }
body.admission-theme :is(.gc-head, .adm-card-header) { padding: 12px 16px; }
body.admission-theme :is(.fl, .form-label, .adm-label, .info-label, .stat-card-title) { font-size: .95rem; line-height: 1.5; }
body.admission-theme :is(.fhint, .form-hint, .info-hint, .adm-card-subtitle, .feature-desc, .step-desc, .muted, .detail) { font-size: .88rem; line-height: 1.55; }
body.admission-theme :is(.page-wrap, .adm-page, main.page, .main-content) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) {
    min-height: 38px; padding: 8px 10px; font-size: 1rem; line-height: 1.5;
}
body.admission-theme :is(.btn, .adm-btn, .button), body.admission-theme.admission-admin-ui :is(.btn, .adm-btn, button.btn) {
    min-height: 38px; padding: 8px 12px; font-size: .95rem; line-height: 1.45;
}
body.admission-theme.admission-admin-ui { font-size: 1rem; }
body.admission-theme.admission-admin-ui :is(.hero, .header-card, .adm-card) { padding: 16px; }
body.admission-theme.admission-admin-ui table :is(th, td) { font-size: .88rem; line-height: 1.5; padding: 10px 12px; }
body.admission-theme :is(.table-wrap, .table-wrapper, .adm-table-container) { max-width: 100%; overflow-x: auto; }
body.admission-theme .main-content { width: 100%; max-width: 960px; padding: 16px var(--admission-gutter) 24px; }
body.admission-theme.admission-public-ui > .hero { max-width: calc(var(--admission-max) - var(--admission-gutter) * 2); margin: 16px auto 0; }
body.admission-theme :is(.hero h1, .hero-sub, .form-hero h1, .form-hero-sub) { opacity: 1; animation: none; transform: none; }
/* Landing: compact introduction and live figures share the first row. */
body.admission-landing .page-wrap { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, 1fr); gap: 16px; align-items: stretch; }
body.admission-landing .page-wrap > * { min-width: 0; margin: 0; max-width: none; }
body.admission-landing .hero { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; text-align: left; padding: 24px; }
body.admission-landing .hero .cta-group { justify-content: flex-start; }
body.admission-landing .stats-section > .section-label { display: none; }
body.admission-landing .stats-card { height: 100%; border-radius: 14px; box-shadow: var(--admission-shadow); }
body.admission-landing .stats-card-header { padding: 12px 16px; }
body.admission-landing .stats-total { padding: 10px 16px; display: flex; align-items: baseline; justify-content: center; gap: 8px; }
body.admission-landing :is(.stats-total-label, .stats-total-number, .stats-total-suffix) { margin: 0; }
body.admission-landing .stats-total-number { font-size: 2rem; }
body.admission-landing .stat-level-card { padding: 14px 16px; }
body.admission-landing .stat-level-number { font-size: 2rem; margin: 4px 0; }
body.admission-landing :is(.stats-total-label, .stat-level-quota, .stat-level-name) { font-size: .86rem; letter-spacing: 0; }
body.admission-landing :is(.features-section, .contact-section, .brand-footer) { grid-column: 1 / -1; }
body.admission-landing .section-label { margin-bottom: 10px; }
body.admission-landing .features-grid { gap: 12px; }
body.admission-landing .feature-card { padding: 14px 16px; text-align: left; display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: 12px; align-items: start; border-radius: 12px; }
body.admission-landing .feature-icon { width: 36px; height: 36px; font-size: 16px; margin: 0; border-radius: 10px; grid-row: 1 / 3; }
body.admission-landing .feature-title { font-size: 1rem; margin: 0 0 4px; }
body.admission-landing .feature-desc { margin: 0; }
body.admission-landing .contact-card { padding: 14px 16px; border-radius: 12px; }
body.admission-landing .brand-footer { padding: 0; font-size: .82rem; }
@media (max-width: 768px) {
    body.admission-landing .page-wrap { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    body.admission-theme .admission-topbar-inner { gap: 6px; }
    body.admission-theme .admission-navlinks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; overflow: visible; }
    body.admission-theme .admission-navlinks a { min-width: 0; padding: 6px 4px; flex-direction: column; gap: 2px; font-size: .85rem; }
    body.admission-theme .admission-flow-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
    body.admission-theme .admission-flow-step { padding: 6px 8px; }
    body.admission-theme :is(.hero, .form-hero, .header-card) { padding: 18px; }
    body.admission-theme .main-area .search-row { grid-template-columns: 1fr; }
    body.admission-theme.admission-public-ui > .hero { margin: 12px var(--admission-gutter) 0; }
    body.admission-theme :is(.page-wrap, .adm-page, main.page) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) { font-size: 16px; }
    body.admission-landing .features-grid { grid-template-columns: 1fr; }
}
@media print {
    body.admission-theme :is(.page-wrap, .adm-page, main.page, .main-content) { padding: 0 !important; max-width: none !important; }
    body.admission-landing .page-wrap { display: block; }
}

/* Task-focused admission surfaces, shared by light and dark themes. */
body.admission-theme :is(.wizard-wrap, .form-main, .main-area) { max-width: none; }
body.admission-theme :is(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid var(--tb1-brand); outline-offset: 3px;
}
body.admission-theme :is(.admission-form-help, .admission-next-action, .admission-start-guide) {
    border: 1px solid var(--tb1-border); border-radius: 12px;
    background: var(--tb1-surface); color: var(--tb1-ink-1);
}
body.admission-theme .admission-form-help {
    padding: 10px 14px; margin-bottom: 12px; display: flex;
    justify-content: space-between; gap: 12px; flex-wrap: wrap;
    font-size: .9rem; color: var(--tb1-ink-3);
}
body.admission-theme .admission-form-help strong { color: var(--tb1-brand); }
body.admission-theme .admission-inline-error {
    padding: 12px 14px; margin-bottom: 12px; border-left: 4px solid var(--tb1-danger, #ef4444);
    background: var(--tb1-surface-alt); color: var(--tb1-ink-1); border-radius: 8px;
}
body.admission-theme [aria-invalid=true] { border-color: var(--tb1-danger, #ef4444); }
body.admission-theme .admission-next-action {
    padding: 16px; margin-bottom: 16px; border-left: 4px solid var(--tb1-brand);
    background: var(--tb1-brand-50);
}
body.admission-theme .admission-next-action strong { font-size: 1.15rem; }
body.admission-theme .admission-next-action p { margin: 4px 0 0; color: var(--tb1-ink-2); }
body.admission-landing .admission-start-guide { grid-column: 1 / -1; padding: 16px; }
body.admission-landing .admission-start-guide h2 { margin: 0; font-size: 1.2rem; }
body.admission-landing .admission-start-guide p { margin: 4px 0 14px; color: var(--tb1-ink-3); }
body.admission-landing .admission-start-guide ol {
    list-style: none; padding: 0; margin: 0; display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; counter-reset: admission-guide;
}
body.admission-landing .admission-start-guide li {
    display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 4px 10px;
    padding: 12px; background: var(--tb1-surface-alt); border-radius: 8px;
}
body.admission-landing .admission-start-guide li::before {
    counter-increment: admission-guide; content: counter(admission-guide);
    width: 28px; height: 28px; display: grid; place-items: center; grid-row: 1 / 3;
    border-radius: 50%; background: var(--tb1-brand); color: var(--tb1-on-brand);
}
body.admission-landing .admission-start-guide li span { color: var(--tb1-ink-3); font-size: .88rem; }
body.admission-theme :is(.live-dot, .tl-icon, .stats-live-badge) { animation: none; }
body.admission-theme .file-item span { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 860px) {
    body.admission-landing .admission-start-guide ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
    body.admission-landing .admission-start-guide ol { grid-template-columns: 1fr; }
    body.admission-theme :is(.btn, .adm-btn, .button) { min-height: 44px; }
}
body.admission-landing :is(.feature-desc, .contact-info p, .stat-level-quota, .stat-level-name, .stats-total-label, .stats-total-suffix) {
    color: var(--tb1-ink-3);
}
