/* Active-exam connection helper.
   The button is intentionally tiny and lives above the exam footer. It is
   created only by persist-v6.js while a question player is open and the
   connection has actually been lost. */
#examConnectionUi{
  position:fixed;
  right:max(12px,env(safe-area-inset-right));
  bottom:max(72px,calc(env(safe-area-inset-bottom) + 72px));
  z-index:2147482500;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#17384d;
}
#examConnectionUi[hidden],
#examConnectionUi [hidden]{display:none!important}
#examConnectionButton{
  position:relative;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  padding:0;
  border:2px solid rgba(255,255,255,.92);
  border-radius:50%;
  background:#d84b3e;
  color:#fff;
  box-shadow:0 5px 18px rgba(19,47,66,.28),0 0 0 2px rgba(216,75,62,.2);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
#examConnectionButton:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(19,47,66,.33),0 0 0 3px rgba(216,75,62,.2)}
#examConnectionButton:active{transform:translateY(0) scale(.96)}
#examConnectionButton:focus-visible{outline:3px solid #61cbea;outline-offset:3px}
#examConnectionButton::after{
  content:"";
  position:absolute;
  inset:-6px;
  border:2px solid rgba(216,75,62,.36);
  border-radius:50%;
  animation:fconnPulse 2.25s ease-out infinite;
  pointer-events:none;
}
.fconn-wifi{
  position:relative;
  width:23px;
  height:20px;
  display:block;
  overflow:hidden;
  color:currentColor;
}
.fconn-wifi i{
  position:absolute;
  left:50%;
  display:block;
  border:2px solid transparent;
  border-top-color:currentColor;
  border-radius:50%;
  transform:translateX(-50%);
}
.fconn-wifi i:nth-child(1){top:2px;width:22px;height:22px}
.fconn-wifi i:nth-child(2){top:7px;width:13px;height:13px}
.fconn-wifi b{
  position:absolute;
  left:50%;
  bottom:2px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:currentColor;
  transform:translateX(-50%);
}
.fconn-wifi em{
  position:absolute;
  left:10px;
  top:-2px;
  width:3px;
  height:26px;
  border-radius:3px;
  background:#fff;
  box-shadow:0 0 0 1px rgba(216,75,62,.26);
  transform:rotate(-43deg);
}
#examConnectionCoach{
  position:absolute;
  right:50px;
  bottom:-1px;
  width:min(275px,calc(100vw - 76px));
  padding:9px 11px;
  border:1px solid #efc5be;
  border-radius:11px;
  background:#fffaf8;
  color:#714038;
  box-shadow:0 10px 28px rgba(18,48,67,.2);
  font-size:11.5px;
  font-weight:680;
  line-height:1.42;
  animation:fconnCoachIn .3s cubic-bezier(.2,.8,.2,1) both;
}
#examConnectionCoach::before{
  content:"";
  position:absolute;
  right:-7px;
  bottom:12px;
  width:12px;
  height:12px;
  border-right:1px solid #efc5be;
  border-top:1px solid #efc5be;
  background:#fffaf8;
  transform:rotate(45deg);
}
#examConnectionPanel{
  position:absolute;
  right:0;
  bottom:50px;
  width:min(352px,calc(100vw - 24px));
  overflow:hidden;
  border:1px solid #d8e5eb;
  border-radius:16px;
  background:#fff;
  color:#29485c;
  box-shadow:0 18px 52px rgba(11,37,54,.27);
  animation:fconnPanelIn .2s cubic-bezier(.2,.8,.2,1) both;
}
.fconn-panel-head{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 28px;
  gap:10px;
  align-items:center;
  padding:14px 14px 12px;
  background:linear-gradient(135deg,#fff7f4,#fff);
  border-bottom:1px solid #edf1f3;
}
.fconn-panel-mark{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#d84b3e;
  color:#fff;
}
.fconn-panel-head h2{margin:0;color:#17384d;font-size:14px;line-height:1.25}
.fconn-panel-head p{margin:2px 0 0;color:#7a4a42;font-size:10.5px;font-weight:750;line-height:1.3}
.fconn-close{
  width:28px;
  height:28px;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#6c8291;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.fconn-close:hover,.fconn-close:focus-visible{background:#edf4f7;color:#17384d;outline:none}
.fconn-panel-body{padding:13px 14px 14px}
.fconn-lead{margin:0 0 11px;color:#3f5e71;font-size:12px;line-height:1.52}
.fconn-states{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:11px}
.fconn-state{
  padding:9px 10px;
  border:1px solid #dce9ee;
  border-radius:11px;
  background:#f7fafb;
}
.fconn-state span{display:block;color:#7a8f9d;font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.fconn-state b{display:block;margin-top:3px;color:#1c704d;font-size:11.5px;line-height:1.3}
.fconn-state.wait b{color:#aa503f}
.fconn-guidance{display:grid;gap:8px;margin:0;padding:0;list-style:none;counter-reset:fconn}
.fconn-guidance li{
  position:relative;
  min-height:27px;
  padding-left:35px;
  color:#536d7c;
  font-size:11.5px;
  line-height:1.48;
  counter-increment:fconn;
}
.fconn-guidance li::before{
  content:counter(fconn);
  position:absolute;
  left:0;
  top:0;
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#eaf6fa;
  color:#16769c;
  font-size:11px;
  font-weight:850;
}
.fconn-guidance b{color:#29485c}
.fconn-checkrow{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:11px;border-top:1px solid #e7eef1}
.fconn-check{
  flex:0 0 auto;
  min-height:34px;
  padding:7px 12px;
  border:0;
  border-radius:9px;
  background:#087fa9;
  color:#fff;
  font-family:inherit;
  font-size:11px;
  font-weight:800;
  line-height:1.2;
  cursor:pointer;
}
.fconn-check:hover,.fconn-check:focus-visible{background:#066b8f;outline:3px solid rgba(8,127,169,.2);outline-offset:2px}
.fconn-check:disabled{opacity:.62;cursor:wait}
.fconn-check-status{min-width:0;color:#718794;font-size:10.5px;line-height:1.35}
@keyframes fconnPulse{0%{opacity:.65;transform:scale(.83)}70%,100%{opacity:0;transform:scale(1.24)}}
@keyframes fconnCoachIn{from{opacity:0;transform:translateX(-7px)}to{opacity:1;transform:translateX(0)}}
@keyframes fconnPanelIn{from{opacity:0;transform:translateY(7px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:430px){
  #examConnectionUi{right:max(8px,env(safe-area-inset-right));bottom:max(64px,calc(env(safe-area-inset-bottom) + 64px))}
  #examConnectionPanel{width:min(342px,calc(100vw - 16px))}
  #examConnectionCoach{right:47px;width:min(254px,calc(100vw - 64px))}
}
@media(prefers-reduced-motion:reduce){
  #examConnectionButton::after{animation:none}
  #examConnectionCoach,#examConnectionPanel{animation:none}
  #examConnectionButton{transition:none}
}
