/*
 * Hammelk Calendar Professional v16
 * White-first, calm accent design inspired by mature consumer apps:
 * strong hierarchy, restrained colour, calendar-native layouts and mobile-first week navigation.
 * Loaded last and intentionally overrides older calendar layers.
 */
:root{
  --cal16-bg:#ffffff;
  --cal16-surface:#ffffff;
  --cal16-soft:#f7f9fc;
  --cal16-line:#e3e9f1;
  --cal16-line-strong:#d6dfeb;
  --cal16-text:#26384f;
  --cal16-muted:#758399;
  --cal16-accent:#5f7fd1;
  --cal16-accent-soft:#eef3ff;
  --cal16-occasion:#c9a45c;
  --cal16-period:#70afd4;
  --cal16-event:#8a77cf;
  --cal16-danger:#cf7479;
  --cal16-shadow:0 10px 30px rgba(31,47,70,.055);
}

/* ---------- Shared calendar surfaces ---------- */
#main-content .professional-calendar .calendar-view-shell,
#main-content .professional-calendar .calendar-board{
  background:var(--cal16-surface)!important;
  border:1px solid var(--cal16-line)!important;
  border-radius:20px!important;
  box-shadow:var(--cal16-shadow)!important;
  overflow:hidden!important;
}
#main-content .professional-calendar .cal16-view-heading{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:18px!important;
  padding:17px 20px!important;
  border-bottom:1px solid var(--cal16-line)!important;
  background:#fff!important;
}
#main-content .professional-calendar .cal16-view-heading h2{
  margin:3px 0 0!important;
  color:var(--cal16-text)!important;
  font-size:1.18rem!important;
  font-weight:900!important;
}
#main-content .professional-calendar .cal16-view-heading>small{
  color:var(--cal16-muted)!important;
  font-weight:700!important;
  line-height:1.8!important;
}

/* neutralize the legacy global button fill for calendar content controls */
#main-content .professional-calendar button.cal16-week-column-head,
#main-content .professional-calendar button.cal16-week-tab,
#main-content .professional-calendar button.cal16-detail-action,
#main-content .professional-calendar button.cal16-more-button,
#main-content .professional-calendar button.cal16-rolling-day,
#main-content .professional-calendar button.cal16-agenda-date{
  background:#fff!important;
  color:var(--cal16-text)!important;
  border-color:var(--cal16-line)!important;
  box-shadow:none!important;
}

/* ---------- Month: keep it recognisably calendar-like ---------- */
#main-content .professional-calendar .calendar-week-head{
  background:#f8fafc!important;
  border-bottom:1px solid var(--cal16-line)!important;
}
#main-content .professional-calendar .calendar-grid{
  background:var(--cal16-line)!important;
  gap:1px!important;
}
#main-content .professional-calendar .calendar-grid button.calendar-day{
  background:#fff!important;
  color:var(--cal16-text)!important;
  border:0!important;
  box-shadow:none!important;
}
#main-content .professional-calendar .calendar-grid button.calendar-day:hover{background:#fafcff!important}
#main-content .professional-calendar .calendar-grid button.calendar-day.today{background:#f8faff!important;box-shadow:inset 0 0 0 2px #b9c8ed!important}
#main-content .professional-calendar .calendar-grid button.calendar-day.holiday{background:#fffafa!important}

