:root{
  --sidebar-bg:     #1A3A2E;
  --sidebar-hover:  #234B3B;
  --sidebar-active: #2D6A4F;
  --sidebar-text:   #C9D5CE;
  --bg:             #F5F0E6;
  --panel:          #FFFFFF;
  --panel2:         #FAF6EE;
  --primary:        #1F5C3F;
  --primary-hover:  #174A32;
  --primary-light:  #E8F0EB;
  --accent:         #C9A961;
  --accent-light:   #F7F0DE;
  --success:        #2D6A4F;
  --success-light:  #E3F0E8;
  --danger:         #C0392B;
  --danger-light:   #FBE9E7;
  --info:           #4A7FA4;
  --info-light:     #E5EEF5;
  --warn:           #B8860B;
  --warn-light:     #FBF3DC;
  --text:           #1A1A1A;
  --text2:          #4A4A4A;
  --muted:          #8A8578;
  --line:           #E5DDC8;
  --line2:          #EFE8D5;
  --radius:         10px;
  --radius-lg:      14px;
  --shadow:         0 2px 8px rgba(26,58,46,.06);
  --shadow-lg:      0 8px 24px rgba(26,58,46,.10);
  --font:           'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
  --paper:          #FFFEF9;
  --ink-on-primary: #FFFFFF;
  --ease:           cubic-bezier(.2,.8,.2,1);
  --chart-rec:      #2D6A4F;
  --chart-dep:      #C0392B;
  --chart-grid:     #EFE8D5;
  --chart-tick:     #8A8578;
  color-scheme: light;
}
*{box-sizing:border-box;margin:0;padding:0;font-family:var(--font)}
html,body{height:100%}
body{background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
.hidden{display:none !important}

/* ══════════════ LOGIN ══════════════ */
#login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:linear-gradient(135deg,#1A3A2E 0%,#234B3B 100%)}
.login-card{background:var(--panel);padding:44px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  width:100%;max-width:420px}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.login-brand .badge{width:44px;height:44px;background:var(--primary);color:#fff;
  border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem}
.login-brand h1{font-size:1.3rem;color:var(--text);letter-spacing:-0.3px;font-weight:800}
.login-brand h1 span{color:var(--accent)}
.login-card .sub{color:var(--muted);font-size:.85rem;margin-bottom:28px}
.login-card input{width:100%;padding:13px 16px;margin-bottom:14px;background:var(--panel2);
  border:1.5px solid var(--line);border-radius:var(--radius);color:var(--text);font-size:.95rem;transition:.15s;font-family:var(--font)}
.login-card input:focus{outline:none;border-color:var(--primary);background:var(--panel);
  box-shadow:0 0 0 3px rgba(31,92,63,.08)}
.login-card button{width:100%;padding:14px;background:var(--primary);border:0;border-radius:var(--radius);
  color:#fff;font-weight:600;cursor:pointer;font-size:.95rem;transition:.15s;font-family:var(--font)}
.login-card button:hover{background:var(--primary-hover)}
.err{color:var(--danger);font-size:.82rem;margin-top:10px;text-align:center;min-height:18px}
.demo-hint{margin-top:18px;font-size:.72rem;text-align:center;color:var(--muted);
  padding-top:16px;border-top:1px solid var(--line)}
.demo-hint b{color:var(--primary)}

/* ══════════════ LAYOUT ══════════════ */
.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh;transition:.25s}
.sidebar{background:var(--sidebar-bg);padding:22px 14px;display:flex;flex-direction:column;
  gap:4px;position:sticky;top:0;height:100vh;overflow-y:auto;transition:.25s}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 10px 22px;
  border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:16px}
.sidebar-brand .badge{width:42px;height:42px;background:var(--accent);color:var(--sidebar-bg);
  border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1rem;flex-shrink:0}
.sidebar-brand .info h1{font-size:.95rem;color:#fff;font-weight:800;letter-spacing:-0.2px}
.sidebar-brand .info h1 span{color:var(--accent)}
.sidebar-brand .info small{display:block;font-size:.62rem;color:var(--sidebar-text);
  letter-spacing:1.5px;margin-top:2px;font-weight:500}
.sidebar-section{padding:14px 12px 6px;font-size:.65rem;color:var(--sidebar-text);
  text-transform:uppercase;letter-spacing:1.3px;font-weight:600;opacity:.7}
.nav-btn{padding:10px 14px;border-radius:8px;background:transparent;border:0;color:var(--sidebar-text);
  text-align:left;cursor:pointer;font-size:.85rem;transition:.15s;display:flex;
  align-items:center;gap:11px;font-weight:500;width:100%;font-family:var(--font)}
.nav-btn:hover{background:var(--sidebar-hover);color:#fff}
.nav-btn.active{background:var(--sidebar-active);color:#fff;font-weight:600}
.nav-btn .ico{font-size:1rem;width:18px;text-align:center;flex-shrink:0}
.nav-btn .badge-mini{margin-left:auto;background:var(--danger);color:#fff;
  font-size:.65rem;padding:2px 7px;border-radius:10px;font-weight:700}
.nav-btn.logout{margin-top:auto;color:#FF9DA6;border-top:1px solid rgba(255,255,255,.08);
  margin-top:20px;padding-top:14px;border-radius:0}
.nav-btn.logout:hover{background:rgba(192,57,43,.2)}
.main{padding:28px 32px;overflow-y:auto;max-height:100vh}

/* ══════════════ TOPBAR ══════════════ */
.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px;gap:16px;flex-wrap:wrap}
.topbar-left h2{font-size:1.5rem;color:var(--text);letter-spacing:-0.4px;font-weight:700}
.topbar-left .sub{font-size:.8rem;color:var(--muted);margin-top:4px}
.topbar-left .sub b{color:var(--primary)}
.topbar-right{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.view-selector{padding:9px 16px;background:var(--primary);color:#fff;border:0;
  border-radius:var(--radius);font-size:.85rem;cursor:pointer;font-weight:600;font-family:var(--font)}
.view-selector:focus{outline:none}
.site-filter{padding:9px 14px;background:var(--panel);border:1.5px solid var(--line);color:var(--text);
  border-radius:var(--radius);font-size:.85rem;cursor:pointer;font-weight:500;font-family:var(--font)}
.site-filter:focus{outline:none;border-color:var(--primary)}

/* ══════════════ CARDS ══════════════ */
.card{background:var(--panel);padding:22px;border-radius:var(--radius-lg);
  border:1px solid var(--line);margin-bottom:20px;box-shadow:var(--shadow)}
.card h3{margin-bottom:18px;font-size:.95rem;display:flex;justify-content:space-between;
  align-items:center;color:var(--text);font-weight:700;letter-spacing:-0.2px;flex-wrap:wrap;gap:10px}
.card h3 .right{font-size:.75rem;color:var(--muted);font-weight:500;letter-spacing:0}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:1000px){.grid-2,.grid-3{grid-template-columns:1fr}}
@media(max-width:760px){
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;left:-260px;width:250px;transition:.25s;z-index:100}
  .sidebar.open{left:0}
  .main{padding:20px 16px}
}

/* ══════════════ KPI ══════════════ */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:22px}
.kpi{background:var(--panel);padding:20px;border-radius:var(--radius-lg);
  border:1px solid var(--line);position:relative;box-shadow:var(--shadow);transition:.2s}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.kpi .lbl{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.8px;
  font-weight:700;margin-bottom:8px}
.kpi .val{font-size:1.5rem;font-weight:800;color:var(--text);letter-spacing:-0.6px;
  font-variant-numeric:tabular-nums;line-height:1.2}
.kpi .sub{font-size:.75rem;color:var(--muted);margin-top:6px}
.kpi .icon{position:absolute;top:16px;right:16px;font-size:1.4rem;opacity:.25}
.kpi.green .val{color:var(--success)}
.kpi.red .val{color:var(--danger)}
.kpi.gold .val{color:var(--warn)}
.kpi.info .val{color:var(--info)}

/* ══════════════ FORM ══════════════ */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
label{font-size:.7rem;color:var(--muted);display:block;margin-bottom:6px;
  font-weight:700;text-transform:uppercase;letter-spacing:.5px}
input,select,textarea{width:100%;padding:11px 13px;background:var(--panel);
  border:1.5px solid var(--line);border-radius:var(--radius);color:var(--text);
  font-size:.9rem;transition:.15s;font-family:var(--font)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(31,92,63,.08)}
input::placeholder,textarea::placeholder{color:#B5AE9E}
textarea{resize:vertical;min-height:80px}
input:disabled{opacity:.6;cursor:not-allowed}

.btn{padding:11px 20px;background:var(--primary);border:0;border-radius:var(--radius);
  color:#fff;font-weight:600;cursor:pointer;font-size:.85rem;transition:.15s;
  font-family:var(--font);display:inline-flex;align-items:center;gap:8px;justify-content:center}
.btn:hover{background:var(--primary-hover);transform:translateY(-1px)}
.btn.ghost{background:var(--panel);color:var(--text);border:1.5px solid var(--line)}
.btn.ghost:hover{background:var(--panel2);border-color:var(--primary);color:var(--primary)}
.btn.success{background:var(--success)}
.btn.success:hover{background:#245039}
.btn.danger{background:var(--danger)}
.btn.danger:hover{background:#A32D21}
.btn.gold{background:var(--accent);color:var(--sidebar-bg);font-weight:700}
.btn.sm{padding:6px 12px;font-size:.75rem;border-radius:7px}
.btn.lg{padding:14px 26px;font-size:.95rem}

/* ══════════════ TABLE ══════════════ */
table{width:100%;border-collapse:collapse;font-size:.85rem}
th,td{padding:11px 13px;text-align:left;border-bottom:1px solid var(--line2)}
th{color:var(--muted);font-weight:700;font-size:.68rem;text-transform:uppercase;
  letter-spacing:.6px;background:var(--panel2)}
tr:hover td{background:var(--panel2)}
td.mono{font-variant-numeric:tabular-nums;font-weight:600}
.tag{padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:700;
  display:inline-block;letter-spacing:.3px}
.tag.recette{background:var(--success-light);color:var(--success)}
.tag.depense{background:var(--danger-light);color:var(--danger)}
.tag.achat{background:var(--warn-light);color:var(--warn)}
.tag.retrait{background:var(--info-light);color:var(--info)}
.tag.charge{background:var(--warn-light);color:var(--warn)}
.tag.annule{background:var(--panel2);color:var(--muted);text-decoration:line-through}
.amount{font-variant-numeric:tabular-nums;font-weight:700}
.amount.pos{color:var(--success)}
.amount.neg{color:var(--danger)}

/* ══════════════ ADMIN CARDS ══════════════ */
.admin-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 16px;display:flex;justify-content:space-between;align-items:center;
  gap:12px;transition:.15s;margin-bottom:8px}
.admin-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}
.admin-card .info{flex:1}
.admin-card .info .title{font-weight:600;font-size:.9rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-card .info .sub{font-size:.78rem;color:var(--muted);margin-top:4px}
.admin-card .actions-mini{display:flex;gap:6px;flex-shrink:0}
.icon-btn{background:transparent;border:1px solid var(--line);border-radius:6px;
  width:32px;height:32px;cursor:pointer;font-size:.9rem;transition:.15s;
  display:flex;align-items:center;justify-content:center;font-family:var(--font)}
.icon-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.icon-btn.danger:hover{background:var(--danger);border-color:var(--danger)}

/* ══════════════ TOAST ══════════════ */
.toasts{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;align-items:flex-end;pointer-events:none}
.toast{position:relative;background:var(--panel);padding:14px 20px;
  border-radius:12px;box-shadow:0 10px 32px rgba(26,58,46,.18);
  font-weight:600;font-size:.88rem;z-index:9999;opacity:0;transform:translateX(400px);
  transition:.3s cubic-bezier(.4,0,.2,1);border-left:4px solid var(--success);max-width:380px}
.toast.show{opacity:1;transform:translateX(0)}
.toast-error{border-left-color:var(--danger);color:var(--danger)}
.toast-warn{border-left-color:var(--warn);color:var(--warn)}
.toast-info{border-left-color:var(--info);color:var(--info)}

/* ══════════════ ALERTES ══════════════ */
.alert{padding:14px 18px;border-radius:var(--radius);margin-bottom:16px;
  font-size:.85rem;font-weight:500;display:block;line-height:1.55}
.alert > span:first-child{margin-right:6px}
.alert.warn{background:var(--warn-light);color:var(--warn);border-left:4px solid var(--warn)}
.alert.info{background:var(--info-light);color:var(--info);border-left:4px solid var(--info)}
.alert.ok{background:var(--success-light);color:var(--success);border-left:4px solid var(--success)}
.alert.danger{background:var(--danger-light);color:var(--danger);border-left:4px solid var(--danger)}

/* ══════════════ ALERTES INTELLIGENTES ══════════════ */
.alert-list{display:flex;flex-direction:column;gap:8px}
.alert-item{padding:10px 14px;border-radius:8px;font-size:.83rem;display:block;line-height:1.5}
.alert-item a{color:inherit;font-weight:700;margin-left:6px}
.alert-item.danger{background:var(--danger-light);color:var(--danger)}
.alert-item.warn{background:var(--warn-light);color:var(--warn)}
.alert-item.ok{background:var(--success-light);color:var(--success)}

/* ══════════════ MODAL ══════════════ */
.modal{position:fixed;inset:0;background:rgba(26,58,46,.55);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}
.modal-content{background:var(--panel);padding:28px;border-radius:var(--radius-lg);
  max-width:560px;width:100%;border:1px solid var(--line);box-shadow:var(--shadow-lg);
  max-height:90vh;overflow-y:auto}
.modal-content h3{margin-bottom:18px;color:var(--primary);font-size:1.05rem;font-weight:700}
.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}
.actions.left{justify-content:flex-start}

/* ══════════════ TABS ══════════════ */
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:22px;overflow-x:auto}
.tab{padding:10px 16px;background:transparent;border:0;border-bottom:3px solid transparent;
  cursor:pointer;font-weight:600;color:var(--muted);font-size:.82rem;transition:.15s;
  white-space:nowrap;margin-bottom:-2px;font-family:var(--font)}
.tab:hover{color:var(--primary)}
.tab.active{color:var(--primary);border-bottom-color:var(--primary)}

/* ══════════════ CHART ══════════════ */
.chart-box{position:relative;height:280px}

/* ══════════════ COMPTE EN T ══════════════ */
.compte-t{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--text);
  border-radius:var(--radius-lg);overflow:hidden;background:var(--panel)}
.compte-t .col{padding:20px}
.compte-t .col.debit{border-right:2px solid var(--text);background:var(--danger-light)}
.compte-t .col.credit{background:var(--success-light)}
.compte-t h4{font-size:.78rem;text-transform:uppercase;letter-spacing:1px;
  margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.15);
  font-weight:800;color:var(--text)}
.compte-t .row{display:flex;justify-content:space-between;padding:7px 0;
  border-bottom:1px dotted rgba(0,0,0,.1);font-size:.85rem}
.compte-t .row .v{font-weight:700;font-variant-numeric:tabular-nums}
.compte-t .row .v.neg{color:var(--danger)}
.compte-t .row .v.pos{color:var(--success)}
.compte-t .total{margin-top:14px;padding-top:14px;border-top:2px solid var(--text);
  display:flex;justify-content:space-between;font-weight:800;font-size:1rem}
.compte-t .solde-final{grid-column:1/-1;background:var(--sidebar-bg);color:#fff;
  padding:18px;text-align:center}
.compte-t .solde-final .lbl{font-size:.7rem;font-weight:600;opacity:.7;
  display:block;margin-bottom:4px;letter-spacing:1.5px;text-transform:uppercase}
