/* ════════════════════════════════════════
   ERP v2 — 布局系统
   ════════════════════════════════════════ */

/* ── 整体布局 ── */
.wrap{display:flex;min-height:100vh}

/* ── 侧边栏 ── */
.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);position:fixed;top:0;left:0;bottom:0;z-index:100;display:flex;flex-direction:column;transition:var(--transition);border-right:1px solid rgba(255,255,255,.06);color:var(--sidebar-text)}
.sidebar-brand{padding:22px 20px 18px;border-bottom:1px solid rgba(255,255,255,.06)}
.sidebar-brand .logo{font-size:17px;font-weight:700;color:var(--sidebar-text-active);display:flex;align-items:center;gap:8px;letter-spacing:.5px}
.sidebar-brand .logo small{font-size:11px;font-weight:400;color:var(--sidebar-text);opacity:.6;margin-left:2px}
.sidebar-nav{flex:1;overflow-y:auto;padding:10px 0}
.sidebar-nav::-webkit-scrollbar{width:4px}
.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
.nav-item{display:flex;align-items:center;gap:12px;padding:11px 20px;color:var(--sidebar-text);cursor:pointer;font-size:var(--font-lg);transition:var(--transition);border-left:3px solid transparent;text-decoration:none;margin:2px 8px;border-radius:6px}
.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-active)}
.nav-item.active{background:rgba(67,97,238,.15);border-left-color:var(--sidebar-active);color:var(--sidebar-text-active);font-weight:600}
.nav-icon{font-size:17px;width:var(--sidebar-w-icon);text-align:center;flex-shrink:0}
.nav-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-footer{padding:16px 20px;border-top:1px solid rgba(255,255,255,.06);font-size:var(--font-sm);color:var(--sidebar-text);opacity:.6}
.sidebar-version{padding:4px 20px 14px;font-size:10px;color:rgba(255,255,255,.15);text-align:center;letter-spacing:1px}

/* ── 右侧内容区 ── */
.right-wrap{display:flex;flex-direction:column;margin-left:var(--sidebar-w);width:calc(100% - var(--sidebar-w));min-height:100vh}
.main{flex:1;padding:28px 32px}
.section-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:20px;letter-spacing:-.3px}
.section-divider{height:1px;background:linear-gradient(90deg,var(--border),transparent);margin:6px 0 22px}

/* ── 模块页头 ── */
.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:10px}
.module-header h2{font-size:18px;font-weight:700;color:var(--text);margin:0;letter-spacing:-.3px}
.module-actions{display:flex;gap:8px;flex-shrink:0}

/* ── 顶部导航栏 ── */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:0;background:linear-gradient(135deg,var(--primary),#3b0a8c);height:38px;box-shadow:0 2px 8px rgba(67,97,238,.2)}
.tab-header{display:flex;gap:0;align-items:stretch;height:100%;flex:1;overflow-x:auto}
.tab-header::-webkit-scrollbar{height:0}
.tab-item{display:inline-flex;align-items:center;gap:4px;padding:0 16px;font-size:var(--font-sm);color:rgba(255,255,255,.75);cursor:pointer;white-space:nowrap;transition:var(--transition);position:relative;background:transparent}
.tab-item+.tab-item::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:1px;background:rgba(255,255,255,.15)}
.tab-item.active{background:rgba(255,255,255,.15);color:#fff;font-weight:600}
.tab-item:hover:not(.active){background:rgba(255,255,255,.08);color:#fff}
.close-tab{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:10px;color:rgba(255,255,255,.4);transition:var(--transition);margin-left:4px}
.close-tab:hover{background:rgba(255,255,255,.2);color:#fff}
.topbar-right{display:flex;align-items:center;gap:14px;margin-left:12px;padding-right:18px}
.topbar-icon{font-size:15px;cursor:pointer;position:relative;color:rgba(255,255,255,.7);transition:var(--transition)}
.topbar-icon:hover{color:#fff;transform:scale(1.1)}
.badge{position:absolute;top:-6px;right:-8px;background:var(--red);color:#fff;font-size:9px;padding:1px 5px;border-radius:10px;font-weight:700;line-height:1.3;box-shadow:0 1px 3px rgba(239,68,68,.4)}

/* ── 侧边栏折叠 ── */
.sidebar.collapsed{width:56px!important}
.sidebar.collapsed .sidebar-brand{padding:14px 8px;text-align:center}
.sidebar.collapsed .sidebar-brand .logo{font-size:0}
.sidebar.collapsed .sidebar-brand .logo::before{content:'🏠';font-size:20px}
.sidebar-brand .logo .logo-small-icon{height:20px;vertical-align:middle;margin-right:6px}
.sidebar.collapsed .nav-text,.sidebar.collapsed .sidebar-footer span,.sidebar.collapsed .sidebar-version{display:none!important}
.sidebar.collapsed .nav-item{padding:10px 8px;justify-content:center;margin:2px 4px}
.sidebar.collapsed .nav-icon{width:auto;font-size:18px}
.sidebar.collapsed .sidebar-footer{padding:10px 8px;text-align:center}
.sidebar.collapsed .sidebar-footer .user-info{font-size:0}
.sidebar.collapsed .sidebar-footer .user-info::after{content:'👤';font-size:16px}
.sidebar.collapsed ~ .right-wrap{margin-left:56px!important;width:calc(100% - 56px)!important}
.sidebar-toggle-btn{position:absolute;bottom:48px;right:-12px;width:24px;height:24px;background:var(--card);border:1px solid var(--border);border-radius:50%;cursor:pointer;z-index:101;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-secondary);box-shadow:var(--shadow);transition:var(--transition)}
.sidebar-toggle-btn:hover{background:var(--primary-light);color:var(--primary)}
.sidebar.collapsed .sidebar-toggle-btn{transform:rotate(180deg)}
a.nav-item{color:var(--sidebar-text);text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a.nav-item:active{background:rgba(67,97,238,.2)!important;color:var(--sidebar-text-active)!important}
