/* Focused workspace controls. Existing theme, typography, cards, and tables
   retain their presentation from themes.css and styles.css. */
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
button:disabled { cursor: wait; opacity: .55; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -8rem; padding: 1rem 1.6rem; border-radius: var(--r-sm); background: var(--panel-float); z-index: 110; }
.skip-link:focus { top: 1rem; }
.brand-link { display: flex; align-items: center; gap: 1rem; color: var(--ink); }
.nav-search { border: 1px solid var(--line); min-height: 3.1rem; margin-bottom: 1.8rem; background: var(--panel); }
.nav-search kbd { margin-left: auto; font: .9rem var(--sans); color: var(--ink-3); white-space: nowrap; }
.nav-tools { margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.nav-tools summary { list-style: none; cursor: pointer; }
.nav-tools summary::-webkit-details-marker { display: none; }
.nav-chevron { margin-left: auto; transform: rotate(90deg); font-size: 1.5rem; line-height: 1; }
.nav-tools[open] .nav-chevron { transform: rotate(-90deg); }
.nav-tool-list { margin-top: .4rem; }
.sidebar-utilities { margin-top: auto; padding-top: 2rem; }
.nav-appearance { display: flex; align-items: center; }
.nav-appearance #theme-toggle { min-width: 0; }
.nav-appearance .nav-collapse { width: 3rem; flex-shrink: 0; padding: .7rem; }
.sidebar-foot { padding: 1.3rem .7rem .3rem; margin-top: 1rem; }
.user-avatar { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; border: 1px solid var(--line-strong); border-radius: var(--r-sm); color: var(--ink-2); background: var(--panel); font-size: 1rem; }
.user-foot .user-name { color: var(--ink); font-size: 1.05rem; }
.user-name small { display: block; overflow: hidden; text-overflow: ellipsis; color: var(--ink-3); font-size: .9rem; margin-top: .15rem; }
.user-foot .signout { padding: .5rem; font-size: 1.4rem; }
.sidebar.is-collapsed .brand-link .mark { display: grid; }
.sidebar.is-collapsed .wordmark { padding-inline: 0; }
.sidebar.is-collapsed .nav-appearance { flex-direction: column; }
.sidebar.is-collapsed .nav-chevron { display: none; }
.sidebar.is-collapsed .nav-tools summary { justify-content: center; }
.year-control { flex: 0 0 auto; }
.year-control select.input { font-family: var(--mono); font-size: 1.1rem; min-width: 7.6rem; background-color: var(--panel); }
.input:focus { outline: 2px solid var(--accent-dim); outline-offset: 1px; }
.view-loading { padding: 6rem 2rem; color: var(--ink-2); text-align: center; }
.route-error .btn { margin-top: 1.8rem; }
.drawer-open, .nav-open { overflow: hidden; }
.mobile-menu, .mobile-nav-close, .nav-backdrop { display: none; }

/* Native dialog provides keyboard focus containment and restores its trigger. */
.command-menu { position: fixed; margin: 14vh auto auto; width: min(48rem, calc(100vw - 3rem)); max-height: 72vh; border: 1px solid var(--line-strong); border-radius: var(--r); background: var(--panel-float); color: var(--ink); box-shadow: var(--shadow); overflow: hidden; }
.command-menu::backdrop { background: var(--overlay); }
.command-search { display: flex; align-items: center; gap: 1rem; padding: 1.4rem 1.6rem; border-bottom: 1px solid var(--line); }
.command-search input { border: 0; background: none; outline: none; width: 100%; font-size: 1.3rem; min-height: 2.5rem; }
.command-search input::placeholder { color: var(--ink-3); }
.command-search:focus-within { box-shadow: inset 0 -2px var(--accent); }
.command-close { padding: .3rem .5rem; font-size: .9rem; color: var(--ink-2); border: 1px solid var(--line); border-radius: var(--r-sm); }
.command-results { max-height: 48vh; overflow: auto; padding: .6rem; }
.command-label { padding: .7rem 1rem; font-size: .95rem; color: var(--ink-3); }
.command-option { display: flex; align-items: center; gap: 1rem; text-align: left; width: 100%; padding: 1rem; border-radius: var(--r-sm); }
.command-option:hover, .command-option.is-active { background: var(--panel-hover); }
.command-option svg, .command-search-symbol { width: 1.7rem; height: 1.7rem; flex: 0 0 auto; color: var(--ink-2); }
.command-option strong { display: block; font-size: 1.2rem; font-weight: 500; }
.command-option small { display: block; font-size: 1rem; color: var(--ink-2); margin-top: .2rem; }
.command-enter { margin-left: auto; color: var(--ink-3); }
.command-footer { padding: 1rem 1.6rem; display: flex; gap: 1.5rem; border-top: 1px solid var(--line); font-size: .9rem; color: var(--ink-3); }

@media (min-width: 1600px) {
  .main { padding-inline: 4rem; }
}
@media (max-width: 1100px) {
  .main { padding-inline: 2rem; }
}
@media (max-width: 800px) {
  .main { padding: 0 1.5rem 3rem; width: 100%; }
  .sidebar, .sidebar.is-collapsed { display: none; }
  .sidebar.is-open { display: flex; position: fixed; inset: 0 auto 0 0; width: min(26rem, 88vw); height: 100dvh; z-index: 81; padding: 1.5rem 1.2rem; background: var(--panel); }
  .sidebar.is-open .label, .sidebar.is-open .wordmark span, .sidebar.is-open .sidebar-foot, .sidebar.is-open .nav-section { display: initial; }
  .sidebar.is-open .sidebar-foot { display: flex; }
  .sidebar.is-open .nav-item { justify-content: flex-start; }
  .sidebar.is-open .nav-appearance { flex-direction: row; }
  .sidebar.is-open .wordmark { display: flex; justify-content: space-between; padding: .4rem 1rem 2rem; }
  .sidebar.is-open .wordmark .mark { display: grid; }
  .sidebar.is-open .nav-collapse { display: none; }
  .sidebar.is-open .nav-item .badge { position: static; transform: none; margin-left: auto; }
  .sidebar.is-open .nav-chevron { display: inline; }
  .sidebar.is-open .nav-sub:not([hidden]) { display: flex; }
  .mobile-nav-close { display: grid; place-items: center; width: 3rem; height: 3rem; font-size: 2rem; color: var(--ink-2); }
  .mobile-menu { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; flex: 0 0 auto; border-radius: var(--r-sm); color: var(--ink-2); }
  .mobile-menu svg { width: 1.7rem; height: 1.7rem; }
  .nav-backdrop { display: block; position: fixed; inset: 0; background: var(--overlay); z-index: 80; }
  .topbar { min-height: 7rem; padding: 1.4rem 0; margin-bottom: 1.6rem; gap: .8rem; background: var(--bg); backdrop-filter: none; }
  .topbar h1 { font-size: 2rem; white-space: normal; }
  .topbar h1 small { display: none; }
  .year-control select.input { min-width: 6.8rem; }
  .nav-item, .btn, .radar-act, .signout { min-height: 3.5rem; }
  .drawer { max-width: 100vw; width: 100%; padding: 2rem; }
  .command-menu { margin-top: 5vh; }
}
@media (max-width: 420px) {
  .main { padding-inline: 1rem; }
  .kpi .value { font-size: 2.1rem; }
  .kpi .value .cents { font-size: 1.3rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.boot-error { margin: 12vh auto; width: min(46rem, calc(100% - 3rem)); }
.boot-error .btn { margin: 2rem 1rem 0; }
