:root{color-scheme:light;--accent: #e05080;--accent-strong: #c93f6d;--accent-soft: #fdeef4;--bg: #f2f3f7;--surface: #ffffff;--border: #e4e6ee;--text: #1d1f27;--text-2: #6b7080;--text-3: #9aa0b0;--ok: #2f9e6e;--degraded: #e8a13c;--failed: #e05050;--radius: 6px;--shadow-lg: 0 24px 64px #1d1f2733, 0 4px 16px #1d1f271a}*{box-sizing:border-box}body{margin:0;font:14px/1.6 Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer}button:focus-visible,select:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#toolbar{position:sticky;top:0;z-index:10;display:flex;gap:8px;align-items:center;padding:10px 20px;background:#fff;border-bottom:1px solid var(--border)}#brand{display:flex;align-items:center;gap:8px;margin-right:10px;font-weight:700;font-size:15px;letter-spacing:.4px;color:var(--text);white-space:nowrap}#brand:before{content:"";width:18px;height:18px;flex:none;background:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"%3E%3Cpath d="M3 13 L13 3 M6 3 h7 v7" stroke="%23e05080" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E') center/contain no-repeat}#toolbar button{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:7px 14px;border-radius:9px;font-weight:600;font-size:13px}#toolbar button:hover{background:#f5f6fa;border-color:#d3d7e2}#pick{background:var(--accent);border-color:var(--accent);color:#fff}#pick:hover{background:var(--accent-strong);border-color:var(--accent-strong)}#download-selected{border-color:var(--accent);color:var(--accent)}#download-selected:hover{background:var(--accent-soft);border-color:var(--accent)}#toolbar label{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2);font-weight:500;white-space:nowrap}#thumb-size{accent-color:var(--accent)}#filter{padding:6px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:13px}#status{margin-left:auto;padding:4px 12px;background:#e9ebf2;color:var(--text-2);border-radius:999px;font-size:12.5px;white-space:nowrap}#error{padding:4px 12px;background:#fdecec;color:var(--failed);border-radius:999px;font-size:12.5px;white-space:nowrap}#error:empty,#status:empty{display:none}@media(max-width:700px){#toolbar{flex-wrap:wrap}#status{margin-left:0}}#grid{padding:20px}.cell{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.cell canvas{display:block;width:100%;height:auto;background:#fbfbfd}.cell .name{padding:4px 12px 0;font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell .dim{padding:1px 12px 6px;font-size:11px;line-height:15px;color:var(--text-3)}.cell.degraded{border-color:var(--degraded)}.cell.failed{border-color:var(--failed)}.cell.failed .dim{color:var(--failed)}.cell.selected{border-color:var(--accent)}.cell .select{position:absolute;top:8px;left:8px;z-index:1;width:18px;height:18px;margin:0;accent-color:var(--accent);border-radius:5px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#17192373;display:flex;align-items:center;justify-content:center;animation:fade-in .18s ease}.dialog{width:min(420px,calc(100vw - 32px));padding:22px 24px;background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);max-height:calc(100vh - 48px);overflow:auto;animation:pop-in .2s cubic-bezier(.2,.9,.3,1.15)}.dialog h2{margin:0;font-size:17px}.dialog form{display:grid;gap:12px;margin-top:16px}.dialog label{display:grid;gap:5px;font-size:12.5px;font-weight:600;color:var(--text-2)}.dialog input{box-sizing:border-box;width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:#fbfbfd;color:var(--text);font:inherit}.dialog input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.dialog .hint{margin:0;font-size:11.5px;color:var(--text-3);line-height:1.55}.dialog .check{display:flex;align-items:center;gap:8px;font-weight:400;color:var(--text)}.dialog .check input{width:auto;accent-color:var(--accent)}.dialog menu{display:flex;justify-content:flex-end;gap:8px;margin:8px 0 0;padding:0}.dialog menu button,.browser-toolbar button{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:8px 16px;border-radius:9px;font-weight:600;font-size:13px}.dialog menu button:hover,.browser-toolbar button:hover{background:#f5f6fa;border-color:#d3d7e2}.dialog menu button[type=submit],.dialog menu [data-load]{background:var(--accent);border-color:var(--accent);color:#fff}.dialog menu button[type=submit]:hover,.dialog menu [data-load]:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.dialog button:disabled,.browser-toolbar button:disabled{opacity:.55;cursor:default}.openlist-browser .dialog{width:min(560px,calc(100vw - 32px))}.browser-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px}.browser-toolbar code{flex:1;padding:6px 10px;background:#f2f3f8;border-radius:8px;color:var(--text-2);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.openlist-entries{display:grid;gap:6px;max-height:50vh;overflow:auto;padding:2px}.openlist-entry{display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:left;cursor:pointer;font:inherit;font-size:13px;color:var(--text)}.openlist-entry:hover{background:var(--accent-soft);border-color:#f3c6d6}.openlist-entry[data-dir=true]:before{content:"▸";color:var(--accent);font-weight:700;flex:none}.openlist-entry[data-dir=false]:before{content:"↓";color:var(--ok);font-weight:700;flex:none}a.openlist-entry{text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#14161e99;display:flex;align-items:center;justify-content:center;animation:fade-in .18s ease}.detail{position:relative;display:grid;grid-template-columns:1fr 300px;width:min(94vw,1400px);height:min(90vh,900px);background:var(--surface);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-lg);animation:pop-in .22s cubic-bezier(.2,.9,.3,1.12)}.stage{position:relative;overflow:hidden;background:#fafafa;cursor:grab}.stage:active{cursor:grabbing}.stage canvas{width:100%;height:100%;display:block}.info{display:flex;flex-direction:column;gap:14px;padding:20px;border-left:1px solid var(--border);background:#fcfcfd;overflow:auto}.info h2{margin:0;font-size:15px;overflow-wrap:anywhere}.file-path{margin:0;color:var(--text-2);font-size:12px;overflow-wrap:anywhere}.file-download{margin:0}.file-download:empty{display:none}.file-download a{display:inline-block;padding:7px 14px;background:var(--accent);color:#fff;border-radius:9px;text-decoration:none;font-size:12.5px;font-weight:600}.file-download a:hover{background:var(--accent-strong)}.info dl{display:grid;grid-template-columns:5em 1fr;gap:7px 10px;margin:0;padding:13px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:12.5px}.info dt{color:var(--text-3)}.info dd{margin:0;font-weight:500}.info>label{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2)}.info .jumps{accent-color:var(--accent)}.threads{list-style:none;margin:0;padding:9px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.threads li{display:flex;align-items:center;gap:9px;padding:3px 0;font-size:12.5px;overflow-wrap:anywhere}.sw{width:15px;height:15px;flex:none;border-radius:4px;border:1px solid #0002}.hint{margin:0;color:var(--text-3);font-size:11px}.detail-close{position:absolute;top:12px;right:12px;z-index:2;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--surface);color:var(--text-2);font-size:17px;line-height:1}.detail-close:hover{background:#fdecec;color:var(--failed)}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.96) translateY(8px)}}@media(prefers-reduced-motion:reduce){.dialog-backdrop,.overlay,.dialog,.detail{animation:none}}
