/* v1.9.4 top navigation. Replaces the sidebar; builds on the theme variables from arena.css. */
:root{--topnav-h:64px}

/* Layout: one centred column under a sticky bar */
html[data-theme] .shell.topnav-shell{display:block;grid-template-columns:none;min-height:0}
html[data-theme] .topnav-shell .main{max-width:1480px;margin:0 auto;padding:28px clamp(16px,3vw,40px) 44px;min-width:0}
html[data-theme] .skip-navigation{position:fixed;left:12px;top:-100px;z-index:300;padding:12px 18px;background:var(--panel);color:var(--text);border:2px solid var(--accent);border-radius:10px}
html[data-theme] .skip-navigation:focus{top:12px}

/* The bar */
.topnav{position:sticky;top:0;z-index:200;
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  -webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent)}
.topnav::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 55%,transparent) 30%,color-mix(in srgb,var(--gold) 55%,transparent) 70%,transparent)}
.topnav-inner{max-width:1480px;margin:0 auto;height:var(--topnav-h);display:flex;align-items:center;gap:18px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

.topnav-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;color:var(--text);text-decoration:none}
.topnav-brand img{width:34px;height:34px;border-radius:10px;object-fit:contain;box-shadow:0 0 0 1px var(--line)}
.topnav-brand span{font-family:var(--font-display);font-weight:800;font-size:16px;letter-spacing:-.02em;white-space:nowrap}

.topnav-nav{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.topnav-primary,.topnav-menus{display:flex;align-items:center;gap:2px}
.topnav-end{display:flex;align-items:center;gap:6px;margin-left:auto}

/* Links and menu buttons share one shape */
.topnav-link,.topnav-menu>summary,.topnav-icon{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 12px;border-radius:10px;
  font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap;cursor:pointer;
  transition:background .15s,color .15s}
.topnav-link:hover,.topnav-menu>summary:hover,.topnav-icon:hover{color:var(--text);background:color-mix(in srgb,var(--text) 7%,transparent)}
.topnav-link[aria-current="page"],.topnav-icon[aria-current="page"],.topnav-menu.active>summary{color:var(--text);background:color-mix(in srgb,var(--accent) 17%,transparent)}
.topnav-link[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--accent)}
.topnav-menu{position:relative}
.topnav-menu>summary{list-style:none}
.topnav-menu>summary::-webkit-details-marker{display:none}
.topnav-menu>summary::after{content:"";width:7px;height:7px;margin-left:2px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s;opacity:.8}
.topnav-menu[open]>summary{color:var(--text);background:color-mix(in srgb,var(--text) 9%,transparent)}
.topnav-menu[open]>summary::after{transform:translateY(1px) rotate(225deg)}
:where(.topnav) :focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Dropdown panels */
.menu-panel{position:absolute;top:calc(100% + 10px);left:0;min-width:270px;padding:8px;display:grid;gap:2px;
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 24px 60px -12px rgba(0,0,0,.55),0 0 0 1px color-mix(in srgb,var(--accent) 8%,transparent)}
html[data-theme="light"] .menu-panel{box-shadow:0 24px 50px -16px rgba(22,40,70,.28)}
.topnav-menu[open] .menu-panel{animation:topnav-drop .14s ease-out}
@keyframes topnav-drop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.menu-link{display:grid;gap:1px;padding:9px 12px;border-radius:10px;color:var(--text);text-decoration:none}
.menu-link span{font-size:14px;font-weight:600}
.menu-link small{font-size:12px;color:var(--muted);line-height:1.35}
.menu-link:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.menu-link[aria-current="page"]{background:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:inset 3px 0 0 var(--accent)}
.menu-panel-wide{grid-template-columns:repeat(3,minmax(180px,1fr));gap:4px 10px;min-width:620px}
.menu-column{display:grid;gap:2px;align-content:start}
.menu-heading{padding:8px 12px 4px;font-size:12px;font-weight:700;color:var(--muted)}
.topnav-admin .menu-panel{left:auto;right:-120px}

