/* Outils Finances LIBRE - outil 06 : fiscalite.
   Reprise de la page publique alicedelvar.com/fiscalite (simulateurs-meufs-libres),
   tout son style cantonne sous .fisc pour ne rien toucher au reste de la plateforme.
   Les jetons de couleur viennent de libre.css ; seuls les alias de la page d'origine
   et la bande sombre sont redefinis ici. */

/* Awesome Serif, la serif de la Méthode LIBRE, servie depuis alicedelvar.com (repli Georgia hors ligne) */
.fisc{/* Palette Méthode LIBRE : crème, or, brun */
    --cream:#FBEFBB; --cream-2:#F8E89A; --gold:#F3BD3F; --brown:#823E00;
    --ink:#2D1C1C; --white:#FFFCF7; --muted:#6B4A2B; --terra:#B87030; --brown-deep:#2A1A0C;
    --font-d:'Livvic',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
    --font-s:'Awesome Serif',Georgia,'Times New Roman',serif;
    --font-hand:'Caveat',cursive;
    /* Bande sombre chaleureuse (hero, capitaliser, revente) */
    --band:linear-gradient(rgba(42,26,12,.66), rgba(42,26,12,.66)), url('/assets/images/degrade-180.jpg') 22% 30% / cover no-repeat;
    /* Alias hérités, remappés sur la palette chaude pour ne rien casser */
    --eau:var(--brown-deep); --eau-fonce:#1C0E04; --laiton:var(--gold); --laiton-clair:#F8D77A;
    --sauge:var(--brown); --papier:var(--cream); --carte:var(--white); --encre:var(--ink); --sourd:var(--muted);
    --ligne:rgba(45,28,28,.12);
    --radius:16px;
    --ombre:0 6px 22px rgba(45,28,28,.06);}
.fisc *{box-sizing:border-box}
.fisc [hidden]{display:none !important;}
.fisc{margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:var(--font-d);
    font-weight:300;
    font-size:16px;
    line-height:1.55;
    letter-spacing:-0.01em;
    font-feature-settings:"tnum" 1;
    -webkit-font-smoothing:antialiased;}
.fisc h1, .fisc h2, .fisc h3{font-family:var(--font-s); font-weight:500; line-height:1.1; letter-spacing:-0.02em; margin:0;}
.fisc em, .fisc .serif{font-style:italic; font-family:var(--font-s); font-weight:500;}
.fisc .tnum{font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1;}
/* Colonne unique centrée, parcours vertical */
.fisc{max-width:900px; margin:0 auto; padding:52px 22px 60px;}   /* meme ecart sous le bandeau que les autres outils */
.fisc > .step:first-of-type{margin-top:0}
/* Étapes */
.fisc .step{margin-top:46px;}
.fisc .step-head{display:flex; align-items:center; gap:14px; margin-bottom:6px;}
.fisc .step-num{flex:0 0 auto;
    width:42px; height:42px; border-radius:50%;
    background:var(--gold); color:var(--ink);
    display:inline-flex; align-items:center; justify-content:center;
    font-family:var(--font-s); font-style:italic; font-weight:700; font-size:21px;
    box-shadow:0 6px 18px rgba(243,189,63,.4);}
.fisc .step-head h2{font-size:clamp(23px,3.6vw,36px);}
.fisc .step-head h2 em{color:var(--brown);}
.fisc .step-lede{color:var(--muted); margin:0 0 20px 56px; font-size:15px;}

@media(max-width:540px){
  .fisc .step-lede{margin-left:0;}
}
/* Formulaire */
.fisc form{display:grid; grid-template-columns:1fr 1fr; gap:16px;}

@media(max-width:680px){
  .fisc form{grid-template-columns:1fr;}
}
.fisc fieldset{border:1px solid rgba(45,28,28,.08);
    border-radius:var(--radius);
    background:var(--white);
    padding:16px 16px 18px;
    margin:0;
    box-shadow:var(--ombre);}
.fisc fieldset.span2{grid-column:1 / -1;}
/* float + width:100% : sort la légende du trait de bordure pour qu'elle reste DANS la carte */
.fisc legend{float:left; width:100%;
    display:flex; align-items:center; gap:10px;
    font-family:var(--font-s); font-style:italic; font-size:20px; font-weight:500;
    padding:0; margin:0 0 10px; color:var(--ink);}
