* { margin: 0; padding: 0; box-sizing: border-box; } body { background-color: #1e293b; font-family: 'Inter', sans-serif; color: #1e293b; line-height: 1.5; } .header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 2rem; background-color: #1e293b; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); position: sticky; top: 0; z-index: 10; } .site-name { font-size: 1.55rem; font-weight: 700; color: #cbd5e1; } .search-area { position: relative; width: 100%; max-width: 600px; margin: 0 auto; display: flex; align-items: center; justify-content: center; } .search-bar { background-color: #1e2a39; color: #cbd5e1; border: none; border-radius: 8px; padding: 0.6rem 1rem; width: 100%; font-size: 1rem; outline: none; display: flex; align-items: center; } .search-bar::placeholder { color: #94a3b8; } .search-icon { position: absolute; left: 0.75rem; pointer-events: none; color: #64748b; font-size: 1rem; } .shortcut-key { position: absolute; right: 0.75rem; color: #64748b; font-size: 0.9rem; pointer-events: none; } .dropdown-content { display: none; position: absolute; top: 2.75rem; background-color: #ffffff; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 8px; padding: 1rem; z-index: 100; width: 100%; } .dropdown-content.show { display: block; } .dropdown-buttons .genre-btn { background: transparent; border: none; color: #1e293b; font-weight: 600; font-size: 0.9rem; margin: 0.25rem; padding: 0.4rem 0.8rem; cursor: pointer; transition: color 0.2s ease; } .dropdown-buttons .genre-btn:hover { text-decoration: underline; color: #000000; } .btn-primary, .btn-link { font-weight: 600; border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.3s ease; padding: 0.5rem 1rem; } .btn-primary { background-color: #0ea5e9; color: white; } .btn-link { background: transparent; color: #38bdf8; } .burger-btn { background: transparent !important; border: none !important; color: #ffffff; font-size: 1.5rem; cursor: pointer; padding: 0.5rem; display: flex; align-items: center; justify-content: center; } .genre-bar { display: flex; flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; padding: 0.75rem 1rem; background-color: #1e293b; border-bottom: 1px solid #334155; } .genre-item { background: none; border: none; color: #94a3b8; font-weight: 500; font-size: 0.9rem; cursor: pointer; padding: 0.4rem 0.8rem; margin-right: 0.3rem; border-radius: 6px; display: flex; align-items: center; transition: color 0.2s ease; } .genre-item:hover { color: #f8fafc; } .genre-item.active { color: #ffffff; font-weight: 600; } .genre-item .icon { margin-right: 0.3rem; } .genre-item .arrow { font-size: 0.75rem; margin-left: 0.2rem; } .main { padding: 2rem; display: flex; justify-content: center; } .bet-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; padding: 2rem; max-width: 1280px; margin: 0 auto; } .bet-card { background-color: #3d5266; border-radius: 12px; padding: 1rem; color: #ffffff; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; justify-content: space-between; } .bet-title { font-size: 1rem; font-weight: 600; margin-bottom: 1rem; } .bet-options .bet-option { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; } .bet-options .bet-option span { flex: 1; } .bet-options .bet-option button { flex: 0 0 60px; text-align: center; white-space: nowrap; } .bet-card button.yes, .bet-options .bet-option button.yes { background-color: #14532d; color: #22c55e; font-weight: 600; border: none; border-radius: 6px; padding: 0.5rem 1.2rem; width: 100%; max-width: 120px; transition: all 0.3s ease; text-align: center; } .bet-card button.no, .bet-options .bet-option button.no { background-color: #3f1d1d; color: #f97316; font-weight: 600; border: none; border-radius: 6px; padding: 0.5rem 1.2rem; width: 100%; max-width: 120px; transition: all 0.3s ease; text-align: center; } .bet-card button.yes:hover, .bet-options .bet-option button.yes:hover { background-color: #22c55e; color: white; } .bet-card button.no:hover, .bet-options .bet-option button.no:hover { background-color: #ef4444; color: white; } .bet-card.simple button.yes::after { content: ' ↑'; font-size: 0.8rem; } .bet-card.simple button.no::after { content: ' ↓'; font-size: 0.8rem; } .bet-options .bet-option button.yes::after, .bet-options .bet-option button.no::after { content: "" !important; } .bet-card.simple .card-content { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; } .bet-card.simple .circular-gauge { align-self: flex-end; margin-top: -0.25rem; flex-shrink: 0; } .bet-card.simple .bet-buttons { display: flex; justify-content: center; gap: 1rem; flex-wrap: nowrap; width: 100%; margin-top: 0.5rem; } .bet-buttons { display: flex; justify-content: center; gap: 0.5rem; margin-top: 1rem; flex-wrap: wrap; } .circular-gauge { width: 60px; height: 60px; position: relative; flex-shrink: 0; } .circular-gauge svg { transform: rotate(-90deg); width: 100%; height: 100%; } .circular-gauge .circle-bg { fill: none; stroke: #e5e7eb; stroke-width: 3.8; } .circular-gauge .circle { fill: none; stroke-width: 3.8; stroke-linecap: round; } .circular-gauge .gauge-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-weight: bold; font-size: 0.8rem; color: white; } .card-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 1rem; font-size: 0.8rem; color: #cbd5e1; } .card-footer .bookmark { background: none; border: none; border-radius: 6px; padding: 0.25rem; cursor: pointer; display: flex; align-items: center; transition: filter 0.2s ease; } .card-footer .bookmark img { width: 25px; height: 25px; filter: brightness(0.7) grayscale(0.4); transition: filter 0.2s ease, transform 0.2s ease; } /* Hover */ .card-footer .bookmark:hover img { filter: brightness(1.2) grayscale(0.1); } /* Active - Dark Mode */ body:not(.light-mode) .card-footer .bookmark.active img { filter: brightness(5) invert(1); transform: scale(1.3); } /* Active - Light Mode */ body.light-mode .card-footer .bookmark.active img { filter: brightness(0.1) contrast(2) grayscale(0); transform: scale(1.3); } .notification { position: fixed; top: 10px; right: 300px; background: #0ea5e9; color: white; padding: 0.75rem 1.25rem; border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.2); font-weight: 600; opacity: 0; transform: translateY(20px); transition: opacity 0.3s ease, transform 0.3s ease; z-index: 9999; } .notification.show { opacity: 1; transform: translateY(0); } .notification.hidden { display: none; } .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); display: flex; align-items: center; justify-content: center; z-index: 1000; } .modal-content { background: #1e293b; border-radius: 12px; padding: 2rem; display: flex; gap: 2rem; max-width: 600px; width: 90%; } .modal-left { flex: 1; color: #cbd5e1; } .modal-left h2 { margin-bottom: 0.5rem; } .modal-left p { font-size: 0.9rem; color: #94a3b8; } .modal-right { flex: 1; } .cancel-btn { background: #991b1b; color: white; border: none; padding: 0.5rem 1rem; border-radius: 6px; cursor: pointer; font-weight: 600; margin-top: 1rem; } .cancel-btn:hover { background: #7f1d1d; } .trade-box { background: #0f172a; padding: 1rem; border-radius: 8px; color: #cbd5e1; } .trade-tabs { display: flex; justify-content: space-between; margin-bottom: 1rem; } .trade-tab { flex: 1; text-align: center; padding: 0.5rem 0; color: white; font-weight: 200; cursor: pointer; } .trade-tab.active { font-weight: bolder; } .price-row { display: flex; gap: 0.5rem; margin-bottom: 1rem; } .price-btn { flex: 1; padding: 0.75rem; border: 1px solid #334155; background: #1e293b; color: white; border-radius: 6px; font-weight: 600; cursor: pointer; } .price-btn.selected-buy { background: #14532d; color: #22c55e; } .price-btn.selected-sell { background: #3f1d1d; color: #ef4444; } .amount-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .amount-input { width: 100px; padding: 0.5rem; background: #1e293b; border: 1px solid #334155; border-radius: 6px; color: white; } .amount-buttons { display: flex; gap: 0.5rem; margin-bottom: 1rem; } .amt-btn { flex: 1; padding: 0.5rem; background: #334155; color: white; border: none; border-radius: 6px; cursor: pointer; } .trade-btn { width: 100%; padding: 0.75rem; background: #0ea5e9; border: none; border-radius: 6px; color: white; font-weight: 600; cursor: pointer; } .hidden { display: none; } #tradeNotification { position: fixed; top: 10px; right: 300px; background: #0ea5e9; color: white; padding: 0.75rem 1.25rem; border-radius: 6px; font-weight: 600; opacity: 0; transform: translateY(20px); transition: opacity 0.3s ease, transform 0.3s ease; z-index: 9999; } #tradeNotification.show { opacity: 1; transform: translateY(0); } .bet-tags { font-size: 0.85rem; color: #38bdf8; margin-top: 0.5rem; font-weight: 500; } .burger-dropdown { position: absolute; top: 60px; right: 2rem; background-color: #1e293b; border: 1px solid #cbd5e1; border-radius: 8px; padding: 0.5rem 0; z-index: 1000; display: flex; flex-direction: column; min-width: 160px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } .dropdown-item { background: none; border: none; color: #cbd5e1; font-weight: 600; text-align: left; padding: 0.5rem 1rem; cursor: pointer; transition: opacity 0.2s ease; } .burger-dropdown .dropdown-item { all: unset; display: block; width: 100%; padding: 0.5rem 1rem; color: #cbd5e1; font-weight: 600; cursor: pointer; } body.light-mode .burger-dropdown .dropdown-item { color: #000000; } .dropdown-item:hover { opacity: 0.8; } .toggle-row { display: flex; justify-content: space-between; align-items: center; } .toggle-btn { background: #0ea5e9; border: none; border-radius: 6px; padding: 0.25rem 0.75rem; color: white; font-weight: 600; cursor: pointer; } .burger-btn { position: relative; } .hidden { display: none; } body.light-mode { background-color: #ffffff; color: #000000; } body.light-mode .modal-content, body.light-mode .bet-card, body.light-mode .trade-box { background-color: #ffffff; color: #000000; } body.light-mode .dropdown-item { color: #000000; } body.light-mode .header, body.light-mode .genre-bar { background-color: #ffffff; color: #000000; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); } body.light-mode .site-name { color: #000000; } body.light-mode .genre-item { color: #000000; } body.light-mode .genre-item.active { color: #000000; } body.light-mode .shortcut-key { color: #000000; } body.light-mode .circular-gauge .gauge-text { color: #000000; } body.light-mode .modal { background: rgba(255, 255, 255, 0.7); } body.light-mode .modal-left h2, body.light-mode .modal-left p, body.light-mode .bet-tags { color: #000000; } body.light-mode .trade-tab { color: #000000; background-color: #e2e8f0; border-radius: 6px; margin: 0 0.25rem; } body.light-mode .price-btn { background-color: #ffffff; color: #000000; border: 1px solid #334155; } body.light-mode .amount-input { background-color: #ffffff; color: #000000; border: 1px solid #334155; } body.light-mode .amt-btn { background-color: #e2e8f0; color: #000000; } .price-btn.selected-buy { background: #14532d; color: #22c55e; } .price-btn.selected-sell { background: #3f1d1d; color: #ef4444; } body.light-mode .trade-tab.active { font-weight: bolder; background-color: #cbd5e1; } body.light-mode .search-bar { background-color: #f1f5f9; color: #000000; } body.light-mode .search-bar::placeholder { color: #64748b; } body.light-mode .shortcut-key { color: #64748b; } body.light-mode .burger-dropdown { background-color: #ffffff; border: 1px solid #000000; } body.light-mode .burger-dropdown .dropdown-item { color: #000000; } .price-btn.selected-buy { background: #14532d !important; color: #22c55e !important; } .price-btn.selected-sell { background: #3f1d1d !important; color: #ef4444 !important; } body.light-mode .burger-btn { color: #000000; } body:not(.light-mode) .burger-dropdown .dropdown-item:hover, body:not(.light-mode) .burger-dropdown .dropdown-item:focus, body:not(.light-mode) .burger-dropdown .dropdown-item:active { background-color: transparent !important; color: #cbd5e1 !important; outline: none !important; box-shadow: none !important; } .amount-wrapper { display: flex; align-items: center; background: transparent; border: none; border-radius: 0; padding: 0; gap: 0.3rem; } .amount-input.clean-input { appearance: textfield; -moz-appearance: textfield; -webkit-appearance: none; background: transparent; border: none; color: white; font-size: 1.2rem; width: 60px; font-weight: 600; outline: none; box-shadow: none; } .amount-input.clean-input::-webkit-inner-spin-button, .amount-input.clean-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } .dollar-sign { color: #94a3b8; font-weight: 600; font-size: 1.2rem; } body.light-mode .amount-wrapper { background-color: transparent !important; border: none !important; } body.light-mode .amount-input.clean-input { background-color: transparent !important; border: none !important; } body.light-mode .dollar-sign { color: #334155; } .btn-primary { background-color: #0ea5e9; color: white; } .btn-primary:hover { background-color: #0284c7; } .btn-link { background: transparent; color: #38bdf8; } .btn-link:hover { text-decoration: underline; } body.light-mode .btn-primary { background-color: #0ea5e9; color: white; } body.light-mode .btn-link { color: #0ea5e9; } .auth-buttons { display: flex; align-items: center; gap: 0.5rem; flex-wrap: nowrap; margin-left: auto; } .auth-buttons button { flex-shrink: 0; } .toggle-row { display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 1rem; font-weight: 600; color: #cbd5e1; } .toggle-label { font-size: 0.95rem; } .switch { position: relative; display: inline-block; width: 42px; height: 22px; } .switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #cbd5e1; transition: 0.4s; border-radius: 34px; } .slider::before { position: absolute; content: ""; height: 16px; width: 16px; left: 4px; bottom: 3px; background-color: white; transition: 0.4s; border-radius: 50%; } input:checked + .slider { background-color: #0ea5e9; } input:checked + .slider::before { transform: translateX(18px); } body.light-mode .toggle-row { color: #000000; } body.light-mode .slider { background-color: #e5e7eb; } body.light-mode input:checked + .slider { background-color: #0ea5e9; } .hidden { display: none !important; } .footer { position: fixed; bottom: 0; left: 0; width: 100%; background-color: #1e293b; color: #cbd5e1; display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 2rem; font-size: 0.85rem; border-top: 1px solid #334155; z-index: 50; transform: translateY(100%); opacity: 0; transition: transform 0.4s ease-in-out, opacity 0.4s ease-in-out; will-change: transform, opacity; } .footer a { color: #cbd5e1; text-decoration: none; margin-right: 1rem; font-weight: 500; } .footer a:last-child { margin-right: 0; } .footer-right a img { height: 18px; width: 18px; margin-left: 0.75rem; filter: invert(85%); } .footer.show-footer { transform: translateY(0); opacity: 1; } body.light-mode .footer { background-color: #f1f5f9; color: #1e293b; border-top: 1px solid #cbd5e1; } body.light-mode .footer a { color: #1e293b; } body.light-mode .footer-right a img { filter: invert(20%); } body::after { content: ""; display: block; height: 400px; /* force scrolling */ } .site-branding { display: flex; align-items: center; gap: 3px; } .site-logo { width: 45px; height: 45px; object-fit: contain; filter: invert(85%); } body.light-mode .site-logo { filter: invert(20%); } .sub-genre-bar { background-color: #1e293b; padding: 0.5rem 1rem; border-bottom: 1px solid #334155; overflow-x: auto; white-space: nowrap; } .sub-genre-scroll { display: flex; align-items: center; gap: 0.5rem; overflow-x: auto; } .sub-search { background-color: #1e2a39; color: #cbd5e1; border: none; border-radius: 8px; padding: 0.6rem 1rem; font-size: 1rem; outline: none; display: flex; align-items: center; } .sub-search::placeholder { color: #94a3b8; } .sub-filter-btn, .sub-bookmark-btn { background: #334155; border: none; border-radius: 6px; color: #cbd5e1; font-size: 1rem; padding: 0.45rem 0.4rem; cursor: pointer; } .sub-bookmark{ height:20px; width:20px; display: flex; } .sub-tags { display: flex; gap: 0.5rem; flex-wrap: nowrap; } .sub-tag { background: none; border: none; color: #94a3b8; padding: 0.4rem 0.8rem; border-radius: 6px; font-size: 0.9rem; font-weight: 500; cursor: pointer; transition: color 0.2s ease; } .sub-tag:hover { color: #f8fafc; } .sub-tag.active { font-weight: bold; color: white; } body.light-mode .sub-genre-bar { background-color: #ffffff; border-bottom: 1px solid #e2e8f0; } body.light-mode .sub-genre-scroll { background-color: #ffffff; } body.light-mode .sub-tag { background: none; color: #334155; } body.light-mode .sub-tag:hover { color: #000000; } body.light-mode .sub-tag.active { font-weight: bold; color: #000000; } body.light-mode .sub-search { background-color: #f1f5f9; color: #1e293b; border: 1px solid #cbd5e1; } body.light-mode .sub-filter-btn, body.light-mode .sub-bookmark-btn { background-color: #f8fafc; color: #1e293b; } .bookmark.active img { filter: brightness(1.5) sepia(1) hue-rotate(45deg); } body.light-mode .bookmark.active img { filter: brightness(0.8) sepia(1) hue-rotate(200deg); } /* ============================== RESPONSIVE STYLES BY DEVICE ============================== */ /* Base cleanup before responsive kicks in */ .bet-card { max-width: 100%; box-sizing: border-box; } /* Generic: Grid layout fallback */ @media (max-width: 1280px) { .bet-grid { grid-template-columns: repeat(3, 1fr); } } @media (max-width: 1024px) { .bet-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .bet-grid { grid-template-columns: 1fr; } } /* ========== PHONE S (≤375px) ========== */ @media (max-width: 375px) { body { font-size: 13px; } .header { flex-direction: row; justify-content: space-between; padding: 0.5rem; gap: 0.25rem; } .search-area, .sub-search, .burger-btn { display: none !important; } .site-name { font-size: 1rem; } .auth-buttons { gap: 0.25rem; } .sub-genre-bar { padding: 0.5rem; } .sub-genre-scroll, .sub-tags { overflow-x: auto; flex-wrap: nowrap; scroll-snap-type: x mandatory; -ms-overflow-style: none; scrollbar-width: none; } .sub-tags::-webkit-scrollbar { display: none; } .sub-tag { font-size: 0.65rem; padding: 0.25rem 0.5rem; white-space: nowrap; scroll-snap-align: start; } .bet-card { width: 95%; margin: 0.5rem auto; padding: 0.75rem; display: flex; flex-direction: column; } .bet-options, .bet-option { flex-direction: column; align-items: flex-start; } .card-footer { flex-direction: column; align-items: flex-start; gap: 0.5rem; } .modal, .notification-popup { width: 94vw !important; left: 3vw !important; top: 20% !important; transform: none !important; z-index: 9999 !important; } } /* ========== PHONE M (376–425px) ========== */ @media (min-width: 376px) and (max-width: 425px) { body { font-size: 14px; } .sub-tag { font-size: 0.75rem; padding: 0.3rem 0.6rem; } .bet-card { width: 95%; margin: 0.5rem auto; padding: 0.8rem; } .modal, .notification-popup { width: 92vw !important; left: 4vw !important; top: 15% !important; transform: none !important; } } /* ========== PHONE L (426–480px) ========== */ @media (min-width: 426px) and (max-width: 480px) { body { font-size: 15px; } .sub-tag { font-size: 0.8rem; padding: 0.35rem 0.65rem; } .bet-card { width: 95%; padding: 0.9rem; margin: 0.75rem auto; } .modal, .notification-popup { width: 90vw !important; left: 5vw !important; top: 10% !important; } } /* ========== TABLETS (481–768px) ========== */ @media (min-width: 481px) and (max-width: 768px) { body { font-size: 15px; } .header { padding: 0.75rem 1.25rem; justify-content: space-between; align-items: center; } .search-area, .sub-search { display: none !important; } .sub-tag { font-size: 0.85rem; padding: 0.4rem 0.7rem; } .bet-card { flex-direction: column; width: 90%; margin: 0.75rem auto; padding: 1rem; min-height: auto !important; height: auto !important; } .bet-options { flex-direction: column; gap: 0.5rem; } .bet-option { width: 100%; flex-direction: column; align-items: flex-start; margin-bottom: 0.75rem; } .card-footer { flex-direction: column; align-items: flex-start; font-size: 0.8rem; gap: 0.5rem; } .modal, .notification-popup { width: 80vw !important; left: 10vw !important; top: 10% !important; transform: none !important; z-index: 9999 !important; } .bet-grid { grid-template-columns: 1fr !important; } }