:root{--text:#e5e7eb;--text-h:#f9fafb;--text-light:#9ca3af;--bg:#111827;--border:#374151;--card-bg:#1f2937;--primary:#60a5fa;--success:#4ade80;--error:#f87171;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--heading:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, monospace;font:16px/160% var(--sans);letter-spacing:.16px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{width:100%;max-width:100vw;margin:0;padding:0;overflow-x:hidden}#root{box-sizing:border-box;background:var(--bg);flex-direction:column;width:100%;max-width:100vw;min-height:100vh;margin:0 auto;display:flex;position:relative;overflow-x:hidden}h1{font-family:var(--heading);color:var(--text-h);letter-spacing:-.03em;text-align:center;margin:1.5rem 0 1.25rem;font-size:2.25rem;font-weight:800}h2{font-family:var(--heading);color:var(--text-h);margin:1.5rem 0 .75rem;font-size:1.25rem;font-weight:600}p{color:var(--text);margin:0 0 1rem;font-size:1rem}code{font-family:var(--mono);color:var(--text-h);background:var(--border);border-radius:4px;padding:.2em .4em;font-size:.9em;display:inline-flex}@media (width>=768px){h1{margin:2rem 0 1.5rem;font-size:2.5rem}}*{box-sizing:border-box;margin:0;padding:0}:root{--text:#e5e7eb;--text-h:#f9fafb;--text-light:#9ca3af;--bg:#111827;--card-bg:#1f2937;--border:#374151;--primary:#60a5fa;--primary-dark:#3b82f6;--primary-light:#2563eb;--success:#4ade80;--success-light:#166534;--error:#f87171;--error-light:#991b1b;--shadow:0 4px 6px -1px #0000004d}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}main{flex:1;width:100%;max-width:600px;margin:0 auto;padding:1rem}h1{color:var(--text-h);text-align:center;letter-spacing:-.02em;margin:1.5rem 0 2rem;font-size:2rem;font-weight:800}h2{color:var(--text-h);margin:1.5rem 0 1rem;font-size:1.25rem;font-weight:600}button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:12px;width:100%;min-height:52px;padding:1rem 1.5rem;font-size:1.125rem;font-weight:600;transition:all .2s}button:active:not(:disabled){transform:scale(.96)}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;margin-bottom:.75rem;box-shadow:0 2px 4px #60a5fa33}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 4px 8px #60a5fa4d}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-group{flex-direction:column;gap:.75rem;margin:1.5rem 0;display:flex}.connection-status{text-align:center;background:var(--bg);border:1px solid var(--border);border-radius:12px;margin-bottom:1.5rem;padding:.875rem;font-weight:600}.connection-status.connected{background:var(--success-light);border-color:var(--success);color:#fff}.connection-status.not-connected{background:var(--error-light);border-color:var(--error);color:#fff}label{color:var(--text-light);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}select{border:1px solid var(--border);background:var(--card-bg);width:100%;color:var(--text);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 fill=%22none%22 viewBox=%220 0 20 20%22%3E%3Cpath stroke=%22%239ca3af%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 stroke-width=%222%22 d=%22M6 8l4 4 4-4%22/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:1rem;border-radius:12px;margin-bottom:1rem;padding:.875rem;font-size:1rem}select option{background:var(--card-bg);color:var(--text)}textarea{border:1px solid var(--border);resize:vertical;background:var(--card-bg);width:100%;min-height:100px;color:var(--text);border-radius:12px;margin-bottom:1rem;padding:1rem;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #60a5fa26}.result-section{border-top:1px solid var(--border);margin-top:2rem;padding-top:2rem}.event-preview{background:var(--card-bg);box-shadow:var(--shadow);border-radius:12px;margin-bottom:1.25rem;padding:1.25rem}.event-preview p{color:var(--text);margin-bottom:.5rem;font-size:1rem}.event-preview p:last-child{margin-bottom:0}.event-preview ul{margin:.75rem 0;padding-left:0;list-style:none}.event-preview li{background:var(--bg);color:var(--text);border-radius:8px;align-items:center;gap:.5rem;margin-bottom:.25rem;padding:.5rem;font-size:.95rem;display:flex}.event-preview li:last-child{margin-bottom:0}.matched-events{margin-top:1.5rem}.matched-events h3{color:var(--text-light);margin-bottom:.75rem;font-size:1rem}.match-date{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:.75rem}.match-date strong{color:var(--text);margin-bottom:.5rem;font-size:1rem;display:block}.match-event{background:var(--bg);cursor:pointer;border-radius:8px;margin-bottom:.5rem;padding:.75rem;transition:background .2s}.match-event:hover{background:var(--border)}.match-event input[type=checkbox]{cursor:pointer;width:1.25rem;height:1.25rem;margin-right:.5rem}.match-info{color:var(--text-light);font-size:.85rem}.message{text-align:center;border-radius:12px;margin:1rem 0;padding:1rem}.message.error{background:var(--error-light);border:1px solid var(--error);color:#fff}.message.success{background:var(--success-light);border:1px solid var(--success);color:#fff}.action-buttons{flex-direction:column;gap:1rem;margin-top:2rem;display:flex}@media (width>=768px){.btn-group{flex-direction:row}.btn-group button{flex:1;min-width:0}.action-buttons{flex-direction:row-reverse}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-section{animation:.3s ease-out fadeIn}
