
  .cal-sheet{position:fixed; inset:0; z-index:10; background:rgba(43,43,43,.22);
    display:flex; flex-direction:column; justify-content:flex-end;}
  .cal-sheet[hidden]{display:none;}
  .cal-panel{width:100%; max-width:430px; margin:0 auto; background:var(--mat); border-radius:20px 20px 0 0;
    height:calc(486px + env(safe-area-inset-bottom)); padding:12px 0 calc(20px + env(safe-area-inset-bottom));
    box-shadow:0 -4px 24px rgba(43,43,43,.10);}
  .cal-bar{display:flex; justify-content:flex-end; height:44px; padding:0 8px;}
  .cal-close, .cal-arw{width:44px; height:44px; padding:0; border:0; background:transparent; cursor:pointer;
    display:flex; align-items:center; justify-content:center;}
  .cal-close{color:var(--ink-sub);}
  .cal-close svg{width:18px; height:18px;}
  .cal-arw{color:var(--ink);}
  .cal-arw:disabled{color:var(--line); cursor:default;}
  .cal-arw svg{width:26px; height:26px;}
  .cal-head{display:flex; align-items:center; justify-content:space-between; padding:0 12px; margin-top:-8px;}
  .cal-title{font-family:var(--serif); font-size:var(--fs-title); letter-spacing:.05em; color:var(--ink);}
  .cal-week, .cal-grid{display:grid; grid-template-columns:repeat(7, 1fr); padding:0 16px;}
  .cal-week{padding-top:8px;}
  .cal-week span{height:32px; display:flex; align-items:center; justify-content:center;
    font-family:var(--serif); font-size:var(--fs-note); letter-spacing:.08em; color:var(--ink-sub);}
  .cal-grid{row-gap:2px;}
  .cal-cell{min-height:54px; padding:0; border:0; background:transparent; font:inherit;
    display:flex; flex-direction:column; align-items:center; gap:5px;}
  button.cal-cell{cursor:pointer;}
  .cal-cell .num{position:relative; width:36px; height:36px; line-height:36px; text-align:center;
    font-family:var(--serif); font-size:var(--fs-body); color:var(--ink); font-variant-numeric:tabular-nums;}
  .cal-cell:disabled{cursor:default;}
  .cal-cell:disabled .num{color:rgba(108,106,98,.45);}
  .cal-cell.sel .num{color:var(--paper);}
  .cal-cell .num::before{content:""; position:absolute; inset:0; border-radius:50%; z-index:-1;
    transform:translateY(var(--drop, 0px));}
  .cal-cell.sel .num::before{background:var(--ink);}
  .cal-cell .num{isolation:isolate;}
  .cal-cell .mark{width:4px; height:4px; border-radius:50%;}
  .cal-cell.has .mark{background:var(--ink-sub);}
  .cal-cell:focus-visible{outline:none;}
  .cal-cell:focus-visible .num::before{box-shadow:0 0 0 2px var(--ink);}
