:root{--bg:#f6f7f9;--card:#fff;--bd:#e3e6ea;--tx:#1d2330;--mut:#6b7280;--pri:#2563eb;--ok:#15803d;--err:#b91c1c;--warn:#b45309}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--tx)}
a{color:var(--pri);text-decoration:none}a:hover{text-decoration:underline}
.top{background:#111827;color:#fff;display:flex;align-items:center;gap:4px;padding:0 16px;height:48px;position:sticky;top:0;z-index:5;overflow-x:auto}
.top a{color:#d1d5db;padding:6px 10px;border-radius:6px;white-space:nowrap}.top a:hover,.top a.on{background:#1f2937;color:#fff;text-decoration:none}
.top .brand{color:#fff;font-weight:700;margin-right:12px}.top .sp{flex:1}.top form{margin:0}
.wrap{max-width:1280px;margin:0 auto;padding:20px 16px}
h1{font-size:20px;margin:0 0 14px}h2{font-size:16px;margin:18px 0 8px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:14px;margin-bottom:14px}
.grid{display:grid;gap:12px}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.stat b{display:block;font-size:26px}.stat span{color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
table{width:100%;border-collapse:collapse;background:var(--card)}th,td{padding:8px 10px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:middle}
th{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em;background:#fafbfc}
.thumb{width:56px;height:56px;object-fit:contain;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0/12px 12px;border:1px solid var(--bd);border-radius:6px}
input,select,textarea,button{font:inherit}input[type=text],input[type=url],input[type=email],input[type=password],input[type=date],select,textarea{width:100%;padding:7px 9px;border:1px solid #cfd4db;border-radius:7px;background:#fff}
textarea{min-height:90px}label{display:block;font-size:12px;color:var(--mut);margin:8px 0 3px}
.btn,button{background:var(--pri);color:#fff;border:0;border-radius:7px;padding:7px 14px;cursor:pointer;display:inline-block}.btn:hover,button:hover{filter:brightness(.93);text-decoration:none}
.btn.sec,button.sec{background:#fff;color:var(--tx);border:1px solid #cfd4db}.btn.dng,button.dng{background:var(--err)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1;min-width:130px}.row>.auto{flex:none;min-width:0}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px;background:#dcfce7;color:#14532d}.flash.err{background:#fee2e2;color:#7f1d1d}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600;background:#e5e7eb;color:#374151}
.b-approved,.b-clear,.b-success,.b-ready,.b-done{background:#dcfce7;color:#166534}.b-rejected,.b-high_risk,.b-failed,.b-download_failed,.b-invalid{background:#fee2e2;color:#991b1b}
.b-pending_review,.b-warning,.b-processing,.b-pending_download,.b-pending,.b-preview{background:#fef3c7;color:#92400e}.b-used{background:#dbeafe;color:#1e40af}
.pager{display:flex;gap:4px;margin:14px 0;flex-wrap:wrap}.pager .pg{padding:5px 10px;border:1px solid var(--bd);border-radius:6px;background:#fff;color:var(--tx)}.pager .pg.on{background:var(--pri);color:#fff;border-color:var(--pri)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.gallery .it{background:#fff;border:1px solid var(--bd);border-radius:8px;padding:6px;font-size:12px}
.gallery img{width:100%;height:130px;object-fit:contain;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0/12px 12px;border-radius:4px}
.mut{color:var(--mut)}.small{font-size:12px}.err{color:var(--err)}.dup{background:#fffbeb}.bad{background:#fef2f2}
.login{max-width:360px;margin:12vh auto}pre.err{white-space:pre-wrap}
.preview-img{max-width:240px;max-height:240px;border:1px solid var(--bd);border-radius:8px;background:#fff}
.assets-list{max-height:420px;overflow:auto;border:1px solid var(--bd);border-radius:8px}.assets-list label{display:flex;gap:8px;margin:0;padding:5px 8px;border-bottom:1px solid var(--bd);color:var(--tx);font-size:13px;align-items:center}
.assets-list .u{color:var(--mut);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}
@media(max-width:700px){.row>*{min-width:100%}th:nth-child(n+5),td:nth-child(n+5){display:none}}
