.control-note { margin: -.5rem 0 1rem; }
.control-kpis { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.control-kpis > div { display: flex; flex-direction: column; gap: .2rem; padding: .75rem; border-radius: 8px; background: #f1f5f7; }
.control-kpis small { color: var(--muted); font-size: .68rem; font-weight: 900; }
.control-kpis b { font-size: 1.05rem; }
.control-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.control-card-head h3 { margin:.15rem 0 0; }
.control-end-date { min-width:10.5rem; text-align:right; padding:.65rem .8rem; border-left:4px solid var(--blue); border-radius:7px; background:#edf4f8; }
.control-end-date small { display:block; color:var(--muted); font-size:.68rem; font-weight:900; letter-spacing:.07em; }
.control-end-date b { display:block; margin-top:.15rem; color:#071a2d; font-size:1.35rem; line-height:1.05; }
.control-leader { margin:.65rem 0; color:var(--muted); font-weight:800; }
.control-details { display:grid; gap:.8rem; margin-top:1rem; }
.control-detail-block { overflow:hidden; border:1px solid var(--line); border-radius:9px; }
.control-detail-block h4 { margin:0; padding:.65rem .8rem; background:#eaf1f5; font-size:.82rem; text-transform:uppercase; }
.control-detail-row.ongoing { border-left:4px solid #e6a72d; background:#fffaf0; }
.control-detail-row { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding:.65rem .8rem; border-top:1px solid var(--line); }
.control-detail-row div { min-width:0; display:grid; gap:.12rem; }
.control-detail-row span { color:var(--muted); font-size:.82rem; }
.control-detail-row strong { white-space:nowrap; }
.control-detail-row em { color:#c94d49; font-size:.75rem; font-style:normal; font-weight:900; text-transform:uppercase; }
.control-detail-empty { margin:0; padding:.65rem .8rem; color:var(--muted); font-size:.82rem; }
.visit-close-summary { margin-bottom:1rem; padding:1rem; border-radius:9px; background:#edf4f8; }
.visit-close-summary p { margin:.2rem 0; }
.visit-close-date { display:grid; gap:.4rem; font-weight:800; }
@media (max-width:650px){.control-card-head{display:block}.control-end-date{margin-top:.75rem;text-align:left}.control-kpis{grid-template-columns:1fr}}
.daily-production-filters{margin-bottom:1rem;padding:1rem 1.15rem;border:1px solid #9bcbd6;border-left:6px solid #55b8cb;border-radius:12px;background:#fff;box-shadow:var(--shadow)}
.daily-production-filters h3{margin:.15rem 0}
.daily-production-filters>.filters{margin-top:.8rem;align-items:end}
.daily-production-filters label{display:grid;gap:.3rem;font-weight:800}
.daily-production-filters input,.daily-production-filters select{min-width:190px}
.daily-mode-switch{display:flex;gap:.6rem;margin:1rem 0;padding:.45rem;border-radius:10px;background:#edf3f6}
.daily-mode-switch button{flex:1}.daily-mode-switch button.active{background:#236aa8;color:#fff}
#daily-visit-mode,#daily-technicians-mode{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(420px,1.4fr);gap:1rem;align-items:start;padding:1rem;border:1px solid #d4e0e5;border-radius:10px;background:#f9fbfc}
#daily-visit-mode>label{display:grid;gap:.35rem;font-weight:800}#daily-visit-mode select{width:100%}
.daily-technician-checks{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:.45rem;margin-top:.55rem}
.daily-technician-checks label{display:flex;align-items:center;gap:.35rem;padding:.5rem .6rem;border:1px solid #d4e0e5;border-radius:7px;background:#fff;font-weight:600}
.daily-technician-checks input{min-width:0;width:auto}.daily-check-actions{display:flex;gap:.4rem;margin-top:.5rem}.daily-check-actions button{padding:.35rem .55rem;font-size:.72rem}
.daily-generate{display:flex;justify-content:flex-end;margin-top:.8rem}
.daily-result-title{margin:1rem 0 0;padding:.85rem 1rem;border-left:5px solid #55b8cb;border-radius:7px;background:#fff;color:#10283d;box-shadow:var(--shadow)}
@media(max-width:900px){#daily-visit-mode,#daily-technicians-mode{grid-template-columns:1fr}.daily-technician-checks{grid-template-columns:repeat(2,minmax(150px,1fr))}}
.summary-visits{display:flex;flex-direction:column;gap:1.2rem}.summary-visit-block{border-bottom:2px solid var(--navy);padding-bottom:1.2rem}.summary-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.summary-card-heading strong{font-size:1.1rem}.summary-events{margin-top:.65rem}.summary-events h4{margin:.25rem 0 .55rem}.summary-events table{font-size:.8rem}.summary-events th,.summary-events td{padding:.45rem}
@media print{.summary-visits{display:block!important}.summary-visit-block{display:block;break-inside:avoid;page-break-inside:avoid;margin:0 0 10mm;padding:0 0 7mm}.summary-card{width:100%;break-inside:avoid;page-break-inside:avoid}.summary-events{break-inside:avoid;page-break-inside:avoid}.summary-events thead{display:table-header-group}.summary-events tr{break-inside:avoid;page-break-inside:avoid}}
.aero-card.calendar{border-color:#58bcd1}.aero-card.calendar .phase-badge{background:#187d96}.aero-card.calendar .aero-gauge{--gauge-color:#58c8df}.control-card.calendar{border-top:5px solid #58bcd1}
.overtime-tabs{display:flex;gap:.6rem;margin-bottom:1rem}.overtime-request-card,.overtime-list,.overtime-accounting{background:#fff;border-radius:14px;padding:1.2rem;box-shadow:var(--shadow);margin-bottom:1rem}.overtime-request-card h3,.overtime-list h3,.overtime-accounting h3{margin-top:0}.overtime-total{display:flex;align-items:center;gap:1rem;background:#eaf5f8;border-left:5px solid #55b8cb;padding:1rem;margin:1rem 0}.overtime-total small{font-weight:800;color:var(--muted)}.overtime-total b{font-size:1.6rem}.overtime-tech-totals{display:flex;flex-wrap:wrap;gap:.6rem}.overtime-tech-totals span{display:flex;gap:.7rem;background:#edf3f5;border-radius:8px;padding:.7rem 1rem}.overtime-approver-row{border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1rem}.danger{background:var(--red);color:#fff}
.check-selection-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin:.65rem 0}.check-selection-actions button{padding:.48rem .8rem}.check-selection-actions span{margin-left:.35rem;color:var(--muted);font-size:.82rem;font-weight:800}
.specialized-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:1rem}.specialized-card{padding:1rem;border:1px solid #47677c;border-top:5px solid #5ab8cc;border-radius:15px;background:#fff;box-shadow:var(--shadow)}.specialized-card.late{border-top-color:#d95757}.specialized-card>header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d5e1e6;padding-bottom:.7rem}.specialized-card h3{margin:.1rem 0}.specialized-gauge{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;align-content:center;background:radial-gradient(circle at center,#fff 56%,transparent 58%),conic-gradient(#59bcd0 calc(var(--value)*3.6),#dce7eb 0)}.specialized-gauge b{font-size:1.05rem}.specialized-gauge small{font-size:.55rem;color:var(--muted)}.specialized-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:.8rem 0}.specialized-kpis>div{padding:.65rem;border-radius:8px;background:#eef4f6}.specialized-kpis small{display:block;color:var(--muted);font-size:.62rem;font-weight:900}.specialized-kpis b{display:block;margin-top:.18rem}.specialized-team{display:flex;align-items:center;gap:.55rem;padding:.65rem;border-radius:8px;background:#173750;color:#fff}.specialized-team span{display:flex;flex:1;gap:.35rem}.specialized-team i{padding:.28rem .42rem;border:1px solid #e0a73d;border-radius:5px;font-style:normal;font-weight:900}.specialized-orders{margin-top:.8rem;border:1px solid #d5e1e6;border-radius:9px;overflow:hidden}.specialized-order-head,.specialized-order{display:flex;justify-content:space-between;align-items:center;gap:.7rem;padding:.65rem .75rem}.specialized-order-head{background:#e8f0f4}.specialized-order{border-top:1px solid #d5e1e6}.specialized-order>div{display:grid;gap:.18rem}.specialized-order>div:last-child{display:flex;align-items:center;gap:.5rem}.specialized-order small{color:var(--muted)}.order-status{padding:.25rem .4rem;border-radius:5px;background:#dfe8ec;font-size:.65rem;font-weight:900}.order-status.doing{background:#fff0c9;color:#875c13}.order-status.done{background:#ddefe2;color:#2d7448}.specialized-summary-card{border-color:#d19a36!important}.specialized-symbol{font-size:3rem;color:#e0a73d}.specialized-summary{display:grid;gap:.55rem}.specialized-summary>b{font-size:1.3rem}.specialized-summary>div{display:flex;justify-content:space-between;padding:.55rem;border:1px solid #38586e;border-radius:7px}.positive{color:#3f9660!important}.negative{color:#d55353!important}@media(max-width:700px){.specialized-grid{grid-template-columns:1fr}.specialized-kpis{grid-template-columns:1fr 1fr}.specialized-order{align-items:flex-start;flex-direction:column}.specialized-order>div:last-child{flex-wrap:wrap}}
.planning-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.planning-toolbar .production-calendar-filters{flex:1}.planning-export-actions{display:flex;gap:.45rem;margin-bottom:.7rem}.planning-export-actions button{display:inline-flex;align-items:center;gap:.38rem;padding:.62rem .8rem}.planning-export-actions button span{display:grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:4px;background:#173750;color:#fff;font-size:.8rem}
.planning-tabs{display:flex;gap:.6rem;margin-bottom:1rem}.planning-tabs button.active{background:#236aa8;color:#fff}.planning-legend{display:flex;flex-wrap:wrap;gap:.5rem;margin:.65rem 0}.planning-legend span{padding:.35rem .6rem;border-radius:6px;color:#fff;font-size:.72rem;font-weight:900}.planning-legend .visit{background:#2678a4}.planning-legend .runway{background:#bc8128}.planning-legend .other{background:#745aa5}.planning-legend .available{background:#70818c}.technician-planning-row,.technician-planning-load{display:grid;min-width:max-content;border-bottom:1px solid #dce5e9}.technician-planning-row{min-height:58px}.technician-planning-cell,.technician-load-cell{width:82px;min-height:58px;padding:.35rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-left:1px solid #dce5e9;font-size:.64rem;font-weight:900;overflow:hidden}.technician-planning-cell.visit{background:#d9eef7;color:#155572}.technician-planning-cell.runway{background:#f5e4c4;color:#7c5218}.technician-planning-cell.other{background:#e9e1f5;color:#573f7f}.technician-planning-cell.available{background:#edf2f4;color:#667782}.technician-load-cell{background:#f4f8fa}.technician-load-cell b{font-size:.65rem}.technician-load-cell small{font-size:.52rem;color:#607582;margin-top:.15rem}.technician-planning-load .production-calendar-label{min-height:58px}
.control-display-buttons{display:inline-flex;gap:.35rem;margin-right:.5rem}.control-display-buttons button.active{background:#173750;color:#fff}.production-calendar-shell{background:#fff;border-radius:16px;padding:1rem;box-shadow:var(--shadow)}.production-calendar-filters{display:flex;align-items:end;gap:.7rem;margin-bottom:.7rem}.production-calendar-filters label{display:grid;gap:.25rem;font-size:.75rem;font-weight:800}.production-calendar-summary{margin-left:auto;padding:.65rem 1rem;border-radius:10px;background:#eaf5f8;color:#173750}.production-calendar-legend{display:flex;gap:.55rem;margin:.6rem 0}.production-calendar-legend span{border-left:8px solid;padding:.3rem .55rem;background:#f1f5f7;border-radius:5px;font-size:.72rem;font-weight:800}.production-calendar-legend .late{border-color:#e45656}.production-calendar-legend .ahead{border-color:#6eb467}.production-calendar-legend .calendar{border-color:#58bcd1}.production-calendar-legend .closed{border-color:#8c9ba5}.production-calendar-scroll{overflow:auto;border:1px solid #d6e2e7;border-radius:12px;background:#f8fbfc}.production-calendar-header,.production-calendar-load,.production-calendar-row{display:grid;min-width:max-content}.production-calendar-header{position:sticky;top:0;z-index:3;background:#173750;color:#fff}.production-calendar-corner,.production-calendar-label{position:sticky;left:0;z-index:2;width:250px;padding:.65rem .8rem;border-right:1px solid #d5e1e6;background:#fff}.production-calendar-corner{background:#173750;color:#fff;font-size:.72rem;font-weight:900;letter-spacing:.08em}.production-calendar-day{width:34px;display:grid;place-items:center;padding:.25rem 0;border-left:1px solid #31536a}.production-calendar-day small{font-size:.55rem;text-transform:uppercase}.production-calendar-day.weekend{background:#102c40;color:#91a9b8}.production-calendar-load{border-bottom:1px solid #dce5e9}.production-calendar-label{display:flex;flex-direction:column;justify-content:center}.production-calendar-label span{font-size:.7rem;color:#607582;margin-top:.15rem}.production-load-cell{width:34px;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-left:1px solid #e1e8eb;background:color-mix(in srgb,#e45a55 calc(var(--load)*75%),#e9f6ef)}.production-load-cell b{font-size:.8rem}.production-load-cell small{font-size:.52rem}.production-calendar-row{min-height:62px;border-bottom:1px solid #dce5e9;position:relative}.production-calendar-track{display:grid;grid-template-columns:repeat(121,34px);align-items:center;background:repeating-linear-gradient(90deg,transparent 0,transparent 33px,#e6edf0 33px,#e6edf0 34px)}.production-visit-bar{height:42px;margin:0 3px;border-radius:8px;padding:.35rem .55rem;color:#fff;overflow:hidden;display:flex;flex-direction:column;justify-content:center;box-shadow:0 4px 10px #18384c2c;z-index:1}.production-visit-bar b,.production-visit-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.production-visit-bar b{font-size:.75rem}.production-visit-bar span{font-size:.58rem;opacity:.9}.production-visit-bar.late{background:linear-gradient(90deg,#c74747,#e36a61)}.production-visit-bar.ahead{background:linear-gradient(90deg,#438d62,#75b86f)}.production-visit-bar.calendar{background:linear-gradient(90deg,#237f9a,#59bfd0)}.production-visit-bar.closed{background:linear-gradient(90deg,#667986,#96a4ac)}@media(max-width:800px){.production-calendar-filters{flex-wrap:wrap}.production-calendar-summary{width:100%;margin-left:0}.control-display-buttons{display:flex;margin:0 0 .5rem}}
/* Affectation visuelle des techniciens dans la production specialisee. */
.specialized-summary-row{display:flex!important;justify-content:space-between!important;align-items:center;gap:.6rem;padding:.55rem;border:1px solid #38586e;border-radius:7px;transition:.15s}
.specialized-summary-row.staffing-drop-active{border-color:#f2ae38;background:#23465e;box-shadow:0 0 0 2px #f2ae3855}
.specialized-summary-row>span{display:grid;gap:.12rem}.specialized-summary-row>span small{color:#b9d1de}
.specialized-summary-row>em{display:flex;justify-content:flex-end;gap:.3rem;flex-wrap:wrap;font-style:normal}
.specialized-summary-row .staffing-chip{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:.32rem .48rem;border:1px solid #f2ae38;border-radius:5px;background:#102b3e;color:#fff;font-weight:900;cursor:grab}
@media(max-width:700px){.specialized-summary-row{align-items:flex-start;flex-direction:column}}
.specialized-type-manager{display:grid;gap:1.2rem}.specialized-type-manager h3{margin:0 0 .25rem}.specialized-type-list{display:grid;gap:.55rem;max-height:42vh;overflow:auto}.specialized-type-list article{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;border:1px solid #d2dfe5;border-radius:9px;background:#f3f7f9}.specialized-type-list article>div{display:flex;flex-direction:column;gap:.18rem}.specialized-type-list article span{color:var(--muted)}.specialized-type-create{padding-top:1rem;border-top:2px solid #d6e2e7}
.oe-catalog-panel{margin-top:1.5rem;border-top:1px solid #d7e0e5;padding-top:1.2rem}.oe-section-head,.oe-manager-head,.oe-review-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.oe-section-head h4{font-size:1.15rem;margin:0}.oe-section-head p,.oe-manager-head span,.oe-review-summary span{display:block;color:#657680;margin:.25rem 0 0}.oe-table-wrap,.oe-review-table{overflow:auto;max-height:430px;border:1px solid #d7e0e5;border-radius:10px;background:#fff}.oe-table-wrap table,.oe-review-table table{min-width:760px;box-shadow:none}.oe-table-wrap td{white-space:normal}.oe-table-wrap td:nth-child(2){min-width:260px}.oe-table-wrap td small{display:block;color:#bd3e3e;margin-top:.2rem}.oe-cancelled{opacity:.62;background:#f4f5f6}.oe-missing,.oe-warning{color:#bd3e3e;font-weight:700}.compact{padding:.45rem .65rem;font-size:.78rem}.danger{background:#bd3e3e}.oe-import-history{margin-top:1rem}.oe-import-history>div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem;border-bottom:1px solid #e7ecef}.oe-import-history span{color:#657680}.file-drop{display:grid;gap:.55rem;border:2px dashed #8fb4ca;border-radius:12px;padding:1.4rem;margin-top:1rem;background:#f4f9fc;font-weight:800}.file-drop span{color:#657680;font-size:.85rem;font-weight:500}.oe-import-intro{border-left:4px solid #2f78b7;padding:.1rem 1rem;background:#eef6fb}.oe-review-summary>div{display:flex;flex-direction:column}.oe-review-table{max-height:48vh}.oe-review-table input{min-width:120px;width:100%}.oe-review-table td:nth-child(2) input{min-width:320px}.oe-review-table input.invalid{border:2px solid #cf3f3f;background:#fff2f2}.oe-import-options{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.oe-import-options label{font-weight:700}.oe-import-options input,.oe-import-options select{display:block;width:100%;margin-top:.35rem}.oe-dialog{width:min(1180px,96vw);max-width:none;padding:1.4rem}.oe-dialog .modal-head{border-bottom:1px solid #d7e0e5;padding-bottom:1rem}.oe-dialog #oe-dialog-content{padding-top:1rem}.oe-editor{max-width:760px;margin:auto}.oe-manager-head>div{display:flex;flex-direction:column}
.airport-code-result{align-self:end;border-radius:10px;padding:.75rem .9rem;font-size:.88rem;font-weight:700;line-height:1.35}.airport-code-result.matched{background:#e6f5eb;border:1px solid #78b98e;color:#165d32}.airport-code-result.unmatched{background:#fff4e2;border:1px solid #d7a24e;color:#765018}.airport-code-result.loading{background:#edf5fa;border:1px solid #8eb5cb;color:#315d75}.airport-code-result.muted{background:#f2f5f7;border:1px solid #d7e0e5;color:#657680}
.calculated-duration,.visit-oe-summary{display:flex;flex-direction:column;justify-content:center;gap:.25rem;padding:.72rem;border:1px solid #cad6db;border-radius:8px;background:#f4f8fa}.calculated-duration small,.visit-oe-summary span{color:#657680;font-weight:700}.calculated-duration b,.visit-oe-summary b{font-size:1.05rem}.calculated-duration.incomplete,.visit-oe-summary.incomplete,.visit-oe-summary.invalid{border:2px solid #cf3f3f;background:#fff2f2;color:#a52f2f}.calculated-duration.incomplete span,.visit-oe-summary.incomplete span,.visit-oe-summary.invalid span{color:#a52f2f}.duration-entry.invalid{padding:.35rem;border:2px solid #cf3f3f;border-radius:8px;background:#fff2f2}.oe-review-table .duration-entry{min-width:230px}.oe-review-table .duration-entry input{min-width:62px}.oe-review-table .duration-entry span{min-width:90px}
.form-grid label.simple-check{flex-direction:row;align-items:center;justify-content:flex-start;gap:.6rem}.form-grid label.simple-check input[type="checkbox"]{width:auto;flex:0 0 auto;margin:0}
@media(max-width:760px){.oe-section-head,.oe-manager-head,.oe-review-summary,.oe-import-history>div{align-items:stretch;flex-direction:column}.oe-import-options{grid-template-columns:1fr}.oe-dialog{width:98vw}.oe-table-wrap,.oe-review-table{max-height:55vh}}
