/* Guided student walkthrough. The live page stays visible beneath a moving
   spotlight, so the tour always matches the sections this account can use. */
#ftTour{
  --ft-navy:#032a44;
  --ft-deep:#021d31;
  --ft-cyan:#00b5e2;
  --ft-sky:#70d9f2;
  --ft-ink:#10283c;
  --ft-muted:#5e7488;
  position:fixed;
  inset:0;
  z-index:2147482600;
  pointer-events:none;
  color:var(--ft-ink);
  font:500 14px/1.55 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
#ftTour[hidden]{display:none!important}
#ftTour *{box-sizing:border-box}
#ftTour .ft-shade{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:auto;
  background:
    radial-gradient(820px 440px at 15% 4%,rgba(0,181,226,.16),transparent 62%),
    rgba(2,15,26,.82);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  transition:background .25s ease,backdrop-filter .25s ease;
}
#ftTour[data-has-target="true"] .ft-shade{
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
#ftTour .ft-spot{
  position:fixed;
  z-index:1;
  pointer-events:none;
  border:2px solid rgba(112,217,242,.96);
  background:transparent;
  box-shadow:
    0 0 0 9999px rgba(2,15,26,.76),
    0 0 0 6px rgba(0,181,226,.13),
    0 14px 42px rgba(0,181,226,.22);
  transition:left .38s cubic-bezier(.22,1,.36,1),top .38s cubic-bezier(.22,1,.36,1),
    width .38s cubic-bezier(.22,1,.36,1),height .38s cubic-bezier(.22,1,.36,1),
    border-radius .28s ease,opacity .2s ease;
}
#ftTour[data-has-target="false"] .ft-spot{opacity:0}
#ftTour .ft-spot::before,
#ftTour .ft-spot::after{
  content:"";
  position:absolute;
  inset:-8px;
  border:1px solid rgba(112,217,242,.58);
  border-radius:inherit;
  animation:ftHalo 2s ease-out infinite;
}
#ftTour .ft-spot::after{animation-delay:1s}
@keyframes ftHalo{
  0%{opacity:.78;transform:scale(.98)}
  70%,100%{opacity:0;transform:scale(1.06)}
}

#ftTour .ft-card{
  position:fixed;
  z-index:3;
  width:min(420px,calc(100vw - 24px));
  max-height:calc(100vh - 24px);
  display:flex;
  flex-direction:column;
  pointer-events:auto;
  overflow:visible;
  border:1px solid rgba(191,220,235,.88);
  border-radius:22px;
  background:rgba(255,255,255,.985);
  box-shadow:0 28px 80px rgba(1,18,31,.42),0 2px 8px rgba(1,18,31,.12);
  animation:ftCardIn .36s cubic-bezier(.22,1,.36,1) both;
}
#ftTour[data-centered="true"] .ft-card{width:min(520px,calc(100vw - 24px))}
@keyframes ftCardIn{
  from{opacity:0;transform:translateY(12px) scale(.975)}
  to{opacity:1;transform:none}
}
#ftTour .ft-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  overflow:hidden;
  border-radius:inherit;
  background:
    radial-gradient(360px 180px at 0 0,rgba(0,181,226,.105),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,0));
  pointer-events:none;
}
#ftTour .ft-arrow{
  position:absolute;
  width:18px;
  height:18px;
  background:#fff;
  border:solid rgba(191,220,235,.88);
  transform:rotate(45deg);
  pointer-events:none;
}
#ftTour .ft-place-bottom .ft-arrow{
  top:-10px;
  left:clamp(24px,var(--ft-arrow-x,50%),calc(100% - 24px));
  margin-left:-9px;
  border-width:1px 0 0 1px;
}
#ftTour .ft-place-top .ft-arrow{
  bottom:-10px;
  left:clamp(24px,var(--ft-arrow-x,50%),calc(100% - 24px));
  margin-left:-9px;
  border-width:0 1px 1px 0;
}
#ftTour .ft-place-right .ft-arrow{
  left:-10px;
  top:clamp(24px,var(--ft-arrow-y,50%),calc(100% - 24px));
  margin-top:-9px;
  border-width:0 0 1px 1px;
}
#ftTour .ft-place-left .ft-arrow{
  right:-10px;
  top:clamp(24px,var(--ft-arrow-y,50%),calc(100% - 24px));
  margin-top:-9px;
  border-width:1px 1px 0 0;
}
#ftTour[data-centered="true"] .ft-arrow{display:none}

#ftTour .ft-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px 11px;
}
#ftTour .ft-brand{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  color:#426078;
  font-size:11px;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}
