.ui-shell { padding-left: var(--ui-sidebar-width); }
.ui-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 20;
    width: var(--ui-sidebar-width);
    display: flex;
    flex-direction: column;
    background: var(--ui-nav);
    color: var(--ui-nav-text);
    overflow-y: auto;
}
.ui-sidebar :focus-visible, .ui-menu-dialog :focus-visible { outline-color: var(--ui-focus-on-dark); }
.ui-brand {
    min-height: 4.5rem;
    padding: 1.25rem 1.25rem .875rem;
    display: flex;
    align-items: center;
    gap: .625rem;
    color: var(--ui-nav-text);
    text-decoration: none;
    font-size: 1.375rem;
    font-weight: 600;
    letter-spacing: -.02em;
}
.ui-brand:hover { color: var(--ui-nav-text); }
.ui-sidebar .ui-brand { align-items: flex-start; flex-direction: column; gap: .25rem; }
.ui-brand-context, .ui-navigation-label {
    display: block;
    color: var(--ui-nav-muted);
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .03em;
}
.ui-brand-context { padding: 0 1.25rem 1.25rem; }
.ui-brand .ui-brand-context { padding: 0; font-size: .75rem; letter-spacing: 0; }
.ui-navigation { padding: .5rem .75rem; display: grid; gap: .25rem; }
.ui-navigation-label { padding: .5rem .625rem; }
.ui-nav-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 2.75rem;
    padding: .625rem .75rem;
    border-radius: var(--ui-radius-control);
    color: var(--ui-nav-muted);
    text-decoration: none;
    font-weight: 500;
    line-height: 1.3;
    transition: background-color var(--ui-motion-fast), color var(--ui-motion-fast);
}
.ui-nav-link:hover { color: #fff; background: rgb(255 255 255 / 7%); }
.ui-nav-link[aria-current="page"] { color: #fff; background: var(--ui-nav-active); }
.ui-nav-link[aria-current="page"]::before {
    content: "";
    position: absolute;
    left: -.75rem;
    top: .625rem;
    bottom: .625rem;
    width: 3px;
    background: var(--ui-focus-on-dark);
}
.ui-sidebar .ui-icon, .ui-menu-dialog .ui-icon { filter: invert(1); opacity: .84; }
.ui-sidebar-footer { margin-top: auto; border-top: 1px solid rgb(255 255 255 / 15%); padding: 1rem; }
.ui-sidebar button.ui-nav-link, .ui-menu-dialog button.ui-nav-link { width: 100%; border: 0; background: transparent; font: inherit; font-weight: 500; text-align: left; }
.ui-sidebar button.ui-nav-link:hover, .ui-menu-dialog button.ui-nav-link:hover { background: rgb(255 255 255 / 7%); }
.ui-sidebar-toggle { width: 100%; min-height: 2.5rem; }
.ui-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: var(--ui-header-height);
    padding: .5rem var(--ui-gutter);
    background: var(--ui-surface);
    border-bottom: 1px solid var(--ui-line);
}
.ui-topbar-context { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.ui-topbar-label { font-weight: 500; color: var(--ui-text-muted); }
.ui-session { display: flex; align-items: center; gap: .75rem; min-width: 0; font-size: .875rem; }
.ui-session-name { max-width: 18rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui-session form { margin: 0; }
.ui-session .ui-button { min-height: 2rem; padding: .375rem .625rem; }
.ui-main {
    width: 100%;
    max-width: var(--ui-content-width);
    min-width: 0;
    margin: 0 auto;
    padding: 1.75rem var(--ui-gutter) 3rem;
}
.ui-main > :first-child { margin-top: 0; }
.ui-breadcrumbs { display: flex; align-items: center; gap: .5rem; margin: 0; padding: 0; list-style: none; font-size: .875rem; }
.ui-breadcrumbs a { color: var(--ui-text-muted); text-decoration: none; }
.ui-breadcrumbs a:hover { text-decoration: underline; }
.ui-mobile-toggle { width: 2.75rem; height: 2.75rem; padding: .625rem; }
.ui-mobile-fallback { margin: 0; }
.ui-mobile-fallback summary { padding: .5rem .625rem; cursor: pointer; font-weight: 500; }
.ui-mobile-fallback { margin: .5rem var(--ui-gutter); }
.ui-mobile-fallback[open] { background: var(--ui-nav); border-radius: var(--ui-radius-control); color: #fff; padding: .5rem; }
.ui-mobile-fallback[open] .ui-icon { filter: invert(1); }
.ui-mobile-fallback[open] :focus-visible { outline-color: var(--ui-focus-on-dark); }
.ui-mobile-fallback .ui-logout button.ui-nav-link { border: 0; background: transparent; width: 100%; font: inherit; text-align: left; }
.ui-public-mobile-fallback[open] .ui-public-nav { align-items: stretch; flex-direction: column; padding: .5rem; }
.ui-public-mobile-fallback[open] .ui-public-nav a { color: #fff; min-height: 2.75rem; padding: .75rem; }
.ui-public-mobile-fallback[open] .ui-public-nav .ui-button { background: transparent; color: #fff; border-color: rgb(255 255 255 / 32%); }
.ui-mobile-fallback .ui-navigation { background: var(--ui-nav); margin-top: .5rem; border-radius: var(--ui-radius-control); }
.ui-menu-dialog {
    max-width: min(20rem, calc(100vw - 2rem));
    width: 20rem;
    max-height: 100dvh;
    height: 100dvh;
    margin: 0 auto 0 0;
    padding: 0;
    border: 0;
    border-radius: 0 var(--ui-radius-overlay) var(--ui-radius-overlay) 0;
    background: var(--ui-nav);
    color: var(--ui-nav-text);
    box-shadow: var(--ui-shadow-overlay);
}
.ui-menu-dialog::backdrop { background: rgb(17 46 73 / 42%); }
.ui-menu-dialog-header { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem; gap: 1rem; }
.ui-menu-dialog-title { color: #fff; margin: 0; font-size: 1.125rem; }
.ui-menu-dialog .ui-session { display: block; padding: 1.25rem; border-top: 1px solid rgb(255 255 255 / 15%); }
.ui-menu-dialog .ui-session-name { display: block; white-space: normal; margin-bottom: .75rem; }
.ui-menu-dialog .ui-button, .ui-sidebar-toggle { color: #fff; border-color: rgb(255 255 255 / 32%); background: transparent; }
.ui-sidebar .ui-sidebar-toggle { color: #fff; border-color: rgb(255 255 255 / 32%); background: transparent; }
.ui-menu-dialog .ui-button:hover, .ui-sidebar-toggle:hover { background: rgb(255 255 255 / 10%); color: #fff; }
.ui-menu-dialog-close { flex: 0 0 auto; width: 2.75rem; height: 2.75rem; }
.ui-home { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 2rem; align-items: start; }
.ui-home-heading { grid-column: 1 / -1; }
.ui-module-list { border-top: 2px solid var(--ui-nav); background: var(--ui-surface); }
.ui-module-link {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--ui-line);
    color: var(--ui-text);
    text-decoration: none;
    transition: background-color var(--ui-motion-fast);
}
.ui-module-link:hover { background: var(--ui-info-bg); color: var(--ui-text); }
.ui-module-icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; background: var(--ui-surface-subtle); border-radius: var(--ui-radius-control); }
.ui-module-title { display: block; font-size: 1.0625rem; font-weight: 600; margin-bottom: .25rem; }
.ui-module-description { display: block; color: var(--ui-text-muted); font-size: .875rem; }
.ui-module-action { color: var(--ui-action); font-size: .875rem; font-weight: 500; display: flex; align-items: center; gap: .5rem; }
.ui-profile { padding: 1.25rem 0; border-top: 1px solid var(--ui-line); }
.ui-profile h2 { margin: 0 0 1rem; }
.ui-profile dl { display: grid; gap: 1rem; margin: 0; }
.ui-profile dt { color: var(--ui-text-muted); font-size: .8125rem; font-weight: 400; }
.ui-profile dd { margin: .25rem 0 0; font-weight: 500; overflow-wrap: anywhere; }
.ui-access-layout { padding-left: 0; }
.ui-access-topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 2rem; border-bottom: 1px solid var(--ui-line); background: var(--ui-surface); }
.ui-access-descriptor { font-size: .8125rem; color: var(--ui-text-muted); }
.ui-access-brand { color: var(--ui-nav); font-size: 1.375rem; font-weight: 600; text-decoration: none; }
.ui-access-main { max-width: 30rem; padding-top: clamp(2rem, 8vh, 6rem); }
.ui-access-panel { background: var(--ui-surface); border: 1px solid var(--ui-line); border-top: 3px solid var(--ui-nav); border-radius: var(--ui-radius-surface); padding: 2rem; }
.ui-access-panel h1 { margin: 0 0 .5rem; }
.ui-access-description { color: var(--ui-text-muted); margin-bottom: 1.5rem; }
.ui-access-footer { color: var(--ui-text-tertiary); font-size: .8125rem; text-align: center; margin: 1.25rem 0 0; }
.ui-access-panel .ui-button--primary { width: 100%; }
.ui-access-form { display: grid; gap: 1.25rem; }
.ui-eyebrow { font-size: .75rem; color: var(--ui-text-tertiary); font-weight: 500; margin-bottom: .5rem; }
.ui-public-header { background: var(--ui-surface); border-bottom: 1px solid var(--ui-line); }
.ui-public-header-inner { max-width: 70rem; margin: auto; padding: .75rem var(--ui-gutter); display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 4rem; }
.ui-public-brand { color: var(--ui-nav); font-size: 1.25rem; font-weight: 600; text-decoration: none; }
.ui-public-brand .ui-brand-descriptor { display: block; color: var(--ui-text-muted); font-size: .75rem; font-weight: 400; }
.ui-public-header .ui-brand { color: var(--ui-nav); padding: 0; min-height: 2.75rem; }
.ui-public-nav { display: flex; align-items: center; gap: .5rem; }
.ui-public-nav a { font-size: .875rem; }
.ui-public-nav form { margin: 0; }
.ui-public-main { max-width: 70rem; padding: 1.75rem var(--ui-gutter) 3rem; min-width: 0; margin: auto; }
@media (min-width: 1024px) {
    .ui-mobile-fallback, .ui-shell .ui-mobile-toggle, .ui-public-layout .ui-mobile-toggle { display: none; }
    .ui-shell[data-shell-expanded="false"] { --ui-sidebar-width: 4.5rem; }
    .ui-shell[data-shell-expanded="false"] .ui-brand { font-size: .875rem; padding: 1.25rem .375rem; justify-content: center; }
    .ui-shell[data-shell-expanded="false"] .ui-brand-context,
    .ui-shell[data-shell-expanded="false"] .ui-navigation-label { display: none; }
    .ui-shell[data-shell-expanded="false"] .ui-navigation { padding: .5rem .75rem; }
    .ui-shell[data-shell-expanded="false"] .ui-nav-link { justify-content: center; padding: .75rem; }
    .ui-shell[data-shell-expanded="false"] .ui-nav-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .ui-shell[data-shell-expanded="false"] .ui-nav-link:hover .ui-nav-label,
    .ui-shell[data-shell-expanded="false"] .ui-nav-link:focus-visible .ui-nav-label { position: fixed; left: 4.75rem; width: auto; height: auto; overflow: visible; clip-path: none; padding: .5rem .75rem; background: var(--ui-nav); color: #fff; border-radius: var(--ui-radius-control); z-index: 30; box-shadow: var(--ui-shadow-menu); }
    .ui-shell[data-shell-expanded="false"] .ui-sidebar-footer { padding: .75rem; }
    .ui-shell[data-shell-expanded="false"] .ui-sidebar-toggle .ui-nav-label { display: none; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
    .ui-shell:not([data-shell-expanded="true"]) { --ui-sidebar-width: 4.5rem; }
}
@media (max-width: 1279px) { .ui-home { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; } }
@media (max-width: 1023px) {
    .ui-public-layout .ui-public-desktop-navigation { display: none; }
    .ui-public-menu .ui-public-nav { align-items: stretch; flex-direction: column; padding: 1rem; }
    .ui-public-menu .ui-public-nav a { color: #fff; min-height: 2.75rem; padding: .75rem; }
    .ui-public-menu .ui-public-nav .ui-button { justify-content: flex-start; }
    .ui-public-menu .ui-public-nav form .ui-button { width: 100%; }
    .ui-shell { padding-left: 0; }
    .ui-sidebar { display: none; }
    .ui-topbar { min-height: 4rem; padding-block: .25rem; gap: .5rem; }
    .ui-topbar > .ui-session { display: none; }
    .ui-main { padding-top: 1.25rem; }
    .ui-topbar-label { font-size: .875rem; }
}
@media (max-width: 767px) {
    .ui-public-header-inner { min-height: 4rem; padding-block: .5rem; }
    .ui-module-link { padding: 1rem; gap: .75rem; grid-template-columns: 2.25rem minmax(0, 1fr) auto; }
    .ui-module-icon { width: 2.25rem; height: 2.25rem; }
    .ui-module-action span { display: none; }
    .ui-access-topbar { padding: 1rem; }
    .ui-access-panel { padding: 1.5rem; }
    .ui-access-main { padding-top: 2rem; }
}
@media print {
    .ui-shell { padding-left: 0; }
    .ui-sidebar, .ui-topbar, .ui-skip-link, .ui-mobile-fallback { display: none; }
    .ui-main { padding: 0; }
}
