:root{--bg: #0f1220;--bg-elevated: #171b2e;--bg-soft: #1d2338;--border: rgba(255, 255, 255, .08);--text: #f4f6fb;--muted: #9aa3bd;--accent: #7c5cff;--accent-2: #5b8cff;--success: #2ecc8a;--warning: #f0b429;--danger: #ff6b7a;--sidebar-w: 260px;--radius: 14px;--font: "DM Sans", system-ui, sans-serif;--font-display: "Instrument Sans", "DM Sans", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(1200px 600px at 10% -10%,rgba(124,92,255,.25),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(91,140,255,.18),transparent 55%),var(--bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{padding:1.25rem 1rem;border-right:1px solid var(--border);background:#0f1220d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;gap:1rem}.brand{display:flex;align-items:center;gap:.75rem;padding:.35rem .5rem 1rem}.brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-weight:700}.brand h1{margin:0;font-family:var(--font-display);font-size:1rem;font-weight:700}.nav{display:flex;flex-direction:column;gap:.25rem}.nav a{padding:.65rem .85rem;border-radius:10px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.nav a:hover,.nav a.active{background:#7c5cff29;color:var(--text)}.badge{background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;padding:.1rem .45rem;border-radius:999px}.status-card{margin-top:auto;padding:.9rem;border-radius:var(--radius);background:var(--bg-soft);border:1px solid var(--border);font-size:.85rem;color:var(--muted)}.status-card strong{color:var(--text)}.status-row{display:flex;justify-content:space-between;gap:.5rem;margin:.35rem 0}.dot{width:8px;height:8px;border-radius:50%;background:var(--success);display:inline-block;margin-right:.35rem}.main{padding:1.5rem 1.75rem 2.5rem}.page-title{font-family:var(--font-display);font-size:1.6rem;margin:0 0 .35rem}.page-sub{color:var(--muted);margin:0 0 1.25rem}.steps{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.step{padding:.4rem .75rem;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-size:.85rem}.step.active{background:#7c5cff33;border-color:#7c5cff80;color:var(--text)}.panel{background:#171b2ee6;border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.grid-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.row{display:flex;gap:.75rem;align-items:center}.input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:.7rem .9rem}.btn{border:none;border-radius:10px;padding:.7rem 1rem;cursor:pointer;background:var(--bg-soft);color:var(--text)}.btn.primary{background:linear-gradient(135deg,var(--accent),#6a4dff);font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.muted{color:var(--muted)}.success-box{margin-top:.75rem;padding:.75rem;border-radius:10px;background:#2ecc8a1f;border:1px solid rgba(46,204,138,.35);color:#b7f5d5}.list{list-style:none;margin:0;padding:0}.list li{padding:.65rem 0;border-bottom:1px solid var(--border)}.field-map{display:grid;gap:.45rem}.field-map label{display:grid;grid-template-columns:8px 110px 1fr;gap:.5rem;align-items:center;font-size:.85rem}.swatch{width:8px;height:8px;border-radius:50%}.table{width:100%;border-collapse:collapse;font-size:.88rem}.table th,.table td{text-align:left;padding:.55rem .35rem;border-bottom:1px solid var(--border)}.conf{color:var(--success);font-weight:600}.preview-frame{min-height:220px;max-height:320px;overflow:auto;background:#fff;color:#111;border-radius:10px;padding:.75rem;font-size:.8rem}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(420px,100%)}.error{color:var(--danger);margin-top:.5rem}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}.grid-3,.grid-bottom{grid-template-columns:1fr}}
