:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f7f8fa;--foreground:#1e293b;--card:#fff;--card-foreground:#1e293b;--popover:#fff;--popover-foreground:#1e293b;--primary:#4f46e5;--primary-foreground:#fff;--secondary:#f1f5f9;--secondary-foreground:#1e293b;--muted:#f8fafc;--muted-foreground:#94a3b8;--accent:#6366f1;--accent-foreground:#fff;--destructive:#ef4444;--destructive-foreground:#fff;--border:#e2e8f0;--input:#e2e8f0;--ring:#4f46e5;--border-strong:#cbd5e1;--border-subtle:#f1f5f9;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--text-bright:#0f172a;--text-inverse:#fff;--state-success:#10b981;--state-success-bg:#d1fae5;--state-warning:#f59e0b;--state-warning-bg:#fef3c7;--state-error:#ef4444;--state-error-bg:#fee2e2;--state-info:#3b82f6;--state-info-bg:#dbeafe;--surface:#fff;--surface-hover:#f8fafc;--surface-active:#f1f5f9;--shadow-xs:0 1px 2px 0px #00000008;--shadow-sm:0 1px 3px 0px #0000000d, 0 1px 2px -1px #00000008;--shadow-md:0 4px 6px -1px #0000000f, 0 2px 4px -2px #0000000a;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000000f;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--font-sans:"Inter", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Courier New", monospace;--topnav-height:56px;--content-max-width:1200px;--primary-hover:#4338ca;--ring-glow:#4f46e51a;--primary-bg:#eef2ff;--bg-glow-1:#6366f11a;--bg-glow-2:#4f46e514;--bg-glow-3:#10b9810f;--bg-glow-4:#ec48990d;--topnav-bg:var(--card);--topnav-border:var(--border)}html[data-theme=glory]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0b1020;--foreground:#e8ecf5;--card:#ffffff0f;--card-foreground:#e8ecf5;--popover:#11162ce6;--popover-foreground:#e8ecf5;--primary:#f0b429;--primary-foreground:#161000;--primary-hover:#e0a525;--secondary:#ffffff14;--secondary-foreground:#e8ecf5;--muted:#ffffff0d;--muted-foreground:#8a93ad;--accent:#34d3eb;--accent-foreground:#08201f;--destructive:#f87171;--destructive-foreground:#fff;--border:#ffffff1a;--input:#ffffff24;--ring:#f0b429;--border-strong:#fff3;--border-subtle:#ffffff0f;--text-primary:#eef2ffeb;--text-secondary:#c7d0e8b8;--text-muted:#9ba5c399;--text-bright:#fff;--text-inverse:#0f1424;--state-success:#34d399;--state-success-bg:#10b98126;--state-warning:#fbbf24;--state-warning-bg:#f59e0b26;--state-error:#f87171;--state-error-bg:#ef444426;--state-info:#60a5fa;--state-info-bg:#3b82f626;--surface:#ffffff0a;--surface-hover:#ffffff17;--surface-active:#ffffff21;--ring-glow:#f0b4292e;--primary-bg:#f0b4291f;--bg-glow-1:#f0b42921;--bg-glow-2:#8b5cf621;--bg-glow-3:#34d3eb1a;--bg-glow-4:#ec489917;--topnav-bg:#090d1a8c;--topnav-border:#ffffff14;--shadow-xs:0 1px 2px 0px #00000059;--shadow-sm:0 1px 3px 0px #0006, 0 1px 2px -1px #0000004d;--shadow-md:0 4px 6px -1px #00000073, 0 2px 4px -2px #00000059;--shadow-lg:0 10px 15px -3px #00000080, 0 4px 6px -4px #0006;--shadow-xl:0 20px 25px -5px #0000008c, 0 8px 10px -6px #0006}html[data-theme=glory] body{background-color:#0000;background-image:radial-gradient(1100px 600px at 82% -10%,#f0b42921,#0000 60%),radial-gradient(900px 520px at -8% 30%,#8b5cf626,#0000 60%),radial-gradient(1000px 600px at 106% 88%,#34d3eb1c,#0000 60%),linear-gradient(165deg,#4a5d8c 0%,#3a4d7a 35%,#28365c 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}html[data-theme=glory] .card,html[data-theme=glory] .filter-bar,html[data-theme=glory] .btn-ghost,html[data-theme=glory] .btn-danger,html[data-theme=glory] .input-field,html[data-theme=glory] .modal,html[data-theme=glory] .drawer,html[data-theme=glory] .theme-panel,html[data-theme=glory] .toast{-webkit-backdrop-filter:blur(18px)saturate(150%)}html[data-theme=glory] .card{border-color:#ffffff1f;box-shadow:inset 0 1px #ffffff14}html[data-theme=glory] .card-hover:hover{box-shadow:var(--shadow-md), 0 0 26px #f0b42924;border-color:#f0b42961}html[data-theme=glory] .topnav{-webkit-backdrop-filter:blur(20px)saturate(160%);background:#10182ea6;border-bottom:1px solid #ffffff14;box-shadow:0 1px 12px #00000059}html[data-theme=glory] .modal-mask,html[data-theme=glory] .drawer-mask{background:#04060e9e}html[data-theme=glory] .modal,html[data-theme=glory] .drawer{-webkit-backdrop-filter:blur(24px)saturate(150%);background:#10152ad1}html[data-theme=glory] .theme-panel{background:#11162ce6}html[data-theme=glory] .input-field{background:#ffffff14}html[data-theme=glory] select option{color:#e8ecf5;background-color:#1a2240}html[data-theme=glory] .topnav-logo-mark{color:#1a1205}html[data-theme=glory] .topnav-avatar{color:#0f1424}html[data-theme=glory] .topnav-item.active{color:#1a1205}html[data-theme=glory] .theme-switch-btn{color:var(--text-primary);background:#ffffff14;border-color:#ffffff24}html[data-theme=glory] .theme-switch-btn:hover{background:#ffffff24}html[data-theme=glory] .badge-warning{color:#fcd34d}html[data-theme=glory] .toast-success{color:#6ee7b7;background:#10b9812e;border-color:#10b98159}html[data-theme=glory] .toast-error{color:#fca5a5;background:#ef44442e;border-color:#ef444459}html[data-theme=glory] .toast-info{color:#93c5fd;background:#3b82f62e;border-color:#3b82f659}html[data-theme=glory] .toast-warning{color:#fcd34d;background:#f59e0b2e;border-color:#f59e0b59}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#111827;--foreground:#f1f5f9;--card:#1f2937;--card-foreground:#f1f5f9;--popover:#1f2937;--popover-foreground:#f1f5f9;--primary:#6366f1;--primary-foreground:#fff;--primary-hover:#4f46e5;--secondary:#374151;--secondary-foreground:#f1f5f9;--muted:#374151;--muted-foreground:#94a3b8;--accent:#818cf8;--accent-foreground:#fff;--destructive:#ef4444;--destructive-foreground:#fff;--border:#374151;--input:#4b5563;--ring:#6366f1;--border-strong:#4b5563;--border-subtle:#2b3444;--text-primary:#e5e7eb;--text-secondary:#9ca3af;--text-muted:#6b7280;--text-bright:#fff;--text-inverse:#111827;--state-success:#34d399;--state-success-bg:#10b98126;--state-warning:#fbbf24;--state-warning-bg:#f59e0b26;--state-error:#f87171;--state-error-bg:#ef444426;--state-info:#60a5fa;--state-info-bg:#3b82f626;--surface:#1a2332;--surface-hover:#263244;--surface-active:#2e3b50;--ring-glow:#6366f12e;--primary-bg:#6366f11f;--bg-glow-1:#6366f11f;--bg-glow-2:#8b5cf617;--bg-glow-3:#10b98112;--bg-glow-4:#ec48990f;--topnav-bg:#161e2c;--topnav-border:#2b3444;--shadow-xs:0 1px 2px 0px #0006;--shadow-sm:0 1px 3px 0px #00000073, 0 1px 2px -1px #0006;--shadow-md:0 4px 6px -1px #00000080, 0 2px 4px -2px #0006;--shadow-lg:0 10px 15px -3px #0000008c, 0 4px 6px -4px #00000073;--shadow-xl:0 20px 25px -5px #0009, 0 8px 10px -6px #00000073}html[data-theme=dark] body{background-color:#0000;background-image:radial-gradient(1000px 560px at 85% -8%,#6366f121,#0000 60%),radial-gradient(900px 500px at -6% 28%,#8b5cf61c,#0000 60%),radial-gradient(900px 520px at 104% 90%,#34d3eb17,#0000 60%),linear-gradient(165deg,#1d2542 0%,#151c36 55%,#101626 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}html[data-theme=dark] .card,html[data-theme=dark] .filter-bar,html[data-theme=dark] .btn-ghost,html[data-theme=dark] .btn-danger{-webkit-backdrop-filter:blur(18px)saturate(150%);background:#ffffff0d;border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff0f}html[data-theme=dark] .card-hover:hover{box-shadow:var(--shadow-md), 0 0 24px #6366f11f;border-color:#6366f166}html[data-theme=dark] .topnav{-webkit-backdrop-filter:blur(20px)saturate(160%);background:#1118279e;border-bottom:1px solid #ffffff14;box-shadow:0 1px 12px #00000059}html[data-theme=dark] .modal-mask,html[data-theme=dark] .drawer-mask{background:#030712a8}html[data-theme=dark] .modal,html[data-theme=dark] .drawer,html[data-theme=dark] .theme-panel{-webkit-backdrop-filter:blur(24px)saturate(150%);background:#1f2937eb}html[data-theme=dark] .input-field{background:#ffffff14}html[data-theme=dark] select option{color:#e5e7eb;background-color:#1f2937}html[data-theme=dark] .badge-warning{color:#fcd34d}html[data-theme=dark] .toast-success{color:#6ee7b7;background:#10b9812e;border-color:#10b98159}html[data-theme=dark] .toast-error{color:#fca5a5;background:#ef44442e;border-color:#ef444459}html[data-theme=dark] .toast-info{color:#93c5fd;background:#3b82f62e;border-color:#3b82f659}html[data-theme=dark] .toast-warning{color:#fcd34d;background:#f59e0b2e;border-color:#f59e0b59}html[data-theme=light]{--background:#f8fafc;--foreground:#1e293b;--card:#fff;--card-foreground:#1e293b;--popover:#fff;--popover-foreground:#1e293b;--primary:#2563eb;--primary-foreground:#fff;--primary-hover:#1d4ed8;--secondary:#f1f5f9;--secondary-foreground:#1e293b;--muted:#f1f5f9;--muted-foreground:#64748b;--accent:#3b82f6;--accent-foreground:#fff;--destructive:#ef4444;--destructive-foreground:#fff;--border:#e2e8f0;--input:#e2e8f0;--ring:#2563eb;--border-strong:#cbd5e1;--border-subtle:#f1f5f9;--text-primary:#334155;--text-secondary:#64748b;--text-muted:#94a3b8;--text-bright:#0f172a;--text-inverse:#fff;--state-success:#10b981;--state-success-bg:#d1fae5;--state-warning:#f59e0b;--state-warning-bg:#fef3c7;--state-error:#ef4444;--state-error-bg:#fee2e2;--state-info:#3b82f6;--state-info-bg:#dbeafe;--surface:#fff;--surface-hover:#f8fafc;--surface-active:#f1f5f9;--ring-glow:#2563eb1a;--primary-bg:#eff6ff;--bg-glow-1:#3b82f614;--bg-glow-2:#2563eb0d;--bg-glow-3:#10b9810d;--bg-glow-4:#ec48990a;--topnav-bg:#fff;--topnav-border:#e2e8f0}html[data-theme=light] body{background-color:#0000;background-image:radial-gradient(880px 480px at 88% -6%,#3b82f61f,#0000 62%),radial-gradient(760px 440px at -6% 34%,#2563eb14,#0000 62%),linear-gradient(165deg,#eef3fb 0%,#f4f7fd 52%,#fafbff 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}html[data-theme=ink]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:linear-gradient(165deg, #f7f2e5 0%, #efe7d6 52%, #faf5ea 100%);--foreground:#2e2c29;--card:#fffcf4d1;--card-foreground:#2e2c29;--popover:#fdf9f0;--popover-foreground:#2e2c29;--primary:#c0392b;--primary-foreground:#fdf6e9;--primary-hover:#9c2d20;--secondary:#e9e2d3;--secondary-foreground:#3a3630;--muted:#efe8da;--muted-foreground:#8a8375;--accent:#3a3a40;--accent-foreground:#fdf6e9;--destructive:#b0413a;--destructive-foreground:#fff;--border:#33302b29;--input:#33302b33;--ring:#c0392b;--border-strong:#33302b47;--border-subtle:#33302b14;--text-primary:#3a3731;--text-secondary:#6f6a5f;--text-muted:#9a9387;--text-bright:#221f1a;--text-inverse:#fdf6e9;--state-success:#4a7a5c;--state-success-bg:#4a7a5c1f;--state-warning:#a1662f;--state-warning-bg:#a1662f24;--state-error:#b0413a;--state-error-bg:#b0413a1a;--state-info:#4a6a7a;--state-info-bg:#4a6a7a1f;--surface:#fffcf4b8;--surface-hover:#fffcf4eb;--surface-active:#efe7d6;--ring-glow:#c0392b1f;--primary-bg:#c0392b14;--bg-glow-1:#3a3a401a;--bg-glow-2:#c0392b0f;--bg-glow-3:#4a6a7a0d;--bg-glow-4:#a1662f0d;--topnav-bg:linear-gradient(90deg, #232326 0%, #3a3a40 55%, #4c4c54 100%);--topnav-border:#00000059;--shadow-xs:0 1px 2px 0px #3c321e0d;--shadow-sm:0 1px 3px 0px #3c321e14, 0 1px 2px -1px #3c321e0f;--shadow-md:0 4px 6px -1px #3c321e1a, 0 2px 4px -2px #3c321e14;--shadow-lg:0 10px 15px -3px #3c321e24, 0 4px 6px -4px #3c321e1a;--shadow-xl:0 20px 25px -5px #3c321e2e, 0 8px 10px -6px #3c321e1f}html[data-theme=ink] body{background:0 0}html[data-theme=ink] body:before{background:radial-gradient(520px 420px at 78% 12%,#3a3a401f,#0000 70%),radial-gradient(460px 380px at 12% 78%,#4a6a7a1f,#0000 70%),radial-gradient(360px 300px at 55% 60%,#c0392b0f,#0000 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1600' height='900' viewBox='0 0 1600 900' preserveAspectRatio='xMidYMax slice'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%233a3a40' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%233a3a40' stop-opacity='0.2'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%233a3a40' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%233a3a40' stop-opacity='0.28'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0,900 L0,620 Q170,540 330,600 T660,545 T980,605 T1320,555 L1600,615 L1600,900 Z' fill='url(%23a)'/%3E%3Cpath d='M0,900 L0,700 Q260,640 470,690 T900,650 T1260,700 T1600,670 L1600,900 Z' fill='url(%23b)'/%3E%3Cpath d='M0,900 L0,790 Q360,745 560,775 T1040,760 T1400,785 L1600,765 L1600,900 Z' fill='url(%23a)' opacity='0.45'/%3E%3C/svg%3E") bottom/cover no-repeat;animation:38s ease-in-out infinite alternate ink-drift}@keyframes ink-drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(-2%,1.6%)scale(1.08)}}html[data-theme=ink] .card,html[data-theme=ink] .filter-bar{-webkit-backdrop-filter:blur(14px)saturate(120%);background:#fffcf4c7;border-color:#33302b24;box-shadow:0 1px 2px #3c321e0f,inset 0 1px #ffffffb3}html[data-theme=ink] .card-hover:hover{box-shadow:var(--shadow-md), 0 0 20px #c0392b1f;border-color:#c0392b6b}html[data-theme=ink] .topnav{background:linear-gradient(90deg,#232326 0%,#3a3a40 55%,#4c4c54 100%);border-bottom:1px solid #00000059;box-shadow:0 1px 10px #1e1a1266}html[data-theme=ink] .topnav-logo{color:#f3ecdc;letter-spacing:.06em;font-family:Kaiti SC,STKaiti,KaiTi,Noto Serif SC,serif}html[data-theme=ink] .topnav-logo-mark{color:#fdf6e9;background:#c0392b;border-radius:4px;box-shadow:inset 0 0 0 1px #ffffff47,0 1px 4px #00000059}html[data-theme=ink] .topnav-item{color:#f3ecdccc}html[data-theme=ink] .topnav-item:hover{color:#fff;background:#ffffff1a}html[data-theme=ink] .topnav-item.active{color:#fdf6e9;background:#c0392b}html[data-theme=ink] .topnav-user{background:#ffffff12;border-color:#ffffff38}html[data-theme=ink] .topnav-user:hover{background:#ffffff21}html[data-theme=ink] .topnav-user-name{color:#f3ecdc}html[data-theme=ink] .topnav-user-role{color:#f3ecdc99}html[data-theme=ink] .topnav-avatar{color:#fdf6e9;background:linear-gradient(135deg,#8a2f22,#c0392b)}html[data-theme=ink] .theme-switch-btn{color:#f3ecdc;background:#ffffff14;border-color:#ffffff29}html[data-theme=ink] .theme-switch-btn:hover{background:#ffffff24}html[data-theme=ink] .page-title{letter-spacing:.03em;font-family:Kaiti SC,STKaiti,KaiTi,Noto Serif SC,serif}html[data-theme=ink] .modal-mask,html[data-theme=ink] .drawer-mask{background:#2a241a73}html[data-theme=ink] .modal,html[data-theme=ink] .drawer{background:#fdf9f0f5}html[data-theme=ink] .theme-panel{background:#fdf9f0fa}html[data-theme=ink] .input-field,html[data-theme=ink] .input{background:#ffffffa6}html[data-theme=ink] select option{color:#3a3731;background-color:#fdf9f0}html[data-theme=ink] .btn-ghost{background:#fffcf48c}html[data-theme=ink] .btn-primary{box-shadow:0 1px 3px #96281c40}html[data-theme=ink] .btn-primary:hover{box-shadow:0 2px 12px #c0392b4d}html[data-theme=ink] .toast-success{color:#3c6a4c;background:#4a7a5c29;border-color:#4a7a5c59}html[data-theme=ink] .toast-error{color:#9c2d20;background:#c0392b24;border-color:#c0392b59}html[data-theme=ink] .toast-info{color:#3a5a6e;background:#4a6a7a29;border-color:#4a6a7a59}html[data-theme=ink] .toast-warning{color:#8a5418;background:#a1662f29;border-color:#a1662f59}html[data-theme=ink] .badge-warning{color:#8a5418}html[data-theme=ink] ::selection{background:#c0392b2e}.theme-switch{flex-shrink:0;position:relative}.theme-switch-btn{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-full);font:inherit;color:var(--text-primary);cursor:pointer;align-items:center;gap:6px;padding:5px 12px;font-size:.8125rem;font-weight:600;transition:background .15s,border-color .15s;display:flex}.theme-switch-btn:hover{background:var(--surface-hover);border-color:var(--border-strong)}.theme-swatch{border-radius:50%;flex-shrink:0;width:14px;height:14px;display:inline-block;box-shadow:0 0 0 2px #ffffff80,0 1px 2px #00000026}.theme-switch-name{white-space:nowrap}.theme-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-2);z-index:60;width:168px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #0f172a24}.theme-panel-title{color:var(--text-secondary);padding:var(--space-2) var(--space-2) var(--space-1);font-size:.75rem;font-weight:600}.theme-option{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2);border-radius:var(--radius-md);font:inherit;color:var(--text-primary);cursor:pointer;background:0 0;border:none;font-size:.8125rem;font-weight:600;transition:background .15s;display:flex}.theme-option:hover{background:var(--surface-hover)}.theme-option.active{background:var(--surface-active)}.theme-option-swatch{border-radius:8px;flex-shrink:0;width:22px;height:22px;box-shadow:0 1px 3px #0000002e}.theme-option-name{text-align:left;flex:1}.theme-check{color:var(--primary);font-weight:700}*{box-sizing:border-box}html,body{font-family:var(--font-sans);background:var(--background);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(720px 420px at 85% 6%, var(--bg-glow-1), transparent 70%), radial-gradient(640px 380px at 6% 32%, var(--bg-glow-2), transparent 70%), radial-gradient(760px 460px at 94% 92%, var(--bg-glow-3), transparent 70%), radial-gradient(520px 300px at 40% 100%, var(--bg-glow-4), transparent 70%);transition:background .3s;position:fixed;inset:0}h1,h2,h3,h4,h5,h6,p{margin:0}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topnav{height:var(--topnav-height);background:var(--topnav-bg);border-bottom:1px solid var(--topnav-border);padding:0 var(--space-6);align-items:center;gap:var(--space-4);z-index:30;transition:background .3s;display:flex;position:sticky;top:0}.topnav-logo{align-items:center;gap:var(--space-2);color:var(--text-bright);white-space:nowrap;cursor:pointer;flex-shrink:0;font-size:1.0625rem;font-weight:700;display:flex}.topnav-logo-mark{background:var(--primary);border-radius:var(--radius-md);color:#fff;place-items:center;width:32px;height:32px;font-size:.9375rem;font-weight:700;display:grid}.topnav-items{align-items:center;gap:var(--space-1);flex:1;display:flex;overflow-x:auto}.topnav-item{padding:var(--space-2) var(--space-4);color:var(--text-secondary);border-radius:var(--radius-md);align-items:center;gap:var(--space-2);white-space:nowrap;background:0 0;border:none;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.topnav-item:hover{background:var(--surface-hover);color:var(--text-primary)}.topnav-item.active{background:var(--primary);color:#fff}.topnav-right{align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.topnav-user{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--card);cursor:pointer;transition:all .15s;display:flex}.topnav-user:hover{background:var(--surface-hover)}.topnav-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--primary), var(--accent));color:#fff;place-items:center;width:30px;height:30px;font-size:.8125rem;font-weight:600;display:grid;overflow:hidden}.topnav-avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.topnav-user-info{flex-direction:column;line-height:1.2;display:flex}.topnav-user-name{color:var(--text-primary);font-size:.8125rem;font-weight:600}.topnav-user-role{color:var(--text-muted);font-size:.6875rem}.page-content{width:100%;max-width:var(--content-max-width);padding:var(--space-6) var(--space-6) var(--space-10);flex:1;margin-inline:auto}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.page-title{color:var(--text-bright);font-size:1.5rem;font-weight:700;line-height:1.2}.page-subtitle{color:var(--text-muted);margin-top:var(--space-1);font-size:.8125rem}.page-head-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);white-space:nowrap;background:0 0;border:1px solid #0000;font-size:.8125rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-sm)}.btn-ghost{background:var(--card);color:var(--text-secondary);border-color:var(--border)}.btn-ghost:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--border-strong)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:.75rem}.btn-danger{background:var(--card);color:var(--state-error);border-color:var(--border)}.btn-danger:hover{background:var(--state-error-bg);border-color:var(--state-error)}.btn:disabled{opacity:.55;cursor:not-allowed}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);transition:box-shadow .2s,border-color .2s}.card-hover:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.card-head{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.card-title{color:var(--text-bright);align-items:center;gap:var(--space-2);font-size:.9375rem;font-weight:600;display:flex}.card-title .dot-mark{background:var(--primary);border-radius:2px;width:4px;height:16px}.card-actions{gap:var(--space-2);align-items:center;display:flex}.kpi-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(4,1fr);display:grid}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);transition:box-shadow .2s;position:relative;overflow:hidden}.kpi-card:hover{box-shadow:var(--shadow-lg)}.kpi-card-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.kpi-icon{border-radius:var(--radius-md);flex-shrink:0;place-items:center;width:40px;height:40px;font-size:1.25rem;display:grid}.kpi-icon.indigo{background:var(--primary-bg);color:var(--primary)}.kpi-icon.emerald{background:var(--state-success-bg);color:var(--state-success)}.kpi-icon.amber{background:var(--state-warning-bg);color:var(--state-warning)}.kpi-icon.rose{background:var(--state-error-bg);color:var(--state-error)}.kpi-label{color:var(--text-secondary);font-size:.75rem;font-weight:500;line-height:1.4}.kpi-value{font-family:var(--font-mono);color:var(--text-bright);margin-bottom:var(--space-2);font-size:1.625rem;font-weight:700;line-height:1.1}.kpi-hint{color:var(--text-muted);font-size:.6875rem}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;line-height:1.5;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-success{background:var(--state-success-bg);color:var(--state-success)}.badge-warning{background:var(--state-warning-bg);color:var(--state-warning)}.badge-error{background:var(--state-error-bg);color:var(--state-error)}.badge-info{background:var(--state-info-bg);color:var(--state-info)}.badge-muted{background:var(--surface-active);color:var(--text-secondary)}.input-field{background:var(--card);border:1px solid var(--border);color:var(--text-primary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);outline:none;font-size:.8125rem;transition:border-color .15s,box-shadow .15s}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring-glow)}.input-field::placeholder{color:var(--text-muted)}.input-field.error{border-color:var(--state-error)}.input-field.error:focus{box-shadow:0 0 0 3px #ef44441a}textarea.input-field{resize:vertical;line-height:1.6}select.input-field{cursor:pointer}label.field-label{color:var(--text-secondary);margin-bottom:var(--space-1);font-size:.75rem;font-weight:600;display:block}.field-row{margin-bottom:var(--space-4);flex-direction:column;display:flex}.field-row-inline{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:row;display:flex}.field-hint{color:var(--text-muted);margin-top:var(--space-1);font-size:.6875rem}.form-grid{gap:0 var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-grid .field-row.full{grid-column:1/-1}@media (width<=767px){.form-grid{grid-template-columns:1fr}}.switch{align-items:center;gap:var(--space-2);cursor:pointer;display:inline-flex;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch-track{border-radius:var(--radius-full);background:var(--border-strong);flex-shrink:0;width:36px;height:20px;transition:background .15s;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch input:checked+.switch-track{background:var(--primary)}.switch input:checked+.switch-track:after{transform:translate(16px)}.switch-label{color:var(--text-primary);font-size:.8125rem}.filter-bar{align-items:center;gap:var(--space-3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filter-search{align-items:center;gap:var(--space-2);flex:1;min-width:200px;display:flex}.filter-search input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:.8125rem}.filter-search input::placeholder{color:var(--text-muted)}.filter-select{background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-primary);cursor:pointer;outline:none;font-size:.8125rem}.segment{background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);gap:2px;padding:2px;display:flex;overflow-x:auto}.segment button{color:var(--text-secondary);padding:var(--space-1) var(--space-3);border-radius:calc(var(--radius-md) - 2px);white-space:nowrap;background:0 0;border:none;font-size:.75rem;font-weight:600;transition:all .15s}.segment button.active{background:var(--card);color:var(--text-primary);box-shadow:var(--shadow-xs)}.modal-mask{z-index:210;padding:var(--space-4);background:#0f172a73;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);flex-direction:column;width:100%;max-width:560px;max-height:85vh;animation:.2s popIn;display:flex}.modal-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal-title{color:var(--text-bright);font-size:1rem;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:1.25rem;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:var(--space-5);overflow-y:auto}.modal-foot{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);display:flex}.drawer-mask{z-index:100;background:#0f172a73;animation:.15s fadeIn;position:fixed;inset:0}.drawer{background:var(--card);width:480px;max-width:92vw;height:100%;box-shadow:var(--shadow-xl);z-index:101;flex-direction:column;animation:.25s slideIn;display:flex;position:fixed;top:0;right:0}.drawer-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.drawer-title{color:var(--text-bright);font-size:1rem;font-weight:600}.drawer-body{padding:var(--space-5);flex:1;overflow-y:auto}.drawer-foot{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);display:flex}.tbl-wrap{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:.8125rem}.tbl th{text-align:left;padding:var(--space-2) var(--space-3);color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;font-size:.75rem;font-weight:600}.tbl td{padding:var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle}.tbl tbody tr:hover{background:var(--surface-hover)}.tbl .num{font-family:var(--font-mono);text-align:right}.tbl-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.tbl-link{color:var(--primary);cursor:pointer;font-weight:500}.tbl-link:hover{text-decoration:underline}.tbl-link.danger{color:var(--state-error)}.pager{justify-content:flex-end;align-items:center;gap:var(--space-2);padding-top:var(--space-4);flex-wrap:wrap;display:flex}.pager-info{color:var(--text-muted);margin-right:auto;font-size:.75rem}.pager button{min-width:30px;height:30px;padding:0 var(--space-2);border:1px solid var(--border);background:var(--card);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:.75rem;font-weight:600;transition:all .15s}.pager button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pager button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.pager button:disabled{opacity:.4;cursor:not-allowed}.empty-state{padding:var(--space-10) var(--space-4);color:var(--text-muted);justify-content:center;align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.empty-icon{border-radius:var(--radius-full);background:var(--surface-active);place-items:center;width:48px;height:48px;font-size:1.375rem;display:grid}.empty-title{color:var(--text-secondary);font-size:.875rem;font-weight:600}.empty-desc{color:var(--text-muted);font-size:.75rem}.page-loading{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-4);color:var(--text-muted);flex-direction:column;font-size:.8125rem;display:flex}.skeleton{background:linear-gradient(90deg, var(--surface-active) 25%, var(--border-subtle) 50%, var(--surface-active) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.toast-wrap{z-index:300;gap:var(--space-2);flex-direction:column;align-items:center;display:flex;position:fixed;top:72px;left:50%;transform:translate(-50%)}.toast{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-width:420px;font-size:.8125rem;font-weight:500;animation:.2s popIn}.toast-success{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.toast-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.toast-info{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.toast-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.code-block{color:#e2e8f0;border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-3);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;background:#0f172ae6;max-height:480px;font-size:.75rem;line-height:1.7;overflow:auto}.code-block pre{margin:0}.divider{background:var(--border);height:1px;margin:var(--space-4) 0;border:none}.stat-row{padding:var(--space-2) 0;flex-direction:column;gap:2px;font-size:.8125rem;display:flex}.stat-row+.stat-row{border-top:1px dashed var(--border-subtle)}.stat-label{color:var(--text-secondary);font-size:.75rem}.stat-value{color:var(--text-primary);font-weight:600;font-family:var(--font-mono);word-break:break-all}.perm-tree{gap:var(--space-2);flex-direction:column;display:flex}.perm-node{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3)}.perm-node-head{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.perm-node-name{color:var(--text-bright);flex:1;font-size:.8125rem;font-weight:700}.perm-node-children{gap:var(--space-2);padding-left:var(--space-4);flex-direction:column;display:flex}.perm-node-child{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;display:flex}.perm-node-child label{color:var(--text-secondary);font-size:.75rem}.kpi-card-h{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow .2s;display:flex}.kpi-card-h:hover{box-shadow:var(--shadow-md)}.kpi-icon-sm{border-radius:var(--radius-md);flex-shrink:0;place-items:center;width:36px;height:36px;font-size:1.125rem;display:grid}.kpi-value-sm{font-family:var(--font-mono);color:var(--text-bright);font-size:1.25rem;font-weight:700;line-height:1.1}.kpi-label-hint{color:var(--text-muted);margin-top:2px;font-size:.6875rem}.progress-ring{justify-content:center;align-items:center;display:inline-flex;position:relative}.progress-ring-value{color:var(--text-bright);font-size:.75rem;font-weight:700;font-family:var(--font-mono);position:absolute}.site-footer{border-top:1px solid var(--border);padding:var(--space-5) var(--space-6);text-align:center;color:var(--text-muted);font-size:.75rem}.site-footer-links{justify-content:center;gap:var(--space-4);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.site-footer-links a{color:var(--text-secondary);transition:color .15s}.site-footer-links a:hover{color:var(--primary)}.flex-between{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.flex-center{align-items:center;gap:var(--space-2);display:flex}.muted{color:var(--text-muted)}.mono{font-family:var(--font-mono)}.text-sm{font-size:.8125rem}.text-xs{font-size:.75rem}.text-right{text-align:right}.text-center{text-align:center}.font-bold{font-weight:700}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.w-full{width:100%}.flex{display:flex}.flex-1{flex:1;min-width:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.grid-2{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.grid-3{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=767px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.login-shell{min-height:100vh;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-xl);padding:var(--space-8)}.login-brand{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);flex-direction:column;display:flex}.login-brand-mark{background:var(--primary);border-radius:var(--radius-lg);color:#fff;place-items:center;width:48px;height:48px;font-size:1.5rem;font-weight:700;display:grid}.login-brand-name{color:var(--text-bright);font-size:1.25rem;font-weight:700}.login-brand-sub{color:var(--text-muted);font-size:.8125rem}.auth-callback{justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;min-height:100vh;display:flex}.qr-box{align-items:center;gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}#qr-login{justify-content:center;display:flex}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted-foreground)}
