:root{--fixed-width:252px;--metrics-width:244px}
.fixed-week,.fixed-days,.line-info{grid-template-columns:18px 26px 22px 30px 42px 38px 36px 40px}
.sort-percent-value{color:#2d6d89;text-align:center;font:600 9px ui-monospace,SFMono-Regular,Menlo,monospace}
.line-select{width:14px;height:14px;justify-self:center;margin:0;accent-color:#238bb2;cursor:pointer}
.line-override-select{appearance:none;width:14px;height:14px;justify-self:center;margin:0;border:1.5px solid #a4adb5;border-radius:3px;background:#fff;cursor:pointer;vertical-align:middle}
.line-override-select:checked{border-color:#c83f46;background-color:#c83f46;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 14V2m1 1h7l-2 3 2 3H5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:12px 12px;background-position:center;background-repeat:no-repeat}
.line-override-select:focus-visible{outline:2px solid #d98589;outline-offset:2px}
.bulk-move-button{padding:0 9px;color:#526574;font-size:10px;white-space:nowrap}
.bulk-move-button:hover:not(:disabled){background:#eaf3f7;color:#245f7b}
.bulk-move-button:disabled{opacity:.42;cursor:default}
@media(max-width:1300px){:root{--fixed-width:238px;--metrics-width:230px}.fixed-week,.fixed-days,.line-info{grid-template-columns:18px 25px 21px 28px 40px 37px 33px 36px}.bulk-move-button{padding:0 7px}}
@media(max-width:900px){:root{--fixed-width:224px;--metrics-width:220px}.fixed-week,.fixed-days,.line-info{grid-template-columns:16px 24px 20px 26px 38px 35px 31px 34px}.bulk-move-button{padding:0 5px;font-size:9px}}

/* Keep package metrics on the right; commute ease sits beside SORT %. */
:root{--fixed-width:300px;--metrics-width:126px}
.fixed-week,.fixed-days,.line-info,.fixed-month{grid-template-columns:18px 26px 22px 30px 42px 38px 36px 40px 48px}
.metrics,.metric-labels{grid-template-columns:repeat(3,minmax(0,1fr))}
.commute-percent-value{color:#287a63;text-align:center;font:700 9px ui-monospace,SFMono-Regular,Menlo,monospace}
.commute-percent-value.commute-difficulty-easy{color:#218447}
.commute-percent-value.commute-difficulty-good{color:#70a97b}
.commute-percent-value.commute-difficulty-hard{color:#d8878c}
.commute-percent-value.commute-difficulty-poor{color:#c63d46}
@media(max-width:1300px){:root{--fixed-width:282px;--metrics-width:114px}.fixed-week,.fixed-days,.line-info,.fixed-month{grid-template-columns:18px 24px 20px 28px 40px 36px 34px 36px 46px}}
@media(max-width:900px){:root{--fixed-width:256px;--metrics-width:102px}.fixed-week,.fixed-days,.line-info,.fixed-month{grid-template-columns:16px 23px 18px 25px 36px 32px 30px 34px 42px}}

/* Dates Off priorities tint their calendar columns without obscuring trip bars. */
.date-priority-shade{z-index:0;pointer-events:none}
.shade-priority-1.date-priority-shade{background:rgba(197,65,65,.09)}
.shade-priority-2.date-priority-shade{background:rgba(223,137,40,.10)}
.shade-priority-3.date-priority-shade{background:rgba(52,150,77,.09)}
.day-heading.shade-priority-1{background:#f8e7e7}
.day-heading.shade-priority-2{background:#fff1df}
.day-heading.shade-priority-3{background:#e7f3e9}

/* Line schedules use the blue palette shown by the line-type legend. */
.legend-line,.display-legend .legend-line{border-color:#7caecc;background:#d8eaf5}
.color-coding .leg-chip.kind-line{border-color:#77afd1;background:#b6ddf4;color:#234f6c}
.color-coding .trip-span.kind-line{border-color:#7caecc;background:#d8eaf5;color:#315d78}
.color-coding.trip-footprint-only .trip-footprint.kind-line{border-color:#7caecc;background:#d8eaf5;color:#315d78}

.submission-actions{display:flex;align-items:center;gap:5px;margin-left:auto;position:relative}
.submit-menu{position:absolute;top:calc(100% + 7px);right:0;z-index:25;width:min(440px,calc(100vw - 36px));padding:12px;border:1px solid #a9c7d7;border-radius:5px;background:#fff;box-shadow:0 8px 24px #19364630;color:#344b59}
.submit-menu[hidden]{display:none}
.submit-menu label{display:block;margin-bottom:7px;font-size:11px;font-weight:700}
.submit-menu textarea{display:block;width:100%;min-height:105px;max-height:35vh;resize:vertical;padding:8px;border:1px solid #cbd8df;border-radius:3px;background:#f8fafb;color:#344b59;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
.submit-menu button{display:block;margin:9px 0 0 auto;padding:7px 10px;border:1px solid #317f9e;border-radius:3px;background:#317f9e;color:#fff;font-size:11px;font-weight:700;cursor:pointer}
.submit-filter-warning{color:#a7443b;font-size:9px;line-height:1.25;white-space:nowrap;flex:none}
.submit-filter-warning[hidden]{display:none}
.senior-bid-count{padding:5px 8px;border-radius:3px;background:#f5f7f8;color:#667785;font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}
.captain-awards-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.captain-awards-actions input[type=file]{flex:1;min-width:210px;margin:0}
.captain-awards-dialog #captain-awards-status{color:#45677b;font-size:11px;min-height:18px}
.captain-source-summary-row{display:flex;align-items:center;gap:8px;max-width:100%;margin:0 0 8px;overflow-x:auto;white-space:nowrap}
.captain-awards-dialog #server-ca-award-indicator{display:inline-flex;flex:none;margin:0}
.captain-awards-dialog #server-ca-award-indicator[hidden]{display:none}
.captain-awards-dialog #captain-awards-source-status{flex:none;margin:0;white-space:nowrap}
.commute-coverage-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 12px;padding:8px 10px;border:1px solid #d5e1e7;border-radius:5px;background:#f8fafb;color:#456174;font-size:11px}
.commute-table-area .commute-coverage-row{margin:0;padding:0;border:0;background:transparent}
.commute-coverage-row>strong{color:#345367;white-space:nowrap}
.commute-coverage-list{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.commute-coverage-group{display:inline-flex;align-items:center;gap:4px;padding-left:8px;border-left:1px solid #d3dfe5;white-space:nowrap}
.commute-coverage-group:first-child{padding-left:0;border-left:0}
.commute-coverage-group>strong{margin-right:1px;color:#536e80;font-size:10px}
.commute-coverage-item{display:inline-flex;align-items:center;justify-content:center;min-width:27px;padding:3px 5px;border:1px solid currentColor;border-radius:4px;font-size:10px;font-weight:750}
.commute-coverage-item.is-loaded{background:#eff9f2;color:#237143}
.commute-coverage-item.is-missing{background:#fff1f1;color:#a53135}
.captain-awards-list-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 8px}
.captain-awards-dialog .captain-awards-list-head label{margin:0}
.captain-awards-list-head select{max-width:100%;padding:7px;border:1px solid #cbd6de;border-radius:5px;background:#fff;color:#344958}
.captain-awards-list-head #captain-awards-clear{margin-left:auto}
.captain-awards-list{max-height:36vh;min-height:40px;overflow:auto;border:1px solid #dbe4ea;border-radius:5px;background:#fbfdfe;color:#6b7c87;font-size:11px}
.captain-award-list-row{display:grid;grid-template-columns:95px minmax(0,1fr);gap:10px;padding:6px 10px;border-bottom:1px solid #e9eef1}
.captain-award-list-row:last-child{border-bottom:0}
.captain-award-list-row span{color:#657b8b;font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace}
.captain-award-list-row strong{color:#2072a5;font-weight:650}
.captain-award-list-row small{grid-column:2;color:#617483;font-size:10px;line-height:1.3}
.line-issues-tooltip .captain-award-tooltip{margin:2px 0 6px;padding:5px 6px;border-left:3px solid #3694cb;background:#eef8fd;color:#126b9e;font-weight:700}
.line-number.has-captain-award{position:relative;color:#126b9e;font-weight:800}
.line-number.has-captain-award::after{content:"";position:absolute;top:-3px;right:1px;width:4px;height:4px;border-radius:50%;background:#238bc2}
.trip-captain-award{margin:5px 0;color:#126b9e;font-weight:800;font-size:11px}
.trip-detail .trip-captain-award{margin:2px 0 0;font-size:10px}
.line-number.has-captain-award.has-no-fly-captain{color:#c32626}
.line-number.has-captain-award.has-good-captain:not(.has-no-fly-captain){color:#218348}
.captain-award-list-row{grid-template-columns:95px minmax(0,1fr) auto auto}
.captain-award-no-fly-control{display:flex;align-items:center;gap:4px;color:#637989;font-size:9px;white-space:nowrap}
.captain-award-no-fly-control input{width:13px;height:13px;margin:0;accent-color:#c32626}
.captain-award-good-control{display:flex;align-items:center;gap:4px;color:#637989;font-size:9px;white-space:nowrap}
.captain-award-good-control input{width:13px;height:13px;margin:0;accent-color:#218348}
.captain-no-fly-section{margin-top:15px;padding:12px;border:1px solid #dbe4ea;border-radius:5px;background:#f8fafb}
.captain-no-fly-heading-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.captain-no-fly-heading-row h3{margin:0}
.captain-no-fly-heading-row select{max-width:100%;padding:5px 8px;border:1px solid #cbd8df;border-radius:4px;background:#fff;color:#344958;font:inherit;font-size:10px}
.captain-no-fly-section h3{margin:0 0 5px;color:#344958;font-size:13px}
.captain-no-fly-section>p{margin:0 0 8px;color:#687b88;font-size:10px;line-height:1.4}
.captain-no-fly-list{color:#6b7c87;font-size:11px}
.captain-no-fly-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-top:1px solid #e5ebef}
.captain-no-fly-row:first-child{border-top:0}
.captain-no-fly-remove{padding:3px 7px;border:1px solid #d5b8b8;border-radius:3px;background:#fff;color:#9a3636;font-size:9px;cursor:pointer}
.captain-no-fly-clear{margin-top:8px}
.captain-good-section{margin-top:12px;padding:12px;border:1px solid #dbe4ea;border-radius:5px;background:#f8fafb}
.captain-good-heading-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.captain-good-heading-row h3{margin:0;color:#344958;font-size:13px}
.captain-good-heading-row select{max-width:100%;padding:5px 8px;border:1px solid #cbd8df;border-radius:4px;background:#fff;color:#344958;font:inherit;font-size:10px}
.captain-good-section>p{margin:0 0 8px;color:#687b88;font-size:10px;line-height:1.4}
.captain-good-list{color:#6b7c87;font-size:11px}
.captain-good-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-top:1px solid #e5ebef}
.captain-good-row:first-child{border-top:0}
.captain-good-remove{padding:3px 7px;border:1px solid #b7d6c0;border-radius:3px;background:#fff;color:#267343;font-size:9px;cursor:pointer}
.flight-color-legend .calendar-time-zone-note{margin-left:auto;color:#637989;font-weight:600}
body.not-commuter{--fixed-width:252px}
body.not-commuter .fixed-week,body.not-commuter .fixed-days,body.not-commuter .line-info{grid-template-columns:18px 26px 22px 30px 42px 38px 36px 40px}
body.not-commuter .fixed-week>.com-ease-debug-trigger,body.not-commuter .line-info>.commute-percent-value,body.not-commuter .metric-week>.com-ease-debug-trigger,body.not-commuter .metric-labels>.com-ease-debug-trigger,body.not-commuter .metrics>.commute-percent-value{display:none}
body.not-commuter .metric-week,body.not-commuter .metric-labels,body.not-commuter .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
body.not-commuter .flight-color-legend>span:has(.commute-easy-sample),body.not-commuter .flight-color-legend>span:has(.commute-hard-sample){display:none}
@media(max-width:1300px){body.not-commuter{--fixed-width:236px}body.not-commuter .fixed-week,body.not-commuter .fixed-days,body.not-commuter .line-info{grid-template-columns:18px 24px 20px 28px 40px 36px 34px 36px}}
@media(max-width:900px){body.not-commuter{--fixed-width:214px}body.not-commuter .fixed-week,body.not-commuter .fixed-days,body.not-commuter .line-info{grid-template-columns:16px 23px 18px 25px 36px 32px 30px 34px}}
.month-band{height:26px}
.week-band{top:26px}
.day-header{top:49px}
.top-actions .save-status{padding:0;font-size:9px;white-space:nowrap}
.top-actions .calendar-range{margin:0;color:#647482;font-size:9px;white-space:nowrap}
.server-data-indicator{padding:4px 7px;border:1px solid #b9dec7;border-radius:4px;background:#eff9f2;color:#237143;font-size:10px;font-weight:700;white-space:nowrap}
.server-data-indicator[data-state="neutral"]{border-color:#cbd8df;background:#f3f7f9;color:#506675}
.server-data-status{padding:8px 10px;border:1px solid #b9dec7;border-radius:5px;background:#eff9f2;color:#237143;font-size:11px;font-weight:650}
.server-data-status[data-state="neutral"],.server-data-status[data-state="pending"]{border-color:#cbd8df;background:#f3f7f9;color:#506675}
.server-data-status[data-state="error"]{border-color:#e5b4b4;background:#fff2f2;color:#a53135}
.fixed-month{display:grid;grid-template-columns:18px 26px 22px 30px 42px 38px 36px 40px 48px;align-items:center;padding:0;border-right:1px solid #d7dce1;white-space:nowrap;overflow:visible}
.ranking-actions{grid-column:1;display:flex;width:20px;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.ranking-actions.flag-actions{grid-column:2;width:26px}
.ranking-actions button{width:18px;height:18px;flex:0 0 18px;padding:0;border:1px solid #d6e0e6;border-radius:3px;background:#fff;color:#526574;font-size:11px;line-height:1;cursor:pointer}
.ranking-actions button:hover:not(:disabled){background:#eaf3f7;color:#245f7b;border-color:#a9c7d7}
.ranking-actions button:disabled{opacity:.4;cursor:default}
.metric-month{justify-content:flex-end;padding-right:9px;color:#647482;font:600 9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:0}
.fixed-week span:nth-child(2){color:#b8464d;font-weight:700}
.select-column-head,.flag-column-head{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:0;line-height:9px}
.select-column-head span,.flag-column-head span{font-size:7px;line-height:9px}
.flag-column-head span{color:#b8464d;font-weight:700}
.clear-marks-button{display:grid;place-items:center;width:13px;height:12px;padding:0;border:0;border-radius:2px;background:transparent;color:#778692;cursor:pointer}
.clear-marks-button svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.clear-selection-button,.clear-flag-button{color:#8f9aa3}
.clear-marks-button:hover{background:#fff;color:#344d5e;box-shadow:0 0 0 1px #cbd7de}
@media(max-width:1300px){.fixed-month{grid-template-columns:18px 24px 20px 28px 40px 36px 34px 36px 46px}.ranking-actions{width:18px}.ranking-actions.flag-actions{width:25px}}
@media(max-width:900px){.submission-actions{gap:1px}.fixed-month{grid-template-columns:16px 23px 18px 25px 36px 32px 30px 34px 42px}.ranking-actions{width:16px}.ranking-actions.flag-actions{width:24px}}

/* Detail drawer displays both the packet's local clock and its Zulu equivalent. */
.trip-times{font-size:8px;line-height:1.55;white-space:normal}
.segment-row{grid-template-columns:32px 56px minmax(68px,1fr) 38px 38px 82px;gap:4px;padding:7px}
.segment-date{display:flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.05;white-space:nowrap}
.segment-weekday{color:#536879;font:700 8px ui-monospace,SFMono-Regular,Menlo,monospace}
.segment-calendar-date{color:#84919b;font:8px ui-monospace,SFMono-Regular,Menlo,monospace}
.segment-time{display:flex;flex-direction:column;align-items:flex-start;justify-self:stretch;width:100%;min-width:0;gap:3px;color:#536879;text-align:left;white-space:nowrap;font:8px ui-monospace,SFMono-Regular,Menlo,monospace}
.segment-time span{display:block}
.segment-role{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:2px;min-width:0}
.segment-role-badge{display:inline-flex;align-items:center;justify-content:center;min-width:0;padding:5px 4px;border-radius:4px;font:700 9px ui-monospace,SFMono-Regular,Menlo,monospace}
.segment-role-badge.iro{background:#e7f3ec;color:#238653}
.segment-role-badge.deadhead{background:#f4e1c7;color:#79502b}
.segment-role-badge.commercial{background:#fff0a6;color:#775500}
.segment-layover{display:flex;align-items:center;justify-content:flex-start;min-width:0}
.segment-layover-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 3px;border-radius:4px;background:#d8edfa;color:#245b7b;font:700 8px ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}
.segment-layover-badge.segment-connection-time{padding:0 3px;border:0;background:transparent;color:#657887;font-weight:650}
@media(max-width:520px){.segment-row{grid-template-columns:28px 48px minmax(58px,1fr) 34px 34px 72px;gap:3px;padding:6px 5px}}


/* Blue dot marks lines with a loaded Captain award. */
.flight-color-legend .captain-award-sample{width:6px;height:6px;flex:none;border-radius:50%;background:#238bc2}


/* Actual trips on mixed VTO lines keep the regular blue trip palette. */
.trip-span.actual-trip{border-color:#74afd2;background:#c5e4f7;color:#4a7792}
.color-coding .trip-span.actual-trip{border-color:#74afd2;background:#c5e4f7;color:#4a7792}
.color-coding .leg-chip.actual-trip:not(.commercial-deadhead):not(.ups-deadhead){border-color:#83b9d8;background:#a9d5f2;color:#173e59}
.trip-footprint-only .trip-footprint.actual-trip{border-color:#7caecc;background:#d8eaf5;color:#315d78}
.color-coding.trip-footprint-only .trip-footprint.actual-trip{border-color:#7caecc;background:#d8eaf5;color:#315d78}

/* Keep mixed-line trip surfaces blue even when VTO color rules are active. */
body.color-coding .calendar-track .trip-span.actual-trip{border-color:#74afd2!important;background-color:#c5e4f7!important;color:#4a7792!important}
body.color-coding .calendar-track .trip-span.actual-trip::before{background-image:linear-gradient(90deg,#c5e4f7 80%,#c5e4f700)!important}
body.color-coding .calendar-track .leg-chip.actual-trip:not(.commercial-deadhead):not(.ups-deadhead){border-color:#83b9d8!important;background-color:#a9d5f2!important;color:#173e59!important}
body.trip-footprint-only .calendar-track .trip-footprint.actual-trip{border-color:#7caecc!important;background-color:#d8eaf5!important;color:#315d78!important}
body.color-coding.trip-footprint-only .calendar-track .trip-footprint.actual-trip{border-color:#7caecc!important;background-color:#d8eaf5!important;color:#315d78!important}
