/* 프로젝트 캘린더: 월간 달력 위에 여러 날에 걸친 프로젝트를 연속 바로 표시 (마을 크림·세이지 톤 유지) */
:root{--pc-work:#5f7fb8;--pc-work-soft:#e6ecf7;--pc-personal:#c9804a;--pc-personal-soft:#f8e9dc}

/* 상단 탭이 화면 위에 떠 있으므로 주차별 돌아보기(#weeks-view)와 같은 여백을 둔다. */
#projects-view{padding:54px 24px 24px;background:#fffcf4;border-radius:20px;min-height:450px}
#projects-view .pc{background:#fffdf8}
#projects-view .primary{background:var(--sage);border:1px solid #60826b;border-bottom:3px solid var(--sage-deep);border-radius:12px;color:#fff;box-shadow:inset 0 1px #b5c9ad;padding:8px 14px;font-size:14px;white-space:nowrap}
#projects-view .primary:hover{background:#628b6c;color:#fff}

.pc-legend{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:13px;margin:-8px 0 12px}
.pc-key{border-radius:6px;padding:0 8px;font-size:12px;line-height:20px;border:1px solid #8b93a3;color:#4b5263}
.pc-key.planned{border-style:dashed;background:#fff}
.pc-key.active{background:#8b93a3;color:#fff}
.pc-key.done{background:#eef0f3;border-color:#d3d7de;color:#8a90a0}

.pc{background:var(--cream);border:1px solid var(--rim);border-radius:16px;overflow:hidden}
.pc-head,.pc-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.pc-head{border-bottom:1px solid var(--rim);background:#f6f5e9}
.pc-head span{text-align:center;font-size:12px;font-weight:600;color:var(--soft-ink);padding:6px 0}
.pc-head span:nth-child(6){color:#6c86b0}.pc-head span:nth-child(7){color:#c0705a}
/* 날짜 칸은 주 전체 높이를 채우고, 바는 날짜 줄 아래 줄(lane)마다 놓인다. */
.pc-week{grid-template-rows:26px repeat(var(--lanes),24px) minmax(10px,1fr);row-gap:3px;min-height:92px;border-bottom:1px solid #e7e7d6}
.pc-week:last-child{border-bottom:0}
.pc-day{grid-row:1/-1;border-right:1px solid #eeeee0;padding:3px 7px;font-size:13px;color:#5d6454}
.pc-day:nth-child(7){border-right:0}
.pc-day.outside{background:#f7f6ee;color:#b9bbad}
.pc-day.today span{display:inline-block;min-width:22px;text-align:center;border-radius:11px;background:var(--sage);color:#fff;font-weight:700}

.pc-bar{--c:var(--pc-work);--soft:var(--pc-work-soft);position:relative;z-index:1;min-width:0;margin:0 3px;padding:0 8px;border:1px solid var(--c);border-radius:7px;font-size:12px;font-weight:600;line-height:22px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--c);color:#fff}
.pc-bar.personal{--c:var(--pc-personal);--soft:var(--pc-personal-soft)}
.pc-bar:hover{background:var(--c);filter:brightness(1.07);border-color:var(--c)}
.pc-bar.planned,.pc-bar.planned:hover{background:var(--soft);color:var(--c);border-style:dashed}
.pc-bar.done,.pc-bar.done:hover{background:var(--soft);color:var(--c);border-color:transparent;opacity:.75}
/* 이전·다음 주로 이어지는 구간은 끝을 평평하게 붙인다. */
.pc-bar.before{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}
.pc-bar.after{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}
.pc-empty{margin-top:12px;text-align:center}

#project-dialog{width:min(480px,calc(100% - 24px))}
#project-dialog .two-fields{grid-template-columns:1fr 1fr}
.pc-choices{display:flex;flex-wrap:wrap;gap:8px 18px}
.pc-choices label{display:flex;align-items:center;gap:6px;font-weight:500}
.pc-choices input{width:auto;margin:0}

@media(max-width:700px){#projects-view{padding:45px 15px 20px}}
@media(max-width:620px){
  .pc-week{grid-template-rows:22px repeat(var(--lanes),20px) minmax(6px,1fr);min-height:70px;row-gap:2px}
  .pc-day{padding:2px 4px;font-size:12px}
  .pc-bar{margin:0 1px;padding:0 4px;font-size:11px;line-height:18px;border-radius:5px}
  #project-dialog .two-fields{grid-template-columns:1fr}
}
