@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&family=Syne:wght@400;600;700;800&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{place-items:center;min-width:320px;min-height:100vh;margin:0;display:flex}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}html,body,#root{width:100%;min-height:100vh;margin:0;padding:0}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.auth-bg{background:var(--bg);background-image:radial-gradient(at 20%,#7c6af71f 0%,#0000 60%),radial-gradient(at 80% 20%,#a78bfa14 0%,#0000 50%);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:16px;margin:0 auto;padding:40px;animation:.4s slideUp;display:flex}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-logo{justify-content:center;align-items:center;gap:10px;display:flex}.auth-tagline{text-align:center;color:var(--text2);margin-top:-8px;font-size:14px}.auth-tabs{background:var(--surface2);border-radius:12px;gap:4px;padding:4px;display:flex}.auth-tab{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:10px;font-family:Syne,sans-serif;font-size:14px;font-weight:600;transition:all .2s}.auth-tab.active{background:var(--accent);color:#fff}.input-group{flex-direction:column;gap:6px;display:flex}.input-group label{color:var(--text2);font-size:13px;font-weight:600}.input-group input{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:10px;outline:none;padding:12px 14px;font-family:Syne,sans-serif;font-size:14px;transition:border-color .2s}.input-group input:focus{border-color:var(--accent)}.input-group input::placeholder{color:var(--text2);opacity:.5}.auth-error{color:#f87171;background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;padding:10px 14px;font-size:13px}.auth-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;margin-top:4px;padding:14px;font-family:Syne,sans-serif;font-size:15px;font-weight:700;transition:all .2s}.auth-btn:hover:not(:disabled){background:var(--accent2);transform:translateY(-1px)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:14px 28px;transition:background .3s;display:flex;position:sticky;top:0}.header-left,.header-right{align-items:center;gap:10px;display:flex}.logo-icon{font-size:22px}.logo-text{letter-spacing:-.5px;color:var(--accent2);font-size:20px;font-weight:800}.user-badge{background:var(--surface2);border:1px solid var(--border);color:var(--text2);border-radius:20px;padding:6px 14px;font-size:13px;font-weight:600}.history-btn{background:var(--surface2);border:1px solid var(--border);color:#e0600b;cursor:pointer;border-radius:10px;padding:8px 14px;font-family:Syne,sans-serif;font-size:13px;font-weight:600;transition:all .2s}.history-btn:hover{border-color:var(--accent);color:#c94f08;transform:translateY(-1px)}.theme-btn{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:8px 12px;font-size:16px;transition:all .2s}.theme-btn:hover{border-color:var(--accent)}.logout-btn{border:1px solid var(--border);color:#dc2626;cursor:pointer;background:0 0;border-radius:10px;padding:8px 14px;font-family:Syne,sans-serif;font-size:13px;font-weight:600;transition:all .2s}.logout-btn:hover{border-color:var(--red);color:#b91c1c;transform:translateY(-1px)}.user-menu{position:relative}.user-icon{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.user-icon:hover{border-color:var(--accent)}.dropdown{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:12px;width:220px;padding:12px;animation:.2s fadeIn;position:absolute;top:45px;right:0;box-shadow:0 10px 25px #0003}.user-info{border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:8px}.username{font-size:14px;font-weight:700}.email{color:var(--text2);font-size:12px}.dropdown button{text-align:left;cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:8px;width:100%;padding:8px;font-size:13px}.dropdown button:nth-child(2){color:#e0600b}.dropdown button:nth-child(2):hover{color:#c94f08}.dropdown button.logout{color:#dc2626}.dropdown button.logout:hover{color:#b91c1c}@keyframes fadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.lang-badge{color:var(--accent2);background:#7c6af726;border:1px solid #7c6af740;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:700}.code-editor{background:var(--bg);color:var(--text);resize:none;tab-size:2;border:none;outline:none;flex:1;padding:20px;font-family:JetBrains Mono,monospace;font-size:13.5px;line-height:1.75;transition:background .3s}.code-editor::placeholder{color:var(--text2);opacity:.4}.editor-footer{border-top:1px solid var(--border);background:var(--surface2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.line-count{color:var(--text2);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12px}.footer-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.convert-group{border:1px solid var(--border);border-radius:10px;align-items:center;gap:0;transition:border-color .2s;display:flex;overflow:hidden}.convert-group:hover{border-color:var(--accent)}.convert-select{background:var(--surface2);color:var(--text);cursor:pointer;outline:none;padding:8px 10px;font-size:12px;font-weight:600;border:none!important;border-right:1px solid var(--border)!important;border-radius:0!important}.convert-btn{color:var(--accent2);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:8px 14px;font-family:Syne,sans-serif;font-size:13px;font-weight:700;transition:all .2s;display:flex}.convert-btn:hover:not(:disabled){color:var(--accent);background:#7c6af71f}.convert-btn:disabled{opacity:.5;cursor:not-allowed}.review-btn{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 22px;font-family:Syne,sans-serif;font-size:14px;font-weight:700;transition:all .2s;display:flex}.review-btn:hover:not(:disabled){background:var(--accent2);transform:translateY(-1px);box-shadow:0 4px 16px #7c6af759}.review-btn:disabled{opacity:.6;cursor:not-allowed}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}.convert-btn .spinner{border-color:#7c6af74d;border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.lang-select{background:var(--surface3,var(--surface2));color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;outline:none;padding:4px 10px;font-size:13px;font-weight:600;transition:border-color .2s}.lang-select:hover{border-color:var(--accent)}.lang-select option{background:var(--surface2);color:var(--text)}@media (width<=600px){.editor-footer{flex-direction:column;align-items:flex-start}.footer-actions{justify-content:flex-end;width:100%}}.header-controls{align-items:center;gap:.5rem;display:flex}.visualize-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#7c6af7,#a78bfa);border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.8rem;font-weight:600;transition:opacity .2s,transform .15s;display:flex}.visualize-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.visualize-btn:disabled{opacity:.5;cursor:not-allowed}.score-container{background:var(--surface2);border:1px solid var(--border);border-radius:16px;align-items:center;gap:20px;padding:20px 24px;display:flex}.score-ring-wrap{flex-shrink:0;width:140px;height:140px;position:relative}.score-text{text-align:center;align-items:baseline;gap:2px;line-height:1;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.score-num{font-family:JetBrains Mono,monospace;font-size:30px;font-weight:800}.score-denom{color:var(--text2);font-size:13px;font-weight:600}.score-info{flex-direction:column;gap:6px;display:flex}.score-label{color:var(--text2);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.score-verdict{font-size:22px;font-weight:800}.radar-wrap{background:var(--surface2);border:1px solid var(--border);border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:16px;display:flex}.radar-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text2);margin:0;font-family:Syne,sans-serif;font-size:11px;font-weight:700}.radar-svg{width:100%;max-width:260px}.radar-polygon{transition:all .8s cubic-bezier(.4,0,.2,1)}.complexity-panel{background:var(--surface2);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:14px;padding:18px 20px;display:flex}.cp-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text2);margin:0;font-family:Syne,sans-serif;font-size:11px;font-weight:700}.cp-badges{background:var(--bg);border:1px solid var(--border);border-radius:12px;align-items:center;gap:0;display:flex;overflow:hidden}.cp-badge{flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px 16px;display:flex}.cp-divider{background:var(--border);flex-shrink:0;width:1px;height:44px}.cp-badge-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text2);font-family:Syne,sans-serif;font-size:11px;font-weight:700}.cp-badge-value{letter-spacing:-.5px;font-family:JetBrains Mono,monospace;font-size:22px;font-weight:800}.cp-breakdown{flex-direction:column;gap:6px;display:flex}.cp-breakdown-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text2);margin:0 0 4px;font-family:Syne,sans-serif;font-size:11px;font-weight:700}.cp-row{background:var(--bg);border:1px solid var(--border);border-radius:9px;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;transition:border-color .2s;display:flex}.cp-row:hover{border-color:var(--accent)}.cp-row-left{flex-direction:column;gap:2px;min-width:0;display:flex}.cp-row-label{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;overflow:hidden}.cp-row-note{color:var(--text2);font-size:11px;line-height:1.4}.cp-row-complexity{flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:15px;font-weight:800}.loading-joke{background:var(--surface2);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:20px;padding:28px 24px;animation:.3s fadeIn;display:flex}.lj-top{align-items:center;gap:16px;display:flex}.lj-spinner{flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex;position:relative}.lj-ring{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:.9s linear infinite spin;position:absolute;inset:0}.lj-icon{z-index:1;font-size:22px}.lj-text{flex-direction:column;gap:4px;display:flex}.lj-title{color:var(--text);min-width:220px;font-family:Syne,sans-serif;font-size:15px;font-weight:700}.lj-sub{color:var(--text2);font-family:JetBrains Mono,monospace;font-size:12px}.lj-joke{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;flex-direction:column;gap:6px;padding:14px 16px;animation:.4s slideUp;display:flex}.lj-joke-label{text-transform:uppercase;letter-spacing:.6px;color:var(--accent);font-family:Syne,sans-serif;font-size:11px;font-weight:700}.lj-joke-text{color:var(--text2);margin:0;font-size:13px;font-style:italic;line-height:1.7}.score-badge{font-family:JetBrains Mono,monospace;font-size:16px;font-weight:800}.review-content{flex:1;padding:20px;overflow-y:auto}.empty-state{text-align:center;height:100%;min-height:300px;color:var(--text2);flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:14px;display:flex}.pulse-ring{border:3px solid var(--accent);border-radius:50%;width:60px;height:60px;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.2)}}.error-box{color:#f87171;background:#ef44441a;border:1px solid #ef44444d;border-radius:10px;padding:14px 16px;font-size:14px}.review-body{flex-direction:column;gap:24px;display:flex}.markdown-body{color:var(--text);font-size:14px;line-height:1.8}.markdown-body h1,.markdown-body h2,.markdown-body h3{color:var(--text);margin:20px 0 10px;font-weight:700}.markdown-body h1{font-size:20px}.markdown-body h2{font-size:17px}.markdown-body h3{font-size:15px}.markdown-body p{margin-bottom:12px}.markdown-body code{background:var(--surface2);border:1px solid var(--border);color:var(--accent2);border-radius:5px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:12.5px}.markdown-body pre{background:var(--bg);border:1px solid var(--border);border-radius:10px;margin:12px 0;padding:16px;overflow-x:auto}.markdown-body pre code{color:var(--text);background:0 0;border:none;padding:0}.markdown-body ul,.markdown-body ol{margin-bottom:12px;padding-left:20px}.markdown-body li{margin-bottom:6px}.markdown-body strong{color:var(--text);font-weight:700}.markdown-body blockquote{border-left:3px solid var(--accent);color:var(--text2);margin:12px 0;padding-left:14px}.score-row{grid-template-columns:1fr 1fr;align-items:start;gap:14px;display:grid}@media (width<=600px){.score-row{grid-template-columns:1fr}}.convert-badge{color:var(--accent2);background:#7c6af71f;border:1px solid #7c6af74d;border-radius:20px;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700}.convert-loading-ring{border:3px solid #7c6af733;border-top-color:var(--accent);border-radius:50%;width:56px;height:56px;animation:.8s linear infinite spin}.converted-output{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:0;display:flex;overflow:hidden}.converted-header{background:var(--surface2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.converted-label{color:var(--text2);text-transform:capitalize;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700}.copy-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text2);cursor:pointer;border-radius:8px;padding:6px 12px;font-family:Syne,sans-serif;font-size:12px;font-weight:600;transition:all .2s}.copy-btn:hover{border-color:var(--accent);color:var(--accent)}.converted-code{background:var(--bg);max-height:calc(100vh - 220px);margin:0;padding:20px;overflow:auto}.converted-code code{color:var(--text);white-space:pre;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.75;display:block}.empty-sub{color:var(--text2);opacity:.7;margin-top:-8px;font-size:13px}.viz-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.viz-modal{background:var(--bg2,#1a1a2e);border:1px solid var(--border,#2a2a3e);border-radius:16px;flex-direction:column;width:100%;max-width:480px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #0006}.viz-header{border-bottom:1px solid var(--border,#2a2a3e);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.viz-header-left{align-items:center;gap:.75rem;display:flex}.viz-icon{font-size:1.5rem}.viz-title{color:var(--text,#fff);margin:0;font-size:1.1rem;font-weight:700}.viz-subtitle{color:var(--text2,#888);margin:.15rem 0 0;font-size:.78rem}.viz-close{cursor:pointer;color:var(--text2,#888);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;transition:all .2s;display:flex}.viz-close:hover{background:var(--border,#2a2a3e);color:var(--text,#fff)}.viz-body{flex:1;padding:1.5rem;overflow-y:auto}.viz-loading{color:var(--text2,#888);flex-direction:column;align-items:center;gap:1rem;padding:3rem 1rem;display:flex}.viz-spinner{border:3px solid var(--border,#2a2a3e);border-top-color:#7c6af7;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.viz-error{color:#ef4444;background:#ef444420;border:1px solid #ef444440;border-radius:10px;align-items:center;gap:.5rem;padding:1rem;font-size:.9rem;display:flex}.viz-legend{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.viz-legend-item{color:var(--text2,#888);text-transform:capitalize;align-items:center;gap:.3rem;font-size:.72rem;display:flex}.viz-legend-dot{border-radius:3px;flex-shrink:0;width:10px;height:10px}.viz-flow{flex-direction:column;align-items:center;gap:0;display:flex}.viz-node{background:var(--node-bg);color:var(--node-text);text-align:center;word-break:break-word;border-radius:8px;min-width:160px;max-width:280px;padding:.6rem 1.4rem;font-size:.85rem;font-weight:600;box-shadow:0 2px 12px #0003}.viz-node--start,.viz-node--end{border-radius:999px;padding:.55rem 1.8rem}.viz-node--condition{border-radius:4px;position:relative;transform:none}.viz-node--condition:before{content:"◆";opacity:.7;font-size:.7rem;position:absolute;top:50%;left:-1.2rem;transform:translateY(-50%)}.viz-edge{justify-content:center;align-items:center;min-height:32px;display:flex}.viz-edge-line{flex-direction:column;align-items:center;gap:2px;display:flex}.viz-edge-label{color:var(--text2,#888);background:var(--bg2,#1a1a2e);border:1px solid var(--border,#2a2a3e);border-radius:4px;padding:1px 6px;font-size:.7rem}.viz-arrow{color:var(--text2,#888);font-size:1rem;line-height:1}.viz-loops-note{color:var(--text2,#888);background:var(--bg,#0f0f1a);border:1px solid var(--border,#2a2a3e);text-align:center;border-radius:8px;margin-top:1.25rem;padding:.6rem .9rem;font-size:.75rem}.viz-body::-webkit-scrollbar{width:4px}.viz-body::-webkit-scrollbar-track{background:0 0}.viz-body::-webkit-scrollbar-thumb{background:var(--border,#2a2a3e);border-radius:4px}.history-page{width:100%;max-width:960px;min-height:100vh;margin:0 auto;padding:24px 32px 48px;font-family:Inter,sans-serif}.history-loading{min-height:60vh;color:var(--text2);flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:14px;display:flex}.history-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.history-title{letter-spacing:-.5px;color:var(--text);font-size:22px;font-weight:800}.back-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text2);cursor:pointer;border-radius:10px;padding:8px 16px;font-family:Syne,sans-serif;font-size:13px;font-weight:600;transition:all .2s}.back-btn:hover{border-color:var(--accent);color:var(--accent)}.stat-cards{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:8px;padding:18px 20px;transition:background .3s;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text2);font-size:11px;font-weight:700}.stat-value{color:var(--text);align-items:baseline;gap:3px;font-family:JetBrains Mono,monospace;font-size:26px;font-weight:800;display:flex}.stat-denom{color:var(--text2);font-size:14px;font-weight:600}.lang-value{align-items:center;gap:8px;font-family:Syne,sans-serif;font-size:18px}.lang-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.chart-section{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;margin-bottom:28px;padding:24px}.section-title{color:var(--text);margin-bottom:16px;font-size:15px;font-weight:700}.chart-wrap{width:100%;margin-bottom:16px}.chart-tooltip{background:var(--surface2);border:1px solid var(--border);border-radius:10px;min-width:130px;padding:10px 14px;font-family:Syne,sans-serif;font-size:13px}.tooltip-date{color:var(--text2);margin-bottom:4px;font-size:11px}.tooltip-score{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-count{color:var(--text2);font-size:12px}.tooltip-langs{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.tooltip-lang-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.lang-breakdown{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding-top:8px;display:flex}.lang-pill{background:var(--surface2);border:1px solid var(--border);border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;display:flex}.lang-name{color:var(--text);font-weight:600}.lang-avg{font-family:JetBrains Mono,monospace;font-weight:700}.lang-count{color:var(--text2)}.timeline-section{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:24px}.timeline-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.timeline-header .section-title{margin-bottom:0}.filter-tabs{flex-wrap:wrap;gap:6px;display:flex}.filter-tab{background:var(--surface2);border:1px solid var(--border);color:var(--text2);cursor:pointer;text-transform:capitalize;border-radius:20px;padding:5px 14px;font-family:Syne,sans-serif;font-size:12px;font-weight:600;transition:all .2s}.filter-tab.active{border-color:var(--accent);color:var(--accent);background:#7c6af71f}.filter-tab:hover:not(.active){border-color:var(--accent);color:var(--text)}.empty-history{color:var(--text2);flex-direction:column;align-items:center;gap:12px;padding:48px;font-size:14px;display:flex}.empty-icon{font-size:40px}.review-cards{flex-direction:column;gap:14px;display:flex}.review-card{background:var(--surface2);border:1px solid var(--border);border-radius:14px;transition:border-color .2s;overflow:hidden}.review-card:hover{border-color:var(--accent)}.card-top{justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.card-left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card-lang{text-transform:capitalize;border:1px solid;border-radius:20px;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700}.card-datetime{color:var(--text2);font-family:JetBrains Mono,monospace;font-size:12px}.card-score{flex-shrink:0;align-items:baseline;gap:3px;display:flex}.card-score-num{font-family:JetBrains Mono,monospace;font-size:22px;font-weight:800}.card-score-den{color:var(--text2);font-size:12px;font-weight:600}.card-verdict{margin-left:6px;font-size:12px;font-weight:700}.code-preview{background:var(--bg);border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:0;padding:12px 18px;overflow:hidden}.code-preview code{color:var(--text2);white-space:pre;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.7;display:block}.expand-btn{border:none;border-top:1px solid var(--border);text-align:left;width:100%;color:var(--accent);cursor:pointer;background:0 0;padding:10px 18px;font-family:Syne,sans-serif;font-size:12px;font-weight:600;transition:background .2s}.expand-btn:hover{background:#7c6af712}.card-review{border-top:1px solid var(--border);padding:16px 18px;animation:.2s fadeIn}@media (width<=768px){.history-page{padding:16px}.stat-cards{grid-template-columns:repeat(2,1fr)}.timeline-header{flex-direction:column;align-items:flex-start}}@media (width<=480px){.stat-cards{grid-template-columns:1fr 1fr}.card-top{flex-direction:column;align-items:flex-start;gap:8px}}.chart-legend-custom{flex-wrap:wrap;gap:16px;margin-bottom:12px;display:flex}.clegend-item{color:var(--text2);align-items:center;gap:6px;font-family:Syne,sans-serif;font-size:12px;font-weight:600;display:flex}.clegend-dot{border-radius:3px;flex-shrink:0;width:10px;height:10px}.lang-breakdowns{border-top:1px solid var(--border);flex-wrap:wrap;gap:24px;margin-top:4px;padding-top:12px;display:flex}.lang-breakdown-col{flex:1;min-width:180px}.breakdown-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text2);margin-bottom:8px;font-size:11px;font-weight:700}.lang-viz-count{color:#a78bfa;font-family:JetBrains Mono,monospace;font-weight:700}.tab-switcher{background:var(--surface2);border:1px solid var(--border);border-radius:12px;gap:2px;padding:3px;display:flex}.tab-switch-btn{color:var(--text2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;padding:7px 16px;font-family:Syne,sans-serif;font-size:13px;font-weight:700;transition:all .2s}.tab-switch-btn.active{background:var(--accent,#7c6af7);color:#fff;box-shadow:0 2px 8px #7c6af759}.tab-switch-btn:hover:not(.active){color:var(--text)}.card-viz-badge{background:#a78bfa1f;border:1px solid #a78bfa4d;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;display:flex}.viz-badge-icon{font-size:14px}.viz-badge-label{color:#a78bfa;text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:12px;font-weight:700;overflow:hidden}.viz-graph-preview{padding:16px 18px}.viz-graph-title{color:var(--text);margin-bottom:12px;font-size:13px;font-weight:700}.viz-node-list{flex-direction:column;gap:6px;display:flex}.viz-mini-node{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:6px 12px;display:flex}.viz-mini-type{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;flex-shrink:0;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.viz-mini-node--start .viz-mini-type{color:#22c55e;background:#22c55e22}.viz-mini-node--end .viz-mini-type{color:#ef4444;background:#ef444422}.viz-mini-node--process .viz-mini-type{color:#7c6af7;background:#7c6af722}.viz-mini-node--condition .viz-mini-type{color:#f59e0b;background:#f59e0b22}.viz-mini-node--loop .viz-mini-type{color:#3b82f6;background:#3b82f622}.viz-mini-node--io .viz-mini-type{color:#06b6d4;background:#06b6d422}.viz-mini-label{color:var(--text);font-family:JetBrains Mono,monospace;font-size:13px}.tooltip-viz{font-weight:700}@media (width<=768px){.lang-breakdowns{flex-direction:column}.timeline-header{flex-direction:column;align-items:flex-start}.tab-switcher{width:100%}.tab-switch-btn{text-align:center;flex:1}}:root,[data-theme=dark]{--bg:#0d0f14;--surface:#161920;--surface2:#1e2230;--border:#2a2f3d;--text:#e8ecf5;--text2:#8891a8;--accent:#7c6af7;--accent2:#a78bfa;--track:#2a2f3d;--shadow:0 4px 24px #0006;--green:#22c55e;--yellow:#f59e0b;--red:#ef4444}[data-theme=light]{--bg:#f0f2f8;--surface:#fff;--surface2:#f5f7ff;--border:#d8dce8;--text:#1a1d2e;--text2:#5a6080;--accent:#6c5ce7;--accent2:#8b7cf8;--track:#e0e4f0;--shadow:0 4px 24px #6464b41f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Syne,sans-serif;transition:background .3s,color .3s}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.app{flex-direction:column;min-height:100vh;display:flex}.main{flex:1;grid-template-columns:1fr 1fr;gap:20px;width:100%;max-width:1600px;margin:0 auto;padding:20px 28px 28px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;min-height:calc(100vh - 130px);transition:background .3s,border-color .3s;display:flex;overflow:hidden}.panel-header{border-bottom:1px solid var(--border);background:var(--surface2);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.panel-title{font-size:14px;font-weight:700}@media (width<=768px){.main{grid-template-columns:1fr;padding:12px}.panel{min-height:400px}}
