.app-shell { min-height:100vh; display:flex; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:20; width:244px; padding:24px 14px 18px; display:flex; flex-direction:column; background:linear-gradient(165deg, #07244b 0%, #092a55 58%, #0d3970 100%); color:#d8e6f8; }
.brand { display:flex; align-items:center; gap:11px; padding:0 9px 24px; }
.brand-logo { width:42px; height:42px; object-fit:contain; }
.brand strong { display:block; color:#fff; }
.brand span { color:#9fbce0; font-size:11px; }
.nav-list { display:grid; gap:6px; }
.nav-item { min-height:38px; display:flex; align-items:center; gap:10px; padding:0 11px; border-radius:9px; color:#cfe0f6; text-decoration:none; font-size:12px; font-weight:700; }
.nav-item.active,.nav-item:hover { background:rgba(255,255,255,.1); color:#fff; }
.nav-item svg { width:17px; height:17px; }
.sidebar-footer { margin-top:auto; display:flex; align-items:center; gap:8px; padding:12px; border-radius:10px; background:rgba(255,255,255,.08); color:#c9dcf4; font-size:11px; }
.main-content { width:calc(100% - 244px); margin-left:244px; }
.topbar { min-height:76px; padding:0 34px; display:flex; align-items:center; justify-content:space-between; gap:18px; background:rgba(255,255,255,.92); border-bottom:1px solid var(--line); }
.crumb span { display:block; margin-bottom:2px; color:var(--muted); font-size:11px; }
.crumb strong { font-size:14px; }
.top-actions { display:flex; align-items:center; gap:9px; }
.file-meta { max-width:320px; overflow:hidden; color:var(--muted); font-size:12px; white-space:nowrap; text-overflow:ellipsis; }
.empty-state { width:min(1120px, calc(100% - 48px)); min-height:calc(100vh - 76px); margin:auto; padding:64px 0; display:grid; grid-template-columns:1fr 1.08fr; align-items:center; gap:58px; }
.welcome-copy h1 { max-width:600px; margin:12px 0 16px; color:var(--ink); font-size:clamp(30px,4vw,47px); line-height:1.08; letter-spacing:-1.5px; }
.welcome-copy p { max-width:540px; color:var(--muted); font-size:16px; }
.dashboard { max-width:1600px; margin:0 auto; padding:30px 34px 44px; }
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.page-heading h1 { margin:4px 0; color:var(--ink); font-size:27px; letter-spacing:-.7px; }
.page-heading p { margin:0; color:var(--muted); font-size:13px; }
.updated-at { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:11px; }
.updated-at svg { width:18px; height:18px; color:var(--blue); }
.updated-at strong { display:block; color:#45607d; font-size:12px; }
