:root{--brand-600: #7c3aed;--brand-700: #6d28d9;--brand-900: #4c1d95;--brand-50: #f5f3ff;--page: #f4f3f8;--ink: #2e1065;--muted: #6b6280;--line: #e8e6f0;--ok: #059669;--warn: #d97706;--bad: #dc2626;--surface: #ffffff;--shadow: 0 10px 30px rgba(46, 16, 101, .08);font-family:Plus Jakarta Sans,system-ui,sans-serif;color:var(--ink);background:var(--page)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(1200px 500px at 10% -10%,rgba(124,58,237,.16),transparent 55%),radial-gradient(900px 420px at 100% 0%,rgba(109,40,217,.12),transparent 50%),var(--page)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3{font-family:Outfit,Plus Jakarta Sans,sans-serif;margin:0;letter-spacing:-.02em}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--brand-900),var(--brand-700));color:#fff;padding:28px 18px;display:flex;flex-direction:column;gap:28px}.brand{font-family:Outfit,sans-serif;font-weight:800;font-size:1.35rem;line-height:1.2}.brand span{display:block;font-size:.75rem;font-weight:600;opacity:.75;margin-top:4px}.nav{display:flex;flex-direction:column;gap:6px}.nav a{padding:10px 12px;border-radius:12px;font-weight:600;color:#ffffffd1}.nav a.active,.nav a:hover{background:#ffffff24;color:#fff}.sidebar-foot{margin-top:auto}.sidebar-user{font-size:.8rem;opacity:.75;margin-bottom:.5rem;word-break:break-all}.sidebar-user span{display:block;opacity:.85;margin-top:2px;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.sidebar-foot button{width:100%;border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;border-radius:12px;padding:10px 12px;cursor:pointer;font-weight:700}.main{padding:28px 32px 48px}.page-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:22px}.page-head p{margin:6px 0 0;color:var(--muted)}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow)}.kpi .label{color:var(--muted);font-size:.82rem;font-weight:700}.kpi .value{font-family:Outfit,sans-serif;font-size:1.6rem;font-weight:800;margin-top:6px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow);margin-bottom:18px}.panel h2{font-size:1.05rem;margin-bottom:14px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.toolbar input,.toolbar select,.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink);min-width:140px}.toolbar input:focus,.toolbar select:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:2px solid rgba(124,58,237,.25);border-color:var(--brand-600)}.btn{border:none;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer;background:var(--brand-600);color:#fff}.btn.secondary{background:var(--brand-50);color:var(--brand-700)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn:disabled{opacity:.55;cursor:not-allowed}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}td.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:800}.badge.ok{background:#ecfdf5;color:var(--ok)}.badge.warn{background:#fffbeb;color:var(--warn)}.badge.bad{background:#fef2f2;color:var(--bad)}.badge.muted{background:var(--brand-50);color:var(--brand-700)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:.85rem}.form-grid .full{grid-column:1 / -1}.form-actions{display:flex;gap:10px;margin-top:8px}.alert{border-radius:12px;padding:12px 14px;margin-bottom:14px;font-weight:600}.alert.error{background:#fef2f2;color:var(--bad)}.alert.ok{background:#ecfdf5;color:var(--ok)}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.login-card h1{font-size:1.8rem}.login-card p{color:var(--muted);margin:8px 0 20px}.login-card label{display:block;font-weight:700;margin-bottom:6px;font-size:.85rem}.login-card input{width:100%;margin-bottom:14px;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.login-card .btn{width:100%;padding:12px}.checks{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.check-pill{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:700}@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{padding-bottom:16px}.kpi-grid,.form-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.kpi-grid,.form-grid{grid-template-columns:1fr}.main{padding:18px 16px 36px}}.muted{color:var(--muted);font-size:.85rem;font-weight:500}.tab-row{display:flex;gap:8px}.btn.active-tab{background:var(--brand-600);color:#fff}.row-actions{display:flex;flex-wrap:wrap;gap:8px}.matrix-table th{white-space:nowrap}.matrix-cell{text-align:center!important;vertical-align:middle}.matrix-cell input{width:18px;height:18px;cursor:pointer}.env-pill{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:8px 10px;border-radius:10px;text-align:center}.env-pill.sandbox{background:#d9770640;color:#fde68a}.env-pill.live{background:#05966947;color:#a7f3d0}.env-banner{background:#fffbeb;color:#92400e;border:1px solid #fde68a;border-radius:12px;padding:10px 14px;margin-bottom:16px;font-weight:700;font-size:.88rem}.key-reveal code{display:block;word-break:break-all;margin:10px 0;padding:12px;background:var(--brand-50);border-radius:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.block-code,.code-block{display:block;white-space:pre-wrap;word-break:break-word;background:#1e1b2e;color:#f5f3ff;border-radius:14px;padding:14px 16px;font-size:.82rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.form-grid textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;resize:vertical}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2e106559;z-index:40;display:flex;justify-content:flex-end}.drawer{width:min(480px,100%);height:100%;background:var(--surface);padding:20px;overflow:auto;box-shadow:-12px 0 40px #2e10652e}.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.detail-grid{display:grid;grid-template-columns:120px 1fr;gap:8px 12px;margin:14px 0}.detail-grid dt{color:var(--muted);font-size:.8rem;font-weight:700}.detail-grid dd{margin:0}.timeline-list{margin:0;padding-left:18px}.click-row{cursor:pointer}.click-row:hover{background:var(--brand-50)}.sidebar-search{position:relative}.sidebar-search input{width:100%;border:1px solid rgba(255,255,255,.25);background:#ffffff1a;color:#fff;border-radius:10px;padding:8px 10px}.sidebar-search input::placeholder{color:#ffffff8c}.search-hits{position:absolute;left:0;right:0;top:100%;margin-top:6px;background:#fff;color:var(--ink);border-radius:12px;box-shadow:var(--shadow);z-index:5;max-height:240px;overflow:auto}.search-hits button{display:block;width:100%;text-align:left;border:none;background:transparent;padding:8px 10px;cursor:pointer;font-size:.8rem}.search-hits button:hover{background:var(--brand-50)}.env-banner.live-banner{background:#fef2f2;color:#991b1b;border-color:#fecaca}.live-arm{display:flex;gap:10px;align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:12px 14px;margin-bottom:14px;font-weight:700}@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{gap:16px}.nav{flex-direction:row;flex-wrap:wrap}.nav a{padding:8px 10px;font-size:.85rem}.sidebar-foot{margin-top:8px}}
