:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;--bg: #0f1115;--panel: #1a1d24;--panel-2: #232730;--border: #2d323d;--text: #e6e8ec;--muted: #8b93a3;--accent: #f5a623;--accent-hover: #ffb845;--danger: #e54848;--success: #4caf50}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);min-height:100vh}button{font-family:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:8px 14px;border-radius:6px;font-size:14px;transition:background .15s,border-color .15s}button:hover{background:#2c3140}button.primary{background:var(--accent);color:#1a1206;border-color:var(--accent);font-weight:600}button.primary:hover{background:var(--accent-hover)}button.danger{border-color:var(--danger);color:var(--danger)}button.danger:hover{background:#e548481a}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font-family:inherit;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:14px;width:100%}select{cursor:pointer}select.required-empty{border-color:#f5a62380;color:var(--muted)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}.app{max-width:1200px;margin:0 auto;padding:24px}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.header h1{margin:0;font-size:22px}.header .user{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px}.login{max-width:400px;margin:80px auto;padding:32px;background:var(--panel);border-radius:12px;border:1px solid var(--border)}.login h2{margin-top:0;text-align:center}.login .field{margin-bottom:14px}.login .field label{display:block;margin-bottom:6px;font-size:13px;color:var(--muted)}.login button{width:100%;margin-top:6px}.error{color:var(--danger);font-size:13px;margin-top:8px}.info{color:var(--success);font-size:13px;margin-top:8px;padding:8px 12px;background:#4caf501a;border-radius:6px;border:1px solid rgba(76,175,80,.3)}.upload-bar{display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px dashed var(--border);border-radius:10px;padding:16px;margin-bottom:20px}.upload-bar.dragging{border-color:var(--accent);background:var(--panel-2)}.upload-bar .hint{color:var(--muted);font-size:13px}.upload-bar .row{display:flex;gap:10px;flex-wrap:wrap}.upload-bar .row>*{flex:1;min-width:140px}.upload-bar .preview{max-height:180px;border-radius:6px;align-self:flex-start;border:1px solid var(--border)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.card .img{background:#000;display:flex;justify-content:center;align-items:center;max-height:320px;overflow:hidden}.card .img img{width:100%;height:auto;display:block}.card .body{padding:12px 14px;display:flex;flex-direction:column;gap:6px}.card .nick{font-weight:600;color:var(--accent);font-size:15px}.card .item-name{font-size:14px}.card .note{color:var(--muted);font-size:13px;white-space:pre-wrap}.card .meta{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;margin-top:4px}.card.claimed{opacity:.55}.card.claimed .img{filter:grayscale(.5)}.card .actions{display:flex;gap:6px;padding:0 14px 12px}.card .actions button{flex:1;padding:6px 10px;font-size:13px}.badge{display:inline-block;padding:2px 8px;background:var(--success);color:#fff;border-radius:999px;font-size:11px}.empty{text-align:center;padding:80px 20px;color:var(--muted)}.tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--border)}.tab{border:none;background:transparent;color:var(--muted);padding:10px 16px;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;display:flex;align-items:center;gap:6px}.tab:hover{background:transparent;color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-count{background:var(--panel-2);color:var(--muted);font-size:11px;padding:1px 7px;border-radius:999px}.tab.active .tab-count{background:var(--accent);color:#1a1206}.filter-bar{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.filter-bar select,.filter-bar .filter-input{flex:0 0 auto;width:auto;min-width:140px}.filter-bar button{flex:0 0 auto}.tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.tag{display:inline-block;font-size:11px;padding:1px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);line-height:1.6}.tag-class{background:#f5a6231a;border-color:#f5a6234d;color:var(--accent)}.class-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:4px 0}.class-chip-label{color:var(--muted);font-size:13px;margin-right:4px}.chip{font-size:12px;padding:4px 10px;border-radius:999px;background:transparent;border:1px solid var(--border);color:var(--muted)}.chip:hover{border-color:var(--accent);color:var(--text);background:transparent}.chip.active{background:#f5a62326;border-color:var(--accent);color:var(--accent)}.admin-badge{display:inline-block;background:var(--danger);color:#fff;font-size:11px;padding:2px 8px;border-radius:4px;margin-left:10px;font-weight:700;letter-spacing:.5px;vertical-align:middle}.tab-admin{color:#e54848}.tab.tab-admin.active{color:#ff6f6f;border-bottom-color:#ff6f6f}.badge-danger{background:var(--danger)!important}.card.deleted{opacity:.4}.card.deleted .img{filter:grayscale(1)}.card.suspicious{border-color:#ff8c2a;box-shadow:0 0 0 1px #ff8c2a4d}.card .img{position:relative}.badge-overlay{position:absolute;top:8px;right:8px;background:#ff8c2af2;color:#1a1206;font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px}.admin-meta{flex-direction:column;align-items:flex-start;gap:2px;padding-top:6px;border-top:1px dashed var(--border);margin-top:6px}.ai-reason{color:#ff8c2a;font-style:italic}.ocr-box{padding:8px 12px;border-radius:6px;font-size:13px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.ocr-box.pass{background:#4caf501a;border-color:#4caf5066;color:var(--success)}.ocr-box.fail{background:#ff8c2a1a;border-color:#ff8c2a66;color:#ff8c2a}@media(max-width:720px){.app{padding:12px}.header{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:16px;padding-bottom:12px}.header h1{font-size:18px;display:flex;align-items:center;gap:6px}.header .user{width:100%;justify-content:space-between;flex-wrap:wrap;gap:8px}.login{margin:30px auto;padding:20px}.upload-bar{padding:12px;gap:8px}.upload-bar .row{flex-direction:column;gap:8px}.upload-bar .row>*{min-width:0;width:100%}.upload-bar .preview{max-height:220px;width:100%;object-fit:contain}.class-chips{gap:4px}.chip{padding:4px 8px;font-size:11px}.tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;padding:8px 12px;font-size:13px;white-space:nowrap}.filter-bar{gap:6px}.filter-bar select,.filter-bar .filter-input{flex:1 1 calc(50% - 6px);min-width:0;width:auto}.filter-bar button{flex:1 1 100%}.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.card .actions{flex-wrap:wrap;padding:0 10px 10px}.card .actions button{flex:1 1 calc(50% - 3px);font-size:12px;padding:5px 8px}input,textarea,select{font-size:16px}.empty{padding:40px 12px}}@media(max-width:420px){.grid{grid-template-columns:1fr}.card .img{max-height:260px}}
