/* Terms of Service and Disclaimer -- shared by /terms and the acceptance box */
.legal-doc{color:#c9d8ea;font-size:13.5px;line-height:1.75;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.legal-doc h2{font-size:19px;font-weight:700;color:#f2f6ff;letter-spacing:-.2px;margin:30px 0 10px;scroll-margin-top:24px}
.legal-doc h2:first-of-type{margin-top:18px}
.legal-doc h3{font-size:14px;font-weight:700;color:#e3ecf8;margin:22px 0 6px;scroll-margin-top:24px}
.legal-doc p{margin:0 0 11px}
.legal-doc ul{margin:0 0 11px;padding-left:20px}
.legal-doc li{margin:0 0 5px}
.legal-doc a{color:#7cc8ff;text-decoration:underline;text-underline-offset:2px}
.legal-doc strong{color:#f2f6ff}
.legal-meta{font-size:11.5px;color:#8ba1bc;letter-spacing:.3px}
.legal-lead{background:rgba(84,187,255,.07);border:1px solid rgba(84,187,255,.22);border-radius:10px;padding:12px 14px}
/* warranty disclaimers and liability limits must be conspicuous */
.legal-caps{text-transform:uppercase;font-size:12px;letter-spacing:.2px;color:#e3ecf8;font-weight:600}
.legal-help{background:rgba(74,222,128,.07);border:1px solid rgba(74,222,128,.25);border-radius:10px;padding:11px 14px;margin-top:16px}

/* always-visible legal bar at the bottom of every page */
.legal-bar{max-width:1408px;margin:18px auto 0;padding:16px 24px 26px;border-top:1px solid #26364c;
  font-size:11px;line-height:1.8;color:#8ba1bc;text-align:center}
.legal-bar a{color:#a6bedb;text-decoration:none;margin:0 2px}
.legal-bar a:hover{color:#dbeafe;text-decoration:underline}
.legal-bar .sep{color:#3a4d67;margin:0 6px}
.legal-bar strong{color:#c9d8ea}

/* acceptance modal */
/* The overlay itself scrolls, so no part of the box can ever be trapped off
   screen -- the Accept button sat below the bottom edge on small phones, and
   on iPhones Safari counts the area behind its toolbar as part of 100vh.
   The card is sized to the VISIBLE height (dvh) with a 100vh fallback, and
   margin:auto centres it while still allowing scroll when it doesn't fit. */
.tos-mask{position:fixed;inset:0;z-index:2000;background:rgba(3,8,15,.9);backdrop-filter:blur(6px);
  display:flex;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}
.tos-card{margin:auto;width:100%;max-width:760px;
  max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;
  background:linear-gradient(160deg,#0d1828,#070e19);border:1px solid rgba(84,187,255,.28);
  border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.65);overflow:hidden}
.tos-head{padding:20px 24px 14px;border-bottom:1px solid #1f3048}
.tos-head h1{margin:0;font-size:20px;font-weight:700;color:#f2f6ff;letter-spacing:-.3px}
.tos-head p{margin:5px 0 0;font-size:12.5px;color:#91a6c1;line-height:1.6}
.tos-scroll{flex:1;min-height:110px;overflow-y:auto;padding:4px 24px 18px;outline:none;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.tos-scroll:focus-visible{box-shadow:inset 0 0 0 2px #54bbff}
.tos-foot{padding:14px 24px 18px;border-top:1px solid #1f3048;background:#0a1422}
.tos-progress{height:4px;border-radius:2px;background:#1c2d45;overflow:hidden;margin-bottom:10px}
.tos-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#249af4,#54bbff);transition:width .15s}
.tos-hint{font-size:11.5px;color:#fbbf24;margin-bottom:10px}
.tos-hint.done{color:#4ade80}
.tos-check{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.55;color:#c9d8ea;cursor:pointer}
.tos-check input{margin-top:3px;width:17px;height:17px;flex-shrink:0;accent-color:#54bbff;cursor:pointer}
.tos-check.locked{opacity:.45;cursor:not-allowed}
.tos-check.locked input{cursor:not-allowed}
.tos-actions{display:flex;gap:10px;margin-top:14px;align-items:center;flex-wrap:wrap}
.tos-accept{flex:1;min-width:200px;background:#54bbff;color:#051a2c;border:0;border-radius:9px;padding:12px 18px;
  font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .15s}
.tos-accept:disabled{opacity:.35;cursor:not-allowed}
.tos-accept:not(:disabled):hover{transform:translateY(-1px)}
.tos-decline{background:transparent;color:#91a6c1;border:1px solid #2e415c;border-radius:9px;padding:11px 16px;
  font-size:13px;text-decoration:none;cursor:pointer}
.tos-decline:hover{color:#dbeafe;border-color:#4a6283}
.tos-error{font-size:12px;color:#f87171;margin-top:10px;display:none}
@media(max-width:540px){.tos-head{padding:16px 16px 12px}.tos-scroll{padding:2px 16px 14px}.tos-foot{padding:12px 16px 16px}
  .legal-doc{font-size:13px}.tos-actions{flex-direction:column-reverse;align-items:stretch}.tos-decline{text-align:center}}

/* short screens (small phones, landscape, laptops with big browser bars):
   give the reading area every pixel the header and footer can spare */
@media (max-height:680px){
  .tos-head{padding:12px 16px 9px}
  .tos-head h1{font-size:16px}
  .tos-head p{display:none}
  .tos-foot{padding:9px 16px 11px}
  .tos-progress{margin-bottom:6px}
  .tos-hint{font-size:11px;margin-bottom:6px}
  .tos-check{font-size:11.5px;line-height:1.45}
  .tos-actions{margin-top:9px;flex-direction:row;align-items:center}
  .tos-accept{min-width:0;padding:10px 14px;font-size:13.5px}
  .tos-decline{padding:9px 12px;font-size:12px;white-space:nowrap}
}
