*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:0;overflow:hidden;background:transparent;color:#253126;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}.widget{max-width:1200px;margin:auto;padding:14px;background:#fff}header{text-align:center;margin:0 0 12px}h1{font-size:22px;margin:0 0 5px}.title-row{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:8px}.title-row h1{margin:0}.month-nav{display:grid;place-items:center;width:38px;height:38px;border:1px solid #d9dfda;border-radius:50%;text-decoration:none;color:#344438;font-size:30px;line-height:1;background:#fff}.month-nav:hover,.month-nav:focus{border-color:var(--primary);outline:2px solid color-mix(in srgb,var(--primary) 18%,transparent)}header p,.hint{color:#667168;font-size:13px;margin:4px 0 0}.months{display:grid;gap:18px}.months-2,.months-3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.month{border:1px solid #cfd6d0;background:#fff}.month h2{font-size:17px;text-align:center;margin:0;padding:9px;border-bottom:1px solid #cfd6d0;background:#fff}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays span{text-align:center;font-size:12px;font-weight:700;padding:6px 2px;background:#fff;border-right:1px solid #d8ded9}.weekdays span:first-child{color:#d63d3d}.weekdays span:last-child{color:#2459b1}.day{position:relative;min-height:var(--cell-height);padding:4px;border-top:1px solid #d8ded9;border-right:1px solid #d8ded9;text-decoration:none;color:#202820;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;overflow:hidden}.day:nth-child(7n){border-right:0}.day[href]{cursor:pointer}.day[href]:hover,.day[href]:focus{outline:3px solid color-mix(in srgb,var(--primary) 75%,white);outline-offset:-3px;z-index:1}.date-number{font-size:14px;font-weight:600;line-height:1.1}.day.sun .date-number{color:#cf3333}.day.sat .date-number{color:#2459b1}.mark{font-size:19px;line-height:1}.holiday-name{font-size:9px;color:#b92f2f;text-align:center;line-height:1.1;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day.adjacent,.day.blank{background:var(--adjacent-color);color:#9ca39d}.day.closed{background:var(--closed-color)}.day.open{background:var(--open-color)}.day.schedule-1{background:var(--open-1)}.day.schedule-2{background:var(--open-2)}.day.schedule-3{background:var(--open-3)}.day.schedule-4{background:var(--open-4)}.day.schedule-5{background:var(--open-5)}.day.schedule-6{background:var(--open-6)}.day.available{background:var(--available-color)}.day.few{background:var(--few-color)}.day.full{background:var(--full-color)}.day.outside{background:var(--outside-color);color:#858c86}.solid-style .day{justify-content:center}.solid-style .date-number{font-size:15px}.solid-style .mark{font-size:15px}.mark-style .day{min-height:max(var(--cell-height),62px)}.mark-style .date-number{position:absolute;top:4px;left:6px;font-size:12px}.legend{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 15px;margin-top:13px;font-size:12px}.legend span{display:flex;align-items:center;gap:6px}.swatch{display:inline-block;width:19px;height:19px;border:1px solid #c8d0ca;background:#fff}.swatch.closed{background:var(--closed-color)}.swatch.open{background:var(--open-color)}.swatch.schedule-1{background:var(--open-1)}.swatch.schedule-2{background:var(--open-2)}.swatch.schedule-3{background:var(--open-3)}.swatch.schedule-4{background:var(--open-4)}.swatch.schedule-5{background:var(--open-5)}.swatch.schedule-6{background:var(--open-6)}.swatch.available{background:var(--available-color)}.swatch.few{background:var(--few-color)}.swatch.full{background:var(--full-color)}.hint{text-align:center;margin-top:9px}@media(max-width:520px){.widget{padding:7px}h1{font-size:18px}.title-row{grid-template-columns:34px minmax(0,1fr) 34px}.month-nav{width:32px;height:32px;font-size:25px}.month h2{font-size:15px;padding:7px}.day{padding:3px}.date-number,.solid-style .date-number{font-size:13px}.holiday-name{font-size:7.5px}.months{gap:12px}.legend{justify-content:flex-start;gap:8px 12px}.swatch{width:17px;height:17px}}

/* v1.0.0-beta3.36: plain availability calendar */
.plain-style .day:not(.adjacent):not(.blank){background:#fff}
.plain-style .day{min-height:max(var(--cell-height),56px)}
.plain-style .date-number{position:absolute;top:5px;left:6px;font-size:12px}
.plain-style .mark{font-size:25px;font-weight:800;line-height:1}
.plain-style .day.available .mark{color:var(--mark-available)}
.plain-style .day.few .mark{color:var(--mark-few)}
.plain-style .day.full .mark,.plain-style .day.closed .mark{color:var(--mark-full)}
.plain-style .day.outside .mark{color:var(--mark-outside)}
.plain-style .holiday-name{position:absolute;bottom:3px;left:2px;right:2px}
.legend-mark{display:inline-grid;place-items:center;width:19px;height:19px;font-size:18px;font-weight:800;line-height:1}
.legend-mark.available{color:var(--mark-available)}.legend-mark.few{color:var(--mark-few)}.legend-mark.full{color:var(--mark-full)}

/* v1.0.0-beta3.38: special openings/closures shared from management calendar */
.day.schedule-colored{background:var(--schedule-color,var(--open-color))}
.swatch[style*="--legend-color"]{background:var(--legend-color)}
.day.availability-mark-available .mark{color:var(--mark-available)}
.day.availability-mark-few .mark{color:var(--mark-few)}
.day.availability-mark-full .mark{color:var(--mark-full)}
.day.availability-mark-outside .mark{color:var(--mark-outside)}
.combined-availability .day:not(.adjacent):not(.blank){min-height:max(var(--cell-height),56px)}
.combined-availability .mark{font-size:22px;font-weight:800;line-height:1;text-shadow:0 1px 0 rgba(255,255,255,.72)}
.combined-availability .legend-section{margin-left:8px}
@media(max-width:520px){.combined-availability .mark{font-size:20px}.combined-availability .legend-section{margin-left:0}}


/* v1.0.0-beta3.42: exact iframe height without bottom whitespace */
.widget{min-height:0}

/* v1.0.0-beta3.42: admin-only calendar preview */
.admin-preview-badge{display:inline-flex;align-items:center;margin:0 0 8px;padding:4px 9px;border-radius:999px;background:#eef3f8;color:#40566c;font-size:12px;font-weight:700;line-height:1.4}
