/* Plugin-owned component; shared by published view and preview. */
.c-calendar-01 {container-type:inline-size;isolation:isolate;--jjcal-border:var(--color-border,#b8aba4);--jjcal-open:var(--color-primary-dark,#8B6069);--jjcal-closed:var(--color-primary-light,#F5E0E1);--jjcal-info:var(--color-white,#fff);color:var(--color-text,#333);font-family:var(--font-family-body,sans-serif);font-size:var(--font-size-sm,1.4rem);line-height:var(--line-height-sm,1.5);width:100%;min-width:0;}
.c-calendar-01 * {box-sizing:border-box;}
.c-calendar-01 .c-calendar-01__toolbar {display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm,1rem);margin-block:var(--space-sm,1rem);}
.c-calendar-01 .c-calendar-01__title {font:inherit;font-size:var(--font-size-xl,2rem);font-weight:var(--font-weight-bold,700);margin:0;}
.c-calendar-01__toolbar nav {display:flex;align-items:center;gap:var(--space-xs,.8rem);}
.c-calendar-01__nav,.c-calendar-01__toolbar button {display:inline-flex;align-items:center;justify-content:center;min-height:4.4rem;min-width:4.4rem;padding:var(--space-xs,.8rem);border:1px solid var(--jjcal-border);border-radius:var(--radius-sm,.4rem);color:inherit;background:var(--color-bg,#fff);text-decoration:none;font:inherit;cursor:pointer;}
.c-calendar-01__toolbar button:disabled {opacity:.35;cursor:default;}
.c-calendar-01__table {table-layout:fixed;width:100%;border-collapse:collapse;margin:0;}
.c-calendar-01 .c-calendar-01__table th {font:inherit;text-align:center;background:var(--color-bg-sub,#f8f3f1);color:inherit;border:1px solid var(--jjcal-border);padding:var(--space-xs,.8rem);}
.c-calendar-01 .c-calendar-01__table td {vertical-align:top;text-align:start;border:1px solid var(--jjcal-border);padding:var(--space-2-xs,.5rem);height:10rem;background:var(--color-bg,#fff);}
.c-calendar-01 .c-calendar-01__day time {display:block;text-align:end;margin-block-end:var(--space-2-xs,.5rem);}
.c-calendar-01 .c-calendar-01__day--other {background:var(--color-bg-sub,#f8f3f1);}
.c-calendar-01__day--other>time {color:var(--color-text-light,#777);}
.c-calendar-01 .c-calendar-01__day--today {background:var(--color-primary-lightest,#fff6dd);}
.c-calendar-01 .c-calendar-01__event {position:relative;margin-block:var(--space-3-xs,.3rem);}
.c-calendar-01 .c-calendar-01__entry {display:block;width:100%;padding:var(--space-3-xs,.3rem) var(--space-2-xs,.5rem);border:0;border-radius:var(--radius-sm,.4rem);background:var(--jjcal-open);color:var(--color-white,#fff);font:inherit;font-size:var(--font-size-xs,1.3rem);line-height:var(--line-height-sm,1.5);text-align:start;overflow-wrap:anywhere;white-space:normal;}
.c-calendar-01 button.c-calendar-01__entry {cursor:pointer;}
.c-calendar-01 .c-calendar-01__entry--closed {background:var(--jjcal-closed);color:var(--jjcal-open);}
.c-calendar-01 .c-calendar-01__entry--info {background:var(--jjcal-info);color:var(--jjcal-open);box-shadow:inset 0 0 0 1px var(--color-primary,#C4898A);}
.c-calendar-01__tooltip {position:absolute;z-index:30;inset-block-start:100%;inset-inline-start:0;width:28rem;max-width:calc(100vw - 3.2rem);padding:var(--space-sm,1rem);border:1px solid var(--jjcal-border);border-radius:var(--radius-md,.8rem);background:var(--color-bg,#fff);color:var(--color-text,#333);box-shadow:var(--shadow-md,0 .4rem 1.6rem #0002);overflow-wrap:anywhere;max-height:50vh;overflow-y:auto;}
.c-calendar-01__tooltip strong,.c-calendar-01__tooltip span {display:block;margin-block-end:var(--space-2-xs,.5rem);}
.c-calendar-01__table td:nth-child(n+5) .c-calendar-01__tooltip {inset-inline-start:auto;inset-inline-end:0;}
.c-calendar-01__list {display:none;}
.c-calendar-01__list ol {list-style:none;padding:0;margin:0;}
.c-calendar-01__list li {display:grid;grid-template-columns:8rem minmax(0,1fr);gap:var(--space-sm,1rem);border-block-end:1px solid var(--jjcal-border);padding-block:var(--space-sm,1rem);}
.c-calendar-01__list .c-calendar-01__tooltip {position:relative;inset:auto;width:100%;max-width:none;max-height:none;}
.c-calendar-01__unfilled {color:var(--color-text-light,#777);}
.c-calendar-01__notice {padding:var(--space-sm,1rem);background:var(--color-bg-sub,#f8f3f1);margin-block:var(--space-sm,1rem);}
.c-calendar-01__notice p {margin-block:var(--space-xs,.8rem) 0;}
.c-calendar-01__guide,.c-calendar-01__details {font-size:var(--font-size-xs,1.3rem);margin-block:var(--space-sm,1rem);}
.c-calendar-01__details summary {cursor:pointer;}
.c-calendar-01__details dd {margin-inline-start:var(--space-sm,1rem);white-space:normal;}
.c-calendar-01 [hidden] {display:none!important;}
.c-calendar-01 :focus-visible {outline:2px solid var(--jjcal-open);outline-offset:2px;}
@container (max-width:559px) {.c-calendar-01 .c-calendar-01__toolbar {flex-wrap:wrap;}}
.jj-calendar-preview {font-size:62.5%;}
.jj-calendar-preview body {margin:1.6rem;background:var(--color-bg,#fff);}

/* Leave space between the month controls, dates, event text and explanatory content. */
.c-calendar-01 .c-calendar-01__toolbar {gap:var(--space-xl,1.6rem);margin-block:var(--space-xl,1.6rem);}
.c-calendar-01__toolbar nav {gap:var(--space-sm,1rem);}
.c-calendar-01 .c-calendar-01__table td {padding:var(--space-xs,.6rem);height:11.2rem;}
.c-calendar-01 .c-calendar-01__day time {margin-block-end:var(--space-sm,.8rem);padding-inline:var(--space-3-xs,.3rem);font-variant-numeric:tabular-nums;}
.c-calendar-01 .c-calendar-01__event {margin-block:var(--space-2-xs,.4rem);}
.c-calendar-01 .c-calendar-01__entry {padding:var(--space-xs,.6rem);line-height:1.5;font-variant-numeric:tabular-nums;}
.c-calendar-01__guide {margin-block:var(--space-xl,1.6rem) var(--space-sm,1rem);line-height:1.8;}
.c-calendar-01__details {margin-block:var(--space-sm,1rem) var(--space-xl,1.6rem);}
.c-calendar-01__details summary {padding-block:var(--space-sm,1rem);min-height:4.4rem;}
.c-calendar-01__details dt {margin-block-start:var(--space-lg,1.2rem);}
.c-calendar-01__details dd {margin-block:var(--space-xs,.6rem) var(--space-lg,1.2rem);line-height:1.8;}
/* Dense seven-column view: keep short time ranges readable on one line. */
.c-calendar-01 .c-calendar-01__month {padding:0;margin:0;max-width:100%;overflow:visible;}
.c-calendar-01 .c-calendar-01__month .c-calendar-01__table {width:100%;min-width:0;}
.c-calendar-01 .c-calendar-01__month .c-calendar-01__table th {width:calc(100% / 7);}
.c-calendar-01 .c-calendar-01__month .c-calendar-01__table td {padding:var(--space-3-xs,.4rem);}
.c-calendar-01 .c-calendar-01__month .c-calendar-01__entry {padding:var(--space-2-xs,.6rem) var(--space-4-xs,.2rem);font-size:var(--font-size-3-xs,1.1rem);line-height:var(--line-height-sm,1.5);}
.c-calendar-01 .c-calendar-01__month .c-calendar-01__entry--time {white-space:nowrap;overflow-wrap:normal;}
@container (min-width:700px) {.c-calendar-01 .c-calendar-01__month .c-calendar-01__entry{font-size:var(--font-size-2-xs,1.2rem);}}
@container (min-width:900px) {.c-calendar-01 .c-calendar-01__month .c-calendar-01__table td{padding:var(--space-xs,.8rem);}.c-calendar-01 .c-calendar-01__month .c-calendar-01__entry{font-size:var(--font-size-xs,1.3rem);padding:var(--space-xs,.8rem) var(--space-3-xs,.4rem);}}
/* Only the seven-column grid scrolls; the title and controls remain outside it. */
@container (max-width:559px) {
    .c-calendar-01 .c-calendar-01__month {overflow-x:auto;overscroll-behavior-inline:contain;}
    .c-calendar-01 .c-calendar-01__month .c-calendar-01__table {width:max(100%,var(--layout-md,50rem));}
    .c-calendar-01 .c-calendar-01__month .c-calendar-01__table th {padding:var(--space-3-xs,.4rem) 0;}
    .c-calendar-01 .c-calendar-01__month .c-calendar-01__table td {padding:0;height:calc(var(--touch-target-min,4.4rem) + var(--space-4-xl,2.8rem));}
    .c-calendar-01 .c-calendar-01__month .c-calendar-01__day time {font-size:var(--font-size-2-xs,1.2rem);padding-inline:var(--space-4-xs,.2rem);margin-block-end:var(--space-4-xs,.2rem);}
    .c-calendar-01 .c-calendar-01__month .c-calendar-01__event {margin:0;}
    .c-calendar-01 .c-calendar-01__month .c-calendar-01__entry {padding:0 var(--space-4-xs,.2rem);min-height:var(--touch-target-min,4.4rem);border-radius:0;}
}
/* Top-layer details remain visible outside the grid's scroll clipping. */
.c-calendar-01 .c-calendar-01__month .c-calendar-01__tooltip[popover] {position:fixed;inset:var(--space-xl,1.6rem) 0 auto;margin:0 auto;height:max-content;width:var(--content-width-xs,28rem);max-width:calc(100vw - var(--space-3-xl,2.4rem));max-height:calc(50vh - var(--space-3-xl,2.4rem));}
.c-calendar-01 .c-calendar-01__month .c-calendar-01__tooltip[popover][data-placement="bottom"] {inset-block-start:auto;inset-block-end:var(--space-xl,1.6rem);}
.c-calendar-01 .c-calendar-01__scroll-wrap {position:relative;}
.c-calendar-01 .c-calendar-01__scroll-nav {position:absolute;z-index:10;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:var(--space-3-xs,.4rem);padding:var(--space-xs,.8rem) var(--space-xl,1.6rem);border:1px solid var(--jjcal-border);border-radius:var(--radius-md,.8rem);background:var(--color-bg,#fff);color:var(--jjcal-open);font-size:var(--font-size-xs,1.3rem);pointer-events:none;white-space:nowrap;}
.c-calendar-01 .c-calendar-01__scroll-arrows {font-size:var(--font-size-3-xl,2.4rem);line-height:var(--line-height-none,1);animation:jjcal-swipe var(--transition-slow,.4s ease) infinite alternate;}
@keyframes jjcal-swipe {from{transform:translateX(calc(-1 * var(--space-xs,.8rem)));}to{transform:translateX(var(--space-xs,.8rem));}}
@media (prefers-reduced-motion:reduce) {.c-calendar-01 .c-calendar-01__scroll-arrows {animation:none;}}
