:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;--accent: #0ea5e9;--accent-hover: #0284c7;--border: #e5e7eb;--bg: #f8fafc;--bg-card: #ffffff;--fg: #0f172a;--muted: #64748b;--danger: #dc2626;--success: #16a34a;--mono: ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}button{background:var(--bg-card);color:var(--fg);border:1px solid var(--border);padding:.5rem .85rem;border-radius:6px;cursor:pointer;font-size:.92rem}button:hover{background:#f1f5f9}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{background:var(--accent-hover)}button.danger{color:var(--danger);border-color:#fecaca}button.danger:hover{background:#fef2f2}button:disabled{opacity:.6;cursor:not-allowed}input,select,textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--border);border-radius:6px;font-size:.92rem;background:var(--bg-card);color:var(--fg);font-family:inherit}textarea{font-family:var(--mono);font-size:.85rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:500;color:var(--muted)}label.checkbox,label.inline{flex-direction:row;align-items:center;gap:.5rem}label.inline input{width:auto}p.error{color:var(--danger)}p.error.small{font-size:.85rem}p.hint{color:var(--muted);font-size:.9rem}.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:2rem;max-width:420px;width:100%;display:flex;flex-direction:column;gap:.75rem;box-shadow:0 4px 20px #0000000a}.login h1{margin:0 0 .5rem;font-size:1.5rem}.login p{color:var(--muted);margin:0 0 1rem;font-size:.92rem}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:var(--bg-card);border-bottom:1px solid var(--border)}.topbar h1{margin:0;font-size:1.05rem}.topbar-actions{display:flex;gap:.75rem;align-items:center}.engine-pill{font-family:var(--mono);font-size:.8rem;color:var(--muted);background:var(--bg);padding:.25rem .6rem;border-radius:999px;border:1px solid var(--border)}.main{display:grid;grid-template-columns:280px 1fr;flex:1;min-height:0}.sidebar{background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border)}.sidebar-header h2{margin:0;font-size:.95rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.add-form{padding:1rem;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem;background:var(--bg)}.add-form-actions{display:flex;gap:.5rem;justify-content:flex-end}.domain-list{list-style:none;margin:0;padding:.5rem;overflow-y:auto}.domain-list li{padding:.6rem .85rem;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.92rem}.domain-list li:hover{background:var(--bg)}.domain-list li.active{background:var(--accent);color:#fff}.domain-list li.active .host{color:#fff}.domain-list li .host{color:var(--fg)}.domain-list .badge{font-size:.7rem;padding:.15rem .5rem;border-radius:999px;font-weight:500}.badge.on{background:#dcfce7;color:var(--success)}.badge.off{background:#fee2e2;color:var(--danger)}.detail{padding:2rem;overflow-y:auto}.overview h2{margin:0 0 1rem;font-size:1.1rem}.stats-table,.bot-table{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:8px;overflow:hidden;border:1px solid var(--border);margin-bottom:1.5rem}.stats-table th,.stats-table td,.bot-table th,.bot-table td{padding:.65rem 1rem;text-align:left;font-size:.9rem;border-bottom:1px solid var(--border)}.stats-table th,.bot-table th{background:var(--bg);color:var(--muted);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.stats-table tr:last-child td,.bot-table tr:last-child td{border-bottom:none}.stats-table a{color:var(--accent);cursor:pointer;text-decoration:none}.stats-table a:hover{text-decoration:underline}.empty{text-align:center;color:var(--muted);padding:2rem}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.detail-header h2{margin:0;font-size:1.4rem}.header-actions{display:flex;gap:.5rem}.domain-detail section{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.domain-detail section h3{margin:0 0 1rem;font-size:1rem}.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;align-items:end}.config-actions{grid-column:1 / -1;display:flex;justify-content:flex-end}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1rem}.stat-row>div{background:var(--bg);border-radius:6px;padding:.85rem;text-align:center}.stat-row strong{display:block;font-size:1.4rem;color:var(--accent)}.stat-row span{display:block;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem}.transforms-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.transform-row{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.85rem 1rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.transform-summary{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;flex:1;min-width:0}.transform-action{background:var(--accent);color:#fff;padding:.2rem .6rem;border-radius:4px;font-size:.78rem;font-weight:500;font-family:var(--mono)}.transform-selector,.transform-payload{font-family:var(--mono);font-size:.82rem;background:var(--bg-card);padding:.2rem .5rem;border-radius:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transform-priority{font-size:.78rem;color:var(--muted)}.transform-actions{display:flex;gap:.5rem;flex-shrink:0}.transform-form{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--bg);border-radius:6px}.form-row{display:flex;gap:1rem;align-items:end;flex-wrap:wrap}.form-row label.inline{flex-direction:column;align-items:stretch}.form-row label.inline.checkbox{flex-direction:row;align-items:center}.form-actions{display:flex;gap:.5rem;justify-content:flex-end}
