Initial curated chimera source from a8ae5b1db07fb49926c94585e2718e5130330974
This commit is contained in:
commit
c737a37f71
531 files changed
+119270
No files matched your search
@@ -0,0 +1 @@
|
||||
:root{--sidebar-w:210px;--titlebar-h:32px;--statusbar-h:26px}*,::after,::before{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}body,html{height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,'Segoe UI',system-ui,sans-serif;font-size:14px;overflow:hidden;user-select:none}#titlebar{position:fixed;top:0;left:0;right:0;height:var(--titlebar-h);background:#0d0d0d;border-bottom:1px solid #000;display:flex;align-items:center;justify-content:space-between;z-index:2000;-webkit-app-region:drag}#titlebar-drag{display:flex;align-items:center;gap:8px;padding-left:12px;font-size:12px;font-weight:600;color:var(--text-dim)}#mobile-nav-toggle{display:none;width:34px;height:34px;border:none;background:0 0;color:var(--text);font-size:20px;border-radius:8px;cursor:pointer;-webkit-app-region:no-drag}#mobile-nav-toggle:hover{background:rgba(255,255,255,.08)}.titlebar-icon{width:18px;height:18px}.titlebar-by{font-size:11px;font-weight:400;color:var(--text-dim);opacity:.5;letter-spacing:.04em;pointer-events:none}#titlebar-x-link{display:inline-flex;align-items:center;gap:5px;color:var(--text-dim);font-size:11px;text-decoration:none;padding:3px 10px;border-radius:16px;border:1px solid var(--border);transition:color .15s,border-color .15s;-webkit-app-region:no-drag;flex-shrink:0;margin:0 auto}#titlebar-x-link:hover{color:var(--text);border-color:var(--text-dim)}#titlebar-x-link svg{flex-shrink:0}#titlebar-controls{display:flex;-webkit-app-region:no-drag}#titlebar-controls button{width:44px;height:32px;background:0 0;border:none;color:var(--text-dim);font-size:12px;cursor:pointer;transition:background .15s,color .15s}#titlebar-controls button:hover{background:rgba(255,255,255,.1);color:var(--text)}#btn-cls:hover{background:var(--red)!important;color:#fff!important}body.web-mode #titlebar{-webkit-app-region:no-drag;justify-content:flex-start}body.web-mode #titlebar-controls,body.web-mode #titlebar-x-link{display:none}body.web-mode #titlebar-drag{width:100%;padding-right:12px}#app{position:fixed;top:var(--titlebar-h);left:0;right:0;bottom:var(--statusbar-h);display:flex}#sidebar{width:var(--sidebar-w);flex-shrink:0;background:#0d0d0d;border-right:1px solid #000;display:flex;flex-direction:column;padding:16px 0}#sidebar-scrim{display:none;position:fixed;top:var(--titlebar-h);left:0;right:0;bottom:var(--statusbar-h);background:rgba(0,0,0,.5);z-index:1840}.sidebar-brand{display:flex;align-items:center;gap:8px;padding:4px 16px 20px;font-size:16px;font-weight:700;color:var(--accent)}.brand-icon{width:26px;height:26px;flex-shrink:0}.nav-list{list-style:none;flex:1}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 16px;color:var(--text-dim);text-decoration:none;font-size:12px;cursor:pointer;transition:.15s;border-left:3px solid transparent}.nav-link svg{width:17px;height:17px;flex-shrink:0}.nav-link:hover{color:var(--text);background:rgba(255,255,255,.05)}.nav-link.active{color:var(--accent);border-left-color:var(--accent);background:rgba(var(--accent-rgb),.08)}#sidebar-donate{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 16px 8px;background:0 0;border:none;border-top:1px solid var(--border);cursor:pointer;width:100%;transition:background .15s;-webkit-app-region:no-drag}#sidebar-donate:hover{background:rgba(187,134,252,.06)}#sidebar-donate:active{background:rgba(187,134,252,.12)}.donate-icon{width:30px;height:30px;border-radius:8px;filter:drop-shadow(0 0 6px rgba(187,134,252,.4));transition:filter .2s}#sidebar-donate:hover .donate-icon{filter:drop-shadow(0 0 10px rgba(187,134,252,.7))}.donate-label{font-size:11px;font-weight:600;color:var(--accent);letter-spacing:.06em;text-transform:uppercase}#sidebar-conn{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:12px;color:var(--text-dim);border-top:1px solid var(--border)}#server-logout{margin:0 12px;padding:7px 10px;color:var(--text-dim);background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:8px;font:inherit;font-size:11px;cursor:pointer}#server-logout:focus-visible,#server-logout:hover{color:var(--text);border-color:rgba(var(--accent-rgb),.45)}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot.red{background:var(--red)}.dot.green{background:var(--green)}#content{flex:1;min-width:0;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:20px}#content::-webkit-scrollbar{width:6px}#content::-webkit-scrollbar-track{background:0 0}#content::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}.page{display:none;flex-direction:column;gap:20px}.page.active{display:flex}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.page-header h1{font-size:22px;font-weight:600;color:var(--text)}.header-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{background:var(--surface);border:1px solid varLine truncated
|
||||
@@ -0,0 +1,442 @@
|
||||
/* Chimera design system — corrections layer.
|
||||
Loaded last on purpose: several component stylesheets are linked after
|
||||
stitch.css, so token-level fixes have to sit downstream of all of them.
|
||||
Tokens still live in stitch.css; this file only resolves conflicts. */
|
||||
/* ============================================================================
|
||||
Design-system corrections — 2026-08-23
|
||||
One authoritative block. stitch.css owns the tokens; base.css owns the reset.
|
||||
Ordered: type scale, elevation, surfaces, controls, forms, edges.
|
||||
========================================================================== */
|
||||
|
||||
/* --- Type: one scale, sentence case above the label sizes ----------------- */
|
||||
#chimera-route-title{
|
||||
font-family:var(--display);
|
||||
font-size:var(--fs-display);
|
||||
font-weight:640;
|
||||
letter-spacing:-.03em;
|
||||
line-height:1.04;
|
||||
text-transform:none;
|
||||
text-wrap:balance;
|
||||
}
|
||||
.stat-num{font-family:var(--display);font-size:var(--fs-xl);font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
|
||||
.stat-lbl{font-size:var(--fs-xs)}
|
||||
.page-header h1{font-family:var(--display);font-size:var(--fs-xl);font-weight:620;letter-spacing:-.025em;text-transform:none}
|
||||
h2{font-size:var(--fs-lg)}
|
||||
h3,h4{font-size:var(--fs-md)}
|
||||
|
||||
.game-card .s-tag{font-size:var(--fs-micro)}
|
||||
#chimera-route-breadcrumb{font-size:var(--fs-micro);letter-spacing:.14em}
|
||||
|
||||
/* --- Elevation: three levels, nothing invented per component -------------- */
|
||||
.card,.stat-card,.table-wrap,.chimera-home-panel{box-shadow:var(--shadow-panel)}
|
||||
.modal,.modal-shell,.import-wizard,#toast-container .toast,.chimera-command-palette{box-shadow:var(--shadow-float)}
|
||||
.btn,.chimera-toolbar-button,.chimera-route-link,.fbtn,.badge,.pill{box-shadow:var(--shadow-flat)}
|
||||
|
||||
/* --- Surfaces: inherit the radius scale, stop hand-rolling values --------- */
|
||||
.card,.stat-card,.table-wrap,.backup-card,.progress-area,.chimera-home-panel,.catalog-health-strip{border-radius:var(--radius)}
|
||||
.btn,.fbtn,input,select,textarea,.filter-select,.search-input,
|
||||
.chimera-domain-button,.modal-workspace-links button{border-radius:var(--radius-sm)}
|
||||
.modal,.modal-shell,.import-wizard{border-radius:var(--radius-lg)}
|
||||
.badge,.pill,.s-tag,.bk-badge{border-radius:999px}
|
||||
|
||||
/* --- Controls: one filled button per view --------------------------------- */
|
||||
/* Teal was acting as a second primary. It becomes an outlined action and the
|
||||
accent fill stays the single call to action. */
|
||||
.btn-teal{
|
||||
background:transparent;
|
||||
color:var(--teal);
|
||||
border-color:rgba(34,199,232,.42);
|
||||
font-weight:600;
|
||||
}
|
||||
.btn-teal:hover:not(:disabled){
|
||||
background:rgba(34,199,232,.1);
|
||||
border-color:var(--teal);
|
||||
color:var(--teal);
|
||||
}
|
||||
.btn-accent{background:var(--accent-d);border-color:var(--accent-d);color:#fff}
|
||||
.btn-accent:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#1a1220}
|
||||
.btn{min-height:36px;font-size:var(--fs-xs);display:inline-flex;align-items:center;justify-content:center;gap:7px}
|
||||
|
||||
/* --- Forms: label above field, one control height, full card width -------- */
|
||||
.card .form-row,.card .form-grid{width:100%}
|
||||
.card label{flex-direction:column;align-items:flex-start;gap:6px;font-size:var(--fs-xs)}
|
||||
.card label.toggle-label,.card .toggle-row{flex-direction:row;align-items:center}
|
||||
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
|
||||
select,textarea{min-height:40px;font-size:var(--fs-xs)}
|
||||
|
||||
/* The accent picker was a raw native colour input sitting outside the system. */
|
||||
.color-swatch{
|
||||
position:relative;width:40px;height:40px;flex:none;overflow:hidden;
|
||||
border:1px solid var(--border);border-radius:var(--radius-sm);
|
||||
background:var(--accent-d);
|
||||
}
|
||||
.color-picker-input{
|
||||
position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);
|
||||
padding:0;border:0;background:transparent;cursor:pointer;opacity:0;
|
||||
}
|
||||
.color-hex-label{
|
||||
width:11ch;font-family:var(--mono);font-size:var(--fs-xs);
|
||||
text-transform:uppercase;text-align:center;
|
||||
}
|
||||
|
||||
/* --- Edges: error placement, toast clearance, orphaned rails -------------- */
|
||||
/* The header banner and the toast reported the same failure twice. The banner
|
||||
keeps it (state persists); the toast is suppressed for route-load errors. */
|
||||
.chimera-route-availability{
|
||||
max-width:52ch;padding:7px 11px;line-height:1.45;
|
||||
background:rgba(228,173,85,.1);border:1px solid rgba(228,173,85,.3);
|
||||
color:var(--yellow);white-space:normal;
|
||||
}
|
||||
|
||||
/* Toast stack clears the floating import button instead of landing under it. */
|
||||
#toast-container{bottom:calc(var(--statusbar-h) + 74px)}
|
||||
|
||||
/* The catalog health rail was floating in the grid with no container, and its
|
||||
text values were rendered at the numeral display size. */
|
||||
.catalog-health-strip{
|
||||
background:var(--surface2);
|
||||
border:1px solid var(--border-soft);
|
||||
padding:6px 4px;
|
||||
}
|
||||
#game-catalog-health{font-size:var(--fs-xs)}
|
||||
#game-catalog-health strong,#game-catalog-health b{
|
||||
font-family:var(--display);font-size:var(--fs-lg);font-weight:600;
|
||||
line-height:1.15;font-variant-numeric:tabular-nums;
|
||||
}
|
||||
|
||||
|
||||
/* Compact settings rows: a class, not 17 copies of the same inline style. */
|
||||
.setting-label{
|
||||
flex:none;
|
||||
white-space:nowrap;
|
||||
font-size:var(--fs-xs);
|
||||
color:var(--text-dim);
|
||||
}
|
||||
.form-row>.setting-label,.color-picker-row>.setting-label{align-self:center}
|
||||
|
||||
/* Last two off-scale sizes: a button inheriting the UA default, and a glyph. */
|
||||
#sidebar-donate{font-size:var(--fs-xs)}
|
||||
.chimera-command-search-icon,.game-library-search>span[aria-hidden]{font-size:var(--fs-md);line-height:1}
|
||||
|
||||
/* ============================================================================
|
||||
Library: poster-first cards
|
||||
The grid is the artwork. Actions live on the art and only when reached;
|
||||
the card itself opens the detail modal, so it carries no button stack.
|
||||
========================================================================== */
|
||||
|
||||
#games-grid{
|
||||
grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
|
||||
gap:20px 18px;
|
||||
align-items:start;
|
||||
}
|
||||
|
||||
.game-card{
|
||||
display:flex;flex-direction:column;gap:0;
|
||||
background:0 0;border:0;box-shadow:none;padding:0;
|
||||
overflow:visible;
|
||||
}
|
||||
|
||||
/* --- the poster ---------------------------------------------------------- */
|
||||
.game-card-art{
|
||||
position:relative;
|
||||
aspect-ratio:var(--game-cover-ratio, 2 / 3);
|
||||
overflow:hidden;
|
||||
border-radius:var(--radius);
|
||||
background:var(--surface2);
|
||||
border:1px solid var(--border-soft);
|
||||
box-shadow:0 12px 28px -14px rgba(0,0,0,.75);
|
||||
transition:box-shadow .24s cubic-bezier(.2,.8,.2,1),border-color .24s;
|
||||
}
|
||||
.game-card:hover .game-card-art,
|
||||
.game-card:focus-visible .game-card-art{
|
||||
border-color:rgba(var(--accent-rgb),.5);
|
||||
box-shadow:0 22px 46px -16px rgba(0,0,0,.85),0 0 0 1px rgba(var(--accent-rgb),.16);
|
||||
}
|
||||
.game-card-cover{width:100%;height:100%;object-fit:cover;display:block}
|
||||
|
||||
/* Coverless titles get a mark derived from their own title ID, so a grid with
|
||||
no artwork still reads as a shelf of distinct things. */
|
||||
.game-card-cover-fallback.is-visible{
|
||||
position:absolute;inset:0;aspect-ratio:auto;
|
||||
padding:14px;gap:4px;
|
||||
background:
|
||||
radial-gradient(circle at 74% 16%, hsl(var(--card-hue,265) 70% 46% / .42), transparent 46%),
|
||||
radial-gradient(circle at 18% 88%, hsl(calc(var(--card-hue,265) + 46) 68% 40% / .34), transparent 50%),
|
||||
linear-gradient(158deg,#1a1422,#0a0b11);
|
||||
}
|
||||
.game-card-cover-fallback.is-visible::before{
|
||||
top:14%;right:-22%;width:86%;
|
||||
border-color:hsl(var(--card-hue,265) 80% 78% / .22);
|
||||
}
|
||||
.game-card-cover-fallback strong{font-size:var(--fs-md);max-width:13ch;line-height:1.12}
|
||||
.game-card-cover-fallback span{color:hsl(var(--card-hue,265) 85% 80% / .9)}
|
||||
|
||||
/* --- state marker: a corner chip, not a banner across the poster ---------- */
|
||||
.game-card-sync{
|
||||
position:absolute;top:10px;left:10px;right:auto;
|
||||
display:inline-flex;align-items:center;gap:6px;
|
||||
max-width:calc(100% - 20px);
|
||||
padding:4px 9px;
|
||||
font-size:var(--fs-micro);font-weight:600;letter-spacing:.02em;
|
||||
color:var(--text);background:rgba(10,8,14,.72);
|
||||
border:1px solid var(--border-soft);border-radius:999px;
|
||||
backdrop-filter:blur(10px);
|
||||
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
|
||||
}
|
||||
.game-card-sync.pending::before{
|
||||
content:"";flex:none;width:6px;height:6px;border-radius:50%;
|
||||
background:var(--yellow);box-shadow:0 0 0 3px rgba(228,173,85,.18);
|
||||
}
|
||||
|
||||
/* --- actions: on the art, on reach --------------------------------------- */
|
||||
.game-card-actions{
|
||||
position:absolute;left:0;right:0;bottom:0;
|
||||
display:flex;gap:6px;padding:10px;
|
||||
background:linear-gradient(transparent,rgba(8,6,12,.82) 42%);
|
||||
opacity:0;transform:translateY(6px);
|
||||
z-index:4;
|
||||
transition:opacity .2s,transform .2s cubic-bezier(.2,.8,.2,1);
|
||||
}
|
||||
.game-card:hover .game-card-actions,
|
||||
.game-card:focus-within .game-card-actions{opacity:1;transform:none}
|
||||
.game-card-actions .btn{flex:1;min-height:32px;padding-inline:8px;font-size:var(--fs-micro)}
|
||||
|
||||
/* Pointer-less and reduced-motion contexts never get hover, so pin them open. */
|
||||
@media (hover:none){
|
||||
.game-card-actions{position:static;opacity:1;transform:none;background:0 0;padding:8px 0 0}
|
||||
}
|
||||
@media (prefers-reduced-motion:reduce){
|
||||
.game-card-art,.game-card-actions{transition:none}
|
||||
}
|
||||
|
||||
/* --- caption ------------------------------------------------------------- */
|
||||
.game-card-body{
|
||||
display:flex;flex-direction:column;gap:3px;
|
||||
padding:10px 2px 0;background:0 0;border:0;
|
||||
}
|
||||
.game-card-heading strong{
|
||||
display:block;font-size:var(--fs-xs);font-weight:600;line-height:1.3;color:var(--text);
|
||||
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
|
||||
}
|
||||
.game-card-meta{
|
||||
font-family:var(--mono);font-size:var(--fs-micro);color:var(--text-muted);
|
||||
overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
|
||||
}
|
||||
.game-card .game-card-status{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
|
||||
|
||||
/* The sync chip was a full-width purple banner in uppercase mono across the
|
||||
poster. It is a state marker, not a headline. */
|
||||
.game-card-sync,
|
||||
.game-card-sync.pending{
|
||||
color:var(--text);
|
||||
background:rgba(10,8,14,.72);
|
||||
border-color:var(--border-soft);
|
||||
font:600 var(--fs-micro)/1.2 var(--ui);
|
||||
letter-spacing:.01em;
|
||||
text-transform:none;
|
||||
right:auto;
|
||||
}
|
||||
|
||||
/* A coverless poster carries the title as its artwork, so the caption below it
|
||||
would only repeat itself. Show the caption title when real cover art exists. */
|
||||
/* Two art treatments already print the title onto the poster: the generated
|
||||
fallback, and the "case" used when only a square icon exists. In both the
|
||||
caption below would just repeat it. */
|
||||
.game-card:has(.game-card-cover-fallback.is-visible) .game-card-heading,
|
||||
.game-card:has(.game-card-cover-caption) .game-card-heading{display:none}
|
||||
.game-card:has(.game-card-cover-fallback.is-visible) .game-card-body,
|
||||
.game-card:has(.game-card-cover-caption) .game-card-body{padding-top:8px}
|
||||
|
||||
/* ============================================================================
|
||||
Title detail: hero header
|
||||
The dialog opened on a fifteen-row key/value table with an empty banner bar.
|
||||
The header now carries the artwork, the name and the identity chips.
|
||||
========================================================================== */
|
||||
|
||||
#modal-header{border-bottom:0}
|
||||
#modal-banner{
|
||||
filter:blur(18px) saturate(1.15);
|
||||
transform:scale(1.25);
|
||||
opacity:.55;
|
||||
}
|
||||
/* No artwork: a ground derived from the title's own ID, same seed as the card. */
|
||||
#modal-header::before{
|
||||
content:"";position:absolute;inset:0;
|
||||
background:
|
||||
radial-gradient(circle at 78% 8%, hsl(var(--modal-hue,265) 72% 48% / .40), transparent 52%),
|
||||
radial-gradient(circle at 12% 96%, hsl(calc(var(--modal-hue,265) + 46) 66% 42% / .30), transparent 55%),
|
||||
linear-gradient(160deg,#181322,#0b0910);
|
||||
}
|
||||
#modal-banner.has-art{opacity:.78}
|
||||
/* Scrim so the title always holds against whatever artwork loads. */
|
||||
#modal-header::after{
|
||||
content:"";position:absolute;inset:0;pointer-events:none;
|
||||
background:linear-gradient(180deg,rgba(10,8,14,.30),rgba(18,14,23,.86) 72%,var(--surface));
|
||||
}
|
||||
#modal-header-content{position:relative;z-index:2}
|
||||
|
||||
#modal-icon{
|
||||
width:84px!important;height:84px!important;
|
||||
border-radius:var(--radius-sm)!important;
|
||||
border:1px solid rgba(255,255,255,.14);
|
||||
box-shadow:0 16px 34px -12px rgba(0,0,0,.9)!important;
|
||||
}
|
||||
#modal-header h2#modal-title{text-wrap:balance}
|
||||
#modal-subtitle{
|
||||
margin-top:6px;
|
||||
font-family:var(--mono);
|
||||
font-size:var(--fs-micro);
|
||||
color:var(--text-dim);
|
||||
letter-spacing:.04em;
|
||||
}
|
||||
#modal-close{
|
||||
position:relative;z-index:3;
|
||||
width:36px;height:36px;display:grid;place-items:center;
|
||||
border-radius:50%;
|
||||
background:rgba(10,8,14,.55);border:1px solid var(--border-soft);
|
||||
color:var(--text);backdrop-filter:blur(10px);
|
||||
}
|
||||
#modal-close:hover{background:rgba(10,8,14,.8);border-color:var(--accent)}
|
||||
|
||||
/* Workspace links read as destinations, not as a second toolbar. */
|
||||
.modal-workspace-links{margin-top:12px;gap:6px}
|
||||
.modal-workspace-links button{
|
||||
background:rgba(10,8,14,.5)!important;
|
||||
border-color:var(--border-soft)!important;
|
||||
backdrop-filter:blur(10px);
|
||||
}
|
||||
|
||||
/* --- metric tiles --------------------------------------------------------- */
|
||||
.modal-metrics{
|
||||
display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));
|
||||
gap:1px;background:var(--border-soft);
|
||||
border:1px solid var(--border-soft);border-radius:var(--radius);
|
||||
overflow:hidden;margin-bottom:18px;
|
||||
}
|
||||
.modal-metric{
|
||||
display:flex;flex-direction:column;gap:5px;
|
||||
padding:14px 16px;background:var(--surface2);
|
||||
}
|
||||
.modal-metric span{
|
||||
font-family:var(--mono);font-size:var(--fs-micro);
|
||||
letter-spacing:.11em;text-transform:uppercase;color:var(--text-muted);
|
||||
}
|
||||
.modal-metric strong{
|
||||
font-family:var(--display);font-size:var(--fs-md);font-weight:600;
|
||||
color:var(--text);font-variant-numeric:tabular-nums;line-height:1.15;
|
||||
}
|
||||
.modal-metric.is-ok strong{color:var(--green)}
|
||||
.modal-metric.is-warn strong{color:var(--yellow)}
|
||||
.modal-metric.is-idle strong{color:var(--text-muted)}
|
||||
|
||||
/* --- tab strip: fade the overflow instead of showing a raw scrollbar ------- */
|
||||
.modal-tabs{
|
||||
position:relative;
|
||||
scrollbar-width:none;
|
||||
-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 44px),transparent);
|
||||
mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 44px),transparent);
|
||||
}
|
||||
.modal-tabs::-webkit-scrollbar{height:0}
|
||||
|
||||
/* --- metadata table: let absent values recede ----------------------------- */
|
||||
.detail-table th{
|
||||
font-family:var(--ui);font-size:var(--fs-xs);font-weight:500;
|
||||
letter-spacing:0;text-transform:none;color:var(--text-muted);
|
||||
}
|
||||
.detail-table td{font-size:var(--fs-xs)}
|
||||
.detail-table td{color:var(--text)}
|
||||
|
||||
/* ============================================================================
|
||||
Title detail: subsystem rail
|
||||
Thirteen subsystems sat in a horizontal tab strip that overflowed and had to
|
||||
be scrolled to be read. The same buttons become a vertical rail — every
|
||||
destination scannable at once, no horizontal scroll, and room for the summary
|
||||
to breathe. Structure is untouched: #modal already has exactly four children,
|
||||
so this is a grid re-layout, not a rebuild.
|
||||
Below 760px the original horizontal strip is kept; a rail costs too much width.
|
||||
========================================================================== */
|
||||
@media (min-width:760px){
|
||||
#modal{
|
||||
display:grid;
|
||||
grid-template-columns:206px minmax(0,1fr);
|
||||
grid-template-rows:auto minmax(0,1fr) auto;
|
||||
}
|
||||
#modal-header{grid-column:1/-1;grid-row:1}
|
||||
#modal-body{grid-column:2;grid-row:2;min-height:0;overflow-y:auto}
|
||||
#modal-footer{grid-column:1/-1;grid-row:3}
|
||||
|
||||
.modal-tabs{
|
||||
grid-column:1;grid-row:2;
|
||||
display:flex;flex-direction:column;align-items:stretch;
|
||||
gap:2px;
|
||||
min-height:0;
|
||||
padding:14px 10px 18px;
|
||||
overflow-x:hidden;overflow-y:auto;
|
||||
border-bottom:0;
|
||||
border-right:1px solid var(--border-soft);
|
||||
background:rgba(10,8,14,.28);
|
||||
/* cancel the horizontal overflow fade */
|
||||
-webkit-mask-image:none;mask-image:none;
|
||||
scrollbar-width:thin;
|
||||
}
|
||||
.modal-tabs::before{
|
||||
content:"Subsystems";
|
||||
padding:0 11px 9px;
|
||||
font-family:var(--mono);font-size:var(--fs-micro);
|
||||
letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);
|
||||
}
|
||||
.modal-tab{
|
||||
flex:0 0 auto;
|
||||
justify-content:flex-start;
|
||||
min-height:34px;
|
||||
margin-bottom:0;
|
||||
padding:7px 11px;
|
||||
text-align:left;
|
||||
border-bottom:0;
|
||||
border-left:2px solid transparent;
|
||||
border-radius:var(--radius-sm);
|
||||
font-size:var(--fs-xs);
|
||||
}
|
||||
.modal-tab:hover{background:rgba(255,255,255,.045)}
|
||||
.modal-tab.active{
|
||||
color:var(--text);
|
||||
background:rgba(var(--accent-rgb),.16);
|
||||
border-bottom-color:transparent;
|
||||
border-left-color:var(--accent);
|
||||
}
|
||||
/* the count badge trails the label instead of crowding it */
|
||||
.modal-tab .tab-badge{margin-left:auto}
|
||||
}
|
||||
|
||||
/* ============================================================================
|
||||
Utilities
|
||||
index.html carried 275 inline style attributes. Inline styles beat every
|
||||
stylesheet rule without !important, which is why the type scale could not
|
||||
reach the settings labels no matter what the CSS said. These six recurring
|
||||
declarations are now classes; the remaining ~220 are per-site layout and
|
||||
dynamic values (progress widths) that need judgement, not a find-replace.
|
||||
========================================================================== */
|
||||
.u-flex-1{flex:1}
|
||||
.u-push{margin-left:auto}
|
||||
.u-row-8{align-items:center;gap:8px}
|
||||
.u-fs-micro{font-size:var(--fs-micro)}
|
||||
.u-field-md{min-width:150px}
|
||||
.u-field-sm{width:140px}
|
||||
|
||||
/* <small> otherwise inherits the browser's 0.83em and compounds below the floor. */
|
||||
small,.hint,.toggle-hint{font-size:var(--fs-xs)}
|
||||
/* An unclassed <button> otherwise takes the UA default (13.33px) and sits off
|
||||
the scale. Any class rule still wins, so styled buttons are unaffected. */
|
||||
button{font-size:inherit}
|
||||
|
||||
|
||||
/* Spacing utilities on the 4/8 scale the art direction specifies. These replace
|
||||
56 ad-hoc inline margins that sat between steps (5, 6, 10, 14, 18px). */
|
||||
.u-mt-4{margin-top:4px}
|
||||
.u-mt-8{margin-top:8px}
|
||||
.u-mt-12{margin-top:12px}
|
||||
.u-mt-16{margin-top:16px}
|
||||
.u-mb-4{margin-bottom:4px}
|
||||
.u-mb-8{margin-bottom:8px}
|
||||
.u-mb-12{margin-bottom:12px}
|
||||
.u-mb-16{margin-bottom:16px}
|
||||
@@ -0,0 +1,249 @@
|
||||
|
||||
#modal-overlay{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.7)}
|
||||
#modal-overlay[hidden]{display:none}
|
||||
#modal{display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--border)}
|
||||
#modal-header{position:relative;overflow:hidden;border-bottom:1px solid var(--border)}
|
||||
#modal-banner{position:absolute;inset:0;background-position:center;background-size:cover;filter:blur(4px);transform:scale(1.12);transition:background-image .25s}
|
||||
#modal-header-content{position:relative;display:flex;align-items:flex-start;justify-content:space-between}
|
||||
#modal-header h2{color:#fff;font-size:18px;text-shadow:0 1px 4px rgba(0,0,0,.9)}
|
||||
.modal-workspace-links{display:flex;flex-wrap:wrap}
|
||||
.modal-workspace-links button{color:rgba(255,255,255,.86);font:inherit;cursor:pointer}
|
||||
.modal-workspace-links button:hover,.modal-workspace-links button:focus-visible{color:#fff;border-color:var(--accent);outline:2px solid rgba(var(--accent-rgb),.25);outline-offset:1px}
|
||||
#modal-close:hover{color:var(--red)}
|
||||
#modal-body{display:flex;flex:1;flex-direction:column;gap:20px;overflow-y:auto}
|
||||
#modal-footer{display:flex;gap:10px;border-top:1px solid var(--border)}
|
||||
.detail-table{width:100%;border-collapse:collapse}
|
||||
.detail-table tr{border-bottom:1px solid #1a1a1a}
|
||||
.detail-table th{width:35%;padding:7px 0;color:var(--text-dim);font-size:12px;font-weight:500;text-align:left}
|
||||
.detail-table td{padding:7px 0;font-size:12px}
|
||||
#modal-backup-section h4{margin-bottom:10px;color:var(--text-dim);font-size:12px;font-weight:500}
|
||||
#modal-backup-list{display:flex;flex-direction:column;gap:6px;list-style:none}
|
||||
#modal-backup-list li{display:flex;justify-content:space-between;padding:8px 12px;color:var(--text-dim);font-size:12px;background:var(--surface2);border-radius:8px}
|
||||
.modal-tabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--border)}
|
||||
.modal-tab{display:flex;align-items:center;gap:6px;margin-bottom:-1px;color:var(--text-dim);background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s}
|
||||
.modal-tab:hover{color:var(--text)}
|
||||
.modal-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
|
||||
.tab-badge{display:inline-block;min-width:18px;height:18px;padding:0 4px;color:var(--accent);font-size:11px;font-weight:700;line-height:18px;text-align:center;background:rgba(var(--accent-rgb),.2);border-radius:12px}
|
||||
.tab-badge:empty{display:none}
|
||||
.modal-panel{display:none;flex-direction:column;gap:14px}
|
||||
.modal-panel.active{display:flex}
|
||||
.prospero-placeholder{padding:40px;color:var(--text-dim);font-size:12px;font-style:italic;text-align:center}
|
||||
.patch-list,.dlc-list{display:flex;flex-direction:column;gap:8px;list-style:none}
|
||||
.patch-item{display:flex;flex-direction:column;gap:6px;padding:10px 14px;background:var(--surface2);border-radius:8px}
|
||||
.patch-item-latest{border-left:3px solid var(--teal);border-top-left-radius:0;border-bottom-left-radius:0}
|
||||
.patch-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
|
||||
.patch-latest{flex-shrink:0;padding:2px 7px;color:var(--bg);font-size:11px;font-weight:700;background:var(--teal);border-radius:8px}
|
||||
.patch-ver{color:var(--accent);font-size:12px;font-weight:700}
|
||||
.patch-meta{display:flex;flex-wrap:wrap;gap:14px;margin-left:auto;color:var(--text-dim);font-size:12px}
|
||||
.patch-changelog{padding-top:4px;color:var(--text-dim);font-size:12px;line-height:1.5;white-space:pre-wrap;border-top:1px solid rgba(255,255,255,.06)}
|
||||
.dlc-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface2);border-radius:8px}
|
||||
.dlc-icon{width:40px;height:40px;flex-shrink:0;object-fit:cover;background:var(--surface3);border-radius:8px}
|
||||
.dlc-name{font-size:12px;font-weight:500}
|
||||
.dlc-meta{color:var(--text-dim);font-size:12px}
|
||||
.region-pills{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}
|
||||
.region-pill{display:flex;align-items:center;gap:6px;padding:6px 14px;color:var(--text);font-size:12px;background:var(--surface2);border:1.5px solid var(--border);border-radius:16px;cursor:pointer;transition:all .15s}
|
||||
.region-pill:hover{color:var(--accent);border-color:var(--accent)}
|
||||
.region-pill.owned{color:var(--teal);border-color:var(--teal)}
|
||||
.region-pill.owned::after{font-size:11px;content:' ✓'}
|
||||
.game-description{margin-top:6px;padding:12px 14px;color:var(--text-dim);font-size:12px;line-height:1.6;background:var(--surface2);border-radius:8px}
|
||||
.backpork-list{display:flex;flex-direction:column;gap:12px}
|
||||
.backpork-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
|
||||
.backpork-card-header{padding:14px 20px;display:flex;align-items:center;gap:16px}
|
||||
.backpork-badge{padding:5px 14px;border-radius:16px;font-size:14px;font-weight:700;background:rgba(3,218,198,.15);color:var(--teal);border:1.5px solid var(--teal);flex-shrink:0;min-width:64px;text-align:center}
|
||||
.backpork-info{flex:1;min-width:0}
|
||||
.backpork-path{font-size:12px;color:var(--text-dim);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.backpork-count{font-size:12px;color:var(--text-dim);margin-top:2px}
|
||||
.backpork-count strong{color:var(--accent)}
|
||||
.backpork-actions{display:flex;gap:8px;flex-shrink:0}
|
||||
.backpork-games{border-top:1px solid var(--border);display:flex;flex-direction:column}
|
||||
.backpork-game-row{padding:9px 20px 9px 28px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.04)}
|
||||
.backpork-game-row:last-child{border-bottom:none}
|
||||
.backpork-game-icon{width:32px;height:32px;border-radius:8px;object-fit:cover;background:var(--surface2);flex-shrink:0}
|
||||
.backpork-game-info{flex:1;min-width:0}
|
||||
.backpork-game-title{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.backpork-game-id{font-size:11px;color:var(--text-dim)}
|
||||
.backpork-game-actions{display:flex;gap:6px;flex-shrink:0}
|
||||
.backpork-porked-pill{font-size:11px;padding:2px 7px;border-radius:12px;background:rgba(3,218,198,.15);color:var(--teal);border:1px solid rgba(3,218,198,.35);white-space:nowrap}
|
||||
/* ── Firmware label pills (in game rows) ─────────────────────────────────────── */
|
||||
.fw-pill{display:inline-block;padding:1px 7px;border-radius:12px;font-size:11px;font-weight:700;background:rgba(3,218,198,.15);color:var(--teal);border:1px solid rgba(3,218,198,.35);margin-right:3px;white-space:nowrap}
|
||||
.fw-pill.fw-pill-patched{background:rgba(132,204,22,.15);color:#84cc16;border-color:rgba(132,204,22,.35)}
|
||||
.s-tag.s-patched{background:rgba(132,204,22,.13);color:#84cc16;border:1px solid rgba(132,204,22,.3)}
|
||||
/* ── Manage panel ────────────────────────────────────────────────────────────── */
|
||||
.manage-section{display:flex;flex-direction:column;gap:10px}
|
||||
.manage-section-title{font-size:12px;color:var(--text-dim);font-weight:500;padding-bottom:8px;border-bottom:1px solid var(--border)}
|
||||
#manage-backup-list{display:flex;flex-direction:column;gap:6px}
|
||||
/* Backpork version entries in Manage tab */
|
||||
#manage-backpork-list{display:flex;flex-direction:column;gap:6px}
|
||||
.manage-backpork-entry{background:var(--surface2);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:12px}
|
||||
.manage-backpork-fw{padding:3px 10px;border-radius:16px;font-size:12px;font-weight:700;background:rgba(3,218,198,.15);color:var(--teal);border:1px solid rgba(3,218,198,.35);flex-shrink:0}
|
||||
.manage-backpork-path{flex:1;font-size:11px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.manage-porked-status{font-size:12px;padding:7px 10px;border-radius:8px;background:rgba(3,218,198,.08);border:1px solid rgba(3,218,198,.25);color:var(--teal);display:flex;align-items:center;gap:8px}
|
||||
.manage-porked-status .clear-pork{margin-left:auto;font-size:11px;cursor:pointer;color:var(--text-dim);background:none;border:none}
|
||||
.manage-backup-item{background:var(--surface2);border-radius:8px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1.5px solid transparent;transition:border-color .15s}
|
||||
.manage-item-selected{border-color:var(--teal)}
|
||||
.manage-backup-info{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
|
||||
.manage-filename{font-size:12px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
|
||||
.manage-size{font-size:12px;color:var(--text-dim);white-space:nowrap}
|
||||
.manage-backup-actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap}
|
||||
#manage-upload-log{margin-top:6px;font-family:'Consolas',monospace;font-size:12px}
|
||||
/* ── Hash verification ───────────────────────────────────────────────────────── */
|
||||
#modal-hash-section{display:flex;flex-direction:column;gap:10px}
|
||||
.hash-section-header{display:flex;align-items:center;gap:10px}
|
||||
.hash-section-header h4{font-size:12px;color:var(--text-dim);font-weight:500}
|
||||
#modal-hash-list{display:flex;flex-direction:column;gap:6px}
|
||||
.hash-entry{background:var(--surface2);border-radius:8px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
|
||||
.hash-entry-info{display:flex;align-items:center;gap:10px;min-width:0}
|
||||
.hash-entry-status{display:flex;align-items:center;gap:8px;flex-shrink:0}
|
||||
.hash-filename{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
|
||||
.hash-value{font-size:11px;color:var(--text-dim);font-family:'Consolas',monospace;white-space:nowrap}
|
||||
.hash-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap}
|
||||
.hash-none{background:rgba(158,158,158,.15);color:var(--text-dim)}
|
||||
.hash-local{background:rgba(var(--accent-rgb),.2);color:var(--accent)}
|
||||
.hash-community{background:rgba(3,218,198,.2);color:var(--teal);border:1px solid rgba(3,218,198,.35)}
|
||||
.hash-mismatch{background:rgba(207,102,121,.18);color:var(--red);border:1px solid rgba(207,102,121,.35)}
|
||||
/* Inline game-list hash status tags (s-tag variants) */
|
||||
.s-tag.s-hash-fail{background:rgba(207,102,121,.18);color:var(--red);border-color:rgba(207,102,121,.35)}
|
||||
.s-tag.s-hash-ok{background:rgba(3,218,198,.15);color:var(--teal);border-color:rgba(3,218,198,.3)}
|
||||
.s-tag.s-hash-local{background:rgba(var(--accent-rgb),.15);color:var(--accent);border-color:rgba(var(--accent-rgb),.3)}
|
||||
/* Backpork game-row hash pills */
|
||||
.hash-pill-fail{background:rgba(207,102,121,.18);color:var(--red);border:1px solid rgba(207,102,121,.35);display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}
|
||||
.hash-pill-ok{background:rgba(3,218,198,.15);color:var(--teal);border:1px solid rgba(3,218,198,.3);display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}
|
||||
.hash-pill-local{background:rgba(var(--accent-rgb),.15);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.3);display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}
|
||||
/* Hash Database tab card layout */
|
||||
.hash-db-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}
|
||||
.hash-db-info-row{display:flex;gap:32px;flex-wrap:wrap;align-items:flex-start;margin-bottom:14px}
|
||||
.hash-db-info-col{display:flex;flex-direction:column;gap:4px}
|
||||
.hash-db-label{font-size:11px;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
|
||||
.hash-db-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
|
||||
/* Progress bar */
|
||||
.hash-progress-bar{height:4px;background:var(--surface3);border-radius:8px;overflow:hidden}
|
||||
.hash-progress-fill{height:100%;background:var(--teal);border-radius:8px;width:0%;transition:width .2s}
|
||||
.hash-progress-label{font-size:11px;color:var(--text-dim);margin-top:5px}
|
||||
/* Inline confirm for re-verify */
|
||||
.hash-confirm{display:flex;align-items:center;gap:6px}
|
||||
.hash-confirm-msg{font-size:12px;color:var(--yellow);white-space:nowrap}
|
||||
/* ── Color picker ────────────────────────────────────────────────────────────── */
|
||||
/* ── System View Hotkey editor ───────────────────────────────────────────── */
|
||||
.hotkey-grid{display:grid;grid-template-columns:1fr auto;gap:8px 20px;align-items:center;max-width:360px}
|
||||
.hotkey-label{font-size:12px;color:var(--text-dim)}
|
||||
.hotkey-input{width:72px;text-align:center;font-family:'Consolas','SF Mono',monospace;font-size:12px;background:#1a1a1a;border:1px solid var(--border);border-radius:8px;color:var(--text);padding:5px 8px;cursor:pointer;transition:border-color .15s}
|
||||
.hotkey-input:focus{outline:none;border-color:var(--accent);background:#111}
|
||||
.hotkey-input.capturing{border-color:var(--yellow);color:var(--yellow)}
|
||||
.color-picker-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
|
||||
.color-picker-wrap{display:flex;align-items:center;gap:10px}
|
||||
.color-swatch{width:36px;height:36px;border-radius:8px;border:2px solid var(--border);cursor:pointer;flex-shrink:0;transition:border-color .15s;position:relative;overflow:hidden}
|
||||
.color-swatch:hover{border-color:var(--accent)}
|
||||
/* Hide the native input but keep it functional and clickable */
|
||||
input[type="color"].color-picker-input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;border:none;padding:0}
|
||||
.color-hex-label{font-family:'Consolas',monospace;font-size:12px;color:var(--text);background:var(--bg);border:1.5px solid var(--border);border-radius:8px;padding:6px 10px;width:96px;text-transform:uppercase;outline:none;transition:border-color .2s}
|
||||
.color-hex-label:focus{border-color:var(--accent)}
|
||||
/* ── Firmware filter row ─────────────────────────────────────────────────────── */
|
||||
.firmware-filter-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
|
||||
.fw-filter-label{font-size:12px;color:var(--text-dim);white-space:nowrap}
|
||||
.fwbtn{padding:4px 12px;border-radius:16px;border:1.5px solid rgba(3,218,198,.4);background:transparent;color:var(--teal);font-size:12px;cursor:pointer;transition:all .15s}
|
||||
.fwbtn:hover{background:rgba(3,218,198,.1)}
|
||||
.fwbtn.active{background:var(--teal);border-color:var(--teal);color:var(--bg);font-weight:700}
|
||||
/* ── Confirm dialog ──────────────────────────────────────────────────────────── */
|
||||
#confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:9000}
|
||||
#confirm-overlay[hidden]{display:none}
|
||||
#confirm-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px;max-width:400px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,.6)}
|
||||
#confirm-message{font-size:14px;line-height:1.6;color:var(--text);margin:0 0 20px;white-space:pre-wrap;word-break:break-word}
|
||||
.confirm-buttons{display:flex;gap:10px;justify-content:flex-end}
|
||||
/* ── Selective Clear dialog ─────────────────────────────────────────── */
|
||||
#clear-select-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:9050}
|
||||
#clear-select-overlay[hidden]{display:none}
|
||||
#clear-select-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px;max-width:420px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,.6)}
|
||||
.clear-opt{display:flex;flex-direction:row;align-items:center;gap:10px;cursor:pointer;padding:8px 12px;border-radius:8px;background:var(--surface-2);transition:background .15s}
|
||||
.clear-opt:hover{background:var(--surface-3,rgba(255,255,255,.08))}
|
||||
.clear-opt input[type="checkbox"]{width:16px;height:16px;accent-color:var(--red,#f44);cursor:pointer;flex-shrink:0}
|
||||
.clear-opt-label{font-size:12px;font-weight:600;color:var(--text);min-width:80px}
|
||||
.clear-opt-hint{font-size:12px;color:var(--text-dim)}
|
||||
/* ── DB row selection toolbar ──────────────────────────────────────── */
|
||||
.db-row-toolbar{display:flex;align-items:center;gap:10px;padding:8px 12px;margin-bottom:6px;background:var(--surface-2);border-radius:8px;border:1px solid var(--border)}
|
||||
.db-row-toolbar[hidden]{display:none}
|
||||
.db-row-toolbar-count{font-size:12px;color:var(--accent);font-weight:600;margin-right:auto}
|
||||
.db-pagebar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 8px}
|
||||
.db-pagebar > div{display:flex;gap:6px}
|
||||
.db-row-cb{width:32px;text-align:center;padding:4px !important}
|
||||
.db-row-cb input[type="checkbox"]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}
|
||||
tr.db-row-selected{background:rgba(187,134,252,.1) !important}
|
||||
tr.db-row-selected:hover{background:rgba(187,134,252,.18) !important}
|
||||
/* ── Prompt (input) dialog ─────────────────────────────────────────── */
|
||||
#prompt-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:9100}
|
||||
#prompt-overlay[hidden]{display:none}
|
||||
#prompt-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px;max-width:400px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,.6)}
|
||||
#prompt-message{font-size:14px;line-height:1.6;color:var(--text);margin:0 0 12px}
|
||||
#prompt-input{width:100%;box-sizing:border-box;margin-bottom:16px}
|
||||
/* ── Admin-required warning modal ────────────────────────────────────── */
|
||||
#admin-warn-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:9100}
|
||||
#admin-warn-overlay[hidden]{display:none}
|
||||
#admin-warn-dialog{background:var(--surface);border:1px solid var(--red,#c0392b);border-radius:var(--radius);padding:28px 32px;max-width:420px;width:92%;box-shadow:0 8px 40px rgba(0,0,0,.7);text-align:center}
|
||||
.admin-warn-icon{font-size:36px;margin-bottom:10px}
|
||||
.admin-warn-title{font-size:16px;font-weight:700;color:var(--red,#e05);margin:0 0 14px}
|
||||
.admin-warn-body{font-size:12px;line-height:1.6;color:var(--text);margin:0 0 12px;text-align:left}
|
||||
.admin-warn-hint{font-size:12px;line-height:1.6;color:var(--text-dim);background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:8px;padding:8px 12px;margin:0 0 16px;text-align:left}
|
||||
#admin-warn-overlay[hidden]{display:none !important}
|
||||
.conv-admin-warn{color:var(--red,#e05);border-color:var(--red,#e05) !important;background:rgba(192,57,43,.12) !important}
|
||||
/* ── Manage Jailbreak ────────────────────────────────────────────────────────── */
|
||||
.jb-card{display:flex;flex-direction:column;gap:16px}
|
||||
.jb-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:8px;letter-spacing:.5px;text-transform:uppercase}
|
||||
.jb-badge-soon{background:rgba(255,255,255,.08);color:var(--text-dim)}
|
||||
.jb-tool-body{display:flex;flex-direction:column;gap:12px}
|
||||
.jb-section{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:8px;background:rgba(255,255,255,.03);border:1px solid var(--border)}
|
||||
.jb-section-title{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}
|
||||
.jb-status-row{display:flex;align-items:center;gap:12px;font-size:12px}
|
||||
.jb-label{color:var(--text-dim);min-width:160px;flex-shrink:0}
|
||||
.jb-value{color:var(--text);font-weight:500}
|
||||
.jb-actions{display:flex;gap:8px;flex-wrap:wrap}
|
||||
.jb-list-placeholder{font-size:12px;font-style:italic;color:var(--text-dim);padding:12px;border-radius:8px;background:rgba(255,255,255,.02);text-align:center}
|
||||
/* ── Auto-Backpork Generator panel ──────────────────────────────────────────── */
|
||||
.bpgen-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}
|
||||
.bpgen-summary{padding:12px 18px;cursor:pointer;user-select:none;display:flex;align-items:center;gap:8px;list-style:none;border-radius:var(--radius)}
|
||||
.bpgen-summary::-webkit-details-marker{display:none}
|
||||
.bpgen-summary::before{content:'▶';font-size:11px;color:var(--text-dim);transition:transform .15s;flex-shrink:0}
|
||||
details[open] .bpgen-summary::before{transform:rotate(90deg)}
|
||||
.bpgen-summary-icon{font-size:16px}
|
||||
.bpgen-body{padding:0 18px 16px;display:flex;flex-direction:column;gap:8px}
|
||||
.bpgen-row{align-items:center;gap:10px}
|
||||
.bpgen-label{font-size:12px;color:var(--text-dim);min-width:140px;flex-shrink:0}
|
||||
.bpgen-status{flex:1}
|
||||
.bpgen-status.status-ok{color:var(--teal)}
|
||||
.bpgen-status.status-error{color:var(--danger,#e74c3c)}
|
||||
.bpgen-status.status-warn{color:#f0a500}
|
||||
.bpgen-game-picker{border:1px solid var(--border);border-radius:8px;margin:0 0 4px;overflow:hidden}
|
||||
.bpgen-picker-header{background:var(--surface2);padding:6px 10px;display:flex;align-items:center;gap:8px}
|
||||
.bpgen-picker-header .hint{flex:1}
|
||||
.bpgen-game-list{max-height:220px;overflow-y:auto}
|
||||
.bpgen-game-row{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04);font-size:12px}
|
||||
.bpgen-game-row:last-child{border-bottom:none}
|
||||
.bpgen-game-row:hover{background:rgba(255,255,255,.04)}
|
||||
.bpgen-game-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.bpgen-game-id{font-size:11px;color:var(--text-dim);flex-shrink:0}
|
||||
.bpgen-loading{padding:10px;color:var(--text-dim);font-size:12px}
|
||||
.bpgen-progress-bar-wrap{height:6px;background:var(--surface2);border-radius:8px;overflow:hidden}
|
||||
.bpgen-progress-bar{height:100%;background:var(--teal);border-radius:8px;transition:width .3s ease}
|
||||
.bpgen-log{font-family:monospace;font-size:11px;color:var(--text-dim);max-height:180px;overflow-y:auto;margin-top:6px;background:var(--surface2);border-radius:8px;padding:6px 8px}
|
||||
.bpgen-log-row{line-height:1.5}
|
||||
.bpgen-log-error{color:var(--danger,#e74c3c)}
|
||||
/* ── Fakelib Manager sub-panel ───────────────────────────────────────────────── */
|
||||
.bpgen-fl-panel{border:1px solid var(--border);border-radius:8px;background:var(--surface2);margin-top:2px;overflow:hidden}
|
||||
.bpgen-fl-summary{padding:8px 12px;cursor:pointer;user-select:none;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;list-style:none}
|
||||
.bpgen-fl-summary::-webkit-details-marker{display:none}
|
||||
.bpgen-fl-summary::before{content:'▶';font-size:11px;color:var(--text-dim);transition:transform .15s;flex-shrink:0}
|
||||
details[open] .bpgen-fl-summary::before{transform:rotate(90deg)}
|
||||
.bpgen-fl-body{padding:0 12px 12px;display:flex;flex-direction:column;gap:6px}
|
||||
.bpgen-fl-badge{font-size:11px;font-weight:normal;padding:2px 7px;border-radius:12px;margin-left:auto}
|
||||
.bpgen-fl-badge-ok{background:rgba(0,200,150,.15);color:var(--teal)}
|
||||
.bpgen-fl-badge-warn{background:rgba(240,165,0,.15);color:#f0a500}
|
||||
/* 10-pair grid */
|
||||
.bpgen-fl-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
|
||||
.bpgen-fl-pair{display:flex;flex-direction:column;align-items:center;gap:2px;width:62px;padding:6px 4px;border-radius:8px;cursor:pointer;border:1px solid var(--border);background:var(--surface);font-size:11px;transition:border-color .15s,background .15s}
|
||||
.bpgen-fl-pair:hover{border-color:var(--teal);background:rgba(0,200,150,.06)}
|
||||
.bpgen-fl-pair-active{border-color:var(--teal) !important;background:rgba(0,200,150,.12) !important}
|
||||
.bpgen-fl-pair-ok{border-color:var(--teal)}
|
||||
.bpgen-fl-pair-missing{border-color:var(--border);opacity:.75}
|
||||
.bpgen-fl-pair-num{font-size:12px;font-weight:700}
|
||||
.bpgen-fl-pair-icon{font-size:14px}
|
||||
.bpgen-fl-pair-ok .bpgen-fl-pair-icon{color:var(--teal)}
|
||||
.bpgen-fl-pair-missing .bpgen-fl-pair-icon{color:var(--text-dim)}
|
||||
.bpgen-fl-pair-label{font-size:11px;color:var(--text-dim)}
|
||||
@@ -0,0 +1,14 @@
|
||||
.etahen-link-card { margin-bottom: 14px; border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
|
||||
.etahen-link-kicker { display: block; margin-bottom: 4px; color: var(--accent); font-size:11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
|
||||
.etahen-link-health { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
|
||||
.etahen-link-health-item { min-width: 0; padding: 12px; border: 1px solid var(--border); border-radius:12px; background: color-mix(in srgb, var(--card) 88%, transparent); }
|
||||
.etahen-link-health-item span, .etahen-link-health-item strong { display: block; overflow-wrap: anywhere; }
|
||||
.etahen-link-health-item span { color: var(--text-dim); font-size:11px; }
|
||||
.etahen-link-health-item strong { margin-top: 4px; }
|
||||
.etahen-link-health-item.state-online strong { color: var(--green); }
|
||||
.etahen-link-health-item.state-offline strong { color: var(--red); }
|
||||
.etahen-link-alert { margin-top: 10px; padding: 10px 12px; border-radius:8px; background: color-mix(in srgb, var(--accent) 10%, transparent); }
|
||||
.etahen-link-alert.is-critical { border: 2px solid var(--red); background: color-mix(in srgb, var(--red) 14%, transparent); font-weight: 700; }
|
||||
#etahen-link-root:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius:12px; }
|
||||
@media (max-width: 700px) { .etahen-link-health { grid-template-columns: 1fr; } }
|
||||
@media (prefers-reduced-motion: reduce) { .etahen-link-card *, .etahen-link-card *::before, .etahen-link-card *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
|
||||
@@ -0,0 +1,576 @@
|
||||
|
||||
.payload-manager-connect-row{display:flex;align-items:center;gap:14px;margin:12px 0;flex-wrap:wrap}
|
||||
.payload-manager-connect-row label{display:inline-flex;align-items:center;gap:8px;color:var(--text-dim);font-size:12px}
|
||||
.payload-manager-connect-row input{width:88px}
|
||||
.payload-manager-frame{width:100%;min-height:680px;border:1px solid var(--border);border-radius:12px;background:#080a0f}
|
||||
.payload-workspace-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
|
||||
.payload-workspace-nav button{display:grid;grid-template-columns:26px minmax(0,1fr);gap:1px 8px;align-items:center;min-width:0;padding:10px;color:var(--text);text-align:left;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer}.payload-workspace-nav button:hover,.payload-workspace-nav button:focus-visible{border-color:color-mix(in srgb,var(--accent) 60%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
|
||||
.payload-workspace-nav button>span{grid-row:1/3;display:grid;width:26px;height:26px;place-items:center;color:var(--accent);font-weight:700;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,transparent)}
|
||||
.payload-workspace-nav strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
|
||||
.payload-workspace-nav small{overflow:hidden;color:var(--text-dim);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
|
||||
.jb-card{scroll-margin-top:108px;transition:border-color .25s ease,box-shadow .25s ease}
|
||||
.payload-workspace-highlight{border-color:var(--accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
|
||||
@media(max-width:900px){.payload-workspace-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
}
|
||||
@media(max-width:520px){.payload-workspace-nav{grid-template-columns:1fr}
|
||||
}
|
||||
/* ── PSNotify log ─────────────────────────────────────────────────────────── */
|
||||
.psn-history{display:flex;flex-direction:column;gap:4px}
|
||||
.psn-entry{display:flex;align-items:baseline;gap:10px;padding:6px 10px;border-radius:8px;font-size:12px;background:rgba(255,255,255,.03)}
|
||||
.psn-entry.psn-ok{border-left:2px solid var(--teal)}
|
||||
.psn-entry.psn-fail{border-left:2px solid var(--red)}
|
||||
.psn-entry-ts{color:var(--text-dim);white-space:nowrap;flex-shrink:0;font-family:monospace}
|
||||
.psn-entry-msg{font-weight:600}
|
||||
.psn-entry-sub{color:var(--text-dim)}
|
||||
.psnotify-page-subtitle{flex:1 1 320px;margin-left:14px}
|
||||
#psn-page-readiness{margin-left:auto}
|
||||
.psnotify-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:12px;align-items:start}
|
||||
.psnotify-side{display:grid;gap:12px}
|
||||
.psnotify-templates{display:flex;gap:6px;margin:12px 0;flex-wrap:wrap}
|
||||
.psnotify-compose-card label{position:relative}
|
||||
.psnotify-counter{position:absolute;right:9px;bottom:8px;color:var(--text-dim);font-size:11px;pointer-events:none}
|
||||
.psnotify-compose-card input{padding-right:54px}
|
||||
.psnotify-preview{display:flex;flex-direction:column;gap:3px;margin-top:12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--surface2)),var(--surface2))}
|
||||
.psnotify-preview>span{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
|
||||
.psnotify-preview>strong{font-size:14px}
|
||||
.psnotify-preview>small{color:var(--text-dim)}
|
||||
.psnotify-lab.collapsed>:not(.card-header){display:none !important}
|
||||
.psnotify-lab .card-header{margin-bottom:0}
|
||||
.psnotify-lab:not(.collapsed) .card-header{margin-bottom:12px}
|
||||
.psnotify-history-card{margin-top:12px}
|
||||
.psnotify-lab{margin-top:12px}
|
||||
@media (max-width:880px){.psnotify-grid{grid-template-columns:1fr}
|
||||
.psnotify-page-subtitle{order:3;flex-basis:100%;margin:4px 0 0}
|
||||
}
|
||||
.jb-placeholder-notice{font-size:12px;color:var(--text-dim);padding:8px 12px;border-radius:8px;background:rgba(255,255,255,.03);border:1px dashed var(--border);text-align:center}
|
||||
/* ── Transfer Manager ────────────────────────────────────────────────────────── */
|
||||
/* Nav badge — shows active+queued count beside the Transfers nav item */
|
||||
.nav-badge{margin-left:auto;background:var(--teal);color:#000;border-radius:12px;font-size:11px;font-weight:700;padding:1px 6px;line-height:1.6}
|
||||
/* Stats bar */
|
||||
.transfer-stats-bar{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}
|
||||
.tstat-group{display:flex;align-items:center;gap:8px;font-size:12px}
|
||||
.tstat-label{color:var(--text-dim)}
|
||||
.tstat-value{font-weight:700;color:var(--teal);min-width:24px}
|
||||
.tstat-concurrent{margin-left:auto}
|
||||
.concurrent-slider{-webkit-appearance:none;height:4px;width:90px;border-radius:8px;background:var(--surface3);accent-color:var(--teal);cursor:pointer}
|
||||
.concurrent-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--teal);cursor:pointer}
|
||||
/* Transfer list */
|
||||
#transfers-list{display:flex;flex-direction:column;gap:8px}
|
||||
/* Transfer item card */
|
||||
.transfer-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s}
|
||||
.transfer-item-active{border-color:var(--teal)}
|
||||
.transfer-item-error{border-color:var(--red)}
|
||||
.transfer-item-done{opacity:.5}
|
||||
.transfer-item-cancelled{opacity:.4}
|
||||
/* Header row */
|
||||
.transfer-item-header{display:flex;align-items:center;gap:10px;min-width:0}
|
||||
.transfer-label{flex:1;font-weight:600;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.transfer-type-badge{flex-shrink:0;font-size:11px;font-weight:700;padding:2px 7px;border-radius:8px;letter-spacing:.06em;text-transform:uppercase;background:rgba(3,218,198,.15);color:var(--teal)}
|
||||
.transfer-type-badge.type-download{background:rgba(var(--accent-rgb),.15);color:var(--accent)}
|
||||
.transfer-type-badge.type-pork{background:rgba(240,192,64,.15);color:var(--yellow)}
|
||||
.transfer-status-text{flex-shrink:0;font-size:12px;color:var(--text-dim)}
|
||||
/* Progress bar */
|
||||
.transfer-progress-wrap{display:flex;align-items:center;gap:8px;margin-bottom:4px}
|
||||
.transfer-progress-bar{flex:1;height:4px;background:var(--surface3);border-radius:8px;overflow:hidden}
|
||||
.transfer-progress-fill{height:100%;background:var(--teal);transition:width .3s linear}
|
||||
.transfer-item-error .transfer-progress-fill{background:var(--red)}
|
||||
.transfer-pct-label{flex-shrink:0;min-width:36px;text-align:right;font-size:11px;font-weight:600;color:var(--teal);font-variant-numeric:tabular-nums}
|
||||
/* Meta row */
|
||||
.transfer-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--text-dim)}
|
||||
.transfer-speed{color:var(--teal);font-weight:600;flex-shrink:0}
|
||||
.transfer-file{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:11px}
|
||||
.transfer-sizes{flex-shrink:0}
|
||||
.transfer-error{color:var(--red);font-size:12px}
|
||||
/* Cancel / action button inside card */
|
||||
.btn-cancel-transfer{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:16px;line-height:1;padding:0 4px;transition:color .15s;flex-shrink:0}
|
||||
.btn-cancel-transfer:hover{color:var(--red)}
|
||||
/* ── Payload Manager ──────────────────────────────────────────────────────── */
|
||||
.catalog-health-strip,.payload-catalog-stats{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;margin:0 0 14px}
|
||||
.catalog-health-strip > div,.payload-catalog-stats > div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px}
|
||||
.catalog-health-strip strong,.payload-catalog-stats strong{color:var(--teal);font-size:17px;line-height:1.15}
|
||||
.catalog-health-strip span,.payload-catalog-stats span{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
|
||||
.payload-catalog-stats{grid-template-columns:repeat(5,minmax(90px,1fr));margin-top:12px}
|
||||
.payload-catalog-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}
|
||||
.payload-catalog-toolbar .search-input{min-width:220px;flex:1}
|
||||
.payload-catalog-toolbar select{min-width:155px}
|
||||
.payload-source-meta{display:flex;align-items:center;gap:6px;margin-left:auto}
|
||||
.payload-trust-chip{font-size:11px;padding:2px 6px;border-radius:8px;text-transform:uppercase;letter-spacing:.05em}
|
||||
.payload-trust-official{color:var(--teal);background:rgba(3,218,198,.12)}
|
||||
.payload-trust-community{color:var(--yellow);background:rgba(240,192,64,.13)}
|
||||
.payload-trust-custom{color:var(--text-dim);background:rgba(255,255,255,.06)}
|
||||
.payload-source-description{margin:0 0 8px;font-size:11px;color:var(--text-dim)}
|
||||
.payload-asset-meta{color:var(--text-dim);font-size:11px;white-space:nowrap}
|
||||
.service-matrix-grid{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:8px;margin-top:12px}
|
||||
.service-matrix-item{padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}
|
||||
.service-matrix-head{display:flex;gap:8px;align-items:center;margin-bottom:5px}
|
||||
.service-matrix-dot{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 8px rgba(255,80,80,.35)}
|
||||
.service-matrix-item.online .service-matrix-dot{background:var(--teal);box-shadow:0 0 8px rgba(3,218,198,.5)}
|
||||
.service-matrix-name{font-weight:700;font-size:12px}
|
||||
.service-matrix-port{margin-left:auto;color:var(--text-dim);font:11px monospace}
|
||||
.service-matrix-item p{margin:0;color:var(--text-dim);font-size:11px;line-height:1.4}
|
||||
@media (max-width:850px){.catalog-health-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
.payload-catalog-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
.service-matrix-grid{grid-template-columns:1fr}
|
||||
}
|
||||
/* Settings:source list rows */
|
||||
.payload-settings-source-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px}
|
||||
.payload-settings-source-row:last-child{border-bottom:none}
|
||||
.payload-settings-source-name{font-weight:600;min-width:100px;flex-shrink:0}
|
||||
.payload-settings-source-url{flex:1;color:var(--text-dim);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
/* Jailbreak:update checker source block */
|
||||
.payload-source-check-list{margin-top:8px}
|
||||
.payload-check-source{padding:12px 0;border-bottom:1px solid var(--border)}
|
||||
.payload-check-source:last-child{border-bottom:none}
|
||||
.payload-check-source-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}
|
||||
.payload-check-source-name{font-weight:700;font-size:12px}
|
||||
.payload-tag-chip{font-size:11px;padding:2px 7px;border-radius:8px;background:rgba(3,218,198,.12);color:var(--teal);font-weight:600}
|
||||
/* Asset table inside update checker */
|
||||
.payload-asset-table{width:100%;border-collapse:collapse;font-size:12px}
|
||||
.payload-asset-table td{padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.04)}
|
||||
.payload-asset-table tr:last-child td{border-bottom:none}
|
||||
.payload-asset-name{font-family:monospace}
|
||||
.payload-hash-snippet{font-family:monospace;font-size:11px;color:var(--text-dim)}
|
||||
/* Extra badge variants */
|
||||
.badge-yellow{background:rgba(240,192,64,.2);color:var(--yellow)}
|
||||
.badge-dim{background:rgba(255,255,255,.06);color:var(--text-dim)}
|
||||
/* Local payload list */
|
||||
.payload-local-list,.payload-ps5-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}
|
||||
.payload-local-row,.payload-ps5-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface2);border-radius:8px;font-size:12px}
|
||||
.payload-row-name{flex:1;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.payload-row-size{color:var(--text-dim);min-width:56px;text-align:right;flex-shrink:0}
|
||||
.payload-row-actions{display:flex;gap:6px;flex-shrink:0}
|
||||
/* Local payload list — card style (reuses al-file-card items inside a bordered scroll box) */
|
||||
.payload-card-list{display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--border);border-radius:8px;max-height:300px;overflow-y:auto;margin-top:6px}
|
||||
.payload-card-list:empty{display:none}
|
||||
/* Extra elements inside payload al-file-cards */
|
||||
.payload-card-size{flex-shrink:0;font-size:11px;color:var(--text-dim);min-width:52px;text-align:right}
|
||||
.payload-card-actions{display:flex;gap:5px;flex-shrink:0;margin-left:4px}
|
||||
/* The push/delete buttons are very compact inside the card */
|
||||
.payload-local-card .btn,.payload-sender-card .btn{font-size:11px;padding:3px 8px}
|
||||
/* PS5 Payload Sender bar — port input + status */
|
||||
.payload-sender-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}
|
||||
.payload-sender-port-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim);white-space:nowrap}
|
||||
.payload-sender-port-input{width:72px;padding:4px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:12px;text-align:center}
|
||||
.payload-sender-status{flex:1;font-size:12px;transition:color .2s}
|
||||
/* Save-to-local button on autoloader file cards */
|
||||
.btn-al-save-local{background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);cursor:pointer;font-size:12px;line-height:1;padding:2px 5px;flex-shrink:0;transition:background .12s,color .12s,border-color .12s}
|
||||
.btn-al-save-local:hover{background:var(--surface3);color:var(--teal);border-color:var(--teal)}
|
||||
/* ── System View ──────────────────────────────────────────────────────────── */
|
||||
.sv-bar-label{font-size:12px;color:var(--text-dim);white-space:nowrap;flex-shrink:0}
|
||||
.sv-device-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px}
|
||||
.sv-viewer-wrap{position:relative;flex:1;min-height:300px;background:#000;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;display:flex;align-items:center;justify-content:center}
|
||||
#page-system-view.active{display:flex;flex-direction:column;gap:0}
|
||||
#page-system-view .page-header{margin-bottom:12px}
|
||||
/* ── Integrated service pages ───────────────────────────────────────────────── */
|
||||
#content.embed-page-active{overflow:auto}
|
||||
#page-savemgr.active{display:flex;min-height:min(720px,calc(100dvh - 205px));flex-direction:column;gap:0;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}
|
||||
body[data-chimera-route="protection/save-browser"] #page-savemgr .embed-page-title{display:none}
|
||||
.embed-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;flex-shrink:0;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--surface)}
|
||||
.embed-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
|
||||
.embed-page-title{font-size:14px;font-weight:600;color:var(--text);flex-shrink:0;margin-right:4px}
|
||||
.embed-empty-message{color:var(--text-dim);font-size:12px;text-align:center}
|
||||
/* Install accordion — sits between toolbar and iframe,collapsed by default */
|
||||
.install-accordion{flex-shrink:0;border-bottom:1px solid var(--border);background:var(--surface)}
|
||||
.install-accordion > summary{list-style:none;display:flex;align-items:center;gap:6px;padding:6px 16px;cursor:pointer;font-size:12px;color:var(--text-dim);user-select:none}
|
||||
.install-accordion > summary::-webkit-details-marker{display:none}
|
||||
.install-accordion > summary::before{content:'▶';font-size:11px;transition:transform .15s}
|
||||
.install-accordion[open] > summary::before{transform:rotate(90deg)}
|
||||
.install-accordion > summary:hover{color:var(--text)}
|
||||
.install-accordion-body{padding:12px 16px 14px;display:flex;flex-direction:column;gap:8px}
|
||||
.install-accordion-body p{font-size:12px;color:var(--text-dim);margin:0;line-height:1.5}
|
||||
#sv-video{width:100%;height:100%;max-height:70vh;object-fit:contain;display:block}
|
||||
/* In-app fullscreen — CSS-based,works in Electron's frameless window */
|
||||
.sv-viewer-wrap--fullscreen{position:fixed !important;inset:0 !important;z-index:9000 !important;border-radius:0 !important;min-height:0 !important}
|
||||
.sv-viewer-wrap--fullscreen #sv-video{max-height:100vh !important}
|
||||
.sv-viewer-wrap--fullscreen .sv-overlay-controls{opacity:1 !important;pointer-events:auto !important}
|
||||
/* Overlay controls — bottom-right,fade in on hover */
|
||||
.sv-overlay-controls{position:absolute;bottom:12px;right:12px;display:flex;gap:8px;opacity:0;transition:opacity .2s;pointer-events:none}
|
||||
.sv-viewer-wrap:hover .sv-overlay-controls{opacity:1;pointer-events:auto}
|
||||
.sv-overlay-btn{background:rgba(18,18,18,.85);border:1px solid #555;border-radius:8px;padding:6px 10px;font-size:16px;cursor:pointer;color:var(--text);transition:background .15s}
|
||||
.sv-overlay-btn:hover{background:rgba(50,50,50,.95)}
|
||||
/* No-signal placeholder */
|
||||
.sv-no-signal{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--text-dim);font-size:12px;pointer-events:none}
|
||||
.sv-no-signal.hidden{display:none}
|
||||
/* ── System View — Recording indicator ─────────────────────────────────────── */
|
||||
.sv-rec-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#ff5252;font-weight:500;flex-shrink:0}
|
||||
.sv-rec-dot{width:8px;height:8px;border-radius:50%;background:#ff5252;animation:sv-pulse 1s ease-in-out infinite;flex-shrink:0}
|
||||
@keyframes sv-pulse{0%,100%{opacity:1}
|
||||
50%{opacity:0.3}
|
||||
}
|
||||
/* ── System View — toolbar separator ───────────────────────────────────────── */
|
||||
.sv-tool-sep{width:1px;height:18px;background:var(--border);flex-shrink:0;margin:0 4px}
|
||||
/* ── System View — video recording buttons ──────────────────────────────────── */
|
||||
.btn-sv-vid-idle{border-color:#ff5252;color:#ff5252}
|
||||
.btn-sv-vid-idle:hover:not(:disabled){background:rgba(255,82,82,.12)}
|
||||
.btn-sv-vid-pause-btn{border-color:#ffb300;color:#ffb300}
|
||||
.btn-sv-vid-pause-btn:hover:not(:disabled){background:rgba(255,179,0,.12)}
|
||||
.btn-sv-vid-stop-btn{border-color:#4caf50;color:#4caf50}
|
||||
.btn-sv-vid-stop-btn:hover:not(:disabled){background:rgba(76,175,80,.12)}
|
||||
/* ── System View — video rec indicator ──────────────────────────────────────── */
|
||||
.sv-vid-rec-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#ff5252;font-weight:500;flex-shrink:0}
|
||||
.sv-vid-rec-status .sv-rec-dot{background:#ff5252}
|
||||
.sv-vid-rec-status.paused{color:#ffb300}
|
||||
.sv-vid-rec-status.paused .sv-rec-dot{background:#ffb300;animation-play-state:paused}
|
||||
.sv-vid-rec-size{font-size:11px;opacity:.75}
|
||||
/* ── System View — status bar ───────────────────────────────────────────────── */
|
||||
.sv-status-bar{display:flex;align-items:center;gap:8px;padding:4px 10px;background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);font-size:11px;color:var(--text-dim);flex-shrink:0}
|
||||
.sv-status-dot{width:7px;height:7px;border-radius:50%;background:#444;flex-shrink:0}
|
||||
.sv-status-dot.live{background:#4caf50;animation:sv-pulse 1.5s ease-in-out infinite}
|
||||
.sv-status-dot.saving{background:#ffb300;animation:sv-pulse .6s ease-in-out infinite}
|
||||
.sv-status-codec{margin-left:auto;font-family:monospace;font-size:11px;opacity:.55}
|
||||
/* ── System View — right-click context menu ─────────────────────────────────── */
|
||||
.sv-ctx-menu{position:fixed;z-index:9000;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 24px rgba(0,0,0,.7);padding:3px 0;min-width:150px}
|
||||
.sv-ctx-menu[hidden]{display:none}
|
||||
.sv-ctx-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 13px;font-size:12px;color:var(--text);background:none;border:none;cursor:pointer;text-align:left;white-space:nowrap}
|
||||
.sv-ctx-item:hover:not(:disabled){background:rgba(187,134,252,.12);color:var(--accent)}
|
||||
.sv-ctx-item:disabled{opacity:.35;cursor:default}
|
||||
.sv-ctx-sep{height:1px;background:var(--border);margin:3px 0}
|
||||
/* ── Destination picker ─────────────────────────────────────────────────────── */
|
||||
#dest-picker-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;z-index:8500}
|
||||
#dest-picker-overlay[hidden]{display:none}
|
||||
#dest-picker{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:440px;max-width:92vw;box-shadow:0 8px 40px rgba(0,0,0,.7);display:flex;flex-direction:column}
|
||||
.dest-picker-title{padding:18px 18px 10px;font-size:14px;font-weight:600;color:var(--text);border-bottom:1px solid var(--border)}
|
||||
.dest-picker-hint{padding:10px 18px 12px;font-size:12px;color:var(--text-dim);line-height:1.5}
|
||||
.dest-picker-option{display:flex;flex-direction:column;gap:3px;text-align:left;padding:12px 18px;background:none;border:none;border-top:1px solid var(--border);cursor:pointer;transition:background .15s;width:100%}
|
||||
.dest-picker-option:hover{background:rgba(var(--accent-rgb),.1)}
|
||||
.dest-opt-label{font-size:12px;font-weight:600;color:var(--text)}
|
||||
.dest-opt-path{font-size:11px;font-family:monospace;color:var(--text-dim)}
|
||||
.dest-picker-footer{padding:12px 18px;display:flex;justify-content:flex-end;border-top:1px solid var(--border)}
|
||||
/* ── Manage:install location display ───────────────────────────────────────── */
|
||||
.manage-install-loc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;margin-bottom:8px}
|
||||
.manage-loc-label{font-size:11px;color:var(--text-dim);flex-shrink:0}
|
||||
.manage-loc-path-wrap{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
|
||||
.manage-loc-path{font-size:11px;font-family:monospace;color:var(--teal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
/* ── Remote Game Locations (Settings) ──────────────────────────────────────── */
|
||||
.remote-path-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px}
|
||||
.remote-path-row:last-child{border-bottom:none}
|
||||
.remote-path-label{font-weight:600;min-width:120px;flex-shrink:0;color:var(--text)}
|
||||
.remote-path-value{flex:1;color:var(--text-dim);font-size:12px;font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
/* ── FTP Browser modal ──────────────────────────────────────────────────────── */
|
||||
#ftp-browser-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;z-index:8000}
|
||||
#ftp-browser-overlay[hidden]{display:none}
|
||||
#ftp-browser{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:520px;max-width:92vw;display:flex;flex-direction:column;max-height:70vh;box-shadow:0 8px 40px rgba(0,0,0,.7)}
|
||||
.ftp-browser-titlebar{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text)}
|
||||
.btn-icon-sm{background:none;border:none;color:var(--text-dim);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:8px;transition:background .15s,color .15s}
|
||||
.btn-icon-sm:hover{background:rgba(255,255,255,.1);color:var(--text)}
|
||||
.ftp-browser-pathbar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface2)}
|
||||
.ftp-browser-cwd{flex:1;font-family:monospace;font-size:12px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.ftp-browser-body{flex:1;overflow-y:auto;padding:4px 0;min-height:200px}
|
||||
.ftp-browser-loading{padding:24px 16px;text-align:center;color:var(--text-dim);font-size:12px}
|
||||
.ftp-browser-entry{display:flex;align-items:center;gap:10px;padding:7px 14px;font-size:12px;cursor:default;transition:background .1s}
|
||||
.ftp-entry-dir{cursor:pointer}
|
||||
.ftp-entry-dir:hover{background:rgba(255,255,255,.06)}
|
||||
.ftp-entry-file{color:var(--text-dim)}
|
||||
.ftp-entry-icon{font-size:16px;flex-shrink:0}
|
||||
.ftp-entry-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.ftp-browser-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--border)}
|
||||
/* ── Y2JB / Payload Manager settings modals ─────────────────────────────────── */
|
||||
.jb-settings-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;z-index:6000;padding:16px;backdrop-filter:blur(8px);overscroll-behavior:contain}
|
||||
.jb-settings-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:480px;max-width:100%;max-height:calc(100dvh - 32px);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 40px rgba(0,0,0,.7)}
|
||||
.jb-settings-modal.install-dialog{width:560px}
|
||||
.jb-settings-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}
|
||||
.jb-settings-header h3{font-size:14px;font-weight:600}
|
||||
.jb-settings-body{padding:16px 18px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;overscroll-behavior:contain}
|
||||
.jb-settings-footer{display:flex;gap:10px;padding:12px 18px;border-top:1px solid var(--border);justify-content:flex-end}
|
||||
.jb-settings-overlay .btn-icon-sm:focus-visible,.jb-settings-overlay .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
|
||||
@media (max-width:620px){.jb-settings-overlay{align-items:flex-end;padding:8px 8px 0}
|
||||
.jb-settings-modal{width:100%;max-height:calc(100dvh - 8px);border-radius:18px 18px 0 0}
|
||||
.jb-settings-header{position:sticky;top:0;z-index:2;background:var(--surface)}
|
||||
.jb-settings-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom));flex-wrap:wrap}
|
||||
.jb-settings-footer .btn{flex:1 1 9rem}
|
||||
.install-mode-tabs{overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
|
||||
.install-mode-tab{flex:0 0 auto}
|
||||
}
|
||||
/* ── System View mini-card (collapsible,embedded in Transfers / Jailbreak) ─── */
|
||||
.sv-mini-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:16px;overflow:hidden}
|
||||
.sv-mini-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;cursor:pointer;user-select:none;transition:background .15s}
|
||||
.sv-mini-header:hover{background:rgba(255,255,255,.04)}
|
||||
.sv-mini-title{font-size:12px;font-weight:600;color:var(--text-dim);display:flex;align-items:center;gap:8px}
|
||||
.sv-mini-chevron{font-size:11px;color:var(--text-dim);transition:transform .2s}
|
||||
.sv-mini-card.open .sv-mini-chevron{transform:rotate(180deg)}
|
||||
.sv-mini-body{display:none;padding:12px 16px 14px;border-top:1px solid var(--border);flex-direction:column;gap:10px}
|
||||
.sv-mini-card.open .sv-mini-body{display:flex}
|
||||
/* ── Media page ──────────────────────────────────────────────────────────── */
|
||||
#page-media.active{display:flex;flex-direction:column;gap:0}
|
||||
.media-save-bar{display:flex;align-items:center;gap:10px;padding:6px 0 14px}
|
||||
.media-save-label{font-size:12px;color:var(--text-dim);white-space:nowrap}
|
||||
.media-scan-status{font-size:12px;color:var(--text-dim);padding:4px 0 10px;display:flex;align-items:center;gap:8px}
|
||||
.media-scan-status::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;border:2px solid var(--accent);border-top-color:transparent;animation:spin .7s linear infinite;flex-shrink:0}
|
||||
/* Thumbnail batch progress bar */
|
||||
.media-thumb-status{font-size:11px;color:var(--text-dim);padding:2px 0 8px;display:flex;align-items:center;gap:8px}
|
||||
.media-thumb-status::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;border:2px solid var(--accent);border-top-color:transparent;animation:spin .7s linear infinite;flex-shrink:0}
|
||||
/* Per-card label shown during download/decode */
|
||||
.thumb-label{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:11px;color:rgba(255,255,255,.55);pointer-events:none;z-index:2;letter-spacing:.3px}
|
||||
/* Retry button on failed cards */
|
||||
.btn-thumb-retry{font-size:11px;padding:2px 8px;border-radius:12px;background:rgba(207,102,121,.18);border:1px solid var(--red);color:var(--red);cursor:pointer;margin-bottom:4px;width:100%}
|
||||
@keyframes spin{to{transform:rotate(360deg)}
|
||||
}
|
||||
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;overflow-y:auto}
|
||||
.media-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s;cursor:pointer}
|
||||
.media-card:hover{border-color:var(--accent)}
|
||||
.media-card[data-type="clip"]{cursor:default}
|
||||
.media-card[data-type="clip"]:hover{border-color:var(--border)}
|
||||
/* ── Thumbnail area ── */
|
||||
.media-card-thumb{height:120px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
|
||||
.media-card-thumb.type-screenshot{background:#0a0a0a}
|
||||
.media-card-thumb.type-clip{background:rgba(187,134,252,.06)}
|
||||
.media-thumb-wrap{padding:0}
|
||||
/* Actual screenshot image */
|
||||
.media-thumb-img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:0;transition:opacity .25s}
|
||||
.media-thumb-img.thumb-loaded{opacity:1}
|
||||
/* Spinner shown while thumb is loading */
|
||||
.thumb-spin{width:20px;height:20px;border-radius:50%;border:2px solid var(--accent);border-top-color:transparent;animation:spin .7s linear infinite;flex-shrink:0;z-index:1}
|
||||
/* Error state */
|
||||
.media-card-thumb.thumb-error::after{content:'!';font-size:22px;color:var(--red);opacity:.6}
|
||||
/* Video clip — play icon overlay on top of the thumbnail */
|
||||
.clip-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;/* let card click-through */
|
||||
opacity:0;transition:opacity .15s}
|
||||
.media-card:hover .clip-play-overlay{opacity:1}
|
||||
/* Always visible on clip cards (static WEBM badge,no thumbnail) */
|
||||
.type-clip .clip-play-overlay{opacity:1}
|
||||
/* WEBM type badge in top-right corner of clip cards */
|
||||
.clip-type-badge{position:absolute;top:6px;right:6px;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;background:rgba(0,0,0,.5);color:rgba(255,255,255,.7);padding:2px 6px;border-radius:8px;pointer-events:none;z-index:3}
|
||||
/* ── Card body ── */
|
||||
.media-card-body{padding:9px 11px;display:flex;flex-direction:column;gap:5px;flex:1}
|
||||
.media-card-game{display:flex;align-items:center;gap:6px}
|
||||
.media-card-game-icon{width:22px;height:22px;border-radius:8px;object-fit:cover;flex-shrink:0}
|
||||
.media-card-game-icon-empty{width:22px;height:22px;border-radius:8px;flex-shrink:0;background:var(--surface2);border:1px solid var(--border)}
|
||||
.media-card-game-id{font-size:11px;font-weight:700;color:var(--accent)}
|
||||
.media-card-filename{font-size:11px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.media-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}
|
||||
.media-cache-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;padding:12px 14px;background:rgba(34,199,232,.055);border:1px solid rgba(34,199,232,.2);border-radius:12px}
|
||||
.media-cache-panel > div:first-child{display:grid;gap:3px}
|
||||
.media-cache-panel span,.media-card-provenance{color:var(--text-dim);font:11px/1.4 var(--mono)}
|
||||
.media-cache-actions,.media-card-provenance{display:flex;align-items:center;gap:8px}
|
||||
.media-card-provenance{justify-content:space-between;min-width:0}
|
||||
.media-card-provenance span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.btn-cache-pin{flex:none;padding:2px 6px;color:var(--teal);background:transparent;border:1px solid rgba(34,199,232,.25);border-radius:8px;font:700 11px/1.4 var(--mono);cursor:pointer}
|
||||
@media (max-width:680px){.media-cache-panel{align-items:stretch;flex-direction:column}
|
||||
.media-cache-actions{display:grid;grid-template-columns:1fr 1fr}
|
||||
}
|
||||
.media-import-panel{display:grid;grid-template-columns:minmax(180px,1fr) repeat(3,minmax(120px,auto)) auto;gap:9px;align-items:center;margin-bottom:12px;padding:14px;background:var(--surface2);border:1px solid var(--border-soft);border-radius:12px}
|
||||
.media-import-panel > div{display:grid;gap:3px}
|
||||
.media-import-panel > div span,#media-import-status{color:var(--text-dim);font-size:11px}
|
||||
.media-import-panel input[type=file]{grid-column:1/4}
|
||||
.media-imported-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:14px}
|
||||
.media-imported-card{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;min-height:84px;padding:9px;background:var(--surface2);border:1px solid var(--border-soft);border-radius:12px}
|
||||
.media-imported-card img,.media-imported-card video{width:84px;height:84px;object-fit:cover;background:#08070a;border-radius:8px}
|
||||
.media-imported-card > div{display:flex;min-width:0;flex-direction:column;gap:6px;align-items:flex-start}
|
||||
.media-imported-card span{max-width:100%;overflow:hidden;color:var(--text-dim);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
|
||||
@media (max-width:900px){.media-import-panel{grid-template-columns:1fr 1fr}
|
||||
.media-import-panel > div,.media-import-panel input[type=file]{grid-column:1/-1}
|
||||
}
|
||||
.settings-identity-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0;overflow:hidden;background:var(--border-soft);border:1px solid var(--border-soft);border-radius:12px}
|
||||
.settings-identity-grid > div{min-width:0;padding:12px;background:var(--surface2)}
|
||||
.settings-identity-grid dt{color:var(--text-muted);font:700 11px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase}
|
||||
.settings-identity-grid dd{margin:5px 0 0;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}
|
||||
.settings-identity-guidance{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:12px;padding:12px 14px;background:rgba(34,199,232,.055);border:1px solid rgba(34,199,232,.18);border-radius:12px}
|
||||
.settings-identity-guidance p{margin:3px 0 0;color:var(--text-dim);font-size:11px}
|
||||
@media (max-width:900px){.settings-identity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
}
|
||||
@media (max-width:560px){.settings-identity-grid{grid-template-columns:1fr}
|
||||
.settings-identity-guidance{align-items:stretch;flex-direction:column}
|
||||
}
|
||||
.media-card-size{font-size:11px;color:var(--text-dim)}
|
||||
.media-card-date{font-size:11px;color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums}
|
||||
.media-card-actions{padding-top:6px;display:flex;gap:6px;flex-wrap:wrap}
|
||||
/* ── Media Lightbox ── */
|
||||
.media-lightbox{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center}
|
||||
.media-lightbox[hidden]{display:none}
|
||||
.media-lightbox-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.88);cursor:pointer}
|
||||
.media-lightbox-frame{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:calc(100vw - 60px);max-height:calc(100vh - 60px);padding:16px}
|
||||
.media-lightbox-close{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:background .15s}
|
||||
.media-lightbox-close:hover{background:var(--red);color:#fff}
|
||||
.media-lightbox-meta{font-size:12px;color:var(--text-dim);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:600px}
|
||||
.media-lightbox-img{max-width:100%;max-height:calc(100vh - 140px);border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.6);object-fit:contain}
|
||||
.media-lightbox-spinner{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-dim);font-size:12px;padding:40px}
|
||||
.lightbox-spin-ring{width:36px;height:36px;border-radius:50%;border:3px solid var(--accent);border-top-color:transparent;animation:spin .7s linear infinite}
|
||||
.media-lightbox-footer{display:flex;gap:8px}
|
||||
body.lightbox-open{overflow:hidden}
|
||||
/* Discord share button on media cards */
|
||||
.btn-media-share{background:#4f56c7;border:none;color:#fff;font-size:11px;padding:4px 9px;border-radius:var(--radius);cursor:pointer;white-space:nowrap;transition:background .15s,opacity .15s}
|
||||
.btn-media-share:hover{background:#5865F2}
|
||||
.btn-media-share:disabled{opacity:.55;cursor:default}
|
||||
/* Catbox upload progress fill — slides a translucent bar across the button */
|
||||
.btn-media-share.uploading{position:relative;overflow:hidden;transition:none}
|
||||
.btn-media-share.uploading::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--upload-pct,0%);background:rgba(255,255,255,.22);transition:width .35s linear;pointer-events:none;border-radius:inherit}
|
||||
/* Integrations card sections */
|
||||
.integration-section{padding:4px 0}
|
||||
.integration-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}
|
||||
/* ── Cheats page ─────────────────────────────────────────────────────────── */
|
||||
#page-cheats.active{display:flex;flex-direction:column;gap:0}
|
||||
.cheats-stats-bar{display:flex;align-items:center;gap:16px;padding:8px 2px;font-size:12px;color:var(--text-dim);margin-bottom:10px}
|
||||
/* Download progress panel */
|
||||
.cheats-progress-bar-wrap{height:6px;background:#1a1a1a;border-radius:8px;overflow:hidden;margin:10px 0 8px}
|
||||
.cheats-progress-bar{height:100%;background:var(--accent);border-radius:8px;transition:width .3s ease}
|
||||
.cheats-dl-stats{display:flex;gap:18px;font-size:12px;color:var(--text-dim);flex-wrap:wrap}
|
||||
.cheats-dl-stats span{white-space:nowrap}
|
||||
#cheats-dl-pct{color:var(--accent);font-weight:600}
|
||||
#cheats-dl-saved{color:var(--green)}
|
||||
#cheats-dl-failed{color:var(--red)}
|
||||
#cheats-dl-eta{color:var(--text)}
|
||||
.cheats-dl-current{margin-top:6px;font-size:11px;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
/* Cheat cards grid */
|
||||
.cheats-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
|
||||
.cheat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;cursor:pointer;transition:border-color .15s}
|
||||
.cheat-card:hover{border-color:var(--accent)}
|
||||
.cheat-card-header{display:flex;align-items:center;gap:10px}
|
||||
.cheat-card-icon{width:40px;height:40px;border-radius:8px;object-fit:cover;flex-shrink:0}
|
||||
.cheat-card-icon-empty{width:40px;height:40px;border-radius:8px;flex-shrink:0;background:var(--surface2);border:1px solid var(--border)}
|
||||
.cheat-card-info{display:flex;flex-direction:column;gap:3px;min-width:0}
|
||||
.cheat-card-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
|
||||
.cheat-card-id{font-size:11px;font-weight:700;color:var(--accent);background:rgba(var(--accent-rgb),.1);border-radius:8px;padding:2px 6px;white-space:nowrap;flex-shrink:0;margin-top:2px}
|
||||
.cheat-card-title{font-size:12px;font-weight:600;color:var(--text);line-height:1.3}
|
||||
.cheat-card-meta{font-size:11px;color:var(--text-dim);display:flex;gap:10px}
|
||||
.cheat-card-files{color:var(--text-dim)}
|
||||
.cheat-card-body{display:none;margin-top:10px;border-top:1px solid var(--border);padding-top:10px}
|
||||
.cheat-card.open .cheat-card-body{display:block}
|
||||
/* Individual cheat file block inside a card */
|
||||
.cheat-file-block{margin-bottom:10px}
|
||||
.cheat-file-block:last-child{margin-bottom:0}
|
||||
.cheat-file-ver{font-size:11px;font-weight:600;color:var(--text-dim);margin-bottom:6px;display:flex;align-items:center;gap:6px}
|
||||
.cheat-file-ver code{font-size:11px;background:#1a1a1a;border-radius:8px;padding:1px 5px;color:var(--text)}
|
||||
.cheat-mod-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text);padding:3px 0;border-bottom:1px solid var(--border)}
|
||||
.cheat-mod-row:last-child{border-bottom:none}
|
||||
.cheat-mod-name{flex:1}
|
||||
.cheat-mod-type{font-size:11px;color:var(--text-dim);background:var(--surface2);border-radius:8px;padding:1px 5px}
|
||||
/* Modal cheats panel */
|
||||
#mpanel-cheats{padding:4px 0}
|
||||
.modal-cheat-fetch{display:flex;align-items:center;gap:12px;padding:16px;color:var(--text-dim);font-size:12px}
|
||||
.cheat-mod-list{list-style:none;padding:0;margin:0}
|
||||
.cheat-mod-list li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:12px;color:var(--text)}
|
||||
.cheat-mod-list li:last-child{border-bottom:none}
|
||||
/* Cheat count badge in games table */
|
||||
.cheat-count-badge{display:inline-block;background:rgba(var(--accent-rgb),.15);color:var(--accent);border-radius:8px;font-size:11px;font-weight:600;padding:1px 7px}
|
||||
/* Unmatched cheats section */
|
||||
#cheats-unmatched-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
|
||||
.cheats-unmatched-summary{padding:10px 14px;cursor:pointer;font-size:12px;font-weight:600;color:var(--text);list-style:none;display:flex;align-items:center;gap:6px;user-select:none}
|
||||
.cheats-unmatched-summary::-webkit-details-marker{display:none}
|
||||
.cheats-unmatched-summary::before{content:'▶';font-size:11px;color:var(--text-dim);transition:transform .15s;display:inline-block}
|
||||
#cheats-unmatched-section[open] .cheats-unmatched-summary::before{transform:rotate(90deg)}
|
||||
.cheats-unmatched-list{padding:4px 10px 10px;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border)}
|
||||
.cheat-unmatched-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:8px 10px;background:var(--bg);border-radius:8px;border:1px solid var(--border)}
|
||||
.cheat-unmatched-info{display:flex;flex-direction:column;gap:2px;min-width:0}
|
||||
.cheat-unmatched-title{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.cheat-unmatched-file{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.cheat-unmatched-assign{display:flex;gap:6px;align-items:center;flex-shrink:0}
|
||||
.cheat-unmatched-assign input{width:110px;padding:4px 8px;font-size:12px;font-family:var(--mono);background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);text-transform:uppercase}
|
||||
.cheat-unmatched-assign input:focus{outline:none;border-color:var(--accent)}
|
||||
.cheat-unmatched-assign input.input-error{border-color:var(--red);animation:shake .2s ease}
|
||||
@keyframes shake{0%,100%{transform:translateX(0)}
|
||||
25%{transform:translateX(-4px)}
|
||||
75%{transform:translateX(4px)}
|
||||
}
|
||||
/* FTP install panel */
|
||||
.cheats-ftp-instructions{padding:4px 0 6px}
|
||||
.cheats-ftp-instructions ol{padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-dim);line-height:1.5}
|
||||
.cheats-ftp-instructions code{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1px 5px;font-size:12px;color:var(--accent)}
|
||||
/* ── Dashboard pinned cards ────────────────────────────────────────────────── */
|
||||
/* ── Operations Center ─────────────────────────────────────────────────────── */
|
||||
.nav-section-label{padding:13px 16px 5px;color:var(--text-dim);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;opacity:.72;user-select:none}
|
||||
.operations-header,.operations-header-actions,.operations-card-header,.operations-inline-actions,.operations-task-main,.operations-task,.operations-run,.operations-service,.operations-check,.operations-recovery-item,.operations-audit-row{display:flex;align-items:center}
|
||||
.operations-header{justify-content:space-between;gap:20px}
|
||||
.operations-header-actions,.operations-inline-actions{gap:8px;flex-wrap:wrap}
|
||||
.operations-health{border:1px solid var(--border);border-radius:999px;padding:6px 10px;color:var(--text-dim);font-size:11px;font-weight:700;background:var(--surface)}
|
||||
.operations-health.healthy{color:#8ee9b4;border-color:rgba(78,207,132,.35);background:rgba(78,207,132,.08)}
|
||||
.operations-health.warning{color:#ffd17a;border-color:rgba(255,182,72,.38);background:rgba(255,182,72,.08)}
|
||||
.operations-tabs{display:flex;gap:4px;overflow-x:auto;margin:0 0 16px;padding:4px;border:1px solid var(--border);border-radius:12px;background:rgba(0,0,0,.15)}
|
||||
.operations-tab{flex:0 0 auto;border:0;border-radius:8px;padding:9px 13px;color:var(--text-dim);background:transparent;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
|
||||
.operations-tab:hover{color:var(--text);background:rgba(255,255,255,.04)}
|
||||
.operations-tab.active{color:#fff;background:rgba(var(--accent-rgb),.26);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.38)}
|
||||
.operations-panel{animation:operations-in .16s ease}
|
||||
@keyframes operations-in{from{opacity:0;transform:translateY(3px)}
|
||||
to{opacity:1;transform:none}
|
||||
}
|
||||
.operations-card-header{justify-content:space-between;gap:14px}
|
||||
.operations-card-header h3{margin-bottom:3px}
|
||||
.operations-task-list,.operations-run-list,.operations-recovery-list{display:flex;flex-direction:column;gap:8px}
|
||||
.operations-task{display:grid;grid-template-columns:minmax(240px,1fr) auto auto auto auto;gap:10px;padding:10px;border:1px solid var(--border);border-radius:8px;background:rgba(0,0,0,.13)}
|
||||
.operations-task-main{gap:10px;min-width:0}
|
||||
.operations-task-main > div,.operations-service > div,.operations-check > div,.operations-recovery-info{display:flex;flex-direction:column;gap:3px;min-width:0}
|
||||
.operations-task-main span,.operations-service span,.operations-check span,.operations-recovery-info span{color:var(--text-dim);font-size:11px}
|
||||
.operations-task-indicator,.operations-service-dot{width:9px;height:9px;flex:0 0 auto;border-radius:50%;background:#68636e;box-shadow:0 0 0 3px rgba(104,99,110,.13)}
|
||||
.operations-task-indicator.enabled,.operations-service-dot.online{background:#4ecf84;box-shadow:0 0 0 3px rgba(78,207,132,.14)}
|
||||
.operations-task-indicator.running{background:#d6a7ff;box-shadow:0 0 0 3px rgba(var(--accent-rgb),.2);animation:operations-pulse 1s infinite alternate}
|
||||
@keyframes operations-pulse{to{opacity:.45}
|
||||
}
|
||||
.operations-switch,.operations-interval{display:flex;align-items:center;gap:5px;color:var(--text-dim);font-size:11px}
|
||||
.operations-switch{flex-direction:row}
|
||||
.operations-interval input{width:78px}
|
||||
.operations-run{display:grid;grid-template-columns:minmax(190px,1fr) 92px 70px minmax(120px,1.2fr);gap:10px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:11px;color:var(--text-dim)}
|
||||
.operations-run > div{display:flex;flex-direction:column;gap:2px}
|
||||
.operations-run-message{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.operations-status{display:inline-flex;width:max-content;align-items:center;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800}
|
||||
.operations-status-completed,.operations-status-compatible{background:rgba(78,207,132,.12);color:#8ee9b4}
|
||||
.operations-status-failed,.operations-status-warning{background:rgba(255,116,116,.12);color:#ffadad}
|
||||
.operations-status-running{background:rgba(var(--accent-rgb),.18);color:#d6a7ff}
|
||||
.operations-status-unknown{background:rgba(255,255,255,.06);color:var(--text-dim)}
|
||||
.operations-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:9px;margin:12px 0}
|
||||
.operations-metric{padding:12px;border:1px solid var(--border);border-radius:8px;background:rgba(0,0,0,.14)}
|
||||
.operations-metric strong{display:block;color:var(--text);font-size:18px;overflow-wrap:anywhere}
|
||||
.operations-metric span{display:block;margin-top:3px;color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
|
||||
.operations-audit-section{margin-top:10px;padding:10px;border:1px solid var(--border);border-radius:8px}
|
||||
.operations-audit-section h4{margin:0 0 8px}
|
||||
.operations-audit-section summary{cursor:pointer;font-weight:700}
|
||||
.operations-audit-section summary span{float:right;color:var(--text-dim)}
|
||||
.operations-audit-row{justify-content:space-between;align-items:flex-start;gap:12px;padding:7px 0;border-bottom:1px solid var(--border);font-size:11px}
|
||||
.operations-audit-row:last-child{border-bottom:0}
|
||||
.operations-audit-row code{max-width:70%;overflow-wrap:anywhere;color:var(--text-dim)}
|
||||
.operations-empty-ok,.operations-empty{padding:18px;border:1px dashed rgba(78,207,132,.35);border-radius:8px;color:#8ee9b4;text-align:center}
|
||||
.operations-empty{display:flex;min-height:96px;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--text);border-color:var(--border)}
|
||||
.operations-empty span{color:var(--text-dim);font-size:11px}
|
||||
.operations-recovery-item{gap:12px;padding:11px;border:1px solid var(--border);border-radius:8px;background:rgba(0,0,0,.12)}
|
||||
.operations-recovery-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;color:#d6a7ff;background:rgba(var(--accent-rgb),.13);font-size:20px}
|
||||
.operations-recovery-info{flex:1}
|
||||
.operations-recovery-info code{color:var(--text-dim);font-size:11px}
|
||||
.operations-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
|
||||
body[data-chimera-route="protection/replication"] #operations-replication-card{grid-column:1/-1}
|
||||
.operations-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
.operations-field{display:flex;flex-direction:column;gap:5px;margin:10px 0;color:var(--text-dim);font-size:11px}
|
||||
.operations-field textarea,.operations-code-editor{resize:vertical}
|
||||
.operations-check{justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
|
||||
.operations-source-note{margin-top:12px}
|
||||
.operations-warning-card{border-color:rgba(255,182,72,.35);background:rgba(255,182,72,.07);color:#ffd17a;line-height:1.5}
|
||||
.operations-code-editor,.operations-log{width:100%;font-family:var(--mono);font-size:11px;line-height:1.55}
|
||||
.operations-log{box-sizing:border-box;max-height:430px;overflow:auto;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:8px;background:#111015;color:#d9d5df;white-space:pre-wrap;overflow-wrap:anywhere}
|
||||
.operations-service{gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
|
||||
.operations-service > div{flex:1}
|
||||
.operations-service b{color:var(--text-dim);font-size:11px}
|
||||
@media (max-width:1080px){.operations-task{grid-template-columns:minmax(220px,1fr) auto auto}
|
||||
.operations-task-save,.operations-task-run{grid-row:2}
|
||||
.operations-two-column{grid-template-columns:1fr}
|
||||
}
|
||||
@media (max-width:720px){.nav-section-label{padding-left:13px}
|
||||
.operations-header{align-items:flex-start;flex-direction:column}
|
||||
.operations-task{display:flex;align-items:stretch;flex-direction:column}
|
||||
.operations-run{grid-template-columns:1fr auto}
|
||||
.operations-run-message{grid-column:1 / -1}
|
||||
.operations-recovery-item{align-items:flex-start;flex-wrap:wrap}
|
||||
.operations-recovery-info{flex-basis:calc(100% - 50px)}
|
||||
.operations-recovery-item .operations-inline-actions{width:100%}
|
||||
.operations-profile-grid{grid-template-columns:1fr}
|
||||
}
|
||||
.payload-observability{margin:14px 0;display:grid;gap:12px}
|
||||
.payload-observability-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
|
||||
.payload-observability-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
|
||||
.payload-observability-panel{min-width:0;padding:12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--card) 88%,transparent)}
|
||||
.card-header.compact{margin-bottom:8px}
|
||||
.card-header.compact h4{margin:0}
|
||||
.payload-process-list{display:grid;gap:5px;max-height:250px;margin-top:10px;overflow:auto}
|
||||
.payload-process-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 9px;border:1px solid var(--border);border-radius:8px}
|
||||
.payload-process-row div{min-width:0}
|
||||
.payload-process-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.payload-process-row span{color:var(--text-dim);font-size:11px}
|
||||
.payload-process-row b{white-space:nowrap;font-size:12px}
|
||||
.payload-native-launch-heading{margin:14px 0 0}
|
||||
.payload-log-output{box-sizing:border-box;width:100%;min-height:160px;max-height:280px;margin:0;padding:10px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:#080b10;color:#c9d5e6;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}
|
||||
@media (max-width:760px){.payload-observability-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
.payload-observability-columns{grid-template-columns:1fr}
|
||||
}
|
||||
.shadowmount-entry code{display:block;margin-top:5px;overflow-wrap:anywhere;white-space:pre-wrap}
|
||||
.shadowmount-entry small,.operations-detail-row.has-warning small{display:block;margin-top:5px;color:var(--warning,#f4bf5f)}
|
||||
.transfer-policy-card{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}
|
||||
.transfer-policy-card>div{flex:1 1 320px}
|
||||
.transfer-policy-card>div strong,.transfer-policy-card>div span{display:block}
|
||||
.transfer-policy-card label{display:inline-flex;align-items:center;gap:5px}
|
||||
.transfer-policy-card input{width:110px}
|
||||
@@ -0,0 +1 @@
|
||||
.game-card-cover-case{position:absolute;inset:9px;z-index:2;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(145deg,rgba(26,20,35,.98),rgba(11,9,15,.98));border:1px solid rgba(255,255,255,.17);border-radius:8px;box-shadow:0 15px 36px rgba(0,0,0,.48)}.game-card-cover-case.has-native-cover{inset:0;border:0;border-radius:inherit;background:#0e0b12;box-shadow:none}.game-card-cover-case.has-native-cover .game-card-cover{position:absolute;inset:0;display:block;width:100%;height:100%;flex:1 1 auto;margin:0;padding:0;object-fit:cover;object-position:center;border:0;border-radius:0;box-shadow:none;filter:none}.game-card:has(.game-card-cover-case.has-native-cover) .game-card-art{aspect-ratio:var(--game-cover-ratio,2 / 3)}.game-card-cover-platform{flex:0 0 auto;padding:6px 10px 5px;color:#fff;background:linear-gradient(90deg,#006fcd,#2b8fe5);font:700 11px/1 Space Grotesk,Inter,sans-serif;letter-spacing:.13em}.game-card-cover-case > .game-card-cover:not(.game-card-cover-empty){position:relative;width:calc(100% - 16px);height:auto;aspect-ratio:1;margin:8px;object-fit:contain;border-radius:8px;box-shadow:0 7px 18px rgba(0,0,0,.34)}.game-card-cover-case.has-native-cover > .game-card-cover:not(.game-card-cover-empty){position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;margin:0;padding:0;object-fit:cover;object-position:center;border:0;border-radius:0;box-shadow:none;filter:none}.game-card-cover-caption{display:flex;flex:1;min-height:0;flex-direction:column;justify-content:center;gap:4px;padding:7px 9px 9px;background:linear-gradient(180deg,rgba(16,12,21,.55),rgba(16,12,21,.98))}.game-card-cover-caption strong{display:-webkit-box;overflow:hidden;color:#fff;font:700 12px/1.16 Space Grotesk,Inter,sans-serif;-webkit-box-orient:vertical;-webkit-line-clamp:2}.game-card-cover-caption small{color:rgba(255,255,255,.58);font:600 11px/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em}.game-card-cover-backdrop{position:absolute;inset:-12px;z-index:0;width:calc(100% + 24px);height:calc(100% + 24px);object-fit:cover;filter:blur(12px) saturate(.9) brightness(.43);transform:scale(1.08)}.game-card-art:has(.game-card-cover-backdrop)::after{position:absolute;inset:0;z-index:1;content:"";background:linear-gradient(180deg,rgba(12,9,16,.08),rgba(12,9,16,.42))}.game-card-art .game-card-sync{z-index:4}.game-row-icon.is-portrait{width:32px;height:44px;border-radius:8px;object-fit:cover;box-shadow:0 5px 12px rgba(0,0,0,.32)}@media (prefers-reduced-motion:no-preference){.game-card:hover .game-card-cover-case.has-native-cover .game-card-cover{transform:scale(1.025)}.game-card-cover-case.has-native-cover .game-card-cover{transition:transform 240ms cubic-bezier(.2,.8,.2,1)}}
|
||||
@@ -0,0 +1,12 @@
|
||||
.chimera-import-launcher{position:fixed;right:22px;bottom:22px;z-index:1150;display:flex;align-items:center;gap:9px;padding:11px 17px;color:#0b1110;font:700 12px/1.2 "Space Grotesk",sans-serif;background:linear-gradient(135deg,var(--teal),#8df3d8);border:0;border-radius:999px;box-shadow:0 12px 32px rgba(3,218,198,.22);cursor:pointer}
|
||||
.chimera-import-launcher:focus-visible,.import-wizard button:focus-visible,.import-wizard input:focus-visible,.import-wizard select:focus-visible,.import-wizard textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
|
||||
.import-wizard-overlay{position:fixed;inset:0;z-index:4200;display:grid;place-items:center;padding:24px;background:rgba(5,7,9,.82);backdrop-filter:blur(8px)}
|
||||
.import-wizard-overlay[hidden]{display:none}.import-wizard{width:min(980px,100%);max-height:min(820px,94vh);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;color:var(--text);background:linear-gradient(155deg,#181d20,#0e1114 62%);border:1px solid rgba(141,243,216,.22);border-radius:16px;box-shadow:0 32px 90px rgba(0,0,0,.62)}
|
||||
.import-wizard-head{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px 17px;border-bottom:1px solid var(--border)}.import-wizard-head h2{margin:3px 0 4px;font:700 24px/1.1 "Space Grotesk",sans-serif}.import-wizard-kicker{color:var(--teal);font:700 11px/1.2 monospace;letter-spacing:.16em;text-transform:uppercase}.import-wizard-head p{margin:0;color:var(--text-dim);font-size:12px}.import-wizard-close{width:36px;height:36px;color:var(--text);font-size:20px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;cursor:pointer}
|
||||
.import-wizard-steps{display:grid;grid-template-columns:repeat(5,1fr);padding:0 20px;border-bottom:1px solid var(--border)}.import-wizard-step{position:relative;padding:14px 7px;color:var(--text-dim);font-size:11px;text-align:center;border:0;border-bottom:2px solid transparent;background:none}.import-wizard-step::before{display:block;width:23px;height:23px;margin:0 auto 5px;line-height:23px;content:attr(data-number);background:var(--surface3);border-radius:50%}.import-wizard-step.active{color:var(--teal);border-color:var(--teal)}.import-wizard-step.complete::before{color:#07100e;background:var(--teal)}
|
||||
.import-wizard-body{min-height:360px;padding:24px;overflow:auto}.import-wizard-drop{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:22px;background:radial-gradient(circle at 20% 10%,rgba(3,218,198,.12),transparent 52%),var(--surface2);border:1px dashed rgba(141,243,216,.35);border-radius:16px}.import-wizard-drop p{grid-column:1/-1;margin:0;color:var(--text-dim);line-height:1.55}.import-wizard-choice{padding:18px;color:var(--text);font-weight:700;background:#171f21;border:1px solid var(--border);border-radius:12px;cursor:pointer}.import-wizard-choice:hover{border-color:var(--teal)}
|
||||
.import-wizard-resumes,.import-wizard-components{display:grid;gap:9px;margin-top:18px}.import-wizard-resume,.import-wizard-component{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:11px 13px;background:var(--surface2);border:1px solid var(--border);border-radius:12px}.import-wizard-resume small,.import-wizard-component small{display:block;color:var(--text-dim)}.import-wizard-component-controls{display:flex;gap:5px}.import-wizard-component-controls button{min-width:32px}.import-wizard-progress{height:9px;margin:16px 0 7px;overflow:hidden;background:#090b0d;border-radius:99px}.import-wizard-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--accent));transition:width .18s}.import-wizard-status{min-height:20px;margin-top:12px;color:var(--text-dim);font-size:12px}.import-wizard-status.error{color:var(--red)}
|
||||
.import-wizard-issues{display:grid;gap:8px;padding:0;list-style:none}.import-wizard-issues li{padding:10px 12px;color:#ffd9c9;background:rgba(255,92,57,.1);border-left:3px solid #ff713f}.import-wizard-field{display:grid;gap:7px;margin-top:16px;color:var(--text-dim);font-size:12px}.import-wizard-field textarea,.import-wizard-field select{width:100%;padding:11px;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:12px}.import-wizard-field textarea{min-height:95px;resize:vertical}.import-wizard-attach{display:flex;align-items:center;gap:9px}.import-wizard-preview{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.import-wizard-preview div{padding:13px;background:var(--surface2);border-radius:12px}.import-wizard-preview span,.import-wizard-preview strong{display:block}.import-wizard-preview span{margin-bottom:5px;color:var(--text-dim);font-size:11px}.import-wizard-preview strong{overflow-wrap:anywhere}
|
||||
.import-wizard-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid var(--border)}.import-wizard-footer-actions{display:flex;gap:8px}.import-wizard-footer button{padding:9px 14px}.import-wizard-confirm{display:flex;align-items:flex-start;gap:9px;max-width:500px;color:var(--text-dim);font-size:12px}.import-wizard-empty{padding:26px;color:var(--text-dim);text-align:center;border:1px dashed var(--border);border-radius:12px}
|
||||
@media(max-width:640px){.chimera-import-launcher{right:14px;bottom:76px}.import-wizard-overlay{padding:0}.import-wizard{width:100%;height:100%;max-height:none;border-radius:0}.import-wizard-head{padding:17px}.import-wizard-head h2{font-size:20px}.import-wizard-steps{padding:0 5px}.import-wizard-step{font-size:0}.import-wizard-step::before{font-size:11px}.import-wizard-body{padding:16px}.import-wizard-drop,.import-wizard-preview{grid-template-columns:1fr}.import-wizard-drop p{grid-column:auto}.import-wizard-footer{align-items:stretch;flex-direction:column;padding:12px 16px}.import-wizard-footer-actions{justify-content:flex-end}.import-wizard-confirm{max-width:none}}
|
||||
@media(prefers-reduced-motion:reduce){.import-wizard-progress span{transition:none}}
|
||||
@@ -0,0 +1 @@
|
||||
.install-destination-picker{display:grid;gap:9px;margin:12px 0;}.install-destination-picker select{width:100%;}.install-destination-status{border:1px solid var(--border);border-radius:12px;display:grid;gap:3px;padding:10px 12px;}.install-destination-status strong{font-size:12px;}.install-destination-status span{color:var(--text-dim);font-size:11px;}.install-destination-status.is-eligible{background:rgba(36,137,88,.11);border-color:rgba(114,214,162,.35);}.install-destination-status.is-ineligible{background:rgba(169,108,21,.11);border-color:rgba(240,190,99,.35);}.install-expert-destination{border-top:1px solid var(--border);margin-top:12px;padding-top:9px;}.install-expert-destination summary{color:var(--text-dim);cursor:pointer;font-size:11px;}.install-expert-destination[open] summary{color:#f0be63;margin-bottom:8px;}
|
||||
@@ -0,0 +1 @@
|
||||
.chimera-companion-dock{display:none}@media(max-width:700px){:root{--companion-dock-h:68px;--companion-gutter:14px}body,html{overscroll-behavior:none;background:radial-gradient(circle at 82% -5%,rgba(118,81,230,.22),transparent 24rem),#0d0a11}body.web-mode{--titlebar-h:0px}body.web-mode #titlebar{display:none}#statusbar{display:none}#app{bottom:calc(var(--companion-dock-h) + env(safe-area-inset-bottom))}#content{gap:14px;padding:0 var(--companion-gutter) 24px;scroll-padding-top:72px;overscroll-behavior-y:contain}#chimera-shell-toolbar{top:0;z-index:1500;min-height:58px;margin:0 calc(var(--companion-gutter) * -1);padding:8px var(--companion-gutter);gap:8px;background:linear-gradient(180deg,rgba(14,10,18,.98),rgba(14,10,18,.93)),radial-gradient(circle at 70% 0,rgba(118,81,230,.18),transparent 18rem);border-bottom:1px solid rgba(203,186,255,.12);box-shadow:0 10px 28px rgba(0,0,0,.26);backdrop-filter:blur(18px)}#mobile-nav-toggle,#chimera-command-open{width:42px;min-width:42px;flex:0 0 42px;min-height:42px;justify-content:center;padding:0;color:var(--text);background:rgba(255,255,255,.035);border:1px solid rgba(244,238,251,.11);border-radius:12px}#mobile-nav-toggle{display:inline-grid;place-items:center;font-size:21px}body.mobile-nav-open #mobile-nav-toggle{position:fixed;top:max(14px,env(safe-area-inset-top));left:calc(min(350px,92vw) - 56px);z-index:2400;background:rgba(25,18,32,.96);border-color:rgba(203,186,255,.24);box-shadow:0 10px 24px rgba(0,0,0,.34);pointer-events:auto}body.mobile-nav-open #chimera-shell-toolbar{z-index:2350;pointer-events:none;background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none}body.mobile-nav-open #chimera-shell-toolbar>:not(#mobile-nav-toggle){visibility:hidden}#chimera-command-open::before{content:"⌕";font:500 25px/1 var(--display)}#chimera-command-open>span,#chimera-command-open>kbd,#chimera-jobs-open,.chimera-toolbar-spacer{display:none}.chimera-shell-health{min-width:0;min-height:42px;flex:1;justify-content:flex-start;gap:9px;padding:7px 11px;background:rgba(255,255,255,.025);border:1px solid rgba(244,238,251,.09);border-radius:12px}.chimera-shell-health-copy{min-width:0}.chimera-shell-health-copy small{display:none}.chimera-shell-health-copy strong{overflow:hidden;font:700 11px/1.25 var(--mono);letter-spacing:.055em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}#chimera-route-header{min-height:0;gap:10px;padding:18px 2px 16px;border-bottom:1px solid rgba(244,238,251,.09)}#chimera-breadcrumbs{min-height:16px;margin-bottom:7px;color:var(--teal);font-size:11px;letter-spacing:.13em}#chimera-breadcrumbs button{color:var(--teal)}#chimera-route-title{font-size:clamp(28px,9vw,36px);line-height:.98;letter-spacing:-.045em}#chimera-route-description{display:-webkit-box;max-width:34rem;margin-top:9px;overflow:hidden;color:var(--text-dim);font-size:12px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.chimera-route-actions{width:100%;min-height:0;align-items:center;justify-content:flex-start}#chimera-route-refresh{width:42px;min-width:42px;min-height:42px;margin-left:auto;padding:0;border-radius:12px;font-size:0}#chimera-route-refresh::first-letter{font-size:18px}.chimera-route-risk,.chimera-route-availability{max-width:calc(100% - 52px);padding:7px 10px;border-radius:12px;font-size:11px}.page{gap:14px}.card{gap:13px;padding:16px;border-color:rgba(203,186,255,.12);border-radius:16px;box-shadow:0 12px 30px rgba(0,0,0,.14)}.card-header{min-width:0;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.card-header h2,.card-header h3{font-size:17px}.form-row,.form-grid{display:grid;grid-template-columns:1fr;align-items:stretch;gap:12px}.form-row>label,.form-grid>label,.form-row input,.form-row select,.form-row textarea,.form-grid input,.form-grid select,.form-grid textarea{width:100%!important;min-width:0;max-width:none}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{min-height:46px;font-size:16px}.btn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.btn-row>.btn{min-width:0;min-height:46px;white-space:normal}.btn-row>.btn:only-child{grid-column:1/-1}.hint{line-height:1.55}#sidebar{top:0;bottom:0;width:min(350px,92vw);padding:0 0 calc(18px + env(safe-area-inset-bottom));background:radial-gradient(circle at 0 0,rgba(118,81,230,.19),transparent 18rem),#100c15;border-right:1px solid rgba(203,186,255,.18);z-index:2300;box-shadow:28px 0 80px rgba(0,0,0,.66)}#sidebar-scrim{inset:0;z-index:2250;background:rgba(4,3,6,.76);backdrop-filter:blur(5px)}.sidebar-brand{position:sticky;top:0;z-index:2;min-height:76px;padding:14px 18px;background:linear-gradient(180deg,rgba(16,12,21,.98),rgba(16,12,21,.92));border-bottom:1px solid rgba(244,238,251,.08)}.sidebar-brand .brand-icon{width:36px;height:36px}.sidebar-brand-copy strong{font-size:18px}.sidebar-brand-copy small{font-size:11px}.chimera-nav-root{padding:10px 9px 16px;overflow-y:auto;scrollbar-width:thin}.chimera-domaLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
:root{--sidebar-w:252px}body:not(.chimera-shell-v2) #sidebar .nav-list{visibility:hidden}body.chimera-shell-v2{--chimera-shell-surface:rgba(17, 18, 22, .92)}body.chimera-modal-open{overflow:hidden}body.chimera-shell-v2 #chimera-route-header,body.chimera-shell-v2 .page.active{width:min(100%,1680px);margin-inline:auto}body[data-density=compact] .page{gap:12px}body[data-density=compact] .card{gap:10px;padding:14px}body[data-density=compact] .stat-card{padding:14px}body[data-density=compact] .chimera-domain-button{min-height:36px;padding-block:6px}body[data-density=compact] .chimera-route-link{min-height:29px;padding-block:5px}.chimera-nav-root{min-height:0;overflow-x:hidden;overflow-y:auto;padding:4px 8px 12px;scrollbar-width:thin}.chimera-nav-root::-webkit-scrollbar{width:5px}.chimera-nav-root::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}.chimera-domain{list-style:none;margin:2px 0}.chimera-domain-button{width:100%;min-height:42px;display:flex;align-items:center;gap:11px;padding:9px 10px;color:var(--text-dim);background:0 0;border:1px solid transparent;border-radius:8px;text-decoration:none;font:inherit;font-size:12px;font-weight:650;text-align:left;cursor:pointer;transition:color .16s,background .16s,border-color .16s}.chimera-domain-button svg{width:18px;height:18px;flex:0 0 auto}.chimera-domain-button>span:nth-child(2){flex:1}.chimera-domain-button:focus-visible,.chimera-domain-button:hover{color:var(--text);background:rgba(255,255,255,.055)}.chimera-domain-button.active,.chimera-domain.active>.chimera-domain-button{color:var(--accent);background:rgba(var(--accent-rgb),.09);border-color:rgba(var(--accent-rgb),.16)}.chimera-domain-chevron{flex:0 0 auto!important;font-size:20px;line-height:1;transition:transform .18s}.chimera-domain.expanded .chimera-domain-chevron{transform:rotate(90deg)}.chimera-domain-routes{list-style:none;margin:3px 0 7px 18px;padding:2px 0 2px 12px;border-left:1px solid var(--border)}.chimera-route-link{min-height:33px;display:flex;align-items:center;gap:8px;padding:7px 9px;color:var(--text-dim);border-radius:8px;text-decoration:none;font-size:12px;transition:color .14s,background .14s}.chimera-route-link>span:first-child{flex:1;min-width:0}.chimera-route-link:focus-visible,.chimera-route-link:hover{color:var(--text);background:rgba(255,255,255,.05)}.chimera-route-link.active{color:var(--accent);background:rgba(var(--accent-rgb),.11);font-weight:650}.chimera-risk-dot{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;color:var(--yellow);border:1px solid currentColor;font-size:11px;font-weight:800}.chimera-expert-route{display:none}.chimera-expert-mode .chimera-expert-route,.chimera-expert-route.active{display:flex}.chimera-expert-toggle{list-style:none;margin:10px 2px 2px;padding-top:10px;border-top:1px solid var(--border)}.chimera-expert-toggle label{min-height:42px;display:flex;flex-direction:row;align-items:center;gap:10px;padding:7px 8px;color:var(--text-dim);cursor:pointer}.chimera-expert-toggle input{width:34px;height:19px;flex:0 0 34px;position:relative;appearance:none;margin:0;padding:0;background:rgba(255,255,255,.08);border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:background .16s,border-color .16s}.chimera-expert-toggle input::before{content:"";position:absolute;width:13px;height:13px;top:2px;left:2px;background:var(--text-dim);border-radius:50%;transition:transform .16s,background .16s}.chimera-expert-toggle input:checked{background:rgba(var(--accent-rgb),.28);border-color:rgba(var(--accent-rgb),.7)}.chimera-expert-toggle input:checked::before{background:var(--accent);transform:translateX(15px)}.chimera-expert-toggle label:hover input{border-color:rgba(var(--accent-rgb),.6)}.chimera-expert-toggle small,.chimera-expert-toggle strong{display:block}.chimera-expert-toggle strong{color:var(--text);font-size:11px}.chimera-expert-toggle small{margin-top:2px;font-size:11px}#chimera-shell-toolbar{position:sticky;top:-24px;z-index:1200;display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:38px;margin:-24px -24px 0;padding:8px 24px;background:linear-gradient(180deg,rgba(11,12,15,.98),rgba(11,12,15,.88));border-bottom:1px solid rgba(255,255,255,.055);backdrop-filter:blur(16px)}.chimera-toolbar-button{min-height:30px;display:inline-flex;align-items:center;gap:8px;padding:5px 9px;color:var(--text-dim);background:rgba(255,255,255,.035);border:1px solid var(--border);border-radius:8px;font:inherit;font-size:11px;cursor:pointer}.chimera-toolbar-button:focus-visible,.chimera-toolbar-button:hover{color:var(--text);border-color:rgba(var(--accent-rgb),.45)}.chimera-command-dialog kbd,.chimera-toolbar-button kbd{min-width:21px;padding:2px 5px;color:var(--text-dim);background:rgba(255,255,255,.055);border:1px solid var(--border);border-bottom-color:rgba(255,255,255,.24);border-radius:8px;font:11px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;text-align:center}.chimera-jobs-pulse{width:7pxLine truncated
|
||||
@@ -0,0 +1,6 @@
|
||||
.package-library-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;background:linear-gradient(120deg,var(--surface),color-mix(in srgb,var(--accent) 8%,var(--surface)))}
|
||||
.package-library-toolbar label{min-width:min(520px,100%)}.package-library-toolbar input{width:100%}.package-library-stats{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-muted)}
|
||||
.package-library-list{display:grid;gap:16px}.package-library-set{border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}.package-library-set>header{display:flex;justify-content:space-between;gap:20px;padding:18px 20px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent)}
|
||||
.package-library-set h3,.package-library-set h4{margin:0}.package-library-set header span,.package-library-set header small{display:block;color:var(--text-muted)}.package-library-set header>div:last-child{text-align:right}.package-library-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr);gap:20px;padding:20px}
|
||||
.package-component-list,.package-recipe-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.package-component-list li,.package-recipe-list li{display:flex;justify-content:space-between;gap:16px;padding:11px 12px;border:1px solid var(--border);border-radius:12px}.package-component-list li>div:last-child{text-align:right}.package-component-list span,.package-recipe-list span{display:block;color:var(--text-muted);font-size:var(--fs-micro)}.package-component-list code{display:block;max-width:30ch;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-micro)}.package-library-empty{color:var(--text-muted)}
|
||||
@media(max-width:760px){.package-library-toolbar,.package-library-set>header{align-items:stretch;flex-direction:column}.package-library-set header>div:last-child{text-align:left}.package-library-columns{grid-template-columns:1fr;padding:14px}.package-component-list li{flex-direction:column}.package-component-list li>div:last-child{text-align:left}.package-component-list code{max-width:100%}}
|
||||
@@ -0,0 +1,603 @@
|
||||
.page-subtitle{font-size:12px;color:var(--text-dim);margin-top:3px;font-weight:400}
|
||||
.dash-pinned-section{display:flex;flex-direction:column;gap:8px}
|
||||
.dash-pinned-header{display:flex;align-items:center;gap:10px}
|
||||
.dash-pinned-label{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.07em}
|
||||
.dash-pinned-grid{display:flex;flex-wrap:wrap;gap:10px}
|
||||
.dash-pinned-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;min-width:170px;flex:1 1 170px;max-width:260px;display:flex;flex-direction:column;gap:5px;cursor:pointer;transition:border-color .15s,background .15s}
|
||||
.dash-pinned-tile:hover{border-color:var(--accent);background:var(--surface2)}
|
||||
.dash-pinned-tile-title{font-size:12px;font-weight:600;color:var(--text)}
|
||||
.dash-pinned-tile-page{font-size:11px;color:var(--accent);font-weight:500}
|
||||
.dash-pinned-tile-hint{font-size:11px;color:var(--text-dim);line-height:1.45;flex:1}
|
||||
.dash-pinned-tile-open{margin-top:8px;align-self:flex-start;font-size:12px}
|
||||
.dash-pinned-empty{font-size:12px;color:var(--text-dim);padding:4px 0}
|
||||
/* Pin toggle button — appears in card-headers and header-tools */
|
||||
.btn-pin{background:none;border:none;cursor:pointer;padding:2px 5px;font-size:14px;line-height:1;filter:grayscale(1) opacity(.38);transition:filter .15s;flex-shrink:0}
|
||||
.btn-pin:hover{filter:grayscale(.4) opacity(.8)}
|
||||
.btn-pin.pinned{filter:none}
|
||||
/* ── PS5 Autoloader ─────────────────────────────────────────────────────────── */
|
||||
.autoloader-path-hint{font-weight:400;text-transform:none;font-size:11px;color:var(--text-dim);margin-left:6px;font-family:var(--mono,monospace)}
|
||||
.autoloader-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
|
||||
.autoloader-status-text{font-size:12px;color:var(--text-dim)}
|
||||
.autoloader-layout{display:grid;grid-template-columns:240px 1fr;gap:14px}
|
||||
@media (max-width:680px){.autoloader-layout{grid-template-columns:1fr}
|
||||
}
|
||||
.autoloader-col-header{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
|
||||
/* Available files column */
|
||||
.autoloader-file-list{background:var(--bg);border:1px solid var(--border);border-radius:8px;max-height:360px;overflow-y:auto}
|
||||
.al-file-card{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;user-select:none}
|
||||
.al-file-card:last-child{border-bottom:none}
|
||||
.al-file-card:hover{background:var(--surface3)}
|
||||
.al-file-name{flex:1;font-size:12px;font-family:var(--mono,monospace);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.al-file-add{font-size:12px;color:var(--text-dim);flex-shrink:0;transition:color .12s}
|
||||
.al-file-card:hover .al-file-add{color:var(--teal)}
|
||||
/* Sequence editor column */
|
||||
.autoloader-sequence{background:var(--bg);border:1px solid var(--border);border-radius:8px;max-height:360px;overflow-y:auto}
|
||||
.autoloader-seq-footer{margin-top:8px}
|
||||
/* Empty state */
|
||||
.al-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px;gap:6px;color:var(--text-dim);text-align:center}
|
||||
.al-empty-icon{font-size:26px;opacity:.45}
|
||||
.al-empty-hint{font-size:12px;margin:0}
|
||||
/* Sequence rows */
|
||||
.al-row{display:flex;align-items:flex-start;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border);transition:background .12s}
|
||||
.al-row:last-child{border-bottom:none}
|
||||
.al-row.al-dragging{opacity:.4}
|
||||
.al-row.al-drag-over{background:rgba(0,180,160,.10);border-top:2px solid var(--teal)}
|
||||
.al-payload{background:transparent}
|
||||
.al-delay{background:rgba(187,134,252,.05)}
|
||||
/* Drag handle */
|
||||
.al-grip{cursor:grab;color:var(--text-dim);font-size:12px;padding:2px 2px 0;flex-shrink:0;opacity:.5;align-self:center}
|
||||
.al-grip:active{cursor:grabbing}
|
||||
/* Extension badge */
|
||||
.al-ext{font-size:11px;font-weight:700;letter-spacing:.04em;padding:2px 5px;border-radius:8px;flex-shrink:0;text-transform:uppercase;align-self:center;background:var(--surface3);color:var(--text-dim)}
|
||||
.al-ext-elf{background:rgba(0,180,160,.18);color:var(--teal)}
|
||||
.al-ext-bin{background:rgba(255,167,38,.18);color:#ffa726}
|
||||
.al-ext-js{background:rgba(255,214,0,.15);color:#e6c200}
|
||||
/* Payload filename */
|
||||
.al-name{flex:1;font-size:12px;font-family:var(--mono,monospace);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-self:center;min-width:0}
|
||||
/* Insert delay after (payload row) */
|
||||
.al-ins-delay{background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);cursor:pointer;font-size:11px;padding:2px 5px;line-height:1.4;flex-shrink:0;transition:background .12s,color .12s,border-color .12s;align-self:center;white-space:nowrap}
|
||||
.al-ins-delay:hover{background:var(--surface3);color:var(--teal);border-color:var(--teal)}
|
||||
/* Delete button */
|
||||
.al-del{background:none;border:1px solid transparent;border-radius:8px;color:var(--text-dim);cursor:pointer;font-size:11px;padding:2px 5px;line-height:1.4;flex-shrink:0;transition:background .12s,color .12s,border-color .12s;align-self:center}
|
||||
.al-del:hover{background:rgba(207,102,121,.15);color:var(--red);border-color:var(--red)}
|
||||
/* Delay row body */
|
||||
.al-delay-clock{font-size:14px;flex-shrink:0;align-self:flex-start;padding-top:3px}
|
||||
.al-delay-body{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
|
||||
.al-delay-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
|
||||
.al-delay-lbl{font-size:11px;color:var(--text-dim);flex-shrink:0}
|
||||
.al-delay-num{width:64px;padding:2px 6px;font-size:12px;text-align:right;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);outline:none;flex-shrink:0}
|
||||
.al-delay-num:focus{border-color:var(--accent)}
|
||||
.al-delay-ms{font-size:11px;color:var(--text-dim);flex-shrink:0}
|
||||
.al-delay-secs{font-size:11px;color:var(--teal);flex-shrink:0;font-style:italic}
|
||||
/* Preset buttons */
|
||||
.al-presets{display:flex;gap:4px;flex-wrap:wrap}
|
||||
.al-preset{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text-dim);cursor:pointer;font-size:11px;padding:2px 6px;line-height:1.4;transition:background .12s,color .12s,border-color .12s;flex-shrink:0}
|
||||
.al-preset:hover{background:var(--surface3);color:var(--text)}
|
||||
.al-preset-active{background:var(--teal);border-color:var(--teal);color:#fff}
|
||||
.al-preset-active:hover{background:var(--teal);color:#fff}
|
||||
/* Range slider */
|
||||
.al-slider{width:100%;accent-color:var(--teal);cursor:pointer}
|
||||
/* ── Autoloader Snapshots ─────────────────────────────────────────────────────────────── */
|
||||
.snapshot-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
|
||||
.snapshot-list{display:flex;flex-direction:column;gap:0}
|
||||
.snapshot-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-bottom:1px solid var(--border)}
|
||||
.snapshot-card:last-child{border-bottom:none}
|
||||
.snapshot-card:hover{background:var(--surface3);border-radius:8px}
|
||||
.snapshot-card-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
|
||||
.snapshot-card-label{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.snapshot-card-meta{font-size:11px;color:var(--text-dim)}
|
||||
.snapshot-card-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
|
||||
.btn-snap-delete{color:var(--text-dim);border-color:transparent}
|
||||
.btn-snap-delete:hover{color:var(--red);border-color:var(--red);background:transparent}
|
||||
/* ── PS Avatar ─────────────────────────────────────────────────────────────── */
|
||||
.xavatar-drop-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:36px 24px;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;transition:border-color .15s,background .15s;color:var(--text-dim);text-align:center}
|
||||
.xavatar-drop-zone:hover,.xavatar-drop-zone--over{border-color:var(--teal);background:rgba(0,180,160,.06)}
|
||||
.xavatar-drop-zone--has-image{border-style:solid;border-color:var(--teal)}
|
||||
.xavatar-drop-icon{color:var(--text-dim);flex-shrink:0}
|
||||
.xavatar-drop-label{font-size:12px;margin:0}
|
||||
.xavatar-preview{display:block;margin:16px auto 0;max-width:220px;max-height:220px;border-radius:var(--radius);border:1px solid var(--border);image-rendering:pixelated}
|
||||
.xavatar-conv-progress{margin-top:12px;height:22px;background:var(--bg2);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}
|
||||
.xavatar-conv-progress[hidden]{display:none}
|
||||
.xavatar-conv-bar{height:100%;min-width:2em;background:var(--teal);color:#fff;font-size:11px;font-weight:600;line-height:22px;padding:0 8px;border-radius:var(--radius);transition:width .35s ease;white-space:nowrap;overflow:hidden}
|
||||
.xavatar-actions{display:flex;align-items:center;gap:14px;margin-top:14px}
|
||||
.xavatar-status{font-size:12px;color:var(--text-dim)}
|
||||
.link-btn{background:none;border:none;color:var(--teal);cursor:pointer;padding:0;font-size:inherit;text-decoration:underline}
|
||||
/* ── XAvatar library ───────────────────────────────────────────────────────── */
|
||||
.xavatar-lapy-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;background:color-mix(in srgb,var(--teal) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--teal) 35%,var(--border));border-radius:var(--radius);padding:13px 14px;font-size:12px;color:var(--text);margin-bottom:12px}
|
||||
.xavatar-lapy-notice > div:first-child{display:flex;min-width:0;flex-direction:column;gap:4px}
|
||||
.xavatar-lapy-notice span,.xavatar-lapy-notice small{color:var(--text-dim);overflow-wrap:anywhere}
|
||||
.xavatar-companion-actions{display:flex;flex:none;align-items:center;gap:10px}
|
||||
.xavatar-lapy-notice a{color:var(--accent);text-decoration:none;cursor:pointer}
|
||||
.xavatar-lapy-notice a:hover{color:#fff}
|
||||
@media (max-width:700px){.xavatar-lapy-notice{align-items:stretch;flex-direction:column}
|
||||
.xavatar-companion-actions{justify-content:space-between}
|
||||
}
|
||||
/* Card grid */
|
||||
.xavatar-lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;padding:12px 14px}
|
||||
.xavatar-lib-card{display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius);padding:8px 6px;cursor:pointer;transition:border-color .15s,background .15s;position:relative}
|
||||
.xavatar-lib-card:hover{border-color:var(--teal);background:rgba(0,180,160,.05)}
|
||||
/* Thumbnail wrapper */
|
||||
.xavatar-thumb-wrap{position:relative;width:80px;height:80px;flex-shrink:0;border-radius:calc(var(--radius) - 2px);overflow:hidden;background:var(--bg2);display:flex;align-items:center;justify-content:center}
|
||||
.xavatar-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s}
|
||||
.xavatar-thumb-loaded .xavatar-thumb{opacity:1}
|
||||
.xavatar-thumb-placeholder{font-size:32px;color:var(--text-dim);pointer-events:none}
|
||||
.xavatar-thumb-loaded .xavatar-thumb-placeholder{display:none}
|
||||
.xavatar-thumb-error .xavatar-thumb-placeholder{display:none}
|
||||
.xavatar-thumb-error .xavatar-thumb-wrap::after{content:'?';position:absolute;font-size:28px;color:var(--text-dim)}
|
||||
/* Card info */
|
||||
.xavatar-lib-card-info{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;overflow:hidden}
|
||||
.xavatar-lib-card-name{font-size:11px;font-family:var(--mono,monospace);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}
|
||||
.xavatar-lib-card-size{font-size:11px;color:var(--text-dim)}
|
||||
/* Card action buttons row */
|
||||
.xavatar-lib-card-actions{display:flex;gap:4px;margin-top:2px}
|
||||
.btn-xs{font-size:11px;padding:2px 7px;line-height:1.4}
|
||||
/* ── XAvatar full-size modal ─────────────────────────────────────────────── */
|
||||
.xavatar-modal-box{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:500px;width:90vw;pointer-events:auto;max-height:calc(100dvh - 32px);overflow:auto}
|
||||
.xavatar-modal-img{width:280px;height:280px;object-fit:contain;border-radius:var(--radius);background:var(--bg2);border:1px solid var(--border);image-rendering:pixelated}
|
||||
.xavatar-modal-name{font-size:12px;font-family:var(--mono,monospace);color:var(--text-dim);text-align:center;word-break:break-all;margin:0}
|
||||
.xavatar-modal-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
|
||||
#xavatar-thumb-modal[hidden]{display:none !important}
|
||||
#xavatar-thumb-modal{padding:16px;backdrop-filter:blur(8px)}
|
||||
#xavatar-thumb-modal .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
|
||||
@media (max-width:560px){.xavatar-modal-box{width:100%;padding:16px}
|
||||
.xavatar-modal-img{width:min(280px,72vw);height:min(280px,72vw)}
|
||||
.xavatar-modal-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
|
||||
.xavatar-modal-actions .btn{min-width:0}
|
||||
}
|
||||
/* ── Game Conversion ─────────────────────────────────────────────────────── */
|
||||
/* Extra badge colour */
|
||||
.badge-blue{background:rgba(64,156,255,.2);color:#64b0ff;border-radius:8px;padding:2px 6px;font-size:11px;font-weight:600}
|
||||
/* OS-restriction badge (shown inside button labels) */
|
||||
.badge-os{display:inline-block;background:rgba(240,192,64,.18);color:var(--yellow);border-radius:8px;padding:1px 4px;font-size:11px;font-weight:700;vertical-align:middle;margin-left:3px}
|
||||
/* ── Settings:radio mode-card selector ── */
|
||||
.radio-card{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface2);cursor:pointer;min-width:140px;transition:border-color .15s,background .15s}
|
||||
.radio-card:hover{border-color:var(--accent-d)}
|
||||
.radio-card input[type="radio"]{display:none}
|
||||
.radio-card-title{font-size:12px;font-weight:700;color:var(--text)}
|
||||
.radio-card-desc{font-size:11px;color:var(--text-dim)}
|
||||
.radio-card:has(input:checked){border-color:var(--accent);background:rgba(var(--accent-rgb),.08)}
|
||||
.radio-card:has(input:checked) .radio-card-title{color:var(--accent)}
|
||||
/* ── Settings:conv mode sections ── */
|
||||
.conv-mode-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
|
||||
#conv-shared-fields{margin-top:12px}
|
||||
/* ── Small toggle row (for psnotify checkboxes) ── */
|
||||
.toggle-row-sm{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12px;color:var(--text-dim);cursor:pointer;margin-top:4px}
|
||||
.toggle-row-sm input[type="checkbox"]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}
|
||||
.conv-psn-checkboxes{display:flex;flex-wrap:wrap;gap:0 18px;padding:8px 0 4px 8px}
|
||||
/* Row-style labels must override the global vertical form-label layout. */
|
||||
.ecosystem-check{flex-direction:row}
|
||||
/* ── Conversion Queue Panel (shown on Games page) ── */
|
||||
.conv-queue-panel{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}
|
||||
.conv-queue-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface3);border-bottom:1px solid var(--border);flex-wrap:wrap}
|
||||
.conv-queue-title{font-size:12px;font-weight:700;color:var(--text-dim);white-space:nowrap}
|
||||
.conv-queue-spacer{flex:1}
|
||||
.conv-mode-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:rgba(187,134,252,.12);color:var(--accent);font-size:11px;font-weight:700;white-space:nowrap}
|
||||
.conv-queue-body{}
|
||||
.conv-queue-list{}
|
||||
.conv-queue-empty{padding:12px 16px;font-size:12px;color:var(--text-dim);text-align:center}
|
||||
/* ── Individual conv job row ── */
|
||||
.conv-job-row{padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px}
|
||||
.conv-job-row:last-child{border-bottom:none}
|
||||
.conv-job-summary{display:flex;align-items:center;gap:10px}
|
||||
.conv-log-box{margin:5px 0 0;padding:5px 8px;background:var(--surface3);border-radius:8px;font-family:var(--mono,monospace);font-size:10.5px;color:var(--text-dim);white-space:pre-wrap;word-break:break-all;max-height:160px;overflow-y:auto}
|
||||
.conv-job-error{margin-top:4px;color:var(--red,#e05);font-size:11px;word-break:break-word;white-space:pre-wrap}
|
||||
.conv-job-id{color:var(--text-dim);min-width:28px;font-family:var(--mono,monospace)}
|
||||
.conv-job-game{font-weight:600;color:var(--text);min-width:100px}
|
||||
.conv-job-mode{color:var(--accent);min-width:50px;font-size:11px}
|
||||
.conv-job-phase{flex:1;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.conv-job-bar-wrap{width:80px;height:6px;background:var(--surface3);border-radius:8px;overflow:hidden;flex-shrink:0}
|
||||
.conv-job-bar{height:100%;background:var(--accent);border-radius:8px;transition:width .3s}
|
||||
.conv-job-bar.conv-bar-done{background:var(--green)}
|
||||
.conv-job-bar.conv-bar-error{background:var(--red)}
|
||||
.conv-job-bar.conv-bar-running{background:var(--teal)}
|
||||
.conv-job-status{min-width:60px;text-align:right;font-size:11px}
|
||||
.conv-status-queued{color:var(--text-dim)}
|
||||
.conv-status-running{color:var(--teal)}
|
||||
.conv-status-done{color:var(--green)}
|
||||
.conv-status-error{color:var(--red)}
|
||||
.conv-status-cancelled{color:var(--text-dim)}
|
||||
.conv-job-actions{display:flex;gap:4px;flex-shrink:0}
|
||||
@media (max-width:560px){.conv-queue-header{align-items:stretch}
|
||||
.conv-queue-spacer{display:none}
|
||||
.conv-queue-header > .btn{flex:1 1 calc(50% - 4px);min-width:0;white-space:normal}
|
||||
.conv-mode-switcher{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
|
||||
.conv-job-summary{flex-wrap:wrap}
|
||||
.conv-job-phase{min-width:140px}
|
||||
}
|
||||
/* ── Install modal:mode tabs ── */
|
||||
.install-mode-tab{border-radius:8px;font-size:11px;padding:4px 10px;border:1.5px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s}
|
||||
.install-mode-tab:hover{border-color:var(--accent-d);color:var(--text)}
|
||||
.install-mode-tab.active{border-color:var(--accent);background:rgba(var(--accent-rgb),.1);color:var(--accent);font-weight:600}
|
||||
.install-mode-section{}
|
||||
/* ── Conversion queue panel — mode switcher & warning ────────────────────── */
|
||||
.conv-mode-switcher{display:flex;align-items:center;gap:6px;padding:6px 12px 2px;border-bottom:1px solid var(--border);flex-wrap:wrap}
|
||||
.conv-mode-switcher-label{font-size:11px;color:var(--text-muted);margin-right:2px;text-transform:uppercase;letter-spacing:.04em}
|
||||
.conv-mode-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:16px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}
|
||||
.conv-mode-btn:hover{border-color:var(--accent);color:var(--text)}
|
||||
.conv-mode-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
|
||||
.conv-mode-warn{display:flex;align-items:center;gap:10px;padding:7px 12px;background:rgba(255,140,0,.1);border-bottom:1px solid rgba(255,140,0,.3);font-size:12px;color:#ff8c00;flex-wrap:wrap}
|
||||
.conv-mode-warn .btn{flex-shrink:0;padding:2px 10px;font-size:11px;border-color:#ff8c00;color:#ff8c00}
|
||||
.conv-mode-warn .btn:hover{background:rgba(255,140,0,.2)}
|
||||
/* ── GarlicSaves ─────────────────────────────────────────────────────────── */
|
||||
.garlic-progress-area{display:flex;flex-direction:column;gap:6px;margin:10px 0 4px}
|
||||
.garlic-progress-step{font-size:12px;color:var(--text-dim)}
|
||||
.garlic-progress-bar-wrap{height:4px;border-radius:8px;background:var(--border);overflow:hidden}
|
||||
.garlic-progress-bar{height:100%;border-radius:8px;background:var(--accent);transition:width .25s ease}
|
||||
.garlic-config-pre{background:var(--bg-elevated,var(--surface2));border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:12px;font-family:monospace;margin:8px 0 0;white-space:pre-wrap;word-break:break-all;color:var(--text);line-height:1.6}
|
||||
.garlic-tips{padding-left:20px;margin:4px 0 0;display:flex;flex-direction:column;gap:7px}
|
||||
.garlic-tips li{font-size:12px;color:var(--text);line-height:1.5}
|
||||
.garlic-link{color:var(--accent);text-decoration:none}
|
||||
.garlic-link:hover{text-decoration:underline}
|
||||
.garlic-confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:9100}
|
||||
.garlic-confirm-overlay[hidden]{display:none}
|
||||
.garlic-confirm-dialog{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px 28px;max-width:420px;width:100%;box-shadow:0 8px 32px rgba(0,0,0,.6)}
|
||||
.garlic-confirm-title{font-size:16px;font-weight:600;color:var(--text);margin:0 0 12px}
|
||||
.garlic-confirm-dialog p{font-size:12px;color:var(--text-dim);line-height:1.5;margin:0}
|
||||
.garlic-confirm-btns{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
|
||||
/* ── Native Save Manager (GarlicMgr) ─────────────────────────────────────── */
|
||||
.sm-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
|
||||
/* Sub-tabs */
|
||||
.sm-tabs{display:flex;gap:4px;padding:7px 14px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface2)}
|
||||
.sm-tab{padding:4px 14px;border-radius:16px;border:1.5px solid var(--border);background:transparent;color:var(--text-dim);font-size:11px;font-weight:700;cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.6px}
|
||||
.sm-tab:hover{border-color:var(--accent);color:var(--text)}
|
||||
.sm-tab.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}
|
||||
/* Panes */
|
||||
.sm-pane{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
|
||||
/* Browse tab layout */
|
||||
.sm-layout{display:flex;flex:1;min-height:0;overflow:hidden}
|
||||
/* Left saves list */
|
||||
.sm-left{width:220px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}
|
||||
.sm-section-label{padding:7px 14px;font-size:11px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);flex-shrink:0}
|
||||
.sm-saves{flex:1;overflow-y:auto}
|
||||
.sm-save-item{padding:9px 14px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04);transition:background .1s}
|
||||
.sm-save-item:hover{background:rgba(255,255,255,.05)}
|
||||
.sm-save-item.active{background:rgba(var(--accent-rgb),.12);border-left:2px solid var(--accent);padding-left:12px}
|
||||
.sm-save-tid{font-size:11px;font-weight:700;color:var(--accent);font-family:monospace}
|
||||
.sm-save-item.active .sm-save-tid{color:var(--text)}
|
||||
.sm-save-name{font-size:11px;color:var(--text-dim);margin-top:2px;font-family:monospace;word-break:break-all}
|
||||
.sm-empty-list{padding:20px 14px;font-size:12px;color:var(--text-dim);text-align:center}
|
||||
/* Right panel */
|
||||
.sm-right{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
|
||||
.sm-right.sm-drag-over{outline:2px dashed var(--accent);outline-offset:-2px;background:rgba(var(--accent-rgb),.04)}
|
||||
/* Empty state */
|
||||
.sm-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-dim);text-align:center;padding:32px}
|
||||
.sm-empty p{margin:0;font-size:14px}
|
||||
/* Mounted save header */
|
||||
.sm-save-header{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface);flex-wrap:wrap}
|
||||
.sm-game-icon{width:80px;height:45px;border-radius:8px;object-fit:cover;background:var(--surface2);flex-shrink:0}
|
||||
.sm-save-meta-block{flex:1;min-width:0}
|
||||
.sm-save-title-text{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.sm-save-meta-row{font-size:11px;color:var(--text-dim);margin-top:3px}
|
||||
.sm-save-ftp-row{font-size:11px;color:var(--text-dim);margin-top:2px;opacity:.5;font-family:monospace}
|
||||
.sm-save-btns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
|
||||
/* File tree */
|
||||
.sm-filetree{flex:1;overflow-y:auto;background:var(--bg)}
|
||||
.sm-fi{display:flex;align-items:center;gap:5px;padding:5px 12px;cursor:pointer;user-select:none;font-size:12px;color:var(--text);transition:background .1s}
|
||||
.sm-fi:hover{background:var(--surface2)}
|
||||
.sm-fi.sm-fi-dir{color:var(--accent);font-weight:600}
|
||||
.sm-fi-sz{margin-left:auto;font-size:11px;color:var(--text-dim);font-family:monospace}
|
||||
.sm-tip{padding:6px 14px;font-size:11px;color:var(--text-dim);opacity:.5;text-align:center}
|
||||
/* Context menu */
|
||||
.sm-ctx{position:fixed;z-index:9999;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:3px 0;min-width:140px;box-shadow:0 4px 16px rgba(0,0,0,.6)}
|
||||
.sm-ctx div{padding:7px 14px;font-size:12px;cursor:pointer;color:var(--text)}
|
||||
.sm-ctx div:hover{background:var(--surface3)}
|
||||
.sm-ctx .sm-ctx-del{color:var(--red)}
|
||||
/* Single panes (decrypt / encrypt / resign) */
|
||||
.sm-single{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px}
|
||||
.sm-field-row{display:flex;align-items:center;gap:10px}
|
||||
.sm-field-label{font-size:11px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
|
||||
.sm-field-row input{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:8px;font-family:monospace;font-size:12px;width:180px}
|
||||
.sm-drop{border:2px dashed var(--border);border-radius:var(--radius);padding:36px 60px;text-align:center;transition:border-color .15s,background .15s;display:flex;flex-direction:column;align-items:center;gap:14px;min-width:300px}
|
||||
.sm-drop.sm-drag-over{border-color:var(--accent);background:rgba(var(--accent-rgb),.06)}
|
||||
.sm-drop-label{font-size:12px;color:var(--text-dim);line-height:1.6}
|
||||
.sm-drop-label strong{color:var(--text)}
|
||||
/* Progress bars */
|
||||
.sm-progress{padding:4px 14px;flex-shrink:0}
|
||||
.sm-progress-bar{height:3px;background:var(--border);border-radius:8px;overflow:hidden}
|
||||
.sm-progress-fill{height:100%;background:var(--accent);border-radius:8px;transition:width .1s}
|
||||
.sm-progress-text{font-size:11px;color:var(--text-dim);margin-top:3px;font-family:monospace}
|
||||
/* Terminal */
|
||||
.sm-terminal{flex-shrink:0;height:90px;border-top:1px solid var(--border);background:#0a0a0a;display:flex;flex-direction:column}
|
||||
.sm-terminal-header{padding:3px 12px;font-size:11px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid rgba(255,255,255,.05);flex-shrink:0}
|
||||
.sm-log{flex:1;overflow-y:auto;padding:3px 8px}
|
||||
.sm-ll{padding:1px 0;font-size:11px;color:var(--text-dim);display:flex;gap:8px;font-family:monospace}
|
||||
.sm-lt{color:rgba(255,255,255,.25);flex-shrink:0}
|
||||
.sm-ll.sm-ok{color:#4caf50}
|
||||
.sm-ll.sm-err{color:var(--red)}
|
||||
/* ── Dashboard interactive widget tiles ──────────────────────────────────────── */
|
||||
.dash-pinned-tile--widget{cursor:default}
|
||||
.dash-pinned-tile--widget:hover{border-color:var(--border);background:var(--surface)}
|
||||
.dash-widget-hdr{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:6px}
|
||||
.dash-widget-input{width:100%;box-sizing:border-box;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:5px 8px;font-size:12px;outline:none;margin-bottom:4px;display:block}
|
||||
.dash-widget-input:focus{border-color:var(--accent)}
|
||||
.dash-widget-select{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:5px 8px;font-size:12px;cursor:pointer;margin-bottom:6px;display:block;outline:none}
|
||||
.dash-widget-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}
|
||||
.dash-widget-status{font-size:11px;color:var(--text-dim);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.dash-widget-port-input{width:62px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:4px 6px;font-size:12px;font-family:monospace;text-align:right;outline:none}
|
||||
.dash-widget-port-lbl{font-size:11px;color:var(--text-dim);white-space:nowrap}
|
||||
.dash-widget-log{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);font-family:monospace;font-size:11px;padding:6px 8px;max-height:110px;overflow-y:auto;color:var(--text-dim);flex:1;margin-bottom:4px;white-space:pre-wrap;word-break:break-all;min-height:50px}
|
||||
.dash-widget-drop{background:var(--surface2);border:2px dashed var(--border);border-radius:var(--radius);padding:10px 8px;text-align:center;font-size:11px;color:var(--text-dim);cursor:pointer;margin-bottom:6px;transition:border-color .15s,color .15s}
|
||||
.dash-widget-drop:hover,.dash-widget-drop.dw-drag-over{border-color:var(--accent);color:var(--accent)}
|
||||
.dash-widget-savelist{font-size:11px;max-height:100px;overflow-y:auto;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;margin-bottom:4px;color:var(--text-dim);padding-left:8px}
|
||||
.dash-dw-save-row{display:flex;align-items:center;gap:6px;padding:3px 8px 3px 0;border-bottom:1px solid var(--border)}
|
||||
.dash-dw-save-row:last-child{border-bottom:none}
|
||||
.dash-dw-save-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:11px}
|
||||
/* ── Chimera Hub ─────────────────────────────────────────────────────────── */
|
||||
.ecosystem-header,.ecosystem-header-actions,.ecosystem-card-header,.ecosystem-inline-actions,.ecosystem-filter-row{display:flex;align-items:center;gap:10px}
|
||||
.ecosystem-header,.ecosystem-card-header{justify-content:space-between}
|
||||
.ecosystem-header-actions{flex-wrap:wrap}
|
||||
.ecosystem-tabs{display:flex;gap:4px;overflow-x:auto;margin:0 0 16px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
|
||||
.ecosystem-tab{border:0;border-radius:8px;background:transparent;color:var(--text-dim);padding:9px 12px;white-space:nowrap;cursor:pointer;font:inherit}
|
||||
.ecosystem-tab:hover{color:var(--text);background:var(--surface2)}
|
||||
.ecosystem-tab.active{color:var(--text);background:color-mix(in srgb,var(--accent) 20%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}
|
||||
.ecosystem-panel{display:none}
|
||||
.ecosystem-panel.active{display:block}
|
||||
.ecosystem-two-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
|
||||
.ecosystem-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px}
|
||||
.ecosystem-service-row,.ecosystem-source-row,.ecosystem-plugin-row,.ecosystem-save-row,.ecosystem-vault-row,.ecosystem-history-row,.ecosystem-cheat-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}
|
||||
.ecosystem-service-row:last-child,.ecosystem-source-row:last-child,.ecosystem-plugin-row:last-child,.ecosystem-save-row:last-child,.ecosystem-vault-row:last-child,.ecosystem-history-row:last-child{border-bottom:0}
|
||||
.ecosystem-service-row>div,.ecosystem-source-row>div:first-child,.ecosystem-plugin-row>div:first-child,.ecosystem-save-row>div:first-child,.ecosystem-vault-row>div:first-child,.ecosystem-history-row>div:first-child,.ecosystem-cheat-row>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
|
||||
.ecosystem-service-row span,.ecosystem-source-row span,.ecosystem-plugin-row span,.ecosystem-save-row span,.ecosystem-vault-row span,.ecosystem-history-row span,.ecosystem-cheat-row span,.ecosystem-cheat-row small{color:var(--text-dim);font-size:12px}
|
||||
.ecosystem-source-row code,.ecosystem-plugin-row code,.ecosystem-vault-row code{font-size:11px;overflow-wrap:anywhere}
|
||||
.ecosystem-safety{display:grid;gap:12px}
|
||||
.ecosystem-safety p{display:flex;flex-direction:column;gap:3px;margin:0;padding:10px;border-left:3px solid var(--teal);background:color-mix(in srgb,var(--teal) 7%,transparent)}
|
||||
.ecosystem-safety span{color:var(--text-dim);font-size:12px}
|
||||
.ecosystem-component-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
|
||||
.ecosystem-component{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
|
||||
.ecosystem-component.expert{border-color:color-mix(in srgb,var(--red) 45%,var(--border))}
|
||||
.ecosystem-component>div{display:flex;flex-direction:column;gap:3px}
|
||||
.ecosystem-component>div:nth-child(2){align-items:flex-end}
|
||||
.ecosystem-component span,.ecosystem-component p{color:var(--text-dim);font-size:11px}
|
||||
.ecosystem-component p{grid-column:1/-1;margin:0;min-height:32px}
|
||||
.ecosystem-component button{justify-self:start}
|
||||
.ecosystem-component-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:14px}
|
||||
.ecosystem-component-summary>div{display:flex;min-width:0;flex-direction:column;gap:2px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}
|
||||
.ecosystem-component-summary strong{overflow:hidden;color:var(--text);font-size:14px;text-overflow:ellipsis;white-space:nowrap}
|
||||
.ecosystem-component-summary span{color:var(--text-dim);font-size:11px}
|
||||
.ecosystem-component-group{margin-top:18px}
|
||||
.ecosystem-component-group>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid var(--border)}
|
||||
.ecosystem-component-group>header h4{margin:0;font-size:12px}
|
||||
.ecosystem-component-group>header span{color:var(--text-dim);font-size:11px}
|
||||
.ecosystem-plugin-inspection{margin:0 0 8px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#080a0f;color:var(--text-dim);font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
|
||||
.ecosystem-preset-row{margin-bottom:14px}
|
||||
.ecosystem-preset-row label{min-width:180px}
|
||||
.ecosystem-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
|
||||
.ecosystem-config-field{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}
|
||||
.ecosystem-config-field small{color:var(--yellow);text-transform:uppercase;font-size:11px}
|
||||
.ecosystem-config-field.expert{border-color:color-mix(in srgb,var(--red) 40%,var(--border))}
|
||||
.ecosystem-config-field input[type=number]{width:78px}
|
||||
.ecosystem-raw-config{margin-top:14px}
|
||||
.ecosystem-raw-config summary{cursor:pointer;color:var(--text-dim);margin-bottom:8px}
|
||||
.ecosystem-diff-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border-bottom:1px solid var(--border)}
|
||||
.ecosystem-diff-row.advanced,.ecosystem-diff-row.expert{border-left:3px solid var(--yellow)}
|
||||
.ecosystem-history{margin-top:16px}
|
||||
.ecosystem-homebrew-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
|
||||
.ecosystem-homebrew-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
|
||||
.ecosystem-homebrew-card img,.ecosystem-homebrew-placeholder{width:56px;height:56px;border-radius:12px;object-fit:cover}
|
||||
.ecosystem-homebrew-placeholder{display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 20%,var(--bg));color:var(--accent);font-weight:800}
|
||||
.ecosystem-homebrew-card>div:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0}
|
||||
.ecosystem-homebrew-card span{color:var(--text-dim);font-size:11px}
|
||||
.ecosystem-homebrew-card code{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.ecosystem-source-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
|
||||
.ecosystem-source-form label{display:flex;flex-direction:column;gap:5px;color:var(--text-dim);font-size:12px}
|
||||
.ecosystem-source-form button{align-self:end}
|
||||
.ecosystem-plugin-row.conflict,.ecosystem-cheat-row.conflict{border-left:3px solid var(--yellow);padding-left:9px}
|
||||
.ecosystem-filter-row{margin:12px 0;flex-wrap:wrap}
|
||||
.ecosystem-filter-row .search-input{min-width:240px;flex:1}
|
||||
.ecosystem-check{display:flex;align-items:center;gap:7px;color:var(--text-dim);font-size:12px}
|
||||
.ecosystem-page-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
|
||||
.ecosystem-page-summary p{margin:0}
|
||||
.ecosystem-cheat-list{max-height:65vh;overflow:auto;padding-right:4px}
|
||||
.ecosystem-cheat-row{padding:10px}
|
||||
.ecosystem-cheat-row small{display:block}
|
||||
.ecosystem-log{max-height:62vh;overflow:auto;border:1px solid var(--border);border-radius:8px;background:#080a0f;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}
|
||||
.ecosystem-log-row{display:grid;grid-template-columns:70px 100px minmax(0,1fr);gap:10px;padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.05)}
|
||||
.ecosystem-log-row time{color:var(--text-dim)}
|
||||
.ecosystem-log-row strong{color:var(--teal)}
|
||||
.ecosystem-log-row.warning strong{color:var(--yellow)}
|
||||
.ecosystem-log-row.error{background:rgba(255,70,70,.08)}
|
||||
.ecosystem-log-row.error strong{color:var(--red)}
|
||||
.game-updates-primary-form{grid-template-columns:minmax(0,1fr)}
|
||||
.game-updates-primary-form select,.game-updates-primary-form button{max-width:none;width:100%}
|
||||
.ecosystem-command-grid{margin-top:16px}
|
||||
.ecosystem-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--border)}
|
||||
.ecosystem-alert:last-child{border-bottom:0}
|
||||
.ecosystem-alert>div:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}
|
||||
.ecosystem-alert>div:first-child span{color:var(--text-dim);font-size:12px;line-height:1.45}
|
||||
.ecosystem-alert-critical{border-left:3px solid var(--red);padding-left:10px}
|
||||
.ecosystem-alert-warning{border-left:3px solid var(--yellow);padding-left:10px}
|
||||
.ecosystem-alert.acknowledged{opacity:.58}
|
||||
.ecosystem-activity{max-height:420px;overflow:auto}
|
||||
.ecosystem-activity-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}
|
||||
.ecosystem-activity-row:last-child{border-bottom:0}
|
||||
.ecosystem-activity-row time{color:var(--text-dim);font-size:11px}
|
||||
.ecosystem-activity-row>div{display:flex;flex-direction:column;gap:3px}
|
||||
.ecosystem-activity-row span{color:var(--text-dim);font-size:12px}
|
||||
.ecosystem-health-trend{height:96px;display:flex;align-items:flex-end;gap:4px;margin:0 0 12px;padding:10px 8px 20px;border:1px solid var(--border);border-radius:8px;background:linear-gradient(to top,color-mix(in srgb,var(--red) 5%,transparent),color-mix(in srgb,var(--teal) 5%,transparent))}
|
||||
.ecosystem-health-trend>div{position:relative;display:flex;align-items:flex-end;flex:1;height:100%;min-width:5px}
|
||||
.ecosystem-health-trend i{display:block;width:100%;min-height:3px;border-radius:3px 3px 0 0;background:linear-gradient(to top,var(--yellow),var(--teal));opacity:.8}
|
||||
.ecosystem-health-trend span{position:absolute;top:calc(100% + 3px);left:50%;transform:translateX(-50%);color:var(--text-dim);font-size:11px}
|
||||
.ecosystem-health-trend>div:not(:nth-last-child(-n+10)) span{display:none}
|
||||
.ecosystem-plan-safety{display:flex;flex-direction:column;gap:4px;margin:4px 0 14px;padding:11px 13px;border-left:3px solid var(--teal);background:color-mix(in srgb,var(--teal) 7%,transparent)}
|
||||
.ecosystem-plan-safety span{color:var(--text-dim);font-size:12px;overflow-wrap:anywhere}
|
||||
.ecosystem-update-list{display:grid;gap:9px}
|
||||
.ecosystem-update-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,auto);align-items:center;gap:14px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
|
||||
.ecosystem-update-row.expert{border-color:color-mix(in srgb,var(--red) 45%,var(--border))}
|
||||
.ecosystem-update-main{display:flex;flex-direction:column;gap:4px;min-width:0}
|
||||
.ecosystem-update-main>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
|
||||
.ecosystem-update-main span,.ecosystem-update-main small{color:var(--text-dim);font-size:11px}
|
||||
.ecosystem-update-controls{display:flex;align-items:flex-end;justify-content:flex-end;gap:7px;flex-wrap:wrap}
|
||||
.ecosystem-update-controls label{display:flex;flex-direction:column;gap:4px;color:var(--text-dim);font-size:11px}
|
||||
.ecosystem-update-controls input{width:132px}
|
||||
.ecosystem-update-controls select{max-width:230px}
|
||||
.ecosystem-discovery{display:flex;flex-direction:column;gap:6px;margin:0 0 12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--teal) 35%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--teal) 6%,transparent)}
|
||||
.ecosystem-discovery>div{display:flex;gap:7px;flex-wrap:wrap}
|
||||
.ecosystem-discovery span{font-size:11px;color:var(--text-dim);padding:4px 7px;border:1px solid var(--border);border-radius:8px}
|
||||
.ecosystem-update-group{margin:0 0 18px}
|
||||
.ecosystem-update-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding:9px 11px;border-left:3px solid var(--border);background:var(--surface2)}
|
||||
.ecosystem-update-group>header>div{display:flex;flex-direction:column;gap:2px}
|
||||
.ecosystem-update-group>header h4{margin:0;font-size:12px}
|
||||
.ecosystem-update-group>header span{color:var(--text-dim);font-size:11px}
|
||||
.ecosystem-update-group>header b{display:grid;min-width:24px;height:24px;place-items:center;border-radius:12px;background:rgba(255,255,255,.06)}
|
||||
.ecosystem-update-group-ready>header{border-color:var(--teal)}
|
||||
.ecosystem-update-group-review>header{border-color:var(--yellow)}
|
||||
.ecosystem-update-group-current>header{border-color:var(--green)}
|
||||
.y2jb-catalog-picker{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(280px,1.5fr) auto;align-items:center;gap:12px;margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
|
||||
.y2jb-catalog-picker>div:first-child{display:flex;flex-direction:column;gap:3px}
|
||||
.y2jb-catalog-picker span{color:var(--text-dim);font-size:11px}
|
||||
.y2jb-catalog-picker select{width:100%;min-height:86px}
|
||||
.y2jb-catalog-actions{display:flex;flex-direction:column;gap:7px}
|
||||
.ea-native-status{font-size:12px;color:var(--text-dim)}
|
||||
.ea-native-status.ok{color:var(--green)}
|
||||
.ea-native-status.warning{color:var(--yellow)}
|
||||
.ea-native-status.error{color:var(--red)}
|
||||
.ea-native-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
|
||||
.ea-native-card{padding-bottom:8px}
|
||||
.ea-native-path{display:flex;align-items:center;gap:10px;margin:2px 0 10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}
|
||||
.ea-native-path code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.ea-native-list{display:grid;gap:6px}
|
||||
.ea-native-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}
|
||||
.ea-native-row>div:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:3px}
|
||||
.ea-native-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.ea-native-row span{color:var(--text-dim);font-size:11px}
|
||||
.ea-native-icon{font-size:16px;text-align:center}
|
||||
.ecosystem-repository-bridge{display:grid;grid-template-columns:minmax(240px,1fr) minmax(260px,420px) auto auto;align-items:center;gap:8px;margin:0 0 14px;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,transparent)}
|
||||
.ecosystem-repository-bridge>div{display:flex;flex-direction:column;gap:3px}
|
||||
.ecosystem-repository-bridge span{color:var(--text-dim);font-size:11px;line-height:1.4}
|
||||
.ecosystem-repository-bridge input{min-width:0;font:11px ui-monospace,SFMono-Regular,Consolas,monospace}
|
||||
.ecosystem-readiness-card{margin-bottom:12px}
|
||||
.ecosystem-readiness-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
|
||||
.ecosystem-readiness-step{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:9px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text);text-align:left}
|
||||
.ecosystem-readiness-step:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}
|
||||
.ecosystem-readiness-step>span:first-child{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:var(--surface);color:var(--text-dim);font-weight:800}
|
||||
.ecosystem-readiness-step>span:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0}
|
||||
.ecosystem-readiness-step small,.ecosystem-readiness-step em{color:var(--text-dim);line-height:1.35}
|
||||
.ecosystem-readiness-step em{font-size:11px}
|
||||
.ecosystem-readiness-step>b{color:var(--text-dim);font-size:11px;text-transform:uppercase}
|
||||
.ecosystem-readiness-step.ready{border-color:color-mix(in srgb,var(--teal) 45%,var(--border))}
|
||||
.ecosystem-readiness-step.ready>span:first-child{background:color-mix(in srgb,var(--teal) 18%,var(--surface));color:var(--teal)}
|
||||
.ecosystem-readiness-step.attention>span:first-child{background:color-mix(in srgb,var(--yellow) 16%,var(--surface));color:var(--yellow)}
|
||||
.ecosystem-readiness-step.not-configured,.ecosystem-readiness-step.optional{opacity:.78}
|
||||
@media(max-width:1000px){.ecosystem-two-column{grid-template-columns:1fr}
|
||||
.ecosystem-component-list{grid-template-columns:1fr}
|
||||
.ecosystem-update-row,.ecosystem-repository-bridge{grid-template-columns:1fr}
|
||||
.ecosystem-update-controls{justify-content:flex-start}
|
||||
.ecosystem-readiness-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
.y2jb-catalog-picker{grid-template-columns:1fr}
|
||||
.y2jb-catalog-actions{flex-direction:row}
|
||||
}
|
||||
@media(max-width:700px){.ecosystem-header,.ecosystem-card-header{align-items:flex-start;flex-direction:column}
|
||||
.ecosystem-source-form{grid-template-columns:1fr}
|
||||
.ecosystem-service-row,.ecosystem-source-row,.ecosystem-plugin-row,.ecosystem-save-row,.ecosystem-vault-row,.ecosystem-cheat-row,.ecosystem-alert{align-items:flex-start;flex-direction:column}
|
||||
.ecosystem-activity-row{grid-template-columns:1fr}
|
||||
.ecosystem-update-controls{align-items:stretch;flex-direction:column}
|
||||
.ecosystem-update-controls input,.ecosystem-update-controls select,.ecosystem-update-controls button,.ecosystem-repository-bridge input,.ecosystem-repository-bridge button{max-width:none;width:100%}
|
||||
.ecosystem-homebrew-card{grid-template-columns:48px 1fr}
|
||||
.ecosystem-homebrew-card img,.ecosystem-homebrew-placeholder{width:48px;height:48px}
|
||||
.ecosystem-homebrew-card button{grid-column:1/-1;width:100%}
|
||||
.ecosystem-log-row{grid-template-columns:60px 80px minmax(0,1fr)}
|
||||
.ecosystem-readiness-flow{grid-template-columns:1fr}
|
||||
.ecosystem-component-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
.ea-native-summary{grid-template-columns:1fr}
|
||||
.ea-native-row{grid-template-columns:26px minmax(0,1fr)}
|
||||
.ea-native-row>.ecosystem-inline-actions{grid-column:1/-1;justify-content:flex-end}
|
||||
}
|
||||
.remote-play-page{display:grid!important;grid-template-columns:minmax(0,1fr);gap:16px;min-width:0}
|
||||
.remote-play-page[hidden]{display:none!important}
|
||||
.remote-play-page>.card,.remote-play-page>.remote-play-columns,.remote-play-columns>.card{min-width:0}
|
||||
.remote-play-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 90% -30%,color-mix(in srgb,var(--teal) 24%,transparent),transparent 44%),linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface2) 92%,var(--teal)))}
|
||||
.remote-play-hero:after{content:"";position:absolute;right:-70px;bottom:-110px;width:250px;height:250px;border:1px solid color-mix(in srgb,var(--teal) 22%,transparent);border-radius:50%;pointer-events:none}
|
||||
.remote-play-kicker{display:block;margin-bottom:5px;color:var(--teal);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
|
||||
.remote-play-readiness{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}
|
||||
.remote-play-check{display:flex;align-items:center;gap:10px;min-width:0;padding:12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface2) 84%,transparent)}
|
||||
.remote-play-check-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:var(--text-dim);box-shadow:0 0 0 4px color-mix(in srgb,var(--text-dim) 12%,transparent)}
|
||||
.remote-play-check.ready{border-color:color-mix(in srgb,var(--teal) 38%,var(--border))}
|
||||
.remote-play-check.ready .remote-play-check-dot{background:var(--teal);box-shadow:0 0 0 4px color-mix(in srgb,var(--teal) 15%,transparent)}
|
||||
.remote-play-check.standby .remote-play-check-dot{background:#f4a261;box-shadow:0 0 0 4px color-mix(in srgb,#f4a261 15%,transparent)}
|
||||
.remote-play-check>div{display:flex;flex-direction:column;gap:2px;min-width:0}
|
||||
.remote-play-check small{overflow:hidden;color:var(--text-dim);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
|
||||
.remote-play-primary-actions{position:relative;z-index:1;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
|
||||
.remote-play-primary-actions .hint{flex:1;min-width:220px;margin-left:4px}
|
||||
.remote-play-columns{align-items:start}
|
||||
.remote-play-profile-form{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
.remote-play-profile-form button{align-self:end}
|
||||
.remote-play-workers{display:grid;gap:2px}
|
||||
.remote-play-worker-row .ecosystem-inline-actions{align-items:center;flex-direction:row}
|
||||
.remote-play-page code{font-size:11px}
|
||||
@media(max-width:1000px){.remote-play-readiness{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
}
|
||||
@media(max-width:700px){.remote-play-readiness,.remote-play-profile-form{grid-template-columns:1fr}
|
||||
.remote-play-primary-actions{align-items:stretch;flex-direction:column}
|
||||
.remote-play-primary-actions .btn{width:100%}
|
||||
.remote-play-primary-actions .hint{min-width:0;margin-left:0}
|
||||
.remote-play-page .ecosystem-inline-actions{flex-wrap:wrap}
|
||||
.remote-play-worker-row .ecosystem-inline-actions{align-items:flex-start}
|
||||
}
|
||||
/* ── Games library ─────────────────────────────────────────────────────────── */
|
||||
.view-switch{display:inline-flex;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
|
||||
.view-switch-btn{width:30px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--text-dim);cursor:pointer}
|
||||
.view-switch-btn:hover,.view-switch-btn.active{background:var(--surface3);color:var(--accent)}
|
||||
.game-platform-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0;padding:6px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 82%,transparent)}
|
||||
.game-platform-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:10px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-dim);font:600 12px/1.2 inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}
|
||||
.game-platform-btn:hover{background:var(--surface2);color:var(--text)}
|
||||
.game-platform-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
|
||||
.game-platform-btn.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--surface2));color:var(--text)}
|
||||
.game-platform-btn-ps4.active{border-color:rgba(91,147,226,.58);background:rgba(58,123,213,.12)}
|
||||
.game-platform-btn-ps5.active{border-color:rgba(0,206,209,.48);background:rgba(0,206,209,.09)}
|
||||
.game-platform-btn strong{display:grid;place-items:center;min-width:28px;height:22px;padding:0 7px;border-radius:999px;background:var(--surface3);color:var(--text-dim);font-size:11px}
|
||||
.game-platform-btn.active strong{background:color-mix(in srgb,var(--accent) 18%,var(--surface3));color:var(--text)}
|
||||
.game-platform-btn[hidden]{display:none}
|
||||
.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:14px}
|
||||
.game-card{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 4px 18px rgba(0,0,0,.12);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
|
||||
.game-card:hover,.game-card:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 60%,var(--border));box-shadow:0 8px 24px rgba(0,0,0,.2)}
|
||||
.game-card-art{aspect-ratio:1/1;overflow:hidden;background:linear-gradient(145deg,var(--surface2),var(--bg))}
|
||||
.game-card-cover{display:block;width:100%;height:100%;object-fit:cover}
|
||||
.game-card-cover-empty{display:grid;place-items:center;padding:18px;color:var(--text-dim);background:radial-gradient(circle at 25% 15%,rgba(164,112,255,.18),transparent 34%),linear-gradient(145deg,var(--surface3),var(--bg))}
|
||||
.game-card-cover-empty span{font:600 12px/1.4 var(--mono,monospace);text-align:center;word-break:break-all}
|
||||
.game-card-body{display:grid;gap:9px;padding:12px}
|
||||
.game-card-heading{display:grid;gap:4px}
|
||||
.game-card-heading strong{overflow:hidden;color:var(--text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
|
||||
.game-card-heading code,.game-card-meta{overflow:hidden;color:var(--text-dim);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
|
||||
.game-card .game-status-col{min-height:22px}
|
||||
.game-card-actions{display:flex;flex-wrap:wrap;gap:6px}
|
||||
.game-card-actions .btn{flex:1 1 auto}
|
||||
.library-empty{display:grid;justify-items:center;gap:8px;margin:28px 0;padding:38px 24px;border:1px dashed var(--border);border-radius:12px;color:var(--text-dim);text-align:center}
|
||||
.library-empty[hidden]{display:none}
|
||||
.library-empty strong{color:var(--text)}
|
||||
.library-empty-icon{font-size:32px;color:var(--accent)}
|
||||
.library-load-more{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 0}
|
||||
body[data-density="compact"] .games-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
|
||||
body[data-density="compact"] .game-card-body{gap:6px;padding:9px}
|
||||
@media(max-width:640px){.game-platform-switch{grid-template-columns:repeat(2,minmax(0,1fr))}
|
||||
.games-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
|
||||
.game-card-actions .btn{min-width:100%}
|
||||
}
|
||||
/* ── Payload catalog 2.0 ───────────────────────────────────────────────────── */
|
||||
.payload-expert-filter{display:inline-flex;align-items:center;gap:7px;color:var(--text-dim);font-size:11px;white-space:nowrap}
|
||||
.payload-source-check-list{display:grid;gap:11px;margin-top:12px}
|
||||
.payload-catalog-group{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
|
||||
.payload-catalog-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;list-style:none}
|
||||
.payload-catalog-group>summary::-webkit-details-marker,.payload-check-source>summary::-webkit-details-marker{display:none}
|
||||
.payload-catalog-group>summary>span{display:grid;gap:2px}
|
||||
.payload-catalog-group>summary small{color:var(--text-dim);font-size:11px;font-weight:400}
|
||||
.payload-catalog-group>summary b{display:grid;place-items:center;min-width:28px;height:24px;border-radius:999px;background:var(--surface3);color:var(--text-dim);font-size:11px}
|
||||
.payload-catalog-group-experimental{border-color:color-mix(in srgb,var(--yellow) 40%,var(--border))}
|
||||
.payload-catalog-group-expert{border-color:color-mix(in srgb,var(--red) 46%,var(--border))}
|
||||
.payload-catalog-group-body{display:grid;gap:8px;padding:0 10px 10px}
|
||||
.payload-check-source{overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
|
||||
.payload-check-source-header{display:flex;align-items:center;gap:8px;padding:10px 11px;cursor:pointer;list-style:none}
|
||||
.payload-check-source-header:before{content:"›";color:var(--text-dim);font-size:18px;line-height:1;transition:transform .15s}
|
||||
.payload-check-source[open]>.payload-check-source-header:before{transform:rotate(90deg)}
|
||||
.payload-check-source-name{min-width:120px;font-weight:650}
|
||||
.payload-source-count{display:grid;place-items:center;min-width:22px;height:20px;border-radius:999px;background:var(--surface3);color:var(--text-dim);font-size:11px}
|
||||
.payload-checked-at{margin-left:auto;font-size:11px}
|
||||
.payload-source-meta{display:flex;gap:5px}
|
||||
.payload-source-body{padding:0 12px 12px}
|
||||
.payload-source-error{margin:4px 0;color:var(--red)}
|
||||
.payload-asset-scroll{overflow-x:auto}
|
||||
@media(max-width:760px){.payload-check-source-header{align-items:flex-start;flex-wrap:wrap}
|
||||
.payload-checked-at{width:100%;margin-left:28px}
|
||||
.payload-source-meta{margin-left:auto}
|
||||
.payload-catalog-toolbar>*{max-width:none;width:100%}
|
||||
.payload-expert-filter{width:auto}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
:root{--premium-line:rgba(255, 255, 255, 0.085)}body::before{position:fixed;inset:var(--titlebar-h) 0 var(--statusbar-h) var(--sidebar-w);z-index:-1;pointer-events:none;content:"";background:radial-gradient(circle at 82% 4%,rgba(var(--accent-rgb),.1),transparent 28rem),radial-gradient(circle at 12% 92%,rgba(0,210,214,.055),transparent 24rem),linear-gradient(rgba(255,255,255,.011) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.009) 1px,transparent 1px);background-size:auto,auto,48px 48px,48px 48px;mask-image:linear-gradient(#000,rgba(0,0,0,0.35))}.card,.game-card,.stat-card,.table-wrap{border-color:var(--premium-line);box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 10px 34px rgba(0,0,0,.14)}.card,.stat-card{background-image:linear-gradient(145deg,rgba(255,255,255,.026),transparent 42%)}.btn,.chimera-route-link,.chimera-toolbar-button{box-shadow:inset 0 1px 0 rgba(255,255,255,.055)}.btn:focus-visible,.chimera-domain-button:focus-visible,.chimera-route-link:focus-visible,.game-card:focus-visible{outline:2px solid rgba(var(--accent-rgb),.9);outline-offset:3px;box-shadow:0 0 0 5px rgba(var(--accent-rgb),.1)}.game-card-cover-fallback{position:absolute;inset:0;display:flex;min-height:100%;flex-direction:column;justify-content:flex-end;gap:6px;padding:18px;color:#fff;background:radial-gradient(circle at 78% 18%,rgba(0,218,198,.3),transparent 38%),radial-gradient(circle at 16% 82%,rgba(var(--accent-rgb),.43),transparent 43%),linear-gradient(145deg,#17111f,#090b12)}.game-card-cover-fallback[hidden]{display:none}.game-card-cover-fallback.is-visible{position:relative;aspect-ratio:2/3}.game-card-cover-fallback::before{position:absolute;top:18%;right:-16%;width:80%;aspect-ratio:1;border:1px solid rgba(255,255,255,.14);border-radius:30%;content:"";transform:rotate(34deg)}.game-card-cover-fallback span{color:var(--teal);font:750 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase}.game-card-cover-fallback strong{position:relative;max-width:15ch;font-size:18px;line-height:1.08}.game-card-cover-fallback small{color:rgba(255,255,255,.6);font:650 11px/1 var(--mono);letter-spacing:.08em}.game-card-cover.is-fallback-artwork{object-fit:contain!important;padding:9%!important;background:radial-gradient(circle at 50% 35%,rgba(var(--accent-rgb),.22),transparent 55%),#0d0b12}.game-row-icon.is-fallback-artwork{width:36px;height:36px;padding:0!important;border-radius:8px;object-fit:cover!important}.game-card-sync{backdrop-filter:blur(12px);box-shadow:0 5px 18px rgba(0,0,0,.28)}.chimera-shell-v2 #chimera-route-title{letter-spacing:-.035em;text-wrap:balance}.chimera-shell-v2 #chimera-route-header{padding-bottom:18px;border-bottom-color:var(--premium-line)}body.chimera-shell-v2 #page-dashboard>.dashboard-connection-card,body.chimera-shell-v2 #page-trophies>.trophy-page-header{display:none}.chimera-import-launcher{position:static!important;right:auto!important;bottom:auto!important;width:calc(100% - 24px);min-height:42px;margin:8px 12px 2px;padding:8px 12px;border-color:rgba(203,186,255,.3);box-shadow:inset 0 1px rgba(255,255,255,.1)}@media (max-width:900px){body::before{left:0}}.premium-project-illustration{--project-color:var(--accent);--project-rgb:118,81,230;position:relative;isolation:isolate;width:min(360px,92%);height:190px;margin:0 auto 10px;overflow:hidden;contain:layout paint style;transform:rotateX(var(--illustration-y,0)) rotateY(var(--illustration-x,0));transition:transform .18s cubic-bezier(.2, .8, .2, 1)}.premium-project-illustration::before{position:absolute;inset:20px 9px;z-index:-1;content:"";background-image:linear-gradient(rgba(var(--project-rgb),.045) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--project-rgb),.045) 1px,transparent 1px);background-size:18px 18px;border:1px solid rgba(var(--project-rgb),.08);border-radius:50%;mask-image:radial-gradient(#000 25%,transparent 74%)}.premium-project-illustration[data-variant=transfer]{--project-color:var(--teal);--project-rgb:34,199,232}.premium-project-illustration[data-variant=protection]{--project-color:var(--green);--project-rgb:78,222,163}.premium-project-illustration[data-variant=media]{--project-color:#e4a4ff;--project-rgb:228,164,255}.premium-project-illustration[data-variant=trophies]{--project-color:var(--yellow);--project-rgb:228,173,85}.premium-project-illustration svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 18px 24px rgba(0, 0, 0, .26))}.premium-project-glow{position:absolute;inset:23% 27%;z-index:-1;background:rgba(var(--project-rgb),.16);border-radius:50%;filter:blur(30px)}.premium-project-path{fill:none;stroke:rgba(var(--project-rgb),0.32);stroke-width:1.15;stroke-dasharray:4 8;vector-effect:non-scaling-stroke}.premium-project-node>:first-child,.premium-project-source>:first-child,.premium-project-surface>:first-child{fill:rgba(15,11,20,0.92);stroke:rgba(var(--project-rgb),0.72);stroke-width:1.4}.premium-project-node>:not(:first-child),.premium-project-progress>*,.premium-project-shield>*,.premLine truncated
|
||||
"M 37 95 H 114 C 135 95 142 65 163 65 H 190 C 214 65 219 96 239 96 H 288"
|
||||
)}.premium-project-illustration[data-variant=protection] .packet-b{offset-path:path(
|
||||
"M 67 131 H 132 C 150 131 157 110 174 110 H 209 C 226 110 232 131 252 131 H 288"
|
||||
)}.premium-project-illustration[data-variant=transfer] .packet-a,.premium-project-illustration[data-variant=transfer] .packet-c{offset-path:path(
|
||||
"M 70 87 H 135 C 156 87 161 60 182 60 H 210 C 232 60 237 87 257 87 H 285"
|
||||
)}.premium-project-illustration[data-variant=transfer] .packet-b{offset-path:path(
|
||||
"M 70 119 H 131 C 153 119 162 144 184 144 H 214 C 235 144 243 119 261 119 H 285"
|
||||
)}.premium-project-illustration[data-variant=media] .packet-a,.premium-project-illustration[data-variant=media] .packet-c{offset-path:path(
|
||||
"M 87 90 H 143 C 164 90 167 62 189 62 H 212 C 233 62 237 90 256 90 H 293"
|
||||
)}.premium-project-illustration[data-variant=media] .packet-b{offset-path:path(
|
||||
"M 86 120 H 141 C 163 120 168 142 188 142 H 214 C 234 142 239 120 258 120 H 293"
|
||||
)}.premium-project-illustration[data-variant=trophies] .packet-a,.premium-project-illustration[data-variant=trophies] .packet-c{offset-path:path("M 50 126 C 89 54 130 46 169 81 S 234 121 280 56")}.premium-project-illustration[data-variant=trophies] .packet-b{offset-path:path("M 48 66 C 91 71 114 89 139 125 S 219 157 278 129")}.premium-project-illustration.is-active:not(.is-paused) .premium-project-path{animation:7s linear infinite project-flow}.premium-project-illustration.is-active:not(.is-paused) .premium-project-packet{animation:4.8s cubic-bezier(.4,0,.2,1) infinite project-packet}.premium-project-illustration.is-active:not(.is-paused) .packet-b{animation-delay:-1.6s}.premium-project-illustration.is-active:not(.is-paused) .packet-c{animation-delay:-3.2s}.premium-project-illustration.is-active:not(.is-paused) :is(.library-proof,.premium-project-shield,.media-play,.trophy-earned){animation:3.2s ease-in-out infinite project-confirm;transform-origin:center}.premium-project-illustration.is-active:not(.is-paused) .premium-project-progress path:last-child{animation:3.6s ease-in-out infinite project-progress;transform-origin:left}.premium-project-illustration.is-paused *,.premium-topology-motion.is-paused *{animation-play-state:paused!important}.premium-topology-motion.is-active:not(.is-paused) .chimera-home-map-lines path{animation:8s linear infinite topology-flow}.premium-topology-motion.is-active:not(.is-paused) .chimera-home-map-lines path:nth-child(2n){animation-direction:reverse;animation-duration:10s}@keyframes project-flow{to{stroke-dashoffset:-96}}@keyframes project-packet{0%{offset-distance:0;opacity:0}12%,86%{opacity:1}100%{offset-distance:100%;opacity:0}}@keyframes project-confirm{50%{filter:drop-shadow(0 0 7px rgba(var(--project-rgb), .82));transform:scale(1.04)}}@keyframes project-progress{0%,20%{transform:scaleX(.18)}100%,70%{transform:scaleX(1)}}@keyframes topology-flow{to{stroke-dashoffset:-120}}.empty-msg:has(.premium-project-illustration),.library-empty:has(.premium-project-illustration){min-height:430px}.library-empty:has(.premium-project-illustration)>.library-empty-icon{display:none}.trophy-library-empty:has(.premium-project-illustration){min-height:380px}.trophy-library-empty:has(.premium-project-illustration)>.trophy-library-empty-icon{display:none}.empty-msg .premium-project-illustration+*,.library-empty .premium-project-illustration+*{margin-top:0}@media (min-width:701px) and (max-height:820px){.premium-project-illustration{height:152px;margin-bottom:2px}.empty-msg:has(.premium-project-illustration),.library-empty:has(.premium-project-illustration){min-height:340px}.trophy-library-empty:has(.premium-project-illustration){min-height:320px}}@media (max-width:560px){body.chimera-shell-v2[data-chimera-route="protection/trophies"] #chimera-route-refresh{display:inline-flex}body.chimera-shell-v2[data-chimera-route="protection/trophies"] #chimera-route-refresh::before{content:"↻";font-size:18px;line-height:1}.premium-project-illustration{width:min(330px,100%);height:158px}.empty-msg:has(.premium-project-illustration),.library-empty:has(.premium-project-illustration){min-height:330px}.trophy-library-empty:has(.premium-project-illustration){min-height:330px}}@media (prefers-reduced-motion:reduce){.premium-project-illustration{transform:none;transition:none}.premium-project-illustration *,.premium-topology-motion *{animation:none!important}.premium-project-packet{offset-distance:72%;opacity:.7}}
|
||||
@@ -0,0 +1 @@
|
||||
.protection-copy-card{align-items:stretch;display:grid;gap:14px;grid-template-columns:minmax(190px,1.15fr) minmax(280px,1.85fr) auto;}.protection-copy-card.is-missing{border-color:rgba(240,190,99,.5);}.protection-copy-card.has-integrity-failure{border-color:rgba(239,140,131,.55);}.protection-copy-title{align-items:center;display:flex;gap:11px;min-width:0;}.protection-copy-title .backup-card-icon{flex:0 0 auto;}.protection-copy-title-copy{min-width:0;}.protection-copy-title-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.protection-copy-title-copy code{color:var(--text-dim);font-size:11px;}.protection-copy-facts{display:grid;gap:7px 14px;grid-template-columns:repeat(2,minmax(0,1fr));}.protection-copy-fact{min-width:0;}.protection-copy-fact span{color:var(--text-dim);display:block;font-size:11px;letter-spacing:.06em;margin-bottom:2px;text-transform:uppercase;}.protection-copy-fact code,.protection-copy-fact strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.protection-device-label{max-width:100%;overflow:hidden;padding:0;color:var(--text);background:none;border:0;border-bottom:1px dashed var(--text-dim);font:inherit;font-size:12px;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;}.protection-device-label:hover,.protection-device-label:focus-visible{color:var(--teal);border-bottom-color:currentColor;}.protection-copy-actions{align-items:flex-end;display:flex;flex-direction:column;gap:8px;justify-content:center;}.protection-copy-policy{border-radius:999px;font-size:11px;font-weight:700;padding:5px 8px;white-space:nowrap;}.protection-copy-policy.is-healthy{background:rgba(36,137,88,.15);color:#72d6a2;}.protection-copy-policy.needs-diversity{background:rgba(169,108,21,.15);color:#f0be63;}.protection-copy-policy.is-degraded{background:rgba(167,54,48,.14);color:#ef8c83;}@media (max-width:860px){.protection-copy-card{grid-template-columns:1fr;}.protection-copy-actions{align-items:stretch;}}@media (max-width:520px){.protection-copy-facts{grid-template-columns:1fr;}}
|
||||
@@ -0,0 +1,2 @@
|
||||
.ps4-package-dialog{width:min(940px,calc(100vw - 32px));max-height:min(850px,calc(100vh - 32px));overflow:auto;background:linear-gradient(145deg,rgba(25,20,35,.98),rgba(12,10,18,.99));border:1px solid rgba(181,135,255,.26);box-shadow:0 32px 100px rgba(0,0,0,.62),0 0 80px rgba(117,66,220,.1)}
|
||||
.ps4-package-header{position:relative;gap:16px;padding:22px 24px;border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden}.ps4-package-header:after{content:"";position:absolute;inset:-80px -20% auto 42%;height:180px;background:radial-gradient(circle,rgba(128,75,235,.22),transparent 68%);pointer-events:none}.ps4-package-emblem{position:relative;display:grid;place-items:center;width:58px;height:58px;border:1px solid rgba(194,158,255,.42);border-radius:16px;background:linear-gradient(145deg,rgba(154,102,255,.2),rgba(57,37,86,.16));box-shadow:inset 0 1px rgba(255,255,255,.16),0 12px 34px rgba(93,51,174,.24)}.ps4-package-emblem span{font:700 27px/1 var(--font-display,inherit);color:#e8dcff}.ps4-package-emblem i{position:absolute;inset:7px;border:1px solid rgba(255,255,255,.09);border-radius:12px;transform:rotate(8deg)}.ps4-package-kicker{display:block;color:#af82ff;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:4px}.ps4-package-header h3{margin:0;font-size:22px}.ps4-package-header p{margin:4px 0 0}.ps4-package-body{padding:22px 24px}.ps4-package-phasebar{display:grid;grid-template-columns:repeat(4,1fr);margin:0 0 18px}.ps4-package-phasebar span{position:relative;display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.ps4-package-phasebar span:not(:last-child):after{content:"";height:1px;flex:1;background:linear-gradient(90deg,rgba(170,124,255,.55),rgba(255,255,255,.08));margin-right:10px}.ps4-package-phasebar b{display:grid;place-items:center;width:25px;height:25px;border:1px solid rgba(171,126,255,.36);border-radius:50%;color:#d8c1ff;background:rgba(137,85,233,.12)}.ps4-package-phasebar i{font-style:normal}.ps4-package-readiness{min-height:44px;padding:11px 14px;margin-bottom:16px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);color:var(--text-dim)}.ps4-package-readiness[data-state="ready"]{border-color:rgba(61,213,162,.28);color:#91e8c8;background:rgba(31,146,108,.08)}.ps4-package-readiness[data-state="blocked"]{border-color:rgba(244,162,97,.3);color:#ffc28f;background:rgba(174,94,32,.08)}.ps4-package-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ps4-package-card{position:relative;padding:20px;border:1px solid rgba(255,255,255,.09);border-radius:15px;background:linear-gradient(155deg,rgba(255,255,255,.045),rgba(255,255,255,.015));overflow:hidden}.ps4-package-card:before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:linear-gradient(#ad79ff,transparent)}.ps4-package-card-index{position:absolute;right:16px;top:12px;color:rgba(213,188,255,.13);font-size:34px;font-weight:800}.ps4-package-card h4{position:relative;margin:0 0 8px;font-size:16px}.ps4-package-card p{min-height:54px;margin:0 0 16px;color:var(--text-dim);font-size:12px;line-height:1.55}.ps4-package-card label{display:block;margin:10px 0;color:var(--text-dim);font-size:11px;font-weight:700}.ps4-package-card input,.ps4-package-card select{width:100%;min-width:0;padding:9px 10px;color:var(--text);background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.1);border-radius:8px}.ps4-package-path{display:flex;gap:7px;margin-top:5px}.ps4-package-path input{flex:1}.ps4-package-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.ps4-package-jobs{margin-top:14px;padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(0,0,0,.13)}.ps4-package-jobs-head{display:flex;justify-content:space-between;align-items:center}.ps4-package-jobs h4{margin:0}.ps4-package-job{display:grid;grid-template-columns:1fr auto;gap:5px 16px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06)}.ps4-package-job:last-child{border:0}.ps4-package-job small{color:var(--text-dim)}.ps4-package-job-state{align-self:center;padding:4px 8px;border:1px solid rgba(171,126,255,.25);border-radius:999px;color:#d8c1ff;font-size:11px;font-weight:800;text-transform:uppercase}.ps4-package-dialog .jb-settings-footer{justify-content:space-between}.ps4-package-dialog .jb-settings-footer p{margin:0}@media(max-width:760px){.ps4-package-grid{grid-template-columns:1fr}.ps4-package-phasebar i{display:none}.ps4-package-card p{min-height:0}.ps4-package-dialog{width:calc(100vw - 16px)}}
|
||||
@@ -0,0 +1,88 @@
|
||||
.ps5-native-package-dialog {
|
||||
background: radial-gradient(circle at 82% 8%, rgba(93, 214, 255, .12), transparent 32%), radial-gradient(circle at 8% 88%, rgba(154, 124, 255, .12), transparent 30%), linear-gradient(145deg, rgba(17, 22, 34, .99), rgba(10, 11, 19, .99));
|
||||
border-color: rgba(93, 214, 255, .25);
|
||||
}
|
||||
.ps5-native-package-emblem { border-color: rgba(154, 124, 255, .62); box-shadow: 0 0 28px rgba(154, 124, 255, .2), inset 0 0 18px rgba(93, 214, 255, .08); }
|
||||
.ps5-native-package-emblem i { border-color: rgba(93, 214, 255, .62); }
|
||||
.ps5-native-truthbar { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; padding: 12px 14px; margin-bottom: 16px; border: 1px solid rgba(93, 214, 255, .22); border-radius:12px; background: linear-gradient(90deg, rgba(93, 214, 255, .1), rgba(154, 124, 255, .08)); color: var(--text-dim); font-size:12px; }
|
||||
.ps5-native-truthbar strong { color: #d8f6ff; letter-spacing: .04em; text-transform: uppercase; }
|
||||
.ps5-native-settings-card { position: relative; overflow: hidden; }
|
||||
.ps5-native-settings-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(#5dd6ff, #9a7cff); }
|
||||
.ps5-native-settings-truth { margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(154, 124, 255, .14); }
|
||||
.ps5-fpkg-phasebar { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
||||
.ps5-fpkg-evidence-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0 0 18px; }
|
||||
.ps5-fpkg-evidence-grid article { display: grid; gap: 7px; min-width: 0; padding: 13px 14px; border: 1px solid rgba(255,255,255,.09); border-radius: 13px; background: rgba(4,8,16,.34); }
|
||||
.ps5-fpkg-evidence-grid small { color: var(--text-dim); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
|
||||
.ps5-fpkg-evidence-grid strong { overflow-wrap: anywhere; color: #cbd5e6; font-size: 12px; line-height: 1.45; }
|
||||
.ps5-fpkg-evidence-grid strong[data-state="safe"], .ps5-fpkg-evidence-grid strong[data-state="ready"], .ps5-fpkg-evidence-grid strong[data-state="qualified"] { color: #64e6bd; }
|
||||
.ps5-fpkg-evidence-grid strong[data-state="pending"], .ps5-fpkg-evidence-grid strong[data-state="running"] { color: #8ce9ff; }
|
||||
.ps5-fpkg-evidence-grid strong[data-state="blocked"], .ps5-fpkg-evidence-grid strong[data-state="failed"] { color: #ff9da7; }
|
||||
.ps5-staging-workflow { position: relative; display: grid; grid-template-columns: minmax(230px, .8fr) minmax(300px, 1.2fr); gap: 18px 24px; padding: 20px; margin: 0 0 18px; overflow: hidden; border: 1px solid rgba(154, 124, 255, .24); border-radius:16px; background: linear-gradient(125deg, rgba(30, 39, 61, .86), rgba(13, 16, 28, .92)); box-shadow: inset 0 1px rgba(255,255,255,.04), 0 18px 55px rgba(0,0,0,.18); }
|
||||
.ps5-staging-workflow::after { content: ""; position: absolute; width: 260px; height: 260px; right: -120px; top: -150px; border-radius: 50%; background: rgba(93, 214, 255, .07); filter: blur(3px); pointer-events: none; }
|
||||
.ps5-staging-copy { position: relative; z-index: 1; }
|
||||
.ps5-staging-copy h4 { margin: 5px 0 7px; color: #eefaff; }
|
||||
.ps5-staging-copy p, .ps5-staging-limit { margin: 0; color: var(--text-dim); font-size:12px; line-height: 1.55; }
|
||||
.ps5-staging-illustration { display: flex; align-items: center; min-height: 76px; padding: 8px 0; }
|
||||
.ps5-stage-node { position: relative; display: grid; flex: 0 0 58px; height: 58px; place-items: center; border: 1px solid rgba(93,214,255,.38); border-radius:17px; background: radial-gradient(circle at 35% 25%, rgba(93,214,255,.2), rgba(12,18,31,.95)); box-shadow: 0 0 26px rgba(93,214,255,.11), inset 0 1px rgba(255,255,255,.08); }
|
||||
.ps5-stage-node.vault { border-color: rgba(154,124,255,.52); transform: rotate(45deg); }
|
||||
.ps5-stage-node.vault i { transform: rotate(-45deg); }
|
||||
.ps5-stage-node.package { border-color: rgba(73,226,179,.45); }
|
||||
.ps5-stage-node i { font: 700 11px/1 var(--font-mono, monospace); color: #d9f8ff; letter-spacing: .08em; font-style: normal; }
|
||||
.ps5-stage-track { position: relative; flex: 1; height: 1px; overflow: visible; background: linear-gradient(90deg, rgba(93,214,255,.28), rgba(154,124,255,.5)); }
|
||||
.ps5-stage-track.build { background: linear-gradient(90deg, rgba(154,124,255,.5), rgba(73,226,179,.35)); }
|
||||
.ps5-stage-track i { position: absolute; width: 7px; height: 7px; top: -3px; border-radius: 50%; background: #8ce9ff; box-shadow: 0 0 12px #5dd6ff; animation: ps5-stage-pulse 2.2s ease-in-out infinite; }
|
||||
.ps5-stage-track.build i { animation-delay: 1.1s; background: #a994ff; box-shadow: 0 0 12px #9a7cff; }
|
||||
@keyframes ps5-stage-pulse { 0% { left: 0; opacity: 0; } 18% { opacity: 1; } 82% { opacity: 1; } 100% { left: calc(100% - 7px); opacity: 0; } }
|
||||
.ps5-staging-controls { display: flex; gap: 9px; align-items: center; justify-content: flex-end; z-index: 1; }
|
||||
.ps5-staging-components { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
|
||||
.ps5-staging-component { display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; min-width: 0; padding: 11px 12px; border: 1px solid rgba(255,255,255,.09); border-radius:12px; background: rgba(4,8,16,.34); }
|
||||
.ps5-staging-component input { accent-color: #7cddff; }
|
||||
.ps5-staging-component > span { display: grid; min-width: 0; gap: 4px; }
|
||||
.ps5-staging-component strong { font-size:12px; text-transform: uppercase; letter-spacing: .06em; }
|
||||
.ps5-staging-component small { overflow: hidden; color: var(--text-dim); text-overflow: ellipsis; white-space: nowrap; }
|
||||
.ps5-staging-component em { padding: 3px 6px; border-radius:99px; background: rgba(93,214,255,.09); color: #bcefff; font-size:11px; font-style: normal; text-transform: uppercase; }
|
||||
.ps5-staging-limit { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.07); }
|
||||
.ps5-package-comparison { display: grid; gap: 14px; margin: 0 0 18px; padding: 18px; border: 1px solid rgba(154,124,255,.24); border-radius:16px; background: linear-gradient(135deg, rgba(23,29,47,.86), rgba(10,13,23,.94)); }
|
||||
.ps5-package-comparison h4 { margin: 5px 0 6px; }
|
||||
.ps5-package-comparison p { margin: 0; color: var(--text-dim); font-size:12px; line-height: 1.5; }
|
||||
.ps5-package-comparison-controls { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; gap: 10px; align-items: end; }
|
||||
.ps5-package-comparison-controls label { display: grid; min-width: 0; gap: 6px; color: var(--text-dim); font-size:11px; }
|
||||
.ps5-package-comparison-controls select { width: 100%; min-width: 0; }
|
||||
.ps5-package-comparison-controls .btn { white-space: nowrap; }
|
||||
.ps5-package-comparison-result { min-height: 56px; padding: 13px; border: 1px solid rgba(93,214,255,.16); border-radius:12px; background: rgba(4,8,16,.34); }
|
||||
.ps5-package-comparison-trust { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: center; margin-bottom: 10px; }
|
||||
.ps5-package-comparison-trust span { display: grid; gap: 3px; }
|
||||
.ps5-package-comparison-trust span:last-child { text-align: right; }
|
||||
.ps5-package-comparison-trust small { color: var(--text-dim); }
|
||||
.ps5-package-comparison-trust strong[data-trust="post-scan-proven"] { color: #64e6bd; }
|
||||
.ps5-package-comparison-trust strong[data-trust="appinst-rejected"] { color: #ff8f9b; }
|
||||
.ps5-package-comparison-result ul { display: grid; gap: 6px; margin: 0 0 10px; padding: 0; list-style: none; }
|
||||
.ps5-package-comparison-result li { display: flex; justify-content: space-between; gap: 12px; font-size:11px; }
|
||||
.ps5-package-comparison-result li span { color: var(--text-dim); }
|
||||
.ps5-upstream-control { position: relative; display: grid; gap: 15px; margin: 0 0 18px; padding: 19px; overflow: hidden; border: 1px solid rgba(73,226,179,.24); border-radius:16px; background: radial-gradient(circle at 92% 5%, rgba(73,226,179,.13), transparent 34%), linear-gradient(135deg, rgba(17,32,40,.88), rgba(9,14,24,.95)); box-shadow: inset 0 1px rgba(255,255,255,.04), 0 16px 48px rgba(0,0,0,.16); }
|
||||
.ps5-upstream-control::after { content: "UPSTREAM / STOCK"; position: absolute; right: 18px; top: 17px; color: rgba(157,247,220,.24); font: 700 11px/1 var(--font-mono, monospace); letter-spacing: .14em; pointer-events: none; }
|
||||
.ps5-upstream-control-copy { display: flex; gap: 12px; align-items: flex-start; }
|
||||
.ps5-upstream-control-copy h4 { margin: 5px 0 6px; color: #ecfff9; }
|
||||
.ps5-upstream-control-copy p { max-width: 720px; margin: 0; color: var(--text-dim); font-size:12px; line-height: 1.55; }
|
||||
.ps5-upstream-control-proof { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
|
||||
.ps5-upstream-control-proof span { display: grid; gap: 4px; padding: 11px 12px; border: 1px solid rgba(73,226,179,.13); border-radius:12px; background: rgba(3,12,17,.38); }
|
||||
.ps5-upstream-control-proof small { color: var(--text-dim); font-size:11px; letter-spacing: .08em; text-transform: uppercase; }
|
||||
.ps5-upstream-control-proof strong { overflow: hidden; color: #dffbf3; font: 600 11px/1.3 var(--font-mono, monospace); text-overflow: ellipsis; white-space: nowrap; }
|
||||
.ps5-upstream-control-proof strong[data-trust="post-scan-proven"] { color: #64e6bd; }
|
||||
.ps5-upstream-control-status { min-height: 20px; color: #bceee0; font-size:11px; }
|
||||
.ps5-upstream-control-actions { display: flex; flex-wrap: wrap; gap: 9px; }
|
||||
.ps5-p15-r2-qualification::after { content: "R4 / READ ONLY"; }
|
||||
.ps5-p15-r2-matrix { width: 100%; border-collapse: collapse; color: var(--text-dim); font-size: 11px; }
|
||||
.ps5-p15-r2-matrix th, .ps5-p15-r2-matrix td { padding: 7px 9px; border-bottom: 1px solid rgba(73,226,179,.12); text-align: left; }
|
||||
.ps5-p15-r2-matrix td[data-result="PASS"] { color: #64e6bd; font-weight: 700; }
|
||||
.ps5-p15-r2-matrix td[data-result="FAIL"] { color: #ff8f9b; font-weight: 700; }
|
||||
.ps5-p15-r2-kstuff-evidence { display: block; max-width: 72ch; color: inherit; overflow-wrap: anywhere; white-space: normal; }
|
||||
.ps5-launch-reference { border-color: rgba(93,214,255,.28); background: radial-gradient(circle at 92% 5%, rgba(93,214,255,.14), transparent 34%), linear-gradient(135deg, rgba(17,27,44,.9), rgba(9,14,24,.95)); }
|
||||
.ps5-launch-reference::after { content: "LAUNCH / REFERENCE"; color: rgba(157,225,247,.28); }
|
||||
.ps5-launch-reference .ps5-upstream-control-proof span { border-color: rgba(93,214,255,.15); }
|
||||
@media (prefers-reduced-motion: reduce) { .ps5-stage-track i { animation: none; left: 50%; } }
|
||||
@media (max-width: 760px) { .ps5-staging-workflow { grid-template-columns: 1fr; } .ps5-staging-controls { justify-content: flex-start; } .ps5-staging-components { grid-template-columns: 1fr; } }
|
||||
@media (max-width: 760px) { .ps5-package-comparison-controls { grid-template-columns: 1fr; } }
|
||||
@media (max-width: 760px) { .ps5-fpkg-phasebar { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ps5-fpkg-evidence-grid { grid-template-columns: 1fr; } }
|
||||
@media (max-width: 620px) { .ps5-upstream-control-proof { grid-template-columns: 1fr; } }
|
||||
@media (max-width: 620px) { .ps5-native-truthbar { grid-template-columns: 1fr; } }
|
||||
@@ -0,0 +1,12 @@
|
||||
.ps5-profile-workspace{position:relative;margin-bottom:16px;overflow:hidden;border:1px solid rgba(var(--accent-rgb),.26);border-radius:16px;background:linear-gradient(145deg,rgba(var(--accent-rgb),.09),rgba(9,10,17,.78) 38%,rgba(0,203,190,.04));box-shadow:0 26px 70px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.06)}
|
||||
.ps5-profile-workspace::before{position:absolute;inset:0;pointer-events:none;content:"";background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(#000,transparent 75%)}
|
||||
.ps5-profile-hero{position:relative;display:grid;grid-template-columns:130px minmax(0,1fr) auto;align-items:center;gap:24px;padding:26px 28px;border-bottom:1px solid rgba(255,255,255,.07)}
|
||||
.ps5-profile-orbit{position:relative;width:112px;aspect-ratio:1;border:1px solid rgba(var(--accent-rgb),.35);border-radius:50%;box-shadow:inset 0 0 35px rgba(var(--accent-rgb),.12),0 0 40px rgba(var(--accent-rgb),.1)}
|
||||
.ps5-profile-orbit::before,.ps5-profile-orbit::after{position:absolute;inset:15px;border:1px solid rgba(0,210,214,.25);border-radius:42% 58% 55% 45%;content:"";animation:profile-orbit 12s linear infinite}.ps5-profile-orbit::after{inset:31px;animation-direction:reverse;animation-duration:8s}.ps5-profile-orbit span{position:absolute;inset:0;display:grid;place-items:center;color:var(--teal);font-size:28px;text-shadow:0 0 18px var(--teal)}.ps5-profile-orbit i{position:absolute;z-index:1;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}.ps5-profile-orbit i:nth-child(1){top:8px;left:51px}.ps5-profile-orbit i:nth-child(2){right:9px;bottom:27px;background:var(--teal)}.ps5-profile-orbit i:nth-child(3){bottom:9px;left:28px}
|
||||
@keyframes profile-orbit{to{transform:rotate(1turn)}}
|
||||
.ps5-profile-kicker,.ps5-profile-panel-head span,.ps5-profile-recovery>div:first-child>span{color:var(--teal);font:750 11px/1.2 var(--mono);letter-spacing:.16em;text-transform:uppercase}.ps5-profile-hero h2{margin:5px 0 7px;font-size:25px;letter-spacing:-.035em}.ps5-profile-hero p{max-width:720px;margin:0;color:var(--text-dim);font-size:12px;line-height:1.55}.ps5-profile-boundary{display:flex;gap:7px;align-items:center;margin-top:11px;color:var(--green);font-size:11px}.ps5-profile-provider-state{max-width:200px;padding:9px 12px;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);background:rgba(0,0,0,.22);font-size:11px;text-align:center}.ps5-profile-provider-state.is-ready{border-color:rgba(70,220,160,.42);color:var(--green)}.ps5-profile-provider-state.is-blocked{border-color:rgba(240,175,70,.38);color:var(--yellow)}
|
||||
.ps5-profile-runtime{position:relative;display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:15px;padding:13px 28px;border-bottom:1px solid rgba(255,255,255,.07);background:linear-gradient(90deg,rgba(0,210,214,.075),rgba(var(--accent-rgb),.045))}.ps5-profile-runtime-mark{display:grid;place-items:center;width:38px;aspect-ratio:1;border:1px solid rgba(0,210,214,.38);border-radius:12px;background:rgba(0,210,214,.08);box-shadow:inset 0 0 18px rgba(0,210,214,.12)}.ps5-profile-runtime-mark span{width:9px;aspect-ratio:1;border-radius:50%;background:var(--yellow);box-shadow:0 0 13px currentColor}.ps5-profile-runtime.is-ready .ps5-profile-runtime-mark span{color:var(--green);background:var(--green)}.ps5-profile-runtime h3{margin:2px 0;font-size:12px}.ps5-profile-runtime p{margin:0;color:var(--text-dim);font-size:11px}.ps5-profile-runtime-actions{display:flex;align-items:center;gap:10px}.ps5-profile-runtime-actions>span{color:var(--yellow);font:700 11px var(--mono);text-transform:uppercase}.ps5-profile-runtime.is-ready .ps5-profile-runtime-actions>span{color:var(--green)}
|
||||
.ps5-profile-grid{position:relative;display:grid;grid-template-columns:minmax(260px,.72fr) minmax(380px,1.28fr);gap:1px;background:rgba(255,255,255,.07)}.ps5-profile-panel{min-width:0;padding:22px;background:rgba(12,12,20,.9)}.ps5-profile-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.ps5-profile-panel h3,.ps5-profile-recovery h3{margin:3px 0 0;font-size:16px}.ps5-profile-users{display:grid;gap:8px}.ps5-profile-user{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;padding:10px;border:1px solid var(--border);border-radius:12px;color:var(--text);background:rgba(255,255,255,.025);text-align:left;cursor:pointer;transition:.18s ease}.ps5-profile-user:hover,.ps5-profile-user.is-selected{border-color:rgba(var(--accent-rgb),.62);background:rgba(var(--accent-rgb),.1);transform:translateX(3px)}.ps5-profile-user-avatar{display:grid;place-items:center;width:42px;aspect-ratio:1;border-radius:13px;color:#fff;background:linear-gradient(145deg,var(--accent),var(--teal));font-weight:800}.ps5-profile-user strong,.ps5-profile-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps5-profile-user small{margin-top:3px;color:var(--text-dim);font:11px var(--mono)}.ps5-profile-user em{color:var(--green);font:700 11px var(--mono);font-style:normal;text-transform:uppercase}.ps5-profile-uid{color:var(--text-dim);font:11px var(--mono)}
|
||||
.ps5-profile-avatar-stage{display:grid;grid-template-columns:132px 1fr;align-items:center;gap:20px;padding:17px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(120deg,rgba(var(--accent-rgb),.08),rgba(255,255,255,.015))}.ps5-profile-avatar-shell{position:relative;width:116px;aspect-ratio:1;overflow:hidden;border:1px solid rgba(var(--accent-rgb),.46);border-radius:32%;background:radial-gradient(circle at 65% 20%,rgba(0,210,214,.36),transparent 42%),#17131f;box-shadow:0 15px 30px rgba(0,0,0,.26)}.ps5-profile-avatar-shell canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}.ps5-profile-avatar-shell.has-preview canvas{opacity:1}.ps5-profile-avatar-shell.has-preview span{opacity:0}.ps5-profile-avatar-shell span{position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:38px;font-weight:800}.ps5-profile-avatar-stage strong{font-size:14px}.ps5-profile-avatar-stage p{margin:5px 0 12px;color:var(--text-dim);font-size:11px;line-height:1.5}.ps5-profile-name-field{display:block;margin-top:16px;color:var(--text);font-size:11px;font-weight:700}.ps5-profile-name-field>div{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:7px}.ps5-profile-name-field input{min-width:0;padding:9px 11px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--bg2);font:600 12px inherit}.ps5-profile-name-field small{display:block;margin-top:7px;color:var(--text-dim);font-weight:400}.ps5-profile-action-state{min-height:18px;margin-top:11px;color:var(--text-dim);font-size:11px}.ps5-profile-action-state.is-error{color:var(--red)}.ps5-profile-action-state.is-ok{color:var(--green)}
|
||||
.ps5-profile-recovery{position:relative;display:grid;grid-template-columns:minmax(220px,.55fr) minmax(360px,1.45fr);gap:24px;padding:22px 28px;background:rgba(8,9,15,.82)}.ps5-profile-recovery p{max-width:340px;margin:7px 0 0;color:var(--text-dim);font-size:11px;line-height:1.5}.ps5-profile-operations{display:grid;gap:7px}.ps5-profile-operation{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025)}.ps5-profile-operation strong,.ps5-profile-operation small{display:block}.ps5-profile-operation small{margin-top:3px;color:var(--text-dim);font-size:11px}.ps5-profile-operation-status{color:var(--teal);font:700 11px var(--mono);text-transform:uppercase}.ps5-profile-empty{padding:16px;border:1px dashed var(--border);border-radius:12px;color:var(--text-dim);font-size:11px;text-align:center}
|
||||
@media(max-width:900px){.ps5-profile-hero{grid-template-columns:90px 1fr}.ps5-profile-orbit{width:82px}.ps5-profile-provider-state{grid-column:1/-1;max-width:none}.ps5-profile-runtime{grid-template-columns:42px 1fr}.ps5-profile-runtime-actions{grid-column:1/-1;justify-content:space-between}.ps5-profile-grid,.ps5-profile-recovery{grid-template-columns:1fr}}@media(max-width:560px){.ps5-profile-hero{grid-template-columns:1fr;padding:20px}.ps5-profile-orbit{display:none}.ps5-profile-runtime{grid-template-columns:1fr;padding:16px 20px}.ps5-profile-runtime-mark{display:none}.ps5-profile-runtime-actions{flex-direction:column;align-items:stretch}.ps5-profile-panel,.ps5-profile-recovery{padding:18px}.ps5-profile-avatar-stage{grid-template-columns:1fr}.ps5-profile-name-field>div{grid-template-columns:1fr}.ps5-profile-operation{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.ps5-profile-orbit::before,.ps5-profile-orbit::after{animation:none}.ps5-profile-user{transition:none}.ps5-profile-user:hover,.ps5-profile-user.is-selected{transform:none}}
|
||||
@@ -0,0 +1,13 @@
|
||||
:root{--fs-micro:11px}
|
||||
:root { color-scheme: dark; font: 16px/1.5 Inter, ui-sans-serif, system-ui, sans-serif; background: #0e0d12; color: #f7f3ff; }
|
||||
* { box-sizing: border-box; } [hidden] { display: none !important; } body { margin: 0; min-height: 100vh; background: radial-gradient(circle at top, #302248 0, #121018 42%, #09090c 100%); }
|
||||
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 32px 16px; }
|
||||
.auth-card { width: min(820px, 100%); padding: clamp(24px, 5vw, 48px); border: 1px solid #554567; border-radius:24px; background: rgba(20,18,27,.96); box-shadow: 0 24px 80px #0009; }
|
||||
.logo { width: 72px; height: 72px; object-fit: contain; float: right; } .eyebrow, .step { color: #c9a7ff; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-size: var(--fs-micro); }
|
||||
h1 { margin: 0; font-size: clamp(2rem, 6vw, 3.6rem); } h2 { margin-top: 2rem; } form { display: grid; gap: 18px; margin-top: 28px; }
|
||||
label { display: grid; gap: 7px; font-weight: 650; } input, select, button { min-height: 46px; border-radius:12px; border: 1px solid #625574; padding: 10px 12px; font: inherit; }
|
||||
input, select { color: #fff; background: #0d0c11; } button { border: 0; color: #170d22; background: #c79aff; font-weight: 850; cursor: pointer; }
|
||||
button.secondary { color: #eadcff; background: #30263d; border: 1px solid #67547c; } .grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; } .grid.three { grid-template-columns: 2fr 1fr 1fr; }
|
||||
.panel, fieldset { padding: 14px; border: 1px solid #493c58; border-radius:12px; background: #0e0d12; white-space: pre-line; } .check { display: flex; align-items: flex-start; gap: 8px; font-weight: 500; } .check input { min-height: auto; margin-top: 5px; }
|
||||
#message { min-height: 24px; color: #d9c7ef; } #message.error { color: #ff9fa9; } #message.success { color: #93e5b1; } small { color: #aa9cb7; font-weight: 400; }
|
||||
@media (max-width: 680px) { .grid, .grid.three { grid-template-columns: 1fr; } .auth-card { padding: 24px 18px; border-radius:16px; } .logo { width: 52px; height: 52px; } }
|
||||
@@ -0,0 +1 @@
|
||||
@font-face{font-family:Inter;src:url("../assets/fonts/inter-latin.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:"Space Grotesk";src:url("../assets/fonts/space-grotesk-latin.woff2") format("woff2");font-style:normal;font-weight:300 700;font-display:swap}:root{color-scheme:dark;--bg:#0d0a11;--surface:#120e17;--surface2:#18131e;--surface3:#211a29;--surface4:#2b2334;--border:#342b3d;--border-soft:rgba(244,238,251,.09);--accent:#cbbaff;--accent-d:#7651e6;--accent-rgb:118,81,230;--teal:#22c7e8;--teal-d:#159db9;--green:#2ed39a;--yellow:#e4ad55;--red:#ee6d75;--text:#f4eefb;--text-dim:#c6bbd2;--text-muted:#978ca3;--mono:"Cascadia Code","SFMono-Regular",Consolas,monospace;--ui:Inter,"Segoe UI",system-ui,sans-serif;--display:"Space Grotesk",Inter,"Segoe UI",sans-serif;--fs-micro:11px;--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-lg:20px;--fs-xl:28px;--fs-display:34px;--shadow-flat:none;--sidebar-w:232px;--titlebar-h:34px;--statusbar-h:28px;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow-panel:0 16px 40px rgba(0,0,0,.22);--shadow-float:0 28px 80px rgba(0,0,0,.48);--focus-ring:0 0 0 3px rgba(118,81,230,.28)}body,html{background:radial-gradient(circle at 78% -15%,rgba(94,53,177,.13),transparent 34rem),var(--bg);color:var(--text);font-family:Inter,"Segoe UI",system-ui,sans-serif;font-size:14px;line-height:1.45;background:radial-gradient(circle at 78% -12%,rgba(94,53,177,.17),transparent 32rem),#120e17}body,button,input,select,textarea{font-family:Inter,"Segoe UI",system-ui,sans-serif}#chimera-route-title,.sidebar-brand-copy strong,.stat-num,h1,h2,h3,h4{font-family:"Space Grotesk",Inter,sans-serif;letter-spacing:-.025em}::selection{color:#fff;background:rgba(94,53,177,.72)}:where(button,a,input,textarea,select,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--focus-ring)}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{min-height:40px;padding:9px 12px;color:var(--text);background:rgba(22,18,28,.82);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;line-height:20px;transition:border-color .16s,background .16s,box-shadow .16s}.search-input,input[type=search]{height:40px;min-height:40px!important;padding-block:9px!important;line-height:20px!important}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}input:hover,select:hover,textarea:hover{border-color:#625c6c}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);background:#1a1620;box-shadow:var(--focus-ring)}input[type=checkbox],input[type=radio]{accent-color:var(--accent-d)}#titlebar{background:rgba(12,9,15,.97);border-bottom-color:var(--border-soft)}#titlebar-drag{font-family:"Space Grotesk",sans-serif;color:var(--text-dim);letter-spacing:.02em}#titlebar-x-link{color:var(--text-muted);border-color:var(--border-soft)}#app{background:0 0}#sidebar{position:relative;padding:18px 0 14px;border-right:1px solid var(--border-soft);background:linear-gradient(180deg,rgba(94,53,177,.1),transparent 15rem),#0d0a11}#sidebar::after{content:"";position:absolute;top:0;right:-1px;bottom:0;width:1px;pointer-events:none;background:linear-gradient(transparent,rgba(209,188,255,.18),transparent)}.sidebar-brand{gap:11px;color:var(--text)}.sidebar-brand-copy{display:flex;min-width:0;flex-direction:column;gap:1px}.sidebar-brand-copy strong{color:var(--text);line-height:1.1}.sidebar-brand-copy small{color:var(--text-muted);font-weight:650;letter-spacing:.12em;text-transform:uppercase}.chimera-nav-root{padding-inline:10px}.chimera-domain-button{font-size:12px}.chimera-domain-button svg{width:19px;height:19px}.chimera-domain-button:focus-visible,.chimera-domain-button:hover{color:var(--text);background:rgba(232,223,238,.055)}.chimera-domain-button.active,.chimera-domain.active>.chimera-domain-button{color:var(--accent);border-color:rgba(209,188,255,.16)}.chimera-domain-routes{border-left-color:rgba(209,188,255,.12)}.chimera-route-link{padding:7px 10px}#sidebar-donate{margin-top:auto;border-top-color:var(--border-soft)}body.chimera-shell-v2 #dash-conn-badge,body.chimera-shell-v2 #sidebar-conn{display:none}#content{padding:24px 28px 34px;gap:22px;scrollbar-gutter:stable;position:relative;background-image:linear-gradient(rgba(209,188,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(209,188,255,.018) 1px,transparent 1px);background-size:32px 32px}body.chimera-shell-v2 #chimera-route-header,body.chimera-shell-v2 .page.active{width:min(100%,1600px)}#chimera-shell-toolbar{flex:0 0 auto;top:-24px;margin:-24px -28px 0;padding:8px 28px;justify-content:flex-start;gap:10px;border-bottom-color:var(--border-soft);box-shadow:0 12px 24px rgba(0,0,0,.08)}.chimera-toolbar-spacer{flex:1}.chimera-shell-health{display:inline-grid;grid-template-columns:9px auto;align-items:center;gap:10px;min-height:38px;padding:6px 11px;color:var(--text);border:1px solid var(--border-soft)}.chimera-shell-health-dot{width:8pLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
.title-derived-badges{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px}.title-badge{border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:700;padding:5px 9px}.title-workspace-grid,.title-fact-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.title-location-card,.title-evidence-row,.title-fact-grid>div,.title-workspace-empty{border:1px solid var(--border);border-radius:12px;padding:13px 14px}.title-location-card{display:grid;gap:7px;grid-template-columns:minmax(0,1fr) auto}.title-location-card.is-missing{border-color:#f0be63}.title-location-card h4{margin:3px 0 0;overflow-wrap:anywhere}.title-location-card p{color:var(--text-dim);font-size:12px;grid-column:1/-1;margin:0;overflow-wrap:anywhere}.title-location-kind,.title-location-state,.title-evidence-row span,.title-evidence-row time,.title-fact-grid dt{color:var(--text-dim);font-size:11px}.title-location-state{text-align:right}.title-evidence-list{display:grid;gap:9px}.title-evidence-row{display:flex;gap:14px;justify-content:space-between}.title-workspace-empty{color:var(--text-dim);text-align:center}.title-fact-grid{margin:0}.title-fact-grid dt{margin-bottom:6px}.title-fact-grid dd{margin:0}@media(max-width:680px){.title-workspace-grid,.title-fact-grid{grid-template-columns:1fr}.title-location-card{grid-template-columns:1fr}.title-location-state,.title-evidence-row span,.title-evidence-row time{text-align:left}.title-evidence-row{align-items:flex-start;flex-direction:column;gap:5px}}
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
.trophy-definition-import{margin-top:6px;padding:12px;border:1px dashed var(--border);border-radius:8px}.trophy-definition-import>summary{cursor:pointer;font-weight:700}.trophy-definition-import label,.trophy-definition-import textarea{display:block;width:100%;margin-top:10px}.trophy-definition-import textarea{box-sizing:border-box;resize:vertical;font:11px var(--mono);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px}.trophy-definition-import .btn{margin-top:10px}
|
||||
.trophy-history-auth,.trophy-history-search,.trophy-history-selection{display:grid;gap:.75rem;margin-top:1rem}
|
||||
.trophy-history-auth,.trophy-history-search{grid-template-columns:minmax(12rem,1fr) auto;align-items:end}
|
||||
.trophy-history-auth summary{grid-column:1/-1;cursor:pointer;font-weight:700}
|
||||
.trophy-history-auth label,.trophy-history-search label{grid-column:1/-1}
|
||||
.trophy-history-games{display:grid;gap:.5rem;max-height:30rem;overflow:auto;padding:.25rem}
|
||||
.trophy-history-game{display:flex;gap:.75rem;align-items:center;padding:.7rem;border:1px solid var(--border-color,rgba(255,255,255,.12));border-radius:.5rem}
|
||||
.trophy-history-game span{display:grid;gap:.2rem}.trophy-history-game small{opacity:.72}
|
||||
.trophy-history-selection>div:first-child,.trophy-history-selection>div:last-child{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
|
||||
.trophy-history-snapshots{display:grid;grid-template-columns:auto minmax(12rem,1fr);gap:.75rem;align-items:center;margin-top:1rem}.trophy-history-detail{display:grid;gap:.5rem;margin-top:.75rem}.trophy-history-detail details{border:1px solid var(--border-color,rgba(255,255,255,.12));border-radius:.5rem;padding:.6rem}.trophy-history-detail summary{display:flex;justify-content:space-between;gap:1rem;cursor:pointer}
|
||||
@media(max-width:700px){.trophy-history-auth,.trophy-history-search{grid-template-columns:1fr}}
|
||||
@@ -0,0 +1 @@
|
||||
.trophy-installed{display:grid;gap:10px}.trophy-installed-game{border:1px solid var(--border);border-radius:8px;overflow:hidden}.trophy-installed-game>summary{display:flex;justify-content:space-between;gap:12px;padding:12px;cursor:pointer;background:rgba(255,255,255,.025)}.trophy-installed-game>summary span{color:var(--text-dim);font-size:11px}.trophy-installed-game>.trophy-active-list{padding:8px}
|
||||
@@ -0,0 +1,11 @@
|
||||
.trophy-library-shell{display:grid;gap:22px;overflow:hidden;padding:22px;background:radial-gradient(circle at 8% 0%,rgba(118,81,230,.14),transparent 32%),radial-gradient(circle at 92% 18%,rgba(0,188,212,.09),transparent 28%),var(--surface)}
|
||||
.trophy-library-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.trophy-library-heading>div>span,.trophy-library-unlock-review>div>span{color:var(--accent);font:700 11px var(--mono);letter-spacing:.14em;text-transform:uppercase}.trophy-library-heading h2{margin:5px 0 6px;font-size:clamp(22px,3vw,30px);letter-spacing:-.03em}.trophy-library-heading p,.trophy-library-detail-header p{max-width:650px;margin:0;color:var(--text-dim);font-size:11px;line-height:1.6}.trophy-library-totals{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:2px 8px;min-width:126px;padding:12px 15px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(8,7,14,.46);box-shadow:inset 0 1px rgba(255,255,255,.04)}.trophy-library-totals strong{color:var(--teal);font-size:17px}.trophy-library-totals span{color:var(--text-dim);font-size:11px}
|
||||
.trophy-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.trophy-library-game-card{position:relative;display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:12px;min-height:118px;padding:10px;text-align:left;color:var(--text);background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));border:1px solid var(--border);border-radius:13px;cursor:pointer;overflow:hidden;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.trophy-library-game-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.06),transparent 70%);transform:translateX(-120%);transition:transform .5s ease}.trophy-library-game-card:hover,.trophy-library-game-card:focus-visible{border-color:rgba(118,81,230,.58);transform:translateY(-2px);box-shadow:0 16px 28px rgba(0,0,0,.2)}.trophy-library-game-card:hover::after{transform:translateX(120%)}.trophy-library-game-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px rgba(118,81,230,.25),0 16px 32px rgba(39,23,77,.25)}.trophy-library-game-card.is-live::before{content:"";position:absolute;top:9px;right:9px;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}
|
||||
.trophy-library-cover{--tone:hsl(var(--trophy-tone),68%,56%);position:relative;display:grid;place-items:center;width:68px;height:96px;border-radius:12px;overflow:hidden;background:radial-gradient(circle at 62% 28%,hsla(var(--trophy-tone),80%,68%,.6),transparent 32%),linear-gradient(155deg,hsl(var(--trophy-tone),52%,26%),#0b0910 72%);box-shadow:0 10px 20px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.16)}.trophy-library-cover::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(120deg,transparent 0 11px,rgba(255,255,255,.035) 12px 13px)}.trophy-library-cover-mark{position:relative;z-index:1;color:#fff;font:800 21px var(--mono);letter-spacing:-.08em;text-shadow:0 4px 12px #000}.trophy-library-cover-orbit{position:absolute;width:58px;height:58px;border:1px solid hsla(var(--trophy-tone),82%,72%,.38);border-radius:50%;transform:rotateX(63deg)}.trophy-library-cover-progress{position:absolute;right:5px;bottom:5px;z-index:1;padding:3px 5px;color:#fff;background:rgba(0,0,0,.55);border-radius:999px;font:700 7px var(--mono)}.trophy-library-card-copy{display:grid;gap:6px;min-width:0}.trophy-library-card-copy>strong{display:-webkit-box;overflow:hidden;font-size:12px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.trophy-library-card-copy>small{color:var(--text-dim);font-size:11px}.trophy-library-card-meta{display:flex;align-items:center;gap:5px}.trophy-library-card-meta b,.trophy-library-card-meta i{padding:3px 5px;border-radius:999px;font:700 7px var(--mono);font-style:normal}.trophy-library-card-meta b{color:#b9a9ff;background:rgba(118,81,230,.15)}.trophy-library-card-meta i{color:var(--green);background:rgba(76,175,80,.1)}.trophy-library-card-track{height:3px;overflow:hidden;background:rgba(255,255,255,.07);border-radius:999px}.trophy-library-card-track i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--teal));border-radius:inherit}
|
||||
.trophy-library-detail{display:grid;gap:14px;padding:18px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:rgba(7,6,12,.44);box-shadow:inset 0 1px rgba(255,255,255,.035)}.trophy-library-detail-header{display:grid;grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:16px}.trophy-library-detail-header h3{margin:3px 0 5px;font-size:21px;letter-spacing:-.02em}.trophy-library-platform{color:#b9a9ff;font:700 11px var(--mono);letter-spacing:.12em;text-transform:uppercase}.trophy-library-detail-header dl{display:flex;gap:8px;margin:0}.trophy-library-detail-header dl div{min-width:62px;padding:9px;border:1px solid var(--border);border-radius:12px;text-align:center;background:rgba(255,255,255,.025)}.trophy-library-detail-header dt{color:var(--text-dim);font-size:11px}.trophy-library-detail-header dd{margin:3px 0 0;font-size:16px;font-weight:800}.trophy-library-progress-ring{--ring-color:var(--teal);display:grid;place-items:center;width:74px;height:74px;border-radius:50%;background:radial-gradient(circle at center,#11101a 56%,transparent 58%),conic-gradient(var(--ring-color) var(--trophy-progress),rgba(255,255,255,.08) 0);box-shadow:0 0 24px rgba(0,188,212,.1)}.trophy-library-progress-ring strong{font:800 16px var(--mono)}
|
||||
.trophy-library-toolbar{display:grid;grid-template-columns:auto minmax(170px,1fr) 126px auto;gap:9px;align-items:center}.trophy-library-segments{display:flex;padding:3px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:12px}.trophy-library-segments button{padding:7px 10px;color:var(--text-dim);background:transparent;border:0;border-radius:8px;font-size:11px;cursor:pointer}.trophy-library-segments button.is-active{color:var(--text);background:rgba(118,81,230,.2);box-shadow:0 1px 5px rgba(0,0,0,.25)}.trophy-library-search input,.trophy-library-grade select{width:100%;min-height:34px;box-sizing:border-box;color:var(--text);background:rgba(0,0,0,.22);border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-size:11px}.trophy-library-hidden{display:flex;align-items:center;gap:6px;color:var(--text-dim);font-size:11px;white-space:nowrap}.trophy-library-hidden input{width:16px;height:16px}.trophy-library-list{display:grid;gap:7px}.trophy-library-row{display:grid;grid-template-columns:42px minmax(0,1fr) 150px;align-items:center;gap:11px;min-height:62px;padding:9px 11px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(110deg,rgba(255,255,255,.025),rgba(255,255,255,.01));transition:border-color .16s ease,background .16s ease}.trophy-library-row:hover{border-color:rgba(255,255,255,.17);background:rgba(255,255,255,.035)}.trophy-library-row.is-earned{border-color:rgba(76,175,80,.25);background:linear-gradient(110deg,rgba(76,175,80,.06),rgba(255,255,255,.01))}.trophy-library-medal{position:relative;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,#9b672f,#4d2d18);box-shadow:inset 0 1px rgba(255,255,255,.34),0 5px 10px rgba(0,0,0,.25)}.trophy-library-medal::before{content:"";position:absolute;top:-4px;width:12px;height:10px;background:#7651e6;clip-path:polygon(0 0,100% 0,75% 100%,25% 100%)}.trophy-library-medal i{width:15px;height:15px;border:1px solid rgba(255,255,255,.5);border-radius:50%}.trophy-library-medal[data-grade=gold]{background:linear-gradient(145deg,#f4cc69,#8b5e15)}.trophy-library-medal[data-grade=silver]{background:linear-gradient(145deg,#d5dbe3,#667281)}.trophy-library-medal[data-grade=platinum]{background:linear-gradient(145deg,#b7f4ff,#7067b8)}.trophy-library-row-copy{display:grid;gap:3px;min-width:0}.trophy-library-row-copy strong{font-size:11px}.trophy-library-row-copy small{color:var(--text-dim);font-size:11px;line-height:1.45}.trophy-library-row-copy em{color:var(--text-dim);font:normal 7px var(--mono);text-transform:capitalize}.trophy-library-row-state{display:grid;justify-items:end;gap:4px;text-align:right}.trophy-library-row-state>b{color:var(--text-dim);font-size:11px}.trophy-library-row.is-earned .trophy-library-row-state>b{color:var(--green)}.trophy-library-row-state time{color:var(--text-dim);font-size:7px}.trophy-library-unlock{color:#ffd7d5;border-color:rgba(239,83,80,.35);background:rgba(239,83,80,.09)}
|
||||
.trophy-library-unlock-review{display:grid;grid-template-columns:44px minmax(200px,1fr) minmax(260px,.9fr) auto auto;align-items:center;gap:8px 10px;padding:13px;border:1px solid rgba(239,83,80,.35);border-radius:12px;background:radial-gradient(circle at 0 50%,rgba(239,83,80,.12),transparent 30%),rgba(239,83,80,.035)}.trophy-library-review-icon{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#ffd7d5;background:rgba(239,83,80,.15);font:800 11px var(--mono)}.trophy-library-unlock-review>div:not(.trophy-library-review-icon){grid-row:1/3}.trophy-library-unlock-review h3{margin:3px 0;font-size:14px}.trophy-library-unlock-review p{margin:0;color:var(--text-dim);font-size:11px}.trophy-library-unlock-review code{grid-column:3/-1;padding:6px 8px;overflow-wrap:anywhere;color:var(--amber);background:rgba(255,193,7,.055);border-radius:8px;font-size:11px}.trophy-library-unlock-review input{grid-column:3;min-width:0;color:var(--text);background:rgba(0,0,0,.25);border:1px solid var(--border);border-radius:8px;padding:8px}.trophy-library-unlock-review>p{grid-column:2/-1;min-height:12px}.trophy-library-result{margin:0;padding:10px;color:var(--green);border:1px solid rgba(76,175,80,.24);border-radius:12px;background:rgba(76,175,80,.06);font-size:11px}.trophy-library-no-results,.trophy-library-empty{display:grid;place-items:center;gap:6px;min-height:150px;text-align:center;color:var(--text-dim)}.trophy-library-no-results strong,.trophy-library-empty h2{color:var(--text)}.trophy-library-empty-icon{font-size:45px;color:var(--accent)}
|
||||
.trophy-advanced-workspace{border:1px solid var(--border);border-radius:13px;background:rgba(255,255,255,.015);overflow:hidden}.trophy-advanced-workspace>summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;list-style:none}.trophy-advanced-workspace>summary::-webkit-details-marker{display:none}.trophy-advanced-workspace>summary::before{content:"+";display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--border);border-radius:50%;color:var(--accent);font:700 12px var(--mono)}.trophy-advanced-workspace[open]>summary::before{content:"−"}.trophy-advanced-workspace>summary span{grid-column:2;color:var(--accent);font:700 11px var(--mono);letter-spacing:.12em;text-transform:uppercase}.trophy-advanced-workspace>summary strong{grid-column:2}.trophy-advanced-workspace>summary small{grid-column:3;grid-row:1/3;color:var(--text-dim);font-size:11px}.trophy-advanced-content{display:grid;gap:16px;padding:0 14px 14px}
|
||||
@media(max-width:900px){.trophy-library-detail-header{grid-template-columns:74px minmax(0,1fr)}.trophy-library-detail-header dl{grid-column:1/-1}.trophy-library-toolbar{grid-template-columns:1fr 1fr}.trophy-library-segments{grid-column:1/-1}.trophy-library-unlock-review{grid-template-columns:40px 1fr}.trophy-library-review-icon,.trophy-library-unlock-review>div:not(.trophy-library-review-icon){grid-row:auto}.trophy-library-unlock-review code,.trophy-library-unlock-review input,.trophy-library-unlock-review button,.trophy-library-unlock-review>p{grid-column:1/-1}.trophy-library-unlock-review button{width:100%}}
|
||||
@media(max-width:600px){.trophy-library-shell{padding:15px}.trophy-library-heading{display:grid}.trophy-library-totals{width:max-content}.trophy-library-grid{display:flex;margin-inline:-15px;padding-inline:15px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.trophy-library-grid::-webkit-scrollbar{display:none}.trophy-library-game-card{min-width:230px;scroll-snap-align:start}.trophy-library-detail{padding:12px}.trophy-library-toolbar{grid-template-columns:1fr}.trophy-library-search,.trophy-library-grade{grid-column:1}.trophy-library-row{grid-template-columns:36px minmax(0,1fr)}.trophy-library-row-state{grid-column:2;justify-items:start;text-align:left}.trophy-library-detail-header dl{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.trophy-advanced-workspace>summary small{display:none}}
|
||||
@media(prefers-reduced-motion:reduce){.trophy-library-game-card,.trophy-library-game-card::after,.trophy-library-row{transition:none}.trophy-library-game-card:hover{transform:none}}
|
||||
@@ -0,0 +1 @@
|
||||
.trophy-active{display:grid;gap:14px;overflow:hidden}.trophy-active-summary{display:flex;align-items:baseline;gap:8px}.trophy-active-summary strong{font-size:24px;color:var(--teal)}.trophy-active-summary span{color:var(--text-dim);font-size:11px}.trophy-active-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.trophy-active-row{display:grid;grid-template-columns:34px minmax(0,1fr) 72px 78px;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.018)}.trophy-active-row.is-unlocked{border-color:rgba(76,175,80,.3);background:rgba(76,175,80,.045)}.trophy-active-row strong,.trophy-active-row small{display:block}.trophy-active-row small{margin-top:3px;color:var(--text-dim);font-size:11px}.trophy-active-id{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.055);font:700 11px var(--mono)}.trophy-active-grade,.trophy-active-state{text-transform:capitalize;color:var(--text-dim);font-size:11px}.trophy-active-row.is-unlocked .trophy-active-state{color:var(--green)}@media(max-width:700px){.trophy-active-row{grid-template-columns:32px minmax(0,1fr)}.trophy-active-grade,.trophy-active-state{grid-column:2}}
|
||||
@@ -0,0 +1,4 @@
|
||||
.trophy-progression{display:grid;gap:1rem}.trophy-progression-controls{display:grid;grid-template-columns:repeat(3,minmax(12rem,1fr));gap:.75rem}.trophy-progression-controls label{display:grid;gap:.35rem;font-size:var(--fs-xs);font-weight:700}.trophy-progression-controls input,.trophy-progression-controls select{min-width:0;padding:.65rem;border:1px solid var(--border-color,rgba(255,255,255,.14));border-radius:.5rem;background:var(--bg);color:var(--text)}
|
||||
.trophy-progression-actions{display:flex;gap:.75rem;align-items:center;justify-content:space-between}.trophy-progression-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;max-height:28rem;overflow:auto}.trophy-progression-choice{display:flex;gap:.7rem;align-items:center;padding:.7rem;border:1px solid var(--border-color,rgba(255,255,255,.12));border-radius:.5rem}.trophy-progression-choice span{display:grid;gap:.2rem}.trophy-progression-choice small{opacity:.72}
|
||||
.trophy-progression-preview{display:grid;gap:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color,rgba(255,255,255,.12))}.trophy-synthetic-warning{display:grid;gap:.25rem;padding:.8rem;border:1px solid rgba(245,158,11,.45);border-radius:.55rem;background:rgba(245,158,11,.08)}.trophy-progression-preview ol{display:grid;gap:.5rem;list-style:none;padding:0;margin:0}.trophy-progression-preview li{display:grid;grid-template-columns:minmax(11rem,auto) 1fr;gap:1rem;align-items:center;padding:.65rem;border-left:3px solid var(--accent,#7c3aed)}.trophy-progression-preview li div{display:grid;gap:.15rem}.trophy-progression-preview small{opacity:.72}.trophy-progression-preview code{overflow-wrap:anywhere}
|
||||
@media(max-width:900px){.trophy-progression-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.trophy-progression-controls,.trophy-progression-choices{grid-template-columns:1fr}.trophy-progression-preview li{grid-template-columns:1fr;gap:.25rem}}
|
||||
@@ -0,0 +1 @@
|
||||
.trophy-active-state{display:grid;gap:5px}.trophy-unlock-panel{display:grid;gap:8px;padding:12px;border:1px solid rgba(239,83,80,.3);border-radius:8px}.trophy-unlock-panel code{overflow-wrap:anywhere;color:var(--amber)}.trophy-unlock-panel input{width:100%;box-sizing:border-box;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px}.trophy-hidden-controls{display:flex;align-items:center;justify-content:space-between;gap:18px}.trophy-hidden-controls h2{margin:0}.trophy-hidden-controls p{margin:5px 0 0;color:var(--muted)}.trophy-hidden-toggle{display:flex;align-items:center;gap:9px;white-space:nowrap}.trophy-hidden-toggle input{width:18px;height:18px}@media(max-width:720px){.trophy-hidden-controls{align-items:flex-start;flex-direction:column}.trophy-hidden-toggle{white-space:normal}}
|
||||
@@ -0,0 +1 @@
|
||||
.trophy-workspace{display:grid;gap:16px}.trophy-evidence,.trophy-expert{display:grid;gap:16px;overflow:hidden}.trophy-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.trophy-section-heading span{color:var(--accent);font:700 11px var(--mono);letter-spacing:.12em;text-transform:uppercase}.trophy-section-heading h2{margin:4px 0 0;font-size:20px}.trophy-readonly-badge,.trophy-local-only{padding:6px 9px;color:var(--teal);background:rgba(0,188,212,.08);border:1px solid rgba(0,188,212,.25);border-radius:999px;font-size:11px}.trophy-local-only{color:var(--yellow);background:rgba(255,193,7,.07);border-color:rgba(255,193,7,.28)}.trophy-snapshot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.trophy-snapshot-grid article{display:grid;gap:5px;padding:14px;background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.015));border:1px solid var(--border);border-radius:12px}.trophy-snapshot-grid article.has-difference{border-color:rgba(255,193,7,.34)}.trophy-snapshot-grid span,.trophy-snapshot-grid small{color:var(--text-dim);font-size:11px}.trophy-snapshot-grid strong{font-size:12px}.trophy-diff-list{display:grid;gap:7px}.trophy-diff-row{display:grid;grid-template-columns:130px minmax(150px,1fr) minmax(210px,.8fr);align-items:center;gap:12px;padding:11px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.018)}.trophy-diff-row strong,.trophy-diff-row small,.trophy-times span{display:block}.trophy-diff-row small,.trophy-times{color:var(--text-dim);font-size:11px}.trophy-state{width:max-content;padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.06);font-size:11px;font-weight:700}.trophy-state-psn_only{color:var(--yellow);background:rgba(255,193,7,.09)}.trophy-state-both{color:var(--green);background:rgba(76,175,80,.09)}.trophy-state-metadata_mismatch,.trophy-state-unmappable{color:var(--red);background:rgba(244,67,54,.08)}.trophy-preconditions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}.trophy-preconditions div{padding:11px;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:8px}.trophy-preconditions dt{color:var(--text-dim);font-size:11px}.trophy-preconditions dd{margin:5px 0 0;font-size:11px;overflow-wrap:anywhere}.trophy-plan-list{display:grid;gap:7px;margin:0;padding:0;list-style:none}.trophy-plan-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;padding:11px;border:1px solid var(--border);border-radius:8px}.trophy-plan-item>span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;font-weight:800}.trophy-plan-item.is-eligible>span{color:var(--green);background:rgba(76,175,80,.1)}.trophy-plan-item.is-ineligible>span{color:var(--red);background:rgba(244,67,54,.1)}.trophy-plan-item small,.trophy-plan-item p{display:block;margin:3px 0 0;color:var(--text-dim);font-size:11px}.trophy-plan-item ul{margin:7px 0 0;padding-left:18px;color:var(--yellow);font-size:11px}.trophy-confirmation{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;align-items:end;padding:14px;background:rgba(244,67,54,.045);border:1px solid rgba(244,67,54,.22);border-radius:12px}.trophy-confirmation label,.trophy-confirmation small{grid-column:1/-1}.trophy-confirmation label span,.trophy-confirmation label code{display:block}.trophy-confirmation label code{margin-top:5px;color:var(--yellow)}.trophy-confirmation input{min-height:38px}.trophy-confirmation small,.trophy-action-status,.trophy-empty,.trophy-warning{color:var(--text-dim);font-size:11px}.trophy-action-status{min-height:34px;padding:10px;background:rgba(255,255,255,.025);border-radius:8px}@media(max-width:900px){.trophy-snapshot-grid{grid-template-columns:1fr}.trophy-preconditions{grid-template-columns:repeat(2,minmax(0,1fr))}.trophy-diff-row{grid-template-columns:1fr}.trophy-times{display:flex;gap:12px;flex-wrap:wrap}}@media(max-width:560px){.trophy-section-heading{flex-direction:column}.trophy-preconditions{grid-template-columns:1fr}.trophy-confirmation{grid-template-columns:1fr}.trophy-confirmation .btn{width:100%;min-height:44px}}
|
||||
Reference in new issue
Block a user