/* CF adaptation of CodeFronts 01: horizontal links with an animated underline.
   Native modal dialog supplies mobile focus management and Escape-to-close. */
.topbar.cf-navigation-ready {
  position: sticky; top: 0; z-index: 40;
  min-height: 88px; height: auto; padding: 14px max(24px, 3vw);
  display: flex; flex-wrap: nowrap; align-items: center; gap: 24px;
  background: #fffffffa; border-bottom: 1px solid #e1e9e5;
  box-shadow: 0 3px 18px #173b2e05;
  font-family: "Prompt", sans-serif;
}
.cf-navigation-ready [hidden], .cf-nav-drawer [hidden] { display: none !important; }
.cf-navigation-ready .brand { flex: 0 0 auto; gap: 10px; color: #1e3037; text-decoration: none; }
.cf-navigation-ready .brand strong { display: block; font-size: 17px; line-height: 1.5; white-space: nowrap; }
.cf-navigation-ready .brand small { display: block; max-width: 210px; color: #718078; font-size: 10px; line-height: 1.6; }
.cf-navigation-ready .brandmark { width: 40px; height: 40px; border-radius: 13px; font-size: 24px; background: #203038; color: #a6dfc1; }
.cf-navigation-ready .prototype { font-size: 9px; padding: 3px 6px; letter-spacing: 0; }
.cf-nav-desktop { flex: 1 1 auto; min-width: 0; margin: 0; }
.cf-nav-links { display: flex; align-items: center; justify-content: center; gap: 3px; }
.cf-nav-link { position: relative; display: flex; align-items: center; min-height: 44px; padding: 10px 11px; border-radius: 8px; color: #64756b; font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: color .2s, background .2s; }
.cf-nav-link::after { content: ""; position: absolute; inset: auto 11px 3px; height: 3px; border-radius: 5px; background: #207653; transform: scaleX(0); transform-origin: center; transition: transform .22s ease; }
.cf-nav-link:hover, .cf-nav-link:focus-visible, .cf-nav-link[aria-current="page"] { background: #f1f7f2; color: #1d5f45; }
.cf-nav-link:hover::after, .cf-nav-link:focus-visible::after, .cf-nav-link[aria-current="page"]::after { transform: scaleX(1); }
.cf-nav-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; flex: 0 0 auto; min-width: 0; }
.cf-nav-package { display: flex; align-items: center; gap: 10px; min-height: 52px; max-width: 260px; padding: 8px 13px; border: 1px solid #dbe8df; border-radius: 13px; background: #f4f9f5; color: #28583f; text-decoration: none; }
.cf-nav-package:hover { background: #eaf5ec; border-color: #a8cbb6; }
.cf-nav-package-icon { display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px; color: #347553; background: #e0eee3; border-radius: 9px; font-size: 18px; }
.cf-nav-package-copy { min-width: 0; }
.cf-nav-package small { display: block; color: #6a7d70; font-size: 10px; line-height: 1.5; }
.cf-nav-package .cf-nav-until { font-size: 8px; color: #728477; }
.cf-nav-package strong { display: block; color: #27593e; font-size: 12px; font-weight: 600; line-height: 1.7; overflow-wrap: anywhere; }
.cf-nav-package[data-package-type="business"] { background: #edf6f1; border-color: #bed9c9; }
.cf-navigation-ready .cf-nav-logout, .cf-nav-drawer .cf-nav-logout { min-height: 44px; padding: 10px 8px; background: transparent; color: #65756c; font-size: 11px; font-weight: 400; }
.cf-nav-toggle { display: none; }
.cf-navigation-ready a:focus-visible, .cf-navigation-ready button:focus-visible, .cf-nav-drawer a:focus-visible, .cf-nav-drawer button:focus-visible { outline: 3px solid #74bca0; outline-offset: 3px; }
.cf-nav-drawer:not([open]) { display: none; }
.cf-nav-drawer[open] { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(360px, calc(100vw - 28px)); max-width: none; height: 100vh; height: 100dvh; max-height: none; padding: max(24px, env(safe-area-inset-top)) 22px max(24px, env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; border: 0; border-radius: 24px 0 0 24px; color: #203038; background: #fff; box-shadow: -12px 0 60px #19382c22; animation: cf-nav-enter .2s ease-out; }
.cf-nav-drawer::backdrop { background: #142e285c; }
body:has(.cf-nav-drawer[open]) { overflow: hidden; }
.cf-nav-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 24px; }
.cf-nav-drawer-head strong { font-size: 20px; }
.cf-nav-close { min-width: 44px; min-height: 44px; border: 1px solid #e1e9e4; background: #f6f8f5; color: #4b6154; font: 28px/1 "Prompt", sans-serif; }
.cf-nav-drawer-package { display: flex; flex-direction: column; gap: 5px; padding: 18px; margin-bottom: 22px; border: 1px solid #d5e7dc; border-radius: 15px; background: #edf6ef; color: #26553e; text-decoration: none; overflow-wrap: anywhere; }
.cf-nav-drawer-package small { color: #678170; font-size: 11px; }
.cf-nav-drawer-package strong { font-size: 18px; line-height: 1.6; }
.cf-nav-drawer-package > span { color: #5f7767; font-size: 11px; line-height: 1.8; }
.cf-nav-mobile-links { display: grid; gap: 5px; }
.cf-nav-mobile-links .cf-nav-link { min-height: 52px; font-size: 15px; padding-inline: 16px; }
.cf-nav-mobile-links .cf-nav-link::after { inset: 13px auto 13px 0; width: 3px; height: auto; transform: scaleY(0); }
.cf-nav-mobile-links .cf-nav-link[aria-current="page"]::after, .cf-nav-mobile-links .cf-nav-link:hover::after, .cf-nav-mobile-links .cf-nav-link:focus-visible::after { transform: scaleY(1); }
.cf-nav-drawer-actions { display: flex; padding-top: 20px; margin-top: 18px; border-top: 1px solid #e6eee7; }
.cf-nav-drawer-actions .cf-nav-logout { width: 100%; text-align: left; font-size: 13px; }
@keyframes cf-nav-enter { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
@media screen and (max-width: 1179px) {
  .topbar.cf-navigation-ready { gap: 14px; padding-inline: 24px; }
  .cf-nav-desktop { display: none; }
  .cf-nav-toggle { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; padding: 10px; border: 1px solid #dce7df; border-radius: 11px; background: #fff; }
  .cf-nav-bars { display: flex; flex-direction: column; gap: 4px; width: 19px; }
  .cf-nav-bars > span { display: block; height: 2px; width: 100%; border-radius: 2px; background: #365846; }
}
@media screen and (max-width: 600px) {
  .topbar.cf-navigation-ready { min-height: 76px; gap: 9px; padding: 12px max(14px, env(safe-area-inset-right)) 12px max(14px, env(safe-area-inset-left)); }
  .cf-navigation-ready .brand { gap: 8px; }
  .cf-navigation-ready .brand strong { font-size: 15px; }
  .cf-navigation-ready .brand small { display: none; }
  .cf-navigation-ready .brandmark { width: 36px; height: 36px; font-size: 22px; border-radius: 12px; }
  .cf-navigation-ready .prototype { display: none; }
  .cf-nav-actions { flex: 1 1 auto; justify-content: flex-end; }
  .cf-nav-package { min-height: 44px; padding: 5px 8px; max-width: 180px; border-radius: 10px; gap: 0; }
  .cf-nav-package-icon { display: none; }
  .cf-nav-package small { font-size: 9px; }
  .cf-nav-package strong { font-size: 11px; line-height: 1.7; }
  .cf-nav-toggle { width: 44px; flex-basis: 44px; }
}
@media screen and (max-width: 374px) {
  .cf-navigation-ready .brand strong { display: none; }
  .cf-nav-package { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .cf-nav-link, .cf-nav-link::after, .cf-nav-drawer[open] { transition: none; animation: none; }
}
@media print {
  .topbar.cf-navigation-ready, .cf-nav-drawer { display: none !important; }
}
