@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--accent: #FFCD02;--accent2: #F0C000;--accent-text: #856404;--accent-light: #FFF5C2;--bg: #FFFFFF;--surface: #FFFFFF;--surface2: #F8F9FA;--surface3: #F1F3F5;--border: #E9ECEF;--border2: #CED4DA;--text: #212529;--text2: #495057;--text3: #868E96;--blue: #339AF0;--blue2: #228BE6;--green: #2FB344;--red: #D63031;--orange: #F97316;--radius: 8px;--radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.08);--shadow-lg: 0 8px 32px rgba(0,0,0,.1);--shadow-yellow: 0 4px 20px rgba(255,205,2,.3)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--surface2);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:Manrope,-apple-system,BlinkMacSystemFont,sans-serif}#root{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--bg);border-bottom:1px solid var(--border);padding:0 28px;height:60px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.header-logo{display:flex;align-items:center;gap:10px;text-decoration:none}.header-title{font-family:Manrope,sans-serif;font-size:16px;font-weight:800;color:var(--text);letter-spacing:-.02em}.header-sub{font-size:11px;color:var(--text3);font-weight:400}.header-spacer{flex:1}.header-badge{display:flex;align-items:center;gap:6px;background:var(--accent-light);border:1px solid rgba(255,205,2,.5);color:var(--accent-text);font-size:11px;font-weight:700;padding:4px 12px;border-radius:99px;font-family:Manrope,sans-serif}.header-badge .dot{width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 6px var(--green)}.app-body{flex:1;padding:28px;max-width:1440px;margin:0 auto;width:100%}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.card-title{font-family:Manrope,sans-serif;font-size:14px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}.card-title-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px}.icon-orange{background:#ffcd0226}.icon-blue{background:#339af01f}.icon-green{background:#2fb3441f}.icon-purple{background:#7439bc1a}.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:16px}@media (max-width: 1100px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 700px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;position:relative;overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .15s,transform .15s}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),transparent)}.stat-label{font-family:Manrope,sans-serif;font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px}.stat-value{font-family:Manrope,sans-serif;font-size:28px;font-weight:800;color:var(--text);line-height:1;margin-bottom:4px;font-variant-numeric:tabular-nums}.stat-sub{font-size:11px;color:var(--text3)}.upload-zone{border:2px dashed var(--border2);border-radius:var(--radius-lg);padding:36px 28px;text-align:center;cursor:pointer;transition:all .2s;background:var(--surface2)}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);background:var(--accent-light)}.upload-icon{width:52px;height:52px;margin:0 auto 14px;background:var(--accent-light);border:2px solid rgba(255,205,2,.4);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px}.upload-zone strong{font-family:Manrope,sans-serif;font-size:14px;font-weight:700;color:var(--text)}.upload-zone p{font-size:12px;color:var(--text3);margin-top:4px}.upload-zone input[type=file]{display:none}.upload-file-selected{display:flex;align-items:center;gap:10px;background:var(--accent-light);border:1px solid rgba(255,205,2,.5);border-radius:var(--radius);padding:10px 14px;margin-top:12px}.upload-file-selected .file-icon{font-size:20px}.upload-file-selected .file-name{font-family:Manrope,sans-serif;font-weight:700;color:var(--accent-text);font-size:13px}.upload-file-selected .file-size{font-size:11px;color:var(--text3)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:var(--radius);border:none;cursor:pointer;font-size:13px;font-family:Manrope,sans-serif;font-weight:600;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--accent);color:var(--accent-text);box-shadow:0 2px 8px #ffcd0259}.btn-primary:hover:not(:disabled){background:var(--accent2);transform:translateY(-1px);box-shadow:0 4px 14px #ffcd0273}.btn-primary:disabled{background:var(--border2);color:var(--text3);cursor:not-allowed;box-shadow:none}.btn-ghost{background:transparent;border:1px solid var(--border2);color:var(--text2)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent-text);background:var(--accent-light)}.filter-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-label{font-family:Manrope,sans-serif;font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}.filter-select{background:var(--bg);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);padding:6px 10px;font-size:13px;cursor:pointer;outline:none;transition:border-color .15s;font-family:Inter,sans-serif}.filter-select:focus{border-color:var(--accent)}.tabs{display:flex;gap:2px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:3px;width:fit-content;margin-bottom:20px}.tab-btn{padding:7px 16px;border-radius:6px;border:none;background:transparent;color:var(--text3);cursor:pointer;font-size:12px;font-family:Manrope,sans-serif;font-weight:600;transition:all .15s;white-space:nowrap}.tab-btn:hover{color:var(--text);background:var(--bg)}.tab-btn.active{background:var(--accent);color:var(--accent-text);box-shadow:0 1px 4px #ffcd0266}.progress-wrap{height:4px;background:var(--border);border-radius:99px;overflow:hidden;margin-top:10px}.progress-inner{height:100%;background:linear-gradient(90deg,var(--accent),#FFE566);animation:indeterminate 1.4s infinite}@keyframes indeterminate{0%{transform:translate(-100%) scaleX(.3)}50%{transform:translate(0) scaleX(.5)}to{transform:translate(100%) scaleX(.3)}}.error-box{background:#d630310f;border:1px solid rgba(214,48,49,.25);border-radius:var(--radius);padding:10px 14px;color:#b91c1c;font-size:13px;margin-top:12px;display:flex;align-items:center;gap:8px}.table-wrap{overflow-x:auto;overflow-y:auto;border-radius:var(--radius);border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;padding:10px 14px;color:var(--text3);font-family:Manrope,sans-serif;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:var(--surface2);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;position:sticky;top:0;z-index:1}thead th:hover{color:var(--accent-text)}tbody td{padding:10px 14px;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;color:var(--text2)}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--surface2)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:11px;font-family:Manrope,sans-serif;font-weight:700;white-space:nowrap}.badge-2xx{background:#2fb3441a;color:#1a7a32;border:1px solid rgba(47,179,68,.25)}.badge-3xx{background:#339af01a;color:#1971c2;border:1px solid rgba(51,154,240,.25)}.badge-4xx{background:#ffcd0226;color:#856404;border:1px solid rgba(255,205,2,.4)}.badge-5xx{background:#d630311a;color:#b91c1c;border:1px solid rgba(214,48,49,.25)}.badge-429{background:#f973161a;color:#c2410c;border:1px solid rgba(249,115,22,.25)}.country-bar-bg{height:5px;background:var(--border);border-radius:99px;margin-top:4px;overflow:hidden}.country-bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),#FFE566);transition:width .4s ease}.map-wrap{background:var(--surface2);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.map-tooltip{background:var(--bg);border:1px solid var(--border2);border-radius:var(--radius);padding:8px 12px;font-size:12px;margin-top:8px;display:inline-flex;align-items:center;gap:8px;box-shadow:var(--shadow-sm)}.search-input{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);padding:7px 10px 7px 32px;font-size:13px;font-family:Inter,sans-serif;outline:none;transition:border-color .15s,background .15s;width:220px}.search-input:focus{border-color:var(--accent);background:var(--bg);box-shadow:0 0 0 3px #ffcd0226}.search-wrap{position:relative;display:inline-block}.search-wrap .search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--text3);font-size:13px;pointer-events:none}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 24px;color:var(--text3);gap:8px;font-size:13px}.empty-icon{font-size:36px;margin-bottom:6px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 960px){.grid-2{grid-template-columns:1fr}}.rank{color:var(--text3);font-size:12px;font-weight:700;width:32px;font-family:Manrope,sans-serif}.mono{font-family:JetBrains Mono,SF Mono,Cascadia Code,Consolas,monospace;font-size:12px!important}.val-primary{color:var(--text);font-weight:700;font-family:Manrope,sans-serif}.val-accent{color:var(--accent-text);font-weight:700;font-family:Manrope,sans-serif}.val-dim{color:var(--text3)}.section-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-title{font-family:Manrope,sans-serif;font-size:14px;font-weight:700;color:var(--text)}.divider{height:1px;background:var(--border);margin:16px 0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}code{font-family:JetBrains Mono,monospace;font-size:.875em;background:var(--surface3);padding:1px 5px;border-radius:4px;color:var(--text)}pre{font-family:JetBrains Mono,monospace;font-size:12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;overflow-x:auto;color:var(--text2);line-height:1.65}.ai-md{font-size:14px;line-height:1.7;color:var(--text2)}.ai-md h1,.ai-md h2{font-family:Manrope,sans-serif;font-weight:800;color:var(--accent-text);margin:20px 0 10px}.ai-md h3,.ai-md h4{font-family:Manrope,sans-serif;font-weight:700;color:var(--text);margin:16px 0 8px}.ai-md h1{font-size:1.5em}.ai-md h2{font-size:1.25em}.ai-md h3{font-size:1.1em}.ai-md h4{font-size:1em}.ai-md p{margin-bottom:10px}.ai-md ul,.ai-md ol{margin:8px 0 10px 20px}.ai-md li{margin-bottom:4px}.ai-md strong{font-weight:700;color:var(--text)}.ai-md code{background:var(--surface3);color:var(--accent-text);border:1px solid var(--border2)}.ai-md pre{background:var(--surface2);border:1px solid var(--border)}.ai-md pre code{background:none;border:none;padding:0}.ai-md blockquote{border-left:3px solid var(--accent);padding:6px 14px;margin:10px 0;background:var(--accent-light);border-radius:0 var(--radius) var(--radius) 0;color:var(--accent-text)}.ai-md table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13px}.ai-md th{background:var(--surface2);padding:8px 12px;font-family:Manrope,sans-serif;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);border:1px solid var(--border)}.ai-md td{padding:8px 12px;border:1px solid var(--border);color:var(--text2)}.ai-md tr:nth-child(2n) td{background:var(--surface2)}.ai-md hr{border:none;border-top:1px solid var(--border);margin:16px 0}
