/* Shared refinement of the established FS material. No new global blur layer. */
.topbar { gap:.55rem 1rem; }
.topbar .control { font-size:.74rem; padding:.35rem .55rem; gap:.45rem; border-radius:2px; }
.topbar .control .icon { width:1.05rem;height:1.05rem; }
.topbar .nav-item.selected { background:transparent;border-bottom-color:var(--accent); }
.topbar .ruv-logo { width:1.45rem;height:1.45rem; }
.topbar .toolbar { gap:.25rem; }
.wordmark.app-wordmark { display:flex;align-items:center;gap:.55rem;width:auto;height:auto;min-height:var(--target); }
.app-mark { width:1.45rem;height:1.45rem;flex:none;overflow:visible; }
.app-brand-name { font-size:1.05rem;font-weight:300;letter-spacing:.015em; }
.app-wordmark .skuggi-tv { margin-left:0;padding-left:.4rem;font-size:.55rem; }
.page { background:linear-gradient(155deg,#20282426,transparent 45%); }
.app-name { font-size:.7rem; letter-spacing:.015em; }
.skuggi-wordmark { font-weight:300;font-size:2rem;letter-spacing:-.09rem; }
.skuggi-tv { font-size:.67rem;letter-spacing:.08em;border-left:1px solid #ffffff2a;padding-left:.55rem;margin-left:.55rem;color:var(--accent); }
.wordmark:has(.skuggi-wordmark) { display:flex;align-items:center;width:auto;min-width:8rem; }
.library-heading { justify-content:flex-start;gap:.85rem;margin:0 0 .85rem;padding:0 .25rem; }
.library-heading h1 { font-size:1.7rem;font-weight:400; }
.result-count { color:var(--muted);font-size:.72rem;padding-top:.35rem; }
.browse-toolbar { display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;flex:none;padding:.2rem .25rem .9rem; }
.browse-toolbar>.control { min-height:var(--target);font-size:.8rem;padding:.65rem .85rem; }
.browse-toolbar .icon { width:1.05rem;height:1.05rem; }
.active-filters { display:flex;gap:.35rem;flex-wrap:wrap;align-items:center; }
.filter-chip { font-size:.65rem;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);padding:.35rem .6rem;border-radius:var(--radius-control);background:color-mix(in srgb,var(--accent) 7%,transparent); }
.filter-help { font-size:.8rem;line-height:1.65;color:var(--muted); }
.library-content { scrollbar-width:thin;scrollbar-color:#414e44 transparent; }
.poster-card { transition:background-color 120ms ease; }
.poster-card:hover .poster-art { box-shadow:inset 0 0 0 1px #ffffff30; }
.poster-card:focus .poster-art { box-shadow:inset 0 0 0 1px #ffffff30; }
.poster-card h3 { font-size:.87rem;font-weight:450;letter-spacing:-.01em; }
.poster-art { background:linear-gradient(145deg,var(--rock),var(--fs-solid)); }
.poster-art>img { transition:opacity 120ms ease; }
.card-meta { font-size:.67rem; }
.discovery-section h2,.continue-section h2 { font-size:1.1rem; }
.library-content[aria-busy="true"] { cursor:progress; }
@media(min-width:601px) {
  .main { padding-top:.75rem; }
  .page[data-app="library"] .topbar { row-gap:.5rem; }
  .page[data-app="library"] .section-nav { gap:.4rem; }
  .nav-item { min-width:0; }
  .library-content { padding:6px; }
}
@media(max-width:600px) {
  .page { padding:20px 14px; }
  .topbar { gap:1rem; }
  .toolbar { gap:.4rem;display:grid;grid-template-columns:auto minmax(0,1fr) auto;width:100%; }
  .toolbar .switch-app { grid-column:1/-1;width:100%;justify-content:space-between; }
  .toolbar>[data-focus="profile-open"] { max-width:none;min-width:0; }
  .toolbar>[data-focus="profile-open"]>span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
  .toolbar .control { padding:.65rem .7rem; }
  .toolbar [data-focus="search-open"] { display:none; }
  .section-nav { gap:.15rem; margin-top:.25rem;flex-wrap:wrap; }
  .nav-item { font-size:.75rem;padding:.65rem .55rem; }
  .nav-item .icon { width:1rem;height:1rem; }
  .library-heading h1 { font-size:1.6rem; }
  .browse-toolbar { gap:.45rem;padding-bottom:1rem; }
  .browse-toolbar>.control { font-size:.8rem; }
  .active-filters { width:100%; }
  .library-content { padding:5px; }
  .poster-card h3 { font-size:.75rem; }
  .card-meta { font-size:.63rem; }
  .filter-chip { font-size:.73rem; }
  .app-name { font-size:.75rem; }
  .title-detail-panel { min-width:0;width:100%; }
  .footer { font-size:.7rem; }
}
@media(prefers-reduced-motion:reduce) { .poster-card,.poster-art>img {transition:none;} }
/* Continue Watching is a compact landscape shelf, leaving the collection in view. */
@media(min-width:801px) {
  .continue-section .poster-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
  .continue-section .poster-card {display:grid;grid-template-columns:42% 1fr;grid-template-rows:auto auto 1fr;gap:0 .8rem;align-items:start;padding:.4rem;border:1px solid #ffffff12;background:var(--surface-control);border-radius:var(--radius-poster);}
  .continue-section .poster-art {grid-row:1/4;aspect-ratio:16/9;}
  .continue-section .poster-card h3 {margin:.3rem 0 .3rem;white-space:normal;}
  .continue-section .resume-progress {grid-column:2;margin-top:.65rem;}
  .continue-section .tile-remove {width:auto;font-size:.61rem;margin:.3rem 0 0 auto;min-height:44px;padding:.4rem .6rem;background:transparent;border-color:transparent;}
  .continue-section {margin-bottom:1.35rem;}
}

/* Direction patterns: small flat controls; no credential directions are rendered. */
.pattern-widget { display:flex;flex-direction:column;align-items:center;gap:.7rem;width:min(100%,20rem);margin:1rem auto; }
.pattern-widget [hidden] { display:none!important; }
.pattern-instruction { margin:0 0 .3rem;color:var(--muted);font-size:.85rem;line-height:1.5;text-align:center; }
.pattern-capture { display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:.4rem;outline:none;border-radius:3px; }
.pattern-capture:focus-visible { outline:1.5px solid color-mix(in srgb,var(--focus) 45%,transparent);outline-offset:3px; }
.pattern-progress { display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:1rem; }
.pattern-dot { width:.35rem;height:.35rem;border:1px solid var(--muted);border-radius:50%;background:transparent; }
.pattern-dot.pattern-filled { background:var(--text);border-color:var(--text); }
.pattern-pad { display:grid;grid-template-columns:repeat(3,var(--target,48px));grid-template-rows:repeat(3,var(--target,48px));gap:3px;align-items:center;justify-items:center; }
.pattern-direction,.pattern-erase,.pattern-next,.pattern-restart { display:grid;place-items:center;min-width:44px;min-height:var(--target,48px);padding:.4rem .55rem;color:var(--muted);background:transparent;border:1px solid transparent;border-radius:3px;cursor:pointer;font:inherit;font-size:.8rem;line-height:1.3; }
.pattern-direction { width:var(--target,48px);height:var(--target,48px);padding:0; }
.pattern-direction svg,.pattern-erase svg { width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.5; }
.pattern-direction:hover,.pattern-erase:hover,.pattern-next:hover,.pattern-restart:hover { color:var(--text);background:color-mix(in srgb,var(--text) 5%,transparent); }
.pattern-direction:active,.pattern-erase:active,.pattern-next:active,.pattern-restart:active { background:color-mix(in srgb,var(--accent) 9%,transparent); }
.pattern-direction:disabled,.pattern-erase:disabled,.pattern-next:disabled,.pattern-restart:disabled { opacity:.4;cursor:default; }
.pattern-up { grid-area:1/2; }.pattern-left { grid-area:2/1; }.pattern-right { grid-area:2/3; }.pattern-down { grid-area:3/2; }
.pattern-center { grid-area:2/2;width:3px;height:3px;background:var(--quiet);border-radius:50%; }
.pattern-tools { display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:var(--target,48px); }
.pattern-erase { width:var(--target,48px);padding:0; }
.pattern-next { color:var(--accent); }
.pattern-message { min-height:1.5em;margin:0;color:var(--danger);font-size:.8rem;line-height:1.5;text-align:center; }
.pattern-accessible-help { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
@media(prefers-contrast:more) { .pattern-capture:focus-visible { outline:2px solid var(--focus); }.pattern-dot { border-color:var(--text); } }
@media(forced-colors:active) { .pattern-capture:focus-visible { outline:2px solid Highlight; }.pattern-dot.pattern-filled { background:CanvasText;border-color:CanvasText; }.pattern-center { background:CanvasText; } }

/* Device-local key binding editor; retain shared controls and panel material. */
.keybind-panel .keybind-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,1fr) auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--fs-border)}
.keybind-panel .keybind-label{font-size:.85rem;min-width:0}
.keybind-panel .keybind-row small{grid-column:1/-1}
.keybind-panel .keybind-row .control{min-width:0;font-size:.8rem;padding:.45rem .65rem;white-space:normal}
.keybind-panel .keybind-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.keybind-panel .keybind-feedback,.keybind-capture .keybind-capture-message{font-size:.85rem;line-height:1.5}
.keybind-color-choices .control{display:flex;width:100%;justify-content:flex-start;margin-bottom:8px}
.keybind-panel [data-keybind-color="red"] .keybind-label{border-left:3px solid #c87c75;padding-left:8px}
.keybind-panel [data-keybind-color="green"] .keybind-label{border-left:3px solid #84a98b;padding-left:8px}
.keybind-panel [data-keybind-color="yellow"] .keybind-label{border-left:3px solid #c8b47b;padding-left:8px}
.keybind-panel [data-keybind-color="blue"] .keybind-label{border-left:3px solid #829db5;padding-left:8px}
@media(max-width:600px){.keybind-panel .keybind-row{grid-template-columns:minmax(0,1fr) auto}.keybind-panel .keybind-label{grid-column:1/-1}}

/* Shared bug reporting: quiet entry, the same FS panel, no extra overlay stack. */
.bug-launcher{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(34px,env(safe-area-inset-bottom));z-index:45;min-height:44px!important;padding:8px!important;gap:7px;font-size:.68rem!important;color:var(--muted);background:transparent!important}
.bug-launcher .icon,.bug-pane-trigger .icon{width:19px;height:19px}
.bug-toolbar{min-width:44px;min-height:44px!important}
body:has(.topbar:not([hidden])) .bug-launcher{display:none}
.bug-launcher:hover,.bug-launcher:focus-visible{color:var(--text)}
body:has(.modal-shade:not([hidden])) .bug-launcher,body:has(.media-player[data-fullscreen="true"][data-controls="false"]) .bug-launcher,body.idle-active .bug-launcher{display:none}
.bug-pane-trigger{position:absolute;top:1rem;left:1rem;width:44px;min-height:44px!important;padding:8px!important}
.bug-report-form{display:flex;flex-direction:column;gap:14px;max-width:480px;margin-inline:auto}
.bug-report-form .bug-message-label{font-size:.9rem;margin-top:8px}
.bug-report-form textarea{display:block;box-sizing:border-box;min-height:112px;width:100%;resize:vertical;font:inherit;font-size:.9rem;line-height:1.5;border-radius:3px}
.bug-quick{display:flex;flex-wrap:wrap;gap:6px}
.bug-quick .control{min-height:44px;font-size:.74rem;padding:8px 10px;white-space:normal}
.bug-quick [aria-pressed="true"]{color:var(--text);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.bug-details{display:flex;align-items:center;gap:10px;min-height:44px;font-size:.8rem;cursor:pointer}
.bug-details input{width:18px;height:18px;accent-color:var(--accent)}
.bug-report-form small{font-size:.72rem;line-height:1.5}
.bug-report-form #bug-details-info{display:none}
.bug-report-form:has([data-focus="bug-details"]:checked) #bug-details-info{display:block}
.bug-status{margin:0;font-size:.8rem;line-height:1.5}
.bug-status:empty{display:none}
.bug-report-form [data-focus="bug-send"]{align-self:flex-end;min-width:88px;border:1px solid var(--fs-border);border-radius:3px}
.bug-success{font-size:1rem;line-height:1.6}
@media(max-width:600px){.bug-launcher span{display:none}.bug-report-form{gap:10px}.bug-quick .control{flex:1 1 42%}}

/* Shared keyboard/remote input; voice is an explicit, capability-gated action. */
.input-methods{display:flex;justify-content:flex-end;gap:2px;min-height:44px;margin-top:2px}
.input-methods .control{width:44px;min-height:44px!important;padding:10px!important;background:transparent!important}
.input-methods .icon{width:18px;height:18px}
.account-field:has(>input+.input-methods){position:relative}
.account-field>input+.input-methods{position:absolute;bottom:0;right:4px;margin:0}
.account-field>input:has(+.input-methods){padding-right:52px}
.live-search{flex-wrap:wrap}
.live-search>.input-methods{margin:0}
.input-editor-panel .input-preview{width:100%;box-sizing:border-box;font:inherit;line-height:1.5;margin-bottom:18px}
.input-editor-panel .input-keyboard{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:12px 0}
.input-keyboard .control{min-width:0;min-height:44px;padding:6px;border-radius:3px;justify-content:center;font-size:.8rem}
.input-actions{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}
.input-actions .control{min-height:44px;font-size:.8rem;padding:6px 10px}
.input-editor-panel small,.input-feedback{font-size:.75rem;line-height:1.5}
.input-editor-panel [data-focus="input-apply"]{width:100%;margin-top:16px;border:1px solid var(--fs-border);border-radius:3px}
.input-feedback:empty{display:none}
@media(max-width:600px){.input-editor-panel .input-keyboard{grid-template-columns:repeat(6,minmax(0,1fr))}.input-keyboard .control{min-height:44px}}
@media(max-width:420px){.input-editor-panel .input-keyboard{grid-template-columns:repeat(5,minmax(0,1fr))}}
