/* ── Year Grid — 4×3 professional layout ── */
    .pcal-year-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 8px;
      margin-top: 8px;
    }

    @media(max-width:1200px) {
      .pcal-year-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    @media(max-width:860px) {
      .pcal-year-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media(max-width:560px) {
      .pcal-year-grid {
        grid-template-columns: 1fr;
      }
    }

    .pcal-month-card {
      border-radius: 10px;
      overflow: hidden;
      border: 1px solid rgba(30, 58, 100, .7);
      background: rgba(5, 12, 28, .95);
      box-shadow: 0 2px 12px rgba(0, 0, 0, .35);
    }

    .pcal-month-card-hdr {
      padding: 7px 10px 6px;
      background: linear-gradient(90deg, #0d2b55, #0a1e42);
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-bottom: 1px solid rgba(30, 60, 110, .6);
    }

    .pcal-month-card-hdr .mhdr-name {
      font-size: 12px;
      font-weight: 800;
      color: #f0f8ff;
      letter-spacing: .2px;
      font-family: 'DM Sans', sans-serif;
    }

    .pcal-month-card-hdr .mhdr-stats {
      font-size: 9px;
      font-weight: 700;
      color: #60a5fa;
    }

    .pcal-month-dow {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      background: rgba(10, 28, 60, .7);
    }

    .pcal-month-dow span {
      text-align: center;
      font-size: 9px;
      font-weight: 700;
      color: #4a7090;
      padding: 4px 1px;
      font-family: 'DM Sans', sans-serif;
    }

    .pcal-month-dow span.dow-off {
      color: #2a3d52;
    }

    .pcal-month-days {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      grid-auto-rows: 28px;
    }

    .pcal-mday {
      text-align: center;
      font-size: 11px;
      font-weight: 600;
      line-height: 28px;
      height: 28px;
      cursor: pointer;
      transition: all .12s;
      position: relative;
      font-family: 'DM Sans', sans-serif;
    }

    .pcal-mday.work {
      color: #c8e8d0;
      background: rgba(14, 77, 50, .45);
    }

    .pcal-mday.work:hover {
      background: rgba(16, 100, 60, .7);
      color: #fff;
    }

    .pcal-mday.off {
      color: #2e4460;
      background: rgba(20, 32, 55, .5);
    }

    .pcal-mday.off:hover {
      background: rgba(30, 48, 80, .6);
      color: #4a6890;
    }

    .pcal-mday.holiday {
      background: rgba(140, 80, 0, .55);
      color: #fbbf24;
      font-weight: 800;
      position: relative;
    }

    .pcal-mday.holiday::after {
      content: attr(data-desc);
      position: absolute;
      bottom: 1px;
      left: 0;
      right: 0;
      font-size: 6px;
      line-height: 1;
      color: #fcd34d;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      padding: 0 2px;
    }

    .pcal-mday.holiday:hover {
      background: rgba(180, 100, 0, .65);
    }

    .pcal-mday.today-d {
      background: linear-gradient(135deg, #1a56db, #0891b2) !important;
      color: #fff !important;
      font-weight: 800;
      border-radius: 50%;
      width: 26px;
      height: 26px;
      line-height: 26px;
      margin: 1px auto;
      display: block;
    }

    .pcal-mday.empty {
      visibility: hidden;
      pointer-events: none;
      cursor: default;
    }
