  .bk-steps { display:flex; gap:0; margin:14px 0 18px; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:#fff; }
  .bk-step { flex:1; text-align:center; font-size:12px; font-weight:700; color:var(--muted); padding:9px 4px; border-left:1px solid var(--line); }
  .bk-step:first-child { border-left:none; }
  .bk-step.on { background:var(--tint); color:var(--orange-dark); }
  .calbox { background:#fff; border:1px solid var(--line); border-radius:4px; padding:16px 14px 20px; box-shadow:0 1px 4px rgba(20,30,50,.05); }
  .calhead { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; margin-bottom:10px; }
  .calhead .mon { grid-column:2; font-size:16px; font-weight:800; color:var(--ink); text-align:center; }
  .calhead .tz { grid-column:3; justify-self:end; font-size:11px; font-weight:600; color:var(--ink-2); }
  .calnav { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
  .navbtn { background:#fff; border:1px solid var(--line); border-radius:4px; padding:8px 16px; font-size:12px; font-weight:700; color:var(--ink-2); cursor:pointer; touch-action:manipulation; user-select:none; }
  .navbtn:hover { text-decoration:none; border-color:var(--orange); color:var(--orange-dark); background:var(--tint); }
  .navbtn:active { transform:scale(.97); }
  .navbtn.off { opacity:.4; cursor:not-allowed; }
  @media (max-width:640px){ .navbtn { padding:12px 20px; font-size:13px; min-height:44px; display:inline-flex; align-items:center; } }
  .calscroll { overflow-x:auto; }
  .cgrid { display:grid; min-width:640px; }
  .gh { text-align:center; font-size:12px; font-weight:700; color:var(--ink); padding:6px 2px; }
  .gh b { font-size:14px; font-weight:800; margin-right:3px; }
  .ax { position:relative; font-size:11px; font-weight:700; color:var(--ink-2); }
  .ax span { position:absolute; top:-7px; right:6px; }
  .cell { background:#fff; border-bottom:1px dashed var(--line); border-right:1px solid var(--line); height:50px; padding:2px; }
  .blk { display:flex; align-items:flex-start; width:100%; height:100%; background:var(--orange); color:#fff; border-radius:3px; font-size:11.5px; font-weight:700; padding:5px 7px; }
  .blk:hover { background:var(--orange-dark); text-decoration:none; }
  .tl-note { font-size:11px; color:var(--muted); margin-top:12px; line-height:1.7; }
  .skel-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; padding:8px 2px; }
  .skel-blk { height:44px; border-radius:4px; background:linear-gradient(90deg,#eef0f3 25%,#f7f8fa 50%,#eef0f3 75%); background-size:200% 100%; animation:skel 1.1s ease-in-out infinite; }
  @keyframes skel { 0%{background-position:150% 0} 100%{background-position:-50% 0} }
