/* BeppeBlog calendar: homepage month strip and full date archive. */
.bb-calendar-widget { margin: 2rem 0 1.5rem; }
.bb-cal-bar { display:grid; grid-template-columns:minmax(190px,265px) minmax(0,1fr) minmax(150px,190px); align-items:stretch; gap:12px; padding:14px; background:var(--paper-2); border:1px solid var(--line); border-radius:16px; box-shadow:0 10px 28px rgba(24,20,16,.08); }
.bb-cal-month-nav { display:flex; align-items:center; justify-content:space-between; gap:5px; padding:12px; background:var(--paper); border:1px solid var(--line); border-radius:11px; }
.bb-cal-month-select-wrap { position:relative; display:grid; min-width:0; text-align:center; }
.bb-cal-month-label { color:var(--ink); font:750 13px/1.25 var(--font-display); text-transform:uppercase; }
.bb-cal-month-select { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.bb-cal-btn-nav { width:30px; height:34px; flex:0 0 30px; color:var(--ink-soft); border-radius:7px; font-size:23px; line-height:1; }
.bb-cal-btn-nav:hover:not(:disabled) { color:var(--accent); background:color-mix(in srgb,var(--accent) 9%,transparent); }
.bb-cal-strip-container { display:flex; align-items:center; min-width:0; overflow:hidden; }
.bb-cal-strip { display:grid; width:100%; gap:6px; }
.bb-cal-strip__row { display:grid; grid-template-columns:repeat(16,minmax(28px,1fr)); gap:6px; }
.bb-cal-pill { display:grid; min-width:0; min-height:52px; align-content:center; justify-items:center; gap:2px; padding:5px 2px; background:var(--paper); border:1px solid var(--line); border-radius:9px; color:var(--ink-soft); transition:background .18s,border-color .18s,transform .18s; }
.bb-cal-pill:hover { border-color:var(--accent); transform:translateY(-1px); }
.bb-cal-pill__dow { color:var(--ink-soft); font:700 8px/1.1 var(--font-body); }
.bb-cal-pill__num { color:var(--ink); font:750 14px/1.1 var(--font-body); }
.bb-cal-pill__dot { width:5px; height:5px; border-radius:50%; background:transparent; }
.bb-cal-pill.has-posts { background:color-mix(in srgb,var(--accent) 8%,var(--paper)); border-color:color-mix(in srgb,var(--accent) 48%,var(--line)); }
.bb-cal-pill.has-posts .bb-cal-pill__dow { color:var(--accent); }
.bb-cal-pill.has-posts .bb-cal-pill__dot { background:var(--accent); }
.bb-cal-pill.is-active { background:var(--accent); border-color:var(--accent); box-shadow:0 3px 12px color-mix(in srgb,var(--accent) 28%,transparent); }
.bb-cal-pill.is-active .bb-cal-pill__dow,.bb-cal-pill.is-active .bb-cal-pill__num { color:var(--on-dark); }
.bb-cal-pill.is-active .bb-cal-pill__dot { background:var(--on-dark); }
.bb-cal-pill--placeholder { visibility:hidden; }
.bb-cal-actions { display:grid; align-content:center; gap:7px; }
.bb-cal-actions__row { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.bb-cal-act-btn { min-height:40px; padding:7px 10px; color:var(--ink-soft); background:var(--paper); border:1px solid var(--line); border-radius:9px; font:750 10px/1.2 var(--font-body); letter-spacing:.08em; }
.bb-cal-act-btn--wide { grid-column:1/-1; }
.bb-cal-act-btn.is-active,.bb-cal-act-btn:hover { color:var(--on-dark); background:var(--accent); border-color:var(--accent); }

.bbp-explorer-page { max-width:1440px; padding-block:clamp(28px,5vw,68px) 80px; }
.bbp-explorer-page > .kicker { color:var(--accent); font:700 12px/1.4 var(--font-body); letter-spacing:.14em; text-transform:uppercase; }
.bbp-explorer-page > h1 { margin:8px 0 30px; font-size:clamp(34px,5vw,58px); letter-spacing:-.045em; }
.bbp-calendar { padding:clamp(18px,3vw,34px); background:var(--paper-2); border:1px solid var(--line); border-radius:18px; box-shadow:0 18px 52px rgba(24,20,16,.09); }
.bbp-calendar-tools { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.bbp-calendar-tools form,.bbp-calendar-tools label { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.bbp-calendar-tools label,.bbp-calendar-tools p { color:var(--ink-soft); font-size:13px; }
.bbp-calendar-tools select { min-width:220px; padding:11px 14px; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:9px; }
.bbp-calendar-tools p { margin:0; }
.bbp-calendar .bbp-button { padding:10px 16px; color:var(--on-dark); background:var(--accent); border:1px solid var(--accent); border-radius:9px; cursor:pointer; font-weight:700; }
.bbp-calendar-layout { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(0,1.5fr); gap:clamp(24px,4vw,54px); padding-top:28px; }
.bbp-calendar-board { min-width:0; padding:20px; background:var(--paper); border:1px solid var(--line); border-radius:14px; }
.bbp-calendar-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.bbp-month-label { margin:0; color:var(--ink); font:750 17px/1.3 var(--font-body); text-align:center; text-transform:uppercase; }
.bbp-calendar-step { display:grid; width:38px; height:38px; place-items:center; color:var(--ink); background:var(--paper-2); border:1px solid var(--line); border-radius:10px; font-size:25px; text-decoration:none; }
.bbp-calendar-step:hover { color:var(--accent); border-color:var(--accent); }
.bbp-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:7px; }
.bbp-days > span { display:grid; min-height:32px; place-items:center; color:var(--ink-soft); font:700 11px var(--font-body); }
.bbp-days > a { position:relative; display:grid; min-height:50px; place-items:center; color:var(--ink-soft); background:var(--paper-2); border:1px solid var(--line); border-radius:9px; font:650 14px var(--font-body); text-decoration:none; }
.bbp-days > a.has-posts { color:var(--ink); border-color:color-mix(in srgb,var(--accent) 45%,var(--line)); }
.bbp-days > a.has-posts::after { position:absolute; bottom:5px; width:5px; height:5px; background:var(--accent); border-radius:50%; content:""; }
.bbp-days > a:hover,.bbp-days > a[aria-current="date"] { color:var(--on-dark); background:var(--accent); border-color:var(--accent); }
.bbp-days > a small { display:none; }
.bbp-calendar-legend { display:flex; align-items:center; gap:8px; margin:14px 0 0; color:var(--ink-soft); font-size:11px; }
.bbp-calendar-legend span { width:7px; height:7px; background:var(--accent); border-radius:50%; }
.bbp-calendar-status { margin:0 0 18px; color:var(--ink-soft); font:700 12px var(--font-body); letter-spacing:.06em; text-transform:uppercase; }
.bbp-calendar-results { min-height:180px; }
.bbp-calendar-results .post-card,.bbp-calendar-results article { margin-bottom:12px; }
.bbp-calendar-pagination { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.bbp-calendar-pagination a { display:grid; min-width:38px; min-height:38px; place-items:center; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:8px; text-decoration:none; }
.bbp-calendar-pagination a[aria-current="page"],.bbp-calendar-pagination a:hover { color:var(--on-dark); background:var(--accent); border-color:var(--accent); }
@media (max-width:1000px) { .bb-cal-bar { grid-template-columns:minmax(180px,230px) minmax(0,1fr); } .bb-cal-actions { grid-column:1/-1; grid-template-columns:1fr 1fr; } }
@media (max-width:850px) { .bbp-calendar-layout { grid-template-columns:1fr; } }
@media (max-width:640px) { .bb-cal-bar { grid-template-columns:1fr; } .bb-cal-month-nav { justify-content:center; } .bb-cal-month-select-wrap { min-width:140px; } .bb-cal-strip-container { overflow-x:auto; padding-bottom:5px; } .bb-cal-strip { min-width:660px; } .bb-cal-actions { grid-column:auto; } .bbp-calendar { padding:14px; border-radius:13px; } .bbp-calendar-board { padding:13px; } .bbp-days { gap:4px; } .bbp-days > a { min-height:42px; font-size:12px; } .bbp-calendar-tools select { min-width:0; max-width:190px; } }

/* Override any Synthesis-specific calendar palette when the _s theme is active. */
html[data-style="synthesis"] .bb-cal-bar { background:var(--paper-2); border-color:var(--line); box-shadow:0 10px 28px rgba(24,20,16,.08); }
html[data-style="synthesis"] .bb-cal-month-nav { background:var(--paper); border-color:var(--line); }
html[data-style="synthesis"] .bb-cal-month-label,html[data-style="synthesis"] .bb-cal-pill__num { color:var(--ink); }
html[data-style="synthesis"] .bb-cal-pill { background:var(--paper); border-color:var(--line); color:var(--ink-soft); }
html[data-style="synthesis"] .bb-cal-pill.has-posts { background:color-mix(in srgb,var(--accent) 8%,var(--paper)); border-color:color-mix(in srgb,var(--accent) 48%,var(--line)); }
html[data-style="synthesis"] .bb-cal-pill.has-posts .bb-cal-pill__num { color:var(--ink); }
html[data-style="synthesis"] .bb-cal-pill.is-active,html[data-style="synthesis"] .bb-cal-act-btn.is-active { color:var(--on-dark); background:var(--accent); border-color:var(--accent); box-shadow:none; }
html[data-style="synthesis"] .bb-cal-pill.is-active .bb-cal-pill__dow,html[data-style="synthesis"] .bb-cal-pill.is-active .bb-cal-pill__num { color:var(--on-dark); }
html[data-style="synthesis"] .bb-cal-act-btn { color:var(--ink); background:var(--paper); border-color:var(--line); }
html[data-style="synthesis"] .bb-cal-act-btn:hover { color:var(--on-dark); background:var(--accent); border-color:var(--accent); }
html[data-style="synthesis"] .bbp-calendar { background:var(--paper-2); border-color:var(--line); }
html[data-style="synthesis"] .bbp-calendar-board { background:var(--paper); border-color:var(--line); }
