@charset "utf-8";

.fix-layout {min-width: 640px;}
p {line-height: 1.5;}
.board-write    { padding: 0 10px; }
.board-write > dl {position:relative;margin: 10px 0;}
.board-write > dl > dt { width:70px;position:absolute;line-height:30px;text-align:center; }
.board-write > dl > dd { width:100%;margin-left:0;padding-left:80px;box-sizing:border-box;line-height:30px;overflow:hidden;}
.board-write input.frm_input.full   { width: 100%; display:block;}
.board-write input {padding: 0 10px; height: 30px; box-sizing: border-box;}
.board-write input::placeholder {opacity: 0.7;}
.board-write input[type="radio"]+label {margin-right: 5px;}
.board-write input[type="number"] {width: 100px; display:inline-block}

/** Notice Box **/
.board-notice   { width: 340px; padding: 10px; margin: 0 auto; box-sizing: border-box; }

/* 공통 */
#bo_list .theme-box {padding: 15px 20px;}
#bo_list .ui-btn {padding: 0 20px;}

/* 캘린더 네비 */
.cal-nav-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding-top: 20px;
    position: relative;
}

.cal-nav-left,
.cal-nav-right {
    min-width: 80px;
    display: flex;
    align-items: center;
    z-index: 1;
}
.cal-nav-right {
    justify-content: flex-end;
}

.cal-nav-btns {
    display: flex;
    align-items: center;
    gap: 70px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}
.cal-nav-btns h2 { white-space: nowrap; font-size: 16px; }

.cal-nav-link { color: #fff; }
.cal-nav-link:hover { opacity: 0.7; }

.cal-today-btn { display: flex; justify-content: center; margin-top: 10px; padding-bottom: 20px; }
.cal-today-btn .ui-btn.today { font-size: 12px; }

/* 캘린더 */
.sched-list.theme-list {border-collapse:separate;border-spacing: 1px;}
.sched-list.theme-list th{ height:35px;padding:0;font-size:12px;font-weight:normal;border:0 none;
    background:rgba(0,0,0,0.15);}
.sched-list.theme-list th.sun{background:rgba(255, 0, 0,0.15);}
.sched-list.theme-list th.sat{background:rgba(0, 0, 255,0.15);}

.sched-list.theme-list td {padding: 4px;
    text-align:center;line-height:18px;font-size:12px;height:111px;border:0 none;
    background:rgba(0,0,0,.5);}
.sched-list.theme-list td.noday {background:rgba(0,0,0,.15);}

.sched-list .date{line-height: 35px;height:35px;}
.sched-list .date:hover{color: #a3cca2;}

.sched-list.theme-list td.today {
    background-color: rgba(0,0,0, 0.9) !important;
    box-shadow: 0 0 0 1px #fff inset; 
}

/* 일정 표시 */
.sched-list .liner-wrap {
    position: relative;
    display: block;
    height: 18px;
    margin-bottom: 1px;
}
.sched-list .liner-placeholder {
    pointer-events: none;
}
.sched-list .liner {
    position: relative;
    display: block;
    width: 100%;
    height: 18px;
    color: #fff;
}
.sched-list .starter { padding: 0; }
.sched-list td a.liner:hover { opacity: 0.7; }
.sched-list .liner-wrap:hover { z-index: 40; }
.sched-list .liner-wrap:hover .popup_layer { display: block; }
.s_lock {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    overflow: hidden;
    line-height: 18px;
}

.fa-brands:before, .fa-regular:before, .fa-solid:before, .fa:before, .fab:before, .far:before, .fas:before


.s_subject {
    display: flex;
    align-items: center;
}
.sched-list .s_subject { height: 18px; line-height: 18px !important; color: #fff; }
.sched-list .left .starter .s_subject { left: 0; }
.sched-list .right .starter .s_subject { right: 0; }
.sched-list .starter .s_subject,
.sched-list .first .s_subject { border-radius: 5px; z-index: 2; }
.sched-list .starter .s_subject { position: absolute; width: 100%; min-width: 100%; padding: 0 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; box-sizing: border-box; }
.sched-list .starter:hover .s_subject { width: auto; overflow: visible; }
.sched-list .ender .s_subject { border-radius: 5px; }
.sched-list .starter.ender .s_subject { border-radius: 5px; }
/* 일정 팝업레이어 */
.sched-list .popup_layer {
    position: absolute;
    display: none;
    bottom: 19px;
    left: 50%;
    transform: translateX(-50%);
    padding: 10px 15px;
    border-radius: 5px;
    white-space: normal;
    word-break: keep-all;
    min-width: 200px;
    width: max-content; 
    z-index: 20;
    opacity: 1;
    color: #fff;
    font-family: 'Dotum';
    line-height: 1.65;
    overflow: visible;
}
.sched-list .left .popup_layer {left:0;transform:none;}
.sched-list .right .popup_layer {left:auto;right:0;transform:none;}
.sched-list .popup_layer .popup_title {
    padding: 5px 0;
    font-size: 12px;
    line-height: 18px;
    border-bottom: 1px solid rgba(255,255,255,.7);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    height: 28px; /* padding 5px*2 + line-height 18px */
    box-sizing: border-box;
    white-space: nowrap;
}
.sched-list .popup_layer .popup_cont{word-break:keep-all;line-height:18px;padding:5px 0;}

/* 오늘 일정 */
#today_schedule {text-align:left;}
#today_schedule p.ui-btn.point{margin-bottom:10px;line-height:30px;cursor:default;}
#today_schedule .today-schedule {font-family: 'Dotum';line-height:1.65;word-break: keep-all; padding:5px 0;}
#today_schedule .today-schedule p {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}
#today_schedule .ts_sep { opacity: 0.7;}
#today_schedule .ts_period { opacity: 01; font-size: 12px; }
#today_schedule .today-schedule .ico {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    flex-shrink: 0;
}
#today_schedule .today-schedule .sched-content {padding-left:14px;opacity:0.7;line-height:18px;}

/* 게시판 읽기 */
#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_bot ul {margin:0;padding:0;list-style:none}
.bo_v_nb {float:left}
.bo_v_nb li {float:left;margin-right:5px}
.bo_v_com {float:right}
.bo_v_com li {float:left;margin-left:5px}
#bo_v_link {margin:20px 10px;}
#bo_v_img {margin:20px 0;}
#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_con {margin: 35px 0;
    padding: 15px; width:100%;word-break:keep-all;overflow:hidden}

/* 카테고리 라디오 + 컬러피커 (write) */
#cat_color_wrap {
    padding-left:80px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}
