*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #f0f4f8; color: #1a202c; min-height: 100vh; } header { background: #2d3748; color: #fff; padding: 1rem 1.5rem; } header h1 { font-size: 1.5rem; font-weight: 700; } main { max-width: 700px; margin: 1.5rem auto; padding: 0 1rem; display: flex; flex-direction: column; gap: 1.25rem; } .card { background: #fff; border-radius: 10px; box-shadow: 0 2px 8px rgba(0,0,0,.08); padding: 1.25rem 1.5rem; } .card h2 { font-size: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #718096; margin-bottom: 1rem; } /* Playback */ .track-uri { font-size: .9rem; color: #4a5568; word-break: break-all; min-height: 1.2em; margin-bottom: .75rem; } .playback-controls { display: flex; gap: .5rem; margin-bottom: 1rem; } .volume-row { display: flex; align-items: center; gap: .75rem; } .volume-row label { font-size: .875rem; color: #718096; white-space: nowrap; } .volume-row input { flex: 1; } #volume-label { font-size: .875rem; width: 2rem; text-align: right; } /* Buttons */ .btn { padding: .45rem .9rem; border: none; border-radius: 6px; font-size: .875rem; font-weight: 600; cursor: pointer; transition: opacity .15s; } .btn:disabled { opacity: .45; cursor: not-allowed; } .btn:not(:disabled):hover { opacity: .85; } .btn-primary { background: #4299e1; color: #fff; } .btn-secondary { background: #e2e8f0; color: #2d3748; } .btn-danger { background: #fc8181; color: #fff; } /* Device info */ .info-table { width: 100%; border-collapse: collapse; margin-bottom: .75rem; } .info-table th, .info-table td { padding: .35rem .5rem; text-align: left; font-size: .875rem; } .info-table th { color: #718096; width: 40%; } .info-table tr:not(:last-child) th, .info-table tr:not(:last-child) td { border-bottom: 1px solid #edf2f7; } /* Storage */ .storage-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; font-size: .875rem; color: #4a5568; } .cache-list { list-style: none; } .cache-list li { display: flex; align-items: center; justify-content: space-between; padding: .4rem 0; border-bottom: 1px solid #edf2f7; font-size: .875rem; } .cache-list li:last-child { border-bottom: none; } .cache-list .cache-key { font-family: monospace; color: #4a5568; } .cache-list .cache-size { color: #a0aec0; } /* Bluetooth */ .bt-status { font-weight: 600; margin-bottom: .5rem; } #btn-bt-toggle { margin-bottom: .5rem; } .note { font-size: .8rem; color: #a0aec0; }