body:has(.app-topbar){--app-top-offset: var(--topbar-height)}.app-frame{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.app-frame.is-ready{transition:grid-template-columns .18s ease}.app-frame.is-collapsed{grid-template-columns:var(--sidebar-width-collapsed) minmax(0,1fr)}.app-frame-bare{display:contents}.app-frame>.main-wrapper{min-width:0}.app-sidebar{position:sticky;top:0;align-self:start;height:100vh;height:100dvh;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-2);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));background:var(--surface-secondary);border-right:1px solid var(--border-color);overflow:hidden;z-index:1200}.app-sidebar__head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-3)}.app-sidebar__brand{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1;color:var(--text-primary);text-decoration:none}.app-sidebar__brand:hover{color:var(--text-primary)}.app-sidebar .app-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px;border-radius:var(--radius-md);background:var(--accent-interactive);color:var(--text-inverse);font-size:var(--font-size-sm);font-weight:700;letter-spacing:-.02em}.app-sidebar__brand-copy{display:flex;flex-direction:column;min-width:0}.app-sidebar__brand-name{font-size:var(--font-size-sm);font-weight:700;line-height:var(--line-height-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-sidebar__brand-note{font-size:var(--font-size-xs);color:var(--text-secondary);line-height:var(--line-height-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-sidebar__collapse{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;flex:0 0 32px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background-color .16s ease,color .16s ease,transform .18s ease}.app-sidebar__collapse:hover{background:var(--surface-hover);color:var(--text-primary)}.app-sidebar__nav{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.app-sidebar__group-title{padding:var(--space-3) var(--space-2) var(--space-1);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.02em;color:var(--text-muted)}.app-nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;line-height:var(--line-height-tight);text-decoration:none;white-space:nowrap;transition:background-color .16s ease,color .16s ease}.app-nav-item:hover{background:var(--surface-hover);color:var(--text-primary)}.app-nav-item.is-active{background:var(--sidebar-nav-active-bg);color:var(--sidebar-nav-active-text);font-weight:600}.app-nav-item__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;flex:0 0 20px;font-size:var(--font-size-sm)}.app-nav-item.is-active .app-nav-item__icon{color:var(--accent-text)}.app-nav-item__text{min-width:0;overflow:hidden;text-overflow:ellipsis}.app-nav-item__badge{margin-left:auto;padding:0 6px;border-radius:999px;background:var(--accent-interactive);color:var(--text-inverse);font-size:var(--font-size-xs);font-weight:700}.app-sidebar__foot{display:flex;flex-direction:column;gap:2px;padding-top:var(--space-3);border-top:1px solid var(--border-color)}.app-sidebar__theme{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;margin-top:var(--space-2);padding:2px;border-radius:var(--radius-md);background:var(--surface-tertiary)}.app-theme-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:32px;padding:6px 4px;border:none;border-radius:calc(var(--radius-md) - 2px);background:transparent;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:background-color .16s ease,color .16s ease}.app-theme-btn:hover{color:var(--text-primary)}.app-theme-btn.is-active{background:var(--card-bg);color:var(--text-primary);box-shadow:var(--shadow-sm)}.app-theme-btn:focus-visible,.app-theme-btn.is-active:focus-visible{outline:3px solid var(--focus-ring-color);outline-offset:2px}.app-theme-btn__text{display:none}.app-frame.is-collapsed .app-sidebar__brand-copy,.app-frame.is-collapsed .app-nav-item__text,.app-frame.is-collapsed .app-sidebar__group-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.app-frame.is-collapsed .app-sidebar{padding-inline:var(--space-2);align-items:stretch}.app-frame.is-collapsed .app-sidebar__head{flex-direction:column;gap:var(--space-2);padding-inline:0}.app-frame.is-collapsed .app-nav-item,.app-frame.is-collapsed .app-theme-btn{justify-content:center}.app-frame.is-collapsed .app-sidebar__collapse i{transform:rotate(180deg)}.app-frame.is-collapsed .app-sidebar__theme{grid-template-columns:minmax(0,1fr)}.app-frame.is-collapsed .app-nav-item__badge{position:absolute;margin:0;transform:translate(14px,-10px)}.app-topbar{position:sticky;top:0;z-index:1100;display:flex;align-items:center;gap:var(--space-3);height:var(--topbar-height);padding:0 var(--space-6);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-primary) 94%,var(--mix-highlight) 6%),var(--surface-primary));border-bottom:1px solid var(--border-color);box-shadow:var(--shadow)}.app-topbar__drawer{display:none;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;flex:0 0 36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer}.app-topbar__drawer:hover{background:var(--surface-hover);color:var(--text-primary)}.app-topbar__search{display:flex;align-items:center;gap:var(--space-2);width:100%;max-width:480px;height:36px;min-height:36px;padding:0 var(--space-3);border:1px solid color-mix(in srgb,var(--border-color) 80%,var(--surface-inverse) 20%);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-secondary) 92%,var(--mix-highlight) 8%),var(--surface-secondary));color:var(--text-secondary);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.app-topbar__search:hover{border-color:var(--border-color-strong);background:var(--surface-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-interactive) 8%,transparent)}.app-topbar__search-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-topbar__kbd{flex:0 0 auto;padding:1px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-tertiary);color:var(--text-muted);font-family:inherit;font-size:var(--font-size-xs)}.app-topbar__tools{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.app-frame .main-content{padding:var(--space-6) 0 var(--space-8)}.app-frame .main-content>.container{max-width:1280px;padding-inline:var(--space-6);padding-block:0}.app-frame .footer{margin-top:auto}.app-frame.app-shell{display:grid}.app-frame.app-shell>.main-wrapper>.main-content{padding:0}.app-frame.app-shell>.main-wrapper>.main-content .content-area>.page-head,.app-frame.app-shell>.main-wrapper>.main-content>.page-head{margin:0;padding:var(--space-6) var(--space-6) 0}.portal-page-head__title{margin:0;font-size:var(--page-title-size);font-weight:var(--page-title-weight);line-height:var(--line-height-tight);letter-spacing:-.02em;color:var(--text-primary)}.portal-page-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}@media(max-width:1023px){.app-frame,.app-frame.is-collapsed{grid-template-columns:minmax(0,1fr)}.app-topbar__drawer{display:inline-flex}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);transform:translate(-100%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s;box-shadow:var(--shadow-lg)}.app-sidebar.is-open{transform:translate(0);visibility:visible;transition:transform .2s ease,visibility 0s}.app-sidebar__collapse{display:none}.app-frame.is-collapsed .app-sidebar__brand-copy,.app-frame.is-collapsed .app-nav-item__text,.app-frame.is-collapsed .app-sidebar__group-title{position:static;width:auto;height:auto;clip-path:none}.app-frame.is-collapsed .app-nav-item,.app-frame.is-collapsed .app-theme-btn{justify-content:flex-start}.app-frame.is-collapsed .app-sidebar__head{flex-direction:row}.app-frame.is-collapsed .app-sidebar__theme{grid-template-columns:repeat(3,minmax(0,1fr))}.app-sidebar-backdrop{position:fixed;inset:0;z-index:1150;background:var(--overlay-backdrop-soft);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .2s ease}.app-sidebar-backdrop.is-visible{opacity:1;pointer-events:auto}.app-topbar{padding-inline:var(--space-4)}.app-frame .main-content>.container{padding-inline:var(--space-4)}}@media(max-width:640px){.app-topbar__search-text{display:none}.app-topbar__search{width:36px;max-width:36px;justify-content:center;padding:0}.app-topbar__kbd{display:none}}body.app-drawer-open{overflow:hidden}@media(prefers-reduced-motion:reduce){.app-frame,.app-sidebar,.app-sidebar-backdrop,.app-nav-item,.app-theme-btn{transition:none}}
