[data-weekly-schedule] { padding:26px; }
[data-weekly-schedule] .weekly-schedule-heading,
[data-weekly-schedule] nav { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
[data-weekly-schedule] h2 { margin:0; font-size:clamp(1.4rem,2.5vw,1.9rem); letter-spacing:-.04em; }
.weekly-schedule-heading > div > p:last-child { margin:8px 0 0; color:#64748b; font-size:14px; }
[data-weekly-schedule] nav { background:#f5f8fa; border:1px solid #e4ebef; border-radius:14px; padding:5px; gap:12px; }
[data-weekly-schedule] nav strong { font-size:13px; color:#34465a; font-weight:650; }
[data-weekly-schedule] button { border:1px solid transparent; border-radius:10px; background:#007f84; color:white; padding:10px 15px; font:inherit; font-size:13px; font-weight:700; cursor:pointer; transition:background .15s,box-shadow .15s; }
[data-weekly-schedule] button:hover:not(:disabled) { background:#00666e; box-shadow:0 3px 9px #004f5814; }
[data-weekly-schedule] nav button,
[data-weekly-schedule] [data-copy],
[data-weekly-schedule] [data-cancel] { background:white; color:#00666e; border-color:#dde7eb; }
[data-weekly-schedule] nav button:hover:not(:disabled),
[data-weekly-schedule] [data-copy]:hover:not(:disabled),
[data-weekly-schedule] [data-cancel]:hover:not(:disabled) { background:#edf7f7; }
[data-weekly-schedule] button:disabled { opacity:.5; cursor:default; }
[data-weekly-schedule] button:focus-visible { outline:3px solid #06b6c4; outline-offset:3px; }
[data-weekly-schedule] [role=status]:empty { display:none; }
[data-weekly-schedule] [role=status] { font-size:14px; color:#52677a; }
.weekly-schedule-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:12px; margin-top:24px; }
.weekly-schedule-day { background:linear-gradient(160deg,#fff,#f7fbfb); border:1px solid #e0e9ed; border-top:3px solid #83c7c4; border-radius:14px; padding:18px 14px; overflow-wrap:anywhere; box-shadow:0 3px 10px #183a4a04; }
.weekly-schedule-day h3 { color:#163a43; margin:0 0 6px; font-size:15px; font-weight:750; letter-spacing:-.02em; }
.weekly-schedule-date { display:block; color:#718296; font-size:12px; }
.weekly-schedule-day .weekly-schedule-hours { font-size:13px; line-height:1.6; font-weight:650; color:#284c56; margin:20px 0 12px; font-variant-numeric:tabular-nums; }
.weekly-schedule-goals { display:flex; gap:6px; flex-wrap:wrap; }
.weekly-schedule-goals:empty { display:none; }
.weekly-schedule-goal { display:inline-flex; padding:6px 9px; border-radius:8px; background:#e5f4f1; color:#07645e; font-size:12px; font-weight:750; }
.weekly-schedule-day .weekly-schedule-location { font-size:12px; line-height:1.5; color:#627687; margin:12px 0 0; }
.weekly-schedule-day.is-off { background:#f8f9fb; border-top-color:#dce3e9; box-shadow:none; }
.weekly-schedule-day.is-off h3 { color:#64748b; }
.weekly-schedule-rest { display:inline-block; margin:20px 0 0; padding:6px 10px; border-radius:8px; background:#ecf0f4; color:#627080; font-size:12px; font-weight:650; }
.weekly-schedule-day label { display:block; font-size:12px; font-weight:600; margin-top:12px; color:#004f58; }
.weekly-schedule-day input:not([type=checkbox]) { box-sizing:border-box; width:100%; min-width:0; border:1px solid #cbdde1; border-radius:8px; padding:8px; background:white; font:inherit; color:#132031; }
.weekly-schedule-day input:disabled { opacity:.45; }
.weekly-schedule-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; padding-top:18px; border-top:1px solid #edf1f4; }
@media(max-width:1400px) { .weekly-schedule-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:850px) { .weekly-schedule-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) {
  [data-weekly-schedule] { padding:18px; }
  [data-weekly-schedule] nav { width:100%; box-sizing:border-box; justify-content:space-between; gap:6px; }
  [data-weekly-schedule] nav strong { order:-1; width:100%; text-align:center; padding:8px 0; }
  .weekly-schedule-grid { gap:10px; }
  .weekly-schedule-day { padding:14px 10px; }
}
.weekly-time-blocks { display:grid; gap:10px; margin-top:14px; }
.weekly-time-blocks:empty { display:none; }
.weekly-time-block { display:grid; gap:5px; border-left:4px solid var(--slot-color,#81c7c4); padding:10px 12px; background:color-mix(in srgb,var(--slot-color,#81c7c4) 9%,white); border-radius:0 8px 8px 0; font-size:12px; color:#234b56; }
.work-plan-legend { display:flex; justify-content:center; flex-wrap:wrap; gap:12px 20px; padding:18px 26px; border-bottom:1px solid #e2ebef; }
.weekly-time-block small { color:#52677a; }
.weekly-time-blocks fieldset { min-width:0; margin:0; padding:10px; border:1px solid #cbdde1; border-radius:10px; }
.weekly-time-blocks legend { font-size:12px; color:#52677a; }
.weekly-time-blocks select { width:100%; padding:8px; border:1px solid #cbdde1; border-radius:8px; background:white; color:#132031; }
[data-weekly-schedule] [data-add-slot], [data-weekly-schedule] [data-remove-slot] { margin-top:12px; padding:8px; background:#edf7f7; color:#00666e; font-size:12px; }
[data-weekly-schedule] [data-add-slot]:hover:not(:disabled),
[data-weekly-schedule] [data-remove-slot]:hover:not(:disabled) { background:#00666e; color:#fff; }
[data-weekly-schedule]:has([data-add-slot]) .weekly-schedule-grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.my-day-plan { padding:22px; border:1px solid #dce8ec; border-radius:18px; background:#fff; color:#163a43; }
.my-day-plan h2 { margin:0 0 10px; font-size:20px; }
.my-day-plan .weekly-schedule-goals { margin:12px 0; }
.my-day-weather { padding:12px; border-radius:10px; background:#f3f7fa; font-size:13px; line-height:1.6; margin-top:12px; }
.schedule-calendar-link { display:inline-flex; padding:12px 18px; border-radius:12px; background:#007f84; color:white; text-decoration:none; font-weight:700; }
.schedule-calendar-link:hover { background:#00666e; color:white; }
.calendar-work-planner { background:white; border:1px solid #dce8ec; border-radius:20px; margin:20px 0; overflow:hidden; }
.work-plan-header { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:16px 24px; padding:16px 26px 0; }
.work-plan-rep-label { display:flex; align-items:center; gap:10px; margin:0; color:#526f79; font-size:13px; font-weight:700; }
.work-plan-rep-name { color:#526f79; font-size:14px; }
.calendar-work-planner [data-weekly-schedule] > .weekly-schedule-heading { display:none; }
.calendar-work-planner [data-weekly-schedule] { padding-top:0; }
.work-plan-header [hidden] { display:none; }
@media(max-width:600px) {
  .work-plan-header { padding:18px 18px 0; gap:12px; }
  .work-plan-rep-label { max-width:100%; }
  .work-plan-rep-label select { min-width:0; }
}
.work-plan-rep-label select, .schedule-view-controls select { padding:10px; border:1px solid #cbdde1; border-radius:10px; background:white; color:#163a43; max-width:100%; }
.schedule-view-controls { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:20px; }
[data-weekly-schedule] .schedule-view-controls button[aria-pressed=false] { background:#edf7f7; color:#00666e; }
[data-weekly-schedule] .schedule-view-controls button[aria-pressed=false]:hover { background:#d4eeed; color:#00666e; }
[data-weekly-schedule] .weekly-schedule-grid.is-day-view { grid-template-columns:minmax(0,1fr); }
.weekly-schedule-day[hidden],.work-plan-rep-label[hidden] { display:none; }
.weekly-schedule-day textarea { width:100%; box-sizing:border-box; min-height:90px; padding:10px; border:1px solid #cbdde1; border-radius:8px; font:inherit; resize:vertical; }
.schedule-preparation { white-space:pre-wrap; font-size:14px; line-height:1.6; color:#345460; }
.daily-call-progress { display:grid; gap:8px; padding:18px; border:1px solid #cbe5e3; border-radius:14px; background:#f0f9f8; }
.daily-call-progress > strong { font-size:32px; color:#005c62; }
.daily-call-progress strong small { font-size:16px; font-weight:500; }
.daily-call-progress > small { color:#607580; font-size:12px; }
.daily-call-progress progress { width:100%; height:12px; accent-color:#008b8f; }
.my-day-plan h3 { font-size:16px; margin:22px 0 12px; }
.calendar-top-schedule-row { display:flex; justify-content:center; padding:0 12px; min-width:0; }
body[data-page-key="calendar"] .calendar-top-schedule-row .calendar-schedule-switch { display:flex; width:760px; max-width:100%; margin:0 0 14px; box-sizing:border-box; }
body[data-page-key="calendar"] .calendar-top-schedule-row .calendar-schedule-switch button { flex:1 1 0; min-width:0; height:48px; padding:0 12px; font-size:14px; }
body[data-page-key="calendar"] .calendar-top-schedule-row .calendar-schedule-switch button[hidden] { display:none; }
body[data-page-key="calendar"] .calendar-top-schedule-row .calendar-schedule-switch button:hover { background:#d9eeee; color:#00575e; }
body[data-page-key="calendar"] .calendar-top-schedule-row .calendar-schedule-switch button:is(.active,[aria-pressed=true]) { background:linear-gradient(135deg,#075965,#08a9aa); color:#fff; box-shadow:0 8px 18px rgba(7,103,111,.18); }
body[data-page-key="calendar"] .calendar-top-schedule-row .calendar-schedule-switch button:focus-visible { outline:3px solid #0aa6a8; outline-offset:-3px; }
body.work-schedule-active .calendar-layout,
body.work-schedule-active .calendar-bottom-agenda { display:none !important; }
body[data-page-key="calendar"] .calendar-toolbar .calendar-product-legend { justify-content:center; }
@media(min-width:1181px) {
  body[data-page-key="calendar"] .calendar-toolbar { grid-template-rows:36px minmax(76px,auto); }
  body[data-page-key="calendar"] .calendar-toolbar .calendar-product-legend { max-width:520px; gap:8px 12px; }
}
.calendar-work-planner[hidden], .schedule-view-controls[hidden], [data-weekly-schedule] nav[hidden] { display:none !important; }
.calendar-dashboard-shell > .calendar-work-planner { margin:0; border:0; border-radius:0 0 20px 20px; }
.slot-weather { margin-top:6px; padding-top:8px; border-top:1px solid #cee4e4; font-size:12px; line-height:1.5; color:#42616b; }
.slot-weather a { color:#00666e; }
@media(max-width:600px) {
  .calendar-top-schedule-row { padding:0; }
  body[data-page-key="calendar"] .calendar-top-schedule-row .calendar-schedule-switch { gap:2px; padding:4px; }
  body[data-page-key="calendar"] .calendar-top-schedule-row .calendar-schedule-switch button { padding:0 3px; font-size:11px; white-space:normal; line-height:1.3; }
}
