:root{--bg:#0f1419;--bg-elevated:#1a222c;--bg-soft:#243040;--border:#2e3b4a;--text:#e8eef4;--muted:#8fa3b8;--accent:#1f9d7a;--accent-hover:#178a6a;--danger:#d64545;--warning:#d4a017;--font-sans:"Segoe UI","IBM Plex Sans",system-ui,sans-serif;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:radial-gradient(1200px 600px at 10% -10%,rgba(31,157,122,.18),transparent 55%),radial-gradient(900px 500px at 100% 0,rgba(70,110,160,.16),transparent 50%),var(--bg);color:var(--text);font-family:var(--font-sans)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.container{width:min(1120px,calc(100% - 2rem));margin:0 auto}.card{background:color-mix(in srgb,var(--bg-elevated) 92%,transparent);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.btn{border:0;border-radius:8px;background:var(--accent);color:#04140f;font-weight:650;padding:.65rem 1rem;cursor:pointer}.btn:hover{background:var(--accent-hover)}.btn.secondary{background:var(--bg-soft);color:var(--text)}.btn.compact{padding:.4rem .65rem;font-size:.82rem;white-space:nowrap}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover{background:#b83838}.btn:disabled{opacity:.55;cursor:not-allowed}.actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.input{width:100%;border:1px solid var(--border);background:#121820;color:var(--text);border-radius:8px;padding:.7rem .8rem}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:.7rem .5rem;border-bottom:1px solid var(--border);vertical-align:top}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;background:var(--bg-soft);color:var(--muted);font-size:.8rem}.badge.status-in_review,.badge.status-pending,.badge.status-syncing{background:rgba(212,160,23,.18);color:#f3d48a}.badge.status-approved,.badge.status-synced{background:rgba(31,157,122,.2);color:#9be7d0}.badge.status-rejected,.badge.status-sync_error{background:rgba(214,69,69,.2);color:#ffb4b4}.muted{color:var(--muted)}.error{color:#ffb4b4}.modal-backdrop{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:4vh 1rem 2rem;overflow:auto;background:rgba(4,10,16,.72);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-panel{width:min(760px,100%);max-height:min(88vh,900px);display:flex;flex-direction:column;box-shadow:0 18px 50px rgba(0,0,0,.45)}.modal-panel.wide{width:min(920px,100%)}.modal-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--border)}.modal-body{overflow:auto;display:grid;grid-gap:.85rem;gap:.85rem}.detail-field{display:grid;grid-gap:.2rem;gap:.2rem}.detail-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.detail-value{word-break:break-word;white-space:pre-wrap}.detail-value a{color:#8ee0c8;text-decoration:underline}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.75rem;gap:.75rem}.json-block{margin:0;border-radius:8px;background:#121820;color:var(--text);font-size:.82rem;line-height:1.45;overflow:auto;max-height:280px;white-space:pre-wrap;word-break:break-word}.event-card,.json-block{padding:.75rem;border:1px solid var(--border)}.event-card{border-radius:8px;background:color-mix(in srgb,var(--bg-soft) 45%,transparent);display:grid;grid-gap:.55rem;gap:.55rem}.detail-photos{display:flex;gap:.6rem;overflow:auto}.detail-photos img{width:140px;height:140px;object-fit:cover}.detail-logo,.detail-photos img{border-radius:8px;border:1px solid var(--border);background:#121820}.detail-logo{width:72px;height:72px;object-fit:contain}.store-product-row{display:flex;justify-content:space-between;gap:.75rem;align-items:center;flex-wrap:wrap}.notice{border:1px solid rgba(212,160,23,.45);background:rgba(212,160,23,.12);color:#f3d48a;border-radius:8px;padding:.75rem .85rem}.sync-error-box{border:1px solid rgba(214,69,69,.45);background:rgba(214,69,69,.12);color:#ffd0d0;border-radius:8px;padding:.85rem;white-space:pre-wrap;word-break:break-word}