#ftTour .ft-brandmark{
  position:relative;
  width:30px;
  height:30px;
  flex:none;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:linear-gradient(145deg,#074467,#02253d);
  box-shadow:0 5px 14px rgba(3,42,68,.2);
}
#ftTour .ft-brandmark::before{
  content:"";
  width:16px;
  height:8px;
  border-left:2px solid var(--ft-cyan);
  border-bottom:2px solid var(--ft-cyan);
  transform:skew(-24deg) rotate(-8deg);
  filter:drop-shadow(0 0 4px rgba(0,181,226,.65));
}
#ftTour .ft-close{
  width:34px;
  height:34px;
  flex:none;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #dce8ef;
  border-radius:50%;
  background:#f8fbfd;
  color:#6d8395;
  font:700 18px/1 inherit;
  cursor:pointer;
  transition:background .16s,color .16s,transform .16s;
}
#ftTour .ft-close:hover{background:#edf5f9;color:#173a54;transform:rotate(4deg)}
#ftTour .ft-progress{height:4px;margin:0 18px;border-radius:99px;background:#e5eef3;overflow:hidden}
#ftTour .ft-progress i{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#0879a9,#00b5e2 58%,#71dcf3);
  box-shadow:0 0 12px rgba(0,181,226,.45);
  transition:width .42s cubic-bezier(.22,1,.36,1);
}

#ftTour .ft-content{
  min-height:0;
  padding:20px 22px 5px;
  overflow:auto;
  overscroll-behavior:contain;
}
#ftTour .ft-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  margin:0 0 14px;
  border:1px solid #c9e6f1;
  border-radius:15px;
  background:linear-gradient(145deg,#effaff,#dff3fb);
  color:#075c86;
  box-shadow:0 8px 22px rgba(0,128,171,.11);
  font-size:22px;
  animation:ftIconIn .42s cubic-bezier(.22,1.35,.36,1) both;
}
@keyframes ftIconIn{from{opacity:0;transform:scale(.6) rotate(-7deg)}to{opacity:1;transform:none}}
#ftTour .ft-eyebrow{
  margin:0 0 5px;
  color:#0784ad;
  font-size:11px;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}
#ftTour h2{
  margin:0;
  color:var(--ft-navy);
  font-size:24px;
  font-weight:850;
  line-height:1.16;
  letter-spacing:-.45px;
}
#ftTour .ft-copy{margin:11px 0 0;color:var(--ft-muted);font-size:14px;line-height:1.65}
#ftTour .ft-copy p{margin:0}
#ftTour .ft-copy b{color:#213f55;font-weight:800}
#ftTour .ft-chiprow{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 2px}
#ftTour .ft-chip{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 9px;
  border:1px solid #cce4ef;
  border-radius:999px;
  background:#f2f9fc;
  color:#24536e;
  font-size:11px;
  font-weight:800;
}
#ftTour .ft-minirows{display:grid;gap:8px;margin-top:13px}
#ftTour .ft-minirow{
  display:grid;
  grid-template-columns:31px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:10px 11px;
  border:1px solid #e0eaf0;
  border-radius:12px;
  background:#f9fbfc;
}
#ftTour .ft-minirow>span{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#eaf6fb;
  font-size:15px;
}
#ftTour .ft-minirow b{display:block;color:#203e54;font-size:12.5px;line-height:1.35}
#ftTour .ft-minirow small{display:block;margin-top:2px;color:#73889a;font-size:11.5px;line-height:1.45}
#ftTour .ft-savefacts{gap:7px;margin-top:11px}
#ftTour .ft-savefacts .ft-minirow{padding:9px 10px}
#ftTour[data-step="progress-safety"] .ft-card{width:min(580px,calc(100vw - 24px))}
#ftTour .ft-minirow>.ft-offline-demo{
  position:relative;
  overflow:hidden;
  background:#d84b3e;
  color:#fff;
  box-shadow:0 4px 11px rgba(119,53,44,.2);
}
#ftTour .ft-offline-demo i{
  position:absolute;
  left:50%;
  display:block;
  border:2px solid transparent;
  border-top-color:currentColor;
  border-radius:50%;
  transform:translateX(-50%);
}
#ftTour .ft-offline-demo i:nth-child(1){top:6px;width:20px;height:20px}
#ftTour .ft-offline-demo i:nth-child(2){top:11px;width:11px;height:11px}
#ftTour .ft-offline-demo>b{position:absolute;left:50%;bottom:5px;width:4px;height:4px;border-radius:50%;background:#fff;transform:translateX(-50%)}
#ftTour .ft-offline-demo>em{position:absolute;left:14px;top:3px;width:3px;height:26px;border-radius:3px;background:#fff;transform:rotate(-43deg)}
#ftTour .ft-reconnect-tip{
  margin-top:9px;
  padding:9px 11px;
  border:1px solid #b9dfec;
  border-radius:11px;
  background:#edf9fd;
  color:#496c81;
  font-size:11.5px;
  line-height:1.5;
}

/* On the opening card, gently walk the eye across only the Step chooser. The
   spotlight itself still owns the masking, and no unavailable stage is shown. */
body.ft-tour-stage-focus #startScreen .lpstagepicker .lpstagebutton:not([hidden]){
  animation:ftStageGuide 2.4s ease-in-out infinite;
}
body.ft-tour-stage-focus #startScreen .lpstagepicker .lpstagebutton:nth-child(2){animation-delay:.18s}
body.ft-tour-stage-focus #startScreen .lpstagepicker .lpstagebutton:nth-child(3){animation-delay:.36s}
@keyframes ftStageGuide{
  0%,18%,72%,100%{filter:brightness(1);box-shadow:none}
  34%,48%{filter:brightness(1.2);box-shadow:0 0 0 2px rgba(112,217,242,.42),0 5px 14px rgba(0,181,226,.25)}
}

