*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;padding:20px}.navBar{display:flex;gap:15px;margin-bottom:20px;justify-content:center;flex-wrap:wrap}.navLink{padding:10px 20px;background:white;color:#667eea;text-decoration:none;border-radius:8px;font-weight:600;transition:all .3s;box-shadow:0 4px 12px #0000001a}.navLink:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000026;background:#f0f0f0}.container{padding:20px;color:#333;max-width:1400px;margin:0 auto}.section{background:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 4px 6px #0000001a}.section h2{margin-bottom:15px;color:#333}.addPlayerForm{display:flex;gap:10px;margin-bottom:20px}.input{flex:1;padding:12px;border:2px solid #ddd;border-radius:8px;font-size:16px;transition:border-color .3s}.input:disabled{background-color:#f0f0f0;cursor:not-allowed}.button{padding:12px 20px;border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:700;transition:transform .2s,opacity .2s}.button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 8px #0003}.button:disabled{opacity:.6;cursor:not-allowed}.primaryBtn{background:#4CAF50;color:#fff}.dangerBtn{background:#f44336;color:#fff}.deleteBtn{background:#ff6b6b;color:#fff;padding:8px 12px;font-size:14px}.announceBtn{background:#2196F3;color:#fff;padding:15px 30px;font-size:18px}.winBtn{background:#FFD700;color:#000}.playersList{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:20px}.playerCard{display:flex;flex-direction:column;gap:15px;padding:25px;border:2px solid #ddd;border-radius:12px;background:#f9f9f9;transition:all .3s;min-height:180px}.playerCard.first5{background:#fff9e6;border-color:gold;border-width:3px;box-shadow:0 0 15px #ffd7004d}.playerInfo{flex:1}.playerInfo strong{display:block;font-size:18px;margin-bottom:12px;color:#333}.tokens{margin-bottom:10px;font-size:16px;color:#555;font-weight:500}.tokens span{font-size:18px;margin-left:5px}.playerActions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tokens{margin-top:8px;font-size:14px;color:#666}.tokenPositive{color:#4caf50;font-weight:700}.tokenNegative{color:#f44336;font-weight:700}.controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.announcerSection{display:flex;align-items:center;gap:30px;margin-bottom:20px;justify-content:center;flex-wrap:wrap}.announcedDisplay{text-align:center;padding:20px;background:#f0f0f0;border-radius:12px;min-width:150px}.announcedTitle{font-size:14px;color:#666;margin-bottom:10px}.lastNumber{font-size:48px;font-weight:700;color:#2196f3;margin:10px 0}.placeholderNumber{font-size:48px;font-weight:700;color:#ccc;margin:10px 0}.announcedCount{font-size:14px;color:#666;margin-top:10px}.announcedNumbers{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:15px}.announcedNumberBadge{background:#2196F3;color:#fff;padding:6px 10px;border-radius:6px;font-size:14px;font-weight:700}.ticketsContainer{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}.ticketSection{padding:15px;background:#f9f9f9;border-radius:8px;border:2px solid #ddd}.playerName{text-align:center;margin-bottom:15px;color:#333}.numberGrid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin-bottom:15px}.numberButton{padding:8px;border:2px solid #ddd;border-radius:6px;cursor:pointer;font-size:14px;font-weight:700;background:#fff;color:#333;transition:all .2s}.numberButton:hover:not(:disabled){background:#e3f2fd;border-color:#2196f3}.numberButtonMarked{background:#4CAF50;color:#fff;border-color:#4caf50}.numberButtonEmpty{background:transparent;border:1px dashed #ddd;cursor:default;pointer-events:none}.numberButtonInactive{background:#ffffff;color:#666;border-color:#dfe3e8;opacity:1}.numberButtonActive{background:#ffffff;color:#222;border-color:#2196f3;box-shadow:inset 0 0 0 2px #2196f32e}.numberButtonActive:hover{background:#eef7ff;transform:translateY(-1px)}.numberButtonMarked{background:#2e7d32;color:#fff;border-color:#2e7d32;box-shadow:inset 0 0 0 2px #ffffff40}.ticketActions{display:flex;justify-content:space-between;align-items:center;margin-top:15px;padding:10px;background:#fff;border-radius:6px}.markedCount{font-size:14px;font-weight:700;color:#666}.winnerBadge{font-size:12px;color:gold;margin-top:5px;font-weight:700}.first5Badge{font-size:12px;color:#ff9800;margin-top:5px;font-weight:700}.first5Btn{background:#FF9800;color:#fff;padding:8px 12px;font-size:12px}.first5Btn.active{background:#4CAF50}.infoBtn{background:#2196F3;color:#fff}.numberMatrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:15px;margin-top:20px}.matrixColumn{display:flex;flex-direction:column;gap:5px}.columnHeader{background:#2196F3;color:#fff;padding:8px;border-radius:4px;font-weight:700;font-size:12px;text-align:center}.matrixNumber{border:2px solid #ddd;padding:12px;text-align:center;font-weight:700;border-radius:6px;background:#fff;color:#333;transition:all .2s}.matrixNumber.announced{background:#4CAF50;color:#fff;border-color:#4caf50;font-weight:700}.winnerSection{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.playerBoardContainer{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.playerBoard{width:100%;max-width:760px}.playerBoardHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.playerBoardHint{color:#666;margin-bottom:12px}.playerBoardStats{display:flex;justify-content:space-between;margin-bottom:12px;font-weight:600;color:#333}.ticketMatrix{display:flex;flex-direction:column;gap:8px}.ticketMatrix{display:flex;flex-direction:column;gap:6px}.ticketColumnHeaders{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}.ticketColumnHeader{text-align:center;font-size:11px;font-weight:700;color:#666;padding:4px 2px}.ticketRow{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}.playerBoardActions{margin-top:16px;display:flex;justify-content:center}.winnerSection select{flex:1;min-width:200px}.announcementDisplay{background:#f5f5f5;padding:15px;border-radius:8px;margin-bottom:20px}.announcementTitle{font-weight:700;color:#333;margin-bottom:10px;font-size:14px}.sequentialNumbers{display:flex;gap:8px;overflow-x:auto;padding:10px;background:white;border-radius:6px;border:2px solid #ddd;min-height:50px;align-items:center}.sequentialNumbers::-webkit-scrollbar{height:6px}.sequentialNumbers::-webkit-scrollbar-track{background:#f1f1f1}.sequentialNumbers::-webkit-scrollbar-thumb{background:#2196F3;border-radius:3px}.sequentialNumber{display:flex;align-items:center;justify-content:center;background:#2196F3;color:#fff;padding:8px 14px;border-radius:6px;font-weight:700;min-width:50px;flex-shrink:0}.placeholderSequence{color:#999;font-size:14px}.announceControls{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.autoAnnounceSection{display:flex;gap:10px;align-items:center;background:#f9f9f9;padding:10px 15px;border-radius:8px;border:1px solid #ddd}.autoAnnounceSection label{font-weight:700;color:#333;font-size:14px}.intervalSelect{padding:8px 12px;border:2px solid #ddd;border-radius:6px;font-size:14px;cursor:pointer;background:white;color:#333}.intervalSelect:disabled{background-color:#f0f0f0;cursor:not-allowed;opacity:.6}.playBtn{background:#4CAF50;color:#fff}.pauseBtn{background:#FF9800;color:#fff}.winnerInfo{background:#e3f2fd;padding:12px;border-radius:6px;border-left:4px solid #2196F3;margin-bottom:15px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 600px){.playerBoardContainer{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-start;padding:10px 8px 8px}.playerBoard{width:100%;max-width:100%}.playerBoardHeader{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:8px}.playerBoardHeader h2{margin:0;font-size:1.5em}.playerBoardHeader button{width:100%;padding:12px 16px;font-size:14px}.playerBoardHint{font-size:12px;margin-bottom:8px}.playerBoardStats{font-size:12px;margin-bottom:10px;gap:20px}.section{padding:12px;margin-bottom:12px}.ticketColumnHeaders{gap:4px}.ticketColumnHeader{font-size:10px;padding:2px 1px}.ticketRow{gap:4px;margin-bottom:4px}.numberButton{padding:6px;font-size:12px;border-width:1px;min-height:36px;display:flex;align-items:center;justify-content:center}.playerBoardActions{margin-top:12px;display:flex;flex-direction:column;gap:10px!important}.playerBoardActions button{width:100%;padding:14px 12px;font-size:14px;font-weight:700}.playerBoardActions button:disabled{opacity:.5}}@media (max-width: 600px){body{padding:8px}.container{padding:10px;max-width:100%}.title{font-size:1.8em;margin-bottom:15px}.section{padding:12px;margin-bottom:15px;border-radius:8px}.section h2{font-size:1.2em;margin-bottom:10px}.section h3{font-size:1em;margin-bottom:8px}.addPlayerForm{flex-direction:column;gap:8px}.addPlayerForm input,.addPlayerForm button{width:100%;padding:12px;font-size:16px}.playersList{grid-template-columns:1fr;gap:12px}.playerCard{min-height:auto;padding:12px;gap:10px}.playerInfo strong{font-size:16px}.playerActions{flex-direction:column;gap:8px}.playerActions button{width:100%;padding:10px;font-size:12px}.controls{flex-direction:column;gap:10px}.controls button{width:100%;padding:12px;font-size:14px}.announcerSection{flex-direction:column;gap:15px;margin-bottom:15px}.announcedDisplay{width:100%;min-width:auto;padding:15px}.lastNumber{font-size:36px}.announceControls{flex-direction:column;gap:12px;width:100%}.announceControls button{width:100%;padding:14px;font-size:14px}.autoAnnounceSection{flex-direction:column;width:100%}.intervalSelect{width:100%}.numberMatrix{grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:8px}.matrixNumber{padding:8px;font-size:12px}.columnHeader{font-size:10px;padding:6px}.winnerSection{flex-direction:column;gap:10px}.winnerSection select{width:100%;min-width:auto}.winnerSection button{width:100%}}@media (max-width: 900px) and (min-width: 600px){.container{max-width:100%}.title{font-size:2em;margin-bottom:20px}.playersList{grid-template-columns:repeat(2,1fr)}.announcerSection{flex-direction:column}.numberMatrix{grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}.announceControls{flex-wrap:wrap}}@media (max-width: 1200px) and (min-width: 900px){.container{max-width:100%}.playersList{grid-template-columns:repeat(3,1fr)}.numberMatrix{grid-template-columns:repeat(auto-fit,minmax(75px,1fr))}}@media (max-width: 600px){button{min-height:44px;min-width:44px}input,select{min-height:44px}.input,.intervalSelect{min-height:44px;font-size:16px}}@media (max-width: 480px){.numberMatrix{display:none}.announceControls{flex-direction:column}.button{padding:12px 16px;font-size:14px}}.imageBucketContainer{max-width:1200px;margin:0 auto;padding:20px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.title{text-align:center;color:#fff;font-size:2.5em;margin-bottom:30px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.section{background:white;border-radius:12px;padding:25px;margin-bottom:25px;box-shadow:0 8px 32px #0000001a}.section h2{color:#333;margin-top:0;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.refreshBtn,.downloadAllBtn{background:none;border:none;font-size:.95em;cursor:pointer;padding:8px 16px;border-radius:6px;transition:all .2s;font-weight:500;margin-left:8px}.refreshBtn:hover{background:rgba(102,126,234,.1)}.downloadAllBtn{background:rgba(76,175,80,.1);color:#2e7d32}.downloadAllBtn:hover:not(:disabled){background:rgba(76,175,80,.2);transform:translateY(-1px)}.downloadAllBtn:disabled{opacity:.5;cursor:not-allowed}.tabsContainer{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #e0e0e0}.tabButton{padding:12px 20px;background:none;border:none;border-bottom:3px solid transparent;font-size:1em;font-weight:500;color:#666;cursor:pointer;transition:all .3s}.tabButton:hover{color:#333}.tabButton.active{color:#667eea;border-bottom-color:#667eea}.pageInfo{text-align:center;color:#666;font-size:.9em;margin-bottom:15px;padding:10px;background:#f5f5f5;border-radius:6px}.paginationContainer{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:25px;padding-top:20px;border-top:1px solid #e0e0e0}.paginationBtn{padding:10px 16px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.paginationBtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.paginationBtn:disabled{opacity:.5;cursor:not-allowed}.pageNumbers{display:flex;gap:5px}.pageNumber{padding:8px 12px;background:white;border:2px solid #e0e0e0;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;color:#333}.pageNumber:hover{border-color:#667eea;color:#667eea}.pageNumber.active{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-color:#667eea}.uploadForm{display:flex;flex-direction:column;gap:15px}.fileInput{padding:10px;border:2px dashed #667eea;border-radius:8px;cursor:pointer;background:#f8f9ff;transition:all .3s}.fileInput:hover{border-color:#764ba2;background:#f0f2ff}.fileInput:disabled{opacity:.5;cursor:not-allowed}.selectedFileInfo{padding:12px;background:#e8f5e9;border-left:4px solid #4caf50;border-radius:4px;color:#2e7d32;font-size:.95em}.uploadBtn{padding:12px 24px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:8px;font-size:1em;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.uploadBtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.uploadBtn:disabled{opacity:.5;cursor:not-allowed}.errorMessage{background:#ffebee;border-left:4px solid #f44336;color:#c62828;padding:15px;border-radius:4px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.closeError{background:none;border:none;font-size:1.5em;cursor:pointer;color:#c62828;padding:0;width:30px;height:30px}.gallerySection{min-height:400px}.loadingMessage,.emptyState{text-align:center;padding:40px;color:#666;font-size:1.1em}.emptyState{background:#f5f5f5;border-radius:8px}.imageGallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.imageCard{border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;background:white;transition:all .3s;display:flex;flex-direction:column;box-shadow:0 4px 12px #0000001a}.imageCard:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.imageCard.deleteConfirm{border-color:#f44336;background:#ffebee}.imagePreview{width:100%;height:200px;background:#f5f5f5;overflow:hidden;display:flex;align-items:center;justify-content:center}.imagePreview img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.imagePreview video{width:100%;height:100%;object-fit:cover}.imagePreview.videoPreview{position:relative;background:linear-gradient(135deg,#2c3e50 0%,#1a1a1a 100%);display:flex;align-items:center;justify-content:center}.videoPlaceholder{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;transition:all .3s}.videoPlaceholder:hover{background:linear-gradient(135deg,#3a4f63 0%,#262626 100%)}.playButton{font-size:4em;opacity:.8;transition:all .3s;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.imageCard:hover .playButton{opacity:1;transform:scale(1.2)}.videoBadge{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.7);color:#fff;padding:6px 12px;border-radius:4px;font-size:.75em;font-weight:600;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.imageCard:hover .imagePreview img{transform:scale(1.05)}.imageInfo{padding:15px;flex:1;display:flex;flex-direction:column}.imageName{font-weight:600;color:#333;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all;font-size:.95em}.imageMetadata{display:flex;flex-direction:column;gap:5px;font-size:.85em;color:#666}.metaItem{display:flex;align-items:center;gap:5px}.imageActions{padding:12px 15px;background:#f9f9f9;border-top:1px solid #e0e0e0;display:flex;gap:8px;flex-wrap:wrap}.imageCard.deleteConfirm .imageActions{background:#fff3e0}.button{padding:8px 12px;border:none;border-radius:6px;font-size:.85em;font-weight:500;cursor:pointer;transition:all .2s;flex:1;white-space:nowrap;min-width:80px}.viewBtn{background:#e3f2fd;color:#1976d2;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:5px}.viewBtn:hover{background:#bbdefb}.downloadBtn{background:#fff3e0;color:#e65100}.downloadBtn:hover{background:#ffe0b2}.deleteBtn{background:#ffebee;color:#d32f2f}.deleteBtn:hover{background:#ef5350;color:#fff}.confirmDeleteBtn{background:#f44336;color:#fff;flex:1.5}.confirmDeleteBtn:hover{background:#d32f2f}.cancelDeleteBtn{background:#9e9e9e;color:#fff}.cancelDeleteBtn:hover{background:#616161}.videoModal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.videoModalContent{background:white;border-radius:12px;overflow:hidden;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d;position:relative}.closeVideoBtn{position:absolute;top:15px;right:15px;background:rgba(0,0,0,.6);color:#fff;border:none;border-radius:50%;width:40px;height:40px;font-size:1.5em;cursor:pointer;z-index:10;transition:all .2s;display:flex;align-items:center;justify-content:center}.closeVideoBtn:hover{background:rgba(0,0,0,.8);transform:scale(1.1)}.videoPlayerContainer{background:#000;display:flex;align-items:center;justify-content:center;max-height:70vh;overflow:hidden}.videoPlayer{width:100%;height:100%;max-height:70vh;object-fit:contain}.videoModalInfo{padding:15px 20px;background:#f5f5f5;border-top:1px solid #e0e0e0}.videoFileName{margin:0 0 5px;font-weight:600;color:#333;word-break:break-all;font-size:.95em}.videoFileSize{margin:0;color:#666;font-size:.9em}@media (max-width: 768px){.imageBucketContainer{padding:10px}.title{font-size:1.8em;margin-bottom:20px}.section{padding:15px;margin-bottom:15px}.imageGallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.imagePreview{height:150px}.button{padding:6px 10px;font-size:.8em;min-width:60px}}@media (max-width: 480px){.imageGallery{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.imageActions{flex-direction:column}.button{width:100%}}.passwordProtectedContainer{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:20px}.passwordForm{background:white;border-radius:16px;padding:40px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:400px;text-align:center}.passwordForm h1{color:#333;margin-bottom:10px;font-size:2em}.subtitle{color:#666;margin-bottom:30px;font-size:1em}.inputGroup{margin-bottom:20px}.passwordInput{width:100%;padding:14px;font-size:1em;border:2px solid #e0e0e0;border-radius:8px;transition:all .3s;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.passwordInput:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.passwordInput.error{border-color:#f44336}.errorMessage{color:#f44336;margin-bottom:20px;padding:12px;background:#ffebee;border-radius:6px;font-size:.95em}.submitButton{width:100%;padding:14px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:8px;font-size:1em;font-weight:600;cursor:pointer;transition:all .3s}.submitButton:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.submitButton:active{transform:translateY(0)}.authHeader{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:15px 20px;border-radius:8px 8px 0 0;margin-bottom:0}.authBadge{color:#fff;font-weight:600;font-size:.95em;display:flex;align-items:center;gap:8px}.logoutButton{padding:8px 16px;background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:6px;font-size:.85em;font-weight:500;cursor:pointer;transition:all .3s}.logoutButton:hover{background:rgba(255,255,255,.3);border-color:#fff9}@media (max-width: 480px){.passwordForm{padding:30px 20px}.passwordForm h1{font-size:1.5em}.passwordInput,.submitButton{padding:12px;font-size:.95em}}
