:root {
    color-scheme: light;
    --ink: var(--ue-text);
    --muted: var(--ue-text-muted);
    --primary: var(--ue-indigo);
    --primary-hover: var(--ue-indigo-hover);
    --soft: var(--ue-indigo-subtle);
    --line: var(--ue-border);
    --paper: var(--ue-surface);
    --page: var(--ue-page);
    --danger: var(--ue-danger);
    --radius: 16px;
    --shadow: 0 5px 20px rgba(24, 57, 72, .06);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
    margin: 0;
    background: var(--page);
    color: var(--ink);
    font: 16px/1.65 var(--ue-font-ar);
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}
h1, h2, h3 { line-height: 1.35; overflow-wrap: anywhere; }
h1 { margin: 0 0 .55rem; font-size: clamp(1.8rem, 5vw, 3rem); letter-spacing: -.035em; }
h2 { margin: 0 0 .75rem; font-size: 1.3rem; }
h3 { margin: 0 0 .4rem; font-size: 1.12rem; }
p { margin: .4rem 0 1rem; }
a { color: var(--primary); text-underline-offset: 3px; }
a:hover { color: var(--primary-hover); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { opacity: .6; cursor: wait; }
:focus-visible { outline: 3px solid #2b9c9a; outline-offset: 3px; }
bdi, .comment { overflow-wrap: anywhere; }
.container { width: min(1160px, calc(100% - 38px)); margin-inline: auto; }
.main-content { flex: 1; padding-block: 34px 55px; }
.skip { position: absolute; inset-inline-start: 1rem; inset-block-start: -100px; z-index: 5; background: white; padding: .5rem 1rem; }
.skip:focus { inset-block-start: .5rem; }
.actions form { margin: 0; }
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .53rem .9rem;
    border-radius: 10px;
    border: 1px solid transparent;
    line-height: 1.45;
    min-height: 42px;
    font-weight: 650;
    text-decoration: none;
    text-align: center;
}
.btn.primary { background: var(--primary); color: white; }
.btn.primary:hover { background: var(--primary-hover); }
.btn.secondary { color: var(--primary); background: var(--paper); border-color: var(--ue-border); }
.btn.secondary:hover { background: var(--soft); }
.btn.danger { color: var(--danger); background: #fff5f5; border-color: #f0cece; }
.btn.small { font-size: .86rem; min-height: 36px; padding: .35rem .65rem; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.actions.centered { justify-content: center; }
.panel { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(17px, 3vw, 26px); box-shadow: var(--shadow); margin-block-end: 18px; }
.page-head, .section-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; }
.page-head { margin-block-end: 22px; }
.section-head { margin-block-end: .65rem; }
.section-head p:last-child, .page-head p:last-child, .panel p:last-child { margin-block-end: 0; }
.eyebrow { margin: 0 0 .45rem; font-size: .85rem; font-weight: 700; color: var(--primary); }
.muted { color: var(--muted); }
.filter-grid { display: grid; gap: 13px; grid-template-columns: 1.4fr 1fr 1fr auto; align-items: end; }
.filter-grid.compact { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.form-grid { display: grid; gap: 15px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-stack { display: grid; gap: 14px; }
.form-stack > .btn { justify-self: start; }
.span-all { grid-column: 1 / -1; }
label { display: grid; gap: 5px; align-content: start; font-size: .94rem; font-weight: 600; }
label small { color: var(--muted); font-weight: 400; }
input, textarea, select {
    width: 100%;
    min-height: 43px;
    padding: .55rem .7rem;
    border: 1px solid #b7c8d1;
    border-radius: 9px;
    color: var(--ink);
    background: white;
    font-weight: 400;
}
textarea { resize: vertical; }
input[type="file"] { padding: .4rem; }
input[type="datetime-local"] { direction: ltr; }
.auth-panel, .ticket-panel, .scan-panel { max-width: 580px; margin-inline: auto; }
.auth-panel > form { margin-block: 20px; }
.notice { padding: 12px 16px; margin-block-end: 18px; border-radius: 11px; border: 1px solid; }
.notice.success { background: var(--soft); color: #0d5448; border-color: #b7ded4; }
.notice.error { background: #fff3f1; color: #842b24; border-color: #f1c7c1; }
.notice ul { margin: .25rem 0; padding-inline-start: 1.25rem; }
.metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 12px; margin-block-end: 18px; }
.metric { background: white; border-radius: 13px; border: 1px solid var(--line); padding: 15px; }
.metric span { color: var(--muted); font-size: .88rem; }
.metric strong { display: block; font-size: 1.65rem; line-height: 1.3; margin-block-start: 6px; }
.event-card { background: white; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.section-head h2 a { color: var(--ink); text-decoration: none; }
.meta { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; color: var(--muted); font-size: .88rem; }
.badge { display: inline-flex; padding: .19rem .6rem; border-radius: 30px; font-size: .81rem; font-weight: 700; background: #e9edf1; color: #405066; }
.badge.published { color: #065c51; background: #d9f1e9; }
.badge.completed { color: #234b7a; background: #e4eefc; }
.badge.cancelled { color: #902723; background: #f9e5e3; }
.key-values { margin: .65rem 0 1rem; }
.key-values > div { display: flex; flex-wrap: wrap; gap: .3rem .65rem; }
.key-values dt { color: var(--muted); font-size: .88rem; }
.key-values dd { margin: 0; overflow-wrap: anywhere; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(205px, 300px); gap: 18px; align-items: start; }
.detail-cover { width: 100%; max-height: 290px; object-fit: cover; border-radius: 12px; margin-block-end: 12px; }
.detail-panel h1 { margin-block-start: .55rem; }
.seat-count { font-size: 2.25rem; line-height: 1; display: block; margin-block-end: 12px; }
.prose-text { white-space: pre-line; overflow-wrap: anywhere; }
.session-list { display: grid; gap: 12px; }
.session-list article { border: 1px solid var(--line); border-radius: 11px; padding: 13px 16px; }
.session-list article p { margin: .2rem 0; overflow-wrap: anywhere; }
.session-list .actions { margin-block-start: .5rem; }
.back-link { display: inline-block; margin-block-end: 14px; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; text-align: start; min-width: 520px; }
th, td { padding: 10px 12px; text-align: start; border-block-end: 1px solid var(--line); vertical-align: top; }
th { background: var(--ue-page); color: var(--muted); font-size: .86rem; }
tbody tr:last-child td { border-block-end: 0; }
td small { color: var(--muted); }
td .comment { font-size: .85rem; margin: .35rem 0 0; max-width: 240px; }
.pagination { display: flex; align-items: center; justify-content: center; gap: .9rem; padding-block-start: 14px; color: var(--muted); font-size: .9rem; }
.pagination a, .pagination .disabled { padding: .25rem .6rem; border: 1px solid var(--line); border-radius: 7px; text-decoration: none; }
.pagination .disabled { opacity: .65; }
.empty { grid-column: 1 / -1; text-align: center; padding-block: 36px; }
.empty p { color: var(--muted); }
dialog { width: min(610px, calc(100% - 28px)); max-height: 85vh; overflow: auto; background: white; color: var(--ink); padding: clamp(15px, 4vw, 25px); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 20px 65px rgba(0, 0, 0, .2); }
dialog::backdrop { background: rgba(18, 36, 48, .57); }
.rating-box { border-block-start: 1px solid var(--line); margin-block-start: 14px; padding-block-start: 12px; }
.rating-box summary { cursor: pointer; font-weight: 700; color: var(--primary); }
.rating-box form { margin-block-start: 13px; }
.scan-panel video { display: block; width: 100%; max-height: 340px; margin-block: 12px; background: #152833; border-radius: 10px; }
.ticket-panel, .certificate { text-align: center; }
.ticket-panel input { max-width: 100%; font-family: Consolas, monospace; font-size: .85rem; }
.ticket-panel .actions { margin-block-start: .75rem; }
.qr-code { display: block; width: min(245px, 90%); aspect-ratio: 1; margin: 16px auto; border: 1px solid var(--line); padding: 10px; }
.certificate { padding-block: 40px; border: 2px solid #a8d3cb; }
.certificate h2 { font-size: clamp(1.5rem, 5vw, 2.3rem); color: var(--primary); }
@media (max-width: 850px) {
    .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
    .container { width: calc(100% - 24px); }
    .main-content { padding-block: 23px 34px; }
    .form-grid, .detail-grid, .filter-grid, .filter-grid.compact { grid-template-columns: minmax(0, 1fr); }
    .detail-grid { gap: 0; }
    .page-head { flex-direction: column; }
    .section-head { flex-wrap: wrap; }
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.auth-logo { display: block; width: 170px; max-width: 100%; margin: 0 auto 1rem; }
.auth-panel form { margin: 1rem 0; }
.ue-student-content .panel { margin-block-end: 16px; }
.ue-dual-grid .panel { align-self: start; }
.edit-box { border: 1px solid var(--ue-border); border-radius: 12px; padding: 12px; margin-block-start: 12px; }
.edit-box summary { cursor: pointer; color: var(--primary); font-weight: 700; }
.edit-box form { margin-block-start: 12px; }
#qr-reader { margin-block: 16px; overflow: hidden; border-radius: 12px; }
#qr-reader video, #qr-reader canvas { max-width: 100%; }
[data-scan-file] { margin-block-end: 12px; }
[data-copy] { margin-block-start: 12px; }
.certificate { border: 3px double var(--ue-indigo); }
.certificate h2 { color: var(--ue-indigo-active); margin: 20px 0; }
.badge.closed { background: var(--ue-warning-subtle); color: var(--ue-warning); }
.ue-student-topbar { position: relative; }
@media (max-width: 991px) {
    .ue-student-sidebar { visibility: hidden; }
    .ue-student-sidebar.is-open { visibility: visible; }
    .ue-menu-toggle { display: inline-flex; align-items: center; white-space: nowrap; }
    .ue-student-sidebar.is-open + .ue-student-body-container .ue-menu-toggle { position: fixed; z-index: 9; inset-block-start: 12px; inset-inline-start: min(278px, 73vw); background: var(--ue-surface); }
}
@media (max-width: 430px) {
    .ue-student-sidebar { width: min(270px, 72vw); }
}
@media print {
    @page { size: A4 landscape; margin: 15mm; }
    .ue-student-sidebar, .ue-student-topbar, .ue-student-footer, .skip, .notice, .no-print { display: none !important; }
    .ue-student-shell, .ue-student-body-container, .ue-student-content { display: block !important; width: 100%; min-height: 0; height: auto; padding: 0; margin: 0; }
    body { display: block; min-height: 0 !important; height: auto; background: #fff !important; }
    .certificate { margin: 0; padding: 22mm 10mm; box-shadow: none; break-inside: avoid; print-color-adjust: exact; }
}

/* Native forms and navigation fitted to the supplied UniEvents components. */
.public-main { flex: 1; }
.public-notice { margin-block-start: 18px; }
.ue-brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.ue-brand img { width: 170px; height: auto; }
.ue-navlinks a { text-decoration: none; }
.ue-hero-grid { min-height: 480px; padding-block: 52px; }
.ue-hero-copy h1 { letter-spacing: 0; }
.ue-hero-copy .btn { padding-inline: 20px; min-height: 48px; }
.ue-auth-panel .auth-submit { width: 100%; }
.ue-auth-story .ue-eyebrow { margin-block-start: 20px; }
.catalog-section { padding-block: 34px 52px; }
.ue-student-content .catalog-section { padding-block: 0; }
.dashboard-catalog { margin-block: 20px 26px; }
.event-card { height: 100%; }
.ue-welcome h2 { color: #fff; }
.ue-welcome .welcome-link { flex-shrink: 0; color: #312e81; border: 0; background: #fff; }
.ue-welcome .welcome-link:hover { background: #eef2ff; }
.ue-stat-grid.metric-grid { gap: 17px; grid-template-columns: repeat(auto-fit, minmax(126px, 1fr)); margin-block: 22px; }
.ue-stat-grid .ue-stat-card { min-height: 112px; }
.ue-stat-card small { font-size: .92rem; }
.ue-stat-card strong { font-size: 29px; }
.ue-student-content .page-head h1 { font-size: clamp(25px, 2.4vw, 38px); font-weight: 800; letter-spacing: 0; }
.notice.info { background: var(--ue-info-subtle); color: var(--ue-info); border-color: var(--ue-border); }
.role-badge { background: var(--ue-indigo-subtle); color: var(--ue-indigo-hover); }
.account-filter { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
.ue-toptools { margin-inline-start: auto; }
@media (max-width: 991px) {
    .ue-hero-grid { grid-template-columns: 1fr; gap: 10px; padding-block: 40px; }
    .ue-hero-art { height: 300px; }
    .ue-auth-frame { grid-template-columns: 1fr; max-width: 620px; }
    .ue-auth-story { display: none; }
    .ue-auth-panel { padding: 34px; }
    .ue-navlinks { display: none; }
}
@media (max-width: 640px) {
    .ue-hero-grid { padding-block: 30px; }
    .ue-hero-copy h1 { font-size: clamp(28px, 8vw, 42px); }
    .ue-hero-art { height: 235px; transform: scale(.75); }
    .ue-hero-actions { flex-wrap: wrap; }
    .ue-auth-bg { padding-block: 20px 42px; }
    .ue-auth-panel { padding: 27px 20px; }
    .ue-nav-inner { gap: 6px; }
    .ue-nav-actions { gap: 5px; }
    .ue-brand img { width: 110px; }
    .ue-stat-grid.metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ue-stat-grid .ue-stat-card { min-height: 96px; }
    .account-filter { grid-template-columns: 1fr; }
}
@media print { .ue-navbar { display: none !important; } }

/* BEGIN UniEvents public responsive patch v3 */
.ue-public-layout {
    --ue-public-gutter: clamp(.75rem, 3vw, 2rem);
    --ue-public-gap: clamp(.85rem, 2vw, 1.5rem);
}
.ue-public-layout .container {
    width: min(77.5rem, calc(100% - 2 * var(--ue-public-gutter)));
    min-width: 0;
}
.ue-public-layout .ue-navbar { min-height: 0; }
.ue-public-layout .ue-nav-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0 .65rem;
    min-height: 4rem;
    align-items: center;
    padding-block: .35rem;
}
.ue-public-layout .ue-brand {
    justify-self: start;
    min-width: 0;
    max-width: 100%;
}
.ue-public-layout .ue-brand img {
    display: block;
    width: clamp(8.15rem, 29vw, 10.5rem);
    max-width: 100%;
    height: auto;
}
.ue-public-layout .ue-guest-toggle {
    display: none;
    min-height: 44px;
    white-space: nowrap;
}
.ue-public-layout .ue-menu-ready .ue-guest-toggle:not([hidden]) { display: inline-flex; }
.ue-public-layout .ue-guest-links {
    display: grid;
    grid-column: 1 / -1;
    min-width: 0;
    gap: .4rem;
    border-block-start: 1px solid var(--ue-border);
    padding-block: .35rem .5rem;
}
.ue-public-layout .ue-menu-ready:not(.ue-menu-open) .ue-guest-links { display: none; }
.ue-public-layout .ue-navlinks,
.ue-public-layout .ue-nav-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
}
.ue-public-layout .ue-navlinks a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-inline: .55rem;
    color: var(--ue-text-muted);
    text-decoration: none;
    border-radius: var(--ue-radius-sm);
}
.ue-public-layout .ue-navlinks a:hover { background: var(--ue-indigo-subtle); color: var(--ue-indigo); }
.ue-public-layout .ue-nav-actions .btn { min-height: 44px; white-space: nowrap; }
.ue-public-layout :is(a, button, input, select):focus-visible {
    outline: 2px solid var(--ue-focus);
    outline-offset: 2px;
}

.ue-homepage .ue-hero-grid {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(1.1rem, 4vw, 3rem);
    padding-block: clamp(1.65rem, 4vw, 3.5rem);
}
.ue-homepage .ue-hero-copy { min-width: 0; overflow-wrap: anywhere; }
.ue-homepage .ue-hero-copy h1 {
    margin: .7rem 0;
    font-size: clamp(1.8rem, 1.32rem + 2.05vw, 3.4rem);
    line-height: 1.18;
    letter-spacing: 0;
}
.ue-homepage .ue-hero-copy > p {
    max-width: 43ch;
    margin: 0;
    font-size: clamp(.98rem, .93rem + .3vw, 1.1rem);
    line-height: 1.7;
}
.ue-homepage .ue-hero-actions,
.ue-homepage .ue-hero-support {
    flex-wrap: wrap;
    gap: .55rem .75rem;
    margin-block-start: 1rem;
}
.ue-homepage .ue-hero-actions .btn {
    flex: 1 1 auto;
    min-height: 44px;
    padding-inline: clamp(.65rem, 2vw, 1.25rem);
    max-width: 100%;
    overflow-wrap: anywhere;
}
.ue-homepage .ue-hero-art {
    --ue-gate-size: clamp(8rem, 35vw, 13rem);
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    width: min(100%, 25rem);
    height: auto;
    margin-inline: auto;
    padding-block: .25rem .5rem;
    transform: none;
}
.ue-homepage .ue-gate {
    position: relative;
    grid-column: 1 / -1;
    width: var(--ue-gate-size);
    height: var(--ue-gate-size);
    gap: 5%;
    transform: none;
}
.ue-homepage :is(.ue-gate-left, .ue-gate-right) { width: 34%; height: 83%; border-radius: 40% 40% 22% 22% / 20% 20% 11% 11%; }
.ue-homepage .ue-gate-middle { width: 32%; height: 62%; border-width: clamp(8px, 1.5vw, 16px); border-bottom: 0; }
.ue-homepage .ue-hero-art .ue-orbit {
    inset: 0 0 auto;
    margin-inline: auto;
    width: calc(var(--ue-gate-size) * 1.1);
    height: auto;
    aspect-ratio: 1.15;
}
.ue-homepage .ue-hero-art .ue-orbit-two { aspect-ratio: 1.45; }
.ue-homepage .ue-floating-card {
    position: relative;
    inset: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    min-width: 0;
    width: 100%;
    padding: .4rem .3rem;
    font-size: clamp(.76rem, .7rem + .3vw, .89rem);
    line-height: 1.35;
    text-align: center;
    overflow-wrap: anywhere;
}
.ue-homepage .ue-float-icon { font-size: 1rem; margin: 0; }

.ue-homepage #events { padding-block: clamp(1.4rem, 4vw, 3rem) clamp(2rem, 5vw, 4rem); }
.ue-homepage #events .page-head { margin-block-end: 1rem; }
.ue-homepage #events .page-head h1 { margin: 0; font-size: clamp(1.55rem, 1.28rem + 1.1vw, 2.45rem); }
.ue-homepage #events .filter-grid {
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: .75rem;
    padding: clamp(.75rem, 2vw, 1.35rem);
    margin-block-end: var(--ue-public-gap);
}
.ue-homepage #events .filter-grid :is(label, input, select),
.ue-auth-page .ue-auth-panel :is(form, label, input) { min-width: 0; max-width: 100%; }
.ue-homepage #events .filter-grid :is(input, select, .btn),
.ue-auth-page .ue-auth-panel :is(input, .btn) { min-height: 44px; }
.ue-homepage #events .filter-grid .actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
}
.ue-homepage #events .filter-grid .btn { white-space: nowrap; }

.ue-homepage #events .ue-event-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ue-public-gap);
    align-items: stretch;
}
.ue-homepage #events .ue-polished-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    overflow: hidden;
    background: var(--ue-surface);
    border: 1px solid var(--ue-border);
    border-radius: var(--ue-radius-lg);
    box-shadow: var(--ue-shadow-sm);
}
.ue-homepage #events .ue-polished-media {
    position: relative;
    display: block;
    flex: none;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--ue-indigo-subtle);
}
.ue-homepage #events .ue-polished-media img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ue-homepage #events .ue-polished-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    gap: .7rem;
    padding: clamp(.85rem, 1.65vw, 1.3rem);
    overflow-wrap: anywhere;
}
.ue-homepage #events .ue-polished-chips { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem; }
.ue-homepage #events :is(.ue-polished-category, .ue-polished-status) {
    display: inline-flex;
    max-width: 100%;
    padding: .2rem .65rem;
    border-radius: var(--ue-radius-pill);
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.4;
}
.ue-homepage #events :is(.ue-polished-category, .ue-polished-status.is-open) {
    background: var(--ue-teal-subtle);
    color: var(--ue-teal-strong);
}
.ue-homepage #events .ue-polished-status:not(.is-open) { background: var(--ue-surface-alt); color: var(--ue-text-muted); }
.ue-homepage #events .ue-polished-content h3 {
    min-height: 0;
    margin: 0;
    font-size: clamp(1.05rem, .97rem + .35vw, 1.28rem);
    line-height: 1.35;
}
.ue-homepage #events .ue-polished-content h3 a { color: var(--ue-text); text-decoration: none; }
.ue-homepage #events .ue-polished-content h3 a:hover { color: var(--ue-indigo); text-decoration: underline; }
.ue-homepage #events .ue-polished-teaser { min-height: 0; margin: 0; font-size: .92rem; color: var(--ue-text-muted); }
.ue-homepage #events .ue-polished-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .2rem;
    margin-block: auto 0;
    padding-block-start: .55rem;
    border-block-start: 1px solid var(--ue-border);
    color: var(--ue-text-muted);
    font-size: .85rem;
}
.ue-homepage #events .ue-polished-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    min-height: 44px;
    margin: 0;
    padding: .45rem .7rem;
    border-radius: var(--ue-radius-sm);
    background: var(--ue-indigo);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}
.ue-homepage #events .ue-polished-cta:hover { background: var(--ue-indigo-hover); }
.ue-homepage #events .empty { grid-column: 1 / -1; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .ue-homepage #events .ue-polished-card { transition: box-shadow .2s, transform .2s; }
    .ue-homepage #events .ue-polished-card:hover { transform: translateY(-2px); box-shadow: var(--ue-shadow-md); }
}

.ue-auth-page .ue-auth-bg { min-height: 0; padding-block: clamp(1rem, 4vw, 3.1rem); }
.ue-auth-page .ue-auth-frame { grid-template-columns: minmax(0, 1fr); max-width: 33rem; }
.ue-auth-page .ue-auth-story { display: none; min-height: 0; padding: clamp(1.5rem, 4vw, 3.5rem); }
.ue-auth-page .ue-auth-panel { min-width: 0; padding: clamp(1.1rem, 4vw, 3.2rem); overflow-wrap: anywhere; }
.ue-auth-page .ue-auth-panel h1 { font-size: clamp(1.65rem, 1.35rem + 1.3vw, 2.5rem); }
.ue-auth-page .ue-auth-panel input { font-size: 1rem; }
.ue-auth-page .ue-auth-panel .auth-submit { white-space: normal; }

.ue-homepage .ue-home-footer {
    border-block-start: 3px solid var(--ue-indigo);
    border-image: linear-gradient(90deg, var(--ue-teal), var(--ue-indigo)) 1;
    background: linear-gradient(115deg, var(--ue-indigo-subtle), var(--ue-surface) 62%);
    color: var(--ue-text);
    overflow-wrap: anywhere;
}
.ue-homepage .ue-home-footer-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ue-public-gap);
    padding-block: clamp(1.3rem, 3vw, 2.5rem) 1.15rem;
}
.ue-homepage .ue-home-footer-brand { grid-column: 1 / -1; min-width: 0; }
.ue-homepage .ue-home-footer-brand a { display: inline-block; width: 11.25rem; max-width: 100%; }
.ue-homepage .ue-home-footer-brand img { display: block; width: 100%; height: auto; }
.ue-homepage .ue-home-footer-brand p { max-width: 37ch; margin: .35rem 0 0; color: var(--ue-text-muted); font-size: .95rem; line-height: 1.7; }
.ue-homepage .ue-home-footer-nav { min-width: 0; }
.ue-homepage .ue-home-footer-nav h2 { margin: .35rem 0; font-size: 1.02rem; font-weight: 800; }
.ue-homepage .ue-home-footer-nav ul { margin: 0; padding: 0; list-style: none; }
.ue-homepage :is(.ue-home-footer-nav a, .ue-home-footer-top) {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--ue-text-muted);
    font-size: .94rem;
    font-weight: 600;
    text-decoration: none;
}
.ue-homepage :is(.ue-home-footer-nav a, .ue-home-footer-top):hover { color: var(--ue-indigo-hover); text-decoration: underline; }
.ue-homepage .ue-home-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .4rem .8rem;
    padding-block: .45rem;
    border-block-start: 1px solid var(--ue-border);
    color: var(--ue-text-muted);
}
.ue-homepage .ue-home-footer-top { gap: .4rem; color: var(--ue-indigo-active); }
.ue-homepage .ue-home-footer-top span {
    display: grid;
    place-items: center;
    flex: 0 0 28px;
    height: 28px;
    border: 1px solid var(--ue-border);
    border-radius: var(--ue-radius-pill);
    background: var(--ue-surface);
}

