/* Shared interface refinements. Assets are served locally. */
:root { --focus-ring:#17458f; }
:focus-visible { outline:3px solid var(--focus-ring); outline-offset:3px; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color:transparent; }
button:disabled { cursor:wait; opacity:.65; }
input:disabled, select:disabled { background:#f3f5f7; color:#667085; }
h1, h2, .account-name, .event-overview-body { overflow-wrap:anywhere; }
.skip-link { position:fixed; top:8px; left:12px; z-index:100; padding:10px 16px; background:#17458f; color:#fff; border-radius:8px; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.shell .side { background:#fbfcfe; gap:18px; overflow-y:auto; }
.shell .side-note { background:transparent; border:0; padding:0 10px; }
.shell .side-note strong { overflow-wrap:anywhere; }
.shell .nav { gap:3px; }
.nav-label { color:#798393; font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; padding:16px 12px 5px; }
.shell .nav a { min-height:44px; font-weight:650; border-radius:8px; }
.shell .nav a.is-active { background:#eaf0f8; border-color:transparent; box-shadow:inset 3px 0 #17458f; }
.mobile-nav-toggle { display:none; }
.shell .content { width:min(1320px,100%); }
.shell .topbar { align-items:flex-start; }
.shell .topbar > h1, .shell .topbar > div:first-child { min-width:0; }
.shell .topbar .actions { flex-shrink:0; }
.shell .btn { min-height:44px; font-weight:700; border-radius:10px; }
.shell .btn.primary { background:#17458f; border-color:#17458f; box-shadow:none; }
.shell .btn.primary:hover { background:#10366f; }
.shell .btn.danger { border-color:#e8c6c3; background:#fff; color:#a72820; }
.shell .help, .shell .muted { color:#596575; }
.shell .notice { border:1px solid #cadbed; background:#f0f6fc; }
.shell .notice.warning { border-color:#edd2a9; background:#fff8ec; }
.shell .danger-zone { margin-top:36px; }
.shell .error { color:#aa2820; }
.page-meta { margin:7px 0 0; color:#596575; font-size:.95rem; }
.badge[data-status="published"], .badge[data-status="confirmed"], .badge[data-status="paid"], .badge[data-status="active"] { background:#edf7f1; border-color:#c8e2d3; color:#246444; }
.badge[data-status="draft"], .badge[data-status="pending"], .badge[data-status="sold_out"] { background:#fff7e9; border-color:#ead9b8; color:#805c22; }
.badge[data-status="cancelled"], .badge[data-status="failed"], .badge[data-status="blocked"] { background:#fbefed; border-color:#e8c9c5; color:#9c3027; }
.badge[data-status="expired"] { background:#f2f3f5; color:#5b6470; }
.list-toolbar { display:flex; align-items:end; flex-wrap:wrap; gap:12px; padding:0 0 22px; }
.list-toolbar label { display:grid; gap:6px; font-weight:650; }
.list-toolbar input { width:min(100%,24rem); }
.list-toolbar select { width:15rem; }
.list-toolbar .toolbar-search { flex:1 1 250px; max-width:440px; }
.list-toolbar .toolbar-search input { width:100%; }
.list-summary { margin:0 0 12px; font-size:.9rem; color:#596575; }
.table-wrap table { box-shadow:none; border:1px solid #d8dce2; border-radius:10px; }
.table-wrap th { background:#f7f9fc; color:#596575; font-size:.73rem; font-weight:750; }
.row-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-start; }
.row-actions .btn { min-height:38px; padding:6px 11px; font-size:.9rem; }
.empty-cell { padding:32px 20px; text-align:center; }
.empty-cell strong { display:block; margin-bottom:5px; color:#27364a; }
.empty-cell p { margin:0; }
.account-list { border-top:1px solid #d8dce2; }
.account-row { border-bottom:1px solid #d8dce2; }
.account-row > summary { display:flex; align-items:center; gap:18px; padding:20px 0; cursor:pointer; list-style:none; }
.account-row > summary::-webkit-details-marker { display:none; }
.account-row > summary::after { content:'Bearbeiten ↓'; font-size:.87rem; font-weight:700; color:#17458f; margin-left:auto; white-space:nowrap; }
.account-row[open] > summary::after { content:'Schließen ↑'; }
.account-identity { display:grid; gap:3px; min-width:0; flex:1; }
.account-name { font-size:1.04rem; color:#24364e; }
.account-email { font-size:.91rem; color:#596575; overflow-wrap:anywhere; }
.account-badges { display:flex; flex-wrap:wrap; gap:8px; }
.account-editor { padding:2px 0 24px; }
.account-editor .row { max-width:840px; gap:18px 24px; }
.account-editor input, .account-editor select { width:100%; }
.account-editor .form-actions { margin-top:18px; }
.role-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:28px 0; padding:20px 0; border-block:1px solid #d8dce2; }
.role-guide h2 { font-size:.96rem; margin:0 0 6px; color:#24364e; }
.role-guide p { font-size:.9rem; margin:0; }
.new-account { margin-top:28px; }
.new-account > summary { cursor:pointer; color:#17458f; font-weight:750; padding:12px 0; }
.new-account[open] > summary { margin-bottom:10px; }
.connection-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:22px 0; margin:0 0 14px; border-block:1px solid #d8dce2; list-style:none; counter-reset:connection; }
.connection-steps li { counter-increment:connection; display:grid; grid-template-columns:26px minmax(0,1fr); gap:4px 10px; }
.connection-steps li::before { content:counter(connection); color:#17458f; font-weight:800; }
.connection-steps strong { color:#24364e; }
.connection-steps span { grid-column:2; color:#596575; font-size:.9rem; line-height:1.5; }
.connection-form { max-width:640px; }
.connection-form .row { gap:20px; }
.connection-form input, .connection-form select { width:100%; }
.key-result { padding:20px; margin:20px 0; border:1px solid #bcd9c6; border-radius:12px; background:#f4faf6; }
.key-result h2 { margin-bottom:8px; }
.copy-field { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:start; max-width:900px; }
.copy-field input, .copy-field textarea { width:100%; min-width:0; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.86rem; background:#fff; }
.copy-feedback { min-height:1.5em; font-size:.88rem; color:#246444; margin:6px 0 0; }
.disclosure { margin:22px 0; border-block:1px solid #d8dce2; padding:16px 0; }
.disclosure > summary { cursor:pointer; color:#24364e; font-weight:750; }
.disclosure[open] > summary { margin-bottom:20px; }
.disclosure .field { margin-top:18px; }
.disclosure label { display:block; font-weight:650; margin-bottom:7px; }
.document-actions { margin:0 0 24px; }
.document-actions summary { cursor:pointer; font-weight:650; color:#17458f; }
.document-actions[open] summary { margin-bottom:12px; }
.document-actions .actions { justify-content:flex-start; }
.event-facts { display:flex; flex-wrap:wrap; gap:10px 24px; margin-top:4px; color:#44556a; }
.event-facts span { display:inline-flex; gap:6px; align-items:baseline; }
.event-facts strong { color:#24364e; font-weight:650; }
.wrap .hero { gap:12px; }
.wrap .event-overview-media img { object-fit:contain; padding:5px; }
.wrap .event-overview-media { background:#f6f8fb; }
.wrap .empty-state { box-shadow:none; min-height:200px; }
.wrap .empty-state .empty-description { color:#596575; font-size:.95rem; font-weight:400; max-width:440px; }
.ticket-total { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 0; margin:0; border-top:1px solid #d8dce2; color:#24364e; }
.ticket-total strong { font-size:1.16rem; font-variant-numeric:tabular-nums; }
.ticket-availability { display:block; font-size:.85rem; color:#805c22; margin-top:4px; }
.wrap .quantity button:disabled { cursor:default; opacity:.35; }
.booking-closed { margin:24px 0; padding:22px; border:1px solid #ead9b8; border-radius:12px; background:#fffaf1; }
.booking-closed h2 { margin:0 0 6px; }
.booking-closed p { margin:0; }
.booking-progress { display:flex; flex-wrap:wrap; gap:10px 24px; margin:0 0 24px; padding:0; list-style:none; color:#667085; font-size:.88rem; }
.booking-progress li { display:flex; align-items:center; gap:7px; }
.booking-progress [aria-current="step"] { color:#17458f; font-weight:750; }
.booking-progress span { display:grid; place-items:center; width:23px; height:23px; border:1px solid #d8dce2; border-radius:50%; font-size:.75rem; }
.booking-progress [aria-current="step"] span { border-color:#17458f; background:#17458f; color:#fff; }
.portal-footer { border-top:1px solid #d8dce2; padding:22px 0; color:#667085; font-size:.88rem; }
.portal-footer .wrap { display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; }
.portal-footer nav { display:flex; flex-wrap:wrap; gap:18px; }
.portal-footer a { text-decoration:none; }
.portal-footer a:hover { text-decoration:underline; }
@media(max-width:1050px) { .shell .topbar { flex-wrap:wrap; } .shell .topbar .actions { justify-content:flex-start; } }
@media(max-width:760px) {
    .shell .side { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:10px; height:auto; border-right:0; border-bottom:1px solid #d8dce2; }
    .shell .brand { margin-right:auto; }
    .shell .side-logout { margin:0; }
    .portal-navigation { width:100%; order:3; }
    .mobile-nav-toggle { display:flex; justify-content:space-between; align-items:center; cursor:pointer; padding:11px 10px; border:1px solid #d8dce2; border-radius:8px; background:#fff; color:#17458f; font-weight:700; list-style:none; }
    .mobile-nav-toggle::-webkit-details-marker { display:none; }
    .mobile-nav-toggle::after { content:'↓'; }
    .portal-navigation[open] .mobile-nav-toggle::after { content:'↑'; }
    .shell .nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; padding:10px 0 0; }
    .nav-label { grid-column:1/-1; padding:10px 12px 3px; }
    .shell .nav a { white-space:normal; }
    .role-guide, .connection-steps { grid-template-columns:1fr; gap:16px; }
    .account-row > summary { flex-wrap:wrap; gap:9px 12px; }
    .account-identity { flex-basis:calc(100% - 100px); }
    .account-badges { order:3; flex-basis:100%; }
    .account-row > summary::after { font-size:.8rem; }
    .list-toolbar label, .list-toolbar input, .list-toolbar select { width:100%; }
    .list-toolbar .toolbar-search { max-width:none; }
    .list-toolbar .toolbar-status { flex:1 1 180px; }
    .responsive-table { min-width:0; background:transparent; border:0 !important; }
    .responsive-table thead { display:none; }
    .responsive-table tbody, .responsive-table tr, .responsive-table td { display:block; width:100%; }
    .responsive-table tr { padding:14px 0; border-bottom:1px solid #d8dce2; }
    .responsive-table td { border:0; padding:5px 0; background:transparent !important; overflow-wrap:anywhere; }
    .responsive-table td[data-label] { display:grid; grid-template-columns:100px minmax(0,1fr); gap:12px; }
    .responsive-table td[data-label]::before { content:attr(data-label); color:#667085; font-size:.88rem; }
    .responsive-table td:first-child { font-weight:700; font-size:1.04rem; margin-bottom:6px; }
    .responsive-table .empty-cell { padding:24px 0; }
    .copy-field { grid-template-columns:minmax(0,1fr); }
    .copy-field .btn { justify-self:start; }
    .event-facts { display:grid; gap:7px; }
    .booking-progress { gap:8px 14px; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; } }

.export-menu { position:relative; }
.export-menu > summary { list-style:none; cursor:pointer; }
.export-menu > summary::-webkit-details-marker { display:none; }
.export-menu-items { position:absolute; z-index:10; right:0; top:calc(100% + 8px); width:270px; max-width:calc(100vw - 36px); display:grid; gap:8px; padding:12px; border:1px solid #d8dce2; border-radius:10px; background:#fff; box-shadow:0 12px 24px #1831531a; }
.export-menu-items .btn { text-align:left; justify-content:flex-start; }

.event-topbar { flex-direction:column; align-items:flex-start; gap:18px; }
.event-topbar h1 { max-width:100%; margin:0; }
.event-topbar .actions { justify-content:flex-start; }
.connection-form .row, .account-editor .row { align-items:start; }
