:root { --app-sidebar-width: 17.5rem; }
.app-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 40; display: flex; width: var(--app-sidebar-width); flex-direction: column; padding: 1rem; border-right: 1px solid color-mix(in srgb, var(--color-base-content) 9%, transparent); background: var(--color-base-100); box-shadow: 12px 0 30px rgb(15 23 42 / .05); transition: width .2s ease; }
.sidebar-brand { display: flex; align-items: center; gap: .75rem; min-height: 3.5rem; padding: 0 .35rem; overflow: hidden; }.sidebar-logo { display: grid; width: 2.8rem; height: 2.8rem; flex: 0 0 auto; place-items: center; border-radius: .9rem; background: var(--color-primary); color: var(--color-primary-content); font-size: 1.2rem; font-weight: 900; }.sidebar-brand strong { white-space: nowrap; font-size: 1.05rem; }.sidebar-brand button { margin-left: auto; width: 2rem; height: 2rem; border-radius: .7rem; background: var(--color-base-200); font-size: 1.25rem; }
.sidebar-navigation { display: grid; align-content: start; gap: .35rem; margin-top: 1rem; overflow-y: auto; }.sidebar-link, .sidebar-group summary { position: relative; display: flex; align-items: center; gap: .8rem; min-height: 3rem; padding: .6rem .75rem; border-radius: .9rem; font-weight: 760; cursor: pointer; white-space: nowrap; }.sidebar-link:hover, .sidebar-group summary:hover { background: var(--color-base-200); }.sidebar-link.is-active { background: color-mix(in srgb, var(--color-primary) 13%, transparent); color: var(--color-primary); }.sidebar-symbol { display: grid; width: 2rem; flex: 0 0 auto; place-items: center; font-size: 1.35rem; font-weight: 700; }.sidebar-group summary { list-style: none; }.sidebar-group summary::-webkit-details-marker { display: none; }.sidebar-group summary i { margin-left: auto; font-style: normal; transition: transform .15s ease; }.sidebar-group[open] summary i { transform: rotate(180deg); }.sidebar-group > div { display: grid; gap: .2rem; margin: .2rem 0 .4rem 2.75rem; padding-left: .7rem; border-left: 1px solid color-mix(in srgb, var(--color-base-content) 12%, transparent); }.sidebar-group > div a, .sidebar-soon { padding: .55rem .65rem; border-radius: .7rem; font-size: .83rem; }.sidebar-group > div a:hover, .sidebar-group > div a.is-active { background: color-mix(in srgb, var(--color-primary) 10%, transparent); color: var(--color-primary); }.sidebar-soon { display: flex; justify-content: space-between; opacity: .48; }.sidebar-soon small { padding: .1rem .35rem; border-radius: 999px; background: var(--color-base-200); }.sidebar-footer { display: grid; gap: .25rem; margin-top: auto; padding-top: .8rem; border-top: 1px solid color-mix(in srgb, var(--color-base-content) 9%, transparent); }
.app-main { width: calc(100% - var(--app-sidebar-width)); min-height: 100vh; margin-left: var(--app-sidebar-width); padding: 1.5rem 2rem 2rem; transition: width .2s ease, margin-left .2s ease; }.app-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }.app-page-header p { font-size: .8rem; opacity: .5; }.app-page-header h1 { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 900; letter-spacing: -.03em; }.app-page-header span { display: block; margin-top: .2rem; opacity: .62; }
.app-sidebar.is-collapsed { width: 6rem; }.app-sidebar.is-collapsed .sidebar-brand strong, .app-sidebar.is-collapsed .sidebar-link > span:not(.sidebar-symbol), .app-sidebar.is-collapsed .sidebar-group summary > span:not(.sidebar-symbol), .app-sidebar.is-collapsed .sidebar-group summary i { display: none; }.app-sidebar.is-collapsed .sidebar-brand button { position: absolute; top: 4.6rem; left: 2rem; transform: rotate(180deg); }.app-sidebar.is-collapsed .sidebar-brand { justify-content: center; }.app-sidebar.is-collapsed > .sidebar-link { margin-top: 2rem; }.app-sidebar.is-collapsed .sidebar-link, .app-sidebar.is-collapsed .sidebar-group summary { justify-content: center; padding-inline: .4rem; }.app-sidebar.is-collapsed .sidebar-group > div { position: fixed; left: 5.2rem; z-index: 60; display: none; width: 15rem; margin: -3rem 0 0; padding: .65rem; border: 1px solid var(--color-base-300); border-radius: 1rem; background: var(--color-base-100); box-shadow: 0 18px 40px rgb(15 23 42 / .16); }.app-sidebar.is-collapsed .sidebar-group[open] > div { display: grid; }.sidebar-is-collapsed .app-main { width: calc(100% - 6rem); margin-left: 6rem; }
.mobile-topbar, .mobile-bottom-nav, .mobile-more-sheet, .mobile-more-backdrop { display: none; }
@media (max-width: 1023px) {
  .app-sidebar { display: none; }.app-main { width: 100%; margin-left: 0; padding: 1.2rem 1rem 6rem; }.mobile-topbar { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; min-height: 3.8rem; padding: .65rem 1rem; background: color-mix(in srgb, var(--color-base-100) 88%, transparent); backdrop-filter: blur(15px); box-shadow: 0 5px 18px rgb(15 23 42 / .06); }.mobile-topbar strong { font-size: 1.05rem; }.mobile-topbar > div { display: flex; gap: .3rem; }.mobile-topbar button { position: relative; display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border-radius: .9rem; font-size: 1.25rem; }
  .mobile-bottom-nav { position: fixed; z-index: 50; right: .8rem; bottom: max(.7rem, env(safe-area-inset-bottom)); left: .8rem; display: block; border: 1px solid color-mix(in srgb, var(--color-base-content) 10%, transparent); border-radius: 1.5rem; background: color-mix(in srgb, var(--color-base-100) 92%, transparent); box-shadow: 0 15px 40px rgb(15 23 42 / .16); backdrop-filter: blur(18px); }.mobile-nav-grid { display: grid; grid-template-columns: repeat(5, 1fr); height: 4.4rem; }.mobile-nav-grid a, .mobile-nav-grid button { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .15rem; color: color-mix(in srgb, var(--color-base-content) 58%, transparent); }.mobile-nav-grid span { font-size: 1.35rem; line-height: 1; }.mobile-nav-grid small { font-size: .66rem; }.mobile-nav-grid .is-active { color: var(--color-primary); font-weight: 800; }.mobile-nav-grid .mobile-new span { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border-radius: .85rem; background: var(--color-primary); color: var(--color-primary-content); box-shadow: 0 8px 20px color-mix(in srgb, var(--color-primary) 30%, transparent); }
  .mobile-more-backdrop { position: fixed; inset: 0; z-index: 70; background: rgb(15 23 42 / .46); backdrop-filter: blur(3px); }.mobile-more-backdrop:not([hidden]) { display: block; }.mobile-more-sheet { position: fixed; z-index: 80; right: 0; bottom: 0; left: 0; display: block; padding: .65rem 1rem calc(1.2rem + env(safe-area-inset-bottom)); border-radius: 1.8rem 1.8rem 0 0; background: var(--color-base-100); box-shadow: 0 -20px 50px rgb(15 23 42 / .18); transform: translateY(105%); transition: transform .2s ease; }.mobile-more-sheet.is-open { transform: translateY(0); }.mobile-sheet-handle { width: 3rem; height: .28rem; margin: 0 auto .8rem; border-radius: 999px; background: var(--color-base-300); }.mobile-sheet-heading { display: flex; align-items: center; justify-content: space-between; padding: .2rem .25rem .8rem; }.mobile-sheet-heading small { opacity: .5; }.mobile-sheet-heading h2 { font-size: 1.5rem; font-weight: 900; }.mobile-sheet-heading button { width: 2.5rem; height: 2.5rem; border-radius: .8rem; background: var(--color-base-200); font-size: 1.4rem; }.mobile-sheet-links { display: grid; gap: .55rem; }.mobile-sheet-links a { display: grid; grid-template-columns: 2.8rem 1fr; align-items: center; gap: .75rem; padding: .85rem; border-radius: 1rem; background: var(--color-base-200); }.mobile-sheet-links > a > span { display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border-radius: .85rem; background: color-mix(in srgb, var(--color-primary) 12%, transparent); color: var(--color-primary); font-size: 1.2rem; }.mobile-sheet-links strong, .mobile-sheet-links small { display: block; }.mobile-sheet-links small { margin-top: .1rem; opacity: .56; }.mobile-sheet-open { overflow: hidden; }
  .app-page-header { align-items: flex-start; flex-direction: column; }.app-page-header h1 { font-size: 1.85rem; }
}

