:root{color-scheme:light dark;--bg: #f8f9fb;--surface: #ffffff;--border: #e2e4e9;--text: #14161a;--text-muted: #6b7078;--accent: #2563eb;--accent-text: #ffffff;--ok: #16a34a;--danger: #dc2626;--danger-bg: #dc262614;--ok-bg: #16a34a14;--radius: 8px}@media (prefers-color-scheme: dark){:root{--bg: #0f1115;--surface: #171a20;--border: #2a2e37;--text: #eef0f3;--text-muted: #9298a3;--accent: #3b82f6;--ok: #22c55e;--danger: #ef4444;--danger-bg: #ef444422;--ok-bg: #22c55e22}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,system-ui,sans-serif}.app{max-width:980px;margin:0 auto;padding:2rem 1.25rem 4rem}.app-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2rem}.app-header h1{font-size:1.3rem;margin:0}section{margin-bottom:2.5rem}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.section-head h2{font-size:1rem;margin:0;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:.65rem .85rem;vertical-align:top}thead th{color:var(--text-muted);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border)}tbody tr{border-bottom:1px solid var(--border)}tbody tr:last-child{border-bottom:none}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.muted{color:var(--text-muted);font-size:.85em}.target-row{display:flex;gap:.4rem;align-items:baseline}.target-row.healthy{color:var(--ok)}.target-row.unhealthy{color:var(--danger)}.btn{cursor:pointer;padding:.4rem .85rem;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:.85rem;font-family:inherit;transition:background-color .12s ease,border-color .12s ease}.btn:hover{background:var(--bg)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:transparent}.btn.primary:hover{filter:brightness(1.08)}.btn.danger-text{border:none;background:transparent;color:var(--danger);padding:.3rem .5rem}.btn.danger-text:hover{background:var(--danger-bg)}.btn.ghost{border:none;padding:.3rem .5rem}.row-actions{display:flex;gap:.3rem}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty,.loading-msg{padding:1.5rem;color:var(--text-muted);font-size:.88rem;text-align:center}.skeleton-row td{padding:.85rem}.skeleton-bar{height:12px;border-radius:4px;background:var(--border);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:20}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:460px;max-height:90vh;overflow-y:auto;padding:1.25rem}.dialog h3{margin:0 0 1rem;font-size:1rem}.field{display:grid;gap:.3rem;margin-bottom:.85rem}.field label{font-size:.8rem;color:var(--text-muted)}.field input{padding:.5rem .6rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.88rem;font-family:inherit}.field input:disabled{opacity:.6}.field input:focus-visible,.field select:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field select{padding:.5rem .6rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.88rem;font-family:inherit}.key-compose-row{display:flex;align-items:center;gap:.4rem}.key-compose-row input,.key-compose-row select{flex:1;min-width:0}.targets-field{display:grid;gap:.4rem}.target-input-row{display:flex;gap:.4rem;align-items:center}.target-input-row input{flex:1}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.toast{position:fixed;top:1rem;right:1rem;padding:.6rem 1rem;border-radius:8px;font-size:.85rem;border:1px solid;z-index:30}.toast.ok{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.toast.err{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
