:root{--bg: #0f1115;--panel: #171a21;--panel-2: #1d2129;--border: #2a2f3a;--text: #e6e8ec;--muted: #8b94a7;--accent: #4f8cff;--accent-2: #6fa1ff;--ok: #34d399;--warn: #fbbf24;--err: #f87171;--ok-bg: rgba(52, 211, 153, .12);--err-bg: rgba(248, 113, 113, .12);--shadow: 0 4px 20px rgba(0, 0, 0, .3);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);line-height:1.45}a{color:var(--accent-2)}.app{display:grid;grid-template-columns:1fr 420px;gap:16px;padding:16px;min-height:100vh}.main-content{display:flex;flex-direction:column;gap:16px;min-width:0}.app-center{grid-template-columns:1fr;place-items:center}.loading-text{color:var(--muted);font-size:15px}@media (max-width: 900px){.app{grid-template-columns:1fr}}.input-pane{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:var(--shadow)}.input-pane h1{margin:0 0 4px;font-size:22px}.subtitle{margin:0 0 24px;color:var(--muted)}.input-pane form{display:grid;gap:8px;max-width:720px}.input-pane label{font-size:13px;color:var(--muted)}.input-pane input[type=text],.input-pane input[type=email]{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:8px;font-size:15px;outline:none;transition:border-color .15s}.input-pane input[type=text]:focus,.input-pane input[type=email]:focus{border-color:var(--accent)}.extra-options{border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin:4px 0;display:flex;gap:16px;flex-wrap:wrap;background:var(--panel-2)}.extra-options legend{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 6px}.extra-options:disabled{opacity:.5}.toggle-option{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px}.toggle-option input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:36px;height:20px;background:var(--border);border-radius:10px;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}.toggle-option input[type=checkbox]:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:var(--text);top:2px;left:2px;transition:transform .2s}.toggle-option input[type=checkbox]:checked{background:var(--accent)}.toggle-option input[type=checkbox]:checked:after{transform:translate(16px)}.toggle-label{display:flex;align-items:center;gap:4px;color:var(--text)}.toggle-icon{font-size:15px}.input-pane button{justify-self:start;background:var(--accent);color:#fff;border:0;padding:10px 22px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer}.input-pane button:disabled{background:#3a4a7a;cursor:not-allowed}.btn-group{display:flex;gap:10px}.btn-secondary{background:#334155!important;border:1px solid rgba(255,255,255,.15)!important}.btn-secondary:hover:not(:disabled){background:#475569!important}.error{background:var(--err-bg);color:var(--err);border:1px solid rgba(248,113,113,.4);padding:10px 12px;border-radius:8px;margin-top:8px;font-size:14px}.result{margin-top:32px;padding:20px;border-radius:12px;border:1px solid var(--border);background:var(--panel-2)}.result.ok{border-color:#34d39966;background:var(--ok-bg)}.result.fail{border-color:#f8717166;background:var(--err-bg)}.result h2{margin:0 0 12px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 700px){.result-grid{grid-template-columns:1fr}}.result-grid h3{font-size:14px;color:var(--muted);margin:0 0 8px;text-transform:uppercase;letter-spacing:.06em}.result-grid ul{padding-left:0;list-style:none;margin:0;display:grid;gap:6px}.pill{display:inline-block;padding:1px 6px;margin:0 4px;border-radius:4px;background:#4f8cff33;color:var(--accent-2);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.ac-ref{color:var(--muted);font-size:12px}.muted{color:var(--muted)}.activity{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;min-height:400px;box-shadow:var(--shadow);position:sticky;top:16px;max-height:calc(100vh - 32px)}.activity header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.activity h2{font-size:15px;margin:0;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 #4f8cff99;animation:pulse 1.6s infinite}@keyframes pulse{0%{box-shadow:0 0 #4f8cff99}70%{box-shadow:0 0 0 10px #4f8cff00}to{box-shadow:0 0 #4f8cff00}}.activity ol{list-style:none;margin:0;padding:0;overflow-y:auto;display:grid;gap:6px}.evt{display:grid;grid-template-columns:18px 64px 1fr;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;background:transparent;border:1px solid transparent;align-items:baseline}.evt .time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.evt-done{background:var(--ok-bg);border-color:#34d39940}.evt-error{background:var(--err-bg);border-color:#f8717140}.evt-test_created{color:var(--ok)}.evt-test_skipped{color:var(--warn)}.placeholder{margin:auto;text-align:center}.login-pane{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:40px;box-shadow:var(--shadow);max-width:520px;width:100%}.login-content{display:flex;flex-direction:column;gap:4px}.login-icon{margin-bottom:8px}.login-pane h1{margin:0;font-size:24px}.login-pane .subtitle{margin:4px 0 16px;color:var(--muted);font-size:14px;line-height:1.5}.login-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;padding:16px;background:var(--panel-2);border-radius:10px;border:1px solid var(--border)}.login-step{display:flex;gap:12px;align-items:flex-start}.step-num{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#4f8cff33;color:var(--accent);font-size:12px;font-weight:700}.login-step strong{display:block;font-size:13px;margin-bottom:2px}.login-step p{margin:0;font-size:13px;color:var(--muted);line-height:1.4}.login-pane form{display:grid;gap:8px}.login-pane label{font-size:13px;color:var(--muted);margin-top:4px}.login-pane input{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:8px;font-size:15px;outline:none;transition:border-color .15s}.login-pane input:focus{border-color:var(--accent)}.login-pane button{margin-top:8px;background:var(--accent);color:#fff;border:0;padding:12px 22px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.login-pane button:disabled{background:#3a4a7a;cursor:not-allowed}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.connection-badge{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--ok-bg);border:1px solid rgba(52,211,153,.3);border-radius:8px;font-size:13px;margin-top:12px}.badge-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);flex-shrink:0}.badge-text{flex:1;color:var(--text)}.badge-text a{color:var(--ok)}.btn-disconnect{background:transparent;border:1px solid rgba(248,113,113,.4);color:var(--err);padding:4px 10px;border-radius:6px;font-size:12px;cursor:pointer;transition:background .15s}.btn-disconnect:hover{background:var(--err-bg)}.btn-disconnect:disabled{opacity:.5;cursor:not-allowed}.review-pane{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:var(--shadow)}.review-header h2{margin:0 0 4px;font-size:20px}.review-subtitle{color:var(--muted);margin:0 0 16px;font-size:14px}.review-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;margin-bottom:12px}.review-select-all{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer}.review-select-all input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.review-list{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto;padding-right:4px}.review-card{border:1px solid var(--border);border-radius:10px;background:var(--panel-2);transition:border-color .15s,opacity .15s}.review-card.selected{border-color:#4f8cff66}.review-card.deselected{opacity:.55}.review-card-header{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer}.review-card-check{flex-shrink:0;display:flex;align-items:center}.review-card-check input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.review-card-title{flex:1;min-width:0}.review-card-name{font-weight:600;font-size:14px;display:block;margin-bottom:4px}.review-card-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pill-priority{background:#fbbf2426!important;color:var(--warn)!important}.pill-story{background:#6366f126!important;color:#818cf8!important;font-weight:600}.review-expand-btn{flex-shrink:0;background:transparent;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .1s}.review-expand-btn:hover{background:#ffffff0d}.review-card-body{padding:12px 14px 14px 42px;border-top:1px solid var(--border);margin-top:0}.review-section{margin-bottom:12px}.review-section:last-child{margin-bottom:0}.review-section h4{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 4px}.review-section p{margin:0;font-size:13px;line-height:1.5}.review-section ul,.review-section ol{margin:0;padding-left:18px;font-size:13px;line-height:1.6}.review-steps li{margin-bottom:4px}.step-expected{color:var(--muted);font-size:12px;font-style:italic;margin-top:2px}.review-skipped{margin-top:16px;padding:12px 14px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px}.review-skipped h3{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}.review-skipped ul{list-style:none;padding:0;margin:0;font-size:13px}.review-skipped li{margin-bottom:4px}.review-skipped small{color:var(--muted)}.review-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.btn-confirm{background:var(--ok)!important;color:#0f1115!important;font-weight:700!important;padding:10px 24px;border:0;border-radius:8px;font-size:14px;cursor:pointer;transition:background .15s}.btn-confirm:hover:not(:disabled){background:#2bc486!important}.btn-confirm:disabled{background:#1a5c3a!important;color:#ffffff80!important;cursor:not-allowed}.btn-cancel{background:transparent;border:1px solid rgba(248,113,113,.4);color:var(--err);padding:10px 20px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .15s}.btn-cancel:hover:not(:disabled){background:var(--err-bg)}.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-shell>.app{flex:1;min-height:0}.app-single{display:flex;grid-template-columns:1fr;justify-content:center;align-items:flex-start;padding:32px 24px}.app-single>.input-pane{width:100%;max-width:960px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 20px;background:var(--panel);border-bottom:1px solid var(--border)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:10px}.topbar-link{background:transparent;border:1px solid transparent;color:var(--muted);padding:6px 12px;border-radius:8px;cursor:pointer;font:inherit;font-weight:600}.topbar-link:hover{color:var(--text);background:var(--panel-2)}.topbar-link.active{color:var(--text);border-color:var(--border);background:var(--panel-2)}.topbar-user{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;color:var(--text);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--border)}.avatar-fallback{display:inline-grid;place-items:center;background:#4f8cff33;color:var(--accent-2);font-weight:700;font-size:.85rem}.btn-small{padding:6px 12px;font-size:.85rem}.btn-danger{background:transparent;color:var(--err);border:1px solid rgba(248,113,113,.4);border-radius:8px;cursor:pointer;font:inherit;font-weight:600}.btn-danger:hover:not(:disabled){background:var(--err-bg)}.btn-danger:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.pill-admin{background:#fbbf2426;color:var(--warn)}.pill-ok{background:var(--ok-bg);color:var(--ok)}.pill-off{background:#8b94a726;color:var(--muted)}.google-btn-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin:8px 0 4px;min-height:44px}.signin-busy{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem}.signin-footnote{margin-top:20px;color:var(--muted);font-size:.85rem;text-align:center}.dev-login{margin-top:20px;padding-top:16px;border-top:1px dashed var(--border)}.dev-login-banner{display:inline-block;margin-bottom:10px;padding:3px 10px;border-radius:999px;background:#fbbf2426;color:var(--warn);font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.users-add{margin-bottom:18px}.users-add-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.users-add-row input[type=email]{flex:1;min-width:240px}.toggle-option.inline{margin:0;padding:8px 12px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.users-table{width:100%;border-collapse:collapse;font-size:.92rem}.users-table th,.users-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.users-table th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;background:var(--panel-2)}.users-table tr:last-child td{border-bottom:none}.row-inactive td{opacity:.6}.user-name{font-size:.8rem}.row-actions{white-space:nowrap}.row-actions button+button{margin-left:6px}
