:root{--font-sans: "Inter", "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", "Consolas", monospace;--bg-base: #0b0d12;--bg-elevated: #12151c;--bg-surface: #181c26;--bg-surface-hover: #1e2330;--bg-inset: rgba(0, 0, 0, .28);--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .12);--border-focus: rgba(167, 139, 250, .55);--text: #eef1f6;--text-secondary: #b4bcc9;--text-muted: #7a8496;--text-subtle: #5c6575;--accent: #a78bfa;--accent-strong: #8b5cf6;--accent-soft: rgba(167, 139, 250, .14);--accent-glow: rgba(139, 92, 246, .22);--success: #4ade80;--success-soft: rgba(74, 222, 128, .12);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .12);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 8px 32px rgba(0, 0, 0, .35);--shadow-card: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 12px 40px rgba(0, 0, 0, .28);color:var(--text-secondary);background:var(--bg-base);font-family:var(--font-sans);line-height:1.55;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-base);color:var(--text-secondary)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 70% 45% at 50% -15%,rgba(139,92,246,.14),transparent 55%),radial-gradient(ellipse 50% 35% at 100% 0%,rgba(59,130,246,.07),transparent 50%),radial-gradient(ellipse 40% 30% at 0% 100%,rgba(167,139,250,.06),transparent 45%)}#root{min-height:100vh;position:relative;z-index:1}.app-shell{min-height:100vh}html.embedded,html.embedded body,html.embedded #root,html.embedded .app-shell{min-height:100%;height:auto}html.embedded .app{padding-bottom:2rem}.app{max-width:920px;margin:0 auto;padding:1.75rem 1.5rem 3rem}.header{margin-bottom:1.5rem}.header-top{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.header-copy h1{margin-bottom:.15rem}.header-sub{margin:0;font-size:.875rem;color:var(--text-muted)}.logo-mark{width:3.25rem;height:3.25rem;display:grid;place-items:center;border-radius:var(--radius-md);background:linear-gradient(145deg,#a78bfa38,#8b5cf614);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);flex-shrink:0}.logo-icon{font-size:1.35rem;line-height:1;color:var(--accent)}.eyebrow{margin:0;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}h1{margin:.1rem 0 0;font-size:1.65rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}h2{margin:0 0 .65rem;font-size:1.2rem;font-weight:600;letter-spacing:-.01em;color:var(--text)}h3{margin:0 0 .75rem;font-size:.95rem;font-weight:600;color:var(--text)}.main{display:grid;gap:1rem}.card{border:1px solid var(--border);background:var(--bg-surface);border-radius:var(--radius-lg);padding:1.35rem 1.4rem;box-shadow:var(--shadow-card)}.hero{border-color:#a78bfa2e;background:linear-gradient(165deg,#181c26fa,#12151cf5)}.step-label{margin:0 0 .4rem;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.lead{margin:0 0 1.1rem;color:var(--text-muted);max-width:58ch;font-size:.925rem}.muted{color:var(--text-muted)}.small{margin:-.25rem 0 .85rem;font-size:.85rem}.muted-card{opacity:.95}.app-tabs{display:flex;flex-wrap:wrap;gap:.35rem;padding:.35rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated)}.app-tab{flex:1 1 7rem;min-width:0;font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;border:none;border-radius:var(--radius-sm);padding:.6rem 1rem;background:transparent;color:var(--text-muted);transition:background .15s ease,color .15s ease,box-shadow .15s ease}.app-tab:hover{color:var(--text-secondary);background:#ffffff0a}.app-tab.active{background:var(--accent-soft);color:var(--text);box-shadow:0 0 0 1px #a78bfa33;font-weight:600}.status-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-inset);font-size:.82rem;font-weight:500;color:var(--text-muted)}.status-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);flex-shrink:0}.status-dot.warn{background:var(--warning)}.status-dot.ok{background:var(--success)}.status-pill-warn{border-color:#fbbf2440;background:var(--warning-soft);color:#fcd34d}.status-pill-ok{border-color:#4ade8038;background:var(--success-soft);color:var(--success)}.sd-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.sd-volume-list{display:grid;gap:.65rem;margin-bottom:1rem}.sd-volume-card{padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);transition:border-color .15s ease,background .15s ease}.sd-volume-card:hover{background:var(--bg-surface-hover)}.sd-volume-card.selected{border-color:#a78bfa73;background:var(--accent-soft)}.sd-volume-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.3rem}.sd-waiting{padding:1.1rem 1.15rem;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-inset);margin-bottom:1rem}.sd-waiting-title{margin:0 0 .3rem;color:var(--text-secondary);font-weight:500}.sd-volume-path{margin:0 0 .3rem;word-break:break-all;font-family:var(--font-mono);font-size:.82rem;color:var(--text-muted)}.sd-format-row{margin:0 0 .65rem}.format-chip{display:inline-block;font-size:.75rem;font-weight:600;padding:.18rem .55rem;border-radius:999px;border:1px solid var(--border)}.format-chip.format-ok{color:var(--success);border-color:#4ade8047;background:var(--success-soft)}.format-chip.format-bad{color:#fcd34d;border-color:#fbbf2447;background:var(--warning-soft)}.os-options{display:grid;gap:.65rem;margin:.85rem 0 0}.os-option{display:flex;gap:.85rem;align-items:flex-start;padding:.95rem 1.05rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.os-option:hover{border-color:var(--border-strong);background:var(--bg-surface-hover)}.os-option.selected{border-color:#a78bfa73;background:var(--accent-soft);box-shadow:0 0 0 1px #a78bfa1f}.os-option.unavailable{opacity:.75}.os-option input{margin-top:.25rem;width:1rem;height:1rem;accent-color:var(--accent-strong);flex-shrink:0}.os-option-body{display:grid;gap:.2rem;min-width:0}.os-option-title{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;color:var(--text);font-weight:600;font-size:.95rem}.os-option-desc{color:var(--text-muted);font-size:.875rem;line-height:1.45}.os-option-models{color:var(--text-subtle);font-size:.8rem}.badge,.layout-badge{display:inline-flex;align-items:center;font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.2rem .5rem;border-radius:999px;border:1px solid var(--border);background:#ffffff0a;color:var(--text-muted)}.layout-badge{border-color:#a78bfa40;color:var(--accent);background:var(--accent-soft)}.facts{display:grid;gap:.85rem;margin:0}.facts div{display:grid;gap:.12rem}.facts dt{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle)}.facts dd{margin:0;color:var(--text-secondary)}.path-list,.device-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.path-list li{display:flex;flex-direction:column;gap:.15rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}.path-list li:last-child{border-bottom:none;padding-bottom:0}.system-name{font-size:.85rem;color:var(--text-muted)}code{font-family:var(--font-mono);font-size:.82rem;color:var(--accent);background:#a78bfa14;padding:.1rem .35rem;border-radius:4px}.device-list li{color:var(--text-secondary);font-size:.9rem;padding-left:.15rem}.device-list li:before{content:"•";color:var(--accent);margin-right:.45rem}.notes-card{border-color:var(--border)}.notes-list{margin:0;padding-left:1.15rem;display:grid;gap:.45rem;color:var(--text-muted);font-size:.875rem}.notes-list li::marker{color:var(--accent)}.os-panel{margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border);display:grid;gap:.75rem}.os-link-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:.25rem 0 .5rem}@media(max-width:720px){.os-link-cards{grid-template-columns:1fr}}.os-link-card{display:grid;gap:.45rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated)}.os-link-card.selectable{cursor:pointer;transition:border-color .15s ease,background .15s ease}.os-link-card.selectable:hover{border-color:var(--border-strong);background:var(--bg-surface-hover)}.os-link-card.selectable:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.os-link-card.active{border-color:#a78bfa73;background:var(--accent-soft)}.os-link-card-head{display:flex;align-items:center;gap:.5rem;color:var(--text);font-weight:600}.os-link-card-devices{margin:0;color:var(--text-muted);font-size:.82rem;line-height:1.4}.link-row.compact{gap:.5rem}.link-row.compact .btn{padding:.45rem .75rem;font-size:.85rem}.placeholder-panel{padding:1.1rem;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-inset);color:var(--text-muted);font-size:.9rem}.link-row,.action-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.btn{font:inherit;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);padding:.55rem .95rem;border:1px solid transparent;transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent-strong);color:#fff;border-color:transparent;font-weight:600;box-shadow:0 1px 2px #0003}.btn-primary:hover:not(:disabled){background:#7c3aed}.btn-secondary{background:var(--accent-soft);color:var(--text);border-color:#a78bfa40}.btn-secondary:hover:not(:disabled){background:#a78bfa38;border-color:#a78bfa59}.btn-ghost{background:transparent;color:var(--text-muted);border-color:var(--border)}.btn-ghost:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-secondary);background:#ffffff08}.btn-small{padding:.35rem .6rem;font-size:.8rem}.btn-danger{background:var(--danger-soft);color:#fca5a5;border-color:#f8717147}.btn-danger:hover:not(:disabled){background:#f8717133;border-color:#f8717166;color:#fecaca}.drop-zone{display:grid;gap:.45rem;justify-items:start;padding:1.5rem 1.35rem;border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-inset);transition:border-color .15s ease,background .15s ease}.drop-zone.active,.drop-zone.has-file{border-color:#a78bfa80;background:var(--accent-soft)}.drop-title{margin:0;color:var(--text);font-weight:600;font-size:.95rem}.drop-hint{margin:0;font-size:.85rem;color:var(--text-muted)}.drop-hint.ok{color:var(--success);font-family:var(--font-mono);font-size:.8rem}.drop-hint.warn{color:var(--warning)}.file-path{word-break:break-all}.file-path code{font-size:.78rem;background:transparent;padding:0}.install-message{margin:0;padding:.75rem .95rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);font-size:.875rem}.error-message{border-color:#f871714d;background:var(--danger-soft);color:#fecaca}.ok-message{border-color:#4ade8038;background:var(--success-soft);color:#bbf7d0}.add-games-steps{margin:1rem 0 0;padding-left:1.25rem;color:var(--text-muted);font-size:.92rem;line-height:1.55}.add-games-steps li{margin-bottom:.55rem}.add-games-steps strong{color:var(--text)}.pipeline-steps{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:.85rem 0 0;padding:0}.pipeline-steps li{padding:.3rem .65rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);font-size:.78rem;font-weight:500;color:var(--text-muted)}.folder-preview-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.35rem .75rem;list-style:none;margin:.75rem 0 1rem;padding:0;max-height:9rem;overflow-y:auto}.folder-preview-list li{font-size:.78rem}.folder-preview-list code{color:var(--text-muted);background:transparent;padding:0}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));gap:.75rem;margin-bottom:.85rem}.summary-value{display:block;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.summary-label{font-size:.72rem;font-weight:500;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em}.table-wrap{overflow-x:auto;margin:0 -.25rem;padding:0 .25rem}.game-table{width:100%;border-collapse:collapse;font-size:.875rem}.game-table th,.game-table td{text-align:left;padding:.7rem .55rem;border-bottom:1px solid var(--border);vertical-align:top}.game-table th{color:var(--text-subtle);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.game-table tbody tr{transition:background .12s ease}.game-table tbody tr:hover{background:#ffffff05}.game-name{display:block;color:var(--text);font-weight:500}.game-meta{display:block;font-size:.78rem;color:var(--text-subtle);margin-top:.15rem;font-family:var(--font-mono)}.status-chip{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border)}.status-ready,.thumb-ready{color:var(--success);border-color:#4ade8047;background:var(--success-soft)}.status-fixable{color:#fcd34d;border-color:#fbbf2447;background:var(--warning-soft)}.status-warning,.thumb-skipped{color:var(--text-muted);border-color:var(--border);background:#ffffff08}.status-blocked,.thumb-not-found{color:#fca5a5;border-color:#f8717147;background:var(--danger-soft)}.issue-text{display:block;margin-top:.25rem;font-size:.75rem;color:var(--text-subtle)}.table-card{padding-bottom:.65rem}.legal-notice{border-color:var(--border);background:var(--bg-elevated)}.legal-notice h3{margin-bottom:.45rem;font-size:.9rem;color:var(--text-secondary)}.legal-notice-text{margin:0;font-size:.85rem;line-height:1.55;color:var(--text-muted)}.settings-grid{display:grid;gap:.75rem;margin:.75rem 0 1rem}.field{display:grid;gap:.35rem}.field span{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle)}.field-input{font:inherit;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .75rem;transition:border-color .15s ease}.field-input:focus{outline:none;border-color:var(--border-focus)}.inline-link{font:inherit;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.inline-link:hover{color:#c4b5fd}.game-table tbody tr{cursor:pointer}.row-selected{background:var(--accent-soft)!important}.device-cover-preview{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}.device-cover-preview-header{margin-bottom:1rem}.device-cover-preview-label{margin:0 0 .2rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle)}.device-frame{width:min(100%,28rem);margin:0 auto 1rem;padding:.85rem;border-radius:var(--radius-lg);background:linear-gradient(180deg,#2a2d35,#1a1c22);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-md)}.device-screen{aspect-ratio:4 / 3;border-radius:var(--radius-sm);background:#0a0a0c;border:1px solid rgba(255,255,255,.06);display:grid;place-items:center;padding:1.25rem;overflow:hidden}.device-game-tile{display:flex;flex-direction:column;align-items:center;gap:.65rem;max-width:100%}.device-cover-art{width:min(11rem,72%);height:auto;max-height:14rem;object-fit:contain;border-radius:4px;background:#000;box-shadow:0 4px 16px #00000080}.device-cover-missing{width:min(11rem,72%);aspect-ratio:3 / 4;display:grid;place-items:center;border-radius:4px;border:1px dashed rgba(255,255,255,.12);background:#ffffff08;color:var(--text-subtle);font-size:.85rem}.device-game-title{margin:0;max-width:14rem;font-size:.92rem;line-height:1.3;text-align:center;color:#e8eaed;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.device-cover-preview-meta{display:grid;gap:.3rem}.device-cover-preview-meta p{margin:0;font-size:.875rem;color:var(--text-muted)}.edit-summary{margin-top:.85rem}.edit-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1rem}.edit-search{flex:1 1 12rem;min-width:10rem;font:inherit;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .8rem;transition:border-color .15s ease}.edit-search:focus{outline:none;border-color:var(--border-focus)}.edit-search::placeholder{color:var(--text-subtle)}.edit-select{font:inherit;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .75rem}.edit-select:focus{outline:none;border-color:var(--border-focus)}.edit-select.compact{padding:.35rem .5rem;font-size:.85rem;max-width:11rem}.edit-bulk-row{margin-top:.75rem}.edit-game-table .check-col{width:2.5rem}.edit-game-table .size-col{white-space:nowrap;font-size:.85rem;color:var(--text-muted)}.edit-row-actions{display:flex;flex-wrap:wrap;gap:.35rem}.edit-rename-input{width:100%;min-width:10rem;font:inherit;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border-focus);border-radius:var(--radius-sm);padding:.35rem .55rem}.edit-rename-input:focus{outline:none}.folder-drop{width:100%}.folder-preview-list::-webkit-scrollbar,.table-wrap::-webkit-scrollbar{width:6px;height:6px}.folder-preview-list::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:999px}.folder-preview-list::-webkit-scrollbar-thumb:hover,.table-wrap::-webkit-scrollbar-thumb:hover{background:#fff3}.site-footer{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--border);text-align:center}.site-footer-tagline{margin:0 0 .65rem;font-size:.8125rem;color:var(--text-muted);line-height:1.5}.site-footer-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;font:inherit;font-size:.875rem;font-weight:500;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.site-footer-link:hover{color:var(--text)}