@media(min-width:620px){
  #ftTour .ft-savefacts{grid-template-columns:repeat(2,minmax(0,1fr))}
}

#ftTour .ft-welcome-art{
  position:relative;
  width:126px;
  height:126px;
  margin:-4px auto 22px;
}
#ftTour .ft-orbit{
  position:absolute;
  inset:4px;
  border:1px solid rgba(0,181,226,.25);
  border-radius:50%;
  animation:ftOrbit 8s linear infinite;
}
#ftTour .ft-orbit.two{inset:17px;animation-direction:reverse;animation-duration:6s}
#ftTour .ft-orbit::before,
#ftTour .ft-orbit::after{
  content:"";
  position:absolute;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--ft-cyan);
  box-shadow:0 0 0 6px rgba(0,181,226,.12),0 0 18px rgba(0,181,226,.55);
}
#ftTour .ft-orbit::before{top:5px;left:17px}
#ftTour .ft-orbit::after{right:0;bottom:26px;width:7px;height:7px;background:#7b61d8}
#ftTour .ft-welcome-core{
  position:absolute;
  inset:30px;
  display:grid;
  place-items:center;
  border:1px solid rgba(112,217,242,.48);
  border-radius:24px;
  background:linear-gradient(145deg,#07527a,#032a44 60%,#021d31);
  color:#fff;
  box-shadow:0 16px 38px rgba(3,42,68,.3),inset 0 1px 0 rgba(255,255,255,.16);
  font-size:24px;
  font-weight:900;
  letter-spacing:-1px;
  transform:rotate(-3deg);
}
@keyframes ftOrbit{to{transform:rotate(360deg)}}
#ftTour[data-centered="true"] .ft-content{text-align:center;padding:24px 32px 8px}
#ftTour[data-centered="true"] .ft-icon{margin-inline:auto}
#ftTour[data-centered="true"] .ft-copy{max-width:420px;margin:12px auto 0}

#ftTour .ft-foot{
  display:flex;
  align-items:center;
  gap:10px;
  padding:17px 22px 21px;
}
#ftTour .ft-count{margin-right:auto;color:#7b90a1;font-size:11.5px;font-weight:750;white-space:nowrap}
#ftTour .ft-btn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:9px 15px;
  border:1px solid #cddde7;
  border-radius:11px;
  background:#f6fafc;
  color:#355268;
  font:800 13px/1.2 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;
  transition:transform .14s,box-shadow .16s,background .16s,border-color .16s;
}
#ftTour .ft-btn[hidden]{display:none}
#ftTour .ft-btn:hover{background:#edf5f9;border-color:#b7d1df;transform:translateY(-1px)}
#ftTour .ft-btn.primary{
  border-color:#078bb8;
  background:linear-gradient(135deg,#0875a5,#00aeda);
  color:#fff;
  box-shadow:0 8px 20px rgba(0,142,188,.23);
}
#ftTour .ft-btn.primary:hover{background:linear-gradient(135deg,#066994,#00a4cf);box-shadow:0 10px 24px rgba(0,142,188,.3)}
#ftTour .ft-btn:active{transform:scale(.975)}
#ftTour button:focus-visible,#ftTour [tabindex]:focus-visible{outline:3px solid rgba(0,181,226,.38);outline-offset:2px}

body.ft-tour-open #startScreen{scroll-behavior:auto}

@media(max-width:720px){
  #ftTour .ft-card{width:calc(100vw - 20px);border-radius:18px}
  #ftTour[data-centered="true"] .ft-card{width:calc(100vw - 20px)}
  #ftTour .ft-head{padding:13px 15px 9px}
  #ftTour .ft-progress{margin-inline:15px}
  #ftTour .ft-content{padding:17px 18px 4px}
  #ftTour[data-centered="true"] .ft-content{padding:20px 20px 5px}
  #ftTour h2{font-size:21px}
  #ftTour .ft-copy{font-size:13.5px;line-height:1.58}
  #ftTour .ft-foot{padding:14px 18px 18px;flex-wrap:wrap}
  #ftTour .ft-count{width:100%;margin:0 0 -2px}
  #ftTour .ft-btn{flex:1 1 auto}
  #ftTour .ft-welcome-art{transform:scale(.86);margin-top:-12px;margin-bottom:7px}
}
@media(max-width:400px){
  #ftTour .ft-brand span{display:none}
  #ftTour .ft-card{max-height:calc(100vh - 12px)}
  #ftTour .ft-foot{gap:7px}
  #ftTour .ft-btn{min-height:40px;padding-inline:12px;font-size:12.5px}
}
@media(prefers-reduced-motion:reduce){
  #ftTour *,#ftTour *::before,#ftTour *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  body.ft-tour-stage-focus #startScreen .lpstagepicker .lpstagebutton{animation:none!important}
}
