/* Référence : MDBDesignSystem et CalculatImmoWorkspaceView Mac 225.
   Ce fichier ne change que la composition Calculat’Immo. */
.calculatimmo { --calc-paper:var(--galen-color-paper); --calc-table:var(--galen-color-drafting-table); --calc-ink:var(--galen-color-ink); --calc-muted:var(--galen-color-muted-ink); --calc-line:var(--galen-color-quiet-line); color-scheme:light; color:var(--calc-ink); max-width:none; width:100%; }
.calculatimmo .calculatimmo-header { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:20px; margin-bottom:20px; }
.calculatimmo .calculatimmo-header h1 { font-family:inherit; font-size:24px; line-height:1.2; letter-spacing:-.025em; margin:0; }
.calculatimmo .calculatimmo-header p { margin:6px 0 0; font-size:13px; color:var(--calc-muted); }
.calculatimmo .calculatimmo-command-bar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.calculatimmo button { min-height:48px; border-radius:8px; font-size:13px; font-weight:500; background:var(--calc-paper); color:var(--calc-ink); border:1px solid var(--calc-line); box-shadow:none; transform:none; cursor:pointer; }
.calculatimmo button:hover:not(:disabled) { background:var(--calc-table); transform:none; box-shadow:none; }
.calculatimmo button:disabled { opacity:.45; cursor:default; }
.calculatimmo .calculatimmo-command-primary { background:var(--galen-color-blueprint); color:var(--galen-color-paper); border-color:var(--galen-color-blueprint); font-weight:600; }
.calculatimmo .calculatimmo-command-primary:hover:not(:disabled) { background:#174ab0; }
.calculatimmo .calculatimmo-workspace { display:block; container:calculator-workspace / inline-size; }
.calculatimmo .calculatimmo-layout { display:grid; grid-template-columns:minmax(0,55fr) minmax(0,45fr); gap:20px; align-items:start; }
.calculatimmo .calculatimmo-form,.calculatimmo .calculatimmo-output { min-width:0; }
.calculatimmo .calculatimmo-draft-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px; margin:0 0 12px; }
.calculatimmo .calculatimmo-draft-heading h2,.calculatimmo .calculatimmo-results-heading h2 { font-size:15px; line-height:1.4; margin:0; }
.calculatimmo [data-calculatimmo-draft-status],.calculatimmo .calculatimmo-results-heading span { font-size:11px; color:var(--calc-muted); }
.calculatimmo .calculatimmo-parameter-section { padding:20px; border:1px solid var(--calc-line); border-radius:12px; background:var(--calc-paper); margin:0 0 16px; }
.calculatimmo .calculatimmo-parameter-section h3 { padding:12px; margin:0 0 16px; border:0; border-radius:8px; background:var(--calc-table); color:var(--calc-ink); font-size:15px; line-height:1.4; font-weight:600; }
.calculatimmo .calculatimmo-parameter-section p,.calculatimmo .calculatimmo-field-hint { font-size:13px; line-height:1.55; color:var(--calc-muted); }
.calculatimmo .calculatimmo-section-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.calculatimmo .calculatimmo-section-fields > p,.calculatimmo .calculatimmo-section-fields > [role=alert] { grid-column:1/-1; }
.calculatimmo .calculatimmo-section-fields > label,.calculatimmo .calculatimmo-field { display:flex; flex-direction:column; gap:6px; min-width:0; font-size:13px; font-weight:500; }
.calculatimmo .calculatimmo-field-heading { display:flex; align-items:center; min-height:22px; justify-content:space-between; gap:6px; }
.calculatimmo .calculatimmo-field-heading label,.calculatimmo .calculatimmo-field-title { display:block; min-height:22px; font-size:13px; font-weight:500; line-height:1.4; }
.calculatimmo input,.calculatimmo select,.calculatimmo textarea { width:100%; min-width:0; min-height:48px; border-radius:8px; padding:8px 12px; border:1px solid var(--calc-line); background:var(--calc-paper); color:var(--calc-ink); font-size:14px; font-weight:400; box-shadow:none; }
.calculatimmo input,.calculatimmo select { height:48px; box-sizing:border-box; }
.calculatimmo select { appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:36px; background-image:linear-gradient(45deg,transparent 50%,var(--galen-color-muted-ink) 50%),linear-gradient(135deg,var(--galen-color-muted-ink) 50%,transparent 50%); background-position:calc(100% - 18px) 22px,calc(100% - 13px) 22px; background-size:5px 5px; background-repeat:no-repeat; }
.calculatimmo select:disabled { cursor:default; }
.calculatimmo :is(button,a,input,select,textarea,summary):focus-visible { outline:2px solid var(--galen-color-blueprint); outline-offset:3px; }
.calculatimmo .calculatimmo-output { position:sticky; top:20px; padding:0; background:transparent; border:0; box-shadow:none; }
.calculatimmo .calculatimmo-results-heading { display:flex; justify-content:space-between; gap:8px; align-items:baseline; margin:0 0 12px; }
.calculatimmo .calculatimmo-primary-summary { margin:0 0 16px; }
.calculatimmo .calculatimmo-primary-result { display:block; background:var(--galen-color-cover-ink); color:white; padding:24px; border:0; border-radius:12px; min-height:164px; }
.calculatimmo .calculatimmo-primary-result dt { color:white; font-size:13px; font-weight:500; }
.calculatimmo .calculatimmo-primary-result dd { color:white; font-size:32px; line-height:1.25; font-weight:600; margin:16px 0 8px; overflow-wrap:anywhere; }
.calculatimmo .calculatimmo-primary-result p { color:var(--galen-color-rail-muted-ink); font-size:12px; margin:0; }
.calculatimmo .calculatimmo-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 16px; }
.calculatimmo .calculatimmo-result-card:not(.calculatimmo-primary-result) { padding:16px; border-radius:12px; background:var(--calc-paper); border:1px solid var(--calc-line); box-shadow:0 2px 6px rgb(23 37 53 / 4%); min-height:105px; }
.calculatimmo .calculatimmo-result-card dt { display:flex; align-items:start; gap:4px; font-size:12px; line-height:1.4; color:var(--calc-muted); }
.calculatimmo .calculatimmo-result-card:not(.calculatimmo-primary-result) dd { margin:12px 0 0; font-size:19px; font-weight:600; color:var(--calc-ink); overflow-wrap:anywhere; }
.calculatimmo .calculatimmo-primary-result dt { color:white; }
.calculatimmo .calculatimmo-help-trigger { min-width:22px; min-height:22px; width:22px; height:22px; padding:0; border:0; color:var(--calc-muted); background:transparent; box-shadow:none; }
.calculatimmo .calculatimmo-primary-result .calculatimmo-help-trigger { color:var(--galen-color-paper); }
.calculatimmo .calculatimmo-primary-result .calculatimmo-help-trigger:focus-visible { outline-color:var(--galen-color-paper); }
.calculatimmo .calculatimmo-help-popover { color:var(--calc-ink); background:var(--calc-paper); }
.calculatimmo .calculatimmo-library { margin:0 0 20px; padding:0; background:var(--calc-paper); border:1px solid var(--calc-line); border-radius:12px; }
.calculatimmo summary { min-height:44px; cursor:pointer; font-size:14px; font-weight:500; }
.calculatimmo .calculatimmo-library > summary { padding:12px 16px; }
.calculatimmo .calculatimmo-library > summary span { margin-left:8px; color:var(--calc-muted); font-size:12px; }
.calculatimmo .calculatimmo-library-content { padding:4px 20px 20px; }
.calculatimmo .calculatimmo-library-heading h2 { font-size:15px; }
.calculatimmo .calculatimmo-tax-results { background:var(--calc-paper); border:1px solid var(--calc-line); border-radius:12px; padding:20px; margin:16px 0; }
.calculatimmo .calculatimmo-tax-results h3 { font-size:15px; }
.calculatimmo #calculatimmo-status { min-height:44px; font-size:13px; }
@container calculator-workspace (max-width:899px) { .calculatimmo .calculatimmo-layout { grid-template-columns:minmax(0,1fr); } .calculatimmo .calculatimmo-output { position:static; } }
@media (max-width:600px) { .calculatimmo .calculatimmo-section-fields,.calculatimmo .calculatimmo-results { grid-template-columns:minmax(0,1fr); } .calculatimmo .calculatimmo-command-bar { width:100%; } .calculatimmo .calculatimmo-command-bar button { flex:1 1 140px; } .calculatimmo .calculatimmo-primary-result dd { font-size:28px; } }
@media (prefers-reduced-motion:reduce) { .calculatimmo * { transition:none !important; animation:none !important; } }

