:root{color:#111827;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#ffffffe0,#f5f7fb00) 0 0/100% 160px no-repeat,#f5f7fb;margin:0}button,input{font:inherit}button{cursor:pointer;letter-spacing:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:1px solid #0000;transition:background-color .14s,border-color .14s,box-shadow .14s,color .14s,transform 80ms}button:hover:not(:disabled){box-shadow:0 8px 18px #1118271f}button:active:not(:disabled){box-shadow:none;transform:translateY(1px)}button:disabled{cursor:progress;opacity:.58}button svg,.empty-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:20px;height:20px}input{color:#111827;background:#fff;border:1px solid #dbe2ea;border-radius:8px;width:100%;min-width:0;height:44px;padding:0 12px}.app-shell{flex-direction:column;gap:14px;min-height:100vh;padding:18px;display:flex}.topbar,.view-tabs,.panel,.contacts-panel,.call-surface,.notice,.incoming-call-banner,.error-panel{width:min(100%,520px);margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:16px;padding:4px 2px 0;display:flex}.panel,.contacts-panel,.call-surface,.notice,.error-panel{background:#fffffff0;border:1px solid #cbd5e1d1;border-radius:8px;padding:16px;box-shadow:0 14px 34px #0f172a12}.contacts-panel{gap:18px;display:grid}.call-surface{padding:18px}.eyebrow{color:#64748b;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:800}.online-eyebrow{padding-left:13px;position:relative}.online-eyebrow:before{content:"";background:#10b981;border-radius:50%;width:7px;height:7px;position:absolute;top:50%;left:0;transform:translateY(-50%)}h1,h2,p{margin:0}h1{font-size:31px;line-height:1.04}h2{font-size:20px;line-height:1.18}p{line-height:1.55}.icon-button{color:#172033;background:#fff;border-color:#dbe2ea;border-radius:50%;place-items:center;width:42px;min-width:42px;height:42px;padding:0;display:inline-grid}.view-tabs{background:#fff;border:1px solid #dbe2ea;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;display:grid}.view-tab{color:#64748b;background:0 0;border-radius:7px;min-height:38px;font-weight:850}.view-tab.active{color:#fff;background:#0f766e}.primary-button,.secondary-button,.ghost-button,.danger-button,.text-button{border-radius:8px;min-height:44px;padding:0 16px;font-weight:800}.primary-button{color:#fff;background:#0f766e;width:100%}.primary-button:hover:not(:disabled){background:#115e59}.secondary-button,.ghost-button{color:#172033;background:#f8fafc;border-color:#dbe2ea}.secondary-button:hover:not(:disabled),.ghost-button:hover:not(:disabled){background:#eef2f7}.danger-button{color:#fff;background:#dc2626}.danger-button:hover:not(:disabled){background:#b91c1c}.text-button{color:#475569;background:0 0;border-color:#0000;width:100%}.loading-panel,.notice{gap:4px;display:grid}.notice{background:#f0fdf4;border-color:#bbf7d0}.error-panel{color:#991b1b;background:#fff7f7;border-color:#fecaca;gap:4px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.contact-heading{margin-top:2px}.invite-box{gap:12px;display:grid}.invite-button{min-height:48px}.invite-result{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.share-button{min-width:82px}.contact-list,.history-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.contact-row{background:#fff;border:1px solid #e5eaf0;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.history-row{background:#fff;border:1px solid #e5eaf0;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px;display:grid}.contact-meta,.history-meta{gap:3px;min-width:0;display:grid}.history-meta strong,.contact-meta strong{color:#101827;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-meta span,.contact-meta span,.empty-state,.call-status-grid span{color:#64748b}.history-side{justify-items:end;gap:4px;min-width:56px;display:grid}.history-side strong{color:#101827;min-height:18px;font-size:13px}.history-direction{border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.history-direction svg{width:15px;height:15px}.history-direction.outgoing{color:#0369a1;background:#e0f2fe}.history-direction.incoming{color:#047857;background:#dcfce7}.call-button,.round-action{border-radius:50%;place-items:center;width:46px;min-width:46px;height:46px;padding:0;display:inline-grid}.call-button{color:#fff;background:#2563eb}.call-button:hover:not(:disabled){background:#1d4ed8}.button-spinner{border:2px solid #ffffff80;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}.avatar{color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe;border-radius:50%;place-items:center;font-weight:850;display:grid}.avatar-small{width:44px;height:44px;font-size:14px}.avatar-large{color:#0f766e;background:#f0fdfa;border-color:#ccfbf1;width:112px;height:112px;font-size:34px;box-shadow:inset 0 0 0 8px #ffffffb8}.incoming-call-banner{z-index:5;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;display:grid;position:sticky;top:10px;box-shadow:0 14px 30px #0e749024}.incoming-call-meta{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.incoming-call-meta strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.incoming-call-actions{gap:10px;display:flex}.answer-action{color:#fff;background:#0f766e;border-color:#0f766e}.decline-action,.hangup-action{color:#fff;background:#dc2626;border-color:#dc2626}.mute-action{color:#172033;background:#fff;border-color:#dbe2ea}.empty-state{text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;place-items:center;gap:8px;padding:28px 18px;display:grid}.empty-icon{color:#0369a1;background:#e0f2fe;border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.help-panel{gap:14px;display:grid}.help-steps{gap:10px;margin:0;padding-left:22px;display:grid}.help-note{color:#334155;border-left:3px solid #0f766e;gap:5px;padding:2px 0 2px 12px;display:grid}.call-panel{gap:16px;display:grid}.call-panel audio{width:100%}.call-hero{text-align:center;justify-items:center;gap:14px;padding:10px 4px 4px;display:grid}.call-identity{justify-items:center;gap:8px;display:grid}.status-pill{color:#475569;background:#fff;border:1px solid #dbe2ea;border-radius:999px;align-items:center;min-height:30px;padding:5px 12px;font-size:13px;font-weight:800;display:inline-flex}.status-connected{color:#047857;background:#f0fdf4;border-color:#bbf7d0}.status-reconnecting,.status-connecting,.status-starting{color:#92400e;background:#fffbeb;border-color:#fde68a}.status-ended,.status-error{color:#991b1b;background:#fff7f7;border-color:#fecaca}.call-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.call-status-grid div{background:#fff;border:1px solid #e5eaf0;border-radius:8px;gap:4px;min-width:0;padding:12px;display:grid}.call-status-grid strong{overflow-wrap:anywhere;font-size:14px}.call-controls{gap:14px;display:grid}.call-primary-row,.call-secondary-row{gap:12px;display:grid}.call-secondary-row{grid-template-columns:repeat(2,auto);justify-content:center}.start-audio-button{min-height:52px}.call-error{color:#991b1b;background:#fff7f7;border:1px solid #fecaca;border-radius:8px;padding:10px 12px}.debug-log{color:#334155;background:#fff;border:1px solid #dbe2ea;border-radius:8px;padding:10px 12px;font-size:12px}.debug-log summary{cursor:pointer;font-weight:800}.debug-log ol{gap:4px;margin:8px 0 0;padding-left:18px;display:grid}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=420px){.app-shell{padding:14px}.topbar{align-items:flex-start}.invite-result,.incoming-call-banner,.call-status-grid{grid-template-columns:1fr}.incoming-call-actions{justify-content:center}.contact-row,.history-row{grid-template-columns:auto minmax(0,1fr) auto}.history-row .call-button{grid-area:1/3/span 2}.history-side{grid-column:2;justify-items:start}}
