/* Launcher Settings dialog (mobile-settings.js). Styled only with the shared --vv-* tokens from tokens.css. */
.vv-prefs{box-sizing:border-box;width:min(760px,94vw);max-height:min(860px,92dvh);margin:auto;padding:0;display:none;flex-direction:column;
 color:var(--vv-ink,#eaf3f8);background:var(--vv-surface,#0d1420);border:1px solid var(--vv-edge-strong,#ffffff2e);border-radius:var(--vv-radius-l,16px);
 box-shadow:var(--vv-shadow-3,0 30px 80px #000c);font-family:var(--vv-font-ui,system-ui,'Segoe UI',Roboto,Arial,sans-serif);overflow:hidden}
.vv-prefs[open]{display:flex}
.vv-prefs::backdrop{background:var(--vv-scrim,#02040acc)}
.vv-prefs .vvp-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:var(--vv-sp-4,18px) var(--vv-sp-5,24px) var(--vv-sp-3,12px);height:auto;background:none;border:0;letter-spacing:normal;font:inherit;-webkit-app-region:no-drag}
.vv-prefs h2{margin:0;font:400 var(--vv-fs-6,30px)/1.1 var(--vv-font-display,var(--vv-font-brand,Street,'Arial Black',sans-serif));color:var(--vv-ink,#eaf3f8);letter-spacing:.01em}
.vv-prefs .vvp-tabs{display:flex;gap:4px;padding:0 var(--vv-sp-5,24px);border-bottom:1px solid var(--vv-edge,#ffffff1f);overflow-x:auto;scrollbar-width:none}
.vv-prefs .vvp-tabs button{flex:none;min-height:44px;padding:0 var(--vv-sp-4,16px);background:none;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--vv-ink-2,#b8c6d3);font:600 var(--vv-fs-3,14px)/1 var(--vv-font-ui,system-ui,sans-serif);box-shadow:none;transform:none}
.vv-prefs .vvp-tabs button:hover:not(:disabled){color:var(--vv-ink,#fff);background:none;transform:none;box-shadow:none}
.vv-prefs .vvp-tabs button[aria-selected=true]{color:var(--vv-ink,#fff);border-bottom-color:var(--vv-accent,#67efda)}
.vv-prefs .vvp-body{flex:1;min-height:0;overflow:auto;padding:var(--vv-sp-3,12px) var(--vv-sp-5,24px) var(--vv-sp-5,24px);overscroll-behavior:contain}
.vv-prefs .vvp-body h3{margin:var(--vv-sp-5,22px) 0 var(--vv-sp-2,8px);font:700 var(--vv-fs-2,12px)/1.2 var(--vv-font-ui,system-ui,sans-serif);letter-spacing:var(--vv-track-caps,.12em);text-transform:uppercase;color:var(--vv-ink-3,#93a5b5)}
.vv-prefs .vvp-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px var(--vv-sp-4,16px);margin:0;padding:var(--vv-sp-3,12px) 0;border-bottom:1px solid var(--vv-edge,#ffffff14);font:var(--vv-fs-3,14px)/var(--vv-lh-body,1.5) var(--vv-font-ui,system-ui,sans-serif);color:var(--vv-ink,#eaf3f8);justify-content:normal;flex-wrap:nowrap}
.vv-prefs .vvp-label{font-weight:600;min-width:0}
.vv-prefs .vvp-help{grid-column:1;grid-row:2;margin:0;font:var(--vv-fs-2,12px)/var(--vv-lh-body,1.5) var(--vv-font-ui,system-ui,sans-serif);color:var(--vv-ink-2,#a9b8c6)}
.vv-prefs .vvp-control{grid-column:2;grid-row:1/span 2;display:flex;align-items:center;gap:var(--vv-sp-2,8px);justify-self:end}
.vv-prefs .vvp-control input[type=range]{width:min(220px,40vw);accent-color:var(--vv-accent,#67efda)}
.vv-prefs .vvp-control input[type=checkbox]{width:22px;height:22px;accent-color:var(--vv-accent,#67efda)}
.vv-prefs select{min-height:40px;max-width:min(260px,52vw);padding:0 var(--vv-sp-3,12px);font:var(--vv-fs-3,14px) var(--vv-font-ui,system-ui,sans-serif);color:var(--vv-ink,#eaf3f8);background:var(--vv-surface-2,#152030);border:1px solid var(--vv-edge-strong,#ffffff30);border-radius:var(--vv-radius-s,8px)}
.vv-prefs .vvp-out{min-width:44px;text-align:right;font:600 var(--vv-fs-2,12px) var(--vv-font-mono,ui-monospace,Consolas,monospace);color:var(--vv-ink-2,#b8c6d3)}
.vv-prefs .vvp-pad{margin:var(--vv-sp-3,12px) 0 0;padding:var(--vv-sp-3,12px) var(--vv-sp-4,14px);border:1px solid var(--vv-edge,#ffffff1f);border-radius:var(--vv-radius-m,10px);background:var(--vv-surface-2,#121c2a)}
.vv-prefs .vvp-actions{display:flex;flex-wrap:wrap;gap:var(--vv-sp-2,8px);margin:var(--vv-sp-4,16px) 0}
.vv-prefs button{min-height:40px;font:600 var(--vv-fs-3,14px)/1 var(--vv-font-ui,system-ui,sans-serif);letter-spacing:0}
.vv-prefs .vvp-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--vv-sp-3,12px);padding:var(--vv-sp-3,12px) var(--vv-sp-5,24px);border-top:1px solid var(--vv-edge,#ffffff1f);background:var(--vv-surface-2,#0f1825)}
.vv-prefs .vvp-status{margin:0;min-width:0;font:var(--vv-fs-2,12px)/1.4 var(--vv-font-ui,system-ui,sans-serif);color:var(--vv-ink-2,#a9b8c6)}
.vv-prefs .vvp-status[data-state=error]{color:var(--vv-danger,#ff8a8a)}
.vv-prefs .vvp-status[data-state=ok]{color:var(--vv-ok,#7ff0c0)}
.vv-prefs .vvp-picker{margin:var(--vv-sp-2,8px) 0}
@media(max-width:620px){.vv-prefs{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0}.vv-prefs .vvp-row{grid-template-columns:1fr}.vv-prefs .vvp-control{grid-column:1;grid-row:auto;justify-self:start}.vv-prefs .vvp-help{grid-row:auto}.vv-prefs .vvp-foot{flex-direction:column;align-items:stretch}}
/* Sidebar / login entry points to Settings */
#hub-settings,#login-settings{display:inline-flex;align-items:center;gap:6px}
/* Launch + busy states shared by lead-owned controls */
button[aria-busy=true]{cursor:progress;position:relative}
button[aria-busy=true]::after{content:'';width:12px;height:12px;margin-left:8px;display:inline-block;vertical-align:-2px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:vvp-spin .8s linear infinite}
button[aria-disabled=true]{opacity:.5;cursor:not-allowed}
button[aria-disabled=true]:hover{transform:none!important}
@keyframes vvp-spin{to{transform:rotate(1turn)}}
@media(prefers-reduced-motion:reduce){button[aria-busy=true]::after{animation-duration:2.4s}}
html[data-vv-motion-level=off] button[aria-busy=true]::after{animation:none;border-right-color:currentColor;opacity:.6}
.library-sidebar .hub-settings{flex-shrink:0;margin:10px 0 4px;text-align:left;justify-content:flex-start;font:600 var(--vv-fs-2,12px)/1 var(--vv-font-ui,system-ui,sans-serif);letter-spacing:.04em}
#login-settings{margin-top:6px}
/* header, tabs and footer never shrink; only the body scrolls */
.vv-prefs .vvp-head,.vv-prefs .vvp-tabs,.vv-prefs .vvp-foot{flex:none}
.vv-prefs .vvp-tabs{min-height:46px;align-items:stretch}
