@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}:root{--sidebar-bg:#fff;--sidebar-border:#ececf0;--sidebar-text:#64748b;--sidebar-hover:#f6f8fb;--sidebar-active:#eff6ff;--sidebar-active-t:#1d4ed8;--bg:#fafafa;--bg-2:#f4f4f6;--surface:#fff;--border:#ececf0;--border-md:#d4d4d8;--text:#0a0a0a;--text-2:#52525b;--text-3:#a1a1aa;--text-4:#d4d4d8;--blue:#2563eb;--blue-lt:#eff6ff;--blue-dk:#1d4ed8;--green:#10b981;--green-lt:#ecfdf5;--amber:#f59e0b;--amber-lt:#fffbeb;--red:#ef4444;--red-lt:#fef2f2;--purple:#8b5cf6;--r-sm:6px;--r:8px;--r-lg:12px;--r-xl:16px;--sh-xs:0 1px 2px #0f172a0a;--sh:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--sh-md:0 4px 16px #0f172a14, 0 2px 4px #0f172a0a;--sh-lg:0 12px 40px #0f172a1f, 0 4px 8px #0f172a0f;--sh-blue:0 4px 16px #2563eb2e, 0 2px 4px #2563eb1a;--ease-out:cubic-bezier(.16,1,.3,1);--ease-out-sm:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--t-fast:.12s;--t-med:.22s;--t-slow:.42s;--ring:0 0 0 3px #2563eb38}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11";font-family:Inter,system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.5}html{scroll-behavior:smooth}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{transition:background var(--t-fast);background:#94a3b866;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#64748b99}:focus{outline:none}:focus-visible{box-shadow:var(--ring);border-radius:var(--r-sm);outline:none}::selection{color:var(--text);background:#2563eb2e}table{border-collapse:collapse;width:100%}th{letter-spacing:.5px;text-transform:uppercase;color:var(--text-3);text-align:left;white-space:nowrap;z-index:2;border-bottom:1px solid var(--border);background:#fafafa;padding:10px 14px;font-size:10.5px;font-weight:600;position:sticky;top:0}td{vertical-align:middle;padding:10px 14px;font-size:12.5px}tbody tr{border-top:1px solid var(--border);transition:background var(--t-fast), transform var(--t-fast)}tbody tr:hover{background:var(--bg)}tbody tr:first-child{border-top:none}.mono{font-family:JetBrains Mono,Fira Code,monospace}.num{font-variant-numeric:tabular-nums;letter-spacing:-.02em}.trunc{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes progressSweep{0%{transform:translate(-100%)}to{transform:translate(400%)}}@keyframes progressEnter{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.fade-in{animation:fadeIn .25s var(--ease-out) both}.fade-in-up{animation:fadeInUp .35s var(--ease-out) both}.slide-in{animation:slideIn .25s var(--ease-out) both}.scale-in{animation:scaleIn .2s var(--ease-out) both}.spin{animation:1s linear infinite spin}.pulse{animation:1.8s ease-in-out infinite pulse}.stagger>*{animation:fadeInUp .35s var(--ease-out) both}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.18s}.stagger>:nth-child(5){animation-delay:.24s}.stagger>:nth-child(6){animation-delay:.3s}.stagger>:nth-child(7){animation-delay:.36s}.stagger>:nth-child(8){animation-delay:.42s}.skeleton{border-radius:var(--r);pointer-events:none;-webkit-user-select:none;user-select:none;background:linear-gradient(90deg,#eef2f7 25%,#dbe3ec 50%,#eef2f7 75%) 0 0/200% 100%;animation:1.4s linear infinite shimmer}.skeleton-text{border-radius:4px;height:12px}.skeleton-title{border-radius:6px;height:18px}.skeleton-row{border-radius:6px;height:36px;margin-bottom:4px}.skeleton-chart{border-radius:var(--r-lg);height:220px}.skeleton-card{border-radius:var(--r-lg);height:92px}.global-progress{z-index:9999;pointer-events:none;opacity:0;height:2.5px;transition:opacity var(--t-med) var(--ease-out);background:0 0;position:fixed;top:0;left:0;right:0}.global-progress.is-loading{opacity:1}.global-progress:before{content:"";width:35%;animation:progressSweep 1.3s infinite var(--ease-in-out);filter:drop-shadow(0 0 6px #2563eb73);background:linear-gradient(90deg,#0000,#2563ebf2 30%,#7c3aedf2 70%,#0000);border-radius:99px;position:absolute;inset:0}.card{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--border);box-shadow:var(--sh-xs);overflow:hidden}.btn{border-radius:var(--r-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--t-fast) var(--ease-out);border:1px solid #0000;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 1px 2px #2563eb66}.btn-primary:hover{background:var(--blue-dk);box-shadow:var(--sh-blue)}.btn-ghost{color:var(--text-2);border-color:var(--border);background:0 0}.btn-ghost:hover{background:var(--bg-2);color:var(--text);border-color:var(--border-md)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:active{transform:none}input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 3px #2563eb1f;border-color:var(--blue)!important;background:var(--surface)!important}.empty-state{text-align:center;color:var(--text-3);flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.empty-state-icon{background:var(--bg-2);width:44px;height:44px;color:var(--text-4);border-radius:12px;justify-content:center;align-items:center;display:flex}.empty-state-title{color:var(--text-2);font-size:13px;font-weight:600}.empty-state-hint{color:var(--text-3);max-width:320px;font-size:12px}.badge{white-space:nowrap;border-radius:99px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-blue{background:var(--blue-lt);color:var(--blue)}.badge-green{background:var(--green-lt);color:#059669}.badge-amber{background:var(--amber-lt);color:#d97706}.badge-red{background:var(--red-lt);color:#dc2626}.badge-gray{background:var(--bg-2);color:var(--text-2)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}@media (max-width:768px){[style*=grid-template-columns][style*="1fr 1fr"],[style*=grid-template-columns][style*=repeat\(3]{grid-template-columns:1fr!important}main{padding:12px!important}header{padding:0 12px!important}html,body{max-width:100%;overflow-x:hidden}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
