:root{--bg:#f4f6f8;--card:#fff;--ink:#16202a;--muted:#5b6672;--line:#e1e6eb;--brand:#0f766e;--brand2:#0b5f58;--ok:#15803d;--warn:#b45309;--bad:#b91c1c;--info:#1d4ed8}
*{box-sizing:border-box}body{margin:0;font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--brand)}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 10px}h3{font-size:14px;margin:14px 0 6px}
.app{display:flex;min-height:100vh}.side{width:224px;background:#0e1b24;color:#cfe3e1;padding:18px 0;flex:none;position:sticky;top:0;height:100vh;overflow:auto}
.side .brand{padding:0 18px 14px;font-weight:700;color:#fff;font-size:16px;display:flex;gap:8px;align-items:center}.side .brand i{width:22px;height:22px;background:var(--brand);border-radius:6px;display:inline-block}
.side a{display:block;color:#cfe3e1;text-decoration:none;padding:8px 18px;border-left:3px solid transparent}.side a:hover{background:#13303a}.side a.on{background:#13303a;border-color:#2dd4bf;color:#fff}
.side .grp{padding:12px 18px 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6c8f8c}.side .foot{padding:14px 18px;font-size:12px;color:#7aa09d;border-top:1px solid #1b3641;margin-top:12px}
.main{flex:1;padding:22px 28px;max-width:1280px}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.sub{color:var(--muted);margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:16px}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.kpi{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}.kpi b{display:block;font-size:26px;line-height:1.1}.kpi span{color:var(--muted);font-size:12px}
table{width:100%;border-collapse:collapse}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
tr:hover td{background:#fafcfc}.right{text-align:right}.nowrap{white-space:nowrap}code,.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600;background:#e5e7eb;color:#374151}.b-ok{background:#dcfce7;color:#166534}.b-warning{background:#fef3c7;color:#92400e}.b-critical,.b-down{background:#fee2e2;color:#991b1b}.b-revoked{background:#e5e7eb;color:#4b5563}.b-info{background:#dbeafe;color:#1e40af}
.btn{display:inline-block;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:7px;padding:7px 13px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{background:var(--brand2)}
.btn.sec{background:#fff;color:var(--brand)}.btn.sec:hover{background:#f0fdfa}.btn.danger{background:#fff;border-color:var(--bad);color:var(--bad)}.btn.danger:hover{background:#fef2f2}.btn.sm{padding:3px 9px;font-size:12.5px}
input,select,textarea{font:inherit;border:1px solid #cdd5dc;border-radius:7px;padding:7px 9px;width:100%;background:#fff}textarea{min-height:80px}input[type=checkbox]{width:auto}label{font-weight:600;display:block;margin:10px 0 3px}label.inline{display:inline-flex;gap:6px;align-items:center;font-weight:500;margin:4px 14px 4px 0}
.hint{color:var(--muted);font-size:12.5px;margin-top:3px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1;min-width:140px}.row>.auto{flex:none;min-width:0}
.alert{padding:10px 14px;border-radius:8px;margin-bottom:14px;border:1px solid}.alert.ok{background:#f0fdf4;border-color:#bbf7d0;color:#14532d}.alert.err{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}.alert.tok{background:#fffbeb;border-color:#fcd34d;color:#78350f}
.secret{background:#0e1b24;color:#a7f3d0;padding:10px 12px;border-radius:8px;font-family:ui-monospace,Consolas,monospace;word-break:break-all;margin:8px 0;user-select:all}
.bar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--brand)}.reasons{margin:4px 0 0;padding-left:16px;color:var(--muted);font-size:12.5px}
details summary{cursor:pointer;font-weight:600}.login{max-width:380px;margin:12vh auto}.err{color:var(--bad);font-size:13px}pre{white-space:pre-wrap;word-break:break-all;background:#f1f5f9;padding:10px;border-radius:8px;font-size:12.5px}
.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.tabs a{padding:5px 12px;border:1px solid var(--line);border-radius:99px;text-decoration:none;color:var(--ink);background:#fff}.tabs a.on{background:var(--brand);color:#fff;border-color:var(--brand)}
@media(max-width:860px){.app{display:block}.side{width:auto;height:auto;position:static}.main{padding:14px}}
