.dualevcal{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;font-family:inherit}
.dualevcal__views{display:flex;gap:8px;padding:10px 14px;background:#fff;border-bottom:1px solid #e5e7eb}
.dualevcal__viewbtn{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid #e5e7eb;border-radius:999px;text-decoration:none;font-size:12px}
.dualevcal__viewbtn.is-active{background:#111827;color:#fff;border-color:#111827}
.dualevcal__header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#fafafa;border-bottom:1px solid #e5e7eb}
.dualevcal__title{font-weight:600}
.dualevcal__nav{display:flex;gap:8px}
.dualevcal__navbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #e5e7eb;border-radius:10px;text-decoration:none}
.dualevcal__navbtn.dualevcal__ics{width:auto;padding:0 10px;font-size:12px}
.dualevcal__navbtn.dualevcal__sub{width:auto;padding:0 10px;font-size:12px}
.dualevcal__catfilter{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;border-bottom:1px solid #e5e7eb}
.dualevcal__catlabel{font-size:12px;opacity:0.85}
.dualevcal__catselect{font-size:12px;border:1px solid #e5e7eb;border-radius:10px;padding:6px 10px;background:#fff}
.dualevcal__grid{display:grid;grid-template-columns:repeat(7,1fr)}
.dualevcal__dow{padding:10px 8px;font-size:12px;font-weight:600;background:#fcfcfc;border-bottom:1px solid #e5e7eb;border-right:1px solid #f0f0f0}
.dualevcal__dow:nth-child(7){border-right:none}
.dualevcal__cell{position:relative;min-height:92px;padding:10px 10px 12px;border-bottom:1px solid #f0f0f0;border-right:1px solid #f0f0f0}
.dualevcal__cell:nth-child(7n){border-right:none}
.dualevcal__cell.is-outside{background:#fbfbfb;opacity:0.75}
.dualevcal__cell.is-today{outline:2px solid #111827;outline-offset:-2px}
.dualevcal__date{font-size:16px;font-weight:700}
.dualevcal__lunar{margin-top:2px;font-size:12px;opacity:0.85}
.dualevcal__dots{margin-top:6px;display:flex;align-items:center;gap:6px}
.dualevcal__dot{display:inline-block;width:8px;height:8px;border-radius:999px;background:#666}
.dualevcal__dotmore{font-size:11px;opacity:0.75}
.dualevcal__badge{position:absolute;top:8px;right:8px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#111827;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}
.dualevcal__events{margin-top:8px;display:flex;flex-direction:column;gap:4px;font-size:12px}
.dualevcal__event{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dualevcal__eventtime{opacity:0.8}
.dualevcal__eventtitle{text-decoration:none}
.dualevcal__eventics{margin-left:6px;font-size:11px;text-decoration:none;opacity:0.8}

.dualevcal__week{display:flex;flex-direction:column}
.dualevcal__weekday{padding:12px 14px;border-bottom:1px solid #f0f0f0}
.dualevcal__weekhead{font-weight:600;margin-bottom:8px}
.dualevcal__weeklunar{font-weight:400;opacity:0.75}
.dualevcal__eventslist{display:flex;flex-direction:column;gap:6px}
.dualevcal__eventrow{display:flex;align-items:center;gap:8px;font-size:13px}

.dualevcal__list{display:flex;flex-direction:column}
.dualevcal__listrow{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #f0f0f0}
.dualevcal__listdate{font-variant-numeric:tabular-nums;min-width:92px;opacity:0.9}
.dualevcal__empty{padding:14px;opacity:0.75}

/* Subscription block */
.dualevcal-sub{border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;background:#fff}
.dualevcal-sub__row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.dualevcal-sub__label{font-size:12px;opacity:0.85}
.dualevcal-sub__select{font-size:12px;border:1px solid #e5e7eb;border-radius:10px;padding:6px 10px;background:#fff}
.dualevcal-sub__buttons{display:flex;flex-wrap:wrap;gap:8px}
.dualevcal-sub__btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border:1px solid #e5e7eb;border-radius:10px;text-decoration:none;font-size:12px}
.dualevcal-sub__hint{margin-top:10px;font-size:12px;opacity:0.85}
.dualevcal-sub__code{font-size:12px}
@media (max-width: 640px){
  .dualevcal__cell{min-height:78px;padding:8px}
  .dualevcal__events{display:none}
  .dualevcal__listrow{flex-wrap:wrap;gap:8px}
}

/* Lunar holiday highlighting (configurable) */
.dualevcal[data-feststyle="border"] .dualevcal__cell.is-lunar-festival{outline:2px solid currentColor;outline-offset:-2px}
.dualevcal[data-feststyle="badge"] .dualevcal__cell.is-lunar-festival::after{content:"";position:absolute;bottom:10px;left:10px;width:10px;height:10px;border-radius:999px;background:currentColor;opacity:0.9}
.dualevcal__cell.is-lunar-1{color:#b45309}
.dualevcal__cell.is-lunar-15{color:#92400e}

/* Day accent styling (category-driven) */
.dualevcal[data-daystyle="border"] .dualevcal__cell.has-accent{border-top:3px solid rgba(var(--dualevcal-accent-rgb, 17,24,39),1)}
.dualevcal[data-daystyle="background"] .dualevcal__cell.has-accent{background:rgba(var(--dualevcal-accent-rgb, 17,24,39),0.08)}
.dualevcal[data-daystyle="both"] .dualevcal__cell.has-accent{border-top:3px solid rgba(var(--dualevcal-accent-rgb, 17,24,39),1);background:rgba(var(--dualevcal-accent-rgb, 17,24,39),0.08)}

.dualevcal[data-daystyle="border"] .dualevcal__weekday.has-accent,
.dualevcal[data-daystyle="border"] .dualevcal__listrow.has-accent{border-left:4px solid rgba(var(--dualevcal-accent-rgb, 17,24,39),1)}
.dualevcal[data-daystyle="background"] .dualevcal__weekday.has-accent,
.dualevcal[data-daystyle="background"] .dualevcal__listrow.has-accent{background:rgba(var(--dualevcal-accent-rgb, 17,24,39),0.08)}
.dualevcal[data-daystyle="both"] .dualevcal__weekday.has-accent,
.dualevcal[data-daystyle="both"] .dualevcal__listrow.has-accent{border-left:4px solid rgba(var(--dualevcal-accent-rgb, 17,24,39),1);background:rgba(var(--dualevcal-accent-rgb, 17,24,39),0.08)}
