.dic-calendar{--dic-accent:#0f6b61;--dic-accent-2:#164f4a;--dic-soft:#f5f2e9;--dic-line:color-mix(in srgb,currentColor 13%,transparent);--dic-muted:.68;max-width:1180px;margin:0 auto;padding:clamp(24px,4vw,54px) 16px;line-height:1.55;color:inherit}.dic-calendar *{box-sizing:border-box}.dic-calendar a{color:inherit}.dic-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;margin:0 0 7px;opacity:.62}.dic-page-header{max-width:820px;margin-bottom:30px}.dic-page-header h1,.dic-year-header h1{font-size:clamp(2rem,5vw,3.35rem);line-height:1.08;margin:.1rem 0 .65rem;letter-spacing:-.025em}.dic-lead{font-size:1.05rem;opacity:.76;max-width:72ch}.dic-breadcrumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:.84rem;margin-bottom:22px;opacity:.68}.dic-breadcrumbs a{text-decoration:none}.dic-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border-radius:999px;text-decoration:none;background:var(--dic-accent);color:#fff!important;font-weight:800;border:1px solid var(--dic-accent);transition:transform .18s ease,opacity .18s ease}.dic-button:hover,.dic-button:focus-visible{transform:translateY(-1px);opacity:.92}.dic-button-secondary{background:transparent;color:inherit!important;border-color:var(--dic-line)}.dic-text-link{font-weight:800;text-decoration:none;white-space:nowrap}.dic-section{margin-top:46px}.dic-section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:16px}.dic-section-heading h2{font-size:1.45rem;line-height:1.2;margin:.1rem 0 0;letter-spacing:-.01em}.dic-section-heading>span{font-size:.82rem;opacity:.58}.dic-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;opacity:.58}

/* Home / hero */
.dic-home-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:28px;overflow:hidden;border-radius:30px;padding:clamp(28px,5vw,62px);background:radial-gradient(circle at 80% 15%,rgba(255,255,255,.16),transparent 24%),linear-gradient(135deg,var(--dic-accent-2),var(--dic-accent));color:#fff;box-shadow:0 20px 55px rgba(0,0,0,.13)}.dic-home-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-85px;bottom:-125px;border:1px solid rgba(255,255,255,.16);box-shadow:0 0 0 34px rgba(255,255,255,.035),0 0 0 70px rgba(255,255,255,.025)}.dic-hero-copy{position:relative;z-index:1;align-self:center}.dic-home-hero .dic-eyebrow{color:#fff;opacity:.7}.dic-hero-copy h1{font-size:clamp(2.35rem,5vw,4.35rem);line-height:1.02;letter-spacing:-.045em;margin:0 0 18px}.dic-hero-copy h1 span{opacity:.74}.dic-hero-copy .dic-lead{color:#fff;opacity:.82;max-width:55ch}.dic-hero-quote{margin-top:30px;max-width:520px;padding:18px 20px 18px 48px;border-left:2px solid rgba(255,255,255,.38);position:relative}.dic-hero-quote p{margin:0 0 7px;font-size:1rem;opacity:.94}.dic-hero-quote small{opacity:.65}.dic-quote-mark{position:absolute;left:12px;top:7px;font-size:2.2rem;opacity:.5}.dic-today-card{position:relative;z-index:2;align-self:center;max-width:390px;width:100%;margin-left:auto;padding:25px;border-radius:25px;background:rgba(255,255,255,.96);color:#163f3b;box-shadow:0 20px 45px rgba(0,0,0,.18);text-align:center}.dic-today-card-top{display:flex;justify-content:space-between;align-items:center}.dic-live-dot{width:8px;height:8px;border-radius:50%;background:var(--dic-accent);box-shadow:0 0 0 5px rgba(15,107,97,.1)}.dic-date-number{font-size:clamp(4rem,8vw,6rem);line-height:.95;font-weight:900;letter-spacing:-.08em;margin-top:10px}.dic-date-month{font-size:1.5rem;font-weight:850}.dic-date-year{font-size:.95rem;font-weight:800;opacity:.62}.dic-gregorian-line{margin-top:13px;font-weight:750}.dic-location-chip{display:inline-flex;margin-top:13px;padding:7px 10px;border-radius:999px;background:#edf3ef;font-size:.76rem;font-weight:750}.dic-today-actions{display:flex;gap:8px;margin-top:19px}.dic-today-actions .dic-button{flex:1}.dic-icon-button{width:44px;min-width:44px;border:1px solid rgba(22,63,59,.14);background:transparent;border-radius:50%;font-size:1.1rem;cursor:pointer;color:inherit}.dic-icon-button:hover{background:#f1f5f2}
.dic-next-event{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:15px;margin:18px auto 0;max-width:980px;padding:15px 17px;border:1px solid var(--dic-line);border-radius:20px;background:color-mix(in srgb,currentColor 3%,transparent)}.dic-next-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:color-mix(in srgb,var(--dic-accent) 10%,transparent);color:var(--dic-accent);font-size:1.35rem}.dic-next-copy strong,.dic-next-copy>span{display:block}.dic-next-copy strong{font-size:1.05rem;margin-top:2px}.dic-next-copy>span:last-child{opacity:.62;font-size:.82rem}.dic-countdown{text-align:right;padding-left:14px}.dic-countdown strong{font-size:1.5rem;display:block;line-height:1}.dic-countdown span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;opacity:.55}.dic-round-arrow{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--dic-accent);color:#fff!important;text-decoration:none;font-size:1.2rem;font-weight:900}
.dic-explore-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dic-explore-card{position:relative;min-height:150px;padding:20px;border:1px solid var(--dic-line);border-radius:19px;text-decoration:none;background:color-mix(in srgb,currentColor 2%,transparent);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.dic-explore-card:hover,.dic-explore-card:focus-visible{transform:translateY(-3px);border-color:color-mix(in srgb,var(--dic-accent) 45%,transparent);box-shadow:0 10px 25px rgba(0,0,0,.07)}.dic-explore-primary{background:color-mix(in srgb,var(--dic-accent) 8%,transparent);border-color:color-mix(in srgb,var(--dic-accent) 20%,transparent)}.dic-card-icon{display:block;font-size:1.3rem;color:var(--dic-accent);margin-bottom:24px}.dic-explore-card strong{display:block;font-size:1.03rem}.dic-explore-card>span:not(.dic-card-icon){display:block;margin-top:3px;opacity:.6;font-size:.82rem}.dic-explore-card b{position:absolute;right:17px;bottom:16px;color:var(--dic-accent)}.dic-event-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(215px,1fr);overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:5px;scrollbar-width:thin}.dic-upcoming-card{scroll-snap-align:start;position:relative;min-height:145px;padding:18px;border:1px solid var(--dic-line);border-radius:18px;text-decoration:none;background:color-mix(in srgb,currentColor 2%,transparent)}.dic-upcoming-card strong,.dic-upcoming-card span{display:block}.dic-upcoming-card strong{font-size:1.02rem;margin:3px 0}.dic-upcoming-card span:last-of-type{font-size:.8rem;opacity:.58}.dic-upcoming-card b{position:absolute;right:16px;bottom:14px;color:var(--dic-accent)}.dic-event-date{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;opacity:.55}.dic-how-card{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:25px;border-radius:22px;background:color-mix(in srgb,var(--dic-accent) 7%,transparent);border:1px solid color-mix(in srgb,var(--dic-accent) 16%,transparent)}.dic-how-card h2{margin:.2rem 0 .5rem}.dic-how-card p{max-width:72ch;margin:.3rem 0;opacity:.72}

