:root{font-family:system-ui,-apple-system,sans-serif;color:#20242a;background:#f4f5f7}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;background:#17202a;color:#fff;padding:1rem 4vw}nav{display:flex;gap:1rem}a{color:#1769aa}header a{color:#fff}main{max-width:1100px;margin:2rem auto;padding:0 1rem}.card,form{background:#fff;padding:1.25rem;border-radius:8px;box-shadow:0 1px 4px #0002;margin-bottom:1rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}label{display:block;font-weight:600;margin-bottom:.8rem}input,select,textarea{display:block;width:100%;margin-top:.3rem;padding:.65rem;border:1px solid #bbc1c7;border-radius:5px}textarea{min-height:90px}button,.button{display:inline-block;background:#1769aa;color:#fff;border:0;border-radius:5px;padding:.7rem 1rem;text-decoration:none;cursor:pointer}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:.7rem;border-bottom:1px solid #ddd}.actions{display:flex;gap:.6rem;margin-bottom:1rem}.error{background:#fee;color:#900;padding:.8rem;border-radius:5px}.muted{color:#667}.nowrap{white-space:nowrap}.table-scroll{overflow-x:auto}.jobs-table{table-layout:fixed;min-width:1050px}.jobs-table th,.jobs-table td{white-space:nowrap}.jobs-table th:nth-child(1),.jobs-table td:nth-child(1){width:170px}.jobs-table th:nth-child(2),.jobs-table td:nth-child(2){width:255px;overflow:hidden;text-overflow:ellipsis}.jobs-table th:nth-child(3),.jobs-table td:nth-child(3){width:280px;overflow:hidden;text-overflow:ellipsis}.jobs-table th:nth-child(4),.jobs-table td:nth-child(4){width:245px}.jobs-table th:nth-child(5),.jobs-table td:nth-child(5){width:150px}.client-checkboxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.35rem 1rem;max-height:280px;overflow:auto;padding:.75rem}.client-checkboxes label{font-weight:400;margin:0}.client-checkboxes input{display:inline;width:auto;margin:0 .35rem 0 0}fieldset{border:1px solid #bbc1c7;border-radius:5px;margin:0 0 1rem}legend{font-weight:600}
/* Analyse financière : tableau de bord annuel et historique. */
main.financial-analysis{width:min(1600px,100%);margin-inline:auto;padding-inline:clamp(1rem,3vw,3rem)}
.financial-analysis>.page-heading{margin-bottom:3rem}
.financial-analysis .financial-pilot-section{margin:0 0 3rem}
.financial-analysis .financial-pilot-overview{margin-bottom:2.4rem;padding-left:1.05rem;border-left:4px solid var(--turquoise)}
.financial-analysis .financial-pilot-heading{margin-bottom:1.8rem}
.financial-analysis .financial-pilot-heading h2{margin:1.55rem 0 0;font-size:clamp(1.7rem,3vw,2.5rem)}
.financial-analysis .financial-pilot-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:clamp(2rem,5vw,7rem);align-items:start;width:100%}
.financial-analysis .financial-pilot-column{min-width:0}
.financial-analysis .financial-pilot-summary p{margin:0;color:var(--text);font-size:clamp(1rem,1.35vw,1.25rem);line-height:1.45}
.financial-analysis .financial-pilot-summary strong{font-weight:800;white-space:nowrap}
.financial-analysis .financial-monthly-summary{padding-left:1.05rem;border-left:4px solid var(--turquoise)}
.financial-analysis .financial-monthly-heading h3{margin:0 0 1.1rem;font-size:clamp(1.2rem,2vw,1.55rem)}
.financial-analysis .financial-monthly-heading p{margin:0 0 1.35rem;color:var(--text);font-size:clamp(1rem,1.35vw,1.25rem)}
.financial-analysis .financial-month-grid{display:grid;grid-template-columns:repeat(12,minmax(70px,1fr));gap:1rem;overflow-x:auto;padding-bottom:.25rem}
.financial-analysis .financial-month{display:grid;gap:.15rem;min-width:70px;font-size:clamp(.95rem,1.25vw,1.15rem)}
.financial-analysis .financial-month strong{font-weight:400;white-space:nowrap}
.financial-analysis .page-hero{margin:1rem 0 2rem;padding:.2rem 0 .2rem 1.4rem;border-left:5px solid var(--turquoise)}
.financial-analysis .page-hero h1{margin:.2rem 0;font-size:clamp(3rem,7vw,6.5rem);line-height:.95}
.financial-analysis .page-lead{margin:.8rem 0 0;color:var(--muted-text);font-size:clamp(1rem,1.6vw,1.25rem)}
.financial-analysis .financial-section{margin:0 0 2rem}
.financial-analysis .financial-section--current{padding:clamp(1rem,2vw,2rem);border:1px solid var(--line);border-radius:1.5rem;background:var(--surface)}
.financial-analysis .financial-section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.financial-analysis .financial-section-heading h2{margin:0;font-size:clamp(1.7rem,3vw,2.5rem)}
.financial-analysis .financial-section-note{margin:0;color:var(--muted-text)}
.financial-analysis .financial-kpi-grid{display:grid;gap:1rem;margin-bottom:1.25rem}
.financial-analysis .financial-kpi-grid--six{grid-template-columns:repeat(6,minmax(0,1fr))}
.financial-analysis .financial-kpi-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}
.financial-analysis .financial-kpi{min-width:0;padding:1.15rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-soft)}
.financial-analysis .financial-kpi span{display:block;margin-bottom:.55rem;color:var(--muted-text);font-size:.92rem}
.financial-analysis .financial-kpi strong{display:block;color:var(--text);font-size:clamp(1.25rem,2vw,2rem);line-height:1.1;overflow-wrap:anywhere}
.financial-analysis .financial-kpi--negative{border-color:#b94b55;background:color-mix(in srgb,#b4232f 15%,var(--surface-soft))}
.financial-analysis .financial-kpi--negative strong{color:#ef6670}
.financial-analysis .financial-kpi--positive{border-color:#397e59;background:color-mix(in srgb,#23804b 14%,var(--surface-soft))}
.financial-analysis .financial-kpi--positive strong{color:#55bd7e}
.financial-analysis .financial-chart-card{overflow-x:auto;padding:1.25rem;border-radius:1.15rem;background:#f7f9fd;color:#18213f}
.financial-analysis .financial-chart-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:820px;margin-bottom:1rem}
.financial-analysis .financial-chart-header h3{margin:0;color:#18213f}
.financial-analysis .financial-chart-legend{display:flex;gap:1rem;font-size:.88rem}
.financial-analysis .financial-chart-legend i{display:inline-block;width:.75rem;height:.75rem;margin-right:.4rem;border-radius:.2rem;vertical-align:-.05rem}
.financial-analysis .financial-legend-target{background:#72c7d4}
.financial-analysis .financial-legend-actual{background:#212c54}
.financial-analysis .financial-chart{display:grid;grid-template-columns:repeat(12,minmax(52px,1fr));align-items:end;gap:.65rem;min-width:820px;height:300px;padding-top:1rem;border-bottom:1px solid #bdc8da}
.financial-analysis .financial-chart-month{display:grid;grid-template-rows:2rem 230px 1.5rem;align-items:end;height:100%;text-align:center}
.financial-analysis .financial-chart-value{align-self:start;color:#536078;font-size:.72rem;white-space:nowrap}
.financial-analysis .financial-chart-bars{display:flex;align-items:end;justify-content:center;gap:3px;height:230px}
.financial-analysis .financial-bar{display:block;width:min(18px,40%);min-height:2px;border-radius:5px 5px 0 0}
.financial-analysis .financial-bar--target{background:#72c7d4}
.financial-analysis .financial-bar--actual{background:#212c54}
.financial-analysis .financial-chart-label{align-self:center;color:#18213f;font-weight:700}
.financial-analysis .financial-history-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}
.financial-analysis .financial-history-card{padding:1.25rem;border:1px solid var(--line);border-radius:1.15rem;background:var(--surface)}
.financial-analysis .financial-history-year{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.financial-analysis .financial-history-year h3{margin:0;font-size:1.65rem}
.financial-analysis .financial-history-year strong{font-size:1.25rem}
.financial-analysis .financial-history-card dl{display:grid;gap:.55rem;margin:0}
.financial-analysis .financial-history-card dl>div{display:grid;grid-template-columns:1fr auto;gap:1rem}
.financial-analysis .financial-empty-state{grid-column:1/-1;margin:0;padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface);color:var(--muted-text)}
.financial-analysis .financial-history-card dt{color:var(--muted-text)}
.financial-analysis .financial-history-card dd{margin:0;font-weight:700;text-align:right}
.financial-analysis .financial-history-progress{height:.55rem;margin-top:1rem;overflow:hidden;border-radius:999px;background:var(--surface-soft)}
.financial-analysis .financial-history-progress span{display:block;height:100%;background:var(--turquoise)}
.financial-analysis .is-negative{color:#ef6670!important}
.financial-analysis .is-positive{color:#55bd7e!important}
.financial-analysis .financial-detail-section{margin-top:2.5rem}
.financial-analysis .result-count{color:var(--muted-text)}
.financial-analysis .table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:1.15rem}
.financial-analysis .financial-table{min-width:900px;margin:0}
.financial-analysis .financial-table .number-cell,.financial-analysis .financial-table .total-cell{text-align:right;white-space:nowrap}
.financial-analysis .financial-footnote{color:var(--muted-text);font-size:.92rem}
@media(max-width:1280px){.financial-analysis .financial-kpi-grid--six{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.financial-analysis .financial-kpi-grid--six,.financial-analysis .financial-kpi-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}.financial-analysis .financial-section-heading{align-items:start;flex-direction:column}}
@media(max-width:760px){.financial-analysis .financial-pilot-summary{grid-template-columns:1fr;row-gap:1.25rem}}
@media(max-width:600px){main.financial-analysis{padding-inline:1rem}.financial-analysis .financial-kpi-grid--six,.financial-analysis .financial-kpi-grid--four{grid-template-columns:1fr}.financial-analysis .financial-chart-card{margin-inline:-.35rem}}
@media(max-width:600px){.financial-analysis>.page-heading{margin-bottom:2rem}}
