*{margin:0;padding:0;box-sizing:border-box}:root{--sidebar-w: 260px;--sidebar-collapsed: 72px;--bottom-nav-h: 64px;--ease: cubic-bezier(.4, 0, .2, 1)}html{font-size:16px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f8fafc;color:#0f172a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;letter-spacing:-.011em;overflow-x:hidden}input,select,textarea,button{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}:focus-visible{outline:2px solid #2563eb;outline-offset:2px;border-radius:4px}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.animate-slide-up{animation:slideUp .4s var(--ease) both}.animate-fade-in{animation:fadeIn .25s ease both}.animate-scale-in{animation:scaleIn .3s var(--ease) both}.app-shell{display:flex;min-height:100vh;min-height:100dvh}.sidebar{width:var(--sidebar-w);background:#fff;border-right:1px solid #f1f5f9;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;height:100dvh;transition:width .3s var(--ease);z-index:40}.sidebar-logo{padding:24px 20px 20px;border-bottom:1px solid #f1f5f9}.sidebar-logo-inner{display:flex;align-items:center;gap:12px}.sidebar-logo-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#0ea5e9,#2563eb);display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;font-weight:800;flex-shrink:0;box-shadow:0 2px 8px #2563eb4d}.sidebar-logo-text h1{font-size:15px;font-weight:700;color:#0f172a;letter-spacing:-.3px;line-height:1.2}.sidebar-logo-text span{font-size:11px;color:#94a3b8;margin-top:1px;display:block}.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-link{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;text-decoration:none;font-size:13.5px;font-weight:500;color:#64748b;transition:all .2s var(--ease);position:relative}.nav-link:hover{background:#f8fafc;color:#334155}.nav-link.active{background:#eff6ff;color:#2563eb;font-weight:600}.nav-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:#2563eb;border-radius:0 3px 3px 0}.nav-link-icon{display:flex;align-items:center;justify-content:center;width:20px;flex-shrink:0;opacity:.7}.nav-link.active .nav-link-icon{opacity:1}.nav-link-label{white-space:nowrap}.sidebar-footer{padding:16px;border-top:1px solid #f1f5f9}.sidebar-user{display:flex;align-items:center;gap:12px;margin-bottom:12px}.sidebar-avatar{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.sidebar-user-info{min-width:0}.sidebar-user-name{font-size:13px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-size:11px;color:#94a3b8;margin-top:1px}.sidebar-logout{width:100%;padding:8px 0;border-radius:8px;border:1px solid #e2e8f0;background:transparent;cursor:pointer;font-size:12.5px;font-weight:500;color:#64748b;transition:all .2s var(--ease)}.sidebar-logout:hover{background:#f8fafc;border-color:#cbd5e1;color:#334155}.main-content{flex:1;padding:32px 40px;min-width:0}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-h);background:#ffffffeb;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(0,0,0,.06);z-index:50;padding:0 8px;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav-inner{display:flex;align-items:center;justify-content:space-around;height:100%;max-width:500px;margin:0 auto}.bottom-nav-link{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 12px;text-decoration:none;border-radius:12px;transition:all .2s var(--ease);-webkit-tap-highlight-color:transparent}.bottom-nav-link span{font-size:10px;font-weight:500;color:#94a3b8;line-height:1}.bottom-nav-link svg{color:#94a3b8;transition:color .2s}.bottom-nav-link.active svg{color:#2563eb}.bottom-nav-link.active span{color:#2563eb;font-weight:600}.mobile-header{display:none;position:sticky;top:0;z-index:30;background:#ffffffeb;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(0,0,0,.06);padding:12px 16px;align-items:center;gap:12px}.mobile-header-logo{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#0ea5e9,#2563eb);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:800;box-shadow:0 2px 6px #2563eb40}.mobile-header h1{font-size:16px;font-weight:700;color:#0f172a;letter-spacing:-.3px}.stat-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.org-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}@media (max-width: 1024px){.sidebar{width:var(--sidebar-collapsed);overflow:hidden}.sidebar-logo-text,.nav-link-label,.sidebar-user-info{display:none}.sidebar-logo{padding:20px 18px}.sidebar-logo-inner{justify-content:center}.sidebar-nav{padding:12px 10px}.nav-link{justify-content:center;padding:12px}.nav-link.active:before{display:none}.sidebar-footer{padding:12px 10px}.sidebar-user{justify-content:center;margin-bottom:10px}.sidebar-logout{font-size:0;padding:10px}.sidebar-logout:after{content:"↗";font-size:14px}.main-content{padding:28px 24px}.stat-grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.sidebar{display:none}.bottom-nav,.mobile-header{display:flex}.main-content{padding:16px 16px calc(var(--bottom-nav-h) + 16px);max-width:100%}.stat-grid-4{grid-template-columns:repeat(2,1fr)}.stat-grid-3{grid-template-columns:1fr 1fr}.stat-grid-3>:last-child{grid-column:1 / -1}.org-grid{grid-template-columns:1fr}}@media (max-width: 480px){.main-content{padding:12px 12px calc(var(--bottom-nav-h) + 12px)}.stat-grid-4,.stat-grid-3{grid-template-columns:1fr 1fr;gap:8px}}
