
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f4f7fb;color:#111827}
.hidden{display:none!important}.login-screen{min-height:100vh;display:grid;place-items:center}.login-box{width:min(420px,92vw);background:white;border:1px solid #e2e8f0;border-radius:18px;padding:30px;box-shadow:0 14px 40px rgba(15,23,42,.08)}
.logo{width:42px;height:42px;border-radius:12px;background:#101827;color:white;display:grid;place-items:center;font-weight:800}.logo.small{width:32px;height:32px;border-radius:9px}.login-box h1{margin:16px 0 4px}.login-box p,.muted{color:#64748b}.login-box label,label{display:block;font-size:13px;font-weight:700;margin:14px 0 6px}
input,select,textarea{width:100%;border:1px solid #d8e0eb;border-radius:9px;padding:11px 12px;background:#fff;color:#111827;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#64748b;box-shadow:0 0 0 3px rgba(100,116,139,.12)}
button{border:0;background:#121c2f;color:white;border-radius:9px;padding:10px 14px;font-weight:700;cursor:pointer}button:hover{opacity:.92}.light{background:#eef2f7;color:#172033}.danger{background:#b42318}.error{color:#b42318;margin-top:10px}.result{font-size:13px;color:#334155}
.app{min-height:100vh;display:grid;grid-template-columns:220px 1fr}aside{background:#111a2b;color:white;padding:18px 14px;display:flex;flex-direction:column;min-height:100vh}.brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.brand small{display:block;color:#94a3b8;margin-top:3px}
nav{display:grid;gap:6px}.nav{background:transparent;text-align:left;padding:12px}.nav.active,.nav:hover{background:#202b3d}.logout{margin-top:auto;background:#202b3d;text-align:left}
main{padding:24px 28px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}header h2{margin:0 0 4px;font-size:26px}header p{margin:0;color:#718096}.header-status{display:flex;gap:8px;align-items:center}.version{background:#e2e8f0;color:#475569;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:800}.online{background:#ecfdf3;color:#067647;border:1px solid #abefc6;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.card,.panel{background:white;border:1px solid #dde4ee;border-radius:14px}.card{padding:22px}.card span{display:block;color:#64748b;font-size:13px}.card strong{display:block;font-size:28px;margin-top:12px}
.panel{padding:20px;margin-bottom:18px}.panel h3{margin:0 0 12px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.actions{display:flex;gap:8px;flex-wrap:wrap}.copybox{display:flex;gap:8px;background:#f4f7fb;border:1px solid #dce4ef;border-radius:10px;padding:7px}.copybox code{flex:1;display:flex;align-items:center;padding:0 6px;word-break:break-all}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.full{grid-column:1/-1}.secret{display:grid;grid-template-columns:1fr auto;gap:8px}.field{margin:14px 0}.chips{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.chips button{background:#eef2f7;color:#334155;font-size:12px;padding:7px 9px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px;border-bottom:1px solid #edf1f6;white-space:nowrap}th{color:#64748b;font-size:12px}.badge{display:inline-block;border-radius:999px;padding:4px 7px;background:#eef2f7;font-size:11px;font-weight:800}.ok{background:#ecfdf3;color:#067647}.bad{background:#fef3f2;color:#b42318}.wait{background:#fffaeb;color:#b54708}
.log{display:grid;grid-template-columns:70px 180px 1fr 170px;gap:10px;padding:10px;border-bottom:1px solid #edf1f6;font-size:12px}.log .level{font-weight:800}.log.ERROR .level{color:#b42318}.log.WARN .level{color:#b54708}.log.INFO .level{color:#175cd3}
dialog{width:min(900px,90vw);border:0;border-radius:14px;padding:20px}pre{white-space:pre-wrap;word-break:break-word;background:#101827;color:#e2e8f0;padding:16px;border-radius:10px;max-height:70vh;overflow:auto}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.app{grid-template-columns:180px 1fr}.log{grid-template-columns:60px 150px 1fr}}
@media(max-width:760px){.app{display:block}aside{min-height:auto}main{padding:18px}.grid2,.cards{grid-template-columns:1fr}.full{grid-column:auto}.panel-head,header{align-items:flex-start;flex-direction:column}.log{display:block}.log>div{margin-bottom:4px}}
