body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; display: flex; justify-content: center; align-items: flex-start; min-height: 100vh; background: radial-gradient(ellipse at bottom, #0d1d31 0%, #0c0d13 100%); line-height: 1.6; margin: 0; padding: 0; overflow-x: hidden; padding-top: 40px; } .main-container { margin-top: 60px; width: 90%; max-width: 1200px; background: linear-gradient(145deg, rgba(25, 50, 50, 0.95) 0%, rgba(0, 4, 39, 0.95) 100%); border-radius: 16px; box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.03), 0 0 40px -10px rgba(0, 188, 212, 0.2); padding: 20px 0; backdrop-filter: blur(6px); position: relative; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.05); transition: transform 0.3s ease, box-shadow 0.3s ease; } .main-container:hover { transform: translateY(-2px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05), 0 0 60px -15px rgba(0, 188, 212, 0.3); } .main-container::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(0, 188, 212, 0.15) 0%, rgba(0, 0, 0, 0) 70%); z-index: -1; animation: rotate 20s linear infinite; } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .header-section { display: flex; justify-content: space-between; align-items: center; padding: 0 24px; margin-bottom: 16px; } .title { margin: 0; font-size: 24px; color: #fff; font-weight: 700; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); letter-spacing: -0.5px; background: linear-gradient(90deg, #ffffff, #b3e5fc); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .create-button { background: linear-gradient(145deg, #00bcd4 0%, #00838f 100%); color: white; border: none; padding: 10px 20px; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.08); border: 1px solid rgba(255, 255, 255, 0.15); position: relative; overflow: hidden; } .create-button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: 0.5s; } .create-button:hover { background: linear-gradient(145deg, #00e5ff 0%, #00acc1 100%); transform: translateY(-2px); box-shadow: 0 7px 14px rgba(0, 0, 0, 0.15), 0 3px 6px rgba(0, 0, 0, 0.1); } .create-button:hover::before { left: 100%; } .divider-line { height: 1px; background: linear-gradient(to right, rgba(0,0,0,0) 20px, rgba(255,255,255,0.15) 20px, rgba(255,255,255,0.15) calc(100% - 20px), rgba(0,0,0,0) calc(100% - 20px)); margin: 0 20px 20px 20px; position: relative; } .divider-line::after { content: ''; position: absolute; top: -2px; left: 50%; transform: translateX(-50%); width: 30px; height: 3px; background: #00bcd4; border-radius: 3px; box-shadow: 0 0 10px rgba(0, 188, 212, 0.5); } .battles-container { width: 96%; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; } /* Enhanced Battle Item Layout - More Compact */ .battle-item { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; padding: 0; backdrop-filter: blur(6px); transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); position: relative; overflow: hidden; display: flex; flex-direction: column; } .battle-item::before { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 100%; background: linear-gradient(to bottom, #00bcd4, #00838f); transition: width 0.3s ease; } .battle-item:hover { background: rgba(255, 255, 255, 0.12); transform: translateY(-3px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05); } .battle-item:hover::before { width: 6px; } /* Battle Header Section - Compact */ .battle-header { display: flex; justify-content: space-between; align-items: flex-start; padding: 14px 20px 10px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .battle-title-section { flex: 1; } .battle-title { margin: 0 0 6px 0; color: #fff; font-size: 18px; font-weight: 700; letter-spacing: -0.3px; background: linear-gradient(90deg, #ffffff, #b3e5fc); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .battle-subtitle { display: flex; align-items: center; gap: 10px; margin: 0; color: rgba(255, 255, 255, 0.7); font-size: 13px; font-weight: 500; } .battle-mode-badge { background: rgba(0, 188, 212, 0.15); border: 1px solid rgba(0, 188, 212, 0.3); border-radius: 5px; padding: 3px 6px; font-size: 11px; font-weight: 600; color: #00bcd4; text-transform: uppercase; letter-spacing: 0.5px; } .battle-players-info { color: rgba(255, 255, 255, 0.8); font-weight: 600; } .battle-value-section { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; } .battle-total-value { display: flex; align-items: center; gap: 5px; background: rgba(0, 188, 212, 0.1); border: 1px solid rgba(0, 188, 212, 0.2); border-radius: 6px; padding: 6px 10px; } .battle-total-value .value-amount { color: #00bcd4; font-weight: 700; font-size: 15px; } .battle-total-value img { width: 18px; height: 18px; } .battle-status { background: rgba(255, 193, 7, 0.15); border: 1px solid rgba(255, 193, 7, 0.3); border-radius: 5px; padding: 3px 6px; color: #ffc107; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; } /* Battle Content Section - More Compact */ .battle-content { padding: 10px 20px 12px; } .battle-cases { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 8px; max-width: 100%; } .battle-case-item { display: flex; flex-direction: column; align-items: center; background: rgba(0, 0, 0, 0.2); border-radius: 6px; padding: 8px 6px; border: 1px solid rgba(0, 188, 212, 0.1); transition: all 0.3s ease; position: relative; } .battle-case-item:hover { background: rgba(0, 0, 0, 0.3); border-color: rgba(0, 188, 212, 0.2); transform: translateY(-2px); } .battle-case-image { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.05); border-radius: 4px; margin-bottom: 6px; overflow: hidden; } .battle-case-image img { max-width: 100%; max-height: 100%; object-fit: contain; } .battle-case-info { text-align: center; } .battle-case-name { color: rgba(255, 255, 255, 0.9); font-size: 11px; font-weight: 600; margin-bottom: 3px; line-height: 1.2; } .battle-case-quantity { color: #00bcd4; font-size: 10px; font-weight: 700; background: rgba(0, 188, 212, 0.15); border: 1px solid rgba(0, 188, 212, 0.3); border-radius: 8px; padding: 1px 4px; display: inline-block; } /* Status color variations */ .battle-status.waiting { background: rgba(255, 193, 7, 0.15); border-color: rgba(255, 193, 7, 0.3); color: #ffc107; } .battle-status.active { background: rgba(76, 175, 80, 0.15); border-color: rgba(76, 175, 80, 0.3); color: #4caf50; } .battle-status.finished { background: rgba(158, 158, 158, 0.15); border-color: rgba(158, 158, 158, 0.3); color: #9e9e9e; } /* Loading and Empty States */ .no-battles { color: rgba(255, 255, 255, 0.6); text-align: center; padding: 40px 20px; font-size: 15px; font-weight: 500; letter-spacing: 0.5px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; backdrop-filter: blur(6px); } /* Animation for new battles */ @keyframes battleSlideIn { from { opacity: 0; transform: translateY(-20px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } } .battle-item.new-battle { animation: battleSlideIn 0.5s cubic-bezier(0.25, 0.8, 0.25, 1) forwards; } .main-container::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(0, 188, 212, 0.5), transparent); box-shadow: 0 0 20px 5px rgba(0, 188, 212, 0.3); animation: glow 3s ease-in-out infinite alternate; } @keyframes glow { 0% { opacity: 0.5; } 100% { opacity: 1; } } /* SHARED MODAL STYLES */ /* When modal is open - FIXED SCROLL LOCK */ body.modal-open { overflow: hidden; position: fixed; width: 100%; height: 100%; touch-action: none; } /* Base Modal Styling */ #casebattle-modal, #battle-modification-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background: rgba(5, 15, 25, 0.95); z-index: 10000; padding: 0; box-sizing: border-box; backdrop-filter: blur(8px); animation: fadeIn 0.3s ease-out forwards; overflow: hidden; } #battle-modification-modal { z-index: 10001; /* Higher than the first modal */ } /* Modal Background Effects */ #casebattle-modal::before, #battle-modification-modal::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 75% 25%, rgba(0, 150, 200, 0.15) 0%, rgba(0, 50, 100, 0.3) 100%); z-index: -1; } /* Modal Content Container */ #casebattle-modal .modal-content, #battle-modification-modal .modal-content { background: linear-gradient(152deg, rgba(15, 35, 55, 0.98) 0%, rgba(5, 15, 30, 0.98) 100%); width: 100%; max-width: 1200px; height: 100vh; margin: 0 auto; border-radius: 0; position: relative; overflow: hidden; border: none; display: flex; flex-direction: column; } /* Top accent line */ #casebattle-modal .modal-content::before, #battle-modification-modal .modal-content::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #00b4d8, #0096c7, #00b4d8); background-size: 200% 100%; animation: gradientFlow 3s ease infinite; } /* Modal Headers */ #casebattle-modal .modal-header, #battle-modification-modal .modal-header { border-radius: 10px; display: flex; flex-direction: column; padding: 1.75rem 2rem 1.25rem; position: relative; gap: 12px; } #casebattle-modal .modal-header h2, #battle-modification-modal .modal-header h2 { margin: 0; align-self: flex-start; color: #fff; font-size: 28px; font-weight: 700; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); letter-spacing: -0.5px; background: linear-gradient(90deg, #ffffff, #b3e5fc); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } #casebattle-modal .modal-header::after, #battle-modification-modal .modal-header::after { content: ''; position: absolute; bottom: 0; left: 2rem; right: 2rem; height: 1px; background: linear-gradient(to right, transparent, rgba(0, 188, 212, 0.3), transparent); } /* Close and Back Buttons */ #casebattle-modal .close-casebattlemodal, #battle-modification-modal .back-button { position: absolute; top: 1.5rem; right: 1.5rem; color: rgba(255, 255, 255, 0.6); font-size: 1.75rem; font-weight: 300; cursor: pointer; transition: all 0.3s ease; background: none; border: none; padding: 0.5rem; margin: -0.5rem -0.5rem -0.5rem 1rem; line-height: 1; border-radius: 50%; width: 2.5rem; height: 2.5rem; display: flex; align-items: center; justify-content: center; } #battle-modification-modal .back-button { font-size: 1rem; background: rgba(255, 255, 255, 0.1); border-radius: 8px; width: auto; height: auto; padding: 0.5rem 1rem; gap: 0.5rem; } #casebattle-modal .close-casebattlemodal:hover, #battle-modification-modal .back-button:hover { color: white; background: rgba(255, 255, 255, 0.1); transform: rotate(90deg); } #battle-modification-modal .back-button:hover { transform: translateY(-2px); } /* Modal Body */ #casebattle-modal .modal-body, #battle-modification-modal .modal-body { flex: 1; padding: 1rem 2rem; color: rgba(255, 255, 255, 0.85); line-height: 1.6; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-bottom: 120px; } /* SCROLLBAR STYLING (HIDDEN) */ #casebattle-modal ::-webkit-scrollbar, #battle-modification-modal ::-webkit-scrollbar { width: 0; background: transparent; } /* Summary Container */ #casebattle-modal .modal-summary-container, #battle-modification-modal .modal-summary-container { position: fixed; bottom: 0; left: 0; right: 0; background: linear-gradient(to bottom, rgba(5, 15, 30, 0) 0%, rgba(5, 15, 30, 0.9) 20%, rgba(5, 15, 30, 1) 100%); padding: 15px; border-top: 1px solid rgba(0, 188, 212, 0.2); backdrop-filter: blur(5px); z-index: 10; } #casebattle-modal .modal-summary-content, #battle-modification-modal .modal-summary-content { display: flex; justify-content: space-between; align-items: center; background: rgba(0, 32, 41, 0.6); border-radius: 8px; padding: 15px 20px; border: 1px solid rgba(0, 188, 212, 0.3); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), inset 0 1px 1px rgba(255, 255, 255, 0.05); } #casebattle-modal .total-summary, #battle-modification-modal .total-summary { display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 600; color: #fff; } #casebattle-modal .total-summary img, #battle-modification-modal .total-summary img { width: 24px; height: 24px; } #casebattle-modal .total-amount, #battle-modification-modal .total-amount { color: #00bcd4; font-weight: 700; } /* Action Buttons */ #casebattle-modal .create-battle-btn, #battle-modification-modal .create-final-button { background: linear-gradient(145deg, #00bcd4 0%, #00838f 100%); color: white; border: none; padding: 12px 24px; border-radius: 8px; cursor: pointer; font-size: 15px; font-weight: 600; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.08); border: 1px solid rgba(255, 255, 255, 0.15); position: relative; overflow: hidden; } #casebattle-modal .create-battle-btn::before, #battle-modification-modal .create-final-button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: 0.5s; } #casebattle-modal .create-battle-btn:hover, #battle-modification-modal .create-final-button:hover { background: linear-gradient(145deg, #00e5ff 0%, #00acc1 100%); transform: translateY(-2px); box-shadow: 0 7px 14px rgba(0, 0, 0, 0.15), 0 3px 6px rgba(0, 0, 0, 0.1); } #casebattle-modal .create-battle-btn:hover::before, #battle-modification-modal .create-final-button:hover::before { left: 100%; } #casebattle-modal .create-battle-btn:disabled, #battle-modification-modal .create-final-button:disabled { background: linear-gradient(145deg, #607d8b 0%, #455a64 100%); cursor: not-allowed; transform: none; box-shadow: none; opacity: 0.7; } /* Larger modal on desktop */ @media (min-width: 992px) { #casebattle-modal .modal-content, #battle-modification-modal .modal-content { max-width: 1200px; height: 85vh; margin: 7.5vh auto; border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.08); } #casebattle-modal .modal-summary-container, #battle-modification-modal .modal-summary-container { position: sticky; bottom: 0; } } /* CONFIGURATION SECTION STYLES */ .configuration-section { display: flex; flex-direction: column; gap: 30px; padding: 10px 0; } .config-step { background: rgba(255, 255, 255, 0.03); border-radius: 12px; padding: 25px; border: 1px solid rgba(0, 188, 212, 0.1); transition: all 0.3s ease; position: relative; } .config-step::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, #00bcd4, #00838f); border-radius: 4px 0 0 4px; opacity: 0.3; transition: opacity 0.3s ease; } .config-step:not([style*="opacity: 0.5"])::before { opacity: 1; } .config-title { margin: 0 0 20px 0; color: #fff; font-size: 20px; font-weight: 600; letter-spacing: -0.3px; display: flex; align-items: center; gap: 10px; } .config-title::after { content: ''; flex: 1; height: 1px; background: linear-gradient(to right, rgba(0, 188, 212, 0.3), transparent); } /* MODE SELECTION */ .mode-selection { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px; } .mode-option { background: rgba(255, 255, 255, 0.05); border: 2px solid rgba(0, 188, 212, 0.1); border-radius: 10px; padding: 20px; cursor: pointer; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); display: flex; align-items: center; gap: 15px; position: relative; overflow: hidden; } .mode-option::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(0, 188, 212, 0.1), transparent); transition: 0.5s; } .mode-option:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(0, 188, 212, 0.3); transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2); } .mode-option:hover::before { left: 100%; } .mode-option.selected { background: rgba(0, 188, 212, 0.15); border-color: rgba(0, 188, 212, 0.6); box-shadow: 0 0 0 1px rgba(0, 188, 212, 0.3), 0 8px 25px rgba(0, 188, 212, 0.2); transform: translateY(-2px); } .mode-option.selected::after { content: '✓'; position: absolute; top: 10px; right: 10px; color: #00bcd4; font-size: 18px; font-weight: bold; } .mode-icon { font-size: 32px; display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; background: rgba(0, 188, 212, 0.1); border-radius: 50%; flex-shrink: 0; transition: all 0.3s ease; } .mode-option:hover .mode-icon { background: rgba(0, 188, 212, 0.2); transform: scale(1.1); } .mode-option.selected .mode-icon { background: rgba(0, 188, 212, 0.3); box-shadow: 0 0 20px rgba(0, 188, 212, 0.3); } .mode-info { flex: 1; } .mode-name { font-size: 18px; font-weight: 600; color: #fff; margin-bottom: 5px; } .mode-description { font-size: 14px; color: rgba(255, 255, 255, 0.7); line-height: 1.4; } /* PLAYER SELECTION */ .player-selection { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 15px; } .player-option { background: rgba(255, 255, 255, 0.05); border: 2px solid rgba(0, 188, 212, 0.1); border-radius: 10px; padding: 20px; cursor: pointer; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; position: relative; overflow: hidden; } .player-option::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(0, 188, 212, 0.1), transparent); transition: 0.5s; } .player-option:not(.disabled):hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(0, 188, 212, 0.3); transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2); } .player-option:not(.disabled):hover::before { left: 100%; } .player-option.selected { background: rgba(0, 188, 212, 0.15); border-color: rgba(0, 188, 212, 0.6); box-shadow: 0 0 0 1px rgba(0, 188, 212, 0.3), 0 8px 25px rgba(0, 188, 212, 0.2); transform: translateY(-2px); } .player-option.selected::after { content: '✓'; position: absolute; top: 8px; right: 8px; color: #00bcd4; font-size: 14px; font-weight: bold; } .player-option.disabled { opacity: 0.4; cursor: not-allowed; background: rgba(255, 255, 255, 0.02); border-color: rgba(255, 255, 255, 0.05); } .player-icon { font-size: 28px; display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; background: rgba(0, 188, 212, 0.1); border-radius: 50%; transition: all 0.3s ease; } .player-option:not(.disabled):hover .player-icon { background: rgba(0, 188, 212, 0.2); transform: scale(1.1); } .player-option.selected .player-icon { background: rgba(0, 188, 212, 0.3); box-shadow: 0 0 15px rgba(0, 188, 212, 0.3); } .player-option.disabled .player-icon { background: rgba(255, 255, 255, 0.05); } .player-name { font-size: 16px; font-weight: 600; color: #fff; } .player-option.disabled .player-name { color: rgba(255, 255, 255, 0.4); } /* CASEBATTLE MODAL SPECIFIC STYLES */ .modal-search-container { position: relative; width: 100%; margin: 15px 0 0; } .modal-search-bar { width: 100%; padding: 12px 20px 12px 45px; border-radius: 8px; border: none; background: rgba(0, 32, 41, 0.6); color: white; font-size: 14px; font-family: 'Inter', sans-serif; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); border: 1px solid rgba(0, 188, 212, 0.3); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), 0 1px 1px rgba(255, 255, 255, 0.05); } .modal-search-bar:focus { outline: none; background: rgba(0, 40, 50, 0.8); border-color: rgba(0, 188, 212, 0.6); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 0 0 2px rgba(0, 188, 212, 0.2); } .modal-search-icon { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; fill: rgba(0, 188, 212, 0.7); pointer-events: none; transition: all 0.3s ease; } .modal-search-bar:focus + .modal-search-icon { fill: #00e5ff; filter: drop-shadow(0 0 3px rgba(0, 229, 255, 0.5)); } .cases-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 20px; padding: 20px; } .case-item { background: rgba(255, 255, 255, 0.05); border-radius: 10px; overflow: hidden; transition: all 0.3s ease; cursor: pointer; border: 1px solid rgba(0, 188, 212, 0.1); position: relative; } .case-item:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); border-color: rgba(0, 188, 212, 0.3); } /* Selected case style */ .case-item.selected { overflow: visible; } .case-item.selected::after { content: ''; position: absolute; top: -5px; left: -5px; right: -5px; bottom: -5px; background: rgba(0, 188, 212, 0.1); border-radius: 12px; z-index: -1; animation: glowPulse 2s infinite alternate; box-shadow: 0 0 20px rgba(0, 188, 212, 0.3); } /* Quantity controls */ .quantity-controls { display: none; position: absolute; bottom: -15px; left: 50%; transform: translateX(-50%); background: rgba(0, 32, 41, 0.9); border-radius: 20px; padding: 5px 10px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); border: 1px solid rgba(0, 188, 212, 0.3); z-index: 2; } .case-item.selected .quantity-controls { display: flex; align-items: center; gap: 10px; } .quantity-btn { background: rgba(0, 188, 212, 0.3); color: white; border: none; width: 25px; height: 25px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 16px; font-weight: bold; transition: all 0.2s ease; } .quantity-btn:hover { background: rgba(0, 188, 212, 0.5); transform: scale(1.1); } .quantity-btn:active { background: rgba(0, 188, 212, 0.7); transform: scale(0.95); } .quantity-display { min-width: 30px; text-align: center; font-weight: bold; color: #00bcd4; } /* Cold mist effect */ .case-item.selected::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient( 135deg, rgba(0, 188, 212, 0.05) 0%, rgba(0, 188, 212, 0.15) 50%, rgba(0, 188, 212, 0.05) 100% ); border-radius: 10px; z-index: -1; animation: mistFlow 6s infinite linear; } .case-image { height: 120px; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.3); } .case-image img { max-width: 80%; max-height: 80%; object-fit: contain; } .case-info { padding: 15px; text-align: center; } .case-info h3 { margin: 0 0 10px 0; color: white; font-size: 16px; font-weight: 600; } .case-price { display: flex; align-items: center; justify-content: center; gap: 8px; color: #00bcd4; font-weight: 700; } .case-price img { width: 20px; height: 20px; } .no-cases, .error-message { color: rgba(255, 255, 255, 0.6); text-align: center; padding: 40px; grid-column: 1 / -1; } /* BATTLE MODIFICATION MODAL SPECIFIC STYLES */ #battle-modification-modal .cases-horizontal-scroll { display: flex; overflow-x: auto; gap: 15px; padding: 1rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; } #battle-modification-modal .cases-horizontal-scroll::-webkit-scrollbar { display: none; } #battle-modification-modal .case-item-horizontal { min-width: 180px; scroll-snap-align: start; background: rgba(255, 255, 255, 0.05); border-radius: 10px; padding: 15px; border: 1px solid rgba(0, 188, 212, 0.1); position: relative; transition: all 0.3s ease; } #battle-modification-modal .case-item-horizontal:hover { transform: translateY(-3px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); border-color: rgba(0, 188, 212, 0.3); } #battle-modification-modal .case-image-horizontal { height: 100px; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.3); margin-bottom: 10px; border-radius: 8px; } #battle-modification-modal .case-image-horizontal img { max-width: 80%; max-height: 80%; object-fit: contain; } #battle-modification-modal .case-info-horizontal { text-align: center; } #battle-modification-modal .case-info-horizontal h3 { margin: 0 0 5px 0; color: white; font-size: 16px; font-weight: 600; } #battle-modification-modal .case-quantity-horizontal { color: #00bcd4; font-weight: bold; font-size: 14px; background: rgba(0, 188, 212, 0.1); padding: 4px 8px; border-radius: 12px; display: inline-block; } /* Scroll Controls */ .scroll-controls { display: flex; justify-content: center; gap: 20px; margin: 20px 0; position: relative; } .scroll-button { width: 50px; height: 50px; border-radius: 50%; background: linear-gradient(145deg, rgba(0, 188, 212, 0.3) 0%, rgba(0, 131, 143, 0.3) 100%); border: none; color: white; font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); position: relative; overflow: hidden; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2), inset 0 1px 1px rgba(255, 255, 255, 0.1); border: 1px solid rgba(0, 188, 212, 0.3); } .scroll-button:hover { background: linear-gradient(145deg, rgba(0, 188, 212, 0.5) 0%, rgba(0, 131, 143, 0.5) 100%); transform: translateY(-3px) scale(1.05); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.15); } .scroll-button:active { transform: translateY(-1px) scale(0.98); } .scroll-button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.2), transparent ); transition: 0.5s; } .scroll-button:hover::before { left: 100%; } .scroll-button:disabled { opacity: 0.5; cursor: not-allowed; background: linear-gradient(145deg, rgba(107, 114, 128, 0.2) 0%, rgba(55, 65, 81, 0.2) 100%); transform: none !important; box-shadow: none; } .scroll-button:disabled:hover::before { left: -100%; } /* Pulse animation for active state */ @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(0, 188, 212, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(0, 188, 212, 0); } 100% { box-shadow: 0 0 0 0 rgba(0, 188, 212, 0); } } .scroll-button:not(:disabled):active { animation: pulse 0.5s; } /* SHARED ANIMATIONS */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes scaleUp { from { transform: scale(0.95); opacity: 0; } to { transform: scale(1); opacity: 1; } } @keyframes gradientFlow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes glowPulse { 0% { opacity: 0.5; box-shadow: 0 0 15px rgba(0, 188, 212, 0.3); } 100% { opacity: 1; box-shadow: 0 0 30px rgba(0, 188, 212, 0.5); } } @keyframes mistFlow { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } } /* Updated Player Icons and Crossed Swords Styles - COMPACT & ALIGNED */ .join-battle-container { margin-top: 8px; padding: 0 20px 12px; display: flex; flex-direction: column; align-items: center; gap: 8px; } .battle-participants { display: flex; align-items: center; justify-content: center; gap: 8px; position: relative; flex-wrap: nowrap; /* Prevent wrapping */ margin-bottom: 8px; min-height: 36px; /* Fixed height for alignment */ } .player-icon { width: 36px; height: 36px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, 0.6); font-weight: 600; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; transition: all 0.3s ease; position: relative; z-index: 1; flex-shrink: 0; /* Prevent shrinking */ } .crossed-swords { position: relative; z-index: 2; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3)); transition: all 0.3s ease; margin: 0 -3px; flex-shrink: 0; width: 20px; /* Fixed width */ height: 20px; /* Fixed height */ } /* Specific layouts for different battle types - MORE COMPACT */ .participants-1v1 { gap: 15px; } .participants-1v1v1 { gap: 12px; } .participants-1v1v1v1 { gap: 10px; } .participants-2v2 { gap: 18px; } .participants-3v3 { gap: 15px; } /* Join button styles - COMPACT */ .join-battle-btn { background: linear-gradient(145deg, #00bcd4 0%, #00838f 100%); color: white; border: none; padding: 8px 16px; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 600; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.08); border: 1px solid rgba(255, 255, 255, 0.15); position: relative; overflow: hidden; min-width: 140px; display: flex; align-items: center; justify-content: center; gap: 6px; } .join-battle-btn img { width: 16px; height: 16px; } .join-battle-btn:hover { background: linear-gradient(145deg, #00e5ff 0%, #00acc1 100%); transform: translateY(-2px); box-shadow: 0 7px 14px rgba(0, 0, 0, 0.15), 0 3px 6px rgba(0, 0, 0, 0.1); } /* Crazy Mode Join Button - COMPACT */ .battle-item.crazy-mode .join-battle-btn { background: linear-gradient(145deg, #8a2be2 0%, #4b0082 100%); border: 1px solid rgba(138, 43, 226, 0.3); box-shadow: 0 4px 6px rgba(138, 43, 226, 0.2), 0 1px 3px rgba(138, 43, 226, 0.1), 0 0 20px rgba(138, 43, 226, 0.3); } .battle-item.crazy-mode .join-battle-btn:hover { background: linear-gradient(145deg, #9932cc 0%, #663399 100%); box-shadow: 0 7px 14px rgba(138, 43, 226, 0.3), 0 3px 6px rgba(138, 43, 226, 0.2), 0 0 30px rgba(138, 43, 226, 0.5); } /* Updated Crazy Mode Styles - COMPACT */ .battle-item.crazy-mode { position: relative; overflow: hidden; border: 1px solid rgba(138, 43, 226, 0.5); box-shadow: 0 0 15px rgba(138, 43, 226, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.1); } .battle-item.crazy-mode::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: -1; background: radial-gradient(ellipse at center, rgba(138, 43, 226, 0.15) 0%, rgba(75, 0, 130, 0.1) 70%, transparent 100%); animation: crazyGlow 3s ease-in-out infinite alternate; } .battle-item.crazy-mode::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: -2; background: linear-gradient(45deg, rgba(138, 43, 226, 0.1) 0%, rgba(75, 0, 130, 0.15) 25%, rgba(147, 0, 211, 0.1) 50%, rgba(138, 43, 226, 0.12) 75%, rgba(75, 0, 130, 0.1) 100%); background-size: 400% 400%; animation: crazyGradient 8s ease infinite; } .battle-item.crazy-mode .crazy-svg-background { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -3; opacity: 0.1; filter: hue-rotate(270deg) saturate(1.5) brightness(1.2); animation: crazyRotate 30s linear infinite; } .battle-item.crazy-mode .crazy-svg-background svg { width: 100%; height: 100%; fill: #8a2be2; } .battle-item.crazy-mode:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3), 0 0 20px rgba(138, 43, 226, 0.4), inset 0 1px 1px rgba(255, 255, 255, 0.15); } .battle-item.crazy-mode:hover::after { animation-duration: 4s; } .battle-item.crazy-mode:hover .crazy-svg-background { opacity: 0.15; } @keyframes crazyGlow { 0% { opacity: 0.7; transform: scale(1); } 100% { opacity: 1; transform: scale(1.01); } } @keyframes crazyGradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes crazyRotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* RESPONSIVE ADJUSTMENTS - ENHANCED FOR COMPACT DESIGN */ @media (max-width: 768px) { .header-section { flex-direction: column; align-items: center; gap: 15px; padding: 0 16px; } .title { text-align: center; width: 100%; order: 1; font-size: 20px; } .create-button { width: 90%; max-width: none; text-align: center; order: 2; padding: 10px 0; margin: 0 auto; font-size: 13px; } .main-container { margin-top: 30px; padding: 16px 0; } .divider-line { margin: 12px 0; } .divider-line::after { width: 40px; } .battles-container { gap: 8px; } /* Battle item responsive - MORE COMPACT */ .battle-header { flex-direction: column; gap: 8px; padding: 12px 16px 8px; } .battle-value-section { align-self: stretch; flex-direction: row; justify-content: space-between; align-items: center; } .battle-title { font-size: 16px; margin-bottom: 4px; } .battle-subtitle { flex-wrap: wrap; gap: 6px; font-size: 12px; } .battle-content { padding: 8px 16px 10px; } .battle-cases { grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)); gap: 6px; } .battle-case-item { padding: 6px 4px; } .battle-case-image { width: 32px; height: 32px; margin-bottom: 4px; } .battle-case-name { font-size: 10px; } .battle-case-quantity { font-size: 9px; padding: 1px 3px; } /* Join battle container - MOBILE OPTIMIZED */ .join-battle-container { margin-top: 6px; padding: 0 16px 8px; gap: 6px; } .battle-participants { gap: 6px; margin-bottom: 6px; min-height: 32px; overflow-x: auto; padding: 2px 0; justify-content: flex-start; width: 100%; } .player-icon { width: 32px; height: 32px; font-size: 9px; border-width: 1px; flex-shrink: 0; } .crossed-swords { width: 16px; height: 16px; margin: 0 -2px; flex-shrink: 0; } .join-battle-btn { padding: 6px 12px; font-size: 12px; min-width: 120px; } .join-battle-btn img { width: 14px; height: 14px; } /* Specific mobile layouts */ .participants-1v1 { gap: 10px; justify-content: center; } .participants-1v1v1 { gap: 8px; justify-content: center; } .participants-1v1v1v1 { gap: 6px; justify-content: flex-start; } .participants-2v2 { gap: 12px; justify-content: center; } .participants-3v3 { gap: 10px; justify-content: flex-start; } /* Battle value section mobile */ .battle-total-value { padding: 4px 8px; } .battle-total-value .value-amount { font-size: 13px; } .battle-total-value img { width: 16px; height: 16px; } .battle-mode-badge, .battle-status { font-size: 10px; padding: 2px 4px; } /* Modal mobile adjustments */ .modal-search-container { margin: 10px 0 0; } .modal-search-bar { padding: 8px 12px 8px 35px; font-size: 12px; } .modal-search-icon { left: 10px; width: 14px; height: 14px; } .cases-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; padding: 12px; } .case-image { height: 80px; } .case-info { padding: 8px; } .case-info h3 { font-size: 13px; } .configuration-section { gap: 16px; } .config-step { padding: 16px; } .config-title { font-size: 16px; } .mode-selection { grid-template-columns: 1fr; } .mode-option { padding: 12px; } .mode-icon { width: 40px; height: 40px; font-size: 24px; } .mode-name { font-size: 15px; } .mode-description { font-size: 12px; } .player-selection { grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 8px; } .player-option { padding: 12px 8px; } .player-icon { width: 35px; height: 35px; font-size: 20px; } .player-name { font-size: 13px; } #battle-modification-modal .case-item-horizontal { min-width: 130px; } .scroll-controls { gap: 12px; margin: 12px 0; } .scroll-button { width: 40px; height: 40px; font-size: 16px; } /* Modal styles */ #casebattle-modal .modal-content, #battle-modification-modal .modal-content { border-radius: 0; } #casebattle-modal .modal-header, #battle-modification-modal .modal-header { padding: 1rem 1.25rem; } #casebattle-modal .modal-header h2, #battle-modification-modal .modal-header h2 { font-size: 1.4rem; } #casebattle-modal .modal-body, #battle-modification-modal .modal-body { padding: 0.8rem; padding-bottom: 80px; } #casebattle-modal .close-casebattlemodal, #battle-modification-modal .back-button { font-size: 1.4rem; width: 2rem; height: 2rem; } #battle-modification-modal .back-button { padding: 0.3rem 0.6rem; font-size: 0.8rem; width: auto; height: auto; } #casebattle-modal .modal-summary-container, #battle-modification-modal .modal-summary-container { padding: 8px; } #casebattle-modal .modal-summary-content, #battle-modification-modal .modal-summary-content { padding: 8px 12px; flex-direction: column; gap: 12px; } #casebattle-modal .total-summary, #battle-modification-modal .total-summary { font-size: 15px; } #casebattle-modal .create-battle-btn, #battle-modification-modal .create-final-button { width: 100%; padding: 10px; } } @media (min-width: 480px) and (max-width: 768px) { .create-button { width: 80%; } .battle-cases { grid-template-columns: repeat(4, 1fr); } .battle-participants { justify-content: center; } } /* Larger screens adjustments */ @media (min-width: 992px) { .cases-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); } .configuration-section { gap: 35px; } .config-step { padding: 25px; } .mode-selection { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); } .player-selection { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); } #battle-modification-modal .case-item-horizontal { min-width: 180px; } } /* Special mobile portrait adjustments */ @media (max-width: 480px) { .mode-option { flex-direction: column; text-align: center; gap: 8px; } .mode-info { flex: none; } .player-selection { grid-template-columns: repeat(2, 1fr); } .battle-cases { grid-template-columns: repeat(3, 1fr); } .battle-mode-badge, .battle-status { font-size: 9px; padding: 2px 4px; } .battle-total-value { padding: 3px 6px; } .battle-total-value .value-amount { font-size: 12px; } .battle-total-value img { width: 14px; height: 14px; } /* Ultra compact participants for very small screens */ .battle-participants { gap: 4px; min-height: 28px; } .player-icon { width: 28px; height: 28px; font-size: 8px; } .crossed-swords { width: 14px; height: 14px; margin: 0 -1px; } .join-battle-btn { padding: 5px 10px; font-size: 11px; min-width: 100px; } .join-battle-btn img { width: 12px; height: 12px; } } /* Configuration step disabled state */ .config-step[style*="opacity: 0.5"] { filter: grayscale(0.5); } .config-step[style*="opacity: 0.5"] .config-title { color: rgba(255, 255, 255, 0.5); } .config-step[style*="opacity: 0.5"] .mode-option, .config-step[style*="opacity: 0.5"] .player-option { pointer-events: none; opacity: 0.6; } /* Step completion indicator */ .config-step:not([style*="opacity: 0.5"]) .config-title::before { content: '✓'; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; background: rgba(0, 188, 212, 0.2); border-radius: 50%; color: #00bcd4; font-size: 12px; font-weight: bold; margin-right: 8px; border: 2px solid rgba(0, 188, 212, 0.4); } .battle-link { color: inherit; text-decoration: none; } .battle-link:hover { color: #00BCD4; text-decoration: underline; }