/* Account menu */
.topnav-account .menu-panel{left:auto;right:0;min-width:300px;gap:6px}
.account-dot{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:999px;font-family:var(--font-display);font-size:11px;font-weight:800;
  background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 50%,var(--gold)));color:color-mix(in srgb,var(--accent) 10%,#000)}
.account-dot.public{background:color-mix(in srgb,var(--text) 14%,transparent);color:var(--text)}
.account-dot.owner{background:linear-gradient(135deg,var(--gold),color-mix(in srgb,var(--gold) 60%,var(--bronze)));color:#2a1b00}
.topnav-account>summary{padding-left:6px}
.account-status{display:grid;gap:1px;padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:2px}
.account-status strong{font-family:var(--font-display);font-size:15px;font-weight:700}
.account-status small{font-size:12px;color:var(--muted)}
.menu-links{display:grid;gap:2px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.menu-field{display:grid;gap:5px;padding:4px 12px;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:0;text-transform:none;margin:0}
.menu-field select{width:100%;min-height:36px;padding:6px 10px;font-size:14px;border-radius:9px;border:1px solid var(--line);background:var(--field);color:var(--text)}
.start-page-picker div{display:flex;gap:6px}
.start-page-picker .btn{min-height:36px;padding:6px 12px;font-size:13px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:var(--text);cursor:pointer}
.start-page-picker small{display:none}
.owner-view-switch{display:grid;gap:4px;padding:2px 0 8px;border-bottom:1px solid var(--line)}
.account-action{display:block;margin:4px 6px 4px;padding:10px 12px;border-radius:10px;text-align:center;font-weight:650;font-size:14px;text-decoration:none;
  color:var(--text);background:color-mix(in srgb,var(--text) 7%,transparent)}
.account-action:hover{background:color-mix(in srgb,var(--bad) 16%,transparent)}
.account-action.primary{background:#5865f2;color:#fff}
.account-action.primary:hover{background:#4752c4}

.topnav-toggle{display:none;align-items:center;gap:8px;margin-left:auto;min-height:40px;padding:8px 14px;border-radius:10px;
  border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;font-size:14px;font-weight:650;cursor:pointer}

/* Page header now sits under the bar, so give it room */
html[data-theme] .topnav-shell .main .topbar{margin-top:0}

/* ---------- Compact: phones, tablets and small laptops ---------- */
@media (max-width:1180px){
  .topnav-icon-label{display:none}
  html.topnav-ready .topnav-toggle{display:inline-flex}
  html.topnav-ready .topnav-nav{position:fixed;left:0;right:0;top:var(--topnav-h);bottom:0;z-index:199;display:none;flex-direction:column;align-items:stretch;gap:14px;
    padding:18px max(16px,env(safe-area-inset-right,0px)) calc(28px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
    overflow-y:auto;overscroll-behavior:contain;background:var(--bg)}
  html.topnav-ready.topnav-open .topnav-nav{display:flex}
  html.topnav-ready.topnav-open body{overflow:hidden}
  /* No JavaScript: the navigation simply wraps under the bar */
  html:not(.topnav-ready) .topnav-inner{height:auto;flex-wrap:wrap;padding-block:10px}
  html:not(.topnav-ready) .topnav-nav{flex-wrap:wrap}
  .topnav-primary{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .topnav-primary .topnav-link{justify-content:center;min-height:46px;border:1px solid var(--line);background:var(--panel)}
  .topnav-menus{display:grid;gap:8px}
  .topnav-menu>summary{display:flex;justify-content:space-between;min-height:48px;padding:12px 16px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:15px;border-radius:14px}
  .topnav-menu[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0}
  .menu-panel,.topnav-account .menu-panel,.topnav-admin .menu-panel{position:static;min-width:0;border-top:0;border-radius:0 0 14px 14px;box-shadow:none;animation:none}
  .menu-panel-wide{grid-template-columns:1fr}
  .topnav-end{margin-left:0;display:grid;gap:8px}
  .topnav-icon{justify-content:center;border:1px solid var(--line);background:var(--panel);min-height:46px}
  .topnav-icon-label{display:inline}
  .topnav-account>summary{padding-left:12px}
}
@media (max-width:420px){.topnav-brand span{font-size:15px}.topnav-toggle span{display:none}}
@media (prefers-reduced-motion:reduce){.topnav-menu[open] .menu-panel{animation:none}.topnav-link,.topnav-menu>summary{transition:none}}
@media (max-width:1180px){
  /* backdrop-filter makes the bar the containing block for fixed children; size the panel explicitly */
  html.topnav-ready .topnav-nav{bottom:auto;height:calc(100vh - var(--topnav-h));height:calc(100dvh - var(--topnav-h))}
  html.topnav-ready.topnav-open .topnav{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg)}
}
.topnav-toggle .icon-close{display:none}
html.topnav-open .topnav-toggle .icon-close{display:block}
html.topnav-open .topnav-toggle .icon-open{display:none}
@media (max-width:1180px){
  .topnav-account>summary{justify-content:flex-start;gap:10px}
  .topnav-account>summary .account-label{flex:1;text-align:left}
}
