:root{--white:#fff;--canvas:#f8f9fc;--surface:#fff;--surface-2:#f2f4f8;--surface-3:#e8ecf4;--brand:#0ea5a0;--brand-light:#e0f5f4;--brand-mid:#0ea5a026;--brand-dark:#097a76;--brand-glow:#0ea5a040;--success:#10b981;--success-bg:#ecfdf5;--success-border:#10b98133;--warning:#f59e0b;--warning-bg:#fffbeb;--warning-border:#f59e0b33;--danger:#ef4444;--danger-bg:#fef2f2;--danger-border:#ef444433;--info:#3b82f6;--info-bg:#eff6ff;--info-border:#3b82f633;--purple:#8b5cf6;--purple-bg:#f5f3ff;--purple-border:#8b5cf633;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--text-inverse:#fff;--border:#e2e8f0;--border-strong:#cbd5e1;--border-focus:var(--brand);--shadow-xs:0 1px 2px #0f172a0d;--shadow-sm:0 1px 3px #0f172a14,0 1px 2px #0f172a0a;--shadow-md:0 4px 6px #0f172a12,0 2px 4px #0f172a0a;--shadow-lg:0 10px 15px #0f172a14,0 4px 6px #0f172a0a;--shadow-xl:0 20px 25px #0f172a1a,0 8px 10px #0f172a0a;--shadow-brand:0 8px 24px #0ea5a033;--shadow-card-hover:0 16px 32px #0f172a1a,0 4px 8px #0f172a0f;--shadow-3d:0 2px 0 #0f172a0f,0 4px 8px #0f172a14,0 12px 24px #0f172a0f;--shadow-3d-hover:0 4px 0 #0ea5a026,0 8px 16px #0f172a1a,0 24px 48px #0f172a14;--font-display:"Fraunces",serif;--font-body:"DM Sans",sans-serif;--font-mono:"JetBrains Mono",monospace;--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:24px;--r-full:9999px;--ease:cubic-bezier(0.4,0,0.2,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f9fc;background:var(--canvas);color:#0f172a;color:var(--text-primary);font-family:DM Sans,sans-serif;font-family:var(--font-body);font-size:14px;line-height:1.6;min-height:100vh}::-webkit-scrollbar{height:5px;width:5px}::-webkit-scrollbar-track{background:#f2f4f8;background:var(--surface-2)}::-webkit-scrollbar-thumb{background:#cbd5e1;background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#0ea5a0;background:var(--brand)}::selection{background:#0ea5a026;background:var(--brand-mid);color:#097a76;color:var(--brand-dark)}h1,h2,h3,h4{color:#0f172a;color:var(--text-primary);font-family:Fraunces,serif;font-family:var(--font-display);font-weight:600;line-height:1.2}.mono{font-family:JetBrains Mono,monospace;font-family:var(--font-mono)}.app-shell,.sidebar{display:flex;min-height:100vh}.sidebar{background:#fff;background:var(--white);border-right:1px solid #e2e8f0;border-right:1px solid var(--border);box-shadow:2px 0 8px #0f172a0a;flex-direction:column;flex-shrink:0;height:100vh;overflow-x:hidden;overflow-y:auto;position:-webkit-sticky;position:sticky;top:0;width:260px;z-index:40}.sidebar.collapsed{width:68px}.main-content{display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.topbar{align-items:center;background:#fff;background:var(--white);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);box-shadow:0 1px 2px #0f172a0d;box-shadow:var(--shadow-xs);display:flex;flex-shrink:0;gap:16px;height:64px;padding:0 28px}.page-body{flex:1 1;overflow-y:auto;padding:32px}.card{box-shadow:0 1px 3px #0f172a14,0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm);overflow:hidden;position:relative;transition:box-shadow .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1);transition:box-shadow .25s var(--ease),transform .25s var(--ease)}.card,.card-3d{background:#fff;background:var(--white);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:20px;border-radius:var(--r-xl)}.card-3d{box-shadow:0 2px 0 #0f172a0f,0 4px 8px #0f172a14,0 12px 24px #0f172a0f;box-shadow:var(--shadow-3d);transform:translateY(0);transition:box-shadow .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);transition:box-shadow .3s var(--ease),transform .3s var(--ease)}.card-3d:hover{box-shadow:0 4px 0 #0ea5a026,0 8px 16px #0f172a1a,0 24px 48px #0f172a14;box-shadow:var(--shadow-3d-hover);transform:translateY(-3px)}.card-brand{background:linear-gradient(135deg,#0ea5a0,#097a76);background:linear-gradient(135deg,var(--brand) 0,var(--brand-dark) 100%);border:none;box-shadow:0 8px 24px #0ea5a033;box-shadow:var(--shadow-brand);color:#fff;color:var(--white)}.btn{align-items:center;border:none;border-radius:12px;border-radius:var(--r-md);cursor:pointer;display:inline-flex;font-family:DM Sans,sans-serif;font-family:var(--font-body);font-size:13.5px;font-weight:600;gap:7px;letter-spacing:-.01em;padding:9px 18px;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);transition:all .2s var(--ease);white-space:nowrap}.btn-primary{background:#0ea5a0;background:var(--brand);box-shadow:0 1px 2px #0ea5a04d,0 3px 8px #0ea5a033;color:#fff;color:var(--white)}.btn-primary:hover{background:#097a76;background:var(--brand-dark);box-shadow:0 4px 12px #0ea5a066;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:#fff;background:var(--white);border:1px solid #e2e8f0;border:1px solid var(--border);box-shadow:0 1px 2px #0f172a0d;box-shadow:var(--shadow-xs);color:#0f172a;color:var(--text-primary)}.btn-secondary:hover{background:#f2f4f8;background:var(--surface-2);border-color:#cbd5e1;border-color:var(--border-strong);box-shadow:0 1px 3px #0f172a14,0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm)}.btn-ghost{background:#0000;border:none;color:#475569;color:var(--text-secondary)}.btn-ghost:hover{background:#f2f4f8;background:var(--surface-2);color:#0f172a;color:var(--text-primary)}.btn-danger-soft{background:#fef2f2;background:var(--danger-bg);border:1px solid #ef444433;border:1px solid var(--danger-border);color:#ef4444;color:var(--danger)}.btn-lg{border-radius:16px;border-radius:var(--r-lg);font-size:15px;padding:12px 24px}.btn-sm{border-radius:8px;border-radius:var(--r-sm);font-size:12px;padding:6px 12px}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none!important}.input{background:#fff;background:var(--white);border:1.5px solid #e2e8f0;border:1.5px solid var(--border);border-radius:12px;border-radius:var(--r-md);box-shadow:0 1px 2px #0f172a0d;box-shadow:var(--shadow-xs);color:#0f172a;color:var(--text-primary);font-family:DM Sans,sans-serif;font-family:var(--font-body);font-size:14px;outline:none;padding:9px 13px;transition:border-color .15s,box-shadow .15s;width:100%}.input:focus{border-color:#0ea5a0;border-color:var(--brand);box-shadow:0 0 0 3px #0ea5a026;box-shadow:0 0 0 3px var(--brand-mid)}.input::placeholder{color:#94a3b8;color:var(--text-tertiary)}.input-label{color:#475569;color:var(--text-secondary);display:block;font-size:12px;letter-spacing:.02em;margin-bottom:5px;text-transform:uppercase}.badge,.input-label{font-family:DM Sans,sans-serif;font-family:var(--font-body);font-weight:600}.badge{align-items:center;border-radius:9999px;border-radius:var(--r-full);display:inline-flex;font-size:11.5px;gap:4px;letter-spacing:.01em;padding:3px 9px}.badge-success{background:#ecfdf5;background:var(--success-bg);border:1px solid #10b98133;border:1px solid var(--success-border);color:#10b981;color:var(--success)}.badge-warning{background:#fffbeb;background:var(--warning-bg);border:1px solid #f59e0b33;border:1px solid var(--warning-border);color:#f59e0b;color:var(--warning)}.badge-danger{background:#fef2f2;background:var(--danger-bg);border:1px solid #ef444433;border:1px solid var(--danger-border);color:#ef4444;color:var(--danger)}.badge-info{background:#eff6ff;background:var(--info-bg);border:1px solid #3b82f633;border:1px solid var(--info-border);color:#3b82f6;color:var(--info)}.badge-purple{background:#f5f3ff;background:var(--purple-bg);border:1px solid #8b5cf633;border:1px solid var(--purple-border);color:#8b5cf6;color:var(--purple)}.badge-neutral{background:#f2f4f8;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);color:#475569;color:var(--text-secondary)}.badge-brand{background:#e0f5f4;background:var(--brand-light);border:1px solid #0ea5a033;color:#097a76;color:var(--brand-dark)}.progress-track{background:#f2f4f8;background:var(--surface-2);height:6px;overflow:visible}.progress-fill,.progress-track{border-radius:3px;position:relative}.progress-fill{background:linear-gradient(90deg,#0ea5a0,#06b6d4);background:linear-gradient(90deg,var(--brand),#06b6d4);box-shadow:0 0 8px #0ea5a066;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1);transition:width .5s var(--ease)}.progress-fill:after{background:#0ea5a0;background:var(--brand);border:2px solid #fff;border:2px solid var(--white);border-radius:50%;box-shadow:0 0 8px #0ea5a040;box-shadow:0 0 8px var(--brand-glow);content:"";height:12px;position:absolute;right:-4px;top:-3px;width:12px}.stat-card{background:#fff;background:var(--white);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:20px;border-radius:var(--r-xl);box-shadow:0 2px 0 #0f172a0f,0 4px 8px #0f172a14,0 12px 24px #0f172a0f;box-shadow:var(--shadow-3d);cursor:default;overflow:hidden;padding:20px 22px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s var(--ease)}.stat-card:before{border-radius:20px 20px 0 0;border-radius:var(--r-xl) var(--r-xl) 0 0;content:"";height:3px;left:0;position:absolute;right:0;top:0}.stat-card:hover{box-shadow:0 4px 0 #0ea5a026,0 8px 16px #0f172a1a,0 24px 48px #0f172a14;box-shadow:var(--shadow-3d-hover);transform:translateY(-4px)}.stat-card.brand:before{background:linear-gradient(90deg,#0ea5a0,#06b6d4);background:linear-gradient(90deg,var(--brand),#06b6d4)}.stat-card.success:before{background:#10b981;background:var(--success)}.stat-card.warning:before{background:#f59e0b;background:var(--warning)}.stat-card.danger:before{background:#ef4444;background:var(--danger)}.stat-card.purple:before{background:#8b5cf6;background:var(--purple)}.nav-item{align-items:center;border-radius:12px;border-radius:var(--r-md);cursor:pointer;display:flex;gap:10px;margin:1px 8px;padding:9px 14px;position:relative;text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all .15s var(--ease)}.nav-item:hover{background:#f2f4f8;background:var(--surface-2)}.nav-item.active{background:#e0f5f4;background:var(--brand-light)}.nav-item.active:before{background:#0ea5a0;background:var(--brand);border-radius:0 2px 2px 0;box-shadow:1px 0 6px #0ea5a040;box-shadow:1px 0 6px var(--brand-glow);content:"";height:60%;left:0;position:absolute;top:20%;width:3px}.nav-label{color:#475569;color:var(--text-secondary);font-size:13.5px;font-weight:500}.nav-item.active .nav-label{color:#097a76;color:var(--brand-dark);font-weight:600}.nav-icon{flex-shrink:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideRight{0%{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes ripple{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2.4)}}@keyframes gradMove{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.fade-up{animation:fadeUp .4s cubic-bezier(.4,0,.2,1) both;animation:fadeUp .4s var(--ease) both}.fade-in{animation:fadeIn .3s cubic-bezier(.4,0,.2,1) both;animation:fadeIn .3s var(--ease) both}.scale-in{animation:scaleIn .25s cubic-bezier(.34,1.56,.64,1) both;animation:scaleIn .25s var(--ease-spring) both}.spin{animation:spin 1s linear infinite}.float{animation:float 4s ease-in-out infinite}.stagger>:first-child{animation-delay:0ms}.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}.skeleton{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f2f4f8 25%,#e2e8f0 50%,#f2f4f8 75%);background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 50%,var(--surface-2) 75%);background-size:200% 100%;border-radius:12px;border-radius:var(--r-md)}.tooltip-wrap{display:inline-flex;position:relative}.tooltip-wrap:hover .tooltip-box{opacity:1;pointer-events:auto;transform:translateY(0)}.tooltip-box{background:#0f172a;background:var(--text-primary);border-radius:8px;border-radius:var(--r-sm);bottom:calc(100% + 8px);box-shadow:0 4px 6px #0f172a12,0 2px 4px #0f172a0a;box-shadow:var(--shadow-md);color:#fff;color:var(--white);font-family:DM Sans,sans-serif;font-family:var(--font-body);font-size:12px;left:50%;opacity:0;padding:5px 10px;pointer-events:none;position:absolute;transform:translateX(-50%) translateY(4px);transition:all .15s cubic-bezier(.4,0,.2,1);transition:all .15s var(--ease);white-space:nowrap}.divider{background:#e2e8f0;background:var(--border);height:1px;margin:0}.glass{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffffd9;border:1px solid #fff9}.mesh-bg{background:radial-gradient(ellipse 80% 50% at 20% -10%,#0ea5a00f 0,#0000 60%),radial-gradient(ellipse 60% 40% at 80% 110%,#3b82f60a 0,#0000 60%),#f8f9fc;background:radial-gradient(ellipse 80% 50% at 20% -10%,#0ea5a00f 0,#0000 60%),radial-gradient(ellipse 60% 40% at 80% 110%,#3b82f60a 0,#0000 60%),var(--canvas)}.chip{align-items:center;background:#f2f4f8;background:var(--surface-2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:9999px;border-radius:var(--r-full);color:#475569;color:var(--text-secondary);display:inline-flex;font-size:12px;font-weight:500;gap:5px;padding:4px 10px}.table-wrap{border-radius:20px;border-radius:var(--r-xl);overflow-x:auto}table{border-collapse:collapse;width:100%}th{background:#f2f4f8;background:var(--surface-2);color:#475569;color:var(--text-secondary);font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:10px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}td,th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border)}td{font-size:13.5px;padding:12px 16px;vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:#f2f4f8;background:var(--surface-2)}.live-dot{background:#10b981;background:var(--success);border-radius:50%;height:8px;position:relative;width:8px}.live-dot:after{animation:ripple 2s ease-out infinite;border:2px solid #10b981;border:2px solid var(--success);border-radius:50%;content:"";inset:-4px;opacity:0;position:absolute}
/*# sourceMappingURL=main.5ed7ebb8.css.map*/