:root,html[data-theme=slate]{--bg:#15181e;--bg-elev:#1c2027;--bg-elev2:#232833;--bg-hover:#2a3040;--text:#e6e8ec;--muted:#9aa3b2;--faint:#6b7382;--accent:#6ea8fe;--accent-2:#8b7bdb;--border:#2c333f;--good:#6fcf97;--warn:#e6c07b;--bad:#e88;--info:#76c7d6;--shadow:0 4px 16px rgba(0,0,0,.35)}html[data-theme=aurora]{--bg:#0a0b18;--bg-elev:#13152a;--bg-elev2:#1b1e3a;--bg-hover:#262a52;--text:#e8ecf6;--muted:#9aa3bd;--faint:#6b7298;--accent:#a78bfa;--accent-2:#22d3ee;--border:#272a4d}html[data-theme=nord]{--bg:#2e3440;--bg-elev:#3b4252;--bg-elev2:#434c5e;--bg-hover:#4c566a;--text:#e5e9f0;--muted:#abb6c8;--faint:#7b88a1;--accent:#88c0d0;--accent-2:#b48ead;--border:#434c5e;--good:#a3be8c;--warn:#ebcb8b;--bad:#bf616a;--info:#81a1c1;--shadow:0 4px 16px rgba(0,0,0,.35)}html[data-theme=solarized]{--bg:#002b36;--bg-elev:#073642;--bg-elev2:#0a4250;--bg-hover:#0d4d5e;--text:#e3e0cf;--muted:#93a1a1;--faint:#657b83;--accent:#268bd2;--accent-2:#6c71c4;--border:#0a4250;--good:#859900;--warn:#b58900;--bad:#dc322f;--info:#2aa198;--shadow:0 4px 16px rgba(0,0,0,.4)}html[data-theme=sepia]{--bg:#f4ecd8;--bg-elev:#efe6cf;--bg-elev2:#e7dcc0;--bg-hover:#e0d3b0;--text:#3a2f23;--muted:#6b5d49;--faint:#937f63;--accent:#9a6a3a;--accent-2:#7a6a4a;--border:#d8c9a8;--good:#5f7a3a;--warn:#a9802b;--bad:#a23b2e;--info:#3f7a78;--shadow:0 4px 14px rgba(120,90,40,.18)}html[data-theme=light]{--bg:#f3f5f8;--bg-elev:#ffffff;--bg-elev2:#eef1f6;--bg-hover:#e6ebf2;--text:#1d2330;--muted:#5a6678;--faint:#8a94a6;--accent:#2f6fed;--accent-2:#7b5bd6;--border:#dde3ec;--good:#1f9d57;--warn:#c08a1e;--bad:#d2453b;--info:#1f8aa3;--shadow:0 2px 10px rgba(20,30,60,.1)}html[data-theme=contrast]{--bg:#000000;--bg-elev:#0c0c0c;--bg-elev2:#161616;--bg-hover:#242424;--text:#ffffff;--muted:#d0d0d0;--faint:#a0a0a0;--accent:#ffd400;--accent-2:#00e0ff;--border:#555;--good:#4dff88;--warn:#ffd400;--bad:#ff5b5b;--info:#52d0ff;--shadow:0 0 0 1px #555}html[data-density=cozy]{--row-pad:10px 12px;--gap:14px;--radius:10px}html[data-density=compact]{--row-pad:5px 9px;--gap:9px;--radius:7px}html[data-fontsize=sm]{--fs:14px}html[data-fontsize=md]{--fs:15.5px}html[data-fontsize=lg]{--fs:17.5px}:root,html[data-font=system]{--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}html[data-font=inter]{--font-ui: "Inter", system-ui, sans-serif}html[data-font=lexend]{--font-ui: "Lexend", system-ui, sans-serif}html[data-font=atkinson]{--font-ui: "Atkinson Hyperlegible", system-ui, sans-serif}html[data-font=serif]{--font-ui: Georgia, Cambria, "Times New Roman", serif}html[data-font=mono]{--font-ui: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace}html[data-motion=reduce] *,html[data-motion=reduce] *:before,html[data-motion=reduce] *:after{transition:none!important;animation:none!important}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:var(--fs);line-height:1.6;font-family:var(--font-ui);-webkit-font-smoothing:antialiased;transition:background .25s ease,color .25s ease}.mono{font-family:SF Mono,JetBrains Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.92em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-weight:650;line-height:1.3}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--bg-elev2);color:var(--text);padding:7px 13px;border-radius:var(--radius);transition:background .15s,border-color .15s}button:hover{background:var(--bg-hover)}button.primary{background:var(--accent);color:#fff;border-color:transparent;font-weight:600}button.primary:hover{filter:brightness(1.08)}button.ghost{background:transparent}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:8px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.muted{color:var(--muted)}.faint{color:var(--faint)}.row{display:flex;gap:var(--gap);align-items:center}.col{display:flex;flex-direction:column;gap:var(--gap)}.spacer{flex:1}.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.8em;border:1px solid var(--border)}.sev-high,.sev-bad{color:var(--bad)}.sev-medium,.sev-warn{color:var(--warn)}.sev-info,.sev-low{color:var(--info)}.ok{color:var(--good)}.app{display:grid;grid-template-columns:230px 1fr;height:100vh;transition:grid-template-columns .18s ease}.app.collapsed{grid-template-columns:0 1fr}.app.collapsed .sidebar{transform:translate(-100%);transition:transform .18s ease}.sidebar-toggle{position:fixed;top:10px;left:10px;z-index:60;width:30px;height:30px;padding:0;border-radius:8px;background:var(--bg-elev2);border:1px solid var(--border);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1}.sidebar-toggle:hover{color:var(--text);background:var(--bg-hover)}.app:not(.collapsed) .sidebar-toggle{left:188px}.app.collapsed .main{padding-left:48px}.sidebar{background:var(--bg-elev);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:6px;overflow:auto}.brand{font-weight:750;font-size:1.15em;letter-spacing:.3px;padding:4px 8px 12px}.navlink{padding:8px 10px;border-radius:var(--radius);color:var(--muted);cursor:pointer;display:flex;gap:9px;align-items:center}.navlink:hover{background:var(--bg-hover);color:var(--text)}.navlink.active{background:var(--bg-elev2);color:var(--text)}.main{overflow:auto;padding:22px 26px}@media (max-width:760px){.app,.app.collapsed{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;width:240px;z-index:55;transform:translate(-100%);box-shadow:2px 0 26px #00000080;transition:transform .2s ease}.app:not(.collapsed) .sidebar{transform:translate(0)}.app .main,.app.collapsed .main{padding:14px 14px 14px 48px}.app:not(.collapsed) .sidebar-toggle{left:204px}.tabs{gap:2px;margin:4px 0 12px;-webkit-overflow-scrolling:touch}.tab{padding:7px 10px}.card{overflow-x:auto}th,td{padding:6px 7px}.row{flex-wrap:wrap}table{font-size:.92em}}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:6px 0 18px;flex-wrap:wrap}.tab{padding:8px 14px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:var(--row-pad);border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;position:sticky;top:0;background:var(--bg-elev)}tr:hover td{background:var(--bg-hover)}.grid{display:grid;gap:var(--gap)}.stat{padding:14px 16px}.stat .n{font-size:1.7em;font-weight:700}.stat .l{color:var(--muted);font-size:.9em}.help{position:relative;display:inline-flex}.help .q{width:17px;height:17px;border-radius:50%;border:1px solid var(--border);color:var(--muted);font-size:11px;display:inline-flex;align-items:center;justify-content:center;cursor:help}.help .bubble{position:absolute;z-index:50;top:140%;left:0;width:300px;padding:11px 13px;font-size:.9em;background:var(--bg-elev2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);display:none;line-height:1.5}.help:hover .bubble,.help.open .bubble{display:block}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:26px;text-align:center;color:var(--muted);transition:border-color .15s,background .15s}.dropzone.drag{border-color:var(--accent);background:var(--bg-hover);color:var(--text)}.center{display:flex;align-items:center;justify-content:center;height:100vh}.toast{position:fixed;bottom:18px;right:18px;padding:12px 16px;border-radius:var(--radius);background:var(--bg-elev2);border:1px solid var(--border);box-shadow:var(--shadow);z-index:100}.snippet{color:var(--muted);font-size:.9em}.kbd{font-size:.85em;padding:1px 6px;border:1px solid var(--border);border-radius:5px;background:var(--bg-elev2)}.dbb{display:flex;flex-direction:column;height:calc(100vh - 24px);gap:10px}.dbb-top{display:flex;align-items:center;gap:14px}.dbb-top h1{margin:0;font-size:1.2em}.dbb-top .muted{font-size:.6em;font-weight:400;color:var(--muted);vertical-align:middle}.dbb-top select{margin-left:auto;max-width:340px}.dbb-body{display:flex;gap:12px;flex:1;min-height:0}.dbb-tables{width:300px;display:flex;flex-direction:column;gap:6px;min-height:0}.dbb-tables input{width:100%;box-sizing:border-box}.dbb-tables ul{list-style:none;margin:0;padding:0;overflow:auto;flex:1;border:1px solid var(--border);border-radius:var(--radius)}.dbb-tables li{padding:3px 8px;cursor:pointer;font-size:.86em;display:flex;justify-content:space-between;gap:6px;border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dbb-tables li:hover{background:var(--bg-hover)}.dbb-tables li.active{background:var(--accent);color:#fff}.dbb-tables li .cols{color:var(--muted);font-size:.85em}.dbb-tables li.active .cols{color:#fff;opacity:.8}.dbb-main{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.dbb-sql{display:flex;gap:8px}.dbb-sql textarea{flex:1;min-height:54px;font-family:var(--font-mono,monospace);font-size:.85em;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);color:var(--text);resize:vertical}.dbb-th{font-size:.9em;padding:4px 0}table.grid{border-collapse:collapse;font-size:.82em;width:max-content;min-width:100%}table.grid th,table.grid td{border:1px solid var(--border);padding:3px 7px;text-align:left;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table.grid th{position:sticky;top:0;background:var(--bg-elev);z-index:1}table.grid tr:nth-child(2n) td{background:var(--bg-elev)}.small{font-size:.8em}@keyframes flashcard{0%{box-shadow:0 0 0 2px var(--accent)}to{box-shadow:0 0 0 0 transparent}}.flash{animation:flashcard 1.6s ease-out 1}.accepted{margin-top:10px}.accepted-grid{display:flex;flex-wrap:wrap;gap:6px}.accepted-item{display:inline-flex;align-items:center;gap:3px;font-size:.85em;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elev)}.accepted-note{margin-top:8px;font-size:.85em;color:var(--warn);border-left:3px solid var(--warn);padding:4px 8px;background:var(--bg-elev);border-radius:4px}.cov-summary{display:flex;gap:26px;align-items:center;padding:12px 16px;flex-wrap:wrap}.cov-summary>div{display:flex;flex-direction:column}.cov-summary b{font-size:1.5em;line-height:1}.cov-summary span{font-size:.8em;color:var(--muted)}.cov-bars{flex:1;min-width:160px;height:14px;border-radius:7px;overflow:hidden;display:flex;background:var(--bg-elev2);border:1px solid var(--border)}.cov-bars span{height:100%}.cov-table td{vertical-align:top}.cov-table select{background:var(--bg-elev);border:1px solid var(--border);border-radius:4px;padding:1px 4px}html[data-glass=on] body{background:radial-gradient(1100px 600px at 10% -10%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 60%),radial-gradient(900px 560px at 112% 4%,color-mix(in srgb,var(--accent-2) 16%,transparent),transparent 55%),var(--bg);background-attachment:fixed}html[data-glass=on] body:before{content:"";position:fixed;top:-20vmax;right:-20vmax;bottom:-20vmax;left:-20vmax;z-index:-1;pointer-events:none;background:radial-gradient(40vmax 30vmax at 18% 22%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 60%),radial-gradient(38vmax 28vmax at 82% 30%,color-mix(in srgb,var(--accent-2) 22%,transparent),transparent 62%),radial-gradient(34vmax 26vmax at 50% 88%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%);filter:blur(30px) saturate(130%);animation:forgeaurora 26s ease-in-out infinite alternate}@keyframes forgeaurora{0%{transform:translate3d(-3%,-2%,0) rotate(0) scale(1.05)}50%{transform:translate3d(3%,2%,0) rotate(8deg) scale(1.12)}to{transform:translate3d(-2%,3%,0) rotate(-6deg) scale(1.08)}}html[data-glass=on] .card,html[data-glass=on] .sidebar,html[data-glass=on] .panel,html[data-glass=on] .dropzone{background:color-mix(in srgb,var(--bg-elev) 74%,transparent);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border:1px solid color-mix(in srgb,var(--border) 70%,transparent)}html[data-glass=on] .card{box-shadow:0 10px 34px -14px #0000008c,inset 0 1px color-mix(in srgb,#fff 7%,transparent);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;animation:forgecardin .28s ease both}html[data-glass=on] .card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 38%,var(--border));box-shadow:0 14px 40px -14px #0009,inset 0 1px color-mix(in srgb,#fff 9%,transparent)}@keyframes forgecardin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}html[data-glass=on] h1{background:linear-gradient(92deg,var(--text),color-mix(in srgb,var(--accent) 85%,var(--text)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}html[data-glass=on] button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 4px 18px -5px color-mix(in srgb,var(--accent) 60%,transparent)}html[data-glass=on] button.primary:hover{filter:brightness(1.08)}html[data-glass=on] .navlink{transition:background .15s,color .15s,padding-left .15s,box-shadow .15s}html[data-glass=on] .navlink:hover{padding-left:14px}html[data-glass=on] .navlink.active{box-shadow:inset 3px 0 0 var(--accent)}html[data-glass=on] *::-webkit-scrollbar{width:10px;height:10px}html[data-glass=on] *::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:6px}html[data-glass=on] *::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 50%,var(--border))}html[data-glass=on] *::-webkit-scrollbar-track{background:transparent}html[data-theme=contrast][data-glass=on] .card,html[data-theme=contrast][data-glass=on] .sidebar,html[data-theme=contrast][data-glass=on] .panel,html[data-theme=contrast][data-glass=on] .dropzone{background:var(--bg-elev);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--border)}html[data-theme=contrast][data-glass=on] body:before{display:none}html[data-theme=contrast][data-glass=on] h1{-webkit-text-fill-color:var(--text)}html[data-motion=reduce] .card{animation:none;transition:none}html[data-motion=reduce] .card:hover{transform:none}html[data-motion=reduce] body:before{animation:none}@media (prefers-reduced-motion: reduce){html[data-glass=on] .card{animation:none;transition:none}html[data-glass=on] body:before{animation:none}}
