body{margin:0;font-family:Arial,sans-serif;background:#f7f7f9}.container{padding:24px}.viz-section{margin-bottom:24px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px}.viz-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.viz-header h1{margin:0;font-size:20px}.viz-container iframe{width:100%;height:720px;border:none;border-radius:6px}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px}.tab-toggle{display:inline-flex;border:1px solid #dadce0;border-radius:999px;overflow:hidden;background:#fff}.tab{background:transparent;border:none;padding:8px 16px;cursor:pointer;color:#3c4043;font-weight:600}.tab.active{background:#1a73e8;color:#fff}.tab:not(.active):hover{background:#f1f3f4}.button{background:#1a73e8;color:#fff;border:none;padding:8px 12px;border-radius:4px;cursor:pointer}.button:disabled{background:#ccc;cursor:not-allowed}.button.secondary{background:#5f6368}.event-section{margin-bottom:48px}.event-section h1{margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:24px}.single-bracket{max-width:800px}.card{background:#fff;border:1px solid #ddd;border-radius:6px;padding:12px}.card h2{margin:0 0 8px;font-size:16px}.schedule-status{padding:12px;background:#e3f2fd;border-radius:4px;margin-bottom:16px}.schedule-error{padding:12px;background:#ffebee;color:#c62828;border-radius:4px;margin-bottom:16px}.schedule-info{padding:16px;background:#e8f5e9;border-radius:4px;margin-bottom:16px}.schedule-info h2{margin-top:0;color:#2e7d32}.schedule-info p{margin:8px 0}.table-wrapper{overflow-x:auto;margin-top:8px}.violations-table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}.violations-table th,.violations-table td{padding:6px 10px;border-bottom:1px solid #eee;text-align:left;vertical-align:top}.violations-table thead th{background:#f1f3f4;color:#3c4043;font-weight:600;border-bottom:1px solid #dadce0}.violations-table tr.violation-summary td{background:#fffbe6;border-top:1px solid #e0c97a;border-bottom:1px solid #e0c97a}.violations-table tr.violation-match td{background:#fafafa;color:#555;font-family:Consolas,Courier New,monospace;font-size:12px}.violations-table tr.violation-match td:first-child{border-left:3px solid #e0c97a}a.button{display:inline-block;text-decoration:none}.setup-form{max-width:480px;background:#fff;border:1px solid #ddd;border-radius:6px;padding:16px}.form-row{margin-bottom:16px;display:flex;flex-direction:column;gap:4px}.form-row label{font-weight:600;color:#3c4043}.form-row input,.form-row select{padding:8px;border:1px solid #dadce0;border-radius:4px;font-size:14px}.ice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:16px 0}.ice-day-count{font-size:13px;font-weight:400;color:#5f6368}.ice-time-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.ice-time-row input{padding:6px;border:1px solid #dadce0;border-radius:4px;font-size:14px;width:100px}.team-count{font-size:14px;font-weight:400;color:#5f6368}.tournaments-table input[type=text],.tournaments-table input[type=number]{padding:6px;border:1px solid #dadce0;border-radius:4px;font-size:14px;width:110px}.tournaments-table input.cell-narrow{width:56px}.cell-actions{display:flex;gap:8px;white-space:nowrap}a.button.secondary{text-decoration:none}.field-error{color:#c62828;font-size:13px}.form-actions{margin-top:8px}.tournaments-table{width:100%;border-collapse:collapse;background:#fff}.tournaments-table th,.tournaments-table td{padding:8px 12px;border-bottom:1px solid #eee;text-align:left}.tournaments-table thead th{background:#f1f3f4;color:#3c4043;font-weight:600;border-bottom:1px solid #dadce0}
