:root{color-scheme:dark;--bg: #070d18;--panel: #0f172a;--panel2: #162238;--panel-glass: rgba(15, 23, 42, .85);--border: rgba(255, 255, 255, .1);--border-subtle: rgba(255, 255, 255, .06);--border-focus: #38bdf8;--text: #f1f5f9;--muted: #94a3b8;--primary: #3b82f6;--primary-2: #2563eb;--primary-glow: rgba(59, 130, 246, .35);--err: #f43f5e;--warn: #f59e0b;--info: #38bdf8;--ok: #10b981;--mono: ui-monospace, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--sans: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.5}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(1000px 500px at 15% -5%,rgba(30,58,138,.35) 0%,transparent 65%),radial-gradient(800px 450px at 85% 15%,rgba(14,116,144,.25) 0%,transparent 60%),radial-gradient(1200px 700px at 50% 100%,rgba(15,23,42,.9) 0%,var(--bg) 80%);background-attachment:fixed;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.app{max-width:1140px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.top{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:.5rem 0 1.5rem;border-bottom:1px solid var(--border-subtle);margin-bottom:1.25rem;flex-wrap:wrap}.brand-header{display:flex;align-items:center;gap:1rem}.brand-icon-wrap{width:50px;height:50px;border-radius:14px;background:linear-gradient(135deg,#3b82f647,#0ea5e926);border:1px solid rgba(59,130,246,.45);display:flex;align-items:center;justify-content:center;box-shadow:0 0 25px #2563eb47,inset 0 1px #fff3;flex-shrink:0;transition:transform .2s ease}.brand-icon-wrap:hover{transform:scale(1.05)}.brand-icon{font-size:1.6rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.brand-title-row{display:flex;align-items:center;gap:.65rem}h1{margin:0;font-size:1.75rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#fff 30%,#93c5fd 95%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-badge{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#38bdf8;background:#38bdf81f;border:1px solid rgba(56,189,248,.35);padding:.15rem .55rem;border-radius:999px;box-shadow:0 0 12px #38bdf826}.sub{margin:.2rem 0 0;color:var(--muted);font-size:.88rem;font-weight:500}.top-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.top-action-btn{display:inline-flex;align-items:center;gap:.45rem;background:#162238bf;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);color:#e2e8f0;padding:.45rem .9rem;border-radius:10px;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 8px #00000040;user-select:none}.top-action-btn:hover{background:#1e2f4ee6;border-color:#3b82f680;color:#fff;transform:translateY(-1px);box-shadow:0 4px 14px #2563eb4d}.changelog-btn{position:relative;border-color:#60a5fa59;color:#93c5fd;padding-right:1.15rem}.btn-sparkle{color:#fbbf24;font-size:.95rem}.ver-text{font-family:var(--mono);font-weight:700;letter-spacing:.02em}.update-dot{position:absolute;top:5px;right:6px;width:8px;height:8px;border-radius:50%;background:#f43f5e;box-shadow:0 0 10px #f43f5e,0 0 4px #fb7185;animation:pulseDot 2s infinite}@keyframes pulseDot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.75}}.history-btn,.lang-btn{color:#cbd5e1}.lang-globe{font-size:.95rem}.phase-bar{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(90deg,#1e3a8a38,#0f172a80);border:1px solid rgba(59,130,246,.25);border-radius:12px;padding:.65rem 1.1rem;margin-bottom:1.25rem;gap:1rem;flex-wrap:wrap;box-shadow:0 2px 10px #0003}.phase-status{display:flex;align-items:center;gap:.65rem}.pulse-indicator{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 10px #10b981,0 0 4px #34d399;animation:livePulse 2s infinite;flex-shrink:0}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}.phase-text{font-size:.85rem;color:#cbd5e1;font-weight:500}.phase-chips{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.phase-chip{font-size:.72rem;font-weight:700;padding:.15rem .55rem;border-radius:6px;background:#1e293bd9;border:1px solid rgba(255,255,255,.08);color:#94a3b8;letter-spacing:.02em}.panel{background:var(--panel-glass);border:1px solid var(--border);border-radius:16px;padding:1.25rem;margin-bottom:1.25rem;box-shadow:0 10px 30px #00000059;backdrop-filter:blur(14px);transition:border-color .2s ease}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.panel h2{margin:0 0 .85rem;font-size:1.12rem;font-weight:700;letter-spacing:-.01em;color:#f1f5f9}.panel-head h2{margin:0}.btn{appearance:none;border:1px solid var(--border);background:var(--panel2);color:var(--text);border-radius:10px;padding:.5rem .95rem;font-weight:600;cursor:pointer;font-size:.88rem;transition:all .18s cubic-bezier(.16,1,.3,1);display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.btn:hover{border-color:#3b82f6;background:#1e293b;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-color:#3b82f680;color:#fff;box-shadow:0 4px 14px #2563eb59}.btn.primary:hover{background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 6px 20px #2563eb73}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover{background:#ffffff0f;color:#fff}.btn.sm{padding:.28rem .65rem;font-size:.8rem;border-radius:7px}.btn.danger{background:#f43f5e26;border-color:#f43f5e59;color:#f43f5e}.btn.danger:hover{background:#f43f5e;color:#fff;box-shadow:0 4px 14px #f43f5e66}.editor-panel{position:relative;background:linear-gradient(180deg,#121a2bf2,#0c1220fa)}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.65rem}.editor-label-wrap{display:flex;align-items:center;gap:.45rem}.editor-icon{font-size:1.15rem}.editor-label-wrap .label{margin:0;font-weight:700;color:#e2e8f0;font-size:.92rem}.editor-stat-chip{font-size:.75rem;font-family:var(--mono);color:var(--muted);background:#0f172a99;padding:.2rem .55rem;border-radius:6px;border:1px solid rgba(255,255,255,.05)}.editor{width:100%;resize:vertical;min-height:125px;background:#090e1a;color:#e2e8f0;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:.95rem 1.1rem;font-family:var(--mono);font-size:.93rem;line-height:1.6;letter-spacing:.02em;transition:all .2s ease;box-shadow:inset 0 2px 6px #00000073}.editor:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf82e,inset 0 2px 6px #00000073}.editor-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.85rem;flex-wrap:wrap}.segmented-control{display:inline-flex;background:#0b1220d9;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:3px;gap:3px}.segmented-btn{background:transparent;border:none;color:#94a3b8;padding:.35rem .8rem;font-size:.82rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .18s ease}.segmented-btn:hover{color:#fff}.segmented-btn.active{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font-weight:700;box-shadow:0 2px 8px #2563eb59}.action-buttons-wrap{display:flex;align-items:center;gap:.6rem}.main-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1.4rem;font-size:.94rem;font-weight:700;background:linear-gradient(135deg,#3b82f6,#0284c7);border:none;border-radius:10px;color:#fff;cursor:pointer;box-shadow:0 4px 18px #0ea5e959,inset 0 1px #ffffff40;transition:all .2s cubic-bezier(.16,1,.3,1)}.main-btn:hover{background:linear-gradient(135deg,#2563eb,#0369a1);transform:translateY(-2px);box-shadow:0 6px 24px #0ea5e980}.main-btn:active{transform:translateY(0)}.clear-btn{color:#ef4444;border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:.45rem .75rem}.clear-btn:hover{background:#ef44441f;border-color:#ef4444;color:#f87171}.sample-chips-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.85rem;padding-top:.85rem;border-top:1px solid rgba(255,255,255,.06)}.sample-label{font-size:.78rem;font-weight:600;color:var(--muted);margin-right:.2rem}.chip-btn{background:#16244480;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#cbd5e1;padding:.3rem .65rem;font-size:.78rem;font-weight:500;cursor:pointer;transition:all .15s ease}.chip-btn:hover{background:#1e3a8a66;border-color:#3b82f666;color:#fff;transform:translateY(-1px)}.chip-btn.alert{border-color:#f59e0b4d;color:#fde68a}.chip-btn.alert:hover{background:#f59e0b26;border-color:#f59e0b}.chip-btn.batch{border-color:#a855f74d;color:#e9d5ff}.chip-btn.batch:hover{background:#a855f726;border-color:#a855f7}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;margin-bottom:1.25rem}.stat{background:linear-gradient(145deg,#121a2bd9,#0d1321f2);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:.9rem 1rem;box-shadow:0 4px 16px #00000040;backdrop-filter:blur(10px);transition:transform .2s,border-color .2s}.stat:hover{transform:translateY(-2px);border-color:#3b82f659}.stat-label{display:block;color:#94a3b8;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem}.stat-value{font-weight:800;font-size:1.25rem;line-height:1.2}.stat-value.score-good{color:#34d399;text-shadow:0 0 16px rgba(52,211,153,.4)}.stat-value.score-warn{color:#fbbf24;text-shadow:0 0 16px rgba(251,191,36,.4)}.stat-value.score-bad{color:#f87171;text-shadow:0 0 16px rgba(248,113,113,.4)}.kind-tag{display:inline-block;padding:.15rem .55rem;border-radius:6px;background:color-mix(in srgb,var(--primary) 22%,transparent);border:1px solid rgba(59,130,246,.3);color:#93c5fd;font-size:.95rem;font-family:var(--mono)}.pills{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.pill{border-radius:999px;padding:.22rem .6rem;font-size:.75rem;font-weight:700;border:1px solid var(--border)}.pill.err{color:var(--err);background:#f43f5e26;border-color:#f43f5e4d}.pill.warn{color:var(--warn);background:#f59e0b26;border-color:#f59e0b4d}.pill.info{color:var(--info);background:#38bdf826;border-color:#38bdf84d}.batch-header-bar{background:linear-gradient(180deg,#121a2bf2,#0d1321fa);border:1px solid var(--border);border-radius:16px;padding:1rem 1.15rem;margin-bottom:1.25rem;box-shadow:0 8px 24px #00000040}.batch-info{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem;margin-bottom:.85rem;font-size:.9rem}.batch-tag{font-weight:700;color:#93c5fd;background:#3b82f62e;border:1px solid rgba(59,130,246,.35);padding:.25rem .65rem;border-radius:8px}.batch-avg{color:var(--text);font-weight:600}.batch-avg.score-good strong{color:#34d399;text-shadow:0 0 10px rgba(52,211,153,.35)}.batch-avg.score-warn strong{color:#fbbf24;text-shadow:0 0 10px rgba(251,191,36,.35)}.batch-avg.score-bad strong{color:#f87171;text-shadow:0 0 10px rgba(248,113,113,.35)}.batch-tabs{display:flex;flex-wrap:wrap;gap:.5rem}.tab-btn{display:inline-flex;align-items:center;gap:.45rem;background:#162238b3;color:#cbd5e1;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.45rem .85rem;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .18s cubic-bezier(.16,1,.3,1)}.tab-btn:hover{border-color:#3b82f666;background:#1e3050d9;color:#fff;transform:translateY(-1px)}.tab-btn.active{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#3b82f6;color:#fff;box-shadow:0 4px 14px #2563eb66}.tab-btn.chart-tab{background:linear-gradient(135deg,#1e293b,#334155);border-color:#475569}.tab-btn.chart-tab.active{background:linear-gradient(135deg,#3b82f6,#8b5cf6);box-shadow:0 4px 14px #8b5cf666}.tab-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tab-dot.ok{background:#10b981;box-shadow:0 0 8px #10b981}.tab-dot.warn{background:#f59e0b;box-shadow:0 0 8px #f59e0b}.tab-dot.err{background:#f43f5e;box-shadow:0 0 8px #f43f5e}.single-chart-toggle{margin-bottom:1rem}.merged-box{max-height:240px;overflow-y:auto}.merged-list{margin-top:1.5rem}.merged-list h3{font-size:.95rem;color:var(--muted);margin:0 0 .75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.merged-report-card{background:#162238bf;border:1px solid rgba(255,255,255,.08);border-left:4px solid #3b82f6;border-radius:10px;padding:.85rem 1rem;margin-bottom:.6rem;cursor:pointer;transition:all .18s ease}.merged-report-card:hover{background:#1e3050e6;border-color:#3b82f680;transform:translate(3px)}.m-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.m-card-title{font-weight:700;font-size:.9rem;color:#93c5fd}.m-card-score{font-weight:800;font-size:.88rem;font-family:var(--mono)}.m-card-score.good{color:#34d399}.m-card-score.warn{color:#fbbf24}.m-card-score.bad{color:#f87171}.m-card-text{font-family:var(--mono);font-size:.85rem;color:#c7f9cc;display:block;word-break:break-all;line-height:1.45}.corrected{margin:0;background:#090e1a;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1rem 1.15rem;font-family:var(--mono);font-size:.92rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:#a7f3d0;box-shadow:inset 0 2px 6px #0006}.issues{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.sev{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:.9rem 1.1rem;background:#121a2bd9;box-shadow:0 4px 16px #0003;transition:border-color .2s}.sev-error{border-left:5px solid #f43f5e;background:linear-gradient(90deg,#f43f5e14,#121a2bd9 25%)}.sev-warning{border-left:5px solid #f59e0b;background:linear-gradient(90deg,#f59e0b14,#121a2bd9 25%)}.sev-info{border-left:5px solid #38bdf8;background:linear-gradient(90deg,#38bdf814,#121a2bd9 25%)}.iss-top{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-bottom:.45rem}.badge{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:.18rem .5rem;border-radius:6px}.sev-error .badge{background:#f43f5e33;color:#fecaca;border:1px solid rgba(244,63,94,.35)}.sev-warning .badge{background:#f59e0b33;color:#fde68a;border:1px solid rgba(245,158,11,.35)}.sev-info .badge{background:#38bdf833;color:#bfdbfe;border:1px solid rgba(56,189,248,.35)}.grp,.tok{font-family:var(--mono);font-size:.82rem;background:#090e1a;padding:.15rem .45rem;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.tok{color:#fca5a5}.iss-msg{margin:0;font-size:.92rem;line-height:1.5;color:#f1f5f9}.iss-tip{margin:.4rem 0 0;color:#94a3b8;font-size:.86rem;line-height:1.45}.iss-fix{margin-top:.65rem;padding-top:.65rem;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;color:var(--muted);font-size:.88rem}.iss-fix code{color:#34d399;font-weight:700;background:#10b9811f;padding:.15rem .45rem;border-radius:6px;border:1px solid rgba(16,185,129,.25)}.groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.65rem}.group{display:flex;flex-direction:column;gap:.25rem;background:#121a2bbf;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:.7rem .9rem;transition:all .18s ease}.group:hover{background:#1e3050e6;border-color:#3b82f666;transform:translateY(-2px);box-shadow:0 4px 16px #00000040}.group code{font-family:var(--mono);font-size:1.05rem;font-weight:700;color:#67e8f9;letter-spacing:.03em}.group span{color:#94a3b8;font-size:.8rem;line-height:1.35}.cloud-trend-banner{border-radius:14px;padding:.95rem 1.25rem;margin-bottom:1.25rem;border:1px solid var(--border);box-shadow:0 4px 16px #0003}.trend-up{background:linear-gradient(135deg,#ef44442e,#f973161a);border-color:#ef444466}.trend-down{background:linear-gradient(135deg,#22c55e2e,#10b9811a);border-color:#22c55e66}.trend-steady{background:linear-gradient(135deg,#3b82f62e,#6366f11a);border-color:#3b82f666}.trend-header{display:flex;align-items:center;gap:.65rem;margin-bottom:.35rem}.trend-title{font-weight:700;font-size:.98rem}.trend-badge{font-weight:800;font-size:.84rem;padding:.18rem .55rem;border-radius:6px;background:#090e1a;border:1px solid rgba(255,255,255,.1)}.trend-desc{font-size:.88rem;color:#cbd5e1}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.15rem}.chart-card{background:linear-gradient(180deg,#141e32d9,#0d1321f2);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:.95rem;box-shadow:0 4px 18px #00000040;position:relative}.chart-card.zoomable{cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.chart-card.zoomable:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:0 8px 24px #2563eb40}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.45rem}.chart-header h4{margin:0;font-size:.94rem;font-weight:700;color:#f1f5f9}.chart-header-actions{display:flex;align-items:center;gap:.5rem}.chart-unit{font-size:.75rem;font-family:var(--mono);color:var(--muted)}.chart-zoom-btn{background:transparent;border:none;cursor:pointer;font-size:.88rem;padding:2px 4px;border-radius:6px;opacity:.7;transition:opacity .15s,transform .15s}.chart-card:hover .chart-zoom-btn,.chart-zoom-btn:hover{opacity:1;transform:scale(1.2)}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-axis-text{font-family:var(--sans);font-size:10px;fill:#64748b}.chart-val-text{font-family:var(--mono);font-size:10px;font-weight:700;fill:#e2e8f0}.chart-val-text.warm{fill:#fb923c}.chart-val-text.cool{fill:#22d3ee}.chart-val-text.purple{fill:#c084fc}.chart-val-text.green{fill:#34d399}.chart-val-text.gust{fill:#f43f5e}.chart-legend{display:flex;flex-wrap:wrap;gap:.85rem;font-size:.76rem;margin-top:.55rem;color:var(--muted)}.legend-item.blue{color:#38bdf8}.legend-item.red{color:#f43f5e}.legend-item.orange{color:#fb923c}.legend-item.cyan{color:#22d3ee}.legend-item.purple{color:#a855f7}.legend-item.green{color:#10b981}.legend-item.gray{color:#94a3b8}.charts-empty{padding:2.5rem;text-align:center;color:var(--muted)}.chart-modal-box{max-width:1040px;width:95vw}.chart-modal-body{padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.chart-svg.large{max-height:55vh}.chart-svg.large .chart-axis-text,.chart-svg.large .chart-val-text{font-size:12px}.chart-modal-legend-bar{padding-top:.75rem;border-top:1px solid var(--border)}.chart-modal-legend-bar .chart-legend{font-size:.88rem;justify-content:center;gap:1.8rem}.drawer-overlay{position:fixed;inset:0;background:#030712b8;backdrop-filter:blur(8px);z-index:9999;display:flex;justify-content:flex-end;animation:fadeIn .2s ease-out}.drawer-panel{width:100%;max-width:540px;height:100vh;background:linear-gradient(180deg,#0b1324,#070d18);border-left:1px solid rgba(56,189,248,.25);box-shadow:-15px 0 50px #000000bf,inset 1px 0 #ffffff0d;display:flex;flex-direction:column;animation:slideInRight .24s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{padding:1.25rem 1.4rem;border-bottom:1px solid rgba(255,255,255,.08);background:#0f172a99;display:flex;justify-content:space-between;align-items:center;gap:1rem}.drawer-header-left{display:flex;align-items:center;gap:.85rem}.drawer-icon-wrap{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#3b82f640,#0ea5e926);border:1px solid rgba(59,130,246,.4);display:flex;align-items:center;justify-content:center;font-size:1.3rem;box-shadow:0 0 15px #2563eb40;flex-shrink:0}.drawer-title{margin:0;font-size:1.15rem;font-weight:700;color:#f8fafc;letter-spacing:-.01em}.drawer-sub{margin:.2rem 0 0;font-size:.8rem;color:var(--muted)}.drawer-close-btn{width:34px;height:34px;border-radius:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);color:#94a3b8;font-size:.9rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s ease;flex-shrink:0}.drawer-close-btn:hover{background:#f43f5e33;color:#f43f5e;border-color:#f43f5e66;transform:scale(1.05)}.drawer-filters{padding:1rem 1.4rem;background:#0d1626b3;border-bottom:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;gap:.75rem}.drawer-search-wrap{position:relative;display:flex;align-items:center;width:100%}.drawer-search-icon{position:absolute;left:.85rem;color:#64748b;font-size:.85rem;pointer-events:none}.drawer-search-input{width:100%;background:#090f1cd9;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.55rem 2.2rem .55rem 2.4rem;color:#f1f5f9;font-size:.85rem;transition:all .2s ease}.drawer-search-input:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf826;background:#0b1324f2}.drawer-search-clear{position:absolute;right:.65rem;background:transparent;border:none;color:#64748b;font-size:.75rem;padding:.2rem .4rem;border-radius:4px;cursor:pointer}.drawer-search-clear:hover{color:#f1f5f9}.station-pills{display:flex;gap:.45rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.station-pill{display:inline-flex;align-items:center;gap:.45rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#94a3b8;border-radius:20px;padding:.28rem .75rem;font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .18s ease}.station-pill:hover{background:#38bdf81f;color:#38bdf8;border-color:#38bdf859}.station-pill.active{background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;border-color:#38bdf8;box-shadow:0 0 12px #38bdf866}.station-pill-count{font-size:.72rem;background:#00000040;padding:.1rem .38rem;border-radius:999px;font-variant-numeric:tabular-nums}.station-pill.active .station-pill-count{background:#ffffff38;color:#fff}.drawer-station-action{padding-top:.2rem}.btn-plot-trend{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;background:linear-gradient(135deg,#0ea5e933,#3b82f633);border:1px solid rgba(56,189,248,.35);color:#38bdf8;padding:.45rem .9rem;border-radius:10px;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .2s ease}.btn-plot-trend:hover{background:linear-gradient(135deg,#0ea5e952,#3b82f652);border-color:#38bdf8;box-shadow:0 0 15px #38bdf840;transform:translateY(-1px)}.drawer-list{flex:1;overflow-y:auto;padding:1.25rem 1.4rem;display:flex;flex-direction:column;gap:.85rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.drawer-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem;color:var(--muted)}.drawer-empty-icon{font-size:2.8rem;margin-bottom:.75rem;opacity:.7}.drawer-empty-title{font-size:1rem;font-weight:700;color:#e2e8f0;margin-bottom:.35rem}.drawer-empty-desc{font-size:.82rem;color:#64748b;max-width:320px;margin:0;line-height:1.45}.history-card{background:#121c30bf;border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:.95rem 1.05rem;display:flex;flex-direction:column;gap:.65rem;cursor:pointer;position:relative;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 14px #00000040}.history-card.score-good{border-left:4px solid #10b981}.history-card.score-warn{border-left:4px solid #f59e0b}.history-card.score-bad{border-left:4px solid #f43f5e}.history-card:hover{background:#182642f2;border-color:#38bdf859;transform:translateY(-2px);box-shadow:0 8px 24px #00000073}.history-card.score-good:hover{border-left-color:#34d399;box-shadow:0 8px 24px #10b98126,0 4px 14px #0006}.history-card.score-warn:hover{border-left-color:#fbbf24;box-shadow:0 8px 24px #f59e0b26,0 4px 14px #0006}.history-card.score-bad:hover{border-left-color:#fb7185;box-shadow:0 8px 24px #f43f5e26,0 4px 14px #0006}.history-card-top{display:flex;justify-content:space-between;align-items:center;gap:.65rem}.history-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1}.history-kind-badge{font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:.18rem .5rem;border-radius:6px;background:#3b82f633;color:#60a5fa;border:1px solid rgba(59,130,246,.4)}.history-kind-badge.speci{background:#f59e0b33;color:#fbbf24;border-color:#f59e0b66}.history-kind-badge.synop{background:#a855f733;color:#c084fc;border-color:#a855f766}.history-station-info{display:inline-flex;align-items:baseline;gap:.35rem;flex-wrap:wrap}.history-station-code{font-family:var(--mono);font-weight:800;font-size:.92rem;color:#f1f5f9;letter-spacing:.03em}.history-station-name{font-size:.78rem;color:#94a3b8;font-weight:500}.history-time-badge{font-family:var(--mono);font-size:.72rem;font-weight:700;color:#38bdf8;background:#38bdf81a;border:1px solid rgba(56,189,248,.25);padding:.14rem .45rem;border-radius:6px}.history-badges{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.history-score-badge{font-family:var(--mono);font-size:.8rem;font-weight:800;padding:.2rem .55rem;border-radius:8px;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center}.history-score-badge.good{background:#10b98129;color:#34d399;border:1px solid rgba(16,185,129,.4);box-shadow:0 0 10px #10b98126}.history-score-badge.warn{background:#f59e0b29;color:#fbbf24;border:1px solid rgba(245,158,11,.4);box-shadow:0 0 10px #f59e0b26}.history-score-badge.bad{background:#f43f5e29;color:#fb7185;border:1px solid rgba(244,63,94,.4);box-shadow:0 0 10px #f43f5e26}.history-del-btn{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;color:#64748b;font-size:.85rem;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s ease}.history-del-btn:hover{background:#f43f5e33;color:#f43f5e;border-color:#f43f5e66;transform:scale(1.08)}.history-raw-box{background:#080d19;border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:.55rem .75rem;overflow-x:auto}.history-raw-code{font-family:var(--mono);font-size:.8rem;color:#bae6fd;line-height:1.45;word-break:break-all;display:block;letter-spacing:.02em}.history-card-bot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;padding-top:.35rem;border-top:1px solid rgba(255,255,255,.05)}.history-date{font-size:.74rem;color:#94a3b8;display:inline-flex;align-items:center;gap:.35rem;font-variant-numeric:tabular-nums}.history-date-dot{opacity:.4;margin:0 .15rem}.history-issues{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}.badge-err{font-size:.72rem;font-weight:700;padding:.14rem .45rem;border-radius:6px;background:#f43f5e26;color:#fb7185;border:1px solid rgba(244,63,94,.35)}.badge-warn{font-size:.72rem;font-weight:700;padding:.14rem .45rem;border-radius:6px;background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.35)}.badge-ok{font-size:.72rem;font-weight:700;padding:.14rem .45rem;border-radius:6px;background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.35)}.drawer-footer{padding:.95rem 1.4rem;border-top:1px solid rgba(255,255,255,.08);background:#0b1220f2;display:flex;justify-content:space-between;align-items:center;gap:.75rem}.btn-clear-history{background:#f43f5e1f;border:1px solid rgba(244,63,94,.3);color:#fb7185;font-size:.8rem;font-weight:700;padding:.45rem .85rem;border-radius:8px;cursor:pointer;transition:all .18s ease;display:inline-flex;align-items:center;gap:.4rem}.btn-clear-history:hover{background:#e11d48;color:#fff;border-color:#e11d48;box-shadow:0 0 15px #e11d4866}.drawer-footer-count{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.modal-backdrop{position:fixed;inset:0;background:#000000c7;backdrop-filter:blur(6px);z-index:9999;display:flex;justify-content:center;align-items:center;padding:1.5rem;animation:fadeIn .18s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-box{background:#0f172a;border:1px solid var(--border);border-radius:18px;width:100%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 25px 60px #000000a6;animation:scaleUp .2s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes scaleUp{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.modal-header{padding:1.35rem 1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.modal-title-row{display:flex;align-items:center;gap:.65rem}.modal-header h3{margin:0;font-size:1.3rem;font-weight:700;color:var(--text)}.modal-sub{margin:.25rem 0 0;font-size:.84rem;color:var(--muted)}.modal-close-btn{font-size:1rem;padding:.35rem .65rem;line-height:1}.changelog-filters{padding:.75rem 1.5rem;background:var(--panel2);border-bottom:1px solid var(--border);display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}.filter-label{font-size:.8rem;color:var(--muted);margin-right:.25rem}.pill-btn{border:1px solid var(--border);background:transparent;color:var(--muted);border-radius:9999px;padding:.25rem .65rem;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s}.pill-btn:hover{background:var(--border);color:var(--text)}.pill-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.changelog-content{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.version-card{border:1px solid var(--border);border-radius:14px;background:var(--panel2);padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.version-card.is-latest{border-color:#60a5fa73;background:linear-gradient(180deg,rgba(30,58,138,.2) 0%,var(--panel2) 100%);box-shadow:0 0 25px #3b82f61f}.version-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;padding-bottom:.55rem;border-bottom:1px solid rgba(255,255,255,.07)}.version-title-wrap{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.version-tag{font-family:var(--mono);font-weight:800;font-size:.98rem;color:#93c5fd}.latest-pill,.current-pill{font-size:.7rem;font-weight:700;padding:.12rem .5rem;border-radius:9999px;background:#3b82f633;color:#60a5fa;border:1px solid rgba(59,130,246,.35);text-transform:uppercase}.version-name{margin:0;font-size:.92rem;font-weight:600;color:var(--text)}.version-date{font-size:.78rem;font-family:var(--mono);color:var(--muted)}.changes-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.change-item{display:flex;align-items:flex-start;gap:.65rem;font-size:.86rem;line-height:1.48}.change-badge{font-size:.68rem;font-weight:800;padding:.14rem .45rem;border-radius:4px;white-space:nowrap;flex-shrink:0;margin-top:.1rem;text-transform:uppercase;letter-spacing:.03em}.badge-fix{background:#f43f5e2e;color:#fb7185;border:1px solid rgba(244,63,94,.3)}.badge-feature{background:#10b9812e;color:#34d399;border:1px solid rgba(16,185,129,.3)}.badge-improvement{background:#f59e0b2e;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.badge-docs{background:#94a3b82e;color:#cbd5e1;border:1px solid rgba(148,163,184,.3)}.change-text{color:#e2e8f0;flex:1}.modal-footer{padding:.95rem 1.5rem;border-top:1px solid var(--border);background:var(--panel2);display:flex;justify-content:space-between;align-items:center}.footer-meta{font-size:.8rem;color:var(--muted)}.update-log-panel{border-color:#60a5fa59;background:linear-gradient(180deg,rgba(30,58,138,.14) 0%,var(--panel) 100%);margin-bottom:1.25rem;box-shadow:0 4px 20px #00000040;transition:all .2s ease}.update-log-panel:hover{border-color:#60a5fa80}.update-log-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.update-log-title-area{display:flex;align-items:center;gap:.75rem}.update-icon{font-size:1.5rem;line-height:1}.update-title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.update-title{margin:0;font-size:1.05rem;font-weight:700;color:#93c5fd}.update-date{font-size:.8rem;font-family:var(--mono);color:var(--muted)}.update-summary{margin:.15rem 0 0;font-size:.84rem;color:var(--muted)}.update-log-actions{display:flex;align-items:center;gap:.45rem}.toggle-collapse-btn{font-size:.75rem;padding:.3rem .55rem}.update-log-body{margin-top:.9rem;padding-top:.85rem;border-top:1px solid rgba(255,255,255,.08)}.update-items-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.update-item{display:flex;align-items:flex-start;gap:.65rem;font-size:.86rem;line-height:1.48}.update-text{color:#e2e8f0;flex:1}.all-versions-container{display:flex;flex-direction:column;gap:1.1rem}.version-block{border-left:2px solid rgba(96,165,250,.4);padding-left:.9rem}.version-block-header{display:flex;align-items:center;gap:.55rem;margin-bottom:.45rem;font-size:.88rem}.version-desc{color:var(--muted);font-size:.82rem}.ok{color:var(--ok);margin:0}.empty{color:var(--muted)}.foot{margin-top:2rem;color:var(--muted);font-size:.82rem;text-align:center}@media(max-width:640px){.app{padding:1rem .85rem 3rem}.top{flex-direction:column;align-items:stretch;gap:1rem}.top-actions{justify-content:flex-start}h1{font-size:1.4rem}.editor-toolbar{flex-direction:column;align-items:stretch}.segmented-control{width:100%;justify-content:space-between}.segmented-btn{flex:1;text-align:center;padding:.4rem .2rem}.action-buttons-wrap{width:100%}.main-btn{flex:1;justify-content:center}.drawer-panel{max-width:100vw}.drawer-header,.drawer-filters,.drawer-list,.drawer-footer{padding-left:1rem;padding-right:1rem}.history-card-top{flex-wrap:wrap;gap:.5rem}}html,body,#root{height:100%}body{margin:0}
