/* Shared shell, with a persisted desktop rail and a separate mobile destination bar. */
.koers-app-shell.koers-access-shell{padding-left:0;min-height:100dvh}
:root[data-sidebar=collapsed] .koers-app-shell.koers-access-shell{padding-left:0}
.koers-access-header{max-width:1440px;margin:0 auto;padding:24px 48px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.koers-access-header .koers-brand{font-size:32px}
.koers-access-header .koers-theme-picker{padding:0;display:block}
:root[data-sidebar=collapsed] .koers-access-header .koers-theme-picker{display:block}
.koers-app-shell.koers-access-shell #main-content{max-width:544px;padding:clamp(32px,8vh,88px) 32px 64px}
.access-workspace.koers-sign-in{max-width:none;padding:0}
.koers-sign-in-intro{margin-bottom:16px}
.koers-sign-in-intro h1{margin-bottom:12px;font-size:2rem;letter-spacing:-.035em}
.koers-passkey-action .mud-button-root{min-height:52px;font-size:1rem}
.koers-passkey-action p{margin-top:12px;text-align:center}
.koers-trusted-device{padding:8px 0 12px}
.koers-trusted-device p{padding-left:12px;max-width:40ch}
.koers-sign-in .mud-expand-panel{background:transparent}
.koers-sign-in .mud-expand-panel-header{min-height:56px}
.koers-sign-in .mud-expand-panel-content{padding:0 20px 24px}
.koers-sign-in-note{padding-top:8px;text-align:center}
@media(max-width:599.98px){
 .koers-access-header{padding:16px 20px;gap:12px}
 .koers-access-header .koers-brand{font-size:28px}
 .koers-access-header .koers-theme-option.mud-icon-button{width:40px}
 .koers-app-shell.koers-access-shell #main-content{padding:40px 24px 48px}
 .koers-sign-in-intro h1{font-size:1.75rem}
}
.koers-app-shell{min-height:100vh;padding-left:248px;background:var(--paper);color:var(--ink)}
.koers-app-shell #main-content{min-width:0;max-width:1840px;margin:0 auto;padding:28px 32px 48px}
.koers-drawer.mud-drawer{width:248px;border-right:1px solid var(--line);color:var(--ink);background:var(--sidebar)}
.koers-drawer .mud-drawer-content{display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:thin}
.koers-drawer .mud-focus-trap{display:flex;flex-direction:column;min-height:100%}
.koers-drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:24px 18px 12px}
.koers-brand{color:var(--ink);font-family:var(--koers-font-brand);text-decoration:none;letter-spacing:-.055em;font-size:28px;font-weight:650;line-height:44px;white-space:nowrap}
.koers-dot{color:var(--koers-ember)}
.koers-navigation{padding:0 12px;flex:1}
.koers-navigation .mud-nav-link{position:relative;min-height:44px;padding:9px 12px;border-radius:6px;color:var(--muted);font-size:13px}
.koers-navigation .mud-nav-link .mud-nav-link-icon{color:inherit;font-size:20px;min-width:20px}
.koers-navigation .mud-nav-link .mud-nav-link-text{margin-left:12px}
.koers-navigation .mud-navmenu .mud-nav-link.active:not(.mud-nav-link-disabled){color:var(--koers-ember);background:var(--selected);font-weight:600}
.koers-navigation .mud-nav-link.active::before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:2px;background:var(--koers-ember);border-radius:2px}
.koers-navigation .mud-nav-link:hover{background:var(--koers-hover);color:var(--ink)}
.koers-nav-label{margin:24px 12px 6px;color:var(--muted);font-size:11px;font-weight:600}
.koers-theme-picker{padding:24px 18px}
.koers-theme-segments{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--koers-border);border-radius:8px;background:var(--koers-bg)}
.koers-theme-option.mud-icon-button{width:48px;height:44px;border-radius:4px;color:var(--koers-text-muted)}
.koers-theme-option.mud-icon-button:hover{background:var(--koers-hover);color:var(--koers-text)}
.koers-theme-option.mud-icon-button[aria-pressed=true]{background:var(--koers-selected);color:var(--koers-ember);box-shadow:inset 0 0 0 1px var(--koers-ember)}
.koers-theme-option.mud-icon-button:focus-visible{outline:2px solid var(--koers-focus);outline-offset:2px}
.koers-mobile-header,.koers-close-nav,.koers-bottom-nav{display:none!important}
/* The focus trap and focus restoration also run after touch/mouse activation. */
:root[data-navigation-input=pointer] .koers-app-shell :is(.koers-mobile-header,.koers-drawer,.koers-bottom-nav) :focus-visible{outline:none}
.koers-app-shell .mud-typography,.mud-dialog .mud-typography,.mud-button-root{font-family:var(--koers-font-ui)}
.mud-button-root{text-transform:none}.mud-table-cell{font-variant-numeric:tabular-nums}.mud-overlay{z-index:1300}.skip-link{z-index:1800}
@media(min-width:960px){
 :root[data-sidebar=collapsed] .koers-app-shell{padding-left:64px}
 :root[data-sidebar=collapsed] .koers-drawer.mud-drawer{width:64px}
 :root[data-sidebar=collapsed] .koers-drawer-heading{padding:16px 10px}
 :root[data-sidebar=collapsed] .koers-drawer-heading .koers-brand,:root[data-sidebar=collapsed] .koers-theme-picker,:root[data-sidebar=collapsed] .koers-nav-label,:root[data-sidebar=collapsed] .mud-nav-link-text{display:none}
 :root[data-sidebar=collapsed] .koers-navigation{padding:0 6px}
 :root[data-sidebar=collapsed] .koers-navigation .mud-nav-link{padding:12px;justify-content:center}
 :root[data-sidebar=collapsed] .koers-navigation .mud-nav-link-icon{margin:0}
}
@media(max-width:959.98px){
 .koers-app-shell{padding-left:0}
 .koers-app-shell #main-content{padding:24px 20px 48px}
 .koers-mobile-header{position:sticky;top:0;z-index:1100;display:flex!important;align-items:center;gap:12px;padding:6px 12px;border-bottom:1px solid var(--line);background:var(--paper)}
 .koers-close-nav{display:inline-flex!important}.koers-collapse-nav{display:none!important}
 .koers-drawer.mud-drawer{top:0;height:100dvh}
 .koers-drawer-heading{padding-top:8px}
}
@media(max-width:767.98px){
 .koers-app-shell #main-content{padding:24px 16px calc(96px + env(safe-area-inset-bottom))}
 .koers-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:1200;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--koers-shell);border-top:1px solid var(--koers-border)}
 .koers-bottom-nav a,.koers-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;color:var(--koers-text-muted);text-decoration:none;font-size:11px;border:0;background:transparent;border-radius:6px}
 .koers-bottom-nav .mud-icon-root{font-size:21px}.koers-bottom-nav .active{color:var(--koers-ember);background:var(--koers-selected)}
}
@media(prefers-reduced-motion:reduce){.mud-drawer,.mud-overlay,.mud-overlay-scrim{transition:none!important;animation:none!important}}
