/* Shared modern / Studio navigation and one continuous form-focus border. */
html.foxy-design[data-foxy-design] body.foxy-ui :is(#root,.Modal,.fx-shell,.fx-select-menu,[role=dialog]) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),textarea,select,.fx-select-trigger):is(:focus,:focus-visible,[aria-expanded=true]) {
  border-color:var(--fx-control-focus,var(--fx-accent-ink)) !important;
  outline:none !important;
  outline-offset:0 !important;
  box-shadow:0 0 0 1px var(--fx-control-focus,var(--fx-accent-ink)) !important;
}
html.foxy-design[data-foxy-design] body.foxy-ui :is(#root,.Modal,.fx-shell,.fx-select-menu,[role=dialog]) :is(input,textarea,select,.fx-select-trigger):is(.invalid,[aria-invalid=true]) {
  --fx-control-focus:#c0525a;
}
.foxy-ui .fx-sidebar-toggle { display:none; }
.foxy-ui button.fx-profile { width:100%; height:auto; min-height:0; background:transparent; color:var(--fx-text); border:0; border-top:1px solid var(--fx-line); border-radius:0; text-align:left; line-height:1.5; cursor:pointer; }
.foxy-ui .fx-profile .fx-avatar { flex:none; }
.foxy-ui .fx-profile[aria-expanded=true]>.fx-icon { transform:rotate(-90deg); }
.foxy-ui .fx-profile:is(:hover,[aria-expanded=true]) .fx-nav-text { color:var(--fx-accent-ink); }
html[data-foxy-design=studio] .foxy-ui .fx-profile:is(:hover,[aria-expanded=true]) .fx-nav-text { color:#ffb574; }
.foxy-ui .fx-account-menu { position:fixed; z-index:1500; width:244px; max-width:calc(100vw - 16px); padding:6px; border:1px solid var(--fx-line); border-radius:14px; background:var(--fx-surface); box-shadow:0 12px 40px #10182824; }
.foxy-ui .fx-account-menu[data-placement=side] { width:224px; border-radius:12px; box-shadow:0 6px 24px #1018281a; }
.foxy-ui .fx-account-menu[data-placement=side]::before { content:''; position:absolute; left:-5px; top:var(--fx-account-pointer-y,50%); width:9px; height:9px; background:var(--fx-surface); border-left:1px solid var(--fx-line); border-bottom:1px solid var(--fx-line); transform:translateY(-50%) rotate(45deg); pointer-events:none; }
.foxy-ui .fx-account-menu>button { display:flex; align-items:center; gap:12px; width:100%; height:auto; min-height:48px; padding:12px; border:0; border-radius:9px; background:transparent; color:var(--fx-text); font-size:15px; font-weight:600; line-height:1.5; text-align:left; cursor:pointer; }
.foxy-ui .fx-account-menu>button:is(:hover,:focus-visible) { background:var(--fx-tint); color:var(--fx-accent-ink); outline:none; }
.foxy-ui .fx-account-menu .fx-icon { fill:none; stroke:currentColor; }
html.fx-local-signed-out :is(.fx-shell,#root) { display:none!important; }
.foxy-ui .fx-account-exit { display:grid; place-items:center; width:100%; min-height:100vh; min-height:100dvh; padding:24px; }
.foxy-ui .fx-account-exit>section { width:min(420px,100%); padding:40px 28px; border:1px solid var(--fx-line); border-radius:24px; background:var(--fx-surface); box-shadow:0 12px 48px #1018280a; text-align:center; }
.foxy-ui .fx-account-exit img { width:88px; height:100px; object-fit:contain; margin-bottom:20px; }
.foxy-ui .fx-account-exit h1 { font-size:27px; line-height:1.25; margin:0 0 12px; }
.foxy-ui .fx-account-exit p { font-size:15px; color:var(--fx-muted); margin:0 0 28px; }
.foxy-ui .fx-account-exit button { width:100%; justify-content:center; }
@media(min-width:801px) {
  html.foxy-design .foxy-ui .fx-sidebar-toggle { display:grid; place-items:center; flex:none; align-self:flex-end; width:32px; min-width:32px; height:32px; min-height:32px; padding:0; margin:-14px 0 14px; border:1px solid var(--fx-line); border-radius:9px; background:var(--fx-subtle); color:var(--fx-muted); cursor:pointer; box-shadow:none; }
  html.foxy-design .foxy-ui .fx-sidebar-toggle:hover { background:var(--fx-tint); color:var(--fx-accent-ink); }
  html.foxy-design .foxy-ui .fx-sidebar-toggle>.fx-icon { width:18px; height:18px; transform:rotate(180deg); }
  html.foxy-design .foxy-ui .fx-nav-collapsed { --fx-sidebar:84px; }
  html.foxy-design .foxy-ui .fx-nav-collapsed .fx-sidebar { width:84px; padding:18px 12px; }
  html.foxy-design .foxy-ui .fx-nav-collapsed .fx-brand { display:flex; justify-content:center; width:100%; min-height:80px; padding:0 0 14px; margin:0 0 18px; gap:0; }
  html.foxy-design .foxy-ui .fx-nav-collapsed .fx-brand img { width:54px; height:64px; }
  html.foxy-design .foxy-ui .fx-nav-collapsed :is(.fx-brand>span,.fx-nav-text,.fx-nav-count,.fx-profile>.fx-icon) { display:none; }
  html.foxy-design .foxy-ui .fx-nav-collapsed .fx-sidebar-toggle { align-self:center; margin:0 0 18px; }
  html.foxy-design .foxy-ui .fx-nav-collapsed .fx-sidebar-toggle>.fx-icon { transform:none; }
  html.foxy-design .foxy-ui .fx-nav-collapsed :is(.fx-sidebar nav a,.fx-settings-link) { justify-content:center; gap:0; width:52px; min-height:48px; padding:12px; margin-inline:auto; border-radius:11px; }
  html.foxy-design .foxy-ui .fx-nav-collapsed .fx-profile { justify-content:center; gap:0; padding:16px 0 0; }
  html.foxy-design .foxy-ui .fx-nav-collapsed .fx-sidebar-bottom { padding-top:20px; }
  html[data-foxy-design=studio] .foxy-ui .fx-sidebar-toggle { background:#2b2f36; border-color:#41464f; color:#bec3cc; }
  html[data-foxy-design=studio] .foxy-ui .fx-sidebar-toggle:hover { background:#383f48; border-color:#67717e; color:#fff; }
}
@media(prefers-reduced-motion:no-preference) and (min-width:801px) {
  .foxy-ui .fx-sidebar { transition:width .18s ease,padding .18s ease; }
  .foxy-ui .fx-stage { transition:margin-left .18s ease; }
}
/* Keep the account controls reachable on short laptop screens and drawers. */
html[data-foxy-design=studio] .foxy-ui .fx-sidebar { height:100dvh; overflow:hidden; }
html[data-foxy-design=studio] .foxy-ui .fx-sidebar>.fx-brand,
html[data-foxy-design=studio] .foxy-ui .fx-sidebar>.fx-sidebar-bottom { flex-shrink:0; }
html[data-foxy-design=studio] .foxy-ui .fx-sidebar>nav { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
@media(max-height:760px) {
  html[data-foxy-design=studio] .foxy-ui .fx-sidebar { padding-block:16px; }
  html[data-foxy-design=studio] .foxy-ui .fx-brand { padding-block:4px 16px; margin-bottom:18px; }
  html[data-foxy-design=studio] .foxy-ui .fx-brand img { width:60px; height:64px; }
  html[data-foxy-design=studio] .foxy-ui .fx-sidebar nav { gap:6px; }
  html[data-foxy-design=studio] .foxy-ui :is(.fx-sidebar nav a,.fx-settings-link) { min-height:48px; padding-block:12px; line-height:22px; }
  html[data-foxy-design=studio] .foxy-ui .fx-sidebar-bottom { padding-top:16px; }
}