@media (min-width: 640px) {
    .ue-homepage #events :is(.filter-grid, .ue-event-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ue-homepage .ue-home-footer-grid { grid-template-columns: minmax(0, 1.65fr) repeat(2, minmax(0, 1fr)); }
    .ue-homepage .ue-home-footer-brand { grid-column: auto; }
}
@media (min-width: 760px) {
    .ue-homepage .ue-hero-grid { grid-template-columns: minmax(0, 1.22fr) minmax(0, 1fr); }
    .ue-homepage .ue-hero-art { --ue-gate-size: clamp(9.5rem, 22vw, 15rem); }
    .ue-homepage .ue-hero-actions .btn { flex: 0 1 auto; }
}
@media (min-width: 800px) {
    .ue-public-layout .ue-nav-inner {
        grid-template-columns: auto minmax(0, 1fr);
        min-height: 4.35rem;
        gap: var(--ue-public-gap);
    }
    .ue-public-layout .ue-menu-ready .ue-guest-toggle:not([hidden]) { display: none; }
    .ue-public-layout .ue-guest-links,
    .ue-public-layout .ue-menu-ready:not(.ue-menu-open) .ue-guest-links {
        display: grid;
        grid-column: auto;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        padding: 0;
        border: 0;
        gap: var(--ue-public-gap);
    }
    .ue-public-layout .ue-navlinks { justify-content: center; }
}
@media (min-width: 1000px) {
    .ue-homepage #events .filter-grid { grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)) auto; }
    .ue-auth-page .ue-auth-frame { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); max-width: 67rem; }
    .ue-auth-page .ue-auth-story { display: flex; }
}
@media (min-width: 1120px) {
    .ue-homepage #events .ue-event-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* END UniEvents public responsive patch v3 */


/* BEGIN UniEvents event details patch v1 */
.ue-event-detail {
    container: ue-event-detail / inline-size;
    min-width: 0;
    color: var(--ue-text);
    overflow-wrap: anywhere;
    --ue-detail-gap: clamp(.75rem, 2vw, 1.35rem);
    --ue-detail-padding: clamp(.85rem, 2.3vw, 1.65rem);
}
.ue-event-detail .panel {
    min-width: 0;
    padding: var(--ue-detail-padding);
    margin: 0;
}
.ue-event-detail .ue-detail-back {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 44px;
    margin-block-end: .45rem;
    color: var(--ue-indigo-hover);
    font-weight: 700;
    text-decoration: none;
}
.ue-event-detail .ue-detail-back:hover { text-decoration: underline; }
.ue-event-detail .ue-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: var(--ue-detail-gap);
    margin-block-end: var(--ue-detail-gap);
    background: linear-gradient(135deg, var(--ue-surface) 45%, var(--ue-indigo-subtle));
}
.ue-event-detail .ue-detail-summary { min-width: 0; }
.ue-event-detail h1 {
    margin: .65rem 0 .85rem;
    font-size: clamp(1.6rem, 1.26rem + 1.45vw, 2.75rem);
    line-height: 1.24;
    letter-spacing: 0;
}
.ue-event-detail h2 {
    margin: 0 0 .65rem;
    font-size: clamp(1.12rem, 1.02rem + .4vw, 1.4rem);
}
.ue-event-detail h3 { margin: 0; font-size: 1.07rem; }
.ue-event-detail .ue-detail-tags,
.ue-event-detail .ue-detail-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .75rem;
}
.ue-event-detail .ue-detail-section-head { justify-content: space-between; }
.ue-event-detail .ue-detail-section-head > h2,
.ue-event-detail .ue-detail-section-head > h3 { margin: 0; }
.ue-event-detail :is(.ue-detail-category, .ue-detail-state) {
    display: inline-block;
    max-width: 100%;
    padding: .25rem .65rem;
    border-radius: var(--ue-radius-pill);
    background: var(--ue-indigo-subtle);
    color: var(--ue-indigo-active);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.4;
}
.ue-event-detail .ue-detail-state.open,
.ue-event-detail .ue-detail-confirmed { background: var(--ue-teal-subtle); color: var(--ue-teal-strong); }
.ue-event-detail .ue-detail-state.full,
.ue-event-detail .ue-detail-state.closed { background: var(--ue-warning-subtle); color: var(--ue-warning); }
.ue-event-detail .ue-detail-state.past { background: var(--ue-surface-alt); color: var(--ue-text-muted); }
.ue-event-detail .ue-detail-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem .65rem;
    margin: 0;
}
.ue-event-detail .ue-detail-facts > div {
    min-width: 0;
    padding: .48rem .65rem;
    border: 1px solid var(--ue-border);
    border-radius: var(--ue-radius-sm);
    background: var(--ue-surface);
}
.ue-event-detail .ue-detail-facts dt,
.ue-event-detail .ue-detail-timezone { color: var(--ue-text-muted); font-size: .8rem; }
.ue-event-detail .ue-detail-facts dd { margin: .15rem 0 0; font-weight: 700; font-size: .91rem; }
.ue-event-detail .ue-detail-facts time { display: inline-block; max-width: 100%; font-variant-numeric: tabular-nums; }
.ue-event-detail .ue-detail-timezone { display: block; margin-block-start: .5rem; }
.ue-event-detail .ue-detail-image {
    position: relative;
    width: 100%;
    min-width: 0;
    aspect-ratio: 16 / 8;
    max-height: 16rem;
    overflow: hidden;
    border-radius: var(--ue-radius-md);
    background: var(--ue-indigo-subtle);
}
.ue-event-detail .ue-detail-image img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; }
.ue-event-detail :is(.ue-detail-layout, .ue-detail-content) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ue-detail-gap);
    min-width: 0;
}
.ue-event-detail .ue-detail-booking { align-self: start; border-block-start: 3px solid var(--ue-indigo); }
.ue-event-detail .ue-detail-seats { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem; margin: .3rem 0 .75rem; color: var(--ue-text-muted); }
.ue-event-detail .ue-detail-seats strong { color: var(--ue-indigo-active); font-size: 1.85rem; line-height: 1.15; }
.ue-event-detail .ue-detail-confirmed { padding: .55rem .7rem; border-radius: var(--ue-radius-sm); font-weight: 700; }
.ue-event-detail :is(.ue-detail-muted, .ue-detail-empty) { color: var(--ue-text-muted); }
.ue-event-detail .ue-detail-empty { background: var(--ue-surface-alt); padding: .75rem; margin: .75rem 0 0; border-radius: var(--ue-radius-sm); }
.ue-event-detail .ue-detail-booking p:last-child { margin-block-end: 0; }
.ue-event-detail .ue-detail-booking .btn { width: 100%; }
.ue-event-detail .btn { min-height: 44px; max-width: 100%; white-space: normal; }
.ue-event-detail :is(.ue-detail-section, .ue-detail-session) .prose-text { margin: .55rem 0; line-height: 1.75; }
.ue-event-detail .ue-detail-extra { border-block-start: 1px solid var(--ue-border); padding-block-start: .75rem; margin-block-start: .75rem; }
.ue-event-detail :is(.ue-detail-speakers, .ue-detail-sessions) { list-style: none; padding: 0; margin: 0; }
.ue-event-detail .ue-detail-speakers { display: flex; flex-wrap: wrap; gap: .45rem; }
.ue-event-detail .ue-detail-speakers li { padding: .33rem .7rem; max-width: 100%; border: 1px solid var(--ue-border); border-radius: var(--ue-radius-sm); font-weight: 700; }
.ue-event-detail .ue-detail-sessions { display: grid; gap: .65rem; margin-block-start: .75rem; }
.ue-event-detail .ue-detail-session {
    min-width: 0;
    padding: clamp(.65rem, 2vw, 1rem);
    background: var(--ue-surface-alt);
    border: 1px solid var(--ue-border);
    border-inline-start: 3px solid var(--ue-teal);
    border-radius: var(--ue-radius-md);
}
.ue-event-detail .ue-detail-session :is(.ue-detail-facts, form) { margin-block-start: .65rem; }
.ue-event-detail .ue-detail-conflict { background: var(--ue-warning-subtle); color: var(--ue-warning); padding: .55rem .7rem; margin-block-start: .65rem; border-radius: var(--ue-radius-sm); }
.ue-event-detail .ue-detail-conflict p { margin: 0; }
.ue-event-detail .ue-detail-conflict a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; font-weight: 700; }
.ue-event-detail :is(a, button):focus-visible { outline: 2px solid var(--ue-focus); outline-offset: 3px; }
@container ue-event-detail (min-width: 42rem) {
    .ue-event-detail .ue-detail-hero { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: center; }
    .ue-event-detail .ue-detail-image { aspect-ratio: 16 / 10; }
}
@container ue-event-detail (min-width: 50rem) {
    .ue-event-detail .ue-detail-layout { grid-template-columns: minmax(0, 1fr) minmax(13.5rem, 27%); }
    .ue-event-detail .ue-detail-content { grid-column: 1; grid-row: 1; }
    .ue-event-detail .ue-detail-booking { grid-column: 2; grid-row: 1; }
    .ue-event-detail .ue-detail-session .ue-detail-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
body:has(.ue-event-detail) .ue-student-footer {
    padding: clamp(.85rem, 2vw, 1.35rem);
    border-block-start: 1px solid var(--ue-border);
    background: var(--ue-surface);
    overflow-wrap: anywhere;
}
@media (max-width: 799px) {
    body:has(.ue-event-detail) .ue-navbar:not(:has([data-ue-guest-toggle])) .ue-nav-inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-items: center;
        gap: .3rem;
        padding-block: .5rem;
    }
    body:has(.ue-event-detail) .ue-navbar:not(:has([data-ue-guest-toggle])) .ue-brand img {
        width: min(10rem, 100%);
        height: auto;
    }
    body:has(.ue-event-detail) .ue-navbar:not(:has([data-ue-guest-toggle])) :is(.ue-navlinks, .ue-nav-actions) {
        display: flex;
        flex-wrap: wrap;
        gap: .25rem .6rem;
    }
    body:has(.ue-event-detail) .ue-navbar:not(:has([data-ue-guest-toggle])) :is(.ue-navlinks a, .ue-nav-actions .btn) {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }
}
/* END UniEvents event details patch v1 */


