/* ============================================================
   MIO - Module securiser ses contrats
   ============================================================ */
.contracts-module{display:flex;flex-direction:column;gap:18px}
.contracts-hero{
  display:flex;align-items:flex-start;gap:18px;
  background:#fff;border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:var(--shadow)
}
.contracts-hero .overline{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:var(--blue);margin-bottom:6px}
.contracts-hero h2{font-size:26px;line-height:1.12;margin-bottom:6px;color:var(--ink)}
.contracts-hero p{font-size:13px;color:var(--text);max-width:850px}
.contracts-library{display:flex;flex-direction:column;gap:14px}
.contract-case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.contract-case-card{
  border:1px solid var(--border);background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:16px;
  text-align:left;display:grid;grid-template-columns:56px minmax(0,1fr);
  grid-template-areas:"icon title" "icon partner" "icon type" "icon score" "icon status" "icon delete";
  gap:5px 13px;cursor:pointer;color:inherit;align-items:start;min-height:166px
}
.contract-case-card:hover{border-color:var(--blue);transform:translateY(-1px)}
.contract-case-icon{grid-area:icon;width:54px;height:54px;border-radius:15px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}
.contract-case-card b{grid-area:title;color:var(--ink);font-size:15px;line-height:1.25;min-width:0}
.contract-case-card em{grid-area:partner;color:var(--muted);font-style:normal;font-size:12px;font-weight:800;min-width:0}
.contract-case-card span:not(.contract-case-icon):not(.badge):not(.contract-card-status){grid-area:type;color:var(--text);font-size:12px;font-weight:700;min-width:0}
.contract-case-card small{grid-area:score;color:var(--muted);font-size:11px;font-weight:700}
.contract-card-status{grid-area:status;justify-self:start}
.contract-card-status .badge{white-space:normal;line-height:1.2}
.contract-delete{grid-area:delete;justify-self:start;margin-top:4px;position:relative;z-index:2}
.contracts-empty{
  background:#fff;border:1px solid var(--border);border-radius:16px;padding:42px 22px;text-align:center;color:var(--muted);box-shadow:var(--shadow)
}
.contracts-empty .e-ic{width:52px;height:52px;border-radius:14px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;margin:0 auto 12px}
.contracts-empty h3{font-size:16px;color:var(--ink);margin-bottom:4px}
.contracts-empty p{max-width:560px;margin:0 auto 16px;font-size:13px;line-height:1.45}
.contract-flow-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.contract-flow-head span{font-size:12.5px;color:var(--muted);font-weight:800}
.contract-form-card .fgrid{gap:12px}
.contract-textarea-tall{min-height:118px}
.contract-run-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:16px;margin-top:16px;flex-wrap:wrap}
.contract-run-row span{font-size:12px;color:var(--muted);max-width:540px;font-weight:700}
.contract-summary-card .c-ic,.contract-card .c-ic{background:var(--blue-soft);color:var(--blue)}
.contract-facts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.contract-facts span{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px;min-width:0}
.contract-facts i{display:block;font-style:normal;font-size:11px;color:var(--muted);font-weight:800;margin-bottom:2px}
.contract-facts b{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.contracts-verdict{
  display:flex;justify-content:space-between;gap:18px;border-radius:16px;padding:22px;border:1px solid var(--border);box-shadow:var(--shadow);background:#fff
}
.contracts-verdict.ok{border-color:#BDEBCB;background:#FBFFFC}
.contracts-verdict.mid,.contracts-verdict.warn{border-color:#F5D79A;background:#FFFDF7}
.contracts-verdict.danger{border-color:#F5B8BA;background:#FFFBFB}
.contracts-verdict .over{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.contracts-verdict h2{font-size:24px;line-height:1.12;color:var(--ink);margin:4px 0 6px}
.contracts-verdict p{font-size:13px;color:var(--text);max-width:680px}
.contract-confidence{display:inline-flex;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-weight:800;font-size:11.5px;padding:6px 9px}
.contract-alert{display:flex;align-items:flex-start;gap:9px;background:var(--amber-soft);color:#8A5708;border-radius:12px;padding:10px 12px;font-size:12.5px}
.contract-alert.danger{background:var(--red-soft);color:var(--red)}
.contract-alert b{font-size:12.5px;color:inherit}
.contract-alert span{color:inherit;line-height:1.4}
.contracts-results{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.contract-card.wide{grid-column:1/-1}
.contract-card h4{font-size:16px;color:var(--ink);margin-bottom:5px;line-height:1.3}
.contract-card p{font-size:12.5px;color:var(--text);line-height:1.45}
.contract-chip-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.contract-chip-list span{border:1px solid var(--border);background:#fff;border-radius:999px;padding:7px 10px;font-size:11.5px;color:var(--text);font-weight:800}
.redflag-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.redflag-row{border:1px solid var(--border);border-radius:12px;padding:12px;background:#FAFBFE;display:grid;gap:6px}
.redflag-row span{justify-self:start;border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:900;text-transform:uppercase;background:var(--blue-soft);color:var(--blue)}
.redflag-row.high span,.redflag-row.critical span{background:var(--amber-soft);color:#9A6508}
.redflag-row.critical{border-color:#F0B8BA;background:#FFFBFB}
.redflag-row.critical span{background:var(--red-soft);color:var(--red)}
.redflag-row b{font-size:13px;color:var(--ink)}
.redflag-row p{font-size:12px;color:var(--text)}
.redflag-row i{font-size:12px;color:var(--muted);font-style:normal;line-height:1.4}
.contracts-ok{display:flex;align-items:center;gap:8px;border:1px solid #BDEBCB;background:#FBFFFC;color:var(--green);border-radius:12px;padding:12px;font-size:13px;font-weight:800}
.term-table{display:grid;grid-template-columns:1fr;gap:8px}
.term-row{display:grid;grid-template-columns:170px repeat(3,minmax(0,1fr));gap:8px;border:1px solid var(--border);border-radius:12px;background:#FAFBFE;padding:10px;align-items:start}
.term-row b{font-size:12.5px;color:var(--ink);line-height:1.35}
.term-row span{font-size:11.5px;color:var(--text);line-height:1.35}
.term-row span i{display:block;font-style:normal;color:var(--muted);font-weight:900;margin-bottom:2px}
.term-row p{grid-column:2/-1;border-top:1px solid var(--line);padding-top:8px;font-size:12px;color:var(--ink)}
.contract-clause-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.contract-clause-row{border:1px solid var(--border);border-radius:12px;background:#FAFBFE;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}
.contract-clause-row b{font-size:13px;color:var(--ink)}
.contract-clause-row p{font-size:12px;color:var(--text);margin:3px 0}
.contract-clause-row i{display:block;font-size:12px;color:var(--muted);font-style:normal;line-height:1.4}
.contract-clause-row>span{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.clause-actions{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}
.negotiation-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.negotiation-grid span{background:#FAFBFE;border:1px solid var(--border);border-radius:10px;padding:10px;font-size:12px;color:var(--text);line-height:1.4}
.negotiation-grid b{display:block;color:var(--ink);font-size:12.5px;margin-bottom:3px}
.version-grid,.calendar-grid,.execution-grid,.source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.version-grid div,.calendar-grid div,.execution-grid div,.source-grid div{border:1px solid var(--border);background:#FAFBFE;border-radius:12px;padding:12px;min-width:0}
.version-grid b,.calendar-grid b,.execution-grid b,.source-grid b{display:block;color:var(--ink);font-size:13px;line-height:1.35}
.version-grid span,.calendar-grid span,.execution-grid span,.source-grid span{display:block;color:var(--blue);font-size:11.5px;font-weight:800;margin:3px 0;line-height:1.35}
.version-grid p,.calendar-grid p,.execution-grid p{font-size:12px;color:var(--text);line-height:1.4}
.version-grid i{display:block;font-style:normal;color:var(--muted);font-size:11.5px;margin-top:4px}
.pack-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}
.signature-checks{display:grid;grid-template-columns:1fr;gap:8px}
.signature-checks span{border:1px solid var(--border);border-radius:10px;background:#FAFBFE;padding:9px}
.signature-checks i{display:block;color:var(--muted);font-size:11px;font-weight:800;font-style:normal;margin-bottom:2px}
.signature-checks b{color:var(--ink);font-size:12px;line-height:1.35}
.execution-grid{margin-top:10px}
.exit-box{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);background:var(--blue-soft);border-radius:12px;padding:12px;margin-top:10px}
.exit-box b{font-size:13px;color:var(--blue);white-space:nowrap}
.exit-box span{font-size:12px;color:var(--ink);line-height:1.45}
.source-grid span{color:var(--text);font-weight:700}
@media(max-width:1180px){
  .contract-case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contract-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .contracts-results,.redflag-grid,.contract-clause-grid{grid-template-columns:1fr}
  .term-row{grid-template-columns:1fr}
  .term-row p{grid-column:1/-1}
  .pack-layout{grid-template-columns:1fr}
  .version-grid,.calendar-grid,.execution-grid,.source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .contracts-hero,.contracts-verdict{flex-direction:column}
  .contract-case-grid,.contract-facts,.version-grid,.calendar-grid,.execution-grid,.source-grid,.negotiation-grid{grid-template-columns:1fr}
  .contract-case-card{grid-template-columns:48px minmax(0,1fr)}
  .exit-box{flex-direction:column}
}
