body{background:#f8f9fa}#loading-overlay{z-index:9999;background:#ffffffeb;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:fixed;inset:0}#welcome-screen{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px 24px;display:flex}.welcome-inner{text-align:center;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:420px;display:flex}.welcome-logo{width:180px;height:auto;margin-bottom:4px}.welcome-title{color:#212529;margin:0;font-size:2rem;font-weight:700}.welcome-sub{color:#6c757d;margin:0 0 8px;font-size:1rem}.welcome-open-btn{align-items:center;margin-top:4px;padding:10px 28px;font-size:1rem;display:inline-flex}.welcome-hint{color:#868e96;margin:6px 0 0;font-size:12px}.welcome-hint code{background:#f1f3f5;border-radius:3px;padding:1px 5px;font-size:11px}.welcome-local{color:#adb5bd;margin:2px 0 0;font-size:11px}#main-app{flex-direction:column;flex:1 0 auto;display:none}.topbar{z-index:100;background:#fff;border-bottom:1px solid #dee2e6;align-items:center;gap:12px;padding:8px 16px;display:flex;position:sticky;top:0}#sidebar-toggle{align-items:center;display:inline-flex}@keyframes pp-sidebar-pulse{0%{background:0 0;outline:3px solid #0d6efd00}20%{background:#0d6efd1f;outline:3px solid #0d6efde6}80%{background:#0d6efd1f;outline:3px solid #0d6efde6}to{background:0 0;outline:3px solid #0d6efd00}}.sidebar-toggle-pulse{outline-offset:2px;animation:1.2s ease-in-out 4 pp-sidebar-pulse}#sidebar-hint-label{color:#fff;white-space:nowrap;background:#0d6efd;border-radius:4px;padding:2px 8px;font-size:.8rem;font-weight:700;animation:5.5s forwards pp-hint-fade}@keyframes pp-hint-fade{0%{opacity:0}10%{opacity:1}75%{opacity:1}to{opacity:0}}#sidebar{z-index:150;background:#fff;border:1px solid #dee2e6;border-radius:8px;flex-direction:column;width:300px;min-width:280px;max-width:320px;height:auto;max-height:calc(100vh - 67px);display:flex;position:fixed;top:57px;left:12px;overflow:hidden;box-shadow:0 4px 18px #0000001a}#sidebar.sidebar-hidden{display:none}#sidebar-scroll{flex:auto;padding:16px;overflow-y:auto}#sidebar-footer{background:#fff;border-top:1px solid #dee2e6;flex-shrink:0;padding:12px 16px}.sidebar-label{letter-spacing:.02em;text-transform:uppercase;color:#495057;margin-bottom:4px;font-size:.75rem;font-weight:700;display:block}.sidebar-field{margin-bottom:16px}.sidebar-section{border-top:1px solid #e9ecef}.sidebar-section-header{cursor:pointer;width:100%;font:inherit;color:#495057;background:0 0;border:0;align-items:center;gap:8px;padding:12px 0;display:flex}.sidebar-section-title{text-align:left;letter-spacing:.02em;text-transform:uppercase;flex:1;font-size:.75rem;font-weight:700}.sidebar-section-header .bi{font-size:.75rem;transition:transform .15s}.sidebar-section-header[aria-expanded=true] .bi{transform:rotate(180deg)}.sidebar-section-header:hover{color:#212529}.sidebar-section-header:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #0d6efd}.sidebar-section-body{padding-bottom:8px}.header-menu{position:relative}.header-menu-panel{z-index:300;background:#fff;border:1px solid #dee2e6;border-radius:8px;width:260px;padding:12px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 6px 24px #00000026}.header-menu-title{letter-spacing:.02em;text-transform:uppercase;color:#6c757d;margin-bottom:8px;font-size:.72rem;font-weight:700}#sidebar-backdrop{z-index:199;background:#0006;display:none;position:fixed;inset:49px 0 0}#sidebar-backdrop.sidebar-open{display:block}#main-content{flex:1;min-width:0;overflow-x:hidden}#content-inner{max-width:1200px;margin:0 auto;padding:20px}@media (max-width:967px){#sidebar{z-index:200;width:280px;min-width:280px;max-width:280px;height:calc(100vh - 49px);transition:transform .25s;position:fixed;top:49px;left:0;transform:translate(-100%);box-shadow:2px 0 12px #0000002e}#sidebar.sidebar-open{transform:translate(0)}#current-filename{display:none}.pp-footer-inner{text-align:center;flex-direction:column;gap:12px}.pp-footer-left{flex-direction:column;align-items:center;gap:8px}.pp-footer-logo{margin-right:0}.pp-footer-right{justify-content:center}}#project-name{flex-direction:column;gap:2px;display:flex}.project-title{color:#212529;font-size:20px;font-weight:600}.project-description{color:#6c757d;white-space:pre-line;font-size:13px}.widget-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:24px;box-shadow:0 1px 4px #0000000f}.widget-card-header{background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:12px 16px;font-weight:600;display:flex}.widget-card-titlewrap{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.widget-card-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-scope-badge{white-space:nowrap;color:var(--scope-color);border:1px solid var(--scope-color);background:color-mix(in srgb, var(--scope-color) 10%, white);border-radius:10px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600;line-height:1.6;display:inline-block}.violin-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:12px;display:flex}.violin-controls-label{color:#6c757d;font-size:12px;font-weight:600}.dim-switch{color:#495057;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:inline-flex}.dim-switch input{opacity:0;width:0;height:0;position:absolute}.dim-switch-track{background:#ced4da;border-radius:8px;flex-shrink:0;width:28px;height:16px;transition:background .15s;display:inline-block;position:relative}.dim-switch-track:before{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px}.dim-switch input:checked+.dim-switch-track{background:#0d6efd}.dim-switch input:checked+.dim-switch-track:before{transform:translate(12px)}.dim-switch input:focus-visible+.dim-switch-track{outline-offset:2px;outline:2px solid #0d6efd}.widget-info-btn{cursor:pointer;color:#6c757d;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:inline-flex}.widget-info-btn:hover{color:#0d6efd;background:#eef4ff}.widget-info-icon{font-size:19px;line-height:1}.widget-info-panel{background:#f0f7ff;border-bottom:1px solid #c8e1fb;padding:12px 16px;font-size:13px;line-height:1.5}.widget-info-panel p{margin:0 0 4px}.widget-info-panel ul{margin:0 0 4px;padding-left:20px}.widget-info-panel li{margin-bottom:2px}.widget-info-panel code{background:#dceeff;border-radius:3px;padding:1px 4px;font-size:12px}.widget-card-body{padding:16px}.no-data{color:#aaa;text-align:center;padding:20px;font-size:14px}.widget-warning{border-radius:6px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:10px 14px;font-size:13px;line-height:1.5;display:flex}.widget-warning-icon{flex-shrink:0;font-size:15px;line-height:1.4}.widget-warning-red{color:#58151c;background:#fdecea;border:1px solid #f5c6cb}.widget-warning-yellow{color:#664500;background:#fff8e6;border:1px solid #ffe69c}.widget-warning code{background:#0000000f;border-radius:3px;padding:1px 4px}.widget-narrative{color:#463a66;text-align:left;background:#f4eefc;border:none;border-bottom:1px solid #ddc9f7;border-radius:0;align-items:center;gap:10px;width:100%;padding:10px 16px;font-size:13px;line-height:1.5;display:flex}button.widget-narrative{cursor:pointer}button.widget-narrative:hover{background:#ece0fb}.widget-narrative-icon{flex-shrink:0;font-size:16px;line-height:1.4}.widget-narrative-text{flex:1;min-width:0}.widget-narrative-text strong{color:#6f42c1}.widget-narrative-chevron{color:#6f42c1;flex-shrink:0;font-size:12px;transition:transform .15s}.widget-narrative[aria-expanded=true] .widget-narrative-chevron{transform:rotate(90deg)}.widget-narrative-warning{color:#664500;background:#fff8e6;border-bottom:1px solid #ffe69c}.widget-narrative-warning .widget-narrative-text strong{color:#9c6f00}.widget-narrative-warning.widget-narrative:hover{background:#fef0c7}.widget-narrative-warning .widget-narrative-chevron{color:#9c6f00}.gallery-summary{margin:0 0 28px}.gallery-summary>:first-child{margin-top:0}.widget-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin-bottom:24px;display:grid}.widget-tile{text-align:left;cursor:pointer;height:300px;font:inherit;color:inherit;background:#fff;border:1px solid #dee2e6;border-radius:10px;flex-direction:column;padding:0;transition:box-shadow .15s,transform .15s,border-color .15s;display:flex;overflow:hidden;box-shadow:0 1px 4px #0000000f}.widget-tile:hover{border-color:#adb5bd;transform:translateY(-2px);box-shadow:0 6px 18px #0000001f}.widget-tile:focus-visible{outline-offset:2px;outline:2px solid #6f42c1}.widget-tile-head{background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;display:flex}.widget-tile-title{color:#212529;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;text-align:center;flex:1;font-size:18px;overflow:hidden}.widget-tile-plot{flex:1;min-height:0;margin:8px 8px 0;position:relative;overflow:hidden}.widget-tile-plot-empty{opacity:.28;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:46px;display:flex}.widget-tile-plot-table:after{content:"";pointer-events:none;background:linear-gradient(#0000 75%,#fff);position:absolute;inset:0}.widget-tile-table-preview{border-collapse:collapse;table-layout:fixed;white-space:nowrap;width:100%;font-size:11px;position:absolute;top:0;left:0}.widget-tile-table-preview th,.widget-tile-table-preview td{text-align:left;text-overflow:ellipsis;border:1px solid #e9ecef;padding:4px 8px;overflow:hidden}.widget-tile-table-preview th{color:#495057;background:#f8f9fa;font-weight:600}.widget-tile-table-preview td{color:#212529}.widget-tile-msg{box-sizing:border-box;color:#5a5170;flex-shrink:0;align-items:flex-start;gap:6px;height:52px;padding:8px 16px;font-size:12.5px;line-height:1.4;display:flex;overflow:hidden}.widget-tile-msg span:last-child{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.widget-tile-msg strong{color:#6f42c1}.widget-tile-msg-icon{flex-shrink:0}.widget-tile-msg-warning{color:#8a6d3b;background:#fff8e6}.widget-tile-msg-warning strong{color:#8a5a00}.widget-tile-open{color:#6f42c1;opacity:.7;border-top:1px solid #efecf5;flex-shrink:0;align-items:center;height:34px;padding:0 16px;font-size:12px;font-weight:600;transition:opacity .15s;display:flex}.widget-tile:hover .widget-tile-open,.widget-tile:focus-visible .widget-tile-open{opacity:1;text-decoration:underline}.widget-cell{min-width:0}.widget-cell>.widget-tile{width:100%}.widget-cell-expanded{grid-column:1/-1;scroll-margin-top:16px}.widget-cell-card{animation:.22s gallery-open-in}@keyframes gallery-open-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.widget-card-header-collapsible{cursor:pointer}.widget-card-header-collapsible:hover{background:#f4eefc}.widget-card-close{color:#6c757d;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:20px;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.widget-card-close:hover{color:#6f42c1;background:#f4eefc;border-color:#c3a6ee}.kpi-row{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.kpi-tile{text-align:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;flex-direction:column;flex:140px;justify-content:space-between;padding:12px 16px;display:flex}.kpi-value{color:#212529;word-break:break-word;font-size:24px;font-weight:700;line-height:1.2}.kpi-label{color:#6c757d;margin-top:4px;font-size:14px}.summary-meta-line{color:#6c757d;word-break:break-all;margin-bottom:8px;font-size:13px}.summary-meta-line code{color:inherit;background:#f1f3f5;border-radius:3px;padding:1px 5px;font-size:12px}.stat-table{border-collapse:collapse;width:100%;font-size:14px}.stat-table th,.stat-table td{border:1px solid #dee2e6;padding:6px 10px}.stat-table th{background:#f8f9fa;font-weight:600}.stat-table tr:hover{background:#f0f4ff}.group-color-dot{vertical-align:middle;border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-right:8px;display:inline-block}.legend{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.legend-item{align-items:center;gap:4px;font-size:12px;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.bar-cell{min-width:70px;padding:2px 0;position:relative}.bar-cell-fill{opacity:.25;border-radius:3px;position:absolute;inset:2px 0}.bar-cell-value{padding-left:6px;position:relative}canvas{image-rendering:pixelated;max-width:100%}.topbar-left,.topbar-right{flex:1 1 0;align-items:center;gap:12px;min-width:0;display:flex}.topbar-right{justify-content:flex-end}.topbar-center{flex:none;align-items:center;gap:8px;display:flex}#current-filename{max-width:240px}.view-toggle{background:#f8f9fa;border:1px solid #dee2e6;border-radius:999px;flex-shrink:0;display:inline-flex;overflow:hidden}.view-toggle-btn{text-align:center;color:#6c757d;cursor:pointer;white-space:nowrap;background:0 0;border:none;width:72px;padding:4px 0;font-size:13px;font-weight:500;line-height:1.4;transition:background .15s,color .15s}.view-toggle-btn[aria-pressed=true]{color:#212529;background:#fff;border-radius:999px;box-shadow:0 1px 3px #0000001f}.view-toggle-btn:not([aria-pressed=true]):hover{color:#212529}.view-icon{display:none}.view-label{display:inline}@media (max-width:640px){.view-icon{display:inline}.view-label{display:none}.view-toggle-btn{width:36px}#topbar-brand{display:none}#row-count-badge{display:none!important}.across-dims-wrap{max-width:100%!important}}.topbar-icon{width:auto;height:28px}.topbar-brand{white-space:nowrap;font-size:16px;font-weight:600}.export-btn-list{flex-direction:column;gap:8px;display:flex}.export-opt-btn{text-align:left;width:100%;font:inherit;color:#212529;cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:6px 10px;font-size:.85rem;font-weight:600;transition:background .12s,border-color .12s}.export-opt-btn:hover{background:#f4eefc;border-color:#c3a6ee}.export-opt-btn:disabled{opacity:.55;cursor:default}.export-opt-desc{color:#6c757d;margin:4px 2px 0;font-size:.72rem;line-height:1.3}.feedback-privacy-note{color:#8a6d3b;background:#fff8e6;border:1px solid #f3e2b3;border-radius:6px;margin-bottom:10px;padding:6px 8px;font-size:.72rem;line-height:1.35}.feedback-privacy-note strong{color:#6b5320}.pp-footer{background:#212529;margin-top:auto}.pp-footer-inner{justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:16px 20px;display:flex}.pp-footer-left{align-items:center;display:flex}.pp-footer-right{align-items:center;gap:16px;display:flex}.pp-footer-logo{vertical-align:middle;width:auto;height:36px;margin-right:14px}.pp-footer-text{color:#adb5bd;font-size:12px;line-height:1.4}.pp-footer-link{color:#adb5bd;font-size:12px;text-decoration:none}.pp-footer-link:hover{color:#dee2e6}.pp-footer-link-light{color:#dee2e6;text-decoration:none}.pp-footer-link-light:hover{text-decoration:underline}#report-info{background:#f8f9fa;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6;padding:10px 20px;font-size:12px;line-height:1.5}.ri-row{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.ri-row+.ri-row{margin-top:4px}.ri-head{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}@media (max-width:600px){.ri-head{flex:0 0 100%}}.ri-name{color:#212529;white-space:nowrap;font-size:13px;font-weight:600}.ri-desc{color:#6c757d;white-space:pre-line;flex:0 0 100%}.ri-chips{flex-wrap:wrap;gap:5px;display:flex}.ri-chip{color:#495057;white-space:nowrap;background:#e9ecef;border-radius:10px;padding:1px 9px;font-size:11px}.ri-sub{color:#6c757d;flex-wrap:wrap;font-size:11px}.ri-paths{word-break:break-all}.ri-label{color:#495057;font-weight:500}.ri-sep{color:#ced4da}.ri-privacy-details{width:100%}.ri-privacy-details summary{color:#495057;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:700}.ri-privacy-details summary:hover{color:#495057}.ri-privacy-details ul{color:#6c757d;margin:4px 0 0;padding-left:18px;font-size:11px;line-height:1.6}