/* Date */
.dic-date-hero{border:1px solid var(--dic-line);border-radius:27px;padding:20px;background:color-mix(in srgb,currentColor 2%,transparent);overflow:hidden}.dic-date-hero-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.dic-back-link{text-decoration:none;font-weight:800}.dic-swipe-hint{font-size:.76rem;opacity:.5}.dic-date-navigator{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:10px;max-width:720px;margin:12px auto 0;text-align:center}.dic-date-navigator>a{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;text-decoration:none;border:1px solid var(--dic-line);font-size:2rem}.dic-date-navigator>div{padding:12px}.dic-big-day{font-size:clamp(4rem,9vw,6.4rem);line-height:.9;font-weight:950;letter-spacing:-.09em;color:var(--dic-accent)}.dic-date-navigator h1{font-size:clamp(1.45rem,4vw,2.3rem);margin:8px 0 0;line-height:1.05}.dic-date-navigator strong{opacity:.62}.dic-date-navigator p{margin:10px 0 0;opacity:.68}.dic-date-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:8px auto 0}.dic-action-button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--dic-line);background:transparent;color:inherit;text-decoration:none;padding:9px 13px;border-radius:999px;cursor:pointer;font:inherit;font-size:.82rem;font-weight:800}.dic-action-button span{color:var(--dic-accent)}.dic-action-button:hover,.dic-action-button:focus-visible{background:color-mix(in srgb,var(--dic-accent) 7%,transparent)}.dic-date-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--dic-line);border-radius:18px;margin-top:14px;overflow:hidden}.dic-date-facts>div{padding:17px 20px}.dic-date-facts>div+div{border-left:1px solid var(--dic-line)}.dic-date-facts span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;opacity:.55;font-weight:800}.dic-date-facts strong{display:block;margin-top:3px;font-size:.96rem}.dic-observance-card{display:flex;gap:15px;padding:18px;border:1px solid var(--dic-line);border-radius:18px;margin-top:10px}.dic-observance-icon{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:color-mix(in srgb,var(--dic-accent) 9%,transparent);color:var(--dic-accent)}.dic-observance-card h3{margin:.15rem 0 .25rem}.dic-observance-card p{margin:0;opacity:.72}.dic-content-panel{border:1px solid var(--dic-line);border-radius:20px;padding:24px;background:color-mix(in srgb,currentColor 2%,transparent)}.dic-content-panel h2{margin:.2rem 0 .7rem}.dic-content-panel p{max-width:74ch}.dic-content-feature{border-left:4px solid var(--dic-accent)}.dic-info-card{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--dic-line);border-radius:18px;padding:18px 20px;margin-top:14px}.dic-info-card strong{display:block;margin-top:3px}.dic-info-card p{margin:.35rem 0 0;opacity:.7}.dic-fasting-card .dic-card-icon{margin:0;font-size:1.5rem}.dic-related-list,.dic-related-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dic-related-list a,.dic-related-months a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px;border:1px solid var(--dic-line);border-radius:15px;text-decoration:none}.dic-related-list span,.dic-related-months span{font-size:.78rem;opacity:.58}.dic-related-list strong,.dic-related-months strong{font-size:.92rem}.dic-related-list b,.dic-related-months b{color:var(--dic-accent)}.dic-date-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:34px}.dic-date-nav a{padding:15px;border:1px solid var(--dic-line);border-radius:15px;text-decoration:none}.dic-date-nav span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;opacity:.5}.dic-date-nav strong{display:block;margin-top:4px}

