:root{--text:#737373;--text-h:#171717;--bg:#f7f2e8;--surface:#fdfaf3;--surface-2:#f1ead9;--border:#e5dcc4;--code-bg:#f5f5f5;--accent:#e11d48;--accent-strong:#be123c;--accent-bg:#e11d4814;--accent-border:#e11d4866;--danger:#e11d48;--danger-bg:#e11d4814;--success:#e11d48;--shadow-sm:0 1px 2px #0000000a;--shadow:0 4px 14px #0000000f, 0 1px 2px #0000000a;--shadow-lg:0 12px 32px #0000001a;--sans:system-ui, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:ui-monospace, Consolas, "JetBrains Mono", monospace;font:14px/1.5 var(--sans);color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--text:#a3a3a3;--text-h:#fafafa;--bg:#0a0a0a;--surface:#171717;--surface-2:#1f1f1f;--border:#262626;--code-bg:#1f1f1f;--accent:#fb7185;--accent-strong:#fda4af;--accent-bg:#fb718524;--accent-border:#fb718580;--danger:#fb7185;--danger-bg:#fb718524;--success:#fb7185;--shadow-sm:0 1px 2px #0006;--shadow:0 4px 14px #00000080;--shadow-lg:0 12px 32px #0009}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--text:#a3a3a3;--text-h:#fafafa;--bg:#0a0a0a;--surface:#171717;--surface-2:#1f1f1f;--border:#262626;--code-bg:#1f1f1f;--accent:#fb7185;--accent-strong:#fda4af;--accent-bg:#fb718524;--accent-border:#fb718580;--danger:#fb7185;--danger-bg:#fb718524;--success:#fb7185;--shadow-sm:0 1px 2px #0006;--shadow:0 4px 14px #00000080;--shadow-lg:0 12px 32px #0009}}*{box-sizing:border-box}body{background-color:var(--bg);margin:0}@media (prefers-color-scheme:dark){body{background-image:none}}h1,h2,h3{font-family:var(--sans);color:var(--text-h);margin:0;font-weight:600}h2{letter-spacing:.2px;font-size:15px}input[type=text],input[type=search],textarea{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);border-radius:6px;outline:none;padding:7px 10px;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg)}textarea{resize:vertical;font-family:inherit}label{color:var(--text);flex-direction:column;gap:4px;font-size:12px;display:flex}#app{width:min(1920px,100%);margin:0 auto;padding:24px 24px 64px;position:relative}.fab{z-index:40;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.fab-btn{border:1px solid var(--border);background:var(--surface);width:42px;height:42px;color:var(--text-h);box-shadow:var(--shadow);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.fab-btn:hover{background:var(--surface-2);border-color:var(--accent-border);color:var(--accent)}.fab-btn:active{transform:scale(.94)}.fab input{display:none}.btn{font:inherit;color:var(--text-h);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-size:13px;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--text-h)}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:#0000}.btn-danger:hover{background:var(--danger);color:#fff}.btn-small{padding:4px 10px;font-size:12px}.btn-text{color:var(--accent);background:0 0;border:none;padding:4px 0;font-size:12px}.btn-text:hover{text-decoration:underline}.toolbar{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin-bottom:20px;display:grid}@media (width<=880px){.toolbar{grid-template-columns:1fr}}.upload-card,.filter-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex}.upload-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width<=720px){.upload-fields{grid-template-columns:1fr}}.upload-extra{color:var(--text);font-size:12px}.upload-extra>summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text);padding:2px 0;list-style:none}.upload-extra>summary::-webkit-details-marker{display:none}.upload-extra>summary:before{content:"▸ ";transition:transform .15s;display:inline-block}.upload-extra[open]>summary:before{transform:rotate(90deg)}.upload-extra-field{margin-top:8px}.file-drop{border:2px dashed var(--border);text-align:center;color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:22px;font-size:13px;transition:border-color .15s,background .15s,color .15s;display:flex}.file-drop:hover,.file-drop.dragging{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent)}.file-drop input{display:none}.upload-queue{flex-direction:column;gap:6px;display:flex}.upload-item{background:var(--surface-2);border-radius:6px;grid-template-columns:1fr 120px 60px;align-items:center;gap:10px;padding:6px 10px;font-size:12px;display:grid}.upload-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-bar{background:var(--border);border-radius:99px;height:6px;overflow:hidden}.upload-bar-fill{background:var(--accent);width:0;height:100%;transition:width .2s}.upload-status{text-align:right;color:var(--text)}.upload-item.done .upload-bar-fill{background:var(--success)}.upload-item.fail .upload-bar-fill{background:var(--danger)}.upload-item.fail .upload-status{color:var(--danger)}.tag-list{flex-wrap:wrap;gap:6px;max-height:180px;padding:2px;display:flex;overflow-y:auto}.tag-chip{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text-h);cursor:pointer;border-radius:99px;padding:4px 10px;font-size:12px;transition:all .15s}.tag-chip:hover{border-color:var(--accent-border);color:var(--accent)}.tag-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.tag-empty{color:var(--text);font-size:12px}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,clamp(140px,26vw,280px)),1fr));gap:clamp(10px,1.2vw,16px);display:grid}.card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .15s;display:flex;overflow:hidden}.card:hover{border-color:var(--accent-border);box-shadow:var(--shadow-lg);transform:scale(1.04)}.thumb{aspect-ratio:1;background:var(--surface-2);justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.card-actions{opacity:0;gap:6px;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.card:hover .card-actions,.card:focus-within .card-actions{opacity:1}.card-icon-btn{width:30px;height:30px;color:var(--text-h);cursor:pointer;box-shadow:var(--shadow-sm);background:#ffffffeb;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,transform .15s;display:inline-flex}.card-icon-btn:hover{background:var(--accent);color:#fff;transform:translateY(-1px)}@media (prefers-color-scheme:dark){.card-icon-btn{background:#171717e0}}.meta{flex-direction:column;gap:4px;padding:8px 10px 10px;display:flex}.meta-name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.meta-tags{flex-wrap:wrap;gap:4px;min-height:16px;display:flex}.meta-tag{background:var(--accent-bg);color:var(--accent);border-radius:99px;padding:1px 6px;font-size:10px}.meta-time{color:var(--text);font-size:11px;font-family:var(--mono)}.empty{text-align:center;color:var(--text);border:1px dashed var(--border);border-radius:10px;grid-column:1/-1;padding:60px 0}.grid-footer{flex-direction:column;align-items:center;gap:10px;padding:24px 0 8px;display:flex}.grid-info{color:var(--text);font-size:12px;font-family:var(--mono)}.modal{z-index:50;opacity:0;background:#0a08128c;justify-content:center;align-items:center;padding:20px;transition:opacity .18s;display:flex;position:fixed;inset:0}.modal.show{opacity:1}.modal-card{background:var(--surface);width:min(960px,100%);max-height:90vh;box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;transition:transform .18s;display:flex;overflow:hidden;transform:scale(.97)}.modal.show .modal-card{transform:scale(1)}.modal-head,.modal-foot{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 16px;display:flex}.modal-foot{border-top:1px solid var(--border);border-bottom:none}.modal-title{color:var(--text-h);flex:1;font-size:14px;font-weight:600}.icon-btn{width:28px;height:28px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:20px}.icon-btn:hover{background:var(--surface-2);color:var(--text-h)}.modal-body{flex:1;grid-template-columns:1fr 1fr;gap:0;display:grid;overflow:auto}@media (width<=720px){.modal-body{grid-template-columns:1fr}}.modal-preview{background:var(--surface-2);justify-content:center;align-items:center;min-height:240px;padding:12px;display:flex}.modal-preview img{object-fit:contain;border-radius:6px;max-width:100%;max-height:60vh;display:block}.modal-fields{flex-direction:column;gap:10px;padding:16px;display:flex}.url-row{align-items:center;gap:6px;display:flex}.url-row input{font-family:var(--mono);flex:1;font-size:12px}.tag-input-wrap{border:1px solid var(--border);background:var(--surface);border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;width:100%;padding:6px 8px;transition:border-color .15s,box-shadow .15s;display:flex}.tag-input-wrap:focus-within{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg)}.tag-input-chip{background:var(--accent-bg);color:var(--accent);border-radius:99px;align-items:center;gap:4px;padding:2px 4px 2px 8px;font-size:12px;display:inline-flex}.tag-input-remove{width:18px;height:18px;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.tag-input-remove:hover{background:var(--accent);color:#fff}.tag-input{flex:1;min-width:120px;box-shadow:none!important;background:0 0!important;border:none!important;padding:2px 0!important}.tag-input:focus{outline:none}.modal-time{color:var(--text);font-size:12px;font-family:var(--mono);margin-top:4px}.spacer{flex:1}.toast{background:var(--surface);color:var(--text-h);border:1px solid var(--border);box-shadow:var(--shadow);z-index:100;opacity:0;border-radius:8px;max-width:80vw;padding:10px 16px;font-size:13px;transition:opacity .2s,transform .2s;position:fixed;top:18px;left:50%;transform:translate(-50%)translateY(-10px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast-error{border-color:var(--danger);color:var(--danger);background:var(--danger-bg)}.theme-toast{background:var(--surface);color:var(--text-h);border:1px solid var(--border);box-shadow:var(--shadow);z-index:60;opacity:0;pointer-events:none;border-radius:99px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;transition:opacity .18s,transform .18s;display:inline-flex;position:fixed;bottom:24px;right:72px;transform:translate(12px)}.theme-toast.show{opacity:1;transform:translate(0)}
