*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0f0f0f;--bg-secondary:#1a1a1a;--bg-card:#1e1e1e;--bg-hover:#2a2a2a;--green:#00ff41;--green-dim:#0c3;--blue:#0af;--yellow:#fc0;--red:#f33;--orange:#fa0;--text-primary:#fff;--text-secondary:#aaa;--text-muted:#555;--border:#2a2a2a;--border-bright:#444;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-card:0 4px 20px #0006}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}a{color:var(--green);text-decoration:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#333;border-radius:3px}.app-wrapper{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1;width:100%;padding:28px 40px}.navbar{z-index:100;background:#141414;border-bottom:1px solid #1f1f1f;align-items:center;gap:8px;height:56px;padding:0 32px;display:flex;position:sticky;top:0}.navbar-brand{color:var(--green);letter-spacing:1px;cursor:pointer;margin-right:24px;font-size:1.1em;font-weight:700}.navbar-brand span{color:#fff}.nav-links{gap:4px;display:flex}.nav-link{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:.9em;transition:background .15s,color .15s}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{color:var(--green);background:#00ff411a}.navbar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.nav-user{color:var(--green);background:#00ff4114;border:1px solid #00ff4133;border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600}.nav-logout{border:1px solid var(--border-bright);color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;padding:6px 12px;font-size:.85em}.nav-logout:hover{color:var(--red);border-color:var(--red)}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:10px 18px;font-size:.9em;font-weight:600;transition:filter .15s,transform .1s;display:inline-flex}.btn:hover{filter:brightness(1.15)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--green);color:#000}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-bright)}.btn-danger{color:var(--red);border:1px solid var(--red);background:0 0}.btn-orange{color:var(--orange);border:1px solid var(--orange);background:0 0}.btn-sm{padding:6px 12px;font-size:.82em}.btn:disabled{opacity:.4;cursor:not-allowed}.page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-header h1{font-size:1.6em;font-weight:600}.page-actions{gap:10px;display:flex}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px}.card-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.card-header h2{font-size:1.1em;font-weight:600}.card-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.turnier-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;padding:20px;transition:border-color .15s,transform .1s}.turnier-card:hover{border-color:var(--green);transform:translateY(-2px)}.turnier-card-name{margin-bottom:8px;font-size:1.1em;font-weight:600}.turnier-card-meta{color:var(--text-secondary);flex-wrap:wrap;gap:12px;font-size:.85em;display:flex}.turnier-card-footer{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.badge{border-radius:20px;padding:3px 10px;font-size:.78em;font-weight:600;display:inline-block}.badge-geplant{color:var(--blue);background:#00aaff26}.badge-aktiv{color:var(--green);background:#00ff4126}.badge-beendet{color:var(--text-muted);background:#5555554d}.badge-pausiert{color:var(--orange);background:#ffaa0026}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:24px;display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 18px;font-size:.9em;transition:color .15s}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--green);border-bottom-color:var(--green)}.admin-table{border-collapse:collapse;width:100%}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 12px;font-size:.78em}.admin-table td{border-bottom:1px solid var(--border);padding:12px;font-size:.9em}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--bg-hover)}.table-actions{gap:6px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-group.full{grid-column:1/-1}.form-group label{color:var(--text-secondary);font-size:.82em;font-weight:500}.form-group input,.form-group select,.form-group textarea{background:var(--bg-secondary);border:1px solid var(--border-bright);color:var(--text-primary);border-radius:var(--radius-sm);padding:10px 12px;font-size:.9em}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--green);outline:none}.form-group select option{background:var(--bg-secondary)}.form-group textarea{resize:vertical;min-height:80px}.form-check{cursor:pointer;align-items:center;gap:8px;font-size:.9em;display:flex}.form-check input{cursor:pointer;width:16px;height:16px;accent-color:var(--green)}.form-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg-card);border:1px solid var(--border-bright);border-radius:var(--radius-lg);width:90%;max-width:520px;max-height:85vh;box-shadow:var(--shadow-card);padding:28px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h3{font-size:1.1em;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.4em;line-height:1}.modal-close:hover{color:var(--text-primary)}.toast-container{z-index:2000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{border-radius:var(--radius-sm);min-width:220px;box-shadow:var(--shadow-card);padding:12px 18px;font-size:.88em;animation:.2s slideIn}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-success{border:1px solid var(--green);color:var(--green);background:#1a3a1a}.toast-error{border:1px solid var(--red);color:var(--red);background:#3a1a1a}.toast-info{border:1px solid var(--blue);color:var(--blue);background:#1a2a3a}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;padding:60px 20px;display:flex}.empty-state h3{color:var(--text-secondary);font-size:1.1em}.loading{min-height:60vh;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.info-row{flex-wrap:wrap;gap:24px;margin-bottom:20px;display:flex}.info-item{flex-direction:column;gap:3px;display:flex}.info-item label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.75em}.info-item span{color:var(--text-primary);font-size:.95em;font-weight:500}.gruppen-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.gruppe-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}.gruppe-card h4{color:var(--text-secondary);margin-bottom:10px;font-size:.88em}.gruppe-spieler-item{border-radius:var(--radius-sm);background:var(--bg-card);justify-content:space-between;align-items:center;margin-bottom:4px;padding:6px 8px;font-size:.85em;display:flex}.section{margin-bottom:32px}.section-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-header h3{font-size:1em;font-weight:600}.phase-item{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 14px;display:flex}.phase-item-left{flex-direction:column;gap:3px;display:flex}.phase-item-name{font-size:.92em;font-weight:600}.phase-item-meta{color:var(--text-muted);font-size:.78em}.phase-item-right{align-items:center;gap:8px;display:flex}.boards-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.board-tile{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:14px}.board-tile.frei{border-color:var(--green)}.board-tile.belegt{border-color:var(--orange)}.board-nr{font-size:1.4em;font-weight:700}.board-status{margin-top:4px;font-size:.75em}.board-status.frei{color:var(--green)}.board-status.belegt{color:var(--orange)}.match-row{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 14px;display:flex}.match-players{align-items:center;gap:10px;font-size:.9em;display:flex}.match-vs{color:var(--text-muted);font-size:.8em}.match-result{color:var(--green);font-size:.9em;font-weight:700}.match-meta{color:var(--text-muted);font-size:.78em}@media (width<=768px){.app-main{padding:16px}.form-grid,.card-grid{grid-template-columns:1fr}}body.light{--bg-primary:#f4f4f5;--bg-secondary:#fff;--bg-card:#fff;--bg-hover:#e8e8ea;--text-primary:#111;--text-secondary:#444;--text-muted:#888;--border:#e0e0e0;--border-bright:#ccc;--shadow-card:0 2px 12px #00000014}body.light .navbar{background:#fff;border-bottom-color:#e0e0e0}body.light .navbar-brand span{color:#111}body.light .nav-link{color:#555}body.light .nav-link:hover{color:#111;background:#f0f0f0}body.light .nav-link.active{color:#0a2;background:#00b4281a}body.light .nav-logout{color:#666}body.light .admin-table th{color:#999}body.light .admin-table tr:hover td{background:#f8f8f8}body.light .modal-overlay{background:#0006}body.light .toast-success{color:#0a2;background:#efffef;border-color:#0a2}body.light .toast-error{color:#c22;background:#fff0f0;border-color:#c22}body,body *{transition:background-color .2s,border-color .2s,color .15s}
