:root{--bg: #15161a;--bg-elev: #1c1e24;--bg-elev-2: #24272f;--border: #2d3038;--text: #e6e7ea;--text-dim: #9aa0aa;--accent: #b78ba8;--accent-strong: #6f3c5b;--tag-mbs: #c8a36a;--tag-mes: #8b6abf;--tag-mmv: #6a9c70;--tag-mns: #b85742;--tag-mss: #6da3c6;--tag-mtr: #c4925d;--tag-mvs: #4f7a8e;--shadow: 0 4px 16px rgba(0, 0, 0, .4);--radius: 6px;--app-pad-x: 24px;--app-pad-y: 32px;--grid-min: 240px;--grid-gap: 12px}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;min-height:100vh;min-height:100dvh;overflow-x:hidden}a{color:var(--accent)}a:hover{color:var(--text)}#app{max-width:1400px;margin:0 auto;padding:var(--app-pad-y) var(--app-pad-x) calc(var(--app-pad-y) * 1.5)}header{margin-bottom:24px}header h1{margin:0 0 4px;font-size:clamp(20px,4vw,24px);font-weight:600;letter-spacing:-.01em}header .subtitle{margin:0;color:var(--text-dim);font-size:13px}.header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.variant-toggle{display:inline-flex;background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;padding:2px;gap:2px}.variant-toggle button{background:transparent;border:none;color:var(--text-dim);padding:6px 14px;border-radius:999px;font-size:12px;font-family:inherit;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .12s,color .12s;min-height:32px}.variant-toggle button:hover{color:var(--text)}.variant-toggle button[aria-selected=true]{background:var(--accent-strong);color:#fff}#filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:24px;padding:12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius)}#mod-filters{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 100%}.mod-filter{background:var(--bg-elev-2);color:var(--text-dim);border:1px solid var(--border);padding:6px 12px;border-radius:999px;font-size:12px;cursor:pointer;transition:all .12s ease;font-family:inherit;min-height:32px}.mod-filter:hover{color:var(--text)}.mod-filter.active{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.mod-filter .count{opacity:.6;margin-left:4px;font-variant-numeric:tabular-nums}#search{flex:1 1 220px;min-width:0;background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:var(--radius);font-size:14px;font-family:inherit}#search:focus{outline:none;border-color:var(--accent)}.toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim);cursor:pointer;user-select:none;white-space:nowrap}.toggle input{cursor:pointer}#grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--grid-min),1fr));gap:var(--grid-gap)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:14px 14px 12px;cursor:pointer;transition:border-color .12s,transform .12s;display:flex;flex-direction:column;gap:6px;min-height:92px;-webkit-tap-highlight-color:transparent}.card:hover{border-color:var(--accent);transform:translateY(-1px)}.card.disabled{opacity:.6;cursor:default}.card.disabled:hover{border-color:var(--border);transform:none}.card .card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.card .name{font-weight:500;font-size:14px;color:var(--text);word-break:break-word;flex:1 1 auto;min-width:0}.card .id{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;color:var(--text-dim);word-break:break-all}.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:6px;font-size:11px;color:var(--text-dim);gap:8px}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#fff;flex-shrink:0}.tag.mbs{background:var(--tag-mbs)}.tag.mes{background:var(--tag-mes)}.tag.mmv{background:var(--tag-mmv)}.tag.mns{background:var(--tag-mns)}.tag.mss{background:var(--tag-mss)}.tag.mtr{background:var(--tag-mtr)}.tag.mvs{background:var(--tag-mvs)}.tag.unknown{background:#6a6e78}.size-pill{font-variant-numeric:tabular-nums;font-size:11px;color:var(--text-dim);text-align:right}.status-pending{font-size:10px;color:var(--accent);letter-spacing:.04em;text-transform:uppercase;text-align:right}#modal{position:fixed;inset:0;background:#000000b3;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}#modal[hidden]{display:none}.modal-inner{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:24px;max-width:900px;width:100%;max-height:calc(100dvh - 48px);overflow-y:auto;position:relative;box-shadow:var(--shadow)}#modal-close{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--text-dim);font-size:32px;line-height:1;cursor:pointer;padding:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center}#modal-close:hover{color:var(--text)}#modal-title{font-size:clamp(17px,4.5vw,20px);font-weight:600;word-break:break-word}.meta{margin:0 0 16px;color:var(--text-dim);font-size:12px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;word-break:break-word}.canvas-wrap{position:relative}#modal-canvas{display:block;width:100%;height:min(600px,60dvh);background:#0c0d11;border-radius:var(--radius);cursor:grab;touch-action:none}#modal-canvas:active{cursor:grabbing}#modal-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#0c0d11a6;color:var(--text-dim);font-size:13px;border-radius:var(--radius);pointer-events:none}#modal-loading[hidden]{display:none}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation:none;border-top-color:var(--text-dim)}}#modal-controls{display:flex;justify-content:space-between;margin-top:12px}.hint{font-size:11px;color:var(--text-dim)}.empty-state,.placeholder{padding:40px 20px;text-align:center;color:var(--text-dim)}.placeholder{font-size:13px}.error-banner{background:#4a2329;color:#ffb3b3;border:1px solid #6a3338;padding:8px 12px;border-radius:var(--radius);margin-bottom:16px;font-size:13px}.copy-embed{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-dim);cursor:pointer;font:inherit;transition:color .12s,background .12s,border-color .12s}.copy-embed:hover{color:var(--text);background:var(--bg-elev-2)}.copy-embed:focus-visible{outline:none;border-color:var(--accent);color:var(--text)}.copy-embed:disabled,.copy-embed[aria-disabled=true]{opacity:.35;cursor:not-allowed}.copy-embed[data-copied=true]{color:#6a9c70;border-color:transparent;background:transparent}.copy-embed[data-failed=true]{color:#b85742;border-color:transparent;background:transparent}.copy-embed .ico-check,.copy-embed[data-copied=true] .ico-clipboard{display:none}.copy-embed[data-copied=true] .ico-check{display:inline-block}.modal-title-row{display:flex;align-items:flex-start;gap:8px;margin:0 0 4px;padding-right:40px}.modal-title-row #modal-title{margin:0;flex:1 1 auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 768px){:root{--app-pad-x: 16px;--app-pad-y: 20px;--grid-min: 200px;--grid-gap: 10px}#filters{padding:10px;gap:8px}}@media (max-width: 480px){:root{--app-pad-x: 12px;--app-pad-y: 16px;--grid-min: 100%;--grid-gap: 8px}body{font-size:13px}#search{font-size:16px}#modal{padding:8px}.modal-inner{padding:16px;max-height:calc(100dvh - 16px)}#modal-canvas{height:min(420px,50dvh)}.toggle{font-size:11px}.mod-filter{padding:6px 10px;font-size:12px}}@media (hover: none) and (pointer: coarse){.card:hover{transform:none;border-color:var(--border)}.mod-filter:hover{color:var(--text-dim)}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
