:root{--color-primary-dark: #1a1a2e;--color-primary-medium: #16213e;--color-primary-light: #0f3460;--color-accent-red: #e94560;--color-accent-blue: #4a90e2;--color-accent-green: #2ecc71;--color-accent-yellow: #f39c12;--color-text-primary: #ecf0f1;--color-text-secondary: #95a5a6;--color-text-inverse: #1a1a2e;--color-bg-primary: #1a1a2e;--color-bg-secondary: #16213e;--color-bg-tertiary: #0f3460;--color-border: #34495e;--color-focus: #4a90e2;--color-error: #e74c3c;--color-success: #2ecc71;--color-background: var(--color-bg-primary);--color-surface: var(--color-bg-secondary);--color-accent: var(--color-accent-red);--color-accent-hover: #d63851;--color-text-tertiary: #7f8c8d;--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-mono: "JetBrains Mono", "Courier New", Courier, monospace;--font-size-xs: .64rem;--font-size-sm: .8rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.563rem;--font-size-2xl: 1.953rem;--font-size-3xl: 2.441rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.8;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--space-10: 4rem;--space-xs: var(--space-2);--space-sm: var(--space-3);--space-md: var(--space-4);--space-lg: var(--space-5);--space-xl: var(--space-6);--space-2xl: var(--space-8);--space-4xl: var(--space-10);--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--sidebar-left-width: 275px;--sidebar-right-width: 384px;--sidebar-margin: var(--space-4);--content-padding-y: var(--space-6);--content-padding-x: var(--space-4);--breakpoint-mobile: 768px;--breakpoint-tablet-portrait: 1024px;--breakpoint-tablet-landscape: 1280px;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .4s ease-in-out;--transition-colors: color var(--transition-base), background-color var(--transition-base), border-color var(--transition-base);--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070;--z-modal: var(--z-index-modal)}@media (prefers-contrast: high){:root{--color-text-primary: #ffffff;--color-bg-primary: #000000;--color-border: #ffffff}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-color-scheme: light){:root{--color-bg-primary: #ecf0f1;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f8f9fa;--color-text-primary: #1a1a2e;--color-text-secondary: #34495e;--color-text-tertiary: #6c757d;--color-border: #dee2e6;--color-accent-blue: #2563a8;--color-focus: #2563a8;--color-accent: #c82333;--color-accent-hover: #a71d2a;--color-background: var(--color-bg-primary);--color-surface: var(--color-bg-secondary)}}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:100%;scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;line-height:var(--line-height-normal);font-family:var(--font-primary);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg-primary)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}ul,ol{list-style:none}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}a{color:inherit;text-decoration:none}table{border-collapse:collapse;border-spacing:0}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-bg-secondary);color:var(--color-text-primary);padding:var(--space-3);z-index:var(--z-index-fixed)}.install-button{position:fixed;bottom:24px;right:24px;z-index:1000;display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--color-accent-blue);color:#fff;border:none;border-radius:8px;box-shadow:0 4px 12px #4a90e24d;font-family:var(--font-primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.install-button:hover{background:var(--color-accent-blue-dark);transform:translateY(-2px);box-shadow:0 6px 16px #4a90e266}.install-button:active{transform:translateY(0)}.install-button:focus{outline:2px solid var(--color-accent-blue);outline-offset:2px}.install-button svg{flex-shrink:0}@media (max-width: 768px){.install-button{bottom:16px;right:16px;padding:10px 16px;font-size:13px}}.offline-indicator{position:fixed;top:0;left:0;right:0;z-index:2000;padding:12px 16px;background:var(--color-bg-secondary);border-bottom:2px solid var(--color-border);box-shadow:0 2px 8px #0000001a;animation:slideDown .3s ease}.offline-indicator-content{display:flex;align-items:center;justify-content:center;gap:12px;max-width:1200px;margin:0 auto;font-family:var(--font-primary);font-size:14px;color:var(--color-text-primary)}.offline-indicator-content svg{flex-shrink:0}.offline-indicator-offline{background:#fff3cd;border-bottom-color:#ffc107}.offline-indicator-offline .offline-indicator-content{color:#856404}.offline-indicator-offline svg{stroke:#856404}.offline-indicator-back-online{background:#d4edda;border-bottom-color:#28a745}.offline-indicator-back-online .offline-indicator-content{color:#155724}.offline-indicator-back-online svg{stroke:#155724}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.update-notification{position:fixed;bottom:24px;left:24px;right:24px;max-width:500px;z-index:1500;background:var(--color-bg-primary);border:2px solid var(--color-accent-blue);border-radius:8px;box-shadow:0 4px 16px #0003;animation:slideUp .3s ease}.notification-content{padding:20px}.notification-content p{margin:0 0 12px;font-family:var(--font-primary);font-size:14px;color:var(--color-text-primary)}.notification-content p strong{font-size:16px;font-weight:600}.notification-actions{display:flex;gap:12px;margin-top:16px}.notification-actions button{flex:1;padding:10px 16px;border-radius:6px;font-family:var(--font-primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.primary-button{background:var(--color-accent-blue);color:#fff;border:none}.primary-button:hover{background:var(--color-accent-blue-dark)}.primary-button:focus{outline:2px solid var(--color-accent-blue);outline-offset:2px}.secondary-button{background:transparent;color:var(--color-text-primary);border:1px solid var(--color-border)}.secondary-button:hover{background:var(--color-bg-secondary)}.secondary-button:focus{outline:2px solid var(--color-accent-blue);outline-offset:2px}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 768px){.update-notification{left:16px;right:16px;bottom:16px}.notification-content{padding:16px}.notification-actions{flex-direction:column}}.notification,.pwa-message{position:fixed;top:24px;right:24px;z-index:1500;padding:12px 20px;border-radius:6px;box-shadow:0 4px 12px #00000026;font-family:var(--font-primary);font-size:14px;animation:fadeInSlide .3s ease}.notification-info,.pwa-message-info{background:#d1ecf1;color:#0c5460;border-left:4px solid #17a2b8}.notification-success,.pwa-message-success{background:#d4edda;color:#155724;border-left:4px solid #28a745}.notification-warning,.pwa-message-warning{background:#fff3cd;color:#856404;border-left:4px solid #ffc107}.notification-error,.pwa-message-error{background:#f8d7da;color:#721c24;border-left:4px solid #dc3545}@keyframes fadeInSlide{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.notification,.pwa-message{left:16px;right:16px;top:16px}}@media (display-mode: standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.install-button{display:none!important}}@media (prefers-contrast: high){.install-button{border:2px solid currentColor}.offline-indicator{border-bottom-width:3px}.notification,.pwa-message{border:2px solid currentColor}}@media (prefers-reduced-motion: reduce){.install-button,.offline-indicator,.update-notification,.notification,.pwa-message{animation:none;transition:none}}@media (prefers-color-scheme: dark){.offline-indicator{background:#2a2a3e;border-bottom-color:#4a4a5e}.update-notification{background:#2a2a3e;box-shadow:0 4px 16px #00000080}.notification-info,.pwa-message-info{background:#1e3a44;color:#7dd3f0}.notification-success,.pwa-message-success{background:#1e3a26;color:#7dd37d}.notification-warning,.pwa-message-warning{background:#3e3420;color:#ffd966}.notification-error,.pwa-message-error{background:#3e1e20;color:#f08080}}.container{max-width:var(--container-lg);margin:0 auto;padding:var(--space-4)}h1{font-size:var(--font-size-3xl);margin-bottom:var(--space-4)}h2{font-size:var(--font-size-2xl);margin-bottom:var(--space-3)}p{margin-bottom:var(--space-4);line-height:var(--line-height-normal)}button{padding:var(--space-3) var(--space-5);background:var(--color-accent-blue);color:var(--color-text-primary);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);transition:var(--transition-colors);min-height:44px;min-width:44px}button:hover{background:var(--color-primary-light)}button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.glass-light{background:linear-gradient(225deg,#40fba414,#5b4bc71f);backdrop-filter:blur(8px) saturate(140%);border:1px solid rgba(64,251,164,.4);box-shadow:0 4px 16px #0003,inset 0 0 60px #40fba40a}.glass-medium{background:linear-gradient(225deg,#5b4bc71a,#40fba414);backdrop-filter:blur(10px) saturate(140%);border:1px solid rgba(91,75,199,.5);box-shadow:0 4px 16px #0003,inset 0 0 60px #5b4bc70d}.glass-dark{background:linear-gradient(135deg,#1a1a2ef2,#16213ee6);backdrop-filter:blur(6px) saturate(120%);border:1px solid rgba(64,251,164,.3);box-shadow:0 4px 20px #0000004d,inset 0 0 40px #40fba405}.interactive-lift{transition:all var(--transition-base)}.interactive-lift:hover{transform:translateY(-2px)}.interactive-lift:active{transform:translateY(0)}.glow-green:hover{box-shadow:0 4px 12px #40fba44d,inset 0 0 20px #40fba41a}.glow-purple:hover{box-shadow:0 4px 12px #5b4bc74d,inset 0 0 20px #5b4bc71a}header{background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);padding:var(--space-4) 0;margin-bottom:var(--space-6)}header h1{margin-bottom:var(--space-2);color:var(--color-accent-blue)}header .subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-4)}header nav ul{display:flex;gap:var(--space-5);list-style:none;padding:0;margin:0}header nav a{color:var(--color-text-primary);text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:var(--transition-colors)}header nav a:hover{background:var(--color-bg-tertiary);color:var(--color-accent-blue)}header nav a[aria-current=page]{background:var(--color-primary-dark);color:var(--color-accent-blue);font-weight:var(--font-weight-medium)}body.timewave-page{background:#000}.timewave-page .stars-container{display:none}.timewave-page .container{max-width:none;margin:0;padding:0}.timewave-content{padding:var(--content-padding-y) var(--content-padding-x)}.right-sidebar .search-box{background:linear-gradient(135deg,#0f346080,#16213e99);backdrop-filter:blur(8px) saturate(140%);border:1px solid rgba(64,251,164,.4);transition:var(--transition-base)}.right-sidebar .search-box:hover{border-color:#40fba499;box-shadow:0 2px 8px #40fba433}.right-sidebar .search-input{background:transparent;border:none;outline:none;flex:1;color:var(--color-text-primary);font-size:var(--font-size-base);font-family:var(--font-primary)}.right-sidebar .search-input::placeholder{color:var(--color-text-secondary)}.timewave-section{position:relative;z-index:var(--z-index-fixed);margin-bottom:var(--space-10)}.timewave-section h2{margin-bottom:var(--space-5);color:var(--color-accent-blue)}.controls{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-5) var(--space-6);background:linear-gradient(225deg,#40fba414,#5b4bc71f);backdrop-filter:blur(8px) saturate(140%);border:1px solid rgba(64,251,164,.4);border-radius:20px;box-shadow:0 4px 16px #0003,inset 0 0 60px #40fba40a;transition:var(--transition-base)}.controls:hover{border-color:#40fba499;box-shadow:0 6px 20px #0000004d,inset 0 0 80px #40fba40f}.inline-control{margin:0}.control-divider{width:1px;height:32px;background:linear-gradient(to bottom,transparent 0%,rgba(64,251,164,.4) 50%,transparent 100%);margin:0 var(--space-2)}@media (max-width: 1024px){.controls{padding:var(--space-4) var(--space-5);gap:var(--space-3)}.control-divider{height:28px}}@media (max-width: 768px){.controls{padding:var(--space-4);gap:var(--space-2)}.control-divider{display:none}}.control-group{display:flex;flex-direction:row;align-items:center;gap:var(--space-2)}.control-group label{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.control-group input[type=date]{padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#0f346099,#16213eb3);color:var(--color-text-primary);border:1px solid rgba(64,251,164,.3);border-radius:10px;font-family:var(--font-primary);min-height:40px;width:auto;font-size:var(--font-size-sm);transition:var(--transition-base)}.control-group input[type=date]:hover{border-color:#40fba480;box-shadow:0 2px 8px #40fba433}.control-group input[type=date]:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-color:#40fba4b3;box-shadow:0 4px 12px #40fba44d}.help-text{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.control-group .button,.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);min-height:40px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;border:none;background:linear-gradient(135deg,#0f346099,#16213eb3);border:1px solid rgba(64,251,164,.3);border-radius:10px;color:var(--color-text-primary);transition:all var(--transition-base);box-shadow:0 2px 8px #0003}.control-group .button:hover,.button:hover{transform:translateY(-1px);border-color:#40fba499;box-shadow:0 4px 12px #40fba44d,inset 0 0 20px #40fba414;background:linear-gradient(135deg,#0f3460cc,#16213ee6);color:#40fba4f2}.control-group .button:active,.button:active{transform:translateY(0);box-shadow:0 2px 6px #40fba433,inset 0 0 15px #40fba40d}.control-group .button:focus-visible,.button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.control-group .button svg{width:20px;height:20px}.button-compact{padding:var(--space-2)!important;min-width:40px;max-width:40px;width:40px;height:40px;min-height:40px;font-size:var(--font-size-xl);line-height:1;gap:0}.button-compact svg{margin:0;width:18px;height:18px}.plot-container{position:relative;width:100%;padding:var(--space-5);margin-bottom:var(--space-6);background:linear-gradient(135deg,#1a1a2ef2,#16213ee6);backdrop-filter:blur(6px) saturate(120%);border:1px solid rgba(64,251,164,.3);border-radius:20px;box-shadow:0 4px 20px #0000004d,inset 0 0 40px #40fba405}@media (min-width: 1280px){.plot-container{max-width:85%;margin-left:auto;margin-right:auto}}@media (min-width: 768px) and (max-width: 1279px){.plot-container{max-width:95%;margin-left:auto;margin-right:auto}}@media (max-width: 767px){.plot-container{max-width:100%}}#timewave-canvas{display:block;width:100%;height:600px;cursor:default;border-radius:var(--radius-sm)}#timewave-canvas:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);background:#1a1a2ef2;padding:var(--space-5);border-radius:var(--radius-md);border:1px solid var(--color-border)}.spinner{width:48px;height:48px;border:4px solid var(--color-border);border-top-color:var(--color-accent-blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{padding:var(--space-4);background:var(--color-danger-dark);color:var(--color-text-primary);border:1px solid var(--color-danger);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.data-table{width:100%;border-collapse:collapse;background:var(--color-bg-secondary);border-radius:var(--radius-md);overflow:hidden}.data-table caption{padding:var(--space-4);background:var(--color-bg-primary);font-weight:var(--font-weight-medium);text-align:left;font-size:var(--font-size-lg);color:var(--color-accent-blue)}.data-table th{padding:var(--space-3) var(--space-4);background:var(--color-primary-dark);color:var(--color-text-primary);font-weight:var(--font-weight-medium);text-align:left;border-bottom:2px solid var(--color-border)}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.data-table tbody tr:hover{background:var(--color-bg-tertiary)}.data-table tbody tr:last-child td{border-bottom:none}.info-panel{padding:var(--space-5);margin-bottom:var(--space-6);background:linear-gradient(135deg,#40fba40f,#5b4bc714);backdrop-filter:blur(10px) saturate(130%);border:1px solid rgba(64,251,164,.3);border-radius:20px;box-shadow:0 4px 16px #0003,inset 0 0 60px #40fba408;transition:var(--transition-base)}.info-panel:hover{border-color:#40fba480;box-shadow:0 6px 20px #0000004d,inset 0 0 80px #40fba40d}.info-panel h3{color:#40fba4e6;margin-bottom:var(--space-4);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);text-shadow:0 2px 8px rgba(0,0,0,.3)}.info-panel p{margin-bottom:var(--space-3);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.info-panel strong{color:#5b4bc7e6;font-weight:var(--font-weight-semibold)}.info-panel ul{margin-bottom:var(--space-4);padding-left:var(--space-5);list-style:none}.info-panel li{margin-bottom:var(--space-2);line-height:var(--line-height-normal);position:relative;padding-left:var(--space-3)}.info-panel li:before{content:"▸";position:absolute;left:0;color:#40fba4b3;font-weight:700}.info-panel a{color:#40fba4e6;text-decoration:none;font-weight:var(--font-weight-medium);border-bottom:1px solid rgba(64,251,164,.3);transition:var(--transition-colors)}.info-panel a:hover{color:#40fba4;border-bottom-color:#40fba4cc;text-shadow:0 0 8px rgba(64,251,164,.5)}.info-panel a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}footer{background:var(--color-bg-primary);border-top:1px solid var(--color-border);padding:var(--space-5) 0;margin-top:var(--space-8);text-align:center;color:var(--color-text-secondary)}footer a{color:var(--color-accent-blue);text-decoration:none;transition:var(--transition-colors)}footer a:hover{color:var(--color-primary-light);text-decoration:underline}footer a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-accent-blue);color:var(--color-bg-primary);padding:var(--space-2) var(--space-4);text-decoration:none;border-radius:0 0 var(--radius-sm) 0;font-weight:var(--font-weight-medium);z-index:var(--z-modal)}.skip-link:focus{top:0}@media (max-width: 768px){.controls{flex-direction:column}header nav ul{flex-direction:column;gap:var(--space-2)}#timewave-canvas{height:400px}.data-table{font-size:var(--font-size-sm)}.data-table th,.data-table td{padding:var(--space-2) var(--space-3)}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.spinner{animation:none;border-top-color:var(--color-accent-blue)}}@media (prefers-contrast: high){button,.button{border:2px solid currentColor}.plot-container,.data-table{border:2px solid var(--color-border)}}.event-filters{margin:var(--space-5) 0;padding:var(--space-5);background:linear-gradient(225deg,#5b4bc71a,#40fba414);backdrop-filter:blur(10px) saturate(140%);border:1px solid rgba(91,75,199,.5);border-radius:20px;box-shadow:0 4px 16px #0003,inset 0 0 60px #5b4bc70d;transition:var(--transition-base)}.event-filters:hover{border-color:#5b4bc7b3;box-shadow:0 6px 20px #0000004d,inset 0 0 80px #5b4bc712}.event-filters summary{cursor:pointer;user-select:none;list-style:none;padding:var(--space-3);margin:calc(var(--space-3) * -1);border-radius:var(--radius-sm);transition:var(--transition-colors)}.event-filters summary:hover{background:var(--color-bg-tertiary)}.event-filters summary:focus{outline:2px solid var(--color-focus);outline-offset:2px}.event-filters summary h3{display:inline-block;margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.event-filters summary:before{content:"▶";display:inline-block;margin-right:var(--space-2);transition:transform var(--transition-fast)}.event-filters[open] summary:before{transform:rotate(90deg)}.filter-container{margin-top:var(--space-5);display:grid;grid-template-columns:1fr;gap:var(--space-5)}.filter-container>.control-group{background:#0003;padding:var(--space-4);border-radius:12px;border:1px solid rgba(64,251,164,.1)}.filter-container>.control-group:hover{border-color:#40fba433;background:#0000004d}.checkbox-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3);margin-top:var(--space-3)}.checkbox-label{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;position:relative;background:linear-gradient(135deg,#0f346080,#16213e99);border:1px solid rgba(64,251,164,.2);border-radius:10px;transition:all var(--transition-base)}.checkbox-label:hover{transform:translateY(-1px);background:linear-gradient(135deg,#0f3460cc,#16213ee6);border-color:#40fba480;box-shadow:0 2px 8px #40fba433,inset 0 0 15px #40fba40d}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label input[type=checkbox]:focus{outline:2px solid var(--color-focus);outline-offset:2px}.category-icon{font-size:var(--font-size-lg);line-height:1}.category-war{color:var(--color-accent-red)}.category-disaster{color:#f39c12}.category-discovery{color:var(--color-accent-green)}.category-revolution{color:#9b59b6}.category-economic{color:var(--color-accent-blue)}.category-cultural{color:#1abc9c}input[type=range]{width:100%;height:6px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);outline:none;cursor:pointer;margin:var(--space-2) 0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:var(--color-accent-blue);border:2px solid var(--color-text-primary);border-radius:50%;cursor:pointer;transition:var(--transition-fast)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]:focus::-webkit-slider-thumb{outline:2px solid var(--color-focus);outline-offset:2px}input[type=range]::-moz-range-thumb{width:20px;height:20px;background:var(--color-accent-blue);border:2px solid var(--color-text-primary);border-radius:50%;cursor:pointer;transition:var(--transition-fast)}input[type=range]::-moz-range-thumb:hover{transform:scale(1.2)}input[type=range]:focus::-moz-range-thumb{outline:2px solid var(--color-focus);outline-offset:2px}input[type=search]{width:100%;padding:var(--space-3);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-primary);font-size:var(--font-size-base);transition:var(--transition-colors)}input[type=search]:focus{outline:2px solid var(--color-focus);outline-offset:2px;border-color:var(--color-accent-blue)}input[type=search]::placeholder{color:var(--color-text-secondary)}.event-count{display:inline-block;margin-left:var(--space-4);padding:var(--space-2) var(--space-3);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-index-modal);align-items:center;justify-content:center;padding:var(--space-4)}.modal-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:#000c;z-index:var(--z-index-modal-backdrop)}.modal-content{position:relative;z-index:var(--z-index-modal);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:600px;max-height:90vh;width:100%;overflow-y:auto;animation:modalFadeIn var(--transition-base)}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5);border-bottom:1px solid var(--color-border)}.modal-title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);flex:1;padding-right:var(--space-4)}.modal-close{background:none;border:none;color:var(--color-text-secondary);font-size:var(--font-size-3xl);line-height:1;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:var(--transition-colors)}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.modal-close:focus{outline:2px solid var(--color-focus);outline-offset:2px}.modal-body{padding:var(--space-5)}.event-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.event-detail{display:flex;flex-direction:column;gap:var(--space-2)}.detail-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.detail-value{font-size:var(--font-size-base);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.category-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:capitalize}.category-badge.category-war{background:#e9456033;color:var(--color-accent-red)}.category-badge.category-disaster{background:#f39c1233;color:#f39c12}.category-badge.category-discovery{background:#2ecc7133;color:var(--color-accent-green)}.category-badge.category-revolution{background:#9b59b633;color:#9b59b6}.category-badge.category-economic{background:#4a90e233;color:var(--color-accent-blue)}.category-badge.category-cultural{background:#1abc9c33;color:#1abc9c}.novelty-bar{display:block;width:100%;height:8px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-2)}.novelty-bar-fill{display:block;height:100%;transition:width var(--transition-base);border-radius:var(--radius-full)}.event-description{margin-bottom:var(--space-5)}.event-description h3{margin-bottom:var(--space-3);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.event-description p{line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.event-sources{margin-bottom:var(--space-4)}.event-sources h3{margin-bottom:var(--space-3);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.event-sources ul{list-style:none;padding:0;margin:0}.event-sources li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.event-sources li:last-child{border-bottom:none}.event-sources a{color:var(--color-accent-blue);text-decoration:none;transition:var(--transition-colors)}.event-sources a:hover{color:var(--color-text-primary);text-decoration:underline}.event-sources a:focus{outline:2px solid var(--color-focus);outline-offset:2px}.modal-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-3)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-secondary:hover{background:var(--color-primary-light)}@media (max-width: 768px){.checkbox-group,.event-detail-grid{grid-template-columns:1fr}.modal-content{max-height:95vh;margin:var(--space-2)}.modal-header,.modal-body,.modal-footer{padding:var(--space-4)}}.event-filters *:focus-visible,.modal *:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (prefers-reduced-motion: reduce){.modal-content{animation:none}.novelty-bar-fill{transition:none}}@media (prefers-contrast: high){.modal-content{border:2px solid var(--color-border)}.category-badge{border:2px solid currentColor}.event-filters{border:2px solid var(--color-border)}}#event-table-container,#timewave-table-container{margin-top:var(--space-6);padding:var(--space-6);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.table-controls{margin-bottom:var(--space-5);display:flex;justify-content:space-between;align-items:center}.data-table{width:100%;border-collapse:collapse;background:var(--color-bg-secondary);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}.data-table caption{caption-side:top;padding:var(--space-4);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:left;background:var(--color-bg-primary);border-bottom:2px solid var(--color-border)}.data-table thead{background:var(--color-bg-primary)}.data-table th{padding:var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);border-bottom:2px solid var(--color-border);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em}.data-table tbody tr{border-bottom:1px solid var(--color-border);transition:var(--transition-colors)}.data-table tbody tr:hover{background:#3498db1a}.data-table tbody tr:focus-within{background:#3498db26;outline:2px solid var(--color-focus);outline-offset:-2px}.data-table td{padding:var(--space-4);color:var(--color-text-secondary);vertical-align:top}.data-table tbody tr:last-child{border-bottom:none}.data-table td:first-child{font-family:var(--font-mono);font-size:var(--font-size-sm);white-space:nowrap}.data-table td:nth-child(4){font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.data-table td:last-child{max-width:400px;line-height:var(--line-height-relaxed)}.data-table tbody td[colspan]{text-align:center;padding:var(--space-8) var(--space-4);font-style:italic;color:var(--color-text-secondary)}@media (max-width: 768px){#event-table-container,#timewave-table-container{padding:var(--space-4);margin-top:var(--space-4)}.data-table{font-size:var(--font-size-sm)}.data-table th,.data-table td{padding:var(--space-3) var(--space-2)}.data-table caption{padding:var(--space-3);font-size:var(--font-size-lg)}@media (max-width: 480px){.data-table thead{display:none}.data-table tbody tr{display:block;margin-bottom:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.data-table td{display:block;text-align:left;padding:var(--space-2) 0;border:none}.data-table td:before{content:attr(data-label);font-weight:var(--font-weight-semibold);display:block;margin-bottom:var(--space-1);color:var(--color-text-primary);font-size:var(--font-size-xs);text-transform:uppercase}.data-table td:last-child{max-width:none}}}@media print{#event-table-container,#timewave-table-container{background:#fff;border:1px solid #000}.data-table{box-shadow:none}.data-table th{background:#f0f0f0!important;color:#000!important}.table-controls{display:none}}