.fisc legend + *{clear:both;}
.fisc .pastille{flex:0 0 auto;
    width:24px; height:24px; border-radius:50%;
    background:var(--brown); color:var(--cream);
    display:inline-flex; align-items:center; justify-content:center;
    font-family:var(--font-d); font-weight:700; font-size:12px; font-style:normal;}
.fisc .grid2{display:grid; grid-template-columns:1fr 1fr; gap:12px 14px;}

@media(max-width:420px){
  .fisc .grid2{grid-template-columns:1fr;}
}
.fisc .field{display:flex; flex-direction:column; gap:5px; margin-top:8px;}
.fisc .field.full{grid-column:1 / -1;}
.fisc label{font-size:13.5px; font-weight:600; color:var(--muted);}
.fisc .hint{font-size:12px; color:var(--brown); font-weight:500;}
.fisc .input-wrap{position:relative; display:flex; align-items:center;}
.fisc input[type=number], .fisc select{width:100%;
    font-family:var(--font-d); font-size:15.5px; font-weight:600;
    color:var(--ink);
    background:var(--white);
    border:1.5px solid rgba(45,28,28,.16);
    border-radius:12px;
    padding:10px 12px;
    font-variant-numeric:tabular-nums;
    transition:border-color .15s, box-shadow .15s, background .15s;}
