:root {
    --admission-font: Tahoma, "Segoe UI", Arial, sans-serif;
}

html,
body,
button,
input,
select,
textarea {
    font-family: var(--admission-font) !important;
}

.bi {
    width: 1.05em;
    min-width: 1.05em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
}

.bi::before { content: "•"; }
.bi-search::before { content: "⌕"; }
.bi-box-arrow-right::before { content: "↩"; }
.bi-chat-text::before { content: "□"; }
.bi-folder2-open::before { content: "▱"; }
.bi-geo-alt::before { content: "⌖"; }
.bi-heart-pulse::before { content: "+"; }
.bi-mortarboard::before { content: "◇"; }
.bi-people::before { content: "◎"; }
.bi-person::before { content: "○"; }
.bi-calendar-x::before { content: "×"; }
.bi-pencil-square::before { content: "✎"; }
.bi-person-plus::before { content: "+"; }

.public-guide-link {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 999px;
    padding: 7px 12px;
    color: #fff;
    background: rgba(255, 255, 255, .1);
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
}

.public-guide-link.light {
    color: #1d4ed8;
    background: #eff6ff;
    border-color: #bfdbfe;
}

.admission-offline-note {
    border: 1px solid #bae6fd;
    border-radius: 14px;
    background: #f0f9ff;
    color: #075985;
    padding: 10px 12px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.9;
}

.bi-calendar-range::before { content: "◫"; }
.bi-file-earmark-spreadsheet::before { content: "▦"; }
.bi-box-arrow-up-left::before { content: "↗"; }
.bi-person-check::before { content: "✓"; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .28);
    outline-offset: 2px;
}

.field-validation-error {
    display: block;
    margin-top: 5px;
    color: #b91c1c;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.75;
}

.input-validation-error {
    border-color: #ef4444 !important;
    background: #fff7f7 !important;
}

.admission-theme-toggle {
    position: fixed;
    inset-inline-end: 16px;
    bottom: 16px;
    z-index: 1500;
    width: 42px;
    height: 42px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    background: rgba(255, 255, 255, .94);
    color: #0f172a;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .16);
    cursor: pointer;
    font-size: 20px;
    font-weight: 900;
    backdrop-filter: blur(10px);
}

html.vs-admission-dark body {
    background: #070d19 !important;
    color: #e5edf8 !important;
}

html.vs-admission-dark :is(
    .admission-card,
    .correct-card,
    .track-card,
    .closed-card,
    .done-card,
    .school-card,
    .guide-panel,
    .guide-step,
    details,
    .admission-doc,
    .correct-doc,
    .track-doc,
    .track-info,
    .doc-item
) {
    background: #111a2b !important;
    border-color: #2c3a50 !important;
    color: #e5edf8 !important;
    box-shadow: 0 18px 42px rgba(0, 0, 0, .25) !important;
}

html.vs-admission-dark :is(
    .admission-field label,
    .correct-field label,
    .track-field label,
    .admission-doc span,
    .track-info span,
    .guide-step p,
    details p,
    .done-hint,
    .admission-help,
    .track-note,
    .correct-note,
    .admission-detail-muted
) {
    color: #b8c5d8 !important;
}

html.vs-admission-dark :is(
    input,
    select,
    textarea,
    .remember-check,
    .correct-check,
    .track-control
) {
    background: #0b1424 !important;
    border-color: #33445e !important;
    color: #f1f5f9 !important;
}

html.vs-admission-dark :is(input, textarea)::placeholder {
    color: #718198 !important;
}

html.vs-admission-dark :is(.track-info strong, .school-title, .doc-title, .guide-panel h2, summary) {
    color: #f8fafc !important;
}

html.vs-admission-dark :is(.admission-actions, .correct-actions) {
    background: linear-gradient(180deg, rgba(7, 13, 25, 0), #070d19 34%) !important;
}

html.vs-admission-dark .admission-theme-toggle {
    background: rgba(17, 26, 43, .95);
    border-color: #3b4b63;
    color: #f8fafc;
}

html.vs-admission-dark .public-guide-link.light,
html.vs-admission-dark :is(.track-btn.soft, .track-link.soft) {
    background: rgba(37, 99, 235, .14) !important;
    border-color: rgba(96, 165, 250, .38) !important;
    color: #bfdbfe !important;
}

@media (max-width: 560px) {
    .admission-theme-toggle {
        inset-inline-end: 10px;
        bottom: 10px;
        width: 38px;
        height: 38px;
        border-radius: 12px;
        font-size: 18px;
    }
}
