:root{--color-primary: #1e40af;--color-primary-hover: #1e3a8a;--color-primary-light: #3b82f6;--color-secondary: #0f766e;--color-accent: #dc2626;--color-success: #059669;--color-warning: #d97706;--color-text: #111827;--color-text-light: #4b5563;--color-text-lighter: #6b7280;--color-text-muted: #9ca3af;--color-bg: #ffffff;--color-bg-secondary: #f9fafb;--color-bg-tertiary: #f3f4f6;--color-bg-accent: #eff6ff;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--color-border-dark: #d1d5db;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--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);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*{box-sizing:border-box;margin:0}html{font-family:var(--font-family);line-height:1.6;color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;background:var(--color-bg-secondary);color:var(--color-text)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;color:var(--color-text);margin:0}h1{font-size:var(--font-size-4xl);font-weight:700;letter-spacing:-.02em}h2{font-size:var(--font-size-2xl);font-weight:600}h3{font-size:var(--font-size-xl);font-weight:600}p{margin:0;color:var(--color-text-light)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-primary-hover)}main{max-width:1200px;margin:0 auto;padding:var(--space-xl)}header{text-align:center;margin-bottom:var(--space-3xl);padding-bottom:var(--space-xl)}header h1{margin-bottom:var(--space-sm);color:var(--color-primary);font-weight:700}header p{font-size:var(--font-size-lg);color:var(--color-text-light);font-weight:400}.view-switcher{display:inline-flex;gap:var(--space-xs);background:var(--color-bg);padding:var(--space-xs);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.view-switcher a{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-light);transition:all var(--transition-base);position:relative}.view-switcher a:hover{color:var(--color-primary);background:var(--color-bg-secondary)}.view-switcher a[aria-current=page],.view-switcher a.active{color:var(--color-primary);background:var(--color-bg-accent);font-weight:600}.filter-container{margin-bottom:var(--space-xl)}.filter-toggle{width:100%;padding:var(--space-md) var(--space-lg);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-base);font-weight:500;color:var(--color-text);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.filter-toggle:hover{background:var(--color-bg-secondary);border-color:var(--color-border-dark);box-shadow:var(--shadow-md)}.toggle-icon{font-size:var(--font-size-xs);transition:transform var(--transition-base);color:var(--color-text-light)}.filter-bar{background:var(--color-bg);padding:var(--space-xl);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg);margin-top:var(--space-md)}.filter-group{display:flex;flex-direction:column;gap:var(--space-sm)}.filter-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text);letter-spacing:.01em}.filter-group input,.filter-group select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg);color:var(--color-text);transition:all var(--transition-base);font-family:inherit}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1e40af1a}.checkbox-label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-size:var(--font-size-sm);font-weight:400;color:var(--color-text)}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--color-primary)}.filter-checkbox{display:flex;align-items:center}.checkbox-group{display:flex;flex-direction:column;gap:var(--space-sm)}.filter-actions{display:flex;gap:var(--space-md);align-items:flex-end}.filter-actions button{padding:var(--space-sm) var(--space-xl);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;transition:all var(--transition-base);font-family:inherit}.filter-actions button:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md)}.button-link{padding:var(--space-sm) var(--space-xl);color:var(--color-text-light);text-decoration:none;border-radius:var(--radius-sm);transition:all var(--transition-base);display:inline-flex;align-items:center;font-size:var(--font-size-sm);font-weight:400}.button-link:hover{color:var(--color-primary);background:var(--color-bg-secondary)}.competition-list{margin-top:var(--space-xl)}.empty{text-align:center;padding:var(--space-3xl);color:var(--color-text-light);font-size:var(--font-size-lg);font-weight:400}.competitions-grouped{display:flex;flex-direction:column;gap:var(--space-3xl)}.competition-group{display:flex;flex-direction:column;gap:var(--space-lg)}.group-header{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text);margin:0;padding-bottom:var(--space-md);border-bottom:2px solid var(--color-border);letter-spacing:-.01em;margin-bottom:var(--space-lg)}ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-md)}.competition-item{background:var(--color-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:all var(--transition-base);overflow:hidden}.competition-item:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-light);transform:translateY(-1px)}.competition-item a{display:flex;gap:var(--space-xl);padding:var(--space-lg);text-decoration:none;color:inherit;align-items:flex-start}.competition-date{flex-shrink:0;min-width:140px;font-weight:600;color:var(--color-text);font-size:var(--font-size-sm);padding-top:var(--space-xs);letter-spacing:.01em;font-variant-numeric:tabular-nums}.competition-content{flex:1;min-width:0}.competition-name{font-size:var(--font-size-lg);margin:0 0 var(--space-sm) 0;color:var(--color-text);font-weight:600;line-height:1.3}.competition-name:hover{color:var(--color-primary)}.meta{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-light)}.meta span{display:flex;align-items:center;gap:var(--space-xs)}.competition-type{font-size:var(--font-size-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);color:var(--color-text);border-radius:var(--radius-sm);font-weight:500;border:1px solid var(--color-border)}.breadcrumb{margin-bottom:var(--space-xl)}.breadcrumb a{color:var(--color-text-light);text-decoration:none;font-size:var(--font-size-sm);transition:color var(--transition-base);display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:400}.breadcrumb a:hover{color:var(--color-primary)}.competition-detail header{margin-bottom:var(--space-xl)}.competition-detail h1{font-size:var(--font-size-3xl);margin-bottom:var(--space-sm);line-height:1.2}.description{margin:var(--space-xl) 0;padding:var(--space-xl);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.description h2{font-size:var(--font-size-lg);margin:0 0 var(--space-md) 0;color:var(--color-text);font-weight:600}.description p{margin:0;line-height:1.7;color:var(--color-text-light);white-space:pre-wrap}.info-table{width:100%;border-collapse:collapse;margin:var(--space-xl) 0;background:var(--color-bg);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.info-table th{text-align:left;padding:var(--space-md) var(--space-lg);background:var(--color-bg-secondary);font-weight:600;color:var(--color-text);width:150px;vertical-align:top;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);letter-spacing:.01em}.info-table td{padding:var(--space-md) var(--space-lg);color:var(--color-text);line-height:1.6;border-bottom:1px solid var(--color-border-light);font-size:var(--font-size-sm);background:#fff}.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:none}.info-table .links-cell{display:flex;gap:var(--space-md);flex-wrap:wrap;padding:var(--space-md) var(--space-lg)}.disciplines-list-inline{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-sm)}.disciplines-list-inline li{margin:0;padding:var(--space-xs) var(--space-md);background:var(--color-bg-tertiary);color:var(--color-text);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;border:1px solid var(--color-border)}.button{display:inline-block;padding:var(--space-md) var(--space-xl);background:var(--color-primary);color:#fff;text-decoration:none;border-radius:var(--radius-sm);transition:all var(--transition-base);font-size:var(--font-size-sm);font-weight:500;font-family:inherit}.button:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md)}.button.primary{background:var(--color-primary)}.button.primary:hover{background:var(--color-primary-hover)}.map-container{margin:var(--space-xl) 0}.map-container h2{font-size:var(--font-size-lg);margin:0 0 var(--space-md) 0;color:var(--color-text);font-weight:600}#detail-map{height:400px;width:100%;border-radius:var(--radius-md);border:1px solid var(--color-border);overflow:hidden}.source-link{color:var(--color-primary);text-decoration:none;word-break:break-all;transition:color var(--transition-base)}.source-link:hover{color:var(--color-primary-hover);text-decoration:underline}.map-page{max-width:100%;padding:0}.map-header{position:absolute;top:var(--space-lg);left:var(--space-lg);z-index:1000;background:var(--color-bg);padding:var(--space-lg);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);text-align:left;margin:0;max-width:320px}.map-header h1{font-size:var(--font-size-xl);margin-bottom:var(--space-md)}.map-controls{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.continent-selector,.country-selector,.type-selector{display:flex;align-items:center;gap:var(--space-sm)}.continent-selector label,.country-selector label,.type-selector label{font-size:var(--font-size-xs);font-weight:500;min-width:70px;color:var(--color-text)}.continent-selector select,.country-selector select,.type-selector select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-xs);background:var(--color-bg);cursor:pointer;min-width:150px;transition:all var(--transition-base);font-family:inherit}.continent-selector select:hover,.country-selector select:hover,.type-selector select:hover{border-color:var(--color-primary)}.continent-selector select:focus,.country-selector select:focus,.type-selector select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1e40af1a}@media (max-width: 768px){main{padding:var(--space-md)}header h1{font-size:var(--font-size-3xl)}.competition-item a{flex-direction:column;gap:var(--space-md)}.competition-date{min-width:auto;width:100%}.filter-bar{grid-template-columns:1fr;padding:var(--space-lg)}.map-header{position:relative;top:0;left:0;max-width:100%;margin-bottom:var(--space-lg)}}@media (max-width: 480px){header h1{font-size:var(--font-size-2xl)}.view-switcher{width:100%;justify-content:center}.competition-item a{padding:var(--space-md)}}
