
:root{--grid-height:clamp(480px,calc(100vh - 190px),600px);font-family:Arial,sans-serif;color:#172d46;background:#edf2f7;font-size:16px}*{box-sizing:border-box}body{margin:0}header{background:#0c2544;color:white;padding:22px 32px;display:flex;align-items:center;justify-content:space-between;gap:18px}.header-right{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:22px}.eft-logo{width:300px;max-width:100%;max-height:85px;object-fit:contain;background:white;border-radius:5px;padding:6px}.eft-logo[hidden]{display:none}h1{font-size:24px;margin:0}header small{display:block;color:#a6bbd0;margin-top:7px;font-size:14px}main{padding:24px 32px;max-width:1700px;margin:auto}h2{font-size:20px;margin:0 0 18px}h3{font-size:17px}.panel{background:white;border:1px solid #d5dfea;border-radius:10px;padding:22px;margin-bottom:20px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.field{display:flex;flex-direction:column;gap:7px;font-size:14px}button,.filebutton{background:white;color:#172d46;border:1px solid #b6c8da;padding:10px 15px;border-radius:6px;font:inherit;font-size:14px;cursor:pointer;display:inline-block}button:hover,.filebutton:hover{background:#e9f2f9}button.primary{background:#087862;border-color:#087862;color:white;font-weight:bold}input,select{font:inherit;font-size:14px;padding:9px;border:1px solid #bacbdc;border-radius:5px}input[type=checkbox]{accent-color:#087862;width:18px;height:18px;cursor:pointer}table{border-collapse:collapse;width:100%}th,td{border:1px solid #dde5ee;padding:9px;text-align:center;font-size:14px}th{background:#f0f5fa;font-weight:600}th:first-child{text-align:left}.scroll{overflow:auto}td label{display:flex;justify-content:center}summary{cursor:pointer;font-size:16px;font-weight:600}details{margin-top:18px}.muted{color:#586d83;font-size:14px;line-height:1.6}.stats{display:flex;gap:14px;flex-wrap:wrap;margin:20px 0}.stat{flex:1;min-width:155px;background:white;border:1px solid #d5dfea;border-radius:8px;padding:15px 20px}.stat strong{display:block;font-size:27px;margin-bottom:7px}.stat span{font-size:14px;color:#586d83}.notice{padding:13px 16px;border-radius:6px;background:#e2f4ed;border-left:4px solid #087862;font-size:14px;margin:15px 0;line-height:1.5}.notice.warn{background:#fff1d9;border-color:#cf8113}.week{padding:0;overflow:hidden}.week h2{padding:20px 22px;margin:0}.calendar{display:grid;grid-template-columns:65px repeat(5,minmax(170px,1fr));min-width:980px}.dayhead{padding:14px 8px;text-align:center;background:#f0f5fa;border-left:1px solid #dae4ee;font-size:14px;font-weight:bold}.dayhead button{padding:4px 8px;margin-top:7px;font-size:12px}.dayhead small{display:block;font-weight:normal;margin-top:6px}.hours{position:relative;height:var(--grid-height)}.hour{position:absolute;font-size:13px;left:12px;color:#60748b}.day{height:var(--grid-height);position:relative;border-left:1px solid #dae4ee;background:linear-gradient(to bottom,transparent calc(100% - 1px),#e2e9f0 0);background-size:100% calc(var(--grid-height)/var(--timeline-hours,10))}.block.unaccompanied{border:3px solid #d52b35;print-color-adjust:exact}.solo-key{border:2px solid #d52b35;padding:2px 6px;border-radius:4px}.block{position:absolute;border:1px solid #a1b9cf;border-radius:6px;overflow:hidden;background:white;text-align:left;padding:0;font-size:14px;cursor:pointer;color:#172d46;min-width:0}.person-filters{display:flex;flex-wrap:wrap;gap:7px;position:sticky;top:0;z-index:5;background:#edf2f7;padding:8px 0}.person-filters button[aria-pressed=true]{background:#0c4264;color:white}.block{print-color-adjust:exact}.block .phase{padding:4px;background:color-mix(in srgb,var(--aircraft-color) 14%,white)}.block .flight{padding:4px;background:var(--aircraft-color);color:#102439}.block .flight b{margin:0}.phase{height:var(--phase-height,37.5%);overflow:hidden;padding:7px;background:#f2f6fa;font-size:12px;color:#526b83}.flight{height:var(--flight-height,25%);overflow:auto;background:#0c4264;color:white;padding:7px}.flight b{display:block;margin-bottom:5px;font-size:14px}.crew{display:flex;flex-wrap:wrap;gap:3px}.chip{background:#e0f4ed;color:#075b4b;padding:2px 4px;border-radius:3px;font-size:12px;white-space:nowrap}.chip.tp{background:#e0edff;color:#1c467b}.chip.lfte{background:#fff0d1;color:#785210}.plane{font-size:13px;display:inline-block;margin-bottom:4px}.emptyday{padding:25px 8px;color:#6b7f93;font-size:14px}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:14px;margin-bottom:16px}.done{background:#ddf2e9;color:#09644c}.open{color:#9a640b;background:#fff4df}dialog{border:0;border-radius:10px;max-width:560px;width:95%;padding:24px;color:#172d46}dialog::backdrop{background:#0c254499}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.checks{display:flex;gap:15px;margin:18px 0}.checks label{display:flex;align-items:center;gap:6px}.dialogbar{display:flex;justify-content:end;gap:10px;margin-top:20px}.inline{display:inline-flex;gap:8px;align-items:center;margin:8px 16px 8px 0}.progress{height:5px;background:#d8e4f0;margin-top:10px}.progress div{height:5px;background:#087862}footer{color:#586d83;font-size:14px;line-height:1.5;padding:0 0 25px}.errors{white-space:pre-line;color:#a23620;font-size:14px}button:focus-visible,summary:focus-visible{outline:3px solid #12a783;outline-offset:3px}@media(max-width:700px){header{padding:18px;display:block}header .tag{margin-top:12px}main{padding:16px}.panel{padding:16px}.week{padding:0}.formgrid{grid-template-columns:1fr}.stats{gap:8px}.stat{min-width:135px}.toolbar>*{max-width:100%}}@media print{header{background:white;color:#172d46}#settings,.toolbar,.no-print,dialog{display:none}.panel{break-inside:avoid}.week{break-before:page}.calendar{min-width:0;grid-template-columns:45px repeat(5,1fr)}main{padding:0}.dayhead{font-size:12px}.block{font-size:12px}.flight{padding:4px}.phase{padding:4px}.chip{font-size:10px}body{background:white}}

.view-controls{margin-bottom:18px}.view-controls button[aria-pressed=true]{background:#0c4264;color:white}.daily-panel{padding:0;overflow:hidden}.daily-title{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;gap:10px}.daily-title h2{margin:0}.plane-legend{display:flex;flex-wrap:wrap;gap:7px;padding:0 20px 16px}.plane-key{display:inline-flex;align-items:center;gap:6px;border:1px solid #bccbdd;border-radius:4px;background:white;padding:4px 7px;font-size:13px}.plane-swatch{width:14px;height:14px;border:1px solid #596c81;border-radius:2px;display:inline-block}.daily-grid{display:grid;grid-template-columns:60px repeat(var(--person-count,10),minmax(105px,1fr));min-width:var(--daily-min-width,1160px)}.daily-group{padding:10px;text-align:center;font-size:14px;font-weight:bold;border-bottom:1px solid #cbd8e4;background:#e4edf5}.daily-group.tp-group{background:#dfeaff}.daily-group.lfte-group{background:#fff0d0}.daily-name{padding:12px 5px;text-align:center;background:#f4f7fa;border-bottom:1px solid #cbd8e4;border-left:1px solid #dce4ec;font-size:14px;font-weight:bold}.group-start{border-left:6px solid #b1c0d0!important}.daily-column{height:var(--grid-height);position:relative;border-left:1px solid #dce4ec;background:linear-gradient(to bottom,transparent calc(100% - 1px),#e2e9f0 0);background-size:100% calc(var(--grid-height)/var(--timeline-hours,10))}.daily-column.unavailable{background-color:#f2f4f6}.daily-block{position:absolute;left:3px;right:3px;border:1px solid #849ab0;border-radius:5px;padding:0;overflow:hidden;text-align:left;cursor:pointer;display:block;color:#102439;font:inherit;print-color-adjust:exact}.daily-block.unaccompanied{border:3px solid #d52b35}.daily-phase{height:var(--phase-height);padding:5px;font-size:12px;overflow:hidden;background:color-mix(in srgb,var(--aircraft-color) 14%,white)}.daily-flight{height:var(--flight-height);background:var(--aircraft-color);padding:4px;overflow:auto;font-size:12px;line-height:1.15}.daily-flight b{font-size:14px;display:block;margin-bottom:3px}.daily-flight span{display:block}.daily-block:hover{box-shadow:0 0 0 2px #0c4264}.daily-block:focus-visible{outline:3px solid #0c4264;outline-offset:2px}.no-day-flights{margin:0;padding:16px 20px;color:#60748b;font-size:14px}
@media print{.view-controls,.dayhead button{display:none!important}.daily-grid{min-width:0;grid-template-columns:45px repeat(var(--person-count,10),minmax(0,1fr))}.daily-group,.daily-name{font-size:12px}.daily-phase{font-size:10px;padding:3px}.daily-flight{font-size:10px;padding:3px}.daily-flight b{font-size:12px}.daily-title{padding:12px}.plane-key{font-size:10px}.daily-panel{break-inside:avoid}body.day-print main>*:not(.planner-section){display:none!important}body.day-print .planner-section>.legend,body.day-print .person-filters,body.day-print #filterinfo,body.day-print #calendar{display:none!important}body.day-print #dayview{display:block!important}body.day-print main{padding:0}.daily-block{box-shadow:none!important}.group-start{border-left-width:3px!important}}
@media print{body.week-print{--grid-height:480px}body.week-print main>*:not(.planner-section){display:none!important}body.week-print .planner-section>.legend,body.week-print .person-filters,body.week-print #dayview{display:none!important}body.week-print #calendar{display:block!important}body.week-print .week:first-child{break-before:auto}body.week-print .week{break-inside:avoid;break-before:page}body.week-print header{padding:12px 0}body.week-print .scroll{overflow:visible}}
body.user-mode .block,body.user-mode .daily-block{cursor:default}body.user-mode .daily-block:hover{box-shadow:none}[hidden]{display:none!important}button.cancel-flight{color:#a51e2a;border-color:#d52b35;margin-right:auto}button.cancel-flight:hover{background:#fff0f1}.dialogbar{flex-wrap:wrap}.no-flights-row th,.no-flights-row td{background:#fff1df}.no-flights-row th{color:#86491c}.toms-distance{margin-top:12px;padding:12px;border:1px solid #d9e0e6;border-radius:9px}.toms-distance-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}.toms-distance-fields input{width:100%}.toms-distance-fields label{display:block}body.user-mode .block,body.user-mode .daily-block{cursor:pointer}body.user-mode .daily-block:hover{box-shadow:0 2px 8px #0002}
/* v4.5.29: completed signed flights are visually distinct in week and day planning. */
#toms-flight-planning .flight-completed, .flight-completed {filter:grayscale(1);background-color:#e3e5e8!important;color:#444!important;border-color:#aeb4bb!important;opacity:.76;}
.flight-completed .phase,.flight-completed .flight,.flight-completed .daily-phase,.flight-completed .daily-flight{background:#e3e5e8!important;color:#444!important;border-color:#aeb4bb!important;}
.flight-completed .chip{background:#d2d6da!important;color:#444!important;}
