:root{--orange:#d65a1f;--orange2:#ef7a36;--ink:#17202a;--muted:#667085;--line:#e6e9ee;--bg:#f6f7f9;--card:#fff;--green:#217a4a;--red:#b42318;--blue:#315ca8;--amber:#a65b00;--shadow:0 8px 26px rgba(20,28,38,.07)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:15px}.topbar{min-height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:26px;padding:12px 36px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;min-width:230px}.brand-mark{width:58px;height:46px;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:900;font-size:24px;letter-spacing:-1px}.brand-title{font-weight:800;font-size:18px}.brand-subtitle{font-size:11px;color:var(--muted);margin-top:2px}.nav-main{display:flex;align-items:center;gap:18px;flex:1}.nav-main>a,.nav-menu>summary{color:#344054;text-decoration:none;font-weight:650;font-size:14px;cursor:pointer;white-space:nowrap}.nav-main>a:hover,.nav-menu>summary:hover{color:var(--orange)}.nav-menu{position:relative}.nav-menu summary{list-style:none}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu[open]>div{position:absolute;top:30px;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:8px;min-width:190px;display:grid;gap:2px}.nav-menu div a{padding:9px 10px;text-decoration:none;color:#344054;border-radius:7px}.nav-menu div a:hover{background:#fff4ee;color:var(--orange)}.user-box{display:flex;align-items:center;gap:8px;border-left:1px solid var(--line);padding-left:18px}.user-box span{font-weight:700}.user-box small{font-size:10px;background:#f2f4f7;padding:4px 6px;border-radius:5px}.user-box form{margin:0}.link-button{border:0;background:none;color:var(--orange);cursor:pointer;font-weight:700}.page{max-width:1480px;margin:0 auto;padding:34px 38px 60px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:25px}.page-head.compact{margin-bottom:18px}.eyebrow{font-size:12px;color:var(--orange);font-weight:900;letter-spacing:1.3px;margin-bottom:8px}.page-head h1{font-size:36px;letter-spacing:-1.2px;margin:0 0 7px}.page-head p{margin:0;color:var(--muted);font-size:16px}.btn{border:1px solid transparent;border-radius:7px;padding:11px 17px;font-weight:750;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:14px}.btn.primary{background:var(--orange);color:#fff}.btn.primary:hover{background:#be4b18}.btn.ghost{background:#fff;border-color:#d0d5dd;color:#344054}.btn.danger{background:#fff;border-color:#f3b7b2;color:var(--red)}.btn.small{padding:7px 10px;font-size:12px}.actions,.row-actions{display:flex;gap:10px;align-items:center}.actions{justify-content:flex-end;margin-top:22px}.actions.left{justify-content:flex-start}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:25px}.stat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:17px 20px;box-shadow:0 1px 2px rgba(0,0,0,.02)}.stat span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}.stat strong{font-size:28px}.stat.orange strong{color:var(--orange)}.stat.green strong{color:var(--green)}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:22px;margin-bottom:22px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:15px}.card h2{margin:0 0 12px;font-size:20px}.card-head h2{margin:0}.card-head p,.card p.sub{color:var(--muted);margin:4px 0 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:#667085;background:#fafafa;border-bottom:1px solid var(--line);padding:11px 10px}td{border-bottom:1px solid #edf0f3;padding:12px 10px;vertical-align:top}td small{display:block;color:var(--muted);margin-top:3px}.text-link{color:var(--orange);text-decoration:none;font-weight:750}.badge{display:inline-block;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;background:#f2f4f7;color:#475467}.badge.attente-responsable{background:#eef2ff;color:#3f51a2}.badge.attente-rh{background:#fff1e8;color:#a84414}.badge.valide{background:#eaf7ef;color:#187044}.badge.refuse{background:#fff0ef;color:#a92920}.badge.annule{background:#f2f4f7;color:#59636f}.badge.erreur{background:#fff6dd;color:#8b5b00}.badge.large{padding:8px 14px;font-size:13px}.alert{border-radius:8px;padding:13px 16px;margin-bottom:18px;border:1px solid}.alert.success{background:#edf8f1;border-color:#b9e4c8;color:#17653d}.alert.error{background:#fff1f0;border-color:#f1b9b5;color:#92251e}.alert.warning{background:#fff8e6;border-color:#f1d18a;color:#795100}.empty{padding:30px;text-align:center;color:var(--muted)}.form-card{max-width:1080px}.section-title{font-weight:850;font-size:13px;letter-spacing:.6px;text-transform:uppercase;color:#475467;border-bottom:1px solid var(--line);padding-bottom:8px;margin:8px 0 15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.form-grid .full{grid-column:1/-1}label{display:block;font-weight:700;font-size:13px;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid #cfd5dd;border-radius:7px;background:#fff;padding:10px 11px;font:inherit;color:var(--ink)}textarea{min-height:90px;resize:vertical}.hint{color:var(--muted);font-size:12px;display:block;margin-top:5px}.filters{display:grid;grid-template-columns:2fr 1fr auto auto;gap:10px}.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}dl{display:grid;grid-template-columns:210px 1fr;margin:0}dt,dd{padding:9px 0;border-bottom:1px solid #edf0f3}dt{font-weight:750}dd{margin:0}.timeline{display:grid;gap:18px}.step{display:grid;grid-template-columns:36px 1fr;gap:10px}.step>span{width:30px;height:30px;border-radius:50%;background:#fff1e8;color:var(--orange);display:grid;place-items:center;font-weight:900}.step p{margin:3px 0}.note{background:#f8fafc;border-left:3px solid var(--orange);padding:8px 10px;margin-top:6px}.balance-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.balance-box{background:#fafbfc;border:1px solid var(--line);border-radius:8px;padding:13px}.balance-box span{display:block;color:var(--muted);font-size:11px}.balance-box strong{display:block;font-size:23px;margin-top:4px}.balance-box.emphasis{background:#fff5ef;border-color:#f6cab4}.balance-box.emphasis strong{color:var(--orange)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.mini-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.mini-form>div{min-width:160px;flex:1}.login-shell{max-width:460px;margin:70px auto}.login-card{padding:30px}.login-card h1{margin:0 0 8px}.login-card p{color:var(--muted);margin:0 0 22px}.stack{display:grid;gap:14px}.preview-errors{color:var(--red);font-size:12px}.preview-warnings{color:var(--amber);font-size:12px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.active-dot{background:var(--green)}.inactive-dot{background:#98a2b3}.footer{text-align:center;color:#98a2b3;font-size:11px;padding:22px}.kpi-note{font-size:11px;color:var(--muted);margin-top:6px}.callout{border-left:4px solid var(--orange);background:#fff9f5;padding:14px 16px;border-radius:6px}.divider{height:1px;background:var(--line);margin:18px 0}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row input{width:auto}.right{text-align:right}.muted{color:var(--muted)}
@media(max-width:1100px){.topbar{padding:10px 18px;flex-wrap:wrap}.nav-main{order:3;width:100%;overflow:auto}.page{padding:25px 18px}.stats-grid{grid-template-columns:repeat(2,1fr)}.balance-grid{grid-template-columns:repeat(3,1fr)}.detail-grid,.two-col,.admin-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.brand{min-width:auto}.user-box{margin-left:auto}}
@media(max-width:650px){.stats-grid,.balance-grid,.form-grid,.filters{grid-template-columns:1fr}.page-head{display:block}.page-head .btn{margin-top:14px}dl{grid-template-columns:1fr}dt{border-bottom:0;padding-bottom:0}.user-box span{display:none}}

/* TST_THEME_382_BEGIN */
:root{--tst-blue:#434868;--tst-blue-dark:#20264c;--tst-orange:#fcb140;--tst-orange-dark:#d99124;--tst-soft:#f5f6f8;--tst-blue-soft:#eef0f6}
body{background:var(--tst-soft)}
.topbar{border-top:4px solid var(--tst-orange);padding-top:8px}
.brand{min-width:270px}
.brand-mark.brand-mark-logo{width:120px;height:48px;background:#fff;display:flex;align-items:center;justify-content:flex-start;padding:0;border-radius:0}
.brand-mark.brand-mark-logo img{display:block;max-width:116px;max-height:46px;width:auto;height:auto;object-fit:contain}
.brand-title{color:var(--tst-blue-dark);font-size:19px}
.brand-subtitle{color:#69708a}
.nav-main>a,.nav-menu>summary{color:var(--tst-blue-dark)}
.nav-main>a:hover,.nav-menu>summary:hover,.text-link,.link-button{color:var(--tst-orange-dark)}
.nav-menu div a:hover{background:#fff8eb;color:var(--tst-blue-dark)}
.eyebrow{color:var(--tst-orange-dark)}
.page-head h1{color:var(--tst-blue-dark)}
.btn.primary{background:var(--tst-orange);border-color:var(--tst-orange-dark);color:var(--tst-blue-dark)}
.btn.primary:hover{background:var(--tst-orange-dark);color:#fff}
.callout{border-left-color:var(--tst-orange);background:#fffaf1}
.note{border-left-color:var(--tst-orange);background:#fffaf1}
.balance-box.emphasis{background:#fff8eb;border-color:#f2d39d}
.balance-box.emphasis strong,.stat.orange strong{color:var(--tst-orange-dark)}
.step>span{background:#fff4dd;color:var(--tst-blue-dark)}
.card{border-top:2px solid rgba(67,72,104,.12)}
.section-title{color:var(--tst-blue)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--tst-blue);box-shadow:0 0 0 3px rgba(67,72,104,.12)}
table th{color:var(--tst-blue);background:#f6f7fa}
a{color:var(--tst-blue)}
a:hover{color:var(--tst-orange-dark)}
.footer{border-top:1px solid #e6e9ee;background:#fff}
.login-card{border-top:4px solid var(--tst-orange)}
/* TST_THEME_382_END */

/* TST_DASHBOARD_REPORTS_BEGIN */
.stats-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}
.stat-link{display:block;color:inherit;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.stat-link:hover{color:inherit;transform:translateY(-2px);border-color:#d7b16b;box-shadow:var(--shadow)}
.stat small{display:block;color:var(--muted);font-size:11px;margin-top:7px}
.dashboard-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:-4px 0 22px}
.shortcut-card{display:grid;gap:5px;background:var(--tst-blue);color:#fff;text-decoration:none;border-radius:10px;padding:17px 19px;box-shadow:var(--shadow)}
.shortcut-card:hover{color:#fff;background:var(--tst-blue-dark);transform:translateY(-1px)}
.shortcut-card span{font-size:12px;color:#e8eaf3;line-height:1.4}
.dashboard-breakdowns .card{margin-bottom:22px}
.report-filters{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:14px;align-items:end}
.report-filter-actions{display:flex;gap:9px;grid-column:1/-1}
.report-list{display:grid;gap:7px}
.report-list>a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink);background:#fafbfc}
.report-list>a:hover{background:#fff8eb;border-color:#edcf9b;color:var(--ink)}
.report-list>a strong{color:var(--tst-blue-dark);font-size:18px}
.report-stats{grid-template-columns:repeat(6,minmax(145px,1fr))}
.report-table-card .card-head>strong{white-space:nowrap}
@media(max-width:1200px){.dashboard-shortcuts{grid-template-columns:repeat(2,1fr)}.report-filters{grid-template-columns:repeat(3,1fr)}.report-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.dashboard-shortcuts,.report-filters,.report-stats{grid-template-columns:1fr}.report-actions{margin-top:14px;flex-wrap:wrap}.report-filter-actions{grid-column:auto}}
@media print{.topbar,.footer,.report-filter-card,.report-actions{display:none!important}.page{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid}.report-table-card{break-inside:auto}.report-table-card .table-wrap{overflow:visible}body{background:#fff;font-size:11px}.page-head h1{font-size:26px}a{color:inherit;text-decoration:none}}
/* TST_DASHBOARD_REPORTS_END */

/* Workflow multi-sociétés et Outlook */
.workflow-toolbar{padding:16px 20px}.workflow-toolbar .filters{margin:0}.workflow-company-filter-logo{display:flex;align-items:center;min-width:0;min-height:42px}.workflow-company-filter-logo img{display:block;max-width:150px;max-height:42px;width:auto;height:auto;object-fit:contain}.workflow-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}.workflow-column{background:#eef1f5;border:1px solid var(--line);border-radius:14px;padding:12px;min-height:280px}.workflow-column-head{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 14px}.workflow-column-head span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.workflow-column-head h2{font-size:18px;margin:3px 0 0}.workflow-column-head>strong{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line)}.manager-stage{border-top:3px solid var(--amber)}.hr-stage{border-top:3px solid var(--blue)}.closed-stage{border-top:3px solid var(--green)}.workflow-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 4px 14px rgba(20,28,38,.05)}.workflow-card h3{font-size:16px;margin:12px 0 5px}.workflow-card p{margin:4px 0 9px}.workflow-card small{display:block;color:var(--muted);line-height:1.45}.workflow-card .text-link{display:inline-block;margin-top:12px}.workflow-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.workflow-empty{color:var(--muted);font-size:13px;text-align:center;padding:30px 10px}.compact-card{padding:13px 15px}.company-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:999px;background:#f0eef8;color:var(--tst-blue-dark);font-size:12px;font-weight:750;white-space:nowrap}.company-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.company-card{margin:0}.company-count{color:var(--muted);font-size:13px;font-weight:700}.check-row{display:flex;align-items:center;gap:8px;font-weight:650}.check-row input{width:auto}.outlook-tests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}.outlook-tests .mini-form{margin:0}.simple-list{display:flex;flex-direction:column;gap:8px}.simple-list>a,.simple-list>div{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;text-decoration:none;color:inherit;background:#fff}.simple-list span{color:var(--muted);font-size:12px;text-align:right}.audit-list>div{display:block}.audit-list span{display:block;text-align:left;margin-top:3px}.btn:disabled{opacity:.45;cursor:not-allowed}.muted{color:var(--muted)}
@media (max-width:1100px){.workflow-board{grid-template-columns:1fr}.company-grid{grid-template-columns:1fr}.outlook-tests{grid-template-columns:1fr}}

/* Logos multi-sociétés */
.company-chip{gap:6px}.company-chip img{display:block;width:24px;height:18px;object-fit:contain;border-radius:3px;background:#fff}.company-logo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.company-logo-form{display:grid;grid-template-columns:92px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.company-logo-form small{display:block;color:var(--muted);margin-top:3px}.company-logo-preview{width:92px;height:58px;display:flex;align-items:center;justify-content:center;padding:5px;border:1px solid var(--line);border-radius:9px;background:#fff}.company-logo-preview img{display:block;max-width:80px;max-height:46px;width:auto;height:auto;object-fit:contain}.company-logo-preview .fallback-logo{opacity:.55}.file-pick{font-size:12px;font-weight:750;color:var(--tst-blue-dark);cursor:pointer}.file-pick input{display:block;width:170px;margin-top:5px;font-size:11px}.company-page-identity{display:flex;align-items:center;gap:18px;min-width:0}.company-page-identity>img{display:block;width:120px;height:64px;object-fit:contain;padding:5px;border:1px solid var(--line);border-radius:10px;background:#fff;flex:0 0 auto}
@media (max-width:1100px){.company-logo-grid{grid-template-columns:1fr}.company-logo-form{grid-template-columns:82px minmax(0,1fr) auto}.company-logo-form .btn{grid-column:2/4}.company-logo-preview{width:82px}.company-page-identity>img{width:92px;height:52px}}
@media (max-width:650px){.company-logo-form{grid-template-columns:1fr}.company-logo-form .btn{grid-column:auto}.company-logo-preview{width:100%}.company-page-identity{align-items:flex-start}.company-page-identity>img{width:76px;height:46px}}

/* Graphiques, tableaux interactifs et actions modernisées */
.btn{gap:7px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 13px rgba(32,38,76,.12)}.btn:active:not(:disabled){transform:translateY(0)}
.btn:focus-visible,.text-link:focus-visible,.nav-main a:focus-visible,.nav-menu summary:focus-visible,.table-tool-button:focus-visible,.table-sort-button:focus-visible,.column-filter-button:focus-visible{outline:3px solid rgba(252,177,64,.45);outline-offset:2px}
.row-actions{flex-wrap:wrap}.nav-main>a{position:relative;padding:8px 0}.nav-main>a.active{color:var(--tst-blue-dark)}.nav-main>a.active:after{content:"";position:absolute;left:0;right:0;bottom:1px;height:3px;border-radius:3px;background:var(--tst-orange)}.nav-menu div a.active{background:#fff4dd;color:var(--tst-blue-dark);font-weight:800}
.card{border-radius:14px;transition:border-color .15s ease}.stat{border-radius:13px;position:relative;overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tst-blue)}.stat.orange:before{background:var(--tst-orange)}.stat.green:before{background:var(--green)}

.dashboard-charts{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);gap:20px;margin-bottom:22px}.chart-card{margin:0;min-height:330px}.chart-card .eyebrow{margin-bottom:5px}.chart-legend{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:11px;font-weight:750}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{width:10px;height:10px;border-radius:3px}.legend-total{background:var(--tst-blue)}.legend-approved{background:var(--tst-orange)}
.activity-chart{height:235px;display:flex;align-items:stretch;gap:10px;padding:12px 4px 0;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 54px,rgba(67,72,104,.08) 55px)}.activity-month{min-width:44px;flex:1;display:grid;grid-template-rows:24px 1fr 25px;align-items:end;text-align:center;text-decoration:none;color:var(--muted);border-radius:8px 8px 0 0}.activity-month:hover{background:rgba(252,177,64,.08);color:var(--tst-blue-dark)}.activity-value{font-size:12px;font-weight:850;color:var(--tst-blue-dark);align-self:center}.activity-bars{height:174px;display:flex;align-items:flex-end;justify-content:center;gap:4px}.activity-bars i{width:min(18px,35%);border-radius:5px 5px 1px 1px;min-height:2px;transition:height .25s ease}.bar-total{height:var(--total);background:var(--tst-blue)}.bar-approved{height:var(--approved);background:var(--tst-orange)}.activity-month small{font-size:11px;font-weight:750;align-self:center}
.status-chart-layout{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:22px;min-height:230px}.donut-chart{width:180px;height:180px;position:relative;display:grid;place-items:center;margin:auto}.donut-chart svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-chart circle{fill:none;stroke-width:5}.donut-base{stroke:#eef0f4}.donut-segment{stroke-linecap:butt}.donut-chart>span{position:absolute;display:grid;text-align:center}.donut-chart>span strong{font-size:30px;color:var(--tst-blue-dark)}.donut-chart>span small{font-size:11px;color:var(--muted)}
.donut-segment.attente-responsable,.status-color.attente-responsable{stroke:#6875d1;background:#6875d1}.donut-segment.attente-rh,.status-color.attente-rh{stroke:var(--tst-orange);background:var(--tst-orange)}.donut-segment.valide,.status-color.valide{stroke:#2a9d62;background:#2a9d62}.donut-segment.refuse,.status-color.refuse{stroke:#d4534a;background:#d4534a}.donut-segment.annule,.status-color.annule{stroke:#98a2b3;background:#98a2b3}.donut-segment.erreur,.status-color.erreur{stroke:#c78a24;background:#c78a24}
.status-chart-legend{display:grid;gap:5px}.status-chart-legend a{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:12px}.status-chart-legend a:hover{background:#f6f7fa;color:var(--ink)}.status-chart-legend i{width:9px;height:9px;border-radius:50%}.status-chart-legend strong{color:var(--tst-blue-dark);font-size:14px}.chart-empty{min-height:220px;display:grid;place-items:center}
.overview-bars>a>span{display:grid;gap:7px;min-width:0;flex:1}.overview-track{display:block;width:100%;height:5px;border-radius:9px;background:#e8eaf0;overflow:hidden}.overview-track>span{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--tst-blue),#737a9d)}

.table-wrap{border:1px solid var(--line);border-radius:11px;background:#fff}.table-tools{min-width:680px;display:flex;align-items:center;gap:9px;padding:10px 12px;background:#fafbfc;border-bottom:1px solid var(--line)}.table-search{margin:0;min-width:220px;flex:1}.table-search input{height:36px;padding:7px 11px 7px 34px;font-size:12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23667085' stroke-width='1.8' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat 10px center}.table-result-count{font-size:11px;color:var(--muted);white-space:nowrap}.table-tool-button{border:1px solid #d0d5dd;border-radius:7px;background:#fff;color:#475467;padding:8px 10px;font-size:11px;font-weight:750;cursor:pointer;white-space:nowrap}.table-tool-button:hover{border-color:var(--tst-orange);color:var(--tst-blue-dark)}
.interactive-table{min-width:680px}.interactive-table thead th{padding:0;vertical-align:middle;white-space:nowrap}.interactive-table thead th.table-column-static{padding:11px 10px}.table-header-controls{display:flex;align-items:center;justify-content:space-between;gap:2px;min-height:40px;padding:0 4px 0 6px}.table-sort-button{min-width:0;flex:1;display:flex;align-items:center;gap:6px;border:0;background:transparent;color:inherit;padding:10px 4px;font:inherit;font-weight:800;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;text-align:left}.sort-indicator{font-size:13px;color:#98a2b3}.interactive-table th[aria-sort] .sort-indicator{color:var(--tst-orange-dark)}.column-filter-button{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:#98a2b3;font-size:17px;cursor:pointer}.column-filter-button:hover{background:#fff4dd;color:var(--tst-blue-dark)}
.table-filter-row{display:none}.show-column-filters .table-filter-row{display:table-row}.table-filter-row th{padding:6px!important;background:#fff8eb!important}.table-filter-row th:empty{background:#fff8eb!important}.table-filter-row input{min-width:95px;height:31px;padding:5px 7px;border-radius:6px;font-size:11px}.interactive-table tbody tr{transition:background .12s ease}.interactive-table tbody tr:hover{background:#fffaf1}.interactive-table tbody tr[hidden]{display:none}.table-no-result{min-width:680px;padding:30px;text-align:center;color:var(--muted);background:#fff}.table-row-action{display:inline-flex;align-items:center;padding:6px 9px;border-radius:7px;background:#fff4dd;color:var(--tst-blue-dark);white-space:nowrap}.table-row-action:hover{background:var(--tst-orange);color:var(--tst-blue-dark)}.table-row-button{white-space:nowrap}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@media(max-width:1100px){.dashboard-charts{grid-template-columns:1fr}.chart-card{min-height:auto}.table-tools{min-width:620px}.interactive-table,.table-no-result{min-width:620px}}
@media(max-width:650px){.dashboard-charts{grid-template-columns:1fr}.chart-card{padding:17px}.chart-card .card-head{align-items:flex-start}.chart-legend{display:grid;gap:4px}.activity-chart{gap:3px;height:210px}.activity-bars{height:150px}.activity-month{min-width:35px}.status-chart-layout{grid-template-columns:1fr}.donut-chart{width:155px;height:155px}.table-tools{min-width:560px}.interactive-table,.table-no-result{min-width:560px}.page-head .row-actions{margin-top:14px}.page-head .row-actions .btn{margin-top:0}}
@media print{.table-tools,.table-filter-row,.table-no-result{display:none!important}.dashboard-charts{grid-template-columns:1fr 1fr}.chart-card{box-shadow:none}.interactive-table{min-width:0}}
@media (min-width:1101px) and (max-width:1450px){.topbar{gap:14px;padding-left:20px;padding-right:20px}.brand{min-width:205px}.brand-mark.brand-mark-logo{width:94px}.brand-mark.brand-mark-logo img{max-width:92px}.brand-subtitle{display:none}.nav-main{gap:11px}.nav-main>a,.nav-menu>summary{font-size:13px}.user-box{padding-left:11px}.user-box>.text-link{display:none}}
.nav-menu>summary.active-parent{color:var(--tst-orange-dark)}

/* Décisions Responsable et RH intégrées */
.decision-card{border-top:3px solid var(--tst-orange)}.decision-forms{display:grid;grid-template-columns:1fr 1fr;gap:16px}.decision-form{display:grid;align-content:start;gap:9px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.decision-form label{margin:0}.decision-form label small{font-weight:500;color:var(--muted)}.decision-form textarea{min-height:72px}.decision-approve{background:#e8f6ee;border-color:#9dd6b5;color:#17653d}.decision-approve:hover{background:#2a9d62!important;border-color:#258b58!important;color:#fff!important}.workflow-decision{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.workflow-decision>summary{list-style:none;width:100%}.workflow-decision>summary::-webkit-details-marker{display:none}.workflow-decision[open]>summary{margin-bottom:10px;background:var(--tst-blue-dark);color:#fff}.decision-forms.compact{grid-template-columns:1fr}.decision-forms.compact .decision-form{padding:11px;background:#fff}.decision-forms.compact textarea{min-height:58px;font-size:12px}.decision-forms.compact .btn{width:100%;font-size:11px;padding:8px}.decision-form[data-submitting="true"]{opacity:.72;pointer-events:none}
.invoice-document-card{border-top:3px solid var(--tst-blue-dark)}.invoice-pdf-frame{height:min(76vh,920px);min-height:580px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#eef1f5}.invoice-pdf-frame iframe{display:block;width:100%;height:100%;border:0;background:#fff}.approval-step small{display:inline-flex;margin-top:5px;padding:3px 8px;border-radius:999px;background:#eef1f5;color:#667085;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.approval-step.current{border-color:var(--tst-orange);background:#fffaf0}.approval-step.current small{background:#fff0d2;color:#9a5700}.approval-step.approved small{background:#e8f6ee;color:#17653d}.approval-step.rejected small{background:#feecec;color:#a12622}.approval-level-field{transition:opacity .16s ease}.approval-chain-form .approval-level-field[hidden]{display:none!important}
@media(max-width:760px){.invoice-pdf-frame{height:68vh;min-height:430px}.invoice-document-card .card-head{align-items:flex-start}.invoice-document-card .row-actions{width:100%}.invoice-document-card .row-actions .btn{flex:1}}
@media print{.invoice-pdf-frame,.invoice-document-card .row-actions{display:none!important}}
@media(max-width:800px){.decision-forms{grid-template-columns:1fr}}

/* Module de validation des factures */
.invoice-stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.badge.invoice-pending-assignment{background:#f2f4f7;color:#475467}
.badge.invoice-pending-accounting{background:#fff6dd;color:#8b5b00}
.badge.invoice-pending-manager{background:#eef2ff;color:#3f51a2}
.badge.invoice-pending-second{background:#fff1e8;color:#a84414}
.badge.invoice-approved{background:#eaf7ef;color:#187044}
.badge.invoice-rejected{background:#fff0ef;color:#a92920}
.badge.invoice-sync-error{background:#fff0ef;color:#a92920}
.login-note{font-size:12px!important;margin:18px 0 0!important;padding-top:15px;border-top:1px solid var(--line)}
.invoice-stats .stat strong{line-height:1}
@media(max-width:800px){.invoice-stats{grid-template-columns:1fr}.page-head .row-actions{align-items:stretch}.page-head .row-actions .btn{width:100%}}

/* Sélecteur visuel entre applications, distinct des menus métiers */
.module-switcher{display:flex;align-items:center;gap:6px;padding-left:12px;border-left:1px solid var(--line)}.module-icon{width:40px;height:40px;position:relative;display:grid;place-items:center;border:1px solid #d7dce4;border-radius:10px;background:#fff;color:#667085;text-decoration:none;transition:.15s ease}.module-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.module-icon:hover{border-color:var(--tst-orange);color:var(--tst-blue-dark);background:#fff8eb;transform:translateY(-1px)}.module-icon.active{background:var(--tst-blue-dark);border-color:var(--tst-blue-dark);color:#fff;box-shadow:0 4px 12px rgba(23,43,85,.18)}.module-icon>span{position:absolute;top:46px;left:50%;transform:translateX(-50%) translateY(-3px);padding:5px 7px;border-radius:6px;background:#172b55;color:#fff;font-size:10px;font-weight:750;white-space:nowrap;opacity:0;pointer-events:none;transition:.15s;z-index:30}.module-icon:hover>span,.module-icon:focus-visible>span{opacity:1;transform:translateX(-50%) translateY(0)}
.module-icon.module-conges{color:#2f356f;background:#f1f2ff;border-color:#cfd2f0}.module-icon.module-factures{color:#005c96;background:#eef8fd;border-color:#bedced}.module-icon.module-achats{color:#9a5a00;background:#fff7e7;border-color:#f0d08d}.module-icon.module-mayan{color:#355268;background:#eef3f6;border-color:#c5d4dd}.module-icon.active{background:var(--tst-blue-dark);border-color:var(--tst-blue-dark);color:#fff}.module-icon.module-achats.active{background:#9a5a00;border-color:#9a5a00}.module-icon.module-factures.active{background:#005c96;border-color:#005c96}.module-icon.module-conges.active{background:#2f356f;border-color:#2f356f}
.btn.export-action{display:inline-flex;align-items:center;gap:8px;border-color:#8fc7a7;background:#edf8f1;color:#176b3f}.btn.export-action:hover{border-color:#59a77a;background:#ddf2e6;color:#125631}.btn.export-action>span{display:inline-grid;place-items:center;min-width:34px;height:22px;padding:0 5px;border-radius:4px;background:#217346;color:#fff;font-size:9px;font-weight:900;letter-spacing:.3px}
.nav-menu>summary{position:relative;padding:8px 0}.nav-menu>summary.active-parent{color:var(--tst-blue-dark)}.nav-menu>summary.active-parent:after{content:"";position:absolute;left:0;right:0;bottom:1px;height:3px;border-radius:3px;background:var(--tst-orange)}

/* KPI de durée et de qualité de décision */
.decision-kpi-section{margin:4px 0 24px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:12px}.section-heading h2{margin:0;font-size:21px;color:var(--tst-blue-dark)}.section-heading small{color:var(--muted)}.decision-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.decision-kpi{min-width:0;background:#fff;border:1px solid var(--line);border-top:3px solid var(--tst-blue);border-radius:12px;padding:15px 16px;box-shadow:0 2px 8px rgba(23,43,85,.05)}.decision-kpi>span{display:block;min-height:30px;color:#667085;font-size:11px;font-weight:750}.decision-kpi>strong{display:block;margin:4px 0 5px;color:var(--tst-blue-dark);font-size:25px;line-height:1}.decision-kpi>small{display:block;color:var(--muted);font-size:10px;line-height:1.35}.decision-kpi.green{border-top-color:var(--green)}.decision-kpi.green>strong{color:var(--green)}.decision-kpi.red{border-top-color:var(--red)}.decision-kpi.red>strong{color:var(--red)}.decision-kpi.warning{border-top-color:var(--tst-orange);background:#fffaf0}.decision-kpi.warning>strong{color:var(--tst-orange-dark)}

@media(max-width:1350px){.decision-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.module-switcher{padding-left:8px}.module-icon{width:37px;height:37px}.user-box>span{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:800px){.decision-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{align-items:flex-start}.section-heading small{display:none}.module-switcher{margin-left:auto;border-left:0;padding-left:0}.module-icon>span{display:none}}
@media(max-width:520px){.decision-kpi-grid{grid-template-columns:1fr}.module-icon{width:34px;height:34px}.module-icon svg{width:18px;height:18px}.user-box{width:100%;border-left:0;padding-left:0;justify-content:flex-end}}
@media print{.module-switcher{display:none!important}.decision-kpi-grid{grid-template-columns:repeat(3,1fr)}.decision-kpi{box-shadow:none}}
@media screen and (min-width:1351px){.decision-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}}

/* Identité commune du groupe : TST, TRO, DSVTRO et ALF uniquement. */
.brand{min-width:350px;gap:14px}.brand-mark.brand-mark-logo{width:178px;height:58px;flex:0 0 178px;padding:0;background:transparent}.brand-mark.brand-mark-logo img{width:178px;height:54px;max-width:none;max-height:none;object-fit:contain}.brand-title{font-size:18px;line-height:1.15}.brand-subtitle{font-size:10px}.group-login-logo{display:block;width:100%;max-width:430px;height:auto;margin:0 auto 24px;padding-bottom:18px;border-bottom:1px solid var(--line)}.login-shell{max-width:520px}.login-card{border-top:4px solid var(--tst-orange)}
@media (min-width:1101px) and (max-width:1450px){.brand{min-width:250px}.brand-mark.brand-mark-logo{width:132px;flex-basis:132px}.brand-mark.brand-mark-logo img{width:132px;height:44px}.brand-title{font-size:15px}.brand-subtitle{display:none}}
@media(max-width:1100px){.brand{min-width:auto}.brand-mark.brand-mark-logo{width:150px;flex-basis:150px}.brand-mark.brand-mark-logo img{width:150px;height:48px}}
@media(max-width:650px){.brand-mark.brand-mark-logo{width:126px;flex-basis:126px}.brand-mark.brand-mark-logo img{width:126px;height:42px}.brand-title{font-size:14px}.group-login-logo{margin-bottom:18px;padding-bottom:14px}}
@media print{.topbar,.footer{display:none!important}}

/* Centre de pilotage des notifications par entité et par workflow. */
.btn.secondary{background:#eef2ff;border-color:#cfd6f6;color:var(--tst-blue-dark)}.btn.secondary:hover{background:#dfe6ff;border-color:#aeb9ef}.messaging-nav{position:sticky;top:78px;z-index:12;display:flex;gap:8px;overflow:auto;margin:0 0 18px;padding:9px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 4px 14px rgba(23,43,85,.05)}.messaging-nav a{padding:8px 11px;border-radius:7px;color:#475467;text-decoration:none;font-size:12px;font-weight:800;white-space:nowrap}.messaging-nav a:hover{background:#fff4e8;color:var(--tst-orange-dark)}
.send-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.send-control-card{display:grid;gap:15px;padding:18px;border:1px solid var(--line);border-top:4px solid #98a2b3;border-radius:12px;background:#fff}.send-control-card.is-active{border-top-color:var(--green);box-shadow:0 6px 18px rgba(23,112,68,.08)}.send-control-head{display:flex;align-items:center;gap:13px}.send-control-head h3{margin:0 0 6px;font-size:20px}.send-company-logo{width:112px;height:54px;display:grid;place-items:center;padding:5px;border:1px solid var(--line);border-radius:8px;background:#fff}.send-company-logo img{max-width:100%;max-height:44px;object-fit:contain}.send-channel-list{display:grid;gap:8px}.send-channel-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:9px;background:#f7f8fa}.send-channel-list strong,.send-channel-list small{display:block}.send-channel-list small{margin-top:2px;color:var(--muted);font-size:11px}.switch-state{min-width:68px;padding:6px 9px;border-radius:999px;text-align:center;font-size:10px;font-weight:900;letter-spacing:.5px}.switch-state.on{background:#eaf7ef;color:#187044}.switch-state.off{background:#edf0f3;color:#667085}.mailer-readiness{display:flex;justify-content:space-between;padding:9px 11px;border:1px dashed #cfd5dd;border-radius:8px;color:#667085;font-size:12px}.mailer-readiness strong{color:var(--ink)}.send-toggle-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.send-toggle-actions form,.send-master-action{margin:0}.send-toggle-actions .btn,.send-master-action .btn{width:100%}.send-preview-link{text-align:center;font-size:12px}.callout.compact{padding:10px 12px;font-size:12px}
.message-company-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:17px}.message-company-tabs a{padding:8px 13px;border:1px solid var(--line);border-radius:999px;color:#475467;text-decoration:none;font-size:12px;font-weight:800;white-space:nowrap}.message-company-tabs a.active{border-color:var(--tst-blue-dark);background:var(--tst-blue-dark);color:#fff}.message-preview-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.message-preview-columns h3{margin:0 0 12px;color:var(--tst-blue-dark)}.message-preview{margin-bottom:9px;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}.message-preview summary{display:grid;gap:3px;padding:12px 14px;cursor:pointer;list-style:none}.message-preview summary::-webkit-details-marker{display:none}.message-preview summary span{font-weight:800}.message-preview summary small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-preview[open] summary{border-bottom:1px solid var(--line);background:#f8fafc}.message-subject{padding:10px 13px;border-bottom:1px solid var(--line);background:#fffaf0;font-size:12px}.message-preview iframe{display:block;width:100%;height:390px;border:0;background:#fff}.outlook-tests .mini-form{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.outlook-tests .mini-form .text-link{align-self:center;font-size:11px}
@media(max-width:900px){.send-control-grid,.message-preview-columns{grid-template-columns:1fr}.messaging-nav{top:70px}.message-preview iframe{height:330px}}
@media(max-width:560px){.send-toggle-actions{grid-template-columns:1fr}.send-control-head{align-items:flex-start}.send-company-logo{width:90px}.messaging-nav{position:static}.message-preview iframe{height:300px}}
@media print{.messaging-nav,.send-toggle-actions,.send-master-action,.outlook-tests{display:none!important}.message-preview-columns{grid-template-columns:1fr}.message-preview iframe{display:none}}

/* Module Achats */
.site-achats{--accent:#fcb140;--navy:#172b55}.site-achats .topbar{border-top-color:#fcb140}.purchase-stats{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}.purchase-stats .stat{border-left:4px solid var(--tst-blue)}.purchase-stats .stat.orange{border-left-color:var(--tst-orange)}.purchase-stats .stat.green{border-left-color:var(--green)}.purchase-stats .stat.red{border-left-color:var(--red)}.purchase-stats .stat.red strong{color:var(--red)}.purchase-stats .stat.blue strong{color:var(--tst-blue-dark)}.kpi-action{color:inherit;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.kpi-action:hover{color:inherit;transform:translateY(-2px);border-color:#d7b16b;box-shadow:var(--shadow)}.purchase-status{white-space:normal;text-align:center}.status-pending-manager,.status-pending-procurement,.status-pending-dg{background:#fff1d1;color:#7a4b00}.status-approved,.status-sent-supplier{background:#dff7e9;color:#0a6b3d}.status-rejected-manager,.status-rejected-procurement,.status-rejected-dg{background:#fde4e4;color:#9f1f1f}.status-draft,.status-sync-error{background:#eef1f6;color:#4b5565}.compact-card{padding:16px 20px}.filter-bar{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.filter-bar>div{min-width:220px}.head-actions,.document-actions,.decision-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.purchase-form .card{overflow:visible}.purchase-lines{display:grid;gap:10px}.purchase-line{display:grid;grid-template-columns:42px minmax(260px,2.5fr) minmax(100px,.65fr) minmax(90px,.55fr) minmax(130px,.8fr) minmax(100px,.6fr) 34px;gap:10px;align-items:end;padding:12px;border:1px solid #d8dee9;border-radius:12px;background:#f9fafc}.purchase-line-number{align-self:center;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#172b55;color:#fff;font-weight:800}.purchase-line label{font-size:12px}.line-remove{width:32px;height:38px;border:0;border-radius:8px;background:#feecec;color:#a52020;font-size:22px;cursor:pointer}.line-remove:disabled{opacity:.3;cursor:not-allowed}.purchase-total-preview{margin:14px 0 0 auto;max-width:320px;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#172b55;color:#fff;border-radius:10px}.purchase-total-preview strong{font-size:20px}.quotation-drop{border:2px dashed #fcb140;border-radius:12px;background:#fffaf0;padding:16px}.sticky-actions{position:sticky;bottom:10px;z-index:10;justify-content:flex-end;padding:12px;border:1px solid #d8dee9;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 30px rgba(23,43,85,.16)}.purchase-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;margin-bottom:18px}.company-mini-logo img,.company-config-title img{max-width:150px;max-height:55px;object-fit:contain}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 18px;border:1px solid #e0e5ed;border-radius:10px;overflow:hidden}.detail-list>div{padding:12px;border-bottom:1px solid #e0e5ed}.detail-list>div:nth-child(odd){border-right:1px solid #e0e5ed}.detail-list dt{color:#667085;font-size:12px;margin-bottom:3px}.detail-list dd{margin:0;color:#172b55}.detail-list dd small{display:block;color:#667085}.purchase-timeline{list-style:none;margin:18px 0 0;padding:0}.purchase-timeline li{position:relative;display:grid;grid-template-columns:24px 1fr;gap:11px;min-height:76px}.purchase-timeline li>span{position:relative;width:17px;height:17px;margin-top:3px;border:3px solid #cfd5df;border-radius:50%;background:#fff;z-index:2}.purchase-timeline li:not(:last-child)>span::after{content:"";position:absolute;left:4px;top:14px;width:3px;height:62px;background:#d8dee9}.purchase-timeline li.done>span{border-color:#19a15f;background:#19a15f}.purchase-timeline li.done:not(:last-child)>span::after{background:#19a15f}.purchase-timeline li.active>span{border-color:#fcb140;box-shadow:0 0 0 5px rgba(252,177,64,.18)}.purchase-timeline strong,.purchase-timeline small,.purchase-timeline em{display:block}.purchase-timeline small{color:#667085;margin-top:2px}.purchase-timeline em{color:#172b55;font-size:12px;font-style:normal;font-weight:700;margin-top:3px}.purchase-timeline p{margin:5px 0 0;color:#667085;font-size:12px}.line-modified{background:#fff9ea!important}.change-note{display:block;color:#9a5a00;font-weight:700}.decision-zone{border:2px solid #fcb140}.decision-zone input{min-width:92px}.send-supplier-card{display:flex;justify-content:space-between;align-items:center;gap:24px;border-left:5px solid #19a15f}.purchase-company-config{scroll-margin-top:100px}.company-config-title{display:flex;align-items:center;gap:18px}.config-switches{display:flex;gap:24px;flex-wrap:wrap}.approval-assets-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid #e0e5ed}.approval-asset-card{display:grid;grid-template-columns:1fr minmax(220px,1.5fr) auto;gap:12px;align-items:end;padding:14px;border:1px solid #d8dee9;border-radius:12px;background:#f9fafc}.asset-preview{display:grid;place-items:center;min-height:62px;padding:8px;border-radius:9px;background:#fff;color:#172b55;font-weight:800}.approval-asset-card label{margin:0}
@media(max-width:1200px){.purchase-stats{grid-template-columns:repeat(3,1fr)}.purchase-line{grid-template-columns:38px minmax(220px,2fr) repeat(4,minmax(100px,1fr)) 32px}}
@media(max-width:900px){.purchase-detail-grid,.approval-assets-grid{grid-template-columns:1fr}.purchase-line{grid-template-columns:36px 1fr 1fr}.purchase-line-description{grid-column:2/-1}.line-remove{grid-column:3;justify-self:end}.send-supplier-card{align-items:flex-start;flex-direction:column}.approval-asset-card{grid-template-columns:1fr}}
@media(max-width:640px){.purchase-stats{grid-template-columns:1fr 1fr}.purchase-line{grid-template-columns:32px 1fr}.purchase-line-description,.line-remove{grid-column:2}.detail-list{grid-template-columns:1fr}.detail-list>div:nth-child(odd){border-right:0}}

/* Alignement homogène des champs de chaque ligne du bon de commande. */
.purchase-line{align-items:start}.purchase-line-number{align-self:start;margin-top:24px}.purchase-line>.line-remove{margin-top:24px}.purchase-line>div>small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.25}
@media(max-width:640px){.purchase-line>.line-remove{margin-top:0}}

/* Responsivité production : navigation tactile, tableaux et formulaires. */
html{scrollbar-gutter:stable}body{-webkit-text-size-adjust:100%}img,svg{max-width:100%}.table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}table{font-variant-numeric:tabular-nums}
@media(max-width:900px){.topbar{gap:10px}.nav-main{gap:16px;scrollbar-width:thin;padding-bottom:3px}.nav-main>a,.nav-menu>summary{min-height:40px;display:flex;align-items:center}.page-head h1{font-size:31px;line-height:1.08}.card{padding:18px}.card-head{align-items:flex-start;flex-wrap:wrap}.filter-bar>div{min-width:min(220px,100%);flex:1}.sticky-actions{bottom:6px}}
@media(max-width:640px){body{font-size:14px}.topbar{padding:8px 12px}.nav-main{margin:0 -12px;padding:4px 12px 6px;scroll-snap-type:x proximity}.nav-main>a,.nav-menu{scroll-snap-align:start}.page{padding:20px 12px 44px}.page-head{margin-bottom:18px}.page-head h1{font-size:27px;letter-spacing:-.7px}.page-head p{font-size:14px}.card{padding:15px;border-radius:12px}.btn{min-height:42px}.actions,.row-actions{align-items:stretch;flex-wrap:wrap}.actions .btn,.row-actions .btn{flex:1}.form-grid{gap:13px}input,select,textarea{font-size:16px}.table-wrap{margin-left:-3px;margin-right:-3px}.sticky-actions{position:static;margin-top:14px}.sticky-actions .btn{width:100%}.send-supplier-card .btn{width:100%}.login-shell{margin:28px auto}.login-card{padding:22px 18px}}

/* Dépôt des factures scannées : même entrée documentaire que Mayan. */
.invoice-source-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:20px;align-items:start}.invoice-source-card{position:relative;overflow:hidden}.invoice-source-card.preferred{border-top:4px solid var(--tst-orange)}.invoice-source-card.mayan-choice{border-top:4px solid var(--tst-blue);background:linear-gradient(145deg,#fff,#f6f7fb)}.source-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;background:#fff4dd;color:var(--tst-blue-dark);margin-bottom:16px}.source-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.invoice-source-card h2{margin-bottom:7px}.invoice-source-card>div>p{color:var(--muted);line-height:1.55}.invoice-upload-form{display:grid;gap:17px;margin-top:22px}.invoice-drop{display:grid;gap:9px;padding:22px;border:2px dashed #e3a43c;border-radius:14px;background:#fffaf0;cursor:pointer}.invoice-drop:hover{border-color:var(--tst-orange);background:#fff6df}.invoice-drop-title{font-size:15px;color:var(--tst-blue-dark)}.invoice-drop input{padding:12px;background:#fff}.invoice-drop small{color:var(--muted);font-weight:500}.upload-identity,.upload-security-note{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.upload-identity span,.upload-security-note span{color:var(--muted);font-size:12px}.upload-identity strong{color:var(--tst-blue-dark)}.upload-security-note{grid-template-columns:auto 1fr;align-items:center;gap:12px}.upload-security-note strong{color:var(--green)}.invoice-upload-submit{min-height:48px}.source-steps{display:grid;gap:12px;padding-left:22px;margin:22px 0;color:#475467;line-height:1.45}.source-steps li::marker{color:var(--tst-orange);font-weight:900}.invoice-process-card{margin-top:22px}.invoice-process-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.invoice-process-flow>div{position:relative;display:grid;gap:5px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.invoice-process-flow span{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:var(--tst-blue-dark);color:#fff;font-size:12px;font-weight:900}.invoice-process-flow strong{font-size:13px;color:var(--tst-blue-dark)}.invoice-process-flow small{color:var(--muted);line-height:1.35}@media(max-width:1000px){.invoice-source-grid{grid-template-columns:1fr}.invoice-process-flow{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.invoice-process-flow{grid-template-columns:1fr}.upload-security-note{grid-template-columns:1fr}}

/* Notes de frais : dépenses, voyages et remboursement. */
.site-expenses{--expense-green:#217a4a;--expense-soft:#eaf7ef}.site-expenses .topbar{border-top-color:var(--expense-green)}.site-expenses .eyebrow{color:var(--expense-green)}.site-expenses .btn.primary{background:var(--expense-green);border-color:#17663d;color:#fff}.site-expenses .btn.primary:hover{background:#17663d}.module-expenses{color:var(--expense-green)}.expense-stats .stat.green:before{background:var(--expense-green)}.expense-filters{grid-template-columns:1fr 1fr auto auto}.expense-detail-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:20px}.expense-lines{display:grid;gap:12px}.expense-line{display:grid;grid-template-columns:34px 125px 155px minmax(220px,1.5fr) 130px 150px 95px 120px 145px 34px;gap:9px;align-items:end;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}.expense-line-number{align-self:center;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--tst-blue-dark);color:#fff;font-weight:900}.expense-line label{font-size:11px}.expense-line input,.expense-line select{padding:9px 8px}.expense-total-preview{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:14px;padding:14px;border-radius:10px;background:var(--expense-soft);color:var(--expense-green)}.expense-total-preview strong{font-size:20px}.expense-receipt-drop{display:grid;gap:8px;padding:20px;border:2px dashed #75b991;border-radius:13px;background:#f4fbf7;margin-bottom:16px}.expense-receipt-drop small{color:var(--muted)}.receipt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.receipt-card{display:grid;gap:5px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fafbfc;text-decoration:none;color:var(--ink)}.receipt-card:hover{border-color:#75b991;background:#f4fbf7;color:var(--ink)}.receipt-card small{color:var(--muted);overflow-wrap:anywhere}.receipt-card span{color:var(--expense-green);font-weight:750;font-size:12px}.expense-workflow-board{grid-template-columns:repeat(3,minmax(0,1fr))}.expense-workflow-board .mine-stage{border-top:3px solid var(--expense-green)}.expense-workflow-board .waiting-stage{border-top:3px solid var(--tst-orange)}.expense-workflow-board .closed-stage{border-top:3px solid var(--tst-blue)}.status-pending-originals{background:#fff4dd;color:#8a5700}.status-approved-for-payment{background:#eaf7ef;color:#17653d}.status-reimbursed{background:#dff3e7;color:#125b35}.status-pending-finance{background:#eef2ff;color:#3449a4}.status-rejected-finance,.status-rejected-manager{background:#fff0ef;color:#a92920}
@media(max-width:1350px){.expense-line{grid-template-columns:34px repeat(4,minmax(130px,1fr))}.expense-line .expense-description{grid-column:span 2}.expense-line .line-remove{grid-column:-2}.receipt-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.expense-detail-grid,.expense-workflow-board{grid-template-columns:1fr}.expense-line{grid-template-columns:34px 1fr 1fr}.expense-line .expense-description{grid-column:2/-1}.receipt-grid{grid-template-columns:1fr}.expense-filters{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.expense-line{grid-template-columns:1fr}.expense-line .expense-description,.expense-line .line-remove{grid-column:auto}.expense-line-number{margin:auto}.expense-filters{grid-template-columns:1fr}}

/* Notes de frais 6.3 — avances avant départ et régularisation à 30 jours. */
.site-expenses .expense-stats .stat.red:before{background:var(--red)}
.site-expenses .expense-stats .stat.red strong{color:var(--red)}
.site-expenses .expense-filters{grid-template-columns:1fr 1fr 1fr auto auto}
.status-advance-approved{background:#fff1d1;color:#7a4b00}
.status-advance-paid{background:#eaf2ff;color:#174a86}
.status-advance-closed{background:#dff3e7;color:#125b35}
.row-warning{background:#fff4ef}
[hidden]{display:none!important}
@media(max-width:1000px){.site-expenses .expense-filters{grid-template-columns:1fr 1fr}.expense-detail-grid{grid-template-columns:1fr}}

/* SOLOD_UI_HARMONIZATION_BEGIN */
.site-conges{--module-accent:#2f356f;--module-accent-dark:#222755;--module-soft:#f1f2ff}
.site-factures{--module-accent:#005c96;--module-accent-dark:#004876;--module-soft:#eef8fd}
.site-achats{--module-accent:#9a5a00;--module-accent-dark:#754500;--module-soft:#fff7e7}
.site-expenses{--module-accent:#217a4a;--module-accent-dark:#17613a;--module-soft:#eaf7ef}
.site-conges .topbar,.site-factures .topbar,.site-achats .topbar,.site-expenses .topbar{border-top:3px solid var(--module-accent)}
.site-conges .eyebrow,.site-conges .text-link,.site-conges .link-button,
.site-factures .eyebrow,.site-factures .text-link,.site-factures .link-button,
.site-achats .eyebrow,.site-achats .text-link,.site-achats .link-button,
.site-expenses .eyebrow,.site-expenses .text-link,.site-expenses .link-button{color:var(--module-accent)}
.site-conges .btn.primary,.site-factures .btn.primary,.site-achats .btn.primary,.site-expenses .btn.primary{background:var(--module-accent);border-color:var(--module-accent);color:#fff}
.site-conges .btn.primary:hover,.site-factures .btn.primary:hover,.site-achats .btn.primary:hover,.site-expenses .btn.primary:hover{background:var(--module-accent-dark);border-color:var(--module-accent-dark)}
.site-conges .btn.secondary,.site-factures .btn.secondary,.site-achats .btn.secondary,.site-expenses .btn.secondary{background:var(--module-soft);border-color:var(--module-accent);color:var(--module-accent-dark)}
.site-conges .nav-main>a:hover,.site-conges .nav-menu>summary:hover,
.site-factures .nav-main>a:hover,.site-factures .nav-menu>summary:hover,
.site-achats .nav-main>a:hover,.site-achats .nav-menu>summary:hover,
.site-expenses .nav-main>a:hover,.site-expenses .nav-menu>summary:hover{color:var(--module-accent)}
.nav-main>a,.nav-menu>summary{display:inline-flex;align-items:center;gap:6px}
.nav-menu div a{display:flex;align-items:center;gap:8px}
.ui-icon{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-main>a.active:after{background:var(--module-accent)}
.nav-menu div a.active{background:var(--module-soft);color:var(--module-accent-dark)}
.module-icon.module-expenses{color:#217a4a;background:#eaf7ef;border-color:#acd7bd}
.module-icon.module-expenses.active{background:#217a4a;border-color:#217a4a;color:#fff}
.excel-backup-footer{display:flex;justify-content:flex-end;align-items:center;margin-top:24px;padding-top:14px;border-top:1px solid var(--line)}
.excel-backup-footer .btn.export-action{min-height:32px;padding:6px 10px;gap:6px;border-color:#79bd96;background:#edf8f1;color:#176b3f;font-size:12px;line-height:1.1;box-shadow:none}
.excel-backup-footer .btn.export-action:hover{border-color:#3e9565;background:#dff3e7;color:#125631}
.excel-backup-footer .btn.export-action>svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:650px){.excel-backup-footer{justify-content:center}.excel-backup-footer .btn.export-action{flex:0 0 auto;width:auto;min-height:32px}}
@media print{.excel-backup-footer{display:none!important}}
/* SOLOD_UI_HARMONIZATION_END */

/* Référence finale : les champs d'une ligne d'achat restent alignés en haut,
   y compris après les compléments responsive chargés plus loin. */
.purchase-line{align-items:start}

/* SOLOD_AIRY_ACTIVITY_LAYOUT_BEGIN
   Une hiérarchie visuelle commune : agir, suivre, puis ouvrir l'analyse détaillée. */
.page{max-width:1360px;padding:42px 42px 72px}
.page-head{align-items:center;margin-bottom:30px}
.page-head>div:first-child{max-width:850px}
.page-head p{max-width:820px;line-height:1.55}
.card{padding:26px;margin-bottom:26px}
.stats-grid{gap:16px;margin-bottom:30px}
.stat{min-height:112px;padding:19px 20px}
.card-head{margin-bottom:19px}
.card-head p{line-height:1.5}
.table-wrap{border:1px solid #e7eaf0;border-radius:10px;background:#fff}
.table-wrap table{border-collapse:separate;border-spacing:0}
.table-wrap th{padding:12px;background:#f7f8fb}
.table-wrap td{padding:14px 12px}
.table-wrap tbody tr:hover{background:var(--module-soft,#f8fafc)}

.nav-main{gap:7px;min-width:0}
.nav-main>a,.nav-menu>summary{position:relative;padding:9px 11px;border-radius:9px;font-size:13px;transition:background .15s ease,color .15s ease}
.nav-main>a:hover,.nav-menu>summary:hover{background:var(--module-soft,#f5f6f8)}
.nav-main>a.active,.nav-menu>summary.active-parent{background:var(--module-soft,#f5f6f8);color:var(--module-accent-dark,var(--tst-blue-dark))}
.nav-main>a.active:after,.nav-menu>summary.active-parent:after{display:none}
.nav-main>a.nav-action-create{border:1px solid color-mix(in srgb,var(--module-accent) 32%,white);background:var(--module-soft);color:var(--module-accent-dark)}
.nav-main>a.nav-action-create:hover,.nav-main>a.nav-action-create.active{border-color:var(--module-accent);background:var(--module-accent);color:#fff}
.nav-menu[open]>div{top:47px;left:0;right:auto;z-index:80;min-width:245px;max-height:min(70vh,620px);overflow:auto;padding:9px}
.nav-menu-wide[open]>div{min-width:285px}
.nav-menu-label{display:block;padding:9px 10px 5px;color:#98a2b3;font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.nav-menu-label:not(:first-child){margin-top:5px;border-top:1px solid var(--line)}

.activity-panel{margin:0 0 28px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(23,43,85,.05);overflow:hidden}
.activity-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;cursor:pointer;list-style:none;user-select:none}
.activity-panel>summary::-webkit-details-marker{display:none}
.activity-panel>summary:hover{background:var(--module-soft,#fafbfc)}
.activity-panel>summary h2{margin:0 0 3px;color:var(--tst-blue-dark);font-size:20px}
.activity-panel>summary p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.activity-panel>summary .eyebrow{margin-bottom:5px}
.activity-panel-meta{display:flex;align-items:center;justify-content:flex-end;gap:12px;color:var(--muted);font-size:11px;white-space:nowrap}
.activity-panel-meta b{min-width:72px;padding:7px 10px;border-radius:8px;background:var(--module-soft,#f3f4f6);color:var(--module-accent-dark,var(--tst-blue-dark));text-align:center;font-size:11px}
.activity-panel-meta b:after{content:'  +';font-size:14px}
.activity-panel[open] .activity-panel-meta b{font-size:0}
.activity-panel[open] .activity-panel-meta b:before{content:'Réduire';font-size:11px}
.activity-panel[open] .activity-panel-meta b:after{content:'  −';font-size:14px}
.activity-panel[open]>summary{border-bottom:1px solid var(--line);background:#fbfcfe}
.activity-panel-body{padding:22px}
.activity-panel-body>.decision-kpi-grid,.activity-panel-body>.stats-grid{margin-bottom:0}
.activity-panel-body>.dashboard-charts,.activity-panel-body>.two-col{margin-bottom:0}
.activity-panel-body .card{margin-bottom:0;box-shadow:none}

.form-journey{position:sticky;top:86px;z-index:13;display:flex;align-items:center;gap:7px;overflow:auto;margin:0 0 22px;padding:9px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 5px 18px rgba(23,43,85,.08);backdrop-filter:blur(8px)}
.form-journey-title{padding:0 10px;color:#667085;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.form-journey a{display:flex;align-items:center;gap:7px;min-height:38px;padding:7px 10px;border-radius:8px;color:#475467;text-decoration:none;white-space:nowrap}
.form-journey a:hover,.form-journey a.active{background:var(--module-soft);color:var(--module-accent-dark)}
.form-journey a span{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#eef1f5;color:#667085;font-size:11px;font-weight:900}
.form-journey a.active span{background:var(--module-accent);color:#fff}
.form-journey a b{font-size:11px}
.form-journey+form>section.card,.form-journey+form.card .section-title{scroll-margin-top:160px}
.stack{gap:22px}
.form-grid{gap:19px 20px}
.section-title{margin:20px 0 17px;padding-bottom:10px}

@media(max-width:1250px){
  .topbar{gap:11px;padding-left:18px;padding-right:18px}
  .brand{min-width:220px}.brand-mark.brand-mark-logo{width:116px;flex-basis:116px}.brand-mark.brand-mark-logo img{width:116px}
  .brand-title{font-size:14px}.brand-subtitle{display:none}
  .nav-main>a,.nav-menu>summary{padding:8px 9px;font-size:12px}
  .nav-main>a .ui-icon,.nav-menu>summary .ui-icon{width:15px;height:15px}
  .module-icon{width:35px;height:35px}
  .user-box>span{display:none}
}
@media(max-width:900px){
  .page{padding:28px 20px 56px}
  .page-head{align-items:flex-start}.card{padding:20px}
  .activity-panel>summary{align-items:flex-start;padding:18px}.activity-panel-body{padding:18px}
  .activity-panel-meta{align-items:flex-end;flex-direction:column}.activity-panel-meta>b{min-width:66px}
  .form-journey{position:static;margin-left:-2px;margin-right:-2px}.form-journey-title{display:none}
}
@media(max-width:640px){
  .page{padding:22px 13px 48px}.page-head{gap:18px;margin-bottom:22px}
  .page-head .row-actions,.page-head .head-actions{width:100%}
  .stat{min-height:102px}.card{padding:16px;margin-bottom:20px}
  .activity-panel{margin-bottom:20px}.activity-panel>summary{padding:15px;gap:12px}.activity-panel>summary h2{font-size:17px}.activity-panel>summary p{display:none}.activity-panel-body{padding:14px}
  .activity-panel-meta>span{display:none}.activity-panel-meta b{min-width:58px;padding:6px 8px}
  .form-journey{margin-bottom:17px;padding:7px}.form-journey a{padding:6px 8px}.form-journey a b{font-size:10px}
  .table-wrap td,.table-wrap th{padding-left:10px;padding-right:10px}
}
@media print{.activity-panel{break-inside:avoid}.activity-panel>summary{border-bottom:1px solid var(--line)}.activity-panel-body{display:block!important}.activity-panel-meta,.form-journey{display:none!important}}
/* SOLOD_AIRY_ACTIVITY_LAYOUT_END */
.copy-record-panel{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(420px,1.2fr);align-items:flex-end;gap:18px;border-left:4px solid var(--orange);background:linear-gradient(135deg,#fff,#fffaf2)}.copy-record-panel.embedded{display:grid;grid-template-columns:1fr;padding:16px;border:1px solid #f0d49a;border-left:4px solid var(--orange);border-radius:12px;background:#fffaf2}.copy-record-panel h2{margin:0 0 5px}.copy-record-panel p{margin:0;color:var(--muted);line-height:1.45}.copy-record-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:flex-end}.copy-record-note{grid-column:1/-1;padding:10px 12px;border-radius:8px;background:#eef7ff;color:#29465f;font-size:13px}@media(max-width:800px){.copy-record-panel{grid-template-columns:1fr}.copy-record-form{grid-template-columns:1fr}.copy-record-form .btn{width:100%}}
