mirror of
https://github.com/mihawk-99/PS5_RetroArch.git
synced 2026-10-22 00:22:29 -05:00
The WebUI's new SMB page signs in to one server (guest or a user and password), lists its shares, checks a share and folder and saves them in config/smb.cfg on the console; the password is never answered back. RetroArch's file browser shows the share as SMB, after INTERNAL and EXTERNAL. smb:// paths go through RetroArch's VFS to src/ps5_smb_vfs.c (patches/series 0136), read-only and only on the saved server: a core that reads through the VFS streams the file, one that opens paths itself gets a copy in /app0/smb-cache, removed when the content closes. libsmb2 is pinned at the master revision itsPLK/ps5-pkg-manager runs on the PS5 (LGPL-2.1-or-later), built by tools/build-libsmb2.sh for the PS5 and the host and listed in tooling/notices/components.json: RetroArch 1.22.2 has no SMB client. In a title, getaddrinfo is bound to the platform layer's, which resolves nothing, so libsmb2's resolver calls go to RetroArch's own (src/platform_wraps.c); readv, writev, getlogin_r and getprotobyname are wrapped, so libsmb2 adds no import. SMB sockets set SO_NOSIGPIPE. Evidence: evidence/smb-load-content (python3 tools/evidence.py compare evidence/): on the Base PS5 the console's WebUI listed the PC's guest share and saved share/smb-test; Load Content > SMB listed it and a homebrew NES ROM on it ran under FCEUmm, read through the VFS (build a2c7800a, retroarch.log read back over FTP). Gates: tools/verify.sh (format, unit 214, build, integration, evidence 140) with PS5_REUSE_STAGED_CORES=ps5sx2: in this worktree the SDK's prospero-lld wrapper adds -pie to ps5sx2's link (clang passes its long object list in a response file the wrapper cannot read), so ps5sx2 is the main checkout's build of the same pinned revision. Host tests run a Samba server of their own (tests/smb_server.py, no root). Co-Authored-By: Claude <noreply@anthropic.com>
162 lines
78 KiB
CSS
162 lines
78 KiB
CSS
@font-face{font-family:'Encode Sans Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('assets/ui.woff2') format('woff2')}
|
|
:root{color-scheme:light;--rail:#37184a;--ground:#ede7f6;--surface:#fcfaff;--ink:#2d1447;--muted:#6c6f90;--accent:#7544b7;--accent-hover:#63339f;--line:#e0d6ef;--control:#cbcbe0;--green:#19af68;--sidebar-width:15.6667rem;--radius:0.722222rem;--r-page-title-font:2.77778rem;font:1rem/1.45 Arial,Helvetica,sans-serif;color:var(--ink);background:var(--ground);accent-color:var(--accent);scrollbar-color:#b09acb var(--ground)}
|
|
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--accent);text-underline-offset:0.222222rem}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:0.166667rem solid #a566ef;outline-offset:0.222222rem}::selection{background:#d4b5fb;color:#27133e}input{caret-color:var(--accent)}[hidden]{display:none!important}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.icon{width:1.44444rem;height:1.44444rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}h1,h2,p{margin:0}h1{font-family:'Encode Sans Condensed',Arial,sans-serif;font-size:var(--r-page-title-font);font-weight:700;line-height:1.15;letter-spacing:-.025em}h2{font-size:1.38889rem;line-height:1.3;letter-spacing:-.025em}p{color:var(--muted)}.skip-link{position:fixed;left:0.666667rem;top:-80px;z-index:10;padding:0.666667rem;background:var(--surface)}.skip-link:focus{top:0.666667rem}
|
|
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--rail);color:#fff;display:flex;flex-direction:column;padding:5.05556rem 0.722222rem 1.27778rem}.brand{display:flex;gap:0.833333rem;align-items:center;margin:0 0.666667rem 2rem;color:#fff;text-decoration:none;white-space:nowrap}.brand img{width:3.55556rem;height:2.38889rem;object-fit:contain}.brand strong{font-size:1.83333rem;line-height:1.1;letter-spacing:-.025em}.brand small{display:block;font-size:1.11111rem;color:#d5c4ec;line-height:1.4;margin-top:0.111111rem}.sidebar nav{display:grid;gap:0.277778rem}.sidebar nav a{display:flex;align-items:center;gap:1.55556rem;min-height:3.11111rem;padding:0.666667rem 1.22222rem;border-radius:0.666667rem;text-decoration:none;color:#fff;font-size:1.11111rem}.sidebar nav .icon{width:1.55556rem;height:1.55556rem}.sidebar nav a[aria-current=page]{background:#6c3b9d}.sidebar nav a:hover{background:#62378d}.credit{margin-top:auto;display:flex;align-items:flex-end;gap:0.777778rem;color:#d5c4ec;font-size:0.888889rem;text-decoration:none;padding:0 0.333333rem;white-space:nowrap}.credit img{width:4.27778rem;height:4.44444rem;object-fit:contain;border-radius:0.222222rem}.credit span{padding-bottom:0.388889rem}
|
|
.workspace{margin-left:var(--sidebar-width);min-height:100vh}.release-bar{min-height:3.44444rem;background:var(--surface);border-bottom:0.0555556rem solid #d8c8ef;display:flex;align-items:center;gap:1.11111rem;padding:0.444444rem 1.66667rem;font-size:0.944444rem}.release-icon{color:var(--accent);width:1.44444rem;height:1.44444rem}.release-status{display:flex;gap:1rem;align-items:center;flex:1;min-width:0}.release-status strong{white-space:nowrap}.release-status span{color:#55337d;border-left:0.0555556rem solid #b799df;padding-left:1rem}.repository{display:flex;align-items:center;gap:0.555556rem;margin-left:0.555556rem;white-space:nowrap}.repository .icon{width:1.11111rem;height:1.11111rem}.primary{display:inline-flex;align-items:center;justify-content:center;gap:0.722222rem;border:0;border-radius:0.444444rem;background:var(--accent);color:white;text-decoration:none;min-height:2.77778rem;padding:0.666667rem 1.22222rem;font-size:1rem}.primary:hover{background:var(--accent-hover)}.compact{min-height:2.22222rem;padding:0.444444rem 1.27778rem;font-size:0.888889rem;white-space:nowrap}.primary .icon{width:1.27778rem;height:1.27778rem}main{padding:0 1.66667rem 1.38889rem}.page-heading{min-height:5.72222rem;display:flex;align-items:center;justify-content:space-between;gap:1.11111rem}.connection{display:flex;gap:0.777778rem;align-items:center;font-size:1.11111rem;color:var(--ink)}.status-dot{width:1rem;height:1rem;background:var(--green);border-radius:50%;flex:none}.overview-top{display:grid;grid-template-columns:minmax(0,.486fr) minmax(0,.514fr);gap:0.944444rem}.panel{background:var(--surface);border:0.0555556rem solid var(--line);border-radius:var(--radius);padding:1rem 1.05556rem 1.22222rem}.panel-heading{display:flex;align-items:flex-start;gap:1.05556rem;min-height:3.27778rem}.section-icon{width:2.88889rem;height:2.88889rem;color:var(--accent);margin-top:0.166667rem;stroke-width:1.9}.panel-heading p{font-size:1rem;margin-top:0.166667rem}.upload-panel,.library-panel{min-height:23.3889rem}.destination-label{display:block;font-size:0.944444rem;margin-top:1.05556rem;margin-bottom:0.388889rem}select{width:100%;min-height:2.5rem;padding:0.388889rem 0.833333rem;background:var(--surface);border:0.0555556rem solid var(--control);border-radius:0.333333rem}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:7.88889rem;background:transparent;border:0.111111rem dashed #b3b5ce;border-radius:0.444444rem;margin-top:1rem;padding:0.833333rem;color:var(--muted)}.dropzone .icon{width:2.11111rem;height:2.11111rem;margin-bottom:0.555556rem}.dropzone strong{font-size:1.11111rem;color:var(--ink)}.dropzone span{font-size:1rem}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);background:#f2eafb}.browse-files{width:100%;margin-top:1rem}.library-folders{margin-top:1.16667rem;border:0.0555556rem solid var(--line);border-radius:0.666667rem;overflow:hidden}.folder-row{display:flex;align-items:center;gap:1.38889rem;min-height:4.33333rem;padding:0.888889rem 1.05556rem;text-decoration:none;border-bottom:0.0555556rem solid var(--line)}.folder-row:last-child{border-bottom:0}.folder-row>.icon:first-child{width:2.27778rem;height:2.27778rem}.folder-row strong{font-size:1.05556rem;color:var(--ink);flex:1;min-width:0;overflow-wrap:anywhere}.folder-row span{font-size:0.888889rem;font-weight:600;white-space:nowrap}.folder-row>.icon:last-child{width:1.05556rem;height:1.05556rem;margin-left:-12px}.folder-row:hover{background:#f2eafb}.transfers-panel{margin-top:1.11111rem;min-height:12.2222rem}.transfers-panel .section-icon{color:var(--ink);width:2.77778rem;height:2.77778rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:0.888889rem;min-height:7.5rem;color:var(--muted)}.empty-state>.icon{width:2.38889rem;height:2.38889rem}.empty-state p{font-size:1.05556rem}.quick-panel{margin-top:1.11111rem;min-height:9.66667rem;padding-bottom:1rem}.quick-panel .panel-heading{min-height:2.88889rem}.quick-panel .section-icon{width:2.77778rem;height:2.77778rem}.quick-settings{display:grid;grid-template-columns:1.15fr 1.1fr 1fr auto;gap:1.5rem;margin-top:0.666667rem;align-items:end}.quick-field{min-width:0}.quick-field label{display:flex;align-items:center;gap:0.833333rem;font-size:0.888889rem;margin-bottom:0.277778rem;white-space:nowrap}.quick-field label .icon{width:1.5rem;height:1.5rem}.range-field{display:flex;align-items:center;gap:0.944444rem;padding-left:2.38889rem;min-height:2.05556rem}.range-field input{width:100%;min-width:0;margin:0;height:1.44444rem}.range-field output{font-size:0.888889rem;color:var(--muted);min-width:2.44444rem;font-variant-numeric:tabular-nums}.quick-field select{margin-left:2.33333rem;width:calc(100% - 2.33333rem);min-height:2.38889rem;font-size:0.888889rem}.settings-open{min-height:3.11111rem;font-size:0.888889rem;gap:0.777778rem;padding:0.777778rem 1.38889rem}
|
|
h2{line-height:1.2}.destination-label{line-height:1.2}.library-panel .section-icon{fill:#d5b6f7;margin-left:0.277778rem}.transfers-panel .empty-state{min-height:6.5rem}.quick-panel{padding:0.666667rem 1.05556rem 0.777778rem}.quick-panel .panel-heading p{font-size:0.888889rem}.settings-open{min-width:11.3889rem}.settings-open .icon{fill:currentColor}
|
|
.quick-panel .section-icon{padding:0.277778rem;margin-top:0}
|
|
:root[data-theme=dark]{color-scheme:dark;--rail:#21112f;--ground:#291d35;--surface:#33243f;--ink:#f3eafa;--muted:#c4b7d1;--accent:#ae80ea;--accent-hover:#9e6cde;--line:#51405f;--control:#715d80;--green:#59d394}.release-bar{flex-wrap:wrap;gap:0.666667rem 1.11111rem}.release-status{flex-wrap:wrap;gap:0.444444rem 1rem}.release-status span{color:var(--ink);font-size:0.888889rem}.release-bar[data-state=current] .release-icon{color:#15834f}.release-bar[data-state=update]{background:#fff5d8}.release-bar[data-state=update] .release-icon{color:#9a6800}.release-bar[data-state=update] .release-status{color:#583b00}.release-bar[data-state=update] .release-status span{color:#583b00}:root[data-theme=dark] .release-bar[data-state=update]{background:#4d3b1c}:root[data-theme=dark] .release-bar[data-state=update] .release-status,:root[data-theme=dark] .release-bar[data-state=update] .release-status span{color:#ffe09d}.connection.offline .status-dot{background:#987caa}.connection.offline{color:var(--muted)}.secondary,.text-button{border:0.0555556rem solid var(--control);background:var(--surface);color:var(--accent);border-radius:0.388889rem;padding:0.444444rem 0.777778rem;min-height:2.33333rem;font-size:0.888889rem}.secondary:hover{border-color:var(--accent);background:var(--ground)}.text-button{border:0;background:transparent;padding:0.222222rem 0;white-space:nowrap;text-decoration:underline;text-underline-offset:0.222222rem}.text-button:hover{color:var(--accent-hover)}.text-button:disabled{opacity:1;color:var(--ink);text-decoration:none}.announcement:empty{display:none}.announcement{padding:0.777778rem 0;color:var(--ink);font-size:0.888889rem}.error,.inline-error{color:#a32c51}.notice{margin:1.11111rem 0 0;border:0.0555556rem solid var(--line);border-radius:0.444444rem;background:var(--surface);padding:0.777778rem 1rem;display:flex;gap:0.888889rem;align-items:center;justify-content:space-between}.notice span{font-size:0.888889rem}.list-message{display:block;padding:1.11111rem;font-size:0.888889rem}.list-message p{margin-bottom:0.666667rem}.library-folders .list-message{min-height:4.22222rem}.library-folders .list-message:last-child{border:0}.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1.11111rem;margin-bottom:1.22222rem}.section-toolbar p{margin-top:0.333333rem;font-size:0.888889rem}.content-tools{display:flex;gap:1.11111rem;align-items:end;margin:1.11111rem 0}.search-field{flex:1;max-width:30.5556rem;font-size:0.888889rem}.search-field input{display:block;width:100%;margin-top:0.333333rem}.content-tools input,.folder-form input,.setting-row input[type=number]{min-height:2.44444rem;padding:0.444444rem 0.666667rem;border:0.0555556rem solid var(--control);border-radius:0.333333rem;background:var(--surface)}#breadcrumbs{display:flex;gap:0.666667rem;flex-wrap:wrap;padding-bottom:0.888889rem;border-bottom:0.0555556rem solid var(--line)}#breadcrumbs button+button:before{content:'/';display:inline-block;margin-right:0.666667rem;color:var(--muted);text-decoration:none}.folder-form{display:flex;align-items:center;gap:0.666667rem;flex-wrap:wrap;margin:1.33333rem 0;font-size:0.888889rem}.folder-form input{min-width:0;width:14.4444rem}.muted{color:var(--muted)}#folder-caption{font-size:0.833333rem;margin:0.888889rem 0 0.333333rem}.content-list{border-top:0.0555556rem solid var(--line)}.content-row{display:grid;grid-template-columns:1.55556rem minmax(0,1fr) 5rem 5rem;align-items:center;gap:1rem;padding:0.944444rem 0;border-bottom:0.0555556rem solid var(--line);font-size:0.888889rem}.content-row .icon{color:var(--accent);width:1.44444rem;height:1.44444rem}.file-name{border:0;background:transparent;text-align:left;text-decoration:none;padding:0;min-width:0;overflow-wrap:anywhere;font-size:0.888889rem;color:var(--ink)}.file-name:hover{text-decoration:underline}.file-size{font-size:0.777778rem;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.content-row>a:last-child{text-align:right}.help-text{font-size:0.888889rem;margin-bottom:1.33333rem;max-width:75ch}.transfer-row{display:flex;align-items:center;gap:1.11111rem;padding:0.777778rem 0;border-bottom:0.0555556rem solid var(--line);animation:transfer-added .35s ease-out}.transfer-row:last-child{border-bottom:0}.transfer-details{flex:1;min-width:0}.transfer-details strong,.transfer-details span{display:block;overflow-wrap:anywhere}.transfer-details strong{font-size:0.888889rem}.transfer-details span{font-size:0.777778rem;margin-top:0.222222rem}.transfer-details progress{width:100%;height:0.388889rem;margin-top:0.555556rem;border:0;border-radius:0.222222rem;overflow:hidden;accent-color:var(--accent)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}.settings-intro{font-size:0.888889rem;max-width:75ch;margin:0.666667rem 0 1.55556rem}fieldset{padding:0;margin:0;border:0}.setting-row{display:grid;grid-template-columns:minmax(0,1fr) 10.5556rem;align-items:center;gap:0.444444rem 1.33333rem;padding:1rem 0;border-bottom:0.0555556rem solid var(--line);font-size:0.944444rem}.setting-row input[type=checkbox]{justify-self:end;width:1.22222rem;height:1.22222rem;margin:0}.setting-row small{grid-column:1/-1;color:var(--muted);font-size:0.777778rem}.setting-row input[type=number]{width:100%;text-align:right}.form-actions{display:flex;align-items:center;gap:1.11111rem;margin-top:1.38889rem;font-size:0.888889rem}.release-details{margin-top:1.33333rem}.release-details pre{font:0.888889rem/1.7 Arial,Helvetica,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;max-width:85ch;margin:1.11111rem 0;color:var(--ink)}#release-date{font-size:0.833333rem}.range-field output{white-space:nowrap;min-width:2.77778rem}.visually-hidden{position:absolute;width:0.0555556rem;height:0.0555556rem;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.primary:disabled:hover{background:var(--accent)}.folder-row:hover,.dropzone:hover,.dropzone.dragging{background:var(--ground)}:root[data-theme=dark] .primary{color:#251434}:root[data-theme=dark] .error,:root[data-theme=dark] .inline-error{color:#ff9db7}:root[data-theme=dark] .release-bar[data-state=current] .release-icon{color:#59d394}
|
|
@keyframes transfer-added{from{background:var(--ground)}to{background:transparent}}
|
|
@media(min-width:769px) and (max-width:1300px){:root{--sidebar-width:12.7778rem}.sidebar{padding-top:3.88889rem}.brand{gap:0.555556rem;margin-left:0.277778rem;margin-right:0}.brand strong{font-size:1.5rem}.brand img{width:2.66667rem}.sidebar nav a{gap:1.11111rem;padding-left:0.944444rem}.credit{gap:0.555556rem;font-size:0.777778rem}.credit img{width:2.77778rem;height:3rem}.panel-heading{gap:0.666667rem}.panel-heading p{font-size:0.888889rem}.panel-heading h2{font-size:1.27778rem}.section-icon{width:2.44444rem;height:2.44444rem}.overview-top{grid-template-columns:1fr 1fr}.release-status{min-width:15rem}.repository{font-size:0.833333rem}.quick-settings{grid-template-columns:1fr 1fr;gap:1.11111rem}.quick-panel{padding:1.11111rem}.settings-open{min-width:0}.folder-row{gap:0.833333rem;padding:0.888889rem 0.666667rem}.folder-row span{font-size:0.777778rem}.folder-row>.icon:first-child{width:1.66667rem}.release-bar,main{padding-left:1.33333rem;padding-right:1.33333rem}}
|
|
@media(max-width:768px){:root{--sidebar-width:0rem;--r-page-title-font:2.11111rem}.sidebar{position:relative;width:100%;padding:1.22222rem 0.888889rem 0.666667rem}.brand{margin:0 0 1.27778rem;gap:0.611111rem;max-width:calc(100% - 5.55556rem)}.brand img{width:2.5rem;height:1.94444rem}.brand strong{font-size:1.44444rem}.brand small{font-size:0.833333rem}.credit{position:absolute;right:0.888889rem;top:1rem;padding:0;display:flex;flex-direction:column;align-items:center;gap:0.166667rem;font-size:0.611111rem}.credit img{width:1.94444rem;height:1.94444rem}.credit span{padding:0}.sidebar nav{display:flex;gap:0.222222rem;overflow-x:auto;scrollbar-width:none}.sidebar nav a{flex:1 0 auto;min-width:3.6rem;flex-direction:column;justify-content:center;gap:0.277778rem;min-height:3.33333rem;padding:0.444444rem 0.111111rem;font-size:0.722222rem;border-radius:0.444444rem}.sidebar nav .icon{width:1.27778rem;height:1.27778rem}.workspace{margin:0}.release-bar{padding:0.666667rem 0.888889rem;gap:0.444444rem 0.722222rem;font-size:0.777778rem}.release-status{flex-basis:calc(100% - 2.5rem);gap:0.166667rem 0.555556rem}.release-status span{font-size:0.722222rem;border:0;padding:0}.release-status strong{font-size:0.777778rem}.release-icon{width:1.22222rem;height:1.22222rem}.release-bar .compact{font-size:0.777778rem;min-height:2.11111rem;padding:0.388889rem 0.777778rem}.repository{font-size:0.722222rem;margin-left:auto;gap:0.277778rem}.repository .icon{width:0.944444rem;height:0.944444rem}.release-bar>.text-button{font-size:0.777778rem}.release-bar:has(#show-notes:not([hidden])) .repository{flex-basis:100%;justify-content:flex-end}main{padding:0 0.888889rem 1.11111rem}.page-heading{min-height:5.05556rem;gap:0.555556rem;align-items:center}.connection{font-size:0.666667rem;gap:0.388889rem;max-width:8.05556rem;line-height:1.4}.status-dot{width:0.611111rem;height:0.611111rem}.overview-top{grid-template-columns:minmax(0,1fr);gap:0.888889rem}.panel{padding:1rem 0.888889rem;border-radius:0.666667rem}.panel-heading{gap:0.722222rem;min-height:3.05556rem}.panel-heading h2{font-size:1.22222rem}.panel-heading p{font-size:0.833333rem;line-height:1.45}.section-icon{width:2.22222rem;height:2.22222rem}.upload-panel,.library-panel{min-height:0}.destination-label{margin-top:1rem}.dropzone{min-height:7.88889rem}.library-panel .section-icon{margin-left:0}.library-folders{margin-top:1.22222rem}.folder-row{gap:0.888889rem;padding:0.777778rem;min-height:3.88889rem}.folder-row>.icon:first-child{width:1.77778rem;height:1.77778rem}.folder-row strong{font-size:0.888889rem}.folder-row span{font-size:0.722222rem}.transfers-panel,.quick-panel{margin-top:0.888889rem;min-height:0}.transfers-panel .section-icon,.quick-panel .section-icon{width:2.22222rem;height:2.22222rem}.transfers-panel .empty-state{min-height:7.5rem}.empty-state p{font-size:0.888889rem}.quick-settings{grid-template-columns:1fr;gap:1.11111rem;margin-top:1.38889rem}.quick-panel .panel-heading p{font-size:0.833333rem}.quick-field label{font-size:0.833333rem}.quick-field select{font-size:0.888889rem}.quick-field .range-field{min-height:1.94444rem}.settings-open{width:100%;min-height:2.66667rem;margin-top:0.111111rem}.section-toolbar{align-items:flex-start;gap:0.666667rem;flex-wrap:wrap}.section-toolbar h2{font-size:1.22222rem}.section-toolbar p{font-size:0.777778rem}.content-tools{flex-wrap:wrap;gap:0.666667rem}.search-field{flex-basis:100%}.content-tools .primary{width:100%}.folder-form{gap:0.555556rem}.folder-form label{flex-basis:100%}.folder-form input{flex:1;width:8.33333rem}.folder-form button{font-size:0.777778rem;padding:0.444444rem 0.555556rem}.content-row{grid-template-columns:1.33333rem minmax(0,1fr) auto;gap:0.555556rem}.content-row>a:last-child:not(.file-name){grid-column:2/4;justify-self:start;font-size:0.777778rem}.file-size{font-size:0.666667rem}.setting-row{grid-template-columns:minmax(0,1fr) 5rem;gap:0.444444rem 0.666667rem;font-size:0.833333rem}.setting-row select{padding:0.333333rem;font-size:0.777778rem}.form-actions{align-items:flex-start;flex-direction:column}.form-actions .primary{width:100%}.notice{align-items:flex-start;gap:0.555556rem;padding:0.666667rem}.notice span{font-size:0.777778rem}.notice button{font-size:0.777778rem;padding:0.388889rem}.release-details pre{font-size:0.833333rem}.release-details .primary{width:100%;font-size:0.888889rem}.transfer-row{gap:0.555556rem}.transfer-row .secondary{font-size:0.777778rem;padding:0.444444rem 0.555556rem}.transfer-details strong{font-size:0.833333rem}}
|
|
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
|
|
|
|
:root{font-size:16px}
|
|
|
|
@media(min-width:769px){.sidebar{padding-top:2.5rem}.page-heading{min-height:5.5rem}.upload-panel,.library-panel{min-height:0}.transfers-panel{min-height:10rem}.transfers-panel .empty-state{min-height:4.5rem}.dropzone{min-height:7rem}.credit img{width:3rem;height:3rem}.workspace{min-width:0}.skip-link{transform:translateY(-200%);top:0}.skip-link:focus{transform:none}}
|
|
.settings-controls{display:flex;gap:1rem;flex-wrap:wrap;align-items:end;margin:1.25rem 0}.settings-controls label{display:grid;gap:.4rem;font-size:.875rem}.settings-controls select{min-width:12rem;max-width:100%}.settings-search{flex:1}.settings-controls input,.setting-row input[type=text]{min-height:2.5rem;padding:.5rem .75rem;border:1px solid var(--control);border-radius:.35rem;background:var(--surface);min-width:0;width:100%}.settings-controls input{max-width:32rem}.setting-row{grid-template-columns:minmax(0,1fr) minmax(12rem,40%)}.setting-label small{display:block;overflow-wrap:anywhere;margin-top:.2rem}.settings-paging{display:flex;gap:1rem;align-items:center;justify-content:flex-end;margin-top:1rem}.settings-paging span,#settings-count{font-size:.875rem;color:var(--muted)}.settings-actions{position:sticky;bottom:0;background:var(--surface);padding:1rem 0;margin-top:1rem;border-top:1px solid var(--line)}.setting-row input:invalid{border-color:#a32c51}@media(max-width:768px){.settings-controls{align-items:stretch}.settings-controls label{flex:1 1 100%}.setting-row{grid-template-columns:minmax(0,1fr)}.setting-row input[type=checkbox]{grid-column:1;justify-self:start}.settings-actions{position:static}}
|
|
|
|
main{max-width:100rem;margin-inline:auto}
|
|
|
|
.settings-view-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.5rem 0 1.25rem}.settings-view-bar>span{font-size:.875rem;color:var(--muted)}.settings-mode{display:flex;border:1px solid var(--control);border-radius:.45rem;padding:.2rem;gap:.2rem}.settings-mode button,#settings-categories button{font-size:.875rem;border:0;background:transparent;color:var(--ink);padding:.65rem 1rem;border-radius:.333333rem;min-height:2.75rem}.settings-mode button[aria-pressed=true]{background:var(--accent);color:#fff}.settings-mode button:hover,#settings-categories button:hover{background:var(--ground);color:var(--ink)}#settings-categories{display:flex;flex-wrap:wrap;gap:.35rem;border-bottom:1px solid var(--line);padding-bottom:.75rem;margin-bottom:1.5rem}#settings-categories button[aria-pressed=true]{color:var(--accent);background:var(--ground);font-weight:700}.settings-category-heading h3{font-size:1.11111rem;margin:0 0 .3rem}.settings-category-heading p{font-size:.875rem;max-width:70ch}.settings-category-heading{margin-bottom:1.25rem}#settings-coverage{font-size:.875rem;margin:.75rem 0;color:var(--muted)}.setting-details{min-width:0}.setting-label{font-weight:600;display:block}.setting-label small{font-weight:400}.setting-description{font-size:.875rem;line-height:1.55;max-width:70ch;margin-top:.4rem}.setting-control{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;min-width:0}.setting-control input[type=range]{width:100%;min-width:0}.setting-control output{white-space:nowrap;font-size:.875rem;min-width:3rem;font-variant-numeric:tabular-nums}.setting-control input[type=checkbox]{width:1.375rem;height:1.375rem;min-width:1.375rem;cursor:pointer}.setting-row{padding:1.25rem 0;grid-template-columns:minmax(0,1fr) minmax(12rem,28%);gap:1.5rem}.setting-edited .setting-label::after{content:'Unsaved';font-weight:400;font-size:.777778rem;margin-left:.6rem;color:var(--accent)}:root[data-theme=dark] .settings-mode button[aria-pressed=true]{color:#251434}@media(max-width:768px){.setting-row{grid-template-columns:minmax(0,1fr);gap:.85rem}.setting-control{justify-content:flex-start}.setting-control select{font-size:.875rem;min-height:2.75rem;padding:.5rem .75rem}.settings-view-bar{gap:.65rem}#settings-categories{gap:.2rem}#settings-categories button{padding:.55rem .75rem}.setting-description{font-size:.875rem}.settings-mode button{min-width:6rem}}
|
|
|
|
/* Maintenance controls share the Overview's compact rhythm. */
|
|
.alerts-panel{margin-bottom:1.25rem;padding:1.15rem 1.4rem}.alerts-panel .section-toolbar{margin-bottom:0}.alerts-panel h2{font-size:1.38889rem}.alert-count{display:inline-block;margin-left:.4rem;padding:.12rem .45rem;border-radius:.35rem;background:#fff5d8;color:#583b00;font-size:.888889rem;vertical-align:middle;font-variant-numeric:tabular-nums}.alerts-panel details{margin-top:.85rem}.alerts-panel summary{cursor:pointer;color:var(--accent);font-weight:600;width:fit-content}.alerts-panel details>.help-text{margin:.8rem 0;color:var(--muted)}#alerts-list{max-height:24rem;overflow:auto;padding-right:.35rem}.alert-group{padding:.85rem 0;border-top:1px solid var(--line)}.alert-group h3{font-size:1rem;margin:0 0 .5rem}.alert-item{display:grid;grid-template-columns:minmax(10rem,1fr) minmax(0,2fr);gap:.3rem 1rem;padding:.4rem 0;font-size:.888889rem}.alert-item strong{font-weight:400}.alert-item code{overflow-wrap:anywhere;font-size:.888889rem;color:var(--muted)}.alert-item p{overflow-wrap:anywhere}.update-panel{margin-top:1.25rem}.update-panel .section-toolbar{margin-bottom:.7rem}.update-panel .help-text{margin:1rem 0;color:var(--muted)}#update-progress{display:block;width:min(100%,32rem);height:.4rem;margin-top:1rem;accent-color:var(--accent)}#update-error{margin-top:.75rem}.release-bar #download-update{white-space:nowrap}.alerts-panel summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px;border-radius:.333333rem}
|
|
@media(max-width:600px){.alert-item{grid-template-columns:1fr}.alerts-panel{padding:1rem}.alerts-panel .section-toolbar{align-items:flex-start}.update-panel .section-toolbar{align-items:flex-start;flex-direction:column}}
|
|
|
|
.games-panel{margin-bottom:1.11111rem}.games-tools{display:flex;gap:1rem;align-items:end;flex-wrap:wrap;margin-bottom:.9rem}.games-tools>label{font-size:.888889rem}.games-tools select{min-width:12rem;margin-top:.33rem}.games-tools .search-field{flex:1;min-width:12rem}.games-tools input[type=search]{display:block;width:100%;margin-top:.333333rem;min-height:2.44444rem;padding:.444444rem .666667rem;border:.0555556rem solid var(--control);border-radius:.333333rem;background:var(--surface)}.check-inline{display:flex;align-items:center;gap:.5rem;font-size:.888889rem;min-height:2.44444rem}.check-inline input{width:1.1rem;height:1.1rem;margin:0}
|
|
.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.9rem;margin-top:.75rem}.game-card{position:relative;display:flex;flex-direction:column;border:.0555556rem solid var(--line);border-radius:.6rem;overflow:hidden;background:var(--surface)}.game-card[aria-selected=true]{border-color:var(--accent);box-shadow:0 0 0 .111111rem var(--accent)}.game-cover{aspect-ratio:3/4;background:transparent;display:flex;align-items:center;justify-content:center;overflow:hidden}.game-cover img{width:100%;height:100%;object-fit:contain}.game-cover .icon{width:2.4rem;height:2.4rem;color:var(--muted)}.game-info{padding:.55rem .65rem .7rem;display:flex;flex-direction:column;gap:.3rem;min-width:0}.game-info strong{font-size:.833333rem;line-height:1.3;overflow-wrap:anywhere}.game-info small{font-size:.722222rem;color:var(--muted)}.media-badges{display:flex;gap:.25rem;flex-wrap:wrap}.media-badges span{font-size:.666667rem;padding:.05rem .35rem;border-radius:.25rem;background:var(--ground);color:var(--ink)}.game-select{position:absolute;top:.45rem;left:.45rem;width:1.25rem;height:1.25rem;margin:0;accent-color:var(--accent)}.games-more{grid-column:1/-1;justify-self:center}
|
|
.scrape-panel,.scrape-job{margin-bottom:1.11111rem}.scrape-method{border:0;padding:0;margin:0 0 1.2rem;display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.scrape-method legend{font-weight:700;font-size:1.05rem;margin-bottom:.6rem;color:var(--ink)}.scrape-method>p{grid-column:1/-1;font-size:.833333rem}.method-card{display:flex;gap:.8rem;align-items:flex-start;border:.111111rem solid var(--line);border-radius:.6rem;padding:.9rem 1rem;cursor:pointer}.method-card:has(input:checked){border-color:var(--accent);background:var(--ground)}.method-card input{margin-top:.25rem;width:1.15rem;height:1.15rem;accent-color:var(--accent)}.method-card strong{display:block;font-size:.944444rem;margin-bottom:.3rem}.method-card small{display:block;font-size:.833333rem;line-height:1.5;color:var(--muted)}.scrape-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.scrape-options label{font-size:.888889rem}.scrape-options select{margin-top:.33rem}.scrape-kinds{border:0;padding:0;margin:0 0 .6rem;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem}.scrape-kinds legend{font-size:.888889rem;margin-bottom:.4rem;color:var(--ink)}.scrape-kinds label,.scrape-scope label{display:flex;align-items:center;gap:.45rem;font-size:.888889rem}.scrape-scope{display:flex;gap:1.5rem;flex-wrap:wrap;margin:.6rem 0}
|
|
.job-actions{display:flex;gap:.6rem}.job-bars{display:grid;gap:.75rem;margin-bottom:1rem}.job-bars label{display:grid;grid-template-columns:8rem minmax(0,1fr) 12rem;gap:.8rem;align-items:center;font-size:.888889rem}.job-bars progress{width:100%;height:.5rem;accent-color:var(--accent)}.job-bars span{font-size:.833333rem;color:var(--muted);font-variant-numeric:tabular-nums}.job-helper{border:.0555556rem solid var(--line);border-radius:.6rem;padding:.9rem 1rem;margin-bottom:1rem;display:grid;gap:.6rem;font-size:.888889rem}.job-helper code{display:block;padding:.6rem .7rem;background:var(--ground);border-radius:.35rem;overflow-wrap:anywhere;font-size:.833333rem}.job-helper button{justify-self:start}.job-problems{display:grid;gap:.6rem}.problem-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;align-items:center;padding:.7rem 0;border-top:.0555556rem solid var(--line);font-size:.888889rem}.problem-row p{font-size:.833333rem}.problem-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;grid-column:1/-1}.problem-actions select,.problem-actions input{width:auto;min-width:14rem;min-height:2.33rem;padding:.35rem .6rem;border:.0555556rem solid var(--control);border-radius:.333333rem;background:var(--surface)}
|
|
@media(max-width:768px){.scrape-method,.scrape-options{grid-template-columns:1fr}.job-bars label{grid-template-columns:1fr}.games-grid{grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:.6rem}.problem-actions select,.problem-actions input{min-width:0;flex:1}}
|
|
.version-tags{display:flex;gap:.25rem;flex-wrap:wrap}.version-tags:empty{display:none}.version-tags span{font-size:.666667rem;padding:.05rem .4rem;border-radius:.25rem;border:.0555556rem solid var(--accent);color:var(--accent);white-space:nowrap}
|
|
.scrape-intro{margin-bottom:1.2rem}.scrape-step{border-top:.0555556rem solid var(--line);padding-top:1rem;margin-top:1rem}.scrape-step h3{font-size:1.05rem;margin:0 0 .7rem;color:var(--ink)}.source-cards,.kind-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.7rem}.source-card,.kind-card{display:flex;gap:.7rem;align-items:flex-start;border:.111111rem solid var(--line);border-radius:.6rem;padding:.75rem .85rem;cursor:pointer}.source-card:has(input:checked),.kind-card:has(input:checked){border-color:var(--accent);background:var(--ground)}.source-card input,.kind-card input{margin-top:.2rem;width:1.1rem;height:1.1rem;accent-color:var(--accent);flex:none}.source-card span,.kind-card span{display:grid;gap:.25rem}.source-card strong,.kind-card strong{font-size:.9rem;color:var(--ink);display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.source-card small,.kind-card small{font-size:.8rem;line-height:1.45;color:var(--muted)}.unavailable{cursor:not-allowed;opacity:.72}.soon-tag,.account-tag{font-style:normal;font-size:.68rem;font-weight:600;padding:.05rem .4rem;border-radius:.25rem;background:var(--ground);color:var(--ink)}.account-tag{border:.0555556rem solid var(--control)}.kind-source{color:var(--accent)!important;font-weight:600}.kind-source.missing{color:var(--muted)!important;font-weight:400}.kind-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.8rem}.scrape-options label small{display:block;margin:.15rem 0 .1rem}.scrape-summary{margin-top:1.1rem;padding:.7rem .9rem;border-radius:.45rem;background:var(--ground);color:var(--ink);font-size:.9rem}
|
|
.media-page{display:grid;gap:1.11111rem}.media-setup{padding:1.2rem 1.3rem 0;position:relative}.media-head p{margin-top:.35rem;font-size:.9rem;max-width:70ch}.media-row{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.4rem 1rem;align-items:center;padding:.9rem 0;border-top:.0555556rem solid var(--line)}.media-head+.media-row{margin-top:1rem}.media-label{font-weight:700;font-size:.9rem;color:var(--ink)}.media-hint{grid-column:2;font-size:.8rem;min-height:1.1em;margin:0}.media-row-kinds{align-items:start}.media-row-kinds .media-label{padding-top:.45rem}.kinds-area{display:grid;gap:.6rem}
|
|
.segmented{display:inline-flex;border:.0555556rem solid var(--control);border-radius:.6rem;padding:.2rem;gap:.2rem;background:var(--surface);justify-self:start}.segmented label{position:relative}.segmented input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.segmented span{display:block;padding:.45rem 1rem;border-radius:.45rem;font-size:.88rem;color:var(--ink);transition:background .15s,color .15s;white-space:nowrap}.segmented input:checked+span{background:var(--accent);color:#fff}.segmented input:focus-visible+span{outline:.166667rem solid #a566ef;outline-offset:.111111rem}.segmented label:hover input:not(:checked)+span{background:var(--ground)}:root[data-theme=dark] .segmented input:checked+span{color:#251434}
|
|
.chips{display:flex;flex-wrap:wrap;gap:.45rem}.chip{display:inline-flex;align-items:center;gap:.4rem;border:.0555556rem solid var(--control);background:var(--surface);color:var(--ink);border-radius:999px;padding:.38rem .85rem;font-size:.85rem;transition:border-color .15s,background .15s,transform .1s}.chip:hover:not(:disabled){border-color:var(--accent)}.chip:active:not(:disabled){transform:scale(.97)}.chip[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:#fff}:root[data-theme=dark] .chip[aria-checked=true]{color:#251434}.chip:disabled{opacity:.6}.quick-chips .chip{font-size:.78rem;padding:.25rem .7rem}
|
|
.kind-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.6rem,1fr));gap:.55rem}.kind-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;min-height:5.4rem;padding:.6rem .5rem;border:.111111rem solid var(--line);border-radius:.7rem;background:var(--surface);color:var(--ink);font-size:.82rem;text-align:center;transition:border-color .15s,background .15s,transform .12s,box-shadow .15s}.kind-tile .icon{width:1.6rem;height:1.6rem;color:var(--muted);transition:color .15s}.kind-tile:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.kind-tile[aria-pressed=true]{border-color:var(--accent);background:var(--ground);box-shadow:0 0 0 .111111rem var(--accent) inset}.kind-tile[aria-pressed=true] .icon{color:var(--accent)}.kind-tile[aria-pressed=true]::after{content:'✓';position:absolute;top:.3rem;right:.45rem;font-size:.75rem;font-weight:700;color:var(--accent)}.kind-tile:disabled{opacity:.5;cursor:not-allowed}.kind-tile .soon-tag{position:absolute;top:.3rem;right:.35rem}
|
|
.media-options{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:center}.compact-select{display:flex;align-items:center;gap:.5rem;font-size:.88rem}.compact-select select{width:auto;min-height:2.2rem}.switch{display:inline-flex;align-items:center;gap:.6rem;font-size:.88rem;cursor:pointer}.switch input{position:absolute;opacity:0}.switch span{position:relative;width:2.4rem;height:1.35rem;border-radius:999px;background:var(--control);transition:background .15s;flex:none}.switch span::after{content:'';position:absolute;top:.15rem;left:.15rem;width:1.05rem;height:1.05rem;border-radius:50%;background:#fff;transition:transform .15s}.switch input:checked+span{background:var(--accent)}.switch input:checked+span::after{transform:translateX(1.05rem)}.switch input:focus-visible+span{outline:.166667rem solid #a566ef;outline-offset:.111111rem}#scrape-system{width:auto;max-width:100%;grid-column:2;justify-self:start}
|
|
.media-bar{position:sticky;bottom:0;display:flex;align-items:center;gap:1rem;margin:0 -1.3rem;padding:.85rem 1.3rem;border-top:.0555556rem solid var(--line);background:var(--surface);border-radius:0 0 var(--radius) var(--radius);z-index:2}.media-bar p{flex:1;color:var(--ink);font-size:.9rem}.media-bar .primary{min-width:8rem}
|
|
.scrape-job[data-state=running] #job-title::before{content:'';display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--green);margin-right:.55rem;vertical-align:middle;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.job-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.job-head p{font-size:.85rem;margin-top:.3rem}.job-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.6rem;margin-bottom:1rem}.stat{border:.0555556rem solid var(--line);border-radius:.6rem;padding:.6rem .7rem;display:grid;gap:.1rem}.stat strong{font-size:1.45rem;font-variant-numeric:tabular-nums;color:var(--ink)}.stat span{font-size:.75rem;color:var(--muted)}.stat.attention strong{color:#b4561b}:root[data-theme=dark] .stat.attention strong{color:#ffb36b}.command{display:flex;gap:.5rem;align-items:center}.command code{flex:1}.job-problems-box summary{cursor:pointer;font-weight:600;color:var(--accent);padding:.4rem 0}.problem-row.resolving{opacity:.5;pointer-events:none}
|
|
@media(max-width:768px){.media-row{grid-template-columns:1fr}.media-hint,#scrape-system{grid-column:1}.media-row-kinds .media-label{padding-top:0}.kind-tiles{grid-template-columns:repeat(auto-fill,minmax(6.8rem,1fr))}.job-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented{flex-wrap:wrap}.media-bar{flex-wrap:wrap}.media-bar .primary{width:100%}}
|
|
.kinds-area .media-hint{grid-column:auto}
|
|
.media-head p{margin-top:0}@media(max-width:768px){.segmented{display:flex;width:100%}.segmented label{flex:1}.segmented span{text-align:center;padding:.45rem .5rem}}
|
|
.flag{width:1.35rem;height:.9rem;border-radius:.15rem;box-shadow:0 0 0 .0555556rem rgba(0,0,0,.18);flex:none;vertical-align:middle}.flag.globe{width:1rem;height:1rem;border-radius:50%;box-shadow:none}.device{width:1.25rem;height:1.25rem;flex:none}.device.arrow{width:.9rem;height:.9rem;opacity:.7}.source-logo{width:1.15rem;height:1.15rem;flex:none;border-radius:.3rem}img.source-logo{object-fit:contain}.segmented span[data-icon]{display:inline-flex;align-items:center;gap:.4rem}.segmented span[data-icon] b{font-weight:500}.region-pick{display:flex;align-items:center;gap:.6rem;font-size:.88rem;flex-wrap:wrap}.chip[aria-checked=true] .source-logo{box-shadow:0 0 0 .111111rem rgba(255,255,255,.7)}.version-tags .version-tag{display:inline-flex;align-items:center;gap:.2rem}.version-tags .version-tag.flags{border:0;padding:0}.version-tags .version-tag.flags .flag{width:1.15rem;height:.78rem}
|
|
@media(max-width:768px){.region-pick{width:100%}.region-pick .segmented span{padding:.4rem .3rem;font-size:.78rem;gap:.25rem}.region-pick .flag{width:1.1rem;height:.75rem}}
|
|
.signed-check{display:inline-grid;place-items:center;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--green);color:#fff;flex:none}.signed-check svg{width:.75rem;height:.75rem;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.chip[aria-checked=true] .signed-check{box-shadow:0 0 0 .111111rem rgba(255,255,255,.85)}.chip .lock-tag{font-style:normal;font-size:.72rem;opacity:.75}.account-line{display:flex;align-items:center;gap:.6rem;font-size:.82rem;color:var(--muted);margin:0;grid-column:auto}.account-line .text-button{font-size:.82rem;min-height:0}.language-pick{display:flex;align-items:center;gap:.5rem;font-size:.88rem}.language-pick select{min-height:2rem}
|
|
.sign-in{border:0;border-radius:var(--radius);padding:0;width:min(28rem,calc(100vw - 2rem));background:var(--surface);color:var(--ink);box-shadow:0 1.2rem 3rem rgba(20,6,40,.35)}.sign-in::backdrop{background:rgba(25,10,40,.5);backdrop-filter:blur(2px)}.sign-in[open]{animation:sign-in-in .18s ease-out}@keyframes sign-in-in{from{opacity:0;transform:translateY(.6rem) scale(.98)}}.sign-in form{padding:1.4rem;display:grid;gap:1rem}.sign-in-head{display:flex;gap:.9rem;align-items:flex-start}.sign-in-head .source-logo{width:2.4rem;height:2.4rem}.sign-in-head h2{font-size:1.2rem;margin:0 0 .3rem}.sign-in-head p{font-size:.84rem;margin:0}#sign-in-fields{display:grid;gap:.8rem}#sign-in-fields label{display:grid;gap:.3rem;font-size:.88rem}#sign-in-fields input{min-height:2.5rem;padding:.45rem .7rem;border:.0555556rem solid var(--control);border-radius:.333333rem;background:var(--surface);color:var(--ink)}#sign-in-fields input:focus{outline:2px solid var(--accent);outline-offset:1px}.sign-in-note{font-size:.8rem;margin:0}.sign-in-note a{color:var(--accent)}.sign-in-account p{margin:0;display:flex;align-items:center;gap:.5rem}.sign-in-quota{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;font-size:.85rem;margin:.7rem 0 0}.sign-in-quota dt{color:var(--muted)}.sign-in-quota dd{margin:0;font-variant-numeric:tabular-nums}#sign-in-error:empty{display:none}#sign-in-error{margin:0;font-size:.85rem}.sign-in-actions{margin:0;flex-wrap:wrap;gap:.6rem}.sign-in-actions .spacer{flex:1}.sign-in[aria-busy=true] #sign-in-submit{opacity:.6;pointer-events:none}
|
|
@media (max-width:30rem){.sign-in form{padding:1.1rem}.sign-in-actions .spacer{display:none}}
|
|
.segmented input:disabled+span{opacity:.45}.segmented label:has(input:disabled){cursor:not-allowed}
|
|
.job-recap{border-top:.0555556rem solid var(--line);margin-top:1rem;padding-top:1rem;display:grid;gap:.9rem}.recap-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.recap-head h3{margin:0;font-size:1.05rem}.recap-legend{display:flex;gap:.4rem;flex-wrap:wrap;font-size:.75rem}
|
|
.recap-kinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.5rem}.recap-kind{border:.0555556rem solid var(--line);border-radius:.6rem;padding:.55rem .7rem;display:grid;gap:.35rem;font-size:.82rem;text-align:left;background:var(--surface);color:var(--ink);transition:border-color .15s}.recap-kind:hover,.recap-kind[aria-pressed=true]{border-color:var(--accent)}.recap-kind[aria-pressed=true]{box-shadow:inset 0 0 0 .0555556rem var(--accent)}.recap-kind .kind-title{display:flex;align-items:center;gap:.4rem;font-weight:600}.recap-kind .kind-title .icon{width:1.05rem;height:1.05rem;color:var(--accent)}.recap-kind .kind-counts{display:flex;gap:.6rem;color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap}.recap-kind .kind-counts b{font-weight:600}.recap-kind .kind-counts .n-got{color:var(--green)}.recap-kind .kind-counts .n-missed{color:#b4374f}:root[data-theme=dark] .recap-kind .kind-counts .n-missed{color:#ff9db7}.recap-bar{display:flex;height:.3rem;border-radius:.2rem;overflow:hidden;background:var(--line)}.recap-bar i{display:block}.recap-bar .b-got{background:var(--green)}.recap-bar .b-had{background:#9a8cb0}.recap-bar .b-missed{background:#d0607a}
|
|
.recap-tools{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;justify-content:space-between}.recap-search{max-width:16rem;flex:1}.recap-search input{margin:0;min-height:2.1rem;padding:.3rem .6rem;border:.0555556rem solid var(--control);border-radius:.333333rem;background:var(--surface)}
|
|
.recap-systems{display:grid;gap:.5rem}.recap-system{border:.0555556rem solid var(--line);border-radius:.6rem;background:var(--surface)}.recap-system summary{cursor:pointer;display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;font-size:.9rem;list-style:none}.recap-system summary::-webkit-details-marker{display:none}.recap-system summary::before{content:'';width:.45rem;height:.45rem;border-right:.12rem solid var(--muted);border-bottom:.12rem solid var(--muted);transform:rotate(-45deg);transition:transform .15s;flex:none}.recap-system[open] summary::before{transform:rotate(45deg)}.recap-system summary strong{flex:1}.recap-system summary span{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.recap-games{display:grid;padding:0 .8rem .5rem}.recap-game{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;align-items:center;padding:.45rem 0;border-top:.0555556rem solid var(--line);font-size:.85rem}.recap-game .game-name{min-width:0;overflow-wrap:anywhere}.recap-game .game-name small{display:block;color:var(--muted);font-size:.75rem}.recap-game .pills{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end}.recap-game .note{grid-column:1/-1;font-size:.76rem;color:var(--muted);margin:0}.recap-more{justify-self:center;margin:.4rem 0}
|
|
.kind-pill{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;border:.0555556rem solid transparent;white-space:nowrap}.kind-pill.got{background:color-mix(in srgb,var(--green) 16%,transparent);color:#0f7a48;border-color:color-mix(in srgb,var(--green) 40%,transparent)}.kind-pill.had{background:var(--ground);color:var(--muted);border-color:var(--line)}.kind-pill.missed{color:#a32c51;border:.0555556rem dashed #d0607a;background:transparent}:root[data-theme=dark] .kind-pill.got{color:#7fe3ae}:root[data-theme=dark] .kind-pill.missed{color:#ff9db7}
|
|
@media(max-width:600px){.recap-game{grid-template-columns:1fr}.recap-game .pills{justify-content:flex-start}.recap-system summary{flex-wrap:wrap;row-gap:.2rem}.recap-system summary strong{flex:1 1 calc(100% - 2rem)}.recap-system summary span{flex-basis:100%;padding-left:1.15rem}}
|
|
.game-card{cursor:pointer;transition:border-color .15s,transform .12s,box-shadow .15s}.game-card:hover{border-color:var(--accent);transform:translateY(-.1rem);box-shadow:0 .5rem 1.2rem rgba(55,24,74,.12)}.game-card:focus-visible{outline:.166667rem solid #a566ef;outline-offset:.15rem}
|
|
.game-sheet{border:0;border-radius:var(--radius);padding:0;width:min(72rem,calc(100vw - 2rem));height:calc(100vh - 2rem);max-height:none;background:var(--surface);color:var(--ink);box-shadow:0 1.5rem 4rem rgba(20,6,40,.4);overflow:hidden}.game-sheet[open]{display:flex;flex-direction:column;animation:sign-in-in .2s ease-out}.game-sheet::backdrop{background:rgba(25,10,40,.55);backdrop-filter:blur(3px)}
|
|
.sheet-head{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 1.2rem;border-bottom:.0555556rem solid var(--line)}.sheet-cover{width:4.2rem;aspect-ratio:3/4;border-radius:.4rem;background:var(--ground);overflow:hidden;flex:none;display:grid;place-items:center}.sheet-cover img{width:100%;height:100%;object-fit:contain}.sheet-cover .icon{color:var(--muted)}.sheet-heading{flex:1;min-width:0;display:grid;gap:.35rem}.sheet-heading h2{font-size:1.3rem;overflow-wrap:anywhere}.sheet-heading p{font-size:.8rem;overflow-wrap:anywhere}.sheet-close{border:0;background:transparent;color:var(--muted);width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;flex:none}.sheet-close:hover{background:var(--ground);color:var(--ink)}.sheet-close svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
|
|
.sheet-body{overflow:auto;padding:1rem 1.2rem 1.3rem;display:grid;gap:1.1rem}.sheet-details{display:grid;gap:.7rem}.sheet-details .description{font-size:.88rem;color:var(--ink);white-space:pre-line;max-height:7.5rem;overflow:hidden;position:relative}.sheet-details .description.open{max-height:none}.sheet-details dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.5rem .9rem;margin:0}.sheet-details dt{font-size:.72rem;color:var(--muted)}.sheet-details dd{margin:0;font-size:.85rem}
|
|
.sheet-media-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.sheet-media-head h3{margin:0;font-size:1.02rem}.sheet-media-head p{font-size:.8rem}.sheet-hint{font-size:.78rem;margin:.3rem 0 .7rem}.sheet-media{display:grid;gap:.5rem}
|
|
.details-box{margin-top:.55rem}.details-tile{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.25rem .8rem;text-align:left;border:.0555556rem solid var(--line);border-radius:.6rem;padding:.65rem .85rem;background:var(--surface);color:var(--ink);transition:border-color .15s,background .15s}.details-tile:hover:not(:disabled){border-color:var(--accent)}.details-tile[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 .0555556rem var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.details-tile .icon{width:1.5rem;height:1.5rem;color:var(--accent);grid-row:span 2}.details-tile strong{font-size:.9rem}.details-tile small{grid-column:2;font-size:.76rem;color:var(--muted)}.details-tile .tick{grid-row:span 2;width:1.3rem;height:1.3rem;border-radius:.35rem;border:.0555556rem solid var(--control);display:grid;place-items:center;color:#fff}.details-tile[aria-pressed=true] .tick{background:var(--accent);border-color:var(--accent)}.details-tile .tick svg{width:.85rem;height:.85rem;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0}.details-tile[aria-pressed=true] .tick svg{opacity:1}.details-tile:disabled{opacity:.6;cursor:not-allowed}.details-tile .soon-tag{grid-row:span 2}
|
|
.media-row-item{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(15rem,1fr);border:.0555556rem solid var(--line);border-radius:.8rem;background:var(--surface);overflow:hidden;transition:border-color .15s,box-shadow .15s}.media-row-item.drop{border-color:var(--accent);box-shadow:0 0 0 .166667rem color-mix(in srgb,var(--accent) 35%,transparent)}
|
|
.media-stage{position:relative;height:clamp(13rem,38vh,24rem);display:flex;align-items:center;justify-content:center;padding:.8rem;background:transparent;overflow:hidden}.media-stage.video{background:#000}.media-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:zoom-in}.media-stage video{width:100%;height:100%;object-fit:contain;background:#000;border-radius:.3rem}
|
|
.media-stage .play{position:absolute;inset:0;margin:auto;width:4.4rem;height:4.4rem;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#37184a;display:grid;place-items:center;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.45);transition:transform .15s}.media-stage .play:hover{transform:scale(1.07)}.media-stage .play svg{width:1.9rem;height:1.9rem;margin-left:.25rem;fill:currentColor}
|
|
.media-stage .pdf{display:grid;place-items:center;gap:.5rem;color:#fff;text-decoration:none;font-size:.9rem}.media-stage .pdf svg{width:3.2rem;height:3.2rem;fill:none;stroke:currentColor;stroke-width:1.6}
|
|
.media-side{display:flex;flex-direction:column;gap:.45rem;padding:1rem 1.1rem;min-width:0}.media-side strong{font-size:1rem;display:flex;align-items:center;gap:.5rem}.media-side strong .icon{width:1.15rem;height:1.15rem;color:var(--accent)}.media-side p{font-size:.8rem;margin:0}.media-side .state{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.media-side .state.mine{color:var(--accent);font-weight:600}.media-side progress{width:100%;height:.4rem}.media-side .actions{margin-top:auto;display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.4rem}
|
|
.media-row-item.missing{grid-template-columns:minmax(0,1.5fr) minmax(15rem,1fr);background:var(--ground);border-style:dashed}.media-row-item.missing .media-stage{height:6.5rem;background:transparent;color:var(--muted);flex-direction:column;gap:.35rem;font-size:.78rem}.media-row-item.missing .media-stage .icon{width:1.8rem;height:1.8rem}.media-row-item.missing .media-stage,.media-row-item.missing .media-side strong,.media-row-item.missing .media-side p{opacity:.55}
|
|
.media-row-item.busy .actions{opacity:.5;pointer-events:none}
|
|
.lightbox{position:fixed;inset:0;z-index:5;background:rgba(10,4,16,.88);display:flex;align-items:center;justify-content:center;padding:2rem;cursor:zoom-out}.lightbox img{max-width:100%;max-height:100%;object-fit:contain}.lightbox p{position:absolute;bottom:.8rem;left:0;right:0;text-align:center;color:#ddd;font-size:.8rem}
|
|
@media(max-width:700px){.media-row-item,.media-row-item.missing{grid-template-columns:1fr}.media-stage{height:clamp(11rem,34vh,18rem)}.media-side{padding:.8rem}.media-side .actions button{flex:1}}
|
|
.games-view{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.9rem;font-size:.88rem}.games-view .segmented svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15rem;margin-right:.35rem}
|
|
.games-grid[data-view=box3d] .game-cover{aspect-ratio:3/4}.games-grid[data-view=logo] .game-cover{aspect-ratio:16/9;background:transparent;padding:.6rem}.games-grid[data-view=physical] .game-cover{aspect-ratio:1/1;padding:.6rem}.games-grid .game-cover.none .icon{opacity:.45}
|
|
|
|
#games-selection{margin-top:.7rem}
|
|
.source-list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;max-width:44rem}.source-item{display:grid;grid-template-columns:1.6rem 1.5rem minmax(0,1fr) auto auto;align-items:center;gap:.65rem;border:.0555556rem solid var(--line);border-radius:.6rem;padding:.5rem .6rem;background:var(--surface);transition:border-color .15s,background .15s,opacity .15s}.source-item.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.source-item.off{opacity:.75}.source-item.unavailable{opacity:.55}.source-item.dragging{opacity:.4}.source-item.over{box-shadow:0 -.18rem 0 var(--accent)}.source-item[draggable=true]{cursor:grab}
|
|
.source-order{width:1.6rem;height:1.6rem;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;background:var(--accent);color:#fff}:root[data-theme=dark] .source-order{color:#251434}.source-item.off .source-order,.source-item.unavailable .source-order{background:transparent;border:.0555556rem dashed var(--control);color:transparent}
|
|
.source-item .source-logo{width:1.5rem;height:1.5rem}.source-text{min-width:0;display:grid;gap:.05rem}.source-text strong{font-size:.9rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.source-text small{font-size:.74rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
.source-move{display:flex;gap:.2rem}.source-move button{width:1.8rem;height:1.8rem;border-radius:.35rem;border:.0555556rem solid var(--control);background:var(--surface);color:var(--ink);display:grid;place-items:center;padding:0}.source-move button:disabled{opacity:.3}.source-move svg{width:.9rem;height:.9rem;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
|
|
.source-toggle{position:relative;width:2.6rem;height:1.5rem;border-radius:999px;border:0;background:var(--control);padding:0;transition:background .15s}.source-toggle::after{content:'';position:absolute;top:.18rem;left:.18rem;width:1.14rem;height:1.14rem;border-radius:50%;background:#fff;box-shadow:0 .1rem .25rem rgba(0,0,0,.25);transition:transform .15s}.source-toggle[aria-checked=true]{background:var(--accent)}.source-toggle[aria-checked=true]::after{transform:translateX(1.1rem)}.source-item .lock-tag,.source-item .soon-tag{font-style:normal;font-size:.7rem}
|
|
.source-sign{font-size:.78rem;padding:.25rem .65rem;min-height:0}
|
|
@media(max-width:600px){.source-item{grid-template-columns:1.4rem 1.3rem minmax(0,1fr) auto;gap:.5rem}.source-move{grid-column:3/-1;justify-content:flex-end}.source-text small{white-space:normal}}
|
|
|
|
.media-row>.account-line{grid-column:2}.language-pick{white-space:nowrap}@media(max-width:768px){.media-row>.account-line{grid-column:auto}}
|
|
.restart-notice{border-color:#e0b04a;background:#fff5d8}.restart-notice span{color:#583b00}:root[data-theme=dark] .restart-notice{background:#4d3b1c;border-color:#8a6a2a}:root[data-theme=dark] .restart-notice span{color:#ffe09d}
|
|
.alert-part{display:grid;gap:.6rem;margin-top:.9rem}.alert-part-title{font-size:.95rem;margin:0;display:flex;align-items:center;gap:.5rem}.alert-part-note{font-size:.8rem;margin:-.4rem 0 0}.alert-group h4{margin:.4rem 0 .2rem;font-size:.92rem}.alert-item{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:.3rem 1.2rem;padding:.6rem 0;border-top:.0555556rem solid var(--line);align-items:start}.alert-what{display:grid;gap:.25rem;min-width:0}.alert-what strong{font-size:.88rem}.alert-what p{font-size:.78rem;margin:0}.alert-names{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;color:var(--muted)}.alert-names code,.alert-where code{font-size:.74rem;background:var(--ground);border-radius:.25rem;padding:.05rem .35rem;overflow-wrap:anywhere}.alert-where{display:grid;gap:.15rem;font-size:.76rem;min-width:0}.alert-item.some strong{color:var(--muted)}.alert-part:has(.alert-item.some) .alert-part-title{color:var(--muted)}
|
|
@media(max-width:700px){.alert-item{grid-template-columns:1fr}}
|
|
.job-passes{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:.5rem}.job-pass{border:.0555556rem solid var(--line);border-radius:.6rem;padding:.6rem .75rem;display:grid;gap:.3rem;position:relative}.job-pass .pass-head{display:flex;align-items:center;gap:.5rem;font-size:.86rem;font-weight:600;min-width:0}.job-pass .pass-head span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-pass .pass-number{width:1.4rem;height:1.4rem;border-radius:50%;display:grid;place-items:center;font-size:.75rem;flex:none;border:.0555556rem solid var(--control);color:var(--muted)}.job-pass p{margin:0;font-size:.76rem;color:var(--muted);font-variant-numeric:tabular-nums}.job-pass progress{width:100%;height:.3rem}.job-pass[data-state=running]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.job-pass[data-state=running] .pass-number{background:var(--accent);border-color:var(--accent);color:#fff}.job-pass[data-state=done] .pass-number{background:var(--green);border-color:var(--green);color:#fff}.job-pass[data-state=waiting]{opacity:.7}
|
|
@media(max-width:700px){.job-passes{grid-auto-flow:row}}
|
|
|
|
.games-sort{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.games-sort label{display:flex;align-items:center;gap:.5rem;font-size:.88rem;white-space:nowrap}.games-sort select{min-width:0;max-width:100%}.games-sort .muted{font-size:.8rem}.games-letters{margin-top:.9rem;gap:.2rem}.games-letters .chip{justify-content:center;min-width:2rem;min-height:2rem;padding:.3rem .5rem;border-radius:.35rem}.games-letters .chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}:root[data-theme=dark] .games-letters .chip[aria-pressed=true]{color:#251434}
|
|
|
|
/* Media Inspector: shared shell for game details and file management. */
|
|
.game-sheet{width:min(58rem,calc(100vw - 2rem));height:fit-content;max-width:none;max-height:calc(100dvh - 2rem)}
|
|
.sheet-head{display:grid;grid-template-columns:3.2rem minmax(0,1fr) auto 2.2rem;padding:1rem 1.25rem;gap:1rem;flex-shrink:0}.sheet-cover{width:3.2rem;height:4.4rem}.sheet-heading{min-width:0;flex:1}.sheet-heading h2{overflow-wrap:anywhere}.sheet-heading p{font-size:.76rem;overflow-wrap:anywhere}.sheet-head #sheet-edit{margin-left:auto;white-space:nowrap}.sheet-close{flex-shrink:0}
|
|
.sheet-layout{display:grid;grid-template-columns:9rem minmax(0,1fr);min-height:28rem;overflow:hidden}.sheet-nav{padding:1.2rem .6rem;background:var(--ground);border-right:1px solid var(--line)}.sheet-nav button{display:block;width:100%;text-align:left;border:0;border-radius:.4rem;padding:.65rem .8rem;margin-bottom:.25rem;background:transparent;color:var(--ink);font-size:.86rem}.sheet-nav button:hover{background:var(--surface)}.sheet-nav button[aria-pressed=true]{background:var(--surface);color:var(--accent);font-weight:600}.sheet-nav p{font-size:.72rem;color:var(--ink);line-height:1.7;margin:1.5rem .8rem}
|
|
.sheet-body{display:block;min-width:0;padding:1.2rem;overscroll-behavior:contain}.sheet-media-head{margin-bottom:.8rem}.sheet-media{display:block}.sheet-media .media-row-item,.sheet-media .media-row-item.missing{grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:0;border-radius:0;background:transparent;gap:1.1rem}.sheet-media .media-stage,.sheet-media .media-row-item.missing .media-stage{height:15rem;background:var(--ground);color:var(--ink);border-radius:.6rem;padding:.65rem;opacity:1}.sheet-media .media-side{padding:.5rem 0;gap:.55rem}.sheet-media .media-side strong{font-size:.94rem}.sheet-media .media-side p{font-size:.76rem;line-height:1.65}.sheet-media .media-side .actions{margin-top:.5rem}.sheet-media .media-stage .pdf{color:var(--accent)}.sheet-media .media-row-item.missing .media-side strong,.sheet-media .media-row-item.missing .media-side p{opacity:1}
|
|
.sheet-thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem;margin:1rem 0}.sheet-thumb{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:transparent;border:1px solid transparent;border-radius:.5rem;padding:.45rem .2rem;color:var(--ink);font-size:.64rem;line-height:1.35;min-width:0}.sheet-thumb:hover{background:var(--ground)}.sheet-thumb[aria-pressed=true]{border-color:var(--accent);background:var(--ground)}.sheet-thumb small{font-size:.6rem;color:var(--ink)}.thumb-picture{height:2.5rem;display:grid;place-items:center}.thumb-picture img{max-height:2.5rem;max-width:100%;object-fit:contain}.thumb-picture .icon{width:1.15rem;height:1.15rem;color:var(--muted)}
|
|
.sheet-fields{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1rem}.sheet-fields label,.sheet-slot{display:grid;gap:.3rem;font-size:.76rem;color:var(--muted)}.sheet-fields input,.sheet-fields textarea,.sheet-slot input{width:100%;min-width:0;border:1px solid var(--control);border-radius:.35rem;padding:.55rem .65rem;background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem}.sheet-fields textarea{min-height:7rem;resize:vertical}.sheet-fields .wide-field{grid-column:1/-1}.sheet-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}.sheet-actions a{text-decoration:none}.sheet-actions [aria-disabled=true]{opacity:.5;cursor:default}.sheet-status{font-size:.8rem;margin-top:.6rem;overflow-wrap:anywhere}.sheet-status:empty{display:none}.sheet-file-group{padding:1rem 0;border-bottom:1px solid var(--line)}.sheet-file-group h4{font-size:.95rem;margin:0}.sheet-file-group select{font-size:.76rem;min-width:0;max-width:100%}.sheet-file-group progress{width:100%;margin-top:.6rem}.sheet-path{font-size:.68rem;overflow-wrap:anywhere;margin-top:.4rem}.sheet-slot{margin-top:.6rem;max-width:16rem}.sheet-slot[hidden]{display:none}.sheet-editor h3,#sheet-files h3{font-size:1.02rem;margin:0 0 .6rem}.game-sheet [hidden]{display:none!important}
|
|
@media(max-width:650px){.game-sheet{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.sheet-head{grid-template-columns:3.2rem minmax(0,1fr) 2.2rem;padding:.85rem;gap:.65rem}.sheet-heading h2{font-size:1.2rem}.sheet-head #sheet-edit{grid-column:2;grid-row:2;justify-self:start;margin:0}.sheet-head .sheet-close{grid-column:3;grid-row:1}.sheet-layout{grid-template-columns:1fr;min-height:0;overflow:auto}.sheet-nav{display:flex;gap:.3rem;padding:.4rem .65rem;border-right:0;border-bottom:1px solid var(--line)}.sheet-nav button{margin:0;text-align:center}.sheet-nav p{display:none}.sheet-body{padding:.85rem;overflow:visible}.sheet-media .media-stage,.sheet-media .media-row-item.missing .media-stage{height:11rem}.sheet-media .media-row-item,.sheet-media .media-row-item.missing{gap:.7rem}.sheet-media .media-side .actions button{flex:auto}.sheet-fields{grid-template-columns:1fr}.sheet-fields input,.sheet-fields textarea,.sheet-slot input{font-size:16px}.sheet-thumbs{gap:.2rem}.sheet-thumb{font-size:.66rem}.sheet-thumb small{font-size:.61rem}.sheet-media .media-side p{font-size:.73rem}}
|
|
@media(pointer:coarse){.sheet-nav button,.sheet-thumb,.sheet-actions button,.sheet-actions a{min-height:44px}}
|
|
|
|
/* One local Lucide family across navigation, sources, media and actions. */
|
|
.icon.lucide{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.brand .brand-icon{width:2.5rem;height:2.5rem}.icon-credit{font-size:.65rem;color:inherit;opacity:.85;text-align:center;text-decoration:none;margin-top:.65rem}.source-logo.lucide{padding:.15rem;color:var(--accent);width:2.15rem;height:2.15rem}.device.lucide{width:1.2rem;height:1.2rem}.signed-check .lucide,.tick .lucide{width:1rem;height:1rem}.pass-number .lucide{width:.9rem;height:.9rem}.games-tools .add-game-cta{min-height:3.1rem;padding:.75rem 1.3rem;font-size:1rem;gap:.5rem;white-space:nowrap}.version-tag.flags{gap:.3rem}.version-tag.flags .lucide{width:.85rem;height:.85rem}.state-preview{margin:.65rem 0;display:flex;align-items:center;gap:.65rem}.state-preview p{font-size:.76rem;max-width:48ch}.state-preview-image{background:var(--ground);border:0;border-radius:.5rem;padding:.4rem;cursor:zoom-in}.state-preview-image img{display:block;max-width:100%;max-height:11rem;object-fit:contain}
|
|
.add-game-sheet .sheet-head{grid-template-columns:3rem minmax(0,1fr) 2.2rem}.add-symbol{background:var(--ground);color:var(--accent);width:3rem;height:3rem;border-radius:.65rem;display:grid;place-items:center}.add-symbol .icon{width:1.5rem;height:1.5rem}.add-game-sheet .sheet-body h3{font-size:1.1rem;margin:0 0 .7rem}.add-game-sheet .sheet-body{max-height:65dvh}.add-field{display:grid;gap:.5rem;font-size:.85rem;margin:1.1rem 0}.add-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;min-height:12rem;background:var(--ground);border:1px dashed var(--accent);border-radius:.65rem;color:var(--ink);padding:1.3rem;overflow-wrap:anywhere}.add-drop:hover{background:var(--surface)}.add-drop>.icon{width:2rem;height:2rem;color:var(--accent)}.add-drop span{font-size:.8rem}.add-search{display:flex;gap:.5rem;align-items:end;margin:1.1rem 0 .75rem}.add-search label{flex:1;display:grid;gap:.35rem;font-size:.8rem}.add-search input,.add-download-options select{width:100%;min-width:0}.add-results{max-height:19rem;overflow:auto;margin-bottom:1rem}.add-result{padding:.9rem 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:1rem}.add-result>div{flex:1;min-width:0}.add-result strong,.add-result small{display:block}.add-result small{font-size:.75rem;color:var(--muted);margin:.25rem 0}.add-result-description{font-size:.76rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.add-result button{flex:none}.add-footer{display:flex;align-items:center;gap:.65rem;border-top:1px solid var(--line);padding:.9rem 1.25rem;background:var(--surface);flex-shrink:0}.add-progress{flex:1;min-width:0}.add-progress p{font-size:.77rem;margin:0}.add-progress progress{width:100%;height:.3rem;margin-top:.45rem}.add-media-preview{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:1.1rem;margin:1rem 0;align-items:center}.add-artwork{height:10rem;background:var(--ground);display:grid;place-items:center;border-radius:.6rem;padding:.65rem}.add-artwork img{max-height:100%;max-width:100%;object-fit:contain}.add-artwork>.icon{width:2rem;height:2rem;color:var(--accent)}.add-media-preview h4{margin:0;font-size:1rem}.add-download{display:flex;gap:.6rem;align-items:center;margin:1.1rem 0;font-size:.86rem;font-weight:500}.add-download input,.add-source input{accent-color:var(--accent)}.add-source{display:flex;align-items:center;gap:.6rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.82rem}.add-source label{display:flex;gap:.55rem;align-items:center;flex:1}.add-source .icon-button{background:none;border:0;padding:.3rem;color:var(--accent)}.add-source .icon-button:disabled{opacity:.3}.add-download-options{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem}.add-download-options label{display:grid;gap:.3rem;font-size:.8rem}
|
|
@media(max-width:650px){.add-game-sheet .sheet-body{max-height:none}.add-footer{flex-wrap:wrap;padding:.8rem}.add-progress{flex-basis:100%}.add-footer>.primary{flex:1}.add-drop{min-height:10rem}.add-media-preview{grid-template-columns:7rem minmax(0,1fr);gap:.75rem}.add-artwork{height:8rem}.add-result{align-items:start;flex-direction:column;gap:.5rem}.add-search input{font-size:16px}.add-source{flex-wrap:wrap}.add-source label{min-width:9rem}.icon-credit{display:none}.add-game-sheet .sheet-head .sheet-close{grid-column:3}.games-tools .add-game-cta{width:100%;justify-content:center}}
|
|
|
|
.add-search input{min-height:2.75rem;padding:.6rem .7rem;border:1px solid var(--control);border-radius:.4rem;background:var(--surface)}.add-search button{display:inline-flex;align-items:center;gap:.4rem;min-height:2.75rem}.add-search label{min-width:0}
|
|
|
|
.add-download-cta{width:100%;display:flex;align-items:center;gap:.85rem;text-align:left;border:1px solid var(--accent);background:var(--ground);color:var(--ink);padding:1rem;border-radius:.65rem;margin:1.1rem 0}.add-download-cta>.icon{width:1.7rem;height:1.7rem;color:var(--accent)}.add-download-cta>span:nth-child(2){flex:1}.add-download-cta strong,.add-download-cta small{display:block}.add-download-cta strong{font-size:1rem}.add-download-cta small{font-size:.8rem;color:var(--muted);margin-top:.25rem;line-height:1.45}#add-download-state{color:var(--accent);font-weight:600;font-size:.85rem}.add-download-cta[aria-pressed=true]{background:var(--accent);color:#fff}.add-download-cta[aria-pressed=true] small,.add-download-cta[aria-pressed=true]>.icon,.add-download-cta[aria-pressed=true] #add-download-state{color:#fff}.add-activity{padding:1.8rem;overflow:auto;min-height:22rem;max-height:65dvh}.add-activity-heading{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem}.add-activity-heading>.icon{width:2.5rem;height:2.5rem;color:var(--accent)}.add-activity h3{margin:0 0 .4rem;font-size:1.3rem}.add-activity p{font-size:.88rem;line-height:1.55;overflow-wrap:anywhere}.add-activity progress{width:100%;height:.5rem;margin:1rem 0;accent-color:var(--accent)}.add-live-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.8rem;margin:.8rem 0 1.4rem}.add-live-item{min-width:0;display:flex;flex-direction:column;gap:.5rem;align-items:center;padding:.6rem;background:var(--ground);border-radius:.5rem}.add-live-item img{height:7rem;max-width:100%;object-fit:contain}.add-live-item>.icon{height:7rem;width:2rem}.add-live-item span{font-size:.72rem;text-align:center}@media(max-width:700px){.add-activity{padding:1rem;min-height:18rem}.add-download-cta{gap:.6rem;padding:.8rem}.add-footer .primary{white-space:normal}.add-game-sheet:has(#add-layout[hidden]) .add-footer{flex-wrap:wrap}}
|
|
|
|
/* Color artwork retains its authored palette; platform artwork frames the hardware above its logo. */
|
|
.icon.color-icon{object-fit:contain;flex-shrink:0;stroke:none;fill:none}.sidebar nav .color-icon{width:27px;height:27px}.system-icon{display:inline-block;position:relative;width:42px;height:30px;overflow:hidden;flex:0 0 42px;vertical-align:middle}.system-icon>img{position:absolute;width:42px;height:42px;max-width:none;top:0;left:0;object-fit:contain}.system-icon>.icon:not(img){width:28px;height:28px}.game-platform,#sheet-sub{display:flex;align-items:center;gap:6px}.game-platform{line-height:1.3}.system-select{display:flex;align-items:center;gap:8px}.system-select select{min-width:0;flex:1}.system-select .system-icon{width:56px;height:39px;flex-basis:56px}.system-select .system-icon>img{width:56px;height:56px}.flag.color-icon{width:26px;height:20px;object-fit:contain}.source-logo{flex-shrink:0}.device{color:#5575b7}
|
|
|
|
.source-logo[src$="retroarch.svg"]{background:var(--rail);border-radius:4px;padding:2px}
|
|
.language-slot{display:flex;margin-left:.25rem}.language-picker{position:relative;display:inline-flex}.language-button{display:inline-flex;align-items:center;gap:.5rem;min-height:2.22222rem;padding:.3rem .75rem .3rem .45rem;border:.0555556rem solid var(--control);border-radius:999px;background:var(--surface);color:var(--ink);font-size:.888889rem;font-weight:600;white-space:nowrap;transition:border-color .15s,box-shadow .15s}.language-button:hover{border-color:var(--accent)}.language-button:focus-visible,.language-list li:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.language-button[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 .166667rem color-mix(in srgb,var(--accent) 22%,transparent)}.language-flag,.language-list img{width:1.5rem;height:1.125rem;border-radius:.2rem;object-fit:cover;box-shadow:0 0 0 .0555556rem rgba(0,0,0,.16);flex:none}.language-chevron{width:.45rem;height:.45rem;border-right:.12rem solid var(--muted);border-bottom:.12rem solid var(--muted);transform:translateY(-.12rem) rotate(45deg);transition:transform .15s}.language-button[aria-expanded=true] .language-chevron{transform:translateY(.12rem) rotate(-135deg)}
|
|
.language-list{position:absolute;top:calc(100% + .45rem);right:0;z-index:30;margin:0;padding:.35rem;list-style:none;min-width:17rem;max-height:min(70vh,27rem);overflow:auto;background:var(--surface);border:.0555556rem solid var(--line);border-radius:.8rem;box-shadow:0 1rem 2.5rem rgba(20,6,40,.24);display:grid;gap:.1rem;animation:language-in .14s ease-out}.language-list[hidden]{display:none}@keyframes language-in{from{opacity:0;transform:translateY(-.3rem)}}@media(prefers-reduced-motion:reduce){.language-list{animation:none}.language-chevron,.language-button{transition:none}}.language-list li{display:flex;align-items:center;gap:.75rem;padding:.5rem .65rem;border-radius:.5rem;cursor:pointer}.language-list li:hover{background:var(--ground)}.language-list li[aria-selected=true]{background:color-mix(in srgb,var(--accent) 13%,var(--surface))}.language-list li[aria-selected=true] strong::after{content:'✓';margin-left:.45rem;color:var(--accent)}.language-label{display:grid;line-height:1.25;min-width:0}.language-label strong{font-size:.888889rem;color:var(--ink)}.language-label small{font-size:.722222rem;color:var(--muted)}
|
|
.language-panel{margin-top:2rem;padding-top:1.5rem;border-top:.0555556rem solid var(--line)}.language-panel-heading{display:flex;align-items:flex-start;gap:1rem}.language-panel-heading h3{font-size:1.16667rem}.language-panel-heading p{font-size:.888889rem;color:var(--muted);margin-top:.25rem;max-width:75ch}.language-picker.inline{display:block;margin-top:1rem}.language-picker.inline .language-list{position:static;overflow:visible;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.55rem;min-width:0;max-height:none;padding:0;border:0;box-shadow:none;background:none;animation:none}.language-picker.inline .language-list li{border:.0555556rem solid var(--line);background:var(--surface);padding:.65rem .8rem}.language-picker.inline .language-list li:hover{border-color:var(--accent)}.language-picker.inline .language-list li[aria-selected=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
|
|
@media(max-width:768px){.language-picker.compact .language-name{display:none}.language-picker.compact .language-button{padding:.3rem .55rem .3rem .4rem;min-height:2.11111rem}.language-slot{margin-left:0}.language-list{right:0;min-width:min(17rem,calc(100vw - 2rem))}.language-picker.inline .language-list{grid-template-columns:1fr 1fr}.language-picker.inline .language-list li{padding:.55rem .6rem;gap:.55rem}.language-panel-heading .section-icon{width:2.22222rem;height:2.22222rem}}
|
|
.forwarder-tools{display:flex;gap:.6rem;flex-wrap:wrap}
|
|
.forwarder-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(21rem,1fr));gap:.9rem}
|
|
.forwarder-card{display:flex;align-items:center;gap:1rem;padding:.8rem;border:.0555556rem solid var(--line);border-radius:.6rem;background:var(--surface)}
|
|
.forwarder-card img{width:5.5rem;height:5.5rem;flex:none;border-radius:.5rem;object-fit:cover;background:#1b1325}
|
|
.forwarder-info{display:flex;flex:1;flex-direction:column;gap:.2rem;min-width:0}
|
|
.forwarder-info>:not(.forwarder-state){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
.forwarder-info small{color:var(--muted)}
|
|
.forwarder-state{font-size:.833333rem;font-weight:700;color:#9a5d00}
|
|
.forwarder-state.installed{color:var(--green)}
|
|
.forwarder-state.unknown{color:var(--muted)}
|
|
:root[data-theme=dark] .forwarder-state{color:#ffc65c}
|
|
:root[data-theme=dark] .forwarder-state.installed{color:var(--green)}
|
|
:root[data-theme=dark] .forwarder-state.unknown{color:var(--muted)}
|
|
.forwarder-actions{display:flex;flex-direction:column;gap:.4rem}
|
|
.forwarder-form{display:grid;grid-template-columns:minmax(12rem,16rem) minmax(0,1fr);gap:1.5rem;align-items:start}
|
|
.forwarder-picture,.forwarder-fields,.smb-fields{display:flex;flex-direction:column;gap:.8rem}
|
|
.forwarder-picture canvas{width:100%;height:auto;aspect-ratio:1;border:.0555556rem solid var(--line);border-radius:.8rem}
|
|
.forwarder-fields,.smb-fields{max-width:36rem}
|
|
.forwarder-fields input[type=text],.smb-fields input{width:100%;min-width:0;min-height:2.5rem;padding:0.388889rem 0.833333rem;background:var(--surface);border:0.0555556rem solid var(--control);border-radius:0.333333rem}
|
|
.forwarder-fields>label:not(.check-inline),.forwarder-row,.smb-fields>label{display:flex;flex-direction:column;gap:.3rem;font-size:.888889rem}
|
|
.forwarder-media{display:flex;flex-wrap:wrap;justify-self:stretch}
|
|
.forwarder-media label{flex:1 1 auto}
|
|
.forwarder-media span{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.45rem .7rem}
|
|
.forwarder-media input:disabled+span{opacity:.45}
|
|
.forwarder-media label:hover input:disabled+span{background:none}
|
|
.forwarder-media input:disabled{cursor:not-allowed}
|
|
.system-picker{position:relative}
|
|
.system-button{display:flex;align-items:center;gap:.6rem;width:100%;min-height:2.5rem;padding:.25rem .8rem .25rem .45rem;border:.0555556rem solid var(--control);border-radius:0.333333rem;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer}
|
|
.system-button>span:not(.system-icon,.system-chevron){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
.system-button:hover,.system-button[aria-expanded=true]{border-color:var(--accent)}
|
|
.system-chevron{width:.45rem;height:.45rem;flex:none;border-right:.12rem solid var(--muted);border-bottom:.12rem solid var(--muted);transform:translateY(-.12rem) rotate(45deg)}
|
|
.system-button[aria-expanded=true] .system-chevron{transform:translateY(.12rem) rotate(-135deg)}
|
|
.system-list{position:absolute;top:calc(100% + .3rem);left:0;right:0;z-index:30;margin:0;padding:.35rem;list-style:none;max-height:min(60vh,24rem);overflow:auto;background:var(--surface);border:.0555556rem solid var(--line);border-radius:.6rem;box-shadow:0 .6rem 1.6rem rgba(20,10,40,.18)}
|
|
.system-list[hidden]{display:none}
|
|
.system-list li{display:flex;align-items:center;gap:.6rem;padding:.3rem .5rem;border-radius:.45rem;cursor:pointer;font-size:.888889rem}
|
|
.system-list li:hover{background:var(--ground)}
|
|
.system-list li[aria-selected=true]{background:color-mix(in srgb,var(--accent) 13%,var(--surface))}
|
|
.system-list li>span:not(.system-icon){flex:1;min-width:0}
|
|
.system-list small{color:var(--muted)}
|
|
.system-button:focus-visible,.system-list li:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
|
|
@media(max-width:768px){.forwarder-form{grid-template-columns:minmax(0,1fr)}.forwarder-picture{max-width:16rem}.forwarder-list{grid-template-columns:minmax(0,1fr)}}
|
|
#smb-status:empty{display:none}
|
|
.smb-fields .form-actions{margin-top:0}
|