:root{--bg: #f7f7f8;--surface: #ffffff;--text: #1c1c1e;--muted: #6b6b70;--border: #dedee2;--accent: #2d5bd7;--danger: #b42318;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}body{margin:0;background:var(--bg)}.login{display:grid;place-items:center;min-height:100vh;padding:16px}.login form{display:grid;gap:12px;width:min(360px,100%);padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.login h1{margin:0 0 8px;font-size:20px}label{display:grid;gap:4px;font-size:14px;color:var(--muted)}input{padding:8px 10px;font-size:15px;border:1px solid var(--border);border-radius:6px}button{padding:8px 14px;font-size:14px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}button:disabled{opacity:.5;cursor:default}.error{color:var(--danger);margin:0}.shell header{display:flex;gap:16px;align-items:center;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.shell .who{margin-left:auto;color:var(--muted);font-size:14px}.shell main{padding:16px}table{width:100%;border-collapse:collapse;background:var(--surface)}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--border);font-size:14px}.empty{color:var(--muted)}.pager{display:flex;gap:8px;margin-top:12px}.muted,.hint{color:var(--muted);font-size:14px}button.link{padding:0;border:none;background:none;color:var(--accent);text-decoration:underline}.import-panel{margin-bottom:24px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.import-panel h2{margin-top:0}.import-forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.import-forms form{display:grid;gap:8px;align-content:start}.job{display:grid;gap:4px;margin-top:12px;padding:12px;border-left:3px solid var(--accent);background:var(--bg)}.job progress{width:100%;height:10px}.job-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:4px}.job-problems{display:grid;gap:4px;justify-items:start;max-height:320px;overflow:auto;margin-top:8px}.virtual-scroll{overflow-y:auto;border:1px solid var(--border);background:var(--surface)}.virtual-table{table-layout:fixed}.virtual-table thead th{position:sticky;top:0;z-index:1;background:var(--surface)}.virtual-table td{padding-top:0;padding-bottom:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.virtual-table tr.virtual-pad{border:none}.virtual-table .col-sku{width:120px}.virtual-table .col-brand{width:18%}.virtual-table .col-status{width:16%}.product-card{display:grid;gap:12px;justify-items:start}.product-card>table{max-width:720px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:13px;background:var(--border)}.badge-mapped{background:#dff3e4}.badge-incomplete{background:#fdecc8}.reasons{margin:0;color:var(--danger)}.gallery{display:flex;flex-wrap:wrap;gap:8px}.gallery img,.photo-missing{width:160px;height:160px;object-fit:contain;background:var(--surface);border:1px solid var(--border);border-radius:6px}.photo-missing{display:grid;place-items:center;padding:8px;color:var(--muted);font-size:13px;text-align:center}.facts{display:grid;gap:4px;margin:0}.facts .fact{display:flex;gap:8px}.facts dt{min-width:120px;color:var(--muted)}.facts dd{margin:0}.description{max-width:720px;margin:0;white-space:pre-line}.readiness,.category,.attributes,.text-form,.rights{width:min(720px,100%);padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.readiness h3,.category h3,.attributes h3,.text-form h3,.rights h3{margin:0 0 8px;font-size:16px}.meter{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.meter span{display:block;height:100%;background:var(--accent)}.holes{margin:8px 0 0;color:var(--danger)}.ok{margin:8px 0 0;color:#1e7a3d}.badge-ready{background:#c9ecd4}.inline-form{display:flex;gap:8px;flex-wrap:wrap}.choices{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:4px}.attributes,.text-form{display:grid;gap:12px}.attr .field,.text-form label{display:grid;gap:4px}.attr fieldset{margin:0;padding:8px;border:1px solid var(--border);border-radius:6px}.attr-name{color:var(--text);font-size:14px}label.check{display:flex;gap:8px;align-items:flex-start;color:var(--text)}select,textarea{padding:8px 10px;font-size:15px;border:1px solid var(--border);border-radius:6px;font-family:inherit}.gallery figure{margin:0;display:grid;gap:4px}fieldset.plain{display:grid;gap:12px;margin:0;padding:0;border:none;min-width:0}.store,.offer,.publish{width:min(720px,100%);padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.store{width:auto;margin-bottom:24px}.store h2{margin-top:0}.store-form,.offer{display:grid;gap:12px}.store-form label,.offer label{display:grid;gap:4px}.offer h3,.publish h3{margin:0 0 8px;font-size:16px}.offer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.badge-blocked,.badge-rejected{background:#f8d4d0}.badge-published{background:#c9ecd4}.badge-publish_queued,.badge-publishing{background:#d6e2fb}.urls{margin:8px 0;padding-left:18px;font-size:12px;word-break:break-all}.ops-panel{display:grid;gap:2px;margin-bottom:12px;padding:8px 12px;font-size:14px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.link-panel{margin-bottom:16px}.link-journal{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;overflow-x:auto}.link-journal caption{text-align:left;font-weight:600;padding:4px 0}.new-token code{word-break:break-all;background:var(--surface);border:1px solid var(--border);padding:2px 4px}
