:root{--bg:#0c1116;--surface:#161d26;--surface-2:#1d2632;--border:#2a3544;--text:#e8eef4;--muted:#8b9aab;--accent:#3d9cf0;--accent-soft:rgba(61,156,240,0.16);--speaking:#5eead4;--danger:#e24b4b;--radius:16px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.login,main{width:min(720px,100%);margin:0 auto;padding:24px 20px 40px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}h1{margin:0;font-size:1.25rem;font-weight:600;letter-spacing:-.02em}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:14px;gap:14px}.card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 18px;color:inherit;cursor:pointer;transition:border-color .15s ease,transform .15s ease,background .15s ease}.card:focus-visible,.card:hover{border-color:var(--accent);background:var(--surface-2);outline:none}.card:active{transform:scale(.99)}.name{font-size:1.05rem;font-weight:600}.sub{margin-top:6px;color:var(--muted);font-size:.9rem}.meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:8px}.pill{font-size:.78rem;line-height:1.4;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}.pill-lang{color:var(--accent);border-color:rgba(61,156,240,.35)}.call{flex-direction:column;padding:48px 0 24px;gap:20px}.call,.waveform{display:flex;align-items:center}.waveform{justify-content:center;gap:4px;width:min(300px,100%);height:64px;padding:0 8px}.waveform .bar{width:5px;min-width:5px;height:6px;border-radius:999px;background:var(--border);transition:background .2s ease,height .35s ease}.waveform:not(.connected) .bar{animation:idle-wave 2.6s ease-in-out infinite}.waveform .bar:nth-child(2n){animation-delay:.15s}.waveform .bar:nth-child(3n){animation-delay:.3s}.waveform .bar:nth-child(5n){animation-delay:.45s}.waveform.connected .bar{background:var(--accent);transition:background .2s ease}.waveform.connected.speaking .bar{background:var(--speaking)}@keyframes idle-wave{0%,to{height:6px}50%{height:16px}}.status{color:var(--muted);min-height:1.4em}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;background:var(--accent);color:#061018;font:inherit;font-weight:600;padding:14px 28px;cursor:pointer}.btn:disabled{opacity:.55;cursor:default}.btn.hangup{background:var(--danger);color:#fff}.linkbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:var(--accent);font:inherit;cursor:pointer;padding:0}.error{min-height:1.4em;color:var(--danger);text-align:center}.summary-card{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;color:var(--muted);font-size:.9rem;text-align:left}.summary-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}.badge{font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:999px}.badge-success{background:rgba(94,234,212,.16);color:var(--speaking)}.badge-failure{background:rgba(226,75,75,.16);color:var(--danger)}.badge-unknown{background:var(--surface-2);color:var(--muted)}.summary-meta{font-size:.8rem;color:var(--muted)}.summary-title{color:var(--text);font-weight:600;margin-bottom:6px}.summary-text{margin:0;color:var(--text);line-height:1.5}.criteria{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.criterion{font-size:.78rem;padding:3px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}.criterion-success{color:var(--speaking);border-color:rgba(94,234,212,.35)}.criterion-failure{color:var(--danger);border-color:rgba(226,75,75,.35)}.login{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:12px}.login p{margin:0 0 12px;color:var(--muted)}.login input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text);font:inherit;padding:14px 16px}.login input:focus{outline:2px solid var(--accent);outline-offset:1px}.login .btn{width:100%}code{font-size:.9em;color:var(--accent)}