:root{--bg: #0c1118;--bg-2: #121a24;--panel: #161f2b;--line: #243044;--text: #e8eef6;--muted: #8b9bb0;--brand: #3b82f6;--brand-2: #60a5fa;--ok: #34d399;--warn: #fbbf24;--bad: #f87171;--radius: 14px;--shadow: 0 12px 40px rgba(0, 0, 0, .28)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Segoe UI,system-ui,sans-serif;background:radial-gradient(1200px 600px at 10% -10%,#1a2740 0%,transparent 50%),var(--bg);color:var(--text)}a{color:var(--brand-2)}button,input,select,textarea{font:inherit}h1,h2,h3{letter-spacing:-.03em}.login-wrap{min-height:100%;display:grid;place-items:center;padding:2rem}.login-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:2rem;box-shadow:var(--shadow)}.login-card h1{margin:0 0 .4rem}.login-card p{color:var(--muted);margin:0 0 1.4rem}.app{display:grid;grid-template-columns:240px 1fr;min-height:100%}.side{border-right:1px solid var(--line);background:#0c1118db;padding:1.2rem .9rem;display:flex;flex-direction:column;gap:.35rem}.brand{padding:.4rem .7rem 1.1rem;font-weight:800;letter-spacing:-.04em}.brand small{display:block;color:var(--muted);font-weight:500;font-size:.75rem;margin-top:.15rem}.side a{color:var(--text);text-decoration:none;padding:.65rem .75rem;border-radius:10px}.side a.active,.side a:hover{background:#1d2a3d}.side .grow{flex:1}.side button.linkish{background:transparent;border:0;color:var(--muted);text-align:left;padding:.65rem .75rem;cursor:pointer;border-radius:10px}button.linkish{background:transparent;border:0;color:var(--brand-2);cursor:pointer;padding:0;font:inherit}.main{padding:1.5rem 1.8rem 3rem;min-width:0}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.space{justify-content:space-between}.grid{display:grid;gap:1rem}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.card,.table-wrap,.editor-pane{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.15rem}.stat .k{color:var(--muted);font-size:.82rem}.stat .v{font-size:1.7rem;font-weight:750;margin-top:.2rem}a.card.stat{text-decoration:none;color:inherit;transition:border-color .15s}a.card.stat:hover{border-color:var(--brand)}label{display:grid;gap:.35rem;font-size:.86rem;color:var(--muted)}input,select,textarea{background:var(--bg-2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:.7rem .75rem}textarea{min-height:90px;resize:vertical}.btn{border:0;background:var(--brand);color:#fff;border-radius:10px;padding:.7rem 1rem;font-weight:700;cursor:pointer}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:#223047;color:var(--text)}.btn.danger{background:#7f1d1d}.btn.small{padding:.4rem .65rem;font-size:.85rem;font-weight:600}.err{color:var(--bad);font-size:.9rem}.ok{color:var(--ok)}.warn{color:var(--warn)}.muted{color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:700;background:#223047}.badge.active{background:#064e3b;color:#6ee7b7}.badge.pending{background:#78350f;color:#fcd34d}.badge.none{background:#1f2937;color:#9ca3af}.badge.rep-ok{background:#064e3b;color:#6ee7b7}.badge.rep-warn{background:#78350f;color:#fcd34d}.badge.rep-bad{background:#7f1d1d;color:#fca5a5}.badge.rep-unknown{background:#1f2937;color:#9ca3af}.rep-list{display:grid;gap:.55rem;margin-top:.75rem}.rep-list .rep-item{font-size:.9rem}.rep-list .rep-item .detail{color:var(--muted);font-size:.82rem;margin-top:.15rem}tr.row-flagged td{background:#7f1d1d1f}.analytics-wrap{margin-top:.5rem;min-width:0}.analytics-toolbar{margin-bottom:12px;align-items:flex-start}.analytics-kpis{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));margin-bottom:1rem}.analytics-kpi{padding:.9rem 1rem;min-width:0}.analytics-kpi .k{color:var(--muted);font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.3rem}.analytics-card h3{display:flex;align-items:center;gap:.35rem;margin:0 0 .75rem;font-size:.95rem}.info-tip{position:relative;display:inline-flex;align-items:center;flex-shrink:0}.info-tip-mark{width:14px;height:14px;border-radius:999px;border:1px solid #3d4f66;color:#9fb0c6;font-size:9px;font-weight:800;font-style:italic;line-height:12px;text-align:center;cursor:help;background:#1a2433}.info-tip-box{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);width:max(220px,16rem);max-width:min(280px,70vw);padding:.55rem .65rem;border-radius:8px;background:#0b1220;border:1px solid #334155;color:#e8eef6;font-size:.75rem;font-weight:500;line-height:1.4;letter-spacing:0;box-shadow:0 10px 28px #0006;opacity:0;visibility:hidden;pointer-events:none;z-index:30;text-wrap:pretty}.info-tip-box:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:#334155}.info-tip:hover .info-tip-box,.info-tip:focus-within .info-tip-box{opacity:1;visibility:visible}.analytics-kpi:nth-child(n+5) .info-tip-box{left:auto;right:0;transform:none}.analytics-kpi:nth-child(n+5) .info-tip-box:after{left:auto;right:6px;margin-left:0}.analytics-kpi .analytics-big{font-size:1.55rem;font-weight:750;margin:.2rem 0 .15rem;line-height:1.15;font-variant-numeric:tabular-nums}.analytics-kpi .hint{color:var(--muted);font-size:.72rem;line-height:1.3}.analytics-card{margin-top:0;min-width:0;overflow:visible}.analytics-tables{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem}.analytics-tables .card:nth-child(2n) .info-tip-box{left:auto;right:0;transform:none}.analytics-tables .card:nth-child(2n) .info-tip-box:after{left:auto;right:8px;margin-left:0}.analytics-table-wrap{overflow-x:auto;margin:0 -.15rem}.analytics-table{width:100%;table-layout:fixed;border-collapse:collapse}.analytics-table th,.analytics-table td{font-size:.82rem;padding:.42rem .45rem;vertical-align:middle}.analytics-table th{color:var(--muted);font-weight:600;border-bottom:1px solid var(--line)}.analytics-table td{border-top:1px solid var(--line)}.analytics-table th:first-child,.analytics-table td:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-table th.num,.analytics-table td.num{width:4.4rem;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.analytics-empty{margin:.2rem 0 0}.analytics-bars{display:grid;gap:.4rem;margin-top:.15rem}.analytics-bar-row{display:grid;grid-template-columns:5.6rem minmax(0,1fr) 2.2rem;gap:.5rem;align-items:center}.analytics-bar-label{color:var(--muted);font-family:ui-monospace,monospace;font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-bar-track{background:#1f2937;border-radius:4px;height:8px;overflow:hidden;min-width:0}.analytics-bar-fill{background:#2563eb;height:100%;min-width:2px;border-radius:4px}.analytics-bar-val{text-align:right;color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}table{width:100%;border-collapse:collapse;font-size:.94rem}th{text-align:left;color:var(--muted);font-weight:600;font-size:.8rem;padding:.55rem}td{padding:.7rem .55rem;border-top:1px solid var(--line);vertical-align:middle}.tabs{display:flex;gap:.4rem;margin:1rem 0}.tabs button{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.4rem .85rem;cursor:pointer}.tabs button.on{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.ns{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.check-list{display:grid;gap:.45rem;max-height:360px;overflow:auto;padding-right:.3rem}.check-list label{display:flex;align-items:center;gap:.55rem;color:var(--text)}.split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-height:560px}.preview{width:100%;height:100%;min-height:560px;border:0;border-radius:12px;background:#fff}.totp-secret{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.15rem;letter-spacing:.08em;background:var(--bg-2);border:1px dashed var(--line);border-radius:10px;padding:.85rem .9rem;word-break:break-all}.card label+label{margin-top:.65rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.span2{grid-column:1 / -1}@media(max-width:960px){.app{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap;align-items:center}.split,.form-grid,.analytics-tables{grid-template-columns:1fr}}
