@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap";:root{--bg-primary: #FAFBFC;--bg-card: #FFFFFF;--bg-sidebar: #F1F5F9;--text-primary: #0F172A;--text-secondary: #475569;--text-muted: #94A3B8;--accent: #002FA7;--accent-light: #3B5FD9;--accent-bg: rgba(0, 47, 167, .06);--success: #059669;--success-bg: rgba(5, 150, 105, .08);--danger: #DC2626;--danger-bg: rgba(220, 38, 38, .06);--warning: #D97706;--warning-bg: rgba(217, 119, 6, .06);--border: #E2E8F0;--border-light: #F1F5F9;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--radius: 12px;--radius-sm: 8px;--radius-lg: 16px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.app-shell{display:flex;height:100vh;height:100dvh;overflow:hidden}.sidebar{width:220px;background:var(--bg-card);border-right:1px solid var(--border);padding:24px 0;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:20;overflow-y:auto}.main-content{margin-left:220px;flex:1;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.header{height:56px;min-height:56px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10}.content-area{flex:1;padding:24px;max-width:900px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 24px;cursor:pointer;color:var(--text-secondary);font-size:15px;font-weight:500;transition:all .2s;border-left:3px solid transparent;position:relative}.nav-item:hover{background:var(--bg-sidebar);color:var(--text-primary)}.nav-item.active{background:var(--accent-bg);color:var(--accent);border-left-color:var(--accent);font-weight:600}.nav-badge{position:absolute;right:16px;background:var(--danger);color:#fff;font-size:11px;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);transition:box-shadow .2s,border-color .2s}.card:hover{box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all .2s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-light)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-sidebar)}.tag{display:inline-block;font-size:12px;font-weight:500;padding:3px 10px;border-radius:20px;background:var(--bg-sidebar);color:var(--text-secondary);border:1px solid var(--border)}.stat-bar{height:6px;border-radius:3px;background:var(--border);overflow:hidden}.stat-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.fab{position:fixed;bottom:32px;right:32px;background:var(--accent);color:#fff;padding:16px 28px;border-radius:50px;border:none;font-size:16px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-lg);transition:transform .2s,box-shadow .2s;z-index:50;display:flex;align-items:center;gap:8px}.fab:hover{transform:translateY(-2px);box-shadow:0 14px 20px -4px #002fa740}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.env-banner{padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;margin-bottom:20px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal-box{background:var(--bg-card);border-radius:var(--radius-lg);padding:32px;max-width:420px;width:90%;box-shadow:var(--shadow-lg)}.fullscreen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:16px}.mobile-header{display:none;height:52px;align-items:center;justify-content:space-between;padding:0 16px;background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.mobile-menu-btn{background:none;border:none;cursor:pointer;color:var(--text-primary);padding:4px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:19}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:60px;background:var(--bg-card);border-top:1px solid var(--border);z-index:30;padding:0 8px}.mobile-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:11px;font-weight:500;position:relative;padding:4px 0;min-height:44px}.mobile-nav-btn.active{color:var(--accent)}.mobile-nav-badge{position:absolute;top:2px;right:calc(50% - 18px);background:var(--danger);color:#fff;font-size:10px;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700}@media (max-width: 768px){.sidebar{transform:translate(-100%);transition:transform .3s ease;z-index:25}.sidebar.sidebar-open{transform:translate(0)}.sidebar-overlay{display:block}.main-content{margin-left:0}.desktop-only{display:none!important}.mobile-header,.mobile-bottom-nav{display:flex}.content-area{padding:16px 16px 140px}.fab{bottom:72px;right:16px;padding:12px 20px;font-size:14px}}@media (max-width: 480px){.content-area{padding:12px 12px 140px}.card{padding:14px}.fab{bottom:72px;right:12px;padding:10px 16px;font-size:13px}}