.calculatimmo .calculatimmo-primary-result .calculatimmo-help-trigger:hover:not(:disabled) { background:rgb(255 255 255 / 15%); color:var(--galen-color-paper); }
/* Bilan imprimable : feuille externe compatible CSP self, sans dépendance au shell. */
.calculatimmo-report { margin:32px auto; max-width:850px; padding:24px; color:var(--galen-color-ink); background:var(--galen-color-paper); font:14px/1.5 var(--galen-font-text); }
.calculatimmo-report h1 { font-size:28px; margin:0 0 12px; }
.calculatimmo-report h2 { font-size:20px; margin:24px 0 12px; }
.calculatimmo-report h3 { font-size:15px; margin:20px 0 8px; padding-bottom:6px; border-bottom:2px solid var(--galen-color-quiet-line); break-after:avoid; }
.calculatimmo-report h4 { break-after:avoid; }
.calculatimmo-report dl { margin:0 0 16px; }
.calculatimmo-report dl > div { display:flex; justify-content:space-between; gap:24px; border-bottom:1px solid var(--galen-color-quiet-line); padding:8px 0; break-inside:avoid; }
.calculatimmo-report dt { flex:1; color:var(--galen-color-muted-ink); }
.calculatimmo-report dd { flex:1; font-weight:600; text-align:right; margin:0; overflow-wrap:anywhere; }
.calculatimmo-report .calculatimmo-primary-result { display:block; padding:20px; border-radius:8px; background:var(--galen-color-cover-ink); color:white; }
.calculatimmo-report .calculatimmo-primary-result dt { color:var(--galen-color-paper); }
.calculatimmo-report .calculatimmo-primary-result dd { font-size:28px; text-align:left; margin:8px 0; }
.calculatimmo-report .calculatimmo-primary-result p { margin:0; font-size:12px; color:var(--galen-color-rail-muted-ink); }
.calculatimmo-report .calculatimmo-help-wrap { display:none; }
@media print {
  @page { size:A4; margin:16mm; }
  .calculatimmo-report { margin:0; padding:0; max-width:none; font-size:11px; line-height:1.4; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .calculatimmo-report h1 { font-size:24px; line-height:1.2; margin:0 0 6px; }
  .calculatimmo-report h2 { font-size:17px; margin:16px 0 8px; break-after:avoid; }
  .calculatimmo-report h3 { font-size:13px; margin:12px 0 4px; padding-bottom:4px; }
  .calculatimmo-report h4 { font-size:12px; margin:10px 0 4px; }
  .calculatimmo-report p { margin:6px 0; }
  .calculatimmo-report dl { margin:0 0 8px; }
  .calculatimmo-report dl > div { padding:4px 0; gap:16px; }
  .calculatimmo-report .calculatimmo-primary-result { padding:14px 16px; }
  .calculatimmo-report .calculatimmo-primary-result dd { font-size:24px; margin:6px 0; }
  .calculatimmo-report .calculatimmo-primary-result p { font-size:11px; }
}

/* Le shell porte une seule barre de commandes, hors de la zone formulaire. */
.calculatimmo-command-bar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color-scheme:light; }
.calculatimmo-command-bar button { min-height:48px; border-radius:8px; padding:0 16px; font:500 13px/1.4 var(--galen-font-text); color:var(--galen-color-ink); background:var(--galen-color-paper); border:1px solid var(--galen-color-quiet-line); box-shadow:none; cursor:pointer; }
.calculatimmo-command-bar button:hover:not(:disabled) { background:var(--galen-color-drafting-table); box-shadow:none; transform:none; }
.calculatimmo-command-bar button:disabled { opacity:.45; cursor:default; }
.calculatimmo-command-bar .calculatimmo-command-primary { color:var(--galen-color-paper); background:var(--galen-color-blueprint); border-color:var(--galen-color-blueprint); font-weight:600; }
.calculatimmo-command-bar .calculatimmo-command-primary:hover:not(:disabled) { background:#174ab0; }
.calculatimmo-command-bar button:focus-visible { outline:2px solid var(--galen-color-blueprint); outline-offset:3px; }
.calculatimmo label { margin-top:0; color:var(--calc-ink); }
.calculatimmo .calculatimmo-field-heading { height:24px; }
.calculatimmo .calculatimmo-field-heading label { min-height:0; }
@media(max-width:600px) { .calculatimmo-command-bar { width:100%; } .calculatimmo-command-bar button { flex:1 1 140px; } }
.calculatimmo [data-projection-active][hidden] { display:none; }
.calculatimmo .calculatimmo-projection-assumptions { padding-left:20px; color:var(--calc-muted); font-size:12px; line-height:1.55; }
.calculatimmo .calculatimmo-projection-scope { margin-top:16px; padding:16px; background:var(--calc-table); border-radius:8px; }
.calculatimmo .calculatimmo-projection-scope h4,.calculatimmo .calculatimmo-projection-period h4 { font-size:14px; margin:0 0 12px; }
.calculatimmo .calculatimmo-projection-results dl > div { display:flex; gap:12px; justify-content:space-between; padding:6px 0; border-bottom:1px solid var(--calc-line); }
.calculatimmo .calculatimmo-projection-results dt { flex:1; font-size:12px; color:var(--calc-muted); }
.calculatimmo .calculatimmo-projection-results dd { flex:1; margin:0; font-size:13px; text-align:right; color:var(--calc-ink); }
.calculatimmo .calculatimmo-projection-results p { font-size:12px; line-height:1.55; }
.calculatimmo .calculatimmo-projection-period { padding:16px 0; border-top:1px solid var(--calc-line); }
.calculatimmo .calculatimmo-projection-period h5 { font-size:13px; margin:16px 0 8px; }
.calculatimmo-report .calculatimmo-projection-results ul { font-size:11px; padding-left:16px; }
.calculatimmo-report .calculatimmo-projection-results h5 { font-size:12px; margin:10px 0 4px; break-after:avoid; }
.calculatimmo-report .calculatimmo-projection-timeline > summary { font-size:15px; font-weight:600; margin:16px 0 8px; break-after:avoid; }
/* Étapes Calculat'Immo : boutons d'action étiquetés du Mac, capsule 16 × 2 sous l'étape courante. */
.calculatimmo-steps.calculatimmo-steps{display:flex;flex-wrap:wrap;gap:4px 8px;margin:8px 0 16px;padding:0}
.calculatimmo-steps .calculatimmo-step{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:0;border-radius:6px;background:transparent;box-shadow:none;color:var(--galen-color-ink,#11161C);font-size:13px;font-weight:500;cursor:pointer}
.calculatimmo-steps .calculatimmo-step:hover{background:rgba(17,22,28,.06)}
.calculatimmo-steps .calculatimmo-step[aria-current=step]{background:transparent;color:var(--galen-color-blueprint,#1F5BD5)}
.calculatimmo-steps .calculatimmo-step[aria-current=step]::after{content:"";position:absolute;left:50%;bottom:4px;width:16px;height:2px;margin-left:-8px;border-radius:1px;background:var(--galen-color-blueprint,#1F5BD5)}
.calculatimmo-steps .calculatimmo-step .galen-action-icon{width:17px;height:17px}
