@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--bg-900:#f8f9fa;--bg-800:#fff;--bg-700:#f1f3f4;--bg-600:#fff;--bg-500:#e8eaed;--bg-card:#fff;--bg-card-hover:#f1f3f4;--border:#dadce0;--border-active:#1a73e8;--text-primary:#202124;--text-secondary:#5f6368;--text-muted:#80868b;--accent-blue:#1a73e8;--accent-blue-light:#4285f4;--accent-blue-glow:#e8f0fe;--accent-indigo:#1a73e8;--accent-green:#1e8e3e;--accent-green-light:#34a853;--accent-red:#d93025;--accent-amber:#f29900;--accent-purple:#9334e6;--positive:#1e8e3e;--negative:#d93025;--neutral:#5f6368;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--shadow-card:0 1px 2px 0 #3c40434d, 0 1px 3px 1px #3c404326;--shadow-glow:none;--sidebar-width:256px;--header-height:64px;--transition:.2s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:14px}body{background:var(--bg-900);min-height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-900)}::-webkit-scrollbar-thumb{background:#dadce0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#bdc1c6}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--bg-800);border-right:1px solid var(--border);z-index:100;flex-direction:column;width:256px;height:100vh;transition:width .2s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar-logo{border-bottom:1px solid var(--border);height:var(--header-height);flex-direction:row;align-items:center;gap:10px;padding:16px 24px;display:flex;overflow:hidden}.sidebar-logo-text{color:var(--text-secondary);letter-spacing:-.2px;font-size:1.15rem;font-weight:500}.sidebar-logo-sub{color:var(--text-muted);letter-spacing:.2px;margin-top:2px;font-size:.7rem;font-weight:400}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:16px 0;display:flex;overflow-y:auto}.nav-section-label{color:var(--text-muted);padding:16px 24px 8px;font-size:.7rem;font-weight:500}.nav-link{color:var(--text-secondary);transition:background var(--transition), color var(--transition);border-left:3px solid #0000;border-radius:0 24px 24px 0;align-items:center;gap:12px;margin-right:12px;padding:10px 24px 10px 21px;font-size:.85rem;font-weight:500;display:flex;position:relative}.nav-link:hover{background:var(--bg-card-hover);color:var(--text-primary)}.nav-link.active{background:var(--accent-blue-glow);color:var(--accent-blue);border-left:3px solid var(--accent-blue);padding-left:21px}.nav-link svg{flex-shrink:0;width:18px;height:18px}html[data-sidebar=collapsed]{--sidebar-width:64px}html[data-sidebar=collapsed] .sidebar{width:64px}html[data-sidebar=collapsed] .main-content{width:calc(100% - 64px);margin-left:64px}.sidebar-label-text{white-space:nowrap;max-width:200px;transition:opacity .15s,max-width .15s;overflow:hidden}html[data-sidebar=collapsed] .sidebar-label-text{opacity:0;max-width:0}html[data-sidebar=collapsed] .nav-section-label{display:none}html[data-sidebar=collapsed] .nav-link{border-radius:0;justify-content:center;margin-right:0;padding:10px 0}html[data-sidebar=collapsed] .sidebar-logo{justify-content:center;padding:16px 0}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:8px 0;display:flex}.sidebar-toggle{color:var(--text-secondary);width:100%;transition:background var(--transition), color var(--transition);border-radius:0 24px 24px 0;align-items:center;gap:12px;margin-right:12px;padding:10px 24px;font-size:.78rem;font-weight:500;display:flex}.sidebar-toggle:hover{background:var(--bg-card-hover);color:var(--text-primary)}html[data-sidebar=collapsed] .sidebar-toggle{border-radius:0;justify-content:center;margin-right:0;padding:10px 0}.main-content{flex-direction:column;flex:1;width:calc(100% - 256px);min-width:0;min-height:100vh;margin-left:256px;transition:margin-left .2s cubic-bezier(.4,0,.2,1),width .2s cubic-bezier(.4,0,.2,1);display:flex}.page-header{height:var(--header-height);background:var(--bg-800);border-bottom:1px solid var(--border);z-index:50;align-items:center;gap:16px;padding:0 32px;display:flex;position:sticky;top:0}.page-header-title{color:var(--text-primary);flex:1;font-size:1.15rem;font-weight:400}.page-header-subtitle{color:var(--text-secondary);margin-top:1px;font-size:.85rem}.page-body{flex:1;width:100%;min-width:0;max-width:1400px;padding:32px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:none;transition:box-shadow var(--transition)}.card:hover{box-shadow:var(--shadow-card)}.card-pad{padding:24px}.card-title{color:var(--text-primary);margin-bottom:20px;font-size:1rem;font-weight:400}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-grid-secondary{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow var(--transition);flex-direction:column;gap:8px;padding:24px;display:flex;position:relative;overflow:hidden}.kpi-card:hover{box-shadow:var(--shadow-card)}.kpi-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.kpi-value{color:var(--text-primary);font-size:2rem;font-weight:400;line-height:1.2}.kpi-sub{color:var(--text-muted);font-size:.8rem}.kpi-icon{color:var(--text-secondary);opacity:.5;position:absolute;top:24px;right:24px}.kpi-card-mini{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow var(--transition);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex;position:relative;overflow:hidden}.kpi-card-mini:hover{box-shadow:var(--shadow-card)}.kpi-card-mini .kpi-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.kpi-value-mini{color:var(--text-primary);white-space:nowrap;font-size:1.2rem;font-weight:500}.kpi-value-mini.positive{color:var(--accent-green)}.kpi-value-mini.negative{color:var(--accent-red)}.charts-grid{grid-template-columns:2fr 1fr;gap:24px;margin-bottom:32px;display:grid}@media (max-width:1100px){.charts-grid{grid-template-columns:1fr}}.chart-container{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.chart-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.chart-title{color:var(--text-primary);font-size:1rem;font-weight:400}.table-container{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.table-header-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.table-scroll{max-width:100%;max-height:70vh;overflow:auto}table{border-collapse:collapse;width:100%;min-width:900px;font-size:.85rem}thead th{background:var(--bg-700);background-color:var(--bg-700);text-align:left;border-bottom:1px solid var(--border);border-top:1px solid var(--border);white-space:nowrap;padding:12px 24px;font-size:.82rem;font-weight:600;color:#5f6368!important;opacity:1!important;visibility:visible!important}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{color:var(--text-primary)}tbody tr{border-bottom:1px solid var(--border);transition:background var(--transition);cursor:pointer}tbody tr:hover{background:var(--bg-card-hover)}tbody tr:last-child{border-bottom:none}tbody td{color:var(--text-secondary);white-space:nowrap;padding:12px 24px}tbody td.text-primary{color:var(--text-primary);font-weight:400}.badge{letter-spacing:.3px;border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.badge-blue{background:var(--accent-blue-glow);color:var(--accent-blue);border-color:#1a73e833}.badge-green{color:#1e8e3e;background:#e6f4ea;border-color:#1e8e3e33}.badge-amber{color:#f29900;background:#fef7e0;border-color:#f2990033}.badge-red{color:#d93025;background:#fce8e6;border-color:#d9302533}.badge-purple{color:#9334e6;background:#f3e8fd;border-color:#9334e633}.badge-gray{color:#5f6368;border-color:var(--border);background:#f1f3f4}.input-wrap{position:relative}.input{background:var(--bg-600);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--transition), box-shadow var(--transition);outline:none;width:100%;padding:10px 14px;font-size:.85rem}.input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 2px #1a73e833}.input-icon{color:var(--text-secondary);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input.has-icon{padding-left:36px}.select{background:var(--bg-600);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;appearance:none;outline:none;padding:10px 14px;font-size:.85rem}.select:focus{border-color:var(--accent-blue);box-shadow:0 0 0 2px #1a73e833}.btn{border-radius:var(--radius-sm);transition:all var(--transition);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent-blue);color:#fff;border:1px solid #0000}.btn-primary:hover{background:var(--accent-blue-light);box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.btn-ghost{color:var(--accent-blue);background:0 0;border:1px solid #0000}.btn-ghost:hover{background:var(--accent-blue-glow)}.btn-sm{padding:6px 12px;font-size:.8rem}.btn svg{width:16px;height:16px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{background:var(--bg-800);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);border-radius:16px;align-items:center;gap:8px;padding:6px 16px;font-size:.85rem;font-weight:400;display:inline-flex}.chip:hover{background:var(--bg-card-hover);color:var(--text-primary)}.chip.active{background:var(--accent-blue-glow);border-color:var(--accent-blue);color:var(--accent-blue)}.ai-card{border-radius:var(--radius-lg);background:#f8fbff;border:1px solid #d2e3fc;padding:24px;position:relative;overflow:hidden}.ai-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.ai-badge{letter-spacing:.2px;background:var(--accent-blue-glow);color:var(--accent-blue);border:1px solid #1a73e833;border-radius:16px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.ai-content p{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.ai-insights-list{flex-direction:column;gap:12px;margin-top:12px;list-style:none;display:flex}.ai-insights-list li{color:var(--text-secondary);align-items:flex-start;gap:12px;font-size:.85rem;line-height:1.5;display:flex}.ai-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.ai-dot.positive{background:var(--accent-green)}.ai-dot.negative{background:var(--accent-red)}.ai-dot.neutral{background:var(--accent-amber)}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#e8eaed 25%,#f1f3f4 50%,#e8eaed 75%) 0 0/200% 100%;animation:1.5s infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.pagination{border-top:1px solid var(--border);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:16px 24px;font-size:.85rem;display:flex}.empty-state{color:var(--text-secondary);text-align:center;flex-direction:column;align-items:center;gap:16px;padding:80px 24px;font-size:.9rem;display:flex}.positive{color:var(--accent-green)}.negative{color:var(--accent-red)}.neutral{color:var(--text-muted)}.recharts-tooltip-wrapper{outline:none!important}thead th{z-index:2;position:sticky;top:0}html[data-sidebar=collapsed] .nav-link{border-left:none;padding-left:0}.recharts-responsive-container{min-width:0!important}.tx-detail-grid{white-space:normal;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 24px;display:grid}.tx-detail-grid>div{white-space:normal;word-break:break-word;min-width:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
