/* Mobile navigation refresh. Kept separate from the map and the brand templates. */
:root { --sidebar-width: 248px; }
[hidden] { display: none !important; }
.skip-content { position:fixed;top:8px;left:12px;z-index:1100;padding:12px 18px;background:#fff;border:2px solid var(--green-700);border-radius:10px;transform:translateY(-160%);font-weight:750; }
.skip-content:focus { transform:none; }
.topbar.site-header, body.landing-page .topbar.site-header { position:sticky;inset:auto;top:0;height:var(--header-height);background:rgba(255,255,255,.98);border-bottom:1px solid var(--line);backdrop-filter:none;-webkit-backdrop-filter:none; }
.site-header-inner { display:flex;align-items:center;gap:12px;height:100%;width:min(1320px,calc(100% - 32px));margin:auto;min-width:0; }
.site-header-brand { display:flex;align-items:center;gap:10px;min-width:0;color:var(--green-950);font-size:.9rem;font-weight:800;line-height:1.25; }
.site-header-brand img { width:40px;height:40px;flex:0 0 40px;object-fit:contain; }
.site-header-brand>span { min-width:0; }
.site-header-locale { margin-left:auto;flex:0 0 auto; }
.site-desktop-links { margin-left:auto;min-width:0; }
.site-nav-toggle,.site-menu-close { appearance:none;display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--green-800);cursor:pointer;padding:10px; }
.site-nav-toggle svg,.site-menu-close svg { display:block;width:22px;height:22px;max-width:22px;max-height:22px;flex:none; }
.site-menu-backdrop { position:fixed;inset:0;z-index:1009;background:rgba(6,30,21,.48);touch-action:none; }
.site-navigation { position:fixed;inset:0 auto 0 0;z-index:1010;width:min(304px,calc(100vw - 44px));height:100vh;height:100dvh;max-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:#fff;border-right:1px solid var(--line);box-shadow:14px 0 48px rgba(5,43,26,.13); }
.site-navigation.is-open { animation:drawerIn .18s ease-out; }
@keyframes drawerIn { from { transform:translateX(-20px);opacity:0; } to { transform:translateX(0);opacity:1; } }
.site-menu-heading { display:flex;align-items:center;gap:10px;padding:calc(18px + env(safe-area-inset-top,0px)) 18px 18px;min-width:0;border-bottom:1px solid var(--line); }
.site-menu-brand { display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:var(--green-950);font-size:.87rem;font-weight:750;line-height:1.25; }
.site-menu-brand img { width:44px;height:44px;object-fit:contain;flex:none; }
.site-menu-brand strong { display:block;color:var(--green-700);font-size:.78rem;font-weight:650;margin-top:3px; }
.site-menu-scroll { min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:20px 12px;scrollbar-width:thin; }
.site-menu-caption { margin:0 12px 12px;color:var(--muted);font-size:.64rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase; }
.site-menu-primary,.site-menu-secondary { display:grid;gap:5px; }
.site-menu-link,.site-menu-more summary { display:flex;align-items:center;gap:12px;width:100%;min-height:46px;min-width:0;padding:11px 12px;border:1px solid transparent;border-radius:12px;appearance:none;background:transparent;color:var(--ink-soft);font-size:.86rem;line-height:1.35;font-weight:650;text-align:left;text-decoration:none;cursor:pointer;overflow-wrap:anywhere; }
/* Explicit icon dimensions prevent intrinsic 300x150 SVGs from inflating the menu. */
.site-menu-link>svg,.site-menu-more summary>svg { display:block;width:20px;height:20px;min-width:20px;max-width:20px;max-height:20px;flex:0 0 20px; }
.site-menu-link:hover,.site-menu-more summary:hover { color:var(--green-800);background:var(--green-50); }
.site-menu-link[aria-current=page] { color:#fff;background:var(--green-800);box-shadow:0 4px 12px rgba(8,108,58,.12);font-weight:750; }
.site-menu-secondary { margin-top:24px;padding-top:16px;border-top:1px solid var(--line); }
.site-menu-secondary .site-menu-link,.site-menu-more summary { font-size:.8rem;color:var(--muted); }
.site-menu-secondary .site-menu-link[aria-current=page] { color:var(--green-900);background:var(--green-100);box-shadow:none; }
.site-menu-more summary { list-style:none; }
.site-menu-more summary::-webkit-details-marker { display:none; }
.site-menu-more summary .menu-chevron { margin-left:auto;width:15px;min-width:15px;flex-basis:15px; }
.site-menu-more[open] .menu-chevron { transform:rotate(90deg); }
.site-menu-more>div { padding-left:12px; }
.site-menu-footer { padding:12px 18px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--surface-soft); }
.site-menu-account { display:flex;gap:9px;align-items:center;min-width:0;margin-top:12px; }
.site-menu-account>div { display:grid;min-width:0;gap:3px; }
.site-menu-account strong,.site-menu-account small { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.site-menu-account strong { font-size:.77rem; }
.site-menu-account small { font-size:.65rem;color:var(--muted); }
.site-account-avatar { width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;background:var(--green-100);color:var(--green-800);font-weight:800; }
.site-menu-footer .site-logout { margin-top:6px;min-height:44px;padding:8px 0;color:var(--muted);font-size:.78rem; }
.site-menu-locale .locale-switch button { height:38px;min-width:64px; }
.site-header-locale .locale-switch button { min-height:36px; }

@media(min-width:1100px) {
  .site-nav-toggle,.site-menu-close { display:none; }
  body.has-staff-nav>main,body.has-staff-nav>footer,body.has-staff-nav>.site-header { margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width)); }
  .has-staff-nav .site-header-inner { width:calc(100% - 48px); }
  .has-staff-nav .site-header-brand img { width:30px;height:30px;flex-basis:30px; }
  .staff-sidebar.is-desktop { width:var(--sidebar-width);box-shadow:none;z-index:85; }
  .staff-sidebar.is-desktop .site-menu-heading { min-height:var(--header-height);padding:14px 20px; }
  .staff-sidebar.is-desktop .site-menu-brand img { width:36px;height:36px; }
  .is-desktop .site-menu-locale { display:none; }
  .is-desktop .site-menu-account { margin-top:0; }
  .public-navigation.is-desktop { position:static;inset:auto;display:flex;flex-direction:row;align-items:center;height:auto;max-height:none;width:auto;overflow:visible;box-shadow:none;border:0;background:transparent; }
  .public-navigation.is-desktop .site-menu-heading,.public-navigation.is-desktop .site-menu-caption { display:none; }
  .public-navigation.is-desktop .site-menu-scroll { overflow:visible;padding:0; }
  .public-navigation.is-desktop .site-menu-primary { display:flex;align-items:center;gap:2px; }
  .public-navigation.is-desktop .site-menu-link { width:auto;min-height:42px;padding:10px;font-size:.77rem;white-space:nowrap; }
  .public-navigation.is-desktop .site-menu-link>svg { display:none; }
  .public-navigation.is-desktop .site-menu-link[aria-current=page] { color:var(--green-800);background:var(--green-50);box-shadow:none; }
  .public-navigation.is-desktop .site-menu-footer { display:flex;padding:0;border:0;background:transparent; }
  .public-navigation.is-desktop .site-menu-account { display:none; }
  .public-navigation.is-desktop .site-menu-footer .site-logout { margin:0;padding-inline:10px; }
}
@media(max-width:1099px) {
  .site-header-inner { gap:10px;width:calc(100% - 24px); }
  .site-desktop-links { display:none; }
  .site-header-locale { margin-left:auto; }
  .has-staff-nav .site-header-brand img { display:none; }
}
@media(max-width:600px) {
  .site-header-brand>span { font-size:.79rem; }
  body:not(.has-staff-nav) .site-header-brand>span { display:none; }
  .site-header-locale .locale-switch { gap:1px;padding:2px; }
  .site-header-locale .locale-switch button { min-width:43px;padding:4px 6px;gap:4px;font-size:.61rem; }
  .site-header-locale .locale-flag { width:17px;height:12px; }
  .site-menu-link { min-height:46px; }
}
@media(max-height:480px) and (max-width:1099px) {
  .site-menu-heading { padding:8px 14px; }
  .site-menu-scroll { padding-top:12px;padding-bottom:12px; }
  .site-menu-footer { padding:6px 14px; }
  .site-menu-account { display:none; }
  .site-menu-footer { display:flex;align-items:center;justify-content:space-between;gap:10px; }
  .site-menu-footer .site-logout { width:auto;margin:0; }
}

