/* BIAM charter: institution identity is separate from workflow status. */
:root {
    --biam-cea:#c62836; --biam-cea-soft:#fff1f2; --biam-cea-ink:#9f1d2b;
    --biam-cnrs:#1765b5; --biam-cnrs-soft:#edf5ff; --biam-cnrs-ink:#114c8b;
    --biam-amu:#f2c230; --biam-amu-soft:#fff9df; --biam-amu-ink:#695000;
    --biam-gap:20px; --biam-panel-padding:20px; --biam-radius:8px;
}
[data-biam-tutelle] { --biam-tutelle:#7b8794; --biam-tutelle-soft:#f1f3f5; --biam-tutelle-ink:#465363; }
[data-biam-tutelle="cea"] { --biam-tutelle:var(--biam-cea); --biam-tutelle-soft:var(--biam-cea-soft); --biam-tutelle-ink:var(--biam-cea-ink); }
[data-biam-tutelle="cnrs"] { --biam-tutelle:var(--biam-cnrs); --biam-tutelle-soft:var(--biam-cnrs-soft); --biam-tutelle-ink:var(--biam-cnrs-ink); }
[data-biam-tutelle="amu"] { --biam-tutelle:var(--biam-amu); --biam-tutelle-soft:var(--biam-amu-soft); --biam-tutelle-ink:var(--biam-amu-ink); }

/* File de validation sécurité des achats. */
.biam-security-page{max-width:1180px}.biam-security-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;margin:20px 0 24px;padding:24px;background:linear-gradient(135deg,#edf6ff,#fff);border:1px solid #cbddeb;border-radius:12px;box-shadow:0 6px 20px rgba(30,64,92,.08)}
.biam-security-hero-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:14px;background:#1765b5;color:#fff}.biam-security-hero-icon .dashicons{width:auto;height:auto;font-size:32px}.biam-security-kicker{display:block;margin-bottom:3px;color:#1765b5;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.biam-security-hero h1{margin:0 0 5px;padding:0;font-size:28px}.biam-security-hero p{margin:0;color:#526474}.biam-security-count{min-width:130px;padding:12px 16px;text-align:center;background:#fff;border:1px solid #dce6ed;border-radius:10px}.biam-security-count strong,.biam-security-count span{display:block}.biam-security-count strong{font-size:26px;line-height:1;color:#1765b5}.biam-security-count span{margin-top:5px;color:#596b78;font-size:12px}
.biam-security-list{display:grid;gap:20px}.biam-security-card{overflow:hidden;background:#fff;border:1px solid #d8e0e6;border-left:5px solid var(--biam-tutelle);border-radius:10px;box-shadow:0 4px 16px rgba(32,49,62,.07)}.biam-security-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px;background:var(--biam-tutelle-soft)}.biam-security-card-head h2{margin:4px 0 0;color:#263746;font-size:19px}.biam-security-reference{color:var(--biam-tutelle-ink);font-size:12px;font-weight:700;text-transform:uppercase}.biam-security-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;background:#dfe5e9;border-block:1px solid #dfe5e9}.biam-security-facts>div{min-width:0;padding:14px 18px;background:#fff}.biam-security-facts dt{margin-bottom:3px;color:#687985;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.biam-security-facts dd{margin:0;color:#253746;font-weight:600;overflow-wrap:anywhere}.biam-security-description,.biam-security-attachments{padding:18px 22px;border-bottom:1px solid #e4e8eb}.biam-security-description h3,.biam-security-attachments h3{margin:0 0 8px;font-size:14px}.biam-security-description p{margin:0;line-height:1.6}.biam-security-attachments>.biam-cockpit-muted{margin:0}.biam-security-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;background:#f7f9fa}.biam-security-actions p{margin:0}.biam-security-actions p strong,.biam-security-actions p span{display:block}.biam-security-actions p span{margin-top:3px;color:#64737d;font-size:12px}.biam-security-actions form{display:flex;gap:10px}.biam-security-refuse{color:#a22b2b!important;border-color:#d8a5a5!important}.biam-security-empty{margin-top:24px;padding:48px 24px;text-align:center;background:#fff;border:1px solid #d9e4dc;border-radius:12px}.biam-security-empty>.dashicons{width:auto;height:auto;color:#2e8540;font-size:44px}.biam-security-empty h2{margin:12px 0 5px}.biam-security-empty p{margin:0;color:#5d6c65}
@media(max-width:782px){.biam-security-hero{grid-template-columns:auto 1fr}.biam-security-count{grid-column:1/-1}.biam-security-facts{grid-template-columns:1fr 1fr}.biam-security-actions{align-items:stretch;flex-direction:column}.biam-security-actions form{flex-direction:column-reverse}.biam-security-actions .button{width:100%;min-height:42px}.biam-security-card-head{padding:17px}.biam-security-description,.biam-security-attachments,.biam-security-actions{padding:17px}}
.biam-security-actions .button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 15px;border:1px solid #1765b5;border-radius:6px;background:#1765b5;color:#fff;font-weight:700;cursor:pointer}.biam-security-actions .biam-security-refuse{background:#fff!important;color:#a22b2b!important;border-color:#d8a5a5!important}
@media(max-width:520px){.biam-security-hero{grid-template-columns:1fr}.biam-security-hero-icon{display:none}.biam-security-facts{grid-template-columns:1fr}.biam-security-card-head{align-items:stretch;flex-direction:column}}
.biam-security-actions form{display:grid;gap:10px;min-width:min(100%,480px)}.biam-security-comment{display:grid;gap:5px;color:#334651;font-weight:700}.biam-security-comment span small,.biam-security-comment>small{color:#64737d;font-size:12px;font-weight:400}.biam-security-comment textarea{width:100%;min-height:72px;padding:9px 11px;border:1px solid #aebbc4;border-radius:6px;background:#fff}.biam-security-comment.has-error textarea{border:2px solid #b32d2e;background:#fff5f5;box-shadow:0 0 0 2px rgba(179,45,46,.12)}.biam-security-buttons{display:flex;justify-content:flex-end;gap:10px}
@media(max-width:782px){.biam-security-actions form{min-width:0}.biam-security-buttons{flex-direction:column-reverse}}
.biam-ticket-budget{margin-top:-6px!important;padding:9px 12px;background:var(--biam-tutelle-soft,#f3f6f8);border-left:3px solid var(--biam-tutelle,#7b8794);border-radius:4px;color:#354957;overflow-wrap:anywhere}

/* Contained widths: borders/padding are included, also without the child theme. */
:is(.biam-cockpit-page,.biam-gp-cockpit,.biam-direction-reporting,.biam-achats-form-page,.biam-achats-list,.biam-rh-page,.biam-rh-list,.biam-rh-reporting,.biam-fop-page,.cea-form-wrapper,.biam-admin-wrap),
:is(.biam-cockpit-page,.biam-gp-cockpit,.biam-direction-reporting,.biam-achats-form-page,.biam-achats-list,.biam-rh-page,.biam-rh-list,.biam-rh-reporting,.biam-fop-page,.cea-form-wrapper,.biam-admin-wrap) * { box-sizing:border-box; }
:is(.biam-cockpit-page,.biam-gp-cockpit,.biam-direction-reporting,.biam-achats-form-page,.biam-achats-list,.biam-rh-page,.biam-rh-list,.biam-rh-reporting,.biam-fop-page,.cea-form-wrapper) { width:100%; max-width:none; min-width:0; margin:24px 0; font-size:16px; line-height:1.5; }
:is(.biam-rh-page,.biam-achats-form-page) > form,
.biam-rh-page .biam-rh-launch-card,
.biam-fop-page.biam-deposit-detail,
.biam-fop-page.biam-deposits-page { width:100%; max-width:none; margin-inline:0; }
.biam-cockpit-card > .biam-direction-reporting { margin:0; }
.biam-rh-form fieldset,.cea-formulaire-projet fieldset { min-width:0; padding:0; margin:0; border:0; }
:is(.biam-cockpit-grid,.biam-gp-grid,.biam-direction-project-list,.biam-reporting-tutelles,.biam-ticket-grid,.biam-rh-report-list,.biam-deposit-grid,.biam-contract-fields) > * { min-width:0; }
.biam-cockpit-grid,.biam-gp-project-groups,.biam-gp-team-group,.biam-direction-financings,.biam-rh-form,.cea-formulaire-projet { gap:var(--biam-gap); }
.biam-gp-grid,.biam-deposits-page .biam-deposit-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:var(--biam-gap); }
.biam-gp-card,.biam-direction-project,.biam-rh-report-row,.biam-form-card,.biam-fop-intention .cea-form-section,.biam-costing-form section,.biam-project-workflow,.biam-deposit-history,.biam-controller-actions { padding:var(--biam-panel-padding); border-radius:var(--biam-radius); }
.biam-form-card { width:100%; margin:0; }
.biam-gp-hero { padding:24px; margin-bottom:24px; }
.biam-hero-with-back { padding-right:220px; }
.biam-gp-hero h2 { font-size:clamp(24px,2.2vw,30px); line-height:1.25; }
:is(.biam-direction-reporting,.biam-rh-reporting,.biam-rh-page,.biam-gp-cockpit,.biam-fop-page) h3 { line-height:1.3; }
.biam-gp-project-title { display:block; -webkit-line-clamp:unset; overflow:visible; overflow-wrap:anywhere; }
.biam-rh-report-title { flex-wrap:wrap; }
.biam-rh-report-title h3 { font-size:20px; }
.biam-rh-report-title h3,.biam-rh-state-badge,.biam-ticket-card h3 { overflow-wrap:anywhere; }
:is(.biam-gp-meta,.biam-ticket-meta,.biam-direction-project-meta,.biam-rh-report-row dl,.biam-rh-project-summary,.biam-rh-cost-summary) { grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); gap:12px; }
:is(.biam-gp-meta,.biam-ticket-meta,.biam-direction-project-meta,.biam-rh-report-row dl) > div { min-width:0; }
:is(.biam-gp-meta,.biam-ticket-meta,.biam-direction-project-meta,.biam-rh-report-row dl) dd { font-size:14px; line-height:1.5; overflow-wrap:break-word; font-variant-numeric:tabular-nums; }
.biam-rh-report-summary { grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:var(--biam-gap); }
.biam-rh-report-summary strong { font-size:24px; overflow-wrap:anywhere; }
.biam-project-cdd-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); }
.biam-project-cdd { font-size:14px; overflow-wrap:anywhere; }
.biam-rh-report-links,.biam-ticket-card-footer,.biam-gp-group-header { flex-wrap:wrap; }
.biam-direction-financing-header { flex-wrap:wrap; }
.biam-direction-financing-header strong { white-space:normal; }
.biam-direction-financing,.biam-tutelle-block { border-radius:var(--biam-radius) !important; }
.biam-direction-project-list { padding:var(--biam-panel-padding); }
.biam-direction-financing-header { padding:16px var(--biam-panel-padding); }

/* One institution stripe on every project/ticket card, including hover states. */
:is(.biam-gp-card,.biam-direction-project,.biam-ticket-card,.biam-rh-report-row)[data-biam-tutelle] { border-left:5px solid var(--biam-tutelle); }
.biam-deposits-page .biam-preparation-card[data-biam-tutelle] { border-top:5px solid var(--biam-tutelle); border-radius:var(--biam-radius); }
:is(.biam-gp-card,.biam-ticket-card)[data-biam-tutelle]:hover { border-left-color:var(--biam-tutelle); }
.biam-deposits-page .biam-preparation-card[data-biam-tutelle]:hover { border-top-color:var(--biam-tutelle); }
.biam-tutelle-badge,
.biam-preparation-card[data-biam-tutelle] .biam-project-tutelle { display:inline-flex; align-items:center; max-width:100%; padding:4px 9px; border:1px solid var(--biam-tutelle); border-radius:6px; background:var(--biam-tutelle-soft); color:var(--biam-tutelle-ink); font-size:12px; font-weight:800; line-height:1.4; letter-spacing:0; }
.biam-reporting-tutelle[data-biam-tutelle] > .biam-reporting-tutelle-header,
.biam-gp-tutelle-group[data-biam-tutelle] > .biam-gp-tutelle-header,
.biam-tutelle-block[data-biam-tutelle] > .biam-tutelle-header { padding:12px 16px; border:0; border-left:5px solid var(--biam-tutelle); border-radius:6px; background:var(--biam-tutelle-soft); }
[data-biam-tutelle] > :is(.biam-reporting-tutelle-header,.biam-gp-tutelle-header,.biam-tutelle-header) h3 { color:var(--biam-tutelle-ink); }
.biam-reporting-tutelle[data-biam-tutelle] .biam-direction-financing-header { border-left-color:var(--biam-tutelle); background:var(--biam-tutelle-soft); }
.biam-reporting-tutelle[data-biam-tutelle] .biam-direction-financing-header :is(h4,strong) { color:var(--biam-tutelle-ink); }
:is(.biam-deposit-detail,.biam-rh-page,.biam-achats-form-page,.cea-form-wrapper)[data-biam-tutelle] .biam-gp-hero { border-bottom-color:var(--biam-tutelle); }
:is(.biam-rh-page,.biam-achats-form-page,.cea-form-wrapper)[data-biam-tutelle] .biam-form-card,
.cea-form-wrapper[data-biam-tutelle] .cea-form-section,
.biam-deposit-detail[data-biam-tutelle] .biam-costing-form section { border-left:5px solid var(--biam-tutelle); border-top:1px solid var(--biam-line); }
.biam-deposit-detail[data-biam-tutelle] .biam-deposit-tabs > a.active { border-bottom-color:var(--biam-tutelle); background:var(--biam-tutelle-soft); color:var(--biam-tutelle-ink); }
.biam-achats-form-page[data-biam-tutelle] #biam-project-tutelle,
.biam-rh-contract-page[data-biam-tutelle] #biam-contract-project-meta { padding:10px 12px; background:var(--biam-tutelle-soft); color:var(--biam-tutelle-ink); border-left:4px solid var(--biam-tutelle); }

/* Consistent table frames; retain native table semantics and keyboard scrolling. */
.biam-costing-form .biam-cost-table-wrap { width:100%; min-width:0; max-width:100%; overflow-x:auto; }
.biam-costing-form .biam-cost-table { box-sizing:border-box; width:100%; margin:0; border-collapse:collapse; font-size:14px; }
.biam-costing-form .biam-cost-table :is(th,td) { padding:10px 12px; }
.biam-costing-form .biam-cost-table thead th { background:var(--biam-canvas); color:var(--biam-slate-dark); }
.biam-costing-form .biam-cost-summary-table tfoot :is(th,td) { border-top-color:var(--biam-tutelle,var(--biam-line)); background:var(--biam-tutelle-soft,var(--biam-canvas)); color:var(--biam-tutelle-ink,var(--biam-ink)); }
.biam-cockpit-card table { width:100%; margin:0; }
.biam-cockpit-card { min-width:0; }
.biam-cockpit-table { display:block; max-width:100%; overflow-x:auto; }

/* Contrast for active controls; institution yellow is never white text. */
.biam-rh-report-tabs a[aria-current],.biam-rh-contract-filters a[aria-current],.biam-cockpit-pagination a.is-current { background:var(--biam-slate); border-color:var(--biam-slate); color:#fff; }
.biam-deposit-create button,.biam-primary-btn,.biam-workflow-action button,.biam-controller-actions button { background:var(--biam-slate); color:#fff; }
.biam-admin-wrap .button-primary { background:var(--biam-slate); border-color:var(--biam-slate); }
[data-biam-tutelle]:focus-visible,.biam-cost-table-wrap:focus-visible { outline:3px solid var(--biam-slate); outline-offset:3px; }
@media(max-width:680px) {
    :root { --biam-panel-padding:16px; --biam-gap:16px; }
    .biam-gp-hero,.biam-hero-with-back { padding:20px; }
    .biam-gp-team-group,.biam-cockpit-card { padding:16px; }
    .biam-direction-project-list { padding:12px; }
    .biam-rh-report-summary { grid-template-columns:1fr; }
    .biam-rh-report-row dl { grid-template-columns:1fr; }
    .biam-deposit-detail .biam-deposit-tabs { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { .biam-gp-card,.biam-ticket-card,.biam-cockpit-action-card,.biam-direction-summary-card { transition:none; transform:none; } }
/* Destructive actions retain their explicit red outline after theme button styles. */
.biam-rh-delete-forecast button { background:#fff; color:#a32626; border-color:#a32626; }
.biam-rh-delete-forecast button:hover,.biam-rh-delete-forecast button:focus-visible { background:#a32626; color:#fff; }
/* Visually hidden radios must not inherit the full-width text input box. */
.biam-type-card { position:relative; min-width:0; }
.biam-achats-form .biam-type-card input[type="radio"] { position:absolute; width:1px; height:1px; min-height:0; padding:0; border:0; margin:0; opacity:0; }
.biam-type-card input:focus-visible + span { outline:3px solid var(--biam-slate); outline-offset:3px; }
.biam-costing-form .biam-remove-row { min-width:40px; padding:8px; background:#fff1f2; border:1px solid #c62836; color:#9f1d2b; }
.biam-costing-form > button { margin:4px 8px 4px 0; }
/* The existing WooCommerce budget selector is restricted to CEA projects. */
.woocommerce #biam_budget_line_field { padding:12px 16px; border-left:5px solid var(--biam-cea); background:var(--biam-cea-soft); border-radius:6px; }
.woocommerce #biam_budget_line_field > label { color:var(--biam-cea-ink); }
/* Align corresponding facts across preparation cards with different title lengths. */
@supports (grid-template-rows:subgrid) {
    .biam-deposits-page .biam-deposit-grid .biam-preparation-card { display:grid; grid-row:span 5; grid-template-rows:subgrid; row-gap:18px; }
}
/* The legacy training form also follows the page edges. */
.rbf-wrap.rbf-wrap,.rbf-wrap :is(.rbf-card,.rbf-form,.rbf-notice) { box-sizing:border-box; width:100%; max-width:none !important; margin-inline:0 !important; }
.rbf-wrap .rbf-history { max-width:100%; overflow-x:auto; }

/* Administration 2.1.15: four sections and a balanced ticket workspace. */
.biam-admin-navigation { display:flex; flex-wrap:wrap; gap:8px; margin:18px 20px 16px 0; padding:12px; background:#fff; border:1px solid var(--biam-line); border-radius:8px; }
.biam-admin-navigation a { padding:10px 14px; border-radius:5px; color:var(--biam-slate-dark); text-decoration:none; font-weight:700; }
.biam-admin-navigation a[aria-current] { background:var(--biam-slate); color:#fff; }
.biam-admin-navigation a:focus-visible,.biam-admin-section-link:focus-visible { outline:3px solid var(--biam-primary-dark); outline-offset:2px; }
.biam-admin-section-links { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:18px; max-width:1200px; }
.biam-admin-section-link { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px; border:1px solid var(--biam-line); border-top:4px solid var(--biam-primary); border-radius:8px; background:#fff; color:var(--biam-slate-dark); text-decoration:none; font-size:17px; }
.biam-admin-section-link:hover { border-color:var(--biam-primary-dark); color:var(--biam-primary-dark); }
#toplevel_page_biam-administration .wp-submenu a { padding-top:10px; padding-bottom:10px; line-height:1.45; }
.biam-tickets-workspace { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; align-items:start; }
.biam-tickets-workspace.has-selection { grid-template-columns:repeat(2,minmax(0,1fr)); }
.biam-tickets-workspace > .biam-admin-panel { min-width:0; width:100%; padding:20px; }
.biam-ticket-list-panel .biam-admin-filters > :is(input,select) { min-width:0; max-width:100%; flex:1 1 150px; }
.biam-ticket-tables-scroll { overflow-x:auto; width:100%; max-width:100%; height:auto; max-height:none; }
.biam-ticket-tables-scroll > .biam-tutelle-groups { min-width:880px; padding-bottom:4px; }
.biam-ticket-table { table-layout:fixed; width:100%; border-collapse:collapse; }
.biam-ticket-table col.ticket-title { width:17%; }
.biam-ticket-table col.ticket-requester { width:10%; }
.biam-ticket-table col.ticket-project { width:12%; }
.biam-ticket-table col.ticket-team { width:7%; }
.biam-ticket-table col.ticket-amount { width:10%; }
.biam-ticket-table col.ticket-status { width:14%; }
.biam-ticket-table col.ticket-manager { width:15%; }
.biam-ticket-table col.ticket-updated { width:8%; }
.biam-ticket-table col.ticket-open { width:7%; }
.biam-admin-wrap .biam-ticket-table :is(th,td) { box-sizing:border-box; padding:10px 8px; overflow-wrap:anywhere; vertical-align:top; font-size:12px; }
.biam-admin-wrap .biam-ticket-table th { font-size:10px; letter-spacing:0; }
.biam-ticket-table .biam-status-badge { white-space:normal; max-width:100%; line-height:1.4; padding:4px 6px; }
.biam-ticket-table .button { padding:3px 5px; min-height:30px; font-size:11px; }
.biam-ticket-table tbody tr.is-selected > td { background:var(--biam-tutelle-soft); }
.biam-ticket-table tbody tr.is-selected > td:first-child { box-shadow:inset 4px 0 var(--biam-tutelle); }
.biam-ticket-detail { position:static; height:auto; max-height:none; overflow:visible; border-left:5px solid var(--biam-tutelle); }
.biam-ticket-detail p { font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.biam-ticket-detail input:not([type="checkbox"]):not([type="hidden"]),.biam-ticket-detail select,.biam-ticket-detail textarea { width:100%; max-width:100%; }
.biam-ticket-detail-close { display:flex; justify-content:flex-end; margin:0 0 10px; }
#biam-ticket-detail { scroll-margin-top:60px; font-size:23px; }
.biam-ticket-tables-scroll:focus-visible { outline:3px solid var(--biam-slate); outline-offset:3px; }
@media(max-width:1100px) {
    .biam-tickets-workspace.has-selection { grid-template-columns:minmax(0,1fr); }
    .biam-ticket-detail { position:static; max-height:none; }
}

.biam-ticket-title-link { color:var(--biam-slate-dark); text-decoration:underline; text-underline-offset:3px; }
.biam-ticket-table td:nth-child(5) { font-variant-numeric:tabular-nums; }
.biam-ticket-tables-scroll .biam-tutelle-header { justify-content:flex-start; }
.biam-admin-wrap .biam-ticket-status-filter { flex: 1 1 100%; min-width: 0; padding: 8px 10px; border: 1px solid #c3c4c7; border-radius: 5px; background: #fff; }
.biam-admin-wrap .biam-ticket-status-filter summary { cursor: pointer; font-weight: 600; }
.biam-admin-wrap .biam-ticket-status-filter summary:focus-visible { outline: 2px solid #1765b5; outline-offset: 3px; }
.biam-admin-wrap .biam-ticket-status-options { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 8px 14px; padding: 4px 0 8px; }
.biam-admin-wrap .biam-ticket-status-options label { display: flex; gap: 6px; align-items: center; min-width: 0; }
.biam-admin-wrap .biam-ticket-status-options input[type="checkbox"] { flex: 0 0 auto; width: 16px; height: 16px; margin: 0; }
