.flight-panel{padding:20px;display:grid;gap:18px}
.flight-head,.flight-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.flight-head h2{margin:0 0 5px;color:#10213b;font-size:22px}.flight-head p,.flight-section-head span{margin:0;color:#66738b;font-size:14px}
.flight-message{padding:11px 13px;border-radius:8px;font-size:14px}.flight-message.ok{background:#edf9f0;color:#08752d}.flight-message.error{background:#fff0f0;color:#bb2020}
.flight-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #d9e2ec;border-radius:10px;overflow:hidden}
.flight-metrics article{padding:15px 17px;display:grid;gap:6px;border-right:1px solid #e3e8ef}.flight-metrics article:last-child{border:0}
.flight-metrics span,.flight-metrics small{color:#68758c;font-size:13px}.flight-metrics strong{font-size:17px;color:#10213b}.flight-metrics strong.live{color:#13853d}
.flight-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(290px,1fr);gap:16px}
.flight-map-card,.flight-log-card{border:1px solid #d9e2ec;border-radius:10px;padding:15px;min-width:0}
.flight-map-svg{display:block;width:100%;height:360px;margin-top:12px;border:1px solid #e1e8e2;border-radius:8px;background:#f7faf7}
.flight-path{fill:none;stroke-linecap:round;stroke-linejoin:round}.flight-path.zone{stroke:#91b49a;stroke-width:2;fill:#eaf4ec;fill-opacity:.65}
.flight-path.planned{stroke:#17783c;stroke-width:3;stroke-dasharray:8 6}.flight-path.actual{stroke:#ef8c1b;stroke-width:4}
.flight-marker circle{fill:#fff;stroke:#ef8c1b;stroke-width:4}.flight-marker path{fill:#ef8c1b}.flight-north{fill:none;stroke:#546376;stroke-width:2}.flight-north text{fill:#26374e;stroke:none;font-weight:700}
.flight-coordinate{font-size:11px;fill:#67758b}.flight-map-empty{height:360px;margin-top:12px;border:1px dashed #cfd9d1;border-radius:8px;display:grid;place-items:center;padding:20px;color:#6b778c;text-align:center;background:#f8faf8}
.flight-legend{display:flex;gap:12px;flex-wrap:wrap}.flight-legend span{display:flex;align-items:center;gap:5px}.flight-legend span:before{content:"";width:20px;height:3px;border-radius:2px;background:#91b49a}
.flight-legend .planned:before{background:#17783c}.flight-legend .actual:before{background:#ef8c1b}
.flight-upload{display:block;margin:14px 0 8px;border:1px dashed #aebcaf;border-radius:8px;padding:13px;text-align:center;color:#176f37;cursor:pointer;background:#f8fbf8}.flight-upload input{display:none}
.flight-log-list{display:grid;gap:8px;margin-top:14px;max-height:300px;overflow:auto}.flight-log{display:flex;justify-content:space-between;gap:10px;padding:10px;border:1px solid #e0e7ef;border-radius:8px;color:#10213b;text-decoration:none}
.flight-log:hover{border-color:#2e9854;background:#f5fbf7}.flight-log span{display:grid;gap:3px;min-width:0}.flight-log strong{overflow:hidden;text-overflow:ellipsis}.flight-log small{color:#68758c}.flight-log code{font-size:11px;color:#526178}
@media(max-width:1100px){.flight-metrics{grid-template-columns:repeat(2,1fr)}.flight-metrics article:nth-child(2){border-right:0}.flight-metrics article:nth-child(-n+2){border-bottom:1px solid #e3e8ef}.flight-grid{grid-template-columns:1fr}}
@media(max-width:680px){.flight-panel{padding:14px}.flight-head,.flight-section-head{align-items:stretch;flex-direction:column}.flight-metrics{grid-template-columns:1fr}.flight-metrics article{border-right:0;border-bottom:1px solid #e3e8ef!important}.flight-map-svg,.flight-map-empty{height:260px}.flight-legend{font-size:12px}}
