/* 360Pilot — Design Edition V3 : bleu nuit, blanc et émeraude.
   Une identité SaaS premium, claire et orientée pilotage. */
:root{--nav:#0b1f3a;--nav2:#102a4c;--blue:#2563eb;--cyan:#38bdf8;--bg:#f4f7fb;--text:#172033;--muted:#667085;--border:#dfe6ef;--green:#16a36a;--red:#dc4c4c;--ink:#0b1f3a;--brass:#2563eb;--warn:#e0952f;--paper:#ffffff;--font-display:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Arial,sans-serif;--font-sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Arial,sans-serif;--shadow:0 10px 30px rgba(16,42,76,.08);--shadow-soft:0 4px 16px rgba(16,42,76,.06)}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text)}
button,input,select{font:inherit}
.brand{font-family:var(--font-display);font-weight:700;font-size:28px;letter-spacing:-0.5px;font-style:italic}
.brand span{color:var(--brass);font-style:normal}
.light{color:#fdf9f0}
small{font-weight:800;letter-spacing:1.1px;color:var(--brass);text-transform:uppercase;font-size:11px}
label{display:block;font-size:12px;font-weight:700;color:#5c5546}
input,select{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:6px;margin-top:6px;background:var(--paper);color:var(--text)}
input:focus,select:focus{outline:2px solid var(--brass);outline-offset:1px}
.btn{display:inline-block;border:0;border-radius:6px;padding:12px 18px;text-decoration:none;font-weight:700;cursor:pointer;letter-spacing:.2px}
.primary{background:var(--ink);color:#fdf9f0;box-shadow:inset 0 -2px 0 var(--brass)}
.primary:hover{background:#2c2418}
.secondary{background:#efe9db;color:var(--ink);border:1px solid var(--border)}
.alert{padding:12px 14px;border-radius:6px;margin:12px 0;font-weight:600;border-left:3px solid transparent;white-space:pre-wrap}
.success{background:#eaf3ec;color:#215934;border-left-color:var(--green)}
.error{background:#f7ece9;color:#7c2f24;border-left-color:var(--red)}
.topbar{background:linear-gradient(180deg,var(--nav),var(--nav2));color:#fdf9f0;border-bottom:1px solid #000;position:sticky;top:0;z-index:30}
.topbar-row{display:flex;align-items:center;gap:22px;padding:16px 3.5vw 10px;flex-wrap:wrap}
.topbar-company{margin-right:auto}
.topbar-company small,.topbar-company strong{display:block}
.topbar-company small{color:#b4a98e;font-size:10px}
.topbar-company strong{font-family:var(--font-display)}
.topbar-right{display:flex;align-items:center;gap:14px}
.quickbar{display:flex;gap:8px;flex-wrap:wrap}
.qbtn{color:#e8e2d3;text-decoration:none;font-weight:700;font-size:11.5px;padding:8px 12px;border:1px solid rgba(255,255,255,.22);border-radius:6px;white-space:nowrap;background:transparent;font-family:inherit;cursor:pointer}
.qbtn:hover{background:rgba(255,255,255,.08);border-color:#fdf9f0}
.tabbar{display:flex;flex-wrap:wrap;gap:2px;padding:0 3.5vw 10px}
.tabbar a{padding:9px 13px;color:#c9c0ac;text-decoration:none;border-radius:6px 6px 0 0;font-weight:600;font-size:12.5px;border-bottom:2px solid transparent;white-space:nowrap}
.tabbar a:hover{background:rgba(255,255,255,.06);color:#fdf9f0}
.tabbar a.active{background:rgba(184,134,59,.16);color:#fdf9f0;border-bottom-color:var(--brass)}
.tabbar-dropdown{position:relative;display:inline-block}
.tabbar-dropdown>button{padding:9px 13px;color:#c9c0ac;background:none;border:0;border-radius:6px 6px 0 0;font-weight:600;font-size:12.5px;cursor:pointer;font-family:inherit;border-bottom:2px solid transparent}
.tabbar-dropdown>button:hover{background:rgba(255,255,255,.06);color:#fdf9f0}
.tabbar-dropdown>button.active{background:rgba(184,134,59,.16);color:#fdf9f0;border-bottom-color:var(--brass)}
.tabbar-dropdown-menu{display:none;position:absolute;top:100%;left:0;background:var(--nav2);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:6px;min-width:200px;z-index:50;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.tabbar-dropdown-menu.open{display:flex;flex-direction:column;gap:2px}
.tabbar-dropdown-menu a{padding:9px 12px;color:#c9c0ac;text-decoration:none;border-radius:6px;font-weight:600;font-size:12.5px;white-space:nowrap}
.tabbar-dropdown-menu a:hover{background:rgba(255,255,255,.08);color:#fdf9f0}
.tabbar-dropdown-menu a.active{background:rgba(184,134,59,.2);color:#fdf9f0}
.disabled{opacity:.5;pointer-events:none}
.logout button{border:1px solid rgba(255,255,255,.25);background:none;color:#c9c0ac;border-radius:6px;padding:9px 14px;cursor:pointer;font-weight:600;font-size:12.5px}
.logout button:hover{color:#fdf9f0;border-color:#fdf9f0}
main{padding:26px 3.5vw 50px}
.page-head{margin-bottom:20px}
.page-head h1{margin:4px 0;font-size:28px;font-family:var(--font-display);font-weight:700}
.user{display:flex;align-items:center;gap:10px}
.user>span,.userrow>span{width:34px;height:34px;border-radius:6px;background:var(--ink);display:grid;place-items:center;color:var(--brass);font-weight:800;font-family:var(--font-display)}
.user strong,.user small{display:block;color:#fdf9f0}
.user small{font-size:10px;color:#b4a98e}
.hero,.card{background:var(--paper);border:1px solid var(--border);border-radius:10px;box-shadow:0 2px 10px rgba(28,24,17,.05)}
.hero{display:flex;justify-content:space-between;align-items:center;padding:25px 28px;margin-bottom:18px;border-left:3px solid var(--brass)}
.hero h2{font-size:28px;margin:5px 0;font-family:var(--font-display);font-weight:700}
.score{background:var(--ink);border-radius:8px;color:#fdf9f0;padding:14px 18px;min-width:220px}
.score span,.score small{display:block;color:#b4a98e}
.score strong{font-size:30px;color:var(--brass);font-family:var(--font-display);font-weight:700}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:12px;margin-bottom:16px}
.card{padding:22px}
.kpis span{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.kpis strong{display:block;font-size:24px;margin:9px 0;font-family:var(--font-display);font-weight:700}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.tabs{display:flex;gap:8px;margin-bottom:16px}
.tabs a{background:var(--paper);border:1px solid var(--border);border-radius:6px;padding:9px 14px;text-decoration:none;color:#4a4536;font-weight:700;font-size:12px}
.section{margin-bottom:18px;scroll-margin-top:20px}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}
.formgrid.one{grid-template-columns:1fr}
.sectionhead{display:flex;justify-content:space-between;gap:20px}
.taxrow{display:grid;grid-template-columns:1fr 1fr .7fr 42px;gap:12px;align-items:end;background:#f1ece0;border:1px solid var(--border);border-radius:8px;padding:13px;margin-bottom:10px}
.remove{height:42px;border:0;border-radius:6px;background:#f7ece9;color:var(--red);font-size:21px;font-weight:900;cursor:pointer}
.userrow{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--border)}
.userrow div{flex:1}
.userrow strong,.userrow small{display:block}
.userrow small{color:var(--muted)}
.userrow b{font-size:10px;padding:5px 8px;border-radius:99px;background:#efe9db}
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:var(--paper)}
.visual{padding:8vw;background:radial-gradient(circle at 15% 15%,rgba(184,134,59,.22),transparent 36%),linear-gradient(145deg,var(--nav),var(--nav2));color:#fdf9f0;display:flex;flex-direction:column;justify-content:space-between}
.visual h1{font-size:54px;line-height:1.05;letter-spacing:-1px;font-family:var(--font-display);font-weight:700;font-style:italic}
.visual p{color:#c9c0ac;font-size:18px}
.loginwrap{display:grid;place-items:center;padding:8vw}
.loginbox{width:min(430px,100%)}
.loginbox h2{font-size:36px;font-family:var(--font-display);font-weight:700}
.loginbox label{margin:16px 0}
.loginbox .btn{width:100%;text-align:center}
.install{min-height:100vh;display:grid;place-items:center;padding:30px;background:var(--bg)}
.mobile{display:none}
.lang-switch{display:flex;gap:8px;margin-top:2em}
.lang-switch a{color:#c9c0ac;text-decoration:none;font-weight:800;text-transform:uppercase;font-size:12px;padding:.4em .8em;border:1px solid rgba(255,255,255,.25);border-radius:6px;letter-spacing:.05em}
.lang-switch a.active{background:var(--brass);color:var(--ink);border-color:var(--brass)}
.installcard{width:min(900px,100%);background:var(--paper);border:1px solid var(--border);border-radius:10px;padding:30px}
@media(max-width:1000px){.grid{grid-template-columns:1fr}}
@media(max-width:760px){
  .topbar-row{gap:10px}
  .topbar-company{display:none}
  .tabbar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tabbar a{flex:0 0 auto}
  main{padding:18px}
  .user{display:none}.hero{align-items:flex-start;gap:15px}.kpis,.formgrid,.taxrow{grid-template-columns:1fr}.login{grid-template-columns:1fr}.visual{display:none}.mobile{display:block}.loginwrap{padding:30px}.sectionhead{flex-direction:column}
}


.formgrid.three{grid-template-columns:repeat(3,1fr)}
.tablecard{padding:0;overflow:auto}
.tablecard>small,.tablecard>h2,.tablecard>.sectionhead,.tablecard>.mini-chart{margin-left:22px;margin-right:22px}
.tablecard>small{display:block;margin-top:22px}
.tablecard table{width:100%;border-collapse:collapse;min-width:900px}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--border);font-size:12px}
th{background:#f1ece0;text-transform:uppercase;font-size:10px;letter-spacing:.6px;color:#7a7361}
.positive{color:var(--green)!important}
.negative{color:var(--red)!important}
.empty{text-align:center;color:var(--muted);padding:30px}
.iconremove{border:0;background:#f7ece9;color:var(--red);border-radius:6px;width:30px;height:30px;font-size:18px;font-weight:900;cursor:pointer}
.mini-chart{height:190px;display:flex;align-items:flex-end;gap:12px;padding:20px 0}
.mini-chart div{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.mini-chart i{display:block;width:65%;min-height:4px;border-radius:4px 4px 1px 1px;background:linear-gradient(var(--brass),var(--ink))}
.mini-chart span{font-size:10px;color:var(--muted);margin-top:6px}
.chart2-legend{display:flex;gap:20px;padding:0 22px;margin:14px 0 6px;font-size:12px;font-weight:700;color:#5c5546}
.chart2-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.chart2-plot{display:flex;align-items:flex-end;gap:10px;height:230px;padding:6px 22px 18px;overflow-x:auto}
.chart2-col{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;width:46px;height:100%;cursor:pointer}
.chart2-bars{display:flex;gap:3px;align-items:flex-end;height:100%;width:100%}
.chart2-bars i{display:block;flex:1;border-radius:4px 4px 1px 1px;min-height:4px}
.chart2-label{margin-top:8px;font-size:10px;font-weight:700;color:#7a7361;white-space:nowrap}
.chart2-tooltip{max-width:330px;white-space:pre-line;line-height:1.5;display:none;position:absolute;background:var(--ink);color:#fdf9f0;padding:9px 13px;border-radius:6px;font-size:12px;font-weight:600;z-index:100;pointer-events:none;box-shadow:0 8px 24px rgba(28,24,17,.3)}
@media(max-width:760px){.formgrid.three{grid-template-columns:1fr}}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:6px;margin-top:6px;font-family:inherit;background:var(--paper)}
.inline-form{display:grid;grid-template-columns:1fr 55px auto;gap:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.chips span{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--border);border-radius:99px;font-size:12px}
.chips i{width:9px;height:9px;border-radius:50%}
.section{margin-top:18px}
.section-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}
.filters{display:flex;flex-wrap:wrap;gap:7px}
.filters input,.filters select{width:auto;margin:0}
.table-wrap{overflow:auto;margin-top:15px;max-height:72vh}
.table-wrap thead th{position:sticky;top:0;z-index:2;background:#f1ece0;box-shadow:0 1px 0 var(--border)}
table{width:100%;border-collapse:collapse;min-width:850px}
th,td{padding:12px 9px;border-bottom:1px solid var(--border);text-align:left;font-size:12px}
th{font-size:10px;color:#7a7361;text-transform:uppercase}
td small{display:block;color:#7a7361}
.status{padding:5px 8px;border-radius:99px;font-size:10px;font-weight:800}
.status.paid{background:#eaf3ec;color:#215934}
.status.planned{background:#f1ece0;color:#5c5546}
.status.late{background:#f7ece9;color:#7c2f24}
.actions{display:flex;gap:5px}
.actions form{display:inline}
.actions button{border:0;border-radius:6px;width:30px;height:30px;background:#eaf3ec;color:#215934;font-weight:900;cursor:pointer}
.actions .danger{background:#f7ece9;color:#7c2f24}
.empty{text-align:center;color:#7a7361;padding:30px}
@media(max-width:760px){.form-grid,.inline-form{grid-template-columns:1fr}.section-head{display:block}.filters{display:grid}.filters input,.filters select{width:100%}}

.price-form{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.mercuriale-filters{max-width:100%;justify-content:flex-end}
.price-badge{display:inline-block;padding:6px 9px;border-radius:6px;font-weight:800}
.price-badge.best{background:#1f7a3d;color:#fff}
.price-badge.mid{background:#c97a12;color:#fff}
.price-badge.high{background:#c0311f;color:#fff}
.price-badge.neutral{background:#f1ece0;color:#5c5546}
.cellform{margin:0}
.price-cell{width:84px;padding:7px 6px;border:none;border-radius:6px;font-weight:800;text-align:right;margin:0}
.price-cell.best{background:#1f7a3d;color:#fff}
.price-cell.mid{background:#c97a12;color:#fff}
.price-cell.high{background:#c0311f;color:#fff}
.price-cell.neutral{background:#f1ece0;color:#5c5546}
.price-cell:focus{outline:2px solid var(--brass);outline-offset:1px}
.table-link{font-weight:700;color:var(--brass);text-decoration:none}
.mini-danger{border:0;border-radius:6px;width:30px;height:30px;background:#f7ece9;color:#7c2f24;font-weight:900;cursor:pointer}
.pastebox{margin-top:16px;padding:16px 18px;border:1px dashed var(--border);border-radius:10px;background:rgba(0,0,0,.02)}
.inline-flash{margin:12px 0;padding:10px 14px;border-radius:8px;font-weight:600;font-size:13px;background:#e9f5ee;color:#1d5c37;border-left:3px solid var(--green)}
.inline-flash.error{background:#fbeceb;color:#7c2f24;border-left-color:var(--red)}

/* Filtre de période compact : une seule ligne, pour ne pas repousser les jauges hors de l'écran. */
.compactfilter{padding:12px 16px!important;margin-bottom:14px}
.compactfilter .filters{margin:0;align-items:center;gap:10px;flex-wrap:wrap}
.compactfilter-lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#8a8272;margin-right:2px}
.compactfilter label{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:12.5px;font-weight:600;color:#6b6455}
.compactfilter input,.compactfilter select{width:auto;margin:0}
.compactfilter .btn{padding:9px 15px;font-size:13px}

/* Bandeau plus ramassé sur Pilot AI : le contenu utile arrive plus haut. */
.hero.hero-tight{padding-top:18px;padding-bottom:18px}
.hero.hero-tight h2{margin-bottom:.15em}
.hero.hero-tight p{margin-bottom:0;font-size:13.5px}
.help{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--border);color:#5c6270;font-size:10px;font-weight:800;cursor:help;margin-left:5px;vertical-align:middle;line-height:1;flex:none}
.help:hover{background:var(--brass);color:#fff}
.combo-chart{display:block;width:100%;height:auto;max-height:300px;margin:0 auto}
.chart2-legend,.forecast-legend{margin-bottom:6px}
.gauges{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:16px;margin-top:16px}
.gauge{text-align:center;padding:14px 10px 16px;border-radius:14px;background:#f4f5f7;color:var(--ink)}
.gauge-svg,.donut-svg{display:block;width:100%;height:auto;max-width:210px;margin:0 auto}
.donut-svg{max-width:168px}
.gauge-scale{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:7px;font-size:10.5px;font-weight:700;color:#6f7580}
.gauge-scale span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.gauge-scale i{width:8px;height:8px;border-radius:2px;display:inline-block}
.gauge-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#6f7580;margin-top:2px}
.gauge-caption{font-size:12.5px;color:#5c6270;margin-top:7px;line-height:1.45;padding:0 6px}
@media print{.gauge{break-inside:avoid;page-break-inside:avoid}.gauges{grid-template-columns:repeat(4,1fr)}}
.newmonth-box{margin-top:16px;padding:14px 16px;border:1px dashed var(--border);border-radius:10px;background:rgba(0,0,0,.02)}
.supplier-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:14px}
.supplier-card{padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:#fff}
.supplier-card h4{margin:0 0 10px;font-size:15px}
.supplier-card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:12.5px}
.supplier-card dt{font-weight:800;color:#8a8272;text-transform:uppercase;font-size:10.5px;padding-top:2px}
.supplier-card dd{margin:0}
.supplier-notes{margin:10px 0 0;padding-top:8px;border-top:1px solid var(--border);color:#6b6455}
@media print{.supplier-cards{grid-template-columns:repeat(2,1fr)}}
.newmonth-box>strong{display:block;font-size:14px;margin-bottom:4px}
.newmonth-box p{margin:0 0 10px;color:#6b6455}
.newmonth-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.newmonth-row label{margin:0;flex:0 0 auto}
.newmonth-row input{width:auto}
.newmonth-row .btn{white-space:nowrap;flex:0 0 auto}
.pastebox>strong{display:block;font-size:14px;margin-bottom:6px}
.pastebox-intro{margin:0 0 10px;font-size:13px;color:#6b6455}
.pastebox-steps{margin:0 0 10px;padding-left:20px;font-size:13px;line-height:1.65}
.pastebox-steps li{margin-bottom:7px}
.pastebox kbd{display:inline-block;padding:2px 7px;border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;background:#fff;font-family:inherit;font-size:12px;font-weight:700;white-space:nowrap}
.pastebox-hint{margin:10px 0 4px;font-size:13px;color:#8a8272;font-style:italic}
.pastebox-tip{margin:0;color:#8a8272}
.collapsible summary{cursor:pointer;list-style:none;padding:4px 0}
.collapsible summary::-webkit-details-marker{display:none}
.collapsible summary::before{content:"▸ ";color:var(--brass);font-weight:900}
.collapsible[open] summary::before{content:"▾ "}
.collapsible summary small,.collapsible summary h3{display:inline}
.collapsible summary h3{margin-left:6px}
.collapsible form{margin-top:14px}
@media(max-width:1000px){.price-form{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.price-form{grid-template-columns:1fr}.mercuriale-filters{display:grid;width:100%}}

.risk{padding:14px;border-radius:8px;margin:12px 0 16px}
.risk-low{background:#e3efe6;color:#215934}
.risk-medium{background:#f7ecd9;color:#8a5a1f}
.risk-high{background:#f7ece9;color:#7c2f24}
.ai-list{display:grid;grid-template-columns:1fr;gap:10px;padding-left:20px;margin:16px 0}
.ai-list li{line-height:1.45}
.recommendations li::marker{font-weight:900;color:var(--brass)}
.forecast-bars{display:grid;grid-template-columns:1fr;gap:0;margin:16px 0}
.forecast-legend{display:flex;gap:20px;margin-bottom:14px;font-size:12px;font-weight:700;color:#5c5546}
.forecast-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.forecast-month{display:grid;grid-template-columns:1fr;gap:8px;padding:14px 4px;border-bottom:1px solid var(--border)}
.forecast-month:last-child{border-bottom:none}
.forecast-label{font-size:11px;font-weight:800;color:#7a7361}
.bar-row{display:grid;grid-template-columns:44px 1fr 130px;gap:12px;align-items:center}
.bar-row span{font-size:10px;font-weight:800;color:#7a7361}
.bar-row b{text-align:right;font-size:11px}
.bar{display:block;height:16px;border-radius:5px;min-width:3px;transition:filter .15s}
.bar-row:hover .bar{filter:brightness(1.08)}
.bar.revenue{background:linear-gradient(90deg,var(--brass),#d9a866)}
.bar.profit{background:linear-gradient(90deg,var(--green),#3ea866)}
.bar.loss{background:linear-gradient(90deg,var(--red),#d9584a)}
.risk-pill{display:inline-block;padding:5px 8px;border-radius:99px;font-size:10px;font-weight:800;text-transform:uppercase}
.positive{color:#215934}
.negative{color:#7c2f24}
@media(max-width:760px){.bar-row{grid-template-columns:35px 1fr 95px}}

.panel4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.panel4 .card{padding:18px}
.panel4 h4{font-family:var(--font-display);font-size:16px;margin:4px 0 10px}
.panel-good{background:#eaf3ec;border-color:#cfe3d4}
.panel-watch{background:#f7ecd9;border-color:#ecd9ae}
.panel-alert{background:#f7ece9;border-color:#eeccc3}
.panel-reco{background:#f1ece0;border-color:var(--border)}
@media(max-width:1000px){.panel4{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.panel4{grid-template-columns:1fr}}

@media print{
  .topbar,.no-print,.mini-danger,.iconremove{display:none!important}
  main{padding:0}
  body{background:#fff}
  .card{box-shadow:none;border:1px solid #ccc}
  .table-wrap{max-height:none!important;overflow:visible!important}
  .table-wrap thead th{position:static!important}
  /* Un tableau plus large que la page est réduit pour tenir entièrement, plutôt que tronqué. */
  table{font-size:10.5px;width:100%!important;table-layout:auto}
  th,td{padding:4px 6px!important;word-break:break-word}
  .table-wrap{width:100%!important}
  input,select,textarea{font-size:10px!important;padding:2px 4px!important}
  .kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}

  /* Une carte ne doit jamais être coupée en deux entre deux pages. À noter : on ne met PAS cette
     règle sur <section>, dont la hauteur dépasse souvent une page entière — un navigateur ignore
     purement et simplement une consigne impossible à satisfaire, et le reste s'applique mal. */
  .card,article.card,.supplier-card,.pastebox,.newmonth-box{break-inside:avoid;page-break-inside:avoid}
  .ai-list li,.bar-row,.forecast-month,tr{break-inside:avoid;page-break-inside:avoid}
  thead{display:table-header-group}

  /* Un titre ne reste jamais seul en bas de page, séparé de son contenu. */
  h1,h2,h3,h4{break-after:avoid;page-break-after:avoid}

  /* Deux colonnes en A4 portrait : quatre panneaux côte à côte deviennent illisibles sur papier. */
  .panel4,.grid,.kpis{grid-template-columns:repeat(2,1fr)!important;gap:6mm!important}
  .supplier-cards{grid-template-columns:repeat(2,1fr)!important}

  /* Les zones de saisie s'impriment comme du texte lisible, pas comme des champs de formulaire. */
  textarea,input,select{border:1px solid #ddd!important;background:#fff!important;color:#000!important}

  /* Pas d'adresses de liens imprimées entre parenthèses. */
  a[href]::after{content:""!important}
}
.health-list{display:grid;grid-template-columns:1fr;gap:10px;margin-top:16px}
.health-list>div{display:grid;grid-template-columns:16px 1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--border);border-radius:8px}
.health-list small{color:#7a7361}
.health-dot{width:11px;height:11px;border-radius:50%}
.health-dot.ok{background:var(--green);box-shadow:0 0 0 4px #e3efe6}
.health-dot.ko{background:var(--red);box-shadow:0 0 0 4px #f7ece9}


/* ==========================================================
   360Pilot — DESIGN EDITION V3
   Modernisation visuelle sans modification de la logique métier
   ========================================================== */
html{scroll-behavior:smooth}
body{background:linear-gradient(180deg,#f7f9fc 0,#f2f6fb 100%);line-height:1.5}
.brand{font-size:27px;font-style:normal;letter-spacing:-1px}
.brand span{color:#67d9ff;font-style:normal}
small{color:var(--blue);letter-spacing:.09em}
label{color:#475467}
input,select,textarea{border-radius:10px;border-color:#d7e0ea;background:#fff;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
input:hover,select:hover,textarea:hover{border-color:#b8c8da}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.btn{border-radius:10px;padding:11px 17px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.btn:hover{transform:translateY(-1px)}
.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 8px 18px rgba(37,99,235,.22)}
.primary:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 10px 22px rgba(37,99,235,.28)}
.secondary{background:#fff;color:#23334d;border:1px solid #d7e0ea;box-shadow:0 2px 8px rgba(16,42,76,.04)}
.secondary:hover{background:#f8fafc;border-color:#bac8d8}
.alert{border-radius:12px;border-left-width:4px;box-shadow:var(--shadow-soft)}
.success{background:#ecfdf5;color:#067647;border-left-color:#12b76a}
.error{background:#fff1f0;color:#b42318;border-left-color:#f04438}
.topbar{background:linear-gradient(120deg,#081a32 0%,#102a4c 68%,#12365f 100%);border-bottom:0;box-shadow:0 9px 28px rgba(7,26,50,.22);backdrop-filter:blur(12px)}
.topbar-row{padding:14px 3.5vw 9px;gap:20px}
.topbar-company{padding-left:18px;border-left:1px solid rgba(255,255,255,.16)}
.topbar-company small{color:#91a8c2}
.topbar-company strong{font-family:var(--font-sans);font-size:14px}
.quickbar{gap:7px}
.qbtn{border-radius:9px;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.055);padding:8px 11px;color:#e8f1fb;transition:.18s ease}
.qbtn:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.38);transform:translateY(-1px)}
.tabbar{gap:5px;padding:1px 3.5vw 11px;scrollbar-width:thin}
.tabbar a{position:relative;border-radius:9px;padding:9px 12px;color:#b8c8da;border:1px solid transparent;font-weight:650;transition:.18s ease}
.tabbar a:hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.08)}
.tabbar a.active{background:#fff;color:#12345a;border-color:#fff;box-shadow:0 6px 15px rgba(0,0,0,.16)}
.tabbar a.active::after{content:"";position:absolute;left:18%;right:18%;bottom:-6px;height:3px;border-radius:99px;background:#38bdf8}
.logout button{border-radius:9px;color:#d7e4f2;background:rgba(255,255,255,.04);transition:.18s ease}
.logout button:hover{background:rgba(255,255,255,.1)}
.user>span,.userrow>span{border-radius:10px;background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;box-shadow:0 6px 15px rgba(37,99,235,.22);font-family:var(--font-sans)}
main{max-width:2200px;margin:0 auto;padding:22px 2vw 60px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}
.page-head h1{font-family:var(--font-sans);font-size:30px;letter-spacing:-.7px;color:#14213a;margin:2px 0}
.hero,.card{background:rgba(255,255,255,.97);border:1px solid rgba(215,224,234,.92);border-radius:16px;box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.card:hover{border-color:#c8d5e4;box-shadow:var(--shadow)}
.hero{position:relative;overflow:hidden;padding:27px 29px;border-left:0;background:linear-gradient(135deg,#fff 0%,#f6faff 70%,#edf7ff 100%)}
.hero::before{content:"";position:absolute;width:230px;height:230px;right:-75px;top:-100px;border-radius:50%;background:radial-gradient(circle,rgba(56,189,248,.22),transparent 66%)}
.hero::after{content:"";position:absolute;width:160px;height:160px;right:105px;bottom:-125px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.13),transparent 66%)}
.hero>div{position:relative;z-index:1}
.hero h2{font-family:var(--font-sans);font-size:30px;letter-spacing:-.8px;color:#102a4c}
.score{background:linear-gradient(145deg,#0b1f3a,#173c67);border-radius:15px;padding:17px 20px;box-shadow:0 12px 26px rgba(11,31,58,.22)}
.score span,.score small{color:#bcd0e6}
.score strong{font-family:var(--font-sans);font-size:34px;color:#67d9ff}
.kpis{gap:12px}
.kpis .card{position:relative;overflow:hidden;min-height:0;padding:13px 15px}
.kpis .card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#2563eb,#38bdf8);opacity:.9}
.kpis .card:nth-child(3n+2)::before{background:linear-gradient(180deg,#16a36a,#3ddc97)}
.kpis .card:nth-child(3n)::before{background:linear-gradient(180deg,#7c3aed,#a78bfa)}
.kpis span{color:#667085;font-size:10.5px;letter-spacing:.08em}
.kpis strong{font-family:var(--font-sans);font-size:22px;color:#16233c;letter-spacing:-.5px;margin:5px 0 0}
.card{padding:18px 20px}
.card h2,.card h3,.card h4{color:#172b4d;letter-spacing:-.25px}
.grid{gap:16px}
.tablecard{border-radius:16px}
th{background:#f3f7fb;color:#53657a;font-weight:800}
th,td{padding:13px 14px}
tbody tr{transition:background .15s ease}
tbody tr:hover{background:#f7faff}
.table-wrap thead th{background:#eef4f9}
.status{border-radius:99px;padding:5px 9px}
.status.paid{background:#dcfae6;color:#067647}
.status.planned{background:#eff4ff;color:#3538cd}
.status.late{background:#fee4e2;color:#b42318}
.price-badge,.price-cell{border-radius:8px}
.price-badge.best,.price-cell.best{background:#079455}
.price-badge.mid,.price-cell.mid{background:#dc6803}
.price-badge.high,.price-cell.high{background:#d92d20}
.price-badge.neutral,.price-cell.neutral{background:#eef2f6;color:#344054}
.table-link{color:#2563eb}
.chart2-plot{height:250px;padding-top:14px}
.chart2-bars i{border-radius:7px 7px 2px 2px;box-shadow:0 4px 9px rgba(16,42,76,.12);transition:filter .18s ease,transform .18s ease}
.chart2-col:hover .chart2-bars i{filter:saturate(1.2);transform:translateY(-2px)}
.chart2-tooltip{background:#0b1f3a;border-radius:9px;box-shadow:0 10px 28px rgba(11,31,58,.28)}
.chart2-label{color:#667085}
.ai-list li{padding:1px 0;color:#344054}
.risk,.panel4 .card,.health-list>div{border-radius:12px}
.panel-good{background:#ecfdf3;border-color:#abefc6}
.panel-watch{background:#fffaeb;border-color:#fedf89}
.panel-alert{background:#fef3f2;border-color:#fecdca}
.panel-reco{background:#eff8ff;border-color:#b2ddff}
.health-list>div{background:#fbfdff}
.health-dot.ok{background:#12b76a;box-shadow:0 0 0 4px #d1fadf}
.health-dot.ko{background:#f04438;box-shadow:0 0 0 4px #fee4e2}
.login{background:#fff}
.visual{background:radial-gradient(circle at 16% 15%,rgba(56,189,248,.27),transparent 34%),linear-gradient(145deg,#071a31,#123a67)}
.visual h1,.loginbox h2{font-family:var(--font-sans);font-style:normal}
.lang-switch a.active{background:#38bdf8;color:#08203b;border-color:#38bdf8}
.installcard{border-radius:18px;box-shadow:var(--shadow)}
@keyframes pilotFadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
main>.hero,main>.card,main>.kpis,main>.grid{animation:pilotFadeUp .36s ease both}
main>.kpis{animation-delay:.05s}main>.grid{animation-delay:.08s}
@media(max-width:1000px){.topbar-row{gap:12px}.quickbar{order:4;width:100%}.hero{align-items:flex-start}.score{min-width:195px}}
@media(max-width:760px){
  .topbar{position:sticky}.topbar-row{padding:12px 16px 8px}.brand{font-size:24px}.tabbar{padding:0 14px 10px}.tabbar a{padding:8px 10px}.tabbar a.active::after{display:none}
  main{padding:18px 14px 45px}.page-head h1{font-size:25px}.hero{padding:22px 20px;flex-direction:column}.hero h2{font-size:26px}.score{width:100%;min-width:0}
  .card{border-radius:14px;padding:19px}.kpis .card{min-height:102px}.kpis strong{font-size:23px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* ---------- Parrainage ---------- */
.referral-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:18px;margin-bottom:18px}
.referral-offer{background:linear-gradient(135deg,var(--nav),var(--nav2));color:#fff;border-radius:14px;padding:30px 32px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.referral-offer::after{content:"🎁";position:absolute;right:-10px;bottom:-18px;font-size:130px;opacity:.10;line-height:1}
.referral-offer h2{font-size:clamp(22px,2.4vw,31px);margin:0 0 12px;line-height:1.15;position:relative}
.referral-offer h2 span{color:var(--cyan)}
.referral-offer p{color:rgba(255,255,255,.86);margin:0 0 8px;position:relative}
.referral-note{font-size:13px;font-style:italic;color:rgba(255,255,255,.66)!important}
.referral-invite{padding:26px 28px}
.referral-invite h3{margin:0 0 14px;font-size:19px}
.referral-invite h4{margin:0 0 9px;font-size:15px}
.referral-invite .inline-form{gap:10px}
.referral-invite .inline-form input{flex:1;min-width:200px}
.referral-sep{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--muted);font-size:13px}
.referral-sep::before,.referral-sep::after{content:"";flex:1;height:1px;background:var(--border)}
.referral-link{display:flex;gap:9px;align-items:center}
.referral-link input{flex:1;background:var(--bg);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;cursor:pointer}
.referral-link .btn{white-space:nowrap}
@media(max-width:900px){.referral-hero{grid-template-columns:1fr}}

/* Pages publiques (inscription par parrainage) */
.auth-body{background:var(--bg);margin:0}
.auth-wrap{max-width:1100px;margin:0 auto;padding:48px 20px}

/* ---------- Planning ---------- */
.shift-chip{border-radius:8px;padding:7px 9px;margin-bottom:6px;font-size:12px;line-height:1.35;border-left:3px solid var(--border);background:var(--bg)}
.shift-chip:last-child{margin-bottom:0}
.shift-chip.risk-low{border-left-color:var(--green);background:#eaf7f0}
.shift-chip.risk-medium{border-left-color:var(--warn);background:#fdf5e8}
.shift-chip.risk-high{border-left-color:var(--red);background:#fdeeee}
.shift-chip small{color:#5c6270;font-size:11px}
@media print{.shift-chip{break-inside:avoid;page-break-inside:avoid}}

/* ---------- Calendrier mensuel du planning ---------- */
.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 14px;font-size:12.5px;font-weight:600;color:#5c6270}
.cal-legend span{display:inline-flex;align-items:center;gap:6px}
.cal-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.cal-head{background:#f1f5f9;padding:9px 8px;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#6f7580;text-align:center}
.cal-day{background:#fff;min-height:104px;padding:6px 6px 8px;display:flex;flex-direction:column;gap:4px}
.cal-day.out{background:#fafbfc}
.cal-day.out .cal-num span{opacity:.35}
.cal-day.today{background:#eef6ff;box-shadow:inset 0 0 0 2px var(--brass)}
.cal-num{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;font-weight:800;color:#3f4652;margin-bottom:2px}
.cal-num small{font-weight:700;font-size:10.5px;color:#8a8272}
.cal-shift{display:flex;align-items:center;gap:5px;background:#f8fafc;border-left:3px solid;border-radius:5px;padding:3px 5px;font-size:11px;line-height:1.3}
.cal-shift.refused{opacity:.45;text-decoration:line-through}
.cal-init{flex:none;width:18px;height:18px;border-radius:50%;color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center}
.cal-time{font-weight:700;color:#3f4652;white-space:nowrap}
.cal-dot{margin-left:auto;flex:none;width:14px;height:14px;border-radius:50%;background:#e3e6ea;color:#5c6270;font-size:9px;font-weight:800;display:grid;place-items:center}
.cal-dot.warn{background:#fdf0d5;color:#8a5a12}
.cal-dot.ok{background:#dcf3e6;color:#15803d}
@media(max-width:900px){
  .cal{grid-template-columns:1fr}
  .cal-head{display:none}
  .cal-day{min-height:0}
  .cal-day.out{display:none}
  .cal-day::before{content:attr(data-label);font-size:11px;font-weight:800;color:#8a8272}
}
@media print{
  .cal-day{min-height:78px}
  .cal-shift{break-inside:avoid;page-break-inside:avoid}
  .cal{break-inside:avoid}
}

/* ---------- Couleur par module ---------- */
.modulebar{display:flex;align-items:baseline;gap:14px;padding:11px 3.5vw;color:#fff;flex-wrap:wrap}
.modulebar-title{font-family:var(--font-display);font-size:17px;font-weight:700;letter-spacing:-.01em}
.modulebar-sub{font-size:12.5px;opacity:.72}
@media print{.modulebar{background:none!important;color:var(--ink);padding:0 0 8px;border-bottom:2px solid var(--border)}}

/* ---------- Compteurs d'action sur les onglets ---------- */
.nav-badge{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;margin-left:6px;
  border-radius:99px;background:#e11d48;color:#fff;font-size:10.5px;font-weight:800;line-height:1;vertical-align:middle}
.tabbar-dropdown-menu .nav-badge{margin-left:auto}
@media print{.nav-badge{display:none}}

/* ---------- Tuiles de modules (tableau de bord) ---------- */
.modtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:14px}
.modtile{display:block;border-radius:13px;padding:16px 18px;color:#fff;text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 3px 12px rgba(15,32,58,.13)}
.modtile:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,32,58,.22)}
.modtile b{display:flex;align-items:center;gap:7px;font-size:15.5px;font-weight:700;margin-bottom:3px}
.modtile-help{margin-left:auto;flex:none;width:16px;height:16px;border-radius:50%;background:rgba(255,255,255,.24);
  font-size:10px;font-weight:800;display:grid;place-items:center;opacity:.8}
.modtile:hover .modtile-help{background:rgba(255,255,255,.4);opacity:1}
.modtile span{display:block;font-size:12.5px;opacity:.82;line-height:1.35}
.modtile em{display:block;font-style:normal;font-size:23px;font-weight:800;letter-spacing:-.02em;margin-top:9px}
@media print{
  .modtile{background:#fff!important;color:var(--ink)!important;border:1px solid var(--border);box-shadow:none}
  .modtile-help{display:none}
  .modtile span{opacity:.7}
  .modtiles{grid-template-columns:repeat(3,1fr)}
}
