:root{--bg-color: #0d1117;--bg-panel: #161b22;--bg-panel-hover: #1c2230;--text-primary: #e6edf3;--text-secondary: #7d8590;--text-muted: #484f58;--accent: #4493f8;--accent-dim: #1f4068;--success: #3fb950;--danger: #f85149;--warning: #d29922;--border-color: #30363d;--border-subtle: #21262d;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:var(--text-primary);background-color:var(--bg-color);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html{height:-webkit-fill-available}body{margin:0;min-height:100vh;min-height:-webkit-fill-available;min-height:100dvh;overflow-x:hidden;overflow-y:auto}#root{width:100%;min-height:100vh;min-height:100dvh;margin:0;padding:0;display:flex;flex-direction:column}h1,h2,h3{margin:0;font-weight:600;color:var(--text-primary)}.glass-panel{background:#161b22d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 4px 16px #0006}.button{background:var(--bg-panel);border:1px solid var(--border-color);color:var(--text-secondary);padding:7px 14px;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;font-size:13px;font-family:inherit;white-space:nowrap;line-height:1.4}.button:hover{background:var(--bg-panel-hover);color:var(--text-primary);border-color:#484f58}.button.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.select-input{background:var(--bg-panel);border:1px solid var(--border-color);color:var(--text-primary);padding:7px 12px;border-radius:6px;cursor:pointer;outline:none;font-family:inherit;font-size:13px;transition:border-color .15s ease}.select-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4493f826}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.treemap-container{overflow:hidden;position:relative}.treemap-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:14px}.treemap-category{position:absolute;box-sizing:border-box;border:1px solid rgba(255,255,255,.06);pointer-events:none}.category-label{position:absolute;top:4px;left:8px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 16px)}.treemap-node{position:absolute;box-sizing:border-box;border:1px solid rgba(0,0,0,.25);border-radius:4px;overflow:hidden;cursor:pointer;transition:filter .15s ease,border-color .15s ease,box-shadow .15s ease}.treemap-node:hover,.treemap-node.active{border:1.5px solid rgba(255,255,255,.7);z-index:10;filter:brightness(1.12);box-shadow:0 2px 12px #00000080}.node-content{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:5px 7px;pointer-events:none}.node-title{font-size:11px;color:#fffffff5;text-shadow:0 1px 3px rgba(0,0,0,.9);line-height:1.25;font-weight:600;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.node-data-inline{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.node-val{font-size:12px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9);background:#0000004d;padding:1px 5px;border-radius:3px}.node-emp{font-size:10px;color:#ffffffc2;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.9)}.treemap-tooltip{position:fixed;bottom:24px;right:24px;width:280px;padding:14px;z-index:100;pointer-events:auto;animation:fadeSlideUp .2s ease}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tooltip-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:4px}.treemap-tooltip h4{margin:0;color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.3}.tooltip-close{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;display:flex;align-items:center;transition:color .15s}.tooltip-close:hover{color:var(--text-primary)}.tooltip-category{font-size:11px;color:var(--accent);margin-bottom:10px;font-weight:500;letter-spacing:.1px}.tooltip-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tooltip-stat{display:flex;flex-direction:column;gap:2px;background:var(--bg-color);border:1px solid var(--border-subtle);border-radius:6px;padding:7px 9px}.tooltip-stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-weight:500}.tooltip-stat strong{font-size:14px;color:var(--text-primary);font-weight:700;font-variant-numeric:tabular-nums}.val-positive{color:var(--success)!important}.val-negative{color:var(--danger)!important}.val-warning{color:var(--warning)!important}@media (max-width: 768px){.treemap-tooltip{bottom:0;right:0;left:0;width:100%;border-radius:12px 12px 0 0;border-bottom:none;padding:14px 16px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}.tooltip-close{display:flex}.node-title{font-size:10px;-webkit-line-clamp:2;line-clamp:2}.node-val{font-size:10px}}@media (max-width: 480px){.category-label{font-size:9px}}.app-shell{display:grid;grid-template-columns:1fr;gap:10px;width:100%;min-height:100vh;min-height:100dvh;padding:10px}.report-column,.viz-column{display:flex;flex-direction:column;gap:8px}.viz-frame{min-height:82vh}.report-hero,.report-section,.viz-header{padding:12px 14px}.hero-topline,.sources-nav{display:flex;align-items:center;justify-content:space-between;gap:10px}.eyebrow,.section-heading{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#9fb1c8;font-weight:700}.report-hero h1{margin-top:4px;font-size:clamp(1.5rem,2vw,2rem);line-height:1;letter-spacing:-.04em}.report-hero p,.viz-header p,.caveat-panel p{margin:6px 0 0;color:var(--text-secondary);font-size:12px;line-height:1.45}.report-intro{max-width:1100px}.headline-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.headline-strip span{padding:4px 8px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);color:var(--text-secondary);font-size:11px}.nav-pill,.source-link{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#dce7f5;text-decoration:none;font-size:12px;white-space:nowrap}.nav-pill:hover,.source-link:hover{background:#ffffff14}.control-group{display:flex;align-items:center}.input-wrapper{position:relative}.control-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.select-input{width:100%;padding-left:30px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.metric-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--bg-color);padding:4px;border-radius:10px;border:1px solid var(--border-color);gap:4px}.metric-toggle--viz{min-width:min(100%,640px)}.metric-toggle .button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 10px;border:none;border-radius:8px;background:transparent;font-size:12px}.metric-toggle .button.active{background:#4493f829;color:#8fc4ff;box-shadow:inset 0 0 0 1px #8fc4ff33}.metric-toggle .button:hover:not(.active){background:var(--bg-panel-hover);color:var(--text-primary)}.btn-label-short{display:none}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.summary-card{padding:10px 12px}.summary-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.summary-value{margin-top:4px;font-size:1.35rem;font-weight:700;line-height:1;letter-spacing:-.04em}.summary-grid--dense .summary-card{min-height:74px}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.report-grid--dense .report-section{min-height:0}.mini-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}.mini-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.06)}.mini-row span{color:var(--text-secondary);font-size:12px}.mini-row strong{color:#dce7f5;font-size:12px;font-weight:700;text-align:right}.viz-header--overlay{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0b1018f0}.viz-header-copy{min-width:0}.viz-header-copy .section-heading{color:#bdd7f4}.viz-header-copy p{color:#d6e2f0}.viz-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.viz-select-wrap{min-width:180px}.metric-toggle--viz{background:#0f1722;border-color:#8fc4ff29}.metric-toggle--viz .button{color:#c8d4e3;font-weight:600}.metric-toggle--viz .button.active{background:#d9ecff;color:#0b1b2e;box-shadow:inset 0 0 0 1px #071d351f}.metric-toggle--viz .button:hover:not(.active){background:#1b2a3a;color:#f3f8fe}.metric-toggle--viz .button svg{flex-shrink:0}.viz-select-wrap .select-input{background:#0f1722;color:#f3f8fe;border-color:#8fc4ff29}.viz-select-wrap .select-input:focus{border-color:#8fc4ff;box-shadow:0 0 0 3px #8fc4ff2e}.sources-shell{display:flex;flex-direction:column;gap:10px;width:100%;min-height:100vh;min-height:100dvh;padding:10px}.sources-header,.sources-disclaimer{padding:16px}.sources-header h1,.source-card h2{margin-top:6px;margin-bottom:0}.sources-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.source-card{padding:16px}.source-kind{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9fb1c8;font-weight:700}.source-card p,.sources-header p,.sources-disclaimer p{color:var(--text-secondary);font-size:13px;line-height:1.55}.source-local{margin-top:10px;color:var(--text-muted);font-size:12px}@media (max-width: 920px){.summary-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.viz-header--overlay{flex-direction:column;align-items:stretch}.viz-controls{justify-content:stretch}.viz-select-wrap,.metric-toggle--viz{width:100%}.sources-grid{grid-template-columns:1fr}}@media (max-width: 720px){.app-shell{padding:8px;gap:10px}.report-hero,.report-section,.viz-header{padding:14px}.hero-topline,.sources-nav{align-items:flex-start;flex-direction:column}.summary-grid,.report-grid,.metric-toggle{grid-template-columns:1fr}.btn-label{display:none}.btn-label-short{display:inline}}
