:root{--color-primary: #1a365d;--color-primary-light: #2c5282;--color-primary-dark: #0f2744;--color-primary-50: #ebf4ff;--color-primary-100: #c3dafe;--color-primary-200: #a3bffa;--color-accent: #38a169;--color-accent-light: #48bb78;--color-accent-dark: #276749;--color-accent-glow: rgba(56, 161, 105, .25);--color-success: #38a169;--color-warning: #d69e2e;--color-error: #e53e3e;--color-info: #3182ce;--color-gray-50: #f7fafc;--color-gray-100: #edf2f7;--color-gray-200: #e2e8f0;--color-gray-300: #cbd5e0;--color-gray-400: #a0aec0;--color-gray-500: #718096;--color-gray-600: #4a5568;--color-gray-700: #2d3748;--color-gray-800: #1a202c;--color-gray-900: #171923;--color-surface: #ffffff;--color-surface-elevated: #f7fafc;--color-surface-overlay: rgba(255, 255, 255, .95);--color-text: #1a202c;--color-text-muted: #718096;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-light: #edf2f7;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Plus Jakarta Sans", var(--font-sans);--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--icon-size: 18px;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-glow: 0 0 20px var(--color-accent-glow);--glass-bg: rgba(255, 255, 255, .85);--glass-blur: blur(12px);--glass-border: 1px solid rgba(255, 255, 255, .3);--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);--gradient-accent: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-light) 100%);--gradient-surface: linear-gradient(180deg, #ffffff 0%, var(--color-gray-50) 100%);--gradient-dark: linear-gradient(180deg, var(--color-gray-800) 0%, var(--color-gray-900) 100%);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-popover: 500;--z-tooltip: 600;--header-height: 64px;--sidebar-width: 320px}@media(prefers-color-scheme:dark){:root{--color-surface: #0f1419;--color-surface-elevated: #1c2128;--color-surface-overlay: rgba(15, 20, 25, .95);--color-text: #ffffff;--color-text-muted: #8b949e;--color-text-inverse: #0f1419;--color-border: #3d444d;--color-border-light: #21262d;--color-gray-50: #1c2128;--color-gray-100: #21262d;--color-gray-200: #3d444d;--color-gray-300: #484f58;--color-primary-50: rgba(44, 82, 130, .3);--glass-bg: rgba(15, 20, 25, .9);--glass-border: 1px solid rgba(255, 255, 255, .15);--gradient-surface: linear-gradient(180deg, #1c2128 0%, #0f1419 100%)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-surface);min-height:100vh;overflow:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--color-text)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base);font-weight:var(--font-bold)}a{color:var(--color-primary-light);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent)}.app-shell{display:grid;grid-template-rows:var(--header-height) 1fr;height:100vh;overflow:hidden;--split-position: 50%}.app-main{display:grid;--clamped-split: clamp(20px, var(--split-position), calc(100% - 20px) );grid-template-columns:var(--clamped-split) auto calc(100% - var(--clamped-split));height:calc(100vh - var(--header-height));overflow:hidden;position:relative}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);background:var(--gradient-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-md);z-index:var(--z-sticky);position:relative;overflow:visible}.app-header__brand{display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text-inverse);text-decoration:none}.app-header__logo{width:40px;height:40px;border-radius:var(--radius-lg);object-fit:contain}.app-header__nav{display:flex;align-items:center;gap:var(--space-2)}.app-header__link{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);color:#ffffffe6;font-weight:var(--font-medium);border-radius:var(--radius-md);transition:all var(--transition-fast)}.app-header__link:hover,.app-header__link--active{color:#fff;background:#ffffff26}.mobile-menu-btn,.mobile-menu,.mobile-support-btn{display:none}.pane{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--color-surface);transition:opacity var(--transition-smooth)}.pane--info{position:relative;border-right:1px solid var(--color-border)}.pane--map{position:relative;display:flex;flex-direction:column}.pane__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface-elevated)}.pane__title{font-size:var(--text-lg);font-weight:var(--font-semibold)}.pane__content{flex:1;overflow-y:auto;padding:var(--space-5)}.catalogue-sticky-shell{position:sticky;top:calc(-1 * var(--space-5));z-index:25;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-3);margin:calc(-1 * var(--space-5)) calc(-1 * var(--space-5)) var(--space-4);padding:var(--space-5) var(--space-5) var(--space-3);background:color-mix(in srgb,var(--color-surface) 94%,transparent);backdrop-filter:blur(6px);border-bottom:1px solid var(--color-border)}.app-shell[data-split-state=info-full] .pane--map,.app-shell[data-split-state=map-full] .pane--info{width:0;overflow:hidden}.split-drag{position:relative;display:flex;align-items:center;justify-content:center;width:6px;z-index:2000;cursor:col-resize;background:transparent;transition:background var(--transition-fast)}.split-drag:hover{background:var(--color-primary-100)}.split-drag:active{background:var(--color-primary-200)}.split-drag__handle{position:absolute;top:50%;transform:translateY(-50%);width:4px;height:40px;background:var(--color-border);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.split-drag:hover .split-drag__handle{background:var(--color-primary)}.split-drag:active .split-drag__handle{background:var(--color-primary-600)}body.split-dragging{cursor:col-resize!important;user-select:none}body.split-dragging *{cursor:col-resize!important}.search-input{position:relative;min-width:0;margin-bottom:0}.search-input__icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.search-input__field{width:100%;padding:var(--space-3) var(--space-4) var(--space-3) var(--space-10);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.search-input__field:focus{outline:none;border-color:var(--color-primary-light);box-shadow:0 0 0 3px var(--color-primary-100)}.search-input__field::placeholder{color:var(--color-text-muted)}.search-input__field::-webkit-search-cancel-button,.search-input__field::-webkit-search-decoration,.search-input__field::-webkit-search-results-button,.search-input__field::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none;display:none}.search-clear{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);display:none;align-items:center;justify-content:center;width:20px;height:20px;padding:0;font-size:18px;font-weight:700;color:var(--color-text-muted);background:var(--color-surface-elevated);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.search-clear:hover{color:var(--color-text);background:var(--color-border)}.search-input:has(.search-input__field:not(:placeholder-shown)) .search-clear{display:flex}.filter-stats{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-3);padding-left:var(--space-1)}.category-pills-container,.provider-pills-container{margin-bottom:var(--space-4)}.provider-pills-label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2)}.catalogue-nav{display:flex;align-items:center;gap:var(--space-2);justify-self:end;flex-shrink:0;padding:0;margin-bottom:0;border-bottom:0}.catalogue-nav .btn--icon{padding:var(--space-2)}.catalogue-nav .btn--icon:disabled{opacity:.4;cursor:not-allowed}.catalogue-home--top{min-width:2rem}@media(max-width:640px){.catalogue-sticky-shell{grid-template-columns:1fr}.catalogue-nav{justify-self:start}}.catalogue-detail{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.catalogue-view-toggle{display:flex;gap:0;margin:var(--space-3) var(--space-4);border:1px solid var(--color-border, #e2e8f0);border-radius:8px;overflow:hidden;background:var(--color-surface, #fff)}.catalogue-view-toggle__btn{flex:1;padding:6px 12px;font-size:var(--text-sm, .875rem);font-weight:500;border:none;background:transparent;color:var(--color-text-muted, #718096);cursor:pointer;transition:background .15s,color .15s}.catalogue-view-toggle__btn:hover{background:var(--color-gray-50, #f7fafc)}.catalogue-view-toggle__btn--active{background:var(--color-primary, #1a365d);color:#fff}.catalogue-view-toggle__btn--active:hover{background:var(--color-primary-dark, #153254)}.catalogue-flat-view{padding:0}.catalogue-flat__toc{margin:4px 6px;padding:8px 6px;background:var(--color-surface-elevated, #f7fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:8px}.catalogue-flat__toc-toplinks{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.catalogue-flat__toc-toplink{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary, #1a365d);text-decoration:none}.catalogue-flat__toc-toplink:hover{text-decoration:underline}.catalogue-flat__toc-title{margin:0 0 var(--space-3) 0;font-size:var(--text-base, 1rem);font-weight:700;color:var(--color-text, #1a202c)}.catalogue-flat__toc-list{list-style:none;padding:0;margin:0}.catalogue-flat__toc-group{margin-bottom:var(--space-2)}.catalogue-flat__toc-group-name{display:block;font-weight:600;font-size:var(--text-sm, .875rem);color:var(--color-text, #1a202c);margin-bottom:var(--space-1);padding:2px 0}.catalogue-flat__toc-sublist{list-style:none;padding:0 0 0 var(--space-4);margin:0}.catalogue-flat__toc-sublist li{margin-bottom:2px}.catalogue-flat__toc-link{display:block;width:100%;padding:3px 6px;font-size:var(--text-sm, .875rem);color:var(--color-primary, #1a365d);text-decoration:none;border-radius:4px;transition:background .12s;overflow-wrap:normal;word-break:normal;hyphens:manual;min-width:0}.catalogue-flat__toc-link:hover{background:var(--color-primary-50, #ebf4ff);text-decoration:none}.catalogue-flat__toc-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm, .875rem);table-layout:fixed}.catalogue-flat__toc-table th:nth-child(1),.catalogue-flat__toc-table td:nth-child(1){width:78%}.catalogue-flat__toc-table th:nth-child(2),.catalogue-flat__toc-table td:nth-child(2){width:8%}.catalogue-flat__toc-table th:nth-child(3),.catalogue-flat__toc-table td:nth-child(3){width:14%}.catalogue-flat__toc-table th,.catalogue-flat__toc-table td{border-bottom:none;padding:4px 2px;text-align:left;vertical-align:middle}.catalogue-flat__toc-table th{font-weight:700;color:var(--color-text, #1a202c)}.catalogue-flat__toc-table td:nth-child(2),.catalogue-flat__toc-table td:nth-child(3){color:var(--color-text-muted, #718096);white-space:normal;overflow:hidden;overflow-wrap:normal;word-break:normal;hyphens:manual}.catalogue-flat__toc-table tbody tr{background-image:linear-gradient(var(--color-border, #e2e8f0),var(--color-border, #e2e8f0));background-repeat:no-repeat;background-position:center bottom;background-size:calc(100% - 20px) 1px}.catalogue-flat__toc-table tbody tr:last-child{background-image:none}.catalogue-flat__toc-subheading-row,.catalogue-flat__toc-heading-row{background-image:none!important}.catalogue-flat__toc-heading-row td{padding-top:12px;padding-bottom:4px}.catalogue-flat__toc-heading{display:inline-block;font-size:.95rem;font-weight:800;color:var(--color-text, #1a202c)}.catalogue-flat__toc-subheading-row td{padding-top:10px;padding-bottom:4px}.catalogue-flat__toc-subheading{display:inline-block;font-size:.78rem;font-weight:700;color:var(--color-text-muted, #718096);text-transform:uppercase;letter-spacing:.04em}.catalogue-flat__toc-row--indented .catalogue-flat__toc-link{padding-left:18px}.flat-election-entry{cursor:pointer}.catalogue-flat__toc-namecell{display:grid;grid-template-columns:3px 16px minmax(0,1fr);align-items:center;column-gap:4px;width:100%;min-width:0;white-space:normal;overflow:hidden}.catalogue-flat__toc-color{width:3px;height:20px;border-radius:2px;flex-shrink:0}.catalogue-flat__toc-thumb{width:16px;height:16px;object-fit:contain;border-radius:3px;border:1px solid var(--color-border, #e2e8f0);flex-shrink:0}.catalogue-flat__toc-thumbwrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.catalogue-flat__toc-thumbwrap--missing{border:1px solid var(--color-border, #e2e8f0);border-radius:3px;background:var(--color-surface, #fff)}.catalogue-flat__toc-thumbzoom{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);width:120px;height:120px;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;background:var(--color-surface, #fff);box-shadow:var(--shadow-lg, 0 10px 25px rgba(0, 0, 0, .15));padding:4px;z-index:50;display:none;pointer-events:none}.catalogue-flat__toc-thumbzoom img{width:100%;height:100%;object-fit:contain;display:block}.catalogue-flat__toc-thumbwrap:hover .catalogue-flat__toc-thumbzoom{display:block}.catalogue-flat__toc-thumbwrap--missing .catalogue-flat__toc-thumbzoom{display:none!important}.catalogue-flat__toc-thumb--fallback{background:var(--color-surface, #fff)}.catalogue-flat__toc-name{display:block;min-width:0;font-size:.76rem;line-height:1.2;font-weight:700;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:manual}.catalogue-flat__toc-table td{white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:manual}.c1-card__titleblock{display:flex;flex-direction:column;min-width:0}.c1-card__subtitle{margin-top:2px;font-size:.76rem;font-style:italic;font-weight:500;opacity:.72;line-height:1.2;color:#ffffffe6}.catalogue-flat__cards{padding:var(--space-2) 0}.catalogue-flat__anchor{scroll-margin-top:70px}[data-theme=dark] .catalogue-view-toggle{border-color:var(--color-border);background:var(--color-surface)}[data-theme=dark] .catalogue-view-toggle__btn{color:var(--color-text-muted)}[data-theme=dark] .catalogue-view-toggle__btn:hover{background:#ffffff0d}[data-theme=dark] .catalogue-flat__toc{background:var(--color-surface-elevated);border-color:var(--color-border)}[data-theme=dark] .catalogue-flat__toc-table th,[data-theme=dark] .catalogue-flat__toc-table td{border-bottom-color:var(--color-border)}[data-theme=dark] .catalogue-flat__toc-title,[data-theme=dark] .catalogue-flat__toc-heading,[data-theme=dark] .catalogue-flat__toc-group-name{color:var(--color-text)}[data-theme=dark] .catalogue-flat__toc-subheading,[data-theme=dark] .catalogue-flat__toc-table td:nth-child(2),[data-theme=dark] .catalogue-flat__toc-table td:nth-child(3){color:#c4cde0}[data-theme=dark] .catalogue-flat__toc-link{color:#9fc3ff}[data-theme=dark] .catalogue-flat__toc-link:hover{background:#4299e129;color:#d6e6ff}[data-theme=dark] .catalogue-flat__toc-table th{color:#f3f6ff}[data-theme=dark] .catalogue-flat__toc-table td{color:#d7dfef}[data-theme=dark] .catalogue-flat__toc-name{color:#d6e6ff}[data-theme=dark] .catalogue-flat__toc-table tbody tr{background-image:linear-gradient(#fff3,#fff3)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .catalogue-flat__toc-link{color:#9fc3ff}:root:not([data-theme=light]) .catalogue-flat__toc-link:hover{background:#4299e129;color:#d6e6ff}}#catalogueFlatView .c1-card__header{position:sticky;top:54px;z-index:12;margin-left:0;margin-right:0;padding-left:var(--space-3);padding-right:var(--space-3);padding-top:var(--space-3)}#catalogueFlatView .c1-card__section-header{position:static;top:auto;z-index:auto;margin-left:0;margin-right:0;padding-left:var(--space-3);padding-right:var(--space-3)}#catalogueFlatView .c1-card__section-members .class-member:only-child,#catalogueFlatView .c1-card__section-members .class-member:only-child .class-member__info,#catalogueFlatView .c1-card__section-members .class-member:only-child .thumb-zone,#catalogueFlatView .c1-card__section-members .class-member:only-child .class-member__actions{position:static;top:auto;flex:initial}.catalogue-detail__back{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.catalogue-detail__back:hover{color:var(--color-primary);border-color:var(--color-primary)}.catalogue-detail__card{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:left}.catalogue-detail__color{grid-column:1;grid-row:1 / span 2;width:18px;height:18px;border-radius:4px;margin-bottom:0;box-shadow:none;border:1px solid rgba(0,0,0,.2)}.catalogue-detail__name{grid-column:2;font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text);margin-bottom:2px}.catalogue-detail__date{grid-column:2;font-size:var(--text-sm);color:var(--color-text-muted)}.catalogue-detail__load-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);margin-bottom:var(--space-6);font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text-inverse);background:var(--gradient-primary);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.catalogue-detail__load-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-lg)}.catalogue-detail__load-btn--loaded{background:var(--color-success)}.catalogue-detail__feature-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.catalogue-detail__feature-actions .btn.btn--icon{width:40px;height:40px;min-width:40px;min-height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}.catalogue-detail__feature-actions .btn.btn--icon svg{width:18px;height:18px;min-width:18px;min-height:18px}.catalogue-detail__feature-actions .download-btn-group{display:inline-flex;align-items:stretch}.catalogue-detail__actions{margin-bottom:var(--space-4)}.catalogue-detail__meta{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-4);overflow:hidden}.catalogue-detail__meta-row{display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.catalogue-detail__meta-row:last-child{border-bottom:none}.catalogue-detail__meta-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.catalogue-detail__meta-value{font-size:var(--text-sm);color:var(--color-primary);font-weight:var(--font-medium)}.catalogue-detail__section{margin-bottom:var(--space-4)}.catalogue-detail__metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.catalogue-detail__metric-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.catalogue-detail__metric-label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.catalogue-detail__metric-value{font-size:var(--text-lg);color:var(--color-text);font-weight:var(--font-bold)}.catalogue-detail__metric-subtext{display:block;margin-top:var(--space-1);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-muted)}.catalogue-detail__table-wrap{position:relative;overflow-x:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.catalogue-detail__entity-table{width:100%;min-width:720px;border-collapse:collapse;font-size:var(--text-sm)}.catalogue-detail__entity-table th,.catalogue-detail__entity-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.catalogue-detail__entity-table th{background:var(--color-surface-elevated);color:var(--color-text);font-weight:var(--font-semibold);position:sticky;top:0;z-index:2}.catalogue-detail__entity-table tbody tr:last-child td{border-bottom:none}.catalogue-detail__entity-table th:first-child,.catalogue-detail__entity-table td:first-child{position:sticky;left:0;background:var(--color-surface);z-index:1}.catalogue-detail__entity-table th:first-child{background:var(--color-surface-elevated);z-index:3}.catalogue-detail__table-wrap--history .catalogue-detail__entity-table{font-size:.82rem}.catalogue-detail__table-wrap--history .catalogue-detail__entity-table th,.catalogue-detail__table-wrap--history .catalogue-detail__entity-table td{padding:6px 8px;border-right:1px solid var(--color-border);vertical-align:middle}.catalogue-detail__table-wrap--history .catalogue-detail__entity-table th{background:var(--color-surface-elevated)}.catalogue-detail__table-wrap--history .catalogue-detail__entity-table td{background:color-mix(in srgb,var(--color-surface) 96%,var(--color-primary-50) 4%)}.catalogue-detail__table-wrap--history .catalogue-detail__entity-table th:last-child,.catalogue-detail__table-wrap--history .catalogue-detail__entity-table td:last-child{border-right:none}.catalogue-detail__entity-table--grouped thead tr:nth-child(1) th{top:0;z-index:5;background:color-mix(in srgb,var(--color-surface-elevated) 92%,var(--color-primary-50) 8%);padding-top:2px;padding-bottom:2px;height:26px}.catalogue-detail__entity-table--grouped thead tr:nth-child(2) th{top:26px;z-index:5;background:color-mix(in srgb,var(--color-surface-elevated) 96%,var(--color-primary-50) 4%);padding-top:1px;padding-bottom:1px;height:22px}.catalogue-detail__entity-table--grouped thead tr:nth-child(3) th{top:48px;z-index:5;padding-top:2px;padding-bottom:2px;height:26px}.catalogue-detail__entity-table--grouped thead th{position:sticky;left:unset!important;vertical-align:middle;white-space:normal;text-wrap:balance;line-height:1;border-bottom-width:1px;background:var(--color-surface-elevated)}.catalogue-detail__entity-table--grouped thead tr:nth-child(1) th:first-child{left:0!important;z-index:8}.catalogue-detail__entity-table--grouped .election-th-controls{min-height:0;gap:4px;margin-top:0}.catalogue-detail__entity-table--grouped .election-th-label{white-space:normal;line-height:1;margin:0}.catalogue-detail__entity-table--grouped thead tr:nth-child(2) th:first-child,.catalogue-detail__entity-table--grouped thead tr:nth-child(3) th:first-child{position:sticky;left:unset!important;z-index:4}.catalogue-detail__entity-table--grouped thead tr:nth-child(n+2) th:first-child{position:sticky;left:unset!important}.catalogue-detail__entity-table--grouped thead tr:nth-child(1) th[rowspan]{left:unset!important;z-index:4}.catalogue-detail__entity-table--grouped thead tr:nth-child(1) th[rowspan]:first-child{left:0!important;z-index:8}.catalogue-detail__entity-num{text-align:right!important;font-variant-numeric:tabular-nums}.catalogue-detail__entity-link--text{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.catalogue-detail__entity-link--text:hover{color:var(--color-primary-dark)}.catalogue-detail__entity-link--constituency{white-space:nowrap}.catalogue-detail__entity-row--by-election td{font-style:italic;font-size:calc(var(--text-sm) - 1px)}.catalogue-detail__delta,.catalogue-detail__rank-delta{font-variant-numeric:tabular-nums;font-weight:var(--font-semibold);white-space:nowrap}.catalogue-detail__delta--positive{color:var(--color-success-700, #15803d)}.catalogue-detail__delta--negative{color:var(--color-danger-700, #b91c1c)}.catalogue-detail__delta--neutral,.catalogue-detail__rank-delta--neutral{color:var(--color-info-700, #1d4ed8)}.catalogue-detail__rank-delta--up,.catalogue-detail__rank-delta--down{color:var(--color-success-700, #15803d)}.catalogue-detail__section-title{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2)}.catalogue-detail__keywords{display:flex;flex-wrap:wrap;gap:var(--space-2)}.catalogue-detail__keyword{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-full)}.catalogue-detail__variants{display:flex;flex-direction:column;gap:var(--space-2)}.catalogue-detail__variant{padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.catalogue-detail__variant:hover{border-color:var(--color-primary);background:var(--color-primary-50)}.catalogue-detail__badges{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.catalogue-detail__badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.3px}.catalogue-detail__badge--featured{color:#92400e;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b}.catalogue-detail__badge--group{color:#1e40af;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #3b82f6}.catalogue-detail__badge--hidden{color:var(--color-text-muted);background:var(--color-surface-elevated);border:1px solid var(--color-border)}.catalogue-detail__description{padding:var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-sm);line-height:1.6;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-md)}.catalogue-detail__meta-value--mono{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text);background:var(--color-surface-elevated);padding:2px var(--space-2);border-radius:var(--radius-sm)}.catalogue-detail__file-path{display:block;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);word-break:break-all}.catalogue-detail__attr-table{margin-top:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.catalogue-detail__attr-table-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast)}.catalogue-detail__attr-table-header:hover{background:var(--color-primary-50)}.catalogue-detail__attr-table-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.catalogue-detail__attr-table-toggle{font-size:var(--text-xs);color:var(--color-text-muted)}.catalogue-detail__attr-table-body{max-height:350px;overflow:hidden}.catalogue-detail__attr-table-body--collapsed{display:none}.catalogue-detail__attr-table-scroll{overflow-x:auto;overflow-y:auto;max-height:300px}.catalogue-detail__attr-table-inner{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.catalogue-detail__attr-th{position:sticky;top:0;padding:var(--space-2) var(--space-3);font-weight:var(--font-semibold);font-family:var(--font-mono);color:var(--color-text);background:var(--color-surface-elevated);border-bottom:2px solid var(--color-border);text-align:left;white-space:nowrap;z-index:1}.catalogue-detail__attr-td{padding:var(--space-2) var(--space-3);color:var(--color-text-muted);background:var(--color-surface);border-bottom:1px solid var(--color-border);white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.catalogue-detail__attr-tr--interactive{cursor:pointer}.catalogue-detail__attr-link{appearance:none;border:0;padding:0;margin:0;background:none;color:var(--color-primary-700);font:inherit;text-decoration:underline;cursor:pointer;text-align:left}.catalogue-detail__attr-link:hover,.catalogue-detail__attr-link:focus-visible{color:var(--color-primary-800)}.catalogue-detail__attr-tr:hover .catalogue-detail__attr-td{background:var(--color-primary-50)}.catalogue-detail__attr-tr--header:hover .catalogue-detail__attr-th{background:var(--color-surface-elevated)}.catalogue-detail__attr-footer{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-surface);border-top:1px solid var(--color-border);text-align:center}.catalogue-detail__attr-loading{padding:var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--color-text-muted)}.catalogue-detail__attr-error{padding:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);text-align:center}.class-member__name-link{color:inherit;text-decoration:none;cursor:pointer;transition:color var(--transition-fast)}.class-member__name-link:hover{color:var(--color-primary);text-decoration:underline}.category-pills{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.category-toggle{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);background:transparent;border:none;cursor:pointer;transition:color var(--transition-fast)}.category-toggle:hover{color:var(--color-primary)}.category-toggle svg{transition:transform var(--transition-fast)}.category-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.category-pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.category-pill__icon{font-size:1em}.category-pill:hover{color:var(--color-primary);border-color:var(--color-primary-200);background:var(--color-primary-50)}.category-pill--active{color:var(--color-text-inverse);background:var(--gradient-primary);border-color:transparent}.category-group{width:100%;margin-bottom:var(--space-3)}.category-group__header{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;padding:var(--space-2) 0;margin-bottom:var(--space-2);border-bottom:1px solid var(--color-border-light)}.category-group__pills{display:flex;flex-wrap:wrap;gap:var(--space-2)}.map-list__group-heading{font-size:var(--text-base);font-weight:var(--font-bold);color:var(--color-text);padding:var(--space-4) 0 var(--space-2);margin-top:var(--space-4);border-bottom:2px solid var(--color-primary-500)}.map-list__group-heading:first-child{margin-top:0}.map-list__subheading{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;padding:var(--space-3) 0 var(--space-2);border-bottom:1px solid var(--color-border-light);margin-bottom:var(--space-2)}.map-controls-toggle{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);width:100%;margin-bottom:var(--space-2)}.map-controls-toggle:hover{background:var(--color-primary-50);border-color:var(--color-primary)}.map-controls-toggle svg{transition:transform var(--transition-fast)}.map-controls-toggle[aria-expanded=true] svg{transform:rotate(45deg)}.map-control-panel--expanded{display:block}.control-label--toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-1) 0;background:transparent;border:none;cursor:pointer}.control-label--toggle svg{transition:transform var(--transition-fast)}.control-label--toggle[aria-expanded=true] svg{transform:rotate(180deg)}.overlay-list{padding-left:var(--space-2);transition:all var(--transition-smooth)}.overlay-list--collapsed{display:none}.overlay-list--expanded{display:block}.control-group{display:flex;flex-direction:column;gap:var(--space-2)}.control-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-select{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8)}.control-select:hover{border-color:var(--color-primary-200)}.control-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-50)}.control-select optgroup{font-weight:var(--font-semibold);color:var(--color-text-muted)}.control-checkbox{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;padding:var(--space-1) 0}.control-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.control-slider{width:100%;height:6px;background:var(--color-border);border-radius:var(--radius-full);appearance:none;cursor:pointer}.control-slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;background:var(--color-primary);border-radius:var(--radius-full);cursor:pointer;transition:transform var(--transition-fast)}.control-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.control-slider::-moz-range-thumb{width:16px;height:16px;background:var(--color-primary);border:none;border-radius:var(--radius-full);cursor:pointer}.text-size-controls{display:flex;align-items:center;gap:var(--space-2)}.text-size-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.text-size-btn:hover{background:var(--color-primary-50);border-color:var(--color-primary);color:var(--color-primary)}.text-size-value{font-size:var(--text-sm);color:var(--color-text-muted);min-width:40px;text-align:center}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}.badge--new{color:var(--color-success);background:#10b98126}.map-card__progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--color-border);border-radius:0 0 var(--radius-xl) var(--radius-xl);overflow:hidden}.map-card__progress-bar{height:100%;background:var(--gradient-primary);width:0%;transition:width .3s ease}.map-list{display:flex;flex-direction:column;gap:var(--space-3)}.map-list--columns{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);align-items:start}.map-list--columns>.map-card--class,.map-list--columns>.conjoined-class-group{break-inside:avoid}.map-list--columns>.c1-card{grid-column:1 / -1}.map-list--columns>.map-list__subheading,.map-list--columns>h3,.map-list--columns>h4,.map-list--columns>[class*=heading],.map-list--columns>.category-section{grid-column:1 / -1}.map-list--columns .class-card__header{position:sticky;top:0;z-index:10}.map-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-fast)}.map-card__thumbnail{width:40px;height:40px;object-fit:contain;border-radius:var(--radius-md);flex-shrink:0;opacity:.85;transition:opacity var(--transition-fast);border:1px solid var(--map-color, #888)}.map-card:hover .map-card__thumbnail{opacity:1}.thumbnail-preview{position:fixed;z-index:9999;pointer-events:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 8px 24px #00000026;padding:6px;display:none}.thumbnail-preview img{display:block;width:150px;height:150px;object-fit:contain}.map-card__color,.map-card__info,.map-card__actions{flex-shrink:0}.map-card__info{flex:1;min-width:0}.map-card:hover{border-color:var(--color-primary-200);box-shadow:var(--shadow-md);transform:translateY(-1px)}.map-card--active{border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.map-card__color{width:8px;height:40px;border-radius:var(--radius-sm);flex-shrink:0}.map-card__info{flex:1;min-width:0;flex-basis:150px}.map-card__name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);line-height:1.4;cursor:pointer;transition:color var(--transition-fast)}.map-card:hover .map-card__name{color:var(--color-primary);text-decoration:underline}.map-card__name-link{color:inherit;text-decoration:none}.map-card__name-link:hover{color:var(--color-primary);text-decoration:underline}.map-card__meta{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.map-card__feature-count{margin-left:var(--space-2);color:var(--color-primary);font-weight:var(--font-medium)}.map-card__date{margin-left:var(--space-2);color:var(--color-text-secondary);font-style:italic}.map-card__date:before{content:"\b7";margin-right:var(--space-2);color:var(--color-text-muted);font-style:normal}.map-card__note{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1);font-style:italic;line-height:1.4}.map-card__actions{display:flex;gap:var(--space-2);flex-shrink:0;margin-right:var(--space-1)}.map-card--class{flex-direction:column;align-items:stretch;padding:0;cursor:default}.map-card--class:hover{transform:none}.class-card__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-light);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.class-card__title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.class-card__scope{font-size:var(--text-xs);font-variant:small-caps;color:var(--color-text-muted);letter-spacing:.5px;margin-left:var(--space-2)}.class-card__count{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:auto}.class-card__members{display:flex;flex-direction:column}.class-card__timeline{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border-light)}.timeline-slider{width:100%;height:6px;appearance:none;background:var(--color-border);border-radius:var(--radius-full);cursor:pointer;margin:0}.timeline-slider::-webkit-slider-thumb{appearance:none;width:14px;height:14px;background:var(--color-primary);border-radius:var(--radius-full);cursor:grab;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.timeline-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 0 4px var(--color-primary-50)}.timeline-slider::-webkit-slider-thumb:active{cursor:grabbing}.timeline-slider::-moz-range-thumb{width:14px;height:14px;background:var(--color-primary);border:none;border-radius:var(--radius-full);cursor:grab}.timeline-labels{display:flex;justify-content:space-between;padding:0 var(--space-1)}.timeline-labels span{font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast)}.timeline-labels span:hover{color:var(--color-primary)}.timeline-labels span.active{color:var(--color-primary);font-weight:var(--font-semibold)}.class-member{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-light);border-left:3px solid var(--map-color, #888);transition:background var(--transition-fast)}.class-member:last-child{border-bottom:none;border-radius:0 0 var(--radius-xl) var(--radius-xl)}.class-member:hover{background:var(--color-primary-50)}.class-member--loaded{background:#10b9810d}.class-member--active{background:#10b9811a}.class-member--variant{padding-left:var(--space-6);background:var(--color-surface-elevated)}.class-member--variant:hover{background:var(--color-primary-50)}.class-member__color{display:none}.class-member__thumbnail{width:28px;height:28px;object-fit:contain;border-radius:var(--radius-sm);flex-shrink:0;opacity:.8;border:1px solid var(--map-color, #888)}.thumb-zone{align-self:stretch;display:flex;align-items:center;flex-shrink:0;cursor:pointer;margin:calc(-1 * var(--space-2) - 1px) 0 calc(-1 * var(--space-2));padding:var(--space-2) 0}.class-member__name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);cursor:pointer;transition:color var(--transition-fast)}.flat-election-link{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-variant-numeric:tabular-nums}.flat-election-entry--by{padding-left:16px}.class-member:not(.class-member--placeholder):hover .class-member__name{color:var(--color-primary);text-decoration:underline}.class-member__date,.class-member__count,.class-member__desc{font-size:var(--text-xs);color:var(--color-text-muted)}.class-member__provider,.c1-entry-provider{display:block;width:100%;font-size:.7rem;font-style:italic;color:var(--color-text-muted);line-height:1.2;margin-top:2px}.class-member__actions{display:flex;gap:var(--space-1);flex-shrink:0}.btn--xs{width:24px;height:24px;padding:0;border-radius:var(--radius-sm)}.class-member.map-card--collapsed{display:none}.class-member--placeholder .class-member__actions{display:none}.class-member--placeholder .class-member__placeholder-badge{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-error, #dc2626);background:#dc26261a;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px}.class-member__placeholder-badge{display:none}.class-card__header{position:sticky;top:0;z-index:10}.class-card__toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);margin-left:var(--space-2)}.class-card__toggle:hover{background:var(--color-primary-50);border-color:var(--color-primary)}.class-card__toggle svg{transition:transform var(--transition-fast)}.class-card__toggle--expanded svg{transform:rotate(180deg)}.class-member--hidden{display:none}.class-member--blur-top{display:flex;position:relative;max-height:32px;overflow:hidden}.class-member--blur-top:after{content:"";position:absolute;bottom:0;left:0;right:0;height:100%;background:linear-gradient(to bottom,transparent 0%,var(--color-surface) 100%);pointer-events:none}.class-member--blur-bottom{display:flex;position:relative;max-height:32px;overflow:hidden}.class-member--blur-bottom:after{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:linear-gradient(to top,transparent 0%,var(--color-surface) 100%);pointer-events:none}.class-member--middle-blur{display:flex;max-height:20px;overflow:hidden;opacity:.3;filter:blur(2px)}.class-card__conjoin-note{display:flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-4);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-top:none;font-size:var(--text-xs);font-style:italic;color:var(--color-text-muted);text-align:center;line-height:1.4}.class-card--conjoined-top{border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-bottom:none}.class-card--conjoined-bottom{border-radius:0 0 var(--radius-xl) var(--radius-xl);border-top:none}.class-card--conjoined-middle{border-radius:0;border-top:none;border-bottom:none}.conjoined-class-group{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;margin-bottom:var(--space-3)}.conjoined-class-group .map-card--class{border:none;border-radius:0;margin-bottom:0}.conjoined-class-group .map-card--class:first-child .class-card__header{border-radius:var(--radius-xl) var(--radius-xl) 0 0}.conjoined-class-section{display:flex;flex-direction:column}.conjoined-class-section__label{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-light);text-transform:uppercase;letter-spacing:.5px}.conjoined-class-note{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:linear-gradient(to bottom,var(--color-surface),var(--color-surface-elevated));border-top:1px dashed var(--color-border);border-bottom:1px dashed var(--color-border)}.conjoined-class-note__icon{font-size:var(--text-lg);color:var(--color-primary);flex-shrink:0}.conjoined-class-note__text{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;line-height:1.4}.book-card{flex-direction:row;align-items:flex-start;cursor:default;gap:var(--space-3)}.book-card__thumbnail{width:48px;height:auto;object-fit:contain;border-radius:var(--radius-sm);flex-shrink:0;opacity:.9;border:1px solid var(--color-border-light);box-shadow:0 1px 3px #0000001a}.book-card__thumb{width:48px;min-width:48px;min-height:66px;display:inline-flex;position:relative}.book-card__thumbnail-fallback{width:48px;min-height:66px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 4px;border-radius:var(--radius-sm);border:1px solid var(--color-border-light);box-shadow:0 1px 3px #0000001a;background:linear-gradient(180deg,#f4efe3,#e2d4b4);color:#4d3f25;text-align:center}.book-card__thumbnail-fallback--legislation{background:linear-gradient(180deg,#efe6c8,#d8c08a);color:#473818}.book-card__thumbnail-icon{font-size:14px;line-height:1}.book-card__thumbnail-label{font-size:9px;line-height:1.1;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.book-card:hover{transform:none}.book-card__content{display:flex;flex-direction:column;gap:var(--space-2)}.book-card__title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);line-height:1.4;margin:0}.book-card__author{font-size:var(--text-xs);color:var(--color-primary-light);margin:0}.book-card__date{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.book-card__actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}.book-card__btn{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);text-decoration:none;white-space:nowrap}.book-card__notice{font-size:11px;line-height:1.35;color:var(--color-text-muted);margin:0}#catalogueListView{display:flex;flex-direction:column;min-height:0;height:100%}.catalogue-flat-view{flex:1 1 auto;min-height:0}.catalogue-flat-view--book-viewer{display:flex;min-height:0;padding:0}.catalogue-book-viewer{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.catalogue-book-viewer__header{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-elevated)}.catalogue-book-viewer__meta{display:flex;align-items:flex-start;gap:var(--space-3)}.catalogue-book-viewer__titleblock{display:flex;flex-direction:column;gap:2px;min-width:0}.catalogue-book-viewer__title{margin:0;font-size:var(--text-base);font-weight:var(--font-semibold);line-height:1.25}.catalogue-book-viewer__subtitle{font-size:var(--text-xs);color:var(--color-text-muted)}.catalogue-book-viewer__toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.catalogue-book-viewer__format-toggle,.catalogue-book-viewer__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.catalogue-book-viewer__notice{margin:0;font-size:11px;line-height:1.35;color:var(--color-text-muted)}.catalogue-book-viewer__viewport{flex:1 1 auto;min-height:0;background:var(--color-surface)}.catalogue-book-viewer__frame{width:100%;height:100%;border:0;display:block;background:#fff}.catalogue-book-viewer__markdown-viewport{width:100%;height:100%;overflow:auto;padding:var(--space-4);background:var(--color-surface)}.catalogue-book-viewer__markdown-text{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.c1-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:visible;margin-bottom:var(--space-3);display:flex;flex-direction:column}.c1-card__header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;padding:var(--space-3) var(--space-4);display:flex;align-items:center;justify-content:space-between;width:100%;position:sticky;top:calc(-1 * var(--space-5));z-index:12}.c1-card__header .class-card__title{font-size:var(--text-base);font-weight:var(--font-bold);color:#fff}.c1-card__header .class-card__count{font-size:var(--text-xs);opacity:.85;background:#fff3;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md)}.c1-card>.class-card__timeline{padding:var(--space-3) var(--space-4);background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-light)}.c1-card__content{padding:var(--space-3);width:100%;box-sizing:border-box}.c1-card__row{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;gap:var(--space-2);margin-bottom:var(--space-2);align-items:stretch}.c1-card__row:last-child{margin-bottom:0}.c1-card__column{display:grid;grid-template-rows:subgrid;grid-row:span 2}.c1-card__row--three-column{grid-template-columns:1fr 1fr 1fr}.c1-card__row--stacked-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2) var(--space-4);align-items:start}.c1-card__row--stacked-columns .c1-card__column--stacked{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;overflow:visible}.c1-card__row--stacked-columns .c1-card__column--stacked>.c1-card__section--full:first-child{display:flex;flex-direction:column}.c1-card__row--stacked-columns .c1-card__section--full{display:flex;flex-direction:column;margin-bottom:0;min-width:0;overflow:visible}.c1-card__row--stacked-columns .class-member__name{white-space:normal;overflow:visible;text-overflow:clip;word-wrap:break-word;overflow-wrap:break-word}.c1-card__row--stacked-columns .c1-card__section-header{min-height:2em;padding:var(--space-1) 0;display:flex;align-items:center}.c1-card__row--stacked-columns .c1-card__column--stacked>.c1-card__section--full:first-child .c1-card__section-header{min-height:5.5em;padding:var(--space-2) 0;align-items:flex-end}.c1-card__row--stacked-columns .class-member{min-height:2.5em;flex-wrap:nowrap;align-items:stretch;gap:0;border-left:3px solid var(--map-color, #888);padding-left:var(--space-2);padding-right:0}.c1-card__row--aligned .class-member{transition:min-height .2s ease}.c1-card__row--stacked-columns .class-member__info{flex:1 1 auto;min-width:0;padding-right:var(--space-2);display:flex;flex-direction:column;align-items:flex-start}.c1-card__row--stacked-columns .class-member__actions{flex:0 0 auto;display:flex;align-items:stretch}.c1-card__row--stacked-columns .load-btn{width:24px;height:auto;min-height:100%;border-radius:0;background:var(--color-border-light);border:none;font-size:12px;padding:0;display:flex;align-items:center;justify-content:center}.c1-card__row--stacked-columns .c1-card__section-members{display:flex;flex-direction:column;gap:0;overflow:visible}.c1-card__section{display:grid;grid-template-rows:subgrid;grid-row:span 2;background:var(--color-surface-elevated);border:1px solid var(--color-border-light);border-radius:var(--radius-lg)}.c1-card__section-header{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);background:var(--color-surface);border-bottom:1px solid var(--color-border-light)}.c1-card__section-members{overflow:visible;flex:1;display:flex;flex-direction:column;min-height:100%}.c1-card__section--full{display:flex;flex-direction:column;margin-bottom:var(--space-2);grid-row:auto}.c1-card__section--full:last-child{margin-bottom:0}.c1-card__section-label{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);background:var(--color-surface);border-bottom:1px solid var(--color-border-light);text-transform:uppercase;letter-spacing:.5px}.c1-card__section .class-member{padding:var(--space-1) var(--space-3)}.c1-card__section .class-member:last-child{border-bottom:none}.c1-card__section .class-member__name{font-size:var(--text-xs)}.variants-container{display:none;flex-direction:column;margin-left:var(--space-4);padding:var(--space-2) 0;border-left:2px solid var(--color-border-light)}.variants-container--expanded{display:flex}.variant-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-light)}.variant-item:last-child{border-bottom:none}.variant-item__info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.variant-item__name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.variant-item__description{font-size:var(--text-xs);color:var(--color-text-muted)}.variant-item__actions{flex-shrink:0;margin-left:var(--space-3)}.variant-item__actions .load-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast)}.variant-item__actions .load-btn:hover{background:var(--color-primary-50);border-color:var(--color-primary-200);color:var(--color-primary)}.load-btn__icon{font-size:.9em}.variants-toggle{background:var(--color-surface);border:1px solid var(--color-border);font-size:.7em;transition:transform var(--transition-fast)}.variants-toggle.active{transform:rotate(180deg)}.timeline-labels--proportional{justify-content:flex-start;position:relative}.timeline-labels--proportional span{position:absolute;transform:translate(-50%);white-space:nowrap}.class-member__note{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic;margin-left:var(--space-1)}.c1-chronological-grid{display:grid;grid-template-columns:repeat(var(--num-columns, 3),1fr);grid-template-rows:auto repeat(var(--num-rows, 20),2.5em);gap:0;width:100%}.c1-grid-header{position:sticky;top:36px;z-index:11;background:var(--color-surface);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);border-bottom:2px solid var(--color-border)}.c1-grid-section-header{background:var(--color-surface-elevated);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);border-bottom:1px solid var(--color-border);border-left:3px solid var(--color-border);display:flex;align-items:center;min-height:2.5em;box-sizing:border-box;position:sticky;top:70px;z-index:10}.c1-grid-section-header--scrolled-past{position:relative;top:auto;visibility:hidden}.c1-grid-section-header--collision-hidden{visibility:hidden}.c1-grid-section-header-inline{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);padding:var(--space-1) var(--space-2);padding-bottom:0;line-height:1.2}.c1-grid-cell{padding:0;border-left:3px solid var(--map-color, transparent);border-bottom:1px solid var(--color-border-light);display:flex;flex-direction:column;align-items:stretch;justify-content:center;box-sizing:border-box;min-height:2.5em}.c1-grid-cell--empty{border-left-color:transparent}.c1-grid-entry{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:.5em;width:100%;padding:.25em .5em;box-sizing:border-box}.c1-entry-content{display:flex;flex-direction:column;align-items:flex-start;gap:0;flex:1;min-width:0}.c1-entry__thumbnail{width:22px;height:22px;object-fit:contain;border-radius:3px;flex-shrink:0;opacity:.8;border:1px solid var(--map-color, #888)}.c1-section-label{font-size:.7em;font-weight:var(--font-semibold);color:var(--color-text-muted);line-height:1.1}.c1-entry-year{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-align:left;cursor:pointer;transition:color var(--transition-fast)}.c1-grid-entry:not(.c1-grid-entry--placeholder):hover .c1-entry-year{color:var(--color-primary);text-decoration:underline}.c1-entry-provider{font-size:.7em;color:var(--color-text-muted);text-align:left;display:block}.c1-placeholder-badge{font-size:.6em;color:var(--color-error);text-transform:uppercase;font-weight:var(--font-semibold);margin-left:.5em}.c1-load-btn{width:1.25em;height:1.25em;border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7em;color:var(--color-text-muted);flex-shrink:0;margin-left:.5em;transition:all var(--transition-fast)}.c1-load-btn:hover,.c1-grid-entry--loaded .c1-load-btn{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.c1-grid-entry--placeholder{opacity:.7}.c1-explicit-grid{display:grid;grid-template-columns:repeat(var(--num-columns, 3),1fr);grid-template-rows:auto repeat(var(--num-rows, 33),minmax(1.8em,auto));gap:0;width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md)}.c1-grid-annotation{background:var(--color-surface-elevated);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);border-bottom:1px solid var(--color-border-light);border-left:3px solid var(--color-border);display:flex;align-items:center;min-height:1.8em;box-sizing:border-box}.c1-grid-annotation em{font-style:italic}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:1;text-decoration:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn--primary{color:var(--color-text-inverse);background:var(--gradient-primary);border:none}.btn--primary:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--secondary{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border)}.btn--secondary:hover{border-color:var(--color-primary-200);background:var(--color-primary-50)}.btn--accent{color:var(--color-text-inverse);background:var(--gradient-accent);border:none}.btn--accent:hover{box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn--icon{width:32px;height:32px;padding:0;border-radius:var(--radius-md)}.btn--sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.download-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2)}.download-btn__format{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase}.download-btn-group{position:relative;display:inline-flex;align-items:stretch}.download-btn--primary{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.download-btn--dropdown{padding:var(--space-1);min-width:24px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid var(--color-border)}.download-btn--dropdown:hover{background:var(--color-primary-100)}.download-dropdown{position:absolute;top:100%;right:0;margin-top:var(--space-1);min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;overflow:hidden}.download-dropdown__item{display:block;width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text);text-decoration:none;text-align:left;transition:background var(--transition-fast)}.download-dropdown__item:hover{background:var(--color-primary-50);color:var(--color-primary)}.download-dropdown__divider{height:1px;background:var(--color-border);margin:var(--space-1) 0}.download-dropdown__heading{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.download-dropdown__item--osni{font-size:var(--text-xs);padding:var(--space-1) var(--space-3)}.overflow-menu{position:relative;display:inline-block}.overflow-menu__trigger{width:24px;height:24px;padding:0;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);transition:background var(--transition-fast),color var(--transition-fast)}.overflow-menu__trigger:hover{background:var(--color-surface-hover);color:var(--color-text)}.overflow-menu__dropdown{position:fixed;min-width:140px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:9999;overflow:hidden;display:none;will-change:transform,opacity;transform:translateZ(0)}.overflow-menu--open{z-index:10000}.overflow-menu--open .overflow-menu__dropdown{display:block;opacity:1}.overflow-menu__item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text);text-decoration:none;text-align:left;border:none;background:transparent;cursor:pointer;transition:background var(--transition-fast)}.overflow-menu__item:hover{background:var(--color-primary-50);color:var(--color-primary)}.overflow-menu__item--osni{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-1) var(--space-3)}.overflow-menu__item--osni:hover{color:var(--color-primary)}.overflow-menu__item svg{width:14px;height:14px;flex-shrink:0}#map{width:100%;height:100%;flex:1 1 auto;min-height:0;background:var(--color-gray-100)}.active-layers-toggle{position:absolute!important;top:var(--space-4)!important;right:var(--space-4)!important;left:auto!important;bottom:auto!important;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;box-shadow:var(--shadow-md);z-index:1100!important;transition:all var(--transition-fast)}.active-layers-toggle:hover{background:var(--color-surface);box-shadow:var(--shadow-lg)}.active-layers-toggle[aria-expanded=true]{background:var(--color-primary);color:var(--color-text-inverse)}.map-controls{position:absolute;bottom:var(--space-4);left:var(--space-4);z-index:1000;display:flex;flex-direction:column-reverse;align-items:flex-start;gap:var(--space-2)}.map-controls__settings{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.timeline-slider{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.timeline-slider.hidden,.timeline-slider__track{display:none}.timeline-range{-webkit-appearance:none;appearance:none;width:120px;height:8px;background:linear-gradient(to right,var(--color-primary-100),var(--color-primary-200));border-radius:4px;outline:none;margin:0;cursor:pointer;border:1px solid var(--color-border-light);flex-shrink:0}.timeline-range::-webkit-slider-runnable-track{height:8px;background:linear-gradient(to right,var(--color-primary-100),var(--color-primary-200));border-radius:4px}.timeline-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:var(--color-primary);border:3px solid white;box-shadow:0 2px 6px #00000040;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.timeline-range::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 3px 10px #00000059}.timeline-range::-moz-range-track{height:8px;background:linear-gradient(to right,var(--color-primary-100),var(--color-primary-200));border-radius:4px;border:none}.timeline-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-primary);border:3px solid white;box-shadow:0 2px 6px #00000040;cursor:pointer}.timeline-label{font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-text);width:100px;text-align:center;letter-spacing:.02em;flex-shrink:0;white-space:nowrap}.timeline-nav-group{display:flex;align-items:center;gap:2px}.timeline-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated);color:var(--color-text);cursor:pointer;transition:all .15s ease;flex-shrink:0}.timeline-btn svg{width:14px;height:14px}.timeline-btn:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff;transform:scale(1.05)}.timeline-btn:active:not(:disabled){transform:scale(.95)}.timeline-btn:disabled{opacity:.35;cursor:not-allowed}.timeline-btn--reset{background:var(--color-gray-100);border-color:var(--color-border-light);margin-left:var(--space-1)}.timeline-btn--reset:hover:not(:disabled){background:var(--color-warning);border-color:var(--color-warning);color:#fff}.timeline-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%) translateY(20px);background:var(--color-gray-900);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);box-shadow:var(--shadow-lg);opacity:0;transition:all var(--transition-base);z-index:2000;max-width:400px;text-align:center}.timeline-toast--visible{opacity:1;transform:translate(-50%) translateY(0)}.map-load-status{position:fixed;top:calc(var(--header-height) + 8px);left:50%;transform:translate(-50%);z-index:4200;background:#0f172aeb;color:#f8fafc;border:1px solid rgba(148,163,184,.45);border-radius:var(--radius-md);padding:8px 12px;font-size:var(--text-sm);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast);max-width:min(92vw,460px);text-align:center}.map-load-status--visible{opacity:1;transform:translate(-50%) translateY(0)}.map-load-toast{position:fixed;bottom:88px;left:50%;transform:translate(-50%) translateY(20px);z-index:4200;background:#0f172af5;color:#f8fafc;border:1px solid rgba(148,163,184,.45);border-radius:var(--radius-md);padding:8px 10px 8px 14px;font-size:var(--text-sm);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast);max-width:min(92vw,460px);text-align:center;display:inline-flex;align-items:center;gap:10px}.map-load-toast__message{display:inline-block}.map-load-toast__close{appearance:none;border:1px solid rgba(148,163,184,.6);background:#02061759;color:inherit;width:26px;height:26px;border-radius:6px;line-height:1;font-size:.9rem;font-weight:700;cursor:pointer;pointer-events:auto;flex:0 0 auto}.map-load-toast__close:hover{background:#94a3b838}.map-load-toast__close:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.map-load-toast--visible{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}[data-theme=light] .map-load-status,[data-theme=light] .map-load-toast{background:#fffffff7;color:var(--color-text);border-color:var(--color-border)}@media(max-width:768px){.map-load-status{top:calc(var(--header-height) + 6px);font-size:.78rem;padding:7px 10px}.map-load-toast{bottom:74px;font-size:.78rem;padding:7px 8px 7px 10px;gap:8px}.map-load-toast__close{width:24px;height:24px}}@keyframes layerHighlight{0%{background-color:var(--color-primary-100)}to{background-color:transparent}}.layer-changed{animation:layerHighlight 1s ease-out}.map-controls-toggle{display:inline-flex;align-items:center;justify-content:center;gap:2px;width:auto;padding:var(--space-2);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--transition-fast)}.map-controls-toggle:hover{background:var(--color-surface);box-shadow:var(--shadow-lg)}.map-controls-toggle[aria-expanded=true]{display:none}.map-control-panel{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-4);box-shadow:var(--shadow-lg);width:200px}.map-control-panel--collapsed{display:none}.map-control-panel__header{display:flex;align-items:center;gap:2px;margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.map-control-panel__close{display:inline-flex;align-items:center;justify-content:center;gap:2px;padding:var(--space-1);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast)}.map-control-panel__close:hover{background:var(--color-primary-50);border-color:var(--color-primary)}.map-control-panel__footer{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.feature-info{position:absolute;top:var(--space-4);right:var(--space-4);width:320px;max-height:450px;overflow-y:auto;background:linear-gradient(135deg,#fffffffa,#f8fafcfa);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.8);border-radius:16px;padding:0;box-shadow:0 4px 24px #00000014,0 1px 3px #0000000a,inset 0 1px #fff9;z-index:1100}.feature-info__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:linear-gradient(135deg,var(--color-primary-50) 0%,transparent 100%);border-bottom:1px solid rgba(0,0,0,.06)}.feature-info__title{font-size:10px;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:1.2px;margin:0}.feature-info__close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);background:#0000000a;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.feature-info__close:hover{color:var(--color-text);background:#0000001a;transform:scale(1.05)}.feature-info__content{padding:var(--space-4)}.feature-info__pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3);margin:0 var(--space-4) var(--space-3);background:var(--color-gray-50);border-radius:12px}.feature-info__nav-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.feature-info__nav-btn:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px rgba(var(--color-primary-rgb),.3)}.feature-info__nav-btn:disabled{opacity:.3;cursor:not-allowed}.feature-info__counter{font-size:11px;color:var(--color-text-muted);font-weight:600;background:#fff;padding:4px 12px;border-radius:20px;box-shadow:0 1px 2px #0000000d}.feature-info__section{padding:var(--space-4);border-bottom:1px solid var(--color-border-light)}.feature-info__section:last-child{border-bottom:none}.feature-info__header-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.feature-info__color{width:4px;height:100%;min-height:24px;border-radius:2px;flex-shrink:0}.feature-info__layer-name{font-size:12px;font-weight:600;color:var(--color-text-muted);margin:0;text-transform:uppercase;letter-spacing:.5px}.feature-info__primary-name{font-size:20px;font-weight:700;color:var(--color-text);line-height:1.3;margin-bottom:var(--space-3);text-align:left}.feature-info__primary-name-link{display:inline;padding:0;border:0;background:transparent;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.feature-info__metrics{background:linear-gradient(135deg,var(--color-primary-50) 0%,rgba(var(--color-primary-rgb),.05) 100%);margin:0 calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-2)}.feature-info__metric{display:flex;flex-direction:column;gap:2px;padding:var(--space-2);background:#fff9;border-radius:10px;transition:all .2s ease;grid-column:span 2}.feature-info__metric--top{grid-column:span 3}.feature-info__metric-label{color:var(--color-text-muted);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.feature-info__metric-value{font-size:15px;font-weight:600;color:var(--color-text);line-height:1.2}.feature-info__metric .metric-mi{font-size:11px;color:var(--color-text-muted);font-weight:400}.feature-info__metric--clickable{cursor:pointer}.feature-info__metric--clickable:hover{background:#ffffffe6;transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.feature-info__metric--clickable:hover .feature-info__metric-value{color:var(--color-primary)}.feature-info__metric-value--underline{text-decoration:none;border-bottom:1px dashed var(--color-text-muted)}.feature-info__details{margin-top:var(--space-3)}.feature-info__summary{font-size:12px;font-weight:600;color:var(--color-text-muted);cursor:pointer;padding:var(--space-2) var(--space-3);background:var(--color-gray-50);border-radius:8px;transition:all .2s ease;list-style:none;display:flex;align-items:center;gap:var(--space-2)}.feature-info__summary::-webkit-details-marker{display:none}.feature-info__summary:before{content:"\25b8";font-size:10px;transition:transform .2s ease}.feature-info__details[open] .feature-info__summary:before{transform:rotate(90deg)}.feature-info__summary:before{content:"\25b8"}.feature-info__summary:hover{background:var(--color-gray-100);color:var(--color-text)}.feature-info__properties{margin-top:var(--space-2);padding:var(--space-2);background:var(--color-gray-50);border-radius:8px}.feature-info__property{display:flex;justify-content:space-between;padding:var(--space-2) var(--space-1);font-size:12px;border-bottom:1px solid rgba(0,0,0,.04)}.feature-info__property:last-child{border-bottom:none}.feature-info__key{color:var(--color-text-muted);font-weight:500;flex-shrink:0}.feature-info__value{color:var(--color-text);text-align:right;max-width:55%;word-break:break-word;font-weight:500}html:not([data-theme]) .feature-info__summary,[data-theme=light] .feature-info__summary{background:#eef3f8;color:#334155}html:not([data-theme]) .feature-info__summary:hover,[data-theme=light] .feature-info__summary:hover{background:#e2e8f0;color:#1f2937}html:not([data-theme]) .feature-info__properties,[data-theme=light] .feature-info__properties{background:#f8fafc;border:1px solid #e2e8f0}html:not([data-theme]) .feature-info__property,[data-theme=light] .feature-info__property{border-bottom:1px solid #e2e8f0}html:not([data-theme]) .feature-info__key,[data-theme=light] .feature-info__key{color:#475569;font-weight:600}html:not([data-theme]) .feature-info__value,[data-theme=light] .feature-info__value{color:#0f172a}.feature-info__expandable{cursor:pointer;color:var(--color-primary);transition:all .2s ease}.feature-info__expandable:hover{color:var(--color-primary-700)}.feature-info__expandable--expanded{text-decoration:none}.feature-info__raw-data{margin-top:var(--space-3)}.feature-info__raw-data summary{cursor:pointer;color:var(--color-text-muted);padding:var(--space-2);font-size:12px;font-weight:500;background:var(--color-gray-50);border-radius:8px}.feature-info__raw-data summary:hover{color:var(--color-text);background:var(--color-gray-100)}.feature-info__raw-list{padding-top:var(--space-2)}.feature-info__raw-list .feature-info__property{font-size:11px;padding:var(--space-1) 0}.active-layers{position:absolute;top:calc(var(--space-4) + 44px);right:var(--space-4);width:280px;max-height:350px;overflow:hidden;background:linear-gradient(135deg,#fffffffa,#f8fafcfa);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.8);border-radius:16px;padding:0;box-shadow:0 4px 24px #00000014,0 1px 3px #0000000a,inset 0 1px #fff9;z-index:1050}.active-layers__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:linear-gradient(135deg,var(--color-primary-50) 0%,transparent 100%);border-bottom:1px solid rgba(0,0,0,.06)}.active-layers__title{font-size:10px;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:1.2px;margin:0}.active-layers__close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);background:#0000000a;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.active-layers__close:hover{color:var(--color-text);background:#0000001a;transform:scale(1.05)}.active-layers__list{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);max-height:280px;overflow-y:auto}.active-layer-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.active-layer-item:hover{border-color:var(--color-primary-200);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.active-layer-item__color{width:4px;height:28px;border-radius:var(--radius-sm);flex-shrink:0}.active-layer-item__info{flex:1;min-width:0}.active-layer-item__name{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text);line-height:1.3}.active-layer-item__meta{font-size:10px;color:var(--color-text-muted);margin-top:2px}.active-layer-item__actions{display:flex;gap:2px}.active-layer-item__btn{width:22px;height:22px;padding:0;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:6px;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.active-layer-item__btn:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-50);transform:translateY(-1px);box-shadow:0 2px 6px rgba(var(--color-primary-rgb),.2)}.active-layer-item__btn svg{width:12px;height:12px}.active-layer-item--partial{border-left:3px solid var(--color-accent);background:linear-gradient(135deg,var(--color-accent-glow) 0%,var(--color-gray-50) 100%)}.active-layer-item--partial:hover{background:linear-gradient(135deg,var(--color-accent-glow) 0%,white 100%)}.active-layer-item__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.active-layer-item__partial-label{font-size:10px;color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.active-layer-item__btn.expand-btn{color:var(--color-accent);border-color:var(--color-accent);background:#fff}.active-layer-item__btn.expand-btn:hover{background:var(--color-accent);color:#fff;box-shadow:0 2px 6px rgba(var(--color-accent-rgb),.3)}.active-layer-item--hidden{opacity:.5}.active-layer-item--hidden .active-layer-item__color{opacity:.4}.active-layer-item__partial-badge{display:inline-block;font-size:10px;font-weight:600;color:var(--color-accent);background:var(--color-accent-glow);padding:2px 6px;border-radius:10px;margin-left:var(--space-2)}.active-layer-item__feature-list{margin-top:6px;display:flex;flex-direction:column;gap:6px}.active-layer-item__feature{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-left:8px;padding:8px 10px;border-left:2px solid var(--color-border);border-radius:8px;background:#ffffffb8;box-shadow:none}.active-layer-item__feature-name{display:block;font-size:.82rem;font-weight:600;color:var(--color-text);line-height:1.3;min-width:0;white-space:normal;overflow-wrap:anywhere}.active-layer-item__feature-actions{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;flex-wrap:wrap}.active-layer-item__feature-btn{border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);font-size:.74rem;font-weight:600;line-height:1;padding:4px 8px;cursor:pointer}.active-layer-item__feature-btn:hover{border-color:var(--color-primary-light);color:var(--color-primary-dark)}[data-theme=dark] .active-layer-item__feature{background:#0f172aa6}.filter-section{margin-bottom:var(--space-3)}.filter-section__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-2) 0;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);background:transparent;border:none;cursor:pointer}.filter-section__toggle:hover{color:var(--color-text)}.filter-section__toggle svg{transition:transform var(--transition-fast)}.filter-section__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.filter-section__list{padding:var(--space-2) 0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.filter-section__list--collapsed{display:none}.skeleton{background:linear-gradient(90deg,var(--color-gray-100) 25%,var(--color-gray-200) 50%,var(--color-gray-100) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:768px){.catalogue-flat__toc{margin:4px;padding:6px 4px;overflow:hidden}.catalogue-flat__toc-table th,.catalogue-flat__toc-table td{padding:4px 2px;font-size:.7rem;vertical-align:top}.catalogue-flat__toc-table th:nth-child(1),.catalogue-flat__toc-table td:nth-child(1){width:79%}.catalogue-flat__toc-table th:nth-child(2),.catalogue-flat__toc-table td:nth-child(2){width:8%}.catalogue-flat__toc-table th:nth-child(3),.catalogue-flat__toc-table td:nth-child(3){width:13%}.catalogue-flat__toc-name,.catalogue-flat__toc-link,.catalogue-flat__toc-table td{overflow-wrap:normal;word-break:keep-all;hyphens:manual}}@media(max-width:768px){:root{--header-height: 56px}.app-header{padding:0 var(--space-4)}.app-header__brand{font-size:var(--text-base)}.app-header__nav{display:none}.mobile-menu-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:#ffffff26;border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;transition:background var(--transition-fast)}.mobile-menu-btn:hover,.mobile-menu-btn[aria-expanded=true]{background:#ffffff40}.mobile-menu-btn[aria-expanded=true] svg{transform:rotate(180deg)}.mobile-menu-btn svg{transition:transform var(--transition-fast)}.mobile-menu{display:block;position:absolute;top:100%;right:var(--space-3);min-width:160px;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:4000;overflow:hidden;animation:mobileMenuSlide .15s ease-out}@keyframes mobileMenuSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.mobile-menu.hidden{display:none!important}.mobile-menu__link{display:block;padding:var(--space-3) var(--space-4);color:var(--color-text);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-medium);transition:background var(--transition-fast)}.mobile-menu__link:hover{background:var(--color-primary-50);color:var(--color-primary)}.mobile-menu__link+.mobile-menu__link{border-top:1px solid var(--color-border)}#mobileMenuSupport{background:#2e7d32;color:#fff}#mobileMenuSupport:hover{background:#1b5e20;color:#fff}.mobile-support-btn{display:inline-flex;align-items:center;padding:4px 12px;background:#2e7d32;color:#fff;border:none;border-radius:4px;font-size:var(--text-xs);font-weight:var(--font-semibold);cursor:pointer;transition:background var(--transition-fast);white-space:nowrap}.mobile-support-btn:hover{background:#1b5e20}.app-main{display:block;position:relative;height:calc(100vh - var(--header-height));overflow:hidden}.split-toggle,.split-drag{display:none!important}.pane--info,.pane--map{position:absolute;inset:0;transition:transform var(--transition-smooth),opacity var(--transition-smooth);overflow:auto}.pane--info{z-index:2;transform:translate(0);opacity:1;pointer-events:auto}.pane--map{z-index:1;transform:translate(0);opacity:1;pointer-events:auto}.app-shell[data-split-state=info-full] .pane--info{transform:translate(0);opacity:1;pointer-events:auto;z-index:2}.app-shell[data-split-state=info-full] .pane--map{transform:translate(100%);opacity:0;pointer-events:none}.app-shell[data-split-state=map-full] .pane--info{transform:translate(-100%);opacity:0;pointer-events:none}.app-shell[data-split-state=map-full] .pane--map{transform:translate(0);opacity:1;pointer-events:auto;z-index:2}.app-shell[data-split-state=balanced] .pane--info,.app-shell[data-split-state=info-75] .pane--info,.app-shell[data-split-state=map-75] .pane--info{transform:translate(-100%);opacity:0;pointer-events:none}.app-shell[data-split-state=balanced] .pane--map,.app-shell[data-split-state=info-75] .pane--map,.app-shell[data-split-state=map-75] .pane--map{transform:translate(0);opacity:1;pointer-events:auto;z-index:2}.mobile-toggle{position:fixed!important;top:calc(var(--header-height) + var(--space-3));left:var(--space-3);display:flex!important;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:3000;cursor:pointer;color:var(--color-text)}.mobile-toggle:hover{background:var(--color-surface);box-shadow:var(--shadow-lg)}.leaflet-top.leaflet-left{top:60px!important}.map-controls{bottom:var(--space-4);max-width:calc(100vw - var(--space-8))}.map-control-panel{max-height:50vh;overflow-y:auto}.category-pills{flex-wrap:nowrap;overflow-x:auto;padding-bottom:var(--space-2);scrollbar-width:none}.category-pills::-webkit-scrollbar{display:none}.category-pill{flex-shrink:0}.catalogue-flat__toc{margin:var(--space-2);padding:6px 4px;overflow-x:hidden}.catalogue-flat__toc-table{table-layout:fixed}.catalogue-flat__toc-table td,.catalogue-flat__toc-table th{padding:4px 2px}.catalogue-flat__toc-table td:nth-child(1){width:79%}.catalogue-flat__toc-table td:nth-child(2){width:8%}.catalogue-flat__toc-table td:nth-child(3){width:13%}}@media print{.app-header,.split-toggle,.map-controls,.feature-info,.mobile-toggle,.pane--info{display:none!important}.app-shell{display:block}.app-main{display:block;height:100vh}.pane--map{position:absolute;inset:0;width:100%;height:100%}#map{width:100%;height:100%}.leaflet-control-container{display:none!important}}.map-card:focus-visible,.category-pill:focus-visible,.split-toggle__btn:focus-visible,.text-size-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.app-shell[data-text-scale="75"]{font-size:75%}.app-shell[data-text-scale="90"]{font-size:90%}.app-shell[data-text-scale="100"]{font-size:100%}.app-shell[data-text-scale="110"]{font-size:110%}.app-shell[data-text-scale="125"]{font-size:125%}.app-shell[data-text-scale="150"]{font-size:150%}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mt-4{margin-top:var(--space-4)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feature-info:not(.hidden),.active-layers:not(.hidden),.map-control-panel:not(.map-control-panel--collapsed){animation:slideUp var(--transition-smooth) ease-out}.map-card{animation:fadeIn var(--transition-base) ease-out;animation-fill-mode:both}.map-card:nth-child(1){animation-delay:0ms}.map-card:nth-child(2){animation-delay:30ms}.map-card:nth-child(3){animation-delay:60ms}.map-card:nth-child(4){animation-delay:90ms}.map-card:nth-child(5){animation-delay:.12s}.map-card:nth-child(n+6){animation-delay:.15s}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 4px var(--color-primary-100)}.btn:focus-visible,.map-card:focus-visible{outline:2px solid var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-glow),var(--shadow-md)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--color-gray-200) 25%,var(--color-gray-100) 50%,var(--color-gray-200) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}[data-theme=dark]{--color-surface: #0f1419;--color-surface-elevated: #1c2128;--color-surface-overlay: rgba(15, 20, 25, .95);--color-text: #ffffff;--color-text-muted: #8b949e;--color-text-inverse: #0f1419;--color-border: #3d444d;--color-border-light: #21262d;--color-gray-50: #1c2128;--color-gray-100: #21262d;--color-gray-200: #3d444d;--color-gray-300: #484f58;--color-primary-50: rgba(44, 82, 130, .3);--glass-bg: rgba(15, 20, 25, .9);--glass-border: 1px solid rgba(255, 255, 255, .15);--gradient-surface: linear-gradient(180deg, #1c2128 0%, #0f1419 100%)}[data-theme=light]{--color-surface: #ffffff;--color-surface-elevated: #f7fafc;--color-surface-overlay: rgba(255, 255, 255, .95);--color-text: #1a202c;--color-text-muted: #718096;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-light: #edf2f7;--glass-bg: rgba(255, 255, 255, .85);--glass-border: 1px solid rgba(255, 255, 255, .3);--gradient-surface: linear-gradient(180deg, #ffffff 0%, var(--color-gray-50) 100%)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:var(--space-3);background:transparent;border:none;border-radius:var(--radius-md);color:#fffc;cursor:pointer;transition:all var(--transition-fast)}.theme-toggle:hover{background:#ffffff26;color:#fff}.theme-toggle__icon--sun,.theme-toggle__icon--moon{display:none}[data-theme=light] .theme-toggle__icon--sun{display:block}html:not([data-theme]) .theme-toggle__icon--sun{display:block}[data-theme=dark] .theme-toggle__icon--moon{display:block}[data-theme=dark] .theme-toggle__icon--sun{display:none!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-surface-elevated);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full);border:2px solid var(--color-surface-elevated)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--color-gray-600)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}*{scrollbar-width:thin;scrollbar-color:var(--color-gray-300) var(--color-surface-elevated)}[title]:not(.search-clear){position:relative}.tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);padding:var(--space-1) var(--space-2);background:var(--color-gray-800);color:var(--color-text-inverse);font-size:var(--text-xs);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--transition-fast);pointer-events:none;z-index:var(--z-tooltip)}.tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--color-gray-800)}[data-tooltip]:hover .tooltip,[data-tooltip]:focus-visible .tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.app-header{background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 25%,var(--color-primary-light) 50%,var(--color-primary) 75%,var(--color-primary-dark) 100%);background-size:200% 200%}.app-header:hover{animation:gradientShift 8s ease-in-out infinite}.virtual-scroll-container{position:relative;overflow-y:auto;contain:strict}.virtual-scroll-spacer{position:absolute;top:0;left:0;right:0;pointer-events:none}.virtual-scroll-viewport{position:relative}.offline-indicator{position:fixed;bottom:var(--space-4);left:50%;transform:translate(-50%);padding:var(--space-2) var(--space-4);background:var(--color-warning);color:var(--color-text-inverse);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);z-index:var(--z-modal);opacity:0;visibility:hidden;transition:all var(--transition-base)}.offline-indicator.visible{opacity:1;visibility:visible}[data-theme=dark] .leaflet-control-zoom a,[data-theme=dark] .leaflet-bar a{background-color:var(--color-surface-elevated);color:var(--color-text);border-color:var(--color-border)}[data-theme=dark] .leaflet-control-zoom a:hover,[data-theme=dark] .leaflet-bar a:hover{background-color:var(--color-surface);color:var(--color-text)}[data-theme=dark] .leaflet-control-attribution{background:#0f1419cc;color:var(--color-text-muted)}[data-theme=dark] .leaflet-control-attribution a{color:var(--color-primary-200)}.app-header__brand,.app-header__brand span{color:#fff!important}.address-search{margin-bottom:var(--space-3)}.address-search__toggle{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-normal)}.address-search__toggle:hover{background:var(--color-primary-50);color:var(--color-primary);border-color:var(--color-primary-200)}.address-search__toggle[aria-expanded=true]{background:var(--color-primary-50);color:var(--color-primary);border-color:var(--color-primary);border-bottom-left-radius:0;border-bottom-right-radius:0}.address-search__panel{background:var(--color-surface);border:1px solid var(--color-primary);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);padding:var(--space-3);transition:all var(--transition-normal)}.address-search__panel--collapsed{display:none}.address-search__input-wrapper{display:flex;gap:var(--space-2)}.address-search__input{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--color-surface);color:var(--color-text)}.address-search__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-100)}.address-search__btn{padding:var(--space-2);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.address-search__btn:hover{background:var(--color-primary-light)}.address-search__btn:disabled{opacity:.5;cursor:not-allowed}.address-search__results{margin-top:var(--space-3);font-size:var(--text-sm)}.address-search__result-item{padding:var(--space-2);border-bottom:1px solid var(--color-border-light);color:var(--color-text)}.address-search__result-item:last-child{border-bottom:none}.address-search__result-item--loading{color:var(--color-text-muted);font-style:italic}.address-search__result-item--error{color:var(--color-error)}.address-search__feature-match{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);margin:var(--space-1) 0;background:var(--color-surface-elevated);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.address-search__feature-match:hover{background:var(--color-primary-50)}.address-search__feature-color{width:12px;height:12px;border-radius:2px;flex-shrink:0}[data-theme=dark] .address-search__toggle{background:var(--color-surface-elevated);border-color:var(--color-border)}[data-theme=dark] .address-search__toggle:hover{background:#1a365d4d}[data-theme=dark] .address-search__panel{background:var(--color-surface);border-color:var(--color-primary-200)}[data-theme=dark] .address-search__input{background:var(--color-gray-900);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .address-search__feature-match{background:var(--color-gray-800)}[data-theme=dark] .address-search__feature-match:hover{background:var(--color-gray-700)}.search-autocomplete{position:absolute;top:100%;left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;max-height:400px;overflow-y:auto}.search-autocomplete__item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--text-sm);color:var(--color-text);transition:background var(--transition-fast);border-bottom:1px solid var(--color-border-light)}.search-autocomplete__item:last-child{border-bottom:none}.search-autocomplete__item:hover{background:var(--color-primary-50)}.search-autocomplete__item--address{color:var(--color-primary);font-weight:var(--font-medium)}.search-autocomplete__item--address svg{flex-shrink:0}.search-autocomplete__query{color:var(--color-text);font-weight:400}.search-autocomplete__section-header{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-light)}.search-autocomplete__item--feature{color:var(--color-text)}.search-autocomplete__item--feature svg{flex-shrink:0;color:var(--color-accent)}.search-autocomplete__item--feature .search-autocomplete__meta{color:#6b7280;font-size:.72rem;font-weight:400}.search-autocomplete__map-name{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:400}.search-autocomplete__item--map svg{flex-shrink:0;color:var(--color-success)}.search-autocomplete__item--loaded{opacity:.7}.search-autocomplete__badge{margin-left:auto;padding:1px 6px;font-size:10px;font-weight:var(--font-semibold);color:var(--color-success);border:1px solid var(--color-success);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.3px}.search-autocomplete__place-type{display:inline-block;margin-left:var(--space-1);padding:0 4px;font-size:10px;color:var(--color-text-muted);background:var(--color-surface-elevated);border-radius:var(--radius-sm)}.search-autocomplete__item--loading,.search-autocomplete__item--no-results{pointer-events:none}.address-results{margin-bottom:var(--space-3);padding:var(--space-3);background:var(--color-surface-elevated);border:1px solid var(--color-primary-200);border-radius:var(--radius-md);font-size:var(--text-sm)}.address-results__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.address-results__close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);font-size:18px;line-height:1}.address-results__close:hover{color:var(--color-text)}.address-results__match{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface);border-radius:var(--radius-sm);margin-top:var(--space-1);cursor:pointer;transition:background var(--transition-fast)}.address-results__match:hover{background:var(--color-primary-50)}.address-results__color{width:12px;height:12px;border-radius:2px;flex-shrink:0}[data-theme=dark] .search-autocomplete{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .search-autocomplete__item:hover{background:var(--color-gray-800)}[data-theme=dark] .address-results{background:var(--color-surface)}[data-theme=dark] .address-results__match{background:var(--color-gray-800)}[data-theme=dark] .address-results__match:hover{background:var(--color-gray-700)}.map-list__subheading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.map-list__subheading-text{flex:1}.map-list__show-more-btn svg{transition:transform var(--transition-fast)}.map-list__show-more-btn svg.rotated{transform:rotate(180deg)}.map-card--hidden{opacity:.9}.badge--variants{background:var(--color-info);color:#fff;font-size:var(--text-xs);padding:.125rem .375rem;border-radius:var(--radius-sm);margin-left:var(--space-1)}.badge--default{background:var(--color-success);color:#fff;font-size:var(--text-xs);padding:.125rem .375rem;border-radius:var(--radius-sm);margin-left:var(--space-1)}.btn--variants-toggle{background:var(--color-primary-50)!important;border-color:var(--color-primary-200)!important;color:var(--color-primary)!important}.btn--variants-toggle:hover{background:var(--color-primary-100)!important;border-color:var(--color-primary)!important}.map-card__variants-toggle svg{transition:transform var(--transition-fast)}.map-card__variants-toggle svg.rotated{transform:rotate(180deg)}.map-card__versions{font-size:var(--text-xs);color:var(--color-primary);font-weight:var(--font-medium)}.map-card--variant{margin-left:var(--space-6);border-left:2px solid var(--color-primary-200)}.map-card--variant .map-card__name,.map-card--variant .map-card__meta{font-style:italic}.map-card--variant .map-card__color{opacity:.7}[data-theme=dark] .map-list__show-more-btn{background:#3182ce33;border-color:#3182ce66}[data-theme=dark] .map-list__show-more-btn:hover{background:#3182ce4d}[data-theme=dark] .map-card__variants-toggle{background:#3182ce26;border-color:#3182ce4d}[data-theme=dark] .map-card__variants-toggle:hover{background:#3182ce40}[data-theme=dark] .map-card--variant{border-left-color:#3182ce80}.class-card{margin-bottom:var(--space-3);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.class-card__header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);cursor:pointer;transition:background var(--transition-fast)}.class-card__header:hover{background:var(--color-primary-50)}.class-card__title{flex:1;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text)}.class-card__meta{font-size:var(--text-xs);color:var(--color-text-muted)}.class-card__toggle{flex-shrink:0}.class-card__members{border-top:1px solid var(--color-border-light);padding:var(--space-2);background:var(--color-surface-elevated)}.map-card--class-member{margin-left:var(--space-4);margin-bottom:var(--space-2);border-left:3px solid var(--color-border)}.map-card--class-member:last-child{margin-bottom:0}[data-theme=dark] .class-card{background:var(--color-gray-800);border-color:var(--color-border)}[data-theme=dark] .class-card__header{background:var(--color-surface)}[data-theme=dark] .class-card__header:hover{background:#3182ce26}[data-theme=dark] .class-card__members{background:var(--color-gray-800)}[data-theme=dark] .map-card--class-member{border-left-color:#3182ce66}.pane-tabs{display:flex;gap:0;background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:var(--z-sticky)}.catalogue-return-top{position:absolute;top:54px;left:50%;transform:translate(-50%);z-index:calc(var(--z-sticky) + 1);box-shadow:var(--shadow-md);pointer-events:auto}.pane-tab{flex:1;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.pane-tab:hover{color:var(--color-text);background:var(--color-primary-50)}.pane-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:var(--color-surface)}.pane-tab-content--hidden{display:none!important}.tables-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:linear-gradient(135deg,var(--color-surface-elevated) 0%,var(--color-surface) 100%);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000000a}.tables-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);white-space:nowrap;letter-spacing:.01em}.tables-select{flex:1;max-width:200px}.tables-select select,#tablesDataType{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast)}.tables-select select:hover,#tablesDataType:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px #3182ce1a}.tables-select select:focus,#tablesDataType:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3182ce26}.tables-search{margin-bottom:var(--space-4)}.tables-search .search-input__field,#tablesSearch{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);transition:all var(--transition-fast)}.tables-search .search-input__field:focus,#tablesSearch:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3182ce26,0 4px 12px #0000000d}.tables-search .search-input__field::placeholder,#tablesSearch::placeholder{color:var(--color-text-muted);opacity:.7}.tables-container{overflow-x:auto;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000000a}.tables-wrapper{overflow-x:auto;border-radius:var(--radius-lg)}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-light);white-space:nowrap}.data-table th{font-weight:var(--font-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);background:linear-gradient(135deg,var(--color-surface-elevated) 0%,var(--color-gray-50) 100%);position:sticky;top:0;z-index:1}.data-table th:first-child{border-top-left-radius:var(--radius-md)}.data-table th:last-child{border-top-right-radius:var(--radius-md)}.data-table th.sortable{cursor:pointer;user-select:none;transition:all var(--transition-fast)}.data-table th.sortable:hover{background:linear-gradient(135deg,var(--color-primary-50) 0%,var(--color-primary-100) 100%);color:var(--color-primary)}.data-table th .sort-icon{margin-left:var(--space-1);opacity:.4;transition:opacity var(--transition-fast)}.data-table th.sorted-asc .sort-icon,.data-table th.sorted-desc .sort-icon{opacity:1;color:var(--color-primary)}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:nth-child(2n){background:#00000004}.data-table tbody tr:hover{background:linear-gradient(90deg,#3182ce14,#3182ce0a)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius-md)}.data-table tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius-md)}.data-table td{color:var(--color-text)}.data-table td.numeric{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono, monospace)}.data-table td.truncate{max-width:200px;overflow:hidden;text-overflow:ellipsis}.tables-empty{text-align:center;padding:var(--space-12) var(--space-8);color:var(--color-text-muted);background:linear-gradient(135deg,var(--color-gray-50) 0%,var(--color-surface) 100%);border-radius:var(--radius-lg)}.tables-empty__icon{font-size:3rem;margin-bottom:var(--space-3);opacity:.4;filter:grayscale(50%)}.tables-empty__text{font-size:var(--text-sm);line-height:1.6}.tables-stats{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-muted);background:var(--color-gray-100);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);margin-bottom:var(--space-3)}[data-theme=dark] .tables-header{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-gray-900) 100%);border-color:var(--color-gray-700)}[data-theme=dark] .pane-tab:hover{background:#3182ce26}[data-theme=dark] .data-table th{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-gray-850) 100%);color:var(--color-gray-300)}[data-theme=dark] .data-table tbody tr:nth-child(2n){background:#ffffff05}[data-theme=dark] .data-table tbody tr:hover{background:linear-gradient(90deg,#3182ce1f,#3182ce0f)}[data-theme=dark] .tables-empty{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-gray-900) 100%)}[data-theme=dark] .tables-stats{background:var(--color-gray-800);color:var(--color-gray-400)}[data-theme=dark] .tables-container{border-color:var(--color-gray-700)}.tables-loading{text-align:center;padding:var(--space-12) var(--space-8);color:var(--color-text-muted)}.tables-loading__spinner{width:40px;height:40px;margin:0 auto var(--space-4);border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.tables-loading-bar{padding:var(--space-3) var(--space-4);background:linear-gradient(90deg,var(--color-primary-50) 0%,var(--color-primary-100) 25%,var(--color-primary-200) 50%,var(--color-primary-100) 75%,var(--color-primary-50) 100%);background-size:200% 100%;animation:loadingShift 1.5s ease-in-out infinite;color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--font-medium);text-align:center;border-radius:var(--radius-lg);margin-bottom:var(--space-4);box-shadow:0 2px 8px #3182ce26}@keyframes loadingShift{0%{background-position:200% 0}to{background-position:-200% 0}}[data-theme=dark] .tables-loading-bar{background:linear-gradient(90deg,#3182ce1a,#3182ce33,#3182ce1a);background-size:200% 100%;animation:loadingShift 1.5s ease-in-out infinite}.tables-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);background:var(--color-gray-50);border-radius:var(--radius-md);flex-wrap:wrap;gap:var(--space-2)}[data-theme=dark] .tables-controls{background:var(--color-gray-800)}.tables-pagesize{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.tables-pagesize select{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface)}.tables-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-4);background:linear-gradient(135deg,var(--color-gray-50) 0%,var(--color-surface) 100%);border-top:1px solid var(--color-border-light);border-radius:0 0 var(--radius-lg) var(--radius-lg)}[data-theme=dark] .tables-pagination{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-gray-900) 100%)}.tables-pagination__info{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);padding:var(--space-1) var(--space-3);background:var(--color-surface);border-radius:var(--radius-full);border:1px solid var(--color-border-light)}.tables-pagination__btn,.tables-pagination .btn{min-width:100px;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-md);transition:all var(--transition-fast)}.tables-pagination .btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.tables-pagination .btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn--xs{padding:2px var(--space-2);font-size:var(--text-xs)}.btn--primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark, #2563eb) 100%);color:#fff;border:1px solid var(--color-primary);box-shadow:0 2px 8px #3182ce40}.btn--primary:hover{background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-primary) 100%);box-shadow:0 4px 16px #3182ce59}.tables-loading-text{font-size:var(--text-sm);color:var(--color-primary);font-style:italic;margin-top:var(--space-2)}.th-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.th-label{flex:1}.th-filter-btn{display:inline-flex;align-items:center;justify-content:center;padding:2px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;opacity:.5;transition:all var(--transition-fast);border-radius:var(--radius-sm)}.th-filter-btn:hover{opacity:1;background:var(--color-primary-50);color:var(--color-primary)}th.filter-active .th-filter-btn{opacity:1;color:var(--color-primary);background:var(--color-primary-100)}.filter-dropdown{min-width:220px;max-width:300px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-modal);overflow:hidden}.filter-dropdown__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-light);font-size:var(--text-sm);font-weight:var(--font-medium)}.filter-dropdown__close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--color-text-muted);padding:0;line-height:1}.filter-dropdown__close:hover{color:var(--color-text)}.filter-dropdown__actions{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-light)}.filter-dropdown__list{max-height:250px;overflow-y:auto;padding:var(--space-2) 0}.filter-dropdown__item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);cursor:pointer;font-size:var(--text-sm);transition:background var(--transition-fast)}.filter-dropdown__item:hover{background:var(--color-primary-50)}.filter-dropdown__item input[type=checkbox]{margin:0}.filter-dropdown__more{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.filter-dropdown__footer{padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border-light);text-align:right}[data-theme=dark] .filter-dropdown{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .filter-dropdown__header{background:var(--color-gray-800)}[data-theme=dark] .filter-dropdown__item:hover{background:var(--color-gray-700)}[data-theme=dark] .th-filter-btn:hover{background:#3182ce33}[data-theme=dark] th.filter-active .th-filter-btn{background:#3182ce4d}.attrs-cell{max-width:300px;white-space:normal}.attrs-clickable{cursor:pointer;transition:background var(--transition-fast)}.attrs-clickable:hover{background:var(--color-primary-50)}.attrs-preview{font-size:var(--text-xs);color:var(--color-text-muted)}.attrs-full{font-size:var(--text-xs);line-height:1.6;padding:var(--space-2) 0;color:var(--color-text)}.attrs-full strong{color:var(--color-text-muted)}.tiny-value{color:var(--color-primary);cursor:pointer;font-style:italic;border-bottom:1px dashed var(--color-primary)}.tiny-value:hover{color:var(--color-primary-light)}[data-theme=dark] .attrs-clickable:hover{background:#3182ce26}[data-theme=dark] .tiny-value{color:var(--color-primary-200);border-color:var(--color-primary-200)}.map-card--class{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-3);overflow:hidden}.class-card__header{display:flex;align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border-light)}.class-card__title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);flex:1}.class-card__count{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:var(--space-2)}.class-card__members{padding:var(--space-2) 0}.class-member{display:flex;align-items:center;padding:var(--space-2) var(--space-4);gap:var(--space-2);transition:background var(--transition-fast);cursor:pointer}.class-member:hover{background:var(--color-surface-elevated)}.class-member--loaded{background:#38a1690d}.class-member--active{background:#38a1691a}.class-member__color{width:4px;height:28px;border-radius:var(--radius-sm);flex-shrink:0}.class-member__info{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.class-member__name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.25;max-width:100%}.class-member__date,.class-member__count{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.class-member--variant{padding-left:var(--space-8);background:var(--color-surface-elevated)}.class-member--variant .class-member__name{font-style:italic;font-size:var(--text-xs)}.class-member__desc{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.class-member__actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.class-member__actions .btn--xs{padding:var(--space-1)}.map-card--collapsed{display:none}.btn--variants-toggle svg.rotated{transform:rotate(180deg)}[data-theme=dark] .map-card--class{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .class-card__header{background:var(--color-surface-elevated)}[data-theme=dark] .class-member:hover{background:#ffffff0d}[data-theme=dark] .class-member--loaded{background:#38a16914}[data-theme=dark] .class-member--active{background:#38a16926}.btn--placeholder{visibility:hidden;pointer-events:none}.download-btn-group--placeholder{display:inline-block;width:60px;height:28px}.map-card__actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.explore-nav{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,var(--color-surface-elevated) 0%,var(--color-surface) 100%);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);margin-bottom:var(--space-4);box-shadow:0 2px 8px #0000000a}.explore-nav .btn--sm,.explore-nav .btn--icon{padding:var(--space-2);border-radius:var(--radius-md);transition:all var(--transition-fast)}.explore-nav .btn--sm:hover:not(:disabled),.explore-nav .btn--icon:hover:not(:disabled){background:var(--color-primary-50);color:var(--color-primary);transform:translateY(-1px)}.explore-nav .btn:disabled{opacity:.3;cursor:not-allowed}[data-theme=dark] .explore-nav{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-gray-900) 100%);border-color:var(--color-gray-700)}.explore-search{margin-bottom:var(--space-4)}.explore-search input,#exploreSearch{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);transition:all var(--transition-fast)}.explore-search input:focus,#exploreSearch:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3182ce26,0 4px 12px #0000000d}.explore-search input::placeholder,#exploreSearch::placeholder{color:var(--color-text-muted);opacity:.7}.explore-content{flex:1;overflow-y:auto;padding-right:var(--space-2)}.explore-hierarchy{display:flex;flex-direction:column;gap:var(--space-4)}.explore-section{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 8px #00000008}.explore-section__title{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);margin:0;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);background:linear-gradient(135deg,var(--color-surface-elevated) 0%,var(--color-gray-50) 100%);border-bottom:1px solid var(--color-border-light);letter-spacing:.02em}[data-theme=dark] .explore-section{border-color:var(--color-gray-700)}[data-theme=dark] .explore-section__title{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-gray-850) 100%);color:var(--color-gray-200)}.explore-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);border-bottom:1px solid var(--color-border-light)}.explore-item:last-child{border-bottom:none}.explore-item:hover{background:linear-gradient(90deg,#3182ce14,#3182ce05);padding-left:calc(var(--space-4) + 4px)}.explore-item__icon{font-size:1.25em;flex-shrink:0;opacity:.8}.explore-item__color{width:12px;height:12px;border-radius:var(--radius-full);flex-shrink:0;box-shadow:0 2px 4px #00000026}.explore-item__name{flex:1;font-weight:var(--font-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.explore-item__count{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-muted);background:var(--color-gray-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);min-width:24px;text-align:center}[data-theme=dark] .explore-item__count{background:var(--color-gray-700);color:var(--color-gray-300)}.explore-item--more{color:var(--color-primary);font-weight:var(--font-medium);font-style:italic;justify-content:center;padding:var(--space-2) var(--space-4);background:var(--color-primary-50)}.explore-item--more:hover{background:var(--color-primary-100);padding-left:var(--space-4)}.explore-item--category:hover .explore-item__icon,.explore-item--class:hover .explore-item__icon{transform:scale(1.1)}.explore-item--map:hover .explore-item__color{transform:scale(1.2);box-shadow:0 3px 8px #00000040}.explore-item--book:hover .explore-item__icon{transform:scale(1.1)}.explore-group{border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 8px #00000008;margin-bottom:var(--space-3)}.explore-group__header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:linear-gradient(135deg,var(--color-surface-elevated) 0%,var(--color-gray-50) 100%);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast);border-bottom:1px solid var(--color-border-light)}.explore-group__header:hover{background:linear-gradient(135deg,var(--color-primary-50) 0%,var(--color-primary-100) 100%);color:var(--color-primary)}.explore-group__icon{font-size:1.2em;transition:transform var(--transition-fast)}.explore-group__header:hover .explore-group__icon{transform:scale(1.1)}.explore-group__count{margin-left:auto;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-muted);background:var(--color-gray-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}[data-theme=dark] .explore-group{border-color:var(--color-gray-700)}[data-theme=dark] .explore-group__header{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-gray-850) 100%)}[data-theme=dark] .explore-group__count{background:var(--color-gray-700);color:var(--color-gray-300)}.explore-group__content{padding:0}.explore-group__content--collapsed{display:none}.explore-entity{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text);text-decoration:none;transition:all var(--transition-fast);cursor:pointer;border-bottom:1px solid var(--color-border-light)}.explore-entity:last-child{border-bottom:none}.explore-entity:hover{background:linear-gradient(90deg,#3182ce14,#3182ce05);color:var(--color-primary);padding-left:calc(var(--space-4) + 4px)}.explore-entity__type{font-size:var(--text-xs);color:var(--color-primary);background:var(--color-primary-50);padding:2px var(--space-2);border-radius:var(--radius-sm);font-weight:var(--font-medium)}.explore-info{position:absolute;inset:0;background:var(--color-surface);z-index:10;display:flex;flex-direction:column;overflow:hidden;animation:slideInRight .2s ease-out}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.explore-info__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:linear-gradient(135deg,var(--color-surface-elevated) 0%,var(--color-surface) 100%);border-bottom:1px solid var(--color-border);flex-shrink:0}[data-theme=dark] .explore-info__header{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-gray-900) 100%)}.explore-info__title{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text);margin:0}.explore-info__content{flex:1;overflow-y:auto;padding:var(--space-4)}.explore-info__section{margin-bottom:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}.explore-info__section-title{font-size:var(--text-xs);font-weight:var(--font-bold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) var(--space-3);background:var(--color-gray-50);border-bottom:1px solid var(--color-border-light);margin:0}[data-theme=dark] .explore-info__section-title{background:var(--color-gray-800)}.explore-info__field{display:flex;gap:var(--space-3);padding:var(--space-3);font-size:var(--text-sm);border-bottom:1px solid var(--color-border-light)}.explore-info__field:last-child{border-bottom:none}.explore-info__label{color:var(--color-text-muted);min-width:100px;flex-shrink:0;font-weight:var(--font-medium)}.explore-info__value{color:var(--color-text);word-break:break-word}.explore-info__link{color:var(--color-primary);text-decoration:none;cursor:pointer;font-weight:var(--font-medium);transition:all var(--transition-fast)}.explore-info__link:hover{text-decoration:underline;color:var(--color-primary-light)}.explore-history-dropdown{position:absolute;top:100%;left:0;min-width:240px;max-height:320px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000026;z-index:100;animation:fadeInDown .15s ease-out}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .explore-history-dropdown{background:var(--color-gray-800);border-color:var(--color-gray-600);box-shadow:0 8px 32px #0006}.explore-history-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text);text-align:left;border:none;background:none;cursor:pointer;transition:all var(--transition-fast);border-bottom:1px solid var(--color-border-light)}.explore-history-item:last-child{border-bottom:none}.explore-history-item:hover{background:linear-gradient(90deg,#3182ce1a,#3182ce0d);padding-left:calc(var(--space-4) + 4px)}.explore-history-item--current{font-weight:var(--font-semibold);background:var(--color-primary-50);color:var(--color-primary)}.explore-detail{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-2);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.explore-detail__header{margin-bottom:var(--space-2)}.explore-detail__back{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.explore-detail__back:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-50);transform:translate(-2px)}.explore-detail__back svg{flex-shrink:0}.explore-detail__hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-6) var(--space-4);border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--color-gray-50) 0%,var(--color-surface) 100%);border:1px solid var(--color-border-light)}.explore-detail__hero--category{background:linear-gradient(135deg,#fef3c7,#fef9e7);border-color:#fcd34d}.explore-detail__hero--class{background:linear-gradient(135deg,#dbeafe,#eff6ff);border-color:#93c5fd}.explore-detail__hero--map{background:linear-gradient(135deg,#d1fae5,#ecfdf5);border-color:#6ee7b7}.explore-detail__hero--book{background:linear-gradient(135deg,#fce7f3,#fdf2f8);border-color:#f9a8d4}[data-theme=dark] .explore-detail__hero{background:linear-gradient(135deg,var(--color-gray-800) 0%,var(--color-gray-900) 100%);border-color:var(--color-gray-700)}[data-theme=dark] .explore-detail__hero--category{background:linear-gradient(135deg,#fbbf2426,#fbbf240d);border-color:#fbbf244d}[data-theme=dark] .explore-detail__hero--class{background:linear-gradient(135deg,#3b82f626,#3b82f60d);border-color:#3b82f64d}[data-theme=dark] .explore-detail__hero--map{background:linear-gradient(135deg,#10b98126,#10b9810d);border-color:#10b9814d}[data-theme=dark] .explore-detail__hero--book{background:linear-gradient(135deg,#ec489926,#ec48990d);border-color:#ec48994d}.explore-detail__icon{font-size:3rem;margin-bottom:var(--space-2);filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.explore-detail__color-large{width:48px;height:48px;border-radius:var(--radius-lg);margin-bottom:var(--space-3);box-shadow:0 4px 12px #0003}.explore-detail__title{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text);margin:0 0 var(--space-1) 0;line-height:1.3}.explore-detail__subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.explore-detail__actions{display:flex;justify-content:center;padding:var(--space-2) 0}.explore-detail__actions .btn--lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base);display:inline-flex;align-items:center;gap:var(--space-2)}.explore-detail__actions .btn--lg svg{flex-shrink:0}.explore-detail__card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 8px #0000000a}[data-theme=dark] .explore-detail__card{background:var(--color-gray-800);border-color:var(--color-gray-700)}.explore-detail__desc{padding:var(--space-4);margin:0;font-size:var(--text-sm);line-height:1.6;color:var(--color-text-muted)}.explore-detail__meta-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light)}.explore-detail__meta-row:last-child{border-bottom:none}.explore-detail__label{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.explore-detail__value{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.explore-detail__value code{font-family:var(--font-mono, monospace);font-size:var(--text-xs);padding:2px 6px;background:var(--color-gray-100);border-radius:var(--radius-sm)}[data-theme=dark] .explore-detail__value code{background:var(--color-gray-700)}.explore-detail__link{color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast)}.explore-detail__link:hover{text-decoration:underline}.explore-detail__section{display:flex;flex-direction:column;gap:var(--space-3)}.explore-detail__section-title{font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0;padding:0 var(--space-1)}.explore-detail__grid{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden}[data-theme=dark] .explore-detail__grid{background:var(--color-gray-800);border-color:var(--color-gray-700)}.explore-detail__item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;transition:all var(--transition-fast);border-bottom:1px solid var(--color-border-light)}.explore-detail__item:last-child{border-bottom:none}.explore-detail__item:hover{background:linear-gradient(90deg,#3182ce1a,#3182ce08);padding-left:calc(var(--space-4) + 4px)}.explore-detail__color{width:14px;height:14px;border-radius:var(--radius-sm);flex-shrink:0;box-shadow:0 2px 4px #00000026;transition:transform var(--transition-fast)}.explore-detail__item:hover .explore-detail__color{transform:scale(1.15)}.explore-detail__item-name{flex:1;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.explore-detail__item-date{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-gray-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);white-space:nowrap}[data-theme=dark] .explore-detail__item-date{background:var(--color-gray-700)}.explore-detail__tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.explore-detail__tag{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-primary);background:var(--color-primary-50);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-primary-200)}[data-theme=dark] .explore-detail__tag{background:#3182ce26;border-color:#3182ce4d}#mobileToggle,.mobile-toggle{display:none}.c1-card>.class-card__timeline,.c1-card__row{width:100%;box-sizing:border-box}.timeline-labels--proportional{position:relative;height:20px;margin-top:var(--space-1)}.timeline-labels--proportional span{position:absolute;transform:translate(-50%);font-size:10px;white-space:nowrap}.timeline-labels--proportional span:not(:first-child):not(:last-child):not(.active){opacity:.4}.timeline-labels--proportional span.active{opacity:1;font-weight:var(--font-semibold);color:var(--color-primary)}.class-member__placeholder-badge{font-size:9px!important;padding:1px 4px!important;letter-spacing:.3px}:root:not([data-theme=dark]) .class-card__title,:root:not([data-theme=dark]) .map-card--class .class-card__header .class-card__title{color:var(--color-text)}:root:not([data-theme=dark]) .c1-card__header .class-card__title{color:#fff}.category-section{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.category-section>.category-heading,.category-section>h2,.category-section>h3{grid-column:1 / -1}.category-section>.map-card--class,.category-section>.conjoined-class-group,.category-section>.c1-card{grid-column:1 / -1}.category-more-maps{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.category-more-maps--collapsed{max-height:0;overflow:hidden;opacity:0;transition:max-height .3s ease-out,opacity .2s ease-out}.category-more-maps--expanded{max-height:2000px;opacity:1;transition:max-height .4s ease-in,opacity .3s ease-in}.category-more-toggle{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:linear-gradient(to bottom,transparent,var(--color-surface-elevated) 50%);border:none;border-top:1px dashed var(--color-border-light);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.category-more-toggle:hover{background:var(--color-primary-50)}.category-more-toggle svg{transition:transform .2s ease}.category-more-toggle--expanded svg{transform:rotate(180deg)}[data-theme=dark] .category-more-toggle{background:linear-gradient(to bottom,transparent,var(--color-gray-800) 50%)}[data-theme=dark] .category-more-toggle:hover{background:#3182ce33}.map-card__actions .btn--icon svg,.class-member__actions .btn--icon svg{width:var(--icon-size);height:var(--icon-size);min-width:var(--icon-size);min-height:var(--icon-size)}.map-card__actions .btn.btn--icon,.class-member__actions .btn.btn--icon{padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:14px}.overflow-menu__trigger:before{content:"...";font-size:16px;line-height:1;font-weight:700}.map-card__actions .load-btn,.class-member__actions .load-btn,.variant-item__actions .load-btn,.map-card__actions .variants-toggle,.class-member__actions .variants-toggle{font-size:var(--icon-size, 16px)!important;line-height:1}.category-section>.map-card:only-child{grid-column:1 / -1}.category-section>.map-card:has(.variants-panel),.category-section>.map-card:has(.variants-btn){grid-column:1 / -1}.c1-card__header{background:linear-gradient(135deg,#2563eb,#1e40af)!important;text-shadow:0 1px 2px rgba(0,0,0,.3)}.c1-card__header h3,.c1-card__header .c1-card__title{color:#fff!important;font-weight:var(--font-bold);text-shadow:0 1px 3px rgba(0,0,0,.5);margin:0;font-size:var(--text-lg)}.c1-card__header .class-card__count,.c1-card__header .c1-card__count{color:#fffffff2!important}.variants-panel{flex-basis:100%;order:99;width:calc(100% - var(--space-8));border-top:1px solid var(--color-border-light);background:var(--color-surface-elevated);padding:0;margin-top:var(--space-2);margin-left:var(--space-5);border-radius:var(--radius-lg)}.variants-panel__header{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border-light);background:var(--color-surface)}.variants-panel__item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-light);font-size:var(--text-sm);transition:background var(--transition-fast)}.variants-panel__item:last-child{border-bottom:none}.variants-panel__item:hover{background:var(--color-surface)}.variants-panel__item .variant-info{display:flex;flex-direction:column;gap:2px}.variants-panel__item .variant-label{font-weight:var(--font-medium);color:var(--color-text)}.variants-panel__item .variant-desc{font-size:var(--text-xs);color:var(--color-text-muted)}.variants-panel__item .variant-actions{display:flex;gap:var(--space-1)}.variants-panel__item .btn--variant-load{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;gap:var(--space-1)}.variants-panel__item .btn--variant-load:hover{background:var(--color-primary-light)}.variants-panel__item .btn--variant-load svg{width:14px;height:14px}[data-theme=dark] .variants-panel{background:var(--color-gray-800)}[data-theme=dark] .variants-panel__item:hover{background:var(--color-gray-700)}.shortcuts-modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;background:#00000080;backdrop-filter:blur(4px);padding:var(--space-4)}.shortcuts-modal.hidden{display:none}.shortcuts-modal__content{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:480px;width:100%;overflow:hidden}.shortcuts-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.shortcuts-modal__header h2{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold)}.shortcuts-modal__close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--color-text-muted);padding:0;line-height:1}.shortcuts-modal__close:hover{color:var(--color-text)}.shortcuts-modal__body{padding:var(--space-4)}.shortcuts-group{margin-bottom:var(--space-4)}.shortcuts-group:last-child{margin-bottom:0}.shortcuts-group h3{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 var(--space-2)}.shortcut{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;font-size:var(--text-sm)}.shortcut span{color:var(--color-text-muted)}kbd{display:inline-block;padding:2px 8px;font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:inset 0 -2px 0 var(--color-border)}[data-theme=dark] .shortcuts-modal__content{background:var(--color-gray-800)}[data-theme=dark] kbd{background:var(--color-gray-700);border-color:var(--color-gray-600)}.skeleton-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-3);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-card__header{height:20px;background:var(--color-surface-elevated);border-radius:var(--radius-sm);margin-bottom:var(--space-3);width:60%}.skeleton-card__body{height:80px;background:var(--color-surface-elevated);border-radius:var(--radius-sm)}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.date-mono{font-family:var(--font-mono);letter-spacing:-.02em}.map-card__actions{display:flex;flex-wrap:wrap;gap:4px;padding-right:var(--space-2);align-items:flex-start}.map-card__actions .download-btn-group--placeholder,.map-card__actions .btn--placeholder{display:none}.map-card__actions .btn--icon{width:26px;height:26px}@media(max-width:768px){.map-card__actions{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;padding-right:var(--space-1)}.map-card__actions .btn--icon{width:24px;height:24px}.map-card__actions{--icon-size: 20px}.map-card__actions .download-btn-group--placeholder,.map-card__actions .btn--placeholder{display:none}}@media(max-width:480px){.map-card__actions{gap:2px}.map-card__actions .btn--icon{width:22px;height:22px}.map-card__actions{--icon-size: 18px}}.map-list,.category-section{container-type:inline-size;container-name:map-container}@container map-container (max-width: 280px){.map-card{flex-direction:column;align-items:stretch}.map-card__color{width:100%;height:4px;margin-bottom:var(--space-1)}.map-card__info{width:100%}.map-card__name{-webkit-line-clamp:unset;line-clamp:unset}.map-card__actions{width:100%;justify-content:flex-start;margin-top:var(--space-2);padding-right:0}}@container map-container (min-width: 280px) and (max-width: 350px){.map-card{flex-direction:column;align-items:stretch}.map-card__color{position:absolute;left:0;top:0;bottom:0;width:4px;height:auto}.map-card{position:relative;padding-left:calc(var(--space-4) + 8px)}.map-card__info{width:100%}.map-card__name{-webkit-line-clamp:unset;line-clamp:unset}.map-card__actions{width:100%;justify-content:flex-start;margin-top:var(--space-2);padding-right:0}}.map-list__subheading{position:sticky;top:calc(-1 * var(--space-5));z-index:30;background:var(--color-surface);padding-top:var(--space-5);padding-bottom:var(--space-2);margin-left:calc(-1 * var(--space-5));margin-right:calc(-1 * var(--space-5));padding-left:var(--space-5);padding-right:var(--space-5);border-bottom:1px solid var(--color-border)}.c1-card__header{position:sticky;top:calc(-1 * var(--space-5));z-index:20;margin-left:calc(-1 * var(--space-5));margin-right:calc(-1 * var(--space-5));padding-left:var(--space-5);padding-right:var(--space-5);padding-top:var(--space-5);border-bottom:1px solid rgba(255,255,255,.2)}.c1-card__section-header{position:sticky;top:35px;z-index:15;background:var(--color-surface);margin-left:calc(-1 * var(--space-5));margin-right:calc(-1 * var(--space-5));padding-left:var(--space-5);padding-right:var(--space-5);padding-top:var(--space-3);border-bottom:1px solid var(--color-border-light)}.c1-card__section-members .class-member:only-child{flex:1;align-items:flex-start;position:relative}.c1-card__section-members .class-member:only-child .class-member__color{position:absolute;left:var(--space-3);top:0;bottom:0;height:auto}.c1-card__section-members .class-member:only-child .class-member__info,.c1-card__section-members .class-member:only-child .class-member__actions,.c1-card__section-members .class-member:only-child .thumb-zone{margin-left:calc(4px + var(--space-2))}.c1-card__section-members .class-member:only-child>.thumb-zone{align-self:auto;margin-top:0;margin-bottom:0;padding:0}.c1-card__section-members .class-member:only-child .class-member__info,.c1-card__section-members .class-member:only-child .thumb-zone{position:sticky;top:110px;z-index:5}.c1-card__section-members .class-member:only-child .class-member__actions{position:sticky;top:110px;z-index:5}#catalogueFlatView .c1-card__section-header,#catalogueFlatView .c1-card__section-members .class-member:only-child,#catalogueFlatView .c1-card__section-members .class-member:only-child .class-member__info,#catalogueFlatView .c1-card__section-members .class-member:only-child .thumb-zone,#catalogueFlatView .c1-card__section-members .class-member:only-child .class-member__actions{position:static!important;top:auto!important;z-index:auto!important}#catalogueFlatView .c1-card__section-header{margin-left:0!important;margin-right:0!important;padding-top:0!important;padding-left:var(--space-3)!important;padding-right:var(--space-3)!important}#catalogueFlatView .c1-card__header{position:sticky!important;top:54px!important;z-index:12!important;margin-left:0!important;margin-right:0!important;padding-left:var(--space-3)!important;padding-right:var(--space-3)!important;padding-top:var(--space-3)!important}#catalogueFlatView .c1-card__section-members .class-member:only-child{flex:initial!important}#catalogueFlatView .c1-card__section-members .class-member:only-child .class-member__info,#catalogueFlatView .c1-card__section-members .class-member:only-child .class-member__actions,#catalogueFlatView .c1-card__section-members .class-member:only-child .thumb-zone{margin-left:0!important}.tables-stats{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--space-2) 0;margin-bottom:var(--space-2)}.tables-wrapper{overflow-x:auto;overflow-y:visible;max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.tables-wrapper--scrollable{max-height:calc(100vh - 300px);overflow-y:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table--scrollable{min-width:max-content}.data-table thead{position:sticky;top:0;z-index:10}.data-table th{position:sticky;top:0;background:var(--color-surface-elevated);border-bottom:2px solid var(--color-border);z-index:10}.data-table__header{padding:var(--space-1) var(--space-2);text-align:left;font-weight:var(--font-semibold);color:var(--color-text);min-width:60px;max-width:180px;vertical-align:top}.data-table__header.sortable{cursor:pointer;user-select:none;transition:background var(--transition-fast)}.data-table__header.sortable:hover{background:var(--color-primary-50)}.data-table__cell{padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--color-border-light);color:var(--color-text);min-width:60px;max-width:180px;vertical-align:top}.data-table__text{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-break:break-word;line-height:1.3;font-size:var(--text-xs)}.data-table tbody tr:nth-child(2n){background:var(--color-gray-50)}.data-table tbody tr:hover{background:var(--color-primary-50)}.tables-column-controls{padding:var(--space-3);text-align:center;border-top:1px solid var(--color-border-light);background:var(--color-surface-elevated)}.tables-load-more-columns{min-width:200px}.tables-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3);border-top:1px solid var(--color-border-light)}.tables-pagination__info{font-size:var(--text-sm);color:var(--color-text-muted)}.tables-pagination__btn{min-width:70px}[data-theme=dark] .tables-wrapper{background:var(--color-gray-800);border-color:var(--color-gray-700)}[data-theme=dark] .data-table th{background:var(--color-gray-700);border-color:var(--color-gray-600)}[data-theme=dark] .data-table__header.sortable:hover{background:var(--color-gray-600)}[data-theme=dark] .data-table tbody tr:nth-child(2n){background:var(--color-gray-750)}[data-theme=dark] .data-table tbody tr:hover{background:#3182ce33}[data-theme=dark] .data-table__cell{border-color:var(--color-gray-700)}[data-theme=dark] .tables-column-controls{background:var(--color-gray-700);border-color:var(--color-gray-600)}[data-theme=dark] .tables-pagination{border-color:var(--color-gray-700)}.support-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#22c55e;color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast);white-space:nowrap}.support-btn:hover{background:#16a34a;transform:translateY(-1px)}.support-btn:active{transform:translateY(0)}.support-btn__icon{flex-shrink:0}@media(max-width:640px){.support-btn__text{display:none}.support-btn{padding:6px;border-radius:50%}}.support-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;animation:supportFadeIn .2s ease}.support-modal.hidden{display:none}.support-modal__backdrop{position:absolute;inset:0;background:#00000080;backdrop-filter:blur(4px)}.support-modal__content{position:relative;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl, 0 25px 50px -12px rgba(0, 0, 0, .25));padding:var(--space-6);max-width:520px;width:90%;max-height:85vh;overflow-y:auto;z-index:1}.support-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.support-modal__title{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text);margin:0}.support-modal__close{background:none;border:none;font-size:24px;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);line-height:1;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.support-modal__close:hover{color:var(--color-text);background:var(--color-surface-elevated)}.support-modal__author{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.support-modal__avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border-light)}.support-modal__author-label{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0;font-style:italic}.support-modal__message{margin-bottom:var(--space-4)}.support-modal__message p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6;margin:0 0 var(--space-2) 0}.support-modal__message p:first-child{font-weight:var(--font-semibold);color:var(--color-text);font-size:var(--text-base)}.support-modal__message p:last-child{margin-bottom:0}.support-modal__desc{color:var(--color-text-muted);font-size:var(--text-sm);margin:0 0 var(--space-4) 0;line-height:1.5}.support-modal__options{display:flex;flex-direction:column;gap:var(--space-3)}.support-modal__option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);text-decoration:none;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.support-modal__option:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.support-modal__option strong{display:block;font-size:var(--text-base);margin-bottom:2px}.support-modal__option span{font-size:var(--text-sm);opacity:.85}.support-modal__option--kofi{background:#ff5e5b;color:#fff}.support-modal__option--kofi:hover{background:#e54e4b}.support-modal__option--sub{background:#22c55e;color:#fff}.support-modal__option--sub:hover{background:#16a34a}.support-modal__option svg{flex-shrink:0}@keyframes supportFadeIn{0%{opacity:0}to{opacity:1}}[data-theme=dark] .support-modal__content{background:var(--color-gray-800);border:1px solid var(--color-gray-700)}.cs-modal-backdrop{position:fixed;inset:0;background:#00000080;z-index:10000;display:flex;align-items:center;justify-content:center;animation:csFadeIn .15s ease}@keyframes csFadeIn{0%{opacity:0}to{opacity:1}}.cs-modal{background:var(--color-surface, #fff);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:420px;max-width:95vw;max-height:85vh;overflow-y:auto;color:var(--color-text, #1a202c)}.cs-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--color-border, #e2e8f0)}.cs-modal__title{font-size:1.15rem;font-weight:700;margin:0}.cs-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-muted, #718096);padding:0 4px;line-height:1}.cs-close:hover{color:var(--color-text, #1a202c)}.cs-modal__body{padding:16px 20px}.cs-step{margin-bottom:14px}.cs-label{display:block;font-weight:600;font-size:.85rem;margin-bottom:6px;color:var(--color-text, #1a202c)}.cs-select{width:100%;padding:6px 10px;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;font-size:.85rem;background:var(--color-surface, #fff);color:var(--color-text, #1a202c)}.cs-hint{font-size:.8rem;color:var(--color-text-muted, #718096);margin-top:4px;font-style:italic}.cs-range-label{font-size:.8rem;color:var(--color-text-muted, #718096);margin-top:4px}.cs-radio-group{display:flex;gap:16px}.cs-radio{display:flex;align-items:center;gap:4px;font-size:.85rem;cursor:pointer}.cs-mode-panel{background:var(--color-bg-subtle, #f7fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:8px;padding:12px;margin-bottom:14px}.cs-color-row{display:flex;gap:16px;margin-bottom:8px}.cs-color-row label{display:flex;align-items:center;gap:6px;font-size:.82rem}.cs-color-row input[type=color]{width:32px;height:28px;border:1px solid var(--color-border, #e2e8f0);border-radius:4px;padding:1px;cursor:pointer}.cs-minmax-row{display:flex;gap:16px}.cs-minmax-row label{display:flex;align-items:center;gap:6px;font-size:.82rem}.cs-num-input{width:90px;padding:4px 6px;border:1px solid var(--color-border, #e2e8f0);border-radius:4px;font-size:.82rem;background:var(--color-surface, #fff);color:var(--color-text, #1a202c)}.cs-bin-table{width:100%;border-collapse:collapse;font-size:.82rem;margin-bottom:8px}.cs-bin-table th{text-align:left;font-weight:600;padding:4px 6px;border-bottom:1px solid var(--color-border, #e2e8f0);font-size:.78rem;color:var(--color-text-muted, #718096)}.cs-bin-table td{padding:3px 4px}.cs-bin-table input[type=color]{width:28px;height:24px;border:1px solid var(--color-border, #e2e8f0);border-radius:3px;padding:1px;cursor:pointer}.cs-bin-del{color:var(--color-text-muted, #718096);background:none;border:none;cursor:pointer;font-size:.9rem;padding:2px 4px}.cs-bin-del:hover{color:#e53e3e}.cs-presets{margin-top:8px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.cs-presets-label{font-size:.78rem;color:var(--color-text-muted, #718096)}.cs-btn{padding:6px 14px;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;font-size:.82rem;cursor:pointer;background:var(--color-surface, #fff);color:var(--color-text, #1a202c);transition:background .15s}.cs-btn:hover{background:var(--color-bg-subtle, #f7fafc)}.cs-btn--primary{background:var(--color-primary, #1a365d);color:#fff;border:none}.cs-btn--primary:hover{background:var(--color-primary-light, #2c5282)}.cs-btn--primary:disabled{opacity:.5;cursor:not-allowed}.cs-btn--danger{color:#e53e3e;border-color:#e53e3e}.cs-btn--danger:hover{background:#fff5f5}.cs-btn--sm{font-size:.78rem;padding:4px 10px}.cs-btn--xs{font-size:.72rem;padding:3px 8px}.cs-legend{margin-top:12px;padding-top:10px;border-top:1px solid var(--color-border, #e2e8f0)}.cs-legend canvas{display:block;width:100%;height:20px;border-radius:3px}.cs-legend-labels{display:flex;justify-content:space-between;font-size:.72rem;color:var(--color-text-muted, #718096);margin-top:4px}.cs-modal__footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px 16px;border-top:1px solid var(--color-border, #e2e8f0)}.cs-divider{border:0;border-top:1px solid var(--color-border, #e2e8f0);margin:12px 0}.cs-advanced{border:1px solid var(--color-border, #e2e8f0);border-radius:8px;padding:0;background:var(--color-bg-subtle, #f7fafc)}.cs-advanced__summary{cursor:pointer;font-weight:700;font-size:.85rem}.cs-advanced__editor{width:100%;min-height:180px;margin-top:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.76rem;line-height:1.35;padding:0;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;resize:vertical;background:var(--color-surface, #fff);color:var(--color-text, #1a202c)}.cs-advanced__actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.cs-advanced__meter{margin-left:auto;font-size:.74rem;color:var(--color-text-muted, #718096)}.cs-advanced__msg{margin-top:6px;font-size:.78rem;color:var(--color-text-muted, #718096)}.cs-advanced__msg--error{color:#c62828}.cs-advanced__msg--ok{color:#0a8a3d}[data-theme=dark] .cs-modal{background:var(--color-gray-800, #2d3748);border:1px solid var(--color-gray-700, #4a5568)}[data-theme=dark] .cs-mode-panel{background:var(--color-gray-900, #1a202c);border-color:var(--color-gray-700, #4a5568)}[data-theme=dark] .cs-btn--danger:hover{background:#e53e3e26}.hidden{display:none!important}.election-results-pane{display:none;background:var(--color-surface, #fff);border-top:2px solid var(--color-primary, #1a365d);overflow-y:auto;font-size:.88rem;color:var(--color-text, #1a202c)}.election-results-pane--open{display:flex;flex-direction:column;width:100%;height:calc(40vh - 6px);min-height:120px;animation:electionSlideUp .25s ease;overflow-y:auto}.election-split-drag{height:6px;background:var(--color-primary-100, #c3dafe);cursor:row-resize;position:relative;z-index:10;flex-shrink:0;transition:background .15s}.election-split-drag:hover,.election-split-dragging .election-split-drag{background:var(--color-primary, #1a365d)}.election-split-dragging{cursor:row-resize!important;user-select:none!important}[data-theme=dark] .election-split-drag{background:var(--color-gray-600, #718096)}[data-theme=dark] .election-split-drag:hover,.election-split-dragging [data-theme=dark] .election-split-drag{background:var(--color-primary-300, #63b3ed)}@keyframes electionSlideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.election-pane__header{display:flex;align-items:center;gap:8px;padding:5px 10px;border-bottom:1px solid var(--color-border, #e2e8f0);background:var(--color-primary-50, #ebf4ff);position:sticky;top:0;z-index:5;min-height:0;flex-shrink:0}.election-pane__title{margin:0;font-size:.85rem;font-weight:700;color:var(--color-primary, #1a365d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.election-pane__header-right{display:flex;align-items:center;gap:4px;margin-left:auto;flex-shrink:0}.election-pane__back{background:none;border:1px solid var(--color-border, #e2e8f0);font-size:1rem;cursor:pointer;color:var(--color-primary, #1a365d);padding:2px 8px;border-radius:4px;line-height:1;font-weight:700}.election-pane__back:hover{background:var(--color-primary-100, #c3dafe)}.election-pane__close{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--color-text-muted, #718096);padding:2px 6px;border-radius:4px;line-height:1}.election-pane__close:hover{background:var(--color-primary-100, #c3dafe);color:var(--color-primary, #1a365d)}.election-pane__content{padding:8px 12px;flex:1;display:flex;flex-direction:column;overflow-y:auto;min-height:0}.election-pane__content>.election-party-wrapper,.election-pane__content>.election-constituency-results,.election-pane__content>.election-entity-page,.election-pane__content>.election-no-data,.election-pane__content>.election-loading{flex:1 1 auto;min-height:0}.election-pane__content .election-constituency-results{display:flex;flex-direction:column;min-height:0}.election-summary__stats{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;font-size:.9em;color:#555}.election-summary__stats strong{font-weight:600;color:#2c3e50}.election-summary__table{width:100%;border-collapse:collapse;font-size:.88em;margin-bottom:16px}.election-summary__table th{background:#2c3e50;color:#fff;font-weight:600;padding:8px 10px;text-align:left;white-space:nowrap;position:sticky;top:0;z-index:2}.election-summary__table th:hover{background:#34495e}.election-summary__table td{padding:6px 10px;border-bottom:1px solid #e0e0e0;vertical-align:middle}.election-summary__table tbody tr:nth-child(2n) td{background:#fafafa}.election-summary__table tbody tr:hover td{background:#eef5ff}.election-num{text-align:right;font-variant-numeric:tabular-nums}.election-party-dot{display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:6px;vertical-align:middle}.election-party-label{color:var(--color-text-muted, #718096);font-size:.75rem}.election-entity-link{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:var(--color-primary, #1a365d);cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:2px}.election-entity-link:hover{color:var(--color-primary-dark, #153e75)}.election-entity-page{display:flex;flex-direction:column;gap:12px}.election-entity-page__hero{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--color-border, #d6d8dc);border-radius:10px;background:var(--color-surface, #ffffff)}.election-party-dot--hero{width:18px;height:18px;margin-top:3px;flex:0 0 auto}.election-entity-page__eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted, #718096)}.election-entity-page__title{margin:2px 0 4px;font-size:1.1rem;line-height:1.2;color:var(--color-text, #1a202c)}.election-entity-page__subtitle{margin:0;font-size:.84rem;color:var(--color-text-muted, #718096)}.election-entity-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.election-entity-metric{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--color-border, #d6d8dc);border-radius:10px;background:var(--color-surface, #ffffff)}.election-entity-metric__label{font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted, #718096)}.election-entity-metric strong{font-size:.96rem;color:var(--color-text, #1a202c)}[data-theme=dark] .election-entity-link{color:var(--color-primary-200, #c3dafe)}[data-theme=dark] .election-entity-link:hover{color:#fff}[data-theme=dark] .election-entity-page__hero,[data-theme=dark] .election-entity-metric{background:var(--color-gray-800, #2d3748);border-color:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-entity-page__title,[data-theme=dark] .election-entity-metric strong{color:var(--color-gray-100, #f7fafc)}.election-status-elected{color:#27ae60;font-weight:600;text-align:center}.election-status-excluded{color:#c0392b;font-weight:600;text-align:center}.election-hint{font-size:.78rem;color:var(--color-text-muted, #718096);font-style:italic;margin-top:12px}.election-loading,.election-no-data{text-align:center;padding:24px;color:var(--color-text-muted, #718096)}.election-view-tab{padding:3px 10px;font-size:.7rem;font-weight:600;border:1px solid var(--color-border, #e2e8f0);border-radius:12px;background:var(--color-surface, #fff);color:var(--color-text-muted, #718096);cursor:pointer;transition:all .15s;white-space:nowrap;line-height:1.3}.election-view-tab:hover{background:var(--color-primary-50, #ebf4ff);color:var(--color-text, #1a202c)}.election-view-tab--active{background:var(--color-primary, #1a365d);color:#fff;border-color:var(--color-primary, #1a365d)}.election-view-tab--active:hover{background:var(--color-primary-dark, #153e75)}.election-count-wrapper{overflow-x:auto;max-width:100%}.election-count-table{width:100%;border-collapse:collapse;font-size:.72rem;white-space:nowrap}.election-count-table th,.election-count-table td{padding:3px 6px;border-bottom:1px solid var(--color-border, #e2e8f0);text-align:right}.election-count-table th{background:#2c3e50;color:#fff;font-weight:700;position:sticky;top:0;z-index:1}.election-count-table td:first-child,.election-count-table th:first-child{text-align:left;position:sticky;left:0;background:var(--color-surface, #fff);z-index:2;min-width:120px}.election-count-table th:first-child{z-index:3;background:#2c3e50}.election-count-table tbody tr:nth-child(2n) td{background:#fafafa}.election-count-table tbody tr:hover td,.election-count-table tbody tr:hover td:first-child{background:#eef5ff}.election-count-table .count-elected{color:#38a169;font-weight:700}.election-count-table .count-excluded{color:#e53e3e;font-weight:600}.election-count-table .count-transfer{color:var(--color-text-muted, #718096);font-size:.65rem}[data-theme=dark] .election-view-tabs{background:var(--color-gray-900, #1a202c);border-color:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-view-tab{background:var(--color-gray-800, #2d3748);border-color:var(--color-gray-700, #4a5568);color:var(--color-gray-300, #e2e8f0)}[data-theme=dark] .election-view-tab:hover{background:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-count-table th:first-child,[data-theme=dark] .election-count-table th{background:var(--color-gray-900, #1a202c)}[data-theme=dark] .election-count-table tbody tr:hover td:first-child{background:var(--color-gray-700, #4a5568)}.election-seat-circle{background:transparent!important;border:none!important}.seat-dot{border-radius:50%;border:1px solid rgba(0,0,0,.6);box-shadow:0 0 0 1px #fff,0 .5px 2px #00000026;cursor:pointer}.election-tooltip{background:var(--color-surface, #fff)!important;border:1px solid var(--color-primary, #1a365d)!important;color:var(--color-text, #1a202c)!important;font-weight:600!important;font-size:.82rem!important;padding:4px 10px!important;border-radius:4px!important;box-shadow:0 2px 8px #00000026!important}.election-card{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:4px 0;border-radius:6px;cursor:pointer;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e2e8f0);transition:background .15s,border-color .15s}.election-card:hover{background:var(--color-primary-50, #ebf4ff);border-color:var(--color-primary-100, #c3dafe)}.election-card--by-election{padding:5px 12px;font-size:.78rem;font-style:italic;opacity:.8}.election-card--by-election:hover{opacity:1}.election-card__body-badge{background:var(--color-primary, #1a365d);color:#fff;font-size:.68rem;font-weight:700;padding:2px 6px;border-radius:3px;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}.election-card__info{display:flex;flex-direction:column;gap:1px}.election-card__date{font-weight:600;font-size:.82rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-variant-numeric:tabular-nums}.election-card__subtitle{font-size:.72rem;color:var(--color-text-muted, #718096)}[data-theme=dark] .election-results-pane{background:var(--color-gray-800, #2d3748);border-color:var(--color-gray-600, #718096)}[data-theme=dark] .election-pane__header{background:var(--color-gray-900, #1a202c);border-color:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-pane__title{color:var(--color-primary-100, #c3dafe)}[data-theme=dark] .election-card{background:var(--color-gray-800, #2d3748);border-color:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-card:hover{background:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-summary__stats{color:var(--color-gray-400, #a0aec0)}[data-theme=dark] .election-summary__stats strong{color:var(--color-gray-100, #f7fafc)}[data-theme=dark] .election-summary__table th{background:#1a202c}[data-theme=dark] .election-summary__table th:hover{background:#2d3748}[data-theme=dark] .election-summary__table td{border-color:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-summary__table tbody tr:nth-child(2n) td{background:var(--color-gray-800, #2d3748)}[data-theme=dark] .election-summary__table tbody tr:hover td{background:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-party-label{color:var(--color-gray-400, #a0aec0)}[data-theme=dark] .election-count-table td{border-color:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-count-table td:first-child{background:var(--color-gray-800, #2d3748)}[data-theme=dark] .election-count-table th,[data-theme=dark] .election-count-table th:first-child{background:#1a202c}[data-theme=dark] .election-count-table tbody tr:hover td,[data-theme=dark] .election-count-table tbody tr:hover td:first-child{background:var(--color-gray-700, #4a5568)}.election-seat-circle{background:none!important;border:none!important;box-shadow:none!important}.seat-dot{border-radius:50%;border:1px solid rgba(0,0,0,.6);box-shadow:0 0 0 1px #fff,0 .5px 2px #00000026;display:block}.election-btn-row{display:flex;gap:8px;padding:8px 0;flex-wrap:wrap}.cs-btn--accent{background:var(--color-primary-600, #3182ce);color:#fff;border-color:var(--color-primary-700, #2b6cb0)}.cs-btn--accent:hover{background:var(--color-primary-700, #2b6cb0)}.cs-btn--accent i{margin-right:4px}.election-animation-container{margin:0;padding:0;overflow:hidden;min-height:160px;max-width:100%;box-sizing:border-box}.ev-animation-top-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.ev-animation-controls{flex-shrink:0;cursor:pointer;font-size:14px;color:var(--color-text, #1a202c)}#pause-replay{display:inline-block;transform:scale(1.5) translate(3px);transform-origin:center center}.election-animation-container #animation{position:relative;min-height:120px;overflow:visible;clear:both}.election-animation-container #quota{display:block;clear:both;margin:0;font-size:13px;color:#555}.election-animation-container .candidateLabel{overflow:visible;white-space:nowrap;font-size:24.98px;font-weight:600;line-height:25px}.election-animation-container #stageNumbers{display:flex;flex-wrap:wrap;gap:4px;max-width:100%}.election-animation-container #count_matrix,.election-animation-container #transfers{overflow-x:auto;max-width:100%}.election-animation-container #menuBar{overflow:auto;padding:4px 0;margin-bottom:4px}.election-animation-container #controls{display:inline-flex;gap:6px;margin-right:12px}.election-animation-container #controls a{text-decoration:none;color:var(--color-gray-600, #718096);cursor:pointer;font-size:16px;padding:4px 6px;border-radius:4px;transition:background .15s}.election-animation-container #controls a:hover{background:var(--color-gray-100, #f7fafc);color:var(--color-gray-900, #1a202c)}[data-theme=dark] .election-animation-container{border-color:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-animation-container #controls a{color:var(--color-gray-400, #a0aec0)}[data-theme=dark] .election-animation-container #controls a:hover{background:var(--color-gray-700, #4a5568);color:#fff}.map-label--clickable{cursor:pointer;pointer-events:auto!important}.map-label--clickable div{transition:text-decoration .15s}.map-label--clickable:hover div{text-decoration:underline;text-underline-offset:2px}.map-label--hover div{color:#ff7a1a!important;text-decoration:underline;text-underline-offset:2px}.election-table-title{margin:0 0 8px;font-size:.98rem;font-weight:700;color:var(--color-text, #1a202c)}.election-party-wrapper,.election-count-wrapper{border:1px solid #c9cdd3;border-radius:8px;background:#f4f5f7;padding:0;overflow:auto;max-height:min(62vh,780px);position:relative}.election-pane__content .election-party-wrapper{flex:1 1 auto;min-height:0;height:100%;max-height:none}.election-count-wrapper--pane-sticky,.election-party-wrapper--pane-sticky{overflow-x:auto;overflow-y:visible;max-height:none}.election-party-table,.election-count-table{--results-sticky-col-1-width: 56px;--results-sticky-col-2-width: 24px;--results-sticky-col-3-width: 150px;--results-sticky-col-4-width: 120px;--results-col-compact-width: 54px;--results-col-int-width: 34px;--results-col-delta-width: 48px;--results-col-pct-width: 58px;--results-col-count-width: 40px;--results-col-votes-width: 68px;--results-header-row-1-height: 36px;--results-header-row-2-height: 32px;width:max-content;border-collapse:separate;border-spacing:0;font-size:.84rem;line-height:1.28;background:#f4f5f7;table-layout:auto;margin:0}.election-results-table--fixed{--results-track-rank-width: 56px;--results-track-dot-width: 28px;--results-track-name-width: 148px;--results-track-party-width: 118px;--results-track-constituency-width: 126px;--results-track-district-width: 122px;--results-track-dea-width: 120px;--results-track-outcome-width: 92px;--results-track-status-count-width: 72px;--results-track-int-width: 56px;--results-track-delta-small-width: 64px;--results-track-votes-width: 96px;--results-track-delta-votes-width: 118px;--results-track-pct-main-width: 86px;--results-track-pct-delta-main-width: 102px;--results-track-pct-small-width: 70px;--results-track-pct-delta-small-width: 84px;table-layout:fixed;width:auto;min-width:0}.election-results-table--fixed.election-results-table--local,.election-results-table--fixed.election-results-table--district{--results-track-votes-width: 98px;--results-track-delta-votes-width: 126px;--results-track-pct-main-width: 88px;--results-track-pct-delta-main-width: 110px;--results-track-pct-small-width: 72px;--results-track-pct-delta-small-width: 88px}.election-count-table--candidate-sticky3.election-results-table--local,.election-party-table--candidate-sticky3.election-results-table--district{--results-track-status-count-width: 62px;--results-track-votes-width: 88px;--results-track-delta-votes-width: 104px;--results-track-pct-main-width: 78px;--results-track-pct-delta-main-width: 94px;--results-track-pct-small-width: 60px;--results-track-pct-delta-small-width: 74px}.election-count-table--local-party-sticky4.election-results-table--local,.election-party-table--district-local-party-sticky4.election-results-table--district{--results-track-int-width: 42px;--results-track-delta-small-width: 50px;--results-track-votes-width: 84px;--results-track-delta-votes-width: 96px;--results-track-pct-main-width: 74px;--results-track-pct-delta-main-width: 84px;--results-track-pct-small-width: 56px;--results-track-pct-delta-small-width: 68px}.election-count-table--nonlocal-local-party-sticky3.election-results-table--nonlocal{--results-track-int-width: 42px;--results-track-delta-small-width: 50px;--results-track-votes-width: 86px;--results-track-delta-votes-width: 100px;--results-track-pct-main-width: 76px;--results-track-pct-delta-main-width: 86px;--results-track-pct-small-width: 56px;--results-track-pct-delta-small-width: 68px}.election-count-table,.election-party-table{min-width:max-content}.election-results-table--fixed.election-count-table,.election-results-table--fixed.election-party-table{min-width:0}.election-party-table th,.election-party-table td,.election-count-table th,.election-count-table td{border:1px solid #d6d8dc;padding:5px 6px;vertical-align:middle;box-sizing:border-box}.election-party-table th,.election-count-table th{background:#eceef1;color:#101820;font-weight:700;text-align:left;vertical-align:top;white-space:normal;word-break:keep-all;overflow-wrap:normal;hyphens:manual}.election-party-table--grouped thead tr:nth-child(1) th,.election-count-table--grouped thead tr:nth-child(1) th{background:#e2e8ef;padding-top:6px;padding-bottom:6px;box-sizing:border-box;position:sticky;top:0;z-index:40;box-shadow:0 1px #d6d8dc}.election-party-table--grouped thead tr:nth-child(2) th,.election-count-table--grouped thead tr:nth-child(2) th{background:#f3f6f9;padding-top:5px;padding-bottom:5px;box-sizing:border-box;position:sticky;top:var(--results-header-row-1-height);z-index:40;box-shadow:0 1px #d6d8dc}.election-party-table--grouped thead tr:nth-child(3) th,.election-count-table--grouped thead tr:nth-child(3) th{box-sizing:border-box;position:sticky;top:calc(var(--results-header-row-1-height) + var(--results-header-row-2-height));z-index:40;box-shadow:0 1px #d6d8dc}.election-party-table--grouped thead tr:nth-child(1),.election-count-table--grouped thead tr:nth-child(1){height:var(--results-header-row-1-height)}.election-party-table--grouped thead tr:nth-child(2),.election-count-table--grouped thead tr:nth-child(2),.election-party-table--grouped thead tr:nth-child(3),.election-count-table--grouped thead tr:nth-child(3){height:var(--results-header-row-2-height)}.election-party-table--grouped thead th[rowspan],.election-count-table--grouped thead th[rowspan]{vertical-align:middle}.election-party-table thead tr:first-child th,.election-count-table thead tr:first-child th{position:sticky;top:0;z-index:40;box-shadow:0 1px #d6d8dc}.election-th-controls{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.election-th-label{display:inline-block;flex:1 1 auto}.election-th-actions{display:inline-flex;align-items:flex-start;gap:0;margin-left:auto}.election-th-controls--compact{position:relative;display:block;min-height:16px;padding-right:18px;gap:0}.election-th-controls--compact .election-th-actions{position:absolute;top:0;right:0;margin-left:0}.election-th-controls--compact .election-th-label{display:block;flex:none;padding-right:0}.election-th-controls--compact .election-th-btn{width:16px;height:16px;font-size:.66rem;padding:1px}.election-th-btn{border:1px solid #b7bec8;background:#f8fafc;color:#2b3b4a;border-radius:4px;width:18px;height:18px;padding:2px;font-size:.72rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:1}.election-th-btn svg{width:10px;height:10px;fill:currentColor;display:block}.election-th-btn:hover{background:#e9edf3;opacity:1}.election-th-btn--active{border-color:#143c7a;background:#e8f0ff;color:#143c7a;opacity:1}.election-th-btn--open{border-color:#143c7a;box-shadow:0 0 0 2px #143c7a33}.election-filter-menu{position:fixed;z-index:5200;width:248px;background:#fff;border:1px solid #c9d0da;border-radius:8px;box-shadow:0 10px 28px #0f172a38;padding:0;display:flex;flex-direction:column;gap:6px}.election-filter-menu__action,.election-filter-menu__mini{border:1px solid #c9d0da;background:#f8fafc;color:#1f2937;border-radius:4px;font-size:.76rem;line-height:1.2;padding:5px 7px;text-align:left;cursor:pointer}.election-filter-menu__action:hover,.election-filter-menu__mini:hover{background:#edf2f7}.election-filter-menu__mini--primary{background:#143c7a;border-color:#143c7a;color:#fff}.election-filter-menu__mini--primary:hover{background:#1f4f97}.election-filter-menu__divider{border-top:1px solid #d5dbe4;margin:2px 0}.election-filter-menu__search{width:100%;border:1px solid #c9d0da;border-radius:4px;padding:6px 7px;font-size:.78rem}.election-filter-menu__row{display:flex;gap:6px}.election-filter-menu__row .election-filter-menu__mini{flex:1}.election-filter-menu__values{max-height:180px;overflow:auto;border:1px solid #d5dbe4;border-radius:4px;background:#fff}.election-filter-menu__value{display:flex;align-items:center;gap:6px;font-size:.75rem;padding:4px 6px}.election-filter-menu__value:hover{background:#f5f7fa}.election-party-table th.election-sortable{cursor:pointer}.election-party-table .election-num,.election-count-table .election-num{text-align:right;font-variant-numeric:tabular-nums}.election-party-table th.election-col-compact,.election-party-table td.election-col-compact,.election-count-table th.election-col-compact,.election-count-table td.election-col-compact{width:var(--results-col-compact-width);min-width:var(--results-col-compact-width);max-width:var(--results-col-compact-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-int,.election-party-table td.election-col-int,.election-count-table th.election-col-int,.election-count-table td.election-col-int{width:var(--results-col-int-width);min-width:var(--results-col-int-width);max-width:var(--results-col-int-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-delta,.election-party-table td.election-col-delta,.election-count-table th.election-col-delta,.election-count-table td.election-col-delta{width:var(--results-col-delta-width);min-width:var(--results-col-delta-width);max-width:var(--results-col-delta-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-pct,.election-party-table td.election-col-pct,.election-count-table th.election-col-pct,.election-count-table td.election-col-pct{width:var(--results-col-pct-width);min-width:var(--results-col-pct-width);max-width:var(--results-col-pct-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-count,.election-party-table td.election-col-count,.election-count-table th.election-col-count,.election-count-table td.election-col-count{width:var(--results-col-count-width);min-width:var(--results-col-count-width);max-width:var(--results-col-count-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-votes,.election-party-table td.election-col-votes,.election-count-table th.election-col-votes,.election-count-table td.election-col-votes{width:var(--results-col-votes-width);min-width:var(--results-col-votes-width);max-width:var(--results-col-votes-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-status-count,.election-party-table td.election-col-status-count,.election-count-table th.election-col-status-count,.election-count-table td.election-col-status-count{width:var(--results-track-status-count-width);min-width:var(--results-track-status-count-width);max-width:var(--results-track-status-count-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-delta-small,.election-party-table td.election-col-delta-small,.election-count-table th.election-col-delta-small,.election-count-table td.election-col-delta-small{width:var(--results-track-delta-small-width);min-width:var(--results-track-delta-small-width);max-width:var(--results-track-delta-small-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-delta-votes,.election-party-table td.election-col-delta-votes,.election-count-table th.election-col-delta-votes,.election-count-table td.election-col-delta-votes{width:var(--results-track-delta-votes-width);min-width:var(--results-track-delta-votes-width);max-width:var(--results-track-delta-votes-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-pct-main,.election-party-table td.election-col-pct-main,.election-count-table th.election-col-pct-main,.election-count-table td.election-col-pct-main{width:var(--results-track-pct-main-width);min-width:var(--results-track-pct-main-width);max-width:var(--results-track-pct-main-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-pct-delta-main,.election-party-table td.election-col-pct-delta-main,.election-count-table th.election-col-pct-delta-main,.election-count-table td.election-col-pct-delta-main{width:var(--results-track-pct-delta-main-width);min-width:var(--results-track-pct-delta-main-width);max-width:var(--results-track-pct-delta-main-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-pct-small,.election-party-table td.election-col-pct-small,.election-count-table th.election-col-pct-small,.election-count-table td.election-col-pct-small{width:var(--results-track-pct-small-width);min-width:var(--results-track-pct-small-width);max-width:var(--results-track-pct-small-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-party-table th.election-col-pct-delta-small,.election-party-table td.election-col-pct-delta-small,.election-count-table th.election-col-pct-delta-small,.election-count-table td.election-col-pct-delta-small{width:var(--results-track-pct-delta-small-width);min-width:var(--results-track-pct-delta-small-width);max-width:var(--results-track-pct-delta-small-width);white-space:nowrap;padding-left:4px;padding-right:4px}.election-results-table--fixed th.election-col-compact,.election-results-table--fixed td.election-col-compact,.election-results-table--fixed th.election-col-int,.election-results-table--fixed td.election-col-int,.election-results-table--fixed th.election-col-delta,.election-results-table--fixed td.election-col-delta,.election-results-table--fixed th.election-col-pct,.election-results-table--fixed td.election-col-pct,.election-results-table--fixed th.election-col-count,.election-results-table--fixed td.election-col-count,.election-results-table--fixed th.election-col-votes,.election-results-table--fixed td.election-col-votes,.election-results-table--fixed th.election-col-status-count,.election-results-table--fixed td.election-col-status-count,.election-results-table--fixed th.election-col-delta-small,.election-results-table--fixed td.election-col-delta-small,.election-results-table--fixed th.election-col-delta-votes,.election-results-table--fixed td.election-col-delta-votes,.election-results-table--fixed th.election-col-pct-main,.election-results-table--fixed td.election-col-pct-main,.election-results-table--fixed th.election-col-pct-delta-main,.election-results-table--fixed td.election-col-pct-delta-main,.election-results-table--fixed th.election-col-pct-small,.election-results-table--fixed td.election-col-pct-small,.election-results-table--fixed th.election-col-pct-delta-small,.election-results-table--fixed td.election-col-pct-delta-small{width:auto;min-width:0;max-width:none}.election-results-table--fixed col.election-col-track--rank{width:var(--results-track-rank-width)}.election-results-table--fixed col.election-col-track--dot{width:var(--results-track-dot-width)}.election-results-table--fixed col.election-col-track--name{width:var(--results-track-name-width)}.election-results-table--fixed col.election-col-track--party{width:var(--results-track-party-width)}.election-results-table--fixed col.election-col-track--constituency{width:var(--results-track-constituency-width)}.election-results-table--fixed col.election-col-track--district{width:var(--results-track-district-width)}.election-results-table--fixed col.election-col-track--dea{width:var(--results-track-dea-width)}.election-results-table--fixed col.election-col-track--outcome{width:var(--results-track-outcome-width)}.election-results-table--fixed col.election-col-track--status-count{width:var(--results-track-status-count-width)}.election-results-table--fixed col.election-col-track--int{width:var(--results-track-int-width)}.election-results-table--fixed col.election-col-track--delta-small{width:var(--results-track-delta-small-width)}.election-results-table--fixed col.election-col-track--votes{width:var(--results-track-votes-width)}.election-results-table--fixed col.election-col-track--delta-votes{width:var(--results-track-delta-votes-width)}.election-results-table--fixed col.election-col-track--pct-main{width:var(--results-track-pct-main-width)}.election-results-table--fixed col.election-col-track--pct-delta-main{width:var(--results-track-pct-delta-main-width)}.election-results-table--fixed col.election-col-track--pct-small{width:var(--results-track-pct-small-width)}.election-results-table--fixed col.election-col-track--pct-delta-small{width:var(--results-track-pct-delta-small-width)}.election-party-table th,.election-count-table th{text-align:left!important}.election-party-table th:first-child,.election-count-table th:first-child{background:#eceef1}.election-party-table tbody td:nth-child(1),.election-party-table tbody td:nth-child(2),.election-count-table tbody td:nth-child(1),.election-count-table tbody td:nth-child(2),.election-count-table tbody td:nth-child(3),.election-count-table tbody td:nth-child(4){position:sticky;z-index:35;background:#f4f5f7;box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-party-table tbody td:nth-child(1),.election-count-table tbody td:nth-child(1){left:0}.election-party-table tbody td:nth-child(2),.election-count-table tbody td:nth-child(2){left:var(--results-sticky-col-1-width)}.election-count-table tbody td:nth-child(3){left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-col-2-width))}.election-count-table tbody td:nth-child(4){left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-col-2-width) + var(--results-sticky-col-3-width))}.election-party-table--district-sticky3 tbody td:nth-child(3){position:sticky;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-col-2-width));z-index:35;background:#f4f5f7;box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-party-table thead tr:first-child th:nth-child(1),.election-count-table thead tr:first-child th:nth-child(1){position:sticky;left:0;z-index:45;min-width:var(--results-sticky-col-1-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-party-table thead tr:first-child th:nth-child(2),.election-count-table thead tr:first-child th:nth-child(2){position:sticky;left:var(--results-sticky-col-1-width);z-index:45;box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table thead tr:first-child th:nth-child(3){position:sticky;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-col-2-width));z-index:45;min-width:var(--results-sticky-col-3-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table thead tr:first-child th:nth-child(4){position:sticky;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-col-2-width) + var(--results-sticky-col-3-width));z-index:45;min-width:var(--results-sticky-col-4-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-party-table--district-sticky3 thead tr:first-child th:nth-child(2){min-width:calc(var(--results-sticky-col-2-width) + 120px)}.election-party-table .election-rank-col,.election-count-table .election-rank-col{width:var(--results-sticky-col-1-width);min-width:var(--results-sticky-col-1-width);text-align:center;font-weight:400}.election-count-table td:first-child,.election-count-table th:first-child{min-width:0}.election-colour-col{width:var(--results-sticky-col-2-width);min-width:var(--results-sticky-col-2-width);text-align:center;padding:0}.election-count-table td:nth-child(3),.election-count-table th:nth-child(3){width:var(--results-sticky-col-3-width);min-width:var(--results-sticky-col-3-width)}.election-count-table td:nth-child(4),.election-count-table th:nth-child(4){width:var(--results-sticky-col-4-width);min-width:var(--results-sticky-col-4-width)}.election-results-table--fixed.election-count-table td:nth-child(3),.election-results-table--fixed.election-count-table th:nth-child(3),.election-results-table--fixed.election-count-table td:nth-child(4),.election-results-table--fixed.election-count-table th:nth-child(4){width:auto;min-width:0}.election-party-table--candidate-sticky3,.election-count-table--candidate-sticky3{--results-sticky-name-width: var(--results-track-name-width);--results-sticky-party-width: var(--results-track-party-width)}.election-count-table--local-party-sticky4{--results-sticky-local-party-width: var(--results-track-party-width);--results-sticky-local-district-width: var(--results-track-district-width);--results-sticky-local-dea-width: var(--results-track-dea-width)}.election-count-table--nonlocal-local-party-sticky3{--results-sticky-nonlocal-party-width: var(--results-track-party-width);--results-sticky-nonlocal-constituency-width: var(--results-track-constituency-width)}.election-party-table--district-local-party-sticky4{--results-sticky-district-party-name-width: var(--results-track-party-width);--results-sticky-district-dea-width: var(--results-track-dea-width)}.election-party-table--candidate-sticky3 tbody td:nth-child(1),.election-party-table--candidate-sticky3 tbody td:nth-child(2),.election-party-table--candidate-sticky3 tbody td:nth-child(3),.election-count-table--candidate-sticky3 tbody td:nth-child(1),.election-count-table--candidate-sticky3 tbody td:nth-child(2),.election-count-table--candidate-sticky3 tbody td:nth-child(3){position:sticky;z-index:35;background:#f4f5f7;box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-party-table--candidate-sticky3 tbody td:nth-child(1),.election-count-table--candidate-sticky3 tbody td:nth-child(1){left:0}.election-party-table--candidate-sticky3 tbody td:nth-child(2),.election-count-table--candidate-sticky3 tbody td:nth-child(2){left:var(--results-sticky-col-1-width)}.election-party-table--candidate-sticky3 tbody td:nth-child(3),.election-count-table--candidate-sticky3 tbody td:nth-child(3){left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-name-width))}.election-count-table--candidate-sticky3 tbody td:nth-child(4){position:static;left:auto;z-index:auto;background:inherit;box-shadow:none}.election-party-table--candidate-sticky3 thead tr:first-child th:nth-child(1),.election-count-table--candidate-sticky3 thead tr:first-child th:nth-child(1){position:sticky;left:0;z-index:45;min-width:var(--results-sticky-col-1-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-party-table--candidate-sticky3 thead tr:first-child th:nth-child(2),.election-count-table--candidate-sticky3 thead tr:first-child th:nth-child(2){position:sticky;left:var(--results-sticky-col-1-width);z-index:45;min-width:var(--results-sticky-name-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-party-table--candidate-sticky3 thead tr:first-child th:nth-child(3),.election-count-table--candidate-sticky3 thead tr:first-child th:nth-child(3){position:sticky;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-name-width));z-index:45;min-width:var(--results-sticky-party-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--candidate-sticky3 thead tr:first-child th:nth-child(4){position:sticky;top:0;left:auto;z-index:40;box-shadow:0 1px #d6d8dc}.election-count-table--local-party-sticky4 tbody td:nth-child(1),.election-count-table--local-party-sticky4 tbody td:nth-child(2),.election-count-table--local-party-sticky4 tbody td:nth-child(3),.election-count-table--local-party-sticky4 tbody td:nth-child(4){position:sticky;z-index:35;background:#f4f5f7;box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--local-party-sticky4 tbody td:nth-child(1){left:0}.election-count-table--local-party-sticky4 tbody td:nth-child(2){left:var(--results-sticky-col-1-width)}.election-count-table--local-party-sticky4 tbody td:nth-child(3){left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-local-party-width))}.election-count-table--local-party-sticky4 tbody td:nth-child(4){left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-local-party-width) + var(--results-sticky-local-district-width))}.election-count-table--local-party-sticky4 thead tr:first-child th:nth-child(1){position:sticky;left:0;z-index:45;min-width:var(--results-sticky-col-1-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--local-party-sticky4 thead tr:first-child th:nth-child(2){position:sticky;left:var(--results-sticky-col-1-width);z-index:45;min-width:var(--results-sticky-local-party-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--local-party-sticky4 thead tr:first-child th:nth-child(3){position:sticky;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-local-party-width));z-index:45;min-width:calc(var(--results-sticky-local-district-width) + var(--results-sticky-local-dea-width));box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--local-party-sticky4 thead tr:first-child th:nth-child(4){position:sticky;top:0;left:auto;z-index:40;box-shadow:0 1px #d6d8dc}.election-count-table--local-party-sticky4 thead tr:nth-child(2) th:nth-child(1){position:sticky;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-local-party-width));z-index:45;min-width:var(--results-sticky-local-district-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--local-party-sticky4 thead tr:nth-child(2) th:nth-child(2){position:sticky;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-local-party-width) + var(--results-sticky-local-district-width));z-index:45;min-width:var(--results-sticky-local-dea-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--nonlocal-local-party-sticky3 tbody td:nth-child(1),.election-count-table--nonlocal-local-party-sticky3 tbody td:nth-child(2),.election-count-table--nonlocal-local-party-sticky3 tbody td:nth-child(3){position:sticky;z-index:35;background:#f4f5f7;box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--nonlocal-local-party-sticky3 tbody td:nth-child(1){left:0}.election-count-table--nonlocal-local-party-sticky3 tbody td:nth-child(2){left:var(--results-sticky-col-1-width)}.election-count-table--nonlocal-local-party-sticky3 tbody td:nth-child(3){left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-nonlocal-party-width))}.election-count-table--nonlocal-local-party-sticky3 thead tr:first-child th:nth-child(1){position:sticky;left:0;z-index:45;min-width:var(--results-sticky-col-1-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--nonlocal-local-party-sticky3 thead tr:first-child th:nth-child(2){position:sticky;left:var(--results-sticky-col-1-width);z-index:45;min-width:var(--results-sticky-nonlocal-party-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--nonlocal-local-party-sticky3 thead tr:first-child th:nth-child(3){position:sticky;top:0;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-nonlocal-party-width));z-index:45;min-width:var(--results-sticky-nonlocal-constituency-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-count-table--nonlocal-local-party-sticky3 thead tr:first-child th:nth-child(4){position:sticky;top:0;left:auto;z-index:40;min-width:0;box-shadow:0 1px #d6d8dc}.election-count-table--nonlocal-local-party-sticky3 tbody td:nth-child(4){position:static;left:auto;z-index:auto;background:inherit;box-shadow:none}.election-party-table--district-local-party-sticky4 tbody td:nth-child(4){position:sticky;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-col-2-width) + var(--results-sticky-district-party-name-width));z-index:35;background:#f4f5f7;box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-party-table--district-local-party-sticky4 thead tr:first-child th:nth-child(3){position:sticky;top:0;left:calc(var(--results-sticky-col-1-width) + var(--results-sticky-col-2-width) + var(--results-sticky-district-party-name-width));z-index:45;min-width:var(--results-sticky-district-dea-width);box-shadow:1px 0 #d6d8dc,0 1px #d6d8dc}.election-colour-col .election-party-dot{width:14px;height:24px;border-radius:2px;margin:0;vertical-align:middle}.election-cell-strong{font-weight:700}.election-cell-wrap{white-space:normal;word-break:normal;overflow-wrap:normal;hyphens:auto;max-width:15ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.election-cell-wrap--full{max-width:none;display:inline;-webkit-line-clamp:unset;-webkit-box-orient:initial;overflow:visible}.election-cell-wrap--district{max-width:none}.election-th-two-line{display:inline-flex;flex-direction:column;line-height:1.1;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-align:inherit}.election-th-two-line__top,.election-th-two-line__bottom{display:block;white-space:nowrap}.election-count-table td.election-col-name,.election-count-table td.election-col-party,.election-count-table td.election-col-status{vertical-align:middle;text-align:right}.election-count-table .election-cell-wrap--count-name,.election-count-table .election-cell-wrap--count-party{max-width:13ch;-webkit-line-clamp:2;text-align:right;margin-left:auto;padding-right:2px}.election-count-table .election-cell-wrap--count-status{max-width:14ch;-webkit-line-clamp:3}.catalogue-detail__leading-party{display:inline-flex;align-items:center;gap:6px}.catalogue-detail__leading-party-tab{width:4px;height:16px;border-radius:2px;flex:0 0 auto}.catalogue-detail__inline-list{display:inline-block}.catalogue-detail__inline-list-toggle{color:var(--color-primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.catalogue-detail__inline-list-body{margin-top:4px}.election-count-table tr.election-count-row td{font-weight:400}.election-count-table tr.election-count-row--elected td,.election-party-emphasis{font-weight:700}.election-na{color:#101820}.election-detail-toggle-btn--header{margin-left:2px}.election-count-table .count-elected{font-weight:inherit;color:inherit}.election-count-table .count-excluded{opacity:1;font-weight:inherit;color:inherit}.count-transfer{font-size:.75em;line-height:1.1}.count-transfer--pos,.election-delta--pos{color:#0a8a3d}.count-transfer--neg,.election-delta--neg{color:#c62828}.election-table-note-row td{background:#d9d9db;font-style:italic}.election-table-summary-row td{background:#ededee;font-style:italic}.election-count-col{vertical-align:top}.election-count-toolbar{display:flex;justify-content:flex-end;margin:0 0 6px}.election-detail-toggle-btn{border:1px solid var(--color-border, #d1d5db);border-radius:999px;background:var(--color-surface, #fff);color:var(--color-text, #1a202c);font-size:.72rem;font-weight:700;padding:3px 10px;cursor:pointer}.election-animation-container{margin:4px 0;padding:8px 10px;border:1px solid #c9cdd3;border-radius:8px;background:#f4f5f7;box-shadow:inset 0 0 0 1px #ffffff8c;display:block;width:100%;max-width:100%;align-self:flex-start;overflow-x:auto}.election-animation-container #animation{background:#f4f5f7;background-clip:padding-box}[data-theme=dark] .election-table-title{color:var(--color-gray-100, #f7fafc)}[data-theme=dark] .election-party-wrapper,[data-theme=dark] .election-count-wrapper,[data-theme=dark] .election-animation-container{background:var(--color-gray-800, #2d3748);border-color:var(--color-gray-600, #718096)}[data-theme=dark] .election-party-table,[data-theme=dark] .election-count-table{background:var(--color-gray-800, #2d3748)}[data-theme=dark] .election-party-table th,[data-theme=dark] .election-party-table td,[data-theme=dark] .election-count-table th,[data-theme=dark] .election-count-table td{border-color:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-party-table th,[data-theme=dark] .election-count-table th{background:var(--color-gray-900, #1a202c);color:var(--color-gray-100, #f7fafc)}[data-theme=dark] .election-th-btn{border-color:#6a7482;background:#2f3946;color:#d7e4f8}[data-theme=dark] .election-th-btn:hover{background:#3a4655}[data-theme=dark] .election-th-btn--active{border-color:#8fb4ff;background:#25406b;color:#e5f0ff}[data-theme=dark] .election-filter-menu{background:var(--color-gray-800, #2d3748);border-color:var(--color-gray-600, #718096)}[data-theme=dark] .election-filter-menu__action,[data-theme=dark] .election-filter-menu__mini,[data-theme=dark] .election-filter-menu__search,[data-theme=dark] .election-filter-menu__values{background:var(--color-gray-700, #4a5568);border-color:var(--color-gray-600, #718096);color:var(--color-gray-100, #f7fafc)}[data-theme=dark] .election-table-note-row td{background:var(--color-gray-700, #4a5568)}[data-theme=dark] .election-table-summary-row td{background:var(--color-gray-800, #2d3748)}.raster-tile--pixelated{image-rendering:pixelated;image-rendering:crisp-edges}.election-recall-label{background:transparent;border:none}.election-recall-label__text{font-size:.82rem;font-weight:700;line-height:1.15;text-align:center;text-shadow:0 1px 0 rgba(255,255,255,.95),0 0 6px rgba(255,255,255,.9);white-space:normal}
