@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";:root{--marine:#0f2b46;--marine-2:#16395c;--teal:#0e7490;--teal-soft:#e0f2f7;--bg:#eef2f6;--card:#ffffff;--line:#dbe3ec;--line-2:#c7d3e0;--ink:#1e293b;--ink-soft:#5b6b7d;--ink-faint:#8798aa;--amber:#b45309;--amber-bg:#fef3e2;--blue:#1d4ed8;--blue-bg:#e6edff;--green:#15803d;--green-bg:#e3f5ea;--danger:#b91c1c;--radius:10px;--shadow:0 1px 2px rgba(15,43,70,.06),0 4px 14px rgba(15,43,70,.05)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,Roboto,-apple-system,system-ui,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45}header.topbar{background:linear-gradient(180deg,var(--marine),var(--marine-2));color:#fff;padding:14px 22px 0}.brand{display:flex;align-items:center;gap:12px;margin-bottom:12px}.brand .logo{width:34px;height:34px;border-radius:8px;background:var(--teal);display:grid;place-items:center;font-weight:800;letter-spacing:.5px;font-size:13px}.brand h1{font-size:16px;margin:0;font-weight:700;letter-spacing:.3px}.brand small{display:block;color:#a9c2d6;font-weight:400;font-size:12px}.tabs{display:flex;gap:4px;overflow-x:auto}.tabs .tab{padding:9px 16px;border-radius:8px 8px 0 0;color:#b9cee0;font-weight:600;font-size:13px;white-space:nowrap;cursor:default;border:1px solid transparent;border-bottom:none}.tabs .tab.active{background:var(--bg);color:var(--marine);border-color:var(--line)}.tabs .tab.soon{opacity:.55;font-weight:500}.tabs .tab.soon:after{content:" · à définir";font-size:10px;color:#7d97ac}.wrap{max-width:1180px;margin:0 auto;padding:20px 22px 60px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card>.head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:#f8fafc}.card>.head h2{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.8px;color:var(--marine);display:flex;align-items:center;gap:8px}.card>.head .num{width:22px;height:22px;border-radius:6px;background:var(--marine);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}.card>.body{padding:16px}.grid{display:grid;grid-template-columns:1fr;gap:18px}.row{display:grid;gap:12px;grid-template-columns:repeat(4,1fr)}.row.three{grid-template-columns:repeat(3,1fr)}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field.wide{grid-column:1/-1}label{font-size:11.5px;font-weight:600;color:var(--ink-soft)}label .opt{color:var(--ink-faint);font-weight:400}input,select{width:100%;padding:8px 10px;border:1px solid var(--line-2);border-radius:8px;font:inherit;color:var(--ink);background:#fff}input:focus,select:focus{outline:2px solid var(--teal);outline-offset:-1px;border-color:var(--teal)}input::placeholder{color:#aab7c4}.btn{border:1px solid var(--line-2);background:#fff;color:var(--marine);padding:7px 13px;border-radius:8px;font:inherit;font-weight:600;font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:#f1f5f9}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn.primary:hover{background:#0b6076}.btn.ghost{border-style:dashed;color:var(--teal);width:100%;justify-content:center}.btn.sm{padding:4px 9px;font-size:11.5px}.btn.icon{padding:5px 8px;color:var(--danger);border-color:#f0d3d3}.btn.icon:hover{background:#fdeeee}.btn.danger{color:var(--danger);border-color:#f0d3d3}.btn.danger:hover{background:#fdeeee}.statut-choices{display:flex;gap:8px;flex-wrap:wrap}.statut-choices label{display:flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--line-2);border-radius:20px;cursor:pointer;font-weight:600;color:var(--ink-soft);font-size:12.5px}.statut-choices input{width:auto}.statut-choices label:has(input:checked){border-color:var(--marine);background:#f0f5fa;color:var(--marine)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.badge.attente{background:var(--amber-bg);color:var(--amber)}.badge.cours{background:var(--blue-bg);color:var(--blue)}.badge.termine{background:var(--green-bg);color:var(--green)}.client-card{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.client-card .c-head{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--teal-soft);border-bottom:1px solid var(--line)}.client-card .c-head .tag{background:var(--teal);color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;white-space:nowrap}.client-card .c-body{padding:12px}.subhead{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-faint);margin:14px 0 8px;display:flex;align-items:center;gap:8px}.subhead:after{content:"";flex:1;height:1px;background:var(--line)}table.mini{width:100%;border-collapse:collapse}table.mini th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint);font-weight:700;padding:4px 6px;border-bottom:1px solid var(--line)}table.mini td{padding:4px 6px;vertical-align:middle}table.mini input{padding:6px 8px;font-size:13px}table.mini .num-col{width:110px}table.mini td.act{width:34px;text-align:center}.tfoot{font-weight:700;color:var(--marine)}.tfoot td{border-top:2px solid var(--line-2);padding-top:8px}.totaux{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.tot-box{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px 14px}.tot-box .k{font-size:11px;color:var(--ink-faint);font-weight:600;text-transform:uppercase;letter-spacing:.4px}.tot-box .v{font-size:22px;font-weight:800;color:var(--marine);margin-top:2px}.tot-box .v small{font-size:12px;font-weight:600;color:var(--ink-soft)}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{background:var(--marine);color:#fff;text-align:left;padding:8px 10px;font-size:11.5px;font-weight:600}table.data th:first-child{border-radius:8px 0 0}table.data th:last-child{border-radius:0 8px 0 0}table.data td{padding:8px 10px;border-bottom:1px solid var(--line)}table.data tr:nth-child(2n) td{background:#f8fafc}table.data tr.tfoot td{background:#eef4f7;font-weight:700;color:var(--marine)}.empty-note{padding:22px;text-align:center;color:var(--ink-faint);background:#f8fafc;border:1px dashed var(--line-2);border-radius:10px;font-size:13px}.prog{height:12px;border-radius:20px;background:#e2e8f0;overflow:hidden;margin-top:8px}.prog>span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#12a3c0);border-radius:20px;transition:width .3s}.prog-lbl{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:6px}.kpi-ecart.pos{color:var(--green)}.kpi-ecart.neg{color:var(--danger)}.kpi-ecart.zero{color:var(--ink-soft)}.mini-prog{height:7px;border-radius:20px;background:#e2e8f0;overflow:hidden;margin-top:8px;max-width:260px}.mini-prog>span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#12a3c0)}.src-note{font-size:11px;color:var(--ink-faint);font-style:italic;margin-top:4px}.list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.list-head h2{margin:0;font-size:20px;color:var(--marine)}.list-head p{margin:2px 0 0;color:var(--ink-soft);font-size:13px}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.stat{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff;display:flex;align-items:center;gap:12px}.stat .dot{width:12px;height:12px;border-radius:50%}.stat.attente .dot{background:var(--amber)}.stat.cours .dot{background:var(--blue)}.stat.termine .dot{background:var(--green)}.stat .n{font-size:22px;font-weight:800;color:var(--marine)}.stat .l{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint);font-weight:700}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.chip{padding:6px 14px;border-radius:20px;border:1px solid var(--line-2);background:#fff;font-weight:600;font-size:12.5px;color:var(--ink-soft);cursor:pointer}.chip.on{background:var(--marine);border-color:var(--marine);color:#fff}.nav-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:14px 16px;margin-bottom:12px;cursor:pointer;transition:border-color .12s,transform .12s}.nav-card:hover{border-color:var(--teal);transform:translateY(-1px)}.nc-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.nc-name{font-size:16px;font-weight:800;color:var(--marine)}.nc-meta{color:var(--ink-soft);font-size:12.5px;margin:6px 0 10px}.nc-figs{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;color:var(--ink)}.nc-figs b{color:var(--marine);font-weight:800}.nc-figs .sep{color:var(--line-2)}.nc-go{margin-left:auto;color:var(--ink-faint);font-size:12px;font-weight:600}.bar-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}.gv-hero{background:linear-gradient(180deg,var(--marine),var(--marine-2));color:#fff;border-radius:var(--radius);padding:20px 22px;margin-bottom:18px}.gv-hero h2{margin:0;font-size:22px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gv-hero .meta{display:flex;gap:26px;flex-wrap:wrap;margin-top:14px;color:#b9cee0;font-size:11px;text-transform:uppercase;letter-spacing:.4px}.gv-hero .meta b{color:#fff;display:block;font-size:15px;font-weight:700;text-transform:none;letter-spacing:0;margin-top:2px}.gv-hero .badge{background:#ffffff2e;color:#fff}.gv-section{margin-bottom:22px}.gv-section>h3{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-faint);margin:0 0 10px;font-weight:700}.gv-client{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;overflow:hidden}.gv-client .h{background:#f8fafc;padding:10px 14px;font-weight:700;color:var(--marine);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.gv-client .h small{font-weight:600;color:var(--ink-soft)}.actions-bar{position:sticky;bottom:0;background:#eef2f6eb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-top:1px solid var(--line);padding:12px 22px;display:flex;justify-content:space-between;gap:10px;margin:18px -22px -60px}.devnote{margin-top:26px;border:1.5px dashed var(--teal);border-radius:var(--radius);background:linear-gradient(180deg,#f4fbfd,#fff)}.devnote .dn-head{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;color:var(--teal);font-weight:700;font-size:13px}.devnote .dn-body{padding:0 20px 18px;font-size:13.5px;line-height:1.6}.devnote h3{font-size:13px;color:var(--marine);margin:16px 0 6px;text-transform:uppercase;letter-spacing:.5px}.devnote ul{margin:6px 0;padding-left:20px}.devnote li{margin:4px 0}.devnote code{background:#eef4f7;color:var(--teal);padding:1px 6px;border-radius:5px;font-size:12.5px}.devnote .why{background:#fff7ed;border-left:3px solid var(--amber);padding:8px 12px;border-radius:0 8px 8px 0;margin:8px 0;color:#7a4a12}@media (max-width:820px){.row,.row.three,.totaux,.stat-row{grid-template-columns:1fr 1fr}}@media (max-width:520px){.row,.row.three,.totaux,.stat-row{grid-template-columns:1fr}}@media print{header.topbar .tabs,.bar-actions,#listView,#editView{display:none!important}body{background:#fff}.gv-hero,table.data th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}body{background:radial-gradient(1200px 500px at 100% -5%,#e8eef5 0%,var(--bg) 55%) fixed;color:#16283b;-webkit-font-smoothing:antialiased}h1,h2,.nc-name{font-feature-settings:"ss01"}.brand h1{letter-spacing:.4px}header.topbar{box-shadow:0 8px 24px #0b24402e;position:relative}header.topbar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--teal-2),transparent 60%)}.card,.nav-card{border-radius:14px;border-color:#e4ebf2}.card{box-shadow:0 1px 2px #0b24400a,0 10px 30px #0b24400f}.card>.head{background:linear-gradient(180deg,#fbfdfe,#f5f8fb)}.card>.head .num{background:linear-gradient(180deg,var(--marine-2),var(--marine));box-shadow:0 2px 6px #0b244040}.btn{border-radius:9px;transition:all .12s}.btn:hover{transform:translateY(-1px)}.btn.primary{box-shadow:0 4px 12px #0d7d9447;background:linear-gradient(180deg,#12a3c0,var(--teal))}.btn.primary:hover{box-shadow:0 6px 16px #0d7d9457}.stat{border-radius:14px;background:linear-gradient(180deg,#fff,#fbfdfe);box-shadow:0 6px 18px #0b24400d;border-color:#e4ebf2;position:relative;overflow:hidden;padding:16px}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.stat.cours:before{background:var(--blue)}.stat.attente:before{background:var(--amber)}.stat.termine:before{background:var(--green)}.stat .dot{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;opacity:1}.stat.cours .dot{background:var(--blue-bg)}.stat.attente .dot{background:var(--amber-bg)}.stat.termine .dot{background:var(--green-bg)}.stat .dot:after{content:"";width:12px;height:12px;border-radius:50%}.stat.cours .dot:after{background:var(--blue)}.stat.attente .dot:after{background:var(--amber)}.stat.termine .dot:after{background:var(--green)}.stat .n{font-size:26px;line-height:1}.nav-card{position:relative;padding-left:20px;box-shadow:0 4px 16px #0b24400f;border-color:#e4ebf2}.nav-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;border-radius:14px 0 0 14px;background:var(--line-2)}.nav-card.sc-cours:before{background:linear-gradient(180deg,var(--blue),#3b82f6)}.nav-card.sc-attente:before{background:linear-gradient(180deg,var(--amber),#d97706)}.nav-card.sc-termine:before{background:linear-gradient(180deg,var(--green),#22a35a)}.nav-card:hover{box-shadow:0 10px 26px #0b24401f}.nc-name{letter-spacing:.2px}.nc-go{opacity:0;transition:opacity .15s}.nav-card:hover .nc-go{opacity:1;color:var(--teal)}.gv-hero{border-radius:16px;box-shadow:0 14px 36px #0b244047;position:relative;overflow:hidden;background:linear-gradient(135deg,#0b2440,#164a72)}.gv-hero:after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(18,163,192,.35),transparent 70%)}.gv-hero h2{font-size:24px;letter-spacing:.3px;position:relative;z-index:1}.gv-hero .meta{position:relative;z-index:1}.gv-section>h3{display:flex;align-items:center;gap:8px}.gv-section>h3:before{content:"";width:14px;height:2px;border-radius:2px;background:var(--teal-2)}.tot-box{border-radius:12px;background:linear-gradient(180deg,#fff,#f7fafc);box-shadow:0 4px 14px #0b24400d;border-color:#e4ebf2}.tot-box .v{letter-spacing:.3px}.client-card{border-radius:12px}.client-card .c-head{background:linear-gradient(180deg,#e9f5f9,#deeef4)}.subhead{color:#6b7c8e}.subhead:after{background:linear-gradient(90deg,var(--line),transparent)}.prog,.mini-prog{background:#e6ecf3}.prog>span,.mini-prog>span{background:linear-gradient(90deg,var(--teal),#16b5d4)}.devnote{border-radius:14px;box-shadow:0 8px 24px #0d7d9414}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.toolbar label{font-weight:600;color:var(--ink-soft);font-size:12.5px}.toolbar select{max-width:280px;width:auto}.day-card{margin-bottom:14px}.day-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;background:linear-gradient(180deg,#fbfdfe,#f5f8fb);border-bottom:1px solid var(--line)}.day-date{font-size:16px;font-weight:800;color:var(--marine)}.day-date small{display:block;font-size:11px;color:var(--ink-faint);font-weight:600;text-transform:uppercase;letter-spacing:.4px}.day-tot{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-soft)}.day-tot b{color:var(--marine);font-weight:800}.shift-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line);cursor:pointer;flex-wrap:wrap}.shift-row:hover{background:#f8fafc}.shift-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:20px;font-weight:700;font-size:12px;white-space:nowrap}.shift-badge.jour{background:#fff4e0;color:#b45309}.shift-badge.nuit{background:#e7e9fb;color:#4338ca}.sr-nav{font-weight:700;color:var(--marine);min-width:120px}.sr-figs{display:flex;gap:16px;flex-wrap:wrap;margin-left:auto;align-items:center;font-size:13px}.sr-figs .lbl{color:var(--ink-faint);font-size:11px;text-transform:uppercase;letter-spacing:.3px;margin-right:4px}.sr-chev{color:var(--ink-faint);font-weight:700;transition:transform .15s}.shift-row.open .sr-chev{transform:rotate(90deg);color:var(--teal)}.detail-panel{padding:16px;background:#f6f9fb;border-top:1px solid var(--line)}.causes-box{margin-top:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.causes-head{padding:10px 14px;background:#fff;border-bottom:1px solid var(--line);font-weight:700;color:var(--marine);font-size:12.5px;display:flex;justify-content:space-between;align-items:center;gap:10px}.causes-head.neg{background:#fdecec;color:var(--danger)}.causes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:12px;background:#fff}.cause{border:1px solid var(--line-2);border-radius:9px;padding:9px 11px;background:#fff;transition:border-color .12s}.cause.on{border-color:var(--teal);background:var(--teal-soft)}.cause .top{display:flex;align-items:center;gap:8px;cursor:pointer}.cause .top input{width:auto}.cause .top span{font-weight:600;font-size:12.5px;color:var(--ink)}.cause .h{display:flex;align-items:center;gap:6px;margin-top:8px}.cause .h input{padding:5px 8px;font-size:12.5px}.cause .h .u{font-size:11px;color:var(--ink-faint);white-space:nowrap}.cause .prec{margin-top:6px}.cause .prec input{padding:5px 8px;font-size:12.5px}@media (max-width:640px){.causes-grid{grid-template-columns:1fr}}.recon{margin-top:10px;max-width:640px;padding:9px 13px;border-radius:9px;font-size:12.5px;font-weight:600}.recon.ok{background:var(--green-bg);color:var(--green)}.recon.warn{background:var(--amber-bg);color:var(--amber)}.recon.bad{background:#fdecec;color:var(--danger)}.recon.neutre{background:#f1f5f9;color:var(--ink-soft)}.rq-flag{background:var(--amber-bg);color:var(--amber);font-weight:700;font-size:11px;padding:2px 8px;border-radius:20px;white-space:nowrap}.ctot{margin-left:auto;background:#fff;border:1px solid var(--line);color:var(--marine);font-weight:700;font-size:11px;padding:1px 8px;border-radius:20px}.plages{margin-top:8px;display:flex;flex-direction:column;gap:6px}.plage{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.plage input[type=time]{padding:5px 7px;font-size:12.5px;width:auto}.plabel{font-size:11.5px;color:var(--ink-faint);font-weight:600}.pdur{font-size:12px;font-weight:700;color:var(--teal);min-width:44px}.mbrk{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}@media (max-width:720px){.mbrk{grid-template-columns:1fr}}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}.kpi{background:#fff;border-radius:10px;padding:14px 18px;box-shadow:0 1px 3px #00000012}.kpi .k{font-size:11px;color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin-bottom:4px}.kpi .v{font-size:24px;font-weight:700;color:var(--marine)}.kpi .v small{font-size:12px;font-weight:400;color:var(--muted,#6b7280)}.filt{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}.fg{display:flex;flex-direction:column;gap:5px}.fg label{font-size:12px;font-weight:600;color:#555}.fg input,.fg select{padding:7px 9px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:#fff}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}@media (max-width:820px){.grid2{grid-template-columns:1fr}}.cbar{height:8px;background:#e9ecef;border-radius:99px;overflow:hidden;min-width:60px;margin-top:3px}.cbar-fill{height:100%;border-radius:99px;background:var(--danger)}.cbar-fill.amber{background:var(--amber)}.cbar-fill.blue{background:var(--blue)}.pbar{height:6px;background:#e9ecef;border-radius:99px;overflow:hidden;width:70px}.pbar-fill{height:100%;border-radius:99px;background:var(--green)}.paybar{height:10px;background:#e9ecef;border-radius:99px;overflow:hidden;display:flex;margin-bottom:10px}.b2{font-size:11px;padding:3px 9px;border-radius:99px;font-weight:600}.b2.cours{background:#dbeafe;color:#1d4ed8}.b2.termine{background:#d1fae5;color:#065f46}.b2.attente{background:#fef3c7;color:#92400e}.livcard{border:1px solid var(--line);border-radius:12px;margin-bottom:14px;overflow:hidden;box-shadow:0 2px 8px #0b24400d}.lc-head{display:flex;align-items:center;gap:10px;padding:9px 13px;background:var(--teal-soft);border-bottom:1px solid var(--line)}.lc-head .tag{background:var(--teal);color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;white-space:nowrap}.lc-head .cli{font-weight:700;color:var(--marine)}.lc-body{padding:14px}.lc-body .subhead{margin:14px 0 8px}.ttbl{border-collapse:collapse;width:100%;max-width:340px}.ttbl th{font-size:10.5px;text-transform:uppercase;letter-spacing:.3px;color:var(--ink-faint);font-weight:700;padding:4px 6px;text-align:center}.ttbl td{padding:3px 5px}.ttbl td.lbl{font-size:12.5px;font-weight:600;color:var(--ink-soft);white-space:nowrap}.ttbl input{padding:6px 8px;font-size:13px;text-align:right;width:78px}.ttbl .auto{font-weight:800;color:var(--marine);text-align:right;font-size:13px;padding-right:10px}.liv-recon{margin-top:12px;max-width:760px;padding:10px 13px;border-radius:9px;font-size:12.5px;font-weight:600}.liv-recon.ok{background:var(--green-bg);color:var(--green)}.liv-recon.warn{background:var(--amber-bg);color:var(--amber)}.liv-recon.bad{background:#fdecec;color:var(--danger)}.liv-recon.neutre{background:#f1f5f9;color:var(--ink-soft)}.fin-banner{margin-bottom:16px;padding:11px 15px;border-radius:10px;background:#fdecec;color:var(--danger);font-weight:700;font-size:13px}.tr-acc{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.tr-hd{display:flex;align-items:center;gap:14px;padding:12px 16px;cursor:pointer;flex-wrap:wrap}.tr-hd:hover{background:#f8fafc}.tr-hd .nm{font-weight:700;color:var(--marine);font-size:14px;min-width:150px}.tr-hd .m{font-size:12px;display:flex;flex-direction:column;line-height:1.25}.tr-hd .m .k{font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);font-weight:700}.tr-hd .m .v{font-weight:700}.tr-hd .chev{margin-left:auto;color:var(--ink-faint);font-size:13px}.tr-bd{border-top:1px solid var(--line);padding:14px 16px;background:#fbfcfe}.tr-sub{font-size:12px;font-weight:700;color:var(--marine);margin:14px 0 6px;display:flex;align-items:center;gap:8px}table.trx{border-collapse:collapse;width:100%;font-size:12px;min-width:560px}table.trx th{background:#f8f9fa;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;font-size:10.5px;font-weight:700;padding:6px 8px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}table.trx th:first-child,table.trx td:first-child{text-align:left}table.trx td{padding:5px 8px;border-bottom:1px solid #f3f4f6;text-align:right}table.trx tfoot td{background:#f0f4fa;font-weight:700;color:var(--marine)}table.trx input,table.trx select{padding:4px 6px;border:1px solid var(--line);border-radius:6px;font-size:11px;background:#fff}.trx-num{width:96px;text-align:right}.tr-resume{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:14px}.tr-res{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 12px;text-align:center}.tr-res .k{font-size:10px;text-transform:uppercase;color:var(--ink-faint);font-weight:700}.tr-res .v{font-size:15px;font-weight:800;margin-top:3px}.pill{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:99px}.pill.att{background:#eef1f4;color:#5b6b7b}.pill.acc{background:var(--green-bg);color:var(--green)}.pill.cont{background:#fdecec;color:var(--danger)}.tr-dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}.tr-k{border-radius:12px;padding:14px 16px;box-shadow:0 1px 4px #00000012;color:#fff}.tr-k .kk{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;opacity:.85}.tr-k .kv{font-size:21px;font-weight:800;margin-top:4px}.tr-k .ks{font-size:11px;opacity:.8;margin-top:2px}.tr-bars{display:flex;flex-direction:column;gap:9px;margin-top:4px}.tr-barrow{display:flex;align-items:center;gap:10px;font-size:12px}.tr-barrow .lbl{min-width:135px;font-weight:600;color:var(--marine);cursor:pointer}.tr-barrow .lbl:hover{text-decoration:underline}.tr-bar{flex:1;height:18px;background:#eef1f5;border-radius:99px;overflow:hidden;position:relative}.tr-bar span{display:block;height:100%;border-radius:99px;transition:width .3s}.tr-barval{min-width:96px;text-align:right;font-weight:700}.tr-prog-wrap{margin:2px 0 6px}.tr-prog{height:12px;background:#eef1f5;border-radius:99px;overflow:hidden}.tr-prog span{display:block;height:100%;background:linear-gradient(90deg,#2d8a4e,#34a35c);border-radius:99px;transition:width .3s}.tr-prog-lbl{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-soft);margin-top:4px}.tr-sec{background:#fff;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:12px}.tr-sec.ant{border-left-color:#185fa5}.tr-sec.mq{border-left-color:#c0392b}.tr-sec.pay{border-left-color:#2d8a4e}.tr-sec.fac{border-left-color:#6d28d9}.tr-res .v small{font-size:11px;font-weight:600}.tr-acc{border-left:5px solid var(--line)}.tr-acc.owe{border-left-color:var(--danger)}.tr-acc.ok{border-left-color:var(--green)}.tr-acc.wait{border-left-color:var(--amber)}.dpsub{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--marine);margin:0 0 10px;display:flex;align-items:center;gap:8px}.depcard{border:none;border-radius:14px;margin-bottom:16px;overflow:hidden;box-shadow:0 2px 12px #0b244017;background:#fff}.dp-head{display:flex;align-items:center;gap:10px;padding:13px 16px;background:linear-gradient(90deg,#0d2137,#1a3a5c);color:#fff}.dp-head .who{font-weight:800;color:#fff;font-size:14px}.dp-head span{color:#ffffffd1!important}.dp-body{padding:16px;background:#eef1f5;display:flex;flex-direction:column;gap:14px}.dp-block{background:#fff;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:11px;padding:13px 15px}.dp-block.presta{border-left-color:#185fa5}.dp-block.fac{border-left-color:#6d28d9}.dp-block.dec{border-left-color:#c47a0a}.dp-block.pay{border-left-color:#2d8a4e}.dp-block .bt{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--marine);margin-bottom:11px;display:flex;align-items:center;gap:7px}.dp-block .row{margin:0}.dp-body .field label{font-size:10.5px;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-faint);font-weight:700}.dp-body .field input,.dp-body .field select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:#fff}.dbadge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;white-space:nowrap}.dbadge.attente{background:#ffffff38;color:#fff}.dbadge.accepte{background:var(--green-bg);color:var(--green)}.dbadge.refuse{background:#fdecec;color:var(--danger)}.ebox{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ebox .b{border-radius:10px;padding:11px 13px}.ebox .b.ant{background:#eef4fb}.ebox .b.reel{background:#f3ecfb}.ebox .b.ec{background:#f8fafc}.ebox .b .k{font-size:10.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.4px;font-weight:700}.ebox .b .v{font-size:17px;font-weight:800;color:var(--marine);margin-top:3px}.dp-prog{height:9px;background:#eef1f5;border-radius:99px;overflow:hidden;margin:2px 0 8px}.dp-prog span{display:block;height:100%;background:linear-gradient(90deg,#2d8a4e,#34a35c);border-radius:99px}.dbanner{margin-top:12px;padding:10px 13px;border-radius:9px;font-size:12.5px;font-weight:600}.dbanner.accepte{background:var(--green-bg);color:var(--green)}.dbanner.refuse{background:#fdecec;color:var(--danger)}.pbadge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}.pbadge.solde{background:var(--green-bg);color:var(--green)}.pbadge.partiel{background:var(--amber-bg,#fdf5e6);color:var(--amber)}.pbadge.nonpaye{background:#fdecec;color:var(--danger)}.dp-dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.dp-k{border-radius:12px;padding:14px 16px;box-shadow:0 1px 4px #00000012;color:#fff}.dp-k .kk{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;opacity:.85}.dp-k .kv{font-size:21px;font-weight:800;margin-top:4px}.dp-bars{display:flex;flex-direction:column;gap:10px}.dp-barrow{display:flex;align-items:center;gap:10px;font-size:12px}.dp-barrow .lbl{min-width:150px;font-weight:600;color:var(--marine);display:flex;align-items:center;gap:6px}.dp-bar{flex:1;height:20px;background:#eef1f5;border-radius:99px;overflow:hidden;position:relative}.dp-bar .fillbg{position:absolute;left:0;top:0;height:100%;border-radius:99px;opacity:.28}.dp-bar .fill{position:absolute;left:0;top:0;height:100%;border-radius:99px}.dp-barval{min-width:150px;text-align:right;font-size:11.5px}.dp-dot{width:11px;height:11px;border-radius:3px;display:inline-block}.dp-navcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:6px}.dp-navc{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 13px;box-shadow:0 1px 3px #0000000d}.dp-navc .nn{font-weight:700;color:var(--marine)}.dp-navc .prog{height:7px;background:#eef1f5;border-radius:99px;overflow:hidden;margin-top:6px}.dp-navc .prog span{display:block;height:100%;background:var(--green);border-radius:99px}.refsub{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-faint);margin:22px 0 8px;display:flex;align-items:center;gap:8px}.refsub:first-child{margin-top:0}.refsub:after{content:"";flex:1;height:1px;background:var(--line)}.trcard{border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin-bottom:10px;background:#fbfdfe}.trcard .tc-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}.trcard .tc-top input{max-width:260px;font-weight:700}.mat-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:20px}.mat-kpi{border-radius:9px;padding:12px 14px;text-align:center}.mat-kpi .ic{font-size:18px}.mat-kpi .lb{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:3px 0}.mat-kpi .vl{font-size:16px;font-weight:800}.mat-kpi .nl{font-size:10px;color:var(--ink-faint);margin-top:2px}.mat-kpi .tags{margin-top:5px;display:flex;flex-wrap:wrap;gap:3px;justify-content:center}.mat-kpi .tags span{font-size:9px;background:#fff9;padding:1px 5px;border-radius:4px}.mat-cat{border:1.5px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:16px}.mat-cat-head{padding:10px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px}.mat-cat-title{font-size:13px;font-weight:700}table.mat{border-collapse:collapse;width:100%;font-size:12px;min-width:640px}table.mat th{background:#f8f9fa;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;font-weight:700;padding:7px 9px;text-align:left;border-bottom:1px solid var(--line)}table.mat td{padding:5px 8px;border-bottom:1px solid #f3f4f6}table.mat tfoot td{background:#f0f4fa;font-weight:700;color:var(--marine)}table.mat input,table.mat select{padding:4px 6px;border:1px solid var(--line);border-radius:6px;font-size:11px;background:#fff}.mat-num{width:56px;text-align:right}.pal-diff{border-color:var(--amber)!important;background:#fff8e1}.pal-ret{margin-top:14px;border:1.5px solid #6ee7b7;border-radius:10px;overflow:hidden}.pal-ret-head{background:#f0fdf4;padding:9px 14px;font-size:12px;font-weight:700;color:var(--green)}.mat-navgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.mat-navcard{text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;box-shadow:0 1px 3px #0000000d;transition:.15s}.mat-navcard:hover{border-color:var(--blue);box-shadow:0 2px 8px #185fa51f}.act-card{background:#fff;border-radius:12px;box-shadow:0 1px 4px #00000014;overflow:hidden;margin-top:18px}.act-head{color:#fff;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.act-head .t{font-size:13.5px;font-weight:700}.act-head .s{font-size:11px;opacity:.75}.act-body{padding:16px 20px}.act-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}.act-fg{display:flex;flex-direction:column;gap:5px}.act-fg label{font-size:12px;font-weight:600;color:#555}.act-fg input,.act-fg select{padding:7px 9px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:#fff;min-width:170px}.act-note{font-size:11.5px;color:var(--ink-faint);margin-top:8px}@media print{#moduleNavire,#moduleManut,#moduleLiv,#modulePal,#moduleTr,#moduleDp,#moduleBd,#moduleAct,#moduleSempa{display:none!important}}:root{--marine:#0d2137;--marine-2:#185FA5;--teal:#185FA5;--teal-soft:#e8f4fd;--bg:#eef1f5;--card:#fff;--line:#e2e6ea;--line-2:#b5d4f4;--ink:#1a1a2e;--ink-soft:#6b7280;--ink-faint:#6b7280;--amber:#c47a0a;--amber-bg:#fef3c7;--blue:#185FA5;--blue-bg:#e8f4fd;--green:#2d8a4e;--green-bg:#d1fae5;--danger:#c0392b}body{font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;background:var(--bg)}.topbar{background:var(--marine)!important;color:#fff}.tabs .tab.active{background:var(--marine)!important;color:#fff!important}.card{border:none;border-radius:12px;box-shadow:0 1px 4px #00000012}.card .head h2{color:var(--marine);font-weight:600}.kpi,.tot-box{background:#fff;border:none!important;border-radius:10px;box-shadow:0 1px 3px #00000012}.kpi .k,.tot-box .k{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.kpi .v,.tot-box .v{color:var(--marine)}.data th,.nav-tbl th,table.mini th,.ttbl th{background:#f8f9fa!important;color:var(--ink-faint)!important;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700;border-bottom:1px solid var(--line)!important}.data td,.nav-tbl td{border-bottom:1px solid #f3f4f6}.tr-tot td,.data tfoot td,.nav-tbl tfoot td{background:#f0f4fa!important;color:var(--marine)!important}.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:#0d4a85}.stbadge,.dbadge,.pbadge,.badge{border-radius:99px;font-weight:600}.tabs a.tab,.tabs span.tab{text-decoration:none}.topbar-user{margin-left:auto;display:flex;align-items:center;gap:12px;color:#cfe0ee;font-size:12.5px;padding-bottom:12px}.topbar-user form{margin:0}.topbar-user button{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;padding:5px 12px;border-radius:8px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.topbar-user button:hover{background:#ffffff1f}.brand-row{display:flex;align-items:flex-start;gap:12px}.alert{padding:10px 14px;border-radius:9px;font-size:13px;font-weight:600;margin-bottom:16px}.alert.success{background:var(--green-bg);color:var(--green)}.alert.error{background:#fdecec;color:var(--danger)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 500px at 100% -5%,#e8eef5 0%,var(--bg) 55%) fixed;padding:20px}.login-card{width:100%;max-width:380px}.login-card .logo-row{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px}.login-card .logo-row .logo{width:46px;height:46px;border-radius:12px;background:var(--marine);color:#fff;display:grid;place-items:center;font-weight:800;font-size:15px}.login-card .logo-row h1{margin:0;font-size:17px;color:var(--marine)}.login-card .logo-row small{color:var(--ink-faint)}.login-card .field{margin-bottom:14px}.login-card .error{color:var(--danger);font-size:12px;margin-top:4px}.login-card .btn.primary{width:100%;justify-content:center;padding:10px}
