:root{--bg:#14171c;--bg-panel:#1b1f27;--bg-header:#2479d0;--bg-row-hover:#232a35;--text:#e6e9ef;--text-muted:#8b94a3;--border:#2a303b;--track:#232833;--other:#4a5568;--accent:#2479d0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}.app{flex-direction:column;height:100%;display:flex}.app-header{background:var(--bg-panel);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.app-title{align-items:center;gap:14px;min-width:0;display:flex}.logo{color:var(--accent);letter-spacing:.5px;font-size:18px;font-weight:700}.app-actions{align-items:center;gap:12px;display:flex}.total{font-variant-numeric:tabular-nums;font-weight:600}.toggle{background:var(--track);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 12px}.toggle:hover{border-color:var(--accent)}.scanning-badge{color:var(--text-muted);font-style:italic}.breadcrumbs{flex-wrap:wrap;align-items:center;gap:2px;min-width:0;display:flex;overflow:hidden}.crumb{white-space:nowrap;align-items:center;gap:2px;display:inline-flex}.crumb-link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:14px}.crumb-link:hover{text-decoration:underline}.crumb-current{color:var(--text);padding:2px 4px;font-weight:600}.crumb-sep{color:var(--text-muted)}.content{flex:1;grid-template-columns:minmax(280px,360px) 1fr;gap:16px;min-height:0;padding:16px;display:grid}.chart-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;padding:16px;display:flex}.table-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;min-height:0;overflow:auto}.donut{aspect-ratio:1;width:100%;max-width:320px;position:relative}.donut-slice{transition:stroke-dasharray .6s,stroke-dashoffset .6s,stroke-width .15s,opacity .15s}.donut-center{pointer-events:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:0 20%;display:flex;position:absolute;inset:0}.donut-center-primary{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:18px;font-weight:700;overflow:hidden}.donut-center-secondary{color:var(--text-muted);margin-top:4px}.file-table{border-collapse:collapse;width:100%}.file-table th,.file-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 12px}.file-table thead th{background:var(--bg-panel);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-muted);z-index:1;font-weight:600;position:sticky;top:0}.file-table th.num,.file-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.file-table tbody tr:hover,.file-table tbody tr.hovered{background:var(--bg-row-hover)}.name-cell{min-width:240px;max-width:0;position:relative}.name-cell .swatch{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:8px;display:inline-block}.name-cell .name{z-index:1;position:relative}.name-cell .bar{opacity:.85;border-radius:2px;height:3px;transition:width .4s;position:absolute;bottom:3px;left:12px}.sort-arrow{color:var(--accent)}.muted{color:var(--text-muted)}.flag-error{color:#d0454c;font-weight:700}.empty{text-align:center;color:var(--text-muted);padding:24px}.file-table tfoot td{background:var(--bg-panel);border-top:1px solid var(--border);font-weight:600;position:sticky;bottom:0}.loading,.scanning,.error-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;padding:24px;display:flex}.scan-stats{font-variant-numeric:tabular-nums;gap:20px;font-size:16px;display:flex}.scan-current{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:80%;overflow:hidden}.spinner{border:4px solid var(--track);border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.banner.error{color:#f0a5a5;background:#3a1d1f;border-radius:6px;margin:0 16px;padding:8px 16px}@media (width<=760px){.content{grid-template-columns:1fr}}
