/* Open beta navigation + contact card */
.sb-nav-item.is-experimental{
  background:rgba(239,246,250,.54);
  border:1px dashed rgba(64,145,166,.3);
}
.sb-nav-item.is-experimental:hover{color:var(--t);background:rgba(225,243,248,.9)}
.sb-nav-status{
  margin-left:auto;
  padding:3px 7px;
  border-radius:999px;
  color:#33566e;
  background:#e7f2f8;
  font-size:10px;
  line-height:1;
  letter-spacing:0;
  white-space:nowrap;
}
.sb-progress-status{justify-content:space-between}
.sb-progress-state{display:flex;align-items:center;gap:7px}
.sb-progress-state>i{width:7px;height:7px;border-radius:50%;background:#43b99c;box-shadow:0 0 0 4px rgba(67,185,156,.12)}
.sb-progress-streak{color:#567383;font-size:10px;white-space:nowrap}
.sb-progress-streak b{margin:0 2px;color:#a06a10;font:700 14px Georgia,serif}
.sb-footer-contact{
  display:grid;
  gap:6px;
  padding:4px 7px 8px;
}
.sb-footer-contact>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.sb-footer-contact span{color:#5d7482;font-size:10px;white-space:nowrap}
.sb-footer-contact button,.sb-footer-contact a{
  min-width:0;
  padding:0;
  overflow:hidden;
  border:0;
  background:none;
  color:#2f7898;
  font:600 11px/1.4 inherit;
  text-decoration:none;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:pointer;
}
.sb-footer-contact button:hover,.sb-footer-contact a:hover{color:#126b91;text-decoration:underline}
.sb-contact-copy{display:grid!important;justify-content:stretch!important;gap:2px!important}
.sb-contact-copy b{color:#365f70;font-size:11px}
.sb-contact-copy p{color:#5d7482;font-size:9px;line-height:1.45}
.sb-contact-qr{
  display:block;
  width:96px;
  height:96px;
  margin:2px auto 4px;
  border:5px solid #fff;
  border-radius:10px;
  object-fit:cover;
  box-shadow:0 5px 16px rgba(32,82,102,.13);
}
.sb-footer-contact>small{margin-top:-3px;color:#5d7482;font-size:8px;text-align:right}

/* 常见 768px 高桌面优先展示完整备考主线；联系卡在更高窗口和移动菜单中保留。 */
@media (min-width:769px) and (max-height:820px){
  .sb-footer-contact{display:none}
  .sb-progress{display:none}
  .sb-footer{padding-block:6px}
  .sb-nav{padding-block:4px}
  .sb-nav-item{padding-block:8px}
  .sb-nav-group{padding-top:7px;margin-top:1px}
}

/* A real compact state: icon rail, not just a rotated arrow. */
html .sidebar:not(.expanded){width:72px}
.sidebar:not(.expanded)~.workspace-bar{left:72px}
.sidebar:not(.expanded)~main,
.sidebar:not(.expanded)~main.map-full{margin-left:72px}
.sidebar:not(.expanded) .sb-brand{padding-inline:16px}
.sidebar:not(.expanded) .sb-brand-name,
.sidebar:not(.expanded) .sb-progress,
.sidebar:not(.expanded) .sb-nav-group,
.sidebar:not(.expanded) .sb-nav-name,
.sidebar:not(.expanded) .sb-nav-status,
.sidebar:not(.expanded) .sb-footer-contact{display:none}
.sidebar:not(.expanded) .sb-nav{padding-inline:10px}
.sidebar:not(.expanded) .sb-nav-item{justify-content:center;padding-inline:0}
.sidebar:not(.expanded) .sb-toggle{padding-inline:0;font-size:0}
.sidebar:not(.expanded) .sb-toggle::after{content:""}
.sidebar:not(.expanded) .sb-footer{padding-inline:10px}

@media(max-width:768px){
  html .sidebar:not(.expanded){width:240px}
  .sidebar:not(.expanded) .sb-brand-name,
  .sidebar:not(.expanded) .sb-progress,
  .sidebar:not(.expanded) .sb-nav-group,
  .sidebar:not(.expanded) .sb-nav-name,
  .sidebar:not(.expanded) .sb-nav-status,
  .sidebar:not(.expanded) .sb-footer-contact{display:initial}
  .sidebar:not(.expanded)~.workspace-bar{left:0}
  .sidebar:not(.expanded)~main,
  .sidebar:not(.expanded)~main.map-full{margin-left:0}
  #jx-sync-indicator{bottom:calc(66px + env(safe-area-inset-bottom,0px))!important;max-width:calc(100vw - 24px)}
}
.availability-toast{
  position:fixed;
  left:50%;
  bottom:28px;
  z-index:1000;
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:240px;
  max-width:calc(100vw - 32px);
  padding:13px 16px;
  border:1px solid #c9e0ec;
  border-radius:12px;
  background:rgba(248,253,255,.97);
  box-shadow:0 12px 30px rgba(24,74,99,.18);
  color:#28566d;
  transform:translate(-50%,16px);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease,transform .2s ease;
}
.availability-toast.show{opacity:1;transform:translate(-50%,0)}
.availability-toast strong{font-size:14px;color:#176a8c}
.availability-toast span{font-size:12px;color:#668496}
