.airport-map_root__LRGfd{--map-boundary:#edf2ea;--map-apron:#d5dfea;--map-surface:#e1e8ed;--map-line:#9eafbf;--map-runway:#71869a;--map-taxiway:#a4b5c6;--map-stand-line:#537f9f;--map-road:#cad5df;--map-building-side:#a2b8cd;--map-building-top:#e4edf6;--map-building-border:#718da8;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 240px;background:#f6f9fd;color:#233e5a;border:1px solid #d8e2ee;border-radius:8px;overflow:hidden}.airport-map_root__LRGfd[data-theme=dark]{--map-boundary:#1b3545;--map-apron:#405468;--map-surface:#2b4657;--map-line:#607589;--map-runway:#8094a7;--map-taxiway:#536a7e;--map-stand-line:#65859c;--map-road:#30485d;--map-building-side:#365771;--map-building-top:#7897ad;--map-building-border:#abc1d0;background:#101f35;color:#dce8f9}.airport-map_scene__fmbvt{min-width:0;position:relative;min-height:520px;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#253e58,#101f35 75%)}.airport-map_canvas__lP1oB{display:block;width:100%;height:520px;touch-action:none;cursor:grab;outline-offset:-4px}.airport-map_canvas__lP1oB:active{cursor:grabbing}.airport-map_controls__ikgPc{position:absolute;top:12px;left:12px;right:12px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;pointer-events:none}.airport-map_controls__ikgPc>*{pointer-events:auto}.airport-map_controls__ikgPc button,.airport-map_controls__ikgPc select{min-height:34px;background:#17304c;color:#edf5ff;border:1px solid #466080;border-radius:6px;padding:5px 9px;font-size:12px}.airport-map_controls__ikgPc button[aria-pressed=true]{background:#1663af}.airport-map_controls__ikgPc span{margin-left:auto;font-size:11px;background:#17304c;padding:7px;border-radius:5px}.airport-map_footnote__L9vo8{position:absolute;bottom:10px;left:12px;right:12px;display:flex;justify-content:space-between;gap:12px;align-items:end;font-size:10px;pointer-events:none}.airport-map_footnote__L9vo8 a{color:#b1ceef;pointer-events:auto}.airport-map_footnote__L9vo8 p{max-width:390px;margin:0;background:#102038e6;padding:6px;border-radius:4px}.airport-map_sidebar__YrycU{border-left:1px solid #344b65;display:flex;flex-direction:column;max-height:520px;min-width:0;background:#14263e}.airport-map_summary__H1KnS{padding:12px;border-bottom:1px solid #344b65;font-size:11px;line-height:1.5}.airport-map_summary__H1KnS strong{font-size:13px;display:block;margin-bottom:4px;color:#fff}.airport-map_list__4fkyx{overflow:auto;min-height:0;padding:5px}.airport-map_list__4fkyx button{width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid #2b405a;color:#e1ecfa;padding:10px 8px;min-height:44px;border-radius:4px;display:flex;flex-direction:column;gap:3px;font-size:11px}.airport-map_list__4fkyx button:hover{background:#203e60}.airport-map_canvas__lP1oB:focus-visible,.airport-map_controls__ikgPc button:focus-visible,.airport-map_list__4fkyx button:focus-visible{outline:2px solid #86c8ff;outline-offset:-2px}.airport-map_list__4fkyx button strong{font-size:12px;color:#85c5ff}.airport-map_list__4fkyx small{color:#a8bdd6}.airport-map_empty___UUZB{padding:22px;text-align:center;font-size:12px}.airport-map_stand__9cziq circle{fill:#1f4667;stroke:#8fbee6;stroke-width:1;vector-effect:non-scaling-stroke}.airport-map_stand__9cziq text{fill:#cce5ff;paint-order:stroke;stroke:#102039;stroke-width:3px;font-family:inherit;font-size:11px}.airport-map_root__LRGfd[data-theme=light] .airport-map_scene__fmbvt{background:radial-gradient(ellipse at 50% 45%,#fff,#eef4fa 75%)}.airport-map_root__LRGfd[data-theme=light] .airport-map_controls__ikgPc button,.airport-map_root__LRGfd[data-theme=light] .airport-map_controls__ikgPc select,.airport-map_root__LRGfd[data-theme=light] .airport-map_controls__ikgPc span{background:#ffffffeb;color:#254c71;border-color:#b9cce0}.airport-map_root__LRGfd[data-theme=light] .airport-map_controls__ikgPc button[aria-pressed=true]{background:#e2efff;color:#075ec4;border-color:#74a9df}.airport-map_root__LRGfd[data-theme=light] .airport-map_sidebar__YrycU{background:#f8fbff;border-color:#d5e0ec}.airport-map_root__LRGfd[data-theme=light] .airport-map_list__4fkyx button,.airport-map_root__LRGfd[data-theme=light] .airport-map_summary__H1KnS{border-color:#d5e0ec}.airport-map_root__LRGfd[data-theme=light] .airport-map_summary__H1KnS strong{color:#1a3552}.airport-map_root__LRGfd[data-theme=light] .airport-map_list__4fkyx button{color:#294c6c}.airport-map_root__LRGfd[data-theme=light] .airport-map_footnote__L9vo8 a,.airport-map_root__LRGfd[data-theme=light] .airport-map_list__4fkyx button strong{color:#075daa}.airport-map_root__LRGfd[data-theme=light] .airport-map_list__4fkyx small{color:#506b85}.airport-map_root__LRGfd[data-theme=light] .airport-map_list__4fkyx button:hover{background:#e7f0fb}.airport-map_root__LRGfd[data-theme=light] .airport-map_footnote__L9vo8 p{background:#fffffff0;color:#385776}.airport-map_root__LRGfd[data-theme=light] .airport-map_stand__9cziq circle{fill:#fff;stroke:#367cab}.airport-map_root__LRGfd[data-theme=light] .airport-map_stand__9cziq text{fill:#153d63;stroke:#fff}@media(max-width:850px){.airport-map_root__LRGfd{grid-template-columns:1fr}.airport-map_sidebar__YrycU{border-left:0;border-top:1px solid #344b65;max-height:230px}.airport-map_scene__fmbvt{min-height:420px}.airport-map_canvas__lP1oB{height:420px}.airport-map_controls__ikgPc button,.airport-map_controls__ikgPc select{min-height:44px}.airport-map_controls__ikgPc span{display:none}.airport-map_footnote__L9vo8{font-size:9px}.airport-map_footnote__L9vo8 p{max-width:240px}}@media(max-width:1100px),(pointer:coarse){.airport-map_controls__ikgPc button,.airport-map_controls__ikgPc select{min-height:44px}}@media print{.airport-map_root__LRGfd{display:none}}.shiftBrowserFilters{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border-bottom:1px solid var(--border,#d9e3ef)}.shiftBrowserFilters input,.shiftBrowserFilters>*{min-width:150px;flex:1 1}.shiftBrowserDialog>input,.shiftBrowserFilters input{border:1px solid #d9e3ef;border-radius:10px;padding:10px 12px;color:inherit;background:var(--surface,#fff);font:inherit}.shiftPlanningToolHint{margin:0;padding:0 12px 10px;color:var(--text-secondary);font-size:11px;line-height:1.45}.shiftPlanningTools .shiftBrowserFilters .secondaryButton{min-height:42px;white-space:normal;line-height:1.25;text-align:center}.shiftEmployeeScroll{overflow:auto;max-height:650px}.shiftEmployeeTable{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}.shiftEmployeeTable td,.shiftEmployeeTable th{min-width:130px;padding:8px;border-right:1px solid #d9e3ef;border-bottom:1px solid #d9e3ef;vertical-align:top}.shiftEmployeeTable thead th{position:sticky;top:0;z-index:2;background:var(--surface,#f7f9fc)}.shiftEmployeeTable tbody th{position:sticky;left:0;z-index:1;background:var(--surface,#fff);min-width:190px;text-align:left}.shiftEmployeeTable th small{display:block;margin-top:4px;font-weight:400}button.shiftCalendarItem{display:grid;gap:3px;width:100%;min-width:0;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--surface,#fff)}.shiftCalendarItem>span{white-space:nowrap}button.shiftCalendarItem:hover{background:#eef5ff}button.shiftCalendarItem:focus-visible{outline:2px solid #006bff;outline-offset:2px}.shiftBrowserPagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px}.shiftScopeSummary{padding:6px 12px;font-size:11px;color:var(--text-secondary);border-bottom:1px solid var(--border,#d9e3ef)}.shiftBrowserDialog{position:fixed;margin:auto;border:1px solid #d9e3ef;border-radius:16px;padding:20px;width:min(620px,calc(100vw - 32px));max-height:85vh;overflow:auto;color:inherit;background:var(--surface,#fff)}.shiftBrowserDialog::backdrop{background:rgba(18,32,57,.45)}.shiftDayList{display:grid;gap:8px;margin-top:12px;max-height:50vh;overflow:auto}.shiftBrowserDetails{display:grid;grid-template-columns:1fr 2fr;gap:12px}.shiftBrowserDetails dd{margin:0;min-width:0;overflow-wrap:anywhere;font-weight:600}.shiftDropTarget{background:#eef8f2!important;outline:1px dashed #379967;outline-offset:-2px}.shiftHolidayButton{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.shiftCalendarDay.isWeekend,.shiftEmployeeTable .isWeekend{background:#fffaf0}.shiftCalendarDay.isWeekend>header,.shiftEmployeeTable thead .isWeekend{background:#fff3d8}.shiftCalendarDay.isHoliday,.shiftEmployeeTable .isHoliday{background:#fff7f7}.shiftCalendarDay.isHoliday>header,.shiftEmployeeTable thead .isHoliday{background:#ffe8e8;color:#9f2525}.shiftCalendarDay>header small,.shiftEmployeeTable thead th small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;text-transform:none}.shiftHolidayDialog{display:grid;gap:14px}.shiftHolidayDialog>p{margin:0;color:var(--text-muted,#64748b)}.shiftHolidayLegend{display:flex;gap:8px;flex-wrap:wrap}.shiftHolidayLegend span{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}.shiftHolidayLegend .weekend{background:#fff3d8;color:#835500}.shiftHolidayLegend .holiday{background:#ffe8e8;color:#9f2525}.shiftHolidayRows{display:grid;max-height:52vh;overflow:auto;border:1px solid #d9e3ef;border-radius:12px}.shiftHolidayRows article{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:10px 12px;border-bottom:1px solid #d9e3ef}.shiftHolidayRows article:last-child{border-bottom:0}.shiftHolidayRows time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-muted,#64748b)}.shiftChangeEditor,.shiftChangeFields,.shiftChangeReview{min-width:0;max-width:100%;box-sizing:border-box}.shiftChangeFields{border:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.shiftChangeFields label,.shiftChangeReview label{display:grid;min-width:0;gap:6px;font-size:13px}.shiftChangeFields label>small{color:var(--text-tertiary,#6f8096);font-size:11px;line-height:1.35}.shiftChangeFields label>*,.shiftChangeReview label>*{min-width:0;max-width:100%;box-sizing:border-box}.shiftChangeFields input,.shiftChangeReview textarea{width:100%;min-width:0;box-sizing:border-box;border:1px solid #d9e3ef;border-radius:10px;padding:10px;color:inherit;background:var(--surface,#fff);font:inherit}.shiftChangeReview{margin-top:16px;padding:12px;background:var(--surface,#f7f9fc);border:1px solid #d9e3ef;border-radius:12px}.shiftChangeReview label{margin:12px 0}.shiftDayProposalList{max-height:400px;overflow:auto;display:grid;gap:8px}.shiftDayProposalList label{display:flex;align-items:flex-start;gap:10px}.shiftDayProposalList small{display:block;color:#64748b}.shiftPlanningTools{padding:12px}@media(max-width:520px){.shiftChangeFields{grid-template-columns:1fr}}