/* Scoped calendar surface; shared navigation and registration editor remain independent. */
.cw-workspace{--cw-ink:#1d294b;--cw-muted:#4e5c78;--cw-line:#bdc9dc;--cw-primary:#3d56a3;color:var(--cw-ink);font-family:"Noto Sans JP",sans-serif;container-type:inline-size;min-width:0}
.cw-workspace *{box-sizing:border-box}
.cw-workspace button{font:inherit;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent}
.cw-workspace button:focus-visible,.cw-week-scroll:focus-visible{outline:3px solid #4f69b8;outline-offset:2px;z-index:4}
.cw-toolbar{display:flex;align-items:center;gap:16px;padding:10px 0 20px;flex-wrap:wrap}
.cw-period{display:flex;align-items:baseline;gap:12px;min-width:106px}
.cw-year{font-size:15px;color:var(--cw-muted);font-variant-numeric:tabular-nums}
.cw-period h2{margin:0;font-size:30px;line-height:1.3;letter-spacing:-.05em;font-weight:700;font-variant-numeric:tabular-nums}
.cw-navigation{display:flex;align-items:center;gap:4px}
.cw-navigation button{width:38px;height:40px;border:1px solid transparent;border-radius:7px;background:transparent;font-size:25px;line-height:1}
.cw-navigation .cw-today{width:auto;padding:0 14px;font-size:13px;border-color:var(--cw-line);background:#fff;margin-left:4px}
.cw-view-switch{margin-left:auto;display:flex;background:#dce3f0;border-radius:8px;padding:3px;gap:2px}
.cw-view-switch button{min-width:43px;height:34px;padding:0 12px;background:transparent;border:0;border-radius:5px;font-size:13px;color:var(--cw-muted)}
.cw-view-switch button[aria-pressed=true]{background:var(--cw-primary);color:#fff;font-weight:700;box-shadow:none}
.cw-registration-actions{display:flex;align-items:center;gap:8px}.cw-drafts{border:0;background:none;min-height:40px;padding:0 9px;color:#526694!important;font-size:12px!important}.cw-create-short{display:none}
.cw-create{background:var(--cw-primary);color:#fff!important;border:0;border-radius:7px;font-size:13px!important;font-weight:600!important;padding:0 16px;min-height:40px}
.cw-month{background:#fff;border:1px solid var(--cw-line);border-radius:10px;overflow:hidden}
.cw-weekdays,.cw-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cw-weekdays{background:#e5ebf5;border-bottom:1px solid var(--cw-line)}
.cw-weekdays span{text-align:center;padding:12px 0;font-size:12px;color:#3c4d6b;font-weight:600}
.cw-weekdays .is-sun{color:#983947}.cw-weekdays .is-sat{color:#305aa4}
.cw-day{min-height:126px;padding:7px 5px 9px;border-right:1px solid var(--cw-line);border-bottom:1px solid var(--cw-line);position:relative;min-width:0;cursor:pointer}
.cw-day:nth-child(7n){border-right:0}.cw-day:nth-last-child(-n+7){border-bottom:0}
.cw-day.is-outside{background:#f7f8fb}.cw-day.is-outside .cw-day-number{color:var(--cw-muted)}
.cw-day.is-selected{background:#e7edfb;box-shadow:inset 0 0 0 2px #3d56a3}
.cw-day-top{display:flex;align-items:center;justify-content:space-between;margin:0 1px 5px}
.cw-day-number{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;background:none;border-radius:50%;font-size:13px!important;font-weight:600!important;font-variant-numeric:tabular-nums}
.cw-day.is-today .cw-day-number,.cw-day.is-selected .cw-day-number{background:var(--cw-primary);color:#fff}
.cw-day-add{width:28px;height:28px;border:0;border-radius:5px;background:transparent;font-size:18px!important;color:#687cae!important;opacity:0}
.cw-day:hover .cw-day-add,.cw-day:focus-within .cw-day-add{opacity:1}
.cw-event{display:flex;width:100%;align-items:center;gap:5px;text-align:left;margin:3px 0 0;padding:5px 6px;background:#f0f2f8;background:color-mix(in srgb,var(--cw-event-color) 30%,white);border:1px solid color-mix(in srgb,var(--cw-event-color) 42%,white);border-left:4px solid color-mix(in srgb,var(--cw-event-color) 75%,#14213d);border-radius:4px;overflow:hidden;min-width:0;font-size:11px!important;line-height:1.5;position:relative}
.cw-event:before{display:none}
.cw-event-time{font-size:10px;font-weight:500;white-space:nowrap;flex:none;font-variant-numeric:tabular-nums}
.cw-event-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.cw-spans{display:none}.cw-more{display:block;width:100%;border:0;background:none;color:#526694!important;text-align:left;padding:5px 8px;font-size:11px!important;font-weight:600!important}
.cw-day-dots{display:none}
.cw-agenda{margin-top:22px;background:#fff;border:1px solid var(--cw-line);border-radius:10px;overflow:hidden}
.cw-agenda-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;border-bottom:1px solid var(--cw-line)}
.cw-agenda h3{margin:0;font-size:15px;font-weight:600}.cw-agenda h3 span{font-size:11px;font-weight:400;color:var(--cw-muted);margin-left:12px}
.cw-text-button{background:none;border:0;color:var(--cw-primary)!important;font-size:13px!important;min-height:36px;white-space:nowrap}
.cw-agenda-event{display:flex;align-items:center;gap:22px;text-align:left;border:0;border-bottom:1px solid #edf0f6;background:none;width:100%;padding:18px}
.cw-agenda-event:last-child{border-bottom:0}.cw-agenda-time{min-width:105px;font-size:12px;font-variant-numeric:tabular-nums;align-self:flex-start;padding-top:3px}
.cw-agenda-copy{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.cw-agenda-copy strong{font-size:14px;line-height:1.6;font-weight:600;overflow-wrap:anywhere;white-space:pre-line}
.cw-agenda-category{font-size:11px;font-weight:600;color:color-mix(in srgb,var(--cw-event-color) 55%,#14213d);display:flex;align-items:center;gap:6px;align-self:flex-start;padding:2px 6px;border-radius:3px;background:color-mix(in srgb,var(--cw-event-color) 22%,white)}.cw-agenda-category:before{content:"";width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--cw-event-color) 75%,#14213d)}
.cw-agenda-location{font-size:12px;color:var(--cw-muted);overflow-wrap:anywhere}.cw-agenda-arrow{font-size:22px;color:#52617d}.cw-empty{font-size:13px;color:var(--cw-muted);padding:25px 18px;margin:0}
.cw-week-scroll{overflow:auto;border:1px solid var(--cw-line);border-radius:10px;max-height:660px;background:#fff;scrollbar-width:thin}
.cw-week{min-width:690px}.cw-week-head,.cw-week-allday,.cw-week-body{display:grid;grid-template-columns:68px repeat(7,minmax(0,1fr))}
.cw-week-head{position:sticky;top:0;z-index:5;background:#e5ebf5;border-bottom:1px solid var(--cw-line)}
.cw-week-date{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0;border:0;border-left:1px solid var(--cw-line);background:#e5ebf5}.cw-week-date span{font-size:11px;color:var(--cw-muted)}.cw-week-date b{display:grid;place-items:center;font-size:17px;width:30px;height:30px;border-radius:50%;font-weight:600}.cw-week-date.is-selected{background:#d8e2f7;box-shadow:inset 0 -3px var(--cw-primary)}.cw-week-date.is-today b{background:var(--cw-primary);color:#fff}
.cw-week-allday{border-bottom:1px solid var(--cw-line);background:#fafbfe;align-items:stretch}.cw-week-allday>div{padding:3px;border-left:1px solid var(--cw-line);min-width:0}.cw-week-allday .cw-event{flex-wrap:wrap;gap:2px}.cw-week-allday .cw-event-time{display:none}.cw-week-corner{display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--cw-muted)}
.cw-week-body{height:var(--cw-week-height)}.cw-hours{position:relative}.cw-hours span{position:absolute;right:9px;font-size:10px;color:var(--cw-muted);font-variant-numeric:tabular-nums;transform:translateY(3px)}
.cw-week-column{position:relative;border-left:1px solid var(--cw-line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,var(--cw-line) 59px,var(--cw-line) 60px)}
.cw-time-slots{display:flex;flex-direction:column;height:100%}.cw-time-slots button{height:60px;flex:none;border:0;background:none;width:100%;padding:0}.cw-time-slots button:hover,.cw-time-slots button:focus-visible{background:#4f69b80d}
.cw-event.cw-timed{position:absolute;margin:0;display:block;padding:3px 5px;border:1px solid color-mix(in srgb,var(--cw-event-color) 42%,white);border-left:4px solid color-mix(in srgb,var(--cw-event-color) 75%,#14213d);border-radius:4px;z-index:2}.cw-timed:before{display:none}.cw-timed .cw-event-time{display:block;font-size:9px}.cw-timed .cw-event-title{white-space:normal;display:block;font-size:11px;overflow-wrap:anywhere;line-height:1.35}
.cw-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(hover:hover){.cw-navigation button:hover,.cw-text-button:hover{background:#e8edf8}.cw-event:hover{filter:brightness(.96)}.cw-agenda-event:hover{background:#f8fafe}.cw-create:hover{background:#415da8}}
@media(hover:none){.cw-day-add{opacity:1}}
@container(max-width:900px){.cw-toolbar{gap:10px}.cw-period h2{font-size:26px}.cw-create{padding:0 12px}.cw-day{min-height:116px}.cw-day-events .cw-event-time{display:none}}
@container(max-width:620px){.cw-toolbar{gap:8px;padding-bottom:14px}.cw-period{gap:8px}.cw-period h2{font-size:25px}.cw-navigation{margin-left:auto}.cw-navigation button{min-width:36px;min-height:42px}.cw-navigation .cw-today{padding:0 10px;margin-left:2px}.cw-view-switch{margin-left:0}.cw-view-switch button{height:37px;min-width:45px}.cw-create{margin-left:auto;min-height:43px}.cw-month{border-radius:8px}.cw-weekdays span{padding:9px 0;font-size:11px}.cw-day{min-height:59px;padding:4px 0 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:0;border-bottom:0}.cw-day-top{margin:0;width:100%;justify-content:center}.cw-day-number{width:36px;height:36px;font-size:13px!important}.cw-day-add,.cw-day-events{display:none}.cw-day-dots{height:9px;display:flex;gap:3px;align-items:center;justify-content:center}.cw-day-dots i{display:block;width:6px;height:6px;border-radius:50%}.cw-day-dots small{font-size:9px;line-height:1;color:#6877a0}.cw-day.is-selected{box-shadow:inset 0 0 0 2px #3d56a3;background:#e7edfb;border-radius:6px}.cw-day.is-outside{background:transparent}.cw-agenda{margin-top:16px}.cw-agenda-head{padding:10px 13px}.cw-agenda h3{font-size:14px}.cw-agenda h3 span{margin-left:7px;font-size:10px}.cw-agenda-event{gap:12px;padding:15px 13px}.cw-agenda-time{font-size:10px;min-width:74px;max-width:79px;white-space:normal}.cw-agenda-copy strong{font-size:13px}.cw-agenda-location{font-size:11px}.cw-text-button{min-height:42px}.cw-week-scroll{max-height:540px}}
@media(prefers-reduced-motion:reduce){.cw-workspace *{scroll-behavior:auto!important}}

@container(max-width:380px){.cw-view-switch button{min-width:38px;padding:0 8px}.cw-create{padding:0 10px;font-size:12px!important}.cw-workspace[data-view=week] .cw-period h2{font-size:20px}.cw-period{min-width:0;gap:7px}}

@container(max-width:620px){.cw-registration-actions{margin-left:auto;gap:3px}.cw-drafts{padding:0 7px;min-height:43px}.cw-create-long{display:none}.cw-create-short{display:inline}.cw-registration-actions .cw-create{margin-left:0;padding:0 10px}}

.cw-sync-error{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:12px 16px;background:#fff2da;color:#674408;border:1px solid #c9993e;border-radius:6px;font-size:13px;font-weight:500}
.cw-sync-error button{flex:none;min-height:40px;padding:0 12px;background:#fffaf0;border:1px solid #8d691e;border-radius:4px;font-weight:600}
.cw-sync-error button:disabled{cursor:wait}
@container(max-width:620px){.cw-sync-error{gap:8px;padding:10px;font-size:12px}}

/* Weekend/holiday tones stay visible alongside today's circle and selection ring. */
.cw-workspace{--cw-sat-bg:#f0f5ff;--cw-sat-fg:#305aa4;--cw-holiday-bg:#fff1f3;--cw-holiday-fg:#983947}
.cw-workspace :is(.cw-day,.cw-week-date,.cw-week-column,.cw-week-allday>div).is-sat{background-color:var(--cw-sat-bg)}
.cw-workspace :is(.cw-day,.cw-week-date,.cw-week-column,.cw-week-allday>div):is(.is-sun,.is-holiday){background-color:var(--cw-holiday-bg)}
.cw-day.is-sat .cw-day-number,.cw-week-date.is-sat :is(span,b){color:var(--cw-sat-fg)}
.cw-day:is(.is-sun,.is-holiday) .cw-day-number,.cw-week-date:is(.is-sun,.is-holiday) :is(span,b){color:var(--cw-holiday-fg)}
.cw-workspace .cw-day:is(.is-today,.is-selected) .cw-day-number,.cw-workspace .cw-week-date.is-today b{color:#fff}
.cw-holiday{display:block;color:var(--cw-holiday-fg);font-size:10px;line-height:1.4;font-weight:600;overflow-wrap:anywhere;margin:0 2px 4px}
.cw-week-date .cw-holiday{font-size:10px;color:var(--cw-holiday-fg);margin:0 3px}
.cw-day.is-outside .cw-holiday{opacity:.7}
@container(max-width:620px){.cw-holiday{font-size:9px;text-align:center;max-width:100%;margin:1px 2px 3px}.cw-day.is-holiday{justify-content:flex-start}}