.compte-t .solde-final .val{font-size:1.6rem;font-weight:800;letter-spacing:-0.5px}
.compte-t .solde-final .pos{color:#7BE0B0}
.compte-t .solde-final .neg{color:#FF9DA6}

/* ══════════════ RAPPORT PAPIER ══════════════ */
.rapport-paper{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:32px;font-family:'Georgia',serif;box-shadow:var(--shadow);max-width:900px;margin:0 auto}
.rapport-paper .header{text-align:center;padding-bottom:18px;border-bottom:2px solid var(--primary);margin-bottom:24px}
.rapport-paper .header h1{font-size:1.4rem;color:var(--primary);letter-spacing:.5px;font-weight:800}
.rapport-paper .header .sub{color:var(--muted);font-size:.85rem;margin-top:6px;font-family:var(--font)}
.rapport-paper h2{font-size:1rem;color:var(--primary);margin:22px 0 12px;
  padding-bottom:6px;border-bottom:1px solid var(--line);letter-spacing:.5px;font-weight:700}
.rapport-paper .ligne{display:flex;justify-content:space-between;padding:7px 0;
  border-bottom:1px dotted var(--line2);font-size:.9rem;font-family:var(--font)}
.rapport-paper .ligne .val{font-variant-numeric:tabular-nums;font-weight:700;font-family:var(--font)}
.rapport-paper .ligne .val.neg{color:var(--danger)}
.rapport-paper .ligne .val.pos{color:var(--success)}
.rapport-paper .total{display:flex;justify-content:space-between;padding:10px 14px;
  margin-top:8px;background:var(--panel2);border-left:4px solid var(--primary);
  font-weight:800;font-size:.95rem;font-family:var(--font);border-radius:6px}
.rapport-paper .total.final{background:var(--sidebar-bg);color:#fff;border-left-color:var(--accent);
  font-size:1.05rem;margin-top:16px}
.rapport-paper .total.final .val{color:var(--accent)}

/* ══════════════ SAISIE ══════════════ */
.qtype-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}
@media(max-width:760px){.qtype-tabs{grid-template-columns:1fr 1fr}}
.qtype{padding:16px 14px;border:2px solid var(--line);background:var(--panel);
  border-radius:var(--radius-lg);cursor:pointer;font-weight:700;font-size:.88rem;
  color:var(--text2);transition:.15s;font-family:var(--font);text-align:left;
  display:flex;flex-direction:column;gap:4px}
.qtype .t{display:flex;align-items:center;gap:8px;font-size:.95rem}
.qtype .d{font-size:.72rem;font-weight:500;color:var(--muted)}
.qtype:hover{border-color:var(--accent)}
.qtype.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.qtype.active .d{color:rgba(255,255,255,.75)}
.qform-2col{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}
@media(max-width:900px){.qform-2col{grid-template-columns:1fr}}
.amount-display{background:var(--panel2);border:1.5px solid var(--line);
  border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;display:flex;
  justify-content:space-between;align-items:center}
.amount-display .val{font-size:2rem;font-weight:800;color:var(--primary);
  letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1}
.amount-display .cur{color:var(--muted);font-weight:600;font-size:.95rem}
.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.numpad button{padding:16px;font-size:1.15rem;font-weight:700;background:var(--panel);
  border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer;
  transition:.1s;color:var(--text);font-family:var(--font)}
.numpad button:hover{background:var(--panel2);border-color:var(--accent)}
.numpad button:active{transform:scale(.95)}
.numpad button.op{background:var(--accent-light);color:var(--warn);border-color:var(--accent)}
.numpad button.ok{background:var(--success);color:#fff;border-color:var(--success);grid-column:span 2}
.upload-zone{border:2px dashed var(--line);border-radius:var(--radius);
  padding:22px;text-align:center;cursor:pointer;transition:.15s;background:var(--panel2)}
.upload-zone:hover{border-color:var(--primary);background:var(--panel)}
.upload-zone.has-img{border-style:solid;border-color:var(--success);padding:10px;background:var(--panel)}
.upload-zone img{max-width:100%;max-height:160px;border-radius:8px}
.upload-zone .ph{color:var(--muted);font-size:.82rem}
.upload-zone .ph .ico{font-size:1.8rem;display:block;margin-bottom:6px;opacity:.5}
.side-info{background:var(--sidebar-bg);color:#fff;border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}
.side-info h4{font-size:.7rem;text-transform:uppercase;letter-spacing:1.2px;
  color:var(--sidebar-text);font-weight:700;margin-bottom:10px}
.side-info .big{font-size:1.7rem;font-weight:800;color:var(--accent);
  letter-spacing:-0.8px;font-variant-numeric:tabular-nums;line-height:1.1}
.side-info .sub{font-size:.75rem;color:var(--sidebar-text);margin-top:8px;line-height:1.4}
.side-controls{background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px}
.side-controls h4{font-size:.7rem;text-transform:uppercase;letter-spacing:1.2px;
  color:var(--muted);font-weight:700;margin-bottom:12px}
.side-controls .ctrl{display:flex;gap:10px;align-items:flex-start;
  font-size:.8rem;color:var(--text2);margin-bottom:10px;line-height:1.4}
.side-controls .ctrl .check{color:var(--success);font-weight:700;flex-shrink:0}

/* ══════════════ MODE FOCUS ══════════════ */
body.focus-mode .sidebar{transform:translateX(-100%);margin-left:-250px}
body.focus-mode .app{grid-template-columns:1fr}
.focus-toggle{position:fixed;bottom:20px;right:20px;z-index:100;
  background:var(--primary);color:#fff;border:0;border-radius:50%;
  width:48px;height:48px;cursor:pointer;font-size:1.2rem;box-shadow:var(--shadow-lg);
  display:flex;align-items:center;justify-content:center;transition:.2s}
.focus-toggle:hover{transform:scale(1.1)}

/* ══════════════ RECHERCHE GLOBALE ══════════════ */
.global-search{position:fixed;inset:0;background:rgba(26,58,46,.55);backdrop-filter:blur(6px);
  z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding-top:120px}
.global-search-inner{background:var(--panel);border-radius:16px;width:100%;max-width:600px;
  box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}
.global-search-input{width:100%;padding:20px 24px;font-size:1.05rem;border:0;
  border-bottom:1px solid var(--line);outline:none;font-family:var(--font)}
.global-search-results{max-height:400px;overflow-y:auto}
.search-result{padding:14px 24px;cursor:pointer;border-bottom:1px solid var(--line2);
  transition:.1s;display:flex;align-items:center;gap:12px}
.search-result:hover,.search-result.selected{background:var(--panel2)}
.search-result .ico{font-size:1.2rem;width:30px;text-align:center}
.search-result .txt{flex:1}
.search-result .txt .t{font-weight:600;font-size:.9rem}
.search-result .txt .s{font-size:.78rem;color:var(--muted);margin-top:2px}

/* ══════════════ BADGES ADMIN ══════════════ */
.role-badge{padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.5px}
.role-badge.admin{background:var(--accent-light);color:var(--warn)}
.role-badge.manager{background:var(--info-light);color:var(--info)}
.role-badge.caissier{background:var(--success-light);color:var(--success)}
.role-badge.lecteur{background:var(--panel2);color:var(--muted)}
.badge{padding:3px 10px;border-radius:6px;background:var(--panel2);
  font-size:.7rem;color:var(--muted);font-weight:600;display:inline-block;margin:2px}
.badge.gold{background:var(--accent-light);color:var(--warn)}
.badge.green{background:var(--success-light);color:var(--success)}
.badge.red{background:var(--danger-light);color:var(--danger)}

/* ══════════════ BUDGET BAR ══════════════ */
.budget-bar{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.budget-row{display:grid;grid-template-columns:120px 1fr 130px 80px;gap:12px;align-items:center;
  padding:8px 0;border-bottom:1px solid var(--line2)}
.budget-row:last-child{border-bottom:0}
.budget-row .name{font-weight:600;font-size:.85rem}
.budget-row .bar-wrap{background:var(--panel2);height:22px;border-radius:6px;overflow:hidden}
.budget-row .bar-fill{height:100%;border-radius:6px;transition:.3s}
.budget-row .bar-fill.ok{background:var(--success)}
.budget-row .bar-fill.warn{background:var(--warn)}
.budget-row .bar-fill.over{background:var(--danger)}
.budget-row .montant{font-variant-numeric:tabular-nums;font-size:.82rem;text-align:right}
.budget-row .pct{text-align:right;font-weight:700;font-size:.82rem}
.budget-row .pct.ok{color:var(--success)}
.budget-row .pct.warn{color:var(--warn)}
.budget-row .pct.over{color:var(--danger)}

/* ══════════════ AUDIT ══════════════ */
.audit{max-height:500px;overflow-y:auto;font-size:.82rem}
.audit-item{padding:10px 14px;border-bottom:1px solid var(--line2);color:var(--muted);
  transition:.1s;border-radius:6px}
.audit-item:hover{background:var(--panel2)}
.audit-item b{color:var(--text)}
.mt-2{margin-top:20px}
.mb-2{margin-bottom:20px}
.flex-between{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}

/* ══════════════════════════════════════════════════════════════
   v3 — AJOUTS : mobile, journal, synchro, impression
   ══════════════════════════════════════════════════════════════ */
.nav-btn.util{color:var(--sidebar-text)}
.mobile-bar{display:none}
.bottom-nav{display:none}
.sidebar-backdrop{display:none}
.sync{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;color:var(--muted);font-weight:600}
.sync .dot{width:8px;height:8px;border-radius:50%;background:var(--success)}
.sync.off .dot{background:var(--danger)}
.sync.busy .dot{background:var(--warn)}
.icon-top{padding:9px 12px;background:var(--panel);border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer;font-size:.9rem}
.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#fff;
  background:linear-gradient(135deg,#1A3A2E 0%,#234B3B 100%);font-weight:600;flex-direction:column;gap:14px}
.spinner{width:34px;height:34px;border:3px solid rgba(255,255,255,.25);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Chips « saisie rapide » */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.chip{padding:8px 14px;border-radius:20px;border:1.5px solid var(--line);background:var(--panel);cursor:pointer;
  font-size:.8rem;font-weight:600;color:var(--text2);font-family:var(--font)}
.chip:hover{border-color:var(--accent)}
.chip.active{background:var(--accent-light);border-color:var(--accent);color:var(--warn)}

/* Journal quotidien */
.jr-head{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}
.jr-head .grow{flex:1;min-width:160px}
.jr-date{display:flex;gap:6px;align-items:center}
.jr-date input{min-width:150px}
.jr-status{padding:12px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:.88rem;font-weight:600;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.jr-status.vide{background:var(--panel2);color:var(--muted)}
.jr-status.brouillon{background:var(--warn-light);color:var(--warn)}
.jr-status.valide{background:var(--success-light);color:var(--success)}
.jr-status .btn{margin-left:auto}
.jr-days{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:16px}
.jr-day{flex:0 0 auto;padding:8px 10px;border-radius:10px;border:1.5px solid var(--line);background:var(--panel);cursor:pointer;
  text-align:center;font-size:.72rem;font-weight:600;color:var(--text2);min-width:58px;font-family:var(--font)}
.jr-day b{display:block;font-size:.95rem;color:var(--text)}
.jr-day.sel{border-color:var(--primary);box-shadow:0 0 0 2px rgba(31,92,63,.15)}
.jr-day.valide{background:var(--success-light)}
.jr-day.brouillon{background:var(--warn-light)}
.jr-rec{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.money{font-variant-numeric:tabular-nums;font-weight:700;font-size:1.05rem;text-align:right}
.jr-dep{display:grid;grid-template-columns:1.3fr 1fr 1.3fr 36px;gap:8px;margin-bottom:8px;align-items:center}
.jr-dep .del{height:40px;width:36px;border-radius:8px;border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--danger);font-size:1rem}
.jr-totaux{margin-top:20px;background:var(--sidebar-bg);color:#fff;border-radius:12px;padding:14px 18px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.jr-totaux .l{font-size:.65rem;text-transform:uppercase;letter-spacing:1px;opacity:.7;font-weight:700}
.jr-totaux .v{font-size:1.1rem;font-weight:800;font-variant-numeric:tabular-nums}
.jr-totaux .v.acc{color:var(--accent)}
.jr-controle{margin-top:16px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.jr-controle .row{display:flex;justify-content:space-between;padding:4px 0;font-size:.88rem}
.jr-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.jr-actions .btn{flex:1;min-width:150px}
.saved-hint{font-size:.75rem;color:var(--muted);margin-top:8px;min-height:18px}
.list-mini .it{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px dotted var(--line);font-size:.85rem}
.list-mini .it:last-child{border-bottom:0}
.check-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.check-list label{display:flex;gap:8px;align-items:center;text-transform:none;font-weight:500;font-size:.85rem;color:var(--text);letter-spacing:0;margin:0}
.check-list input{width:auto}
.week-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);
  border-radius:10px;margin-bottom:8px;flex-wrap:wrap}

/* ══════════════ MOBILE ══════════════ */
@media(max-width:760px){
  body{font-size:15px}
  .mobile-bar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:90;background:var(--sidebar-bg);
    color:#fff;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top))}
  .mobile-bar .burger{background:transparent;border:0;color:#fff;font-size:1.4rem;cursor:pointer;padding:4px 8px}
  .mobile-bar .t{font-weight:700;font-size:1rem;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-bar .s{font-size:1.1rem;background:transparent;border:0;color:#fff;cursor:pointer;padding:4px 8px}
  .sidebar{top:0;height:100%;height:100dvh}
  .sidebar-backdrop.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:99}
  .main{max-height:none;overflow-y:visible;overflow-x:clip;min-width:0;padding:16px 14px calc(90px + env(safe-area-inset-bottom))}
  .topbar{margin-bottom:16px}
  .topbar-left h2{display:none}
  .topbar-right{width:100%}
  .topbar-right select{flex:1;min-width:0}
  .bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:95;
    background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -4px 16px rgba(0,0,0,.06)}
  .bottom-nav button{background:transparent;border:0;padding:8px 2px 9px;font-size:.66rem;font-weight:600;color:var(--muted);
    display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;font-family:var(--font)}
  .bottom-nav button .i{font-size:1.25rem}
  .bottom-nav button.active{color:var(--primary)}
  .bottom-nav button.plus .i{background:var(--primary);color:#fff;width:40px;height:40px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;margin-top:-18px;box-shadow:0 4px 12px rgba(31,92,63,.35)}
  .focus-toggle{display:none}
  input,select,textarea{font-size:16px}
  .card{padding:16px;border-radius:12px}
  .kpis{grid-template-columns:1fr 1fr;gap:10px}
  .kpi{padding:14px}
  .kpi .val{font-size:1.1rem}
  .kpi .icon{display:none}
  table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .compte-t{grid-template-columns:1fr}
  .compte-t .col.debit{border-right:0;border-bottom:2px solid var(--text)}
  .budget-row{grid-template-columns:1fr 1fr;gap:6px}
  .budget-row .bar-wrap{grid-column:1/-1;order:3}
  .rapport-paper{padding:18px}
  .modal{align-items:flex-end;padding:0}
  .modal-content{border-radius:16px 16px 0 0;max-height:92vh;padding:22px 18px calc(22px + env(safe-area-inset-bottom))}
  .jr-dep{grid-template-columns:1fr 1fr 36px}
  .jr-dep .desc{grid-column:1/3}
  .jr-totaux{position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));z-index:5;padding:10px 12px}
  .jr-totaux .v{font-size:.95rem}
  .numpad button{padding:18px 10px}
  .global-search{padding-top:20px}
  .qtype{padding:12px 10px}
  .qtype-tabs{grid-template-columns:repeat(3,1fr)}
  .qtype .d{display:none}
  .check-list{grid-template-columns:1fr}
  .toasts{left:12px;right:12px;top:12px;align-items:stretch}
  .toast{max-width:none;transform:translateY(-120px)}
  .toast.show{transform:translateY(0)}
}

/* ══════════════ IMPRESSION ══════════════ */
@media print{
  .sidebar,.topbar,.mobile-bar,.bottom-nav,.focus-toggle,.no-print,#view-rapportHebdo>.card{display:none !important}
  .app{display:block}
  .main{padding:0;max-height:none;overflow:visible}
  body{background:var(--panel)}
  .rapport-paper{box-shadow:none;border:0;max-width:none}
}

/* ══════════════════════════════════════════════════════════════
   v3.1 — THÈME SOMBRE, ANIMATIONS, NOUVEAUX MODULES
   ══════════════════════════════════════════════════════════════ */
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg:#0F1512; --panel:#18201C; --panel2:#1F2924; --paper:#1B231F;
  --text:#ECEFEA; --text2:#C4CBC5; --muted:#8F9A92; --line:#2C3832; --line2:#25302A;
  --primary:#3E8E66; --primary-hover:#47A075; --primary-light:rgba(62,142,102,.16);
  --accent:#D4B46E; --accent-light:rgba(212,180,110,.14);
  --success:#56C08C; --success-light:rgba(86,192,140,.13);
  --danger:#EE6B5E; --danger-light:rgba(238,107,94,.13);
  --info:#74AEDB; --info-light:rgba(116,174,219,.13);
  --warn:#E5B650; --warn-light:rgba(229,182,80,.13);
  --sidebar-bg:#0B110E; --sidebar-hover:#16211B; --sidebar-active:#1F4A35;
  --shadow:0 1px 2px rgba(0,0,0,.35); --shadow-lg:0 10px 30px rgba(0,0,0,.45);
  --chart-rec:#56C08C; --chart-dep:#EE6B5E; --chart-grid:#26312B; --chart-tick:#8F9A92;
}
:root[data-theme="dark"] input::placeholder,:root[data-theme="dark"] textarea::placeholder{color:#5E6A62}
:root[data-theme="dark"] .compte-t{border-color:var(--line)}
:root[data-theme="dark"] .compte-t .col.debit{border-right-color:var(--line)}
:root[data-theme="dark"] .compte-t h4,:root[data-theme="dark"] .compte-t .total{border-color:var(--line)}
:root[data-theme="dark"] .mobile-bar{background:var(--sidebar-bg)}
body,.card,.kpi,input,select,textarea,.btn,.sidebar{transition:background-color .25s,border-color .25s,color .25s}

/* ── Animations ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.96);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes sheet{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes drain{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes ringIn{from{stroke-dashoffset:var(--c)}}
.view-enter{animation:fadeUp .32s var(--ease) both}
.view-enter .card,.view-enter .kpi{animation:fadeUp .4s var(--ease) both}
.view-enter .kpi:nth-child(2),.view-enter .card:nth-child(2){animation-delay:.04s}
.view-enter .kpi:nth-child(3),.view-enter .card:nth-child(3){animation-delay:.08s}
.view-enter .kpi:nth-child(4),.view-enter .card:nth-child(4){animation-delay:.12s}
.modal:not(.hidden) .modal-content{animation:pop .22s var(--ease) both}
.global-search:not(.hidden) .global-search-inner{animation:pop .2s var(--ease) both}
.btn:active,.qtype:active,.chip:active,.nav-btn:active,.jr-day:active,.bottom-nav button:active{transform:scale(.97)}
.btn:focus-visible,.chip:focus-visible,.nav-btn:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sync.busy .dot{animation:pulse 1s infinite}
.toast{overflow:hidden;background:var(--panel);color:var(--text)}
.toast::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:currentColor;opacity:.25;transform-origin:left;animation:drain 3.2s linear forwards}
.toast-error::after{animation-duration:5s}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}

/* ── Barre du haut : actions compactes ── */
.top-actions{display:flex;gap:8px;align-items:center}
.icon-top{background:var(--panel);color:var(--text);display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.82rem}
.icon-top:hover{border-color:var(--primary)}
.outbox{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;background:var(--warn-light);color:var(--warn);font-weight:700;font-size:.72rem;cursor:pointer}
.outbox.hidden{display:none}
.nav-btn{position:relative}
.nav-btn.active::before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--accent)}

/* ── KPI enrichis ── */
.kpi .delta{display:inline-flex;align-items:center;gap:3px;font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:12px;margin-top:8px}
.kpi .delta.up{background:var(--success-light);color:var(--success)}
.kpi .delta.down{background:var(--danger-light);color:var(--danger)}
.kpi .delta.flat{background:var(--panel2);color:var(--muted)}
.kpi .spark{position:absolute;right:14px;bottom:14px;width:84px;height:28px;opacity:.9}
.kpi .spark path.l{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kpi .spark path.a{opacity:.12}
.kpi.has-spark .sub{max-width:calc(100% - 90px)}

/* ── Le point du jour ── */
.brief{background:linear-gradient(135deg,var(--sidebar-bg),#234B3B);color:#fff;border-radius:var(--radius-lg);padding:22px 24px;margin-bottom:20px;position:relative;overflow:hidden}
:root[data-theme="dark"] .brief{background:linear-gradient(135deg,#0B110E,#173427)}
.brief::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(201,169,97,.25),transparent 70%)}
.brief .hello{font-size:.78rem;letter-spacing:1.2px;text-transform:uppercase;opacity:.7;font-weight:700}
.brief h3{font-size:1.25rem;margin:4px 0 14px;font-weight:800;letter-spacing:-.3px;color:#fff}
.brief h3 span{color:var(--accent)}
.brief ul{list-style:none;display:grid;gap:8px;position:relative;z-index:1}
.brief li{font-size:.88rem;line-height:1.45;display:flex;gap:10px;color:rgba(255,255,255,.9)}
.brief li b{color:#fff}
.brief li .i{flex-shrink:0;width:22px;text-align:center}
.brief .good{color:#7BE0B0}.brief .bad{color:#FF9DA6}
.brief-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;position:relative;z-index:1}
.brief-actions .btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#fff}
.brief-actions .btn:hover{background:rgba(255,255,255,.2)}

/* ── Objectifs (anneaux) ── */
.goals{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.goal{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.goal svg{width:54px;height:54px;flex-shrink:0;transform:rotate(-90deg)}
.goal circle{fill:none;stroke-width:6}
.goal .bgc{stroke:var(--panel2)}
.goal .fg{stroke-linecap:round;transition:stroke-dashoffset .9s var(--ease);animation:ringIn 1s var(--ease)}
.goal .t{font-size:.78rem;font-weight:700;line-height:1.25}
.goal .v{font-size:.72rem;color:var(--muted);margin-top:2px}
.goal .p{font-size:1rem;font-weight:800}

/* ── À vérifier (anomalies) ── */
.anom{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px dashed var(--line);font-size:.85rem;cursor:pointer}
.anom:last-child{border-bottom:0}
.anom .i{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--warn-light)}
.anom.crit .i{background:var(--danger-light)}
.anom .s{color:var(--muted);font-size:.76rem;margin-top:2px}
.anom:hover .t{color:var(--primary)}

/* ── Prévisions ── */
.fc-top{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.fc-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px 22px;align-items:end}
.range-row label{display:flex;justify-content:space-between}
.range-row label b{color:var(--text);font-size:.8rem;text-transform:none;letter-spacing:0}
input[type=range]{-webkit-appearance:none;appearance:none;height:6px;border-radius:6px;background:var(--panel2);border:0;padding:0;margin:10px 0}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--primary);border:3px solid var(--panel);box-shadow:0 1px 4px rgba(0,0,0,.3);cursor:pointer}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary);border:3px solid var(--panel);cursor:pointer}
.fc-verdict{padding:16px 18px;border-radius:12px;font-weight:600;font-size:.92rem;margin-bottom:18px;display:flex;gap:12px;align-items:center}
.fc-verdict .big{font-size:1.6rem}
.fc-verdict.ok{background:var(--success-light);color:var(--success)}
.fc-verdict.warn{background:var(--warn-light);color:var(--warn)}
.fc-verdict.crit{background:var(--danger-light);color:var(--danger)}
.fc-week{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--line2);font-size:.85rem;align-items:center}
.fc-week.h{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-weight:700}
.fc-week div:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.hint{font-size:.76rem;color:var(--muted);line-height:1.5}

/* ── Saisie éclair ── */
.eclair{position:relative;margin-bottom:18px}
.eclair input{padding:15px 16px 15px 46px;font-size:1rem;border-radius:12px;border:2px solid var(--accent);background:var(--accent-light)}
.eclair input:focus{background:var(--panel);box-shadow:0 0 0 4px var(--accent-light)}
.eclair .z{position:absolute;left:14px;top:13px;font-size:1.2rem}
.eclair-prev{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;min-height:10px}
.eclair-prev .pc{padding:5px 10px;border-radius:8px;background:var(--panel2);border:1px solid var(--line);font-size:.76rem;font-weight:600}
.eclair-prev .pc.k{background:var(--primary);color:#fff;border-color:var(--primary)}
.eclair-prev .pc.miss{background:var(--danger-light);color:var(--danger);border-color:transparent}
.eclair-help{font-size:.74rem;color:var(--muted);margin-top:6px}
.eclair-help code{background:var(--panel2);padding:1px 6px;border-radius:5px;font-size:.74rem}

/* ── Palette de commandes ── */
.global-search-inner{background:var(--panel)}
.global-search-input{background:var(--panel);color:var(--text)}
.gs-sec{padding:10px 24px 4px;font-size:.66rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.search-result.sel{background:var(--primary-light)}
.search-result .kbd{font-size:.68rem;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:1px 6px}
.gs-foot{padding:10px 24px;font-size:.7rem;color:var(--muted);border-top:1px solid var(--line);display:flex;gap:14px;flex-wrap:wrap}

/* ── Billetage ── */
.bill{display:grid;gap:8px}
.bill-row{display:grid;grid-template-columns:96px 1fr 110px;gap:10px;align-items:center}
.note{height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.78rem;color:#1A1A1A;border:1px solid rgba(0,0,0,.08);letter-spacing:-.2px}
.stepper{display:flex;align-items:center;gap:6px}
.stepper button{width:40px;height:40px;border-radius:10px;border:1.5px solid var(--line);background:var(--panel);font-size:1.2rem;font-weight:700;cursor:pointer;color:var(--text)}
.stepper button:active{background:var(--panel2)}
.stepper input{width:64px;text-align:center;font-weight:800;padding:9px 4px}
.bill-row .st{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;font-size:.88rem}
.bill-total{margin-top:14px;padding:14px 16px;border-radius:12px;background:var(--sidebar-bg);color:#fff;display:flex;justify-content:space-between;font-weight:800;font-size:1.05rem}
.bill-total span:last-child{color:var(--accent)}

/* ── Historique : cartes sur mobile, groupes par jour ── */
.day-row td{background:var(--panel2) !important;font-weight:700;font-size:.78rem;color:var(--text2);padding:8px 13px}
.day-row .dt{display:flex;justify-content:space-between;gap:10px}
.mv-cards{display:none}
.pending td{background:var(--warn-light) !important}

/* ── Divers ── */
.theme-btn{font-size:1rem}
.empty{padding:28px;text-align:center;color:var(--muted);font-size:.88rem}
.pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.68rem;font-weight:700;background:var(--panel2);color:var(--muted)}
.card h3 .right a{color:var(--primary);font-weight:700;text-decoration:none}
.bar-mini{height:6px;border-radius:6px;background:var(--panel2);overflow:hidden;margin-top:6px}
.bar-mini>i{display:block;height:100%;border-radius:6px;background:var(--primary);transition:width .6s var(--ease)}
.share-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.btn.wa{background:#1FAF55}
.btn.wa:hover{background:#18924A}

@media(max-width:1000px){.fc-top{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
  .mv-table{display:none}
  .mv-cards{display:block}
  .mv-day{font-size:.74rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:16px 2px 8px;display:flex;justify-content:space-between}
  .mv-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px;display:grid;grid-template-columns:1fr auto;gap:4px 10px;animation:fadeUp .25s var(--ease) both}
  .mv-card .l1{font-weight:700;font-size:.9rem}
  .mv-card .l2{font-size:.74rem;color:var(--muted)}
  .mv-card .amt{font-weight:800;font-variant-numeric:tabular-nums;text-align:right;font-size:.95rem}
  .mv-card .act{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:4px}
  .mv-card.annule{opacity:.5}
  .mv-card.pending{border-color:var(--warn);background:var(--warn-light)}
  .brief{padding:18px}
  .brief h3{font-size:1.1rem}
  .fc-week{grid-template-columns:1.2fr 1fr 1fr;font-size:.8rem}
  .fc-week div:nth-child(3){display:none}
  .bill-row{grid-template-columns:78px 1fr 90px;gap:8px}
  .top-actions .lbl{display:none}
  .kpi .spark{display:none}
  .kpi.has-spark .sub{max-width:none}
  .mobile-bar .s{padding:4px 6px}
}
@media print{:root{--bg:#fff;--panel:#fff;--paper:#fff;--text:#000}}

/* v3.1 — ajustements */
@media(min-width:761px){
  .topbar-right{flex-wrap:nowrap;align-items:center}
  .topbar-right select{min-width:170px}
}
td.mono,.amount{white-space:nowrap}
.alert-list{display:flex !important;flex-wrap:wrap;gap:8px}
.alert-item{display:inline-block;padding:7px 12px;border-radius:20px;font-size:.78rem}
.goals{grid-template-columns:repeat(auto-fill,minmax(185px,1fr))}
.goal .t{font-size:.76rem}

.only-mobile{display:none}
@media(max-width:760px){
  .top-actions{display:none}
  .only-mobile{display:inline-flex}
  .filters-card:not(.open) .form-grid > div:not(:last-child){display:none}
  .filters-card{padding:14px}
  .filters-card h3{margin-bottom:10px}
  #alertsBox .alert-item{font-size:.74rem;padding:6px 10px}
}

/* ══════════════════════════════════════════════════════════════
   v3.2 — ACCORD PDG : cloche, panneau de notifications, demandes
   ══════════════════════════════════════════════════════════════ */
.sidebar{grid-column:1;grid-row:1}
.main{grid-column:2;grid-row:1}
.bell{position:relative}
.bell .dot{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#E4404F;color:#fff;
  font-size:.66rem;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg);animation:pop .3s var(--ease)}
.bell .dot.hidden{display:none}
.mobile-bar .bell .dot{border-color:var(--sidebar-bg);top:-2px;right:-2px}

.notif-backdrop{display:none}
.notif-backdrop.show{display:block;position:fixed;inset:0;background:rgba(10,20,15,.35);z-index:150;animation:fadeUp .2s both}
.notif-panel{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100vw;background:var(--panel);border-left:1px solid var(--line);
  box-shadow:-12px 0 40px rgba(0,0,0,.18);z-index:160;display:flex;flex-direction:column;animation:slideIn .28s var(--ease) both}
@keyframes slideIn{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.app.pinned{grid-template-columns:250px 1fr 390px}
.app.pinned .notif-panel{position:sticky;top:0;height:100vh;width:auto;grid-column:3;grid-row:1;box-shadow:none;z-index:1;animation:none}
.np-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:18px 18px 12px;border-bottom:1px solid var(--line)}
.np-head > div > b:first-child{font-size:1.05rem}
.np-sub{font-size:.72rem;color:var(--muted);margin-top:3px}
.np-tools{display:flex;gap:6px}
.np-tabs{display:flex;gap:4px;padding:10px 12px;border-bottom:1px solid var(--line)}
.np-tabs button{flex:1;padding:8px 6px;border:0;background:transparent;border-radius:8px;font-weight:700;font-size:.78rem;color:var(--muted);cursor:pointer;font-family:var(--font)}
.np-tabs button.active{background:var(--primary-light);color:var(--primary)}
.np-tabs .c{display:inline-block;min-width:18px;padding:1px 6px;border-radius:9px;background:#E4404F;color:#fff;font-size:.65rem;margin-left:3px}
.np-bulk{padding:8px 18px;font-size:.74rem;color:var(--muted);border-bottom:1px solid var(--line2)}
.np-list{flex:1;overflow-y:auto;padding:6px 0}
.np-foot{padding:12px 16px;border-top:1px solid var(--line)}
.nf{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line2);position:relative;animation:fadeUp .3s var(--ease) both;transition:opacity .3s,transform .3s,background .3s}
.nf.unread{background:var(--info-light)}
.nf.unread::before{content:"";position:absolute;right:14px;top:18px;width:9px;height:9px;border-radius:50%;background:#2A78D6}
.nf.busy{opacity:.5;pointer-events:none}
.nf.gone-ok{transform:translateX(60px);opacity:0;background:var(--success-light)}
.nf.gone-ko{transform:translateX(-60px);opacity:0;background:var(--danger-light)}
.av{width:40px;height:40px;border-radius:50%;flex-shrink:0;color:#fff;font-weight:800;font-size:.82rem;display:flex;align-items:center;justify-content:center}
.nf-body{flex:1;min-width:0}
.nf-head{font-size:.82rem;line-height:1.4;padding-right:14px}
.nf-type{font-weight:700;color:var(--primary)}
.nf-title{font-weight:700;font-size:.86rem;margin-top:3px}
.nf-meta{font-size:.72rem;color:var(--muted);margin-top:3px}
.nf-diff{width:100%;margin-top:8px;font-size:.78rem;border-collapse:collapse;background:var(--panel2);border-radius:8px;overflow:hidden;display:table !important;white-space:normal !important}
.nf-diff td{padding:6px 10px;border-bottom:1px solid var(--line2)}
.nf-diff tr:last-child td{border-bottom:0}
.nf-diff td:first-child{color:var(--muted);font-weight:700;width:34%;font-size:.72rem;text-transform:uppercase;letter-spacing:.3px}
.nf-diff s{color:var(--danger);opacity:.8}
.nf-diff b{color:var(--success)}
.nf-diff.big td{padding:9px 12px;font-size:.85rem}
.nf-diff.big b{color:inherit}
.nf-bulle{margin-top:8px;padding:8px 12px;background:var(--accent-light);border-radius:4px 12px 12px 12px;font-size:.8rem;line-height:1.4}
.nf-actions{display:flex;gap:8px;margin-top:10px}
.nf-actions .btn{flex:1}
.nf-refus{display:flex;gap:6px;margin-top:8px}
.nf-refus.hidden{display:none}
.nf-refus input{padding:7px 10px;font-size:.82rem}
.nf-dec{margin-top:8px;font-size:.76rem;padding:7px 10px;border-radius:8px;line-height:1.45}
.nf-dec.ok{background:var(--success-light);color:var(--success)}
.nf-dec.ko{background:var(--danger-light);color:var(--danger)}
.nf-dec.att{background:var(--warn-light);color:var(--warn)}
.nf-dec.ret{background:var(--panel2);color:var(--muted)}
.nf-dec a{color:inherit;font-weight:700}
.nf-hist{padding:10px 0;border-bottom:1px dashed var(--line)}
.pend{display:inline-block;margin-top:3px;padding:2px 8px;border-radius:10px;background:var(--warn-light);color:var(--warn);font-size:.68rem;font-weight:700;cursor:pointer;white-space:nowrap}
.ref-link{cursor:pointer;border-bottom:1px dashed var(--muted)}
.ref-link:hover{color:var(--primary)}
.row-actions{display:flex;gap:4px}
.only-desktop{}
.accord{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1.5px solid var(--accent);border-radius:10px;background:var(--accent-light);margin-top:12px}
.accord input{width:auto;margin-top:3px}
.accord label{text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--text);margin:0;font-weight:600}
.accord small{display:block;color:var(--muted);font-weight:500;margin-top:2px}
@media(max-width:1280px){.app.pinned{grid-template-columns:250px 1fr 340px}}
@media(max-width:1100px){
  .app.pinned{grid-template-columns:250px 1fr}
  .app.pinned .notif-panel{position:fixed;height:auto;width:400px;grid-column:auto;box-shadow:-12px 0 40px rgba(0,0,0,.18);z-index:160}
  .only-desktop{display:none}
}
@media(max-width:760px){
  .notif-panel{width:100vw;top:0;padding-top:env(safe-area-inset-top)}
  .app.pinned{grid-template-columns:1fr}
  .main{grid-column:1}
  .nf{padding:14px}
}

.app.pinned .top-actions .lbl{display:none}
.app.pinned .topbar-right select{min-width:140px}

/* ══════════════════════════════════════════════════════════════
   v3.3 — RH : photos, personnel, fiches employés
   ══════════════════════════════════════════════════════════════ */
.av,.av-xs,.av-sm,.av-lg,.av-xl{border-radius:50%;object-fit:cover;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  color:#fff;font-weight:800;vertical-align:middle;background:var(--panel2)}
.av{width:40px;height:40px;font-size:.82rem}
.av-xs{width:22px;height:22px;font-size:.55rem}
.av-sm{width:30px;height:30px;font-size:.66rem}
.av-lg{width:64px;height:64px;font-size:1.1rem}
.av-xl{width:108px;height:108px;font-size:1.8rem}
img.av,img.av-xs,img.av-sm,img.av-lg,img.av-xl{box-shadow:0 0 0 2px var(--panel)}
.who{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.who small{display:block;font-size:.66rem;color:var(--muted);line-height:1.1}
.nf-head .fn{color:var(--muted);font-size:.72rem}
.nf-photos{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:1.2rem;color:var(--muted)}
.nf-dec .av-xs{margin:0 2px}
.brief .hello{display:flex;align-items:center;gap:8px}
.brief .hello .av-sm{box-shadow:0 0 0 2px rgba(255,255,255,.4)}
.audit-item{display:flex;gap:10px;align-items:flex-start}
.me-chip{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;margin:0 0 6px;border:0;border-radius:12px;background:rgba(255,255,255,.06);
  color:#fff;text-align:left;cursor:pointer;font-family:var(--font);transition:.15s}
.me-chip:hover{background:rgba(255,255,255,.12)}
.me-chip b{display:block;font-size:.84rem}
.me-chip small{display:block;font-size:.68rem;color:var(--sidebar-text);margin-top:1px}
.me-chip .av{box-shadow:0 0 0 2px var(--accent)}
#currentAv .av-xs{margin-right:2px}

.pe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.pe-card{display:flex;gap:14px;align-items:center;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:14px;cursor:pointer;
  transition:transform .15s,box-shadow .15s,border-color .15s;animation:fadeUp .3s var(--ease) both}
.pe-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--primary)}
.pe-card.sorti{opacity:.55}
.pe-info{min-width:0}
.pe-nom{font-weight:800;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pe-fn{font-size:.8rem;color:var(--primary);font-weight:700}
.pe-meta{font-size:.72rem;color:var(--muted);margin-top:2px}
.pe-tags{margin-top:6px}
.badge.info{background:var(--info-light);color:var(--info)}

.modal-content.wide{max-width:820px}
.fiche-head{display:flex;gap:18px;align-items:center}
.fiche-photo{position:relative;display:block;cursor:default;margin:0;text-transform:none}
.fiche-photo.edit{cursor:pointer}
.fiche-photo .cam{position:absolute;right:0;bottom:4px;width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:.95rem;box-shadow:0 0 0 3px var(--panel)}
.fiche-tabs{margin:16px 0 14px;overflow-x:auto;padding:4px}
.fiche-tabs button{white-space:nowrap;flex:0 0 auto}
.fiche-body{min-height:260px}
.form-grid .wide{grid-column:1/-1}
.req{color:var(--danger)}
.ftab.hidden{display:none}
@media(max-width:760px){
  .pe-grid{grid-template-columns:1fr}
  .fiche-head{flex-direction:column;text-align:center}
  .av-xl{width:96px;height:96px}
}

/* ═══ CAISSE DU JOUR (v3.6) ═══ */
.cj-top .cj-date{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:4px}
.cj-date span{font-size:.72rem;font-weight:800;letter-spacing:2px;color:var(--accent);background:var(--sidebar-bg);padding:3px 9px;border-radius:6px}
.cj-date b{font-size:1.05rem}.cj-date em{font-style:normal;color:var(--muted);font-size:.85rem}
.cj-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}
.cj-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.cj-col>.card,.cj-grid .card{margin:0}
.cj-side{position:sticky;top:12px}
.cj-sec h3{display:flex;align-items:center;justify-content:flex-start;gap:8px;font-size:.95rem;margin:0 0 10px}
.cj-sec h3 .right{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:800;color:var(--primary)}
.cj-n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--sidebar-bg);color:var(--accent);font-size:.72rem;font-weight:800}
.cj-sec .hint{font-size:.76rem;color:var(--muted);margin:0 0 10px}
.cj-sec kbd{font-family:inherit;font-size:.7rem;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 4px;background:var(--panel2)}
.cj-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cj-2 .hint{margin:4px 0 0}
.money.big{font-size:1.15rem;font-weight:800}
.cj-row{display:grid;gap:6px;align-items:center;margin-bottom:6px;padding:6px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2)}
.cj-row input,.cj-row select{padding:9px 8px;font-size:.9rem;min-width:0}
.cj-row .del{justify-self:end;height:38px;width:34px;border-radius:8px;border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--danger);font-size:1rem}
.cj-row.new{animation:cjIn .35s var(--ease)}
@keyframes cjIn{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.cj-p{grid-template-columns:96px 1.2fr 1fr 74px;grid-template-areas:"h mo mt del" "fa tk fr tr"}
.cj-p .h{grid-area:h}.cj-p .mo{grid-area:mo}.cj-p .mt{grid-area:mt}.cj-p .del,.cj-p>span:last-child{grid-area:del}
.cj-p .fa{grid-area:fa}.cj-p .tk{grid-area:tk}.cj-p .fr{grid-area:fr}.cj-p .tr{grid-area:tr;font-size:.72rem;line-height:1.15;color:var(--muted)}
.cj-p .fa,.cj-p .tk,.cj-p .fr{font-size:.82rem;padding:7px 8px}
.cj-ph{display:none;gap:6px;padding:0 7px 4px;font-size:.62rem;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700}
.cj-p .mo{border-left:6px solid var(--c,#999);font-weight:700}
.cj-p .tr{text-align:right;font-variant-numeric:tabular-nums}
.cj-r{grid-template-columns:96px 1fr 1fr 34px}
.cj-x{grid-template-columns:1fr 96px 1fr 64px 34px}
.cj-x .ok{text-align:center;font-size:.7rem;font-weight:800;padding:6px 0;border-radius:6px;background:var(--success-light);color:var(--success)}
.cj-x .ok.ko{background:var(--danger-light);color:var(--danger)}
.cj-vide{color:var(--muted);font-size:.85rem;padding:4px 0}
.cj-types{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.cj-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);font-size:.78rem}
.cj-chip i{width:9px;height:9px;border-radius:50%;background:var(--c,var(--muted))}
.cj-chip b{font-variant-numeric:tabular-nums}
.cj-chip.cash{background:var(--success-light);border-color:transparent}.cj-chip.cash i{background:var(--success)}
.cj-bill{display:grid;gap:6px}
.cj-br{display:grid;grid-template-columns:74px 1fr 92px;gap:8px;align-items:center}
.cj-br .note{border-radius:7px;padding:8px 4px;text-align:center;font-weight:800;font-size:.8rem;color:#1a1a1a}
.cj-br .note.pieces{background:var(--panel2);border:1px dashed var(--line)}
.cj-br .stepper button{width:36px;height:36px}
.cj-br .stepper input{width:56px;padding:8px 2px}
.cj-br .st{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;font-size:.85rem}
table.cj-t{display:table;width:100%;border-collapse:collapse;font-size:.85rem;white-space:normal}
.cj-t th{font-size:.64rem;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);text-align:right;padding:4px 6px;border-bottom:2px solid var(--line)}
.cj-t th:first-child{text-align:left}
.cj-t td{padding:6px;border-bottom:1px solid var(--line2);text-align:right;font-variant-numeric:tabular-nums}
.cj-t td:first-child{text-align:left;color:var(--text2)}
.cj-t tbody td:nth-child(2){color:var(--danger)}.cj-t tbody td:nth-child(3){color:var(--success)}
.cj-t tfoot td{font-weight:800;border-bottom:0;color:var(--text)}
.cj-t tfoot tr:first-child td{border-top:2px solid var(--text)}
.cj-t tfoot tr.r td{font-weight:700;padding-top:4px}
.cj-statut{margin-top:12px;border-radius:12px;padding:12px 14px;display:grid;gap:2px;text-align:center;transition:background .3s,color .3s}
.cj-statut small{font-size:.62rem;text-transform:uppercase;letter-spacing:1.2px;opacity:.75;font-weight:700}
.cj-statut b{font-size:1.5rem;letter-spacing:1px}
.cj-statut span{font-size:.8rem}
.cj-statut.wait{background:var(--panel2);color:var(--muted)}
.cj-statut.ok{background:var(--success);color:#fff}
.cj-statut.ko{background:var(--danger);color:#fff}
.cj-statut.plus{background:var(--warn);color:#fff}
.cj-statut.pop{animation:cjPop .5s var(--ease)}
@keyframes cjPop{0%{transform:scale(.94)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
.cj-checks{display:grid;gap:5px;margin-top:10px}
.cj-ck{font-size:.78rem;padding:7px 10px;border-radius:8px;background:var(--info-light);color:var(--info)}
.cj-ck.warn{background:var(--warn-light);color:var(--warn)}
.cj-ck.ko{background:var(--danger-light);color:var(--danger)}
.cj-dock{display:none}
@media(max-width:1000px){
  .cj-grid{grid-template-columns:1fr}
  .cj-side{position:static}
}
@media(max-width:760px){
  .cj-2{grid-template-columns:1fr 1fr;gap:8px}
  .cj-ph{display:none}
  .cj-p{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.9fr) 38px;grid-template-areas:"mo mo mt mt del" "h fa tk fr fr"}
  .cj-p .tr{display:none}
  .cj-r{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 38px;grid-template-areas:"nom nom del" "h mt mt"}
  .cj-r .h{grid-area:h}.cj-r .nom{grid-area:nom}.cj-r .mt{grid-area:mt}.cj-r .del,.cj-r>span:last-child{grid-area:del}
  .cj-p .del{width:38px}
  .cj-row input[type=time]{font-size:.85rem;padding:9px 4px}
  .cj-x{grid-template-columns:1fr 70px 34px;grid-template-areas:"nom h del" "ec ok ok"}
  .cj-x .nom{grid-area:nom}.cj-x .h{grid-area:h}.cj-x .ec{grid-area:ec}.cj-x .ok{grid-area:ok}.cj-x .del,.cj-x>span:last-child{grid-area:del}
  .cj-dock{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));z-index:6;
    margin-top:12px;background:var(--sidebar-bg);color:#fff;border-radius:12px;padding:8px 10px;box-shadow:var(--shadow-lg)}
  .cj-dock div{display:grid;text-align:center}
  .cj-dock small{font-size:.55rem;text-transform:uppercase;letter-spacing:.8px;opacity:.7;font-weight:700}
  .cj-dock b{font-size:.85rem;font-variant-numeric:tabular-nums}
  .cj-dock .st{border-radius:8px}.cj-dock .st.ok{background:var(--success)}.cj-dock .st.ko{background:var(--danger)}.cj-dock .st.plus{background:var(--warn)}
  .cj-dock .st b{color:#fff}
}
[data-theme=dark] .cj-br .note{filter:saturate(.8) brightness(.9)}

/* ═══ Remises au gérant (v3.7) ═══ */
.rm{display:grid;grid-template-columns:38px 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2);margin-bottom:6px}
.rm .av{width:36px;height:36px}
.rm-b{min-width:0;font-size:.86rem}.rm-b small{color:var(--muted)}
.rm-m{font-variant-numeric:tabular-nums;font-size:1rem}
.rm .del{height:34px;width:34px;border-radius:8px;border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--danger)}
.rm-st{display:inline-block;margin-top:2px;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px}
.rm-st.att{background:var(--warn-light);color:var(--warn)}
.rm-st.ok{background:var(--success-light);color:var(--success)}
.rm-st.ko{background:var(--danger-light);color:var(--danger)}
.rm.envoye{border-left:4px solid var(--warn)}.rm.recu{border-left:4px solid var(--success)}.rm.ecart{border-left:4px solid var(--danger)}
.rm-c{font-size:.75rem;color:var(--danger);margin-top:2px}
.rm-choix{display:grid;gap:6px}
.rm-u{text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--text);display:flex;align-items:center;gap:10px;padding:8px 10px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;font-weight:400;margin:0}
.rm-u:has(input:checked){border-color:var(--primary);background:var(--primary-light)}
.rm-u span{display:grid}.rm-u small{color:var(--muted);font-size:.72rem}
.rm-u input{width:auto}
.rm-nf .rm-big{font-size:1.25rem;font-weight:800;color:var(--primary)}
.cj-urg{border-top:3px solid var(--danger)}
.cj-urg h3 .right{color:var(--danger)}

/* ═══ Panier des opérations (v3.8) ═══ */
#panierList{display:grid;gap:6px}
.pn{display:grid;grid-template-columns:34px 1fr auto 24px;gap:10px;align-items:center;padding:9px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2);cursor:pointer;transition:transform .15s,box-shadow .15s}
.pn:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.pn-ico{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:.9rem}
.pn-ico.in{background:var(--success-light)}.pn-ico.out{background:var(--danger-light)}
.pn-b{display:grid;min-width:0}.pn-b b{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pn-b small{color:var(--muted);font-size:.72rem}
.pn-b em{font-style:normal;font-size:.7rem;font-weight:700;color:var(--warn)}
.pn-m{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.pn-ed{opacity:.45;font-size:.85rem}
.pn.out,.pn.dem{border-style:dashed}
.pn.annule{opacity:.5}.pn.annule .pn-b b{text-decoration:line-through}
.pn.flash{animation:pnFlash 1.2s var(--ease)}
@keyframes pnFlash{0%{background:var(--accent-light);transform:scale(1.02)}100%{background:var(--panel2);transform:none}}
.rm-fm{display:inline-block;font-size:.66rem;font-weight:800;background:var(--danger);color:#fff;border-radius:5px;padding:1px 6px;margin-left:4px}
.rm-force{margin-top:12px;border:1.5px dashed var(--danger);border-radius:10px;padding:10px}
#cjSaisies{display:grid;gap:6px}
.pn-b em.cj-cpt{color:var(--info);font-weight:600}
.cj-sais{border-top:3px solid var(--info)}

/* ═══ Main sur la caisse + validation par partie (v3.10) ═══ */
.cj-main{margin-top:12px;padding:10px 14px;border-radius:10px;font-size:.86rem;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cj-main .acts{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.cj-main.ro{background:var(--info-light);color:var(--info)}
.cj-main.ask{background:var(--warn-light);color:var(--warn);animation:cjIn .35s var(--ease)}
.cj-main.lock{background:var(--danger-light);color:var(--danger)}
.cj-main.mine{background:var(--success-light);color:var(--success)}
.cj-main.info{background:var(--panel2);color:var(--muted)}
.cj-valid{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.cj-vs{font-size:.74rem;color:var(--success)}
.cj-sec.dirty{box-shadow:0 0 0 2px var(--accent)}
.cj-sec.dirty .cj-vs::before{content:'✏️ modifié — pensez à valider';color:var(--warn)}
.cj-sec.dirty .cj-vs{font-size:0}.cj-sec.dirty .cj-vs::before{font-size:.74rem}
.cj-nonval{display:block;font-style:normal;font-size:.72rem;opacity:.85;margin-top:4px}
.cj-ger{font-style:normal;color:var(--muted);font-size:.8rem}

/* ═══ SCHÉMAS DES FONDS (v3.11, PDG) ═══ */
.sch-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.sch-tabs{display:flex;gap:4px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px}
.sch-tabs button{border:0;background:transparent;border-radius:9px;padding:8px 12px;font-weight:700;font-size:.8rem;cursor:pointer;color:var(--text2)}
.sch-tabs button.on{background:var(--sidebar-bg);color:#fff}
.sch-date{display:flex;gap:6px;align-items:center;margin-left:auto;flex-wrap:wrap}
.sch-date input{width:auto;padding:7px 10px}
.sch-live{font-size:.72rem;color:var(--muted)}.sch-live i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#5BD08A;margin-right:5px;animation:schBl 1.4s infinite}
@keyframes schBl{50%{opacity:.25}}
.sch-kpis{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:14px}
.sch-kpis .k{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}
.sch-kpis .k small{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:800}
.sch-kpis .k b{display:block;font-size:1.08rem;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sch-kpis .k em{display:block;font-style:normal;font-size:.68rem;color:var(--muted)}
.sch-kpis .k.gold{background:var(--sidebar-bg);border:0;color:#fff}.sch-kpis .k.gold b{color:var(--accent)}.sch-kpis .k.gold small,.sch-kpis .k.gold em{color:#C9D5CE}
.sch-kpis .k.w{border-color:var(--warn);background:var(--warn-light)}.sch-kpis .k.w b{color:var(--warn)}
.sch-kpis .k.r{border-color:var(--danger);background:var(--danger-light)}.sch-kpis .k.r b{color:var(--danger)}
.sch-main{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.sch-aside{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
@media(min-width:1850px){.sch-main{grid-template-columns:minmax(0,1fr) 320px}.sch-aside{grid-template-columns:1fr}}
.sch-main .card,.sch-aside .card{margin:0}
.bh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.bh h2{font-size:1rem}.bh .s,.card>.s{color:var(--muted);font-size:.76rem}
.sch-board{position:relative}
.sch-cols{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:48px;z-index:2}
.sch-cols .col h3{min-height:28px;font-size:.62rem;text-transform:uppercase;letter-spacing:1.1px;color:var(--muted);margin:0 0 8px;display:flex;justify-content:space-between;gap:6px}
.sch-cols .col h3 b{color:var(--text);letter-spacing:0;white-space:nowrap}
.sch-cols .n{background:var(--panel);border:1.5px solid var(--line);border-radius:12px;padding:9px 10px;margin-bottom:9px;box-shadow:0 2px 6px rgba(26,58,46,.05);cursor:pointer;transition:transform .15s}
.sch-cols .n:hover{transform:translateY(-1px)}
.sch-cols .n .h{display:flex;align-items:center;gap:7px}
.sch-cols .av,.sch-it .av,.sch-people .av{width:28px;height:28px;border-radius:50%;flex:none;object-fit:cover;display:grid;place-items:center;color:#fff;font-size:.6rem;font-weight:800}
.sch-cols .n .t{font-weight:700;font-size:.8rem;line-height:1.15}
.sch-cols .n .s{font-size:.66rem;color:var(--muted)}
.sch-cols .n .m{font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums;margin-top:4px;white-space:nowrap}
.sch-cols .n .mini{display:flex;flex-wrap:wrap;gap:8px;margin-top:3px;font-size:.66rem;color:var(--muted)}.sch-cols .n .mini b{color:var(--text)}
.sch-cols .tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.tg{font-size:.6rem;font-weight:700;padding:2px 6px;border-radius:999px;background:var(--panel2);color:var(--muted)}
.tg.ok{background:var(--success-light);color:var(--success)}.tg.ko{background:var(--danger-light);color:var(--danger)}.tg.w{background:var(--warn-light);color:var(--warn)}.tg.i{background:var(--info-light);color:var(--info)}
.sch-cols .n.site{border-left:4px solid var(--success)}.sch-cols .n.site.alert{border-left-color:var(--danger)}.sch-cols .n.site.lock{border-left-color:var(--info)}.sch-cols .n.site.done{opacity:.75}
.sch-cols .n.tr{border-style:dashed;border-color:var(--warn);background:var(--warn-light)}.sch-cols .n.tr.fm{border-color:var(--danger);background:var(--danger-light)}
.sch-cols .n.ger{border-left:4px solid var(--accent)}
.sch-cols .n.coll{background:var(--sidebar-bg);color:#fff;border:0;padding:14px}
.sch-cols .n.coll .s{color:#C9D5CE}.sch-cols .n.coll .m{color:var(--accent);font-size:1.2rem}
.sch-cols .n.coll .row{display:flex;justify-content:space-between;font-size:.68rem;color:#C9D5CE;margin-top:3px}.sch-cols .n.coll .row b{color:#fff;white-space:nowrap}
.sch-cols .n.coll .bar{height:5px;border-radius:5px;background:rgba(255,255,255,.15);margin-top:6px;overflow:hidden}.sch-cols .n.coll .bar i{display:block;height:100%;background:var(--accent)}
.sch-cols .n.pdg{border-left:4px solid var(--danger)}
.sch-cols .n.bank{border-left:4px solid var(--info)}
.sch-note{background:var(--accent-light);border:1px solid var(--accent);border-radius:10px;padding:8px 10px;font-size:.7rem}
.sch-board svg.links{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
.sch-board .lk{fill:none;stroke-width:2.2}
.sch-board .lk.ok{stroke:#9CC8B0}.sch-board .lk.b{stroke:#A9C3D8}
.sch-board .lk.w{stroke:var(--warn);stroke-dasharray:6 6;animation:schF 1s linear infinite}
.sch-board .lk.r{stroke:var(--danger);stroke-dasharray:6 6;animation:schF 1s linear infinite}
@keyframes schF{to{stroke-dashoffset:-12}}
.sch-board .lbl{font-size:10px;font-weight:800;fill:var(--text);paint-order:stroke;stroke:var(--panel);stroke-width:4px}
.sch-board .lbl.w{fill:var(--warn)}.sch-board .lbl.r{fill:var(--danger)}.sch-board .lbl.ok{fill:var(--success)}
.sch-cols .arrow{display:none}
.sch-leg{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:.7rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:10px}
.sch-leg span{display:flex;align-items:center;gap:6px}
.sch-leg i{display:inline-block;width:26px;border-top:2.5px solid #9CC8B0}.sch-leg i.w{border-top:2.5px dashed var(--warn)}.sch-leg i.r{border-top:2.5px dashed var(--danger)}.sch-leg i.b{border-top:2.5px solid #A9C3D8}
.sch-side h4{font-size:.86rem;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.sch-side h4 .c{background:var(--danger);color:#fff;border-radius:999px;font-size:.62rem;padding:1px 7px}
.sch-it{display:flex;gap:8px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--line2);font-size:.74rem}
.sch-it:last-child{border:0}
.sch-it .b{flex:1;line-height:1.3;min-width:0}.sch-it .b small{display:block;color:var(--muted);font-size:.64rem}
.sch-it .bt{margin-top:5px;display:flex;gap:5px;flex-wrap:wrap}
.sch-it .a{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.sch-it.w .a{color:var(--warn)}.sch-it.ko .a{color:var(--danger)}
.sch-tl{position:relative;padding-left:14px}
.sch-tl:before{content:'';position:absolute;left:4px;top:4px;bottom:4px;width:2px;background:var(--line)}
.sch-tl .e{position:relative;font-size:.72rem;padding:3px 0 6px}
.sch-tl .e:before{content:'';position:absolute;left:-14px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--success);border:2px solid var(--panel)}
.sch-tl .e.w:before{background:var(--warn)}.sch-tl .e.r:before{background:var(--danger)}.sch-tl .e.i:before{background:var(--info)}
.sch-tl .e small{color:var(--muted)}
/* B */
.sch-bcols{display:grid;grid-template-columns:repeat(3,1fr);font-size:.62rem;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);font-weight:800}
.sch-bcols div:nth-child(2){text-align:center}.sch-bcols div:nth-child(3){text-align:right}
.sch-sk{width:100%;height:auto;display:block}
.sch-sk .sk-l{cursor:pointer;transition:opacity .2s}
.sch-sk .nl{font-size:14px;font-weight:700;fill:var(--text)}.sch-sk .nv{font-size:12.5px;font-weight:800;fill:var(--text2)}.sch-sk .ns{font-size:10px;fill:var(--muted)}
.sch-sk .hl{paint-order:stroke;stroke:var(--panel);stroke-width:4px}
.sch-foot{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.sch-foot .f{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--panel2)}
.sch-foot .f small{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:800}
.sch-foot .f b{font-size:1.02rem}.sch-foot .f em{display:block;font-style:normal;font-size:.7rem;color:var(--muted)}
.sch-foot .f.w{border-color:var(--warn)}.sch-foot .f.w b{color:var(--warn)}.sch-foot .f.r{border-color:var(--danger)}.sch-foot .f.r b{color:var(--danger)}
/* C */
.sch-people{display:flex;gap:10px;margin-bottom:12px;overflow-x:auto;padding-bottom:4px}
.sch-people .p{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 14px 5px 5px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.sch-people .p .av{width:32px;height:32px}
.sch-people .p small{display:block;font-size:.62rem;color:var(--muted)}.sch-people .p b{font-size:.86rem}
.sch-people .p.w{border-color:var(--warn);background:var(--warn-light)}
.sch-c{overflow-x:auto}
.sch-c-in{min-width:900px}
.sch-c .head,.sch-c .lane,.sch-c .tot{display:grid;grid-template-columns:190px repeat(5,1fr)}
.sch-c .head{font-size:.6rem;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);font-weight:800;padding:6px 0 8px;border-bottom:2px solid var(--line);text-align:center}
.sch-c .head div:first-child{text-align:left}
.sch-c .lane{align-items:start;padding:14px 0;border-bottom:1px solid var(--line2);cursor:pointer}
.sch-c .lane:hover{background:var(--panel2)}
.sch-c .site{padding-top:6px}.sch-c .site b{font-size:.9rem;display:block}.sch-c .site small{color:var(--muted);font-size:.68rem}
.sch-c .step{position:relative;text-align:center;padding:0 6px}
.sch-c .step:before{content:'';position:absolute;top:17px;left:-50%;width:100%;height:4px;background:var(--line2);z-index:0}
.sch-c .site + .step:before{display:none}
.sch-c .step.done:before{background:var(--success)}
.sch-c .step.wait:before{background:repeating-linear-gradient(90deg,var(--warn) 0 8px,transparent 8px 14px);background-size:14px 4px;animation:schMv 1s linear infinite}
.sch-c .step.bad:before{background:repeating-linear-gradient(90deg,var(--danger) 0 8px,transparent 8px 14px);background-size:14px 4px;animation:schMv 1s linear infinite}
@keyframes schMv{to{background-position:14px 0}}
.sch-c .dot{position:relative;z-index:1;width:38px;height:38px;border-radius:50%;margin:0 auto;display:grid;place-items:center;font-size:1rem;background:var(--panel2);border:3px solid var(--line)}
.sch-c .done .dot{background:var(--success-light);border-color:var(--success)}
.sch-c .wait .dot{background:var(--warn-light);border-color:var(--warn);animation:schPl 1.6s infinite}
.sch-c .bad .dot{background:var(--danger-light);border-color:var(--danger)}
.sch-c .lock .dot{background:var(--info-light);border-color:var(--info)}
@keyframes schPl{50%{box-shadow:0 0 0 7px rgba(184,134,11,.15)}}
.sch-c .step .a{font-weight:800;font-variant-numeric:tabular-nums;margin-top:5px;font-size:.88rem;white-space:nowrap}
.sch-c .step .w{font-size:.66rem;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:4px;margin-top:2px}
.sch-c .step .w .av{width:18px;height:18px;border-radius:50%;font-size:.45rem;display:grid;place-items:center;color:#fff;object-fit:cover}
.sch-c .pill{display:inline-block;margin-top:4px;font-size:.6rem;font-weight:800;padding:2px 7px;border-radius:999px}
.sch-c .pill.ok{background:var(--success-light);color:var(--success)}.sch-c .pill.w{background:var(--warn-light);color:var(--warn)}.sch-c .pill.ko{background:var(--danger-light);color:var(--danger)}.sch-c .pill.i{background:var(--info-light);color:var(--info)}
.sch-c .mini{display:flex;height:6px;border-radius:6px;overflow:hidden;width:80%;margin:5px auto 0}
.sch-c .tot{padding:12px 0 2px;font-weight:800;text-align:center}
.sch-c .tot div:first-child{text-align:left;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:1px}
/* D */
.sch-bul{width:100%;height:auto;display:block}
.sch-bul .ring{fill:none;stroke:var(--line2);stroke-width:1.5;stroke-dasharray:4 6}
.sch-bul .rl{font-size:10px;font-weight:800;letter-spacing:1.5px;fill:var(--muted)}
.sch-bul .bn{font-size:11px;font-weight:800;fill:#fff}.sch-bul .bv{font-size:10.5px;font-weight:800;fill:var(--text)}.sch-bul .bs{font-size:9.5px;fill:var(--muted)}
.sch-bul .fl{fill:none;stroke-width:2.5}
.sch-bul .fl.w{stroke:#B8860B;stroke-dasharray:7 6;animation:schF 1s linear infinite}.sch-bul .fl.r{stroke:#C0392B;stroke-dasharray:7 6;animation:schF 1s linear infinite}.sch-bul .fl.ok{stroke:#9CC8B0}
.sch-bul .lb{font-size:10.5px;font-weight:800;paint-order:stroke;stroke:var(--panel);stroke-width:4px}
.sch-mk{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sch-mk div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.sch-mk small{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:800}.sch-mk b{font-size:1rem}
@media(max-width:1300px){.sch-kpis{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1100px){
  .sch-aside{grid-template-columns:1fr}
  .sch-cols{grid-template-columns:1fr;gap:0}
  .sch-board svg.links{display:none}
  .sch-cols .col{position:relative;padding-left:18px;border-left:3px solid var(--line);margin-left:10px;padding-bottom:6px}
  .sch-cols .col:before{content:attr(data-step);position:absolute;left:-14px;top:-2px;width:24px;height:24px;border-radius:50%;background:var(--sidebar-bg);color:var(--accent);font-size:.7rem;font-weight:800;display:grid;place-items:center}
  .sch-cols .arrow{display:block;text-align:center;color:var(--muted);font-size:.7rem;margin:-2px 0 8px}
}
@media(max-width:760px){
  .sch-kpis{grid-template-columns:1fr 1fr}
  .sch-foot{grid-template-columns:1fr 1fr}
  .sch-date{margin-left:0}
  .sch-tabs{width:100%}.sch-tabs button{flex:1;padding:8px 6px;font-size:.72rem}
}
@media(max-width:760px){
  #schSk,#schBul{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .sch-sk{min-width:920px}.sch-bul{min-width:780px}
  .sch-bcols{min-width:0;font-size:.55rem}
}

/* ═══ Affectation visible (v3.12) ═══ */
.affect{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.aff-chip{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--sc,var(--primary));border-radius:10px;padding:4px 10px;font-size:.74rem}
.aff-site{font-weight:800;color:var(--text)}
.aff-eq{color:var(--text2)}
.aff-warn{color:var(--warn);font-style:normal;font-weight:700;font-size:.72rem;margin-left:6px}
.cj-sitebar{margin:12px 0 4px;padding:10px 14px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);border-left:6px solid var(--sc,var(--primary))}
.cj-sitebar .n{font-size:1.05rem}.cj-sitebar .n b{font-size:1.15rem;letter-spacing:.2px}
.cj-sitebar .e{font-size:.8rem;color:var(--text2);margin-top:2px}
.cj-sitebar.mini{margin:0 0 6px;padding:8px 12px}.cj-sitebar.mini .n{font-size:.9rem}.cj-sitebar.mini .n b{font-size:.95rem}
@media(max-width:760px){.affect{margin-top:4px}.aff-chip{font-size:.7rem;padding:3px 8px}}
.aff-fix{margin-top:6px;padding:6px 10px;border-radius:8px;background:var(--warn-light);color:var(--warn);font-size:.76rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rg-list{display:grid;gap:6px;max-height:60vh;overflow:auto}
.rg-list .rm{grid-template-columns:36px 1fr auto auto}
.rg-list .rm-b small{display:block;color:var(--muted);font-size:.68rem}

/* ═══ Historique compact (v3.15) ═══ */
.histo-periodes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:12px;font-size:.74rem;color:var(--muted);font-weight:700}
.histo-periodes button{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:5px 12px;font-size:.76rem;font-weight:700;cursor:pointer;color:var(--text2)}
.histo-periodes button.on{background:var(--sidebar-bg);color:#fff;border-color:var(--sidebar-bg)}
table.mv-compact th{padding:7px 8px;font-size:.62rem}
table.mv-compact td{padding:5px 8px;font-size:.78rem;white-space:nowrap;vertical-align:middle;line-height:1.3}
table.mv-compact td.desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}
table.mv-compact td.par .av-xs{vertical-align:middle;margin-right:4px}
table.mv-compact td.par .av-xs{width:20px;height:20px}
table.mv-compact .tag{font-size:.64rem;padding:2px 7px}
table.mv-compact .badge{font-size:.6rem;padding:1px 5px}
table.mv-compact tr.mv-r.z td{background:rgba(201,169,97,.06)}
table.mv-compact tr.mv-r:hover td{background:var(--accent-light)}
table.mv-compact .day-row td{background:var(--sidebar-bg) !important;color:#fff;padding:7px 12px;border-top:10px solid var(--panel)}
table.mv-compact .day-row small{color:#C9D5CE;font-weight:500}
table.mv-compact .day-row .nb{margin-left:8px;background:rgba(255,255,255,.12);border-radius:999px;padding:1px 8px}
table.mv-compact .day-row .amount.pos{color:#8FD6AE}table.mv-compact .day-row .amount.neg{color:#F2A49B}
table.mv-compact .row-actions .btn{padding:3px 7px}
.mo-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:6px;vertical-align:1px}
table.mv-compact td.sc small{display:block;font-size:.66rem;color:var(--muted);line-height:1.1}
table.mv-compact td.desc{max-width:260px}
table.mv-compact .day-row td{white-space:normal}
table.mv-compact td:first-child{width:1%;white-space:normal;min-width:130px}

/* ═══ Nature des mouvements (v3.16) ═══ */
.nat{display:inline-block;font-size:.66rem;font-weight:800;padding:2px 8px;border-radius:999px;white-space:nowrap}
.nat-in{background:var(--success-light);color:var(--success)}
.nat-out{background:var(--danger-light);color:var(--danger)}
.nat-int{background:var(--info-light);color:var(--info)}
.nat-ann{background:var(--panel2);color:var(--muted)}
.nat.barre{text-decoration:line-through}
.amount.int{color:var(--info)}
.amount.ann{color:var(--muted)}
table.mv-compact tr.mv-r td:first-child{border-left:4px solid transparent}
table.mv-compact tr.rn-in td:first-child{border-left-color:var(--success)}
table.mv-compact tr.rn-out td:first-child{border-left-color:var(--danger)}
table.mv-compact tr.rn-int td:first-child{border-left-color:var(--info)}
table.mv-compact tr.rn-ann td:first-child{border-left-color:var(--line)}
table.mv-compact tr.rn-int td.amount{font-weight:700}
.int-vers{color:var(--info);font-weight:600}
.dt-tot{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:flex-end;font-weight:600;font-size:.74rem}
table.mv-compact .day-row .dt{flex-wrap:wrap;row-gap:4px}
.dt-tot .int b{color:#9CC4E4}
.nat-leg{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.72rem;color:var(--muted);margin:-4px 0 12px}
.nat-leg .nat{margin-left:6px}

/* ═══ v3.17 — Recette de fin de service, ventilation, dépenses hors caisse ═══ */
.cj-t tbody.cj-vent td{font-size:.78rem;padding:3px 6px;border-bottom:1px dashed var(--line2);background:var(--panel2)}
.cj-t tbody.cj-vent td:first-child{padding-left:22px;color:var(--text2)}
.cj-t tbody.cj-vent td:first-child i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c,var(--muted));margin-right:6px;vertical-align:middle}
.cj-t tbody.cj-vent td:first-child small{color:var(--muted);font-size:.68rem}
.cj-t tbody.cj-vent td:nth-child(2){color:var(--text2)}
.cj-t tbody.cj-vent td:nth-child(3){color:var(--muted)}
.cj-pc{font-size:.68rem;font-weight:700}
.cj-vent tr{animation:ventIn .25s ease}
@keyframes ventIn{from{opacity:0;transform:translateY(-3px)}}
.pn-b em.cj-cpt.hors{color:var(--muted);font-style:italic}
.rm.fin{border:2px solid var(--accent);background:var(--warning-light,#FBF3DC)}
.rm.fin.recu{border-color:var(--success);background:var(--success-light)}
.fin-t{margin:10px 0}
.fin-t tbody td:nth-child(2){color:var(--text)!important}
.fin-t tr.sub td{font-size:.78rem;color:var(--muted)!important;padding:2px 6px}
.fin-t tr.sub td:first-child{padding-left:20px}
.fin-t tr.sub i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:6px}
.fin-t b.neg{color:var(--danger)}.fin-t b.pos{color:var(--success)}
.fin-box{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2)}
.fin-m{font-size:1.35rem;font-weight:800;color:var(--success);padding:8px 0;font-variant-numeric:tabular-nums}
.fin-m.neg{color:var(--danger)}
.fin-res{display:grid;gap:3px;margin:6px 0;padding:8px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2);font-size:.76rem}
.fin-res div{display:flex;justify-content:space-between;gap:8px}
.fin-res span{color:var(--text2)}.fin-res i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:6px}
.fin-res b{font-variant-numeric:tabular-nums}.fin-res b.neg{color:var(--danger)}.fin-res b.pos{color:var(--success)}

/* ═══ v3.18 — Supprimer une opération en double depuis la caisse ═══ */
.cj-sais .pn.mv{grid-template-columns:34px 1fr auto 34px 24px}
.pn-del{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-size:.85rem;display:inline-grid;place-items:center}
.pn-del:hover{border-color:var(--danger);background:var(--danger-light)}
.pn.att{border-style:dashed;opacity:.8}
.pn-b em.pn-att{color:var(--warn)}
.cj-deja{margin:0 0 10px;padding:10px 12px;border-radius:10px;border:1px solid var(--warn,#B8860B);background:var(--warning-light,#FBF3DC);font-size:.8rem;display:grid;gap:8px}
.cj-deja>div{display:flex;flex-wrap:wrap;gap:6px}
.cj-deja small{color:var(--text2);font-size:.72rem}
.cj-deja .cj-chip small{color:var(--muted);font-size:.66rem}
.cj-deja .pn-del{width:24px;height:24px;font-size:.7rem;margin-left:2px}
.cj-chip.ko{border-color:var(--danger);background:var(--danger-light)}

/* ═══ v3.19 — Autres paiements : saisie rapide, 3 affichages, contrôle, logos, billetage ═══ */
.lgm{width:26px;height:26px;border-radius:7px;display:inline-grid;place-items:center;font-size:.6rem;font-weight:900;flex:none;letter-spacing:-.3px;object-fit:contain;background:#fff;vertical-align:middle;line-height:1}
.lgm.sm{width:20px;height:20px;font-size:.5rem;border-radius:5px}
img.lgm{border:1px solid var(--line2);padding:1px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel);flex:none}
.seg button{border:0;background:transparent;padding:5px 10px;font-size:.72rem;font-weight:700;color:var(--text2);cursor:pointer;border-right:1px solid var(--line);white-space:nowrap}
.seg button:last-child{border-right:0}.seg button.on{background:var(--sidebar,#1A3A2E);color:#fff}
.fchip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px 2px 3px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font-size:.72rem;font-weight:700;cursor:pointer;color:var(--text)}
.fchip small{color:var(--muted);font-weight:600}.fchip.off{opacity:.4}.fchip.on{background:var(--danger-light);border-color:var(--danger)}
/* saisie rapide */
.cj-qe{margin:6px 0 10px}
.qe-row{display:grid;grid-template-columns:28px repeat(10,minmax(0,1fr));gap:6px;align-items:center;background:var(--warning-light,#FFFBEF);border:1px solid var(--line);border-radius:10px;padding:6px}
.qe-row .qe-lg{grid-column:1}.qe-row .q-mo{grid-column:span 3}.qe-row .q-mt{grid-column:span 3}.qe-row .q-fa{grid-column:span 2}.qe-row .q-tk{grid-column:span 2}
.qe-row .q-fr{grid-column:2 / span 2}.qe-row .q-h{grid-column:span 3}.qe-row button{grid-column:span 5}
.qe-row input,.qe-row select{padding:6px 7px;font-size:.82rem;min-width:0}
.qe-row .q-mt{font-weight:800;text-align:right}
.qe-hint{font-size:.66rem;color:var(--muted);margin-top:3px}
.pay-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}
.pay-tri{width:auto;padding:4px 8px;font-size:.72rem;border-radius:8px}
.pay-q{width:170px;padding:4px 9px;font-size:.74rem;border-radius:8px;margin-left:auto}
.pay-chips{display:flex;flex-wrap:wrap;gap:5px;width:100%}
/* A tableau */
.pay-wrap{overflow-x:auto;max-height:520px;overflow-y:auto;border:1px solid var(--line2);border-radius:10px}
table.pay-t{display:table;width:100%;border-collapse:collapse;font-size:.8rem;white-space:nowrap}
.pay-t th{position:sticky;top:0;background:var(--panel);z-index:1;font-size:.6rem;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);text-align:left;padding:5px 6px;border-bottom:2px solid var(--line);cursor:pointer;user-select:none}
.pay-t th.s{color:var(--text)}
.pay-t td{padding:3px 6px;border-bottom:1px solid var(--line2);vertical-align:middle}
.pay-t tbody tr{cursor:pointer}.pay-t tbody tr:hover td{background:var(--panel2)}
.pay-t .ph{color:var(--muted);font-variant-numeric:tabular-nums}
.pay-t .pmt{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.pay-t .pmt.fr{font-weight:400;color:var(--muted)}
.pay-t .pty{font-weight:600}.pay-t .ptk2{font-size:.74rem;color:var(--text2)}
.pay-t .pact{width:30px;text-align:center}
.pay-t tr.mv td{background:var(--warning-light,#FBF3DC)}
.pay-t tr.ko td{background:var(--danger-light)}
.pay-t tr.pgrp td{background:var(--panel2);font-weight:700;border-bottom:1px solid var(--line);padding:5px 6px}
.pay-t tr.pgrp small{color:var(--muted);font-weight:600;font-size:.7rem}
.pbar{display:block;height:6px;border-radius:6px;background:var(--line2);overflow:hidden}.pbar i{display:block;height:100%}
.pbar.in{display:inline-block;width:70px;vertical-align:middle;margin-left:6px}
.pflag{display:inline-block;font-size:.6rem;font-weight:800;padding:1px 6px;border-radius:999px;margin-left:4px}
.pflag.ko{background:var(--danger-light);color:var(--danger)}.pflag.w{background:var(--warning-light,#FBF3DC);color:var(--warning,#B8860B)}
.pok{color:var(--success);font-weight:800}
.pdel{width:24px;height:24px;border-radius:6px;border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--danger);font-size:.8rem;line-height:1}
.pdel.mini{width:18px;height:18px;font-size:.6rem;padding:0}
/* B tiroirs */
.pacc{border:1px solid var(--line);border-radius:11px;margin-bottom:6px;overflow:hidden}
.pacc-h{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(60px,140px) auto auto;gap:10px;align-items:center;padding:6px 10px;background:var(--panel2)}
.pacc-h b{font-size:.85rem}.pacc-h small{display:block;color:var(--muted);font-size:.68rem}
.pacc-h .pm{font-variant-numeric:tabular-nums;text-align:right}
.pacc-b{padding:6px 10px 8px;display:flex;flex-wrap:wrap;gap:5px}
.ppill,.ptk{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line2);border-radius:8px;padding:3px 8px;font-size:.74rem;background:var(--panel);cursor:pointer}
.ppill em,.ptk em{font-style:normal;color:var(--muted);font-size:.68rem}.ppill b,.ptk b{font-variant-numeric:tabular-nums}
.ppill.mv,.ptk.mv{border-color:var(--warning,#B8860B);background:var(--warning-light,#FBF3DC)}
.ppill.ko,.ptk.ko{border-color:var(--danger);background:var(--danger-light)}
.pf{font-style:normal;width:15px;height:15px;border-radius:50%;display:inline-grid;place-items:center;font-size:.6rem;font-weight:900;color:#fff;background:var(--warning,#B8860B)}.pf.ko{background:var(--danger)}
/* C fil horaire */
.ptl{display:grid;grid-template-columns:62px 1fr}
.ptl-h{font-weight:800;color:var(--muted);font-size:.78rem;padding:6px 8px 0 0;border-right:2px solid var(--line);text-align:right}
.ptl-h small{display:block;font-size:.62rem;font-weight:600}
.ptl-e{display:flex;flex-wrap:wrap;gap:5px;padding:5px 0 8px 10px;border-bottom:1px dashed var(--line2);align-content:flex-start}
.ptk{padding:2px 8px 2px 2px}
/* contrôle */
.modal-content.xwide{max-width:1120px;width:96vw}
.ctl-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 10px}
.ctl-kpi{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.ctl-kpi span{background:var(--panel2);border:1px solid var(--line2);border-radius:9px;padding:4px 10px;min-width:74px}
.ctl-kpi small{display:block;font-size:.58rem;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:800}
.ctl-kpi b{font-variant-numeric:tabular-nums}.ctl-kpi .ko{border-color:var(--danger);background:var(--danger-light)}.ctl-kpi .ko b{color:var(--danger)}
.ctl-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px;font-size:.76rem}
.ctl-bar .hint{font-size:.72rem}
.ctl-t tbody tr{cursor:default}.ctl-t .cu{font-weight:400;color:var(--muted)}
.ctl-gt{display:inline-flex;align-items:center;gap:7px}.ctl-gt .av.sm{width:22px;height:22px;font-size:.55rem}
.ctl-cols{display:grid;gap:10px;align-items:start}
.ctl-col{border:1px solid var(--line);border-radius:11px;overflow:hidden}
.ctl-ch{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:7px 10px;background:var(--panel2)}
.ctl-ch small{display:block;color:var(--muted);font-size:.66rem}
.ctl-col table{display:table;width:100%;border-collapse:collapse;font-size:.78rem;white-space:nowrap}
.ctl-col td{padding:4px 8px;border-bottom:1px solid var(--line2);cursor:pointer}
.ctl-col .pmt{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}.ctl-col .ph{color:var(--muted)}
.ctl-col tr.pt td{background:var(--success-light)}.ctl-col tr.ko td{background:var(--danger-light)}
.ctl-col .pck{width:26px;text-align:center}
.ctl-col tr.ctl-pt td{font-weight:800;cursor:default;background:var(--panel2);border-bottom:0}
/* billetage F1 / F2 */
.bill-seg{margin-left:8px}.bill-seg button{padding:3px 8px;font-size:.66rem}
.cj-bill.f1{gap:0}
.cj-bill.f1 .cj-br{grid-template-columns:66px auto 1fr;gap:8px;padding:3px 0;border-bottom:1px dashed var(--line2)}
.cj-bill.f1 .cj-br .note{padding:5px 2px;font-size:.74rem}
.cj-bill.f1 .cj-br .stepper button{width:30px;height:30px;font-size:1rem}
.cj-bill.f1 .cj-br .stepper input{width:46px;padding:5px 2px}
.cj-bill.f2{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.cj-bill.f2 .cj-br{display:flex;flex-direction:column;align-items:stretch;gap:4px;border:1px solid var(--line2);border-radius:10px;padding:5px;background:var(--panel2)}
.cj-bill.f2 .cj-br .note{padding:4px 2px;font-size:.72rem}
.cj-bill.f2 .cj-br .stepper{justify-content:center;gap:3px}
.cj-bill.f2 .cj-br .stepper button{width:26px;height:26px;font-size:.9rem;border-radius:7px}
.cj-bill.f2 .cj-br .stepper input{width:38px;padding:4px 1px;font-size:.8rem}
.cj-bill.f2 .cj-br .st{text-align:center;font-size:.72rem}
.cj-bill.f2 .cj-br:has(.pieces){grid-column:1/-1;flex-direction:row;align-items:center;background:transparent;border:0;padding:4px 0}
.cj-bill.f2 .cj-br:has(.pieces) .note{width:66px;flex:none}.cj-bill.f2 .cj-br:has(.pieces) .st{flex:1;text-align:right}
.cj-br .st.z{color:var(--line)}
.cj-bill-tot{grid-column:1/-1;display:flex;justify-content:space-between;margin-top:6px;padding-top:7px;border-top:2px solid var(--text);font-weight:800}
.am-logo{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cj-chip.lg{padding-left:4px}
@media (max-width:700px){
  .qe-row{grid-template-columns:repeat(6,minmax(0,1fr))}
  .qe-row .qe-lg{grid-column:span 1}.qe-row .q-mo{grid-column:span 5}.qe-row .q-mt,.qe-row .q-fa,.qe-row .q-tk,.qe-row .q-fr{grid-column:span 3}
  .qe-row .q-h{grid-column:span 2}.qe-row button{grid-column:span 4}
  .pay-q{width:100%;margin-left:0}
  .pacc-h{grid-template-columns:28px 1fr auto auto}.pacc-h .pbar{display:none}
  .cj-bill.f2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.pay-t td.ptk2{max-width:120px;overflow:hidden;text-overflow:ellipsis}
.pay-t td.pty{white-space:normal;line-height:1.25}
.pay-t td,.pay-t th{padding-left:5px;padding-right:5px}

/* ══════════════════════════════════════════════════════════════
   v4.0 — CONTEXTE UNIQUE (restaurant + journée), MENU PAR RÔLE,
   BARRE DU HAUT REGROUPÉE, COCKPIT, RECETTES, MON ÉQUIPE
   ══════════════════════════════════════════════════════════════ */
:root{--site:#8A6A24;--site-ink:#FFFFFF;--site-soft:rgba(138,106,36,.12)}

/* Barre de gauche */
.sidebar{gap:2px;padding:16px 12px 12px}
.sidebar-brand{padding:0 6px 12px;margin-bottom:12px}
.sidebar-brand .badge{width:36px;height:36px;font-size:.85rem}
.ctx-box{display:grid;gap:8px;margin-bottom:4px}
.ctx-tile{position:relative;width:100%;border:0;border-radius:14px;padding:12px 13px;background:var(--site);color:var(--site-ink);text-align:left;display:grid;
  grid-template-columns:minmax(0,1fr) auto;gap:1px 8px;cursor:pointer;font-family:var(--font);
  box-shadow:0 8px 20px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.14);transition:background .45s var(--ease),transform .15s}
.ctx-tile:hover{transform:translateY(-1px)}
.ctx-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ctx-tile .k{font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;opacity:.85;font-weight:700}
.ctx-tile .n{font-size:1.05rem;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.ctx-tile .e{grid-column:1/-1;font-size:.72rem;opacity:.92;margin-top:4px;line-height:1.35}
.ctx-tile .ch{grid-row:1/3;grid-column:2;align-self:center;font-size:.95rem;opacity:.9}
.ctx-tile.lock{cursor:help}
.ctx-day{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.06);border-radius:11px;padding:5px 6px}
.ctx-day > button{border:0;background:rgba(255,255,255,.09);color:#fff;width:28px;height:28px;border-radius:8px;font-size:.72rem;cursor:pointer;flex:none;font-family:var(--font)}
.ctx-day > button:hover:not(:disabled){background:rgba(255,255,255,.18)}
.ctx-day > button:disabled{opacity:.3;cursor:default}
.ctx-day .d{position:relative;flex:1;min-width:0;text-align:center;color:#fff;cursor:pointer;margin:0;text-transform:none;letter-spacing:0;font-weight:600}
.ctx-day .d b{display:block;font-size:.8rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctx-day .d b::first-letter{text-transform:uppercase}
.ctx-day .d small{display:block;font-size:.62rem;color:var(--sidebar-text);opacity:.85;font-weight:500}
.ctx-day .d input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;padding:0;border:0;margin:0}
.ctx-day > button.auj{background:var(--accent);color:var(--sidebar-bg);font-weight:800}
.sb-nav{display:flex;flex-direction:column;gap:1px}
.sb-nav .sidebar-section{padding:12px 10px 4px}
.sb-nav .nav-btn{padding:8px 11px;font-size:.84rem}
.sb-nav .nav-btn .lb{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-btn.active::before{background:var(--site);left:-12px}
.nav-btn .nb{margin-left:auto;min-width:19px;height:19px;padding:0 6px;border-radius:10px;background:#E4404F;color:#fff;font-size:.64rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:none}
.nav-btn .nb.hidden{display:none}
.me-chip{margin:auto 0 0;position:relative}
.sb-nav + .me-chip{margin-top:auto}
.me-chip .dt{margin-left:auto;opacity:.6;font-style:normal;font-weight:800}
.me-chip > span{min-width:0}
.me-chip b,.me-chip small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Barre du haut regroupée */
.topbar{align-items:center;margin-bottom:22px}
.topbar .crumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.74rem;color:var(--muted);font-weight:600}
.topbar .crumb > i{width:9px;height:9px;border-radius:50%;background:var(--site);box-shadow:0 0 0 3px var(--site-soft);flex:none}
.topbar .crumb .sep{opacity:.6;margin:0 2px}
.topbar .crumb .passe{background:var(--warn-light);color:var(--warn);border-radius:6px;padding:1px 7px;font-size:.66rem;font-weight:800}
.topbar .crumb .sync{margin-left:6px}
.topbar-left h2{margin-top:2px}
.cmd-top{display:flex;align-items:center;gap:8px;min-width:250px;padding:9px 12px;background:var(--panel);border:1.5px solid var(--line);border-radius:var(--radius);
  color:var(--muted);font-size:.84rem;cursor:pointer;font-family:var(--font);transition:border-color .15s,box-shadow .15s}
.cmd-top:hover{border-color:var(--site);box-shadow:0 0 0 3px var(--site-soft)}
.cmd-top .lbl{flex:1;text-align:left}
.cmd-top kbd{font-family:ui-monospace,monospace;font-size:.66rem;border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--muted);background:var(--panel2)}
.bell-top{display:flex;align-items:center;gap:6px;padding:9px 14px;background:var(--panel);border:1.5px solid var(--line);border-radius:var(--radius);font-size:.84rem;font-weight:700;color:var(--text);cursor:pointer;font-family:var(--font)}
.bell-top:hover{border-color:var(--site)}
.bell-top .dot{top:-7px;right:-7px}
@media(min-width:761px){.main{box-shadow:inset 0 3px 0 var(--site)}}
.app.pinned .cmd-top{min-width:0}.app.pinned .cmd-top .lbl,.app.pinned .cmd-top kbd,.app.pinned .bell-top .lbl{display:none}

/* Petites fenêtres : choix du restaurant, menu personnel */
.pop-scrim{position:fixed;inset:0;z-index:900;background:rgba(8,18,14,.28);animation:trIn .15s both}
.ctx-pop,.me-pop{position:fixed;z-index:910;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 48px rgba(0,0,0,.28);
  padding:8px;display:grid;gap:2px;align-content:start;overflow-y:auto;animation:popIn .18s var(--ease) both}
.ctx-pop{width:320px}
.me-pop{width:250px}
@keyframes popIn{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
.ctx-pop.sheet,.me-pop.sheet{left:0;right:0;bottom:0;top:auto;width:auto;max-height:82vh;border-radius:18px 18px 0 0;padding:10px 10px calc(14px + env(safe-area-inset-bottom));animation:sheetIn .24s var(--ease) both}
@keyframes sheetIn{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.ctx-pop .t{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:800;padding:8px 8px 4px}
.ctx-pop .it{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:3px 10px;align-items:center;border:0;background:transparent;color:var(--text);text-align:left;padding:9px 8px;border-radius:10px;cursor:pointer;font-family:var(--font);width:100%}
.ctx-pop .it:hover,.ctx-pop .it:focus-visible{background:var(--panel2);outline:none}
.ctx-pop .it.on{background:var(--panel2)}
.ctx-pop .it.on{background:color-mix(in srgb,var(--c) 13%,var(--panel))}
.ctx-pop .it i{width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.ctx-pop .it b{font-size:.86rem}
.ctx-pop .it small{grid-column:2/-1;font-size:.7rem;color:var(--muted);line-height:1.35}
.ctx-pop .it .x{font-size:.66rem;color:var(--muted);font-weight:700}
.ctx-pop .ft{font-size:.68rem;color:var(--muted);padding:9px 8px 4px;border-top:1px dashed var(--line);margin-top:4px;line-height:1.4}
.ctx-pop .lock{font-size:.76rem;color:var(--text2);background:var(--panel2);border-radius:10px;padding:10px 12px;margin:6px 4px 2px;line-height:1.45}
.ctx-pop .lock b{display:block;color:var(--text);margin-bottom:2px}
.ctx-pop .ctx-day{background:var(--sidebar-bg);margin:0 4px 4px}
.me-pop .me-h{display:flex;align-items:center;gap:10px;padding:8px 8px 10px;border-bottom:1px solid var(--line2);margin-bottom:4px;min-width:0}
.me-pop .me-h > div{min-width:0}
.me-pop .me-h b{display:block;font-size:.86rem}.me-pop .me-h small{display:block;font-size:.7rem;color:var(--muted)}
.me-pop button{border:0;background:transparent;color:var(--text);text-align:left;padding:9px 10px;border-radius:9px;font-size:.84rem;cursor:pointer;font-family:var(--font);display:flex;align-items:center;gap:8px;width:100%}
.me-pop button:hover,.me-pop button:focus-visible{background:var(--panel2);outline:none}
.me-pop button kbd{margin-left:auto;font-size:.62rem;font-family:ui-monospace,monospace;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px}
.me-pop hr{border:0;border-top:1px solid var(--line2);margin:4px 0}
.me-pop .out{color:var(--danger)}

/* Transition quand on change de restaurant */
.ctx-trans{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;background:var(--next,#8A6A24);color:#fff}
.ctx-trans.show{animation:trIn .28s var(--ease) both}
.ctx-trans.out{animation:trOut .3s ease both}
@keyframes trIn{from{opacity:0}to{opacity:1}}
@keyframes trOut{from{opacity:1}to{opacity:0}}
.ctx-trans .in{display:grid;gap:12px;justify-items:center;text-align:center;padding:24px}
.ctx-trans small{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;opacity:.85;font-weight:700}
.ctx-trans h3{font-size:clamp(1.6rem,5vw,2.4rem);font-weight:800;letter-spacing:-.02em;color:inherit}
.ctx-trans ul{list-style:none;display:grid;gap:5px;font-size:.86rem;text-align:left;margin-top:4px}
.ctx-trans li{opacity:0;animation:trLi .3s ease forwards}
.ctx-trans li:nth-child(1){animation-delay:.12s}.ctx-trans li:nth-child(2){animation-delay:.32s}.ctx-trans li:nth-child(3){animation-delay:.52s}.ctx-trans li:nth-child(4){animation-delay:.72s}
@keyframes trLi{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.ctx-trans .bar{width:220px;height:4px;border-radius:4px;background:rgba(255,255,255,.28);overflow:hidden}
.ctx-trans .bar i{display:block;height:100%;width:100%;background:currentColor;transform-origin:left;animation:trBar 1s ease forwards}
@keyframes trBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* Formulaires : restaurant fixé par le contexte */
.ctx-fixe{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--panel2);font-size:.88rem;min-height:42px}
.ctx-fixe i{width:10px;height:10px;border-radius:50%;flex:none}
.ctx-fixe b{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctx-fixe button{border:0;background:none;color:var(--primary);font-weight:700;font-size:.74rem;cursor:pointer;text-decoration:underline;font-family:var(--font);padding:0}

/* Tableau de bord : onglets + cockpit du groupe + « Aujourd'hui à … » */
.dash-tabs{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:16px;width:max-content;max-width:100%;overflow-x:auto}
.dash-tabs button{border:0;background:transparent;padding:8px 14px;border-radius:9px;font-weight:700;font-size:.82rem;color:var(--muted);cursor:pointer;font-family:var(--font);white-space:nowrap}
.dash-tabs button:hover{color:var(--text)}
.dash-tabs button.on{background:var(--primary);color:#fff}
.cockpit{margin-bottom:20px}
.ck-h{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ck-h h3{font-size:1.05rem;font-weight:800}
.ck-h p{font-size:.8rem;color:var(--muted)}
.ck-sum{display:flex;gap:6px;flex-wrap:wrap}
.ck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.ck-site{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 14px 12px;cursor:pointer;display:grid;gap:9px;overflow:hidden;
  transition:transform .15s,box-shadow .15s,border-color .15s;box-shadow:var(--shadow);animation:fadeUp .3s var(--ease) both}
.ck-site::before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:var(--c)}
.ck-site:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--c)}
.ck-site:focus-visible{outline:2px solid var(--c);outline-offset:2px}
.ck-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.ck-top b{font-size:.95rem;line-height:1.25}
.ck-st{display:inline-block;font-size:.66rem;font-weight:800;padding:3px 8px;border-radius:20px;white-space:nowrap;background:var(--panel2);color:var(--muted)}
.ck-st.ok{background:var(--success-light);color:var(--success)}
.ck-st.encours{background:var(--info-light);color:var(--info)}
.ck-st.transit{background:var(--warn-light);color:var(--warn)}
.ck-st.ko{background:var(--danger-light);color:var(--danger)}
.ck-v small{display:block;font-size:.64rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.ck-v b{font-size:1.2rem;font-variant-numeric:tabular-nums}
.ck-eq{font-size:.72rem;color:var(--text2)}
.ck-go{justify-self:start;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:8px;padding:5px 10px;font-size:.74rem;font-weight:700;cursor:pointer;font-family:var(--font)}
.ck-go:hover{border-color:var(--c)}
span.ck-go{border:0;background:none;padding:0;color:var(--c)}
.etapes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));position:relative}
.etapes span{display:grid;justify-items:center;align-content:start;gap:4px;position:relative;font-size:.66rem;color:var(--muted);text-align:center}
.etapes span::before{content:"";position:absolute;top:11px;left:-50%;right:50%;height:2px;background:var(--line)}
.etapes span:first-child::before{display:none}
.etapes span.done::before,.etapes span.cur::before{background:var(--c,var(--site))}
.etapes i{position:relative;z-index:1;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:.66rem;font-weight:800;background:var(--panel2);border:2px solid var(--line);color:var(--muted)}
.etapes .done i{background:var(--c,var(--site));border-color:var(--c,var(--site));color:#fff}
.etapes .cur i{border-color:var(--c,var(--site));color:var(--c,var(--site));background:var(--panel)}
.etapes b{font-weight:700;line-height:1.2}
.etapes .cur b{color:var(--text)}
.etapes.mini i{width:13px;height:13px;font-size:0;border-width:2px}
.etapes.mini span::before{top:5px}
.ctx-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--site-soft);border:1px solid var(--line);border-left:5px solid var(--site);border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:.84rem}
.ctx-banner .btn{margin-left:auto}
.jour-site{background:var(--panel);border:1px solid var(--line);border-top:5px solid var(--c);border-radius:16px;padding:18px 20px;margin-bottom:20px;display:grid;gap:16px;box-shadow:var(--shadow)}
.js-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.js-h small{display:block;font-size:.74rem;color:var(--muted);font-weight:600}
.js-h small::first-letter{text-transform:uppercase}
.js-h h3{font-size:1.2rem;font-weight:800;margin-top:2px}
.js-k{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.js-k small{display:block;font-size:.64rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.js-k b{font-size:1.05rem;font-variant-numeric:tabular-nums}
.js-k .eqk b{font-size:.84rem;font-weight:600}
.js-a{display:flex;gap:8px;flex-wrap:wrap}

/* Recettes remises */
.rm-todo .rm-do{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.rm-todo .rm-do:last-child{border-bottom:0}
.rm-do .rm-b{flex:1;min-width:180px}
.rm-do .rm-b b{display:block;font-size:.88rem}
.rm-do .rm-b small{font-size:.72rem;color:var(--muted)}
.rm-do .rm-m{font-size:1.1rem}
.rm-do .rm-act{display:flex;gap:6px;flex-wrap:wrap}
.rj{margin-bottom:14px}
.rj-d{display:flex;justify-content:space-between;align-items:baseline;padding:6px 2px;border-bottom:2px solid var(--line2);margin-bottom:6px;font-size:.78rem;color:var(--muted);font-weight:700}
.rj-d span::first-letter{text-transform:uppercase}
.rj-d b{color:var(--text);font-variant-numeric:tabular-nums}
.rm-fin{font-size:.66rem;font-weight:800;color:var(--success);background:var(--success-light);border-radius:6px;padding:1px 6px}

/* Mon équipe */
.eq-site{border-top:4px solid var(--c)}
.eq-site h3 .eq-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--c);margin-right:8px;vertical-align:-1px}
.eq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.eq-p{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.eq-i{min-width:0}
.eq-i b{display:block;font-size:.92rem}
.eq-f{display:block;font-size:.78rem;color:var(--primary);font-weight:700}
.eq-i small{display:block;font-size:.7rem;color:var(--muted);margin-top:2px}
.eq-a{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}

/* Réglages : couleur du restaurant */
.coul-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:4px}
.coul{width:28px;height:28px;border-radius:50%;border:3px solid var(--panel);box-shadow:0 0 0 1px var(--line);background:var(--c);cursor:pointer;padding:0}
.coul.on{box-shadow:0 0 0 2px var(--text)}
.coul-row input[type=color]{width:42px;height:32px;padding:2px;border-radius:8px;cursor:pointer}
.coul-dot{display:inline-block;width:11px;height:11px;border-radius:50%;vertical-align:-1px;margin-right:2px}

/* Téléphone */
.m-ctx{display:none}
@media(max-width:760px){
  .mobile-bar{gap:6px;padding-left:8px;padding-right:8px}
  .m-ctx{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:var(--site);color:var(--site-ink);border:0;border-radius:11px;padding:6px 10px;text-align:left;cursor:pointer;
    font-family:var(--font);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);transition:background .45s var(--ease)}
  .m-ctx > i{display:none}
  .m-ctx > span{flex:1;min-width:0}
  .m-ctx b{display:block;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
  .m-ctx small{display:block;font-size:.66rem;opacity:.88}
  .m-ctx small::first-letter{text-transform:uppercase}
  .m-ctx em{font-style:normal;opacity:.88}
  .topbar{margin-bottom:12px}
  .topbar-left h2{display:block;font-size:1.15rem}
  .topbar-right{display:none}
  .topbar .crumb{font-size:.68rem}
  .bottom-nav button{position:relative}
  .bottom-nav button.active{color:var(--site)}
  .bottom-nav button.plus .i{background:var(--site);color:var(--site-ink);box-shadow:0 4px 12px rgba(0,0,0,.25)}
  .bottom-nav .bd{position:absolute;top:3px;left:calc(50% + 6px);min-width:17px;height:17px;border-radius:9px;background:#E4404F;color:#fff;font-size:.6rem;display:flex;align-items:center;justify-content:center;padding:0 4px;font-weight:800}
  .me-pop .only-desk{display:none}
  .js-k{grid-template-columns:1fr 1fr}.js-k .eqk{grid-column:1/-1}
  .etapes b{font-size:.56rem}
  .jour-site{padding:14px}
  .ck-grid{grid-template-columns:1fr}
  .dash-tabs{width:100%}
  .dash-tabs button{padding:8px 11px}
}
@media print{.ctx-pop,.me-pop,.pop-scrim,.ctx-trans,.dash-tabs,.cockpit,.ctx-banner,.jour-site{display:none !important}}
.ck-top{flex-direction:column;align-items:flex-start;gap:5px}
.sb-nav .nav-btn .lb{white-space:normal;line-height:1.25;overflow:visible}
@media(max-width:760px){
  .rj .rm{grid-template-columns:36px minmax(0,1fr) auto}
  .rj .rm > .btn{grid-column:2/-1;justify-self:start}
  .rj .rm .rm-st{white-space:normal}
  .topbar .crumb .sync:not(.off):not(.busy){display:none}
  .rm-todo .rm-do .rm-act{width:100%}
}
@media print{.main{box-shadow:none !important}}
@media(max-width:1100px) and (min-width:761px){
  .cmd-top{min-width:0}.cmd-top .lbl,.cmd-top kbd{display:none}
  .bell-top .lbl{display:none}
}

/* ══════════════════════════════════════════════════════════════
   v4.0.1 — opérations en attente (en flou), date et heure de la saisie
   ══════════════════════════════════════════════════════════════ */
.flou{filter:blur(.6px) grayscale(.5);opacity:.55;transition:filter .2s,opacity .2s}
tr.att:hover .flou,.mv-card.att:hover .flou,.pn.flou-l:hover .flou{filter:none;opacity:.9}
table.mv-compact tr.mv-r.att td{background:repeating-linear-gradient(135deg,rgba(184,134,11,.06) 0 8px,transparent 8px 16px)}
table.mv-compact tr.mv-r.att td:first-child{border-left:4px dashed var(--warn)}
.att-pill{display:inline-block;font-size:.66rem;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--warn-light);color:var(--warn);white-space:nowrap;cursor:pointer}
.att-r{display:inline-block;font-size:.64rem;font-weight:700;color:var(--warn);background:var(--warn-light);border-radius:6px;padding:0 6px;margin-left:4px;filter:none}
.att-jour{display:inline-flex;align-items:center;gap:6px;margin-left:8px;background:rgba(242,201,76,.2);color:#F2C94C;border-radius:999px;padding:1px 9px;font-size:.7rem;font-weight:800}
.att-jour .btn{padding:2px 9px;font-size:.66rem}
.mv-day .att-jour{background:var(--warn-light);color:var(--warn);margin-left:6px}
.mv-card.att{border-style:dashed;border-color:var(--warn);background:repeating-linear-gradient(135deg,rgba(184,134,11,.05) 0 8px,transparent 8px 16px),var(--panel)}
.mv-card.att .act .btn{padding:4px 10px}
.mv-att-tout{margin:-2px 0 8px}.mv-att-tout .btn{width:100%}
.pn.flou-l{grid-template-columns:34px minmax(0,1fr) auto auto;border-style:dashed;border-color:var(--warn);background:repeating-linear-gradient(135deg,rgba(184,134,11,.05) 0 8px,transparent 8px 16px),var(--panel2)}
.pn.dem.flou .pn-b b,.pn.dem.flou .pn-b small,.pn.dem.flou .pn-m{filter:blur(.6px) grayscale(.5);opacity:.55}
.pn-ico.att{background:var(--warn-light)}
.pn-ico.int{background:var(--info-light);color:var(--info);font-weight:800}
.pn-act{display:flex;gap:4px;align-items:center}
.pn-act .btn{padding:4px 9px;font-size:.72rem}
.q-dt{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:8px}
.q-dt-alerte{grid-column:1/-1;margin-top:-6px;padding:8px 12px;border-radius:10px;background:var(--warn-light);color:var(--warn);font-size:.8rem;font-weight:600;line-height:1.45}
.q-dt-alerte a{color:inherit;font-weight:800;margin-left:4px}
@media(max-width:760px){
  .pn.flou-l{grid-template-columns:34px minmax(0,1fr) auto}
  .pn.flou-l .pn-act{grid-column:2/-1;justify-content:flex-start}
  .q-dt{grid-template-columns:minmax(0,1fr) 112px}
}

/* ═══ v4.0.3 · Caisse : retraits pas encore comptés + carte « En main » ═══ */
.kpi .sub2{font-size:.72rem;color:var(--text2);margin-top:8px;padding:6px 9px;border-radius:9px;background:var(--panel2);line-height:1.35;border-left:3px solid var(--info)}
.kpi.kpi-main{border:1.5px solid #a9d3b6}
.kpi.kpi-main.gold{border-color:#e6cf8f}
@supports (color: color-mix(in srgb, red 50%, blue)){
  .kpi.kpi-main{border-color:color-mix(in srgb, var(--success) 45%, transparent)}
  .kpi.kpi-main.gold{border-color:color-mix(in srgb, var(--warn) 45%, transparent)}
}
.kpi.kpi-main .btn{margin-top:10px}
td .hint{font-size:.72rem;margin-top:2px}

/* ═══ v4.0.4 · Balance du caissier : opérations du gérant hors tiroir ═══ */
.cj-hors{margin-top:10px;padding:9px 12px;border-radius:10px;background:var(--info-light);color:var(--text2);font-size:.8rem;line-height:1.45;border-left:3px solid var(--info)}
.cj-hors b{color:var(--text)}

/* ═══ v4.0.5 · Caisse en mode simple (caissiers) ═══ */
.cjs-mode{display:inline-flex;border:1.5px solid var(--line);border-radius:999px;overflow:hidden;background:var(--panel2);float:right;margin:0 0 8px 10px;position:relative;z-index:2}
.cjs-mode button{border:0;background:transparent;padding:7px 13px;font:inherit;font-size:.78rem;font-weight:700;color:var(--text2);cursor:pointer}
.cjs-mode button.on{background:var(--primary);color:#fff}
.cjs{max-width:680px;margin:0 auto}
.cjs-pills{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:2px 0 12px}
.cjs-pill{display:flex;flex-direction:column;align-items:center;gap:4px;border:1.5px solid var(--line);background:var(--panel);border-radius:12px;padding:8px 2px;font:inherit;font-size:.72rem;font-weight:700;color:var(--text2);cursor:pointer;line-height:1.15;text-align:center}
.cjs-pill i{font-style:normal;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--panel2);color:var(--text2);font-weight:800;font-size:.85rem}
.cjs-pill.ok i{background:var(--success-light);color:var(--success)}
.cjs-pill.on{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
.cjs-pill.on i{background:var(--primary);color:#fff}
.cjs-card h3,.cjs-done h3{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:0 0 6px;font-size:1.12rem}
.cjs-recap small{white-space:nowrap}
.cjs-aide{color:var(--text2);font-size:.86rem;line-height:1.45;margin:0 0 10px}
.cjs .cjs-big,.cjs-big{font-size:1.6rem;font-weight:800;padding:14px 16px;text-align:right;width:100%;box-sizing:border-box;border-radius:12px;font-variant-numeric:tabular-nums}
.cjs-veille{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.86rem;color:var(--text2);background:var(--panel2);border-radius:10px;padding:9px 12px}
.cjs-veille.ok{background:var(--success-light);color:var(--success)}
.cjs-info{margin-top:8px;font-size:.84rem;color:var(--info);background:var(--info-light);border-radius:10px;padding:8px 12px;line-height:1.45}
.cjs-h4{margin:22px 0 4px;font-size:1rem}
.cjs-moyens{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-bottom:10px}
.cjs-mo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 6px;border:1.5px solid var(--line);border-radius:12px;background:var(--panel);font:inherit;font-size:.8rem;font-weight:700;color:var(--text);cursor:pointer;min-height:86px}
.cjs-mo .lgm{width:38px;height:38px;font-size:.85rem}
.cjs-mo.on{border-color:var(--primary);outline:3px solid var(--primary-light)}
.cjs-ajout{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;background:var(--panel2);border-radius:12px;padding:12px;margin-bottom:10px}
.cjs-ajout #cjsAjMt{grid-column:1/-1;font-size:1.35rem;font-weight:800;text-align:right;padding:12px 14px}
.cjs-ajout #cjsAjRef{grid-column:1/-1}
.cjs-ajout .btn{grid-column:1/-1;padding:13px;font-size:.95rem}
.cjs-p{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:10px 2px;border-bottom:1px solid var(--line2)}
.cjs-p .l{display:flex;flex-direction:column;min-width:0} .cjs-p .l small{color:var(--muted);font-size:.74rem}
.cjs-p .m{font-size:1.05rem;font-variant-numeric:tabular-nums}
.cjs-p .del{border:0;background:var(--danger-light);color:var(--danger);width:36px;height:36px;border-radius:50%;font-size:1.15rem;cursor:pointer}
.cjs-p.dep .m{color:var(--danger)}
.cjs-sous{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--panel2);font-size:.86rem}
.cjs-sous.ko{background:var(--danger-light);color:var(--danger)}
.cjs-plus{margin-top:16px;border:1px dashed var(--line);border-radius:12px;padding:10px 12px}
.cjs-plus summary{cursor:pointer;font-weight:700;font-size:.88rem;color:var(--text2)}
.cjs-plus-btns{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}
.cjs-bills{display:flex;flex-direction:column;gap:8px}
.cjs-b{display:grid;grid-template-columns:92px 48px minmax(0,1fr) 48px 92px;gap:8px;align-items:center}
.cjs-b .note{display:grid;place-items:center;height:46px;border-radius:9px;font-weight:800;font-size:.95rem;color:#1A1A1A}
.cjs-b .pm{height:48px;border-radius:12px;border:1.5px solid var(--line);background:var(--panel);font-size:1.45rem;font-weight:700;cursor:pointer;color:var(--text)}
.cjs-b .pm:active{background:var(--primary-light)}
.cjs-b input{height:48px;text-align:center;font-size:1.25rem;font-weight:800;border-radius:10px;width:100%;box-sizing:border-box}
.cjs-b .st{text-align:right;font-weight:700;font-size:.86rem;font-variant-numeric:tabular-nums} .cjs-b .st.z{color:var(--muted);font-weight:500}
.cjs-b.pieces{grid-template-columns:92px minmax(0,1fr)} .cjs-b.pieces input{text-align:right;font-size:1.1rem}
.cjs-b .note.pieces{background:var(--panel2);border:1px dashed var(--line);color:var(--text2)}
.cjs-verdict{margin-top:14px;border-radius:14px;padding:14px 16px;display:grid;gap:2px;text-align:center}
.cjs-verdict small{font-size:.74rem;opacity:.85} .cjs-verdict .tot{font-size:1.15rem} .cjs-verdict .lib{font-size:1.6rem;letter-spacing:.02em}
.cjs-verdict span{font-size:.84rem}
.cjs-verdict.ok{background:var(--success-light);color:var(--success)} .cjs-verdict.ko{background:var(--danger-light);color:var(--danger)}
.cjs-verdict.plus{background:var(--warn-light);color:var(--warn)} .cjs-verdict.wait{background:var(--panel2);color:var(--text2)}
.cjs-note{margin-top:12px}
.cjs-finbox{margin-top:14px}
.cjs-remise{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding:12px 14px;border-radius:12px;background:var(--accent-light)}
.cjs-remise b{font-size:1.4rem}
.cjs-bloc{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.cjs-bloc button{display:flex;justify-content:space-between;gap:8px;text-align:left;border:0;border-radius:10px;padding:10px 12px;background:var(--danger-light);color:var(--danger);font:inherit;font-size:.86rem;font-weight:700;cursor:pointer}
.cjs-go{width:100%;margin-top:14px;padding:16px;font-size:1.05rem}
.cjs-go:disabled{opacity:.45;cursor:not-allowed}
.cjs-nav{display:flex;justify-content:space-between;gap:10px;margin:12px 0}
.cjs-nav .btn{flex:1;padding:14px;font-size:.95rem}
.cjs-recap{position:sticky;bottom:12px;z-index:6;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:var(--sidebar-bg);color:#fff;border-radius:14px;padding:8px 10px;box-shadow:var(--shadow-lg);margin-top:8px}
.cjs-recap div{display:flex;flex-direction:column;align-items:center} .cjs-recap small{font-size:.58rem;text-transform:uppercase;letter-spacing:.6px;opacity:.75;font-weight:700} .cjs-recap b{font-size:.88rem;font-variant-numeric:tabular-nums}
.cjs-recap .st.ok b{color:#8FE0B0} .cjs-recap .st.ko b{color:#FFB4A8} .cjs-recap .st.plus b{color:#F5D27A}
.cjs-done .cjs-done-h{font-size:1rem;margin-bottom:12px}
.cjs-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.cjs-kpis div{background:var(--panel2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column} .cjs-kpis small{color:var(--muted);font-size:.74rem} .cjs-kpis b{font-size:1.15rem}
.cjs-kpis .st.ok{background:var(--success-light);color:var(--success)} .cjs-kpis .st.ko{background:var(--danger-light);color:var(--danger)} .cjs-kpis .st.plus{background:var(--warn-light);color:var(--warn)}
.cjs-fin{margin-top:10px;font-size:.9rem;padding:10px 12px;border-radius:10px;background:var(--panel2);line-height:1.45}
.cjs-done-a{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
@media(max-width:760px){ .cjs-recap{bottom:calc(64px + env(safe-area-inset-bottom))} .cjs-mode{float:none;display:flex;margin:0 0 10px} .cjs-mode button{flex:1} }
@media(max-width:420px){ .cjs-b{grid-template-columns:76px 44px minmax(0,1fr) 44px 72px;gap:6px} .cjs-b .note{font-size:.84rem} .cjs-b .st{font-size:.78rem} }
/* ═══ v4.0.5 · Rappels (alertes d'oubli) ═══ */
.cj-rappel{margin:8px 0;padding:10px 12px;border-radius:10px;background:var(--danger-light);color:var(--danger);font-weight:700;font-size:.88rem;border-left:4px solid var(--danger);clear:both}
.rp-nf .rp-ico{background:var(--danger-light);color:var(--danger);font-size:1.1rem;display:grid;place-items:center}
.rp-nf.ecart .rp-ico{background:var(--warn-light)}
/* ═══ v4.1 · Livre du jour du gérant, compte en T semaine / mois, clôtures ═══ */
:root{--lv-th:#F1EADA;--lv-rcp:#EEF6F0;--t-in:#F3F9F5;--t-out:#FDF3F1;--t-trait:#1A1A1A;--pdg-bg:#FFFBF0;--champ:#FFFFFF;--memo-ink:#2c5a7a;--neg-ink:#7d241b;--neg-bord:#f0b8b0;--pointe:#C0392B;--ben-bg:#E3F0E8}
:root[data-theme="dark"]{--lv-th:#232D28;--lv-rcp:rgba(86,192,140,.08);--t-in:rgba(86,192,140,.07);--t-out:rgba(238,107,94,.07);--t-trait:#8F9A92;--pdg-bg:rgba(212,180,110,.07);--champ:#1F2924;--memo-ink:#9CC7E6;--neg-ink:#F2B1A9;--neg-bord:rgba(238,107,94,.4);--pointe:#FF8A7A;--ben-bg:rgba(86,192,140,.13)}
.v41-tel{display:none !important}
@media(max-width:760px){ .v41-pc{display:none !important} .lvl.v41-tel{display:block !important} .lvm-add.v41-tel,.lv-memo.v41-tel{display:flex !important} }
.neg{color:var(--danger)}
/* ── Livre du jour ── */
.lv{display:flex;flex-direction:column;gap:16px}
.lv .card{margin:0}
.lv-h1{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.lv-h1 small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.8px;font-weight:700}
.lv-h1 h3{margin:2px 0 4px;font-size:1.25rem;display:block;text-transform:none}
.lv-h1 h3::first-letter{text-transform:uppercase}
.lv-who{color:var(--text2);font-size:.82rem;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.lv-tools{display:flex;gap:6px;flex-wrap:wrap}
.lv-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:16px 0 14px}
.lv-week .d{border:1.5px solid var(--line);background:var(--panel);border-radius:10px;padding:7px 4px;text-align:center;font:inherit;font-size:.72rem;color:var(--muted);line-height:1.25;cursor:pointer}
.lv-week .d:hover:not([disabled]){border-color:var(--primary)}
.lv-week .d b{display:block;color:var(--text);font-size:.8rem;font-variant-numeric:tabular-nums}
.lv-week .d.neg b{color:var(--danger)}
.lv-week .d.sel{border-color:var(--primary);background:var(--primary-light);box-shadow:0 0 0 2px var(--primary-light)}
.lv-week .d.fut{opacity:.55;cursor:default}
.lv-week .d i{font-style:normal;font-size:.68rem;display:block}
.lv-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.lv-kpis>div{background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:10px 14px}
.lv-kpis small{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.7px;font-weight:700}
.lv-kpis b{display:block;font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.lv-kpis em{display:block;font-style:normal;font-size:.72rem;color:var(--muted)}
.lv-kpis .in b{color:var(--success)} .lv-kpis .out b{color:var(--danger)}
.lv-kpis .solde{background:var(--sidebar-bg);border-color:var(--sidebar-bg)} .lv-kpis .solde small,.lv-kpis .solde em{color:#C9D5CE}
.lv-kpis .solde b{color:#fff} .lv-kpis .solde.neg b{color:#FF9DA6}
.lv-page{padding:0;overflow:hidden}
.lv-page .ph{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;background:var(--paper);border-bottom:1.5px solid var(--line)}
.lv-page .ph b{font-size:.9rem} .lv-page .ph span{color:var(--muted);font-size:.78rem}
.lv-page .table-wrap{margin:0;border:0;border-radius:0}
.lv-t{font-size:.82rem;width:100%}
.lv-t th{padding:9px 10px;background:var(--lv-th);color:var(--text2);border-bottom:1.5px solid var(--line);white-space:nowrap;text-align:left}
.lv-t td{padding:7px 10px;border-bottom:1px solid var(--line2);vertical-align:middle}
.lv-t tbody tr{cursor:pointer} .lv-t tbody tr.rep,.lv-t tbody tr.att{cursor:default}
.lv-t tbody tr:hover td{filter:brightness(.98)}
.lv-t .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.lv-t td.h{color:var(--muted);font-variant-numeric:tabular-nums;width:46px}
.lv-t td.ref{color:var(--muted);font-size:.72rem;white-space:nowrap;width:118px}
.lv-t td.rec{color:var(--success);font-weight:800}
.lv-t td.dep{color:var(--danger);font-weight:700}
.lv-t td.sol{font-weight:700;color:var(--text);background:rgba(241,234,218,.45)}
:root[data-theme="dark"] .lv-t td.sol{background:rgba(255,255,255,.03)}
.lv-t td.sol.neg{color:var(--danger);background:var(--danger-light)}
.lv-t tr.rep td{background:var(--accent-light);font-weight:700}
.lv-t tr.rcp td:not(.sol){background:var(--lv-rcp)}
.lv-t tr.alerte td{box-shadow:inset 0 2px 0 var(--danger)}
.lv-t tr.att td{color:var(--muted);background:var(--panel2);font-style:italic}
.lv-t tr.vatt td.dep{color:var(--warn)}
.lv-t td.vide{text-align:center;color:var(--muted);padding:18px}
.lv-t .cat{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:20px;background:var(--panel2);border:1px solid var(--line2);color:var(--text2);font-size:.66rem;font-weight:700;vertical-align:1px;font-style:normal}
.lv-t .cat.in{background:var(--success-light);border-color:transparent;color:var(--success)}
.lv-t .att-tag{margin-left:6px;font-size:.68rem;color:var(--warn);font-weight:700}
.lv-t .pj{font-size:.85rem;margin-left:5px;cursor:zoom-in}
label.btn{display:inline-flex;align-items:center;text-transform:none;letter-spacing:0;margin:0;font-size:.8rem;font-weight:600}
label.btn.sm{font-size:.76rem}
label.pj-add{display:inline;margin:0 0 0 5px;font-size:.78rem;text-transform:none;letter-spacing:0;opacity:.45;cursor:pointer;filter:grayscale(1)} label.pj-add:hover{opacity:1;filter:none}
.lv-t .pt{text-align:center;width:54px;font-weight:800}
.lv-t .pt.clic{cursor:pointer} .lv-t .pt.clic:hover{background:var(--accent-light)}
.lv-t .pt .ok{color:var(--pointe);font-size:1.05rem}
.lv-t .pt .st{color:var(--warn);font-size:1rem}
.lv-t .pt .no{color:var(--line)}
.lv-t tfoot td{background:var(--panel2);font-weight:800;border-bottom:0}
.lv-t tfoot tr.tot td{border-top:2px solid var(--text);font-size:.88rem}
.lv-t tfoot tr.cum td{font-weight:600;color:var(--text2);font-size:.78rem;background:var(--paper)}
.lv-memo{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:11px 18px;background:var(--info-light);color:var(--memo-ink);font-size:.8rem;border-top:1px solid var(--line2)}
.lv-memo>span:first-child{flex:1 1 260px}
.lv-memo .mp{display:inline-flex;align-items:center;gap:5px;background:var(--champ);border-radius:20px;padding:2px 10px;font-weight:700;color:var(--text)}
.lv-memo .mp i{width:9px;height:9px;border-radius:50%;display:inline-block}
.lv-add{display:flex;gap:8px;align-items:center;padding:12px 18px;background:var(--paper);border-top:1.5px dashed var(--line);flex-wrap:wrap}
.lv-add .plus{width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.lv-add input,.lv-add select{padding:9px 12px;border:1.5px solid var(--line);border-radius:9px;background:var(--champ);color:var(--text);font-size:.82rem;min-width:0;width:auto}
.lv-add input.lib{flex:1 1 200px} .lv-add input.m{width:110px;text-align:right} .lv-add select{max-width:165px} .lv-add input[type=time]{width:92px;padding:9px 6px}
.lv-add .sw{display:inline-flex;border:1.5px solid var(--line);border-radius:9px;overflow:hidden;font-size:.75rem;flex:none}
.lv-add .sw b{padding:8px 10px;color:var(--muted);cursor:pointer} .lv-add .sw b.on{background:var(--danger-light);color:var(--danger);cursor:default}
.lv-add .btn.pris{border-color:var(--success);color:var(--success)}
.lv-hint{padding:0 18px 12px;background:var(--paper);font-size:.74rem;color:var(--warn)}
.lv-neg{display:flex;gap:14px;align-items:flex-start;background:var(--danger-light);border:1.5px solid var(--neg-bord);border-left:5px solid var(--danger);border-radius:12px;padding:14px 16px;color:var(--neg-ink);font-size:.84rem}
.lv-neg .ic{font-size:1.4rem;line-height:1}
.lv-neg .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.lv-neg .btn{font-size:.76rem}
.lv-att{margin-top:6px;font-weight:700;color:var(--warn)}
.lv-info{margin:0}
.lv-aide{font-size:.8rem;color:var(--muted);padding:2px 4px}
.lv-aide summary{cursor:pointer;font-weight:700;color:var(--text2)}
.lv-aide p{margin-top:6px;line-height:1.5}
/* téléphone : la page devient une liste */
.lvl{padding:0 !important;overflow:hidden}
.lvl .li{display:grid;grid-template-columns:40px 1fr auto;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line2);align-items:center;cursor:pointer}
.lvl .li .h{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums}
.lvl .li .t{min-width:0} .lvl .li .t b{display:block;font-size:.84rem;line-height:1.25}
.lvl .li .t small{color:var(--muted);font-size:.7rem}
.lvl .li .m{text-align:right;font-variant-numeric:tabular-nums}
.lvl .li .m b{display:block;font-size:.88rem;white-space:nowrap}
.lvl .li .m small{display:block;color:var(--muted);font-size:.68rem;white-space:nowrap}
.lvl .li .m small.neg{color:var(--danger);font-weight:700}
.lvl .li.rcp{background:var(--lv-rcp)}
.lvl .li.att{opacity:.7;font-style:italic;cursor:default}
.lvl .li .ok{color:var(--pointe);font-weight:800;margin-left:3px} .lvl .li .st{color:var(--warn);margin-left:3px}
.lvl .hd{display:flex;justify-content:space-between;padding:10px 12px;background:var(--paper);border-bottom:1.5px solid var(--line);font-size:.78rem;color:var(--muted)}
.lvl .hd b{color:var(--text)} .lvl .hd.fin{border-top:1.5px solid var(--line);border-bottom:0} .lvl .hd b.neg{color:var(--danger)}
.lvm-add{gap:8px}
.lvm-add .btn{flex:1;padding:12px;font-size:.92rem}
.lv-memo.card{border-radius:12px;padding:10px 12px}
/* fenêtre « argent entré » */
.en-src{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
.en-o{display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--line);border-radius:12px;padding:10px;cursor:pointer;text-transform:none;letter-spacing:0;font-size:.8rem;color:var(--text);margin:0}
.en-o{position:relative} .en-o input{position:absolute;top:10px;right:10px;width:18px;height:18px;padding:0;margin:0;accent-color:var(--primary)} .en-o .i{font-size:1.3rem} .en-o small{color:var(--muted);font-weight:500;font-size:.72rem;line-height:1.3}
.en-o:has(input:checked){border-color:var(--primary);background:var(--primary-light);box-shadow:0 0 0 2px var(--primary-light)}
.vd-info{margin-top:8px;font-size:.82rem;background:var(--panel2);border-radius:10px;padding:8px 12px;line-height:1.45}
@media(max-width:560px){ .en-src{grid-template-columns:1fr} .en-o{display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:center;padding:8px 10px} .en-o .i{grid-row:1/3;font-size:1.2rem} }
/* ── Compte en T ── */
.ct2{display:flex;flex-direction:column;gap:16px}
.ct2 .card{margin:0}
.ct-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 18px}
.ct-bar .seg button{padding:7px 14px;font-size:.8rem}
.per{display:flex;align-items:center;gap:8px;font-size:.88rem}
.per .nv{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--line);display:grid;place-items:center;background:var(--panel);color:var(--text2);cursor:pointer;font:inherit}
.per .nv[disabled]{opacity:.35;cursor:default}
.ct-site{cursor:pointer;border:0;font:inherit;font-size:.78rem}
.st-pill{margin-left:auto;padding:6px 12px;border-radius:20px;font-size:.76rem;font-weight:700;background:var(--panel2);color:var(--text2)}
.st-pill.ok{background:var(--success-light);color:var(--success)} .st-pill.att{background:var(--warn-light);color:var(--warn)}
.lv-who .st-pill{margin-left:4px;padding:2px 10px}
.tabs2{display:flex;gap:4px;border-bottom:1.5px solid var(--line);margin:-4px 0 16px;overflow-x:auto}
.tabs2 button{padding:8px 14px;font:inherit;font-size:.82rem;font-weight:700;color:var(--muted);border:0;background:none;border-bottom:3px solid transparent;margin-bottom:-1.5px;cursor:pointer;white-space:nowrap}
.tabs2 button.on{color:var(--primary);border-bottom-color:var(--primary)}
.ct-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.ct-side{display:flex;flex-direction:column;gap:16px}
.tt{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--t-trait);border-radius:4px;position:relative}
.tt-head{grid-column:1/-1;text-align:center;font-weight:800;font-size:.9rem;padding:9px;border-bottom:2px solid var(--t-trait);background:var(--paper);letter-spacing:.3px}
.tt-col{padding:12px 16px 0;display:flex;flex-direction:column;min-width:0}
.tt-col.in{border-right:2px solid var(--t-trait);background:var(--t-in)}
.tt-col.out{background:var(--t-out)}
.tt-col h4{font-size:.74rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;color:var(--text2)}
.tt-col h4 small{text-transform:none;letter-spacing:0;font-weight:500;color:var(--muted);margin-left:4px}
.tt .r{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:.84rem}
.tt .r span small{display:block;color:var(--muted);font-size:.7rem}
.tt .r b{font-variant-numeric:tabular-nums;white-space:nowrap}
.tt .r.rep{background:var(--accent-light);margin:0 -8px;padding:6px 8px;border-radius:6px;border-bottom:0}
.tt .r.sub{border-bottom:0;color:var(--text2);font-weight:700;font-style:italic}
.tt .r.int b{color:var(--info)}
.tt .r.vide{color:var(--muted)}
.tt .r.solde{background:var(--sidebar-bg);color:#fff;margin:6px -8px 0;padding:8px;border-radius:6px;border:0}
.tt .r.solde small{color:#C9D5CE}
.tt .r.solde b{color:#7BE0B0;font-size:.98rem}
.tt .r.solde.neg b{color:#FF9DA6}
.tt .r.ben{background:var(--ben-bg);margin:6px -8px 0;padding:7px 8px;border-radius:6px;border:0;font-weight:800;color:var(--success)}
.tt .fill{flex:1}
.tt .tot{display:flex;justify-content:space-between;padding:10px 0 12px;margin-top:8px;border-top:2px solid var(--t-trait);font-weight:800;font-size:.92rem}
.tt .tot b{font-variant-numeric:tabular-nums}
.tt.sm{font-size:.8rem} .tt.sm .tt-head{font-size:.78rem;padding:7px} .tt.sm .tt-col{padding:10px 12px 0} .tt.sm .r{font-size:.78rem;padding:4px 0}
.ct-jours h3{margin-bottom:10px}
.ct-jours .table-wrap{margin:0}
.ct-jours table{font-size:.78rem;width:100%}
.ct-jours th{text-align:right;padding:7px 8px;background:var(--panel2);white-space:nowrap} .ct-jours th:first-child{text-align:left}
.ct-jours td{text-align:right;padding:6px 8px;border-bottom:1px solid var(--line2);font-variant-numeric:tabular-nums;white-space:nowrap}
.ct-jours td:first-child{text-align:left;color:var(--text2);font-weight:600}
.ct-jours tr.sol td{font-weight:800;background:var(--paper)} .ct-jours td.neg{color:var(--danger)}
.ct-jours th.sel,.ct-jours td.sel{background:var(--primary-light)}
.memo-bars{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:6px 0 10px}
.memo-l .r{display:flex;justify-content:space-between;font-size:.8rem;padding:4px 0;gap:8px}
.memo-l .r i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.memo-l .r b{font-variant-numeric:tabular-nums}
.memo-l .r.tot{border-top:1.5px solid var(--line);margin-top:4px;padding-top:6px}
.ct2 .hint a,.cl .hint a,.lv .hint a{color:var(--primary);font-weight:700;text-decoration:none}
.mini-t{display:grid;grid-template-columns:1fr 1fr;border:1.5px solid var(--t-trait);font-size:.74rem;border-radius:3px}
.mini-t>div{padding:8px 9px}
.mini-t>div:first-child{border-right:1.5px solid var(--t-trait);background:var(--t-in)}
.mini-t>div:nth-child(2){background:var(--t-out)}
.mini-t .r{display:block;padding:3px 0}
.mini-t .r span{display:block;color:var(--muted);font-size:.68rem;line-height:1.2}
.mini-t .r b{display:block;text-align:right;font-variant-numeric:tabular-nums}
.mini-t .r.s{font-weight:800;border-top:1px solid var(--line);margin-top:3px;padding-top:5px}
.mini-t .tot{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1.5px solid var(--t-trait);background:var(--paper);font-weight:800;padding:6px 9px}
.wk-st{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:.76rem}
.wk-st div{display:flex;justify-content:space-between;gap:8px;padding:4px 8px;border-radius:7px;background:var(--panel2)}
.wk-st div.att{background:var(--warn-light);color:var(--warn);font-weight:700}
/* ── Clôtures ── */
.cl{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.cl .card{margin:0;padding:16px}
.cl-hero{background:linear-gradient(135deg,#1A3A2E,#2D6A4F);color:#fff;border-radius:16px;padding:16px}
.cl-hero small{opacity:.8;font-size:.72rem;text-transform:uppercase;letter-spacing:.8px;font-weight:700}
.cl-hero h3{color:#fff;margin:4px 0 6px;font-size:1.08rem;display:block}
.cl-hero .cl-sub{font-size:.84rem;opacity:.92;margin-bottom:8px}
.cl-hero .dl{display:inline-block;background:rgba(255,255,255,.14);border-radius:20px;padding:3px 10px;font-size:.76rem;font-weight:700}
.cl-hero .dl.late{background:#C0392B}
.cl-dash{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.cl-ok{border-left:4px solid var(--success)} .cl-ok h3{margin-bottom:4px}
.cl-t{font-size:.86rem}
.chk{display:flex;flex-direction:column;gap:2px}
.chk .it{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line2);font-size:.82rem}
.chk .it:last-child{border-bottom:0}
.chk .it .i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:800}
.chk .it .i.ok{background:var(--success-light);color:var(--success)} .chk .it .i.w{background:var(--warn-light);color:var(--warn)} .chk .it .i.ko{background:var(--danger-light);color:var(--danger)}
.chk .it small{display:block;color:var(--muted);font-size:.72rem}
.cnt{display:flex;gap:8px;align-items:center;margin-top:8px;max-width:560px}
.cnt input{flex:1;padding:10px 12px;border:2px solid var(--line);border-radius:10px;font-size:1.05rem;font-weight:800;text-align:right;color:var(--primary);background:var(--champ)}
.cnt input:not(:placeholder-shown){border-color:var(--success)} .cnt input.ecart{border-color:var(--warn)}
.cnt .okp{background:var(--panel2);color:var(--muted);font-weight:800;padding:9px 12px;border-radius:10px;font-size:.82rem;white-space:nowrap}
.cnt .okp.ok{background:var(--success-light);color:var(--success)}
.cnt .okp.plus{background:var(--warn-light);color:var(--warn)} .cnt .okp.ko{background:var(--danger-light);color:var(--danger)}
.res-mini{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:.76rem}
.res-mini div{background:var(--panel2);border-radius:8px;padding:6px 8px;display:flex;justify-content:space-between;gap:6px}
.res-mini div b{font-variant-numeric:tabular-nums}
.res-mini .s{grid-column:1/-1;background:var(--sidebar-bg);color:#fff}
.res-mini .s b{color:#7BE0B0}
.cl-btn{width:100%;padding:14px;font-size:.95rem}
.cl-btn[disabled],.cl-acts .btn[disabled]{opacity:.45;cursor:not-allowed}
.cl-foot{font-size:.74rem;color:var(--muted);text-align:center;line-height:1.4}
.cl-pdg{border:2px solid var(--accent);background:linear-gradient(180deg,var(--pdg-bg),var(--panel))}
.cl-pdg h3{margin-bottom:12px}
.cl-ln{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.82rem}
.cl-rows{display:flex;flex-direction:column;gap:6px}
.cl-row{display:grid;grid-template-columns:14px 190px 1fr 150px auto;gap:10px;align-items:center;padding:9px 12px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);font-size:.82rem}
.cl-row .c{width:12px;height:12px;border-radius:50%}
.cl-row .stt{font-weight:700}
.cl-row .stt.ok{color:var(--success)} .cl-row .stt.att{color:var(--danger)}
.cl-row small{color:var(--muted)}
.cl-row .so{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.cl-row.late{border-color:var(--neg-bord);background:var(--danger-light)}
.cl-row.off{opacity:.55}
.cl-ba{display:inline-flex;gap:4px}
.cl-prog{height:10px;border-radius:5px;background:var(--line2);overflow:hidden;margin:4px 0 12px}
.cl-prog i{display:block;height:100%;background:var(--success)}
.cl-acts{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}
.cl-mois{display:flex;gap:14px;align-items:center;margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--info-light);color:var(--memo-ink);font-size:.84rem}
.cl-mois .ic{font-size:1.5rem}
.cm-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;align-items:start}
.cm-note{font-size:.76rem;color:var(--muted);margin-top:10px;line-height:1.4}
.wk-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.wk-row:last-child{border-bottom:0}
.wk-row>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 300px}
.wk-row small{color:var(--muted);font-size:.76rem}
.wk-row.ok b:first-child{color:var(--success)}
.wk-a{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.wk-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.wk-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:12px;background:var(--panel2);font-size:.68rem;font-weight:700;color:var(--text2)}
.wk-chip i{width:7px;height:7px;border-radius:50%} .wk-chip.ok{background:var(--success-light);color:var(--success)} .wk-chip.att{background:var(--warn-light);color:var(--warn)}
/* tableau de bord */
.lv-dash,.ck-clo{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:14px;background:var(--panel);border:1.5px solid var(--line);margin-bottom:14px;cursor:pointer;box-shadow:var(--shadow)}
.lv-dash:hover,.ck-clo:hover{border-color:var(--primary)}
.lv-dash .ic,.ck-clo .ic{font-size:1.6rem}
.lv-dash .t,.ck-clo .t{flex:1;display:flex;flex-direction:column;min-width:0}
.lv-dash small{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.7px;font-weight:700}
.lv-dash b{font-size:1.1rem;font-variant-numeric:tabular-nums} .lv-dash.neg b{color:var(--danger)} .lv-dash.neg{border-color:var(--neg-bord);background:var(--danger-light)}
.lv-dash .t span,.ck-clo .t span{font-size:.78rem;color:var(--muted)}
.lv-dash .go,.ck-clo .go{font-weight:700;color:var(--primary);font-size:.82rem;white-space:nowrap}
.ck-clo.pret{border-color:var(--success);background:var(--success-light)} .ck-clo.late{border-color:var(--neg-bord)}
.ck-clo .cl-prog{margin:6px 0 0;height:6px;max-width:320px}
.rp-nf.semaine .rp-ico,.rp-nf.groupe .rp-ico,.rp-nf.mois .rp-ico{background:var(--success-light)}
@media(max-width:900px){ .cl-row{grid-template-columns:12px 1fr auto;row-gap:4px} .cl-row>span:nth-child(3){grid-column:2/4} .cl-row .so{grid-column:2;text-align:left} .cm-grid{grid-template-columns:minmax(0,1fr)} }
@media(max-width:760px){
  .ct-grid{grid-template-columns:minmax(0,1fr)}
  .ct-bar{padding:12px}
  .per{font-size:.8rem;flex:1 1 100%}
  .st-pill{margin-left:0}
  .tabs2 button{padding:8px 9px;font-size:.76rem}
  .tt-head{font-size:.76rem}
  .tt{grid-template-columns:minmax(0,1fr)}
  .tt-col.in{border-right:0;border-bottom:2px solid var(--t-trait)}
  .lv-kpis{grid-template-columns:1fr 1fr}
  .lv-kpis b{font-size:1.05rem}
  .lv-week{grid-template-columns:repeat(7,minmax(64px,1fr));overflow-x:auto;margin:10px 0 12px}
  .lv-week .d{padding:6px 2px;font-size:.66rem} .lv-week .d b{font-size:.68rem}
  .lv-h1 h3{font-size:1.05rem}
  .lv-dash{flex-wrap:wrap} .lv-dash .go{width:100%;text-align:right}
}
/* TRESOR X DRG — app.css v4.1 */