/* tORu private schedule — scoped to avoid changing existing portal/calendar styling. */
.toru-mycal{margin:36px 0 54px;padding:26px;border:1px solid #dedbd5;background:#fff;color:#1a2c42;box-sizing:border-box;font-family:"ヒラギノ角ゴ ProN","Noto Sans JP",sans-serif}
.toru-mycal *{box-sizing:border-box}.toru-mycal [hidden]{display:none!important}
.toru-mycal-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px}.toru-mycal-heading h2{font-family:"Noto Serif JP",serif;font-weight:500;font-size:clamp(23px,2.8vw,32px);margin:8px 0 10px;color:#1a2c42}.toru-mycal-heading p{font-size:12px;line-height:1.9;margin:0;color:#615f5b;max-width:660px}.toru-mycal-eyebrow{font-size:10px;letter-spacing:.16em;color:#8b7770}
.toru-mycal-modes{display:flex;gap:5px;flex-shrink:0}.toru-mycal button{cursor:pointer;border:1px solid #d9d6d0;background:#fff;color:#1a2c42;padding:9px 14px;font:inherit;font-size:12px}.toru-mycal button[aria-pressed="true"]{background:#1a2c42;color:#fff;border-color:#1a2c42}.toru-mycal button:disabled{opacity:.3;cursor:default}.toru-mycal-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid #e8e5df;border-bottom:1px solid #e8e5df;margin-bottom:12px}.toru-mycal-toolbar strong{font-size:15px;font-weight:600}.toru-mycal-toolbar button{min-width:43px}.toru-mycal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #e8e5df;border-left:1px solid #e8e5df}.toru-mycal-weekday{padding:10px 3px;text-align:center;color:#77736e;font-size:12px;border-right:1px solid #e8e5df;border-bottom:1px solid #e8e5df}.toru-mycal-date{min-width:0;min-height:103px;padding:7px 5px;border-right:1px solid #e8e5df;border-bottom:1px solid #e8e5df}.toru-mycal-date-num{display:block;font-size:12px;margin-bottom:6px}.toru-mycal-date.is-other{background:#f9f8f6}.toru-mycal-event{display:block;min-width:0;padding:5px 6px;margin:4px 0;border-left:3px solid #1a2c42;background:#edf1f4;color:#1a2c42!important;text-decoration:none!important;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.toru-mycal-event time{font-weight:700;margin-right:4px}.toru-mycal-event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toru-mycal-event:hover{filter:brightness(.96)}.toru-mycal-event.is-hold{border-color:#bb9c78;background:#f5eee6}.toru-mycal-event.is-awaiting_payment{border-color:#ad862e;background:#faf2d9}.toru-mycal-event.is-completed,.toru-mycal-event.is-completion_reported{border-color:#3c8872;background:#e9f4ee}.toru-mycal-event.is-declined,.toru-mycal-event.is-expired,.toru-mycal-event.is-cancelled{border-color:#b8b6b2;background:#f2f1ee;color:#636363!important}.toru-mycal-more{font-size:10px;color:#726e67}
.toru-mycal-week-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.toru-mycal-week-grid{display:grid;grid-template-columns:70px repeat(7,minmax(90px,1fr));min-width:700px;border-left:1px solid #e8e5df;border-top:1px solid #e8e5df}.toru-mycal-hour,.toru-mycal-day-head,.toru-mycal-slot{min-width:0;min-height:46px;padding:4px;border-right:1px solid #e8e5df;border-bottom:1px solid #e8e5df}.toru-mycal-hour{font-size:11px;color:#77736e;text-align:center;padding-top:12px}.toru-mycal-day-head{font-size:12px;font-weight:700;text-align:center;padding-top:12px;background:#f8f7f5}.toru-mycal-slot.is-available{background:#f3f8f3}.toru-mycal-slot .toru-mycal-event{margin:0;padding:3px;font-size:10px}.toru-mycal-buffer,.toru-mycal-available{font-size:10px;display:block;text-align:center;padding:9px 0;color:#86796b}.toru-mycal-available{color:#40755d}
.toru-mycal-legend{display:flex;gap:9px 16px;flex-wrap:wrap;margin:16px 0 30px;font-size:11px;color:#625f5b}.toru-mycal-legend span:before{content:"";display:inline-block;width:10px;height:10px;vertical-align:middle;margin-right:5px;background:#1a2c42}.toru-mycal-legend .is-hold:before{background:#bb9c78}.toru-mycal-legend .is-awaiting_payment:before{background:#ad862e}.toru-mycal-legend .is-completed:before{background:#3c8872}.toru-mycal-legend .is-expired:before{background:#b8b6b2}.toru-mycal-legend .is-available:before{background:#a9d5b4}.toru-mycal-legend .is-buffer:before{background:#e4d5bd}.toru-mycal-upcoming{border-top:1px solid #e8e5df;padding-top:17px}.toru-mycal-upcoming h3{font-size:17px;margin:0 0 10px;color:#1a2c42}.toru-mycal-upcoming-row{display:flex;gap:12px;align-items:center;padding:13px 5px;border-bottom:1px solid #eceae5;color:#1a2c42!important;text-decoration:none!important;font-size:12px}.toru-mycal-upcoming-row time{font-weight:700;min-width:190px}.toru-mycal-upcoming-row span:last-child{margin-left:auto}.toru-mycal-empty{font-size:12px;color:#77736e}
@media(max-width:700px){.toru-mycal{padding:15px;margin:24px 0 36px}.toru-mycal-heading{display:block}.toru-mycal-modes{margin-top:15px}.toru-mycal-date{min-height:78px;padding:3px}.toru-mycal-date-num{font-size:11px}.toru-mycal-event{font-size:9px;padding:3px;margin:2px 0}.toru-mycal-event span{display:none}.toru-mycal-week-grid{min-width:760px}.toru-mycal-upcoming-row{align-items:flex-start;flex-wrap:wrap}.toru-mycal-upcoming-row time{min-width:100%;}}
/* v0.8.6: calendar controls — actual markup .toru-mycal-*, isolate from Divi button defaults. */
.toru-mycal .toru-mycal-heading {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  align-items: end; gap: 18px; min-width: 0;
}
.toru-mycal .toru-mycal-heading > div:first-child { min-width: 0; }
.toru-mycal .toru-mycal-modes {
  display: inline-flex; flex-flow: row nowrap; align-items: center;
  justify-content: flex-end; gap: 6px; min-width: max-content;
}
.toru-mycal .toru-mycal-modes button[data-mode] {
  display: inline-flex !important; flex: 0 0 auto !important;
  align-items: center; justify-content: center;
  width: auto !important; min-width: 78px !important; max-width: none !important;
  height: 42px !important; min-height: 42px !important;
  margin: 0 !important; padding: 0 14px !important;
  border: 1px solid #d9d6d0 !important; border-radius: 6px !important;
  background: #fff !important; color: #1a2c42 !important;
  font-size: 13px !important; font-weight: 600 !important;
  line-height: 1.4 !important; text-align: center !important;
  white-space: nowrap !important; writing-mode: horizontal-tb !important;
}
.toru-mycal .toru-mycal-modes button[data-mode][aria-pressed="true"] {
  background: #1a2c42 !important; color: #fff !important;
  border-color: #1a2c42 !important;
}
.toru-mycal .toru-mycal-toolbar {
  display: grid !important; grid-template-columns: 44px minmax(0, 1fr) 44px !important;
  align-items: center !important; justify-content: initial !important;
  column-gap: 12px; width: 100%; min-width: 0;
  padding: 12px 0; margin: 0 0 12px;
}
.toru-mycal .toru-mycal-toolbar button[data-move] {
  display: inline-flex !important; flex: none !important;
  align-items: center !important; justify-content: center !important;
  width: 44px !important; min-width: 44px !important; max-width: 44px !important;
  height: 42px !important; min-height: 42px !important;
  padding: 0 !important; margin: 0 !important;
  border: 1px solid #d9d6d0 !important; border-radius: 6px !important;
  background: #fff !important; color: #1a2c42 !important;
  font-size: 20px !important; line-height: 1 !important;
  text-align: center !important; white-space: nowrap !important;
}
.toru-mycal .toru-mycal-toolbar strong[data-period] {
  display: block !important; min-width: 0 !important; width: 100% !important;
  margin: 0 !important; padding: 0 4px !important;
  color: #1a2c42 !important; font-size: 18px !important;
  font-weight: 600 !important; line-height: 1.5 !important;
  text-align: center !important; white-space: nowrap !important;
  word-break: keep-all !important; overflow-wrap: normal !important;
  writing-mode: horizontal-tb !important; text-orientation: mixed !important;
}
@media (max-width: 700px) {
  .toru-mycal .toru-mycal-heading { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .toru-mycal .toru-mycal-modes { justify-content: flex-start; min-width: 0; margin-top: 0; }
  .toru-mycal .toru-mycal-toolbar {
    grid-template-columns: 40px minmax(0, 1fr) 40px !important; column-gap: 8px;
  }
  .toru-mycal .toru-mycal-toolbar button[data-move] {
    width: 40px !important; min-width: 40px !important; max-width: 40px !important;
  }
  .toru-mycal .toru-mycal-toolbar strong[data-period] { font-size: 15px !important; }
}
