.tm-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100dvh}.tm-shell[data-sidebar=collapsed]{--sidebar-width:56px}
.tm-sidebar{position:sticky;top:0;height:100dvh;overflow-y:auto;padding:0 8px 12px;background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;gap:12px}
.tm-brand{display:flex;align-items:center;gap:10px;min-height:60px;padding:0 8px;color:#fff;font-weight:600;white-space:nowrap}.tm-brand-mark{font-size:20px;width:24px;text-align:center;flex:none}
.tm-sidebar-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;border:0;border-radius:8px;padding:8px 10px;background:transparent;color:var(--sidebar-text);font:500 13px/20px var(--font);cursor:pointer}
.tm-sidebar-toggle:hover{background:#253449}
.tm-nav{display:grid;gap:4px}.tm-nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;min-height:36px;color:var(--sidebar-text);font:500 14px/20px var(--font);text-decoration:none;border-radius:8px;white-space:nowrap;overflow:hidden}
.tm-nav .tm-icon{width:18px;height:18px}.tm-nav-label{overflow:hidden;text-overflow:ellipsis}
.tm-nav a[aria-current=page]{background:var(--sidebar-selected-bg);color:var(--sidebar-selected-text);box-shadow:inset 3px 0 var(--sidebar-selected-text)}
.tm-shell[data-sidebar=collapsed] .tm-nav-label,.tm-shell[data-sidebar=collapsed] .tm-brand-title,.tm-shell[data-sidebar=collapsed] .tm-toggle-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.tm-shell[data-sidebar=collapsed] .tm-brand{padding:0;justify-content:center}
.tm-content{min-width:0}.tm-topbar{display:flex;align-items:center;gap:12px;padding:0 24px;min-height:60px;position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--border);z-index:20}
.tm-topbar-tools{margin-left:auto;display:flex;align-items:center;gap:12px}.tm-main{max-width:1600px;padding:24px;margin:0 auto}.tm-ui .tm-menu-button{display:none}
.tm-scrim{display:none}.tm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.tm-stack{display:grid;gap:20px;align-content:start}
@media(max-width:767px){.tm-shell,.tm-shell[data-sidebar=collapsed]{grid-template-columns:minmax(0,1fr)}.tm-sidebar{position:fixed;top:0;left:0;z-index:60;width:208px;max-width:85vw;height:100dvh;transform:translateX(-100%);transition:transform .16s}.tm-shell[data-drawer=open] .tm-sidebar{transform:none}.tm-shell[data-drawer=open] .tm-scrim{display:block;position:fixed;inset:0;background:var(--overlay);z-index:50;border:0}
.tm-shell[data-sidebar=collapsed] .tm-nav-label,.tm-shell[data-sidebar=collapsed] .tm-brand-title,.tm-shell[data-sidebar=collapsed] .tm-toggle-label{position:static;width:auto;height:auto;clip-path:none}
.tm-nav a,.tm-sidebar-toggle{min-height:44px}.tm-ui .tm-menu-button{display:inline-flex}.tm-main{padding:16px}.tm-topbar{padding:8px 16px;flex-wrap:wrap}.tm-topbar-tools{gap:8px}.tm-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.tm-sidebar{transition:none}}

@media(max-width:767px){.tm-topbar-tools{width:100%;min-width:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tm-topbar-tools label{min-width:0}.tm-topbar-tools label>.tm-hint{display:none}.tm-topbar-tools select{min-width:0;width:100%}.tm-sidebar{z-index:1100}.tm-shell[data-drawer=open] .tm-scrim{z-index:1090}}

.tm-sidebar :is(a,button):focus-visible{outline-color:var(--sidebar-selected-text)}

/* Dark menu keeps its own scrollbar palette in both application themes. */
.tm-sidebar{color-scheme:dark;scrollbar-width:thin;scrollbar-color:var(--sidebar-scrollbar-thumb) var(--sidebar)}
.tm-sidebar::-webkit-scrollbar{width:8px;height:8px;background:var(--sidebar)}
.tm-sidebar::-webkit-scrollbar-track,.tm-sidebar::-webkit-scrollbar-corner{background:var(--sidebar)}
.tm-sidebar::-webkit-scrollbar-thumb{background:var(--sidebar-scrollbar-thumb);border:2px solid var(--sidebar);border-radius:8px}
.tm-sidebar::-webkit-scrollbar-thumb:hover{background:var(--sidebar-scrollbar-thumb-hover)}
@media(forced-colors:active){.tm-sidebar{scrollbar-color:auto}}
