:root{--primary-color: #007bff;--primary-hover-color: #0056b3;--secondary-color: #6c757d;--danger-color: #dc3545;--danger-hover-color: #c82333;--light-color: #f8f9fa;--dark-color: #343a40;--border-color: #dee2e6;--border-radius: 8px;--box-shadow: 0 4px 8px rgba(0, 0, 0, .1)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f4f7f9;color:var(--dark-color)}main{padding:20px 40px}button{font-size:1rem;padding:10px 20px;border-radius:var(--border-radius);border:none;cursor:pointer;background-color:var(--primary-color);color:#fff;transition:background-color .2s}button:hover{background-color:var(--primary-hover-color)}button:disabled{background-color:#ccc;cursor:not-allowed}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{width:100%;padding:12px;margin-bottom:15px;border:1px solid var(--border-color);border-radius:var(--border-radius);box-sizing:border-box;font-size:1rem}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.2rem}.error,.error-message{color:var(--danger-color);background-color:#f8d7da;border:1px solid #f5c6cb;padding:10px;border-radius:var(--border-radius);margin-bottom:20px}.success-message{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb;padding:10px;border-radius:var(--border-radius);margin-bottom:20px}.link-btn{background:none;border:none;color:var(--primary-color);text-decoration:underline;padding:0;cursor:pointer;font-size:1rem}.navbar{background:var(--dark-color);color:#fff;padding:15px 40px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.navbar h1{margin:0;cursor:pointer;font-size:1.5rem}.navbar-buttons button{margin-left:10px;background:none;border:1px solid transparent;color:#fff;padding:8px 12px;transition:background-color .2s,border-color .2s}.navbar-buttons button.primary{background-color:var(--primary-color)}.navbar-buttons button.primary:hover{background-color:var(--primary-hover-color)}.navbar-buttons button:hover{background-color:#ffffff1a}.centered-page{text-align:center;padding:50px 20px}.form-container{max-width:400px;margin:50px auto;padding:30px;box-shadow:var(--box-shadow);border-radius:var(--border-radius);background:#fff;text-align:center}.form-container input{width:calc(100% - 24px)}.form-container button{width:100%}.form-container .toggle-button{width:auto;margin-top:15px;background:none;border:none;color:var(--primary-color);cursor:pointer;text-decoration:underline}.dashboard-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.dashboard-card{background:#fff;padding:25px;border-radius:var(--border-radius);box-shadow:var(--box-shadow);cursor:pointer;transition:all .2s ease-in-out}.dashboard-card:hover{transform:translateY(-5px);box-shadow:0 8px 16px #00000026}.dashboard-card h3{margin-top:0;color:var(--primary-color)}.tournaments-page{padding:20px}.create-tournament-form{margin-bottom:30px;padding:20px;background:#fff;border-radius:var(--border-radius);box-shadow:var(--box-shadow);display:flex;gap:10px}.create-tournament-form input{flex-grow:1;margin-bottom:0}.tournaments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.tournament-card{padding:20px;border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:box-shadow .2s,transform .2s;background:#fff;display:flex;justify-content:space-between;align-items:center}.tournament-card:hover{transform:translateY(-5px);box-shadow:0 8px 15px #0000001a}.standard-table,.public-table{width:100%;border-collapse:collapse;margin-top:20px}.standard-table th,.standard-table td,.public-table th,.public-table td{padding:12px;border:1px solid var(--border-color);text-align:left}.standard-table th,.public-table th{background-color:var(--light-color)}.standard-table tbody tr:nth-child(odd),.public-table tbody tr:nth-child(odd){background-color:#fdfdfd}.standard-table tbody tr:hover,.public-table tbody tr:hover{background-color:#f1f1f1}.staffel-box{border:1px solid var(--border-color);border-radius:var(--border-radius);padding:15px;margin-bottom:15px;background:#fff}.staffel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.staffel-header h3{margin:0}.delete-button{background-color:var(--danger-color)}.delete-button:hover{background-color:var(--danger-hover-color)}.delete-button-small{background-color:#fcebeb;color:var(--danger-color);border:1px solid var(--danger-color);border-radius:50%;width:30px;height:30px;line-height:28px;text-align:center;padding:0;font-weight:700;cursor:pointer;transition:all .2s}.delete-button-small:hover{background-color:var(--danger-color);color:#fff}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;z-index:1000;overflow-y:auto;padding:2vh 0}.modal-content{background:#fff;padding:20px;border-radius:var(--border-radius);width:600px;max-width:90%;margin:auto}.modal-buttons{margin-top:10px;display:flex;justify-content:center;gap:15px}.html-export-modal-content{width:800px}.html-export-modal-content textarea{width:100%;height:400px;font-family:Courier New,Courier,monospace;font-size:12px;background-color:#f4f4f4;border:1px solid #ccc;padding:10px;box-sizing:border-box;resize:vertical}.modal-content form label{display:block;font-weight:700;margin-top:15px;margin-bottom:5px}.modal-content form input:not([type=checkbox]),.modal-content form select{margin-bottom:5px}.modal-content form label input[type=checkbox]{width:auto;margin-right:10px}.cross-table{width:100%;border-collapse:collapse;font-size:14px}.cross-table th,.cross-table td{border:1px solid #ccc;padding:4px;text-align:center;min-width:60px;height:40px}.cross-table input{width:50px;border:none;text-align:center;background-color:transparent}.cross-table td.diagonal{background-color:#333}.cross-table td.disabled-cell{background-color:#e9ecef}.cross-table tbody th{font-weight:700;background-color:#f8f9fa}.result-cell{padding:0!important;vertical-align:middle}.result-cell input{width:70px;border:none;background-color:transparent;text-align:center;font-size:14px}.result-cell span{display:inline-block;width:5px}.final-table-container{margin-bottom:40px;overflow-x:auto}.team-row-grid-updated{display:grid;grid-template-columns:80px 1fr 150px 40px;gap:10px;align-items:center;margin-bottom:8px}.team-row-grid-updated .team-code{font-weight:700;color:#555;text-align:center;background-color:#f0f0f0;padding:8px 0;border-radius:4px;font-size:.9em}.team-row-grid-updated input,.team-row-grid-updated select{margin-bottom:0;padding:8px;font-size:.9em}.team-row-container{position:relative}.suggestions-list{position:absolute;top:100%;left:80px;right:200px;background:#fff;border:1px solid #ccc;border-top:none;border-radius:0 0 var(--border-radius) var(--border-radius);list-style-type:none;margin:0;padding:0;max-height:200px;overflow-y:auto;z-index:100;box-shadow:0 4px 8px #0000001a}.suggestions-list li{padding:10px 15px;cursor:pointer;border-bottom:1px solid #eee}.suggestions-list li:last-child{border-bottom:none}.suggestions-list li:hover{background-color:#f0f0f0}.suggestions-list li strong{color:var(--primary-color)}.quick-add-container{padding:15px;background-color:#e9f5ff;border:1px solid #bde0ff;border-radius:var(--border-radius);margin-bottom:20px}.quick-add-container p{margin:10px 0 5px;font-weight:700}.quick-add-container button{margin-right:10px;margin-bottom:5px}.block-container{margin-bottom:40px;padding:20px;border:1px solid #e0e0e0;border-radius:var(--border-radius);background-color:#fff}.block-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #f0f0f0;padding-bottom:10px;margin-bottom:15px}.block-header h3{margin:0;font-size:1.5em;color:var(--primary-color)}.block-header span{font-size:1.1em;font-weight:700;color:#333}.schedule-table{width:100%;border-collapse:collapse}.schedule-table th,.schedule-table td{border:1px solid #ddd;padding:10px;text-align:center}.schedule-table th{background-color:#f8f9fa;font-weight:700}.schedule-table tbody tr:nth-child(2n){background-color:#fdfdfd}.schedule-table tbody tr{cursor:pointer;transition:background-color .2s}.schedule-table tbody tr.selected-row{background-color:#ffeeba!important;outline:2px solid #ffc107}.swap-controls{padding:15px;background-color:#e9f5ff;border:1px solid #bde0ff;border-radius:var(--border-radius);margin-top:20px}.swap-controls h4{margin-top:0}.swap-controls ul{list-style-type:"✓";padding-left:20px}.swap-controls li{padding-left:10px;margin-bottom:5px}.swap-controls button{margin-right:10px}.swap-controls button.secondary{background-color:var(--secondary-color)}.tabs{border-bottom:2px solid var(--border-color);margin-bottom:20px}.tabs button{background:none;border:none;padding:15px 25px;font-size:1rem;color:var(--secondary-color);border-bottom:2px solid transparent;border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.tabs button.active{color:var(--primary-color);font-weight:700;border-bottom-color:var(--primary-color)}.settings-section{padding:20px;background:#fff;border-radius:var(--border-radius);box-shadow:var(--box-shadow)}.time-input-row{display:grid;grid-template-columns:100px 1fr;gap:15px;align-items:center;margin-bottom:10px}.time-input-row label{font-weight:700;text-align:right}.time-input-row input{margin-bottom:0}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:20px}.footer-column{border:1px solid var(--border-color);padding:15px;border-radius:var(--border-radius)}.footer-column h3{margin-top:0;text-align:center;border-bottom:1px solid var(--border-color);padding-bottom:10px;margin-bottom:15px}.footer-section-config select{margin-bottom:10px}.footer-section-config textarea{min-height:80px;resize:vertical}.footer-options{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-color)}.footer-options label{display:flex;align-items:center;gap:10px}.footer-options input[type=checkbox]{width:auto;margin:0}.font-size-container{display:flex;align-items:center;gap:10px;margin-top:10px}.font-size-container label{font-size:.9em;color:#555}.font-size-container input[type=number]{width:60px;padding:5px;margin-bottom:0}.alignment-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;background-color:#f8f9fa;border-radius:var(--border-radius)}.public-links-container{display:flex;flex-direction:column;gap:15px;margin-top:10px}.public-link-group label{display:block;font-weight:700;margin-bottom:5px;font-size:.9em}.link-input-wrapper{display:flex;gap:10px}.link-input-wrapper input{flex-grow:1;background-color:#f4f4f4;color:#333;border:1px solid #ccc;margin:0}.link-input-wrapper button{padding:10px 15px;white-space:nowrap}.schedule-section{margin-bottom:40px}.schedule-section h2{color:var(--primary-color);border-bottom:2px solid var(--primary-color);padding-bottom:10px;margin-bottom:20px}.vereins-verwaltung-page{padding:20px}.vereins-verwaltung-page>button{margin-bottom:20px}.verein-card{background:#fff;border-radius:var(--border-radius);box-shadow:var(--box-shadow);margin-bottom:20px;padding:0;overflow:hidden}.verein-header{display:flex;justify-content:space-between;align-items:center;background-color:#f7f7f7;border-bottom:1px solid var(--border-color);padding:15px 20px;cursor:pointer}.verein-header:hover{background-color:#efefef}.verein-header h3{margin:0;font-size:1.2em}.verein-actions button{margin-left:10px;font-size:.9em;padding:8px 12px}.verein-body{padding:20px;display:grid;grid-template-columns:1fr 2fr;gap:20px}.verein-details{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-bottom:20px;padding:15px 20px}.verein-details p{margin:0;font-size:.9em}.verein-details dl,.team-details dl{display:grid;grid-template-columns:150px 1fr;gap:8px;margin:0}.verein-details dt,.team-details dt{font-weight:700;color:#555}.verein-details dd,.team-details dd{margin:0}.teams-list{padding:0 20px 20px}.teams-list h4{margin-top:0;margin-bottom:10px}.teams-list table{width:100%;border-collapse:collapse}.teams-list th,.teams-list td{border:1px solid var(--border-color);padding:8px;text-align:left;font-size:.9em}.teams-list th{background-color:var(--light-color)}.team-actions button{background:none;border:none;cursor:pointer;padding:5px;font-size:1.2em}.team-details{background-color:#f8f9fa;border:1px solid #e9ecef;padding:15px;border-radius:var(--border-radius);margin-bottom:10px}.team-details h5{margin-top:0;color:var(--primary-color)}.team-details-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e0e0e0;padding-bottom:8px;margin-bottom:12px}.team-details-header h5{margin:0;color:var(--primary-color)}.team-details-header div{display:flex;gap:5px}.team-details-header .edit-button-small{background-color:#e0e0e0;color:#333;border:1px solid #ccc;margin-left:auto;margin-right:5px;display:flex;align-items:center;justify-content:center;padding:5px 10px}.anmelde-form{background:#fff;padding:25px;border-radius:var(--border-radius);box-shadow:var(--box-shadow);margin-bottom:30px}.anmelde-form h2,.anmelde-form h3{margin-top:0;color:var(--primary-color)}.anmelde-form h3{font-size:1.1em;border-bottom:1px solid #eee;padding-bottom:8px;margin-bottom:15px}.anmelde-form .form-section{margin-bottom:25px}.anmelde-form .new-verein-fields{padding-left:20px;border-left:3px solid var(--primary-color);margin-top:15px}.anmelde-form label{display:flex;align-items:center;gap:10px;margin:10px 0}.anmelde-form input[type=checkbox]{width:auto;margin:0}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background:#f8f9fa;padding:10px 20px;border-radius:var(--border-radius)}.toolbar p{margin:0}.toolbar-actions button{margin-left:10px}.payment-status{margin-right:10px;font-size:1.2em}.payment-status-icon{margin:0 10px;font-size:1.2em;vertical-align:middle}.payment-status-icon.paid{color:#28a745!important}.payment-status-icon.not-paid{color:#dc3545!important}.paid-button{font-size:.8em!important;padding:4px 8px!important;margin-left:10px}.date-input-cell{display:flex;align-items:center;gap:5px}.direct-date-input{padding:4px;border:1px solid #ccc;border-radius:4px;font-size:.9em}.clear-button{background-color:#f8d7da;color:var(--danger-color);border:1px solid var(--danger-color);border-radius:50%;width:24px;height:24px;line-height:22px;text-align:center;padding:0;font-weight:700;cursor:pointer;transition:all .2s}.clear-button:hover{background-color:var(--danger-color);color:#fff}.form-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.qr-code-config-grid{display:grid;grid-template-columns:2fr 1fr;gap:30px;align-items:flex-start}.qr-code-settings-panel label{display:block;font-weight:700;margin-top:15px;margin-bottom:5px}.qr-code-settings-panel input[type=file]{margin-bottom:15px}.logo-preview{margin-top:10px;padding:10px;background-color:#f8f9fa;border:1px dashed #ccc;border-radius:var(--border-radius);display:inline-block}.logo-preview p{margin:0 0 10px;font-size:.9em}.logo-preview img{max-width:150px;max-height:75px;display:block}.qr-code-preview-panel{text-align:center;padding:20px;background-color:#f8f9fa;border-radius:var(--border-radius)}.qr-code-wrapper{background:#fff;padding:20px;display:inline-block;border-radius:var(--border-radius);box-shadow:0 2px 5px #0000001a}.qr-code-placeholder{height:256px;display:flex;align-items:center;justify-content:center;border:2px dashed #ccc;border-radius:var(--border-radius);color:#888;text-align:center;padding:20px}.button-group{margin-top:25px;display:flex;gap:15px}.radio-group{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.radio-group label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}.radio-group input[type=radio]{width:auto;margin:0}@keyframes blink{50%{opacity:.5}}.monitor-view-container{background-color:#2c3e50;color:#fff;padding:20px;min-height:100vh;box-sizing:border-box}.monitor-view-title{text-align:center;font-size:2.5rem;margin-bottom:30px;color:#ecf0f1}.monitor-view-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(480px,1fr));gap:25px}.monitor-block{background-color:#34495e;border:2px solid #7f8c8d;border-radius:var(--border-radius);padding:15px;transition:all .3s ease;display:flex;flex-direction:column}.monitor-block.current-block{border-color:#f1c40f;box-shadow:0 0 20px #f1c40f80}.monitor-block-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #7f8c8d}.monitor-block-header h3{margin:0;font-size:2rem;color:#f1c40f}.monitor-block-header span{font-size:1.8rem}.live-indicator{font-size:1.5rem;color:#e74c3c;font-weight:700;animation:blink 1.5s linear infinite}.monitor-table{width:100%;border-collapse:separate;border-spacing:0 10px;flex-grow:1}.monitor-table th{font-size:1.2rem;color:#bdc3c7;padding-bottom:10px;text-align:center}.monitor-table td{font-size:1.2rem;padding:6px;vertical-align:middle}.monitor-table .team-heim{text-align:right;font-weight:700}.monitor-table .team-gast{text-align:left;font-weight:700}.monitor-table .score-column{font-size:2rem;font-weight:700;color:#3498db;text-align:center;min-width:120px}@media(max-width:768px){main{padding:10px}.monitor-view-grid{grid-template-columns:1fr;gap:20px}.monitor-view-title{font-size:1.8rem;text-align:center}.monitor-block-header h3{font-size:1.3rem}.monitor-block-header span{font-size:1.1rem}.monitor-table{table-layout:fixed;width:100%}.monitor-table th,.monitor-table td{font-size:.8rem;padding:6px;overflow-wrap:break-word}.monitor-table .score-column{font-size:1rem;min-width:80px}.monitor-view-container>div:first-child{flex-direction:column;gap:15px}.login-button,.scroll-button{display:none}.qr-code-config-grid,.verein-body,.verein-details{grid-template-columns:1fr}}.bracket-page{padding:16px 20px;overflow-x:auto}.bracket-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.bracket-topbar h1{margin:0;font-size:1.5rem}.bracket-print-btn{background:#28a745;color:#fff;padding:8px 18px;font-size:.9rem;white-space:nowrap}.bracket-print-btn:hover{background:#218838}.bracket-gender-section{margin-bottom:32px}.bracket-gender-title{background:#2c3e50;color:#fff;padding:7px 14px;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:2px}.bracket-phase-row{display:grid;grid-template-columns:240px 195px 195px 240px;gap:4px;background:#34495e;padding:5px 4px;min-width:max-content}.bracket-phase-header{color:#b8d4ec;font-size:11px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:1px}.bracket-track{border-left:4px solid #3498db;margin-bottom:0}.bracket-track-label{background:#3498db;color:#fff;padding:4px 12px;font-weight:700;font-size:13px;display:block}.bracket-grid{display:grid;grid-template-columns:240px 195px 195px 240px;gap:4px;align-items:start;padding:6px 4px;background:#f8f9fa;min-width:max-content}.bracket-col{display:flex;flex-direction:column;gap:6px}.bracket-group-card{border:1px solid #dee2e6;border-radius:4px;overflow:hidden;background:#fff;font-size:12px}.bracket-group-header{background:#e9ecef;border-bottom:1px solid #dee2e6;padding:4px 8px;font-weight:700;font-size:11px;color:#343a40}.bracket-group-table{width:100%;border-collapse:collapse}.bracket-group-table td{padding:3px 5px;border-bottom:1px solid #f0f0f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.bracket-group-table tr:last-child td{border-bottom:none}.bracket-row-highlight{background:#fff3cd!important;font-weight:700}.bracket-row-highlight td{border-color:#ffc107!important}.bc-pos{color:#888;width:18px;font-size:11px}.bc-name{max-width:110px}.bc-pts{font-weight:700;text-align:right;width:24px;color:#333}.bc-goals{text-align:right;width:40px;color:#777;font-size:10px}.bracket-game-card{border:1px solid #ced4da;border-radius:4px;padding:5px 7px;background:#fff;font-size:12px;text-align:center;display:flex;flex-direction:column;gap:2px}.bracket-game-finale{border-color:#d4a017;background:#fffdf0;box-shadow:0 1px 4px #d4a0174d}.bracket-game-label{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;padding-bottom:4px;border-bottom:1px solid #eee;margin-bottom:2px}.bracket-game-finale .bracket-game-label{color:#b8860b;border-color:#f0d060}.bracket-game-team{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:2px 0;font-size:12px}.bracket-game-winner{font-weight:700;color:#28a745}.bracket-game-sep{font-weight:700;font-size:13px;color:#333;margin:1px 0}.bracket-game-card:not(.bracket-game-finale) .bracket-game-sep:not(:contains("vs")){color:#000}.bracket-game-placeholder{border-color:#b0bcd4;background:#f4f6fb!important}.bracket-placeholder-team{color:#5068a0;font-style:italic;font-size:11px!important}.bracket-placeholder-sep{color:#aaa;font-size:10px!important;font-weight:400!important}.bracket-empty{border:1px dashed #ced4da;border-radius:4px;padding:16px 8px;text-align:center;color:#adb5bd;font-size:11px;background:#fbfbfb}@media print{.bracket-print-btn{display:none}.bracket-page{padding:0}}