/* Refined navigation typography and outline icon language. */
:root { --app-sidebar-width: 16.25rem; }
.nav-icon { width: 1.35rem; height: 1.35rem; }
.sidebar-logo { width: 2.7rem; height: 2.7rem; font-size: 0; }
.sidebar-logo .nav-icon { width: 1.62rem; height: 1.62rem; }
.sidebar-brand { gap: .7rem; }
.sidebar-brand strong { font-size: .94rem; font-weight: 700; letter-spacing: -.015em; }
.sidebar-brand button { display: grid; place-items: center; color: color-mix(in srgb, var(--color-base-content) 68%, transparent); font-size: 1.05rem; }
.sidebar-navigation { gap: .25rem; margin-top: .85rem; }
.sidebar-link,
.sidebar-group summary {
  gap: .7rem;
  min-height: 2.85rem;
  padding: .52rem .68rem;
  font-size: .87rem;
  font-weight: 600;
}
.sidebar-link.is-active { font-weight: 700; background: color-mix(in srgb, var(--color-primary) 11%, transparent); }
.sidebar-symbol { width: 1.8rem; font-size: 0; font-weight: 400; }
.sidebar-group summary i { display: grid; place-items: center; }
.sidebar-group summary i .nav-icon { width: .95rem; height: .95rem; }
.sidebar-group > div { margin-left: 2.5rem; padding-left: .6rem; }
.sidebar-group > div a,
.sidebar-soon { padding: .48rem .58rem; font-size: .78rem; font-weight: 500; }
.sidebar-group > div a.is-active { font-weight: 650; }
.sidebar-soon small { font-size: .61rem; }
.sidebar-footer { gap: .15rem; }

