.cal{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
  .cal .dow{ font-size:11px; color:#5b6673; text-align:center; font-weight:700; padding-bottom:2px; }
  .cal .cell{ border:1px solid var(--line); border-radius:8px; min-height:50px; padding:6px 7px; cursor:pointer; background:#fff; position:relative; }
  .cal .cell:hover{ border-color:var(--blue); background:#f5f9fe; }
  .cal .cell.empty{ visibility:hidden; border:0; }
  .cal .cell.we{ background:#fafbfc; }
  .cal .cell.today{ box-shadow:0 0 0 2px var(--blue) inset; }
  .cal .cell.sel{ background:#eaf2fc; border-color:var(--blue); }
  .cal .cell.has{ border-color:var(--ok); }
  .cal .cell .dnum{ font-size:12px; font-weight:700; color:#333; }
  .cal .cell.has .dnum{ color:var(--ok); }
  .editor{ margin-top:12px; border:1px solid var(--line); border-radius:8px; padding:12px 14px; background:#f7fafd; }
  .ed-head{ font-size:13px; margin-bottom:8px; color:var(--blue-d); }
