:root{--bg: #0f0f13;--surface: #1a1a22;--border: #2a2a35;--text: #e8e8ec;--muted: #9494a0;--accent: #9147ff;--danger: #e5484d;--success: #30a46c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:12px}.login h1{color:var(--accent)}.nav{display:flex;align-items:center;gap:16px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.nav a{color:var(--text);text-decoration:none}.nav a:hover{color:var(--accent)}.nav-brand{font-weight:700;color:var(--accent)}.nav-user{margin-left:auto;color:var(--muted);font-size:14px}.btn-link{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px}.main{padding:24px;max-width:960px;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px;margin-bottom:24px}label{display:block;margin-bottom:12px;font-size:14px;color:var(--muted)}input,textarea,select{width:100%;margin-top:4px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px}textarea{min-height:70px;resize:vertical}.btn{background:var(--accent);color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;text-decoration:none;display:inline-block}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:var(--danger)}.btn-twitch{background:var(--accent);padding:10px 24px}.error{color:var(--danger);margin-bottom:12px;font-size:14px}.table{width:100%;border-collapse:collapse;margin-top:12px}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-size:14px}.table th{color:var(--muted);font-weight:500}.badge{padding:2px 8px;border-radius:12px;font-size:12px}.badge-done{background:var(--success)}.badge-failed{background:var(--danger)}.badge-partial{background:#d4a72c;color:#1a1a22}.badge-pending,.badge-resolving,.badge-processing{background:var(--border)}.actions{display:flex;gap:12px;margin-bottom:20px}.channel-list{list-style:none;padding:0}.channel-list li{padding:6px 0;border-bottom:1px solid var(--border)}
