/* Cockpit — Edenbridge Flight Deck
 * Inspiration : panneau supérieur d'un poste de pilotage (gris des panneaux, inscriptions blanches éclairées,
 * voyants ambre), écrans noirs pour ce qui affiche des données. Police B612, dessinée pour les écrans de cockpit.
 */
.cku {
    --panel: #5b6670;
    --panel-hi: #67737d;
    --panel-lo: #4a545d;
    --edge: #3b444c;
    --glare: #2a3238;
    --placard: #eef1f2;
    --placard-dim: #c3cbd1;
    --amber: #f5a623;
    --cyan: #4fd1e8;
    --magenta: #e040fb;
    --well: #000;
    --r: 6px;
    font-family: 'B612', system-ui, sans-serif;
    color: var(--placard);
    background:
        repeating-linear-gradient(90deg, rgba(255,255,255,.018) 0 1px, transparent 1px 3px),
        var(--panel);
    width: min(1280px, calc(100vw - 32px));
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 10px;
    padding: 0 0 18px;
    box-sizing: border-box;
    box-shadow: inset 0 0 0 1px var(--edge), 0 10px 30px rgba(0,0,0,.25);
    overflow: hidden;
}
.cku *, .cku *::before, .cku *::after { box-sizing: border-box; }
.cku a { color: inherit; }
.cku h2, .cku p { margin: 0; font-family: inherit; color: inherit; letter-spacing: 0; }

