@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f8fafc;--card:#fff;--text:#0f172a;--muted:#64748b;--subtle:#94a3b8;--accent:#2563eb;--accent-hover:#1d4ed8;--border:#e5e7eb;--focus:#2563eb59;--success:#16a34a;--warning:#d97706;--error:#dc2626;--shadow:0 8px 24px #0f172a0f}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}a{color:var(--accent);text-decoration:none}a:not(.button):hover{color:var(--accent-hover)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}main{max-width:1100px;margin:0 auto;padding:2.5rem 1.5rem 3rem}.app-shell{min-height:100vh}.top-nav{border-bottom:1px solid var(--border);background:var(--card);justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 2rem;display:flex}.brand{letter-spacing:.02em;font-size:1rem;font-weight:600;line-height:1.2}.nav-links{color:var(--muted);align-items:center;gap:.75rem;font-size:.9rem;display:flex}.nav-button{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:999px;align-items:center;gap:.35rem;padding:.45rem .85rem;font-weight:500;display:inline-flex}.nav-button.active,.nav-button:hover{color:var(--text);border-color:#0f172a33}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:1.5rem}.card-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.card-title{margin:0;font-size:1.2rem;font-weight:600}.card-subtitle{color:var(--muted);margin:.25rem 0 0;font-size:.85rem}.button{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:10px;padding:.6rem 1rem;font-weight:500;transition:background-color .14s,border-color .14s,color .14s,transform .14s,box-shadow .14s}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--accent);border-color:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;box-shadow:0 8px 18px #1d4ed838}.button-secondary{color:var(--text)}.button-small{padding:.35rem .75rem;font-size:.85rem}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem .5rem;font-size:.95rem}.table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:500}.table-wrapper{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.status-icon{justify-content:center;align-items:center;width:18px;height:18px;font-size:14px;line-height:1;display:inline-flex}.status-lamp{vertical-align:middle}@keyframes lampPulse{0%{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}to{opacity:.8;transform:scale(1)}}.status-lamp-pulse{animation:.9s ease-in-out infinite lampPulse}.status-icon-success{color:var(--success)}.status-icon-error{color:var(--error)}.status-icon-muted{color:var(--muted)}.status-icon-spin{color:var(--warning);animation:.9s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cell-compact{white-space:nowrap;text-overflow:ellipsis;max-width:320px;overflow:hidden}.cell-note{white-space:nowrap;text-overflow:ellipsis;max-width:420px;overflow:hidden}.badge{border:1px solid #0000;border-radius:999px;align-items:center;padding:.15rem .45rem;font-size:.7rem;font-weight:500;display:inline-flex}.badge-success{color:var(--success);background:#16a34a14;border-color:#16a34a33}.badge-warning{color:var(--warning);background:#d9770614;border-color:#d9770633}.badge-error{color:var(--error);background:#dc262614;border-color:#dc262633}.input,textarea.input{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;padding:.65rem .75rem;font-size:.95rem}.input:focus,textarea.input:focus{border-color:var(--accent);outline:2px solid #2563eb33}.label{color:var(--muted);margin-bottom:.4rem;font-size:.85rem;font-weight:500;display:block}.form-grid{gap:1.25rem;display:grid}.mapping-grid{gap:.75rem;display:grid}.mapping-header{text-transform:uppercase;letter-spacing:.08em;color:var(--subtle);grid-template-columns:minmax(180px,1fr) minmax(220px,1fr);gap:1rem;margin-bottom:.5rem;font-size:.75rem;display:grid}.mapping-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(180px,1fr) minmax(220px,1fr);align-items:center;gap:1rem;padding:.5rem .25rem;display:grid}.mapping-label{color:var(--muted);font-size:.9rem}.mapping-grid .mapping-row:last-child{border-bottom:none}.helper-text{color:var(--subtle);margin-top:.4rem;font-size:.8rem}.section{margin-top:2rem}.muted{color:var(--muted)}.empty-state{border:1px dashed var(--border);text-align:center;color:var(--muted);border-radius:12px;padding:2rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.85rem}h1,h2,h3{margin-top:0}.modal-overlay{z-index:50;background:#0f172a59;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--border);width:min(520px,90vw);box-shadow:var(--shadow);border-radius:12px;padding:1.5rem}.modal-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.modal-title{margin:0;font-size:1.1rem;font-weight:600}@media (max-width:840px){.top-nav{flex-direction:column;align-items:flex-start}.nav-links{flex-wrap:wrap}}@media (max-width:720px){main{padding:2rem 1.25rem 2.5rem}.card{padding:1.25rem}.mapping-header{display:none}.mapping-row{grid-template-columns:1fr}}