/* BEGIN UniEvents admin dashboard patch v1 */
.ue-admin-dashboard {
    container: ue-admin-overview / inline-size;
    min-width: 0;
    color: var(--ue-text);
    overflow-wrap: anywhere;
    --ue-ad-gap: clamp(.75rem, 1.8vw, 1.25rem);
    --ue-ad-panel: clamp(.85rem, 2vw, 1.4rem);
}
.ue-admin-dashboard > section, .ue-admin-dashboard > .ue-ad-reports { margin-block: var(--ue-ad-gap); }
.ue-admin-dashboard .panel { min-width: 0; margin: 0; padding: var(--ue-ad-panel); }
.ue-admin-dashboard > .panel { margin-block: var(--ue-ad-gap); }
.ue-admin-dashboard h2, .ue-admin-dashboard h3 { margin: 0; }
.ue-admin-dashboard .ue-ad-kpis {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ue-ad-gap);
}
.ue-admin-dashboard .ue-ad-kpi {
    min-width: 0;
    min-height: 0;
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    margin: 0;
    padding: .75rem;
}
.ue-admin-dashboard .ue-ad-kpi strong { display: block; margin-block-start: .2rem; font-size: clamp(1.4rem, 2.4vw, 1.85rem); line-height: 1.2; }
.ue-admin-dashboard .ue-ad-kpi-caption { display: block; }
.ue-admin-dashboard .ue-ad-kpi:hover { box-shadow: var(--ue-shadow-md); }
.ue-admin-dashboard .ue-ad-kpi small { font-size: .84rem; color: var(--ue-text-muted); }
.ue-admin-dashboard .ue-ad-icon {
    display: grid;
    flex: 0 0 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: var(--ue-radius-sm);
    background: var(--ue-indigo-subtle);
    color: var(--ue-indigo-active);
}
.ue-admin-dashboard .ue-ad-kpi:nth-child(even) .ue-ad-icon { background: var(--ue-teal-subtle); color: var(--ue-teal-strong); }
.ue-admin-dashboard .ue-ad-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ue-ad-gap); }
.ue-admin-dashboard .ue-ad-section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    flex-wrap: wrap;
    gap: .75rem;
    margin-block-end: var(--ue-ad-gap);
}
.ue-admin-dashboard .ue-ad-section-head p, .ue-admin-dashboard .ue-ad-note { margin: .25rem 0; color: var(--ue-text-muted); font-size: .88rem; }
.ue-admin-dashboard .ue-ad-filter { display: grid; gap: .22rem; max-width: 100%; }
.ue-admin-dashboard .ue-ad-filter > div { display: flex; gap: .4rem; align-items: stretch; }
.ue-admin-dashboard .ue-ad-filter select { width: auto; max-width: 100%; min-width: 0; min-height: 44px; }
.ue-admin-dashboard .ue-ad-filter button { flex: 0 0 auto; min-height: 44px; white-space: nowrap; }
.ue-admin-dashboard .ue-ad-chart > h3 { font-size: 1.13rem; }
.ue-admin-dashboard .ue-ad-english { display: inline-block; color: var(--ue-indigo-active); font-size: .76rem; font-weight: 700; }
.ue-admin-dashboard .ue-ad-empty {
    margin: .75rem 0 0;
    padding: .85rem;
    background: var(--ue-surface-alt);
    color: var(--ue-text-muted);
    border-radius: var(--ue-radius-sm);
}
.ue-admin-dashboard .ue-ad-line { display: block; width: 100%; height: auto; margin-block-start: .55rem; direction: ltr; }
.ue-admin-dashboard .ue-ad-line line { stroke: var(--ue-border); }
.ue-admin-dashboard .ue-ad-line text { font-size: 14px; fill: var(--ue-text-muted); font-variant-numeric: tabular-nums; }
.ue-admin-dashboard .ue-ad-line polyline { stroke: var(--ue-indigo); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; fill: none; }
.ue-admin-dashboard .ue-ad-line circle { fill: var(--ue-surface); stroke: var(--ue-indigo); stroke-width: 2; cursor: pointer; }
.ue-admin-dashboard .ue-ad-line circle:is(:hover, :focus-visible) { r: 5.5; fill: var(--ue-indigo); stroke: var(--ue-indigo-active); outline: none; }
.ue-admin-dashboard .ue-ad-readout { min-height: 2.4rem; margin: .6rem 0 0; padding: .4rem .65rem; background: var(--ue-indigo-subtle); color: var(--ue-indigo-active); border-radius: var(--ue-radius-sm); font-size: .86rem; }
.ue-admin-dashboard .ue-ad-series { margin-block-start: .4rem; }
.ue-admin-dashboard .ue-ad-series summary { cursor: pointer; color: var(--ue-indigo-active); padding-block: .3rem; font-size: .86rem; font-weight: 700; }
.ue-admin-dashboard .ue-ad-series ul {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr));
    gap: .3rem;
    margin: .3rem 0 0;
    padding: 0;
}
.ue-admin-dashboard .ue-ad-series li { display: flex; justify-content: space-between; gap: .3rem; padding: .25rem .45rem; background: var(--ue-surface-alt); font-size: .8rem; border-radius: var(--ue-radius-xs); }
.ue-admin-dashboard .ue-ad-status-layout { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .65rem; margin-block-start: .5rem; }
.ue-admin-dashboard .ue-ad-donut { position: relative; flex: 0 0 clamp(6.75rem, 13vw, 9.1rem); }
.ue-admin-dashboard .ue-ad-donut svg { display: block; width: 100%; height: auto; }
.ue-admin-dashboard .ue-ad-donut circle { stroke: var(--ue-ad-tone, var(--ue-surface-alt)); fill: none; stroke-width: 14; }
.ue-admin-dashboard .ue-ad-donut > div { position: absolute; inset: 21%; display: grid; place-content: center; text-align: center; line-height: 1.15; pointer-events: none; }
.ue-admin-dashboard .ue-ad-donut strong { font-size: 1.3rem; }
.ue-admin-dashboard .ue-ad-donut small { color: var(--ue-text-muted); }
.ue-admin-dashboard .ue-ad-tone-published { --ue-ad-tone: var(--ue-teal-strong); }
.ue-admin-dashboard .ue-ad-tone-draft { --ue-ad-tone: var(--ue-indigo); }
.ue-admin-dashboard .ue-ad-tone-cancelled { --ue-ad-tone: var(--ue-danger); }
.ue-admin-dashboard .ue-ad-tone-closed { --ue-ad-tone: var(--ue-warning); }
.ue-admin-dashboard .ue-ad-tone-completed { --ue-ad-tone: var(--ue-info); }
.ue-admin-dashboard .ue-ad-legend { list-style: none; flex: 1 1 10.5rem; min-width: 0; margin: 0; padding: 0; }
.ue-admin-dashboard .ue-ad-legend button,
.ue-admin-dashboard .ue-ad-bars button {
    width: 100%;
    display: grid;
    align-items: center;
    min-width: 0;
    min-height: 36px;
    padding: .38rem .5rem;
    gap: .38rem;
    border: 1px solid transparent;
    border-radius: var(--ue-radius-sm);
    background: transparent;
    color: var(--ue-text);
    text-align: start;
    font: inherit;
    font-size: .86rem;
    cursor: pointer;
}
.ue-admin-dashboard .ue-ad-legend button { grid-template-columns: .6rem minmax(0, 1fr) auto; }
.ue-admin-dashboard .ue-ad-legend i { height: .6rem; width: .6rem; border-radius: 50%; background: var(--ue-ad-tone); }
.ue-admin-dashboard .ue-ad-legend bdi { color: var(--ue-text-muted); font-size: .79rem; white-space: nowrap; }
.ue-admin-dashboard .ue-ad-bars { display: grid; gap: .4rem; margin-block-start: .7rem; }
.ue-admin-dashboard .ue-ad-categories { max-height: 15rem; overflow-y: auto; }
.ue-admin-dashboard .ue-ad-bars button { grid-template-columns: minmax(0, 1fr) auto; background: var(--ue-surface-alt); }
.ue-admin-dashboard .ue-ad-bar-track { grid-column: 1 / -1; min-width: 0; height: .56rem; border-radius: 999px; overflow: hidden; background: var(--ue-border); }
.ue-admin-dashboard .ue-ad-bar-track i { display: block; height: 100%; border-radius: inherit; background: var(--ue-ad-tone); }
.ue-admin-dashboard :is(.ue-ad-bars, .ue-ad-legend) button:is(:hover, :focus-visible) { background: var(--ue-indigo-subtle); border-color: var(--ue-indigo); }
.ue-admin-dashboard :is(button, a, summary, select):focus-visible { outline: 2px solid var(--ue-focus); outline-offset: 2px; }
.ue-admin-dashboard .ue-ad-popular, .ue-admin-dashboard .ue-ad-activity { list-style: none; margin: .35rem 0 0; padding: 0; }
.ue-admin-dashboard :is(.ue-ad-popular, .ue-ad-activity) li { padding: .55rem 0; border-block-start: 1px solid var(--ue-border); }
.ue-admin-dashboard :is(.ue-ad-popular, .ue-ad-activity) li > div { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: space-between; gap: .3rem .6rem; }
.ue-admin-dashboard .ue-ad-popular a { color: var(--ue-indigo-active); font-weight: 700; text-decoration: none; }
.ue-admin-dashboard .ue-ad-popular a:hover { text-decoration: underline; }
.ue-admin-dashboard .ue-ad-popular small, .ue-admin-dashboard .ue-ad-activity p, .ue-admin-dashboard .ue-ad-activity time { font-size: .85rem; color: var(--ue-text-muted); }
.ue-admin-dashboard .ue-ad-activity p { margin: .18rem 0 0; }
.ue-admin-dashboard .ue-ad-table { width: 100%; min-width: 0; margin-block: 0; border-collapse: collapse; text-align: start; }
.ue-admin-dashboard .ue-ad-table th, .ue-admin-dashboard .ue-ad-table td { padding: .55rem; border-block-end: 1px solid var(--ue-border); vertical-align: top; font-size: .86rem; }
.ue-admin-dashboard .ue-ad-table th { text-align: start; }
.ue-admin-dashboard .ue-ad-table td:first-child { font-weight: 700; }
.ue-admin-dashboard .ue-ad-table a { color: var(--ue-indigo-active); font-weight: 700; }
.ue-admin-dashboard .ue-admin-quick { margin: .7rem 0 0; }
@container ue-admin-overview (min-width: 31rem) {
    .ue-admin-dashboard .ue-ad-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@container ue-admin-overview (min-width: 57rem) {
    .ue-admin-dashboard .ue-ad-kpis { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@container ue-admin-overview (min-width: 47rem) {
    .ue-admin-dashboard .ue-ad-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
    .ue-admin-dashboard .ue-admin-quick { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@container ue-admin-overview (max-width: 46.99rem) {
    .ue-admin-dashboard .ue-ad-table, .ue-admin-dashboard .ue-ad-table tbody { display: block; }
    .ue-admin-dashboard .ue-ad-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .ue-admin-dashboard .ue-ad-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem .5rem; padding: .5rem; border: 1px solid var(--ue-border); border-radius: var(--ue-radius-sm); margin-block-start: .55rem; }
    .ue-admin-dashboard .ue-ad-table td { min-width: 0; padding: .18rem; border: 0; }
    .ue-admin-dashboard .ue-ad-table td::before { content: attr(data-label); display: block; color: var(--ue-text-muted); font-size: .76rem; font-weight: 400; }
    .ue-admin-dashboard .ue-ad-table td:is(:first-child, :last-child) { grid-column: 1 / -1; }
}
/* END UniEvents admin dashboard patch v1 */

/* BEGIN UniEvents Admin UI chrome and account pages v1 */
.ue-ui-guest .ue-nav-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: .8rem;
    align-items: center;
}
.ue-ui-guest .ue-brand { min-width: 0; justify-self: start; }
.ue-ui-guest .ue-brand img { width: clamp(7.8rem, 15vw, 10.6rem); max-width: 100%; height: auto; }
.ue-ui-guest .ue-guest-toggle:not([hidden]) { display: inline-flex; min-height: 44px; align-items: center; gap: .35rem; }
.ue-ui-guest .ue-guest-links { grid-column: 1/-1; display: grid; gap: .65rem; min-width: 0; padding-block: .55rem; }
.ue-ui-guest .ue-menu-ready:not(.ue-menu-open) .ue-guest-links { display: none; }
.ue-ui-guest .ue-navlinks, .ue-ui-guest .ue-nav-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; }
.ue-ui-guest .ue-navlinks a { padding: .4rem .65rem; border-radius: var(--ue-radius-sm); }
.ue-ui-guest .ue-navlinks a:is(:hover, [aria-current]) { color: var(--ue-indigo-active); background: var(--ue-indigo-subtle); }
.ue-ui-guest .ue-nav-actions .btn { min-height: 44px; justify-content: center; }
@media (min-width: 800px) {
    .ue-ui-guest .ue-nav-inner { grid-template-columns: auto minmax(0, 1fr); gap: 1rem; }
    .ue-ui-guest .ue-guest-toggle:not([hidden]) { display: none; }
    .ue-ui-guest .ue-guest-links, .ue-ui-guest .ue-menu-ready:not(.ue-menu-open) .ue-guest-links {
        grid-column: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .8rem; padding: 0;
    }
    .ue-ui-guest .ue-navlinks { justify-content: center; }
}
.ue-ui-auth { padding-block: clamp(1.25rem, 5vw, 4rem); }
.ue-ui-auth .ue-auth-frame { width: min(100% - 2rem, 62rem); padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; max-width: 34rem; }
.ue-ui-auth .ue-auth-panel { padding: clamp(1rem, 3.5vw, 2.6rem); min-width: 0; overflow-wrap: anywhere; }
.ue-ui-auth .ue-ui-auth-logo { display: block; width: min(10rem, 100%); height: auto; margin-block-end: 1rem; }
.ue-ui-auth .ue-auth-header h1 { font-size: clamp(1.65rem, 4.5vw, 2.55rem); line-height: 1.2; margin-block: .25rem; }
.ue-ui-auth .ue-auth-header p { margin-block: .35rem; }
.ue-ui-auth .form-stack { display: grid; gap: .38rem; }
.ue-ui-auth .form-stack label { margin-block-start: .55rem; }
.ue-ui-auth input, .ue-ui-auth .auth-submit { min-height: 46px; width: 100%; min-width: 0; }
.ue-ui-auth .auth-submit { margin-block-start: .7rem; }
.ue-ui-auth .ue-auth-foot { margin-block: 1.1rem 0; }
.ue-ui-auth .ue-ui-password { display: grid; gap: .25rem; min-width: 0; }
.ue-ui-auth .ue-ui-password button { justify-self: end; min-height: 40px; padding: .2rem .4rem; color: var(--ue-indigo-active); background: none; border: 0; border-radius: var(--ue-radius-sm); font-size: .85rem; font-weight: 800; cursor: pointer; }
.ue-ui-auth .ue-ui-password button:hover { background: var(--ue-indigo-subtle); }
.ue-ui-auth .ue-ui-password-help { margin: .15rem 0; font-size: .84rem; color: var(--ue-text-muted); }
.ue-ui-auth .ue-auth-story { display: none; min-width: 0; align-self: stretch; overflow-wrap: anywhere; padding: clamp(1.5rem, 3.5vw, 2.6rem); }
.ue-ui-auth .ue-ui-auth-features { list-style: none; margin-block: 1.4rem 0; padding: 0; }
.ue-ui-auth .ue-ui-auth-features li { padding: .65rem 0; border-block-start: 1px solid rgb(255 255 255 / .28); }
@media (min-width: 900px) {
    .ue-ui-auth .ue-auth-frame { max-width: 62rem; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
    .ue-ui-auth .ue-auth-story { display: block; }
}
.ue-ui-admin-topbar { flex-wrap: wrap; gap: .5rem 1rem; min-height: 64px; }
.ue-admin-body .ue-ui-side-icon { flex: 0 0 18px; color: var(--ue-indigo); }
.ue-admin-body .ue-student-sidebar .ue-student-brand img { max-width: 100%; height: auto; }
.ue-ui-admin-topbar .ue-menu-toggle { min-height: 44px; font-size: .9rem; }
.ue-ui-admin-topbar .ue-toptools { min-width: 0; }
.ue-ui-account { position: relative; min-width: 0; max-width: 100%; }
.ue-ui-account summary { list-style: none; display: flex; align-items: center; min-height: 44px; gap: .45rem; padding: .5rem .7rem; color: var(--ue-indigo-active); background: var(--ue-indigo-subtle); border-radius: var(--ue-radius-md); cursor: pointer; }
.ue-ui-account summary::-webkit-details-marker { display: none; }
.ue-ui-account summary bdi { max-width: min(11rem, 39vw); overflow-wrap: anywhere; line-height: 1.15; font-size: .88rem; font-weight: 800; }
.ue-ui-account-menu { position: absolute; inset-block-start: calc(100% + .45rem); inset-inline-end: 0; z-index: 6; width: min(13rem, 74vw); padding: .6rem; background: var(--ue-surface); border: 1px solid var(--ue-border); border-radius: var(--ue-radius-md); box-shadow: var(--ue-shadow-md); }
.ue-ui-account-menu p { margin: .3rem .5rem; color: var(--ue-text-muted); }
.ue-ui-account-menu a, .ue-ui-account-menu button { display: flex; width: 100%; min-height: 40px; padding: .4rem .5rem; align-items: center; text-decoration: none; }
.ue-ui-account-menu a:hover, .ue-ui-account-menu button:hover { background: var(--ue-indigo-subtle); }
.ue-ui-footer { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .2rem .8rem; border-block-start: 1px solid var(--ue-border); background: var(--ue-surface); overflow-wrap: anywhere; }
.ue-ui-footer-brand { color: var(--ue-indigo-active); font-weight: 800; text-decoration: none; }
.ue-admin-body .ue-student-body-container { display: flex; flex-direction: column; }
.ue-admin-body .ue-student-content { width: 100%; flex: 1; margin-inline: auto; }
@media (max-width: 470px) {
    .ue-ui-admin-topbar .ue-topbrand { display: none; }
    .ue-ui-footer { gap: .4rem; flex-direction: column; }
    .ue-admin-body .ue-student-sidebar.is-open + .ue-student-body-container .ue-menu-toggle {
        inset-inline-start: min(278px, 73vw);
        max-width: calc(100vw - min(278px, 73vw) - 5px);
        white-space: normal;
        padding-inline: .28rem;
    }
}
/* END UniEvents Admin UI chrome and account pages v1 */

/* Unified page-height and responsive overflow controls for all roles. */
.ue-student-body-container{display:flex;flex-direction:column;min-width:0;min-height:100vh}
.ue-student-content{width:100%;flex:1 0 auto;min-width:0}
.ue-student-footer{flex-shrink:0}
.ue-reco-grid > *, .ue-dual-grid > *, .ue-event-grid > *{min-width:0}
.ue-student-content .table-scroll,.ue-student-content .ue-responsive-table{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.ue-reco-card{overflow-wrap:anywhere}
@media(max-width:430px){.ue-student-content{padding-inline:14px}.ue-reco-grid{grid-template-columns:minmax(0,1fr)}.ue-student-topbar{gap:8px}}

.ue-logout-action{display:inline-flex;align-items:center;gap:8px;min-height:36px;white-space:nowrap}
