:root{--navy:#0d1b2a;--navy2:#13283d;--green:#39ff14;--blue:#2787f5;--bg:#f3f6f9;--text:#192534;--muted:#6d7b89;--line:#dbe3ea;--red:#d84040;--amber:#b7791f}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:#1565c0;text-decoration:none}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.app{display:grid;grid-template-columns:255px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:white;padding:22px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.logo{display:flex;gap:11px;align-items:center;padding:4px 6px 22px;border-bottom:1px solid #29405a}.logo-icon,.brand-mark{color:var(--green);font-size:28px}.logo b{display:block;font-size:18px;letter-spacing:.4px}.logo span{display:block;color:#9fb3c8;font-size:11px;margin-top:3px}
nav{margin-top:18px;display:flex;flex-direction:column;gap:6px}nav a{color:#d7e2ec;padding:11px 12px;border-radius:9px;display:flex;gap:12px;align-items:center;font-size:14px}nav a:hover,nav a.active{background:#1d3b59;color:white}nav a.active{box-shadow:inset 3px 0 var(--green)}
.side-foot{margin-top:auto;border-top:1px solid #29405a;padding:16px 6px 0;display:flex;flex-direction:column;gap:6px}.side-foot small{color:#8fa5bb}.side-foot b{font-size:10px;overflow-wrap:anywhere}.side-foot a{margin-top:8px;color:#c9d7e4;font-size:13px}
.main{padding:24px 30px;overflow:auto}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.topbar h1{font-size:25px;margin:0}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.user{font-size:13px}.user span{color:var(--green)}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin-bottom:18px}.kpi{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 3px 10px rgba(12,27,42,.04)}.kpi span,.kpi small{display:block;color:var(--muted);font-size:12px}.kpi strong{font-size:30px;display:block;margin:8px 0 3px}
.panel{background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:18px;padding:18px;box-shadow:0 3px 10px rgba(12,27,42,.035);overflow:auto}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.panel-head h2{margin:0;font-size:18px}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.panel-head form{margin:0}
table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;background:#f7f9fb;color:#536372;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:10px;border-bottom:1px solid #edf1f4;vertical-align:top}tr:hover td{background:#fbfdff}.message{max-width:260px;color:#596875}.actions{display:flex;gap:6px;min-width:105px}.actions form{margin:0}
.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:600;white-space:nowrap}.badge.ok{background:#e7f7ec;color:#1e7c3a}.badge.bad{background:#fdeaea;color:#a62f2f}.badge.warn{background:#fff4dc;color:#996515}.badge.neutral{background:#eef3f7;color:#536372}.chip{background:#eaf2ff;color:#245c9e;border-radius:5px;padding:3px 6px;font-size:10px;font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #b9c7d3;background:white;color:#243b53;border-radius:8px;padding:9px 13px;font-weight:600;cursor:pointer}.btn:hover{background:#f4f8fb}.btn.primary{background:#145ea8;color:white;border-color:#145ea8}.btn.primary:hover{background:#104f8d}.btn.small{padding:6px 9px;font-size:11px}
.alert{padding:12px 14px;border-radius:9px;margin:0 0 16px;font-size:13px}.alert.success{background:#e9f8ee;color:#1b6b35;border:1px solid #bfe9cb}.alert.error{background:#fff0f0;color:#9f2d2d;border:1px solid #f0c2c2}
.flow{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.flow span{background:#f1f5f9;border:1px solid var(--line);border-radius:9px;padding:10px 13px}.flow b{color:#2f80ed}.note{background:#fff8e8;border:1px solid #f0dfb4;border-radius:9px;padding:12px;color:#765b18;font-size:12px;margin-bottom:18px}
.endpoint-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}.endpoint-grid>div{background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:10px}.endpoint-grid small{display:block;color:var(--muted);margin-bottom:5px}
details summary{cursor:pointer;color:#1565c0}pre{white-space:pre-wrap;word-break:break-word;background:#0c1724;color:#dce8f3;padding:12px;border-radius:8px;max-width:740px;max-height:420px;overflow:auto;font-size:11px}
.settings form{max-width:720px}.contract{line-height:1.9}.muted{color:var(--muted)}.small{font-size:11px}.help{color:var(--muted);font-size:11px;font-weight:400;margin-left:5px}
label{display:block;font-size:12px;font-weight:600;margin:12px 0}input,select{display:block;width:100%;border:1px solid #cdd8e1;border-radius:8px;padding:10px 11px;margin-top:6px;font:inherit;background:white}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.auth-bg{min-height:100vh;background:linear-gradient(135deg,#0d1b2a,#173a5b);display:grid;place-items:center;padding:30px}.auth-card{width:min(430px,100%);background:white;border-radius:15px;padding:28px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.auth-card.wide{width:min(780px,100%)}.auth-card h1{margin:4px 0}.auth-card .btn{width:100%;margin-top:8px}
footer{text-align:center;color:#7d8c99;font-size:11px;padding:12px}
@media(max-width:1000px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.side-foot{display:none}.kpis{grid-template-columns:repeat(2,1fr)}.main{padding:18px}.endpoint-grid{grid-template-columns:1fr}}
@media(max-width:640px){.grid2{grid-template-columns:1fr}.kpis{grid-template-columns:1fr}.sidebar nav{grid-template-columns:1fr}.topbar{align-items:flex-start}.user{display:none}}

.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:0 12px}.creator{margin:0 0 14px;border:1px dashed #cbd7e2;border-radius:9px;padding:10px 12px;background:#fafcfe}.creator summary{cursor:pointer;font-weight:700;color:#145ea8}.creator-form{padding-top:8px}@media(max-width:900px){.grid4{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid4{grid-template-columns:1fr}}

.diagnostic-wrap{max-width:980px;margin:auto}
