.cv-toolbar{display:flex;align-items:end;gap:16px;flex-wrap:wrap;padding:8px 24px;color:#1A2230;font:500 13px 'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',-apple-system,sans-serif}.cv-toolbar label,.cv-editor label{display:flex;flex-direction:column;gap:4px}.cv-toolbar input,.cv-toolbar select,.cv-editor input,.cv-editor select{font:500 14px 'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',-apple-system,sans-serif;padding:8px;border:1px solid #D8DEE8;border-radius:2px;color:#1A2230;background:#fff;min-width:0}.cv-toolbar input:focus,.cv-editor input:focus,.cv-editor select:focus{outline:2px solid #3E5C8A;background:#EEF1F8}.cv-toolbar button,.cv-status button,.cv-actions button{min-height:42px;background:#EDF1F7;border:1px solid #D8DEE8;border-radius:2px;color:#1E2944;font:700 14px 'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',-apple-system,sans-serif;padding:8px 16px;cursor:pointer}.cv-status,.cv-legacy{padding:8px 24px;font:500 13px 'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',-apple-system,sans-serif;color:#6B7488}.cv-status{display:flex;gap:8px;align-items:center}.cv-status:empty{display:none}.cv-cell{display:flex;flex-direction:column;gap:4px}.cv-date{align-self:flex-start;border:0;background:transparent;color:#1A2230;font:700 14px 'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',-apple-system,sans-serif;min-width:32px;min-height:32px;cursor:pointer}.cv-event{display:block;width:100%;box-sizing:border-box;text-align:left;overflow:hidden;text-overflow:ellipsis;border:0;border-left:3px solid #1E2944;border-radius:2px;background:#F4F6FA;color:#1A2230;font:500 12px/1.4 'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',-apple-system,sans-serif;padding:4px 8px;cursor:pointer;overflow-wrap:normal;word-break:keep-all;min-height:24px}.cv-event:focus-visible,.cv-date:focus-visible,.cv-slot:focus-visible{outline:2px solid #3E5C8A;outline-offset:1px}.cv-more{background:transparent;color:#3E5C8A;border:0;text-align:left;min-height:28px;cursor:pointer}.cv-days{display:grid;gap:0}.cv-days>button{background:#fff;border:1px solid #D8DEE8;color:#1A2230;min-height:42px;font:700 13px 'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',-apple-system,sans-serif}.cv-allday{border:1px solid #D8DEE8;min-height:40px;display:flex;flex-direction:column;gap:4px;padding:4px}.cv-scroll{max-height:600px;overflow:auto;border-top:1px solid #D8DEE8}.cv-timegrid{height:1440px}.cv-hours,.cv-timecol{position:relative;min-width:0;border-right:1px solid #D8DEE8}.cv-hours span{position:absolute;right:4px;font:500 10px 'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',-apple-system,sans-serif;color:#6B7488}.cv-slot{position:absolute;left:0;width:100%;height:30px;border:0;border-top:1px solid #EDF1F7;background:transparent;padding:0;cursor:pointer}.cv-slot:nth-child(2n+1){border-top-color:#D8DEE8}.cv-timed{position:absolute;z-index:2;white-space:normal;padding-bottom:12px}.cv-resize{position:absolute;bottom:0;left:0;right:0;height:12px;text-align:center;cursor:ns-resize;background:#EDF1F7;font-size:10px}.cv-overlay{position:fixed;inset:0;z-index:9600;background:rgba(0,0,0,.19);display:flex;align-items:center;justify-content:center;padding:16px}.cv-editor{background:#fff;color:#1A2230;border:1px solid #D8DEE8;border-radius:2px;box-shadow:0 17px 50px rgba(0,0,0,.19);width:min(480px,100%);max-height:90vh;overflow:auto;padding:24px;display:flex;flex-direction:column;gap:16px;font:500 14px 'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',-apple-system,sans-serif}.cv-editor h2{margin:0;font-size:20px;color:#1E2944}.cv-row{display:flex;gap:16px}.cv-row label{flex:1;min-width:0}.cv-editor .cv-check{flex-direction:row;align-items:center}.cv-actions{display:flex;justify-content:flex-end;gap:8px}.cv-actions button[type=submit]{background:#1E2944;color:#fff}.cv-actions button[type=submit]:hover{background:#2A3A5E}.cv-actions button:disabled{background:#D8DEE8;color:#B6BCC8;cursor:not-allowed}.cv-editor-error{color:#C0392B;font-size:12px;margin:0}.cv-empty{color:#6B7488;font-size:13px}.cv-row[hidden]{display:none}#CAL_sidebar .cv-event{margin:4px 0}@media(max-width:600px){.cv-toolbar{padding:8px 16px;gap:8px}.cv-toolbar label{flex:1;min-width:120px}.cv-editor{padding:16px}.cv-row{gap:8px}.cv-days>button{font-size:10px}.cv-event{padding:4px;font-size:10px}.cv-scroll{max-height:60vh}}
.cv-date-resize{float:right;cursor:ew-resize;color:#6B7488;padding:0 4px}

/* 대표의 명시 교정에 따라 캘린더 안에서만 밝은 연속 격자와 파란 오늘 표시를 쓴다. */
#panel-cal{--cv-blue:#1a73e8;width:100%;max-width:100%;min-width:0;background:#fff;color:#1A2230}
#panel-cal .cal-header{flex-wrap:wrap;min-width:0;gap:8px 12px;background:#fff;border-bottom:1px solid #D8DEE8;padding:16px 24px}
#panel-cal .cal-month-label{flex-shrink:0;white-space:nowrap;font-size:22px;font-weight:500;color:#1A2230;letter-spacing:normal}
#panel-cal .cal-header button{flex-shrink:0;white-space:nowrap;min-height:40px;border-radius:4px;background:#fff!important;color:#1A2230!important;border:1px solid #D8DEE8!important;letter-spacing:normal}
#panel-cal .cal-header .cal-nav-btn{border-color:transparent!important;padding:8px 12px}
#panel-cal .cal-header .cal-view-btn{min-width:40px;border:0!important}
#panel-cal .cal-header .cal-view-btn.active{color:var(--cv-blue)!important;background:#EEF1F8!important}
#panel-cal .cal-view-switcher{border:1px solid #D8DEE8;border-radius:4px;overflow:hidden;background:#fff}
#panel-cal .cv-workspace{display:flex;min-width:0;flex:1;align-items:stretch}
#panel-cal .cv-rail{width:216px;min-width:0;flex:0 0 216px;border-right:1px solid #D8DEE8;background:#fff;padding:16px}
#panel-cal .cv-content{flex:1;min-width:0;display:flex;flex-direction:column}
#panel-cal .cv-toolbar{flex-direction:column;align-items:stretch;min-width:0;max-width:100%;padding:0;gap:16px}
#panel-cal .cv-toolbar label{min-width:0;max-width:100%;font-size:12px;color:#6B7488}
#panel-cal .cv-toolbar input,#panel-cal .cv-toolbar select{width:100%;max-width:100%;border-radius:4px;font-size:13px;background:#F4F6FA}
#panel-cal .cv-toolbar button{padding:8px;font-size:12px;background:#fff;color:#1A2230;border-radius:4px}
#panel-cal .cv-toolbar>span{font-size:10px;color:#6B7488}
#panel-cal .cal-legend{flex-direction:column;align-items:flex-start;gap:12px;margin:24px 0 0;padding-top:16px;border-top:1px solid #D8DEE8}
#panel-cal .cal-leg-item{color:#6B7488;font-size:12px}
#panel-cal .cv-status{flex-wrap:wrap;word-break:keep-all;padding:8px 16px}
#panel-cal .cv-status:has(span:empty){display:none}
#panel-cal .cal-body,#panel-cal .cal-grid-wrap{min-width:0;overflow:visible}
#panel-cal .cal-grid-wrap{background:#fff;padding:0!important}
#panel-cal .cal-grid,#panel-cal .cal-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:0!important}
#panel-cal .cal-weekdays{margin:0;border-bottom:1px solid #D8DEE8}
#panel-cal .cal-weekday{color:#6B7488;font-size:11px;font-weight:500;padding:12px 0}
#panel-cal .cal-cell{min-width:0;min-height:max-content;border-radius:0;padding:4px!important;background:#fff;border-right:1px solid #D8DEE8;border-bottom:1px solid #D8DEE8;gap:4px}
#panel-cal .cv-cell>.cv-event,#panel-cal .cv-cell>.cv-date,#panel-cal .cv-cell>.cv-more{flex-shrink:0}
#panel-cal .cal-grid{flex:none;height:auto;grid-auto-rows:minmax(112px,max-content);align-content:start;overflow:visible}
#panel-cal .cal-cell.other-m{background:#F4F6FA}
#panel-cal .other-m .cv-date{color:#9AA2B1}
#panel-cal .cal-cell.today-cell{background:#fff}
#panel-cal .today-cell::after{display:none}
#panel-cal .cv-date{align-self:center;min-width:28px;min-height:28px;padding:0;border-radius:50%;font-size:12px;font-weight:500;line-height:28px;text-align:center}
#panel-cal .today-cell .cv-date{color:#fff;background:var(--cv-blue)}
#panel-cal #CAL_grid .cv-event{min-height:22px;font-size:12px;line-height:1.4;padding:2px 4px;border-radius:4px;white-space:nowrap}
#panel-cal #CAL_grid .cv-event-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
#panel-cal #CAL_grid .cv-event-meta{display:none}
#panel-cal .cv-more{min-height:24px;padding:2px 4px;color:#6B7488;font-size:11px;white-space:nowrap}
#panel-cal .cal-sidebar{display:block;flex:none;width:auto!important;max-width:none;min-width:0;max-height:none;margin:0!important;border:0;border-top:1px solid #D8DEE8;border-radius:0;box-shadow:none;background:#fff;overflow:visible}
#panel-cal .cal-sb-head{cursor:pointer;border:0;padding:16px;color:#1A2230;font-size:13px;font-weight:500;letter-spacing:normal}
#panel-cal .cal-sb-head::before{display:none}
#panel-cal .cal-sb-scroll{min-width:0;padding:0 16px 16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;overflow:visible}
#panel-cal #CAL_sidebar .cal-sb-dlabel,#panel-cal #CAL_sidebar .cv-empty{grid-column:1/-1}
#panel-cal #CAL_sidebar .cv-event{margin:0;padding:8px;background:#fff;min-width:0}
.cv-event-title,.cv-event-meta{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all;overflow-wrap:normal}
.cv-event-title{-webkit-line-clamp:2;font-weight:700}
.cv-event-meta{-webkit-line-clamp:2;color:#6B7488;font-size:10px;margin-top:4px}
.cv-event:disabled,.cv-date:disabled{cursor:not-allowed;color:#6B7488}
@media(max-width:1024px){
  #panel-cal .cv-rail{width:184px;flex-basis:184px;padding:12px}
}
@media(max-width:600px){
  #panel-cal .cal-header{padding:8px 16px;gap:8px;overflow:visible}
  #panel-cal .cal-month-label{font-size:18px}
  #panel-cal .cal-header button{padding:8px}
  #panel-cal .cv-workspace{flex-direction:column}
  #panel-cal .cv-rail{width:100%;flex-basis:auto;padding:12px 16px;border-right:0;border-bottom:1px solid #D8DEE8}
  #panel-cal .cv-toolbar{flex-direction:row;gap:8px;align-items:end}
  #panel-cal .cv-toolbar label{flex:1 1 120px;min-width:0}
  #panel-cal .cv-toolbar button{max-width:100%;white-space:normal}
  #panel-cal .cal-legend{display:none}
  #panel-cal .cal-body{flex:none}
  #panel-cal .cal-grid{grid-auto-rows:minmax(88px,max-content)!important}
  #panel-cal .cal-cell{padding:2px!important;min-height:88px!important;gap:2px}
  #panel-cal #CAL_grid .cv-event{font-size:0;min-height:18px;padding:0 2px;line-height:18px}
  #panel-cal #CAL_grid .cv-event-title,#panel-cal #CAL_grid .cv-event-meta{display:none}
  #panel-cal #CAL_grid .cv-event::after{content:attr(data-short-label);font-size:10px;line-height:18px;white-space:nowrap}
  #panel-cal .cv-more{padding:0;font-size:10px;min-height:20px}
  #panel-cal .cv-date{min-width:24px;min-height:24px;line-height:24px;font-size:11px}
  #panel-cal .cal-sb-scroll{grid-template-columns:minmax(0,1fr)}
}

/* 캘린더가 열린 좁은 화면에서는 계정 정보와 탐색을 각각 화면 안에서 읽는다. */
@media(max-width:1024px){
  body:has(#panel-cal.active) .top-header{flex-wrap:wrap;min-width:0;max-width:100%}
  body:has(#panel-cal.active) .header-right{flex:1 1 240px;min-width:0;max-width:100%;padding:8px 0;flex-wrap:wrap;white-space:normal}
  body:has(#panel-cal.active) .header-right>*,body:has(#panel-cal.active) .auth-user-info{min-width:0;max-width:100%}
  body:has(#panel-cal.active) .auth-user-badge,body:has(#panel-cal.active) .auth-user-info{flex-wrap:wrap}
  body:has(#panel-cal.active) .auth-user-name,body:has(#panel-cal.active) #headerDate{overflow-wrap:anywhere}
  body:has(#panel-cal.active) .main-tabs{order:3;flex:1 1 100%;min-width:0;max-width:100%}
  body:has(#panel-cal.active) .main-tabs>.main-tab,body:has(#panel-cal.active) .main-tabs>.nav-group{flex-shrink:0}
}

/* 승인된 로컬 검토본: 검색·45일 목록은 왼쪽, 선택한 달력은 자체 스크롤한다. */
#panel-cal{min-height:0}
#panel-cal .cv-workspace{min-height:0;overflow:hidden}
#panel-cal .cv-rail{width:320px;flex-basis:320px;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#panel-cal .cv-content{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
#panel-cal .cal-body{flex:none;overflow:visible!important}
#panel-cal .cv-toolbar{flex:none;gap:8px}
#panel-cal .cv-search-form{display:flex;flex-direction:column;gap:4px;min-width:0}
#panel-cal .cv-search-row{display:flex;gap:8px;min-width:0}
#panel-cal .cv-search-row input{flex:1;min-width:0}
#panel-cal .cv-search-row button{flex:none;white-space:nowrap;background:var(--cv-blue);color:#fff;border-color:var(--cv-blue)}
#panel-cal .cal-sidebar{flex:1;min-height:0;overflow:hidden;border-top:0}
#panel-cal .cal-sidebar[open]{display:flex;flex-direction:column}
#panel-cal .cal-sb-head{flex:none;padding:16px 0 8px;font-size:14px}
#panel-cal .cal-sb-scroll{display:block;flex:1;min-height:0;overflow-y:auto;padding:0 4px 8px 0;overscroll-behavior:contain;scrollbar-gutter:stable}
#panel-cal .cal-legend{flex:none;flex-direction:row;gap:8px;margin:8px 0 0;padding-top:8px}
@media(max-width:768px){
  #panel-cal{overflow-y:auto;overflow-x:hidden;padding-bottom:calc(80px + var(--safe-bottom))}
  #panel-cal .cv-workspace{flex:none;flex-direction:column;overflow:visible}
  #panel-cal .cv-rail{width:100%;flex:none;overflow:visible;border-right:0;border-bottom:1px solid #D8DEE8}
  #panel-cal .cv-toolbar{flex-direction:column;align-items:stretch}
  #panel-cal .cv-toolbar label{flex:none}
  #panel-cal .cal-sidebar{flex:none}
  #panel-cal .cal-sb-scroll{flex:none;max-height:250px;overflow-y:auto!important}
  #panel-cal .cv-content{flex:none;overflow:visible}
}
body.view-mobile #panel-cal{overflow-y:auto;overflow-x:hidden;min-height:0;padding-bottom:calc(80px + var(--safe-bottom))}
body.view-mobile #panel-cal .cv-workspace{flex:none;flex-direction:column;overflow:visible}
body.view-mobile #panel-cal .cv-rail{width:100%;flex:none;overflow:visible;border-right:0;border-bottom:1px solid #D8DEE8}
body.view-mobile #panel-cal .cv-toolbar{flex-direction:column;align-items:stretch}
body.view-mobile #panel-cal .cv-toolbar label{flex:none}
body.view-mobile #panel-cal .cal-sidebar{flex:none;margin:0!important}
body.view-mobile #panel-cal .cal-sb-scroll{flex:none;max-height:250px!important;overflow-y:auto!important}
body.view-mobile #panel-cal .cv-content{flex:none;overflow:visible}

/* details의 실제 콘텐츠 상자까지 남은 rail 높이를 전달한다. */
#panel-cal .cv-workspace{flex:1 1 0}
#panel-cal .cv-rail{height:100%;max-height:100%}
#panel-cal .cal-sidebar{flex:1 1 0}
#panel-cal .cal-sidebar::details-content{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}
#panel-cal .cal-sb-scroll{flex:1 1 0}
#panel-cal .cv-scope-label{font-size:11px}
@media(max-width:768px){
  #panel-cal .cv-workspace{flex:none}
  #panel-cal .cv-rail{height:auto;max-height:none}
  #panel-cal .cal-sidebar,#panel-cal .cal-sidebar::details-content{flex:none}
  #panel-cal .cal-sb-scroll{height:250px;flex:none}
}
body.view-mobile #panel-cal .cv-workspace{flex:none}
body.view-mobile #panel-cal .cv-rail{height:auto;max-height:none}
body.view-mobile #panel-cal .cal-sidebar,body.view-mobile #panel-cal .cal-sidebar::details-content{flex:none}
body.view-mobile #panel-cal .cal-sb-scroll{height:250px;flex:none}

/* 승인된 일정 목록 시안: 날짜 밖 소제목과 독립 카드, 전체 주소를 읽는 크기. */
#panel-cal #CAL_sidebar .cal-sb-dlabel{margin:8px 0 6px;color:#1E2944;font-size:13px;font-weight:700;line-height:1.3}
#panel-cal #CAL_sidebar .cv-agenda-event{margin:0 0 8px;padding:8px 10px;border:1px solid #D8DEE8;border-left-width:3px;border-radius:2px;background:#fff;white-space:normal;overflow:visible;height:auto;flex-shrink:0}
#panel-cal #CAL_sidebar .cv-agenda-kind{display:inline-block;margin-bottom:4px;padding:2px 8px;border:1px solid #D8DEE8;border-radius:2px;background:#EEF1F8;color:#3E5C8A;font-size:12px;font-weight:700;line-height:1.25}
#panel-cal #CAL_sidebar .cv-agenda-title{display:block;color:#1A2230;font-size:14px;font-weight:500;line-height:1.5;white-space:normal;overflow:visible;word-break:keep-all;overflow-wrap:anywhere}
#panel-cal #CAL_sidebar .cv-agenda-meta{display:block;margin-top:4px;color:#3E5C8A;font-size:12px;font-weight:500;line-height:1.45;white-space:normal;overflow:visible;word-break:keep-all;overflow-wrap:anywhere}
