/* Home calendar: a compact TOAST-style shell around the existing PS Log Todo data. */
.home-schedule{
  --calendar-sky:#0a79aa;--calendar-sky-hover:#08658f;--calendar-sky-soft:#e0f2fe;
  --calendar-orange:#b95523;--calendar-yellow:#8a7100;--calendar-green:#20845b;--calendar-lime:#5e7d00;
  --calendar-blue:#2c6fbe;--calendar-purple:#9456c7;--calendar-pink:#bd3e87;
  --calendar-review:#178076;--calendar-overdue:#c1392b;
  margin:16px 0 44px;border:1px solid var(--line);border-radius:17px;
  background:var(--surface);box-shadow:var(--shadow);overflow:clip;
}
.schedule-app{display:grid;grid-template-columns:188px minmax(0,1fr);min-width:0}
.schedule-sidebar{display:flex;flex-direction:column;gap:23px;padding:22px 16px;border-right:1px solid var(--line);background:var(--surface)}
.schedule-sidebar-brand{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:13px;color:var(--ink)}
.schedule-sidebar-brand span{display:grid;place-items:center;width:22px;height:22px;border-radius:5px;background:var(--calendar-sky);color:#fff;font-size:17px}
.schedule-create-button{width:100%;justify-content:center;padding:11px 7px;background:var(--calendar-sky);border-color:var(--calendar-sky);color:#fff;font-size:13px;box-shadow:0 3px 8px rgba(10,121,170,.2)}
.schedule-create-button:hover{background:var(--calendar-sky-hover);border-color:var(--calendar-sky-hover);color:#fff}
.schedule-filter-list{display:grid;gap:13px;margin:0;padding:15px 0 0;border:0;border-top:1px solid var(--line)}
.schedule-filter-list legend{padding:0 0 4px;font-size:12px;font-weight:800;color:var(--ink-soft)}
.schedule-filter-list label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);cursor:pointer}
.schedule-filter-list input{accent-color:var(--calendar-sky);width:15px;height:15px;margin:0}
.schedule-filter-dot{width:9px;height:9px;border-radius:50%;flex:none}
.schedule-filter-dot.is-todo{background:var(--calendar-blue)}
.schedule-filter-dot.is-range{background:var(--calendar-sky)}
.schedule-filter-dot.is-review{background:var(--calendar-review)}
.schedule-sidebar-tools{display:grid;gap:7px;margin-top:7px;padding-top:17px;border-top:1px solid var(--line)}
.schedule-sidebar-tools .btn{text-align:left;justify-content:flex-start;border-color:transparent;box-shadow:none}
.schedule-sidebar-tools .btn:hover{border-color:var(--line)}
.schedule-content{min-width:0;background:var(--surface)}
.home-schedule .sched-head{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px 15px;
  margin:0;padding:16px 19px 14px;border-bottom:1px solid var(--line);background:var(--surface);
}
.home-schedule .sched-heading{display:flex;align-items:baseline;gap:9px;min-width:0}
.home-schedule .sched-heading .eyebrow{margin:0;color:var(--calendar-sky);font-size:10px;letter-spacing:.11em;text-transform:uppercase}
.home-schedule .sched-title{font-size:16px;white-space:nowrap}
.home-schedule .sched-actions{gap:12px}
.home-schedule .sched-nav{align-items:center;gap:5px}
.home-schedule .sched-nav .btn{min-width:31px;min-height:31px;padding:5px 9px;border-radius:999px;background:var(--surface)}
.home-schedule .schedule-view-toggle{padding:2px;border-radius:999px;background:var(--surface-2)}
.home-schedule .schedule-view-button{min-width:48px;padding:7px 9px;border-radius:999px}
.home-schedule .schedule-view-button.is-active{background:var(--calendar-sky);color:#fff;box-shadow:none}
.schedule-period{grid-column:1/-1;margin:0;color:var(--ink);font-size:18px;font-weight:750;letter-spacing:-.35px}
.home-schedule .default-todo-panel{margin:14px 16px;border-radius:10px}
.home-schedule .schedule-workspace{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:0;width:100%;margin:0;align-items:start}
.home-schedule .schedule-calendar-main{min-width:0;overflow-x:auto;padding:0}
.home-schedule .schedule-weekdays{
  display:grid;width:100%;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;margin:0;
  border-bottom:1px solid var(--line);background:var(--surface-2);
}
.home-schedule .schedule-calendar-main[data-view="month"] .schedule-weekdays{width:100%;grid-template-columns:repeat(7,minmax(0,1fr))}
.home-schedule .schedule-weekdays span{padding:10px 3px;font-size:11px;text-align:center}
.home-schedule .week-grid,.home-schedule .week-grid.is-month{display:block;width:100%;gap:0}
.home-schedule .schedule-week-row,.home-schedule .week-grid.is-month .schedule-week-row{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;
  min-width:0;height:max(155px,calc(122px + var(--month-range-height,0px)));margin:0;
  border-bottom:1px solid var(--line);
}
.home-schedule .week-grid:not(.is-month) .schedule-week-row{height:max(315px,calc(165px + var(--range-height,0px)))}
.home-schedule .day-cell,.home-schedule .week-grid.is-month .day-cell{
  min-width:0;min-height:0;height:100%;padding:7px 6px;gap:5px;
  border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none;transform:none;
}
.home-schedule .day-cell:last-of-type{border-right:0}
.home-schedule .day-cell.is-past{background:var(--surface)}
.home-schedule .day-cell.is-outside-month{opacity:.48;background:var(--surface-2)}
.home-schedule .day-cell:hover{background:var(--surface-2);box-shadow:none}
.home-schedule .day-cell.is-today{background:color-mix(in srgb,var(--calendar-sky) 7%,var(--surface));box-shadow:none}
.home-schedule .day-cell.is-selected{background:color-mix(in srgb,var(--calendar-sky) 7%,var(--surface));box-shadow:inset 0 0 0 2px var(--calendar-sky)}
.home-schedule .day-head{align-items:flex-start;min-height:23px}
.home-schedule .day-date{align-items:center}
.home-schedule .day-num{display:grid;place-items:center;width:23px;height:23px;font-size:12px}
.home-schedule .day-cell.is-today .day-num{border-radius:50%;background:var(--calendar-sky);color:#fff}
.home-schedule .week-grid.is-month .day-todos{gap:3px;overflow-y:auto}
.home-schedule .week-grid.is-month .todo{
  min-height:22px;padding:2px 4px;border:0;border-left:3px solid var(--todo-accent);
  border-radius:3px;font-size:10px;box-shadow:none;
}
.home-schedule .todo-color-orange{--todo-accent:var(--calendar-orange)}
.home-schedule .todo-color-yellow{--todo-accent:var(--calendar-yellow)}
.home-schedule .todo-color-green{--todo-accent:var(--calendar-green)}
.home-schedule .todo-color-lime{--todo-accent:var(--calendar-lime)}
.home-schedule .todo-color-blue{--todo-accent:var(--calendar-blue)}
.home-schedule .todo-color-sky{--todo-accent:var(--calendar-sky)}
.home-schedule .todo-color-purple{--todo-accent:var(--calendar-purple)}
.home-schedule .todo-color-pink{--todo-accent:var(--calendar-pink)}
.home-schedule :is(.todo,.schedule-range)[class*="todo-color-"],
.home-schedule :is(.todo,.schedule-range)[class*="todo-color-"]:hover{
  background:var(--todo-accent);border-color:var(--todo-accent);color:#fff;
}
.home-schedule .default-todo-template[class*="todo-color-"]{
  background:color-mix(in srgb,var(--todo-accent) 12%,var(--surface));
  border-color:color-mix(in srgb,var(--todo-accent) 28%,var(--surface));
}
.home-schedule .todo.is-review,.home-schedule .todo.is-review:hover{--todo-accent:var(--calendar-review);background:var(--calendar-review);border-color:var(--calendar-review);color:#fff}
.home-schedule :is(.todo,.schedule-range).is-locked-overdue,
.home-schedule :is(.todo,.schedule-range).is-locked-overdue:hover{--todo-accent:var(--calendar-overdue);background:var(--calendar-overdue);border-color:var(--calendar-overdue);color:#fff}
.home-schedule .todo .tick,.home-schedule .schedule-range-mark{border-color:#fff;background:rgba(255,255,255,.15)}
.home-schedule .todo.is-done .tick,.home-schedule .schedule-range.is-done .schedule-range-mark{border-color:#fff;background:#fff;color:var(--todo-accent)}
.home-schedule .todo.is-done .todo-text,.home-schedule .schedule-range.is-done>span:last-child{text-decoration:none}
.home-schedule .todo.is-locked-overdue .tick{border-color:#fff;background:#fff;color:var(--calendar-overdue)}
.home-schedule .todo-kind,.home-schedule .todo.is-done .todo-kind,.home-schedule .todo.is-locked-overdue .todo-kind{background:rgba(255,255,255,.18);color:#fff}
.home-schedule .todo-lock,.home-schedule .todo.is-done .todo-lock,.home-schedule .todo.is-locked-overdue .todo-lock,
.home-schedule .todo-period{color:rgba(255,255,255,.9)}
.home-schedule .todo-del,.home-schedule .schedule-detail .todo-edit{color:#fff}
.home-schedule .todo-del:hover,.home-schedule .schedule-detail .todo-edit:hover{background:rgba(255,255,255,.2);color:#fff}
.home-schedule .todo-color-dot{border-color:#fff;background:rgba(255,255,255,.25);box-shadow:none}
.home-schedule .todo-color-dot:hover{background:rgba(255,255,255,.45)}
.home-schedule .week-grid.is-month .day-progress{display:none}
.home-schedule .week-grid:not(.is-day) .day-empty{display:none}
.home-schedule .week-grid.is-month .day-range-space{height:var(--month-range-height,0px)}
.home-schedule .schedule-range-layer,.home-schedule .week-grid.is-month .schedule-range-layer{
  left:0;right:0;top:40px;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:0;
}
.home-schedule .week-grid.is-month .schedule-range-layer{grid-template-rows:repeat(var(--range-lanes),20px)}
.home-schedule .schedule-range,.home-schedule .week-grid.is-month .schedule-range{
  margin-inline:3px;border-color:transparent;border-radius:4px;box-shadow:none;
}
.home-schedule .schedule-range{border-color:var(--todo-accent)}
.home-schedule .schedule-range:focus-visible{outline-color:var(--calendar-sky)}
.home-schedule .week-grid.is-month .day-count,.home-schedule .week-grid.is-month .today-badge{display:none}
.home-schedule .schedule-detail{
  position:sticky;top:70px;width:100%;min-height:420px;max-height:calc(100vh - 84px);
  margin:0;padding:17px 14px;border:0;border-left:1px solid var(--line);border-radius:0;box-shadow:none;
  background:var(--surface);
}
.home-schedule .schedule-detail-head{gap:8px;margin-bottom:13px;padding-bottom:12px}
.home-schedule .schedule-detail-head h2{font-size:16px}
.home-schedule .schedule-detail-summary{gap:4px}
.home-schedule .schedule-detail-summary span{padding:4px 6px;font-size:10px}
.home-schedule .schedule-detail .todo-detail{padding-right:73px;font-size:12px}
.home-schedule .schedule-detail .todo-edit{
  position:absolute;right:33px;top:50%;transform:translateY(-50%);border:0;
  padding:2px 3px;border-radius:4px;background:transparent;color:#fff;cursor:pointer;
}
.home-schedule .schedule-detail .todo-edit:hover{background:rgba(255,255,255,.2);color:#fff}
.home-schedule .schedule-detail .todo-color-dot{right:57px}
.home-schedule .schedule-detail .todo-del{right:9px}
.home-schedule .schedule-range-dates{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.home-schedule .schedule-range-add-row{grid-template-columns:minmax(0,1fr) 58px auto}
.home-schedule .schedule-range-add-row .todo-color-select{width:58px}
.home-schedule .schedule-detail-add .todo-add-row{grid-template-columns:minmax(0,1fr) 58px 32px}
.home-schedule .schedule-detail-add .todo-color-select{width:58px}
.home-schedule .schedule-detail-add input{min-height:38px;padding:7px;font-size:12px}
.home-schedule .todo-add-btn{background:var(--calendar-sky);border-color:var(--calendar-sky);color:#fff}
.home-schedule .todo-add-btn:hover{background:var(--calendar-sky-hover);border-color:var(--calendar-sky-hover)}
.home-schedule .todo-add input:focus{outline-color:var(--calendar-sky-soft);border-color:var(--calendar-sky)}
.home-schedule .schedule-memo{min-height:540px;margin:0;padding:22px;background:var(--surface);color:var(--ink);color-scheme:normal}
.home-schedule .schedule-memo textarea{min-height:500px;background:var(--surface);color:var(--ink)}
.home-schedule .week-grid.is-day .schedule-day-row{height:390px}
.home-schedule .week-grid.is-day .day-cell{border-right:0;padding:18px}
.home-schedule .week-grid.is-day .day-todos{max-width:750px;overflow-y:auto}
.home-schedule .week-grid.is-day .day-head{font-size:15px}
.home-schedule .week-grid.is-day .day-dow{display:inline}
.home-schedule .week-grid.is-day .todo{font-size:13px}
.home-schedule .schedule-create-dialog{
  width:min(420px,calc(100% - 28px));padding:0;border:1px solid var(--line);border-radius:14px;
  background:var(--surface);color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.25);
}
.home-schedule .schedule-create-dialog::backdrop{background:rgba(22,26,38,.48)}
.home-schedule .schedule-create-dialog form{display:grid;gap:16px;padding:20px}
.schedule-create-head{display:flex;align-items:center;justify-content:space-between}
.schedule-create-head h3{margin:0;font-size:18px}
.home-schedule .schedule-create-dialog label{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--ink-soft)}
.home-schedule .schedule-create-dialog input,.home-schedule .schedule-create-dialog select{
  width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:8px;
  background:var(--surface);color:var(--ink);font:inherit;font-size:13px;
}
.schedule-create-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.home-schedule .schedule-create-dialog p{margin:0;color:var(--ink-faint);font-size:11px}
.home-schedule .schedule-create-dialog [type="submit"]{justify-content:center}
.home-schedule .schedule-create-dialog [type="submit"],.home-schedule .schedule-range-add .btn{background:var(--calendar-sky);border-color:var(--calendar-sky);color:#fff}
.home-schedule .schedule-create-dialog [type="submit"]:hover,.home-schedule .schedule-range-add .btn:hover{background:var(--calendar-sky-hover);border-color:var(--calendar-sky-hover)}
@media(max-width:1180px){
  .home-schedule .schedule-workspace{grid-template-columns:minmax(0,1fr)}
  .home-schedule .schedule-detail{position:static;max-height:none;min-height:260px;border-left:0;border-top:1px solid var(--line)}
}
@media(max-width:820px){
  .schedule-app{grid-template-columns:minmax(0,1fr)}
  .schedule-sidebar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border-right:0;border-bottom:1px solid var(--line);padding:14px}
  .schedule-create-button{width:auto;min-width:145px}
  .schedule-filter-list{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px;border-top:0;padding:0}
  .schedule-filter-list legend{float:left;width:100%;padding:0}
  .schedule-sidebar-tools{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px;margin:0;padding-top:10px}
  .home-schedule .schedule-weekdays,.home-schedule .week-grid{min-width:700px}
  .home-schedule .sched-head{grid-template-columns:1fr;padding:14px}
  .home-schedule .sched-actions{justify-content:space-between}
  .schedule-period{grid-column:1}
}
@media(max-width:560px){
  .home-schedule{margin-inline:-13px;border-radius:0}
  .schedule-sidebar{grid-template-columns:1fr auto}
  .home-schedule .schedule-calendar-main[data-view="month"] .schedule-weekdays,
  .home-schedule .week-grid.is-month,
  .home-schedule .week-grid.is-day{min-width:0}
  .home-schedule .week-grid.is-month .schedule-week-row{height:max(100px,calc(72px + var(--month-range-height,0px)))}
  .home-schedule .week-grid.is-month .day-cell{padding:4px 2px}
  .home-schedule .week-grid.is-month .day-date{gap:0}
  .home-schedule .week-grid.is-month .day-num{width:20px;height:20px;font-size:11px}
  .home-schedule .week-grid.is-month .todo{min-height:16px;padding:1px 2px;font-size:8px}
  .home-schedule .week-grid.is-month .todo .tick,
  .home-schedule .week-grid.is-month .todo button{display:none}
  .home-schedule .sched-actions{flex-direction:column;align-items:stretch}
  .home-schedule .schedule-view-toggle{align-self:flex-start}
  .home-schedule .sched-nav{justify-content:flex-start}
  .schedule-create-dates{grid-template-columns:1fr}
  .home-schedule .schedule-range-dates{grid-template-columns:1fr}
  .home-schedule .schedule-range-dates>span{display:none}
}