/* ---------- Week desktop: seven real calendar columns ---------- */
.cal16-week-desktop{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  background:var(--cal16-line);
  gap:1px;
}
.cal16-week-column{
  min-width:0;
  min-height:340px;
  background:#fff;
  display:flex;
  flex-direction:column;
}
.cal16-week-column.today{box-shadow:inset 0 3px 0 var(--cal16-accent)}
.cal16-week-column.holiday{background:#fffafa}
#main-content .professional-calendar .cal16-week-column-head{
  width:100%!important;
  min-height:92px!important;
  padding:12px 8px!important;
  border:0!important;
  border-bottom:1px solid #edf1f5!important;
  border-radius:0!important;
  display:grid!important;
  justify-items:center!important;
  align-content:center!important;
  gap:1px!important;
  cursor:pointer!important;
  transition:background .15s ease!important;
}
#main-content .professional-calendar .cal16-week-column-head:hover{background:#f9fbff!important}
.cal16-week-column-head small{font-size:.78rem!important;color:#6e7d91!important;font-weight:850!important}
.cal16-week-column-head strong{font-size:1.5rem!important;line-height:1.15;color:#26384f}
.cal16-week-column-head span{font-size:.78rem!important;color:#8a97a7!important}
.cal16-week-column-body{display:grid;align-content:start;gap:7px;padding:10px}
.cal16-entry{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:2px 8px;
  align-items:start;
  padding:9px 10px;
  border:1px solid #e8edf3;
  border-radius:11px;
  background:#fff;
}
.cal16-entry>i{
  grid-row:1/3;
  width:7px;height:7px;border-radius:50%;margin-top:7px;
  background:#aab4c0;
}
.cal16-entry>span{display:grid;gap:2px;min-width:0}
.cal16-entry b{font-size:.82rem!important;line-height:1.65;color:#33455d;white-space:normal}
.cal16-entry small{font-size:.73rem!important;line-height:1.6;color:#8793a2!important;font-weight:700!important}
.cal16-entry.occasion>i{background:var(--cal16-occasion)}
.cal16-entry.period>i{background:var(--cal16-period)}
.cal16-entry.event>i{background:var(--cal16-event)}
.cal16-empty-day{padding:24px 6px;text-align:center;color:#a0aab7;font-size:.78rem!important;font-weight:700}
#main-content .professional-calendar .cal16-more-button{
  width:100%!important;min-height:34px!important;padding:7px!important;border:1px dashed #dbe3ed!important;border-radius:9px!important;
  color:#68788d!important;font-size:.74rem!important;font-weight:800!important;
}
.cal16-week-mobile{display:none}

/* ---------- Day: quiet vertical timeline ---------- */
.cal16-day-heading{align-items:center!important}
.cal16-day-metrics{display:flex;flex-wrap:wrap;gap:8px}
.cal16-day-metrics span{
  display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 10px;
  border:1px solid var(--cal16-line);border-radius:999px;background:#fff;
  color:#68788d;font-size:.76rem!important;font-weight:800;
}
.cal16-day-metrics i,.cal16-rolling-dots i{width:7px;height:7px;border-radius:50%;display:inline-block}
.cal16-day-metrics i.occasion,.cal16-rolling-dots i.occasion{background:var(--cal16-occasion)}
.cal16-day-metrics i.period,.cal16-rolling-dots i.period{background:var(--cal16-period)}
.cal16-day-metrics i.event,.cal16-rolling-dots i.event{background:var(--cal16-event)}
.cal16-day-timeline{position:relative;padding:18px 22px 24px;background:#fff}
.cal16-day-timeline:before{content:"";position:absolute;right:38px;top:28px;bottom:28px;width:1px;background:#e5ebf2}
.cal16-timeline-row{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:10px 0}
.cal16-timeline-mark{position:relative;z-index:1;display:grid;place-items:center}
.cal16-timeline-mark:before{content:"";width:17px;height:17px;border-radius:50%;background:#fff;border:1px solid #dfe6ef;box-shadow:0 0 0 5px #fff}
.cal16-timeline-mark i{position:absolute;width:7px;height:7px;border-radius:50%;background:#aab4c0}
.cal16-timeline-row.occasion .cal16-timeline-mark i{background:var(--cal16-occasion)}
.cal16-timeline-row.period .cal16-timeline-mark i{background:var(--cal16-period)}
.cal16-timeline-row.event .cal16-timeline-mark i{background:var(--cal16-event)}
.cal16-timeline-row>div{padding:10px 13px;border:1px solid #e8edf3;border-radius:13px;background:#fff}
.cal16-timeline-row>div>small{display:block;margin-bottom:3px;color:#8b97a6!important;font-size:.72rem!important;font-weight:800!important}
.cal16-timeline-row>div>b{display:block;color:#304159;font-size:.9rem!important;line-height:1.75}
.cal16-timeline-row>div>p{margin:3px 0 0;color:#76859a;font-size:.78rem!important;line-height:1.7;font-weight:700}
.cal16-day-empty{margin:8px 0;padding:34px 18px;text-align:center;border:1px dashed #dce4ed;border-radius:14px;background:#fbfcfe;color:#7d8a9c}
.cal16-day-empty b{display:block;color:#53647a;margin-bottom:5px}.cal16-day-empty span{font-size:.8rem!important}

/* ---------- Rolling 30-day calendar ---------- */
.cal16-rolling-week-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#f8fafc;border-bottom:1px solid var(--cal16-line)}
.cal16-rolling-week-head span{padding:10px 4px;text-align:center;color:#758399;font-size:.76rem!important;font-weight:850}
.cal16-rolling-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--cal16-line)}
.cal16-rolling-empty{min-height:118px;background:#fafbfd}
#main-content .professional-calendar .cal16-rolling-day{
  position:relative!important;min-width:0!important;min-height:118px!important;padding:10px!important;border:0!important;border-radius:0!important;
  display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:8px!important;text-align:right!important;
  cursor:pointer!important;transition:background .14s ease!important;
}
#main-content .professional-calendar .cal16-rolling-day:hover{background:#fafcff!important}
#main-content .professional-calendar .cal16-rolling-day.today{background:#f8faff!important;box-shadow:inset 0 0 0 2px #b9c8ed!important}
#main-content .professional-calendar .cal16-rolling-day.holiday{background:#fffafa!important}
.cal16-rolling-top{display:flex;align-items:baseline;gap:5px}
.cal16-rolling-top b{font-size:1rem!important;color:#2f4058}.cal16-rolling-top small{font-size:.68rem!important;color:#8b98a7!important;font-weight:750}
.cal16-rolling-preview{min-height:34px}.cal16-rolling-preview em{font-style:normal;color:#596a80;font-size:.75rem!important;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cal16-rolling-preview em.free{color:#a0aab7}
.cal16-rolling-dots{margin-top:auto;display:flex;align-items:center;gap:4px;min-height:12px}.cal16-rolling-dots small{margin-right:auto;color:#7e8b9c!important;font-size:.67rem!important;font-weight:900}

/* ---------- Agenda ---------- */
.cal16-agenda-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;background:#fafbfd}
.cal16-agenda-day{display:grid;grid-template-columns:78px minmax(0,1fr);border:1px solid #e3e9f1;border-radius:14px;background:#fff;overflow:hidden;min-width:0}
.cal16-agenda-day.holiday{border-right:3px solid #e0a0a4}
#main-content .professional-calendar .cal16-agenda-date{
  min-height:100%!important;padding:12px 8px!important;border:0!important;border-left:1px solid #edf1f5!important;border-radius:0!important;background:#f9fafc!important;
  display:grid!important;place-items:center!important;align-content:center!important;gap:2px!important;cursor:pointer!important;
}
.cal16-agenda-date strong{font-size:1.35rem!important;color:#304159}.cal16-agenda-date span{font-size:.76rem!important;color:#5f6f83}.cal16-agenda-date small{font-size:.7rem!important;color:#8b98a7!important}
.cal16-agenda-records{display:grid;align-content:start;gap:6px;padding:9px}
.cal16-agenda-records .cal16-entry{padding:7px 8px;border-radius:9px}

/* ---------- Mobile-first professional week ---------- */
@media(max-width:900px){
  #main-content .professional-calendar .calendar-view-shell{border-radius:18px!important;margin-bottom:calc(94px + env(safe-area-inset-bottom))!important}
  #main-content .professional-calendar .cal16-view-heading{padding:14px 15px!important;display:grid!important;gap:4px!important}
  #main-content .professional-calendar .cal16-view-heading>small{font-size:.78rem!important}
  .cal16-week-desktop{display:none!important}
  .cal16-week-mobile{display:block!important;background:#fff}
  .cal16-week-strip{
    display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:10px;
    border-bottom:1px solid var(--cal16-line);background:#fff;
  }
  #main-content .professional-calendar .cal16-week-tab{
    position:relative!important;min-width:0!important;min-height:62px!important;padding:6px 2px!important;border:1px solid transparent!important;border-radius:12px!important;
    display:grid!important;place-items:center!important;align-content:center!important;gap:1px!important;cursor:pointer!important;
  }
  #main-content .professional-calendar .cal16-week-tab small{font-size:.75rem!important;color:#8390a1!important;font-weight:850!important}
  #main-content .professional-calendar .cal16-week-tab strong{font-size:1rem!important;color:#34465d!important;line-height:1.2}
  #main-content .professional-calendar .cal16-week-tab>i{position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;background:var(--cal16-occasion)}
  #main-content .professional-calendar .cal16-week-tab.is-active{background:var(--cal16-accent-soft)!important;border-color:#d7e1fb!important;color:#3456ad!important}
  #main-content .professional-calendar .cal16-week-tab.is-active strong{color:#3456ad!important}
  #main-content .professional-calendar .cal16-week-tab.today:not(.is-active){border-color:#dce4ef!important;background:#fbfcff!important}
  #main-content .professional-calendar .cal16-week-tab.holiday small{color:#b46b70!important}
  .cal16-week-panels{padding:0 12px 14px}
  .cal16-week-panel{padding-top:12px}
  .cal16-week-panel[hidden]{display:none!important}
  .cal16-mobile-day-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px 12px}
  .cal16-mobile-day-head>div{display:grid;gap:2px}.cal16-mobile-day-head b{font-size:.98rem;color:#2f4058}.cal16-mobile-day-head small{font-size:.75rem!important;color:#8794a5!important;font-weight:750}
  #main-content .professional-calendar .cal16-detail-action{min-height:36px!important;padding:7px 10px!important;border:1px solid #dfe6ef!important;border-radius:10px!important;color:#52637a!important;font-size:.76rem!important;font-weight:850!important}
  .cal16-mobile-agenda{display:grid;gap:8px}
  .cal16-mobile-agenda .cal16-entry{padding:11px 12px;border-radius:12px}
  .cal16-mobile-agenda .cal16-entry b{font-size:.9rem!important}
  .cal16-mobile-agenda .cal16-entry small{font-size:.78rem!important}
  .cal16-mobile-empty{padding:34px 15px;text-align:center;border:1px dashed #dce4ed;border-radius:14px;background:#fbfcfe;color:#8190a2}
  .cal16-mobile-empty b{display:block;color:#53647a;margin-bottom:4px}.cal16-mobile-empty span{font-size:.8rem!important}

  /* Day timeline remains one clean vertical stream on phone. */
  .cal16-day-heading{align-items:start!important}.cal16-day-metrics{margin-top:6px}.cal16-day-metrics span{font-size:.76rem!important}
  .cal16-day-timeline{padding:12px 14px 16px}.cal16-day-timeline:before{right:28px}.cal16-timeline-row{grid-template-columns:28px 1fr;gap:9px;padding:6px 0}.cal16-timeline-row>div{padding:11px 12px}.cal16-timeline-row>div>b{font-size:.92rem!important}.cal16-timeline-row>div>p{font-size:.78rem!important}

  /* 30-day stays calendar-like on mobile: seven equal columns, text collapses to status dots. */
  .cal16-rolling-week-head span{font-size:0!important;padding:8px 1px!important}.cal16-rolling-week-head span:after{font-size:.72rem!important;font-weight:900!important;color:#7b899b}
  .cal16-rolling-week-head span:nth-child(1):after{content:"ش"}.cal16-rolling-week-head span:nth-child(2):after{content:"ی"}.cal16-rolling-week-head span:nth-child(3):after{content:"د"}.cal16-rolling-week-head span:nth-child(4):after{content:"س"}.cal16-rolling-week-head span:nth-child(5):after{content:"چ"}.cal16-rolling-week-head span:nth-child(6):after{content:"پ"}.cal16-rolling-week-head span:nth-child(7):after{content:"ج"}
  .cal16-rolling-empty{min-height:70px}
  #main-content .professional-calendar .cal16-rolling-day{min-height:70px!important;aspect-ratio:1/1!important;padding:5px!important;gap:2px!important;justify-content:flex-start!important}
  .cal16-rolling-top{justify-content:center}.cal16-rolling-top b{font-size:.9rem!important}.cal16-rolling-top small{display:none!important}.cal16-rolling-preview{display:none!important}.cal16-rolling-dots{margin-top:auto!important;justify-content:center!important;gap:3px!important}.cal16-rolling-dots i{width:6px;height:6px}.cal16-rolling-dots small{margin:0!important;font-size:.58rem!important}

  /* Agenda becomes a single clean list. */
  .cal16-agenda-list{grid-template-columns:1fr;padding:10px;gap:8px}.cal16-agenda-day{grid-template-columns:68px minmax(0,1fr)}
  .cal16-agenda-records .cal16-entry b{font-size:.86rem!important}.cal16-agenda-records .cal16-entry small{font-size:.76rem!important}

  /* Month: force true compact seven-column cells despite older mobile layers. */
  #main-content .professional-calendar .calendar-board{overflow:hidden!important;width:100%!important}
  #main-content .professional-calendar .calendar-week-head,
  #main-content .professional-calendar .calendar-grid{min-width:0!important;width:100%!important;grid-template-columns:repeat(7,minmax(0,1fr))!important}
  #main-content .professional-calendar .calendar-grid button.calendar-day,
  #main-content .professional-calendar .calendar-grid .calendar-day.empty{
    min-width:0!important;min-height:0!important;height:auto!important;aspect-ratio:1/1!important;padding:4px!important;
  }
}

@media(max-width:420px){
  .cal16-week-strip{gap:3px;padding:9px 7px}
  #main-content .professional-calendar .cal16-week-tab{min-height:58px!important;border-radius:10px!important}
  #main-content .professional-calendar .cal16-week-tab small{font-size:.71rem!important}
  #main-content .professional-calendar .cal16-week-tab strong{font-size:.94rem!important}
  .cal16-week-panels{padding:0 9px 12px}
}