.cat-radio-wrap {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.cat-radio-wrap input[type="radio"] {
    margin: 0;
    cursor: pointer;
}
.cat-label {
    display: inline-block;
    padding: 0 5px;
    border-radius: 5px;
    color: #fff;
    font-size: 12px;
    line-height: 18px;
    cursor: pointer;
    white-space: nowrap;
}
/*
.cat-radio-wrap input[type="radio"]:not(:checked) + .cat-label {
    opacity: 0.7;
}
.cat-radio-wrap input[type="radio"]:checked + .cat-label {
    opacity: 1;
}
*/
.board-write input.cat-color-input {
    width: 18px;
    height: 18px;
    box-shadow: 0 0 0 1px #bbbbbb;
    padding: 0;
    border: none;
    cursor: pointer;
    background: none;
    flex-shrink: 0;
    appearance: none;
    -webkit-appearance: none;
    overflow: hidden;
}
.board-write input.cat-color-input::-webkit-color-swatch-wrapper { padding: 0; }
.board-write input.cat-color-input::-webkit-color-swatch { border: none; }

/* 기간 date 인풋 */
.date-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}
.board-write input.date_input {
    height: 22px;
    border-radius: 1px;
    border: none;
    box-sizing: border-box;
    width: auto;
}

/* view */
.bo_v_title {
    text-align: center;
    display: block;
    position: relative;
    font-size: 22px;
    font-weight: bold;
    line-height: 1.45;
    word-break: keep-all;
}
.bo_v_meta { display: flex; align-items: center; gap: 4px; 
    margin-top: 10px;
    padding: 15px;
    text-align: center; 
    justify-content: center;
    }
.bo_v_meta .ico { display: inline-block; width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0; }
.bo_v_sep { opacity: 0.7; }
.bo_v_period { opacity: 1; }
.bo_v_content { 
    word-break: break-all; 
    display: block;
    position: relative;
    border-left-width: 0;
    border-right-width: 0;
    }
.s_subject {
    cursor: grab;
}

.s_subject:active {
    cursor: grabbing;
}

/* 드래그 중 팝업 완전 차단 */
body.is-dragging .popup_layer {
    display: none !important;
    pointer-events: none !important;
}

/* 드롭 인디케이터 */
.drop-indicator {
    height: 2px;
    background: rgba(255,255,255,0.15);
    border-radius: 2px;
    margin: 2px 0;
    position: relative;
    pointer-events: none;
}

/* 드래그 중인 아이템 반투명 처리 */
.liner-wrap.dragging {
    opacity: 0.5;
}

/* 일정 아이템이 칸을 넘지 않도록 강제 설정 */
.sched-item {
    display: block;
    position: relative;
    margin-bottom: 2px;
    z-index: 5;
    box-sizing: border-box; /* 패딩을 너비에 포함시킴 */
}

/* 다음 줄로 이어지는 일정의 오른쪽 둥근 모서리 제거 (시각적 연결) */
.sched-item.starter:not(.ender) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
/* 이전 줄에서 넘어온 일정의 왼쪽 둥근 모서리 제거 */
.sched-item.first:not(.starter) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}