/* Month */
.dic-month-header{display:flex;justify-content:space-between;align-items:end;gap:20px}.dic-month-nav{display:flex;align-items:center;gap:7px}.dic-month-nav a{display:grid;place-items:center;min-width:44px;height:44px;border:1px solid var(--dic-line);border-radius:50%;text-decoration:none;font-size:1.4rem}.dic-month-nav .dic-today-mini{padding:0 14px;border-radius:999px;font-size:.75rem;font-weight:800}.dic-month-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:18px;align-items:start}.dic-calendar-shell{border:1px solid var(--dic-line);border-radius:22px;padding:18px}.dic-calendar-shell-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:15px}.dic-calendar-shell-head>div strong{font-size:1.15rem}.dic-calendar-shell-head>div span{display:block;font-size:.76rem;opacity:.55}.dic-calendar-legend{display:flex;align-items:center;gap:7px;font-size:.68rem;opacity:.55}.dic-calendar-legend i{width:7px;height:7px;border-radius:50%;background:var(--dic-accent);display:inline-block}.dic-calendar-legend i:nth-of-type(2){background:#e1a02c;margin-left:5px}.dic-weekdays,.dic-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.dic-weekdays{margin-bottom:7px}.dic-weekdays span{text-align:center;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;opacity:.52}.dic-date-card{position:relative;min-height:82px;padding:9px 8px;border:1px solid var(--dic-line);border-radius:11px;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;background:transparent;transition:transform .15s ease,border-color .15s ease}.dic-date-card:hover,.dic-date-card:focus-visible{transform:translateY(-1px);border-color:color-mix(in srgb,var(--dic-accent) 48%,transparent)}.dic-date-card strong{font-size:1rem}.dic-date-card>span{font-size:.68rem;opacity:.5}.dic-date-card small{font-size:.62rem;line-height:1.2;opacity:.65}.dic-date-card.dic-significant{border-color:color-mix(in srgb,#e1a02c 55%,transparent)}.dic-date-card.dic-is-today{border:2px solid var(--dic-accent);background:color-mix(in srgb,var(--dic-accent) 7%,transparent)}.dic-date-card.dic-is-today:after{content:"";position:absolute;right:8px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--dic-accent)}.dic-calendar-empty{min-height:82px}.dic-month-side{display:grid;gap:12px}.dic-side-card{border:1px solid var(--dic-line);border-radius:20px;padding:20px;background:color-mix(in srgb,currentColor 2%,transparent)}.dic-side-card h2{font-size:1.2rem;margin:.25rem 0 .55rem}.dic-side-card p{opacity:.7}.dic-side-event{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--dic-line);text-decoration:none}.dic-side-event>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--dic-accent) 8%,transparent);font-weight:900;color:var(--dic-accent)}.dic-side-event strong,.dic-side-event small{display:block}.dic-side-event small{font-size:.65rem;opacity:.5;text-transform:capitalize}.dic-related-months a{grid-template-columns:1fr auto auto}

/* Year timeline */
/* Year header spacing: keep timezone/context and Today control clearly separated from Year Overview. */
.dic-year-header{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:34px}
.dic-year-header>div{min-width:0}
.dic-year-header .dic-local-context{margin-top:14px}
.dic-year-header>.dic-button{flex:0 0 auto;margin-bottom:2px}
.dic-year-overview{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0 0 24px;padding:22px 24px;border:1px solid var(--dic-line);border-radius:20px;background:color-mix(in srgb,currentColor 2%,transparent)}.dic-year-overview h2{font-size:1.2rem;margin:.25rem 0 .35rem}.dic-year-overview p{margin:0;max-width:75ch;opacity:.7}.dic-year-badge{font-weight:900;white-space:nowrap}.dic-year-timeline{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding:14px 0 0}.dic-timeline-month{position:relative;z-index:1;min-height:150px;padding:25px 14px 15px;border:1px solid var(--dic-line);border-radius:18px;text-decoration:none;background:Canvas;transition:transform .18s ease,border-color .18s ease}.dic-timeline-month:hover,.dic-timeline-month:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--dic-accent) 45%,transparent)}.dic-timeline-dot{position:absolute;top:21px;left:50%;width:16px;height:16px;transform:translateX(-50%);border-radius:50%;background:Canvas;border:3px solid color-mix(in srgb,var(--dic-accent) 55%,transparent)}.dic-timeline-month.dic-current{border:2px solid var(--dic-accent);background:color-mix(in srgb,var(--dic-accent) 6%,transparent)}.dic-timeline-month.dic-current .dic-timeline-dot{background:var(--dic-accent);border-color:var(--dic-accent)}.dic-timeline-month>div{margin-top:15px}.dic-timeline-month small,.dic-timeline-month>div>span{display:block;font-size:.66rem;opacity:.52}.dic-timeline-month strong{display:block;margin:5px 0;font-size:.9rem}.dic-timeline-month b{position:absolute;right:12px;bottom:10px;color:var(--dic-accent)}.dic-key-events{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dic-key-events a{position:relative;min-height:155px;padding:18px;border:1px solid var(--dic-line);border-radius:18px;text-decoration:none}.dic-key-events span,.dic-key-events small{display:block;font-size:.72rem;opacity:.55}.dic-key-events strong{display:block;margin:7px 0}.dic-key-events small{line-height:1.4}.dic-key-events b{position:absolute;right:15px;bottom:12px;color:var(--dic-accent)}

/* Utility modal / toast */
.dic-jump-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.42);display:grid;place-items:end center;padding:16px;opacity:0;pointer-events:none;transition:opacity .18s ease}.dic-jump-backdrop.is-open{opacity:1;pointer-events:auto}.dic-jump-sheet{width:min(520px,100%);max-height:min(80vh,720px);overflow:auto;background:Canvas;color:CanvasText;border-radius:24px;padding:20px;transform:translateY(20px);transition:transform .2s ease;box-shadow:0 25px 70px rgba(0,0,0,.25)}.dic-jump-backdrop.is-open .dic-jump-sheet{transform:none}.dic-jump-head{display:flex;justify-content:space-between;align-items:center}.dic-jump-head h2{margin:0;font-size:1.25rem}.dic-jump-close{width:38px;height:38px;border:1px solid var(--dic-line);background:transparent;border-radius:50%;cursor:pointer;font-size:1.2rem}.dic-jump-list{display:grid;gap:8px;margin-top:15px}.dic-jump-list a,.dic-jump-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--dic-line);border-radius:14px;background:transparent;color:inherit;text-decoration:none;font:inherit;cursor:pointer;text-align:left}.dic-jump-list small{opacity:.55}.dic-dic-toast{position:fixed;z-index:100000;left:50%;bottom:22px;transform:translate(-50%,12px);padding:10px 14px;border-radius:999px;background:#102f2c;color:#fff;font-size:.78rem;font-weight:800;opacity:0;pointer-events:none;transition:.2s ease}.dic-dic-toast.is-visible{opacity:1;transform:translate(-50%,0)}

@media(max-width:1050px){.dic-home-hero{grid-template-columns:1fr .9fr}.dic-explore-grid{grid-template-columns:repeat(2,1fr)}.dic-month-layout{grid-template-columns:1fr}.dic-month-side{grid-template-columns:1fr 1fr}.dic-year-timeline{grid-template-columns:repeat(4,1fr)}.dic-key-events{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.dic-calendar{padding:20px 12px}.dic-home-hero{grid-template-columns:1fr;padding:28px 20px;border-radius:24px}.dic-today-card{max-width:none;margin:0}.dic-hero-copy h1{font-size:clamp(2.35rem,12vw,3.5rem)}.dic-next-event{grid-template-columns:auto 1fr auto}.dic-countdown{display:none}.dic-explore-grid{grid-template-columns:1fr 1fr}.dic-how-card{align-items:flex-start;flex-direction:column}.dic-month-header,.dic-year-header{align-items:flex-start;flex-direction:column}.dic-year-header{gap:16px;margin-bottom:28px}.dic-year-header>.dic-button{margin-bottom:0}.dic-month-nav{width:100%;justify-content:space-between}.dic-month-nav a{min-width:42px}.dic-month-nav .dic-today-mini{flex:1}.dic-calendar-shell{padding:11px}.dic-date-card{min-height:72px;padding:8px 6px}.dic-calendar-empty{min-height:72px}.dic-date-card small{display:none}.dic-weekdays,.dic-date-grid{gap:4px}.dic-weekdays span{font-size:.58rem}.dic-date-card strong{text-align:center}.dic-date-card>span{text-align:center;font-size:.6rem}.dic-month-side{grid-template-columns:1fr}.dic-year-timeline{grid-template-columns:1fr 1fr}.dic-date-actions{justify-content:stretch}.dic-action-button{flex:1;justify-content:center}.dic-date-nav{grid-template-columns:1fr}.dic-related-list,.dic-related-months{grid-template-columns:1fr}}
@media(max-width:480px){.dic-page-header h1,.dic-year-header h1{font-size:2rem}.dic-home-hero{padding:24px 16px}.dic-date-number{font-size:4.8rem}.dic-today-card{padding:20px}.dic-explore-grid{grid-template-columns:1fr}.dic-next-event{grid-template-columns:auto 1fr auto;padding:12px}.dic-next-icon{width:40px;height:40px;border-radius:12px}.dic-next-copy strong{font-size:.93rem}.dic-next-copy>span:last-child{font-size:.72rem}.dic-round-arrow{width:38px;height:38px}.dic-date-hero{padding:14px}.dic-date-navigator{grid-template-columns:38px 1fr 38px}.dic-date-navigator>a{width:38px;height:38px}.dic-date-navigator>div{padding:7px}.dic-date-actions{gap:6px}.dic-action-button{padding:8px 10px;font-size:.74rem}.dic-action-button span{display:none}.dic-date-facts>div{padding:13px 10px}.dic-date-facts strong{font-size:.8rem}.dic-timeline-month{min-height:132px;padding-left:12px;padding-right:10px}.dic-key-events{grid-template-columns:1fr}.dic-how-card{padding:20px}}
@media(prefers-reduced-motion:reduce){.dic-calendar *,.dic-calendar *:before,.dic-calendar *:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* v0.6.1 responsive refinement */
.dic-month-meta{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 8px}.dic-month-meta span,.dic-local-context{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border:1px solid var(--dic-line);border-radius:999px;font-size:.72rem;font-weight:800;opacity:.7}.dic-local-context{margin-top:9px;width:max-content}.dic-date-hero-top .dic-swipe-hint{display:flex;gap:4px;align-items:center}
.dic-timeline-month small{white-space:nowrap}
@media (max-width:1050px){
  .dic-home-hero{grid-template-columns:1fr 360px;gap:20px;padding:42px}
  .dic-year-timeline{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dic-key-events{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .dic-home-hero{grid-template-columns:1fr}
  .dic-today-card{margin-left:0;max-width:430px}
  .dic-month-layout{grid-template-columns:1fr}
  .dic-month-side{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .dic-calendar{padding:18px 12px}
  .dic-home-hero{padding:28px 20px}
  .dic-hero-quote{margin-top:22px}
  .dic-next-event{grid-template-columns:auto minmax(0,1fr) auto}
  .dic-countdown{display:block;padding-left:4px}
  .dic-countdown strong{font-size:1.2rem}
  .dic-countdown span{font-size:.62rem}
  .dic-explore-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dic-year-timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .dic-timeline-month{min-height:125px;padding:23px 12px 14px}
  .dic-timeline-month small{white-space:normal}
  .dic-month-side{grid-template-columns:1fr}
  .dic-calendar-shell{padding:10px}
  .dic-calendar-shell-head{align-items:flex-start}
  .dic-calendar-legend{font-size:.62rem}
  .dic-date-card{min-height:68px}
  .dic-calendar-empty{min-height:68px}
  .dic-date-hero-top{align-items:flex-start}
  .dic-swipe-hint{font-size:.68rem;text-align:right}
  .dic-date-facts{grid-template-columns:1fr}
  .dic-date-facts>div+div{border-left:0;border-top:1px solid var(--dic-line)}
}
@media (max-width:480px){
  .dic-home-hero{padding:22px 15px;border-radius:22px}
  .dic-hero-copy h1{font-size:clamp(2.25rem,12vw,3.15rem)}
  .dic-today-card{padding:18px;border-radius:21px}
  .dic-date-number{font-size:4.6rem}
  .dic-next-event{grid-template-columns:40px minmax(0,1fr) auto;gap:9px}
  .dic-countdown{display:block}
  .dic-explore-grid{grid-template-columns:1fr 1fr}
  .dic-explore-card{min-height:132px;padding:15px}
  .dic-card-icon{margin-bottom:17px}
  .dic-explore-card>span:not(.dic-card-icon){font-size:.75rem}
  .dic-section{margin-top:36px}
  .dic-section-heading h2{font-size:1.25rem}
  .dic-month-meta{gap:5px}
  .dic-month-meta span,.dic-local-context{font-size:.66rem;min-height:28px;padding:4px 8px}
  .dic-calendar-shell-head>div strong{font-size:1rem}
  .dic-weekdays,.dic-date-grid{gap:3px}
  .dic-weekdays span{font-size:.55rem}
  .dic-date-card{min-height:62px;padding:7px 3px;border-radius:9px}
  .dic-calendar-empty{min-height:62px}
  .dic-date-card strong{font-size:.9rem}
  .dic-date-card>span{font-size:.56rem}
  .dic-timeline-month{min-height:118px}
  .dic-key-events{grid-template-columns:1fr}
  .dic-date-actions{display:grid;grid-template-columns:1fr 1fr}
  .dic-action-button{width:100%;justify-content:center}
  .dic-date-nav{grid-template-columns:1fr}
}
@media (max-width:380px){
  .dic-explore-grid{grid-template-columns:1fr}
  .dic-next-copy>span:last-child{display:none}
  .dic-countdown{padding:0}
  .dic-countdown span{display:none}
  .dic-calendar-shell{padding:7px}
}

.dic-calendar-date{touch-action:pan-y}

/* v0.8.1 UX refinement: touch targets, focus, density, mobile navigation and print */
.dic-calendar{--dic-focus:color-mix(in srgb,var(--dic-accent) 72%,#fff);content-visibility:auto;contain:layout style}
.dic-calendar a,.dic-calendar button{ -webkit-tap-highlight-color:transparent }
.dic-calendar :where(a,button):focus-visible{outline:3px solid var(--dic-focus);outline-offset:3px}
.dic-calendar a:focus:not(:focus-visible),.dic-calendar button:focus:not(:focus-visible){outline:0}
.dic-button,.dic-action-button,.dic-icon-button,.dic-round-arrow,.dic-date-navigator>a,.dic-month-nav a{touch-action:manipulation}
.dic-icon-button{display:inline-grid;place-items:center}
.dic-location-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dic-calendar-shell{overflow:hidden}
.dic-calendar-legend{display:flex;align-items:center;gap:7px;white-space:nowrap}
.dic-calendar-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--dic-accent) 20%,transparent)}
.dic-calendar-legend i:nth-of-type(2){background:var(--dic-accent)}
.dic-date-card{transition:transform .14s ease,background-color .14s ease,border-color .14s ease}
.dic-date-card:active,.dic-explore-card:active,.dic-upcoming-card:active,.dic-timeline-month:active{transform:scale(.985)}
.dic-date-card.dic-is-today{scroll-margin-top:80px}
.dic-date-card.dic-significant{font-weight:800}
.dic-date-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:42px}
.dic-date-nav a{display:flex;flex-direction:column;gap:3px;padding:15px 16px;border:1px solid var(--dic-line);border-radius:16px;text-decoration:none;background:color-mix(in srgb,currentColor 2%,transparent);min-height:72px}
.dic-date-nav a:hover,.dic-date-nav a:focus-visible{border-color:color-mix(in srgb,var(--dic-accent) 40%,transparent);background:color-mix(in srgb,var(--dic-accent) 5%,transparent)}
.dic-date-nav span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;opacity:.55;font-weight:800}.dic-date-nav strong{font-size:.88rem}
.dic-content-feature{max-width:820px}
.dic-content-feature p{font-size:1rem;line-height:1.72}
.dic-how-section{margin-bottom:10px}
.dic-jump-close{color:inherit}.dic-jump-sheet{overscroll-behavior:contain}.dic-jump-backdrop{overscroll-behavior:none}
.dic-jump-list a,.dic-jump-list button{min-height:52px}
@media(max-width:760px){
 .dic-calendar{contain:initial}
 .dic-breadcrumbs{margin-bottom:16px}
 .dic-section{margin-top:34px}
 .dic-next-event{min-height:72px}
 .dic-date-nav{position:sticky;bottom:10px;z-index:20;padding:8px;background:color-mix(in srgb,Canvas 92%,transparent);backdrop-filter:blur(12px);border:1px solid var(--dic-line);border-radius:18px;box-shadow:0 8px 30px rgba(0,0,0,.09)}
 .dic-date-nav a{min-height:58px;padding:10px 12px;background:Canvas}
 .dic-date-nav a:nth-child(2){background:color-mix(in srgb,var(--dic-accent) 8%,Canvas)}
 .dic-date-nav span{font-size:.58rem}.dic-date-nav strong{font-size:.75rem}
 .dic-month-nav{gap:7px}
}
@media(max-width:480px){
 .dic-calendar{padding-left:10px;padding-right:10px}
 .dic-page-header h1,.dic-year-header h1{letter-spacing:-.03em}
 .dic-date-hero-top{gap:8px}.dic-back-link{font-size:.8rem}.dic-swipe-hint{max-width:58%;line-height:1.3}
 .dic-date-navigator{gap:5px}.dic-date-navigator>a{font-size:1.7rem}
 .dic-date-actions{gap:7px}.dic-action-button{min-height:44px;font-size:.76rem}
 .dic-date-facts>div{padding:11px 13px}
 .dic-jump-backdrop{padding:8px}.dic-jump-sheet{border-radius:22px;padding:16px;max-height:84vh}
 .dic-today-actions{gap:7px}
}
@media(max-width:380px){
 .dic-next-event{grid-template-columns:36px minmax(0,1fr) 36px}.dic-next-icon{width:36px;height:36px}
 .dic-round-arrow{width:36px;height:36px}
 .dic-date-nav{bottom:6px;padding:6px}.dic-date-nav a{padding:8px 6px}.dic-date-nav strong{font-size:.7rem}
}
@media print{
 .dic-calendar{max-width:none;padding:0;color:#000}
 .dic-home-hero{box-shadow:none}.dic-jump-backdrop,.dic-date-actions,.dic-date-nav,.dic-next-event,.dic-button{display:none!important}
 .dic-calendar a{text-decoration:none}.dic-calendar-shell{break-inside:avoid}
}


/* v0.8.9 UX stabilization — consolidated structural rules.
 * These rules intentionally replace the accumulated patch layers from earlier builds.
 */

/* Year header: keep context/actions visually separate from Year Overview. */
.dic-calendar .dic-year-header{
  margin-bottom:0;
  padding-bottom:32px;
  gap:28px;
}
.dic-calendar .dic-year-overview{
  margin-top:0;
}

/* Timeline: cards are self-contained. No connector line/pseudo-element is allowed. */
.dic-calendar .dic-year-timeline{
  position:relative;
  isolation:isolate;
  overflow:visible;
}
.dic-calendar .dic-year-timeline::before,
.dic-calendar .dic-year-timeline::after,
.dic-calendar .dic-timeline-month::before,
.dic-calendar .dic-timeline-month::after{
  content:none !important;
  display:none !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}
.dic-calendar .dic-timeline-month{
  background:Canvas;
  overflow:hidden;
}
.dic-calendar .dic-timeline-month.dic-current{
  background:color-mix(in srgb,var(--dic-accent) 7%,Canvas);
}

/* Next important date: action group is a dedicated final column. */
.dic-calendar .dic-next-event{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) auto;
  align-items:center;
  column-gap:15px;
  row-gap:0;
  min-width:0;
}
.dic-calendar .dic-next-icon{
  grid-column:1;
  grid-row:1;
  width:46px;
  height:46px;
  min-width:46px;
}
.dic-calendar .dic-next-copy{
  grid-column:2;
  grid-row:1;
  min-width:0;
  overflow:hidden;
}
.dic-calendar .dic-next-actions{
  grid-column:3;
  grid-row:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  min-width:42px;
}
.dic-calendar .dic-countdown{
  flex:0 0 auto;
  margin:0;
  padding:0;
  text-align:right;
}
.dic-calendar .dic-round-arrow{
  flex:0 0 42px;
  width:42px;
  min-width:42px;
  max-width:42px;
  height:42px;
  min-height:42px;
  max-height:42px;
  margin:0;
  padding:0;
  display:grid;
  place-items:center;
  line-height:1;
  text-decoration:none;
}
.dic-calendar .dic-round-arrow span{
  display:block;
  line-height:1;
  transform:translateY(-1px);
}
.dic-calendar .dic-next-copy strong,
.dic-calendar .dic-next-copy>span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Today state: exact accent, including nested content. */
.dic-calendar a.dic-date-card.dic-is-today,
.dic-calendar a.dic-date-card.dic-is-today:hover,
.dic-calendar a.dic-date-card.dic-is-today:focus-visible{
  background:var(--dic-accent) !important;
  border-color:var(--dic-accent) !important;
  color:#fff !important;
  box-shadow:0 5px 16px color-mix(in srgb,var(--dic-accent) 24%,transparent) !important;
}
.dic-calendar a.dic-date-card.dic-is-today *{color:#fff !important;}
.dic-calendar a.dic-date-card.dic-is-today::after{
  background:#fff !important;
  border:0 !important;
}

/* Legend uses the same semantic colors as the grid. */
.dic-calendar .dic-calendar-legend{
  display:inline-flex;
  align-items:center;
  gap:7px;
  white-space:nowrap;
  opacity:1;
}
.dic-calendar .dic-calendar-legend i{
  display:inline-block;
  flex:0 0 10px;
  width:10px;
  height:10px;
  margin:0;
  padding:0;
  border-radius:50%;
  opacity:1;
}
.dic-calendar .dic-calendar-legend .dic-legend-today{background:var(--dic-accent);}
.dic-calendar .dic-calendar-legend .dic-legend-important{background:#e1a02c;margin-left:6px;}
.dic-calendar .dic-calendar-legend>span{opacity:.62;}

@media(max-width:760px){
  .dic-calendar .dic-year-header{
    gap:16px;
    padding-bottom:28px;
  }
  .dic-calendar .dic-next-event{
    grid-template-columns:40px minmax(0,1fr) 40px;
    column-gap:9px;
  }
  .dic-calendar .dic-next-icon{
    width:40px;height:40px;min-width:40px;
  }
  .dic-calendar .dic-next-actions{
    grid-column:3;
    gap:0;
    min-width:40px;
  }
  .dic-calendar .dic-countdown{display:none;}
  .dic-calendar .dic-round-arrow{
    flex-basis:40px;width:40px;min-width:40px;max-width:40px;
    height:40px;min-height:40px;max-height:40px;
  }
  .dic-calendar .dic-calendar-legend{font-size:.62rem;gap:6px;}
  .dic-calendar .dic-calendar-legend i{flex-basis:9px;width:9px;height:9px;}
}
@media(max-width:480px){
  .dic-calendar .dic-year-header{padding-bottom:24px;}
  .dic-calendar .dic-next-event{
    grid-template-columns:36px minmax(0,1fr) 36px;
    column-gap:7px;
    padding:12px 10px;
  }
  .dic-calendar .dic-next-icon{width:36px;height:36px;min-width:36px;}
  .dic-calendar .dic-next-actions{min-width:36px;}
  .dic-calendar .dic-round-arrow{
    flex-basis:36px;width:36px;min-width:36px;max-width:36px;
    height:36px;min-height:36px;max-height:36px;
  }
}
@media(max-width:380px){
  .dic-calendar .dic-next-event{
    grid-template-columns:34px minmax(0,1fr) 34px;
    column-gap:6px;
    padding:10px 8px;
  }
  .dic-calendar .dic-next-icon{width:34px;height:34px;min-width:34px;}
  .dic-calendar .dic-next-actions{min-width:34px;}
  .dic-calendar .dic-round-arrow{
    flex-basis:34px;width:34px;min-width:34px;max-width:34px;
    height:34px;min-height:34px;max-height:34px;font-size:1rem;
  }
}


/* v0.9.3: mobile arrow alignment — isolated structural rules.
   Do not alter the established desktop layout. */
@media (max-width:760px){
  .dic-calendar .dic-next-event{
    position:relative !important;
    display:grid !important;
    grid-template-columns:40px minmax(0,1fr) 40px !important;
    align-items:center !important;
    column-gap:9px !important;
  }
  .dic-calendar .dic-next-actions{
    display:contents !important;
  }
  .dic-calendar .dic-next-actions .dic-round-arrow{
    grid-column:3 !important;
    grid-row:1 !important;
    justify-self:end !important;
    align-self:center !important;
  }

  .dic-calendar .dic-date-navigator{
    display:grid !important;
    grid-template-columns:44px minmax(0,1fr) 44px !important;
    align-items:center !important;
    column-gap:4px !important;
    width:100% !important;
    max-width:720px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .dic-calendar .dic-date-navigator > a{
    position:static !important;
    justify-self:center !important;
    align-self:center !important;
    width:44px !important;
    min-width:44px !important;
    max-width:44px !important;
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;
    margin:0 !important;
    padding:0 !important;
    display:grid !important;
    place-items:center !important;
    line-height:1 !important;
  }
  .dic-calendar .dic-date-navigator > a:first-child{grid-column:1 !important;grid-row:1 !important;}
  .dic-calendar .dic-date-navigator > div{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:0 !important;
    width:100% !important;
    margin:0 !important;
    text-align:center !important;
  }
}
@media (max-width:480px){
  .dic-calendar .dic-next-event{
    grid-template-columns:36px minmax(0,1fr) 36px !important;
    column-gap:7px !important;
  }
  .dic-calendar .dic-next-actions .dic-round-arrow{
    width:36px !important;min-width:36px !important;max-width:36px !important;
    height:36px !important;min-height:36px !important;max-height:36px !important;
  }
  .dic-calendar .dic-date-navigator{
    grid-template-columns:40px minmax(0,1fr) 40px !important;
    column-gap:3px !important;
  }
  .dic-calendar .dic-date-navigator > a{
    width:40px !important;min-width:40px !important;max-width:40px !important;
    height:40px !important;min-height:40px !important;max-height:40px !important;
  }
}
@media (max-width:380px){
  .dic-calendar .dic-next-event{
    grid-template-columns:34px minmax(0,1fr) 34px !important;
    column-gap:6px !important;
  }
  .dic-calendar .dic-next-actions .dic-round-arrow{
    width:34px !important;min-width:34px !important;max-width:34px !important;
    height:34px !important;min-height:34px !important;max-height:34px !important;
  }
  .dic-calendar .dic-date-navigator{
    grid-template-columns:38px minmax(0,1fr) 38px !important;
    column-gap:2px !important;
  }
  .dic-calendar .dic-date-navigator > a{
    width:38px !important;min-width:38px !important;max-width:38px !important;
    height:38px !important;min-height:38px !important;max-height:38px !important;
  }
}
