:root {
    --biam-primary: #0f766e;
    --biam-primary-dark: #115e59;
    --biam-primary-soft: #ecfdf5;
    --biam-ink: #172033;
    --biam-muted: #64748b;
    --biam-line: #dbe3ea;
    --biam-surface: #ffffff;
    --biam-canvas: #f6f8fb;
    --biam-radius: 16px;
    --biam-shadow: 0 12px 30px rgba(15, 23, 42, .07);
}

.biam-admin-wrap,
.biam-cockpit-grid,
.biam-gp-cockpit,
.biam-direction-reporting,
.biam-achats-form,
.biam-achats-list {
    color: var(--biam-ink);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.biam-admin-wrap h1 { font-size: 28px; font-weight: 750; letter-spacing: -.02em; margin: 18px 0 22px; }
.biam-admin-wrap h2 { color: var(--biam-ink); font-size: 18px; margin-top: 0; }
.biam-admin-wrap .card,
.biam-admin-wrap div[style*="background:#fff"] {
    background: var(--biam-surface) !important;
    border: 1px solid var(--biam-line) !important;
    border-radius: var(--biam-radius) !important;
    box-shadow: var(--biam-shadow);
}
.biam-admin-wrap .card { max-width: none; }
.biam-admin-wrap input[type="text"], .biam-admin-wrap input[type="search"], .biam-admin-wrap input[type="number"],
.biam-admin-wrap input[type="date"], .biam-admin-wrap select, .biam-admin-wrap textarea {
    min-height: 40px; border: 1px solid #b9c6d3; border-radius: 9px; padding: 8px 10px;
}
.biam-admin-wrap textarea { min-height: 90px; }
.biam-admin-wrap .button { border-radius: 9px; min-height: 36px; display: inline-flex; align-items: center; justify-content: center; }
.biam-admin-wrap .button-primary { background: var(--biam-primary); border-color: var(--biam-primary); }
.biam-admin-wrap .button-primary:hover { background: var(--biam-primary-dark); border-color: var(--biam-primary-dark); }
.biam-admin-wrap .widefat { border: 0; box-shadow: none; }
.biam-admin-wrap .widefat th { color: #475569; font-size: 12px; letter-spacing: .035em; text-transform: uppercase; }
.biam-admin-wrap .widefat td { vertical-align: middle; padding-top: 12px; padding-bottom: 12px; }
.biam-admin-layout { display: grid; grid-template-columns: minmax(350px, 440px) minmax(0, 1fr); gap: 22px; align-items: start; }
.biam-admin-project-layout { display: grid; grid-template-columns: minmax(340px, 420px) minmax(0, 1fr); gap: 22px; align-items: start; }
.biam-admin-panel { background: var(--biam-surface); border: 1px solid var(--biam-line); border-radius: var(--biam-radius); padding: 22px; box-shadow: var(--biam-shadow); }
.biam-admin-panel--sticky { position: sticky; top: 48px; max-height: calc(100vh - 72px); overflow: auto; }
.biam-admin-filters { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 12px; background: var(--biam-canvas); border-radius: 12px; margin-bottom: 18px; }

.biam-tutelle-groups { display: grid; gap: 18px; }
.biam-tutelle-block { border: 1px solid var(--biam-line); border-radius: 14px; overflow: hidden; background: #fff; }
.biam-tutelle-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 16px; background: linear-gradient(90deg, #eff8f7, #f8fafc); border-bottom: 1px solid var(--biam-line); }
.biam-tutelle-header h3 { margin: 0; font-size: 16px; }
.biam-tutelle-block.is-cnrs .biam-tutelle-header { border-left: 5px solid #2563eb; }
.biam-tutelle-block.is-cea .biam-tutelle-header { border-left: 5px solid #7c3aed; }
.biam-tutelle-block.is-amu .biam-tutelle-header { border-left: 5px solid #ea580c; }
.biam-tutelle-block.is-sans-tutelle .biam-tutelle-header { border-left: 5px solid #94a3b8; }
.biam-count-badge, .biam-status-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 700; line-height: 1; }
.biam-count-badge { background: #fff; color: var(--biam-primary-dark); border: 1px solid #b7ddd8; }
.biam-status-badge { color: #334155; background: #eef2f7; white-space: nowrap; }
.biam-status-badge.is-nouveau { background: #dbeafe; color: #1d4ed8; }
.biam-status-badge.is-attente_securite, .biam-status-badge.is-en_attente_prescripteur { background: #fff7d6; color: #92400e; }
.biam-status-badge.is-en_cours, .biam-status-badge.is-valide_securite { background: #e0f2fe; color: #0369a1; }
.biam-status-badge.is-valide, .biam-status-badge.is-clos { background: #dcfce7; color: #166534; }
.biam-status-badge.is-refuse, .biam-status-badge.is-refuse_securite { background: #fee2e2; color: #b91c1c; }

.biam-cockpit-actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 18px; }
.biam-cockpit-btn, .biam-gp-btn, .biam-achats-list a.biam-action-link, .biam-front-discussion button {
    display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 9px 14px;
    border: 1px solid var(--biam-line); border-radius: 10px; background: #fff; color: var(--biam-ink); text-decoration: none; font-weight: 700;
}
.biam-cockpit-btn-primary, .biam-gp-btn, .biam-front-discussion button { background: var(--biam-primary); border-color: var(--biam-primary); color: #fff; }
.biam-cockpit-btn-primary:hover, .biam-gp-btn:hover, .biam-front-discussion button:hover { background: var(--biam-primary-dark); color: #fff; }
.biam-cockpit-grid { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }
.biam-cockpit-card { background: #fff; border: 1px solid var(--biam-line); border-radius: var(--biam-radius); padding: 20px; box-shadow: var(--biam-shadow); }
.biam-cockpit-card, .biam-cockpit-card-wide { grid-column: 1 / -1; }
.biam-cockpit-card h2 { margin: 0 0 12px; font-size: 19px; }
.biam-cockpit-header-row { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; }
.biam-cockpit-filter-form select { min-height: 40px; padding: 8px 10px; border: 1px solid #b8c4cf; border-radius: 9px; background: #fff; }
.biam-cockpit-table { width: 100%; border-collapse: collapse; }
.biam-cockpit-table th, .biam-cockpit-table td { padding: 11px 9px; border-bottom: 1px solid #e9eef3; text-align: left; vertical-align: top; }
.biam-cockpit-table th { color: var(--biam-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .035em; }
.biam-cockpit-link { color: var(--biam-primary); text-decoration: none; font-weight: 700; }
.biam-cockpit-muted { color: var(--biam-muted); }
.biam-cockpit-message, .biam-gp-message, .biam-achats-message { padding: 15px 17px; background: #fff; border: 1px solid var(--biam-line); border-radius: 12px; }
.biam-cockpit-pagination { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 14px; }
.biam-cockpit-pagination a { display: inline-flex; min-width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid var(--biam-line); border-radius: 9px; color: var(--biam-ink); text-decoration: none; }
.biam-cockpit-pagination a.is-current { background: var(--biam-primary); border-color: var(--biam-primary); color: #fff; }
.biam-cockpit-breakdowns { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; }
.biam-cockpit-breakdown { padding: 12px; background: var(--biam-canvas); border-radius: 12px; }
.biam-cockpit-breakdown h3 { font-size: 15px; margin: 0 0 8px; }
.biam-cockpit-breakdown ul { margin: 0; padding: 0; list-style: none; }
.biam-cockpit-breakdown li { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px solid #e2e8f0; }
.biam-direction-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.biam-direction-summary-card { padding: 15px; border: 1px solid var(--biam-line); border-radius: 12px; background: var(--biam-canvas); }
.biam-direction-summary-card h3 { margin: 0 0 10px; font-size: 16px; }
.biam-direction-summary-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 0; }
.biam-direction-summary-card dl div { min-width: 0; }
.biam-direction-summary-card dt { color: var(--biam-muted); font-size: 11px; font-weight: 750; text-transform: uppercase; }
.biam-direction-summary-card dd { margin: 4px 0 0; font-size: 17px; font-weight: 800; overflow-wrap: anywhere; }

.biam-direction-reporting { margin: 24px 0; }
.biam-direction-years, .biam-direction-year { display: grid; gap: 18px; }
.biam-direction-year { padding: 20px; border: 1px solid var(--biam-line); border-radius: 18px; background: #fff; box-shadow: var(--biam-shadow); }
.biam-direction-year-header { padding-bottom: 12px; border-bottom: 2px solid #cfe2df; }
.biam-direction-year-header h2 { margin: 0; font-size: 24px; }
.biam-direction-financing { border: 1px solid var(--biam-line); border-radius: 14px; overflow: hidden; }
.biam-direction-financing-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; background: linear-gradient(90deg, #f0fdfa, #f8fafc); }
.biam-direction-financing-header h3 { margin: 0 0 3px; font-size: 17px; }
.biam-direction-financing-header span { color: var(--biam-muted); font-size: 12px; }
.biam-direction-financing-header strong { color: var(--biam-primary-dark); white-space: nowrap; }
.biam-direction-table-wrap { overflow-x: auto; }
.biam-direction-table { width: 100%; border-collapse: collapse; }
.biam-direction-table th, .biam-direction-table td { padding: 12px 11px; border-bottom: 1px solid #e9eef3; text-align: left; vertical-align: top; }
.biam-direction-table th { color: var(--biam-muted); background: #fff; font-size: 11px; letter-spacing: .035em; text-transform: uppercase; }
.biam-direction-table tbody tr:last-child td { border-bottom: 0; }
.biam-direction-table .biam-amount { text-align: right; white-space: nowrap; }

.biam-gp-cockpit { margin: 24px 0; }
.biam-gp-hero { padding: 26px 28px; border: 1px solid #cfe2df; border-radius: 22px; background: linear-gradient(135deg, #ecfdf5, #f8fafc 58%, #fff); box-shadow: var(--biam-shadow); margin-bottom: 20px; }
.biam-gp-kicker { display: inline-flex; padding: 6px 11px; border-radius: 999px; background: #d8f3ee; color: var(--biam-primary-dark); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.biam-gp-hero h2 { margin: 12px 0 6px; font-size: 30px; }
.biam-gp-project-groups, .biam-gp-team-group { display: grid; gap: 18px; }
.biam-gp-team-group { padding: 20px; border: 1px solid var(--biam-line); border-radius: 18px; background: #fff; box-shadow: var(--biam-shadow); }
.biam-gp-group-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.biam-gp-group-header h2, .biam-gp-group-header h3 { margin: 0; }
.biam-gp-team-header { padding-bottom: 14px; border-bottom: 2px solid #cfe2df; }
.biam-gp-team-header h2 { font-size: 22px; }
.biam-gp-tutelle-group { display: grid; gap: 12px; }
.biam-gp-tutelle-header { color: var(--biam-muted); }
.biam-gp-tutelle-header h3 { color: var(--biam-ink); font-size: 16px; }
.biam-gp-tutelle-header span { font-size: 12px; font-weight: 700; }
.biam-gp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.biam-gp-card { position: relative; display: flex; flex-direction: column; min-width: 0; border-radius: var(--biam-radius); background: #fff; border: 1px solid var(--biam-line); box-shadow: 0 7px 20px rgba(15, 23, 42, .06); padding: 18px; }
.biam-gp-project-title { display: -webkit-box; min-height: 2.8em; margin: 0 0 14px; overflow: hidden; font-size: 18px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.biam-gp-deadline { align-self: flex-start; margin: 0 0 10px; padding: 5px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; }
.biam-gp-deadline.is-warning { color: #9a3412; background: #ffedd5; }
.biam-gp-deadline.is-urgent { color: #b91c1c; background: #fee2e2; }
.biam-gp-actions { margin: auto 0 0; padding-top: 14px; }
.biam-gp-actions .biam-gp-btn { width: 100%; box-sizing: border-box; }
.biam-gp-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 15px; }
.biam-gp-meta div { padding: 10px 12px; border-radius: 12px; background: var(--biam-canvas); border: 1px solid #e6ebf0; }
.biam-gp-meta dt { color: var(--biam-muted); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.biam-gp-meta dd { margin: 0; color: var(--biam-ink); }

.biam-achats-form { display: grid; gap: 18px; max-width: 900px; }
.biam-form-card { padding: 22px; border: 1px solid var(--biam-line); border-radius: var(--biam-radius); background: #fff; box-shadow: var(--biam-shadow); display: grid; gap: 14px; }
.biam-form-card h3 { margin: 0; font-size: 18px; }
.biam-achats-form input, .biam-achats-form select, .biam-achats-form textarea { box-sizing: border-box; width: 100%; padding: 11px; border: 1px solid #b8c4cf; border-radius: 9px; background: #fff; }
.biam-achats-form button { padding: 12px 18px; border: 0; border-radius: 10px; background: var(--biam-primary); color: #fff; font-weight: 750; cursor: pointer; }
.biam-type-grid { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 10px; }
.biam-type-card input { position: absolute; opacity: 0; }
.biam-type-card span { display: block; padding: 17px 10px; text-align: center; border: 2px solid var(--biam-line); border-radius: 12px; font-weight: 700; cursor: pointer; }
.biam-type-card input:checked + span { border-color: var(--biam-primary); background: var(--biam-primary-soft); color: var(--biam-primary-dark); }
.biam-nacre-results { display: grid; gap: 7px; margin-top: 8px; }
.biam-nacre-result { padding: 10px 12px !important; border: 1px solid var(--biam-line) !important; border-radius: 9px !important; background: #f8fafc !important; color: var(--biam-ink) !important; text-align: left; }
.biam-nacre-result:hover, .biam-nacre-result:focus { border-color: var(--biam-primary) !important; background: var(--biam-primary-soft) !important; }
.biam-nacre-selected { padding: 11px 13px; border-radius: 9px; background: #f1f5f9; }
.biam-achats-success { border-color: #86efac; background: #f0fdf4; }
.biam-codes-dialog { width: min(900px, 92vw); max-height: 82vh; border: 0; border-radius: 18px; padding: 22px; background: #fff; color: var(--biam-ink); box-shadow: 0 24px 70px rgba(15, 23, 42, .3); }
.biam-codes-dialog::backdrop { background: rgba(15, 23, 42, .62); }
.biam-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.biam-dialog-header h3 { margin: 0; }
.biam-dialog-close { border: 0 !important; background: transparent !important; color: var(--biam-ink) !important; font-size: 30px; cursor: pointer; padding: 0 6px !important; }
.biam-codes-dialog input { box-sizing: border-box; width: 100%; padding: 11px; border: 1px solid #b8c4cf; border-radius: 9px; background: #fff; color: var(--biam-ink); }
.biam-all-codes-results { display: grid; gap: 7px; max-height: 50vh; overflow: auto; }
.biam-all-codes-results .biam-nacre-result { width: 100%; }

.biam-achats-list { margin: 22px 0; }
.biam-status-groups { display: grid; gap: 20px; }
.biam-status-group { border: 1px solid var(--biam-line); border-radius: var(--biam-radius); background: #fff; box-shadow: var(--biam-shadow); overflow: hidden; }
.biam-status-group-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; background: linear-gradient(90deg, #f0fdfa, #f8fafc); border-bottom: 1px solid var(--biam-line); }
.biam-status-group-header h2 { margin: 0; font-size: 18px; }
.biam-ticket-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 14px; }
.biam-ticket-card { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 15px; border: 1px solid #e4eaf0; border-radius: 13px; background: #fff; }
.biam-ticket-card h3 { margin: 0; font-size: 16px; line-height: 1.35; }
.biam-ticket-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.biam-ticket-meta div { padding: 8px 9px; border-radius: 9px; background: var(--biam-canvas); }
.biam-ticket-meta dt { color: var(--biam-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }
.biam-ticket-meta dd { margin: 3px 0 0; font-weight: 650; overflow-wrap: anywhere; }
.biam-ticket-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; color: var(--biam-muted); font-size: 12px; }
.biam-achats-ticket-detail { margin-top: 24px; padding: 22px; border: 1px solid var(--biam-line); border-radius: var(--biam-radius); background: #fff; box-shadow: var(--biam-shadow); }
.biam-ticket-inline-detail { margin-top: 4px; background: var(--biam-canvas); box-shadow: none; }
.biam-ticket-inline-detail[hidden] { display: none; }
.biam-log-item { padding: 11px 13px; border: 1px solid #e5e7eb; border-radius: 10px; margin-bottom: 8px; background: #f9fafb; }
.biam-log-prescripteur { border-left: 4px solid #2563eb; }.biam-log-chef-equipe { border-left: 4px solid #7c3aed; }.biam-log-gestionnaire { border-left: 4px solid #059669; }.biam-log-securite { border-left: 4px solid #ea580c; }.biam-log-system { border-left: 4px solid #94a3b8; }

.screen-reader-text { position: absolute; left: -9999px; }

@media (max-width: 980px) {
    .biam-admin-layout, .biam-admin-project-layout { grid-template-columns: 1fr; }
    .biam-admin-panel--sticky { position: static; max-height: none; }
    .biam-type-grid { grid-template-columns: repeat(2, 1fr); }
    .biam-gp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
    .biam-gp-meta, .biam-ticket-meta { grid-template-columns: 1fr; }
    .biam-gp-grid { grid-template-columns: 1fr; }
    .biam-gp-hero { padding: 20px; }
    .biam-cockpit-table { display: block; overflow-x: auto; }
    .biam-ticket-grid { grid-template-columns: 1fr; }
    .biam-direction-summary, .biam-direction-summary-card dl { grid-template-columns: 1fr; }
    .biam-direction-financing-header { align-items: flex-start; flex-direction: column; }
}
