:root{--bg: #0a0a0b;--panel: #131315;--panel-2: #1a1a1d;--border: #26262a;--text: #e8e8ea;--text-dim: #8a8a90;--text-faint: #545458;--accent: #5b8cff;--accent-dim: #3a5bb0;--ok: #4ade80;--fail: #f87171;--rate: #fbbf24;--mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;--sans: -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5}.shell{max-width:480px;margin:0 auto;padding:20px 16px 60px}header.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.top-title{display:flex;align-items:baseline;gap:8px}header.top h1{font-family:var(--mono);font-size:17px;font-weight:700;margin:0;letter-spacing:-.02em}.top-sub{font-family:var(--mono);font-size:11px;color:var(--text-faint)}.pill-btn{width:auto;padding:4px 10px;margin:0;font-size:11px;font-family:var(--mono);background:var(--panel);border:1px solid var(--border);color:var(--text-dim);border-radius:999px}.pill-btn:hover{border-color:var(--accent-dim);color:var(--text)}.api-target{font-family:var(--mono);font-size:11px;color:var(--text-dim);margin-bottom:20px;word-break:break-all}.session-badge{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel);font-size:13px;margin-bottom:20px}.session-badge .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.session-badge--unknown .dot{background:var(--text-faint)}.session-badge--active .dot{background:var(--ok);box-shadow:0 0 6px var(--ok)}.session-badge--none .dot{background:var(--fail)}.session-meta{margin-left:auto;color:var(--text-faint);font-family:var(--mono);font-size:11px}.providers-row{display:flex;gap:6px;flex-wrap:wrap;margin:-12px 0 20px}.provider-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-family:var(--mono);font-size:11px;border:1px solid var(--border)}.provider-chip--on{background:#4ade801a;color:var(--ok);border-color:#4ade8040}.provider-chip--off{background:var(--panel);color:var(--text-faint)}.chip-unlink{width:auto;padding:0 2px;margin:0;background:none;border:none;color:inherit;font-size:13px;line-height:1;cursor:pointer;opacity:.6}.chip-unlink:hover{opacity:1}section{margin-bottom:22px}section h2{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin:0 0 10px;display:flex;align-items:center;gap:8px}section h2:after{content:"";flex:1;height:1px;background:var(--border)}.field-wrap{margin-bottom:8px}.field{width:100%;padding:10px 12px;margin-bottom:0;background:var(--panel);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--sans);font-size:14px;transition:border-color .15s ease}.field:focus{outline:none;border-color:var(--accent-dim)}.field::placeholder{color:var(--text-faint)}.field--invalid{border-color:var(--fail)}.field-error{font-family:var(--mono);font-size:11px;color:var(--fail);margin-top:4px;padding-left:2px}button{width:100%;padding:10px 12px;border-radius:6px;border:1px solid transparent;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;margin-bottom:6px;transition:opacity .15s ease}button:hover{opacity:.88}button:active{opacity:.72}button:disabled,button.is-loading{opacity:.55;cursor:default;pointer-events:none}.btn-icon{display:inline-block;font-family:var(--mono);font-weight:800;margin-right:4px;opacity:.8}button.primary{background:var(--accent);color:#fff}button.google{background:#fff;color:#1a1a1a}button.github{background:#24292f;color:#fff;border-color:#3d444d}button.secondary{background:var(--panel-2);color:var(--text);border-color:var(--border)}button.danger{background:transparent;color:var(--fail);border-color:#f871714d}.row{display:flex;gap:8px}.row button{margin-bottom:0}.log-empty{color:var(--text-faint);font-size:13px;padding:16px 0;text-align:center;font-family:var(--mono)}.log-entry{border:1px solid var(--border);border-radius:6px;margin-bottom:6px;background:var(--panel);overflow:hidden}.log-entry summary{list-style:none;cursor:pointer;padding:9px 10px;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px}.log-entry summary::-webkit-details-marker{display:none}.log-status{font-weight:700;padding:1px 6px;border-radius:4px;font-size:11px;min-width:28px;text-align:center}.log-status--ok{background:#4ade8026;color:var(--ok)}.log-status--fail{background:#f8717126;color:var(--fail)}.log-status--rate{background:#fbbf2426;color:var(--rate)}.log-status--error{background:#f8717126;color:var(--fail)}.log-method{color:var(--text-dim);font-weight:600}.log-path{flex:1;color:var(--text)}.log-time{color:var(--text-faint)}.log-clock{color:var(--text-faint);font-size:10px}.log-details{padding:0 10px 10px;border-top:1px solid var(--border)}.log-error{color:var(--fail);font-family:var(--mono);font-size:12px;padding-top:8px}.log-block{margin-top:8px}.log-block-label{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--text-faint);margin-bottom:4px}.log-block pre{margin:0;background:var(--panel-2);border-radius:4px;padding:8px;font-family:var(--mono);font-size:11px;color:var(--text-dim);overflow-x:auto;white-space:pre-wrap;word-break:break-all}.hint{font-size:11px;color:var(--text-faint);margin-top:-2px;margin-bottom:10px}.toast-root{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:8px;max-width:440px;width:100%;padding:10px 14px;border-radius:8px;font-size:13px;font-family:var(--sans);background:var(--panel-2);border:1px solid var(--border);box-shadow:0 8px 24px #0006;cursor:pointer;opacity:0;transform:translateY(-8px);transition:opacity .18s ease,transform .18s ease}.toast--in{opacity:1;transform:translateY(0)}.toast--out{opacity:0;transform:translateY(-8px)}.toast--success{border-color:#4ade8059}.toast--success .toast-icon{color:var(--ok)}.toast--error{border-color:#f8717159}.toast--error .toast-icon{color:var(--fail)}.toast--info .toast-icon{color:var(--text-dim)}.toast-icon{font-family:var(--mono);font-weight:700;flex-shrink:0}.toast-msg{flex:1}
