:root{font-family:system-ui,sans-serif;color:#12202b;background:#f2f6f8;--blue:#087ea4;--red:#c62828}*{box-sizing:border-box}body{margin:0;min-height:100dvh}header{height:76px;padding:12px 24px;background:white;display:flex;align-items:center;gap:20px;box-shadow:0 2px 8px #0002}h1{font-size:26px;margin:0;margin-right:auto}button,input,select{min-height:52px;font-size:18px;border-radius:12px;border:1px solid #aab8c2;padding:8px 16px}button{background:var(--blue);color:white;font-weight:700;border:0;touch-action:manipulation}.danger{background:var(--red)}.toolbar{display:flex;gap:12px;padding:20px}.toolbar input{flex:1}.cards{padding:0 20px 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.card{background:white;text-align:left;color:#12202b;min-height:116px;position:relative;box-shadow:0 2px 8px #0001}.card:disabled{opacity:.5}.card strong{display:block;font-size:24px}.star{position:absolute;right:12px;top:8px;font-size:28px;color:#d89400}.status{font-weight:500;font-size:16px}.idle{color:#218739}.ringing{color:#b76b00}.in-call{color:#c62828}.offline{color:#6b7378}.hidden{display:none!important}#callView{height:calc(100dvh - 76px);display:flex;flex-direction:column;background:#101418}#stage{position:relative;flex:1;min-height:0;overflow:hidden}video{background:#202a30;object-fit:cover}#remoteVideo{width:100%;height:100%}#localVideo{position:absolute;width:min(27vw,360px);aspect-ratio:16/9;right:24px;bottom:24px;border:3px solid white;border-radius:16px;box-shadow:0 3px 20px #0008;z-index:2;touch-action:none}#connection,#recordState{position:absolute;top:16px;color:white;background:#0009;padding:10px 15px;border-radius:20px}#connection{left:16px}#recordState{right:16px;color:#ffddd9}.controls{padding:14px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.controls button{min-width:150px}dialog{border:0;border-radius:18px;padding:24px;max-width:min(92vw,520px);box-shadow:0 20px 80px #0007}dialog::backdrop{background:#0009}dialog form,dialog label{display:grid;gap:14px}dialog div{display:flex;gap:12px;justify-content:flex-end}#incomingDialog{text-align:center}#incomingDialog h2{font-size:30px}@media(max-width:700px) and (orientation:portrait){header{height:64px;padding:8px 12px}h1{font-size:20px}#callView{height:calc(100dvh - 64px)}#localVideo{width:38vw;right:12px;bottom:12px}.controls{display:grid;grid-template-columns:1fr 1fr}.controls button{min-width:0}.cards{grid-template-columns:1fr 1fr;padding:10px;gap:10px}.card{min-height:100px}.toolbar{padding:10px}}
.swapped #localVideo{width:100%;height:100%;inset:0;border:0;border-radius:0}.swapped #remoteVideo{position:absolute;width:min(27vw,360px);height:auto;aspect-ratio:16/9;right:24px;bottom:24px;border:3px solid white;border-radius:16px;z-index:3}#connection,#recordState{z-index:4}

.contact-approval{box-sizing:border-box;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #dce5f0;border-radius:24px;padding:28px;background:#fff;color:#182b40;text-align:center;box-shadow:0 24px 90px #07162b55}.contact-approval::backdrop{background:#08142699;backdrop-filter:blur(5px)}.contact-approval .approval-mark{font-size:32px;color:#0855f9}.contact-approval h2{margin:10px 0 18px}.contact-approval p{line-height:1.65;overflow-wrap:anywhere}.contact-approval strong{color:#0855f9}.contact-approval .approval-hint{font-size:13px;color:#64748b}.contact-approval .approval-error{color:#bd2445;font-size:13px}.contact-approval .approval-actions{display:flex;gap:8px;margin-top:22px;flex-wrap:wrap}.contact-approval button{flex:1;min-width:90px;min-height:46px;border-radius:12px;border:1px solid #dce5f0;background:#f2f5fa;color:#25364b;cursor:pointer}.contact-approval button.primary{background:#0855f9;color:white;border-color:#0855f9}.contact-approval button:disabled{opacity:.5}

.contact-approval .approval-mark{text-align:center}
