diff --git a/frontend/theme-bento-hub.css b/frontend/theme-bento-hub.css index 62cc47d..1b2d399 100644 --- a/frontend/theme-bento-hub.css +++ b/frontend/theme-bento-hub.css @@ -251,3 +251,57 @@ html[data-layout="bento-hub"] .service-btn { width:56px; height:56px; border:1px html[data-layout="bento-hub"] .service-btn-play { width:64px; height:64px; background:#ffb703; color:#090b0e; border:0; } html[data-layout="bento-hub"] .svc-progress > i { background:#00f5d4; } html[data-layout="bento-hub"] .service-time { font:500 12px var(--mono); color:#94a3b8; } + +/* Settings, sheets and empty states use the same tile and type system. */ +html[data-layout="bento-hub"] .settings-browser { padding-top:8px; } +html[data-layout="bento-hub"] .settings-search input { min-height:44px; padding:12px 16px; border-radius:999px; border-color:var(--line); background:var(--bg-2); font-size:14px; } +html[data-layout="bento-hub"] .settings-overview h3 { margin:20px 0 10px; font:700 13px var(--ui); letter-spacing:0; color:var(--text-2); } +html[data-layout="bento-hub"] .settings-section-row { padding:14px; gap:12px; min-height:72px; margin-bottom:10px; border:1px solid var(--line); border-radius:16px; background:var(--bg-1); } +html[data-layout="bento-hub"] .settings-section-row svg { width:24px; height:24px; color:var(--accent); stroke-width:1.8; } +html[data-layout="bento-hub"] .settings-section-row b { font:700 14px var(--ui); } +html[data-layout="bento-hub"] .settings-section-row small { color:var(--text-2); font-size:12px; } +html[data-layout="bento-hub"] .settings-section-row[aria-current="true"] { background:var(--bg-2); border-color:var(--accent); } +html[data-layout="bento-hub"] .settings-back { border-radius:10px; background:var(--bg-2); color:var(--text); font-size:13px; } +html[data-layout="bento-hub"] .set-group { padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--bg-1); margin-bottom:16px; } +html[data-layout="bento-hub"] .set-group-title { padding:0 0 12px; font:700 16px var(--ui); color:var(--text); text-transform:none; letter-spacing:0; } +html[data-layout="bento-hub"] .set-row { padding:14px 0; gap:12px; border-color:var(--line); } +html[data-layout="bento-hub"] .set-row > span { font-size:14px; } +html[data-layout="bento-hub"] .set-row small { color:var(--text-2); font-size:12px; line-height:1.6; } +html[data-layout="bento-hub"] :is(.set-select,.set-input,.rename-input,.ts-query,.ts-source,.modal input,.modal textarea,.modal select) { min-height:44px; border:1px solid var(--line); border-radius:10px; background:var(--bg-2); color:var(--text); font-size:14px; box-shadow:none; } +html[data-layout="bento-hub"] input[type="range"] { accent-color:var(--accent); } +html[data-layout="bento-hub"] input[type="checkbox"] { accent-color:var(--accent-sec); } +html[data-layout="bento-hub"] .download-job { padding:16px; border:1px solid var(--line); border-radius:10px; background:var(--bg-2); margin:12px 0; } +html[data-layout="bento-hub"] .download-job b { font-size:13px; } +html[data-layout="bento-hub"] .download-job small { color:var(--text-2); font-size:12px; } +html[data-layout="bento-hub"] .download-job progress { height:6px; accent-color:var(--accent-sec); } +html[data-layout="bento-hub"] .modal-backdrop { background:rgba(0,0,0,.75); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); } +html[data-layout="bento-hub"] .modal { padding:24px; border:1px solid var(--line-bright); border-radius:16px; background:var(--bg-1); box-shadow:var(--shadow-lg); } +html[data-layout="bento-hub"] .modal h3 { font:800 22px/1.3 var(--ui); color:var(--text); } +html[data-layout="bento-hub"] :is(.modal p,.modal-subhead,.modal-char-count) { color:var(--text-2); font-size:13px; line-height:1.6; } +html[data-layout="bento-hub"] :is(.modal-list button,.modal-actions button,.sp-chip,.set-actions button,.piano-actions button,.setlist-import button) { min-height:44px; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:var(--bg-2); color:var(--text); font-size:13px; } +html[data-layout="bento-hub"] .modal-actions .primary-btn { background:var(--accent); color:var(--on-accent); border-color:var(--accent); } +html[data-layout="bento-hub"] .modal-actions .danger { color:var(--danger-text); background:var(--danger-bg); border-color:transparent; } +html[data-layout="bento-hub"] .sp-chip.on { color:var(--on-accent); background:var(--accent); } +html[data-layout="bento-hub"] .toast { border:1px solid var(--line-bright); border-radius:10px; background:var(--bg-2); color:var(--text); box-shadow:var(--shadow-md); font-size:13px; } +html[data-layout="bento-hub"] .empty-state { width:100%; max-width:440px; padding:32px 24px; margin:24px auto; border:1px solid var(--line); border-radius:16px; background:var(--bg-1); } +html[data-layout="bento-hub"] .empty-icon { display:grid; place-items:center; width:56px; height:56px; border:1px solid var(--line); border-radius:999px; background:var(--bg-2); color:var(--accent-sec); box-shadow:none; transform:none; } +html[data-layout="bento-hub"] .empty-icon svg { width:24px; height:24px; } +html[data-layout="bento-hub"] .empty-title { font:800 18px/1.3 var(--ui); color:var(--text); } +html[data-layout="bento-hub"] :is(.empty-desc,.dl-how-to-save,.dl-storage-note) { font:400 13px/1.6 var(--ui); color:var(--text-2); } +html[data-layout="bento-hub"] .empty-cta { min-height:44px; padding:10px 18px; border:0; border-radius:10px; background:var(--accent); color:var(--on-accent); font-weight:700; } +html[data-layout="bento-hub"] .status { border-radius:10px; color:var(--text-2); font-size:14px; } +@media(max-width:860px) { + html[data-layout="bento-hub"] .modal { padding:20px 16px; } + html[data-layout="bento-hub"] .modal h3 { font-size:18px; } + html[data-layout="bento-hub"] .set-row { flex-wrap:wrap; } + html[data-layout="bento-hub"] .set-row > span { flex:1 1 180px; } + html[data-layout="bento-hub"] .set-row :is(select,input[type="text"],input[type="password"]) { max-width:100%; } + html[data-layout="bento-hub"] .empty-state { padding:24px 16px; } +} +/* Browsing is a full workspace; playback continues in the floating mini player. */ +html[data-layout="bento-hub"] .body:has(#listPane:not(.hidden) .cards:is([data-view="search"],[data-view="channel"],[data-view="library"],[data-view="settings"],[data-view="queue"],[data-view="history"],[data-view="saved"],[data-view="downloads"])) .player-pane { display:none; } +html[data-layout="bento-hub"] .body:has(.cards:is([data-view="search"],[data-view="channel"],[data-view="library"],[data-view="settings"],[data-view="queue"],[data-view="history"],[data-view="saved"],[data-view="downloads"])) .list-pane { flex:1; width:100%; border-left:0; } +@media(min-width:900px) { + html[data-layout="bento-hub"] .settings-grid { grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr); gap:24px; } + html[data-layout="bento-hub"] .cards:is([data-view="search"],[data-view="channel"],[data-view="library"]) { grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); } +}