.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}
.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);position:sticky;top:0;height:100vh}
.brand{font-weight:600;font-size:var(--fs-lg);padding:var(--space-2) var(--space-3) var(--space-4)}
.nav a,.nav span{display:block;padding:8px var(--space-3);border-radius:var(--radius);color:var(--text);text-decoration:none;font-size:var(--fs-base)}
.nav a:hover{background:var(--bg)} .nav a[aria-current="page"]{background:var(--accent-soft);color:var(--accent);font-weight:500}
.nav span{color:var(--muted);cursor:default}
.main{min-width:0;display:flex;flex-direction:column}
.header{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-5);background:var(--surface);border-bottom:1px solid var(--border)}
.header .who{display:flex;align-items:center;gap:var(--space-3);font-size:var(--fs-sm)}
.menu-btn{display:none}
.page{padding:var(--space-5);max-width:1100px;width:100%}
@media (max-width:820px){
  .shell{grid-template-columns:1fr}
  .sidebar{position:fixed;inset:0 auto 0 0;width:260px;z-index:40;transform:translateX(-100%);transition:transform .15s}
  .sidebar.open{transform:none}
  .menu-btn{display:inline-flex}
  .header{padding:0 var(--space-4)} .page{padding:var(--space-4)}
}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--space-4)}
.auth-card{width:min(400px,100%)}
