:root{font-family:system-ui,-apple-system,'Noto Sans KR',sans-serif;color:#172033;background:#f4f7fb}*{box-sizing:border-box}body{margin:0}header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:12px 5vw;background:#102a43;color:white}a{text-decoration:none;color:inherit}.brand{font-size:22px;font-weight:800;padding:8px 0}nav{display:flex;gap:5px;align-items:center;flex-wrap:wrap}nav a{padding:9px 12px;border:1px solid transparent;border-radius:8px;color:#d8e5ef;font-weight:700;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}nav a:hover,nav a:focus-visible{background:#e9f7f6;color:#075c65;border-color:#87cfca;transform:translateY(-1px);outline:none}nav a.active{background:#fff;color:#102a43;border-color:#fff;box-shadow:0 3px 10px #0003}nav a.logout-link:hover,nav a.logout-link:focus-visible{background:#ffe7e7;color:#a51e2b;border-color:#ffb8bf}main{max-width:1180px;margin:32px auto;padding:0 20px}.card{background:white;border:1px solid #e4e9f0;border-radius:16px;padding:22px;box-shadow:0 8px 28px #17324d0b}.login,.password-card{max-width:430px;margin:10vh auto}.login h1,.password-card h1{margin-top:0}label{display:grid;gap:7px;font-weight:650;margin:14px 0}input,textarea,select{width:100%;padding:12px 13px;border:1px solid #ccd5df;border-radius:9px;font:inherit}button,.button{border:0;border-radius:9px;padding:11px 16px;background:#087e8b;color:white;font-weight:750;cursor:pointer;display:inline-block}.title{display:flex;justify-content:space-between;align-items:center}.title h1{margin-bottom:2px}.filters{display:grid;grid-template-columns:1fr 180px auto;gap:10px;margin:22px 0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.schedule-head,.actions{display:flex;justify-content:space-between;align-items:center}.badge{background:#fff4cc;color:#765b00;padding:5px 9px;border-radius:99px;font-size:13px}.badge.ok{background:#dff7e9;color:#12633a}.progress{height:8px;background:#e8edf3;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:#19a39b}.actions{border-top:1px solid #edf0f4;padding-top:12px}.actions form{margin:0}.link{background:none;color:#087e8b;padding:0}.danger{color:#bd2c2c}.form{margin:18px 0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 18px}.table-wrap{overflow:auto;background:white;border-radius:14px}table{border-collapse:collapse;width:100%}th,td{padding:12px;border-bottom:1px solid #e7ebf0;text-align:left;white-space:nowrap}.flash{background:#dff7e9;padding:12px 15px;border-radius:9px;margin-bottom:15px}@media(max-width:800px){header{align-items:flex-start;gap:12px}nav{gap:4px;font-size:13px}nav a{padding:7px 8px}.cards{grid-template-columns:1fr}.filters,.grid{grid-template-columns:1fr}.title{align-items:flex-start;gap:12px}.schedule{padding:17px}main{margin-top:20px;padding:0 14px}}
.gantt-filter{display:flex;align-items:end;gap:10px;margin:18px 0;flex-wrap:wrap}.gantt-filter label{display:flex;align-items:center;gap:6px;margin:0}.gantt-filter label input{width:auto}.gantt-filter>input{width:auto}.gantt-shell{display:grid;grid-template-columns:210px minmax(980px,1fr);padding:0;overflow:auto;max-height:72vh}.gantt-left{position:sticky;left:0;z-index:2;background:#fff;border-right:1px solid #dfe5ec;border-bottom:1px solid #e8edf2;padding:10px 12px}.gantt-left-head{top:0;z-index:4;background:#002060;color:#fff}.schedule-label{display:flex;flex-direction:column;min-height:108px;justify-content:center}.schedule-label span{font-weight:750}.schedule-label small{color:#66788a}.timeline{display:grid;grid-template-columns:repeat(var(--days),54px);position:relative;min-width:calc(var(--days)*54px)}.timeline-row{min-height:108px;grid-template-rows:26px 56px 26px}.day-head{position:sticky;top:0;z-index:3;text-align:center;background:#002060;color:#fff;border-right:1px solid #40577a;border-bottom:1px solid #d9e1e8;padding:6px 0}.day-head small{display:block;color:#fff}.day-head.weekend,.day-head.holiday{background:#dc3232;color:#fff}.day-cell{grid-row:1/4;border-right:1px solid #edf0f4;border-bottom:1px solid #e4e9ee}.day-cell.weekend,.day-cell.holiday{background:#fff5f2}.day-head.today{box-shadow:inset 3px 0 #f2a900,inset -3px 0 #f2a900,inset 0 3px #f2a900}.day-cell.today{position:relative;z-index:2;pointer-events:none;box-shadow:inset 3px 0 #f2a900,inset -3px 0 #f2a900}.gantt-shell .timeline-row:last-child .day-cell.today{box-shadow:inset 3px 0 #f2a900,inset -3px 0 #f2a900,inset 0 -3px #f2a900}.gantt-bar{grid-row:2;z-index:1;align-self:center;min-height:48px;border-radius:8px;padding:7px 9px;margin:4px 2px;color:#102a43;overflow:hidden;display:flex;flex-direction:column;justify-content:center;white-space:nowrap}.gantt-day-label{z-index:3;overflow:hidden;padding:4px 3px;white-space:nowrap;text-align:center;font-size:11px;font-weight:800;text-overflow:ellipsis;line-height:18px}.gantt-day-hotel{grid-row:1;color:#7a4c00}.gantt-day-bottom{grid-row:3;color:#28546f}.gantt-bar span{font-size:12px;overflow:hidden;text-overflow:ellipsis}.gantt-bar.kwse{background:#5b8ee1}.gantt-bar.krek{background:#eebc47}.gantt-bar.kwjd{background:#e8d7d9}.gantt-bar.krke{background:#a4c48e}.gantt-bar.krbk{background:#db9594}.gantt-bar.krjn{background:#b9afdc}.gantt-bar.krkj{background:#69b9cd}.gantt-bar.hk{background:#73e646}.gantt-bar.default{background:#002060;color:#fff}.gantt-empty{grid-column:1/-1;padding:32px}.gantt-help{color:#66788a;font-size:14px}.import-notice{background:#eef7ff;border-left:4px solid #5b8ee1;padding:12px 14px;border-radius:8px;color:#294b68}@media(max-width:800px){.gantt-filter{display:grid;grid-template-columns:1fr 1fr}.gantt-filter button{grid-column:1/-1}.gantt-shell{grid-template-columns:165px minmax(980px,1fr)}.gantt-left{padding:8px}.gantt-bar{min-height:44px}}

.hotel-admin-layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(640px,1fr);gap:18px;align-items:start}.hotel-admin-form-card{position:sticky;top:18px}.hotel-admin-form-card h2{margin-top:0}.hotel-admin-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hotel-admin-form label{margin:0}.hotel-admin-form label:nth-of-type(1),.hotel-admin-form label:nth-of-type(4),.hotel-address-field{grid-column:1/-1}.hotel-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.hotel-search-form{display:flex;gap:8px;margin-bottom:14px}.hotel-search-form input{flex:1}.hotel-admin-table-wrap{overflow:auto;max-height:68vh}.hotel-admin-table{width:100%;border-collapse:collapse}.hotel-admin-table th,.hotel-admin-table td{padding:10px;border-bottom:1px solid #e1e7ed;text-align:left;vertical-align:middle}.hotel-admin-table th{position:sticky;top:0;background:#f4f7f9;z-index:1}.hotel-admin-table td small{display:block;color:#66788a;margin-top:3px}.hotel-row-actions{display:flex;gap:6px}.hotel-row-actions form{margin:0}.hotel-row-actions button{padding:7px 10px}.danger-button{background:#b42318}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:0 14px;white-space:nowrap}@media(max-width:1050px){.hotel-admin-layout{grid-template-columns:1fr}.hotel-admin-form-card{position:static}.hotel-admin-list-card{min-width:0}}@media(max-width:600px){.hotel-admin-form{grid-template-columns:1fr}.hotel-admin-form label{grid-column:1!important}.hotel-search-form{flex-wrap:wrap}.hotel-search-form input{flex-basis:100%}}

.board-inline-item{display:inline;max-width:100%;min-width:0;height:auto;margin:0;padding:0;border:0;background:transparent!important;color:inherit;font:inherit;font-weight:800;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.board-inline-item:not(:disabled){cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}.board-inline-item:not(:disabled):hover,.board-inline-item:not(:disabled):focus-visible{text-decoration-color:currentColor;outline:none}.board-inline-item:disabled{opacity:1;cursor:default}.board-add-item{opacity:.38!important;font-size:10px}.gantt-day-hotel,.gantt-day-bottom{display:flex;align-items:center;gap:3px}.gantt-day-hotel{justify-content:center}.gantt-day-bottom{justify-content:space-between}.board-day-guides,.board-day-transports{display:flex;min-width:0;overflow:hidden}.board-day-guides{color:#28546f}.board-day-transports{color:#087e8b}.board-edit-dialog{width:min(560px,calc(100vw - 28px));max-height:90vh;margin:auto;padding:0;border:0;border-radius:17px;box-shadow:0 28px 80px #07182766;color:#172033}.board-edit-dialog::backdrop{background:#102a437d;backdrop-filter:blur(2px)}.board-transport-dialog{width:min(780px,calc(100vw - 28px))}.board-edit-head{display:flex;justify-content:space-between;gap:16px;padding:20px 22px 16px;background:linear-gradient(120deg,#102a43,#164f61);color:#fff}.board-edit-head h2{margin:0}.board-edit-head p{margin:4px 0 0;color:#d3e3e9}.board-edit-head .dialog-x{background:#ffffff20;color:#fff}.board-edit-body{display:grid;gap:14px;padding:20px 22px}.board-edit-body label{margin:0}.board-edit-date-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.board-edit-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid #e5eaf0}.board-edit-actions>span{flex:1}.transport-manager-grid{grid-template-columns:1fr 1fr}.transport-manager-grid>label:nth-of-type(3),.transport-note-field,#board-transport-status{grid-column:1/-1}.transport-lookup-cell{display:flex;align-items:end}.transport-lookup-cell button{width:100%}.transport-manager-grid .lookup-status{margin:0;min-height:22px}@media(max-width:600px){.board-edit-date-row,.transport-manager-grid{grid-template-columns:1fr}.transport-manager-grid>*{grid-column:1!important}}

/* 상단 통합 메뉴 */
header{z-index:20;padding:10px 5vw}.top-nav{display:flex;gap:8px;align-items:center;flex-wrap:nowrap}.top-nav>a,.menu summary{display:block;padding:10px 14px;border:1px solid #ffffff35;border-radius:9px;color:#e8f1f7;font-weight:750;cursor:pointer;list-style:none}.top-nav>a:hover,.menu summary:hover,.top-nav>a.active,.menu[open] summary{background:#fff;color:#102a43;transform:none}.menu[open]~.monitor-link.active{background:transparent;color:#e8f1f7;border-color:#ffffff35;box-shadow:none}.menu{position:relative}.menu summary::-webkit-details-marker{display:none}.menu-panel{position:absolute;right:0;top:calc(100% + 9px);width:205px;padding:8px;background:#fff;border:1px solid #dce3eb;border-radius:12px;box-shadow:0 16px 36px #0b203850;display:grid}.menu-panel a{padding:11px 12px;border-radius:8px;color:#223447;font-weight:700}.menu-panel a:hover,.menu-panel a.active{background:#e8f5f5;color:#08727e;transform:none}.menu-panel .logout-link{border-top:1px solid #e8edf2;border-radius:0;margin-top:5px;color:#a32632}.menu-panel .logout-link:hover{background:#fff0f1}.monitor-link:before{content:'●';color:#5ee6a8;margin-right:7px}

/* 본문 카드보다 상단 드롭다운 메뉴를 항상 앞에 표시 */
.site-header{z-index:100}.site-header .menu-panel{z-index:101}

/* 현장 모니터링 */
.monitor-title,.tour-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.monitor-title h1{margin-bottom:3px}.monitor-title p{margin-top:0;color:#637386}.monitor-guide{display:flex;justify-content:space-between;align-items:center;margin:14px 0;padding:15px 18px;background:#eaf8f4;border-color:#b9e4d8}.monitor-list{display:grid;gap:18px}.tour-monitor{padding:0;overflow:hidden}.tour-head{padding:20px 22px;background:linear-gradient(120deg,#102a43,#164f61);color:#fff}.tour-head h2{margin:7px 0 3px}.tour-head p{margin:0;color:#d3e3e9}.tour-code{display:inline-block;padding:4px 9px;border-radius:99px;background:#ffffff22;font-size:13px;font-weight:800}.tour-progress{display:grid;place-items:center;min-width:76px;height:76px;border:2px solid #64d5b5;border-radius:50%}.tour-progress b{font-size:22px}.tour-progress span{font-size:12px}.step-list{display:grid}.monitor-step{padding:17px 22px;border-top:1px solid #e7edf2;transition:background .2s}.monitor-step.done{background:#effaf5}.step-check{display:grid;grid-template-columns:26px 64px 1fr;align-items:center;gap:10px;margin:0;cursor:pointer}.step-check input{width:22px;height:22px;margin:0;accent-color:#11977f}.step-time{font-variant-numeric:tabular-nums;color:#087e8b;font-weight:850}.monitor-step.done .step-check strong{text-decoration:line-through;color:#5e766d}.issue-entry{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin:11px 0 7px 36px}.issue-entry textarea{resize:vertical;min-height:54px}.mic-button{min-width:52px;background:#e9f2f6;color:#163b4d;font-size:20px}.mic-button.listening{background:#e5314f;color:#fff;animation:pulse 1s infinite}.save-step{align-self:stretch}.step-status{display:block;margin-left:36px;color:#7a8996}.empty-step{padding:0 22px 18px;color:#71808d}@keyframes pulse{50%{opacity:.55}}
@media(max-width:800px){header{align-items:center}.brand{font-size:19px}.top-nav>a,.menu summary{padding:9px 11px;font-size:14px}.monitor-title{align-items:flex-start}.monitor-title h1{font-size:25px}.monitor-guide{display:grid;gap:4px}.tour-head{align-items:flex-start;padding:17px}.tour-head h2{font-size:19px}.tour-progress{min-width:64px;height:64px}.monitor-step{padding:15px 14px}.step-check{grid-template-columns:24px 54px 1fr;gap:7px}.issue-entry{grid-template-columns:1fr 48px;margin-left:31px}.issue-entry textarea{grid-column:1/-1}.save-step{min-height:46px}.step-status{margin-left:31px}.menu-panel{position:fixed;right:12px;top:66px;width:min(260px,calc(100vw - 24px))}}
.menu.section-active summary{background:#fff;color:#102a43}
.settings-menu summary{width:44px;height:42px;display:grid!important;place-items:center!important;padding:0!important}.settings-gear{font-size:23px;line-height:1}.settings-panel{width:180px}.settings-panel a.settings-strong-divider{border-top:2px solid #aebbc7;border-radius:0;margin-top:7px;padding-top:12px}.top-nav.submenu-open>a.active,.top-nav.submenu-open>.menu.section-active:not([open]) summary{background:transparent;color:#e8f1f7;border-color:#ffffff35;box-shadow:none}.top-nav.submenu-open>.menu[open] summary{background:#fff;color:#102a43}
.user-admin-link:before{content:'◆';color:#f3c969;margin-right:7px}.logout-top{color:#ffd9dc!important;border-color:#ffffff35!important}.permission-note{display:flex;gap:12px;align-items:center;margin:16px 0;padding:15px 18px;background:#f0f6ff;border-color:#cbdcf2}.permission-note span{color:#52677d}.user-form{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:14px;align-items:end}.user-form label{margin:0}.user-form button{min-height:45px}.role-chip{display:inline-block;padding:5px 10px;border-radius:99px;font-size:13px;font-weight:800;white-space:nowrap}.role-chip.role-superadmin{background:#302b63;color:#fff}.role-chip.role-admin{background:#dcecff;color:#174e82}.role-chip.role-staff{background:#e5f7ef;color:#176442}.role-chip.role-guide{background:#fff0cf;color:#755200}.protected-user{color:#71808d;font-size:13px;font-weight:700}.delete-user{padding:7px 11px;background:#fff0f1;color:#ad2635;border:1px solid #ffc9cf}.user-table form{margin:0}.issue-entry.read-only{grid-template-columns:1fr}.issue-entry.read-only textarea{background:#f6f8fa;color:#425466}
@media(max-width:900px){.user-form{grid-template-columns:1fr 1fr}.user-form button{grid-column:1/-1}.permission-note{align-items:flex-start;flex-direction:column}}
.role-edit-form{display:flex;gap:7px;align-items:center;min-width:220px}.role-edit-form select{min-width:110px;padding:8px 9px}.role-edit-form button{white-space:nowrap;padding:8px 10px;background:#176b87}.user-table td:last-child{min-width:85px}

/* 모바일 상단 메뉴 */
@media(max-width:800px){
  header{display:grid;grid-template-columns:1fr;gap:7px;padding:8px 10px;align-items:stretch}
  .brand{font-size:18px;line-height:1.2;padding:2px 4px}
  .top-nav{width:100%;display:grid;gap:5px;font-size:12px;align-items:stretch}
  .top-nav.role-superadmin,.top-nav.role-admin{grid-template-columns:minmax(0,1.08fr) minmax(0,1.08fr) minmax(0,.86fr) minmax(0,.94fr) 42px}
  .top-nav.role-staff{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.9fr) 42px}
  .top-nav.role-guide{grid-template-columns:minmax(0,1fr) 42px}
  .top-nav>a,.top-nav .menu summary{width:100%;height:40px;min-width:0;display:flex;align-items:center;justify-content:center;padding:7px 4px;font-size:12px;line-height:1.1;text-align:center;white-space:nowrap;background:#e8eef3;color:#111827;border-color:#b9c7d3;box-shadow:none}
  .top-nav>a:hover,.top-nav>a:focus-visible,.top-nav>a.active,.top-nav .menu summary:hover,.top-nav .menu summary:focus-visible,.top-nav .menu[open] summary,.top-nav .menu.section-active summary{background:#fff;color:#111827;border-color:#fff;box-shadow:0 2px 8px #0002}
  .top-nav.submenu-open>a.active,.top-nav.submenu-open>.menu.section-active:not([open]) summary{background:#e8eef3;color:#111827;border-color:#b9c7d3;box-shadow:none}
  .top-nav .monitor-link:before,.top-nav .user-admin-link:before{margin-right:4px;font-size:9px}
  .top-nav .settings-menu summary{width:42px;height:40px}
  .settings-gear{font-size:21px}
  .menu-panel{position:fixed;top:88px;right:auto;width:min(250px,calc(100vw - 20px));max-height:calc(100vh - 100px);overflow-y:auto;padding:7px;border-radius:11px}
  .package-menu .menu-panel{left:10px}
  .itinerary-menu .menu-panel{left:50%;right:auto;transform:translateX(-50%)}
  .settings-menu .menu-panel{left:auto;right:10px;width:min(210px,calc(100vw - 20px))}
  .menu-panel a{padding:12px;font-size:14px;text-align:left}
  main{margin-top:16px;padding:0 12px}
}

/* 가이드 모바일 메뉴: 홈·패키지·모니터링·설정을 한 줄에 균등 배치 */
@media(max-width:800px){.top-nav.role-guide{display:grid!important;grid-template-columns:minmax(54px,.7fr) minmax(112px,1.35fr) minmax(92px,1fr) 42px;gap:5px}.top-nav.role-guide>a,.top-nav.role-guide>.menu{width:100%;min-width:0}.top-nav.role-guide>.menu summary{width:100%;min-width:0;padding-left:5px;padding-right:5px}.top-nav.role-guide>.settings-menu,.top-nav.role-guide>.settings-menu summary{width:42px;min-width:42px}}
@media(max-width:360px){.top-nav.role-guide{grid-template-columns:minmax(44px,.65fr) minmax(94px,1.3fr) minmax(78px,1fr) 38px;gap:3px}.top-nav.role-guide>.settings-menu,.top-nav.role-guide>.settings-menu summary{width:38px;min-width:38px}}

/* 예약보드 코드별 색상 환경설정 */
.board-settings-button{background:#314b63}.board-settings-dialog{width:min(900px,calc(100vw - 28px));max-height:88vh;margin:auto;padding:0;border:0;border-radius:17px;box-shadow:0 28px 80px #07182766;color:#172033}.board-settings-dialog::backdrop{background:#102a437d;backdrop-filter:blur(2px)}.board-settings-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px;background:#fff;border-bottom:1px solid #e5eaf0}.board-settings-head h2{margin:0}.board-settings-head p{margin:4px 0 0;color:#657689}.board-settings-list{display:grid;gap:0;padding:8px 22px;max-height:62vh;overflow:auto}.board-color-row{display:grid;grid-template-columns:minmax(130px,220px) 1fr;align-items:center;gap:18px;padding:13px 0;border-bottom:1px solid #edf0f4}.board-color-row>strong{overflow-wrap:anywhere}.color-palette{display:flex;flex-wrap:wrap;gap:8px}.color-choice{display:block;margin:0;cursor:pointer}.color-choice input{position:absolute;opacity:0;pointer-events:none}.color-choice span{display:block;width:31px;height:31px;border-radius:8px;background:var(--choice-color);border:2px solid #fff;box-shadow:0 0 0 1px #bac5cf}.color-choice input:checked+span{box-shadow:0 0 0 3px #102a43;transform:scale(1.08)}.color-choice input:focus-visible+span{outline:3px solid #54b8c2;outline-offset:3px}.board-settings-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:9px;padding:14px 22px;background:#fff;border-top:1px solid #e5eaf0}.board-settings-empty{padding:24px;text-align:center;color:#71808d}@media(max-width:800px){.board-color-row{grid-template-columns:1fr;gap:9px}.board-settings-actions{justify-content:stretch}.board-settings-actions button{flex:1}}
@media(max-width:360px){
  .brand{font-size:17px}
  .top-nav{gap:3px}
  .top-nav>a,.top-nav .menu summary{font-size:11px;padding-left:2px;padding-right:2px}
  .top-nav.role-superadmin,.top-nav.role-admin{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.78fr) minmax(0,.9fr) 38px}
  .top-nav .settings-menu summary{width:38px}
}

/* 일정 수정 · 이동수단 */
.edit-title p,.transport-heading p{margin:4px 0 0;color:#657689}.secondary-button{background:#e8eef3;color:#24384c}.edit-basic{margin-bottom:18px}.edit-basic .wide-field,.transport-fields .wide-field{grid-column:1/-1}.edit-basic textarea{resize:vertical}.edit-basic input[readonly]{background:#f2f5f8;color:#40566b}.transport-section{margin-bottom:90px}.transport-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.transport-heading h2{margin:0}.transport-list{display:grid;gap:14px}.transport-item{border:1px solid #dbe3eb;border-radius:13px;padding:16px;background:#f9fbfd}.transport-item-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.remove-transport{padding:7px 11px;background:#fff0f1;color:#ad2635;border:1px solid #ffc9cf}.transport-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 12px;align-items:end}.transport-fields label{margin:9px 0}.lookup-cell{display:flex;align-items:end;padding-bottom:9px;height:100%}.korail-lookup{width:100%;min-height:45px;background:#155b82}.korail-lookup:disabled{background:#c7d1da;color:#5f6f7e;cursor:not-allowed}.lookup-status{min-height:21px;margin:5px 0 0;color:#657689;font-size:13px}.lookup-status.success{color:#087e60;font-weight:700}.lookup-status.error{color:#b12837;font-weight:700}.transport-empty{padding:26px;border:1px dashed #b8c6d3;border-radius:12px;text-align:center;color:#66798b}.edit-save-bar{position:sticky;bottom:12px;display:flex;justify-content:flex-end;pointer-events:none}.edit-save-bar button{min-width:230px;min-height:52px;box-shadow:0 10px 30px #0b304c45;pointer-events:auto}.phone-edit-form{display:flex;gap:6px;align-items:center}.phone-edit-form input{min-width:150px;padding:8px 9px}.phone-edit-form button{padding:8px 10px;white-space:nowrap;background:#176b87}.user-form{grid-template-columns:repeat(5,1fr) auto}
@media(max-width:900px){.transport-fields{grid-template-columns:1fr 1fr}.transport-heading{align-items:flex-start}.user-form{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.edit-title,.transport-heading{display:grid}.transport-heading button{width:100%}.transport-fields{grid-template-columns:1fr}.transport-fields .wide-field{grid-column:auto}.lookup-cell{padding-bottom:4px}.transport-section{padding:16px}.transport-item{padding:13px}.edit-save-bar{bottom:8px}.edit-save-bar button{width:100%}.phone-edit-form input{min-width:130px}}

/* 날짜별 숙소 · 코레일 공개 시간표 */
.hotel-section{margin-bottom:18px}.hotel-list{display:grid;gap:14px}.hotel-item{border:1px solid #dbe3eb;border-radius:13px;padding:16px;background:#f9fbfd}.remove-hotel{padding:7px 11px;background:#fff0f1;color:#ad2635;border:1px solid #ffc9cf}.hotel-fields{display:grid;grid-template-columns:minmax(110px,.65fr) minmax(240px,1.6fr) minmax(130px,.8fr) minmax(150px,.9fr) minmax(180px,1fr);gap:0 12px;align-items:end}.hotel-fields label{margin:9px 0}.hotel-fields>label:nth-child(1){grid-column:span 2}.hotel-fields>label:nth-child(2){grid-column:span 3}.hotel-fields .wide-field{grid-column:1/-1}.hotel-breakfast-field>span{display:flex;align-items:center;gap:9px;min-height:49px;padding:0 15px;border:1px solid #cbd6e2;border-radius:10px;background:#fff;font-weight:750}.hotel-breakfast-field>span input{width:22px;height:22px;margin:0;padding:0}.timetable-upload{display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,330px) auto auto;align-items:center;gap:10px;margin:16px 0}.timetable-upload p{margin:4px 0 0;color:#657689}.timetable-upload input{padding:8px}.timetable-upload a{color:#087e8b;font-weight:750;white-space:nowrap}
@media(max-width:900px){.hotel-fields{grid-template-columns:1fr 1fr}.hotel-fields>label:nth-child(1),.hotel-fields>label:nth-child(2){grid-column:auto}.timetable-upload{grid-template-columns:1fr 1fr}.timetable-upload>div{grid-column:1/-1}}
@media(max-width:600px){.hotel-fields{grid-template-columns:1fr}.hotel-fields .wide-field{grid-column:auto}.hotel-section,.hotel-item{padding:13px}.timetable-upload{grid-template-columns:1fr}.timetable-upload>*{grid-column:1!important}.timetable-upload button{width:100%}}

/* 일정 수정 팝업 · KTX 자동 갱신 상태 */
.timetable-status-card{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:16px 0}.timetable-status-card p{margin:5px 0}.timetable-status-card small{color:#66788a}.timetable-status-card details{min-width:190px}.timetable-status-card summary{cursor:pointer;color:#087e8b;font-weight:750;text-align:right}.timetable-manual-form{position:absolute;right:max(20px,calc((100vw - 1180px)/2 + 20px));z-index:4;width:min(520px,calc(100vw - 28px));margin-top:10px;padding:15px;background:#fff;border:1px solid #d8e1e9;border-radius:12px;box-shadow:0 15px 35px #17324d30;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:9px}.timetable-manual-form input{padding:8px}.timetable-manual-form a{color:#087e8b;font-weight:750;white-space:nowrap}.timetable-state.current{color:#087e60}.timetable-state.updated{color:#1467a1;font-weight:750}.timetable-state.error{color:#a52b38}.edit-manager-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0 88px}.manager-launch{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;text-align:left;color:#172033;background:#fff;border:1px solid #dbe3eb}.manager-launch:hover{border-color:#70bfc2;box-shadow:0 10px 30px #17324d18}.manager-icon{font-size:30px}.manager-launch b{display:block;font-size:18px}.manager-launch small{display:block;margin-top:3px;color:#66788a;font-weight:500}.manager-launch em{font-style:normal;background:#e7f6f4;color:#087269;padding:6px 10px;border-radius:99px}.management-dialog{width:min(1080px,calc(100vw - 28px));max-height:88vh;margin:auto;padding:0;border:0;border-radius:16px;box-shadow:0 28px 80px #07182766;color:#172033}.management-dialog::backdrop{background:#102a437d;backdrop-filter:blur(2px)}.dialog-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px 15px;background:#fff;border-bottom:1px solid #e5eaf0}.dialog-head h2{margin:0}.dialog-head p{margin:4px 0 0;color:#657689}.dialog-x{width:42px;height:42px;padding:0;background:#edf2f6;color:#31475b;font-size:27px;line-height:1}.dialog-toolbar{display:flex;justify-content:flex-end;padding:14px 20px 0}.management-dialog>.hotel-list,.management-dialog>.transport-list,.management-dialog>.transport-empty{margin:14px 20px}.dialog-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;padding:14px 20px;background:#fff;border-top:1px solid #e5eaf0}.dialog-actions button{min-width:150px}
.timetable-current{color:#25394d}.timetable-current strong{color:#087269}.timetable-status-card .auto-check-note{min-width:0;margin-top:7px}.timetable-status-card .auto-check-note summary{display:inline-block;text-align:left;color:#71808d;font-size:13px;font-weight:650}.timetable-status-card .auto-check-note p{max-width:680px;padding:9px 11px;background:#f4f6f8;border-radius:8px;color:#66788a;font-size:13px}
@media(max-width:700px){.timetable-status-card{display:grid}.timetable-status-card summary{text-align:left}.timetable-manual-form{position:relative;right:auto;width:100%;grid-template-columns:1fr;margin-top:10px}.edit-manager-grid{grid-template-columns:1fr;margin-bottom:84px}.manager-launch{grid-template-columns:auto 1fr auto;padding:16px}.management-dialog{width:100vw;max-width:none;max-height:94vh;margin:auto 0 0;border-radius:16px 16px 0 0}.dialog-head{padding:16px}.dialog-head h2{font-size:21px}.dialog-head p{font-size:13px}.dialog-toolbar{padding:12px 14px 0}.dialog-toolbar button{width:100%}.management-dialog>.hotel-list,.management-dialog>.transport-list,.management-dialog>.transport-empty{margin:12px}.dialog-actions{padding:12px}.dialog-actions button{width:100%}}

/* 예약 보드 여행정보 팝업 */
.gantt-bar{width:auto;border:0;text-align:left;font:inherit;cursor:pointer}.gantt-bar:hover,.gantt-bar:focus-visible{filter:brightness(.94);box-shadow:0 4px 12px #102a4333;outline:2px solid #fff;outline-offset:-3px}.reservation-detail-dialog{width:min(760px,calc(100vw - 28px));max-height:88vh;margin:auto;padding:0;border:0;border-radius:17px;box-shadow:0 28px 80px #07182766;color:#172033}.reservation-detail-dialog::backdrop{background:#102a437d;backdrop-filter:blur(2px)}.reservation-dialog-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 24px;background:linear-gradient(120deg,#102a43,#164f61);color:#fff}.reservation-dialog-head h2{margin:8px 0 3px}.reservation-dialog-head p{margin:0;color:#d3e3e9}.reservation-dialog-x{width:42px;height:42px;flex:0 0 42px;padding:0;background:#ffffff20;color:#fff;font-size:28px;line-height:1}.reservation-detail-body{display:grid;gap:18px;padding:22px 24px}.guide-detail-card{padding:17px 19px;background:#eaf8f4;border:1px solid #b9e4d8;border-radius:12px}.guide-detail-card h3,.reservation-detail-section h3{margin:0 0 10px}.guide-detail-card div{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.guide-detail-card b{font-size:19px}.guide-detail-card a{color:#087e8b;font-weight:800}.guide-detail-card span{color:#71808d}.reservation-item-list{display:grid;gap:9px}.reservation-item-list article{display:grid;grid-template-columns:145px 1fr;gap:14px;padding:13px 15px;background:#f7f9fb;border:1px solid #e1e7ed;border-radius:11px}.reservation-item-list time{color:#087e8b;font-weight:800;font-variant-numeric:tabular-nums}.reservation-item-list article>div{display:grid;gap:3px}.reservation-item-list span,.reservation-item-list small{color:#5f7182}.reservation-empty{padding:20px;border:1px dashed #bcc8d3;border-radius:11px;text-align:center;color:#71808d}.reservation-dialog-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;padding:13px 24px;background:#fff;border-top:1px solid #e5eaf0}.reservation-dialog-actions button{min-width:130px}
@media(max-width:600px){.reservation-detail-dialog{width:100vw;max-width:none;max-height:94vh;margin:auto 0 0;border-radius:16px 16px 0 0}.reservation-dialog-head{padding:17px}.reservation-dialog-head h2{font-size:20px}.reservation-detail-body{padding:15px}.reservation-item-list article{grid-template-columns:1fr;gap:5px;padding:12px}.reservation-dialog-actions{padding:12px}.reservation-dialog-actions button{width:100%}}
.day-detail-trigger{width:auto;border:0;border-radius:0;font:inherit;cursor:pointer}.day-detail-trigger:hover,.day-detail-trigger:focus-visible{filter:brightness(1.18);box-shadow:inset 0 0 0 3px #67d9e2;outline:none}.day-detail-dialog{width:min(860px,calc(100vw - 28px));max-height:88vh;margin:auto;padding:0;border:0;border-radius:17px;box-shadow:0 28px 80px #07182766;color:#172033}.day-detail-dialog::backdrop{background:#102a437d;backdrop-filter:blur(2px)}.day-detail-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;background:linear-gradient(120deg,#102a43,#164f61);color:#fff}.day-detail-head span{font-size:11px;font-weight:850;letter-spacing:.14em;color:#8fdcff}.day-detail-head h2{margin:5px 0 0}.day-detail-body{display:grid;gap:12px;padding:20px 22px}.day-project-card{overflow:hidden;border:1px solid #dce5eb;border-radius:13px}.day-project-card>header{display:flex;align-items:center;gap:9px;padding:12px 15px;background:#eef6f7}.day-project-card>header strong{font-size:18px;color:#123f5d}.day-project-card>header span{font-weight:800;color:#617785}.day-project-card>section{display:grid;grid-template-columns:115px 1fr;gap:5px 14px;padding:11px 15px;border-top:1px solid #e7edf1}.day-project-card h3{grid-row:1/span 20;margin:2px 0;font-size:14px;color:#287271}.day-project-card p{margin:1px 0}.day-project-card p small{display:block;margin-top:2px;color:#66788a}.day-project-card a{color:#087e8b;font-weight:800}.day-detail-missing,.day-detail-empty{color:#87949f}.day-detail-empty{text-align:center;padding:35px 10px}@media(max-width:600px){.day-detail-dialog{width:100vw;max-width:none;max-height:94vh;margin:auto 0 0;border-radius:16px 16px 0 0}.day-detail-head,.day-detail-body{padding:16px}.day-project-card>section{grid-template-columns:1fr}.day-project-card h3{grid-row:auto;margin-bottom:3px}}
.schedule-clickable{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.schedule-clickable:hover,.schedule-clickable:focus-visible{transform:translateY(-2px);border-color:#102a43;box-shadow:0 0 0 2px #102a43,0 12px 30px #17324d26;outline:none}.schedule-clickable .actions{cursor:default}
.schedule.import-updated{background:#fff8d9;border-color:#eadb91}.schedule.import-new{background:#e9f8ec;border-color:#aed8b7}.schedule.import-missing{background:#fdebed;border-color:#ebb7bd}.import-code-label{color:#536170}.content-edit-link{margin-left:auto;color:#087e8b;font-weight:750}.title-actions{display:flex;align-items:center;gap:9px}.title-actions form{margin:0}.purge-missing-button{background:#bd3441}.purge-missing-button:disabled{background:#b9c1c8;cursor:not-allowed}
.schedule.is-confirmed{background:#f3edff;border-color:#cbbbea}.schedule.is-confirmed .badge{background:#081f3d;color:#8fdcff;padding:10px 15px;border-radius:14px;font-size:15.6px;font-weight:800;line-height:1.2;animation:confirmed-badge-sparkle 2s ease-in-out infinite}@keyframes confirmed-badge-sparkle{0%,65%,100%{filter:brightness(1);box-shadow:0 0 0 rgba(143,220,255,0);transform:scale(1)}78%{filter:brightness(1.25);box-shadow:0 0 0 4px rgba(143,220,255,.28),0 0 16px rgba(143,220,255,.75);transform:scale(1.04)}}@media(prefers-reduced-motion:reduce){.schedule.is-confirmed .badge{animation:none}}

/* 예약 보드 조회 조건 */
.gantt-filter{align-items:center;min-height:94px}.gantt-mode-select{display:flex;align-items:center;gap:24px}.range-filter-group{display:flex;align-items:center;gap:12px;flex:1}.is-hidden{display:none!important}.gantt-filter-label{display:flex!important;align-items:center;gap:9px;margin:0!important;white-space:nowrap}.gantt-filter-label input{width:20px!important;height:20px;margin:0;accent-color:#087e8b}.month-select-button{min-width:190px;padding:12px 16px;background:#fff;color:#172033;border:1px solid #ccd5df;font-weight:650}.month-select-button span{margin-left:10px;color:#087e8b}.range-filter-group>input[type=date]{width:180px}.range-mark{display:grid;place-items:center;min-width:18px;font-weight:750}.month-picker-dialog{width:min(430px,calc(100vw - 28px));margin:auto;padding:0;border:0;border-radius:16px;box-shadow:0 28px 80px #07182766;color:#172033}.month-picker-dialog::backdrop{background:#102a437d;backdrop-filter:blur(2px)}.month-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;padding:20px 22px 15px;border-bottom:1px solid #e5eaf0}.month-dialog-head h2{margin:0}.month-dialog-head p{margin:4px 0 0;color:#66788a}.month-dialog-x{width:40px;height:40px;flex:0 0 40px;padding:0;background:#edf2f6;color:#31475b;font-size:27px;line-height:1}.month-dialog-body{padding:18px 22px}.month-dialog-body label{margin:0}.month-dialog-body input{font-size:18px}.month-dialog-actions{display:flex;justify-content:flex-end;padding:14px 22px;border-top:1px solid #e5eaf0}.month-dialog-actions button{min-width:130px}
@media(max-width:900px){.gantt-filter{display:grid;grid-template-columns:1fr;align-items:stretch}.gantt-mode-select{justify-content:flex-start}.month-select-button{width:100%}.range-filter-group{display:grid;grid-template-columns:1fr 18px 1fr auto}.range-filter-group>input[type=date]{width:100%}.range-filter-group button{grid-column:auto}}
@media(max-width:600px){.gantt-mode-select{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gantt-filter-label{min-height:40px}.range-filter-group{grid-template-columns:1fr 18px 1fr}.range-filter-group button{grid-column:1/-1;width:100%}}
@media(max-width:420px){.gantt-mode-select{grid-template-columns:1fr}.range-filter-group{grid-template-columns:1fr}.range-filter-group .range-mark{display:none}.month-picker-dialog{width:calc(100vw - 20px)}.month-dialog-actions button{width:100%}}

/* V39: 모바일 상단 메뉴를 글자 길이에 맞춘 가변 폭으로 표시 */
@media(max-width:800px){
  .top-nav,
  .top-nav.role-superadmin,
  .top-nav.role-admin,
  .top-nav.role-staff,
  .top-nav.role-guide{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-start;
    align-items:center;
    gap:5px;
  }
  .top-nav>a,
  .top-nav>.menu,
  .top-nav>.menu summary{
    width:auto;
    min-width:max-content;
    flex:0 0 auto;
  }
  .top-nav>a,
  .top-nav>.menu summary{
    height:40px;
    padding:7px 10px;
    white-space:nowrap;
  }
  .top-nav>.settings-menu,
  .top-nav>.settings-menu summary{
    width:42px;
    min-width:42px;
  }
}

@media(max-width:360px){
  .top-nav{gap:4px}
  .top-nav>a,
  .top-nav>.menu summary{padding:7px 8px;font-size:11px}
  .top-nav>.settings-menu,
  .top-nav>.settings-menu summary{width:38px;min-width:38px}
}

/* V40: 모바일 상단은 네이비 바탕 위 흰 글씨만 표시 */
@media(max-width:800px){
  header{
    background:#102a43;
    color:#fff;
  }
  .top-nav>a,
  .top-nav>.menu summary,
  .top-nav>a:hover,
  .top-nav>a:focus-visible,
  .top-nav>a.active,
  .top-nav>.menu summary:hover,
  .top-nav>.menu summary:focus-visible,
  .top-nav>.menu[open] summary,
  .top-nav>.menu.section-active summary,
  .top-nav.submenu-open>a.active,
  .top-nav.submenu-open>.menu.section-active:not([open]) summary,
  .top-nav.submenu-open>.menu[open] summary{
    background:transparent!important;
    color:#fff!important;
    border-color:transparent!important;
    box-shadow:none!important;
    transform:none!important;
  }
  .top-nav .monitor-link:before,
  .top-nav .user-admin-link:before{
    color:#fff;
  }
}

/* V41: 권한 배지의 보라색이 모바일 내비게이션에 적용되지 않도록 분리 */
@media(max-width:800px){
  .top-nav.role-superadmin,
  .top-nav.role-admin,
  .top-nav.role-staff,
  .top-nav.role-guide{
    background:transparent!important;
    color:#fff!important;
  }
  .top-nav,
  .top-nav>a,
  .top-nav>.menu summary{
    -webkit-tap-highlight-color:transparent;
  }
  .top-nav>a:active,
  .top-nav>a:visited,
  .top-nav>.menu summary:active{
    background:transparent!important;
    color:#fff!important;
    outline:none!important;
  }
}

/* V42: 모바일에서 현재 선택된 상단 메뉴만 노란색으로 강조 */
@media(max-width:800px){
  .top-nav>a.active,
  .top-nav.submenu-open>a.active,
  .top-nav>.menu.section-active>summary,
  .top-nav.submenu-open>.menu.section-active:not([open])>summary,
  .top-nav.submenu-open>.menu.section-active[open]>summary{
    color:#ffd54f!important;
  }
  .top-nav>a.active:before,
  .top-nav>.menu.section-active>summary .settings-gear{
    color:#ffd54f!important;
  }
}

/* V57: 가이드 메뉴는 관리자 메뉴와 같은 네이비·흰색 체계 사용 */
.top-nav.role-guide{background:transparent;color:#fff}.top-nav.role-guide>a,.top-nav.role-guide>.menu>summary{background:#302b63;color:#fff;border-color:#ffffff35}.top-nav.role-guide>a:hover,.top-nav.role-guide>a:focus-visible,.top-nav.role-guide>.menu>summary:hover,.top-nav.role-guide>.menu>summary:focus-visible,.top-nav.role-guide>.menu[open]>summary{background:#403779;color:#fff;border-color:#ffffff66}.top-nav.role-guide>a.active,.top-nav.role-guide>.menu.section-active>summary{background:#fff;color:#102a43;border-color:#fff;box-shadow:0 3px 10px #0003}.top-nav.role-guide .monitor-link:before{color:#5ee6a8}.top-nav.role-guide .settings-gear{color:inherit}
@media(max-width:800px){.top-nav.role-guide>a,.top-nav.role-guide>.menu>summary,.top-nav.role-guide>a:visited,.top-nav.role-guide>a:active,.top-nav.role-guide>.menu>summary:active{background:#302b63!important;color:#fff!important;border-color:#ffffff35!important}.top-nav.role-guide>a.active,.top-nav.role-guide>.menu.section-active>summary,.top-nav.role-guide.submenu-open>a.active,.top-nav.role-guide.submenu-open>.menu.section-active:not([open])>summary{background:#fff!important;color:#102a43!important;border-color:#fff!important;box-shadow:0 2px 8px #0002!important}.top-nav.role-guide .monitor-link:before{color:#5ee6a8!important}.top-nav.role-guide .settings-gear{color:inherit!important}}

/* V60: 예약보드 내부 세로 스크롤에서도 날짜 헤더 행 고정 */
.gantt-period-sticky{grid-column:1/-1;position:sticky;top:0;z-index:7;padding:14px 20px;background:#fff;color:#102a43;border-bottom:1px solid #dfe5ec;font-size:32px;font-weight:850;line-height:1.2}.gantt-period-sticky>span{position:sticky;left:20px;display:inline-block;z-index:8}.gantt-shell>.timeline-head{position:sticky;top:67px;z-index:4;background:#002060}.gantt-shell>.timeline-head .day-head{position:relative;top:auto;z-index:auto}.gantt-shell>.gantt-left-head{top:67px;z-index:5}@media(max-width:600px){.gantt-period-sticky{padding:12px 14px;font-size:25px}.gantt-period-sticky>span{left:14px}.gantt-shell>.timeline-head,.gantt-shell>.gantt-left-head{top:54px}}

/* V62: 한 일정에 여러 가이드 선택 */
.guide-multi-field{margin:14px 0;padding:10px 12px;border:1px solid #ccd5df;border-radius:9px}.guide-multi-field legend{padding:0 5px;font-weight:650}.guide-choice-list{display:flex;gap:8px;flex-wrap:wrap}.guide-choice-list label{display:flex;align-items:center;gap:6px;margin:0;padding:7px 10px;background:#eef4f8;border-radius:8px;cursor:pointer}.guide-choice-list input{width:18px;height:18px;margin:0;accent-color:#087e8b}

/* V63: 검색값과 무관하게 전체 역 목록을 여는 실제 드롭다운 */
.station-field>div{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:6px}.station-field .station-picker{padding-left:8px;padding-right:8px;background:#eef4f8;font-size:14px}@media(max-width:600px){.station-field>div{grid-template-columns:minmax(0,1fr) 105px}}

/* V90: KTX 편명별 정차역 단일 드롭다운 */
.station-field .station-select{width:100%;background:#fff;font-weight:700}

/* V64: 차량 Only 스위치 */
.vehicle-only-toggle{padding:13px 15px;background:#eef6fb;border:1px solid #c9dce9;border-radius:11px}.vehicle-only-toggle>span:first-child{font-size:18px}.vehicle-only-toggle small{color:#657689;font-weight:500}.switch-control{display:flex;align-items:center;gap:9px}.switch-control input{position:absolute;opacity:0;width:1px;height:1px}.switch-control i{position:relative;width:50px;height:28px;border-radius:99px;background:#aebbc6;transition:.2s}.switch-control i:after{content:'';position:absolute;left:4px;top:4px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 2px 5px #0003}.switch-control input:checked+i{background:#087e8b}.switch-control input:checked+i:after{transform:translateX(22px)}.switch-control input:focus-visible+i{outline:3px solid #54b8c2;outline-offset:2px}.vehicle-only-hidden{display:none!important}

/* V68: 차량/호텔 전용 모드와 일정 상세 구분 표시 */
.only-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hotel-only-toggle{background:#fff7e8;border-color:#ead29e}.hotel-only-toggle .switch-control input:checked+i{background:#c88316}.package-only-banner{padding:15px 18px;border:2px solid;border-radius:12px;font-size:25px;font-weight:900;line-height:1.2;letter-spacing:-.02em}.vehicle-only-banner{background:#e7f5fb;border-color:#4ca7c0;color:#075d75}.hotel-only-banner{background:#fff4dc;border-color:#d79a2c;color:#805000}@media(max-width:600px){.only-toggle-grid{grid-template-columns:1fr}.package-only-banner{font-size:22px}}

/* V69: 장기 예약보드에서 매월 1일 위에 연도·월 표시 */
.gantt-shell>.timeline-head .day-head{padding-top:28px}.month-boundary-label{position:absolute;top:5px;left:5px;z-index:1;width:125px;overflow:visible;white-space:nowrap;text-align:left;color:#fff;font-size:13px;font-weight:900;line-height:18px;letter-spacing:-.03em;pointer-events:none}.day-head.weekend .month-boundary-label,.day-head.holiday .month-boundary-label{color:#fff}@media(max-width:600px){.month-boundary-label{font-size:12px;width:115px}}

/* V70: 사용자 등록 카드에만 전용 유형 표시 */
.schedule-only-label{display:block;width:max-content;margin:10px 0 2px;padding:7px 11px;border:2px solid;border-radius:9px;font-size:19px;font-weight:900;line-height:1.1}

/* V71: 사용자 등록 카드의 차량/호텔 Only ON·OFF 상태 상시 표시 */
.schedule-only-status,.package-only-status{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.schedule-only-status{margin:12px 0 4px}.package-only-status{background:#f4f8fb;border-color:#b8cad8}.only-state-item{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:2px solid;border-radius:9px;font-size:19px;font-weight:900;line-height:1}.only-state-item b{font-size:17px;font-weight:950}.only-state-item.is-on{background:#ddf7ed;border-color:#36a985;color:#086b51}.only-state-item.is-off{background:#f0f3f6;border-color:#b4c0ca;color:#5d6a75}@media(max-width:600px){.only-state-item{font-size:17px}.only-state-item b{font-size:15px}}

/* V73: 사용자 등록 카드는 개별 삭제 버튼으로만 삭제 */
.card-admin-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-left:auto}.card-admin-actions form{margin:0}.manual-card-delete,.force-card-delete{padding:7px 10px;background:#bd3441;font-size:14px}.manual-card-delete:hover,.manual-card-delete:focus-visible,.force-card-delete:hover,.force-card-delete:focus-visible{background:#9f2632}.force-card-delete{border:2px solid #7f111e;font-weight:900}
.active-card-status{color:#34705a;font-size:14px;font-weight:800;letter-spacing:-.02em;line-height:1.2;white-space:nowrap}

/* V77: 복수 가이드 담당일, 숙소 웹 조회 */
.guide-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.guide-choice-item{padding:8px;background:#eef4f8;border-radius:10px}.guide-choice-item>label{background:transparent;padding:3px;margin:0}.guide-date-range{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}.guide-date-range[hidden]{display:none}.guide-date-range label{display:grid;margin:0;padding:0;background:transparent;font-size:12px;color:#52677d}.guide-date-range input{padding:8px;font-size:14px}.guide-date-help{display:block;margin-top:9px;color:#657689}.hotel-lookup-cell{display:flex;align-items:end;padding-bottom:9px}.hotel-phone-lookup{width:100%;min-height:45px;background:#176b87}.hotel-lookup-status{min-height:20px;margin:3px 0 0;color:#657689;font-size:13px}.hotel-lookup-status.success{color:#087e60;font-weight:750}.hotel-lookup-status.error{color:#b12837;font-weight:750}@media(max-width:700px){.guide-choice-list{grid-template-columns:1fr}.guide-date-range{grid-template-columns:1fr 1fr}}
.guide-choice-list .guide-date-range input{width:100%;height:auto;margin:0;padding:8px;font-size:14px}

/* V78: 복수 가이드 날짜 입력 영역 겹침 방지 */
.edit-basic>.guide-multi-field{grid-column:1/-1;width:100%;min-width:0}.guide-choice-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.guide-choice-item{min-width:0;border:2px solid transparent;transition:border-color .15s,background .15s}.guide-choice-item:has(>label input:checked){background:#e5f7f3;border-color:#67bfb1}.guide-date-range,.guide-date-range label{min-width:0}.guide-choice-item>label span{font-size:17px;font-weight:850}@media(max-width:900px){.guide-choice-list{grid-template-columns:1fr}.guide-date-range{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.guide-date-range{grid-template-columns:1fr}}

/* V80: 한국 도착·출발 날짜와 등록 항공편 연결 표시 */
.linked-flight-summary{display:block;min-height:25px;margin-top:3px;padding:7px 9px;border:1px dashed #bdc8d2;border-radius:8px;background:#f4f6f8;color:#6a7784;font-size:14px;font-weight:750;line-height:1.35;overflow-wrap:anywhere}.linked-flight-summary.has-flight{border-style:solid;border-color:#72c6b7;background:#e5f8f2;color:#08705a;font-size:15px;font-weight:900}

/* V82: 드롭다운 기반 가이드 담당기간 등록 */
.guide-assignment-builder+.guide-choice-list{display:none}.guide-add-row{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:12px;padding:14px;background:#eef4f8;border-radius:11px}.guide-add-row label{margin:0}.guide-add-row button{min-height:46px}.selected-guide-assignments{display:grid;gap:11px;margin-top:13px}.selected-guide-card{padding:14px 16px;border:2px solid #67bfb1;border-radius:12px;background:#e8f8f4}.selected-guide-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.selected-guide-card strong{font-size:19px}.remove-guide-assignment{padding:7px 11px;background:#fff0f1;color:#ad2635;border:1px solid #ffc9cf}.selected-guide-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.selected-guide-dates label{min-width:0;margin:9px 0 0}.selected-guide-dates input[readonly]{background:#edf2f5;color:#40566b}.guide-assignment-empty{margin:0;padding:17px;border:1px dashed #b8c6d3;border-radius:10px;text-align:center;color:#71808d}@media(max-width:600px){.guide-add-row{grid-template-columns:1fr}.guide-add-row button{width:100%}.selected-guide-dates{grid-template-columns:1fr}}

/* V84: 첫 가이드는 즉시 선택, 추가 가이드는 버튼으로 선택 */
.guide-add-row{grid-template-columns:minmax(210px,320px) auto;justify-content:start}.guide-assignment-builder:not(:has(.selected-guide-card)) .guide-add-row button{display:none}.guide-assignment-builder:has(.selected-guide-card):not(.is-adding) .guide-add-row label{display:none}.guide-assignment-builder.is-adding .guide-add-row button{display:none}.selected-guide-card{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);align-items:end;gap:16px}.selected-guide-card>div:first-child{align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:10px}.selected-guide-dates{align-items:end}.selected-guide-dates label{margin:0}@media(max-width:700px){.guide-add-row{grid-template-columns:1fr}.selected-guide-card{grid-template-columns:1fr}.selected-guide-card>div:first-child{flex-direction:row;align-items:center}.selected-guide-dates{grid-template-columns:1fr 1fr}}@media(max-width:480px){.selected-guide-dates{grid-template-columns:1fr}}

/* V85: 패키지 기본정보 3행 정렬 */
.edit-basic{grid-template-columns:repeat(6,minmax(0,1fr));column-gap:18px}.basic-group-code{grid-column:1/4}.basic-duration{grid-column:4/7}.basic-departure-date{grid-column:1/3}.basic-korea-arrival{grid-column:3/5}.basic-korea-departure{grid-column:5/7}.basic-pax{grid-column:1/4}.basic-target{grid-column:4/7}.edit-basic>.guide-multi-field+label{grid-column:1/4}.edit-basic>.guide-multi-field+label+label{grid-column:4/7}@media(max-width:800px){.edit-basic{grid-template-columns:1fr}.edit-basic>.basic-field,.edit-basic>.guide-multi-field+label,.edit-basic>.guide-multi-field+label+label{grid-column:auto}}

/* V86: 마지막 가이드 담당 종료 시 추가 버튼 숨김 */
.guide-assignment-builder.assignment-complete .guide-add-row{display:none}

/* V87: 항공편 요약이 있는 날짜 필드와 무관하게 출발일 입력 높이 유지 */
.basic-departure-date{align-self:start}

/* V88: 사용자별 KTX 공공데이터 API 설정 */
.api-settings-title p{margin:4px 0 0;color:#657689}.ktx-api-guide,.ktx-api-form{max-width:850px;margin:18px auto}.ktx-api-guide h2{margin-top:0}.ktx-api-guide ol{display:grid;gap:10px;padding-left:24px}.ktx-api-guide a{color:#087e8b;font-weight:800;text-decoration:underline}.api-key-notice{display:grid;gap:4px;margin-top:18px;padding:15px 17px;border:1px solid #f0c96b;border-radius:11px;background:#fff8dd;color:#624c0d}.api-key-notice span{color:#6d5c2b}.api-key-state{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:10px}.api-key-state.configured{background:#e5f7ef;color:#176442}.api-key-state.empty{background:#f1f4f7;color:#596a78}.api-key-state span{font-size:14px}.ktx-api-form input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.api-settings-actions{display:flex;gap:9px}.api-key-remove{background:#bd3441}.ktx-api-form>small{display:block;margin-top:12px;color:#66788a}@media(max-width:600px){.api-key-state{display:grid}.api-settings-actions{display:grid}.api-settings-actions button{width:100%}}
.settings-panel a[href*="/settings/ktx-api"]{display:none}.top-nav.role-superadmin .settings-panel a[href*="/settings/ktx-api"],.top-nav.role-admin .settings-panel a[href*="/settings/ktx-api"]{display:block}

/* V131: 항공사 폭 축소 및 편명 검색 영역 확대 */
.transport-item.airline-mode .transport-fields{grid-template-columns:repeat(12,minmax(0,1fr))}.transport-item.airline-mode .transport-fields>label:nth-child(1),.transport-item.airline-mode .transport-fields>label:nth-child(2){grid-column:span 3}.transport-item.airline-mode .airline-select-field{grid-column:span 2}.transport-item.airline-mode .airline-flight-field{grid-column:span 4}.transport-item.airline-mode .station-field,.transport-item.airline-mode .station-field+label{grid-column:span 3}.transport-item.airline-mode .wide-field{grid-column:1/-1}
@media(max-width:900px){.transport-item.airline-mode .transport-fields>label:nth-child(1),.transport-item.airline-mode .transport-fields>label:nth-child(2){grid-column:span 6}.transport-item.airline-mode .airline-select-field{grid-column:span 4}.transport-item.airline-mode .airline-flight-field{grid-column:span 8}.transport-item.airline-mode .station-field,.transport-item.airline-mode .station-field+label{grid-column:span 6}}
@media(max-width:600px){.transport-item.airline-mode .transport-fields{grid-template-columns:1fr}.transport-item.airline-mode .transport-fields>label:nth-child(1),.transport-item.airline-mode .transport-fields>label:nth-child(2),.transport-item.airline-mode .airline-select-field,.transport-item.airline-mode .airline-flight-field,.transport-item.airline-mode .station-field,.transport-item.airline-mode .station-field+label,.transport-item.airline-mode .wide-field{grid-column:auto}}

/* V132: 종류 축소, 편명 검색·선택 상자 확대 */
@media(min-width:901px){.transport-item.airline-mode .transport-fields{grid-template-columns:repeat(100,minmax(0,1fr))}.transport-item.airline-mode .transport-fields>label:nth-child(1){grid-column:span 25}.transport-item.airline-mode .transport-fields>label:nth-child(2){grid-column:span 18}.transport-item.airline-mode .airline-select-field{grid-column:span 19}.transport-item.airline-mode .airline-flight-field{grid-column:span 38}.transport-item.airline-mode .station-field,.transport-item.airline-mode .station-field+label{grid-column:span 25}.transport-item.airline-mode .wide-field{grid-column:1/-1}}

/* V133: 항공 입력 행을 관리 박스 내부 폭에 맞춤 */
@media(min-width:901px){.transport-item.airline-mode{overflow:hidden}.transport-item.airline-mode .transport-fields{grid-template-columns:repeat(100,minmax(0,1fr));column-gap:0;max-width:100%}.transport-item.airline-mode .transport-fields>*{min-width:0;box-sizing:border-box}.transport-item.airline-mode .transport-fields input,.transport-item.airline-mode .transport-fields select{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.transport-item.airline-mode .transport-fields>label{padding-right:12px}.transport-item.airline-mode .transport-fields>label:nth-child(1){grid-column:span 18}.transport-item.airline-mode .transport-fields>label:nth-child(2){grid-column:span 15}.transport-item.airline-mode .airline-select-field{grid-column:span 25}.transport-item.airline-mode .airline-flight-field{grid-column:span 42;padding-right:0}.transport-item.airline-mode .airline-manual-service-field{grid-column:span 25}.transport-item.airline-mode .station-field,.transport-item.airline-mode .station-field+label{grid-column:span 25}.transport-item.airline-mode .wide-field{grid-column:1/-1;padding-right:0}}

/* V130: 항공편 접두어 검색 */
.airline-flight-field{min-width:0}.airline-flight-picker{display:grid;grid-template-columns:minmax(100px,.45fr) minmax(0,1fr);gap:7px}.airline-flight-search{min-width:0}.airline-flight-select{min-width:0}@media(max-width:600px){.airline-flight-picker{grid-template-columns:1fr}}

/* V106: 공용 항공편 DB 드롭다운 */
.transport-item [hidden]{display:none!important}.airline-flight-select{font-size:14px}

/* V319: 종료일 필드 추가 후에도 종류·항공사 열을 명시적으로 배치한다. */
@media(min-width:901px){.transport-item.airline-mode .transport-date-field{grid-column:span 18!important}.transport-item.airline-mode .transport-type-field{grid-column:span 15!important}.transport-item.rail-mode .transport-date-field,.transport-item.rail-mode .transport-type-field{grid-column:span 3!important}}
@media(max-width:900px) and (min-width:601px){.transport-item.airline-mode .transport-date-field,.transport-item.airline-mode .transport-type-field{grid-column:span 6!important}.transport-item.rail-mode .transport-date-field,.transport-item.rail-mode .transport-type-field{grid-column:span 4!important}}
@media(max-width:600px){.transport-item.airline-mode .transport-date-field,.transport-item.airline-mode .transport-type-field,.transport-item.rail-mode .transport-date-field,.transport-item.rail-mode .transport-type-field{grid-column:auto!important}}

/* V126: 복수 객실 입력 시 공통 숙소 항목 세로 중앙 정렬 */
@media(min-width:901px){.hotel-fields>label:not(.wide-field){align-self:center}.hotel-fields>.hotel-room-allocations{align-self:center}}

/* V125: 객실 입력 폭과 추가·삭제 버튼 배치 */
.hotel-room-allocations .hotel-room-row{grid-template-columns:minmax(145px,1.35fr) minmax(82px,.65fr)}
.hotel-room-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:6px}.hotel-room-actions .add-hotel-room{margin:0}.hotel-room-actions .remove-last-hotel-room{padding:8px 14px;background:#fff0f1;color:#ad2635;border:1px solid #ffc9cf}.hotel-room-actions .remove-last-hotel-room:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:600px){.hotel-room-allocations .hotel-room-row{grid-template-columns:minmax(135px,1fr) 90px}}

/* V124: 숙소별 복수 객실 타입과 수량 */
.hotel-room-allocations{grid-column:span 2;margin:9px 0}.hotel-room-allocations>strong{display:block;margin-bottom:7px}.hotel-room-rows{display:grid;gap:6px}.hotel-room-row{display:grid;grid-template-columns:minmax(105px,1fr) minmax(72px,.55fr) auto;gap:6px}.hotel-room-row select,.hotel-room-row input{min-width:0}.hotel-room-row input{text-align:right}.hotel-room-row .remove-hotel-room{padding:8px 10px;background:#fff0f1;color:#ad2635;border:1px solid #ffc9cf}.add-hotel-room{width:100%;margin-top:6px;padding:8px;background:#e7f5f4;color:#087b82;border:1px solid #acd9d7}.hotel-fields>.hotel-room-allocations+label{min-width:0}@media(max-width:900px){.hotel-room-allocations{grid-column:1/-1}}@media(max-width:600px){.hotel-room-allocations{grid-column:auto}.hotel-room-row{grid-template-columns:1fr 90px auto}}
.hotel-date-control{position:relative}.hotel-date-control input{padding-right:70px}.hotel-weekday{position:absolute;right:42px;top:50%;transform:translateY(-50%);color:#087b82;font-weight:800;pointer-events:none}.hotel-nights-control{display:grid;grid-template-columns:1fr auto;align-items:center;border:1px solid #cbd6e2;border-radius:10px;background:#fff;overflow:hidden}.hotel-nights-control:focus-within{border-color:#158c99;box-shadow:0 0 0 3px #158c9920}.hotel-nights-control input{min-width:0;border:0;box-shadow:none!important;text-align:right}.hotel-nights-control span{padding-right:14px;font-weight:800;color:#52687b}

/* V123: 숙소 객실 개수와 기본정보 한 행 배치 */
@media(min-width:901px){.hotel-fields{grid-template-columns:minmax(90px,.55fr) minmax(220px,1.5fr) minmax(95px,.65fr) minmax(85px,.55fr) minmax(125px,.75fr) minmax(155px,.95fr)}.hotel-fields>label:nth-child(1){grid-column:span 2}.hotel-fields>label:nth-child(2){grid-column:span 1}.hotel-fields>label:nth-child(3){grid-column:span 3}}
.hotel-room-count-field input{text-align:right}
.dialog-actions{gap:10px}.dialog-actions #add-hotel{background:#e7f5f4;color:#087b82;border:1px solid #8bcfcb}@media(max-width:700px){.dialog-actions button{width:auto;min-width:0;flex:1}}

/* V122: KTX/SRT 편명 선택과 역·시간 2행 배치 */
.transport-item.rail-mode .transport-fields{grid-template-columns:repeat(12,minmax(0,1fr))}
.transport-item.rail-mode .transport-fields>label:nth-child(1),.transport-item.rail-mode .transport-fields>label:nth-child(2){grid-column:span 3}
.transport-item.rail-mode .ktx-train-field{grid-column:span 6}
.rail-train-picker{display:grid;grid-template-columns:minmax(120px,.32fr) minmax(0,1fr);gap:8px}.rail-train-search,.rail-train-select{min-width:0;width:100%}

/* 상단 메뉴: 모니터링 제거 후 설정 버튼에 캡션 표시 */
.top-nav>.settings-menu,.top-nav>.settings-menu summary{width:auto!important;min-width:max-content!important}.top-nav>.settings-menu summary{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;height:42px;padding:0 14px!important}.settings-label{font-weight:800;white-space:nowrap}
@media(max-width:800px){.top-nav>.settings-menu,.top-nav>.settings-menu summary{width:auto!important;min-width:max-content!important}.top-nav>.settings-menu summary{height:40px;padding:7px 10px!important;gap:5px!important}}
.transport-item.rail-mode .station-field,.transport-item.rail-mode .station-field+label,.transport-item.rail-mode .departure-time-field,.transport-item.rail-mode .arrival-time-field{grid-column:span 3;min-width:120px}.transport-item.rail-mode .transport-time-input{width:100%;min-width:96px}
.transport-item.rail-mode .wide-field{grid-column:1/-1}
@media(max-width:900px){.transport-item.rail-mode .transport-fields>label:nth-child(1),.transport-item.rail-mode .transport-fields>label:nth-child(2),.transport-item.rail-mode .ktx-train-field{grid-column:span 4}.transport-item.rail-mode .station-field,.transport-item.rail-mode .station-field+label,.transport-item.rail-mode .departure-time-field,.transport-item.rail-mode .arrival-time-field{grid-column:span 6}}
@media(max-width:600px){.transport-item.rail-mode .transport-fields{grid-template-columns:1fr}.transport-item.rail-mode .transport-fields>label:nth-child(1),.transport-item.rail-mode .transport-fields>label:nth-child(2),.transport-item.rail-mode .ktx-train-field,.transport-item.rail-mode .station-field,.transport-item.rail-mode .station-field+label,.transport-item.rail-mode .wide-field{grid-column:auto}.rail-train-picker{grid-template-columns:1fr}}

/* V109: 항공편 완전 수집 검증 및 강제 갱신 */
.airline-force-refresh{display:flex;align-items:end;gap:10px;margin:16px 0}.airline-force-refresh label{margin:0;min-width:220px}.airline-force-refresh button{min-height:45px}.airline-refresh-list{display:grid;gap:9px;margin:14px 0}.airline-refresh-row{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(360px,1.5fr);gap:8px 18px;padding:12px 14px;border:1px solid #c8e5d9;border-radius:10px;background:#f0faf6}.airline-refresh-row.error{border-color:#f0c2c7;background:#fff4f5}.airline-refresh-row>div:first-child{display:grid;gap:2px}.airline-refresh-row>div:first-child span{font-weight:800;color:#08705a}.airline-refresh-row.error>div:first-child span,.airline-refresh-error{color:#ad2635}.airline-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:6px}.airline-counts span{padding:6px;border-radius:7px;background:#fff;text-align:center;font-size:13px}.airline-refresh-error{grid-column:1/-1;font-weight:700}@media(max-width:760px){.airline-force-refresh,.airline-refresh-row{display:grid;grid-template-columns:1fr}.airline-force-refresh label{min-width:0}.airline-counts{grid-template-columns:1fr 1fr}.airline-refresh-error{grid-column:auto}}
/* Accommodation schedule overview */
.hotel-export-page{max-width:980px;margin:0 auto}.hotel-export-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.hotel-export-summary>div{display:grid;gap:5px;padding:16px;border-radius:11px;background:#eef7f5}.hotel-export-summary span{color:#617181;font-size:12px;font-weight:800}.hotel-export-summary strong{font-size:20px;color:#185f5d}.hotel-export-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hotel-export-list>div{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #dce5e8;border-radius:9px}.hotel-export-list span{color:#287271;font-weight:800}.hotel-export-help p{margin:7px 0;color:#617181}.hotel-export-download{width:100%;margin-top:16px;padding:15px;font-size:17px}.hotel-export-download:disabled{opacity:.45}@media(max-width:650px){.hotel-export-summary,.hotel-export-list{grid-template-columns:1fr}}
.board-expand-options{width:100%;border-style:dashed}.transport-manager-grid>.board-expand-options,.transport-manager-grid>.board-advanced-options{grid-column:1/-1}.board-advanced-options{padding:14px;border:1px solid #dce5ec;border-radius:12px;background:#f7fafc}.board-advanced-options:not([hidden]){display:grid;gap:12px}.transport-advanced-options:not([hidden]){grid-template-columns:1fr 1fr}.transport-advanced-options .transport-note-field,.transport-advanced-options .lookup-status{grid-column:1/-1}.board-hotel-room-row{display:grid;grid-template-columns:1fr 110px auto;gap:8px;margin-bottom:8px}.board-hotel-room-row button{padding:7px 10px}.board-check-label{display:flex!important;align-items:center;gap:8px}.board-check-label input{width:auto}@media(max-width:600px){.transport-advanced-options:not([hidden]){grid-template-columns:1fr}.board-hotel-room-row{grid-template-columns:1fr 90px auto}}
/* Compact package summary opened from a reservation-board bar. */
.day-detail-dialog:has(.package-main-card) .day-detail-head{padding:14px 20px}.day-detail-dialog:has(.package-main-card) .day-detail-head h2{font-size:24px}.day-detail-dialog:has(.package-main-card) .day-detail-body{gap:0;padding:12px 14px}.package-main-card>header{padding:9px 12px}.package-main-card>section{grid-template-columns:105px minmax(0,1fr);gap:2px 10px;padding:7px 12px}.package-main-card h3{grid-column:1;grid-row:1!important;margin:1px 0;line-height:1.35}.package-main-card p{grid-column:2;margin:0;line-height:1.35}.package-main-card p+p{margin-top:3px}.package-main-card p small{margin-top:0;line-height:1.3}.day-detail-dialog:has(.package-main-card) .reservation-dialog-actions{padding:10px 14px}
@media(max-width:600px){.day-detail-dialog:has(.package-main-card) .day-detail-head{padding:12px 15px}.day-detail-dialog:has(.package-main-card) .day-detail-head h2{font-size:21px}.day-detail-dialog:has(.package-main-card) .day-detail-body{padding:9px}.package-main-card>section{grid-template-columns:88px minmax(0,1fr);padding:7px 10px}.package-main-card h3{grid-row:1!important;margin:1px 0}.package-main-card p{grid-column:2}}
.hotel-email-list-head,.hotel-email-contact-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.hotel-email-list-head h2,.hotel-email-contact-head h2{margin:0}.hotel-email-list-head label{display:flex;align-items:center;gap:7px;font-weight:800;color:#176b73;white-space:nowrap}.hotel-email-check-list{grid-template-columns:1fr}.hotel-email-check-list label{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #deeaed;border-radius:9px;cursor:pointer}.hotel-email-check-list label>span{display:flex;align-items:center;gap:9px}.hotel-email-check-list input{width:18px;height:18px;accent-color:#0b8992}.hotel-email-check-list em{font-style:normal;color:#c2413b;font-weight:800}.hotel-email-send-form{margin-top:12px}.hotel-email-send-button{width:100%;min-height:50px;border:0;border-radius:12px;background:#176b73;color:#fff;font-weight:900;font-size:16px;cursor:pointer}.hotel-email-send-button:disabled{opacity:.45;cursor:not-allowed}.hotel-email-warning{text-align:center;color:#9c3b35;font-weight:700}.hotel-email-warning a{color:#176b73}.hotel-email-security>p{padding:12px 14px;border-radius:10px;background:#fff7df;color:#694f14}.hotel-email-settings-form{display:grid;grid-template-columns:1fr 1.3fr 1.3fr auto;gap:12px;align-items:end}.hotel-email-settings-form label{display:grid;gap:6px;font-weight:800}.hotel-email-settings-form input,.hotel-email-upload-form input{min-height:44px;padding:10px 12px;border:1px solid #c7d9de;border-radius:9px;background:#fff}.hotel-email-settings-form button,.hotel-email-upload-form button{min-height:44px}.hotel-email-contact-head p{margin:5px 0 0;color:#607d85}.hotel-email-upload-form{display:flex;gap:10px;margin-top:18px}.hotel-email-upload-form input{flex:1}.hotel-email-contact-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 4px;border-bottom:1px solid #deeaed}.hotel-email-contact-list>div>span{display:flex;align-items:center;gap:14px}.hotel-email-contact-list small{color:#607d85}.hotel-email-contact-list form{margin:0}.hotel-email-contact-list .small{padding:5px 9px}.hotel-email-contact-list a{color:#0b7285;font-weight:700}@media(max-width:800px){.hotel-email-settings-form{grid-template-columns:1fr}.hotel-email-contact-head,.hotel-email-list-head{align-items:flex-start}.hotel-email-contact-head{flex-direction:column}.hotel-email-upload-form{flex-direction:column}.hotel-email-check-list label,.hotel-email-contact-list>div{align-items:flex-start;flex-direction:column}.hotel-email-contact-list>div>span{width:100%;justify-content:space-between;flex-wrap:wrap}}
.gmail-app-password-guide{margin:12px 0 18px;padding:14px 14px 14px 36px;border:1px solid #dce8eb;border-radius:10px;background:#f7fbfc;color:#405b63}.gmail-app-password-guide li+li{margin-top:6px}.gmail-app-password-guide a{color:#0b7285;font-weight:800}.gmail-test-form{display:flex;align-items:center;gap:12px;margin-top:14px}.gmail-test-form button{min-height:40px}.gmail-test-form span{color:#607d85;font-size:13px}@media(max-width:600px){.gmail-test-form{align-items:flex-start;flex-direction:column}}
.hotel-db-title{display:flex;align-items:end;justify-content:space-between;gap:18px}.hotel-db-title>button{min-height:44px;padding:0 18px;white-space:nowrap}.hotel-admin-wide-card{max-width:none}.hotel-list-tools{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}.hotel-list-tools .hotel-search-form{flex:1;margin:0}.hotel-list-tools .hotel-delete-note{margin:0;max-width:470px;text-align:right}.hotel-admin-wide-wrap{max-height:72vh;border:1px solid #dfe8eb;border-radius:10px}.hotel-admin-wide-table{min-width:1580px}.hotel-admin-wide-table th{white-space:nowrap}.hotel-admin-wide-table td{min-width:90px}.hotel-admin-wide-table td:nth-child(3){min-width:170px}.hotel-admin-wide-table td:nth-child(4){min-width:180px}.hotel-admin-wide-table td:nth-child(7){min-width:250px}.hotel-admin-wide-table td:nth-child(8){min-width:120px}.hotel-admin-wide-table td:nth-child(9){min-width:230px}.hotel-address-cell{white-space:normal;line-height:1.4}.hotel-contact-cell span,.hotel-email-cell a{display:block;margin-bottom:5px}.hotel-contact-cell em,.hotel-email-cell em{font-style:normal;color:#9aa7aa}.hotel-editor-dialog{width:min(780px,calc(100vw - 28px));max-height:90vh;padding:0;border:0;border-radius:18px;box-shadow:0 24px 80px #102a4355;overflow:auto}.hotel-editor-dialog::backdrop{background:#0d283a88;backdrop-filter:blur(2px)}.hotel-editor-dialog .hotel-admin-form{padding:22px;grid-template-columns:1fr 1fr}.hotel-editor-dialog .hotel-admin-form>label{grid-column:auto}.hotel-editor-dialog .hotel-admin-form>.hotel-address-field{grid-column:1/-1}.hotel-dialog-head{grid-column:1/-1;display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid #e1eaed}.hotel-dialog-head span{font-size:11px;letter-spacing:.16em;font-weight:900;color:#0b8992}.hotel-dialog-head h2{margin:4px 0 0}.hotel-dialog-head>button{width:40px;height:40px;padding:0;border:0;border-radius:10px;background:#edf4f5;color:#34545d;font-size:27px;line-height:1}.hotel-mail-fields{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;padding:14px;border:1px solid #d9e7e9;border-radius:12px;background:#f7fbfb}.hotel-mail-fields h3,.hotel-mail-fields p{grid-column:1/-1;margin:0}.hotel-mail-fields p{color:#607d85;font-size:13px}.hotel-mail-fields label{margin:0}.hotel-editor-dialog .hotel-form-actions{padding-top:4px}.hotel-editor-dialog .hotel-form-actions button{min-width:100px}@media(max-width:760px){.hotel-db-title,.hotel-list-tools{align-items:stretch;flex-direction:column}.hotel-db-title>button{width:100%}.hotel-list-tools .hotel-delete-note{text-align:left}.hotel-editor-dialog .hotel-admin-form,.hotel-mail-fields{grid-template-columns:1fr}.hotel-editor-dialog .hotel-admin-form>label,.hotel-editor-dialog .hotel-admin-form>.hotel-address-field,.hotel-mail-fields h3,.hotel-mail-fields p{grid-column:1}.hotel-editor-dialog{width:calc(100vw - 16px)}.hotel-editor-dialog .hotel-admin-form{padding:16px}}
.hotel-schedule-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:8px 0 22px}.hotel-schedule-head span{font-size:12px;font-weight:800;letter-spacing:.16em;color:#287271}.hotel-schedule-head h1{margin:5px 0 4px}.hotel-schedule-head p{margin:0;color:#617181}.hotel-schedule-head>b{font-size:18px;color:#287271;background:#e7f5f2;padding:10px 15px;border-radius:999px}.hotel-schedule-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:16px;background:#fff;border:1px solid #dce5e8;border-radius:14px;margin-bottom:16px}.hotel-schedule-filter label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#52656b}.hotel-schedule-filter input{min-width:160px}.hotel-schedule-filter button,.hotel-schedule-filter a{height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;border-radius:8px}.hotel-schedule-filter a{border:1px solid #c8d4d8;color:#41565d;text-decoration:none}.hotel-schedule-list{display:grid;gap:10px}.hotel-schedule-card{display:grid;grid-template-columns:220px 1fr auto;gap:22px;align-items:center;padding:18px 20px;background:#fff;border:1px solid #dce5e8;border-left:5px solid #2b7a78;border-radius:12px}.hotel-schedule-card time{display:grid;grid-template-columns:1fr auto 1fr;gap:7px;align-items:center}.hotel-schedule-card time strong{font-size:14px}.hotel-schedule-card time i{font-style:normal;color:#93a2a7}.hotel-schedule-card time em{grid-column:1/-1;font-style:normal;font-weight:800;color:#287271}.hotel-schedule-info>div{display:flex;align-items:center;gap:7px}.hotel-schedule-info a{font-weight:900;color:#173f5f}.hotel-schedule-info span{font-size:11px;padding:3px 7px;border-radius:999px;background:#edf2f4}.hotel-schedule-info span.manual{background:#fff0ce;color:#865e08}.hotel-schedule-info h2{font-size:18px;margin:6px 0 4px}.hotel-schedule-info p{margin:0;color:#68797e}.hotel-room-summary{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:220px}.hotel-room-summary span{background:#eef7f5;color:#235f5d;padding:6px 9px;border-radius:7px;font-size:12px;font-weight:700}.hotel-room-summary small,.hotel-schedule-empty{color:#829196}.hotel-schedule-empty{text-align:center;padding:50px;background:#fff;border:1px dashed #cbd7da;border-radius:12px}@media(max-width:760px){.hotel-schedule-card{grid-template-columns:1fr;gap:10px}.hotel-room-summary{justify-content:flex-start}.hotel-schedule-filter label,.hotel-schedule-filter input{width:100%}}
.guide-assignment-builder:not(.has-selected-guides) .guide-add-row button{display:none}.guide-assignment-builder.has-selected-guides:not(.is-adding) .guide-add-row label{display:none}
@media(max-width:800px){.board-width-controls button{min-width:40px!important;min-height:40px!important}.hotel-row-actions button,.role-edit-form button,.delete-user{min-height:40px}.edit-save-bar{bottom:calc(8px + env(safe-area-inset-bottom,0px))}}

/* V294 guide language/availability filter */
.board-guide-languages{min-width:0;margin:0;padding:11px 12px 12px;border:1px solid #cbd6e2;border-radius:11px}.board-guide-languages legend{padding:0 5px;font-weight:800}.board-guide-languages>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.board-guide-languages label{display:flex;align-items:center;gap:5px;font-weight:600}.board-guide-languages input{width:auto;margin:0}#board-guide-filter-status{min-height:20px;margin:-7px 0 0;color:#587083;font-size:12px}@media(max-width:600px){.board-guide-languages>div{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V293 user profile/language columns */
.user-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.user-form label small{display:block;margin-top:4px;color:#68798a;font-size:11px}.user-table table{width:100%;table-layout:fixed}.user-table th,.user-table td{padding:10px 8px;overflow-wrap:anywhere}.user-table .user-id-col{width:9%}.user-table .user-name-col{width:10%}.user-table .user-english-col{width:14%}.user-table .user-language-col{width:15%}.user-table .user-phone-col{width:18%}.user-table .user-role-col{width:17%}.user-table .user-state-col{width:8%}.user-table .user-action-col{width:9%}.english-name-input,.user-language-select{width:100%;min-width:0;padding:7px 8px}.user-language-select{min-height:58px}.user-table .phone-edit-form,.user-table .role-edit-form{min-width:0;gap:5px}.user-table .phone-edit-form input{width:100%;min-width:0}.user-table .phone-edit-form button,.user-table .role-edit-form button{padding:8px 7px}.user-table .role-edit-form select{width:100%;min-width:0}.user-table td:last-child{min-width:0}
@media(max-width:900px){.user-form{grid-template-columns:repeat(2,minmax(0,1fr))}.user-table{overflow-x:auto}.user-table table{min-width:980px}}

/* V295 user language checkbox UI */
.user-form{grid-template-columns:minmax(105px,.75fr) minmax(105px,.75fr) minmax(145px,1.1fr) minmax(140px,1fr) minmax(130px,.95fr) minmax(125px,.9fr) minmax(300px,2.2fr) minmax(115px,.8fr);gap:10px;padding:18px;align-items:end}.user-form>label,.user-form>button,.user-form>fieldset{min-width:0}.user-form input,.user-form select{min-width:0;width:100%}.user-form>button{white-space:nowrap}.user-language-checks{min-width:0;margin:0;padding:7px 9px 9px;border:1px solid #cbd6e2;border-radius:9px}.user-language-checks legend{padding:0 4px;font-size:12px;font-weight:800}.user-language-checks>div,.table-language-checks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px 7px}.user-language-checks label{display:flex;align-items:center;gap:4px;min-width:0;margin:0;font-size:12px;font-weight:650;white-space:nowrap}.user-language-checks input{flex:0 0 auto;width:15px;height:15px;margin:0}.new-user-languages[hidden]{display:none}.table-language-checks{grid-template-columns:repeat(2,minmax(0,1fr));border:0;padding:0}.table-language-checks label{font-size:11px}.user-table .user-language-col{width:18%}.user-table .user-phone-col{width:16%}
@media(max-width:1500px){.user-form{grid-template-columns:repeat(4,minmax(0,1fr))}.new-user-languages{grid-column:span 2}.user-form>button{grid-column:span 2}}
@media(max-width:900px){.user-form{grid-template-columns:repeat(2,minmax(0,1fr))}.new-user-languages,.user-form>button{grid-column:1/-1}}
.user-form{grid-template-columns:minmax(95px,.7fr) minmax(95px,.7fr) minmax(135px,1fr) minmax(135px,1fr) minmax(125px,.9fr) minmax(110px,.8fr) minmax(95px,.7fr) minmax(270px,2fr) minmax(110px,.8fr)}
.user-table .user-id-col{width:8%}.user-table .user-name-col{width:9%}.user-table .user-english-col{width:13%}.user-table .user-language-col{width:18%}.user-table .user-phone-col{width:17%}.user-table .user-role-col{width:14%}.user-table .user-card-col{width:10%}.user-table .user-action-col{width:11%}.user-card-number-input{width:100%;min-width:0;padding:8px 7px;box-sizing:border-box;font-variant-numeric:tabular-nums}
.user-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.user-row-actions form{margin:0}.user-save-all,.user-row-actions .delete-user{padding:8px 9px;white-space:nowrap}.user-save-all{background:#087e8b}
@media(max-width:1500px){.user-form{grid-template-columns:repeat(4,minmax(0,1fr))}.new-user-languages{grid-column:span 2}.user-form>button{grid-column:span 2}}
@media(max-width:900px){.user-form{grid-template-columns:repeat(2,minmax(0,1fr))}.new-user-languages,.user-form>button{grid-column:1/-1}.user-table table{min-width:1040px}}

/* V296 shared custom language catalog */
.new-language-entry{grid-column:1/-1;display:flex!important;gap:7px!important;margin-top:3px!important}.new-language-entry span{flex:0 0 auto;color:#476176;font-size:11px;font-weight:800}.new-language-entry input{flex:1 1 auto!important;width:auto!important;height:30px!important;min-width:80px!important;padding:5px 7px!important;font-size:12px}.new-language-entry input::placeholder{color:#8a98a5}

/* V299 inbound/outbound flight summary on schedule cards */
.card-flight-summary{display:grid;gap:4px;margin:10px 0 12px;padding:9px 11px;border-radius:10px;background:#ffffff75;color:#17334d;font-size:13px}.card-flight-summary>div{display:grid;grid-template-columns:42px minmax(0,1fr);gap:5px;align-items:start}.card-flight-summary b{color:#50677d;white-space:nowrap}.card-flight-summary span{display:flex;flex-wrap:wrap;gap:3px 9px;min-width:0}.card-flight-summary em{font-style:normal;font-weight:800;white-space:nowrap}.card-flight-summary em+em:before{content:'•';margin-right:9px;color:#8a9aac}@media(max-width:420px){.card-flight-summary{font-size:12px}.card-flight-summary>div{grid-template-columns:38px minmax(0,1fr)}.card-flight-summary em{white-space:normal}}
.card-flight-summary .flight-missing{color:#788897;font-weight:650}
.flight-pdf-page{max-width:1500px;margin:0 auto;padding:24px}.flight-pdf-guide,.flight-pdf-picker,.flight-pdf-errors,.flight-pdf-preview{background:#fff;border:1px solid #dce5ec;border-radius:18px;padding:22px;margin:18px 0}.flight-pdf-guide p{margin:8px 0 0;color:#526579}.flight-pdf-picker{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:end}.flight-pdf-picker label{display:block;font-weight:800;margin-bottom:8px}.flight-pdf-picker input{width:100%;padding:12px;border:1px solid #cbd8e3;border-radius:10px;background:#f8fafc}.flight-pdf-picker small,.flight-pdf-preview td small{display:block;color:#65788c;margin-top:6px}.flight-pdf-errors{border-color:#f2c5c5;background:#fffafa}.flight-pdf-errors h2{color:#a62e35}.flight-pdf-errors li{margin:7px 0}.flight-pdf-preview table{width:100%;border-collapse:collapse}.flight-pdf-preview th,.flight-pdf-preview td{text-align:left;vertical-align:top;border-bottom:1px solid #e2e9ef;padding:14px}.flight-pdf-preview th{background:#f1f6f9}.flight-pdf-apply{display:flex;justify-content:flex-end;margin-top:18px}@media(max-width:800px){.flight-pdf-page{padding:14px}.flight-pdf-picker{grid-template-columns:1fr}.flight-pdf-preview .table-scroll{overflow:auto}.flight-pdf-preview table{min-width:760px}}

/* V310 transport timeline and reusable vehicle catalog */
.transport-toolbar{align-items:end;gap:10px}.transport-toolbar .manual-choice-tip{margin-right:auto;color:#66788a}.transport-toolbar label{width:min(440px,100%);margin:0}.transport-toolbar select{min-height:45px}.vehicle-details{grid-column:1/-1;display:grid;grid-template-columns:1.25fr 1fr 1fr .7fr 1.2fr;gap:12px;padding:14px;border:1px solid #b8d8dc;border-radius:12px;background:#eef9f8}.vehicle-details label{margin:0}.vehicle-details[hidden]{display:none}.transport-item.vehicle-mode{border-color:#94c9c8;background:#f5fbfa}.transport-item.vehicle-mode .lookup-status{display:none}@media(max-width:900px){.vehicle-details{grid-template-columns:1fr 1fr}.vehicle-details label:last-child{grid-column:1/-1}}@media(max-width:600px){.transport-toolbar{display:grid}.transport-toolbar label,.transport-toolbar button{width:100%}.vehicle-details{grid-template-columns:1fr}.vehicle-details label:last-child{grid-column:auto}}

/* V313 sticky transport actions */
.transport-dialog-actions{gap:10px}.transport-dialog-actions #add-transport{background:#087f8c}.transport-dialog-actions [data-close="transport-dialog"]{background:#e8eef3;color:#24384c}@media(max-width:600px){.transport-dialog-actions button{width:auto;min-width:0;flex:1}}
.transport-dialog-actions .transport-complete-button,.hotel-dialog-actions .hotel-complete-button{margin-right:auto;background:#fff4dc;color:#805600;border:1px solid #e8c36c}.transport-dialog-actions .transport-complete-button.is-completed,.hotel-dialog-actions .hotel-complete-button.is-completed{background:#e4f6f2;color:#087269;border-color:#62b7ad}.transport-list.transport-completed .transport-item,.hotel-list.hotel-completed .hotel-item{border-color:#91c9bf}.hotel-list.hotel-completed .hotel-item{pointer-events:none}.transport-dialog-actions #add-transport:disabled,.hotel-dialog-actions #add-hotel:disabled{background:#c7d1da;color:#657689;cursor:not-allowed}@media(max-width:600px){.transport-dialog-actions,.hotel-dialog-actions{flex-wrap:wrap}.transport-dialog-actions .transport-complete-button,.hotel-dialog-actions .hotel-complete-button{flex-basis:100%;margin-right:0}}
.linked-flight-summary[role=button]{display:block;padding:6px 8px;border:1px dashed #8dbec4;border-radius:8px;cursor:pointer}.linked-flight-summary[role=button]:hover,.linked-flight-summary[role=button]:focus-visible{background:#eaf7f6;color:#087269;outline:2px solid #78c9cf}.transport-list.transport-completed .transport-item.airline-mode{pointer-events:auto}.flight-management-mode .transport-list.transport-completed{opacity:1}
.flight-management-mode #complete-transports,.flight-management-mode #add-transport,.flight-management-mode #add-flight{display:none!important}.transport-dialog:not(.flight-management-mode) #add-flight{display:none!important}
.transport-item.last-day-airport-transfer .last-day-flight-field input,.transport-item.last-day-airport-transfer .last-day-flight-time-field input{background:#eef8f6;color:#087269;font-weight:800}.transport-item.last-day-airport-transfer .station-field,.transport-item.last-day-airport-transfer .last-day-flight-field,.transport-item.last-day-airport-transfer .last-day-flight-time-field{min-width:0}
.transport-item.last-day-airport-transfer .vehicle-end-date-field,.transport-item.last-day-airport-transfer .last-day-original-service-field,.transport-item.last-day-airport-transfer .last-day-original-departure-time-field,.transport-item.last-day-airport-transfer .lookup-cell,.transport-item.last-day-airport-transfer .vehicle-departure-flight{display:none!important}
.card-hotel-summary{display:grid;gap:5px;margin:16px 0}.card-hotel-summary p{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;margin:0;line-height:1.4}.card-hotel-summary span{color:#53657a;font-weight:700;white-space:nowrap}.card-hotel-summary b{min-width:0;font-weight:650;overflow-wrap:anywhere}.card-hotel-summary .hotel-missing{display:block;color:#738399}

/* V339 compact package search beside the month picker */
.schedule-search-filters{grid-template-columns:12ch 180px auto auto;width:max-content;max-width:100%;margin-left:auto}.schedule-search-filters>input[name=q]{width:12ch;min-width:12ch}.schedule-search-reset{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border-radius:9px;background:#e8eef3;color:#24384c;font-weight:750}@media(max-width:800px){.schedule-search-filters{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;width:100%}.schedule-search-filters>input[name=q]{flex:0 0 12ch}.schedule-search-filters>input[type=month]{flex:0 0 180px}.schedule-search-filters>button,.schedule-search-reset{flex:0 0 auto}}

/* V343 reservation-board code filter */
.gantt-code-search{display:flex;align-items:center;gap:8px;margin-left:auto}.gantt-code-search input[name=q]{width:14ch;min-width:14ch}.gantt-code-search a{padding:11px 12px;border-radius:9px;background:#e8eef3;color:#24384c;font-weight:750}@media(max-width:800px){.gantt-code-search{margin-left:0;justify-content:flex-end;width:100%}.gantt-code-search input[name=q]{width:14ch}}