/* Compact, single-scroll workspaces. No fixed-height editor on a phone. */
.dashboard> .container { min-width:0; }
.has-staff-nav .dashboard { padding-top:32px; }
.has-staff-nav .dashboard>.container { width:min(1260px,calc(100% - 48px)); }
.dashboard-head { flex-wrap:wrap; }
.dashboard-head>div { min-width:0; }
.dashboard-head h1 { overflow-wrap:anywhere; }
.dashboard .card,.dashboard .section,.dashboard .split>*,.dashboard .form-grid>*,.dashboard .field,.dashboard .filters,.dashboard .filters>* { min-width:0; }
.dashboard input:not([type=checkbox]):not([type=radio]),.dashboard textarea,.dashboard select { max-width:100%;min-width:0; }
.dashboard .filters input,.dashboard .filters select { width:auto; }
.dashboard .filters input { flex:1 1 220px; }
.dashboard .filters select { flex:1 1 155px; }
.dashboard .table-wrap { max-width:100%;overflow-x:auto;overscroll-behavior-x:contain; }
.dashboard .card,.dashboard .notice,.participant-card,.artwork-card { overflow-wrap:anywhere; }
.dashboard .stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
.dashboard .stat { padding:17px 18px; }
.dashboard .stat b { font-size:1.8rem; }
.dashboard .stat span { font-size:.73rem; }
.workspace-overview { margin:0 0 22px;padding:14px 18px;border:1px solid var(--line);border-radius:16px;background:#fff; }
.workspace-overview summary { min-height:24px;font-size:.82rem;font-weight:700;color:var(--green-800);cursor:pointer; }
.workspace-overview .stats { margin:16px 0 0; }
.marketing-stats { overflow:visible; }
.workspace-section-switch { display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 22px;padding:14px 18px;border:1px solid var(--line);border-radius:16px;background:#fff; }
.workspace-section-switch label { font-size:.85rem;font-weight:750;color:var(--green-900); }
.workspace-section-switch select { width:min(290px,100%);min-height:44px; }
.marketing-panel> .dashboard-head h2 { margin-top:0; }
.marketing-panel:focus { outline:none; }
.generator-layout { grid-template-columns:minmax(0,360px) minmax(0,1fr); }
.generator-sidebar { position:static;max-height:none;overflow:visible; }
.generator-sidebar .field { margin-bottom:14px; }
.generator-sidebar input,.generator-sidebar textarea,.generator-sidebar select { width:100%; }
.generator-preview-panel { position:sticky;top:calc(var(--header-height) + 20px); }
.artwork-preview { min-height:360px;padding:22px; }
.artwork-preview .generated-artwork-image { max-height:640px;max-width:100%;height:auto; }
.preview-toolbar { flex-wrap:wrap; }
.source-preview { grid-template-columns:minmax(0,150px) minmax(0,1fr);min-width:0; }
.sponsor-check { grid-template-columns:22px 40px minmax(0,1fr);min-height:54px; }
.sponsor-check input { width:20px;height:20px; }
.sponsor-check span { overflow-wrap:anywhere; }
.sponsor-check-list { max-height:360px;overscroll-behavior-y:contain; }
.participant-grid,.artwork-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.participant-card-head { flex-wrap:wrap; }
.participant-meta span { white-space:normal;overflow-wrap:anywhere; }
.marketing-modal-card { max-width:100%; }
.marketing-modal-card .participant-detail-grid { min-width:0; }
.marketing-modal-card h2,.marketing-modal-card p { overflow-wrap:anywhere; }
.modal { height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain; }
.modal-card { max-width:100%;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain; }
.modal-close { min-height:44px;min-width:44px; }
.admin-post-row { display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;width:100%;min-width:0; }
.admin-post-copy { width:100%; }
.post-row-actions { display:flex;flex-wrap:wrap;justify-content:flex-start;width:100%;max-width:100%;min-width:0;flex:none; }
.composer-card { position:static; }
.admin-content-grid { grid-template-columns:minmax(0,1fr); }
.admin-content-grid>* { min-width:0; }
.admin-post-list { grid-template-columns:minmax(0,1fr);min-width:0; }
.bilingual-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.composer-media-item { min-width:0; }
.composer-media-meta { grid-template-columns:1fr;min-width:0; }
.artists-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }
.artist-card { padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-xs);min-width:0; }
.artist-card h2 { font-size:1.16rem;margin:12px 0 4px;color:var(--green-900);overflow-wrap:anywhere; }
.artist-card p { color:var(--muted);font-size:.85rem;overflow-wrap:anywhere; }
.artist-card .artist-contact { display:grid;gap:5px;font-size:.8rem; }
.artist-card .artist-description { white-space:pre-line; }
.artist-card .artist-status { display:flex;gap:10px;align-items:flex-end;margin-top:18px; }
.artist-status .field { flex:1;min-width:0;margin:0; }
.artist-status select { width:100%; }
.artist-card .artist-save { flex:0 0 auto;min-height:44px; }
.artist-meta { display:flex;gap:8px;flex-wrap:wrap;align-items:center; }
.artist-card time { font-size:.7rem;color:var(--muted); }
@media(min-width:1440px) {
  .admin-content-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .participant-grid,.artwork-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:1279px) {
  .generator-layout { grid-template-columns:1fr; }
  .generator-preview-panel { position:static; }
}
@media(max-width:760px) {
  .has-staff-nav .dashboard>.container { width:calc(100% - 28px); }
  .has-staff-nav .dashboard { padding:24px 0 40px; }
  .dashboard-head h1 { font-size:1.7rem; }
  .dashboard-head p { font-size:.86rem; }
  .dashboard .filters { display:grid;grid-template-columns:minmax(0,1fr);width:100%; }
  .dashboard .filters input,.dashboard .filters select,.dashboard .filters .btn { width:100%; }
  .dashboard .card { padding:18px; }
  .dashboard .stats { grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
  .dashboard .stat { padding:14px; }
  .dashboard .stats.summary-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .summary-stats .stat { padding:12px 8px; }
  .summary-stats .stat b { font-size:1.4rem; }
  .summary-stats .stat span { font-size:.65rem; }
  .workspace-overview,.workspace-section-switch { padding:12px 14px; }
  .workspace-section-switch { gap:8px; }
  .workspace-section-switch select { width:100%; }
  .bilingual-grid,.participant-grid,.artwork-grid,.artists-grid,.participant-detail-grid,.source-preview { grid-template-columns:minmax(0,1fr); }
  .participant-card-media { height:145px; }
  .participant-card .actions,.artwork-card .actions { gap:8px; }
  .participant-card .actions .btn,.artwork-card .actions .btn { flex:1 1 auto;min-height:44px; }
  .artwork-preview { min-height:300px;padding:16px;border-radius:20px; }
  .source-preview-logo { height:120px; }
  .preview-toolbar .btn { width:100%; }
  .generator-sidebar .split,.marketing-panel .split { grid-template-columns:1fr; }
  .composer-media-item { grid-template-columns:60px minmax(0,1fr) 36px;gap:8px;padding:9px; }
  .composer-media-thumb { width:60px;height:60px; }
  .composer-media-meta { grid-template-columns:1fr; }
  .upload-drop input { min-width:0;max-width:100%;flex-basis:100%; }
  .dashboard .btn { min-height:44px; }
  .dashboard .actions { gap:8px; }
  .dashboard input,.dashboard textarea,.dashboard select { font-size:16px; }
  .modal { padding:10px; }
  .modal-card { padding:24px 16px;max-height:calc(100dvh - 20px);border-radius:20px; }
  .marketing-modal-card { width:100%; }
  .artist-card { padding:18px; }
  .artist-status { flex-wrap:wrap; }
  .artist-status .field { flex-basis:160px; }
}
@media(max-width:600px) {
  /* Exhibitor table becomes labelled cards; other dense tables remain locally scrollable. */
  .exhibitor-table,.exhibitor-table tbody,.exhibitor-table tr,.exhibitor-table td { display:block;width:100%;min-width:0; }
  .exhibitor-table thead { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0); }
  .exhibitor-table tr { margin:0 0 14px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff; }
  .exhibitor-table td { display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;padding:11px 13px;border-bottom:1px solid var(--line);overflow-wrap:anywhere; }
  .exhibitor-table td:first-child,.exhibitor-table td:last-child { border-radius:0; }
  .exhibitor-table td .hint { grid-column:2;min-width:0; }
  .exhibitor-table td:last-child { border-bottom:0; }
  .exhibitor-table td::before { content:attr(data-label);font-size:.7rem;font-weight:750;color:var(--muted);align-self:center; }
  .exhibitor-table td .status-badge { justify-self:start; }
  .exhibitor-table td[colspan] { display:block;padding:22px; }
  .exhibitor-table td[colspan]::before { display:none; }
  .exhibitor-table-wrap { border:0;background:transparent;box-shadow:none;overflow:visible!important; }
}
@media(prefers-reduced-motion:reduce) { .site-navigation.is-open { animation:none; } }

/* Team identity is read-only; do not leave an empty password column. */
.profile-grid.staff-managed{grid-template-columns:minmax(0,1fr)}
