*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; font-size: 14px; color: #1a1a2e; background: #f5f6fa; padding: 20px; max-width: 900px; margin: 0 auto; } header { margin-bottom: 20px; } h1 { font-size: 20px; font-weight: 600; margin-bottom: 6px; } .subtitle { color: #636e72; font-size: 13px; } .loading, .empty { text-align: center; padding: 40px; color: #999; } .groups { display: flex; flex-direction: column; gap: 16px; } .group { background: #fff; border-radius: 6px; padding: 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); } .group-title { font-size: 16px; font-weight: 600; margin-bottom: 10px; color: #0984e3; text-transform: uppercase; letter-spacing: 0.5px; } .warn { background: #fff3cd; color: #856404; padding: 8px 12px; border-radius: 4px; font-size: 12px; margin-bottom: 10px; } .domain-list { list-style: none; margin-bottom: 12px; } .domain { padding: 6px 0; border-bottom: 1px solid #f0f0f5; } .domain:last-child { border-bottom: none; } .domain label { cursor: pointer; } .domain.source { color: #00b894; font-weight: 600; } .badge-source { display: inline-block; background: #00b894; color: #fff; font-size: 10px; padding: 1px 6px; border-radius: 8px; margin-left: 6px; vertical-align: middle; } .group-actions { display: flex; gap: 8px; margin-top: 8px; } .btn { padding: 6px 14px; border: 1px solid #dcdde1; border-radius: 4px; background: #fff; font-size: 13px; cursor: pointer; } .btn-primary { background: #0984e3; color: #fff; border-color: #0984e3; } .btn-primary:hover { background: #0773c5; } .btn-secondary { background: #dfe6e9; border-color: #b2bec3; } .btn-secondary:hover { background: #b2bec3; } .result { margin-top: 8px; font-size: 13px; } .ok { color: #00b894; } .err { color: #d63031; } .toast { display: inline-block; margin-left: 12px; padding: 4px 12px; border-radius: 3px; font-size: 13px; color: #fff; transition: opacity 0.25s; } .toast.success { background: #00b894; } .toast.error { background: #d63031; } .toast.hidden { opacity: 0; pointer-events: none; }