.fisc .input-wrap.suffix input{padding-right:38px;}
.fisc .suffix-label{position:absolute; right:12px; color:var(--brown); font-size:13px; font-weight:700; pointer-events:none;}
.fisc input[type=number]:hover, .fisc select:hover{border-color:var(--terra);}
.fisc input[readonly]{background:rgba(45,28,28,.07); color:#8C8073; border-color:rgba(45,28,28,.1); border-style:dashed; cursor:default; font-weight:700;}
.fisc input[readonly]:hover{border-color:rgba(45,28,28,.1);}
.fisc input[readonly] + .suffix-label{color:#A89C8C;}
.fisc input[type=number]:focus, .fisc select:focus, .fisc input[type=checkbox]:focus-visible{outline:none;
    border-color:var(--gold);
    background:var(--white);
    box-shadow:0 0 0 3px rgba(243,189,63,.38);}
.fisc a:focus-visible, .fisc button:focus-visible, .fisc [tabindex]:focus-visible, .fisc summary:focus-visible{outline:2.5px solid var(--gold); outline-offset:2px; border-radius:4px;}
.fisc .check{display:flex; gap:10px; align-items:flex-start; margin-top:12px;
    padding:12px; border-radius:12px; background:var(--cream); border:1px solid var(--gold); cursor:pointer;}
.fisc .check input{margin-top:2px; width:18px; height:18px; accent-color:var(--brown); flex:0 0 auto;}
.fisc .check span{font-size:13.5px; color:var(--ink); font-weight:500;}
.fisc .check.disabled{opacity:.45; cursor:not-allowed;}
/* Panneaux de calcul */
.fisc .panel{background:var(--white); border:1px solid rgba(45,28,28,.08); border-radius:var(--radius);
    padding:20px; box-shadow:var(--ombre); margin-bottom:16px;}
.fisc .panel-title{font-family:var(--font-d); font-weight:600; font-size:12.5px;
    letter-spacing:.1em; text-transform:uppercase; color:var(--brown); margin:0 0 12px;}
.fisc .lignes{display:flex; flex-direction:column;}
.fisc .ligne{display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:14.5px; padding:7px 0; border-bottom:1px dashed rgba(45,28,28,.1);}
.fisc .ligne:last-child{border-bottom:none;}
.fisc .ligne span:first-child{color:var(--muted);}
.fisc .ligne span:last-child{font-weight:700; font-variant-numeric:tabular-nums; text-align:right; color:var(--ink);}
.fisc .ligne.total{border-top:2px solid var(--brown); border-bottom:none; margin-top:4px; padding-top:10px;}
.fisc .ligne.total span{font-size:16px; color:var(--ink);}
.fisc .ligne.total span:last-child{color:var(--brown); font-weight:800;}
.fisc .neg{color:#A8341F !important;}
.fisc .pos{color:var(--brown) !important;}
/* Tableau amortissement par composants, façon Méthode LIBRE */
.fisc table.amort{width:100%; border-collapse:collapse; font-size:13.5px; margin-top:4px;}
.fisc table.amort th, .fisc table.amort td{padding:9px 8px; text-align:right; border-bottom:1px solid rgba(45,28,28,.08);}
.fisc table.amort th{font-size:11px; letter-spacing:.04em; text-transform:uppercase; font-weight:600; vertical-align:bottom; background:var(--cream-2); color:var(--ink);}
.fisc table.amort th:last-child{background:var(--gold);}
.fisc table.amort th:first-child, .fisc table.amort td:first-child{text-align:left;}
.fisc table.amort td{font-variant-numeric:tabular-nums; color:var(--ink); font-weight:600; white-space:nowrap;}
.fisc table.amort td:first-child{white-space:normal;}
/* seul le nom du composant a le droit de passer à la ligne */
.fisc .amort-wrap{overflow-x:auto;}
.fisc table.amort td:last-child{background:#FFF7DC;}
.fisc table.amort td:first-child{font-weight:500; color:var(--muted);}
.fisc table.amort tr.sub td{color:var(--ink); font-weight:700;}
.fisc table.amort tr.tot td{border-top:2px solid var(--brown); border-bottom:none; font-weight:800; color:var(--brown); padding-top:11px;}
.fisc table.amort tr.tot td:first-child{color:var(--ink);}

@media(max-width:520px){
  .fisc table.amort{font-size:12px;}
  .fisc table.amort th, .fisc table.amort td{padding:8px 5px;}
  .fisc table.amort th{font-size:10px; letter-spacing:.02em;}
}
.fisc .amort-note{font-size:12px; color:var(--muted); margin-top:10px; line-height:1.55;}
.fisc .amort-note b{color:var(--brown); font-weight:600;}
/* Comparatif 3 régimes (base imposable / imposition) */
.fisc .compare{display:grid; grid-template-columns:repeat(4,1fr); gap:13px;}

@media(max-width:680px){
  .fisc .compare{grid-template-columns:repeat(2,1fr);}
}

@media(max-width:420px){
  .fisc .compare{grid-template-columns:1fr;}
}
.fisc .reg{background:var(--white); border:1px solid rgba(45,28,28,.08); border-radius:14px;
    padding:16px; box-shadow:var(--ombre); display:flex; flex-direction:column; gap:4px;}
.fisc .reg h3{font-family:var(--font-s); font-style:italic; font-weight:500; font-size:16px; margin-bottom:1px;}
.fisc .reg .rtype{font-size:11.5px; font-weight:600; color:var(--brown); text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px;}
.fisc .reg .big{font-family:var(--font-s); font-style:italic; font-size:26px; font-weight:500; font-variant-numeric:tabular-nums; margin-top:2px; color:var(--ink);}
.fisc .reg .big.neg{color:#A8341F;}
.fisc .reg .big .permois{font-family:var(--font-d); font-style:normal; font-size:13px; font-weight:700; color:var(--muted); letter-spacing:0;}
.fisc .reg.reg-best{border-color:var(--gold); background:#FFF7DC; box-shadow:0 0 0 2px rgba(243,189,63,.28), var(--ombre);}
.fisc .ligne.total .permois{font-family:var(--font-d); font-weight:600; font-size:12px; color:var(--muted);}
.fisc .reg .blabel{font-size:12px; color:var(--muted); font-weight:600;}
.fisc .reg .mini{font-size:12px; color:var(--muted); margin-top:8px; line-height:1.5; border-top:1px dashed rgba(45,28,28,.1); padding-top:8px;}
.fisc .reg .mini .l{display:flex; justify-content:space-between; gap:8px; padding:1px 0; font-variant-numeric:tabular-nums;}
.fisc .reg.inelig{opacity:.9;}
.fisc .non-eligible{font-size:12.5px; color:#A8341F; background:rgba(168,52,31,.08); border-radius:10px; padding:9px 11px; font-weight:600; margin-top:4px;}
/* Barres niveaux d'imposition */
.fisc .bars{margin-top:6px;}
.fisc .bars-head{font-size:13px; color:var(--muted); font-weight:600; margin-bottom:16px;}
.fisc .bar-row{margin-bottom:14px;}
.fisc .bar-label{display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:5px;}
.fisc .bar-label .nom{font-weight:700; font-size:14px; color:var(--ink);}
.fisc .bar-label .val{font-variant-numeric:tabular-nums; font-weight:800; font-size:14px; color:var(--ink);}
.fisc .bar-track{position:relative; height:22px; background:rgba(45,28,28,.07); border-radius:8px; overflow:hidden;}
.fisc .bar-fill{position:absolute; left:0; top:0; bottom:0;
    background:linear-gradient(90deg, var(--terra), var(--brown));
    border-radius:8px 0 0 8px;
    transition:width .5s cubic-bezier(.4,0,.2,1);}
.fisc .bar-fill.best{background:linear-gradient(90deg, #F8D77A, var(--gold));}
.fisc .bar-row.is-best .nom::after{content:"le moins taxé"; margin-left:8px; font-size:11px; font-weight:700;
    color:var(--brown); background:rgba(243,189,63,.28); padding:2px 9px; border-radius:20px;
    text-transform:uppercase; letter-spacing:.04em; vertical-align:middle;}
/* Barres verticales : impôt rapporté au revenu (loyers) */
.fisc .vbars{display:flex; gap:12px; align-items:flex-end; justify-content:space-around; padding-top:8px;}
.fisc .vcol{flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; gap:9px; padding:10px 6px; border:1px solid transparent; border-radius:14px;}
.fisc .vcol.is-best{background:transparent; border-color:transparent;}
.fisc .vbar-impot{font-size:11px; font-weight:700; color:var(--muted); text-align:center; line-height:1.2; text-transform:uppercase; letter-spacing:.05em;}
.fisc .vbar-impot b{display:block; font-family:var(--font-d); font-size:15px; font-weight:800; letter-spacing:0; text-transform:none; font-variant-numeric:tabular-nums; margin-top:2px;}
.fisc .vbar-impot b.tax{color:#A8341F;}
.fisc .vbar-impot b.pos{color:var(--brown);}
.fisc .vbar-impot small{display:block; font-weight:600; font-size:10.5px; color:var(--muted); text-transform:none; letter-spacing:0; margin-top:1px;}
.fisc .vbar-netnet{text-align:center; line-height:1.15;}
.fisc .vbar-netnet span{display:block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);}
.fisc .vbar-netnet b{font-family:var(--font-s); font-style:italic; font-weight:500; font-size:20px; color:var(--brown); font-variant-numeric:tabular-nums;}
.fisc .vbar-netnet b.neg{color:#A8341F;}
.fisc .vbar-track{position:relative; width:66%; max-width:92px; height:190px; background:rgba(45,28,28,.07); border:1px solid rgba(45,28,28,.06); border-radius:10px; overflow:hidden; display:flex; align-items:flex-end;}
.fisc .vbar-fill{width:100%; background:linear-gradient(180deg, var(--terra), var(--brown)); transition:height .5s cubic-bezier(.4,0,.2,1); min-height:4px;}
.fisc .vbar-fill.best{background:linear-gradient(180deg, #F8D77A, var(--gold));}
.fisc .vbar-name{font-size:13px; font-weight:700; color:var(--ink); text-align:center; line-height:1.25;}
.fisc .vbar-name .vbest-tag{display:block; font-size:10.5px; font-weight:700; color:var(--brown); text-transform:uppercase; letter-spacing:.04em; margin-top:3px;}
.fisc .vcol.is-best .vbar-name{color:var(--brown);}

@media(max-width:520px){
  .fisc .vbar-track{height:148px;}
  .fisc .vbar-name{font-size:12px;}
  .fisc .vbar-val{font-size:13px;}
}
/* Bloc 3 (imposition) sur fond marron : c'est l'info qu'on cherche, elle doit ressortir */
.fisc #step3 .panel{background:var(--band); border-color:transparent; color:var(--cream); box-shadow:0 14px 40px rgba(45,28,28,.22);}
.fisc #step3 .bars-head{color:#F2E6BE;}
.fisc #step3 .bars-head b{color:var(--gold);}
.fisc #step3 .vbar-impot{color:#E8D8B6;}
.fisc #step3 .vbar-impot b.tax{color:#F6CFA6;}
.fisc #step3 .vbar-impot b.pos{color:var(--gold);}
.fisc #step3 .vbar-impot small{color:#CDBC98;}
.fisc #step3 .vbar-name{color:var(--cream);}
.fisc #step3 .vcol.is-best .vbar-name{color:var(--gold);}
.fisc #step3 .vbar-netnet span{color:#CDBC98;}
.fisc #step3 .vbar-netnet b{color:var(--gold);}
.fisc #step3 .vbar-netnet b.neg{color:#F4A988;}
.fisc #step3 .vbar-track{background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.12);}
.fisc #step3 .vbar-fill{background:linear-gradient(180deg, #D9B98C, #B07F50);}
.fisc #step3 .vbar-fill.best{background:linear-gradient(180deg, #F8D77A, var(--gold));}
/* Petit "?" d'aide avec infobulle au survol / focus */
.fisc .help{display:inline-flex; align-items:center; justify-content:center;
    width:20px; height:20px; border-radius:50%; flex:0 0 auto; vertical-align:middle;
    border:1.5px solid var(--brown); color:var(--brown); background:transparent;
    font-family:var(--font-d); font-weight:700; font-size:12px; font-style:normal; line-height:1;
    cursor:help; position:relative; margin-left:2px;}
.fisc .help:hover, .fisc .help:focus-visible{background:var(--gold); border-color:var(--gold); color:var(--ink); outline:none;}
.fisc .help::after{content:attr(data-tip);
    position:absolute; bottom:calc(100% + 11px); left:50%; transform:translateX(-50%) translateY(4px);
    width:max-content; max-width:260px;
    background:var(--brown-deep); color:var(--cream);
    font-family:var(--font-d); font-weight:400; font-style:normal; font-size:12.5px; line-height:1.5; letter-spacing:0; text-transform:none;
    text-align:left; padding:10px 13px; border-radius:10px; box-shadow:0 12px 32px rgba(45,28,28,.32);
    opacity:0; visibility:hidden; transition:opacity .18s, transform .18s; z-index:40; pointer-events:none;}
.fisc .help::before{content:""; position:absolute; bottom:calc(100% + 4px); left:50%; transform:translateX(-50%);
    border:7px solid transparent; border-top-color:var(--brown-deep);
    opacity:0; visibility:hidden; transition:opacity .18s; z-index:40;}
.fisc .help:hover::after, .fisc .help:focus-visible::after{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.fisc .help:hover::before, .fisc .help:focus-visible::before{opacity:1; visibility:visible;}
.fisc .step-head .help{margin-left:8px;}
.fisc .help.help-sm{width:16px; height:16px; font-size:10px; border-width:1.25px; margin-left:5px;}
.fisc label .help-sm::after{text-transform:none; letter-spacing:0; font-weight:400;}

@media(max-width:540px){
  .fisc .help::after{max-width:200px;}
}
/* Étape 4 : la bifurcation */
.fisc .fork{display:grid; grid-template-columns:1fr 1fr; gap:18px;}

@media(max-width:720px){
  .fisc .fork{grid-template-columns:1fr;}
}
.fisc .branch{border-radius:var(--radius); padding:20px; box-shadow:var(--ombre);}
.fisc .branch.oui{background:var(--white); border:1px solid rgba(45,28,28,.08);}
.fisc .branch.non{background:var(--white); color:var(--ink); border:1px solid rgba(45,28,28,.08);}
.fisc .branch-q{display:flex; align-items:center; gap:10px; margin-bottom:6px;}
.fisc .branch-q .tag{font-family:var(--font-d); font-weight:700; font-size:12px; letter-spacing:.08em; text-transform:uppercase; padding:4px 12px; border-radius:100px;}
.fisc .branch .tag{background:var(--gold); color:var(--ink);}
.fisc .branch h3{font-family:var(--font-s); font-weight:500; font-size:21px; margin-bottom:3px; color:var(--ink);}
.fisc .branch h3 em{font-style:italic; color:var(--brown);}
.fisc .branch .bq-sub{font-size:13px; margin:0 0 16px; color:var(--muted);}
/* mini cartes scénario dans la branche Oui */
.fisc .scard{border:1px solid rgba(45,28,28,.1); border-radius:13px; padding:13px 14px; margin-bottom:11px; background:var(--cream);}
.fisc .scard.flag-best{border-color:var(--gold); background:#FFF7DC; box-shadow:0 0 0 2px rgba(243,189,63,.3);}
.fisc .scard .sc-top{display:flex; justify-content:space-between; align-items:baseline; gap:10px;}
.fisc .scard .sc-nom{font-weight:700; font-size:14px; color:var(--ink); min-width:0;}
.fisc .scard .sc-poche{font-family:var(--font-s); font-style:italic; font-size:21px; font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; flex:0 0 auto;}
.fisc .scard .sc-detail{font-size:12px; color:var(--muted); margin-top:7px; display:flex; flex-direction:column; gap:2px;}
.fisc .scard .sc-detail .l{display:flex; justify-content:space-between; gap:8px; font-variant-numeric:tabular-nums;}
.fisc .scard .best-tag{font-size:10.5px; font-weight:700; color:var(--brown); text-transform:uppercase; letter-spacing:.05em;}
.fisc .scard.inelig{color:var(--muted); font-size:12.5px;}
/* branche Non : mêmes couleurs claires que Oui (lignes héritent du style par défaut) */
.fisc .non .why{font-size:12.5px; color:var(--muted); margin-top:14px; line-height:1.6;}
.fisc .non .why strong{color:var(--ink);}
/* Bloc revente */
.fisc .revente{margin-top:46px;
    background:var(--band);
    color:var(--cream); border-radius:var(--radius); padding:26px; box-shadow:0 18px 60px rgba(45,28,28,.18);}
.fisc .revente h2{color:var(--cream); font-size:clamp(23px,3.4vw,30px); margin-bottom:6px;}
.fisc .revente h2 em{color:var(--gold);}
.fisc .revente .lede{color:#F2E6BE; margin:0 0 18px; font-size:15px;}
.fisc .revente-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}

@media(max-width:680px){
  .fisc .revente-grid{grid-template-columns:1fr;}
}
.fisc .revente-card{background:rgba(251,239,187,.07); border:1px solid rgba(243,189,63,.28); border-radius:14px; padding:18px;}
.fisc .revente-card h3{font-size:13px; color:var(--gold); margin-bottom:10px; font-family:var(--font-d); font-weight:700; letter-spacing:.06em; text-transform:uppercase;}
.fisc .revente-card p{margin:0 0 10px; font-size:14px; color:#EADFBD; line-height:1.6;}
.fisc .revente-card p:last-child{margin-bottom:0;}
.fisc .revente-card strong{color:var(--cream);}
.fisc .fisc-pied{max-width:780px; margin:0 auto; padding:20px 22px 56px; color:var(--muted); font-size:12.5px; line-height:1.6;}
.fisc .fisc-pied .avert{background:var(--white); border:1px solid rgba(45,28,28,.08); border-left:3px solid var(--gold); border-radius:12px; padding:16px 18px;}
.fisc .fisc-pied strong{color:var(--ink);}
/* Projection 10 ans (dépliant) */
.fisc details.proj{background:var(--white); border:1px solid rgba(45,28,28,.08); border-radius:var(--radius); box-shadow:var(--ombre); overflow:hidden;}
.fisc .proj-summary{cursor:pointer; list-style:none; padding:18px 20px; font-family:var(--font-s); font-style:italic; font-size:19px; color:var(--ink); display:flex; align-items:center; justify-content:space-between; gap:12px;}
.fisc .proj-summary::-webkit-details-marker{display:none;}
.fisc .proj-summary::after{content:"▸"; color:var(--brown); transition:transform .2s; font-style:normal;}
.fisc details.proj[open] .proj-summary::after{transform:rotate(90deg);}
.fisc .proj-summary:hover{background:var(--cream);}
.fisc .proj-body{padding:0 20px 22px;}
.fisc .proj-note{font-size:12px; color:var(--muted); margin:0 0 14px; line-height:1.55;}
.fisc .proj-note b{color:var(--brown); font-weight:600;}
.fisc .table-wrap{overflow-x:auto; border-radius:12px; border:1px solid rgba(45,28,28,.1);}
.fisc table.proj-table{width:100%; border-collapse:collapse; font-size:13px; min-width:580px; background:var(--white);}
.fisc table.proj-table th, .fisc table.proj-table td{padding:9px 12px; text-align:right; border-bottom:1px solid rgba(45,28,28,.08); font-variant-numeric:tabular-nums; white-space:nowrap;}
.fisc table.proj-table th{font-size:10.5px; letter-spacing:.03em; text-transform:uppercase; font-weight:700; background:var(--cream-2); color:var(--ink); vertical-align:bottom;}
.fisc table.proj-table th:last-child{background:var(--gold);}
.fisc table.proj-table th:first-child, .fisc table.proj-table td:first-child{text-align:left; font-weight:700;}
.fisc table.proj-table td{color:var(--ink); font-weight:600;}
.fisc table.proj-table td:last-child{background:#FFF7DC;}
.fisc table.proj-table tr:last-child td{border-bottom:none;}
.fisc table.proj-table tr.cumul td{border-top:2px solid var(--brown); font-weight:800; color:var(--brown); padding-top:11px;}
.fisc table.proj-table tr.cumul td:first-child{color:var(--ink);}
/* Bouton export PDF */
.fisc .pdf-bar{display:flex; flex-direction:column; align-items:center; gap:9px; margin-top:26px; text-align:center;}
.fisc .pdf-btn{font-family:var(--font-d); font-weight:700; font-size:15px; color:var(--ink); background:var(--gold); border:none; border-radius:100px; padding:13px 28px; cursor:pointer; box-shadow:0 6px 22px rgba(243,189,63,.38); transition:transform .15s, box-shadow .15s;}
.fisc .pdf-btn:hover{transform:translateY(-1px); box-shadow:0 9px 26px rgba(243,189,63,.5);}
.fisc .pdf-hint{font-size:12px; color:var(--muted);}

@media (prefers-reduced-motion: reduce){
  .fisc *{transition:none !important; scroll-behavior:auto !important;}
}

/* ---------- le PDF : impression du navigateur ----------
   libre.css masque tout ce qui n'est pas le bilan du patrimoine a l'impression ;
   la classe posee le temps d'imprimer rend la page a l'outil fiscalite. */
.fisc .fisc-titre-impr{display:none}
@media print{
  body.impression-fisc{padding:0 !important; background:#fff !important}
  body.impression-fisc > .bandeau, body.impression-fisc > .hero, body.impression-fisc > .pied,
  body.impression-fisc .bandeau-consultation{display:none !important}
  /* libre.css cache .page > *:not(#bilanZone) : son id lui donne la priorite, d'ou le :not(#_) */
  body.impression-fisc .page > .fisc:not(#_){display:block !important}
  body.impression-fisc .page{max-width:none; margin:0; padding:0}
  .fisc .fisc-titre-impr{display:block; font-family:var(--font-s); font-size:30px; margin:0 0 10px; padding-bottom:10px; border-bottom:2px solid var(--gold)}
  .fisc{max-width:none; padding:0 0 20px; background:#fff !important}
  .fisc .pdf-bar, .fisc .help{display:none !important}
  .fisc details.proj > .proj-summary{display:none !important}
  .fisc .step-num{background:#fff !important; color:var(--brown) !important; box-shadow:none !important; border:1.5px solid var(--brown)}
  .fisc .pastille{background:#fff !important; color:var(--brown) !important; border:1px solid var(--brown)}
  .fisc .panel, .fisc .reg, .fisc .reg.reg-best, .fisc .scard, .fisc .scard.flag-best, .fisc .branch,
  .fisc fieldset, .fisc details.proj, .fisc .fisc-pied .avert{
    background:#fff !important; box-shadow:none !important; border-color:rgba(45,28,28,.25) !important}
  .fisc #step3 .panel{color:var(--ink) !important}
  .fisc #step3 .bars-head, .fisc #step3 .vbar-name, .fisc #step3 .vbar-impot, .fisc #step3 .vbar-netnet span{color:var(--ink) !important}
  .fisc #step3 .vbar-netnet b, .fisc #step3 .vbar-impot b{color:var(--brown) !important}
  .fisc table th, .fisc table.proj-table th, .fisc table.amort th{background:#fff !important; border-bottom:1.5px solid var(--brown) !important; font-size:10px; padding:6px 7px; position:static}
  .fisc table td, .fisc table.amort td, .fisc table.proj-table td{font-size:11px; padding:6px 7px}
  .fisc table td:last-child, .fisc table.proj-table td:last-child, .fisc table.amort td:last-child{background:#fff !important}
  .fisc .vbar-track{background:#ececec !important}
  .fisc .vbar-fill, .fisc .vbar-fill.best{-webkit-print-color-adjust:exact; print-color-adjust:exact}
  .fisc .check.disabled{display:none !important}
  .fisc .amort-wrap{overflow:visible !important}
  .fisc .step, .fisc .panel, .fisc .reg, .fisc .scard, .fisc .branch, .fisc .fork, .fisc .compare, .fisc .vbars, .fisc .vcol,
  .fisc details.proj, .fisc .table-wrap, .fisc table tr, .fisc fieldset, .fisc .fisc-pied .avert{break-inside:avoid; page-break-inside:avoid}
}

/* ---------- ce que libre.css pose sur tout le site et qui ne vaut pas ici ---------- */
.fisc section{padding:0}   /* libre.css donne 64 a 120 px a toute section */
.fisc .pastille{padding:0; gap:0; letter-spacing:0; white-space:normal}
.fisc select{padding-right:34px}
.fisc th{position:static; white-space:normal; font-family:var(--font-d)}
.fisc tbody tr:hover{background:transparent}
.fisc tbody tr:last-child td{border-bottom:none}
.fisc input[type=number]{font-weight:600; letter-spacing:0}

/* contraste sur le degrade photo : l'or et les beiges du bloc imposition passent en creme */
.fisc #step3 .bars-head, .fisc #step3 .bars-head b, .fisc #step3 .vbar-name, .fisc #step3 .vcol.is-best .vbar-name,
.fisc #step3 .vbar-impot, .fisc #step3 .vbar-impot b.tax, .fisc #step3 .vbar-impot b.pos, .fisc #step3 .vbar-impot small,
.fisc #step3 .vbar-netnet span, .fisc #step3 .vbar-netnet b{color:var(--cream)}
.fisc #step3 .vbar-netnet b.neg{color:#FFD2BF}

/* --- importer un bien du tableau de recherche --- */
.fisc .import-recherche{margin:14px 0 6px}
.fisc .import-ouvrir{
  font-family:var(--font-d); font-size:0.86rem; font-weight:600; cursor:pointer;
  border:1px solid var(--gold); background:var(--cream-2); color:var(--brown);
  border-radius:100px; padding:8px 16px;
}
.fisc .import-ouvrir:hover{background:var(--gold)}
.fisc .import-liste{margin-top:10px; border:1px solid var(--line-2); border-radius:14px; background:var(--white); overflow:hidden}
.fisc .import-rang{display:flex; align-items:center; gap:14px; padding:10px 14px}
.fisc .import-rang:nth-child(even){background:#F5F1EB}
.fisc .import-nom{font-family:var(--font-s); font-style:italic; font-size:1.05rem; letter-spacing:-0.02em; color:var(--ink); min-width:0}
.fisc .import-info{flex:1; font-size:0.8rem; color:var(--muted); font-variant-numeric:tabular-nums}
.fisc .import-btn{
  font-family:var(--font-d); font-size:0.78rem; font-weight:600; cursor:pointer; white-space:nowrap;
  border:1px solid var(--line-2); background:var(--white); color:var(--ink); border-radius:100px; padding:6px 14px;
}
.fisc .import-btn:hover{border-color:var(--brown)}
@media(max-width:600px){ .fisc .import-rang{flex-wrap:wrap} .fisc .import-info{flex-basis:100%; order:3} }
