.app-shell{background:var(--page-bg);height:100vh;font-family:var(--font-ui);display:flex;overflow:hidden}.sidebar{background:var(--sb-bg);z-index:50;flex-direction:column;width:224px;min-width:224px;display:flex;position:relative}.sb-logo{border-bottom:1px solid var(--sb-border);flex-shrink:0;align-items:center;gap:9px;padding:20px 16px 16px;display:flex}.sb-logo-mark{background:var(--brand);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.sb-logo-text{color:#f1f5f9;letter-spacing:.1em;font-size:12.5px;font-weight:700}.sb-tenant-wrap{border-bottom:1px solid var(--sb-border);flex-shrink:0;padding:10px 12px;position:relative}.sb-tenant-btn{border-radius:var(--radius-md);cursor:pointer;width:100%;font-family:var(--font-ui);background:#ffffff0a;border:1px solid #ffffff12;align-items:center;gap:8px;padding:7px 9px;transition:background .15s;display:flex}.sb-tenant-btn:hover{background:#ffffff12}.sb-tenant-dot{background:var(--brand);opacity:.8;border-radius:2px;flex-shrink:0;width:6px;height:6px}.sb-tenant-name{text-align:left;color:#c8d6e5;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;font-weight:500;overflow:hidden}.sb-tenant-chev{color:#3a5068;flex-shrink:0;transition:transform .2s}.sb-tenant-chev.rotated{transform:rotate(180deg)}.sb-nav{scrollbar-width:none;flex:1;padding:8px 8px 4px;overflow-y:auto}.sb-nav::-webkit-scrollbar{display:none}.sb-nav-label{letter-spacing:.12em;text-transform:uppercase;color:var(--sb-text-label);padding:12px 10px 4px;font-size:9.5px;font-weight:700;display:block}.sb-nav-item{border-radius:var(--radius-sm);color:var(--sb-text);border-left:2px solid #0000;align-items:center;gap:9px;margin-bottom:1px;padding:6.5px 10px;font-size:13px;font-weight:500;text-decoration:none;transition:all .1s;display:flex}.sb-nav-item:hover{background:var(--sb-bg-hover);color:#c8d6e5}.sb-nav-item.active{background:var(--sb-bg-active);color:var(--sb-text-active);border-left-color:var(--sb-accent);padding-left:8px}.sb-nav-item.active .sb-nav-icon{color:#f1f5f9}.sb-nav-icon{color:var(--sb-text-label);flex-shrink:0;transition:color .1s}.sb-nav-item:hover .sb-nav-icon{color:#7a93ab}.sb-nav-badge{color:#7a93ab;background:#ffffff14;border-radius:10px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:600}.sb-user-wrap{border-top:1px solid var(--sb-border);flex-shrink:0;padding:10px;position:relative}.sb-user-btn{border-radius:var(--radius-md);cursor:pointer;text-align:left;width:100%;font-family:var(--font-ui);background:0 0;border:none;align-items:center;gap:9px;padding:7px 9px;transition:background .15s;display:flex}.sb-user-btn:hover{background:var(--sb-bg-hover)}.sb-avatar{background:var(--brand);color:#fff;letter-spacing:.02em;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:flex}.sb-user-info{flex:1;min-width:0}.sb-user-name{color:#c8d6e5;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:500;display:block;overflow:hidden}.sb-user-role{color:#3a5068;white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.sb-user-chev{opacity:.25;color:#94a3b8;flex-shrink:0;margin-left:auto;transition:transform .2s,opacity .2s}.sb-user-chev.rotated{opacity:.6;transform:rotate(180deg)}.sb-dropdown{border-radius:var(--radius-lg);z-index:100;background:#111c2a;border:1px solid #ffffff17;position:absolute;left:6px;right:6px;overflow:hidden;box-shadow:0 20px 60px #0006}.sb-dd-header{border-bottom:1px solid #ffffff0f;padding:12px 14px}.dd-name{color:#f1f5f9;font-size:13px;font-weight:600}.dd-email{color:#3a5068;margin-top:2px;font-size:11px}.dd-role-badge{letter-spacing:.05em;text-transform:uppercase;color:#f87171;background:#eb2d2e1f;border:1px solid #eb2d2e2e;border-radius:4px;margin-top:6px;padding:2px 7px;font-size:9.5px;font-weight:700;display:inline-block}.sb-dd-sec{padding:5px 0}.sb-dd-sep{border-top:1px solid #ffffff0f}.sb-dd-item{font-size:12.5px;font-family:var(--font-ui);color:#5c7a9e;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:9px;width:100%;padding:7px 14px;text-decoration:none;transition:all .1s;display:flex}.sb-dd-item:hover{color:#c8d6e5;background:#ffffff0a}.sb-dd-item.active{color:#f1f5f9}.sb-dd-item.danger{color:#f87171}.sb-dd-item.danger:hover{color:#fca5a5;background:#f871710f}.sb-dd-new{color:#3a5068;font-size:12px}.sb-dd-new:hover{color:#7a93ab}.dd-dot{background:#3a5068;border-radius:2px;flex-shrink:0;width:6px;height:6px}.dd-dot-active{background:var(--brand)}.dropdown-enter-active,.dropdown-leave-active{transition:all .15s}.dropdown-enter-from,.dropdown-leave-to{opacity:0;transform:translateY(4px)}.main-wrap{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{background:var(--card-bg);border-bottom:1px solid var(--c-border);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 24px;display:flex}.topbar-bc{align-items:center;gap:6px;font-size:13px;display:flex}.bc-tenant{color:var(--text-3)}.bc-sep{color:var(--border-strong);font-size:15px;line-height:1}.bc-page{color:var(--text-1);font-weight:500}.topbar-actions{align-items:center;gap:4px;display:flex}.topbar-bell{border-radius:var(--radius-md);cursor:pointer;width:34px;height:34px;color:var(--text-3);background:0 0;border:none;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.topbar-bell:hover{background:var(--page-bg);color:var(--text-1)}.bell-badge{background:var(--brand);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:9px;font-weight:700;display:flex;position:absolute;top:4px;right:4px}.flash-wrap{flex-shrink:0;padding:12px 24px 0}.flash{border-radius:var(--radius-md);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.flash-success{background:var(--green-soft);color:var(--green-text);border:1px solid #bbf7d0}.flash-error{background:var(--red-soft);color:var(--red-text);border:1px solid #fecaca}.main-content{flex:1;overflow-y:auto}