/* ---------- Pare-soleil ---------- */
.cku-glare {
    display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
    background: linear-gradient(#323b42, var(--glare));
    padding: 14px 22px;
    border-bottom: 2px solid #1d2328;
}
.cku-brand { display: flex; align-items: center; gap: 12px; margin-right: auto; }
.cku-brand-mark {
    width: 34px; height: 34px; border-radius: 50%;
    background:
        radial-gradient(circle, #1b2025 0 26%, transparent 27%),
        repeating-conic-gradient(from 0deg, #9aa6af 0 7deg, #1b2025 7deg 15deg);
    box-shadow: 0 0 0 2px #1b2025, 0 0 0 3px #6c7882;
}
.cku-brand-name { font-size: 22px; font-weight: 700; line-height: 1; }
.cku-brand-by { font-size: 12px; color: var(--placard-dim); font-style: italic; margin-top: 3px !important; }

.cku-apts { display: flex; flex-wrap: wrap; gap: 6px; }
.cku-apt {
    font-family: 'B612 Mono', monospace; font-size: 14px; font-weight: 700;
    text-decoration: none; padding: 7px 10px; border-radius: 4px;
    background: var(--well); color: #8f9aa3; border: 1px solid #1d2328;
}
.cku-apt:hover { color: var(--placard); }
.cku-apt.is-on { color: var(--magenta); box-shadow: inset 0 0 0 1px var(--magenta); }
.cku-who { display: flex; align-items: center; gap: 14px; font-size: 14px; }
.cku-who-out { color: var(--placard-dim) !important; font-size: 13px; }

/* ---------- Panneaux ---------- */
.cku-panel { margin: 18px 18px 0; padding: 16px 18px 18px; border-radius: 8px; background: var(--panel-lo); box-shadow: inset 0 1px 0 rgba(255,255,255,.06), inset 0 0 0 1px var(--edge); }
.cku-placard { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin-bottom: 14px; }
.cku-placard h2 { font-size: 20px; font-weight: 700; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.cku-code { font-family: 'B612 Mono', monospace; color: var(--magenta); font-size: 22px; }
.cku-apt-name { font-weight: 400; color: var(--placard-dim); font-size: 17px; }
.cku-logo { width: 40px; height: 40px; object-fit: contain; background: #fff; border-radius: 4px; padding: 3px; }
.cku-placard-note { font-size: 13px; color: var(--placard-dim); }
.cku-fonctions { list-style: none; margin: 0 0 0 auto; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cku-fonctions li { font-size: 13px; padding: 4px 9px; border-radius: 3px; background: var(--edge); color: var(--placard); }
.cku-fonctions li[data-galon="3"] { box-shadow: inset 0 -2px 0 var(--amber); }
.cku-fonctions li[data-galon="2"] { box-shadow: inset 0 -2px 0 #cfd6db; }

/* ---------- Tuiles : modules du panneau ---------- */
.cku-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.cku-tile {
    position: relative; display: grid; grid-template-columns: 52px 1fr; grid-template-rows: auto 1fr; column-gap: 14px;
    align-items: start; min-height: 112px; padding: 18px 18px 16px;
    border-radius: var(--r); text-decoration: none !important;
    background: linear-gradient(var(--panel-hi), var(--panel));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12), inset 0 0 0 1px var(--edge), 0 2px 0 #353e45;
    color: var(--placard-dim);
    transition: color .15s, box-shadow .15s, transform .08s;
}
.cku-l { grid-column: span 2; }
.cku-m { grid-column: span 2; }
.cku-ico { width: 52px; height: 52px; grid-row: span 2; color: var(--placard-dim); transition: color .15s, filter .15s; }
.cku-tile-name { font-size: 17px; font-weight: 700; color: var(--placard); line-height: 1.25; }
.cku-tile-desc { font-size: 13.5px; line-height: 1.45; margin-top: 4px; }
.cku-screw { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #9aa6af, #4a545d); top: 7px; left: 7px; }
.cku-screw + .cku-screw { left: auto; right: 7px; }
/* Éclairage intégré : au survol, les inscriptions s'allument. */
a.cku-tile:hover, a.cku-tile:focus-visible { color: #fff; }
a.cku-tile:hover .cku-ico, a.cku-tile:focus-visible .cku-ico { color: #fff6e0; filter: drop-shadow(0 0 4px rgba(255,236,190,.7)); }
a.cku-tile:hover .cku-tile-name, a.cku-tile:focus-visible .cku-tile-name { text-shadow: 0 0 6px rgba(255,236,190,.6); }
a.cku-tile:active { transform: translateY(1px); box-shadow: inset 0 0 0 1px var(--edge); }
a.cku-tile:focus-visible { outline: 2px solid var(--magenta); outline-offset: 2px; }
.cku-tile.is-off { opacity: .55; }

/* Écran de données : puits noir, tracé cyan. */
.cku-ecran { background: var(--well); box-shadow: inset 0 0 0 1px #1d2328, inset 0 0 0 4px #2b3238, 0 2px 0 #353e45; }
.cku-ecran .cku-ico, .cku-ecran .cku-tile-name { color: var(--cyan); }
.cku-ecran .cku-tile-desc { color: #8fb7c0; }
.cku-ecran .cku-screw { display: none; }
a.cku-ecran:hover .cku-ico { color: #b5f3ff; filter: drop-shadow(0 0 5px rgba(79,209,232,.8)); }
a.cku-ecran:hover .cku-tile-name { text-shadow: 0 0 6px rgba(79,209,232,.7); color: #b5f3ff; }

/* Voyant ambre : outil en essai. */
.cku-ann {
    position: absolute; top: 12px; right: 18px; font-size: 11px; font-weight: 700; color: #1d1300;
    background: var(--amber); padding: 3px 7px; border-radius: 2px; box-shadow: 0 0 8px rgba(245,166,35,.55);
}

.cku-panel-edb { background: #434d55; }
.cku-empty p, .cku-login p { color: var(--placard-dim); max-width: 62ch; margin-top: 8px !important; line-height: 1.55; }
.cku-login form { margin-top: 14px; max-width: 360px; }
.cku-login label { display: block; font-size: 14px; margin-bottom: 4px; }
.cku-login input[type=text], .cku-login input[type=password] { width: 100%; padding: 9px 10px; border-radius: 4px; border: 1px solid #1d2328; background: var(--well); color: var(--placard); font: 15px 'B612', sans-serif; }
.cku-login input[type=submit] { margin-top: 6px; padding: 10px 18px; border-radius: 4px; border: 0; background: var(--placard); color: #1d2328; font: 700 15px 'B612', sans-serif; cursor: pointer; }
.cku-foot { font-size: 12px; color: #aab4bb; margin: 16px 22px 0 !important; text-align: right; }

@media (max-width: 900px) {
    .cku-grid { grid-template-columns: repeat(2, 1fr); }
    .cku-l, .cku-m { grid-column: span 1; }
    .cku-l { grid-column: span 2; }
}
@media (max-width: 560px) {
    .cku { width: calc(100vw - 16px); border-radius: 8px; }
    .cku-grid { grid-template-columns: 1fr; }
    .cku-l, .cku-m { grid-column: span 1; }
    .cku-panel { margin: 12px 10px 0; padding: 14px 12px; }
    .cku-fonctions { margin-left: 0; }
    .cku-glare { padding: 12px 14px; gap: 12px; }
}

/* =================== Démarrage moteur =================== */
html.cku-boot, html.cku-boot body { background: #07090b !important; }
html.cku-boot body > *:not(.cku-splash) { visibility: hidden !important; }
.cku-splash {
    position: fixed; inset: 0; z-index: 2147483000; background: #07090b; color: #dfe6ea;
    font-family: 'B612', system-ui, sans-serif; display: grid; place-items: center; overflow: hidden;
    transition: opacity .9s ease;
}
.cku-splash.is-out { opacity: 0; pointer-events: none; }
.cku-sp-stage { position: absolute; inset: 0; display: grid; place-items: center; }
.cku-sp-stage[hidden] { display: none; }

/* Interrupteur de démarrage protégé. */
.cku-sp-start { display: grid; justify-items: center; gap: 18px; text-align: center; }
.cku-sp-plate { background: #5b6670; border-radius: 8px; padding: 22px 34px 18px; box-shadow: inset 0 0 0 1px #3b444c, 0 0 40px rgba(0,0,0,.6); display: grid; justify-items: center; gap: 12px; }
.cku-sp-plate-t { font-size: 13px; font-weight: 700; color: #eef1f2; }
.cku-sp-switch {
    width: 92px; height: 92px; border-radius: 50%; border: 0; cursor: pointer; position: relative;
    background: radial-gradient(circle at 40% 35%, #b8c2c9, #59636b 70%);
    box-shadow: 0 0 0 6px #3b444c, 0 0 0 8px #232a30, 0 6px 14px rgba(0,0,0,.6);
}
.cku-sp-switch::before { content: ''; position: absolute; left: 50%; top: 14px; width: 12px; height: 64px; margin-left: -6px; border-radius: 6px; background: linear-gradient(#e6ebee, #8e99a1); box-shadow: 0 2px 4px rgba(0,0,0,.5); transform-origin: 50% 50%; transition: transform .35s cubic-bezier(.3,1.6,.5,1); }
.cku-sp-switch.is-on::before { transform: rotate(-60deg); }
.cku-sp-switch:focus-visible { outline: 3px solid #e040fb; outline-offset: 6px; }
.cku-sp-plate-p { display: flex; justify-content: space-between; width: 200px; font-size: 12px; color: #c3cbd1; }
.cku-sp-hint { font-size: 14px; color: #9aa6af; }

/* Défilé de la typologie. */
.cku-sp-flash { display: grid; justify-items: center; gap: 8px; }
.cku-sp-view { width: min(76vw, 620px); aspect-ratio: 2 / 1; display: grid; }
.cku-sp-view > * { grid-area: 1 / 1; width: 100%; height: 100%; }
.cku-sp-flash svg { color: #4fd1e8; filter: drop-shadow(0 0 7px rgba(79,209,232,.55)); }
.cku-sp-year { font-family: 'B612 Mono', monospace; font-size: clamp(22px, 3vw, 34px); color: #eef1f2; min-height: 1.2em; margin-top: 10px !important; }
.cku-sp-cap { font-family: 'B612', sans-serif; font-size: 16px; color: #4fd1e8; }

/* Moteur : soufflante, instruments, journal. */
.cku-sp-engine { display: grid; grid-template-columns: minmax(150px, 220px) minmax(260px, 520px) minmax(180px, 300px); gap: clamp(16px, 4vw, 56px); align-items: center; padding: 24px; width: 100%; max-width: 1200px; }
.cku-sp-fan { width: 100%; aspect-ratio: 1; }
.cku-sp-fan svg { width: 100%; height: 100%; display: block; }
.cku-sp-gauges { display: grid; gap: 14px; }
.cku-sp-g { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 10px; }
.cku-sp-g svg { width: 64px; height: 64px; }
.cku-sp-g-v { font-family: 'B612 Mono', monospace; font-size: 20px; border: 1px solid #dfe6ea; padding: 2px 8px; justify-self: start; min-width: 78px; text-align: right; }
.cku-sp-g-l { font-size: 12px; color: #9aa6af; grid-column: 2; }
.cku-sp-log { font-family: 'B612 Mono', monospace; font-size: 13px; line-height: 1.7; color: #7ee2a0; height: min(60vh, 420px); overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; -webkit-mask-image: linear-gradient(transparent, #000 30%); mask-image: linear-gradient(transparent, #000 30%); }
.cku-sp-log span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cku-sp-log span.w { color: #eef1f2; }
.cku-sp-log span.a { color: #f5a623; }
.cku-sp-bar { position: absolute; left: 50%; bottom: 7vh; transform: translateX(-50%); width: min(560px, 80vw); }
.cku-sp-bar-t { display: flex; justify-content: space-between; font-size: 13px; color: #9aa6af; margin-bottom: 6px; }
.cku-sp-bar-r { height: 6px; background: #1b2025; border-radius: 3px; overflow: hidden; }
.cku-sp-bar-r i { display: block; height: 100%; width: 0; background: #eef1f2; transition: width .2s linear; }

/* Titre. */
.cku-sp-title { text-align: center; }
.cku-sp-title h1 { font-family: 'B612', sans-serif; font-size: clamp(48px, 10vw, 120px); font-weight: 700; margin: 0; color: #eef1f2; letter-spacing: .02em; opacity: 0; transform: scale(.96); transition: opacity 1s, transform 1.4s cubic-bezier(.2,.8,.2,1); }
.cku-sp-title p { font-size: clamp(16px, 2.4vw, 24px); font-style: italic; color: #c3cbd1; margin: 6px 0 0; opacity: 0; transition: opacity 1s .5s; }
.cku-sp-title.is-in h1 { opacity: 1; transform: none; }
.cku-sp-title.is-in p { opacity: 1; }

@media (max-width: 820px) {
    .cku-sp-engine { grid-template-columns: 1fr; justify-items: center; gap: 12px; }
    .cku-sp-fan { width: min(70vw, 340px); order: -1; }
    .cku-sp-gauges { grid-template-columns: repeat(3, auto); gap: 8px; }
    .cku-sp-g { grid-template-columns: 1fr; justify-items: center; }
    .cku-sp-g-l { grid-column: 1; }
    .cku-sp-log { height: 22vh; width: 90vw; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .cku-sp-switch::before, .cku-sp-title h1, .cku-sp-title p, .cku-splash { transition: none; }
}

/* =================== Santé PSNA =================== */
.cku-sante-nav { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.cku-sante-nav a { font-size: 13px; padding: 6px 10px; border-radius: 4px; background: var(--edge); text-decoration: none; }
.cku-sante-nav a:hover, .cku-sante-nav a:focus-visible { background: #2f3942; outline: none; box-shadow: inset 0 0 0 1px var(--magenta); }
.cku-st { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; white-space: nowrap; }
.cku-st i { font-style: normal; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; font-size: 12px; color: #111; }
.cku-st-bon i { background: #0ca30c; color: #fff; }
.cku-st-surveiller i { background: #fab219; }
.cku-st-hors i { background: #d03b3b; color: #fff; }
.cku-st-na i { background: #8f9aa3; }
.cku-sante-syn { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin: 4px 0 6px; }
.cku-sante-syn-c { display: flex; align-items: center; gap: 10px; background: var(--well); border-radius: 6px; padding: 8px 12px; }
.cku-sante-syn-c strong { font-family: 'B612 Mono', monospace; font-size: 22px; color: var(--placard); }
.cku-sante-dom { font-size: 15px; font-weight: 700; color: var(--placard-dim); margin: 22px 0 10px; }
.cku-sante-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.cku-ind { background: var(--well); border-radius: var(--r); padding: 14px 16px; box-shadow: inset 0 0 0 1px #1d2328; border-top: 3px solid #8f9aa3; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cku-ind-bon { border-top-color: #0ca30c; }
.cku-ind-surveiller { border-top-color: #fab219; }
.cku-ind-hors { border-top-color: #d03b3b; }
.cku-ind header { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.cku-ind h4 { margin: 0; font-size: 14px; font-weight: 700; color: var(--placard); line-height: 1.35; font-family: inherit; }
.cku-ind-v { font-family: 'B612 Mono', monospace; font-size: 30px; color: #fff; line-height: 1.1; margin-top: 4px !important; }
.cku-ind-c { font-size: 12px; color: #8f9aa3; }
.cku-ind-d { font-size: 13px; color: var(--placard-dim); line-height: 1.45; }
.cku-courbe { width: 100%; height: 72px; display: block; margin: 6px 0 2px; overflow: visible; }
.cku-pt:hover circle:last-of-type { r: 5; }
.cku-sante-nodata { font-size: 12px; color: #6b7680; margin: 8px 0 !important; }
.cku-ind details { font-size: 13px; color: var(--placard-dim); }
.cku-ind summary { cursor: pointer; color: var(--cyan); }
.cku-ind details ul { margin: 6px 0 0; padding-left: 18px; max-height: 220px; overflow: auto; }
.cku-ind details li { margin: 3px 0; }
.cku-ind-l { margin-top: auto; padding-top: 6px; font-size: 13px; color: var(--cyan) !important; }
.cku-sante-mat-w { overflow-x: auto; margin-top: 8px; }
.cku-sante-mat { border-collapse: collapse; min-width: 100%; font-size: 13px; background: var(--well); border-radius: 6px; }
.cku-sante-mat caption { text-align: left; color: var(--placard-dim); padding: 0 0 8px; }
.cku-sante-mat th, .cku-sante-mat td { padding: 8px 10px; border-bottom: 1px solid #1d2328; text-align: left; white-space: nowrap; }
.cku-sante-mat thead th { color: var(--placard-dim); font-weight: 400; font-size: 12px; white-space: normal; min-width: 90px; vertical-align: bottom; }
.cku-sante-mat th[scope=row] a { color: var(--magenta); font-family: 'B612 Mono', monospace; font-weight: 700; text-decoration: none; }
.cku-mat-c { display: inline-flex; align-items: center; gap: 6px; font-family: 'B612 Mono', monospace; }
.cku-mat-c i { font-style: normal; display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; font-size: 11px; font-family: 'B612', sans-serif; }
.cku-mat-sans { color: #6b7680; font-family: inherit; font-size: 12px; }
.cku-tile-sante .cku-tile-desc { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; color: #8fb7c0; }

.cku-diag { background: #3a2f12; box-shadow: inset 0 0 0 1px #f5a623; }
.cku-diag h2 { font-size: 15px; color: #f5a623; }
.cku-diag ul { margin: 8px 0 0; padding-left: 18px; color: var(--placard); line-height: 1.55; font-size: 14px; }

/* =================== Planning et actualités =================== */
.cku-msg { background: #23303a; border-left: 3px solid var(--cyan); padding: 8px 12px; border-radius: 4px; margin: 0 0 12px !important; font-size: 14px; }
.cku-btn { display: inline-block; font: 700 14px 'B612', sans-serif; padding: 9px 14px; border-radius: 4px; border: 0; cursor: pointer; text-decoration: none !important;
    background: var(--placard); color: #1d2328 !important; }
.cku-btn:hover, .cku-btn:focus-visible { background: #fff; outline: 2px solid var(--magenta); outline-offset: 1px; }
.cku-btn-2 { background: var(--edge); color: var(--placard) !important; }
.cku-btn-2:hover, .cku-btn-2:focus-visible { background: #2f3942; }
.cku-btn-danger { background: #7a1f1f; color: #fff !important; }
.cku-ag-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 12px; }
.cku-ag-mois { display: flex; align-items: center; gap: 8px; }
.cku-ag-mois a { text-decoration: none; padding: 4px 10px; border-radius: 4px; background: var(--edge); font-size: 16px; }
.cku-ag-mois strong { min-width: 150px; text-align: center; font-size: 17px; }
.cku-ag-mois .cku-ag-auj { font-size: 13px; }
.cku-ag-filtres { display: flex; gap: 4px; background: var(--well); padding: 3px; border-radius: 6px; }
.cku-ag-filtres a { padding: 6px 10px; border-radius: 4px; font-size: 13px; text-decoration: none; color: #8f9aa3; }
.cku-ag-filtres a.is-on { color: var(--placard); background: var(--edge); box-shadow: inset 0 -2px 0 var(--magenta); }
.cku-ag-bar .cku-btn { margin-left: auto; }
.cku-ag-grid { background: var(--well); border-radius: 6px; overflow: hidden; }
.cku-ag-row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cku-ag-head div { font-size: 12px; color: #8f9aa3; padding: 8px; }
.cku-ag-day { min-height: 96px; border-top: 1px solid #1d2328; border-left: 1px solid #1d2328; padding: 6px; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cku-ag-row > .cku-ag-day:first-child { border-left: 0; }
.cku-ag-day.is-out { opacity: .4; }
.cku-ag-day.is-today .cku-ag-num { background: var(--magenta); color: #fff; border-radius: 50%; }
.cku-ag-num { font-family: 'B612 Mono', monospace; font-size: 12px; color: var(--placard-dim); width: 22px; height: 22px; display: grid; place-items: center; }
.cku-ag-ev { display: block; font-size: 12px; line-height: 1.3; padding: 3px 6px; border-radius: 3px; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    background: #12303a; color: #b5f3ff !important; border-left: 3px solid var(--cyan); }
.cku-ag-aer { background: #2f2a14; color: #ffe6a8 !important; border-left-color: var(--amber); }
.cku-ag-ev.is-annule, .cku-ag-liste li.is-annule { text-decoration: line-through; opacity: .6; }
.cku-ag-plus { font-size: 11px; color: #8f9aa3; }
.cku-act { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 6px; border-radius: 3px; background: #12303a; color: var(--cyan); }
.cku-act-aer { background: #2f2a14; color: var(--amber); }
.cku-ag-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cku-ag-liste a { display: grid; gap: 2px; padding: 10px 12px; border-radius: 6px; background: var(--well); text-decoration: none; }
.cku-ag-liste a:hover, .cku-ag-liste a:focus-visible { box-shadow: inset 0 0 0 1px var(--magenta); outline: none; }
.cku-ag-quand { font-size: 13px; color: var(--cyan); }
.cku-ag-meta { font-size: 13px; color: #8f9aa3; }
.cku-ag-fiche { background: var(--well); border-radius: 6px; padding: 18px 20px; display: grid; gap: 8px; }
.cku-ag-fiche h3 { margin: 0; font-size: 22px; font-family: inherit; color: #fff; }
.cku-ag-fiche h4 { margin: 10px 0 0; font-size: 14px; font-family: inherit; color: var(--placard-dim); }
.cku-ag-desc { color: var(--placard); line-height: 1.6; max-width: 72ch; }
.cku-ag-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cku-ag-rsvp { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 0; }
.cku-ag-inv { list-style: none; padding: 0; margin: 0; columns: 2 260px; font-size: 13px; }
.cku-ag-inv li { padding: 3px 0; break-inside: avoid; }
.cku-ag-inv li.r-accepte::before { content: '✓ '; color: #0ca30c; }
.cku-ag-inv li.r-decline::before { content: '✕ '; color: #d03b3b; }
.cku-ag-inv li.r-attente::before, .cku-ag-inv li.r-peut_etre::before { content: '• '; color: #8f9aa3; }
.cku-pieces { list-style: none; padding: 0; margin: 4px 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cku-pieces a { display: inline-block; font-size: 13px; padding: 5px 10px; border-radius: 4px; background: var(--edge); color: var(--placard) !important; text-decoration: none; }
.cku-pieces a::before { content: '📎 '; }
.cku-form { display: grid; gap: 12px; max-width: 900px; }
.cku-form label { display: grid; gap: 4px; font-size: 13px; color: var(--placard-dim); }
.cku-form input[type=text], .cku-form input[type=url], .cku-form input[type=date], .cku-form input[type=time], .cku-form select, .cku-form textarea {
    font: 15px 'B612', sans-serif; padding: 8px 10px; border-radius: 4px; border: 1px solid #1d2328; background: var(--well); color: var(--placard); width: 100%; box-sizing: border-box; }
.cku-form input[type=file] { color: var(--placard-dim); }
.cku-form fieldset { border: 1px solid var(--edge); border-radius: 6px; padding: 10px 12px; margin: 0; }
.cku-form legend { font-size: 13px; color: var(--placard); padding: 0 4px; }
.cku-form label.cku-chk { display: inline-flex; align-items: center; gap: 6px; margin: 2px 14px 2px 0; color: var(--placard); font-size: 14px; }
.cku-f2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 12px; }
.cku-f4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap: 12px; }
.cku-ag-fonctions { display: flex; flex-wrap: wrap; }
.cku-tl { list-style: none; margin: 0; padding: 0; position: relative; }
.cku-tl::before { content: ''; position: absolute; left: 92px; top: 0; bottom: 0; width: 2px; background: var(--edge); }
.cku-tl-item { display: grid; grid-template-columns: 80px 1fr; gap: 26px; margin-bottom: 14px; position: relative; }
.cku-tl-item::before { content: ''; position: absolute; left: 87px; top: 14px; width: 12px; height: 12px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 3px var(--panel-lo); }
.cku-tl-item.is-pin::before { background: var(--magenta); }
.cku-tl-date { font-family: 'B612 Mono', monospace; font-size: 12px; color: var(--placard-dim); text-align: right; padding-top: 10px; }
.cku-tl-card { background: var(--well); border-radius: 6px; padding: 14px 16px; display: grid; gap: 8px; min-width: 0; }
.cku-tl-card h3 { margin: 0; font-size: 18px; font-family: inherit; color: #fff; }
.cku-tl-img { width: 100%; height: auto; max-height: 420px; object-fit: cover; border-radius: 4px; }
.cku-tl-txt { color: var(--placard); line-height: 1.6; max-width: 72ch; }
.cku-tl-lien { color: var(--cyan) !important; }
.cku-pin { color: var(--magenta); font-weight: 700; }
@media (max-width: 760px) {
    .cku-ag-day { min-height: 54px; padding: 3px; }
    .cku-ag-ev { font-size: 0; padding: 0; height: 6px; border-left-width: 0; }
    .cku-ag-ev b { display: none; }
    .cku-tl::before, .cku-tl-item::before { display: none; }
    .cku-tl-item { grid-template-columns: 1fr; gap: 4px; }
    .cku-tl-date { text-align: left; padding: 0; }
    .cku-ag-bar .cku-btn { margin-left: 0; }
}

/* =================== Gestion =================== */
.cku-g-onglets { display: inline-flex; flex-wrap: wrap; margin-bottom: 12px; }
.cku-g-apts { margin-bottom: 12px; }
.cku-g-table td { white-space: normal; }
.cku-g-fonctions { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.cku-g-fonctions li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.cku-g-fonctions li span { flex: 1 1 260px; white-space: normal; }
.cku-g-fonctions li.is-off span { opacity: .55; }
.cku-g-fonctions form { display: flex; gap: 6px; max-width: none; }
.cku-g-fonctions .cku-btn { padding: 5px 9px; font-size: 12px; }

/* 0.4.2 : contrôle des envois (Gestion → Envois) */
.cku .cku-fdm-w { overflow-x: auto; margin: 8px 0 14px; }
.cku table.cku-fdm-t { width: 100%; border-collapse: collapse; font-size: 13px; background: rgba(0,0,0,.25); border-radius: 6px; }
.cku table.cku-fdm-t th, .cku table.cku-fdm-t td { text-align: left; vertical-align: top; padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,.08); color: inherit; }
.cku table.cku-fdm-t thead th, .cku table.cku-fdm-t thead td { font-weight: 600; font-size: 12px; opacity: .8; }
.cku table.cku-fdm-t.cku-fdm-seuils th { width: 180px; }
.cku .cku-fdm .cku-fdm-alerte { border-left: 4px solid #d03b3b; }
.cku .cku-fdm form { margin: 0; }
.cku .cku-fdm .cku-msg form { display: inline; margin-left: 8px; }
.cku .cku-fdm input[type=number] { width: 70px; }
.cku .cku-fdm nav.cku-ag-filtres a { margin-right: 6px; }
