@charset "utf-8";

header {text-align:center;padding:120px 0 60px;}
header h1 {font-weight:600;letter-spacing:-0.52px;}
main {} /* max-width:1080px !important;padding-bottom:200px; */

.tbl_head01 td {border-color:#ddd;}

/* base */
.cal-wrap { --border:#e5e7eb; --fg:#111827; --muted:#6b7280; --pri:#2563eb; }
.cal-header { display:flex; align-items:center; justify-content:center; gap:.75rem; margin:1rem 0; }
.cal-header .ym { font-size:1.25rem; font-weight:700; }
.cal-header .nav { text-decoration:none; padding:.25rem .5rem; border:1px solid var(--border); border-radius:.5rem; }

/* (과거 스타일 유지용) */
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:.5rem; }
.dow { text-align:center; font-weight:600; color:var(--muted); padding:.25rem 0; }
.day {border:1px solid var(--border); border-radius:.5rem; padding:.25rem .4rem; background:#fff; display:flex; flex-direction:column; }
.day.empty { background:#fafafa; }
.day .date { font-size:.9rem; font-weight:700; color:var(--muted); margin-bottom:.25rem; }
.day.today { outline:2px solid var(--pri); }
.day.sun .date { color:#dc2626; } .day.sat .date { color:#2563eb; }
.evt { list-style:none; margin:.25rem 0 0; padding:0; display:flex; flex-direction:column; gap:.25rem; }
.evt li a { display:block; font-size:.85rem; line-height:1.2; text-decoration:none; color:var(--fg); padding:.15rem .25rem; border-radius:.25rem; }
.evt li a:hover { background:#f3f4f6; }
.evt .cat { color:var(--muted); margin-right:.25rem; }

/* actions */
.cal-actions { margin:1rem 0; display:flex; gap:.5rem; }
/*
.btn { padding:.5rem .75rem; border:1px solid var(--border); border-radius:.5rem; text-decoration:none; }
.btn.admin { background:#111827; color:#fff; border-color:#111827; }
*/

/* view/write */
.schedule-write .frm-row { margin-bottom:1rem; }
.schedule-write .frm-row.two { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.schedule-write label { display:block; font-weight:600; margin-bottom:.35rem; }
.schedule-write input[type="text"],
.schedule-write input[type="date"],
.schedule-write textarea,
.schedule-write select { width:100%; border:1px solid var(--border); border-radius:.5rem; padding:.5rem; }

.schedule-view .tit { font-size:1.4rem; margin:0 0 .25rem; }
.schedule-view .meta { color:var(--muted); margin-bottom:.75rem; display:flex; gap:.5rem; align-items:center; }
.schedule-view .ct { border-top:1px solid var(--border); padding-top:.75rem; }
.view-actions { margin-top:1rem; display:flex; gap:.5rem; }

/* ──────────────────────────────
   상단 바 (가운데 정렬 3열 그리드)
   ────────────────────────────── */
.gcal-header { row-gap: .5rem; }
.cal-month { min-width: 240px; }

.cal-nav-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px;
  border:0px solid var(--bs-border-color);
  border-radius:.5rem; color:inherit;
  text-decoration:none;
}
.cal-nav-btn:hover{ background: var(--bs-light); }
.cal-nav-btn svg{ width:25px; height:25px; }

.gcal-bar{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  column-gap:12px;
}
.gcal-left{  justify-self:start; }
.gcal-center{justify-self:center; display:flex; align-items:center; gap:10px; }
.gcal-right{ justify-self:end; display:flex; align-items:center; gap:8px; }

/* ──────────────────────────────
   달력 그리드 (7열/셀 고정 높이/한 줄 표기)
   ────────────────────────────── */
.gcal {
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:.5rem;
  align-items:stretch;
}
.gcal .dow {
  text-align:center; font-weight:600;
  color:var(--bs-secondary-color);
  padding:.25rem 0; line-height:1;
}
.gcal .day {
  /* ★ 고정 높이로 깨짐 방지 */
  min-height:9rem;
  border:1px solid var(--bs-border-color);
  border-radius:.5rem;
  background:#fff;
  padding:.5rem .5rem .25rem;
  display:flex; flex-direction:column;
  min-width:0; /* ellipsis 보조 */
}
.gcal .day .date { font-weight:700; color:var(--bs-secondary-color); margin-bottom:.25rem; flex:0 0 auto; }
.gcal .day.today { outline:2px solid var(--bs-primary); outline-offset:-2px;background:#ffffef; }
.gcal .day.sun .date { color:#dc3545; } .gcal .day.sat .date { color:#0d6efd; }
.gcal .day.empty { background:var(--bs-light-bg-subtle,#f8f9fa); }

/* 리스트: 남는 공간 채우고 넘치면 스크롤 */
.gcal .evt {
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:.25rem;
  flex:1 1 auto;           /* 남은 높이 채움 */
  overflow:auto;           /* 넘치면 내부 스크롤 */
}

/* 한 줄(nowrap) + 말줄임(ellipsis) */
.gcal .evt a {
  display:inline-flex; align-items:center; gap:.25rem;
  text-decoration:none; color:var(--bs-body-color);
  font-size:.9rem; line-height:1.2;
  padding:.125rem .25rem; border-radius:.25rem;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  min-width:0;                /* ellipsis 보조 */
}
.gcal .evt a:hover { background:var(--bs-light, #f1f3f5); }

/* ★ 시간/제목/카테고리 모두 인라인 유지 */
.gcal .evt .evt-time   { display:inline; font-weight:700; margin-right:4px; }
.gcal .evt .evt-title  { display:inline; min-width:0; }
.gcal .evt .evt-cat    { display:inline; margin-left:4px; color:var(--bs-secondary-color); }

/* 모바일(≤576px): 2열 카드형 */
@media (max-width: 576px) {
  .gcal { grid-template-columns: repeat(1, minmax(0, 1fr)); gap: .4rem; }
  .gcal .dow { display: none; }
  .gcal .day { min-height: 5rem;padding-bottom:0.8rem; }
  .gcal .evt a { font-size: .95rem; }
  .gcal .day.empty { display:none; }
  .gcal .day .date { font-size:1rem; margin-bottom:.35rem; }

  /* 헤더 한 줄 유지 */
  .gcal-bar {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: .5rem;
    text-align: center;
  }
  .gcal-left,
  .gcal-center,
  .gcal-right {
    justify-self: unset;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
  }
}

/*글쓰기*/
#bo_w .bo_v_option li {} /* display:inline-block;float:left;text-align:left;margin:0 5px 0 0 */
#bo_w .bo_v_option li label {vertical-align:baseline}
#bo_w .bo_v_option .chk_box input[type="checkbox"] + label span {margin-left:0;margin-right:5px}
#bo_w .write_div {margin:10px 0;position:relative}
#bo_w .write_div:after {display:block;visibility:hidden;clear:both;content:""}
#bo_w .bo_w_info:after {display:block;visibility:hidden;clear:both;content:""}
#bo_w .bo_w_info .frm_input {float:left;margin-bottom:1%}
#bo_w #wr_password, #bo_w #wr_homepage {} /* margin-left:1% */
#bo_w .wr_content.smarteditor2 iframe {background:#fff}
#bo_w .bo_w_tit {position:relative}
#bo_w .bo_w_tit .frm_input {padding-right:120px}
#bo_w .bo_w_tit #btn_autosave {position:absolute;top:5px;right:5px;line-height:30px;height:30px}
#bo_w .bo_w_link label {position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;font-size:1.2em;text-align:center;color:#b2b2b2}
#bo_w .bo_w_link .frm_input {padding-left:50px}
#bo_w .bo_w_flie .lb_icon {position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;font-size:1.2em;text-align:center;color:#b2b2b2}
#bo_w .bo_w_flie .frm_file {padding-left:50px;margin-top:3px}
#bo_w .bo_w_flie .file_wr {position:relative;border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;margin:0}
#bo_w .bo_w_flie .frm_input {margin:10px 0 0}
#bo_w .bo_w_flie .file_del {position:absolute;top:10px;right:10px;font-size:0.92em;color:#7d7d7d}
#bo_w .bo_w_select select {border:1px solid #d0d3db;width:100%;height:40px;border-radius:3px}
#bo_w .btn_submit {padding:0 20px;font-size:1.167em}
#bo_w .btn_cancel {border-radius:3px;font-size:1.167em}