:root{color-scheme:light;--app-bg: #fafafa;--surface: #fff;--surface-2: #f5f5f5;--surface-3: #f0f0f0;--border: #e0e0e0;--border-soft: #f0f0f0;--border-strong: #bdbdbd;--text: #212121;--text-2: #424242;--text-muted: #616161;--text-dim: #757575;--text-faint: #9e9e9e;--text-disabled: #bdbdbd;--accent: #1976d2;--accent-hover: #1565c0;--accent-on: #fff;--accent-soft: #e3f2fd;--accent-ink: #1565c0;--focus-ring: rgba(25, 118, 210, .1);--danger: #ef5350;--danger-hover: #d32f2f;--danger-on: #fff;--danger-soft: #ffebee;--danger-ink: #c62828;--danger-line: #ef5350;--ok: #66bb6a;--ok-strong: #558b2f;--ok-on: #fff;--ok-soft: #e8f5e9;--ok-ink: #2e7d32;--warn: #f9a825;--warn-soft: #fff8e1;--warn-ink: #b26a00;--region-soft: #ede7f6;--region-ink: #5e35b1;--video-soft: #f1f8e9;--video-ink: #558b2f;--slab: #eceff1;--slab-hover: #cfd8dc;--slab-ink: #37474f;--slab-dim: #90a4ae;--game: royalblue;--conflict-ink: #8d6e63;--icon-pad: #5f6a77;--icon-pad-mark: #ccd4dd;--icon-folder: #e6ac3f;--icon-folder-back: #c9902d;--icon-box: #c58a4b;--icon-box-tape: #9c6630;--icon-disc: #8fa3b6;--icon-disc-mark: #eef3f8;--icon-photo: #a8d1f0;--icon-photo-hill: #4f9a67;--icon-card: #4f8a87;--icon-card-mark: #d5ecea;--icon-paper: #c2cbd6;--icon-paper-fold: #9caab9;--icon-paper-mark: #7f8a99;--veil: rgba(0, 0, 0, .1);--veil-soft: rgba(0, 0, 0, .05);--scrim: rgba(0, 0, 0, .45);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12);--shadow-md: 0 4px 20px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .3);--shadow-cover: 0 2px 8px rgba(0, 0, 0, .2)}:root[data-theme=dark]{color-scheme:dark;--app-bg: #12161c;--surface: #1a1f26;--surface-2: #222831;--surface-3: #2b323d;--border: #333b47;--border-soft: #272e38;--border-strong: #4b5563;--text: #e8ecf2;--text-2: #cbd2dd;--text-muted: #aab3c0;--text-dim: #98a1af;--text-faint: #7d8694;--text-disabled: #5d6673;--accent: #64b5f6;--accent-hover: #90caf9;--accent-on: #0f151c;--accent-soft: rgba(100, 181, 246, .16);--accent-ink: #9ecbf8;--focus-ring: rgba(100, 181, 246, .25);--danger: #b3403d;--danger-hover: #c94b47;--danger-on: #fff;--danger-soft: rgba(239, 83, 80, .16);--danger-ink: #ff9d95;--danger-line: #b3403d;--ok: #81c784;--ok-strong: #66bb6a;--ok-on: #101a12;--ok-soft: rgba(129, 199, 132, .16);--ok-ink: #a5d6a7;--warn: #ffca28;--warn-soft: rgba(255, 202, 40, .14);--warn-ink: #ffbe5c;--region-soft: rgba(179, 157, 219, .18);--region-ink: #c3b0e8;--video-soft: rgba(174, 213, 129, .16);--video-ink: #c3e08e;--slab: #2a323d;--slab-hover: #364150;--slab-ink: #cfd8dc;--slab-dim: #8b95a3;--game: #8ab4f8;--conflict-ink: #c5aca4;--icon-pad: #828d9b;--icon-pad-mark: #dfe5ec;--icon-folder: #e0aa42;--icon-folder-back: #c08f34;--icon-box: #d0a06a;--icon-box-tape: #a2703d;--icon-disc: #9db1c4;--icon-disc-mark: #f0f5fa;--icon-photo: #86b8dd;--icon-photo-hill: #5fa974;--icon-card: #6ba7a3;--icon-card-mark: #e0f2f0;--icon-paper: #b0bac6;--icon-paper-fold: #929daa;--icon-paper-mark: #5c6673;--veil: rgba(255, 255, 255, .12);--veil-soft: rgba(255, 255, 255, .07);--scrim: rgba(0, 0, 0, .6);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 20px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--shadow-cover: 0 2px 8px rgba(0, 0, 0, .5)}*{box-sizing:border-box}body{color:var(--text);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--app-bg)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.icon{flex:0 0 auto;width:1.15em;height:1.15em;vertical-align:-.22em}.icon-label{display:inline-flex;align-items:center;gap:.4em}.icon-label>.icon{vertical-align:initial}#app{min-height:100vh}.rom-explorer{display:flex;flex-direction:column;height:100vh;background-color:var(--app-bg)}.explorer-header{display:flex;align-items:center;padding:.75rem 1rem;background-color:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.header-left{flex:0 0 380px;width:380px;display:flex;align-items:center;justify-content:space-between;padding-right:1rem;box-sizing:border-box}.header-right{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-left:.5rem}.header-right-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.explorer-header h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--text);flex-shrink:0}.explorer-title{display:flex;align-items:center;gap:.55rem}.explorer-title.clickable{cursor:pointer;user-select:none;transition:opacity .2s}.explorer-title.clickable:hover{opacity:.85}.explorer-mark{width:1.6em;height:1.6em;flex-shrink:0}.tabs{display:flex;gap:.25rem;flex:0 1 auto;min-width:0;overflow-x:auto;align-items:center}.tab{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--surface-2);border:1px solid var(--border);border-bottom:2px solid var(--border);border-radius:4px 4px 0 0;cursor:pointer;white-space:nowrap;transition:background-color .2s,border-color .2s}.tab:hover{background-color:var(--surface-3);border-color:var(--border-strong)}.tab.active{background-color:var(--surface);border-color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.tab-name{font-size:.875rem;max-width:150px;overflow:hidden;text-overflow:ellipsis}.tab.locked{opacity:.75}.tab-lock{display:flex;align-items:center;color:var(--text-dim);font-size:.875rem}.tab-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.75rem;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:2px;transition:background-color .2s,color .2s}.tab-close:hover{background-color:var(--veil);color:var(--text)}.tab-add{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background-color:var(--surface);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:1rem;color:var(--text-dim);transition:background-color .2s,color .2s;flex-shrink:0}.tab-add:hover{background-color:var(--surface-2);color:var(--text)}.header-regions{flex-shrink:0;display:flex;border:1px solid var(--border);border-radius:4px;overflow:hidden;height:2rem}.header-region{padding:0 .5rem;border:none;border-left:1px solid var(--border);background-color:var(--surface);color:var(--text-dim);font-size:.75rem;font-family:monospace;letter-spacing:.03em;cursor:pointer;transition:background-color .2s,color .2s}.header-region:first-child{border-left:none}.header-region:hover:not(.on):not(:disabled){background-color:var(--surface-2);color:var(--text)}.header-region.on{background-color:var(--accent);color:var(--accent-on);font-weight:600}.header-region:disabled{opacity:.5;cursor:not-allowed}.header-prefs{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border);border-radius:4px;background-color:var(--surface);color:var(--text-dim);font-size:1rem;line-height:1;cursor:pointer;transition:background-color .2s,color .2s}.header-prefs:hover{background-color:var(--surface-2);color:var(--text)}.empty-state-full{display:flex;flex-direction:column;align-items:center;justify-content:center;height:calc(100vh - 200px);color:var(--text-faint);font-size:1rem;gap:1.5rem}.empty-state-full button{padding:.75rem 1.5rem;background-color:var(--accent);color:var(--accent-on);border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:background-color .2s}.empty-state-full button:hover:not(:disabled){background-color:var(--accent-hover)}.empty-state-full button:disabled{opacity:.6;cursor:not-allowed}.welcome{flex:1;overflow-y:auto;padding:2.5rem 1.5rem 4rem;display:flex;flex-direction:column;align-items:center;gap:2.5rem;color:var(--text-2)}.welcome-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;max-width:44rem}.welcome-mark{width:6rem;height:6rem}.welcome-heading h2{margin:0;font-size:2rem;font-weight:650;color:var(--text)}.welcome-tagline{margin:.25rem 0 0;font-size:1.05rem;color:var(--text-dim)}.welcome-pitch{margin:0;font-size:1.05rem;line-height:1.6}.welcome-cta{margin-top:.5rem;padding:.8rem 1.6rem;background-color:var(--accent);color:var(--accent-on);border:none;border-radius:6px;cursor:pointer;font-size:1.05rem;font-weight:550;box-shadow:var(--shadow-sm);transition:background-color .2s}.welcome-cta:hover:not(:disabled){background-color:var(--accent-hover)}.welcome-cta:disabled{opacity:.6;cursor:not-allowed}.welcome-hint{margin:0;font-size:.875rem;color:var(--text-faint)}.welcome-section{width:100%;max-width:60rem}.welcome-section>h3{margin:0 0 1rem;font-size:1.15rem;font-weight:600;color:var(--text)}.welcome-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin:0;padding:0;list-style:none}@media (max-width: 640px){.welcome-cards{grid-template-columns:1fr}}.welcome-card{display:flex;flex-direction:column;padding:1.2rem 1.3rem;background-color:var(--surface);border:1px solid var(--border);border-radius:10px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.welcome-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.welcome-card-illustration{width:100%;height:160px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;background-color:var(--surface-2);border-radius:8px;overflow:hidden;padding:.5rem}.welcome-card-illustration svg{width:100%;height:100%;max-height:150px}.welcome-card h4{margin:0 0 .45rem;font-size:1rem;font-weight:600;color:var(--text)}.welcome-card p{margin:0;font-size:.9rem;line-height:1.55;color:var(--text-muted)}.welcome-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;counter-reset:welcome-step}.welcome-step{display:flex;gap:1rem;align-items:flex-start;padding:1.25rem 1.4rem;background-color:var(--surface);border:1px solid var(--border);border-radius:12px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.welcome-step:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.welcome-step-number{flex:0 0 2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--accent-soft);color:var(--accent-ink);font-weight:700;font-size:1.05rem;box-shadow:inset 0 0 0 1px #ffffff1a;transition:background-color .2s ease,color .2s ease,transform .2s ease}.welcome-step:hover .welcome-step-number{background-color:var(--accent);color:var(--accent-on);transform:scale(1.06)}.welcome-step h4{margin:0 0 .4rem;font-size:1.05rem;font-weight:650;color:var(--text)}.welcome-step p{margin:0;font-size:.9rem;line-height:1.55;color:var(--text-muted)}.welcome-systems-section{width:100%;max-width:100%;display:flex;flex-direction:column;align-items:center}.welcome-systems{width:100vw;margin-left:calc(-50vw + 50%);overflow:hidden;display:flex;flex-direction:column;gap:.75rem;margin-top:1.25rem;padding:.5rem 0;mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent)}.welcome-systems-row{width:100%;overflow:hidden;display:flex}.welcome-systems-track{display:flex;align-items:center;gap:0;width:max-content;margin:0;padding:0;list-style:none;will-change:transform}.welcome-systems-track:hover{animation-play-state:paused}.welcome-systems-row--top .welcome-systems-track{animation:welcome-marquee-left 52s linear infinite}.welcome-systems-row--middle .welcome-systems-track{animation:welcome-marquee-left 38s linear infinite}.welcome-systems-row--bottom .welcome-systems-track{animation:welcome-marquee-left 62s linear infinite}@keyframes welcome-marquee-left{0%{transform:translate(0)}to{transform:translate(-50%)}}.welcome-system{display:flex;align-items:center;gap:.7rem;padding:.45rem .95rem;margin-right:2rem;background:transparent;background-color:transparent;border:none;white-space:nowrap;flex-shrink:0;opacity:.85;transition:transform .2s ease,opacity .2s ease}.welcome-system:hover{opacity:1;transform:scale(1.08)}.welcome-system-logo{flex:0 0 2.35rem;height:2.35rem;display:flex;align-items:center;justify-content:center;background:transparent;background-color:transparent;border:none;padding:0}.welcome-system-logo svg{width:100%;height:100%}.welcome-system-name{font-size:.95rem;font-weight:500;color:var(--text-2);white-space:nowrap}.welcome-systems-row--middle{padding:.45rem 0}.welcome-systems-row--middle .welcome-systems-track{gap:0}.welcome-systems-row--middle .welcome-system{padding:.75rem 1.4rem;gap:.95rem;margin-right:2.75rem}.welcome-systems-row--middle .welcome-system-logo{flex:0 0 3.25rem;height:3.25rem}.welcome-systems-row--middle .welcome-system-name{font-size:1.2rem;font-weight:650;color:var(--text)}.welcome-note{width:100%;max-width:60rem;padding:1.1rem 1.2rem;background-color:var(--surface-2);border:1px solid var(--border);border-radius:8px}.welcome-note h3{margin:0 0 .45rem;font-size:1rem;font-weight:600;color:var(--text)}.welcome-note p{margin:0;font-size:.9rem;line-height:1.55;color:var(--text-muted)}.welcome-footer{width:100%;max-width:60rem;margin-top:.5rem;padding-top:1.25rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.welcome-footer-legal{margin:0;font-size:.825rem;line-height:1.5;color:var(--text-muted);flex:1}.welcome-footer-github{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;font-weight:500;color:var(--text-muted);text-decoration:none;padding:.4rem .75rem;border:1px solid var(--border);border-radius:6px;background-color:var(--surface-2);transition:color .15s ease,border-color .15s ease,background-color .15s ease;white-space:nowrap}.welcome-footer-github svg{font-size:1.1rem}.welcome-footer-github:hover{color:var(--text);border-color:var(--text-muted);background-color:var(--surface-3)}@media (max-width: 640px){.welcome-footer{flex-direction:column-reverse;align-items:flex-start;gap:1rem}}@media (max-width: 640px){.welcome{padding:1.5rem 1rem 3rem;gap:2rem}.welcome-mark{width:4.5rem;height:4.5rem}.welcome-heading h2{font-size:1.6rem}}.error-message{padding:.75rem 1rem;background-color:var(--danger-soft);color:var(--danger-ink);border-bottom:1px solid var(--danger-line)}.explorer-container{display:flex;flex:1;overflow:hidden}.file-tree{position:relative;flex:0 0 380px;width:380px;border-right:1px solid var(--border);background-color:var(--surface);display:flex;flex-direction:column;overflow:hidden}.file-tree-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem .75rem .5rem}.file-tree-header h3{margin:0;font-size:.875rem;text-transform:uppercase;color:var(--text-muted);font-weight:600}.file-tree-actions{display:flex;gap:.25rem}.file-tree-actions button{padding:.25rem .4rem;font-size:.85rem;line-height:1;border:1px solid var(--border);border-radius:4px;background-color:var(--surface);cursor:pointer}.file-tree-actions button:hover:not(:disabled){background-color:var(--surface-2)}.file-tree-actions button:disabled{opacity:.4;cursor:not-allowed}.file-tree-input{display:none}.file-tree-error{margin:0 .75rem .5rem;padding:.4rem .6rem;border-radius:4px;background-color:var(--danger-soft);color:var(--danger-ink);font-size:.8rem}.file-tree-notice{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;z-index:1;padding:.4rem .6rem;border:1px solid var(--border);border-radius:4px;background-color:var(--surface);box-shadow:var(--shadow-md);color:var(--accent-ink);font-size:.8rem;pointer-events:none}.file-tree-body{margin:0;padding:0 0 .5rem;list-style:none;flex:1;overflow-y:auto;scrollbar-gutter:stable}.file-tree-body.drop-target{background-color:var(--ok-soft)}.tree-item{display:flex;align-items:flex-start;justify-content:space-between;line-height:1.6rem;gap:.35rem;padding-top:.35rem;padding-bottom:.35rem;padding-right:.75rem;cursor:pointer;border-left:3px solid transparent;user-select:none;transition:background-color .15s,border-color .15s}.tree-item-left{display:flex;align-items:flex-start;flex:1;min-width:0;gap:.35rem}.tree-item-actions{display:flex;align-items:center;flex:0 0 auto;gap:.35rem}.tree-item:hover{background-color:var(--surface-2)}.tree-item.selected{background-color:var(--accent-soft)}.tree-item.active{border-left-color:var(--accent);color:var(--accent);font-weight:500}.tree-item.drop-target{background-color:var(--ok-soft);outline:1px dashed var(--ok);outline-offset:-1px}.tree-item.muted .tree-icon,.tree-item.muted .tree-name{opacity:.55}.tree-caret{width:1rem;flex:0 0 1rem;height:1.6rem;padding:0;border:none;background:none;color:var(--text-dim);font-size:.7rem;line-height:1.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.tree-icon{flex:0 0 1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center;font-size:.85rem}.tree-icon>svg{display:block;width:1.6rem;height:1.6rem}.system-folder-icon{position:relative;width:1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center}.system-folder-icon>svg{display:block;width:1.6rem;height:1.6rem}.system-folder-badge{position:absolute;right:-3px;bottom:-3px;width:1.05rem;height:1.05rem;display:flex;align-items:center;justify-content:center;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.system-folder-badge>svg{width:100%;height:100%}.tree-name{flex:1;line-height:1.35rem;padding-top:.125rem;word-break:break-word}.tree-item.group .tree-name{color:var(--game);font-weight:500}.tree-item.pending{color:var(--text-dim);cursor:default}.tree-item.pending:hover{background-color:transparent}.tree-spinner{flex:0 0 auto;width:1rem;height:1rem;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:tree-spin .7s linear infinite}@keyframes tree-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion: reduce){.tree-spinner{animation-duration:2s}}.tree-status{flex:0 0 auto;font-size:.75rem;line-height:1.6rem;color:var(--warn)}.tree-item.status-missing>.tree-status{color:var(--text-disabled)}.tree-group-toggle{flex:0 0 auto;padding:0 .15rem;border:none;background:none;color:var(--text-disabled);font-size:.8rem;line-height:1.6rem;cursor:pointer}.tree-group-toggle:hover{color:var(--text-dim)}.tree-group-toggle.on{color:var(--accent)}.tree-organize{flex:0 0 auto;padding:0 .15rem;border:none;background:none;color:var(--text-disabled);font-size:.8rem;line-height:1.6rem;cursor:pointer}.tree-organize:hover{color:var(--text-dim)}.organize-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:var(--scrim)}.organize-panel{display:flex;flex-direction:column;width:min(46rem,92vw);max-height:84vh;border-radius:6px;background:var(--surface);box-shadow:var(--shadow-lg)}.organize-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.organize-header h2{margin:0;font-size:1rem}.organize-close{border:none;background:none;color:var(--text-dim);cursor:pointer}.organize-summary{display:flex;flex-wrap:wrap;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid var(--border-soft);color:var(--text-muted);font-size:.85rem}.organize-summary .organize-warn{color:var(--warn-ink)}.organize-busy{padding:.5rem 1rem;background:var(--accent-soft);color:var(--accent-ink);font-size:.85rem}.organize-body{flex:1;overflow:auto;padding:.5rem 1rem 1rem}.organize-body h3{margin:.75rem 0 .35rem;color:var(--text-2);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.organize-list{margin:0;padding:0;list-style:none;font-size:.8rem}.organize-list li{display:flex;flex-wrap:wrap;gap:.4rem;padding:.2rem 0;border-bottom:1px solid var(--border-soft)}.organize-list code{color:var(--slab-ink);word-break:break-all}.organize-arrow{color:var(--text-faint)}.organize-conflict code{color:var(--conflict-ink)}.organize-conflict small{color:var(--warn-ink)}.organize-more,.organize-empty{margin:.5rem 0 0;color:var(--text-dim);font-size:.85rem}.organize-actions{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border)}.organize-actions .primary{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.organize-actions .primary.danger{background:var(--danger);color:var(--danger-on);border-color:var(--danger)}.organize-actions button:disabled{opacity:.5;cursor:default}.tree-empty{padding:.75rem 1rem;color:var(--text-faint);font-size:.85rem}.details-pane{flex:1;overflow-y:auto;padding:1.5rem;background-color:var(--surface-3)}:root[data-theme=dark] .details-pane{background-color:var(--app-bg)}.details-pane.drop-target{background-color:var(--ok-soft);outline:2px dashed var(--ok);outline-offset:-.5rem}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-faint);font-size:.95rem}.system-details{display:flex;flex-direction:column;gap:1.5rem;max-width:800px;margin:0 auto}.system-hero{display:flex;align-items:center;gap:1.25rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-soft)}.system-hero.centered{flex-direction:column;justify-content:center;text-align:center;padding-top:.5rem}.system-logo-wrapper{width:80px;height:80px;border-radius:20px;background-color:var(--surface);display:flex;align-items:center;justify-content:center;padding:.75rem;box-shadow:var(--shadow);border:2px solid var(--border);flex-shrink:0;transition:transform .2s ease}.system-logo-wrapper.large{width:128px;height:128px;border-radius:28px;padding:1.25rem;background:linear-gradient(135deg,var(--surface),var(--surface-2))}.system-logo-wrapper:hover{transform:scale(1.03)}.system-logo-svg{width:100%;height:100%}.system-heading.centered{display:flex;flex-direction:column;align-items:center}.system-heading h2{margin:0;font-size:1.6rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.system-fullname{margin:.35rem 0 .85rem;font-size:.95rem;color:var(--text-2)}.system-meta-tags{display:flex;flex-wrap:wrap;gap:.5rem}.system-meta-tags.centered{justify-content:center}.system-meta-tags .tag{font-size:.75rem;font-weight:600;padding:.25rem .6rem;border-radius:6px}.system-meta-tags .tag.manufacturer{border:1px solid currentColor}.system-meta-tags .tag.year,.system-meta-tags .tag.media{background-color:var(--surface);color:var(--text-2);border:1px solid var(--border)}.system-description-box,.system-extensions-box{background-color:var(--surface);border-radius:8px;padding:1rem;border:1px solid var(--border-soft)}.system-description-box h4,.system-extensions-box h4{margin:0 0 .5rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2)}.system-description{margin:0;font-size:.9rem;line-height:1.5;color:var(--text)}.system-extensions-list{display:flex;flex-wrap:wrap;gap:.5rem}.extension-pill{display:inline-flex;align-items:center;background-color:var(--surface-2);border:1px solid var(--border);padding:.25rem .6rem;border-radius:6px;font-size:.85rem;color:var(--text);transition:transform .15s ease,border-color .15s ease}.extension-pill:hover{border-color:var(--focus);transform:translateY(-1px)}.extension-pill code{font-family:var(--font-mono);font-weight:600}.metadata-editor{background-color:var(--surface);padding:1.5rem;border-radius:8px;box-shadow:var(--shadow-sm)}.metadata-editor h3{margin:0 0 1rem;font-size:1.1rem;color:var(--text)}.form-group{margin-bottom:1rem;display:flex;flex-direction:column}.form-group label{font-size:.875rem;font-weight:500;color:var(--text-2);margin-bottom:.35rem}.form-group input,.form-group select{padding:.5rem;border:1px solid var(--border);border-radius:4px;font-size:.95rem;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.form-group input:disabled{background-color:var(--surface-2);cursor:not-allowed;opacity:.6}.cover-image{align-self:flex-start;max-width:180px;max-height:240px;border:1px solid var(--border);border-radius:4px;background-color:var(--app-bg)}.cover-preview{display:block;margin-top:.5rem;max-width:120px;max-height:160px;border:1px solid var(--border);border-radius:4px;background-color:var(--surface)}.cover-editor-group{position:relative;transition:border-color .2s ease,background-color .2s ease}.cover-editor-group.dragging{background-color:#3b82f614;border-radius:6px}.cover-preview-wrapper{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.cover-actions{display:flex;gap:.75rem;align-items:center}.btn-inline.btn-danger{color:var(--danger, #ef4444)}.btn-inline.btn-danger:hover{text-decoration:underline}.cover-drop-zone{display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem;border:2px dashed var(--border);border-radius:8px;background-color:var(--surface-2);cursor:pointer;text-align:center;transition:all .2s ease}.cover-drop-zone:hover,.cover-editor-group.dragging .cover-drop-zone{border-color:var(--accent);background-color:#3b82f614}.cover-drop-prompt{font-size:.875rem;color:var(--text-muted);pointer-events:none}.checksum-field{font-family:monospace!important;font-size:.85rem!important;letter-spacing:.5px}.checksum-field.loading{opacity:.7;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1rem;color:var(--text-faint)}.metadata-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.metadata-header h3{margin:0;font-size:1.1rem;color:var(--text);flex:1}.btn-lookup{padding:.5rem 1rem;background-color:var(--accent);color:var(--accent-on);border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap;transition:background-color .2s;flex-shrink:0}.btn-lookup:hover:not(:disabled){background-color:var(--accent-hover)}.btn-lookup:disabled{opacity:.6;cursor:not-allowed}.lookup-error{padding:.75rem 1rem;background-color:var(--danger-soft);color:var(--danger-ink);border-radius:4px;border-left:4px solid var(--danger-line);margin-bottom:1rem;font-size:.875rem}.modal-dialog{width:min(26rem,90vw);max-height:80vh;padding:0;border:none;border-radius:8px;overflow:hidden;flex-direction:column;background-color:var(--surface);color:var(--text);box-shadow:var(--shadow-md);opacity:0;transition:opacity .18s ease,display .18s allow-discrete,overlay .18s allow-discrete}.modal-dialog[open]{display:flex;opacity:1}.modal-dialog::backdrop{background-color:var(--scrim, rgba(0, 0, 0, .5));opacity:0;transition:opacity .18s ease,display .18s allow-discrete,overlay .18s allow-discrete}.modal-dialog[open]::backdrop{opacity:1}@starting-style{.modal-dialog[open],.modal-dialog[open]::backdrop{opacity:0}}.modal-dialog.lookup-dialog{width:min(500px,90vw)}.modal-dialog.confirm-dialog,.modal-dialog.prompt-dialog{width:min(24rem,90vw)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);background-color:var(--surface-2)}.modal-header h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text)}.modal-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:1.25rem;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.modal-close:hover{background-color:var(--veil);color:var(--text)}.modal-close:disabled{opacity:.4;cursor:not-allowed}.modal-content{padding:1.5rem;overflow-y:auto;flex:1}.modal-form{display:flex;flex-direction:column;flex:1;margin:0}.modal-message{margin:0 0 .75rem;color:var(--text);font-size:.95rem;line-height:1.4}.prompt-input{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:6px;background-color:var(--surface-2);color:var(--text);font-size:.9rem;font-family:inherit;box-sizing:border-box;margin-top:.25rem;transition:border-color .15s ease,box-shadow .15s ease}.prompt-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-veil)}.prefs-group+.prefs-group{margin-top:1.5rem}.prefs-group h4{margin:0 0 .5rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.prefs-segmented{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.prefs-segment{flex:1;padding:.45rem .5rem;border:none;border-left:1px solid var(--border);background-color:var(--surface);color:var(--text-2);font-size:.85rem;font-family:inherit;cursor:pointer;transition:background-color .2s,color .2s}.prefs-segment:first-child{border-left:none}.prefs-segment:hover:not(.on){background-color:var(--surface-2)}.prefs-segment.on{background-color:var(--accent);color:var(--accent-on);font-weight:500}.prefs-select{width:100%;padding:.45rem .5rem;border:1px solid var(--border);border-radius:6px;background-color:var(--surface);color:var(--text);font-size:.9rem;font-family:inherit;cursor:pointer}.prefs-select:disabled{opacity:.5;cursor:not-allowed}.prefs-hint{margin:.4rem 0 0;color:var(--text-faint);font-size:.75rem}.drop-dialog{width:min(34rem,92vw)}.drop-images,.drop-files{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.drop-image{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem}.drop-image-name,.drop-files li{font-size:.8125rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drop-image .prefs-select,.drop-file .prefs-select{width:auto;font-size:.8125rem;padding:.35rem .5rem}.drop-file{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.25rem .5rem;padding:.5rem .65rem;background-color:var(--app-bg);border:1px solid var(--border);border-radius:4px}.drop-file-name{font-size:.8125rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drop-file-note{font-size:.75rem;color:var(--warn-ink)}.drop-file-where{grid-column:1 / -1;font-family:monospace;font-size:.75rem;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.intake-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.75rem}.intake-item{display:grid;gap:.15rem;padding:.5rem .65rem;background-color:var(--app-bg);border:1px solid var(--border);border-radius:4px}.intake-title{font-size:.875rem;font-weight:500;color:var(--text)}.intake-where{font-size:.75rem;color:var(--accent-ink)}.intake-archive{margin-left:.4rem;color:var(--text-faint)}.intake-path{font-family:monospace;font-size:.75rem;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.intake-item.taken,.drop-files li.taken{opacity:.6}.intake-item.taken .intake-path{color:var(--warn-ink)}.match-name{margin:0 0 1rem;font-size:.95rem;color:var(--text);word-break:break-word}.match-description{margin:0 0 1rem;font-size:.875rem;color:var(--text-muted);font-style:italic;word-break:break-word}.update-fields{margin-top:1.5rem}.update-fields h4{margin:0 0 1rem;font-size:.95rem;font-weight:600;color:var(--text-2)}.field-option{margin-bottom:1.25rem;padding:1rem;background-color:var(--app-bg);border-radius:4px;border:1px solid var(--border);transition:background-color .2s,border-color .2s}.field-option:hover{background-color:var(--surface-3)}.checkbox-label{display:flex;align-items:flex-start;cursor:pointer;gap:.75rem}.checkbox-label input[type=checkbox]{margin-top:.25rem;cursor:pointer;width:18px;height:18px;flex-shrink:0}.checkbox-text{flex:1;font-size:.875rem}.checkbox-text strong{display:block;margin-bottom:.5rem;color:var(--text-2)}.field-preview{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;font-size:.8rem}.field-preview .current{color:var(--text-faint)}.field-preview .new{color:var(--ok-ink);font-weight:500}.field-preview .value{display:inline;background-color:var(--veil-soft);padding:.125rem .35rem;border-radius:2px;word-break:break-word;font-family:monospace}.modal-actions{display:flex;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border);background-color:var(--surface-2);justify-content:flex-end;align-items:center}.modal-actions .btn-apply,.modal-actions .btn-cancel,.modal-actions .btn-danger{padding:.5rem 1.25rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;transition:background-color .2s,opacity .2s}.modal-actions .btn-apply{background-color:var(--ok);color:var(--ok-on)}.modal-actions .btn-apply:hover:not(:disabled){background-color:var(--ok-strong)}.modal-actions .btn-apply:disabled{opacity:.5;cursor:not-allowed}.modal-actions .btn-cancel{background-color:var(--surface-3);color:var(--text)}.modal-actions .btn-cancel:hover:not(:disabled){background-color:var(--veil-strong)}.modal-actions .btn-cancel:disabled{opacity:.5;cursor:not-allowed}.modal-actions .btn-danger{background-color:var(--danger);color:var(--danger-on)}.modal-actions .btn-danger:hover:not(:disabled){background-color:var(--danger-hover)}.modal-actions .btn-danger:disabled{opacity:.5;cursor:not-allowed}.tree-badge{margin-left:auto;padding-right:.25rem;color:var(--ok);font-size:.6rem;line-height:1.6rem}.metadata-subtitle{margin:.25rem 0 0;color:var(--text-dim);font-size:.8125rem;word-break:break-all}.form-group textarea{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:4px;font-family:inherit;font-size:.875rem;resize:vertical}.form-group textarea:focus{outline:none;border-color:var(--accent)}.field-with-action{display:flex;align-items:center;gap:.5rem}.btn-inline{padding:.25rem .625rem;background-color:var(--surface);border:1px solid var(--border-strong);border-radius:4px;cursor:pointer;font-size:.8125rem;white-space:nowrap}.btn-inline:hover:not(:disabled){background-color:var(--surface-2)}.btn-inline:disabled{opacity:.5;cursor:not-allowed}.btn-primary{padding:.5rem 1rem;background-color:var(--accent);color:var(--accent-on);border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap}.btn-primary:hover:not(:disabled){background-color:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.editor-actions{display:flex;gap:.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-soft)}.editor-actions .btn-cancel{padding:.5rem 1rem;background-color:var(--surface);border:1px solid var(--border-strong);border-radius:4px;cursor:pointer;font-size:.875rem}.rom-file-view,.rom-selection{background-color:var(--surface);padding:1.25rem;border-radius:8px;box-shadow:var(--shadow-sm)}.rom-file-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.rom-file-header h3{margin:0;font-size:1.125rem;color:var(--text);word-break:break-all}.facts{display:flex;flex-direction:column;gap:.5rem}.fact{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border-soft);font-size:.875rem}.fact-label{color:var(--text-dim);flex-shrink:0}.fact-value{display:flex;align-items:center;gap:.5rem;color:var(--text);text-align:right;word-break:break-all}.fact-value.muted,.fact-value .muted{color:var(--text-faint)}.fact-error{color:var(--danger-ink);font-size:.75rem}.rom-info,.rom-file-view{position:relative;background-color:var(--surface);padding:1.25rem;border-radius:8px;box-shadow:var(--shadow-sm);max-width:800px;margin:0 auto}.btn-delete-topright{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--text-faint);font-size:1.15rem;cursor:pointer;padding:.35rem;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;transition:color .15s,background-color .15s;line-height:1}.btn-delete-topright:hover{color:var(--danger, #ef5350);background-color:var(--danger-soft, rgba(239, 83, 80, .12))}.rom-info-hero{display:flex;gap:1.25rem;margin-bottom:1.25rem}.rom-info-cover-figure{margin:0;flex-shrink:0;display:flex;flex-direction:column;gap:.375rem}.rom-info-cover-wrapper{width:180px;aspect-ratio:3 / 4;flex-shrink:0;border-radius:3px;overflow:hidden}.rom-info-cover-wrapper.landscape{width:240px}.rom-info-cover{width:100%;height:100%;box-shadow:var(--shadow-cover);object-fit:cover}.rom-info-cover-region{color:var(--slab-dim);font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;text-align:center}.rom-info-cover.placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--slab);color:var(--slab-dim);font-size:.875rem;box-shadow:none}.rom-info-heading{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.rom-info-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.25rem}.rom-info-heading h2{margin:0;font-size:1.5rem;color:var(--text)}.rom-info-heading h3{margin:0;font-size:1.125rem;color:var(--text);word-break:break-all}.rom-info-system{margin:0;color:var(--text-dim);font-size:.875rem}.rom-info-tags{display:flex;flex-wrap:wrap;gap:.375rem}.tag{padding:.125rem .5rem;background-color:var(--accent-soft);color:var(--accent-ink);border-radius:999px;font-size:.75rem}.rom-info-description{margin:0 0 1.25rem;color:var(--text-2);font-size:.9375rem;line-height:1.5}.tag.status-complete{background-color:var(--ok-soft);color:var(--ok-ink)}.tag.status-partial{background-color:var(--warn-soft);color:var(--warn-ink)}.tag.status-missing{background-color:var(--surface-2);color:var(--text-dim)}.tag.region,.tag.video{padding:0 .3rem;font-size:.6875rem;border-radius:3px}.tag.region{background-color:var(--region-soft);color:var(--region-ink)}.tag.video{background-color:var(--video-soft);color:var(--video-ink)}.variants-title{margin:1.5rem 0 .5rem;font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.variants{list-style:none;margin:0;padding:0}.variants-missing{margin-top:.5rem}.variants-missing>summary{padding:.375rem 0;color:var(--text-dim);font-size:.8125rem;cursor:pointer}.variants-missing>summary:hover{color:var(--text-2)}.variant{padding:.5rem 0;border-bottom:1px solid var(--border-soft)}.variant.active-cover{border-bottom-color:var(--accent)}.variant-heading{display:flex;align-items:baseline;gap:.5rem;font-size:.875rem}.variant-mark{flex:0 0 auto;font-size:.7rem;color:var(--ok-ink)}.variant.status-partial .variant-mark{color:var(--warn)}.variant.status-missing .variant-mark{color:var(--text-disabled)}.variant-key{flex:1;word-break:break-word;color:var(--text)}.variant-support{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:.25rem}.variant.status-missing .variant-support{opacity:.6}.variant.status-missing .variant-key{color:var(--text-faint)}.variant-count{flex:0 0 auto;color:var(--text-faint);font-size:.75rem}.variant-files{list-style:none;margin:.25rem 0 0;padding:0 0 0 1.25rem}.variant-file{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.8125rem;padding:.125rem 0}.variant-file .tree-organize{font-size:.85rem;line-height:1;padding:0 .2rem;opacity:.75;transition:opacity .15s,color .15s}.variant-file .tree-organize:hover{opacity:1;color:var(--accent)}.tree-remove{background:none;border:none;font-size:.85rem;line-height:1;padding:0 .2rem;opacity:.65;color:var(--text-faint);cursor:pointer;display:inline-flex;align-items:center;transition:opacity .15s,color .15s}.tree-remove:hover{opacity:1;color:var(--danger, #ef5350)}.variant-file.missing{color:var(--text-disabled)}.variant-file-size{flex:0 0 auto;color:var(--text-faint);font-variant-numeric:tabular-nums}.variant-file-crc{margin-left:auto;flex:0 0 auto;color:var(--text-faint);font-size:.75rem}.variant-validation-icon{display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;flex-shrink:0;cursor:help;transition:transform .15s ease}.variant-validation-icon:hover{transform:scale(1.15)}.variant-validation-icon svg{width:1rem;height:1rem}.variant-validation-icon.status-verified{color:#22c55e}.variant-validation-icon.status-structurally_valid{color:#3b82f6}.variant-validation-icon.status-incomplete{color:#ef4444}.btn-back{margin-bottom:.75rem;padding:.25rem .5rem;border:none;border-radius:4px;background-color:var(--slab);color:var(--slab-ink);font-size:.8125rem;cursor:pointer}.btn-back:hover{background-color:var(--slab-hover)}.rom-selection-list{list-style:none;margin:0;padding:0;max-height:50vh;overflow-y:auto}.rom-selection-list li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border-soft);font-size:.875rem}.rom-selection-list li.pending .rom-selection-name{color:var(--text-faint);font-style:italic}.rom-selection-name{word-break:break-all}.rom-selection-system{color:var(--text-dim);flex-shrink:0}
