@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--cabo-primary:#3b82f6;--cabo-secondary:#64748b;--cabo-accent:#f59e0b;--cabo-bg:#f8fafc;--cabo-card:#fff;--cabo-border:#e2e8f0;--cabo-text:#1e293b;--cabo-muted:#64748b;--cabo-success:#10b981;--cabo-error:#ef4444;--cabo-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;--cabo-shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--cabo-input-bg:#fff;--cabo-section-bg:#f8fafc;--cabo-table-header:#f1f5f9;--cabo-hover:#f1f5f9;--cabo-winner-bg:#fef3c7;--cabo-info-bg:#f0f9ff;--cabo-info-border:#bae6fd}[data-theme=dark]{--cabo-primary:#60a5fa;--cabo-secondary:#94a3b8;--cabo-accent:#fbbf24;--cabo-bg:#0f172a;--cabo-card:#1e293b;--cabo-border:#334155;--cabo-text:#f1f5f9;--cabo-muted:#94a3b8;--cabo-success:#34d399;--cabo-error:#f87171;--cabo-shadow:0 1px 3px 0 #0000004d,0 1px 2px 0 #0003;--cabo-shadow-lg:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;--cabo-input-bg:#334155;--cabo-section-bg:#334155;--cabo-table-header:#475569;--cabo-hover:#475569;--cabo-winner-bg:#451a03;--cabo-info-bg:#1e3a8a;--cabo-info-border:#3b82f6}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;background:var(--cabo-bg);color:#1e293b;color:var(--cabo-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;transition:background-color .3s ease,color .3s ease}.App,body{min-height:100vh}.App{display:flex;flex-direction:column}.App-header{align-items:center;background:#fff;background:var(--cabo-card);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--cabo-border);box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;box-shadow:var(--cabo-shadow);display:flex;justify-content:space-between;padding:1.5rem 2rem;transition:background-color .3s ease,border-color .3s ease}.App-header h1{color:#1e293b;color:var(--cabo-text);font-size:1.875rem;font-weight:700;letter-spacing:-.025em;transition:color .3s ease}.theme-toggle{align-items:center;display:flex;gap:.5rem;margin-left:1rem}.theme-toggle label{color:#64748b;color:var(--cabo-muted);cursor:pointer;font-size:.875rem;font-weight:500;transition:color .3s ease}.toggle-switch{background:#e2e8f0;background:var(--cabo-border);border-radius:12px;cursor:pointer;height:24px;position:relative;transition:background-color .3s ease;width:48px}.toggle-switch:after{background:#fff;border-radius:50%;box-shadow:0 2px 4px #0003;content:"";height:20px;left:2px;position:absolute;top:2px;transition:transform .3s ease;width:20px}.toggle-switch.active{background:#3b82f6;background:var(--cabo-primary)}.toggle-switch.active:after{transform:translateX(24px)}.theme-toggle input{display:none}.back-button{background:#64748b;background:var(--cabo-secondary);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.back-button:hover{background:#475569;transform:translateY(-1px)}.backup-button{background:#10b981;background:var(--cabo-success);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.backup-button:hover{background:#059669;transform:translateY(-1px)}main{flex:1 1;margin:0 auto;max-width:1200px;padding:2rem 1rem;width:100%}.card{background:#fff;background:var(--cabo-card);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.75rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;box-shadow:var(--cabo-shadow);margin-bottom:2rem;padding:2rem;transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease}h2,h3,h4{color:#1e293b;color:var(--cabo-text);font-weight:600;line-height:1.4;transition:color .3s ease}h2{font-size:1.5rem;margin-bottom:1.5rem}h3{font-size:1.25rem;margin-bottom:1rem}h4{font-size:1.125rem;margin-bottom:.75rem}.delete-button,.edit-button,.primary-button,.secondary-button{border:none;border-radius:.5rem;cursor:pointer;font-size:.875rem;font-weight:500;margin:.25rem;padding:.75rem 1.5rem;transition:all .2s ease}.primary-button{background:#3b82f6;background:var(--cabo-primary);color:#fff}.primary-button:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.primary-button:disabled{background:#94a3b8;color:#fff;cursor:not-allowed}.secondary-button{background:#64748b;background:var(--cabo-secondary);color:#fff}.secondary-button:hover{background:#475569;transform:translateY(-1px)}.delete-button{background:#ef4444;background:var(--cabo-error);color:#fff}.delete-button:hover{background:#dc2626;transform:translateY(-1px)}.edit-button{background:#f59e0b;background:var(--cabo-accent);color:#fff}.edit-button:hover{background:#d97706;transform:translateY(-1px)}.gruppe-details,.gruppen-liste,.leaderboard,.session-spiel{composes:card}.gruppen-liste h2{color:#1e293b;color:var(--cabo-text);margin-bottom:1.5rem}.create-gruppe-form{align-items:center;display:flex;gap:1rem;margin-bottom:2rem}.create-gruppe-form input{background:#fff;background:var(--cabo-input-bg);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.5rem;color:#1e293b;color:var(--cabo-text);flex:1 1;font-size:.875rem;min-width:200px;padding:.75rem;transition:border-color .3s ease,background-color .3s ease,color .3s ease}.create-gruppe-form input:focus{border-color:#3b82f6;border-color:var(--cabo-primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.gruppen-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.gruppe-card{background:#fff;background:var(--cabo-card);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.75rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;box-shadow:var(--cabo-shadow);padding:1.5rem;transition:all .2s ease,background-color .3s ease,border-color .3s ease}.gruppe-card:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--cabo-shadow-lg);transform:translateY(-2px)}.gruppe-card h3{color:#1e293b;color:var(--cabo-text);font-size:1.125rem}.gruppe-card h3,.gruppe-card p{margin-bottom:.5rem;transition:color .3s ease}.gruppe-card p{color:#64748b;color:var(--cabo-muted);font-size:.875rem}.gruppe-actions{display:flex;gap:.5rem;margin-top:1rem}.sessions-section,.spieler-section{background:#f8fafc;background:var(--cabo-section-bg);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.75rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;box-shadow:var(--cabo-shadow);margin-bottom:1.5rem;padding:1.5rem;transition:background-color .3s ease,border-color .3s ease}.sessions-list,.spieler-list{display:flex;flex-direction:column;gap:.75rem}.session-item,.spieler-item{align-items:center;background:#fff;background:var(--cabo-card);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.5rem;display:flex;justify-content:space-between;padding:1rem;transition:background-color .3s ease,border-color .3s ease}.session-info{display:flex;flex-direction:column;gap:.25rem}.session-date{color:#1e293b;color:var(--cabo-text);font-weight:600;transition:color .3s ease}.session-status{color:#64748b;color:var(--cabo-muted);font-size:.875rem;transition:color .3s ease}.session-status.beendet{color:#ef4444;color:var(--cabo-error)}.session-runden{color:#3b82f6;color:var(--cabo-primary);font-size:.875rem}.punkte-eingabe{background:#fff;background:var(--cabo-card);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.75rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;box-shadow:var(--cabo-shadow);margin-bottom:2rem;padding:2rem;transition:background-color .3s ease,border-color .3s ease}.punkte-form h3{color:#1e293b;color:var(--cabo-text);margin-bottom:1.5rem}.punkte-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.spieler-punkte{background:#f8fafc;background:var(--cabo-section-bg);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.5rem;display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;transition:background-color .3s ease,border-color .3s ease}.spieler-punkte label{font-weight:600;transition:color .3s ease}.spieler-punkte input,.spieler-punkte label{color:#1e293b;color:var(--cabo-text);font-size:.875rem}.spieler-punkte input{background:#fff;background:var(--cabo-input-bg);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.5rem;padding:.75rem;text-align:center;transition:all .2s ease,background-color .3s ease,color .3s ease}.spieler-punkte input:focus{border-color:#3b82f6;border-color:var(--cabo-primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.spieler-punkte .gesamt-punkte{color:#64748b;color:var(--cabo-muted);font-size:.875rem;transition:color .3s ease}.punkte-actions{display:flex;gap:1rem;justify-content:center}.leaderboard-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.leaderboard-entry{align-items:center;background:#fff;background:var(--cabo-card);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.75rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;box-shadow:var(--cabo-shadow);display:flex;gap:1rem;padding:1.5rem;transition:all .2s ease,background-color .3s ease,border-color .3s ease}.leaderboard-entry:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--cabo-shadow-lg);transform:translateY(-1px)}.leaderboard-entry.winner{background:#fef3c7;background:var(--cabo-winner-bg);border-color:#f59e0b;border-color:var(--cabo-accent);transition:background-color .3s ease,border-color .3s ease}.position{color:#1e293b;color:var(--cabo-text);font-size:1.25rem;font-weight:700;min-width:50px;transition:color .3s ease}.spieler-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.spieler-name{color:#1e293b;color:var(--cabo-text);font-size:1rem;font-weight:600;transition:color .3s ease}.spieler-punkte{color:#64748b;color:var(--cabo-muted);font-size:.875rem;transition:color .3s ease}.winner-badge{background:#f59e0b;background:var(--cabo-accent);border-radius:9999px;color:#fff;font-size:.75rem;font-weight:600;margin-left:1rem;padding:.25rem .75rem}.runden-uebersicht h3{color:#1e293b;color:var(--cabo-text);margin-bottom:1.5rem}.runden-table{background:#fff;background:var(--cabo-card);border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.75rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;box-shadow:var(--cabo-shadow);margin-bottom:1.5rem;overflow:hidden;transition:background-color .3s ease,border-color .3s ease}.runde-row,.runden-footer,.runden-header{grid-gap:1rem;align-items:center;display:grid;gap:1rem;grid-template-columns:80px repeat(auto-fit,minmax(100px,1fr)) 80px;padding:1rem}.runden-header{background:#3b82f6;background:var(--cabo-primary);color:#fff;font-weight:600}.runde-row{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--cabo-border);transition:border-color .3s ease}.runde-row:last-child{border-bottom:none}.runden-footer{background:#f8fafc;background:var(--cabo-section-bg);font-weight:600;transition:background-color .3s ease}.game-over{color:#ef4444;color:var(--cabo-error);font-weight:600}.korrektur-punkt{background:#f59e0b1a;border:1px solid #f59e0b;border:1px solid var(--cabo-accent);border-radius:.25rem;font-weight:600;padding:.25rem .5rem}.korrektur-indicator,.korrektur-punkt{color:#f59e0b;color:var(--cabo-accent)}.korrektur-indicator{font-size:.875rem;font-weight:700;margin-left:.25rem}.korrektur-info{align-items:center;background:#f0f9ff;background:var(--cabo-info-bg);border:1px solid #bae6fd;border:1px solid var(--cabo-info-border);border-radius:.5rem;color:#1e293b;color:var(--cabo-text);display:flex;font-size:.875rem;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.gesamt-punkte{color:#3b82f6;color:var(--cabo-primary);font-weight:600}.runden-actions{display:flex;flex-wrap:wrap;gap:.5rem}.spiel-uebersicht{background:#f0f9ff;background:var(--cabo-info-bg);border:1px solid #bae6fd;border:1px solid var(--cabo-info-border);border-radius:.75rem;box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;box-shadow:var(--cabo-shadow);margin-bottom:2rem;padding:1.5rem;transition:background-color .3s ease,border-color .3s ease}.spiel-uebersicht h4{color:#1e293b;color:var(--cabo-text);margin-bottom:1rem}.spiel-gesamtpunkte table,.spiel-letzte-runden table{border-collapse:collapse;margin-bottom:.5rem;width:100%}.spiel-gesamtpunkte td,.spiel-gesamtpunkte th,.spiel-letzte-runden td,.spiel-letzte-runden th{border:1px solid #e2e8f0;border:1px solid var(--cabo-border);font-size:.875rem;padding:.5rem;text-align:center;transition:border-color .3s ease}.spiel-gesamtpunkte th,.spiel-letzte-runden th{background:#f1f5f9;background:var(--cabo-table-header);color:#1e293b;color:var(--cabo-text);font-weight:600;transition:background-color .3s ease,color .3s ease}.spiel-info{color:#64748b;color:var(--cabo-muted);font-size:.875rem;margin-bottom:.75rem;transition:color .3s ease}.spiel-fuehrender{color:#10b981;color:var(--cabo-success);font-size:1rem;font-weight:600;margin-bottom:.75rem}.spiel-letzte-runden h5{color:#1e293b;color:var(--cabo-text);font-size:.875rem;margin:.5rem 0;transition:color .3s ease}.game-over-hinweis{background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#ef4444;color:var(--cabo-error);font-weight:600;margin-top:1rem;padding:1rem;text-align:center}[data-theme=dark] .game-over-hinweis{background:#450a0a;border-color:#dc2626}.empty-state{font-style:italic;transition:color .3s ease}.empty-state,.error,.loading{color:#64748b;color:var(--cabo-muted);padding:3rem;text-align:center}.error,.loading{background:#f8fafc;background:var(--cabo-section-bg);border-radius:.75rem;font-size:1.125rem;margin:2rem 0;transition:background-color .3s ease,color .3s ease}.error{color:#ef4444;color:var(--cabo-error)}.error button{background:#ef4444;background:var(--cabo-error);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:500;margin-top:1rem;padding:.75rem 1.5rem}@media (max-width:768px){.App-header{flex-direction:column;gap:1rem;padding:1rem}.theme-toggle{margin-left:0;margin-top:.5rem}.card,.gruppe-details,.gruppen-liste,.leaderboard,.punkte-eingabe,.session-spiel,main{padding:1rem}.gruppen-grid{grid-template-columns:1fr}.gruppe-actions,.session-actions{flex-direction:column}.punkte-grid{grid-template-columns:1fr}.runde-row,.runden-footer,.runden-header{font-size:.875rem;gap:.5rem;grid-template-columns:60px repeat(auto-fit,minmax(80px,1fr)) 60px;padding:.5rem}.create-gruppe-form,.create-spieler-form,.punkte-actions{flex-direction:column}}.create-spieler-form input{background:#f4f7fb;border:1px solid #e2e8f0;border:1px solid var(--cabo-border);border-radius:.5rem;box-shadow:0 2px 8px #3c507812;color:#1e293b;color:var(--cabo-text);flex:1 1;font-size:1.1rem;margin-bottom:.5rem;min-width:260px;padding:.9rem 1.2rem;transition:border-color .3s,background-color .3s,color .3s,box-shadow .3s}[data-theme=dark] .create-spieler-form input{background:#22304a;box-shadow:0 2px 8px #141e322e}.create-spieler-form button{align-items:center;background:#3b82f6;background:var(--cabo-primary);border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;height:48px;margin-left:.5rem;padding:.9rem 1.5rem;transition:background .2s,color .2s}.create-spieler-form button:disabled{background:#94a3b8;color:#fff;cursor:not-allowed}.create-spieler-form button:hover:not(:disabled){background:#2563eb}.punkte-eingabe-layout{align-items:flex-start;display:flex;gap:2rem}.punkte-eingabe-layout .punkte-form-wrapper,.punkte-eingabe-layout .spiel-uebersicht{flex:1 1 50%;min-width:320px}@media (max-width:900px){.punkte-eingabe-layout{flex-direction:column;gap:1.5rem}}.backup-manager{margin:0 auto;max-width:1200px;padding:20px}.backup-manager h2{color:#333;margin-bottom:20px;text-align:center}.message{align-items:center;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.close-btn{background:none;border:none;color:inherit;cursor:pointer;font-size:18px;margin-left:10px;padding:0}.backup-actions{flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:30px}.backup-actions,.upload-section{align-items:center;display:flex}.btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#545b62}.btn-warning{background-color:#ffc107;color:#212529}.btn-warning:hover:not(:disabled){background-color:#e0a800}.btn-danger{background-color:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background-color:#c82333}.btn-success{background-color:#28a745;color:#fff}.btn-success:hover:not(:disabled){background-color:#218838}.btn-success.disabled{cursor:not-allowed;opacity:.6}.btn-small{font-size:12px;padding:6px 12px}.backups-list h3{color:#555;margin-bottom:20px;text-align:center}.no-backups{color:#666;font-style:italic;padding:40px;text-align:center}.backup-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.backup-item{background-color:#f9f9f9;border:1px solid #ddd;border-radius:8px;padding:20px;transition:all .2s ease}.backup-item:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.backup-info h4{color:#333;font-size:16px;margin:0 0 10px;word-break:break-all}.backup-info p{color:#666;font-size:14px;margin:5px 0}.backup-item .backup-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}@media (max-width:768px){.backup-manager{padding:10px}.backup-grid{grid-template-columns:1fr}.backup-actions,.backup-item .backup-actions{flex-direction:column}}
/*# sourceMappingURL=main.d9ebf161.css.map*/