@media (max-width: 1023px) {
  .mobile-topbar strong { font-size: .96rem; font-weight: 700; }
  .mobile-topbar button { font-size: 0; }
  .mobile-topbar .nav-icon { width: 1.42rem; height: 1.42rem; }
  .mobile-nav-grid a,
  .mobile-nav-grid button { gap: .2rem; }
  .mobile-nav-grid span { display: grid; place-items: center; font-size: 0; }
  .mobile-nav-grid .nav-icon { width: 1.34rem; height: 1.34rem; }
  .mobile-nav-grid small { font-size: .64rem; font-weight: 500; }
  .mobile-nav-grid .is-active { font-weight: 500; }
  .mobile-nav-grid .is-active small { font-weight: 700; }
  .mobile-nav-grid .mobile-new .nav-icon { width: 1.45rem; height: 1.45rem; }
  .mobile-sheet-links > a > span { font-size: 0; }
  .mobile-sheet-links .nav-icon { width: 1.35rem; height: 1.35rem; }
  .mobile-sheet-links .mobile-sheet-logout {
    margin-top: .3rem;
    border: 1px solid color-mix(in srgb, var(--color-error) 18%, transparent);
    background: color-mix(in srgb, var(--color-error) 7%, var(--color-base-100));
  }
  .mobile-sheet-links .mobile-sheet-logout > span {
    background: color-mix(in srgb, var(--color-error) 12%, transparent);
    color: var(--color-error);
  }
  .mobile-sheet-links .mobile-sheet-logout strong { color: var(--color-error); }
}
