:root { --foreground-rgb: 0, 0, 0; --background-start-rgb: 214, 219, 220; --background-end-rgb: 255, 255, 255; } body { color: rgb(var(--foreground-rgb)); background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) rgb(var(--background-start-rgb)); font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; margin: 0; padding: 0; min-height: 100vh; } /* Layout Utilities */ .container { max-width: 600px; margin: 0 auto; padding: 2rem; display: flex; flex-direction: column; align-items: center; min-height: 100vh; } .header { margin-bottom: 2rem; text-align: center; } .title { font-size: 2.5rem; font-weight: 800; letter-spacing: -0.05em; margin: 0; } /* Game Board */ .game-board { width: 100%; display: flex; flex-direction: column; gap: 1.5rem; } .status-bar { display: flex; justify-content: space-between; font-size: 0.875rem; color: #666; margin-bottom: 0.5rem; } /* Audio Player */ .audio-player { background: #f3f4f6; padding: 1rem; border-radius: 0.5rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .player-controls { display: flex; align-items: center; gap: 1rem; } .play-button { width: 3rem; height: 3rem; border-radius: 50%; background: #000; color: #fff; border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.2s; } .play-button:hover { background: #333; } .progress-bar-container { flex: 1; height: 0.5rem; background: #d1d5db; border-radius: 999px; overflow: hidden; } .progress-bar { height: 100%; background: #22c55e; transition: width 0.1s linear; } /* Guess List */ .guess-list { display: flex; flex-direction: column; gap: 0.5rem; } .guess-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem; background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 0.25rem; font-size: 0.875rem; } .guess-number { width: 1.5rem; color: #9ca3af; } .guess-text { color: #ef4444; /* Red for wrong */ } .guess-text.skipped { color: #9ca3af; font-style: italic; } .guess-text.correct { color: #22c55e; } /* Input */ .input-container { position: relative; width: 100%; margin-top: 1rem; } .guess-input { width: 100%; padding: 0.75rem; border: 1px solid #d1d5db; border-radius: 0.25rem; font-size: 1rem; box-sizing: border-box; } .guess-input:focus { outline: 2px solid #000; border-color: transparent; } .suggestions-list { position: absolute; width: 100%; background: #fff; border: 1px solid #d1d5db; border-radius: 0.25rem; margin-top: 0.25rem; max-height: 15rem; overflow-y: auto; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); z-index: 10; list-style: none; padding: 0; } .suggestion-item { padding: 0.75rem; cursor: pointer; border-bottom: 1px solid #f3f4f6; } .suggestion-item:hover { background: #f3f4f6; } .suggestion-title { font-weight: bold; } .suggestion-artist { font-size: 0.875rem; color: #666; } .skip-button { width: 100%; padding: 1rem 1.5rem; margin-top: 1rem; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border: none; border-radius: 0.5rem; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); text-transform: uppercase; letter-spacing: 0.5px; } .skip-button:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(102, 126, 234, 0.6); } .skip-button:active { transform: translateY(0); box-shadow: 0 2px 10px rgba(102, 126, 234, 0.4); } /* Messages */ .message-box { padding: 1rem; border-radius: 0.5rem; text-align: center; margin-top: 1rem; } .message-box.success { background: #dcfce7; color: #166534; } .message-box.failure { background: #fee2e2; color: #991b1b; } /* Admin */ .admin-container { max-width: 800px; margin: 0 auto; padding: 2rem; } .admin-card { background: #f3f4f6; padding: 2rem; border-radius: 0.5rem; } .form-group { margin-bottom: 1rem; } .form-label { display: block; font-weight: bold; margin-bottom: 0.25rem; font-size: 0.875rem; } .form-input { width: 100%; padding: 0.5rem; border: 1px solid #d1d5db; border-radius: 0.25rem; box-sizing: border-box; } .btn-primary { background: #000; color: #fff; padding: 0.5rem 1rem; border: none; border-radius: 0.25rem; cursor: pointer; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; height: 2.5rem; box-sizing: border-box; text-decoration: none; font-size: 0.875rem; } .btn-primary:hover { background: #333; } .btn-secondary { background: #4b5563; color: #fff; padding: 0.5rem 1rem; border: none; border-radius: 0.25rem; cursor: pointer; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; height: 2.5rem; box-sizing: border-box; font-size: 0.875rem; } .btn-secondary:hover { background: #374151; } .btn-danger { background: #ef4444; color: #fff; padding: 0.5rem 1rem; border: none; border-radius: 0.25rem; cursor: pointer; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; height: 2.5rem; box-sizing: border-box; font-size: 0.875rem; } .btn-danger:hover { background: #dc2626; } /* Footer */ .app-footer { margin-top: auto; padding: 2rem 1rem 1rem; text-align: center; font-size: 0.875rem; color: #666; border-top: 1px solid #e5e7eb; width: 100%; } .app-footer p { margin: 0; } .app-footer a { color: #000; text-decoration: none; font-weight: 500; } .app-footer a:hover { text-decoration: underline; } /* Statistics */ .statistics-container { margin: 1.5rem 0; padding: 1rem; background: rgba(255, 255, 255, 0.5); border-radius: 0.5rem; } .statistics-title { font-size: 1.125rem; font-weight: bold; margin: 0 0 0.5rem 0; text-align: center; } .statistics-total { font-size: 0.875rem; text-align: center; margin: 0 0 1rem 0; color: #666; } .statistics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 0.75rem; } .stat-item { display: flex; flex-direction: column; align-items: center; padding: 0.75rem 0.5rem; background: rgba(255, 255, 255, 0.8); border-radius: 0.375rem; border: 1px solid #e5e7eb; } .stat-badge { font-size: 1.5rem; margin-bottom: 0.25rem; } .stat-label { font-size: 0.75rem; color: #666; margin-bottom: 0.25rem; text-align: center; } .stat-count { font-size: 1.25rem; font-weight: bold; color: #000; }