.schedule-view{max-width:1200px;padding-left:10px;padding-right:10px}
.schedule-view header{padding-bottom:9px}
.schedule-toolbar{display:grid;gap:8px;margin:0 0 10px}
.schedule-month-row{display:flex;align-items:flex-end;justify-content:flex-start;gap:8px;padding:0 3px}
.schedule-month-row strong{font-size:22px;letter-spacing:-.7px}
.schedule-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:#f2f5f6;border-radius:11px;padding:4px}
.schedule-tabs button{min-width:0;min-height:38px;padding:0 2px;border:0;border-radius:8px;background:transparent;color:#607078;font-size:12px;font-weight:750;letter-spacing:-.3px}
.schedule-tabs button.active{background:#fff;color:#172327;box-shadow:0 1px 7px rgb(22 42 50 / .12)}
.schedule-nav{display:flex;align-items:center;justify-content:center;gap:7px;min-height:30px}
.schedule-nav button{width:32px;height:30px;border:1px solid #d5dde0;border-radius:8px;background:#fff;color:#42565f;font-size:18px;line-height:1}.schedule-nav button[hidden]{display:none}.schedule-nav button:disabled{opacity:.25}.schedule-nav strong{min-width:100px;text-align:center;font-size:13px;color:#42565f}
.schedule-loading,.schedule-empty{margin:34px auto 0;text-align:center;color:#718087}.schedule-loading{font-size:13px}.schedule-empty{max-width:320px;padding:22px 18px;border:1px dashed #c7d1d5;border-radius:13px;background:#fafbfb;line-height:1.6}.schedule-empty strong{display:block;color:#263a42;font-size:17px;margin-bottom:5px}
.schedule-table-wrap{position:relative;width:100%;max-height:calc(100dvh - 220px);overflow:auto;border:1px solid #d7dfe2;border-radius:12px;background:#fff;overscroll-behavior:contain;box-shadow:0 6px 20px rgb(33 54 62 / .055)}
.schedule-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-variant-numeric:tabular-nums}
.schedule-table th,.schedule-table td{height:40px;padding:3px 4px;border-right:1px solid #e3e8ea;border-bottom:1px solid #e3e8ea;text-align:center;white-space:nowrap}
.schedule-table tr:last-child th,.schedule-table tr:last-child td{border-bottom:0}.schedule-table th:last-child,.schedule-table td:last-child{border-right:0}
.schedule-table thead th{position:sticky;top:0;z-index:3;background:#f5f7f8;color:#44575f}
.schedule-name-head,.schedule-name{position:sticky!important;left:0;z-index:4!important;min-width:72px;max-width:72px;background:#fff!important;text-align:left!important;padding-left:7px!important;font-weight:750;color:#263a42;font-size:12px;overflow:hidden;text-overflow:ellipsis}
.schedule-name-head{z-index:6!important;background:#eef2f4!important;text-align:center!important;padding-left:4px!important}
.schedule-date-head{min-width:56px}.schedule-date-head strong{display:block;font-size:13px}.schedule-date-head small{display:block;margin-top:1px;color:#7c898e;font-size:10px;font-weight:650}
.schedule-code{min-width:56px;font-size:11px;font-weight:750;color:#253940;background:#fff;letter-spacing:-.2px}
.schedule-month .schedule-code,.schedule-month .schedule-date-head{min-width:58px}
/* 일주일: 이름 + 7일을 모바일 화면 폭 안에 고정 */
.schedule-week{width:100%;min-width:100%;table-layout:fixed}
.schedule-week .schedule-name-head,.schedule-week .schedule-name{width:62px;min-width:62px;max-width:62px;padding-left:5px!important;font-size:11px}
.schedule-week .schedule-date-head,.schedule-week .schedule-code{width:auto;min-width:0;max-width:none;padding-left:1px;padding-right:1px}
.schedule-week .schedule-date-head strong{font-size:12px}.schedule-week .schedule-date-head small{font-size:9px}
.schedule-week .schedule-code{font-size:10px;letter-spacing:-.45px}
/* 당일: 세로 공간을 최대한 아껴 한눈에 많은 인원 표시 */
.schedule-day{width:100%;min-width:100%;table-layout:fixed}
.schedule-day th,.schedule-day td{height:34px;padding-top:2px;padding-bottom:2px}
.schedule-day .schedule-name-head,.schedule-day .schedule-name{width:92px;min-width:92px;max-width:92px;font-size:11px}
.schedule-day .schedule-date-head,.schedule-day .schedule-code{width:auto;min-width:0;max-width:none;font-size:12px}
.schedule-day .schedule-date-head strong{font-size:13px}.schedule-day .schedule-date-head small{font-size:9px}
.tone-empty{color:#b6c0c4!important}.tone-rest{background:#f2f4f5!important;color:#718087!important}.tone-a{background:#eef6fb!important;color:#2f657f!important}.tone-p{background:#fff5e9!important;color:#9b5a16!important}.tone-e{background:#f5f0fa!important;color:#71548b!important}.tone-leave{background:#eef7f1!important;color:#3f7654!important}.tone-other{background:#fbf5ef!important;color:#755c48!important}
@media(max-width:390px){
  .schedule-view{padding-left:7px;padding-right:7px}
  .schedule-week .schedule-name-head,.schedule-week .schedule-name{width:56px;min-width:56px;max-width:56px;font-size:10px}
  .schedule-week .schedule-code{font-size:9px;letter-spacing:-.55px}
  .schedule-week .schedule-date-head strong{font-size:11px}.schedule-week .schedule-date-head small{font-size:8px}
}
@media(min-width:700px){
  .schedule-view{padding-left:20px;padding-right:20px}
  .schedule-table-wrap{max-height:calc(100dvh - 205px)}
  .schedule-name-head,.schedule-name{min-width:96px;max-width:96px}
  .schedule-table th,.schedule-table td{height:42px}
  .schedule-month .schedule-code,.schedule-month .schedule-date-head{min-width:66px}
  .schedule-week .schedule-name-head,.schedule-week .schedule-name{width:96px;min-width:96px;max-width:96px;font-size:12px}
  .schedule-week .schedule-code{font-size:11px}
  .schedule-day .schedule-name-head,.schedule-day .schedule-name{width:120px;min-width:120px;max-width:120px}
  .schedule-day th,.schedule-day td{height:36px}
}


/* 초과근무 / 비행기 통계 */
.schedule-special-wrap{max-height:calc(100dvh - 220px);overflow:auto;border:0;background:transparent;box-shadow:none}
.schedule-overtime-list{display:grid;gap:7px;padding-bottom:4px}
.overtime-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:48px;padding:8px 12px;border:1px solid #dce3e5;border-radius:11px;background:#fff;box-shadow:0 3px 12px rgb(33 54 62 / .035)}
.overtime-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#eef2f4;color:#64737a;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.overtime-row strong{font-size:14px;color:#263a42}.overtime-row b{color:#c65a1a;font-size:14px;font-variant-numeric:tabular-nums}.overtime-row b.missing{color:#9aa6aa;font-weight:650}
.schedule-special-empty{display:grid;gap:5px;margin:28px auto;padding:20px 16px;max-width:330px;border:1px dashed #c7d1d5;border-radius:13px;background:#fafbfb;text-align:center;color:#748187;font-size:13px;line-height:1.5}.schedule-special-empty strong{color:#30444c;font-size:16px}
.flight-stat-grid{display:grid;grid-template-columns:1fr;gap:9px;padding-bottom:4px}
.flight-stat-card{border:1px solid #dce3e5;border-radius:12px;background:#fff;padding:11px 12px;box-shadow:0 3px 12px rgb(33 54 62 / .035)}
.flight-stat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:9px;border-bottom:1px solid #edf0f1}.flight-stat-head strong{font-size:15px;color:#263a42}.flight-stat-head span{font-size:12px;font-weight:750;color:#697980}
.flight-stat-items{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.flight-stat-item{display:flex;align-items:center;gap:7px;min-height:34px;padding:5px 8px;border:1px solid #e1e7e9;border-radius:9px;background:#fafcfc;color:inherit;font:inherit;cursor:pointer;transition:opacity .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.flight-stat-item:active{transform:scale(.98)}.flight-stat-item.active{border-color:#9fb3bc;background:#fff;box-shadow:0 0 0 2px rgb(87 118 131 / .11)}.flight-stat-item.dimmed{opacity:.22}.flight-stat-card-muted{opacity:.5}.flight-stat-card-muted .flight-stat-head{opacity:.58}
.flight-stat-item img{display:block;width:58px;height:22px;object-fit:contain}.flight-stat-item b{font-size:12px;color:#263a42;white-space:nowrap}.flight-stat-code{display:grid;place-items:center;min-width:36px;height:22px;border-radius:6px;background:#e9eef0;color:#3c5159;font-size:11px;font-weight:800}
.flight-stat-none{color:#97a2a6;font-size:12px;padding:4px 0}.schedule-nav strong{font-variant-numeric:tabular-nums}
@media(min-width:700px){.flight-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:390px){.schedule-tabs{gap:2px;padding:3px}.schedule-tabs button{font-size:11px}.overtime-row{min-height:44px;padding:6px 10px}.flight-stat-card{padding:9px 10px}.flight-stat-item img{width:52px}}
/* 일별 운항 타임라인 */
.schedule-timeline-wrap{max-height:calc(100dvh - 220px);overflow:auto;border:0;background:transparent;box-shadow:none}
.operation-timeline-shell{display:grid;gap:10px;padding-bottom:6px}
.operation-timeline-summary{display:flex;align-items:center;justify-content:space-between;padding:0 4px;color:#718087;font-size:11px;font-variant-numeric:tabular-nums}
.operation-timeline-summary strong{color:#263a42;font-size:13px}
.operation-timeline-scroller{overflow-x:auto;overflow-y:hidden;border:1px solid #dce3e5;border-radius:14px;background:#fff;box-shadow:0 4px 16px rgb(33 54 62 / .045);overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.operation-timeline-board{--logo-col:88px;--track-width:1368px;display:grid;grid-template-columns:var(--logo-col) var(--track-width);min-width:calc(var(--logo-col) + var(--track-width));background:#fff}
.operation-timeline-corner{position:sticky;left:0;z-index:4;display:grid;place-items:center;padding:14px 8px;border-right:1px solid #e7edef;border-bottom:1px solid #dce3e5;background:#f7f9fa;color:#62747c;font-size:11px;font-weight:800;letter-spacing:-.2px}
.operation-timeline-axis{position:relative;height:50px;border-bottom:1px solid #dce3e5;background:repeating-linear-gradient(to right,#f7f9fa 0,#f7f9fa 71px,#e9eff1 71px,#e9eff1 72px)}
.operation-timeline-tick{position:absolute;top:15px;transform:translateX(-50%);color:#62747c;font-size:10px;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.operation-timeline-tick:first-child{transform:none}
.operation-timeline-tick:last-child{transform:translateX(-100%)}
.operation-timeline-airline{position:sticky;left:0;z-index:3;display:grid;justify-items:center;align-content:center;gap:5px;padding:10px 8px;border-right:1px solid #edf2f4;border-bottom:1px solid #edf2f4;background:#fff}
.operation-timeline-airline img{display:block;max-width:58px;width:100%;height:28px;object-fit:contain}
.operation-timeline-airline small{color:#62747c;font-size:10px;font-weight:800;line-height:1}
.operation-timeline-airline-badge{display:grid;place-items:center;min-width:46px;height:28px;padding:0 6px;border-radius:9px;background:#eef3f5;color:#31454f;font-size:12px;font-weight:850}
.operation-timeline-lane{position:relative;height:74px;border-bottom:1px solid #edf2f4;background:repeating-linear-gradient(to right,transparent 0,transparent 71px,#edf1f2 71px,#edf1f2 72px)}
.operation-timeline-block{position:absolute;display:grid;gap:4px;align-content:center;min-width:94px;max-width:260px;min-height:50px;padding:8px 10px;border-radius:14px;background:var(--airline-color);box-shadow:0 6px 12px rgb(33 54 62 / .12);color:#fff;overflow:hidden}
.operation-timeline-block strong,.operation-timeline-block span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.operation-timeline-block strong{font-size:12px;font-weight:850;letter-spacing:-.2px}
.operation-timeline-block span{font-size:10px;font-weight:700;opacity:.95;font-variant-numeric:tabular-nums}
@media(max-width:390px){
  .operation-timeline-board{--logo-col:78px;--track-width:1254px}
  .operation-timeline-airline img{max-width:52px;height:24px}
  .operation-timeline-block{min-width:88px;max-width:220px;padding:7px 9px}
}
@media(min-width:700px){
  .operation-timeline-board{--logo-col:96px;--track-width:1520px}
  .operation-timeline-axis{height:54px}
  .operation-timeline-tick{font-size:11px}
  .operation-timeline-lane{height:80px}
  .operation-timeline-airline img{max-width:64px;height:30px}
  .operation-timeline-block{min-width:104px;max-width:280px;min-height:54px}
  .operation-timeline-block strong{font-size:13px}
  .operation-timeline-block span{font-size:11px}
}

/* 대구램프 바나나숲 */
.banana-forest-menu{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:42px;padding:0 14px;border:1px solid #dce6df;border-radius:11px;background:#f5faf6;color:#365947;font:inherit;box-shadow:0 2px 8px rgb(50 83 62 / .035)}
.banana-forest-menu span{font-size:16px}.banana-forest-menu strong{font-size:13px;font-weight:800;letter-spacing:-.3px}
.banana-forest-new{display:inline-grid;place-items:center;min-width:31px;height:18px;padding:0 6px;border-radius:999px;background:#ef4d4d;color:#fff;font-style:normal;font-size:8px;font-weight:900;letter-spacing:.15px;box-shadow:0 2px 6px rgb(181 46 46 / .2)}
.banana-forest-new[hidden]{display:none}.banana-forest-menu.has-new-comments{box-shadow:0 0 0 2px rgb(239 77 77 / .06),0 2px 8px rgb(141 112 28 / .045)}
.banana-forest-menu.active{border-color:#9fc1aa;background:#eaf5ed;color:#244a34;box-shadow:0 0 0 2px rgb(78 129 94 / .08)}
.banana-forest-wrap{max-height:calc(100dvh - 225px);overflow:auto;border:1px solid #dce3e5;border-radius:14px;background:#f7f9f8;box-shadow:0 4px 16px rgb(33 54 62 / .035)}
.banana-forest-shell{min-height:100%;display:flex;flex-direction:column}
.banana-forest-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #dce3e5;background:rgb(247 249 248 / .96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.banana-forest-head strong{color:#30493a;font-size:13px;font-weight:850;letter-spacing:-.3px}
.banana-forest-refresh{display:flex;align-items:center;justify-content:center;gap:5px;min-width:88px;height:34px;padding:0 11px;border:1px solid #cbd9cf;border-radius:9px;background:#fff;color:#3e6650;font:inherit;font-size:11px;font-weight:800;box-shadow:0 1px 5px rgb(50 83 62 / .045)}
.banana-forest-refresh span{font-size:16px;line-height:1}.banana-forest-refresh:active{transform:scale(.98)}.banana-forest-refresh:disabled{opacity:.55}
.banana-forest-list{display:grid;gap:8px;padding:12px 12px 16px}
.banana-comment{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'nick time' 'text text';gap:4px 10px;padding:11px 12px;border:1px solid #e2e8e5;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgb(33 54 62 / .025)}
.banana-comment-nick{grid-area:nick;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#263a42;font-size:13px;font-weight:850}
.banana-comment-text{grid-area:text;margin:0;color:#33474f;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.banana-comment-time{grid-area:time;align-self:start;color:#8a979c;font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.banana-forest-loading,.banana-forest-empty,.banana-forest-error{padding:30px 16px;text-align:center;color:#7c8a8f;font-size:12px;line-height:1.55}
.banana-forest-error{color:#a44f4f}
.banana-comment-composer{position:sticky;bottom:0;z-index:4;display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #dce3e5;background:rgb(255 255 255 / .96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.banana-comment-composer input,.banana-comment-composer textarea{width:100%;border:1px solid #d6dfe2;border-radius:10px;background:#fff;color:#203238;font:inherit;outline:0}
.banana-comment-composer input{height:42px;padding:0 10px;font-size:12px}
.banana-comment-composer textarea{grid-column:2;min-height:70px;padding:10px;resize:none;font-size:13px;line-height:1.4}
.banana-comment-composer input:focus,.banana-comment-composer textarea:focus{border-color:#8eaa99;box-shadow:0 0 0 3px rgb(83 128 96 / .09)}
.banana-comment-action{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px}
.banana-comment-action span{color:#8a979c;font-size:10px}
.banana-comment-action button{min-width:88px;height:36px;padding:0 14px;border:0;border-radius:9px;background:#314b3b;color:#fff;font-size:12px;font-weight:800}
.banana-comment-action button:disabled{opacity:.55}
.banana-comment-submit-error{grid-column:1/-1;margin:0;color:#a54848;font-size:11px;text-align:right}
@media(max-width:390px){.banana-comment-composer{grid-template-columns:82px minmax(0,1fr);padding-left:9px;padding-right:9px}.banana-comment-composer input{font-size:11px}.banana-comment-composer textarea{font-size:12px}.banana-forest-list{padding-left:9px;padding-right:9px}}

/* 오늘 날짜 강조 + 이번달 셀 컴팩트 */
.schedule-month th,.schedule-month td{height:36px;padding:2px 3px}
.schedule-month .schedule-code,.schedule-month .schedule-date-head{min-width:52px}
.schedule-month .schedule-code{font-size:10px;letter-spacing:-.35px}
.schedule-month .schedule-date-head strong{font-size:12px}
.schedule-month .schedule-date-head small{font-size:9px}
.schedule-month .schedule-name-head,.schedule-month .schedule-name{min-width:68px;max-width:68px;font-size:11px}
.schedule-date-head.is-today{color:#b83e3e!important;background:#fff2f2!important;box-shadow:inset 0 0 0 2px #df7777}
.schedule-code.is-today{box-shadow:inset 1px 0 #e7a0a0,inset -1px 0 #e7a0a0}
.schedule-week .schedule-date-head.is-today{background:#fff1f1!important}

/* 바나나숲: 기존 부드러운 톤을 바나나 옐로 계열로 */
.banana-forest-menu{border-color:#eadc9d;background:#fffbed;color:#6f5a18;box-shadow:0 2px 8px rgb(141 112 28 / .045)}
.banana-forest-menu.active{border-color:#dfc95f;background:#fff3b8;color:#5d4a08;box-shadow:0 0 0 2px rgb(205 170 47 / .10)}
.banana-forest-wrap{border-color:#e8dfb7;background:#fffdf5}
.banana-forest-head{border-bottom-color:#e8dfb7;background:rgb(255 253 245 / .96)}
.banana-forest-head strong{color:#6b5713}
.banana-forest-refresh{border-color:#e3d59b;background:#fffef8;color:#6f5a18;box-shadow:0 1px 5px rgb(141 112 28 / .05)}
.banana-comment{border-color:#ece3bd}
.banana-comment-composer{border-top-color:#e8dfb7;background:rgb(255 254 248 / .97)}
.banana-comment-composer input:focus,.banana-comment-composer textarea:focus{border-color:#d9bd4f;box-shadow:0 0 0 3px rgb(210 178 58 / .11)}
.banana-comment-action button{background:#8a6b10;color:#fff}

/* 바나나숲 댓글 사진 */
.banana-comment-photo{grid-column:1/-1;justify-self:start;display:block;width:148px;height:148px;margin-top:5px;padding:0;border:1px solid #eadfba;border-radius:14px;background:#fffdf5;overflow:hidden;box-shadow:0 3px 10px rgb(95 72 14 / .06);cursor:pointer}
.banana-comment-photo img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.banana-comment-photo:active{transform:scale(.985)}
.banana-comment-tools{grid-column:1/-1;display:flex;align-items:center;gap:8px;min-width:0}
.banana-comment-photo-button{display:flex;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;min-width:72px;height:34px;padding:0 10px;border:1px solid #e0cf83;border-radius:9px;background:#fff8d2;color:#70570d;font:inherit;font-size:11px;font-weight:850}
.banana-comment-photo-button span{font-size:15px;line-height:1}.banana-comment-photo-button:disabled{opacity:.55}
.banana-comment-photo-status{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#97875a;font-size:10px}
.banana-comment-selected-photo{position:relative;flex:0 0 auto;width:42px;height:42px;margin-left:auto;border:1px solid #eadfba;border-radius:9px;background:#fff;overflow:visible}
.banana-comment-selected-photo img{display:block;width:100%;height:100%;object-fit:contain;border-radius:8px;background:#fff}
.banana-comment-selected-photo button{position:absolute;right:-7px;top:-7px;display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:#4e4a3d;color:#fff;font-size:14px;font-weight:850;line-height:1;box-shadow:0 2px 5px rgb(0 0 0 / .16)}
.banana-comment-photo-dialog{padding:0;border:0;background:transparent;max-width:none;max-height:none}.banana-comment-photo-dialog::backdrop{background:rgb(20 22 22 / .72);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.banana-comment-photo-dialog-box{display:grid;justify-items:center;gap:12px;padding:14px;border-radius:18px;background:#fff;box-shadow:0 18px 48px rgb(0 0 0 / .28)}
.banana-comment-photo-dialog-box img{display:block;width:min(88vw,360px);height:min(88vw,360px);max-width:360px;max-height:360px;object-fit:contain;border-radius:12px;background:#fff}
.banana-comment-photo-dialog-box button{min-width:90px;height:38px;padding:0 16px;border:0;border-radius:10px;background:#725a12;color:#fff;font:inherit;font-size:12px;font-weight:850}
@media(max-width:390px){.banana-comment-photo{width:132px;height:132px}.banana-comment-photo-status{font-size:9px}.banana-comment-tools{gap:6px}.banana-comment-photo-button{min-width:66px;padding:0 8px}}

/* 바나나숲 댓글 목록 / 작성 영역 분리 */
.banana-forest-wrap{
  max-height:none;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overscroll-behavior:auto;
}
.banana-forest-shell{min-height:0;display:grid;gap:14px;padding-bottom:10px}
.banana-forest-feed{overflow:hidden;border:1px solid #e8dfb7;border-radius:14px;background:#fffdf5;box-shadow:0 4px 16px rgb(95 72 14 / .035)}
.banana-forest-head{position:relative;top:auto}
.banana-forest-list{max-height:min(70dvh,720px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.banana-comment-composer{position:relative;bottom:auto;z-index:1;border:1px solid #e8dfb7;border-radius:14px;background:#fffef8;box-shadow:0 4px 16px rgb(95 72 14 / .035)}
.banana-comment-action{justify-content:flex-end}

/* 댓글 삭제 버튼 */
.banana-comment{grid-template-columns:minmax(0,1fr) auto 24px;grid-template-areas:'nick time delete' 'text text text'}
.banana-comment-delete{grid-area:delete;align-self:start;display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:transparent;color:#d84b4b;font:inherit;font-size:19px;font-weight:800;line-height:1;cursor:pointer}
.banana-comment-delete:active{background:#fff0f0;transform:scale(.92)}
.banana-comment-delete:disabled{opacity:.35}

/* 댓글 삭제 확인창 */
.banana-comment-delete-dialog{padding:0;border:0;background:transparent;max-width:none;max-height:none}
.banana-comment-delete-dialog::backdrop{background:rgb(20 22 22 / .42);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.banana-comment-delete-dialog-box{min-width:min(82vw,300px);padding:18px;border-radius:16px;background:#fff;box-shadow:0 18px 48px rgb(0 0 0 / .22);text-align:center}
.banana-comment-delete-dialog-box strong{display:block;color:#2f383b;font-size:15px;font-weight:850}
.banana-comment-delete-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.banana-comment-delete-dialog-actions button{height:40px;border:0;border-radius:10px;font:inherit;font-size:13px;font-weight:800}
.banana-comment-delete-dialog-actions .cancel{background:#f1f3f4;color:#59676c}
.banana-comment-delete-dialog-actions .confirm{background:#d84b4b;color:#fff}


/* 직원 스케줄만 보기 */
.schedule-tabs button[data-schedule-mode="focus"]{font-size:16px}
.schedule-tabs button[data-schedule-mode="focus"].active{background:#f7e2b3;color:#6b4211;box-shadow:0 1px 8px rgb(138 86 18 / .16),inset 0 0 0 1px #d4aa63}
.schedule-focus-wrap{max-height:calc(100dvh - 220px);overflow:auto;border:0;background:transparent;box-shadow:none;overscroll-behavior:auto}
.schedule-focus-shell{display:grid;gap:12px;padding-bottom:8px}
.schedule-focus-panel{padding:13px;border:1px solid #dcc08a;border-radius:14px;background:linear-gradient(180deg,#fffaf0 0%,#fbf2e1 100%);box-shadow:0 4px 16px rgb(112 78 26 / .05)}
.schedule-focus-heading{display:flex;align-items:center;gap:10px;margin-bottom:11px}
.schedule-focus-heading-icon{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border:1px solid #d2ac64;border-radius:12px;background:#f6deb0;font-size:20px;box-shadow:inset 0 1px 0 rgb(255 255 255 / .65)}
.schedule-focus-heading>div{display:grid;gap:2px;min-width:0}
.schedule-focus-heading strong{color:#5d3c16;font-size:15px;font-weight:900;letter-spacing:-.35px}
.schedule-focus-heading span{color:#94704a;font-size:10px;line-height:1.4}
.schedule-focus-search{display:grid;gap:7px}
.schedule-focus-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:7px}
.schedule-focus-input-wrap input{min-width:0;height:42px;padding:0 12px;border:1px solid #d8c7ab;border-radius:11px;background:#fffdf8;color:#3d342a;font:inherit;font-size:13px;outline:0;-webkit-appearance:none;appearance:none}
.schedule-focus-input-wrap input:focus{border-color:#c6944b;box-shadow:0 0 0 3px rgb(198 148 75 / .12)}
.schedule-focus-input-wrap button{height:42px;padding:0;border:0;border-radius:11px;background:#8f631f;color:#fff;font:inherit;font-size:12px;font-weight:850;box-shadow:0 3px 8px rgb(117 77 20 / .16)}
.schedule-focus-input-wrap button:active{transform:scale(.98)}
.schedule-focus-results{display:flex;flex-wrap:wrap;gap:6px;padding:1px 1px 0}
.schedule-focus-result{min-height:31px;padding:0 11px;border:1px solid #e5d1af;border-radius:999px;background:#fff8ed;color:#66471d;font:inherit;font-size:11px;font-weight:800}
.schedule-focus-result:active{background:#f7e4bf}
.schedule-focus-status{margin:0;color:#b35a3f;font-size:10px;line-height:1.4}
.schedule-focus-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.schedule-focus-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 5px 0 10px;border:1px solid #dfc48d;border-radius:999px;background:#f9ebcb;color:#69481a;box-shadow:0 1px 5px rgb(110 80 22 / .05)}
.schedule-focus-chip b{font-size:11px;font-weight:850}
.schedule-focus-chip button{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#e6c88f;color:#6d4915;font:inherit;font-size:15px;font-weight:900;line-height:1}
.schedule-focus-chip-empty{color:#9a8061;font-size:10px}
.schedule-focus-empty{display:grid;justify-items:center;gap:5px;padding:32px 18px;border:1px dashed #d8c39d;border-radius:14px;background:#fffaf3;text-align:center}
.schedule-focus-empty>span{font-size:30px;filter:saturate(.9)}
.schedule-focus-empty strong{color:#5e4424;font-size:15px;font-weight:850}
.schedule-focus-empty p{margin:0;color:#8f775e;font-size:11px;line-height:1.5}
.schedule-focus-card{overflow:hidden;border:1px solid #dce3e5;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgb(33 54 62 / .05)}
.schedule-focus-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:45px;padding:0 12px;border-bottom:1px solid #e8ecee;background:#fafcfc}
.schedule-focus-card-head strong{color:#5b4122;font-size:13px;font-weight:850}
.schedule-focus-card-head span{color:#8b7a69;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}
.schedule-focus-table-scroller{overflow:auto;max-width:100%;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.schedule-focus-table{min-width:max-content}
.schedule-focus-table .schedule-name-head,.schedule-focus-table .schedule-name{min-width:76px;max-width:76px}
.schedule-focus-table .schedule-name{background:#fff8ee!important;color:#5e4320;font-weight:850}
.schedule-focus-table .schedule-name-head{background:#f5e7c9!important;color:#6c4e21}
.schedule-focus-table .schedule-code,.schedule-focus-table .schedule-date-head{min-width:52px}
.schedule-focus-table .schedule-code{height:39px;font-size:10px}
.schedule-focus-table .schedule-date-head{height:39px}
.schedule-focus-table .schedule-date-head strong{font-size:12px}
.schedule-focus-table .schedule-date-head small{font-size:9px}
@media(max-width:390px){
  .schedule-tabs button{font-size:10.5px}.schedule-tabs button[data-schedule-mode="focus"],.schedule-tabs button[data-schedule-mode="honey"]{font-size:15px}
  .schedule-focus-panel{padding:11px}.schedule-focus-heading span{font-size:9px}
  .schedule-focus-table .schedule-name-head,.schedule-focus-table .schedule-name{min-width:70px;max-width:70px;font-size:10px}
  .schedule-focus-table .schedule-code,.schedule-focus-table .schedule-date-head{min-width:49px}
}
@media(min-width:700px){
  .schedule-focus-shell{grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:start}
  .schedule-focus-empty{grid-column:2}
}

/* 2026-10 근무스케줄 개편: 내 근무 / 버전 · 업로드일 / 월간 이름 강조 */
.schedule-month-row{align-items:baseline;flex-wrap:wrap;row-gap:2px}
.schedule-upload-meta{color:#8a979c;font-size:9px;font-weight:650;letter-spacing:-.15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.schedule-upload-meta[hidden]{display:none}
.schedule-tabs{grid-template-columns:repeat(7,1fr)}
.schedule-tabs button[data-schedule-mode="mywork"]{font-weight:850}
.schedule-tabs button[data-schedule-mode="mywork"].active{background:#fff;color:#172327;box-shadow:0 1px 7px rgb(22 42 50 / .12)}
.schedule-month .schedule-name{min-width:72px;max-width:72px;text-align:center!important;padding-left:3px!important;padding-right:3px!important;font-size:12.5px;font-weight:850;letter-spacing:-.35px}
.schedule-month .schedule-name-head{min-width:72px;max-width:72px;text-align:center!important;font-size:11.5px;font-weight:850}

/* 내 근무 */
.schedule-mywork-wrap{max-height:none;overflow:visible;border:0;background:transparent;box-shadow:none}
.schedule-mywork-shell{display:grid;gap:9px;padding-bottom:10px;width:100%;min-width:0}
.schedule-mywork-selector{padding:10px 11px;border:1px solid #cfe2ea;border-radius:14px;background:linear-gradient(180deg,#f7fbfd 0%,#f1f8fb 100%);box-shadow:0 4px 16px rgb(32 89 114 / .05)}
.schedule-mywork-select-row{display:grid;grid-template-columns:auto minmax(120px,44%);align-items:center;justify-content:space-between;gap:12px}
.schedule-mywork-title{color:#214b5f;font-size:15px;font-weight:900;letter-spacing:-.35px;white-space:nowrap}
.schedule-mywork-select-wrap{position:relative;min-width:0}
.schedule-mywork-select{width:100%;height:38px;appearance:none;-webkit-appearance:none;padding:0 34px 0 12px;border:1px solid #b9d4df;border-radius:10px;background:#fff;color:#244c5d;font:inherit;font-size:12px;font-weight:850;text-align:center;text-align-last:center;box-shadow:0 2px 8px rgb(39 88 108 / .06)}
.schedule-mywork-select:focus{outline:2px solid rgb(74 146 176 / .18);outline-offset:1px;border-color:#69a7c1}
.schedule-mywork-select-chevron{position:absolute;right:11px;top:50%;transform:translateY(-55%);pointer-events:none;color:#648a9a;font-size:14px;font-weight:900}
.schedule-mywork-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;min-width:0}
.schedule-mywork-day{min-width:0;min-height:104px;padding:10px 8px 9px;border:1px solid #dce3e5;border-radius:13px;background:#fff;box-shadow:0 4px 14px rgb(33 54 62 / .045);overflow:hidden}
.schedule-mywork-day-top{display:flex;align-items:baseline;justify-content:space-between;gap:5px;min-width:0}
.schedule-mywork-day-top strong{flex:0 0 auto;color:#364a52;font-size:12px;font-weight:900;line-height:1.15}
.schedule-mywork-day-top span{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#839096;font-size:9px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.schedule-mywork-code{display:block;margin-top:12px;margin-bottom:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#263a42;font-size:22px;font-weight:900;letter-spacing:-.55px;line-height:1.08;text-align:center}
.schedule-mywork-times{display:grid;gap:4px;margin-top:0}
.schedule-mywork-time-row{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;padding-top:2px;border-top:1px solid rgb(38 58 66 / .06)}
.schedule-mywork-time-row span{overflow:hidden;text-overflow:ellipsis;color:#7a8990;font-size:8px;font-weight:700;letter-spacing:-.2px;white-space:nowrap}
.schedule-mywork-time-row strong{flex:0 0 auto;color:#38515c;font-size:9.5px;font-weight:850;font-variant-numeric:tabular-nums}
.schedule-mywork-day.tone-rest{background:#f4f5f5!important;border-color:#e0e5e7}.schedule-mywork-day.tone-rest .schedule-mywork-code{color:#6f7f86}
.schedule-mywork-day.tone-a{background:#eef6fb!important;border-color:#d8e9f2}.schedule-mywork-day.tone-a .schedule-mywork-code{color:#2f657f}
.schedule-mywork-day.tone-p{background:#fff5e9!important;border-color:#f0dfc9}.schedule-mywork-day.tone-p .schedule-mywork-code{color:#9b5a16}
.schedule-mywork-day.tone-e{background:#f5f0fa!important;border-color:#e7def0}.schedule-mywork-day.tone-e .schedule-mywork-code{color:#71548b}
.schedule-mywork-day.tone-leave{background:#eef7f1!important;border-color:#d9eadd}.schedule-mywork-day.tone-leave .schedule-mywork-code{color:#3f7654}
.schedule-mywork-day.tone-other{background:#fbf5ef!important;border-color:#ebe0d7}.schedule-mywork-day.tone-other .schedule-mywork-code{color:#755c48}


/* 내 근무: 내일 · 모레 · 글피 조업 항공사 */
.schedule-mywork-flight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;min-width:0;margin-top:5px}
.schedule-mywork-flight-box{min-width:0;min-height:62px;padding:7px;border:1px solid #dde5e8;border-radius:13px;background:#fff;box-shadow:0 3px 12px rgb(33 54 62 / .035);overflow:hidden}



.schedule-mywork-flight-logos{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-height:48px;overflow:visible}

.schedule-mywork-flight-logo{position:relative;display:grid;place-items:center;width:100%;height:30px;padding:3px 6px;border:1px solid #e7edef;border-radius:8px;background:#fbfcfc}
.schedule-mywork-flight-logo img{display:block;max-width:42px;width:100%;height:20px;object-fit:contain}
.schedule-mywork-flight-logo>b{color:#4f626b;font-size:9px;font-weight:900}

.schedule-mywork-flight-empty{display:grid;place-items:center;width:100%;min-height:48px;color:#aab4b8;font-size:15px;font-weight:700}

/* 내일 · 모레 · 글피는 날짜별 고정 톤으로 구분 */
.schedule-mywork-day.day-0{background:#eaf5ff!important;border-color:#c9e1f3!important;box-shadow:0 4px 14px rgb(48 117 155 / .06)}
.schedule-mywork-day.day-1{background:#eef8ef!important;border-color:#d3e7d5!important;box-shadow:0 4px 14px rgb(66 123 78 / .05)}
.schedule-mywork-day.day-2{background:#fff4e8!important;border-color:#f0dcc4!important;box-shadow:0 4px 14px rgb(155 103 43 / .05)}
@media(max-width:390px){
  .schedule-upload-meta{font-size:8.5px}
  .schedule-mywork-selector{padding:9px 10px}
  .schedule-mywork-select-row{grid-template-columns:auto minmax(112px,45%);gap:8px}
  .schedule-mywork-title{font-size:14px}
  .schedule-mywork-select{height:36px;padding-left:9px;padding-right:28px;font-size:11px}
  .schedule-mywork-select-chevron{right:9px;font-size:12px}
  .schedule-mywork-days{gap:5px}
  .schedule-mywork-day{min-height:98px;padding:9px 6px 8px}
  .schedule-mywork-code{font-size:19px;margin-top:10px;margin-bottom:10px}
  .schedule-mywork-day-top strong{font-size:11px}
  .schedule-mywork-day-top span{font-size:8.2px}
  .schedule-mywork-flight-grid{gap:5px}
  .schedule-mywork-flight-box{min-height:58px;padding:6px}
  .schedule-mywork-flight-logo{width:100%;height:28px}
  .schedule-mywork-flight-logo img{max-width:36px;height:18px}
  .schedule-mywork-time-row span{font-size:7.2px}
  .schedule-mywork-time-row strong{font-size:8.8px}
}

/* 내 근무: 오늘 접이식 카드 */
.schedule-mywork-today{overflow:hidden;border:1px solid #d9dfe1;border-radius:13px;background:#f3f4f4;box-shadow:0 3px 12px rgb(42 54 58 / .035)}
.schedule-mywork-today-toggle{width:100%;min-height:48px;padding:8px 12px;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#3b474c;text-align:left}
.schedule-mywork-today-toggle:active{background:#eceeef}
.schedule-mywork-today-title{display:flex;align-items:baseline;gap:7px;min-width:0}
.schedule-mywork-today-title strong{font-size:13px;font-weight:900;color:#3e484c}
.schedule-mywork-today-title small{font-size:9px;font-weight:700;color:#8b969a;white-space:nowrap}
.schedule-mywork-today-summary{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto}
.schedule-mywork-today-chevron{font-size:14px;font-weight:900;color:#899499;line-height:1}
.schedule-mywork-today.open{background:#f5f6f6}
.schedule-mywork-today-detail{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(92px,.85fr);border-top:1px solid #dde2e4;background:#fafbfb}
.schedule-mywork-today-info{min-width:0;padding:10px 12px;border-right:1px solid #e0e4e5;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:10px}
.schedule-mywork-today-code{display:block;text-align:left;padding-left:6px;font-size:21px;line-height:1.05;font-weight:900;color:#405058;letter-spacing:-.5px}
.schedule-mywork-today-times{display:grid;gap:5px;margin-top:0;color:#869196;font-size:8px;font-weight:700;white-space:nowrap}
.schedule-mywork-today-times span{display:flex;align-items:center;justify-content:space-between;gap:5px}.schedule-mywork-today-times strong{margin-left:3px;color:#53646b;font-size:9px;font-weight:900;font-variant-numeric:tabular-nums}
.schedule-mywork-today-airlines{display:grid;align-items:stretch;padding:8px;background:#f7f8f8}
.schedule-mywork-today-logo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;align-content:center}
.schedule-mywork-today-logo{display:grid;place-items:center;min-width:0;height:30px;padding:3px 5px;border:1px solid #e0e5e7;border-radius:8px;background:#fff}
.schedule-mywork-today-logo img{display:block;max-width:44px;width:100%;height:20px;object-fit:contain}
.schedule-mywork-today-logo>b{color:#53646b;font-size:9px;font-weight:900}
.schedule-mywork-today-noairline{display:grid;place-items:center;grid-column:1/-1;color:#a1aaae;font-size:15px;font-weight:800}
.schedule-mywork-today-coworkers{padding:9px 10px 10px;border-top:1px solid #e1e5e6;background:#f5f6f6}
.schedule-mywork-today-coworker-list{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;min-width:0}
.schedule-mywork-today-coworker{display:grid;place-items:center;align-content:center;gap:1px;flex:0 0 calc((100% - 20px)/5);min-width:0;height:38px;padding:3px 2px;border:1px solid #d9dfe1;border-radius:8px;background:#fff;color:#435158;text-align:center;overflow:hidden}
.schedule-mywork-today-coworker b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.8px;font-weight:850;line-height:1.1}
.schedule-mywork-today-coworker small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:6.8px;font-weight:750;color:#8b969a;line-height:1.1}
.schedule-mywork-today-coworker-empty{width:100%;padding:5px 0;color:#9ca6aa;font-size:9px;font-weight:700;text-align:center}
@media(max-width:390px){
  .schedule-mywork-today-toggle{min-height:46px;padding:7px 10px}
  .schedule-mywork-today-title strong{font-size:12.5px}
  .schedule-mywork-today-detail{grid-template-columns:minmax(0,1.12fr) minmax(84px,.88fr)}
  .schedule-mywork-today-info{padding:9px 9px;gap:7px}
  .schedule-mywork-today-code{font-size:19px;padding-left:4px}
  .schedule-mywork-today-times{gap:4px;font-size:7.2px}
  .schedule-mywork-today-times strong{font-size:8.2px}
  .schedule-mywork-today-airlines{padding:7px}
  .schedule-mywork-today-logo{height:28px;padding:3px 4px}
  .schedule-mywork-today-logo img{max-width:38px;height:18px}
  .schedule-mywork-today-coworkers{padding:7px 8px 9px}
  .schedule-mywork-today-coworker{flex-basis:calc((100% - 16px)/5);height:36px;padding:3px 1px}
  .schedule-mywork-today-coworker b{font-size:8.4px}
  .schedule-mywork-today-coworker small{font-size:6.5px}
}

/* 바나나숲 1단계 답글 */
.banana-comment-thread{display:grid;gap:7px}
.banana-comment-footer{grid-column:1/-1;display:flex;align-items:center;min-height:24px;margin-top:2px}
.banana-comment-reply-button{height:25px;padding:0 8px;border:0;border-radius:999px;background:#fff8d8;color:#765c16;font:inherit;font-size:10px;font-weight:850;letter-spacing:-.15px}
.banana-comment-reply-button:active{background:#f4e6af;transform:scale(.98)}
.banana-comment-reply-button[aria-expanded="true"]{background:#ead89a;color:#5e470d}
.banana-replies{display:grid;gap:5px;width:92%;margin-left:auto;padding-left:9px;border-left:2px solid #eadb9f}
.banana-reply{display:grid;gap:4px;padding:8px 9px;border:1px solid #ebe5d2;border-radius:10px;background:#faf9f5;box-shadow:0 1px 4px rgb(61 55 38 / .025)}
.banana-reply-head{display:grid;grid-template-columns:14px minmax(0,1fr) auto 18px;align-items:center;gap:5px;min-width:0}
.banana-reply-marker{color:#b49b54;font-size:12px;font-weight:900;line-height:1}
.banana-reply-nick{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4a4537;font-size:11px;font-weight:850}
.banana-reply-time{color:#98958b;font-size:8.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.banana-reply-delete{display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:transparent;color:#cf7777;font:inherit;font-size:15px;font-weight:800;line-height:1}
.banana-reply-delete:active{background:#fff0f0;transform:scale(.92)}
.banana-reply-text{margin:0 0 0 19px;color:#575246;font-size:11px;line-height:1.48;white-space:pre-wrap;word-break:break-word}
.banana-reply-photo{display:block;width:92px;height:92px;margin:3px 0 0 19px;padding:0;border:1px solid #e7dfc8;border-radius:9px;background:#fff;overflow:hidden}
.banana-reply-photo img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.banana-reply-composer{display:grid;grid-template-columns:72px minmax(0,1fr);gap:6px;width:92%;margin-left:auto;padding:8px;border:1px solid #e3d7b3;border-radius:11px;background:#fffdf5;box-shadow:0 2px 8px rgb(94 72 16 / .035)}
.banana-reply-composer input,.banana-reply-composer textarea{width:100%;border:1px solid #ddd7c5;border-radius:8px;background:#fff;color:#3d403d;font:inherit;outline:0}
.banana-reply-composer input{height:34px;padding:0 8px;font-size:10px}
.banana-reply-composer textarea{min-height:54px;padding:8px;resize:none;font-size:11px;line-height:1.4}
.banana-reply-composer input:focus,.banana-reply-composer textarea:focus{border-color:#d0b658;box-shadow:0 0 0 2px rgb(208 182 88 / .11)}
.banana-reply-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:5px}
.banana-reply-actions button{height:28px;padding:0 10px;border:0;border-radius:8px;font:inherit;font-size:9.5px;font-weight:850}
.banana-reply-cancel{background:#f1f0eb;color:#7c786e}
.banana-reply-submit{background:#826411;color:#fff}
.banana-reply-error{grid-column:1/-1;margin:0;color:#ad5252;font-size:9px;text-align:right}
@media(max-width:390px){.banana-replies,.banana-reply-composer{width:94%}.banana-reply-composer{grid-template-columns:66px minmax(0,1fr)}.banana-reply-text{font-size:10.5px}}


/* Reply composer: open in-place without page/list jump. */
.banana-reply-composer{
  transform-origin:top center;
  animation:banana-reply-composer-open .16s ease-out both;
}
@keyframes banana-reply-composer-open{
  from{opacity:0;transform:translateY(-3px) scaleY(.97)}
  to{opacity:1;transform:translateY(0) scaleY(1)}
}
@media(prefers-reduced-motion:reduce){
  .banana-reply-composer{animation:none}
}

/* 바나나숲 불지르기 확인창 */
.banana-forest-burn{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:auto;min-width:0;height:34px;padding:0 7px;border:1px solid #efc2a6;border-radius:9px;background:#fff7f0;color:#9a4b20;font:inherit;font-size:11px;font-weight:850;white-space:nowrap;box-shadow:0 1px 5px rgb(148 74 31 / .06)}
.banana-forest-burn span{font-size:15px;line-height:1}.banana-forest-burn:active{transform:scale(.98)}
.banana-forest-burn-dialog{position:fixed;inset:0;width:100vw;height:100dvh;margin:0;padding:0;border:0;background:transparent;max-width:none;max-height:none}
.banana-forest-burn-dialog::backdrop{background:rgb(22 20 17 / .48);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.banana-forest-burn-box{width:min(88vw,330px);display:grid;gap:10px;padding:19px;border:1px solid #eadfca;border-radius:17px;background:#fffdf9;box-shadow:0 20px 55px rgb(48 35 19 / .24)}
.banana-forest-burn-box>strong{color:#433a31;font-size:15px;font-weight:900;text-align:center}
.banana-forest-burn-box>p{margin:0;color:#8c7f73;font-size:10px;font-weight:700;line-height:1.45;text-align:center}
.banana-forest-burn-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:3px}
.banana-forest-burn-actions button{height:43px;border:0;border-radius:10px;font:inherit;font-size:12px;font-weight:900}
.banana-forest-burn-actions .grow{background:#e7f5e9;color:#39734a;border:1px solid #bcd9c3}
.banana-forest-burn-actions .burn{background:#d95a52;color:#fff;box-shadow:0 3px 9px rgb(177 66 58 / .17)}
@media(max-width:360px){.banana-forest-burn{min-width:0;padding:0 6px;font-size:10px}.banana-forest-refresh{min-width:80px;padding:0 8px}}


/* 월간 운항 캘린더 */
.schedule-timeline-wrap{
  max-height:none;
  overflow:visible;
  border:0;
  background:transparent;
  box-shadow:none;
}
.operation-calendar-shell{
  display:grid;
  gap:9px;
  padding-bottom:10px;
}
.operation-calendar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:58px;
  padding:11px 13px;
  border:1px solid #dce4e7;
  border-radius:14px;
  background:linear-gradient(145deg,#fbfdfd 0%,#f3f7f8 100%);
  box-shadow:0 4px 14px rgb(35 53 60 / .045);
}
.operation-calendar-head>div{
  display:grid;
  gap:2px;
}
.operation-calendar-head strong{
  color:#2a3b42;
  font-size:16px;
  font-weight:900;
  letter-spacing:-.35px;
}
.operation-calendar-head span{
  color:#819097;
  font-size:10px;
  font-weight:700;
}
.operation-calendar-badge{
  display:grid!important;
  place-items:center;
  width:36px;
  height:36px;
  flex:0 0 auto;
  border:1px solid #d4e0e4;
  border-radius:11px;
  background:#fff;
  font-size:18px!important;
  box-shadow:0 2px 8px rgb(38 60 69 / .05);
}
.operation-calendar-weekdays{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  overflow:hidden;
  border:1px solid #dfe6e8;
  border-radius:11px 11px 0 0;
  background:#f5f8f9;
}
.operation-calendar-weekdays span{
  display:grid;
  place-items:center;
  height:30px;
  color:#66777e;
  font-size:10px;
  font-weight:850;
}
.operation-calendar-weekdays .sun{color:#d95d5d}
.operation-calendar-weekdays .sat{color:#557eaa}
.operation-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  margin-top:-9px;
  overflow:hidden;
  border:1px solid #dfe6e8;
  border-top:0;
  border-radius:0 0 14px 14px;
  background:#fff;
  box-shadow:0 5px 18px rgb(33 54 62 / .045);
}
.operation-calendar-day{
  position:relative;
  min-width:0;
  min-height:126px;
  padding:8px 5px 8px;
  border-right:1px solid #edf1f2;
  border-bottom:1px solid #edf1f2;
  background:#fff;
}
.operation-calendar-day:nth-child(7n){border-right:0}
.operation-calendar-day:nth-last-child(-n+7){border-bottom:0}
.operation-calendar-day.outside{
  background:#fafcfc;
}
.operation-calendar-day.today{
  z-index:1;
  background:linear-gradient(180deg,#fffaf0 0%,#fffdf8 100%);
  box-shadow:inset 0 0 0 2px #e7b65b;
}
.operation-calendar-date{
  display:block;
  min-height:17px;
  color:#374b53;
  font-size:11px;
  font-weight:900;
  line-height:1;
  text-align:left;
  font-variant-numeric:tabular-nums;
}
.operation-calendar-day.sun .operation-calendar-date{color:#d95d5d}
.operation-calendar-day.sat .operation-calendar-date{color:#557eaa}
.operation-calendar-logos{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-content:start;
  gap:4px;
  margin-top:7px;
}
.operation-calendar-logo{
  display:grid;
  place-items:center;
  min-width:0;
  height:32px;
  padding:3px 4px;
  overflow:hidden;
  border:1px solid #e6edef;
  border-radius:8px;
  background:#fff;
}
.operation-calendar-logo img{
  display:block;
  width:100%;
  max-width:46px;
  height:22px;
  object-fit:contain;
}
.operation-calendar-logo b{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  color:#50636b;
  font-size:10px;
  font-weight:900;
  line-height:1;
}
.operation-calendar-day.no-flight .operation-calendar-logos{
  min-height:32px;
}
@media(max-width:390px){
  .operation-calendar-day{min-height:116px;padding:7px 4px 7px}
  .operation-calendar-date{font-size:10px}
  .operation-calendar-logos{gap:3px;margin-top:6px}
  .operation-calendar-logo{height:28px;padding:2px 3px}
  .operation-calendar-logo img{max-width:40px;height:20px}
}
@media(min-width:520px){
  .operation-calendar-day{min-height:138px;padding:9px 7px 9px}
  .operation-calendar-date{font-size:12px}
  .operation-calendar-logo{height:34px}
  .operation-calendar-logo img{max-width:50px;height:24px}
}

.banana-comment-burn-system{
  display:grid;
  grid-template-columns:1fr;
  grid-template-areas:none;
  justify-items:center;
  gap:7px;
  padding:18px 12px;
  border-color:#f0c7ae;
  background:linear-gradient(180deg,#fff9f4 0%,#fffdfb 100%);
  text-align:center;
}
.banana-comment-burn-fire{font-size:25px;line-height:1;letter-spacing:3px}
.banana-comment-burn-text{margin:0;color:#9d4934;font-size:13px;font-weight:900;text-align:center}

.banana-forest-burn-dialog[open]{
  display:grid;
  place-items:center;
}
.banana-forest-burn-dialog .banana-forest-burn-box{
  margin:0;
  align-self:center;
  justify-self:center;
}

/* 내 근무: 내일 · 모레 · 글피 근무자 접이식 목록 */
.schedule-mywork-flight-grid{align-items:stretch}
.schedule-mywork-flight-box{height:100%}

/* 내일 · 모레 · 글피 근무자 카드는 항공사 로고 카드와 분리된 독립 칸 */
.schedule-mywork-future-cowork-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;min-width:0;margin-top:6px;align-items:start;
}
.schedule-mywork-future-cowork-box{
  min-width:0;padding:6px;border:1px solid #dde5e8;border-radius:13px;background:#fff;
  box-shadow:0 3px 12px rgb(33 54 62 / .035);overflow:hidden;
}
.schedule-mywork-future-cowork-toggle{
  position:relative;width:100%;height:31px;margin:0;padding:0 22px;border:1px solid #dfe6e8;border-radius:8px;
  background:#f7f9f9;color:#43565e;font:inherit;font-size:9.5px;font-weight:900;
  display:grid;place-items:center;text-align:center;
}
.schedule-mywork-future-cowork-label{display:block;width:100%;text-align:center;font-weight:900}
.schedule-mywork-future-cowork-toggle:active{background:#eef2f3}
.schedule-mywork-future-cowork-toggle[aria-expanded="true"]{border-color:#ccdadd;background:#f2f6f7;color:#344b54}
.schedule-mywork-future-cowork-chevron{
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  color:#8a989d;font-size:10px;font-weight:900;line-height:1;
}
.schedule-mywork-future-coworkers{margin-top:6px;padding-top:6px;border-top:1px solid #e7ecee}
.schedule-mywork-future-cowork-list{display:grid;grid-template-columns:1fr;gap:4px;min-width:0}
.schedule-mywork-future-coworker{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:6px;min-width:0;min-height:34px;
  padding:5px 7px;border:1px solid #dde4e6;border-radius:7px;background:#fff;color:#435158;overflow:hidden;
}
.schedule-mywork-future-coworker b{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:10.5px;font-weight:900;line-height:1.1;text-align:center;
}
.schedule-mywork-future-coworker small{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:#7f8c91;font-size:9.2px;font-weight:850;line-height:1.1;text-align:center;
}
.schedule-mywork-future-cowork-empty{
  display:grid;place-items:center;min-height:34px;padding:4px;color:#9ba6aa;
  font-size:8px;font-weight:800;text-align:center;
}
@media(max-width:390px){
  .schedule-mywork-future-cowork-grid{gap:5px}
  .schedule-mywork-future-cowork-box{padding:5px}
  .schedule-mywork-future-cowork-toggle{height:29px;padding:0 20px;font-size:8.7px}
  .schedule-mywork-future-cowork-chevron{right:6px}
  .schedule-mywork-future-coworker{min-height:33px;padding:4px 5px;gap:4px}
  .schedule-mywork-future-coworker b{font-size:9.8px}
  .schedule-mywork-future-coworker small{font-size:8.7px}
}


/* 꿀지수 */
.schedule-tabs button[data-schedule-mode="honey"]{font-size:16px}
.schedule-tabs button[data-schedule-mode="honey"].active{
  background:#fff3c9;
  color:#70480f;
  box-shadow:0 1px 8px rgb(158 105 18 / .17),inset 0 0 0 1px #e3bd67;
}
.honey-index-wrap{
  max-height:none;
  overflow:visible;
  border:0;
  background:transparent;
  box-shadow:none;
  overscroll-behavior:auto;
}
.honey-index-shell{
  display:grid;
  gap:10px;
  padding-bottom:calc(96px + env(safe-area-inset-bottom));
}
.honey-index-info{
  padding:13px;
  border:1px solid #e3c46f;
  border-radius:15px;
  background:linear-gradient(180deg,#fffaf0 0%,#fff5d9 100%);
  box-shadow:0 5px 16px rgb(127 89 22 / .05);
}
.honey-index-info-head{
  display:flex;
  align-items:center;
  gap:10px;
}
.honey-index-icon{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:40px;
  height:40px;
  border:1px solid #e4bf60;
  border-radius:12px;
  background:#ffe9a9;
  font-size:22px;
}
.honey-index-info-head>div{
  display:grid;
  gap:2px;
}
.honey-index-info-head strong{
  color:#624110;
  font-size:15px;
  font-weight:950;
  letter-spacing:-.35px;
}
.honey-index-info-head span{
  color:#8b6a35;
  font-size:10px;
  font-weight:750;
}
.honey-index-formula{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  margin-top:11px;
}
.honey-index-formula-item{
  appearance:none;
  -webkit-appearance:none;
  display:grid;
  grid-template-rows:minmax(22px,1fr) auto;
  place-items:center;
  align-content:center;
  gap:3px;
  min-width:0;
  min-height:52px;
  padding:6px 4px;
  border:1px solid #ead8a9;
  border-radius:9px;
  background:rgb(255 255 255 / .72);
  font:inherit;
  text-align:center;
}
.honey-index-formula-item:active{
  transform:translateY(1px);
}
.honey-index-formula-item.active{
  border-color:#d2a63b;
  background:#ffeab0;
  box-shadow:inset 0 0 0 1px rgb(210 166 59 / .22);
}
.honey-index-formula-item b{
  min-width:0;
  max-width:100%;
  color:#6b542a;
  font-size:8px;
  font-weight:900;
  line-height:1.18;
  white-space:normal;
  word-break:keep-all;
  text-align:center;
}
.honey-index-formula-item em{
  color:#b17012;
  font-size:10px;
  font-weight:950;
  font-style:normal;
  line-height:1;
}
.honey-index-formula-item.active b,
.honey-index-formula-item.active em{
  color:#774600;
}
.honey-index-list{
  display:grid;
  gap:7px;
}
.honey-index-card{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) 52px;
  align-items:center;
  gap:9px;
  min-height:72px;
  padding:9px 10px;
  border:1px solid #dce3e5;
  border-radius:13px;
  background:#fff;
  box-shadow:0 3px 12px rgb(33 54 62 / .035);
}
.honey-index-rank{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:9px;
  background:#f2f4f5;
  color:#6d7b81;
  font-size:11px;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.honey-index-main{
  display:grid;
  gap:6px;
  min-width:0;
}
.honey-index-name-row{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.honey-index-name-row>strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#263a42;
  font-size:14px;
  font-weight:950;
}
.honey-index-status{
  flex:0 0 auto;
  padding:2px 7px;
  border-radius:999px;
  background:#f2f4f5;
  color:#738087;
  font-size:8px;
  font-weight:900;
}
.honey-index-detail{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.honey-index-detail span{
  padding:3px 6px;
  border-radius:999px;
  background:#f5f7f8;
  color:#748288;
  font-size:7.5px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.honey-index-score{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:2px;
  min-width:50px;
  padding:8px 5px;
  border-radius:12px;
  background:#f3f5f6;
  color:#52656d;
}
.honey-index-score b{
  font-size:22px;
  line-height:1;
  font-weight:950;
  font-variant-numeric:tabular-nums;
}
.honey-index-score small{
  font-size:9px;
  font-weight:850;
}
.honey-index-card.is-sweet{
  border-color:#ead28b;
  background:linear-gradient(180deg,#fffdf8 0%,#fffaf0 100%);
}
.honey-index-card.is-sweet .honey-index-rank,
.honey-index-card.is-sweet .honey-index-status,
.honey-index-card.is-sweet .honey-index-score{
  background:#fff0bd;
  color:#8a5a0c;
}
.honey-index-card.is-hard{
  border-color:#e5d2cf;
  background:linear-gradient(180deg,#fff 0%,#fffafa 100%);
}
.honey-index-card.is-hard .honey-index-status,
.honey-index-card.is-hard .honey-index-score{
  background:#f8e8e5;
  color:#9b554c;
}
@media(max-width:390px){
  .schedule-tabs button[data-schedule-mode="honey"]{font-size:15px}
  .honey-index-info{padding:11px}
  .honey-index-formula{gap:4px}
  .honey-index-formula-item{min-height:50px;padding:5px 3px}
  .honey-index-formula-item b{font-size:7.3px}
  .honey-index-formula-item em{font-size:9.5px}
  .honey-index-card{grid-template-columns:27px minmax(0,1fr) 47px;gap:7px;padding:8px}
  .honey-index-rank{width:25px;height:25px;font-size:10px}
  .honey-index-name-row>strong{font-size:13px}
  .honey-index-score b{font-size:20px}
  .honey-index-detail span{font-size:7px;padding:3px 5px}
}
@media(min-width:700px){
  .honey-index-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* 바나나숲 댓글 동영상 */
.banana-comment-video{grid-column:1/-1;justify-self:start;position:relative;display:block;width:min(210px,72vw);aspect-ratio:16/9;margin-top:5px;padding:0;border:1px solid #eadfba;border-radius:14px;background:#171717;overflow:hidden;box-shadow:0 3px 10px rgb(95 72 14 / .08);cursor:pointer}
.banana-comment-video video{display:block;width:100%;height:100%;object-fit:cover;background:#111;pointer-events:none}
.banana-comment-video:active{transform:scale(.985)}
.banana-video-play{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:42px;height:42px;padding-left:3px;border-radius:50%;background:rgb(0 0 0 / .62);color:#fff;font-size:18px;line-height:1;transform:translate(-50%,-50%);box-shadow:0 2px 10px rgb(0 0 0 / .2);pointer-events:none}
.banana-comment-video-button{display:flex;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;min-width:82px;height:34px;padding:0 10px;border:1px solid #d8c58b;border-radius:9px;background:#fffaf0;color:#6e5718;font:inherit;font-size:11px;font-weight:850}
.banana-comment-video-button span{font-size:15px;line-height:1}.banana-comment-video-button:disabled{opacity:.55}
.banana-comment-selected-media video{display:block;width:100%;height:100%;object-fit:cover;border-radius:8px;background:#111}
.banana-comment-video-dialog{padding:0;border:0;background:transparent;max-width:none;max-height:none}
.banana-comment-video-dialog::backdrop{background:rgb(12 13 13 / .82);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.banana-comment-video-dialog-box{display:grid;justify-items:center;gap:12px;width:min(94vw,680px);padding:12px;border-radius:18px;background:#111;box-shadow:0 18px 48px rgb(0 0 0 / .38)}
.banana-comment-video-dialog-box video{display:block;width:100%;max-height:76dvh;object-fit:contain;border-radius:12px;background:#000}
.banana-comment-video-dialog-box button{min-width:90px;height:38px;padding:0 16px;border:0;border-radius:10px;background:#725a12;color:#fff;font:inherit;font-size:12px;font-weight:850}
.banana-reply-video{position:relative;display:block;width:128px;aspect-ratio:16/9;margin:3px 0 0 19px;padding:0;border:1px solid #e7dfc8;border-radius:9px;background:#111;overflow:hidden}
.banana-reply-video video{display:block;width:100%;height:100%;object-fit:cover;background:#111;pointer-events:none}
.banana-reply-video .banana-video-play{width:32px;height:32px;font-size:13px}
@media(max-width:390px){.banana-comment-video{width:min(190px,70vw)}.banana-comment-video-button{min-width:74px;padding:0 8px}.banana-comment-tools{flex-wrap:wrap}.banana-comment-photo-status{flex:1 1 100%}}

/* A11-60 · OT 업무량 대비 분석 · 모바일 정리 */
.overtime-dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:start;padding-bottom:6px}
.overtime-panel{min-width:0;border:1px solid #dce3e5;border-radius:15px;background:#f9fbfb;box-shadow:0 4px 16px rgb(33 54 62 / .045);overflow:hidden}
.overtime-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:10px 12px;border-bottom:1px solid #e5eaec;background:#fff}
.overtime-panel-title{display:flex;align-items:center;min-width:0}.overtime-panel-title strong{color:#243941;font-size:15px;white-space:nowrap}
.overtime-panel .schedule-overtime-list{gap:0;padding:0}.overtime-panel .overtime-row{min-height:49px;border:0;border-bottom:1px solid #edf1f2;border-radius:0;box-shadow:none}.overtime-panel .overtime-row:last-child{border-bottom:0}
.overtime-analysis-head{display:flex;align-items:center;justify-content:space-between}
.overtime-analysis-guide{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:8px 12px;border-bottom:1px solid #e9edef;background:#f4f7f8;color:#54676f}.overtime-analysis-guide span{font-size:10px;font-weight:800}
.overtime-analysis-list{display:grid}.overtime-analysis-card{background:#fff;border-bottom:1px solid #edf1f2}.overtime-analysis-card:last-child{border-bottom:0}
.overtime-analysis-row{display:grid;width:100%;grid-template-columns:27px minmax(0,1fr) auto 16px;align-items:center;gap:8px;min-height:52px;padding:7px 10px;border:0;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer}.overtime-analysis-row:active{background:#f7f9fa}
.overtime-analysis-rank{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eef2f4;color:#6f7e84;font-size:11px;font-weight:850;font-variant-numeric:tabular-nums}
.overtime-analysis-main{display:grid;gap:3px;min-width:0}.overtime-analysis-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#263a42;font-size:13px}.overtime-analysis-main em{width:max-content;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;color:#75858b;font-size:9px;font-weight:750}
.overtime-analysis-value{display:grid;justify-items:end;gap:1px;white-space:nowrap}.overtime-analysis-value b{font-size:14px;font-variant-numeric:tabular-nums}.overtime-analysis-value small{color:#8a969b;font-size:8px;font-weight:750}.overtime-analysis-card.is-high .overtime-analysis-value b{color:#cf5a24}.overtime-analysis-card.is-low .overtime-analysis-value b{color:#347292}.overtime-analysis-card.is-balanced .overtime-analysis-value b{color:#65767d}
.overtime-analysis-chevron{color:#a0aaae;font-size:14px;transition:transform .18s ease}.overtime-analysis-card.is-open .overtime-analysis-chevron{transform:rotate(180deg)}
.overtime-analysis-details{padding:0 11px 11px 45px;background:#fbfcfc}.overtime-analysis-expected{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border:1px solid #e5eaec;border-radius:9px;background:#fff}.overtime-analysis-expected span{color:#718087;font-size:9px;font-weight:750}.overtime-analysis-expected b{color:#30464f;font-size:11px;font-variant-numeric:tabular-nums}
.overtime-analysis-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.overtime-analysis-chips span{padding:4px 6px;border-radius:7px;background:#eef3f4;color:#566a72;font-size:9px;font-weight:750;font-variant-numeric:tabular-nums}
.overtime-analysis-reason{margin:7px 1px 0;color:#75858b;font-size:9px;line-height:1.5}
.overtime-analysis-empty{display:grid;gap:5px;margin:14px;padding:17px 13px;border:1px dashed #cbd5d8;border-radius:11px;background:#fff;text-align:center}.overtime-analysis-empty strong{color:#354b53;font-size:13px}.overtime-analysis-empty span{color:#7c898e;font-size:10px;line-height:1.45}
@media(max-width:760px){
  .overtime-dashboard{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}
  .overtime-panel{border-radius:12px}
  .overtime-panel-head{min-height:43px;padding:8px 7px;gap:4px}
  .overtime-panel-title strong{font-size:12px}
  .overtime-panel-classic .schedule-overtime-list{max-height:none;overflow:visible}
  .overtime-panel .overtime-row{min-height:44px;padding-left:6px;padding-right:6px;gap:5px}
  .overtime-panel .overtime-rank{flex:0 0 auto}
  .overtime-panel .overtime-row strong,.overtime-panel .overtime-row b{font-size:11px}
  .overtime-analysis-guide{padding:6px 7px;gap:4px}.overtime-analysis-guide span{font-size:8px}
  .overtime-analysis-row{grid-template-columns:22px minmax(0,1fr) auto 11px;gap:4px;min-height:46px;padding:5px 5px}
  .overtime-analysis-rank{width:21px;height:21px;border-radius:7px;font-size:9px}
  .overtime-analysis-main strong{font-size:10px}.overtime-analysis-main em{font-size:7px}
  .overtime-analysis-value b{font-size:11px}.overtime-analysis-value small{font-size:7px}
  .overtime-analysis-details{padding:0 6px 8px 28px}.overtime-analysis-expected{padding:6px}.overtime-analysis-expected span{font-size:7px}.overtime-analysis-expected b{font-size:9px}
  .overtime-analysis-chips span{font-size:7px;padding:3px 4px}.overtime-analysis-reason{font-size:7px}
}
@media(max-width:390px){
  .overtime-dashboard{gap:5px}
  .overtime-panel-head{min-height:41px;padding:7px 5px}
  .overtime-panel-title strong{font-size:11px}
  .overtime-panel .overtime-row{min-height:42px;padding-left:5px;padding-right:5px;gap:4px}
  .overtime-panel .overtime-row strong,.overtime-panel .overtime-row b{font-size:10px}
  .overtime-analysis-row{grid-template-columns:19px minmax(0,1fr) auto 9px;padding:5px 4px;gap:3px}
  .overtime-analysis-rank{width:19px;height:19px;font-size:8px}.overtime-analysis-main strong{font-size:9px}.overtime-analysis-value b{font-size:10px}.overtime-analysis-details{padding-left:25px}
}

/* A11-62 · 월간 운항 캘린더 아래 실제 운항 스케줄 복사용 요약 */
.operation-summary-card{
  display:grid;
  gap:9px;
  margin-top:5px;
  padding:12px;
  border:1px solid #dce4e7;
  border-radius:14px;
  background:linear-gradient(145deg,#fbfdfd 0%,#f5f8f9 100%);
  box-shadow:0 4px 14px rgb(35 53 60 / .045);
}
.operation-summary-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.operation-summary-copy{
  display:grid;
  min-width:0;
  gap:2px;
}
.operation-summary-copy strong{
  color:#2a3b42;
  font-size:13px;
  font-weight:900;
  letter-spacing:-.25px;
}
.operation-summary-copy span{
  color:#819097;
  font-size:9px;
  font-weight:750;
}
.operation-summary-copy-button{
  min-width:58px;
  height:32px;
  flex:0 0 auto;
  padding:0 11px;
  border:1px solid #d6e0e3;
  border-radius:9px;
  background:#fff;
  color:#43565e;
  font:inherit;
  font-size:10px;
  font-weight:900;
  box-shadow:0 2px 7px rgb(35 53 60 / .045);
}
.operation-summary-copy-button:active{transform:scale(.97)}
.operation-summary-text{
  box-sizing:border-box;
  width:100%;
  min-height:170px;
  max-height:300px;
  resize:vertical;
  padding:10px 11px;
  border:1px solid #e0e7e9;
  border-radius:10px;
  outline:0;
  background:#fff;
  color:#33474f;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  font-size:10px;
  font-weight:650;
  line-height:1.55;
  white-space:pre;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.operation-summary-text:focus{
  border-color:#e4a84b;
  box-shadow:0 0 0 2px rgb(231 182 91 / .14);
}
@media(max-width:390px){
  .operation-summary-card{padding:10px}
  .operation-summary-copy strong{font-size:12px}
  .operation-summary-copy span{font-size:8px}
  .operation-summary-copy-button{min-width:54px;height:30px;padding:0 9px;font-size:9px}
  .operation-summary-text{min-height:155px;font-size:9px;padding:9px}
}

/* A11-81: show the larger uploaded photo instead of forcing a 360px preview. */
.banana-comment-photo-dialog-box img{width:auto;max-width:min(92vw,1300px);height:auto;max-height:82dvh;object-fit:contain}

.banana-forest-more{width:100%;min-height:42px;border:1px solid #e3d59b;border-radius:10px;background:#fff8df;color:#70570d;font-size:12px;font-weight:800;cursor:pointer}


/* A11-82: standalone Banana Forest page, independent of the schedule toolbar. */
.banana-forest-view{max-width:780px;min-height:100dvh;padding:calc(22px + env(safe-area-inset-top)) 12px calc(20px + env(safe-area-inset-bottom));}
/* A11-262: compact vertical split-flap board, enlarged matching label, 3-second flap. */
.banana-forest-page-header{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:0 0 13px;border-bottom:1px solid #e8e1c6;margin-bottom:14px}
.banana-forest-page-header .back-to-menu{margin:0 2px;align-self:flex-start;flex:0 0 auto}
.banana-forest-dday{
  box-sizing:border-box;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:clamp(6px,2vw,18px);
  width:100%;min-width:0;height:58px;min-height:58px;padding:4px 9px;
  border:1px solid #404852;border-radius:12px;
  background:linear-gradient(110deg,#242a31 0%,#161d25 53%,#262c34 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),inset 0 -2px 6px rgba(0,0,0,.3),0 4px 12px rgba(22,26,34,.12);
  text-align:center;isolation:isolate;
}
.banana-forest-dday-label{
  display:block;flex:0 1 auto;min-width:0;
  font-size:clamp(12px,3.7vw,17px);font-weight:900;line-height:1.15;letter-spacing:-.5px;
  color:#f5e6c4;white-space:nowrap;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.3);
}
.banana-forest-dday-value{
  display:inline-flex;align-items:center;justify-content:center;gap:clamp(2px,.8vw,5px);flex:0 0 auto;
  box-sizing:border-box;min-width:0;height:46px;border:0;background:transparent;
  font-variant-numeric:tabular-nums;
}
.banana-forest-dday-prefix,.banana-forest-dday-digits{display:inline-flex;align-items:center;gap:clamp(2px,.55vw,4px)}
.banana-forest-dday-suffix{color:#f2d899;font-weight:900;font-size:clamp(11px,2.9vw,15px);margin-left:1px;white-space:nowrap}
.banana-forest-flip-static,.banana-forest-flip-digit{
  --tile-height:clamp(35px,9.7vw,49px);
  --tile-width:clamp(24px,6.9vw,34px);
  position:relative;display:grid;place-items:center;flex:0 0 auto;
  width:var(--tile-width);height:var(--tile-height);border-radius:4px;
  border:1px solid #51545a;background:#22272e;
  color:#f6db80;font-size:clamp(21px,5.4vw,29px);font-family:ui-monospace,Menlo,Consolas,'Arial Narrow',monospace;font-weight:900;
  font-variant-numeric:tabular-nums;line-height:1;
  text-shadow:0 0 2px rgba(245,198,79,.17);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 2px 5px rgba(0,0,0,.37);overflow:hidden;
}
.banana-forest-flip-static{background:linear-gradient(#343a42 0%,#22272e 49%,#151a20 50%,#30353e 100%)}
.banana-forest-flip-static::after,.banana-forest-flip-digit::after{
  content:'';position:absolute;top:calc(50% - .5px);left:0;right:0;height:1px;
  background:#070a0f;box-shadow:0 1px 1px rgba(255,255,255,.23);z-index:8;pointer-events:none;
}
.banana-forest-flip-digit::before{
  content:'';position:absolute;top:calc(50% - 3px);left:-1px;width:3px;height:6px;
  border-radius:1px;background:#777c84;z-index:9;box-shadow:calc(var(--tile-width) - 1px) 0 #777c84;pointer-events:none;
}
.banana-forest-flip-digit{perspective:420px;transform-style:preserve-3d}
.banana-forest-flip-half{
  position:absolute;left:0;right:0;height:50%;overflow:hidden;backface-visibility:hidden;
  border:0;isolation:isolate;
}
.banana-forest-flip-top,.banana-forest-flip-fold-top{top:0;background:linear-gradient(180deg,#40464e,#2b3037)}
.banana-forest-flip-bottom,.banana-forest-flip-fold-bottom{bottom:0;background:linear-gradient(180deg,#161a20,#30353e)}
.banana-forest-flip-glyph{
  position:absolute;top:0;left:0;right:0;height:var(--tile-height);
  display:flex;align-items:center;justify-content:center;
  font:inherit;font-weight:900;line-height:1;color:inherit;
}
.banana-forest-flip-bottom .banana-forest-flip-glyph,.banana-forest-flip-fold-bottom .banana-forest-flip-glyph{top:calc(var(--tile-height) / -2)}
.banana-forest-flip-fold-top,.banana-forest-flip-fold-bottom{visibility:hidden;z-index:6;backface-visibility:hidden}
.banana-forest-flip-fold-top{transform-origin:50% 100%;transform:rotateX(0deg)}
.banana-forest-flip-fold-bottom{transform-origin:50% 0%;transform:rotateX(90deg);z-index:7}
.banana-forest-flip-digit.is-flipping .banana-forest-flip-fold-top,
.banana-forest-flip-digit.is-flipping .banana-forest-flip-fold-bottom{visibility:visible}
.banana-forest-flip-digit.is-flipping .banana-forest-flip-fold-top{
  animation:banana-forest-fold-top var(--flip-ms,104ms) linear forwards;
}
.banana-forest-flip-digit.is-flipping .banana-forest-flip-fold-bottom{
  animation:banana-forest-fold-bottom var(--flip-ms,104ms) linear forwards;
}
@keyframes banana-forest-fold-top{
  0%{transform:rotateX(0deg);filter:brightness(1)}
  49.9%{transform:rotateX(-90deg);filter:brightness(.48)}
  50%,100%{transform:rotateX(-90deg);filter:brightness(.48)}
}
@keyframes banana-forest-fold-bottom{
  0%,49.9%{transform:rotateX(90deg);filter:brightness(.5)}
  50%{transform:rotateX(90deg);filter:brightness(.55)}
  100%{transform:rotateX(0deg);filter:brightness(1)}
}
.banana-forest-flip-digit.is-settled{animation:banana-forest-board-tap 230ms ease-out}
@keyframes banana-forest-board-tap{0%{filter:brightness(1.24)}100%{filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){
  .banana-forest-flip-digit.is-flipping .banana-forest-flip-fold-top,
  .banana-forest-flip-digit.is-flipping .banana-forest-flip-fold-bottom,
  .banana-forest-flip-digit.is-settled{animation:none}
}
.banana-forest-view .banana-forest-wrap{max-height:none;overflow:visible;border:0;box-shadow:none;background:transparent}
.banana-forest-view .banana-forest-shell{gap:12px;padding-bottom:18px}
.banana-forest-view .banana-forest-list{max-height:none;overflow:visible;scrollbar-gutter:auto}
@media(max-width:390px){
  .banana-forest-view{padding-inline:7px}
  .banana-forest-dday{gap:6px;padding-inline:7px}
  .banana-forest-dday-label{font-size:clamp(12px,3.65vw,14px)}
}



/* A11-83: standalone Forest persistent mobile composer.
   The article list scrolls behind it; page padding uses the measured dock height. */
.banana-forest-view{
  --banana-forest-composer-height:182px;
  --banana-forest-keyboard-offset:0px;
  margin-inline:auto;
  padding-bottom:calc(var(--banana-forest-composer-height) + 22px);
  scroll-padding-bottom:calc(var(--banana-forest-composer-height) + 22px);
}
.banana-forest-view .banana-comment-composer{
  position:fixed;
  inset:auto auto var(--banana-forest-keyboard-offset) 50%;
  transform:translateX(-50%);
  z-index:120;
  width:min(780px,100%);
  max-height:min(58dvh,410px);
  overflow-y:auto;
  overscroll-behavior:contain;
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:7px 9px;
  padding:11px max(13px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(13px,env(safe-area-inset-left));
  border:1px solid #e5d69b;
  border-bottom:0;
  border-radius:18px 18px 0 0;
  background:rgba(255,253,241,.98);
  box-shadow:0 -6px 28px rgba(65,51,13,.14);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}
.banana-forest-view .banana-comment-composer input:not([type=file]),
.banana-forest-view .banana-comment-composer textarea{
  font-size:16px;
  border-radius:9px;
}
.banana-forest-view .banana-comment-composer input:not([type=file]){height:45px;padding:0 8px;min-width:0}
.banana-forest-view .banana-comment-composer textarea{
  height:45px;
  min-height:45px;
  max-height:110px;
  padding:11px 9px;
  resize:vertical;
  line-height:1.3;
}
.banana-forest-view .banana-comment-composer textarea:focus{height:76px;min-height:76px}
.banana-forest-view .banana-comment-tools{min-width:0;}
.banana-forest-view .banana-comment-action{justify-content:flex-end}
.banana-forest-view .banana-comment-action button{min-width:88px;height:34px}
@media(max-width:390px){
  .banana-forest-view .banana-comment-composer{grid-template-columns:83px minmax(0,1fr);gap:6px 7px;padding-left:10px;padding-right:10px;}
  .banana-forest-view .banana-comment-photo-button,.banana-forest-view .banana-comment-video-button{min-width:72px;height:33px;padding:0 8px}
}


/* A11-85: exactly two rows in the standalone Forest composer.
   Row 1: nickname | comment content.
   Row 2: photo, video | submit (right aligned).
   Preserve the A11-83 fixed dock and keyboard/viewport handling. */
.banana-forest-view .banana-comment-composer{
  grid-template-columns:92px minmax(0,1fr) 104px;
  grid-template-rows:auto auto;
  align-items:center;
  row-gap:7px;
  column-gap:8px;
}
.banana-forest-view .banana-comment-composer > input[aria-label="댓글 닉네임"]{
  grid-column:1;
  grid-row:1;
  align-self:stretch;
}
.banana-forest-view .banana-comment-composer > textarea{
  grid-column:2 / 4;
  grid-row:1;
  width:100%;
}
.banana-forest-view .banana-comment-composer .banana-comment-tools{
  grid-column:1 / 3;
  grid-row:2;
  flex-wrap:nowrap;
  align-self:center;
  min-width:0;
  width:100%;
}
.banana-forest-view .banana-comment-composer .banana-comment-action{
  grid-column:3;
  grid-row:2;
  justify-self:stretch;
  align-self:center;
  display:flex;
  justify-content:flex-end;
  min-width:0;
  width:100%;
  margin:0;
}
.banana-forest-view .banana-comment-composer .banana-comment-action button{
  min-width:0;
  width:100%;
  max-width:104px;
  padding:0 7px;
  height:35px;
  font-size:12px;
  white-space:nowrap;
}
@media(max-width:390px){
  .banana-forest-view .banana-comment-composer{
    grid-template-columns:78px minmax(0,1fr) 91px;
    column-gap:6px;
    row-gap:6px;
  }
  .banana-forest-view .banana-comment-composer .banana-comment-photo-button,
  .banana-forest-view .banana-comment-composer .banana-comment-video-button{
    min-width:68px;
    padding:0 7px;
    height:34px;
  }
  .banana-forest-view .banana-comment-composer .banana-comment-action button{
    font-size:11px;
    padding:0 3px;
  }
}
@media(max-width:350px){
  .banana-forest-view .banana-comment-composer{grid-template-columns:72px minmax(0,1fr) 82px;column-gap:5px;}
  .banana-forest-view .banana-comment-composer .banana-comment-tools{gap:4px;}
  .banana-forest-view .banana-comment-composer .banana-comment-photo-button,
  .banana-forest-view .banana-comment-composer .banana-comment-video-button{min-width:63px;padding:0 4px;font-size:10px;}
  .banana-forest-view .banana-comment-composer .banana-comment-action button{font-size:10px;}
}


/* A11-90: 개인 근무표를 '이번 달'의 기본 레이아웃으로 사용 */
.schedule-heading-version{color:#c8585d;font-weight:900;white-space:nowrap}
.schedule-nav:has(.schedule-month-all-toggle:not([hidden])){justify-content:space-between;padding:0 3px;gap:8px}
.schedule-nav:has(.schedule-month-all-toggle:not([hidden])) #schedule-period{min-width:0;text-align:left;color:#52636b;font-size:13px;font-weight:800}
.schedule-month-all-toggle{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;cursor:pointer;user-select:none;-webkit-user-select:none;min-height:30px;white-space:nowrap;color:#263d48;font-size:12px;font-weight:900}
.schedule-month-all-toggle[hidden]{display:none!important}
.schedule-month-all-toggle input{appearance:auto;-webkit-appearance:checkbox;accent-color:#487f9e;width:17px;height:17px;min-width:17px;margin:0;cursor:pointer}
.schedule-personal-month-wrap{max-height:none;overflow:visible;border:0;background:transparent;box-shadow:none}
.schedule-personal-month{width:100%;max-width:740px;margin:0 auto;padding:12px 9px 13px;border:1px solid #dde6e9;border-radius:14px;background:#fff;box-shadow:0 4px 17px rgb(33 54 62 / .045)}
.schedule-personal-month-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 2px 11px;padding:1px 2px 9px;border-bottom:1px solid #edf1f2}
.schedule-personal-month-name{font-size:16px;font-weight:900;color:#263a42;white-space:nowrap}
.schedule-personal-month-head span{font-size:10px;font-weight:650;color:#86939a;white-space:nowrap}
.schedule-personal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;min-width:0}
.schedule-personal-week+.schedule-personal-week{margin-top:7px}
.schedule-personal-day{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:7px;min-width:0;min-height:75px;padding:8px 1px 8px;border:1px solid transparent;border-radius:9px;overflow:hidden}
.schedule-personal-date{display:flex;align-items:baseline;justify-content:center;gap:3px;min-width:0;white-space:nowrap;color:#43535b}
.schedule-personal-date strong{font-size:13px;font-weight:850;line-height:1.1;font-variant-numeric:tabular-nums}
.schedule-personal-date small{font-size:9px;font-weight:750;color:#7d8a91}
.schedule-personal-code{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:25px;padding:2px 0;border-radius:5px;font-size:clamp(7px,2.07vw,11px);line-height:1.1;letter-spacing:-.43px;font-weight:850;white-space:nowrap;font-variant-numeric:tabular-nums}
.schedule-personal-day.is-sunday .schedule-personal-date strong{color:#c66c6e}
.schedule-personal-day.is-saturday .schedule-personal-date strong{color:#527fa5}
.schedule-personal-day.is-today{outline:2px solid #d47677;outline-offset:-2px;background-image:linear-gradient(rgb(255 246 246 / .25),rgb(255 246 246 / .25))}
.schedule-personal-day.is-today .schedule-personal-date strong{color:#bd4d56}
.schedule-personal-day.tone-a{background-color:#eff7fb!important;border-color:#e1edf3}
.schedule-personal-day.tone-p{background-color:#fff4e9!important;border-color:#f5e6d7}
.schedule-personal-day.tone-rest{background-color:#f2f4f5!important;border-color:#e8ebed}
.schedule-personal-day.tone-e{background-color:#f5f0fa!important;border-color:#ede6f4}
.schedule-personal-day.tone-leave{background-color:#edf7f1!important;border-color:#e1efe5}
.schedule-personal-day.tone-other{background-color:#fbf5ef!important;border-color:#f0e8e0}
.schedule-personal-day.tone-empty{background-color:#fafbfb!important;border-color:#f1f3f3}
.schedule-personal-day.is-unused{background:#fbfcfc;border:1px dashed #eef1f2;opacity:.55}
.schedule-personal-empty{padding:22px 8px;text-align:center;color:#61717a}
.schedule-personal-empty strong{display:block;color:#344b56;font-size:15px}
.schedule-personal-empty p{font-size:12px;line-height:1.6;margin:8px 0 16px}
.schedule-personal-empty button{min-height:36px;padding:7px 14px;border:1px solid #b8d3df;border-radius:9px;background:#eef8fb;color:#32617a;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
@media(max-width:390px){
  .schedule-personal-month{padding:10px 6px 12px}
  .schedule-personal-week{gap:3px}
  .schedule-personal-day{min-height:72px;padding:7px 0 7px;gap:5px;border-radius:7px}
  .schedule-personal-date{gap:2px}
  .schedule-personal-date strong{font-size:12px}
  .schedule-personal-date small{font-size:8px}
  .schedule-personal-code{font-size:clamp(6.5px,2.06vw,9px);letter-spacing:-.48px}
  .schedule-month-all-toggle{font-size:11px;gap:5px}
}
@media(min-width:700px){
  .schedule-personal-day{min-height:88px}
  .schedule-personal-code{font-size:12px}
  .schedule-personal-date strong{font-size:15px}
  .schedule-personal-date small{font-size:11px}
}

/* A11-90 polish: dates stay on white tiles; only shift codes carry the familiar pastel tones. */
.schedule-personal-day{min-height:88px;padding:7px 2px 6px;gap:6px;background:#fff!important;border-color:#e5eaed!important}
.schedule-personal-date{flex-direction:column;align-items:center;gap:3px}
.schedule-personal-date strong{font-size:15px}
.schedule-personal-date small{font-size:10px}
.schedule-personal-code{min-height:28px;font-size:clamp(8px,2.5vw,11px);letter-spacing:-.37px}
.schedule-personal-code.is-long{font-size:clamp(7px,2.17vw,9.2px);letter-spacing:-.72px}
.schedule-personal-day.tone-a .schedule-personal-code{background:#e7f3fc;color:#2f657f}
.schedule-personal-day.tone-p .schedule-personal-code{background:#fff1df;color:#9b5a16}
.schedule-personal-day.tone-rest .schedule-personal-code{background:#f0f2f3;color:#718087}
.schedule-personal-day.tone-e .schedule-personal-code{background:#f4edf9;color:#71548b}
.schedule-personal-day.tone-leave .schedule-personal-code{background:#eaf5ed;color:#3f7654}
.schedule-personal-day.tone-other .schedule-personal-code{background:#f8f1eb;color:#755c48}
.schedule-personal-day.tone-empty .schedule-personal-code{background:#f8f9fa;color:#b6c0c4}
.schedule-personal-day.is-unused{background:#fbfcfc!important;border-style:dashed!important;opacity:.48}
.schedule-personal-day.is-today{background:#fff!important;border-color:#d47677!important}
@media(max-width:390px){
  .schedule-personal-day{min-height:82px;padding:6px 1px 5px;gap:5px}
  .schedule-personal-date strong{font-size:14px}
  .schedule-personal-date small{font-size:9px}
  .schedule-personal-code{min-height:26px}
}

/* A11-92: one-tap monthly name picker; keeps existing month card layout. */
.schedule-personal-month-head{align-items:center}
.schedule-personal-employee-picker{position:relative;display:flex;align-items:center;min-width:0;max-width:50%;flex:0 1 auto}
.schedule-personal-employee-select{appearance:none;-webkit-appearance:none;display:block;box-sizing:border-box;width:100%;min-width:105px;max-width:100%;padding:6px 25px 6px 5px;border:1px solid transparent;border-radius:8px;background:#f3f8fb;color:#263a42;font:inherit;font-size:16px;font-weight:900;line-height:1.3;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.schedule-personal-employee-select:focus-visible{outline:2px solid #69a7c1;outline-offset:1px}
.schedule-personal-employee-chevron{position:absolute;right:9px;top:50%;transform:translateY(-53%);pointer-events:none;color:#557c92!important;font-size:16px!important;font-weight:900!important;line-height:1}
@media(max-width:390px){
 .schedule-personal-employee-select{min-width:95px;font-size:15px;padding-right:23px}
 .schedule-personal-employee-chevron{right:7px}
}

/* A11-93: approved preview layout for '이번 달' personal schedule.
   Monday-first, compact rows, neutral day tiles, colored/bolder shift codes.
   These selectors do NOT apply to the full employee table or other tabs. */
.schedule-personal-month{border-radius:18px;padding:11px 9px 13px;box-shadow:0 6px 25px rgb(27 56 64 / .035)}
.schedule-personal-month-head{align-items:center;min-height:49px;margin:0 3px 10px;padding:0 3px 11px;border-bottom-color:#e9eef0}
.schedule-personal-employee-select{min-width:110px;min-height:43px;padding:8px 30px 8px 10px;border-radius:11px;background:#f3f7f9;color:#273a45;font-size:clamp(15px,4.5vw,20px);font-weight:900}
.schedule-personal-employee-chevron{right:11px}
.schedule-personal-month-head>span{font-size:clamp(9px,2.5vw,12px);font-weight:800;color:#91a0aa}
.schedule-personal-week{gap:4px}
.schedule-personal-week+.schedule-personal-week{margin-top:5px}
.schedule-personal-day,
.schedule-personal-day.tone-a,
.schedule-personal-day.tone-p,
.schedule-personal-day.tone-rest,
.schedule-personal-day.tone-e,
.schedule-personal-day.tone-leave,
.schedule-personal-day.tone-other,
.schedule-personal-day.tone-empty{
  min-height:76px;padding:8px 1px 5px;gap:5px;border:1px solid #e2e7eb!important;
  border-radius:9px;background:#f3f5f6!important;
}
.schedule-personal-date{flex-direction:column;gap:4px;align-items:center}
.schedule-personal-date strong{font-size:16px;font-weight:900;line-height:1}
.schedule-personal-date small{font-size:10px;font-weight:760;line-height:1}
.schedule-personal-code{
  width:100%;min-height:27px;padding:1px 0;border-radius:6px;
  font-size:clamp(10px,2.85vw,13px);font-weight:950;line-height:1.06;
  letter-spacing:-.35px;
}
.schedule-personal-code.is-long{font-size:clamp(9px,2.5vw,11px);letter-spacing:-.45px}
.schedule-personal-code.is-stacked{
  flex-direction:column;gap:0;min-height:30px;
  padding:1px 0;font-size:clamp(9.5px,2.7vw,11.8px);line-height:1.02;
  letter-spacing:-.32px;
}
.schedule-personal-code-prefix{font-size:1.02em}
.schedule-personal-code-suffix{font-size:.95em}
.schedule-personal-day.is-unused,
.schedule-personal-day.is-unused.tone-empty{
  border:1px dashed #eef1f3!important;background:#fafbfc!important;opacity:.55;
}
.schedule-personal-day.is-today,
.schedule-personal-day.is-today.tone-a,
.schedule-personal-day.is-today.tone-p,
.schedule-personal-day.is-today.tone-rest,
.schedule-personal-day.is-today.tone-e,
.schedule-personal-day.is-today.tone-leave,
.schedule-personal-day.is-today.tone-other,
.schedule-personal-day.is-today.tone-empty{
  border:2px solid #ca7779!important;background:#f7f7f8!important;
  padding:7px 0 4px;outline:0;box-shadow:0 0 0 1px #ca777933;
}
.schedule-personal-day.is-today .schedule-personal-date strong{color:#c2676b}
/* Keep the existing tone color only on the actual code badges. */
.schedule-personal-day.tone-a .schedule-personal-code{background:#e0eff9;color:#306784}
.schedule-personal-day.tone-p .schedule-personal-code{background:#fff0dc;color:#98601d}
.schedule-personal-day.tone-rest .schedule-personal-code{background:#e9edef;color:#7b8992}
.schedule-personal-day.tone-e .schedule-personal-code{background:#f1eafb;color:#6c5289}
.schedule-personal-day.tone-leave .schedule-personal-code{background:#e6f2e9;color:#3d7956}
.schedule-personal-day.tone-other .schedule-personal-code{background:#f2eee7;color:#705c43}
.schedule-personal-day.tone-empty .schedule-personal-code{background:transparent;color:#bdc5cb}
@media(max-width:360px){
  .schedule-personal-month{padding:10px 6px 11px}
  .schedule-personal-week{gap:3px}
  .schedule-personal-day{min-height:73px;padding:7px 0 5px}
  .schedule-personal-code{min-height:26px;font-size:clamp(9.5px,2.9vw,11px)}
  .schedule-personal-code.is-stacked{font-size:10px}
  .schedule-personal-month-head>span{font-size:9px}
}
@media(min-width:550px){
  .schedule-personal-day{min-height:87px}
  .schedule-personal-week{gap:6px}
  .schedule-personal-code{min-height:31px;font-size:14px}
  .schedule-personal-code.is-stacked{font-size:12px}
}


/* A11-100: readable scrollable schedule tab labels on iPhone; controls remain reachable. */
.schedule-tabs{display:flex;gap:5px;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:4px;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
.schedule-tabs::-webkit-scrollbar{display:none}
.schedule-tabs button,.schedule-tabs button[data-schedule-mode="focus"],.schedule-tabs button[data-schedule-mode="honey"]{flex:0 0 auto;width:auto;min-width:70px;padding:0 10px;min-height:38px;font-size:11px;white-space:nowrap;font-weight:800;letter-spacing:-.22px}
.schedule-tabs button[data-schedule-mode="mywork"]{min-width:113px}
.schedule-tabs button[data-schedule-mode="flights"]{min-width:104px}
.schedule-tabs button[data-schedule-mode="timeline"]{min-width:89px}
.schedule-tabs button[data-schedule-mode="focus"]{font-size:19px;min-width:49px;padding:0 9px}
.schedule-tabs button[data-schedule-mode="honey"]{font-size:11px;min-width:68px}
.overtime-average-label{margin-left:auto;color:#60727b;font-size:11px;font-weight:850;white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:390px){.schedule-tabs button,.schedule-tabs button[data-schedule-mode="focus"],.schedule-tabs button[data-schedule-mode="honey"]{font-size:11px;min-height:37px}.schedule-tabs button[data-schedule-mode="focus"]{font-size:19px}.overtime-average-label{font-size:10px}}

/* 2-week compact calendar: Monday-first with blank days outside the selected month. */
.op2-shell{gap:8px;min-width:0}
.op2-head{min-height:56px;gap:6px}
.op2-head>div:first-child{flex:1;min-width:0}
.op2-head>div:first-child strong{font-size:16px}
.op2-head>div:first-child span{font-size:10px}
.op2-nav{display:flex!important;grid-template-columns:none!important;flex:0 0 auto;align-items:center;gap:4px}
.op2-nav button{display:grid;place-items:center;flex:0 0 auto;min-width:31px;height:32px;padding:0 4px;border:1px solid #dbe3e6;border-radius:9px;background:#fff;color:#38505d;font:inherit;font-size:23px;font-weight:750;cursor:pointer}
.op2-nav button:disabled{opacity:.28;cursor:default}
.op2-nav .op2-today-button{min-width:48px;padding:0 7px;font-size:10px}
.op2-weekdays{border:1px solid #dce4e7;border-radius:13px 13px 0 0;overflow:hidden;margin-bottom:0}
.op2-grid{margin-top:-8px;border-top:0;border-radius:0 0 14px 14px}
.op2-day{display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:121px;padding:7px 2px 5px;text-align:left;appearance:none;-webkit-appearance:none;color:inherit;font:inherit;cursor:pointer;border-left:0;border-top:0;transition:background .12s}
.op2-day.outside{background:#f8f9fa;cursor:default}
.op2-day.today{box-shadow:inset 0 0 0 2px #dea743}
.op2-day.selected{z-index:2;box-shadow:inset 0 0 0 2px #607f95;background:#f0f8fd}
.op2-day:focus-visible{outline:2px solid #407faa;outline-offset:-2px}
.op2-day .operation-calendar-date{min-height:17px;padding-left:3px;margin-bottom:5px;font-size:12px;line-height:1.2}
.op2-day-entries{display:flex;flex-direction:column;gap:4px;min-width:0}
.op2-flight{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;min-height:40px;padding:3px 1px;border:1px solid #e3e9ec;border-radius:7px;background:#fff;color:#455f6b;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.2}
.op2-flight strong{font-size:11px;font-weight:900;color:#a8583b}
.op2-flight span{font-size:9px;letter-spacing:-.3px;font-weight:750}
.op2-more{display:block;text-align:center;color:#647b85;font-size:9px;font-weight:850}
.op2-empty{display:block;padding-top:16px;color:#bac5c9;font-size:12px;text-align:center}
.op2-detail{display:grid;gap:8px;padding:12px;border:1px solid #d6e2e8;border-radius:14px;background:#f9fcfd;box-shadow:0 3px 14px rgb(33 54 62 / .045)}
.op2-detail-head{display:flex;align-items:center;gap:9px;padding-bottom:8px;border-bottom:1px solid #dfe9ee}
.op2-detail-head strong{color:#2b4654;font-size:15px;font-weight:900}
.op2-detail-head>span{color:#7c8e97;font-size:10px;font-weight:750}
.op2-detail-head button{margin-left:auto;width:27px;height:27px;border:0;border-radius:8px;background:#e8eff2;color:#4d6573;font-size:21px;font-weight:600}
.op2-none{padding:10px 0;text-align:center;color:#7a8a92;font-size:12px}
.op2-detail-flight{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px;border:1px solid #e1e8eb;border-radius:11px;background:#fff}
.op2-detail-airline{display:flex;align-items:center;gap:8px;min-width:0}
.op2-detail-airline img{display:block;width:76px;max-width:50%;height:29px;object-fit:contain}
.op2-detail-airline b{font-size:15px;color:#4c6572}
.op2-detail-airline span{font-size:11px;color:#59707c;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op2-detail-flightname{align-self:center;color:#284654;font-size:12px;font-weight:850;text-align:right;overflow-wrap:anywhere}
.op2-detail-times{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.op2-detail-time{display:grid;justify-items:center;gap:2px;padding:9px 3px;background:#f2f7fa;border-radius:9px}
.op2-detail-time>span{color:#67808c;font-size:10px;font-weight:800}
.op2-detail-time>b{font-size:18px;font-weight:900;color:#284451;font-variant-numeric:tabular-nums}
.op2-detail-time>small{color:#70828a;font-size:10px;font-weight:750}
@media(max-width:390px){.op2-head{padding:10px}.op2-day{min-height:112px;padding:6px 1px 5px}.op2-flight{min-height:37px}.op2-flight strong{font-size:10px}.op2-flight span{font-size:8px}.op2-nav button{min-width:28px}}
@media(min-width:520px){.op2-day{min-height:130px;padding:9px 5px}.op2-flight strong{font-size:13px}.op2-flight span{font-size:10px}}

/* Preserve one-tap copy while hiding the bulky text area until requested. */
.op2-summary .operation-summary-text[hidden]{display:none}
.op2-summary-expand{flex:0 0 auto;min-width:47px;height:30px;padding:0 8px;border:1px solid #d9e3e7;border-radius:8px;background:#f7fafb;color:#4c6774;font:inherit;font-size:10px;font-weight:800;cursor:pointer}
.op2-summary .operation-summary-head{gap:6px}
.op2-summary .operation-summary-copy{flex:1;min-width:0}


/* A11-101: Unified bold segmented menu with subtle lines; still a single scrolling rail. */
.schedule-tabs{gap:0!important;padding:4px!important;border-radius:12px;align-items:stretch}
.schedule-tabs button,.schedule-tabs button[data-schedule-mode="focus"],.schedule-tabs button[data-schedule-mode="honey"]{position:relative;min-height:40px;font-size:12px!important;font-weight:850!important;letter-spacing:-.25px;border-radius:0;box-shadow:none}
.schedule-tabs button:not(:last-child)::after{content:"";position:absolute;right:0;top:22%;bottom:22%;width:1px;background:#d9e1e4}
.schedule-tabs button.active{border-radius:10px;box-shadow:0 1px 7px rgb(22 42 50 / .12);z-index:1}
.schedule-tabs button.active::after,.schedule-tabs button:has(+ button.active)::after{display:none}
.schedule-tabs button[data-schedule-mode="month"]{min-width:65px}
.schedule-tabs button[data-schedule-mode="mywork"]{min-width:72px}
.schedule-tabs button[data-schedule-mode="overtime"]{min-width:80px}
.schedule-tabs button[data-schedule-mode="timeline"]{min-width:91px}
.schedule-tabs button[data-schedule-mode="flights"],.schedule-tabs button[data-schedule-mode="focus"],.schedule-tabs button[data-schedule-mode="honey"]{font-size:20px!important;min-width:52px;padding:0 12px}

/* OT rankings: one centrally aligned card; average remains next to the title. */
.overtime-dashboard{display:block!important;width:calc(100% - 24px);max-width:460px;margin:0 auto;padding-bottom:12px}
.overtime-panel-classic{width:100%;margin-inline:auto}
.overtime-panel-classic .overtime-panel-head{padding:12px 14px}
.overtime-panel-classic .overtime-panel-title strong{font-size:17px}
.overtime-panel-classic .overtime-row{min-height:45px;padding:8px 13px}
.overtime-panel-classic .overtime-row strong,.overtime-panel-classic .overtime-row b{font-size:13px}
.overtime-panel-classic .overtime-average-label{font-size:11px}
@media(max-width:370px){.overtime-dashboard{width:calc(100% - 16px)}.overtime-panel-classic .overtime-panel-head{padding:9px 10px}.overtime-panel-classic .overtime-panel-title strong{font-size:15px}}

/* Weekly operation calendar. Monday-first, seven equal cells and visible airline marks. */
.op101-shell{min-width:0;gap:8px}
.op101-head{min-height:57px;gap:6px}
.op101-head>div:first-child{flex:1;min-width:0}
.op101-head>div:first-child strong{font-size:17px}
.op101-head>div:first-child span{font-size:10px}
.op101-swipe-hint{margin:0 1px 0;color:#87959c;font-size:10px;text-align:right;font-weight:700}
.op101-weekdays{border:1px solid #dde5e9;border-radius:13px 13px 0 0;overflow:hidden;margin-bottom:0}
.op101-grid{margin-top:-8px;grid-template-columns:repeat(7,minmax(0,1fr));border-top:0;border-radius:0 0 14px 14px;touch-action:pan-y}
.op101-day{position:relative;display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:167px;padding:5px 2px 7px;appearance:none;-webkit-appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background .15s}
.op101-day.outside{background:#f8f9fa;cursor:default}
.op101-day.today{box-shadow:inset 0 0 0 2px #d6a354;background:#fffaf0}
.op101-day.selected{z-index:2;box-shadow:inset 0 0 0 2px #547f96;background:#f4f9fd}
.op101-day:focus-visible{outline:2px solid #467eaa;outline-offset:-3px}
.op101-day .operation-calendar-date{display:flex;align-items:center;gap:2px;min-height:18px;font-size:13px;font-weight:900;margin-bottom:6px;padding:0 0 0 3px}
.op101-today-label{font-size:8px;font-weight:900;color:#b87d26}
.op101-logos{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0}
.op101-logo-item{display:flex;align-items:center;justify-content:center;min-height:28px;width:100%;padding:2px 1px;background:white;border:1px solid #e3e8ea;border-radius:7px;overflow:hidden}
.op101-airline-logo{display:block;width:100%;height:23px;max-width:100%;object-fit:contain}
.op101-airline-fallback{font-size:10px;color:#536d7a;overflow:hidden;text-overflow:ellipsis}
.op101-more{margin-top:1px;text-align:center;font-size:9px;color:#68808a;font-weight:900}
@media(max-width:390px){.op101-day{min-height:159px;padding:5px 1px 5px}.op101-logo-item{min-height:26px}.op101-airline-logo{height:21px}.op101-today-label{font-size:7px}}

/* Flight timeline: an hour-marked vertical axis down the centre; compact bars
   cross the axis and show origin/arrival | airline/flight | destination/departure. */
.op101-detail{border:1px solid #d8e5e9;border-radius:14px;padding:10px 9px 13px;background:#f9fcfd;box-shadow:0 2px 10px rgb(26 48 57 / .04)}
.op101-detail-head{display:flex;align-items:center;gap:6px;border-bottom:1px solid #e2e9ee;padding:0 0 10px;margin-bottom:9px}
.op101-detail-head strong{color:#263d48;font-size:15px;font-weight:900}
.op101-detail-head>span{color:#70848e;font-size:10px;font-weight:750;white-space:nowrap}
.op101-detail-head button{margin-left:auto;width:28px;height:28px;border:0;border-radius:8px;background:#e7edf0;color:#48626c;font-size:21px}
.op101-legend{display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;gap:3px;margin-bottom:6px;color:#788b96;font-size:10px;font-weight:800;text-align:center}
.op101-hour-list{position:relative;display:grid;gap:0;padding:2px 0}
.op101-hour-list::before{position:absolute;content:"";top:9px;bottom:9px;left:50%;border-left:2px solid #c8d9e1;transform:translateX(-50%);pointer-events:none}
.op101-hour-band{position:relative;display:flex;flex-direction:column;gap:7px;min-height:32px;padding:7px 0 7px;border-top:1px dashed #e3e9ee}
.op101-hour-band:last-child{min-height:23px}
.op101-hour-marker{position:relative;align-self:flex-start;z-index:1;margin-left:2px;padding:0 4px;background:#f9fcfd;color:#708993;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums}
.op101-hour-band::after{position:absolute;content:"";left:calc(50% - 3px);top:11px;width:6px;height:6px;background:#91aebd;border:2px solid #f9fcfd;border-radius:50%;pointer-events:none}
.op101-flight-bar{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr);align-items:stretch;gap:4px;min-height:76px;padding:5px 3px;background:#fff;border:1px solid #dce6e9;border-radius:10px;box-shadow:0 2px 8px rgb(30 55 67 / .05)}
.op101-arrive,.op101-depart{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;background:#f0f6f9;border-radius:7px}
.op101-depart{background:#f4f5f6}
.op101-arrive strong,.op101-depart strong{font-size:16px;font-weight:900;color:#254958;font-variant-numeric:tabular-nums;white-space:nowrap}
.op101-place{font-size:11px;font-weight:800;color:#5c7682;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op101-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;padding:3px 0;background:#fff}
.op101-brand .op101-airline-logo{width:min(110px,100%);height:35px;object-fit:contain}
.op101-flight-id{max-width:100%;font-size:10px;font-weight:850;color:#49626d;text-align:center;overflow-wrap:anywhere;line-height:1.18}
@media(max-width:390px){.op101-flight-bar{gap:3px;padding:4px 2px;min-height:70px}.op101-arrive strong,.op101-depart strong{font-size:14px}.op101-place{font-size:10px}.op101-brand .op101-airline-logo{height:29px}.op101-flight-id{font-size:9px}}
@media(prefers-reduced-motion:reduce){.op101-day{transition:none}}
/* Avoid UA button bevels and inherited dark outlines in the weekly grid. */
.op101-day{border:0;border-right:1px solid #e2e9ec;border-bottom:1px solid #e2e9ec;border-radius:0;background:#fff}
.op101-day:nth-child(7n){border-right:0}
.op101-day:nth-last-child(-n+7){border-bottom:0}
.op101-day.outside{background:#fafbfc}
.op101-day.today{background:#fffaf0}
.op101-day.selected{background:#f1f8fd}


/* A11-102: one-screen segmented navigation, never scrolls offscreen. */
.schedule-tabs{display:grid!important;grid-template-columns:1.02fr 1.08fr 1.22fr 1.52fr .62fr .62fr .62fr;gap:0!important;overflow:visible!important;width:100%;max-width:100%;box-sizing:border-box;padding:4px!important}
.schedule-tabs button,.schedule-tabs button[data-schedule-mode="focus"],.schedule-tabs button[data-schedule-mode="honey"]{flex:initial!important;width:100%!important;min-width:0!important;max-width:100%!important;min-height:38px!important;height:38px;padding:0 1px!important;font-size:clamp(9px,2.65vw,12px)!important;font-weight:850!important;letter-spacing:-.55px!important;white-space:nowrap}
.schedule-tabs button[data-schedule-mode="flights"],.schedule-tabs button[data-schedule-mode="focus"],.schedule-tabs button[data-schedule-mode="honey"]{font-size:clamp(15px,4.2vw,20px)!important;letter-spacing:0!important}
.schedule-tabs button.active{border-radius:9px}
@media(max-width:360px){.schedule-tabs{grid-template-columns:1fr 1fr 1.23fr 1.55fr .56fr .56fr .56fr}.schedule-tabs button,.schedule-tabs button[data-schedule-mode="focus"],.schedule-tabs button[data-schedule-mode="honey"]{font-size:9px!important}}
@media(min-width:600px){.schedule-tabs{grid-template-columns:1.1fr 1.1fr 1.3fr 1.55fr .63fr .63fr .63fr}}

/* A11-102 OT list: compact and centered rather than a very wide card. */
.overtime-dashboard{width:calc(100% - 52px)!important;max-width:340px!important;margin:0 auto!important}
@media(max-width:370px){.overtime-dashboard{width:calc(100% - 36px)!important}}

/* A11-102 continuous 1-31 operation strip. Each date is exactly 1/7 of view. */
.op102-shell{min-width:0;gap:9px}
.op102-head{min-height:60px}
.op102-today-button{flex:0 0 auto;height:34px;padding:0 10px;border:1px solid #d6e1e5;border-radius:10px;background:white;color:#476575;font:inherit;font-size:11px;font-weight:850}
.op102-days-scroller{width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-padding-inline:0;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;border:1px solid #dce4e7;border-radius:13px;background:#fff;box-sizing:border-box;box-shadow:0 4px 16px rgb(33 54 62 / .045)}
.op102-days-scroller::-webkit-scrollbar{display:none}
.op102-days-strip{display:flex;align-items:stretch;width:max-content;min-width:100%;box-sizing:border-box}
.op102-day{display:flex;flex:0 0 calc(var(--op102-cell-width,45px));width:var(--op102-cell-width,45px);min-width:0;flex-direction:column;align-items:stretch;box-sizing:border-box;border:0;border-right:1px solid #e2e9ed;border-radius:0;padding:7px 2px 9px;background:#fff;text-align:left;color:#3b525d;font:inherit;scroll-snap-align:start;cursor:pointer}
.op102-day:last-child{border-right:0}
.op102-day.sat .op102-day-header b,.op102-day.sat .op102-day-header small{color:#5378a0}
.op102-day.sun .op102-day-header b,.op102-day.sun .op102-day-header small{color:#bf5d62}
.op102-day.today{box-shadow:inset 0 0 0 2px #d1a451;background:#fffaf1}
.op102-day.selected{box-shadow:none;background:#fff}
.op102-day.today.selected{box-shadow:inset 0 0 0 2px #d1a451;background:#fff9ef}
.op102-day.op102-blank{background:#f8fafb;cursor:default}
.op102-day-header{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:3px;min-height:37px;padding-bottom:5px}
.op102-day-header b{font-size:15px;font-weight:900;line-height:1.15;font-variant-numeric:tabular-nums}
.op102-day-header small{font-size:10px;font-weight:750;color:#7e8d96}
.op102-day-header em{display:block;width:100%;text-align:center;font-style:normal;color:#a67a27;font-size:8px;font-weight:900}
.op102-day-logos{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;min-width:0}
.op102-logo{display:flex;align-items:center;justify-content:center;width:100%;height:26px;min-width:0;box-sizing:border-box;border:1px solid #e3eaed;border-radius:7px;background:white;padding:1px;overflow:hidden}
.op102-logo .op101-airline-logo{width:100%;height:22px;object-fit:contain}
.op102-logo .op101-airline-fallback{font-size:10px}
.op102-no-logo{color:#aebcc3;text-align:center;font-weight:850;font-size:14px;margin-top:12px}
@media(min-width:520px){.op102-day-header b{font-size:16px}.op102-logo{height:30px}.op102-logo .op101-airline-logo{height:25px}}

/* A11-102 Gantt timeline: 05:00–24:00 across full content width,
   3-hour major markers, 1-hour light grid, one row per operation. */
.op102-detail{border:1px solid #dce5e9;border-radius:14px;padding:10px 8px 12px;background:#fbfdfd;min-width:0}
.op102-chart{display:grid;gap:0;min-width:0}
.op102-axis{height:38px;position:relative;border-bottom:1px solid #cfdae0;margin:0 3px 2px;background:#f2f6f8;border-radius:6px 6px 0 0}
.op102-axis-label{position:absolute;top:15px;transform:translateX(-50%);font-size:10px;font-weight:850;color:#4b6573;font-variant-numeric:tabular-nums}
.op102-axis-label.first{transform:none}
.op102-axis-label.last{transform:translateX(-100%)}
.op102-axis-caption{position:absolute;top:2px;left:3px;color:#9daeb6;font-size:9px;font-weight:750}
.op102-flight-row{padding:8px 2px 9px;border-bottom:1px solid #e2e9ec;background:#fff}
.op102-flight-row:nth-of-type(even){background:#f7fafb}
.op102-flight-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:3px;min-height:40px;text-align:center}
.op102-info-left,.op102-info-right{display:flex;flex-direction:column;gap:2px;align-items:center}
.op102-info-left strong,.op102-info-right strong{font-size:14px;font-weight:900;color:#304e5e;font-variant-numeric:tabular-nums}
.op102-info-left span,.op102-info-right span{font-size:10px;color:#748993;font-weight:800}
.op102-flight-brand{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0}
.op102-flight-brand .op101-airline-logo{width:100%;max-width:102px;height:25px;object-fit:contain}
.op102-flight-name{font-size:9px;font-weight:850;color:#506875;text-align:center;overflow-wrap:anywhere;line-height:1.15}
.op102-track{position:relative;height:22px;margin-top:6px;margin-inline:3px;background:#f1f5f7;overflow:visible;border-radius:4px}
.op102-gridline{position:absolute;top:0;bottom:0;width:1px;background:#dce6ea;pointer-events:none}
.op102-gridline.major{width:1px;background:#b9cdd7}
.op102-gantt-bar{position:absolute;top:4px;height:14px;box-sizing:border-box;min-width:3px;border-radius:4px;background:linear-gradient(90deg,#87b6ce,#467f9e);border:1px solid #3c7896;box-shadow:0 1px 3px rgb(42 90 115 / .2)}
.op102-gantt-bar::before,.op102-gantt-bar::after{position:absolute;content:"";top:3px;width:5px;height:5px;background:#fff;border-radius:50%}
.op102-gantt-bar::before{left:-2px}.op102-gantt-bar::after{right:-2px}
.op102-gantt-bar.overnight{background:#927eb8;border-color:#7564a4}
.op102-gantt-bar.out-of-range{background:#abb6bc;border-color:#7e9199}
.op102-chart-note{text-align:center;color:#8b9ea7;font-size:10px;font-weight:750;padding:9px 2px 0;margin:0}
.op102-no-flights{padding:26px 6px;text-align:center;color:#8a9ca5;font-weight:750;font-size:12px}
@media(max-width:360px){.op102-info-left strong,.op102-info-right strong{font-size:12px}.op102-flight-name{font-size:8px}.op102-detail{padding:8px 4px 12px}}
@media(prefers-reduced-motion:reduce){.op102-days-scroller{scroll-behavior:auto}}


/* A11-103: persistent single-axis overview and separate horizontal zoom. */
.op103-compact{width:100%;min-width:0;box-sizing:border-box;border:1px solid #dbe5e9;border-radius:14px;background:#fff;padding:11px 11px 9px;box-shadow:0 4px 14px rgb(35 53 60 / .035)}
.op103-compact-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:9px;border-bottom:1px solid #edf1f3}
.op103-compact-head>div,.op103-zoom-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.op103-compact-head strong{font-size:15px;font-weight:900;color:#263e49}
.op103-compact-head span,.op103-zoom-head span{font-size:10px;color:#83949c;font-weight:750;white-space:normal}
.op103-zoom-open{flex-shrink:0;min-height:33px;padding:0 9px;border:1px solid #d2e1e8;border-radius:9px;background:#f1f7fa;color:#3b6b87;font-size:11px;font-weight:850}
.op103-mini-plot{padding:9px 1px 1px}
.op103-axis{position:relative;height:37px;box-sizing:border-box;min-width:0;border-bottom:1px solid #d7e3e8}
.op103-axis.compact{height:29px}
.op103-tick{position:absolute;bottom:7px;transform:translateX(-50%);font-size:11px;font-weight:850;line-height:1;color:#5a707b;font-variant-numeric:tabular-nums;white-space:nowrap}
.op103-axis.compact .op103-tick{font-size:10px}
.op103-tick.first{transform:none}.op103-tick.last{transform:translateX(-100%)}
.op103-mini-lanes,.op103-zoom-lanes{position:relative;background:#f4f7f9;overflow:hidden;border-radius:0 0 7px 7px}
.op103-lines{position:absolute;inset:0;pointer-events:none}
.op103-line{position:absolute;top:0;bottom:0;width:1px;background:#e0e8ed}
.op103-line.major{background:#bed0da}
.op103-mini-bar,.op103-zoom-bar{position:absolute;display:flex;align-items:center;justify-content:center;min-width:0;box-sizing:border-box;border:1px solid var(--bar-edge);background:var(--bar-color);color:#fff;font:inherit;font-weight:900;border-radius:5px;box-shadow:0 1px 3px rgb(41 68 80 / .15);cursor:pointer;overflow:hidden}
.op103-mini-bar{height:20px;font-size:9px;padding:0 1px}
.op103-mini-bar:active,.op103-zoom-bar:active{filter:brightness(.94)}
.op103-mini-bar span,.op103-zoom-bar span{overflow:hidden;text-overflow:clip;white-space:nowrap}
.op103-outside{opacity:.45}
.op103-empty{position:relative;margin:0;padding:12px 5px;color:#8b9ba5;text-align:center;font-size:11px;font-weight:750}
.op103-compact-note{margin:7px 0 0;font-size:10px;font-weight:700;color:#8b9ba4;text-align:center}
.op103-zoom-dialog{position:fixed;inset:0;box-sizing:border-box;width:min(96vw,800px);max-width:none;max-height:86dvh;min-width:0;padding:0;margin:auto;border:1px solid #d3e0e6;border-radius:17px;overflow:hidden;background:#fff;color:#293e49;box-shadow:0 24px 80px rgb(15 35 51 / .3)}
.op103-zoom-dialog::backdrop{background:rgb(19 38 51 / .6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.op103-zoom-body{box-sizing:border-box;max-height:86dvh;overflow-y:auto;overscroll-behavior:contain;padding:12px 10px calc(12px + env(safe-area-inset-bottom, 0px))}
.op103-zoom-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:1px 2px 12px}
.op103-zoom-head strong{font-size:18px;font-weight:900}
.op103-zoom-close{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border:0;border-radius:10px;background:#edf2f4;color:#49616d;font-size:27px;font-weight:750;cursor:pointer}
.op103-zoom-scroller{width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border:1px solid #dee7eb;border-radius:12px;background:#f8fafb;scrollbar-color:#b8c9d2 #edf3f6}
.op103-zoom-scroller:focus-visible{outline:2px solid #6fa0bb;outline-offset:2px}
.op103-zoom-chart{width:1710px;min-width:1710px;box-sizing:border-box;padding:10px 18px 15px}
.op103-zoom-lanes{border-radius:0 0 7px 7px}
.op103-zoom-bar{height:38px;padding:0 5px;font-size:13px;flex-direction:column;gap:2px}
.op103-zoom-bar small{font-size:9px;font-weight:800;line-height:1;white-space:nowrap}
.op103-zoom-bar.chosen{outline:3px solid #213c54;outline-offset:2px;z-index:2}
.op103-zoom-hint{margin:9px 3px;font-size:11px;font-weight:750;color:#728995;line-height:1.5}
.op103-flight-detail{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:9px;border:1px solid #d9e5ea;border-radius:12px;background:#f5f9fb;padding:10px}
.op103-detail-brand{display:flex;gap:8px;align-items:center;min-width:0}
.op103-detail-brand .op101-airline-logo{width:80px;height:29px;object-fit:contain}
.op103-detail-brand strong{font-size:12px;color:#3c5664;overflow-wrap:anywhere}
.op103-detail-route{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;font-weight:850;color:#3b5a6b;font-variant-numeric:tabular-nums}
.op103-detail-route b{color:#8da2ae}
@media(max-width:360px){.op103-compact{padding:9px 7px 8px}.op103-axis.compact .op103-tick{font-size:9px}.op103-compact-head strong{font-size:14px}.op103-compact-head span{font-size:9px}.op103-zoom-open{padding:0 7px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.op103-zoom-scroller{scroll-behavior:auto}}


/* A11-123: fit eight navigation items into the same fixed row. */
.schedule-tabs{grid-template-columns:1.02fr .95fr 1.24fr 1.54fr .79fr .57fr .57fr .57fr!important}
.schedule-tabs button[data-schedule-mode="badges"]{font-weight:850!important;font-size:clamp(9px,2.65vw,12px)!important;letter-spacing:-.35px!important;min-width:0!important;padding:0!important}
@media(max-width:360px){.schedule-tabs{grid-template-columns:1fr .93fr 1.28fr 1.65fr .8fr .54fr .54fr .54fr!important}}
@media(min-width:600px){.schedule-tabs{grid-template-columns:1.1fr 1fr 1.3fr 1.6fr .8fr .6fr .6fr .6fr!important}}

/* A11-123: date-centered horizontally sliding employee name-badges. */
.badge123-wrap{max-height:calc(100dvh - 218px);overflow-y:auto;overflow-x:hidden;border:0;box-shadow:none;background:transparent}
.badge123-shell{display:grid;gap:12px;padding:3px 1px 16px;min-width:0}
.badge123-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:1px 2px}
.badge123-heading h2{margin:0;font-size:19px;font-weight:900;letter-spacing:-.7px;color:#28383f}
.badge123-heading p{margin:4px 0 0;font-size:11px;font-weight:650;color:#84939c}
.badge123-tomorrow{flex:0 0 auto;background:white;border:1px solid #d6e0e5;border-radius:9px;min-height:35px;padding:0 12px;font-size:12px;font-weight:850;color:#496879}
.badge123-date-rail{width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x mandatory;border:1px solid #dfe6e9;border-radius:14px;background:#f6f8f9;box-shadow:0 3px 11px #233c4808}
.badge123-date-rail::-webkit-scrollbar{display:none}
.badge123-date-strip{display:flex;width:max-content;min-width:100%;align-items:stretch;box-sizing:border-box}
.badge123-date,.badge123-date-blank{flex:0 0 calc(var(--badge123-col, (100% / 7)));width:var(--badge123-col, 45px);box-sizing:border-box;scroll-snap-align:start}
.badge123-date{display:flex;align-items:center;flex-direction:column;gap:4px;justify-content:center;min-height:69px;padding:8px 1px;border:0;border-right:1px solid #e6ebed;background:#fff;color:#455963;font:inherit;cursor:pointer}
.badge123-date-blank{background:#f6f8f9;border-right:1px solid #eff2f3;pointer-events:none}
.badge123-date strong{font-size:18px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.badge123-date small{font-size:11px;font-weight:750;color:#849199}
.badge123-date.sat strong,.badge123-date.sat small{color:#6089ab}
.badge123-date.sun strong,.badge123-date.sun small{color:#c36a6c}
.badge123-date.today{box-shadow:inset 0 0 0 2px #d5ac73;background:#fffaf2}
.badge123-date.selected{box-shadow:inset 0 0 0 2px #6f9db5;background:#eef7fd}
.badge123-date.today.selected{box-shadow:inset 0 0 0 2px #c79958;background:#fff7e8}
.badge123-selected{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 2px 1px;padding:1px 2px 9px;border-bottom:1px solid #e7edef}
.badge123-selected strong{font-size:16px;font-weight:900;letter-spacing:-.5px;color:#283d48}
.badge123-selected span{font-size:11px;font-weight:750;color:#7c919b;white-space:nowrap}
.badge123-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;align-items:start}
.badge123-card{min-width:0;overflow:hidden;border:1px solid #dfe7eb;border-radius:15px;background:white!important;color:#263b48!important;box-shadow:0 5px 14px rgb(35 57 68 / .05)}
.badge123-card-top{display:flex;align-items:center;justify-content:space-between;gap:3px;min-height:48px;padding:8px 10px;border-bottom:1px solid #e5ebee;background:#f4f8fa}
.badge123-card-top strong{overflow-wrap:anywhere;font-size:clamp(13px,3.6vw,18px);font-weight:900;line-height:1.15;letter-spacing:-.6px}
.badge123-card-top span{flex:0 0 auto;font-size:10px;font-weight:800;color:#8597a0}
.badge123-card.tone-a .badge123-card-top{background:#e9f4fb;color:#386e8e}
.badge123-card.tone-p .badge123-card-top{background:#fff2e2;color:#a56b2e}
.badge123-card.tone-e .badge123-card-top{background:#f4eefa;color:#76539a}
.badge123-people{display:grid;gap:0;padding:8px 7px 11px}
.badge123-people span{display:block;min-height:34px;padding:6px 2px;text-align:center;overflow-wrap:anywhere;font-size:15px;font-weight:850;letter-spacing:-.3px;color:#35444b}
.badge123-people span+span{border-top:1px solid #f0f3f4}
.badge123-empty{grid-column:1/-1;text-align:center;padding:29px 13px;color:#8898a0;background:#fafbfc;border:1px dashed #d6e0e5;border-radius:14px;font-size:12px;font-weight:750}
@media(max-width:360px){.badge123-grid{gap:8px}.badge123-card-top{padding:8px 7px}.badge123-people span{font-size:14px}}
@media(prefers-reduced-motion:reduce){.badge123-date-rail{scroll-behavior:auto}}


/* A11-125: transpose badge layout.
   Put work codes across the top in compact columns and stack employee names below,
   so it reads like: A5 | A6 / name name / name name. */
.badge123-shell{gap:9px}
.badge123-selected{padding-bottom:6px}
.badge123-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:start}
.badge123-card{
  display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0;
  border-radius:12px;box-shadow:0 3px 10px rgb(35 57 68 / .045)
}
.badge123-card-top{
  display:flex;align-items:center;justify-content:space-between;gap:6px;
  min-width:0;min-height:40px;padding:7px 8px;
  border-bottom:1px solid #e5ebee
}
.badge123-card-top strong{font-size:clamp(13px,3.4vw,16px);line-height:1.15;letter-spacing:-.45px}
.badge123-card-top span{font-size:10px;line-height:1.1}
.badge123-people{
  display:grid;gap:0;min-width:0;padding:4px 6px 6px
}
.badge123-people span{
  display:block;min-height:0;margin:0;padding:6px 2px;
  border:0;border-radius:0;background:transparent;
  white-space:normal;overflow-wrap:anywhere;
  text-align:center;font-size:clamp(12px,3.15vw,14px);
  line-height:1.2;font-weight:800;letter-spacing:-.25px
}
.badge123-people span+span{border-top:1px solid #f0f3f4}
@media(max-width:360px){
  .badge123-grid{gap:6px}
  .badge123-card-top{padding:6px 7px}
  .badge123-people{padding:4px 5px 5px}
  .badge123-people span{font-size:12px;padding:5px 1px}
}
@media(min-width:430px){
  .badge123-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}


/* A11-127: two comfortable rows of schedule tabs.
   Top: 근무표/내 근무/연장근로/운항스케줄.
   Bottom: 내일 근무자/✈️/🍺/🍯.
   Four equal columns keep every action reachable without horizontal scrolling. */
.schedule-tabs{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,minmax(46px,auto));
  gap:7px 6px!important;
  width:100%;
  overflow:visible!important;
  padding:7px!important;
}
.schedule-tabs button,
.schedule-tabs button[data-schedule-mode="focus"],
.schedule-tabs button[data-schedule-mode="honey"]{
  min-width:0!important;
  width:100%!important;
  min-height:46px!important;
  height:46px!important;
  padding:0 3px!important;
  border-radius:10px;
  font-size:clamp(11px,3.2vw,14px)!important;
  line-height:1.15;
  letter-spacing:-.4px!important;
  white-space:nowrap;
}
.schedule-tabs button[data-schedule-mode="timeline"]{
  font-size:clamp(10.5px,3vw,13px)!important;
}
.schedule-tabs button[data-schedule-mode="badges"]{
  font-size:clamp(10.5px,3vw,13px)!important;
  font-weight:850!important;
  letter-spacing:-.55px!important;
  line-height:1.15!important;
}
.schedule-tabs button[data-schedule-mode="flights"],
.schedule-tabs button[data-schedule-mode="focus"],
.schedule-tabs button[data-schedule-mode="honey"]{
  font-size:clamp(19px,5vw,24px)!important;
  letter-spacing:0!important;
}
/* Old single-row separators must not appear across the new line break. */
.schedule-tabs button::after{display:none!important}
.schedule-tabs button.active{border-radius:10px}

/* Work-code on top, one employee per line below, in readable columns. */
.badge123-heading h2{font-size:21px;line-height:1.15}
.badge123-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:start;
}
.badge123-card{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  min-width:0;
  border:1px solid #dfe7eb!important;
  border-radius:13px!important;
  background:#fff!important;
  box-shadow:0 3px 10px rgb(35 57 68 / .05)!important;
}
.badge123-card-top{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  gap:4px!important;
  min-height:46px!important;
  padding:9px 5px!important;
  text-align:center!important;
  border-bottom:1px solid #e5ebee;
}
.badge123-card-top strong{
  font-size:clamp(12px,3.5vw,15px)!important;
  line-height:1.15!important;
  letter-spacing:-.5px!important;
  overflow-wrap:anywhere;
}
.badge123-card-top span{
  font-size:10px!important;
  line-height:1.2!important;
}
.badge123-people{
  display:grid!important;
  grid-template-columns:minmax(0,1fr);
  min-width:0;
  gap:0!important;
  padding:6px 6px 9px!important;
}
.badge123-people span{
  display:block!important;
  min-height:31px!important;
  padding:7px 2px!important;
  margin:0!important;
  border-radius:0!important;
  font-size:clamp(12px,3.45vw,15px)!important;
  font-weight:850!important;
  line-height:1.25!important;
  text-align:center!important;
  white-space:normal;
  overflow-wrap:anywhere;
  letter-spacing:-.4px!important;
}
.badge123-people span+span{border-top:1px solid #eef2f4!important}
@media(max-width:340px){
  .schedule-tabs{gap:6px 4px!important;padding:6px!important}
  .badge123-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
}
@media(min-width:650px){
  .schedule-tabs{gap:9px!important;padding:9px!important}
  .badge123-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:13px!important}
}

/* A11-128: badge list cleanup for PNG review.
   Remove title/hint/tomorrow area, keep only date,
   and place all work-code cards in a single row. */
.badge123-shell{
  gap:10px!important;
  padding-top:4px!important;
}
.badge123-heading{display:none!important}
.badge123-selected{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:0!important;
  margin:0 2px 0!important;
  padding:2px 2px 8px!important;
  border-bottom:1px solid #e7edef!important;
}
.badge123-selected strong{
  font-size:17px!important;
  font-weight:900!important;
  letter-spacing:-.55px!important;
  color:#283d48!important;
}
.badge123-grid{
  display:grid!important;
  gap:6px!important;
  align-items:start!important;
}
.badge123-card{
  border-radius:11px!important;
}
.badge123-card-top{
  min-height:0!important;
  padding:7px 4px 6px!important;
  gap:3px!important;
}
.badge123-card-top strong{
  font-size:clamp(10px,2.9vw,12px)!important;
  line-height:1.1!important;
  letter-spacing:-.45px!important;
}
.badge123-card-top span{
  font-size:9px!important;
  line-height:1.1!important;
}
.badge123-people{
  padding:4px 4px 6px!important;
}
.badge123-people span{
  min-height:0!important;
  padding:5px 1px!important;
  font-size:clamp(10px,2.7vw,12px)!important;
  line-height:1.15!important;
  letter-spacing:-.35px!important;
}
@media(min-width:650px){
  .badge123-grid{gap:8px!important}
}

/* A11-128: auto-selected date only, no 1st-to-last-day selector.
   All active work codes share one row with employee names stacked below. */
.badge123-shell{gap:10px!important;padding-top:4px!important}
.badge123-heading,.badge123-date-rail,.badge123-tomorrow{display:none!important}
.badge123-grid{
  display:grid!important;
  grid-template-columns:repeat(var(--badge123-columns,1),minmax(0,1fr))!important;
  gap:6px!important;
  align-items:start!important;
}
.badge123-card{min-width:0!important}
.badge123-empty{grid-column:1/-1!important}
@media(min-width:650px){.badge123-grid{gap:8px!important}}

/* A11-129: compact two-row menu and cleaner badge cards.
   - Keep the menu in 2 rows, but closer to the original compact height.
   - Remove the member-count line under work codes.
   - Keep each code aligned with a fixed header row.
   - Allow a clean line break before parentheses when needed. */
.schedule-tabs{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,minmax(36px,auto))!important;
  gap:4px 5px!important;
  padding:4px!important;
  border-radius:11px!important;
}
.schedule-tabs button,
.schedule-tabs button[data-schedule-mode="focus"],
.schedule-tabs button[data-schedule-mode="honey"]{
  min-width:0!important;
  width:100%!important;
  min-height:36px!important;
  height:36px!important;
  padding:0 3px!important;
  border-radius:8px!important;
  font-size:clamp(10px,2.9vw,12px)!important;
  line-height:1.08!important;
  letter-spacing:-.35px!important;
  white-space:nowrap!important;
}
.schedule-tabs button[data-schedule-mode="timeline"],
.schedule-tabs button[data-schedule-mode="badges"]{
  font-size:clamp(9.8px,2.8vw,11.8px)!important;
}
.schedule-tabs button[data-schedule-mode="flights"],
.schedule-tabs button[data-schedule-mode="focus"],
.schedule-tabs button[data-schedule-mode="honey"]{
  font-size:clamp(17px,4.6vw,21px)!important;
  line-height:1!important;
}
.schedule-tabs button.active{box-shadow:0 1px 7px rgb(22 42 50 / .12)!important}

.badge123-selected{
  margin:0 0 2px!important;
  padding:1px 1px 10px!important;
}
.badge123-selected strong{
  font-size:16px!important;
  letter-spacing:-.45px!important;
}
.badge123-grid{
  display:grid!important;
  grid-template-columns:repeat(var(--badge123-columns,1),minmax(0,1fr))!important;
  gap:6px!important;
  align-items:start!important;
}
.badge123-card{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  border-radius:11px!important;
}
.badge123-card-top{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:56px!important;
  height:56px!important;
  padding:6px 2px!important;
  gap:0!important;
  text-align:center!important;
}
.badge123-card-top strong{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:40px!important;
  width:100%;
  font-size:clamp(9px,2.65vw,11px)!important;
  line-height:1.02!important;
  letter-spacing:-.35px!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.badge123-card-top strong .badge123-code-main,
.badge123-card-top strong .badge123-code-sub{
  display:block;
  line-height:1.02;
}
.badge123-card-top > span{display:none!important}
.badge123-people{
  padding:4px 4px 6px!important;
}
.badge123-people span{
  min-height:0!important;
  padding:5px 1px!important;
  font-size:clamp(10px,2.75vw,12px)!important;
  line-height:1.14!important;
  letter-spacing:-.28px!important;
  word-break:keep-all!important;
}
@media(max-width:390px){
  .schedule-tabs{gap:3px 4px!important;padding:4px!important}
  .schedule-tabs button{font-size:10.5px!important}
  .schedule-tabs button[data-schedule-mode="timeline"],
  .schedule-tabs button[data-schedule-mode="badges"]{font-size:10px!important}
  .badge123-grid{gap:5px!important}
  .badge123-card-top{min-height:54px!important;height:54px!important;padding:5px 2px!important}
  .badge123-card-top strong{font-size:clamp(8.5px,2.55vw,10.5px)!important}
  .badge123-people span{font-size:clamp(9.7px,2.65vw,11.5px)!important}
}


/* A11-130: improve readability while preserving one-row work-code alignment.
   Use the same AM / PM / evening and other tone colors as the schedule itself. */
.badge123-card-top{
  /* Identical header height lets the employees all start on the same line. */
  min-height:58px!important;
  height:58px!important;
  padding:5px 2px!important;
}
.badge123-card-top strong{
  font-size:clamp(12px,3.55vw,15px)!important;
  font-weight:950!important;
  line-height:1.06!important;
  letter-spacing:-.35px!important;
  color:inherit!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.badge123-card-top strong .badge123-code-main,
.badge123-card-top strong .badge123-code-sub{
  /* Never wrap a code or its parenthesized suffix internally. */
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  font-size:inherit!important;
  font-weight:950!important;
  letter-spacing:-.45px!important;
}
.badge123-card.tone-a .badge123-card-top{background:#e6f2fa!important;color:#245c7e!important}
.badge123-card.tone-p .badge123-card-top{background:#fff0dd!important;color:#965013!important}
.badge123-card.tone-e .badge123-card-top{background:#f2eafa!important;color:#684586!important}
.badge123-card.tone-rest .badge123-card-top{background:#eaf0f3!important;color:#526a78!important}
.badge123-card.tone-leave .badge123-card-top{background:#e9f4ed!important;color:#32704f!important}
.badge123-card.tone-other .badge123-card-top{background:#f5eee6!important;color:#795438!important}
.badge123-people span{
  font-size:clamp(11px,3.55vw,14.5px)!important;
  font-weight:850!important;
  line-height:1.2!important;
  letter-spacing:-.22px!important;
  padding:6px 1px!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
/* Longer names get a small adaptive reduction so they stay in one employee row. */
.badge123-people span.badge123-name-long{
  font-size:clamp(10px,3vw,12.2px)!important;
  letter-spacing:-.35px!important;
}
/* When many work codes are present, protect narrow columns without wrapping. */
.badge123-grid.badge123-dense .badge123-card-top strong{
  font-size:clamp(10px,2.8vw,12px)!important;
}
.badge123-grid.badge123-dense .badge123-people span{
  font-size:clamp(9.8px,2.9vw,12px)!important;
}
.badge123-grid.badge123-dense .badge123-people span.badge123-name-long{
  font-size:clamp(8.5px,2.45vw,10.5px)!important;
}
@media(max-width:390px){
  .badge123-card-top{min-height:56px!important;height:56px!important}
  .badge123-card-top strong{font-size:clamp(11px,3.3vw,13px)!important}
  .badge123-people span{font-size:clamp(10.7px,3.36vw,13.1px)!important}
  .badge123-people span.badge123-name-long{font-size:clamp(9.5px,2.9vw,11.5px)!important}
  .badge123-grid.badge123-dense .badge123-card-top strong{font-size:clamp(9.5px,2.65vw,11px)!important}
  .badge123-grid.badge123-dense .badge123-people span{font-size:clamp(9px,2.55vw,10.5px)!important}
}


/* A11-131: fix gray work-code text on codes with parentheses.
   badge123-code-main/sub are spans, and old generic span rules could turn them gray.
   Force them to inherit the AM/PM tone color from the card header. */
.badge123-card-top strong .badge123-code-main,
.badge123-card-top strong .badge123-code-sub{
  color:inherit!important;
  opacity:1!important;
}
.badge123-card.tone-a .badge123-card-top strong .badge123-code-main,
.badge123-card.tone-a .badge123-card-top strong .badge123-code-sub{color:#245c7e!important}
.badge123-card.tone-p .badge123-card-top strong .badge123-code-main,
.badge123-card.tone-p .badge123-card-top strong .badge123-code-sub{color:#965013!important}

/* A11-139: current/next-month operations calendar and full-month toggle. */
.op102-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 12px}
.op102-head .op139-month-navigation{display:flex;align-items:center;justify-content:flex-start;gap:7px;min-width:0;flex:1 1 195px}
.op102-head .op139-month-title{display:flex;flex-direction:column;gap:3px;min-width:0}
.op102-head .op139-month-title strong{font-size:clamp(14px,3.8vw,17px);font-weight:900;white-space:nowrap}
.op102-head .op139-month-title span{font-size:10px;line-height:1.2}
.op139-month-arrow{flex:0 0 30px;width:30px;height:32px;border:1px solid #d5e1e6;border-radius:9px;background:#fff;color:#385b6c;font-size:24px;font-weight:700;line-height:1;cursor:pointer}
.op139-month-arrow:disabled{opacity:.3;cursor:default;background:#f4f6f7}
.op102-head .op102-today-button{flex:0 0 auto;white-space:nowrap;min-height:34px;font-weight:900}
.op139-weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid #dce5e9;background:#f5f8fa}
.op139-weekday-row span{display:grid;place-items:center;padding:8px 0;color:#617681;font-weight:850;font-size:11px}
.op139-weekday-row span.sat{color:#517ca0}.op139-weekday-row span.sun{color:#b75b64}
/* Each flight stays on its own row: company logo on left, flight/destination on right. */
.op102-logo{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:3px!important;height:auto!important;min-height:30px;padding:3px 2px!important}
.op102-logo .op139-logo-box{flex:0 0 44%;width:44%;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.op102-logo .op139-logo-box .op101-airline-logo{display:block;width:100%;max-width:100%;height:24px;object-fit:contain}
.op102-logo .op139-logo-box .op101-airline-fallback{font-size:9px}
.op139-flight-caption{display:flex;flex:1 1 0;min-width:0;flex-direction:column;justify-content:center;gap:1px;line-height:1.1;text-align:left}
.op139-flight-caption b,.op139-flight-caption small{display:block;min-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.op139-flight-caption b{color:#344c58;font-size:clamp(8px,1vw,11px);font-weight:900}
.op139-flight-caption small{color:#738894;font-size:clamp(8px,.87vw,10px);font-weight:800}
/* Full calendar: exactly seven columns, Monday first, all real days + empty placeholders. */
.op102-days-scroller.op102-month-view{overflow-x:hidden;overflow-y:visible;scroll-snap-type:none;border-radius:13px}
.op102-month-view .op102-days-strip{display:grid;width:100%;min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch}
.op102-month-view .op102-day{flex:none;width:100%;min-width:0;max-width:100%;height:100%;scroll-snap-align:none;border-bottom:1px solid #e2e9ed}
.op102-month-view .op102-day:nth-child(7n){border-right:0}
.op102-month-view .op102-day.op102-blank{background:#f7f9fa;pointer-events:none}
.op102-month-view .op102-day-header{min-height:27px}
.op102-month-view .op102-day-logos{padding-bottom:5px}
@media(max-width:600px){
  .op102-head{padding:9px 8px;gap:6px}
  .op102-head .op139-month-navigation{gap:4px;flex-basis:175px}
  .op139-month-arrow{flex-basis:27px;width:27px;height:30px;font-size:22px}
  .op102-head .op139-month-title span{font-size:9px}
  .op102-logo{gap:2px!important;min-height:27px;padding:2px 1px!important;border-radius:5px}
  .op102-logo .op139-logo-box{width:35%;flex-basis:35%}
  .op102-logo .op139-logo-box .op101-airline-logo{height:18px}
  .op139-flight-caption b{font-size:8px}
  .op139-flight-caption small{font-size:8px}
  .op102-month-view .op102-day{padding:4px 1px 6px}
  .op102-month-view .op102-day-header{min-height:24px;padding-bottom:3px;gap:1px}
  .op102-month-view .op102-day-header b{font-size:12px}
  .op102-month-view .op102-day-header small{font-size:8px}
  .op102-month-view .op102-day-logos{gap:2px}
}
/* On narrow seven-column screens preserve the whole flight code instead of truncating it. */
@media(max-width:600px){
  .op102-logo .op139-logo-box{width:31%;flex-basis:31%}
  .op139-flight-caption b{white-space:normal;overflow-wrap:anywhere;word-break:normal;text-overflow:clip;font-size:7.5px;line-height:1.08}
  .op139-flight-caption small{font-size:7.5px}
}


/* A11-153: day-grid flights remain within the SAME seven-column cells.
   Show airline logo above two clean, centered flight-number rows, not a tiny
   logo beside a hyphenated name and destination. */
.op102-day-logos .op102-logo{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:57px!important;
  padding:4px 1px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.op102-day-logos .op102-logo .op139-logo-box{
  display:flex!important;
  flex:0 0 auto!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  height:25px!important;
  overflow:hidden!important;
}
.op102-day-logos .op102-logo .op139-logo-box .op101-airline-logo{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:25px!important;
  object-fit:contain!important;
}
.op102-day-logos .op102-logo .op139-logo-box .op101-airline-fallback{
  font-size:12px!important;
  font-weight:900!important;
}
.op102-day-logos .op102-logo .op139-flight-caption{
  display:flex!important;
  flex:none!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  width:100%!important;
  min-width:0!important;
  text-align:center!important;
  line-height:1.05!important;
}
.op102-day-logos .op102-logo .op139-flight-caption .op153-flight-leg{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  color:#344b58!important;
  font-size:clamp(8px,2.2vw,11px)!important;
  font-weight:900!important;
  letter-spacing:-.3px!important;
  font-variant-numeric:tabular-nums!important;
  line-height:1.08!important;
}
@media(min-width:600px){
  .op102-day-logos .op102-logo{min-height:65px!important;padding:5px 3px!important;gap:3px!important}
  .op102-day-logos .op102-logo .op139-logo-box,
  .op102-day-logos .op102-logo .op139-logo-box .op101-airline-logo{height:30px!important}
  .op102-day-logos .op102-logo .op139-flight-caption .op153-flight-leg{font-size:11px!important}
}


/* A11-154: fourth visible date is the only crisp flight-list column.
   Keep the date headers themselves sharp so the adjacent days can be found
   and tapped. Cards/logos/text in the three columns on each side are blurred;
   airline branding is additionally desaturated and faded. Month-overview
   grid stays fully readable because it has no single selected center. */
.op102-days-scroller:not(.op102-month-view) .op102-day .op102-day-logos{
  transition:filter .16s ease,opacity .16s ease;
}
.op102-days-scroller:not(.op102-month-view) .op102-day:not(.op154-focus) .op102-day-logos{
  filter:blur(2.65px) saturate(.48);
  opacity:.43;
}
.op102-days-scroller:not(.op102-month-view) .op102-day.op154-focus .op102-day-logos{
  filter:none;
  opacity:1;
}
@media(prefers-reduced-motion:reduce){
  .op102-days-scroller:not(.op102-month-view) .op102-day .op102-day-logos{transition:none}
}

/* A11-159: protect the long shift code from overlapping the clock labels.
   The code gets enough horizontal room; 출근/퇴근 remain next to their own times. */
.schedule-mywork-today-detail{
  grid-template-columns:minmax(0,1.32fr) minmax(108px,.68fr);
}
.schedule-mywork-today-info{
  min-width:0;
  grid-template-columns:minmax(0,1fr) max-content;
  column-gap:7px;
  padding:10px 8px;
}
.schedule-mywork-today-code{
  min-width:0;
  padding-left:0;
  margin:0;
  white-space:nowrap;
  font-size:clamp(14px,4.7vw,20px);
  letter-spacing:-.65px;
  line-height:1.15;
}
.schedule-mywork-today-times{
  min-width:max-content;
  gap:5px;
  font-size:8.5px;
}
.schedule-mywork-today-times span{
  justify-content:flex-end;
  gap:5px;
  white-space:nowrap;
}
.schedule-mywork-today-times strong{
  margin:0;
  font-size:9.5px;
}
@media(max-width:390px){
  .schedule-mywork-today-detail{grid-template-columns:minmax(0,1.35fr) minmax(104px,.65fr)}
  .schedule-mywork-today-info{padding:9px 7px;column-gap:5px}
  .schedule-mywork-today-times{font-size:7.6px}
  .schedule-mywork-today-times strong{font-size:9px}
}

/* A11-160: reclaim today-card width for at least a 2x2 airline logo grid.
   Keep shift and both clock rows grouped closely without overlap. */
.schedule-mywork-today-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.schedule-mywork-today-info{
  min-width:0;
  grid-template-columns:minmax(0,1fr) max-content;
  align-items:center;
  column-gap:3px;
  padding:9px 6px;
}
.schedule-mywork-today-code{
  min-width:0;
  padding:0;
  font-size:clamp(12.5px,4.05vw,18px);
  letter-spacing:-.6px;
  white-space:nowrap;
}
.schedule-mywork-today-times{font-size:clamp(7px,1.95vw,8.8px);gap:4px;min-width:0}
.schedule-mywork-today-times span{gap:3px;justify-content:flex-start}
.schedule-mywork-today-times strong{font-size:clamp(8px,2.3vw,10px);margin:0}
.schedule-mywork-today-airlines{min-width:0;padding:7px 6px}
.schedule-mywork-today-logo-list{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  align-content:center;gap:5px;min-width:0;
}
.schedule-mywork-today-logo{min-width:0;height:32px;padding:3px 3px}
.schedule-mywork-today-logo img{max-width:100%;height:23px;object-fit:contain}
@media(max-width:390px){
  .schedule-mywork-today-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .schedule-mywork-today-info{padding:8px 5px;column-gap:2px}
  .schedule-mywork-today-code{font-size:clamp(12px,4vw,15.6px)}
  .schedule-mywork-today-times{font-size:7px;gap:3px}
  .schedule-mywork-today-times strong{font-size:8.2px}
  .schedule-mywork-today-airlines{padding:6px 5px}
  .schedule-mywork-today-logo{height:29px;padding:2px 3px}
  .schedule-mywork-today-logo img{max-width:100%;height:21px}
}

/* A11-169: temporary current/next work schedule toggle, alongside the menu back button. */
.schedule-view .schedule-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:58px}
.schedule-view .schedule-page-header .back-to-menu{margin-bottom:14px;flex:0 0 auto}
.schedule-next-month-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:114px;min-height:39px;margin:-4px 1px 9px 0;padding:8px 14px;border:1px solid #d1dee6;border-radius:10px;background:#ecf6fd;color:#24709a;font-size:13px;font-weight:850;letter-spacing:-.35px;cursor:pointer;transition:background-color .18s,border-color .18s,transform .18s}
.schedule-next-month-toggle span{font-size:20px;font-weight:600;line-height:12px}
.schedule-next-month-toggle:not(:disabled):active{transform:scale(.97)}
.schedule-next-month-toggle.is-next{border-color:#eaa977;background:#fff1e3;color:#b65f21}
.schedule-next-month-toggle:disabled{background:#f1f3f4;border-color:#e1e6e8;color:#aeb8bd;cursor:not-allowed;opacity:1}
.schedule-next-month-toggle:focus-visible{outline:3px solid #7caed0;outline-offset:2px}
@media(max-width:390px){.schedule-next-month-toggle{min-width:104px;min-height:37px;font-size:12px;padding:7px 10px}}

/* A11-205: 4 items on the first row, 5 evenly sized items on the second. */
.schedule-tabs{display:grid!important;grid-template-columns:repeat(20,minmax(0,1fr))!important;grid-template-rows:repeat(2,36px)!important;gap:4px 5px!important;padding:4px!important;}
.schedule-tabs>button{grid-column:span 5;min-width:0!important;height:36px!important;min-height:36px!important;padding:0 1px!important;}
.schedule-tabs>button:nth-child(n+5){grid-column:span 4;}
.schedule-tabs button[data-schedule-mode="badges"]{font-size:clamp(9px,2.55vw,11.5px)!important;}
.schedule-tabs button[data-schedule-mode="tenure"]{display:flex;align-items:center;justify-content:center;padding:0!important;}
.schedule-tenure-tuna{width:26px;height:26px;object-fit:contain;display:block;pointer-events:none;}
.schedule-tabs button[data-schedule-mode="tenure"].active{background:#fff3d7!important;box-shadow:0 1px 7px rgb(113 83 28 / .16)!important;}
.schedule-tenure-note{margin:0;padding:11px 14px;font-size:11px;line-height:1.6;color:#83949b;background:#f7fafb;border-top:1px solid #edf1f2;}
.schedule-tenure-dashboard .overtime-row b{white-space:nowrap;}
@media(max-width:370px){.schedule-tabs{gap:3px 3px!important}.schedule-tenure-tuna{width:23px;height:23px}.schedule-tabs button[data-schedule-mode="badges"]{font-size:9px!important}}
@media(min-width:650px){.schedule-tabs{gap:6px!important;padding:6px!important;grid-template-rows:repeat(2,40px)!important}.schedule-tabs>button{height:40px!important;min-height:40px!important}}

/* A11-205: a balanced 5 x 2 grid. Top row ends at 내일 근무자;
   bottom row has four icons plus the new 🧲 coworker ranking. */
.schedule-tabs{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,36px)!important;
  gap:4px!important;
  padding:4px!important;
}
.schedule-tabs>button,
.schedule-tabs>button:nth-child(n+5){
  grid-column:span 1!important;
  height:36px!important;
  min-height:36px!important;
  min-width:0!important;
  padding:0 1px!important;
}
.schedule-tabs button[data-schedule-mode="badges"]{font-size:clamp(9px,2.55vw,11px)!important;letter-spacing:-.55px!important}
.schedule-tabs button[data-schedule-mode="timeline"]{font-size:clamp(9px,2.4vw,11px)!important;letter-spacing:-.55px!important}
.schedule-tabs button[data-schedule-mode="cowork"]{font-size:25px!important;line-height:1!important}
.schedule-tabs button[data-schedule-mode="cowork"].active{background:#eaf6f7!important;box-shadow:0 1px 8px rgb(25 115 116 / .15)!important}
.schedule-cowork-dashboard{display:grid;gap:12px;padding-bottom:8px}
.schedule-cowork-panel{min-width:0;overflow:hidden}
.schedule-cowork-panel .overtime-row.is-zero{opacity:.65}
.schedule-cowork-panel .overtime-row b{color:#27808c}
@media(min-width:650px){
 .schedule-tabs{grid-template-rows:repeat(2,40px)!important;gap:6px!important;padding:6px!important}
 .schedule-tabs>button,.schedule-tabs>button:nth-child(n+5){height:40px!important;min-height:40px!important}
}
@media(max-width:370px){
 .schedule-tabs{gap:3px!important}
 .schedule-tabs button[data-schedule-mode="badges"],.schedule-tabs button[data-schedule-mode="timeline"]{font-size:9px!important;letter-spacing:-.65px!important}
}

/* A11-206: 🧲 picker and coworker ranking match overtime's narrow centered layout.
   Remove only redundant visual header, not ranking or work-overlap logic. */
.schedule-cowork-dashboard{width:calc(100% - 52px)!important;max-width:340px!important;margin:0 auto!important;gap:10px;}
.schedule-cowork-dashboard .schedule-mywork-title{font-size:23px;line-height:1;}
@media(max-width:370px){.schedule-cowork-dashboard{width:calc(100% - 36px)!important;}}

/* A11-208: readable description beside the employee picker.
   Keep the narrow, centered coworker list and avoid mobile overflow. */
.schedule-cowork-dashboard .schedule-mywork-select-row{
  grid-template-columns:minmax(0,1fr) minmax(95px,34%);
  gap:6px;
}
.schedule-cowork-dashboard .schedule-mywork-title{
  font-size:14px;
  line-height:1.35;
  letter-spacing:-.65px;
  white-space:nowrap;
}
@media(max-width:370px){
 .schedule-cowork-dashboard .schedule-mywork-title{font-size:12.5px;letter-spacing:-.85px;}
 .schedule-cowork-dashboard .schedule-mywork-select-row{grid-template-columns:minmax(0,1fr) minmax(92px,33%);gap:4px;}
}

/* A11-226: split overtime and transport rankings evenly, with identical rows. */
.overtime-transport-dashboard{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  width:100%!important;max-width:720px!important;
  gap:8px!important;margin:0 auto!important;align-items:start;
  padding:0 0 14px!important;
}
.overtime-transport-dashboard .overtime-panel-classic{min-width:0;width:100%;max-width:none}
.overtime-transport-dashboard .overtime-panel-head{
  padding:11px 8px!important;min-height:66px;gap:5px;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.overtime-transport-dashboard .overtime-panel-title{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.overtime-transport-dashboard .overtime-panel-title strong{font-size:clamp(12px,3.3vw,17px)!important;line-height:1.2;white-space:nowrap}
.overtime-transport-dashboard .overtime-panel-subtitle{display:block;font-size:clamp(9px,2.4vw,11px);line-height:1.25;color:#c36f74;font-weight:800;white-space:nowrap}
.overtime-transport-dashboard .overtime-average-label{
  color:#718188;font-size:clamp(8px,2vw,10px)!important;
  white-space:normal;line-height:1.3;margin:0;max-width:100%;
}
.overtime-transport-dashboard .overtime-panel .overtime-row{
  grid-template-columns:22px minmax(0,1fr) auto;
  gap:5px;min-height:46px;padding:8px 6px!important;
}
.overtime-transport-dashboard .overtime-row .overtime-rank{
  width:22px;height:26px;border-radius:7px;font-size:10px;
}
.overtime-transport-dashboard .overtime-row strong{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:clamp(10px,2.7vw,13px)!important;
}
.overtime-transport-dashboard .overtime-row b{
  font-size:clamp(10px,2.7vw,13px)!important;white-space:nowrap;
}
.overtime-transport-dashboard .overtime-panel:nth-child(2) .overtime-row b{color:#2f7966}
.overtime-transport-dashboard .overtime-panel:nth-child(2) .overtime-row b.missing{color:#9aa6aa}
@media(max-width:380px){
  .overtime-transport-dashboard{gap:6px!important}
  .overtime-transport-dashboard .overtime-panel-head{padding:9px 6px!important;min-height:63px}
  .overtime-transport-dashboard .overtime-panel .overtime-row{gap:3px;padding:7px 4px!important;grid-template-columns:18px minmax(0,1fr) auto}
  .overtime-transport-dashboard .overtime-row .overtime-rank{width:18px;height:23px;font-size:9px}
}


/* A11-230: full-document scrolling on results tabs, no nested scroll pane. */
.schedule-table-wrap.schedule-special-wrap.schedule-flow-wrap{
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  overscroll-behavior:auto!important;
}
/* Period controls are absent from these result views, so avoid a blank spacer. */
.schedule-nav[hidden]{display:none!important}

/* A11-230: slim single-line disclaimer under the tabs. */
.overtime-disclaimer-banner{
  box-sizing:border-box;
  width:100%;max-width:720px;
  margin:1px auto 9px!important;
  padding:6px 8px;
  border:1px solid #df7777;
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;gap:5px;
  background:#ffe2e2;
  box-shadow:0 2px 7px rgba(170,50,50,.065);
}
.overtime-disclaimer-mark{
  flex:0 0 auto;
  display:inline-grid;place-items:center;
  width:16px;height:16px;
  border-radius:50%;
  background:#d23333;color:#fff;
  font-weight:900;font-size:11px;line-height:1;
}
.overtime-disclaimer-text{
  flex:0 1 auto;
  min-width:0;
  color:#a32b2b;
  font-size:clamp(6px,2vw,11px);
  line-height:1.2;
  font-weight:800;
  letter-spacing:-.12px;
  white-space:nowrap;
  text-align:center;
}
@media(max-width:390px){
  .overtime-disclaimer-banner{gap:4px;padding:6px 6px;border-radius:9px;margin-bottom:8px!important}
  .overtime-disclaimer-mark{width:14px;height:14px;font-size:10px}
}

/* A11-254: transport trips + amount on a single line within the split panel. */
.overtime-transport-dashboard .overtime-panel:nth-child(2) .overtime-row{gap:3px}
.overtime-transport-dashboard .overtime-panel:nth-child(2) .overtime-row b{
  font-size:clamp(9px,2.45vw,12px)!important;
  letter-spacing:-.35px;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
@media(max-width:380px){
  .overtime-transport-dashboard .overtime-panel:nth-child(2) .overtime-row{gap:2px}
  .overtime-transport-dashboard .overtime-panel:nth-child(2) .overtime-row strong{font-size:10px!important;letter-spacing:-.2px}
  .overtime-transport-dashboard .overtime-panel:nth-child(2) .overtime-row b{font-size:9px!important;letter-spacing:-.55px}
}
