
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Noto Sans Tamil',sans-serif;background:#f5f0e8;min-height:100vh}

/* ══ WRAPPER ══════════════════════════════════════════════════ */
#cal-wrap{max-width:1200px;margin:0 auto;padding:10px;background:#fff;box-shadow:0 4px 24px rgba(0,0,0,.15)}

/* ══ TOP BANNER ═══════════════════════════════════════════════ */
.cal-banner{background:linear-gradient(135deg,#1a237e 0%,#283593 40%,#0d47a1 100%);padding:0;position:relative;overflow:hidden}
.cal-banner::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.03) 10px,rgba(255,255,255,.03) 20px)}
.cal-banner-inner{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;flex-wrap:wrap;gap:6px;position:relative;z-index:1}
.cal-month-block{display:flex;flex-direction:column}
.cal-month-en{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,8vw,5rem);color:#FFF176;letter-spacing:.06em;line-height:.9;text-shadow:3px 3px 0 rgba(0,0,0,.3)}
.cal-month-ta{font-family:'Noto Sans Tamil',sans-serif;font-size:clamp(1rem,3vw,1.6rem);color:#90CAF9;margin-top:4px;letter-spacing:.02em}
.cal-year-block{text-align:right;display:flex;flex-direction:column;gap:4px}
.cal-year-name-ta{font-family:'Noto Sans Tamil',sans-serif;font-size:clamp(.8rem,2vw,1.1rem);color:#FFF9C4;line-height:1.5}
.cal-nav-row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.cal-yr-btn{background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.3);color:#FFF9C4;font-family:'Oswald',sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.08em;padding:5px 18px;border-radius:20px;cursor:pointer;transition:all .2s}
.cal-yr-btn:hover,.cal-yr-btn.on{background:rgba(255,241,118,.25);border-color:#FFF176;color:#fff}
.cal-prev-next{display:flex;gap:6px;align-items:center}
.cal-arrow{background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.25);color:#FFF176;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.cal-arrow:hover{background:rgba(255,255,255,.25);transform:scale(1.12)}
.cal-divider{height:5px;background:linear-gradient(90deg,#FFD600,#FF6F00,#FFD600)}

/* ══ WEEKDAY ROW ══════════════════════════════════════════════ */
.cal-wdrow{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-wd{background:#1B5E20;text-align:center;padding:7px 2px 5px;border-right:1px solid rgba(255,255,255,.15)}
.cal-wd:first-child{background:#B71C1C}.cal-wd:last-child{background:#1A237E}
.cal-wd-ta{font-family:'Noto Sans Tamil',sans-serif;font-size:clamp(.65rem,1.6vw,.95rem);font-weight:700;color:#fff;display:block;line-height:1.2}
.cal-wd-en{font-family:'Oswald',sans-serif;font-size:clamp(.5rem,1.1vw,.68rem);color:rgba(255,255,255,.7);display:block;letter-spacing:.06em}

/* ══ GRID ══════════════════════════════════════════════════ */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border-left:1.5px solid #C8A200;border-top:1.5px solid #C8A200;background:#C8A200;gap:1.5px}
.cal-day{background:#FFFEF5;border:none;min-height:clamp(98px,13vw,132px);padding:4px 5px 3px;cursor:pointer;position:relative;display:flex;flex-direction:column;transition:background .15s}
.cal-day:hover{background:#FFF9C4;z-index:2}
.cal-day.empty{background:#FBF8EC;cursor:default;pointer-events:none}
.cal-day.sun-day{background:#FFF8F8}
.cal-day.sat-day{background:#F8F8FF}
.cal-day.today{background:#FFFFF0;box-shadow:inset 0 0 0 2.5px #FF6F00;z-index:3}
.cal-day.has-major{background:linear-gradient(180deg,#FFFEF5 60%,#FFF9E0)}

/* ── top info area ──────────────────────────────────────── */
.cal-top{display:flex;justify-content:space-between;align-items:flex-start;gap:2px;min-height:28px}
.cal-tamdate{font-family:'Noto Sans Tamil',sans-serif;font-size:clamp(.48rem,1vw,.62rem);color:#5D4037;line-height:1.25;flex-shrink:0}
.cal-tamdate .tm{font-size:.85em;color:#795548}
.cal-nk{font-family:'Noto Sans Tamil',sans-serif;font-size:clamp(.45rem,.95vw,.6rem);color:#1565C0;text-align:right;line-height:1.25;flex-shrink:0;max-width:52%}

/* ── BIG DATE NUMBER ─────────────────────────────────────── */
.cal-num{font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,5.5vw,4rem);line-height:.95;text-align:center;color:#1A237E;margin:1px 0 0;flex-shrink:0}
.sun-day .cal-num{color:#C62828}
.sat-day .cal-num{color:#1565C0}
.today .cal-num{display:inline-flex;align-items:center;justify-content:center;background:#E65100;color:#fff;border-radius:50%;width:1.1em;height:1.1em;margin:2px auto 0}
.cal-day.holiday .cal-num{color:#B71C1C}

/* ── auspicious times ────────────────────────────────────── */
.cal-times{font-size:clamp(.37rem,.78vw,.52rem);color:#555;line-height:1.45;margin-top:1px}
.cal-times s{display:block;font-style:normal;text-decoration:none}
.rahu{color:#6A1B9A}.yama{color:#0D47A1}.kuli{color:#1B5E20}

/* ── festival label ────────────────────────────────────── */
.cal-fest-area{margin-top:auto;display:flex;flex-direction:column;gap:1px}
.cal-fest{font-family:'Noto Sans Tamil',sans-serif;font-size:clamp(.42rem,.9vw,.58rem);line-height:1.3;font-weight:700;padding:0 1px}
.fest-major{color:#B71C1C}.fest-temple{color:#880E4F}.fest-public{color:#1A237E}
.fest-auspicious{color:#1B5E20}.fest-pournami{color:#01579B}.fest-amavasai{color:#424242}
.fest-fast{color:#4A148C}

/* ── today ring ─────────────────────────────────────────── */
.today-ring{position:absolute;inset:0;border:3px solid #FF6F00;pointer-events:none;border-radius:2px}

/* ══ WEEK ROW ══════════════════════════════════════════════ */
.cal-weekrow{display:grid;grid-template-columns:repeat(7,1fr);background:#FFFDE7;border:1.5px solid #C8A200;border-top:none}
.cal-wk{text-align:center;font-size:.58rem;color:#8D6E63;border-right:1px solid #E0C060;padding:3px 2px}

/* ══ BOTTOM STRIP ══════════════════════════════════════════ */
.cal-bottom{display:grid;grid-template-columns:220px 1fr 220px;gap:10px;padding:10px 6px 8px;background:#FFFDE7;border:1.5px solid #C8A200;border-top:none;align-items:start}

/* mini cal */
.mini-cal{background:#fff;border:1px solid #C8A200;border-radius:4px;overflow:hidden}
.mini-hdr{background:#1565C0;color:#FFF9C4;text-align:center;padding:5px;font-family:'Oswald',sans-serif;font-size:.82rem;letter-spacing:.05em}
.mini-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.mini-wd{text-align:center;padding:2px 1px;font-size:.52rem;color:#1565C0;font-weight:700;background:#E3F2FD}
.mini-d{text-align:center;padding:3px 1px;font-size:.58rem;cursor:pointer;border-radius:2px}
.mini-d:hover{background:#FFF9C4}
.mini-d.ms{color:#C62828}.mini-d.ma{color:#1565C0}
.mini-d.mt{background:#E65100;color:#fff;border-radius:50%;font-weight:700}
.mini-d.mev{font-weight:700;color:#880E4F}

/* center block */
.cal-center-info{display:flex;flex-direction:column;gap:6px}
.cal-legend{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:center}
.leg-i{display:flex;align-items:center;gap:4px;font-size:.65rem;color:#555}
.leg-c{width:10px;height:10px;border-radius:2px;flex-shrink:0}
.cal-notes{background:#fff;border:1px solid #C8A200;border-radius:4px;padding:8px;min-height:60px}
.cal-notes-hdr{font-family:'Oswald',sans-serif;font-size:.78rem;color:#795548;letter-spacing:.08em;border-bottom:1px solid #E0C060;padding-bottom:3px;margin-bottom:4px}
.cal-notes-body{font-size:.7rem;color:#bbb;font-style:italic}

/* ══ MODAL ═══════════════════════════════════════════════════ */
.cal-modal{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(3px)}
.cal-modal.open{opacity:1;pointer-events:all}
.cal-modal-box{background:#fff;border-radius:12px;max-width:460px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.35);border-top:5px solid #1565C0}
.cal-mhdr{background:linear-gradient(135deg,#1A237E,#0D47A1);padding:14px 16px;position:sticky;top:0;z-index:1}
.cal-mhdr h3{font-family:'Oswald',sans-serif;font-size:1.3rem;color:#FFF176;letter-spacing:.04em;margin-bottom:2px}
.cal-mhdr p{font-family:'Noto Sans Tamil',sans-serif;font-size:.85rem;color:#90CAF9}
.cal-mclose{float:right;background:rgba(255,255,255,.15);border:none;color:#FFF9C4;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}
.cal-mbody{padding:14px}
.cal-mrow{display:flex;align-items:baseline;gap:6px;padding:5px 0;border-bottom:1px solid #f3f0e8;font-size:.85rem}
.cal-mrow:last-of-type{border:none}
.cal-mrow b{color:#1565C0;min-width:110px;flex-shrink:0;font-family:'Oswald',sans-serif;font-size:.78rem;letter-spacing:.05em;font-weight:600}
.cal-mev-hdr{font-family:'Oswald',sans-serif;font-size:.75rem;letter-spacing:.1em;color:#888;border-bottom:1px solid #eee;padding:8px 0 3px;margin-top:8px}
.cal-mev{border-left:4px solid;border-radius:0 8px 8px 0;padding:10px 12px;margin-top:8px;background:#fafafa}
.cal-mev.major{border-color:#C62828;background:#FFF8F8}
.cal-mev.temple{border-color:#880E4F;background:#FFF0F8}
.cal-mev.public{border-color:#1A237E;background:#F0F4FF}
.cal-mev.auspicious{border-color:#2E7D32;background:#F1F8E9}
.cal-mev.pournami{border-color:#0277BD;background:#E1F5FE}
.cal-mev.amavasai{border-color:#546E7A;background:#ECEFF1}
.cal-mev.fast{border-color:#6A1B9A;background:#F3E5F5}
.cal-mev .en{font-family:'Oswald',sans-serif;font-size:.95rem;font-weight:600;color:#1A237E;letter-spacing:.03em}
.cal-mev .ta{font-family:'Noto Sans Tamil',sans-serif;font-size:.82rem;color:#C62828;margin-top:2px;display:block}
.cal-mev .ds{font-size:.78rem;color:#666;margin-top:5px;line-height:1.6}

/* ══ RESPONSIVE ═══════════════════════════════════════════════ */
@media(max-width:700px){
  .cal-day{min-height:72px;padding:3px}
  .cal-times{display:none}
  .cal-num{font-size:1.8rem}
  .cal-bottom{grid-template-columns:1fr;padding:8px 4px}
  .cal-bottom .mini-cal:last-child{display:none}
  .cal-bottom .mini-cal:first-child{display:none}
  .cal-bottom{grid-template-columns:1fr}
}
@media(max-width:440px){
  .cal-day{min-height:58px}
  .cal-num{font-size:1.4rem}
  .cal-nk{display:none}
}
