:root {
    --bs-font-sans-serif: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --bs-body-color: #202a42;
    --bs-body-bg: #f4f6fa;
    --bs-primary: #ffb600;
    --bs-primary-rgb: 255, 182, 0;
    --bs-link-color: #965000;
    --bs-link-hover-color: #743e00;
    --bs-border-color: #e0e5ee;
    --bs-secondary-color: #647087;
    --app-ink: #202a42;
    --app-muted: #647087;
    --app-radius: 16px;
}
body { font-size: .9375rem; line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { text-underline-offset: .2em; }
h1, h2, h3, .h3, .h5 { color: #18233a; font-weight: 700; letter-spacing: -.035em; line-height: 1.25; }
h1, .h3 { font-size: clamp(1.6rem, 3vw, 2rem); }
h2, .h5 { font-size: 1.125rem; letter-spacing: -.02em; }
.container { max-width: 1184px; padding-inline: 28px; }
.app-header { background: #fff; border-bottom: 1px solid var(--bs-border-color); }
.app-nav { min-height: 80px; display: flex; flex-wrap: wrap; align-items: center; gap: 28px; padding-block: 16px; }
.app-brand { display: inline-flex; align-items: center; gap: 11px; color: #18233a; font-size: 1.17rem; font-weight: 750; letter-spacing: -.045em; text-decoration: none; white-space: nowrap; }
.app-brand:hover { color: #965000; }
.app-nav-links { display: flex; flex-wrap: wrap; gap: 6px; }
.app-nav-link { border-radius: 8px; color: #536078; font-size: .85rem; padding: 7px 12px; font-weight: 650; text-decoration: none; }
.app-nav-link:hover { background: #fff7e5; color: #965000; }
.nav-link-current { background: #fff2d1; color: #965000; }
.app-main { padding-block: 38px 56px; }
.app-footer { margin-top: auto; display: flex; justify-content: space-between; gap: 20px; padding-block: 22px; border-top: 1px solid var(--bs-border-color); color: var(--app-muted); font-size: .8rem; }
.app-footer a { color: #56617a; text-decoration: none; }
.app-footer a:hover { color: #965000; text-decoration: underline; }
.page-heading { display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 26px; }
.page-heading h1 { margin-bottom: 0; }
.back-link { display: inline-block; color: var(--app-muted); text-decoration: none; font-size: .85rem; margin-bottom: 22px; }
.back-link::before { content: "←"; margin-right: 8px; }
.back-link:hover { color: #965000; }
.panel, .form-page { border: 1px solid var(--bs-border-color); border-radius: var(--app-radius); background: white; box-shadow: 0 3px 12px #202a4205; }
.panel { overflow: hidden; }
.panel-body { padding: 28px; }
.panel-heading { padding: 22px 28px; border-bottom: 1px solid var(--bs-border-color); display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.panel-heading h2 { margin: 0; }
.form-page { max-width: 42rem; margin-inline: auto; padding: 32px; }
.auth-page { max-width: 28rem; margin-top: 24px; }
.editor-page { max-width: 50rem; }
.form-label { font-size: .86rem; color: #364159; font-weight: 600; margin-bottom: 7px; }
.form-control, .form-select { border-color: #cdd5e2; border-radius: 8px; padding: .68rem .85rem; color: #202a42; font-size: .9375rem; min-height: 45px; }
.form-control:focus, .form-select:focus { border-color: #c57a13; box-shadow: 0 0 0 3px #ffb6001c; }
.form-control[readonly] { background: #f7f8fc; color: #56617a; }
textarea.form-control { min-height: 112px; resize: vertical; }
.form-text { font-size: .79rem; color: var(--app-muted); }
.form-check-input { border-color: #a7b2c5; }
.form-check-input:checked { background-color: #a65b00; border-color: #a65b00; }
.form-check-input:focus { border-color: #c57a13; box-shadow: 0 0 0 3px #ffb6001c; }
.form-actions { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--bs-border-color); display: flex; flex-wrap: wrap; gap: 10px; }
.btn { --bs-btn-border-radius: 8px; --bs-btn-font-weight: 600; --bs-btn-font-size: .86rem; --bs-btn-padding-x: 1.05rem; --bs-btn-padding-y: .66rem; line-height: 1.4; }
.btn-sm { --bs-btn-padding-y: .42rem; --bs-btn-padding-x: .75rem; --bs-btn-font-size: .78rem; }
.btn-primary { --bs-btn-color: #18233a; --bs-btn-hover-color: #18233a; --bs-btn-active-color: #18233a; --bs-btn-disabled-color: #18233a; --bs-btn-bg: #ffb600; --bs-btn-border-color: #ffb600; --bs-btn-hover-bg: #efa700; --bs-btn-hover-border-color: #efa700; --bs-btn-active-bg: #dc9500; --bs-btn-active-border-color: #dc9500; --bs-btn-disabled-bg: #ffb600; --bs-btn-disabled-border-color: #ffb600; --bs-btn-focus-shadow-rgb: 255,182,0; box-shadow: 0 2px 4px #ffb6001a; }
.btn-outline-primary { --bs-btn-color: #965000; --bs-btn-border-color: #e3c792; --bs-btn-hover-bg: #fff2d1; --bs-btn-hover-color: #784000; --bs-btn-hover-border-color: #d3a14d; --bs-btn-active-bg: #ffe3a0; --bs-btn-active-color: #784000; --bs-btn-active-border-color: #d3a14d; }
.btn-outline-secondary { --bs-btn-color: #4d5b74; --bs-btn-border-color: #d7deea; --bs-btn-hover-bg: #f0f3f8; --bs-btn-hover-color: #202a42; --bs-btn-hover-border-color: #bec8d8; }
.btn-outline-danger { --bs-btn-color: #a03e4c; --bs-btn-border-color: #ead1d6; --bs-btn-hover-bg: #fff0f2; --bs-btn-hover-color: #882b38; --bs-btn-hover-border-color: #d9adb6; }
.btn-danger { --bs-btn-bg: #b13c50; --bs-btn-border-color: #b13c50; --bs-btn-hover-bg: #943043; --bs-btn-hover-border-color: #943043; }
:focus-visible { outline: 3px solid #b96a00; outline-offset: 3px; }
.table { --bs-table-color: #364159; --bs-table-bg: #fff; --bs-table-border-color: #edf0f5; margin-bottom: 0; font-size: .86rem; }
.table > :not(caption) > * > * { padding: 20px 24px; }
.table thead th { background: #f8f9fc; color: #65718a; font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; font-weight: 650; padding-block: 15px; white-space: nowrap; }
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover td { background: #fffcf5; }
.event-table { min-width: 840px; }
.participants-table { min-width: 1260px; }
.participant-topic { min-width: 15rem; max-width: 22rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.event-title { font-weight: 650; color: #202a42; text-decoration: none; }
.event-title:hover { color: #965000; text-decoration: underline; }
.cell-secondary { display: block; color: var(--app-muted); font-size: .78rem; margin-top: 3px; max-width: 300px; }
.status-badge { display: inline-flex; align-items: center; gap: 7px; border-radius: 6px; padding: 5px 9px; font-size: .73rem; font-weight: 650; line-height: 1.4; white-space: nowrap; }
.status-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.status-open { background: #e8f5ee; color: #216c4b; }
.status-full { background: #fff3da; color: #85601c; }
.status-closed { background: #eef0f5; color: #627087; }
.count-badge { color: #965000; background: #fff2d1; padding: 2px 9px; border-radius: 6px; font-size: .8rem; font-weight: 600; }
.event-meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin: 0; }
.event-meta dt { color: var(--app-muted); font-size: .75rem; font-weight: 500; margin-bottom: 5px; }
.event-meta dd { color: #202a42; margin-bottom: 0; font-size: .94rem; font-weight: 550; overflow-wrap: anywhere; }
.event-note { margin-top: 24px; padding: 18px 20px; border-radius: 10px; background: #fff7e5; border-left: 3px solid #e5ab41; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .88rem; }
.sharing-grid { display: grid; grid-template-columns: minmax(0,1fr) 190px; gap: 32px; align-items: center; }
.qr-block { display: flex; align-items: center; flex-direction: column; gap: 12px; }
.qr-code { border: 1px solid var(--bs-border-color); border-radius: 10px; padding: 8px; background: white; }
.qr-code svg { display: block; width: 144px; height: 144px; }
.registration-layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 32px; align-items: start; max-width: 1024px; margin: 10px auto; }
.event-summary { background: #202b49; color: #e0e6f4; padding: 34px; border-radius: var(--app-radius); border-top: 4px solid #ffb600; }
.event-summary .eyebrow { color: #ffd27a; font-size: .78rem; font-weight: 650; margin-bottom: 12px; }
.event-summary h1 { color: white; margin-bottom: 32px; overflow-wrap: anywhere; }
.event-summary .event-meta { grid-template-columns: 1fr; gap: 22px; }
.event-summary .event-meta dt { color: #b1bdd4; }
.event-summary .event-meta dd { color: white; font-weight: 500; }
.event-summary .event-note { background: #ffffff0a; border-left-color: #ffb600; color: #e2e7f3; padding: 16px; }
.registration-form { padding: 30px; }
.registration-form h2 { margin-bottom: 24px; }
.consent-block { border-top: 1px solid var(--bs-border-color); margin-top: 24px; padding-top: 22px; }
.consent-block .form-check-label { font-size: .875rem; line-height: 1.65; color: #536078; }
.alert { border-radius: 10px; font-size: .88rem; line-height: 1.6; }
.alert-success { background: #eaf6ef; border-color: #cce7d8; color: #216044; }
.alert-warning { background: #fff6e3; border-color: #eeddb4; color: #77541c; }
.alert-danger { background: #fdf0f2; border-color: #eccbd2; color: #91384a; }
.alert-secondary { background: #f1f3f8; border-color: #dce2ec; color: #536078; }
.empty-state { padding: 48px 28px; color: var(--app-muted); text-align: center; }
.legal-page { max-width: 50rem; }
.legal-page p { color: #536078; }
.skip-link { z-index: 10; background: white; padding: 12px; }
@media (max-width: 767.98px) {
    .container { padding-inline: 20px; }
    .app-nav { gap: 14px; min-height: 72px; }
    .app-brand { font-size: 1.05rem; }
    .app-main { padding-block: 26px 36px; }
    .app-nav-links { order: 3; width: 100%; }
    .form-page, .panel-body, .registration-form { padding: 24px; }
    .registration-layout { grid-template-columns: 1fr; gap: 20px; margin-top: 0; }
    .event-summary { padding: 26px; }
    .event-summary h1 { margin-bottom: 24px; }
    .event-summary .event-meta { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
    .event-summary .event-meta > div:last-child { grid-column: 1 / -1; }
    .event-meta { grid-template-columns: 1fr; gap: 18px; }
    .sharing-grid { grid-template-columns: 1fr; gap: 24px; }
    .qr-block { align-items: flex-start; }
    .panel-heading { padding: 20px 24px; }
    .page-heading { margin-bottom: 20px; }
    .app-footer { font-size: .75rem; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }

.catalog-list { list-style: none; }
.catalog-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 28px; border-color: var(--bs-border-color); }
.catalog-label { flex: 1 1 130px; min-width: 0; overflow-wrap: anywhere; font-size: .9rem; }
.catalog-move { width: 34px; padding-inline: 0; }
@media (max-width: 767.98px) { .catalog-item { padding-inline: 24px; } }
@media (max-width: 575.98px) {
    .catalog-label { flex-basis: 100%; }
    .catalog-item > div { margin-left: auto; }
}
