/* 독립 일정 캘린더: 기존 정산 스타일과 상태를 침범하지 않음 */
.nav-calendar-sep{height:1px;background:rgba(180,205,222,.22);margin:13px 10px 12px}#newProjectTop[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.calendar-page{min-width:0}.calendar-page .card{padding:0;overflow:hidden}.cal-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:21px}.cal-heading h3{margin:4px 0 7px;font-size:23px;letter-spacing:-.65px}.cal-heading p{font-size:12px;margin:0;line-height:1.55}.cal-kicker{font-size:10px;letter-spacing:1.2px;color:#90a1b5;font-weight:800}.cal-readonly{background:#ecf4ff;color:#3069b4;border:1px solid #d5e5fc;border-radius:100px;padding:8px 12px;font-size:11px;font-weight:800;white-space:nowrap}
.cal-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px;flex-wrap:wrap}.cal-nav{display:flex;gap:9px;align-items:center}.cal-nav strong{font-size:17px;letter-spacing:-.3px;min-width:100px;text-align:center}.cal-nav button{min-width:32px;font-size:13px}.cal-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cal-tools input,.cal-tools select{border:1px solid #d9e1ed;border-radius:8px;background:#fff;padding:8px 11px;height:35px;font-size:12px;color:#334256}.cal-tools input{width:185px}.cal-tools select{min-width:97px}.cal-info-line{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#8092a6;margin-bottom:10px}.cal-status-error{color:#b65357;font-weight:650}.cal-loading{color:#386eb3}.cal-layout{display:grid;grid-template-columns:minmax(500px,1fr) minmax(275px,320px);gap:14px;align-items:start}.cal-main{min-width:0}.cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#f8fafc;border-bottom:1px solid #e2e9f1}.cal-weekdays span{text-align:center;padding:13px 3px;color:#7e8d9f;font-size:11px;font-weight:750}.cal-weekdays .cal-sunday{color:#b77f82}.cal-week{height:var(--cal-week-height,176px);min-height:126px;position:relative;border-bottom:1px solid #e9eef3}.cal-week:last-child{border:0}.cal-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));height:100%}.cal-day{min-width:0;border:0;border-right:1px solid #e9eef3;text-align:left;padding:9px 7px 6px;background:#fff;color:#415165;position:relative;overflow:hidden}.cal-day:last-child{border-right:0}.cal-day:hover{background:#f4f8ff}.cal-day.cal-day-selected{background:#eaf2ff}.cal-day.cal-day-outside{background:#fbfcfd;color:#a9b7c5}.cal-day.cal-day-selected.cal-day-outside{background:#eaf2ff}.cal-day-top{display:flex;align-items:center;gap:4px;justify-content:space-between}.cal-number{width:23px;height:23px;border-radius:50%;text-align:center;line-height:23px;font-size:12px;font-weight:720;flex:none}.cal-day-today .cal-number{background:#2f7bea;color:#fff}.cal-day-selected:not(.cal-day-today) .cal-number{background:#d7e7ff;color:#1c5ec0}.cal-count{font-size:9px;color:#5e7fad;white-space:nowrap;font-weight:800}.cal-day-outside .cal-count{color:#b0b5c2}.cal-week-bars{position:absolute;top:44px;bottom:0;left:0;width:100%;pointer-events:none}.cal-span{position:absolute;left:calc((100% / 7) * var(--cal-left) + 3px);width:calc((100% / 7) * var(--cal-length) - 6px);top:calc(var(--cal-lane)*26px);height:22px;padding:5px 8px;background:#447de4;border-radius:5px;color:#fff;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:10px;font-weight:700;line-height:12px}.cal-span-continues{border-top-left-radius:0;border-bottom-left-radius:0}.cal-details{min-width:0;display:flex;flex-direction:column;max-height:860px;position:sticky;top:12px}.cal-side-head{padding:21px 19px 13px;display:flex;gap:9px;justify-content:space-between;align-items:end}.cal-side-head h3{font-size:18px;margin:7px 0 0;letter-spacing:-.4px}.cal-side-head small{font-size:12px;color:#8a98aa}.cal-count-strong{font-size:12px;color:#286ac0;background:#edf4ff;border-radius:18px;padding:7px 10px;font-weight:800}.cal-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;background:#f7f9fc;padding:11px 12px;margin:0 17px 10px;border-radius:8px}.cal-stats span{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:#7e8b9d}.cal-stats b{color:#364e69;font-size:15px}.cal-side-list{overflow:auto;min-height:80px;max-height:680px;padding:0 17px 17px}.cal-item{padding:13px 12px 13px 13px;border:1px solid #e7ebf1;border-radius:9px;background:#fff;margin-bottom:8px}.cal-item-top{display:flex;justify-content:space-between;align-items:center}.cal-item-dot{background:#447de4;width:6px;height:6px;border-radius:50%}.cal-item-label{font-size:10px;background:#edf4ff;border-radius:4px;padding:4px 6px;color:#5076a7;font-weight:750}.cal-item-label.end{background:#f4f4f5;color:#728397}.cal-item-label.ongoing{background:#edf5f4;color:#3a817b}.cal-item-label.day{background:#f6f1ff;color:#7966a1}.cal-item h4{font-size:13px;color:#243c51;margin:7px 0;line-height:1.6;overflow-wrap:anywhere}.cal-item-date,.cal-item-location{font-size:11px;color:#8795a5;line-height:1.5}.cal-item p{font-size:11px;margin:9px 0 4px;white-space:pre-wrap;overflow-wrap:anywhere;color:#6f7c8c;line-height:1.6}.cal-side-empty{text-align:center;padding:35px 14px;font-size:12px;color:#8a97a8}.cal-footer-note{margin:14px 0 0;color:#92a0b0;font-size:11px}
@media(max-width:1210px){.cal-layout{grid-template-columns:1fr}.cal-details{max-height:none;position:static}.cal-side-list{max-height:430px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.cal-item{margin:0}}@media(max-width:800px){.cal-layout{grid-template-columns:minmax(0,1fr)}.cal-week{height:var(--cal-week-height,148px)}.cal-span{font-size:9px;padding:4px}.cal-tools input{width:135px}.cal-side-list{display:block}.cal-item{margin-bottom:8px}.cal-day{padding:6px 3px}.cal-count{font-size:8px}.cal-week-bars{top:42px}.cal-readonly{font-size:10px}.cal-heading h3{font-size:20px}}


/* V2.1.6 — Google Calendar-style fixed day header, bars strictly below dates.
   Day buttons used to vertically center their child content in tall grid cells.
   This explicit top-alignment resolves numbers hiding under the event overlay. */
.cal-week{min-height:126px;isolation:isolate}
.cal-week-days{height:100%;align-items:stretch}
.cal-week .cal-day{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  padding:8px 6px;
  text-align:center;
  vertical-align:top;
  min-height:0;
}
.cal-week .cal-day-top{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 28px;
  height:28px;
  min-height:28px;
  position:relative;
  z-index:3;
}
.cal-week .cal-number{display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:none}
.cal-week .cal-count{position:absolute;right:2px;top:8px;line-height:1.2}
.cal-week .cal-week-bars{top:46px;z-index:1;pointer-events:none}
.cal-week .cal-span{height:22px;line-height:12px}
@media(max-width:900px){.cal-week .cal-count{font-size:8px;right:0}.cal-week .cal-day{padding:7px 3px}}
@media(max-width:620px){.cal-week .cal-count{display:none}}


/* V2.2.6 — Taller month cells for a roomier, less compressed schedule view. */
.cal-week{--cal-week-height:176px}

/* V2.2.7 — spacious month layout. Date header remains separate from event lanes.
   Minimum week height is responsive; additional event lanes always grow the row. */
.cal-week{
  --cal-week-base:240px;
  height:max(var(--cal-week-base),var(--cal-required-height,0px));
  min-height:240px;
}
.cal-week .cal-day{padding:10px 7px 7px}
.cal-week .cal-day-top{flex-basis:30px;height:30px;min-height:30px}
.cal-week .cal-week-bars{top:52px}
.cal-week .cal-span{
  top:calc(var(--cal-lane)*28px);
  height:23px;
  line-height:13px;
  padding:5px 9px;
  border-radius:5px;
}
@media(max-width:800px){
  .cal-week{--cal-week-base:195px;min-height:195px}
  .cal-week .cal-day{padding:8px 3px}
  .cal-week .cal-week-bars{top:48px}
}
