:root{--bg: #f6f7f9;--surface: #ffffff;--border: #dfe3e8;--text: #1c2430;--muted: #68727f;--accent: #1d5fd1;--accent-soft: #e8f0fd;--ok: #17703a;--danger: #b3261e;--danger-soft: #fdecea;--changed: #fff8e1;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1,h2,h3,p{margin:0}h2{font-size:17px}h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}button,.button,input,select{font:inherit;color:inherit}button,.button{display:inline-block;padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;text-decoration:none;white-space:nowrap}button:hover:not(:disabled),.button:hover{border-color:#b8c0cb}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.link-button,.icon-button{border:0;background:none;padding:0;color:var(--accent)}.link-button:hover{text-decoration:underline}.icon-button{font-size:22px;line-height:1;color:var(--muted);padding:0 6px}input[type=text],input[type=search],input[type=password],select{padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.muted{color:var(--muted)}.ok-text{color:var(--ok)}.error-text{color:var(--danger)}.push-right{margin-left:auto}.num{text-align:right;font-variant-numeric:tabular-nums}.center{text-align:center}.topbar{display:flex;align-items:center;gap:16px;padding:0 20px;height:48px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:3}.brand{font-weight:700}.topbar nav{display:flex;gap:4px;align-self:stretch}.topbar nav a{display:flex;align-items:center;gap:6px;padding:0 12px;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent}.topbar nav a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}#root{min-height:100vh;display:flex;flex-direction:column}#root>main{flex:1}.footer{display:flex;flex-wrap:wrap;gap:4px 20px;padding:12px 20px;border-top:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:12px}.split{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.split.with-detail{grid-template-columns:minmax(0,1fr) minmax(340px,420px)}.main-column{padding:16px 20px 24px;min-width:0}.toolbar,.statusbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px}.toolbar input[type=search]{flex:1 1 220px;max-width:340px}.toolbar label{display:flex;align-items:center;gap:6px;color:var(--muted)}.toolbar label.check{color:var(--text)}.statusbar{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}.stat{display:flex;flex-direction:column;gap:2px;padding:10px 14px;text-align:left;white-space:normal;background:var(--surface);border:1px solid var(--border);border-radius:8px}.stat[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.stat-value{font-size:22px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.stat-label{color:var(--muted);font-size:12px}.stat-out_of_stock .stat-value{color:var(--danger)}.stat-unlimited .stat-value{color:var(--ok)}.stat-not_reported .stat-value{color:var(--muted)}.stat-error .stat-value{color:var(--danger)}.error-note{display:flex;align-items:center;gap:12px;padding:10px 12px;margin-bottom:10px;background:var(--danger-soft);border:1px solid #f3c2bd;border-radius:6px;color:var(--danger)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%}.grid th,.grid td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.grid th.num,.grid td.num{text-align:right}.grid th.center,.grid td.center{text-align:center}.grid thead th{background:#fafbfc;font-weight:600;color:var(--muted);white-space:nowrap}.grid thead th button{border:0;background:none;padding:0;font-weight:600;color:inherit}.grid tbody tr:last-child td{border-bottom:0}.grid:not(.sync-grid) tbody tr:not(.empty){cursor:pointer}.grid:not(.sync-grid) tbody tr:not(.empty):hover{background:#f4f6f9}.grid tbody tr.selected,.grid:not(.sync-grid) tbody tr.selected:hover{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.grid td.item{font-weight:600;white-space:nowrap}.grid tr.empty td{text-align:center;color:var(--muted);padding:32px}.tag{margin-left:8px;padding:1px 6px;border-radius:4px;background:#eceff3;color:var(--muted);font-size:12px}.stock{white-space:nowrap}.stock-in{font-weight:600}.stock-out{color:var(--danger);font-weight:600}.stock-unlimited{color:var(--ok)}.stock-none{color:var(--muted)}.stock-error{color:var(--danger)}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.pager-buttons{display:flex;align-items:center;gap:10px}.detail{position:sticky;top:48px;height:calc(100vh - 48px);overflow-y:auto;background:var(--surface);border-left:1px solid var(--border);padding:16px 18px 32px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:12px}.detail-item{font-weight:700;color:var(--accent)}.detail-identity{display:flex;gap:14px;margin-bottom:4px}.detail-identity img{width:112px;height:112px;object-fit:contain;border:1px solid var(--border);border-radius:6px;background:#fff}.detail section{border-top:1px solid var(--border);padding-top:14px;margin-top:14px}.detail section>*+*{margin-top:8px}.detail dl{margin:0}.detail-identity dt{color:var(--muted);font-size:12px}.detail-identity dd{margin:0 0 6px}.detail-stock{font-size:16px}.facts>div{display:grid;grid-template-columns:120px 1fr;gap:8px;padding:4px 0}.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}.mini th,.mini td{padding:4px 8px 4px 0;text-align:left;border-bottom:1px solid var(--border)}.mini th.num,.mini td.num{text-align:right}.mini th{color:var(--muted);font-weight:500}.price-table{width:auto}.price-table td{padding-left:12px}.scroll-x{overflow-x:auto}.raw{background:#f4f6f9;border-radius:6px;padding:10px;font-size:12px;overflow-x:auto;max-height:420px}.sync-header{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 24px;margin-bottom:14px}.sync-header>div:first-child{flex:1 1 420px}.sync-header p{margin-top:4px}.sync-actions{display:flex;flex-wrap:wrap;gap:8px}.sync-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.segmented{display:inline-flex;align-items:center}.segmented-label{margin-right:8px;color:var(--muted)}.segmented button{border-radius:0;margin-left:-1px}.segmented button:nth-child(2){border-radius:6px 0 0 6px;margin-left:0}.segmented button:last-child{border-radius:0 6px 6px 0}.segmented button[aria-checked=true]{position:relative;background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.segmented button.segment-live[aria-checked=true]{background:var(--ok);border-color:var(--ok);color:#fff}.stat-warn .stat-value{color:#b7791f}.stat-ok .stat-value{color:var(--ok)}.stat-danger .stat-value{color:var(--danger)}.stat-muted .stat-value{color:var(--muted)}.notice{padding:10px 12px;margin-bottom:12px;background:var(--surface);border:1px solid var(--border);border-radius:6px}.notice ul{margin:4px 0 0;padding-left:18px}.notice .item{font-weight:600}.sync-grid tr.changed{background:var(--changed)}.sync-grid td:last-child{white-space:nowrap}.diff-up{color:var(--ok);font-weight:600}.diff-down{color:var(--danger);font-weight:600}dialog{border:0;border-radius:10px;padding:22px;width:min(620px,calc(100vw - 32px));box-shadow:0 12px 40px #00000040}dialog::backdrop{background:#141c2873}.dialog-body{margin:12px 0 18px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login form{width:min(340px,100%);display:grid;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:28px}.login h1{font-size:20px;margin-bottom:8px}@media (max-width: 900px){.split.with-detail{grid-template-columns:minmax(0,1fr)}.detail{position:fixed;inset:48px 0 0 auto;width:min(420px,100vw);box-shadow:-8px 0 30px #00000026;z-index:2}.topbar{gap:8px;padding:0 10px}.topbar .muted{display:none}}
