/* ─── RESET & BASE ───────────────────────────────── */
:root {
  --blue:    #2563EB;
  --blue-d:  #1D4ED8;
  --blue-l:  #EFF6FF;
  --green:   #10B981;
  --green-d: #059669;
  --green-l: #D1FAE5;
  --orange:  #F59E0B;
  --orange-l:#FEF3C7;
  --red:     #EF4444;
  --red-l:   #FEE2E2;
  --purple:  #8B5CF6;
  --purple-l:#EDE9FE;
  --dark:    #1E293B;
  --text:    #334155;
  --muted:   #64748B;
  --border:  #E2E8F0;
  --bg:      #F1F5F9;
  --white:   #FFFFFF;
  --radius:  10px;
  --shadow:  0 4px 20px rgba(0,0,0,.07);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;color:var(--text);background:var(--bg);line-height:1.6}
h1,h2,h3,h4{line-height:1.2;color:var(--dark)}
a{color:inherit;text-decoration:none}
input,button,select{font-family:inherit;font-size:inherit}
button{cursor:pointer}

/* ─── BRAND ──────────────────────────────────────── */
.brand{display:flex;align-items:center;gap:.5rem}
.brand-icon{font-size:1.5rem}
.brand-name{font-size:1.2rem;font-weight:800;letter-spacing:-.02em;color:var(--blue)}

/* ─── BUTTONS ────────────────────────────────────── */
.btn-cta{background:var(--blue);color:#fff;border:none;padding:9px 20px;border-radius:8px;font-weight:600;font-size:.9rem;transition:.2s}
.btn-cta:hover{background:var(--blue-d);transform:translateY(-1px)}
.btn-ghost{background:transparent;border:1.5px solid var(--border);color:var(--text);padding:9px 16px;border-radius:8px;font-weight:500;font-size:.9rem}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn-hero-primary{background:var(--blue);color:#fff;border:none;padding:14px 28px;border-radius:10px;font-weight:700;font-size:1rem;transition:.2s}
.btn-hero-primary:hover{background:var(--blue-d);transform:translateY(-2px);box-shadow:0 8px 24px rgba(37,99,235,.3)}
.btn-hero-ghost{background:rgba(255,255,255,.15);color:#fff;border:2px solid rgba(255,255,255,.4);padding:14px 28px;border-radius:10px;font-weight:600;font-size:1rem;transition:.2s}
.btn-hero-ghost:hover{border-color:#fff;background:rgba(255,255,255,.25)}

/* ─── LANDING NAV ────────────────────────────────── */
.land-nav{position:sticky;top:0;z-index:100;background:var(--white);border-bottom:1px solid var(--border)}
.land-nav-inner{max-width:1140px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between}
.land-nav-links{display:flex;align-items:center;gap:1.5rem}
.land-nav-links a{font-size:.9rem;color:var(--muted);font-weight:500;transition:color .2s}
.land-nav-links a:hover{color:var(--blue)}

/* ─── HERO LANDING ───────────────────────────────── */
.hero-land{background:linear-gradient(135deg,#0F2A5E 0%,#1D4ED8 55%,#0EA5E9 100%);padding:80px 0 60px;overflow:hidden}
.hero-land-inner{max-width:1140px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.hero-pill{display:inline-block;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.8rem;font-weight:600;padding:5px 14px;border-radius:20px;margin-bottom:1.2rem;letter-spacing:.04em}
.hero-land-text h1{font-size:3.2rem;font-weight:800;color:#fff;margin-bottom:1.2rem}
.hero-land-text h1 span{color:#7DD3FC}
.hero-land-text p{color:rgba(255,255,255,.85);font-size:1.05rem;max-width:480px;margin-bottom:2rem}
.hero-land-btns{display:flex;gap:1rem;flex-wrap:wrap}

/* Phone mockup */
.hero-land-visual{display:flex;justify-content:center}
.phone-mockup{width:240px;background:#0F172A;border-radius:32px;padding:16px;box-shadow:0 24px 80px rgba(0,0,0,.4)}
.phone-screen{background:#1E293B;border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:10px}
.pm-header{display:flex;align-items:center;gap:8px}
.pm-dot{width:10px;height:10px;background:var(--green);border-radius:50%;display:inline-block;box-shadow:0 0 8px var(--green)}
.pm-title{color:#fff;font-size:.85rem;font-weight:600}
.pm-siret{font-size:.65rem;color:#64748B;font-family:monospace;background:#0F172A;padding:4px 8px;border-radius:6px}
.pm-buttons{display:flex;flex-direction:column;gap:6px}
.pm-btn{font-size:.75rem;font-weight:600;padding:8px 12px;border-radius:8px;color:#fff}
.pm-btn.green{background:rgba(16,185,129,.25);border:1px solid rgba(16,185,129,.5);color:#6EE7B7}
.pm-btn.orange{background:rgba(245,158,11,.2);border:1px solid rgba(245,158,11,.4);color:#FCD34D}
.pm-btn.blue{background:rgba(37,99,235,.3);border:1px solid rgba(37,99,235,.5);color:#93C5FD}
.pm-btn.red{background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.4);color:#FCA5A5}
.pm-status{font-size:.7rem;color:var(--green);text-align:center;font-weight:600}

/* ─── STATS BAR ──────────────────────────────────── */
.land-stats{max-width:1140px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-around;background:var(--white);border-radius:14px;box-shadow:var(--shadow);transform:translateY(-30px);gap:1rem;flex-wrap:wrap}
.land-stat{padding:1.5rem 1rem;text-align:center}
.land-stat strong{display:block;font-size:2rem;font-weight:800;color:var(--blue)}
.land-stat span{font-size:.85rem;color:var(--muted)}

/* ─── LANDING SECTIONS ───────────────────────────── */
.land-section{padding:60px 0 80px}
.land-section.dark{background:var(--dark)}
.land-section-inner{max-width:1140px;margin:0 auto;padding:0 24px;text-align:center}
.land-section-inner h2{font-size:2.2rem;font-weight:800;margin-bottom:2.5rem}
.section-tag-land{display:inline-block;background:var(--blue-l);color:var(--blue);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 14px;border-radius:20px;margin-bottom:.8rem}
.section-tag-land.light{background:rgba(255,255,255,.15);color:rgba(255,255,255,.9)}

/* Features grid */
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;text-align:left;margin-top:1rem}
.feat-card{background:var(--white);border-radius:16px;padding:2rem;border:1px solid var(--border);box-shadow:var(--shadow);position:relative;transition:.2s}
.feat-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.1)}
.feat-card.featured{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue),0 12px 40px rgba(37,99,235,.12)}
.feat-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--blue);color:#fff;font-size:.72rem;font-weight:700;padding:4px 12px;border-radius:20px;white-space:nowrap}
.feat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:1rem}
.feat-card h3{font-size:1.1rem;font-weight:700;margin-bottom:.5rem}
.feat-card p{font-size:.88rem;color:var(--muted);margin-bottom:1rem}
.feat-card ul{list-style:none}
.feat-card li{font-size:.85rem;color:var(--text);padding:3px 0}

/* Steps */
.steps-grid{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;margin-top:1rem}
.step{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:2rem;max-width:280px;text-align:left}
.step-num{width:40px;height:40px;background:var(--blue);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;margin-bottom:1rem}
.step h4{color:#fff;font-size:1rem;font-weight:700;margin-bottom:.5rem}
.step p{color:rgba(255,255,255,.7);font-size:.88rem}
.step-arrow{font-size:2rem;color:rgba(255,255,255,.3)}

/* CTA final */
.land-cta{background:linear-gradient(135deg,#EFF6FF,#DBEAFE);padding:80px 24px;text-align:center}
.land-cta h2{font-size:2rem;font-weight:800;margin-bottom:.8rem}
.land-cta p{color:var(--muted);margin-bottom:2rem}
.land-footer{background:var(--dark);padding:1.5rem 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.land-footer .brand-name{color:#7DD3FC}
.land-footer span:last-child{color:#64748B;font-size:.85rem}

/* ─── AUTH MODAL ─────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:999;padding:1rem}
.modal-box{background:var(--white);border-radius:20px;padding:2rem;width:100%;max-width:460px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 24px 60px rgba(0,0,0,.2)}
.modal-close{position:absolute;top:1rem;right:1rem;background:var(--bg);border:none;width:32px;height:32px;border-radius:50%;font-size:1.2rem;color:var(--muted);display:flex;align-items:center;justify-content:center}
.modal-close:hover{background:var(--border)}
.auth-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;background:var(--bg);border-radius:10px;padding:4px}
.auth-tab{flex:1;padding:8px;border:none;background:transparent;border-radius:8px;font-weight:600;font-size:.9rem;color:var(--muted);transition:.2s}
.auth-tab.active{background:var(--white);color:var(--blue);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:.85rem;font-weight:600;color:var(--dark);margin-bottom:.4rem}
.form-group input{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:.95rem;transition:.2s}
.form-group input:focus{outline:none;border-color:var(--blue)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.form-error{background:var(--red-l);color:var(--red);font-size:.85rem;padding:8px 12px;border-radius:8px;margin-bottom:.8rem}
.btn-form-submit{width:100%;background:var(--blue);color:#fff;border:none;padding:13px;border-radius:10px;font-weight:700;font-size:1rem;margin-top:.5rem;transition:.2s}
.btn-form-submit:hover{background:var(--blue-d)}
.type-selector{display:flex;gap:.75rem}
.type-opt{flex:1;cursor:pointer}
.type-opt input{display:none}
.type-card{border:2px solid var(--border);border-radius:10px;padding:.8rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem;transition:.2s}
.type-card span{font-size:1.5rem}
.type-card strong{font-size:.9rem;color:var(--dark)}
.type-opt input:checked + .type-card{border-color:var(--blue);background:var(--blue-l)}

/* ─── APP ────────────────────────────────────────── */
.app-header{background:var(--white);border-bottom:1px solid var(--border);height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:50}
.app-header-right{display:flex;align-items:center;gap:1rem}
.app-username{font-size:.9rem;font-weight:600;color:var(--text)}
.btn-logout{background:var(--bg);border:1px solid var(--border);padding:7px 14px;border-radius:8px;font-size:.85rem;color:var(--muted);transition:.2s}
.btn-logout:hover{border-color:var(--red);color:var(--red)}

.app-nav{background:var(--white);border-bottom:1px solid var(--border);display:flex;padding:0 24px;gap:.5rem}
.app-tab{border:none;background:transparent;padding:14px 18px;font-size:.9rem;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;cursor:pointer;transition:.2s;white-space:nowrap}
.app-tab.active{color:var(--blue);border-bottom-color:var(--blue)}
.app-tab:hover:not(.active){color:var(--text)}

.app-main{max-width:900px;margin:0 auto;padding:2rem 24px}

/* ─── APP COMPONENTS ─────────────────────────────── */
.section-card{background:var(--white);border-radius:14px;padding:1.5rem;box-shadow:var(--shadow);border:1px solid var(--border);margin-bottom:1.5rem}
.section-card h3{font-size:1rem;font-weight:700;margin-bottom:1rem;color:var(--dark)}

/* Profile form */
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.inp{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:.95rem;transition:.2s}
.inp:focus{outline:none;border-color:var(--blue)}
.inp:disabled{background:var(--bg);color:var(--muted);cursor:default}
.inp.nir-inp{font-family:monospace;letter-spacing:.12em;font-size:1.1rem}
.btn-save{background:var(--blue);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-weight:600;font-size:.9rem;transition:.2s}
.btn-save:hover{background:var(--blue-d)}
.btn-sm{padding:6px 14px;border-radius:6px;font-size:.8rem;font-weight:600;border:none;cursor:pointer;transition:.2s}
.btn-sm.danger{background:var(--red-l);color:var(--red)}
.btn-sm.danger:hover{background:var(--red);color:#fff}
.btn-sm.primary{background:var(--blue-l);color:var(--blue)}
.btn-sm.primary:hover{background:var(--blue);color:#fff}
.btn-sm.success{background:var(--green-l);color:var(--green-d)}
.btn-sm.success:hover{background:var(--green);color:#fff}
.save-msg{font-size:.85rem;color:var(--green);font-weight:600;margin-left:.5rem;opacity:0;transition:.3s}
.save-msg.show{opacity:1}

/* Siret list */
.siret-list-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border:1px solid var(--border);border-radius:10px;margin-bottom:.5rem;background:var(--bg)}
.siret-mono{font-family:monospace;font-size:.95rem;font-weight:700;letter-spacing:.06em}
.siret-nom{font-size:.8rem;color:var(--muted);margin-top:2px}
.date-fin-badge{font-size:.75rem;padding:3px 8px;border-radius:20px;font-weight:600}
.date-fin-badge.active{background:var(--green-l);color:var(--green-d)}
.date-fin-badge.expiring{background:var(--orange-l);color:#92400E}
.date-fin-badge.expired{background:var(--red-l);color:var(--red)}

/* Input row */
.input-row{display:flex;gap:.5rem;flex-wrap:wrap}
.input-row .inp{flex:1;min-width:160px}

/* NIR table */
.nir-table{width:100%;border-collapse:collapse;font-size:.88rem}
.nir-table th{text-align:left;padding:8px 12px;background:var(--bg);border-bottom:2px solid var(--border);font-weight:600;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.nir-table td{padding:10px 12px;border-bottom:1px solid var(--border);font-family:monospace}
.nir-table td.text{font-family:inherit}
.nir-table tr:last-child td{border-bottom:none}
.nir-table tr:hover td{background:var(--bg)}

/* Pointage buttons */
.pointage-siret-select{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:10px;font-size:.95rem;margin-bottom:1.5rem;background:var(--white)}
.pointage-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.pointage-btn{border:none;border-radius:14px;padding:1.2rem 1rem;font-size:1rem;font-weight:700;cursor:pointer;transition:.2s;display:flex;flex-direction:column;align-items:center;gap:.4rem;line-height:1.2}
.pointage-btn:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.12)}
.pointage-btn:active{transform:scale(.97)}
.pointage-btn .pb-icon{font-size:1.8rem}
.pointage-btn .pb-label{font-size:.85rem}
.pointage-btn.green{background:var(--green-l);color:var(--green-d);border:2px solid var(--green)}
.pointage-btn.green:hover{background:var(--green);color:#fff}
.pointage-btn.red{background:var(--red-l);color:var(--red);border:2px solid var(--red)}
.pointage-btn.red:hover{background:var(--red);color:#fff}
.pointage-btn.orange{background:var(--orange-l);color:#92400E;border:2px solid var(--orange)}
.pointage-btn.orange:hover{background:var(--orange);color:#fff}
.pointage-btn.blue{background:var(--blue-l);color:var(--blue-d);border:2px solid var(--blue)}
.pointage-btn.blue:hover{background:var(--blue);color:#fff}
.pointage-btn.purple{background:var(--purple-l);color:#5B21B6;border:2px solid var(--purple)}
.pointage-btn.purple:hover{background:var(--purple);color:#fff}
.pointage-btn.teal{background:#CCFBF1;color:#115E59;border:2px solid #2DD4BF}
.pointage-btn.teal:hover{background:#2DD4BF;color:#fff}
.pointage-btn.disabled{opacity:.4;cursor:not-allowed;transform:none !important}
.pointage-status{background:var(--bg);border-radius:10px;padding:1rem;text-align:center;margin-bottom:1.2rem;font-size:.9rem}
.pointage-status .status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}
.status-dot.on{background:var(--green);box-shadow:0 0 8px var(--green)}
.status-dot.off{background:var(--muted)}

/* Bilan */
.periode-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}
.periode-tab{border:1.5px solid var(--border);background:var(--white);color:var(--muted);padding:7px 16px;border-radius:8px;font-size:.85rem;font-weight:600;transition:.2s}
.periode-tab.active{border-color:var(--blue);background:var(--blue-l);color:var(--blue)}
.bilan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}
.bilan-card{background:var(--white);border-radius:12px;padding:1.2rem;border:1px solid var(--border);text-align:center}
.bilan-card .bc-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.4rem}
.bilan-card .bc-value{font-size:2rem;font-weight:800;line-height:1}
.bilan-card .bc-sub{font-size:.78rem;color:var(--muted);margin-top:.2rem}
.bilan-card.service .bc-value{color:var(--green-d)}
.bilan-card.pause .bc-value{color:var(--orange)}
.bilan-card.absence .bc-value{color:var(--red)}
.bilan-card.net .bc-value{color:var(--blue)}
.bilan-period{font-size:.82rem;color:var(--muted);margin-bottom:1rem}

/* Report table */
.report-table{width:100%;border-collapse:collapse;font-size:.88rem}
.report-table th{background:var(--dark);color:#fff;padding:10px 14px;text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.report-table th.num{text-align:right}
.report-table td{padding:10px 14px;border-bottom:1px solid var(--border)}
.report-table td.num{text-align:right;font-weight:600}
.report-table td.nir-cell{font-family:monospace;font-size:.85rem}
.report-table tr.total-row td{background:var(--blue-l);font-weight:700;color:var(--blue-d)}
.report-table tr:hover:not(.total-row) td{background:var(--bg)}

/* Toast */
.toast{position:fixed;bottom:24px;right:24px;background:var(--dark);color:#fff;padding:12px 20px;border-radius:10px;font-size:.9rem;font-weight:500;z-index:9999;opacity:0;transform:translateY(10px);transition:.3s;pointer-events:none}
.toast.show{opacity:1;transform:translateY(0)}
.toast.success{background:var(--green-d)}
.toast.error{background:var(--red)}

/* Empty state */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--muted)}
.empty-state .es-icon{font-size:3rem;margin-bottom:.8rem}
.empty-state p{font-size:.9rem}

/* Alert */
.alert{padding:.8rem 1rem;border-radius:8px;font-size:.88rem;margin-bottom:1rem}
.alert.info{background:var(--blue-l);color:var(--blue-d);border:1px solid #BFDBFE}
.alert.warning{background:var(--orange-l);color:#92400E;border:1px solid #FCD34D}
.alert.success{background:var(--green-l);color:var(--green-d);border:1px solid #6EE7B7}

@media(max-width:768px){
  .hero-land-inner{grid-template-columns:1fr;gap:2rem}
  .hero-land-visual{display:none}
  .hero-land-text h1{font-size:2.2rem}
  .features-grid{grid-template-columns:1fr}
  .steps-grid{flex-direction:column;align-items:center}
  .step-arrow{transform:rotate(90deg)}
  .pointage-grid{grid-template-columns:1fr}
  .bilan-cards{grid-template-columns:1fr 1fr}
  .profile-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .land-stats{transform:none;margin-top:1rem}
}

/* ─── V2 ADDITIONS ─────────────────────────────────── */

/* Profile badge dans le header */
.profile-badge { display:inline-flex;align-items:center;gap:.4rem;padding:5px 14px;border-radius:20px;font-weight:700;font-size:.82rem;letter-spacing:.01em; }
.profile-badge.salarie { background:#dbeafe;color:#1d4ed8; }
.profile-badge.etablissement { background:#d1fae5;color:#065f46; }

/* App header center */
.app-header { display:flex;align-items:center;justify-content:space-between; }
.app-header-center { flex:1;display:flex;justify-content:center; }

/* Brand clickable */
.brand.clickable { cursor:pointer; transition:.15s; }
.brand.clickable:hover { opacity:.75; }

/* NIR row expirée → rouge */
.row-expired td { color:#dc2626 !important;background:#fef2f2 !important; }
.row-expired:hover td { background:#fee2e2 !important; }

/* Birthday banner */
.birthday-banner { background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;padding:1rem 1.5rem;border-radius:12px;text-align:center;font-size:1.1rem;font-weight:700;margin-bottom:1rem;animation:pulse-birthday 2s infinite; }
@keyframes pulse-birthday { 0%,100%{transform:scale(1)} 50%{transform:scale(1.02)} }

/* Bilan cards correction */
.bilan-card .bc-val { font-size:2rem;font-weight:800;line-height:1; }
.bilan-card.green .bc-val { color:var(--green-d); }
.bilan-card.orange .bc-val { color:#92400e; }
.bilan-card.red .bc-val { color:var(--red); }
.bilan-card.blue .bc-val { color:var(--blue); }

/* App footer */
.app-footer { display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem;padding:1rem;font-size:.78rem;color:var(--muted);border-top:1px solid var(--border); }
.app-footer a { color:var(--muted);transition:.15s; }
.app-footer a:hover { color:var(--blue); }

/* Landing footer */
.land-footer { background:var(--dark);color:#94a3b8;padding:2rem 1.5rem;text-align:center; }
.footer-brand { display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem; }
.footer-tagline { font-size:.85rem; }
.footer-links { display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:.75rem; }
.footer-links a { color:#94a3b8;font-size:.82rem;transition:.15s; }
.footer-links a:hover { color:#fff; }
.footer-copy { font-size:.75rem;color:#64748b; }

/* Legal page */
.legal-content { max-width:800px;margin:0 auto; }
.legal-content h2 { font-size:1.5rem;margin-bottom:1rem;color:var(--dark); }
.legal-content h3 { font-size:1.1rem;margin:1.5rem 0 .5rem;color:var(--dark); }
.legal-content p,li { margin-bottom:.6rem;line-height:1.7;font-size:.92rem; }
.legal-content ul { padding-left:1.5rem;margin-bottom:.8rem; }
.legal-content code { background:var(--bg);padding:2px 6px;border-radius:4px;font-size:.85rem; }

/* Import modal */
.modal-wide { max-width:900px;width:95vw; }
.import-textarea { width:100%;height:180px;border:1.5px solid var(--border);border-radius:10px;padding:12px;font-family:monospace;font-size:.82rem;resize:vertical;margin-bottom:1rem; }
.import-help { font-size:.85rem;color:var(--muted);margin-bottom:1rem;line-height:1.6; }
.import-detect { margin-bottom:1rem; }
.import-summary { display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem; }
.import-summary .alert { margin:0;padding:.4rem .8rem;font-size:.8rem; }
.import-table-wrap { overflow-x:auto;max-height:350px;overflow-y:auto; }
.import-actions { display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:1.5rem; }

/* Siret search results */
.siret-search-list { border:1.5px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:1rem; }
.siret-search-item { padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border);transition:.15s;display:flex;flex-direction:column;gap:.2rem; }
.siret-search-item:last-child { border-bottom:none; }
.siret-search-item:hover { background:var(--blue-l); }
.text-green { color:var(--green-d); }
.text-red   { color:var(--red); }

/* Siret cards */
.siret-card { border:1.5px solid var(--border);border-radius:12px;padding:1rem 1.2rem;margin-bottom:.75rem; }
.siret-card-header { display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap; }
.siret-nir-count { font-size:.78rem;background:var(--bg);padding:3px 10px;border-radius:20px;color:var(--muted);font-weight:600; }

/* Activités */
.activite-item { display:flex;align-items:center;gap:.75rem;padding:.6rem;border-radius:8px;margin-bottom:.3rem;background:var(--bg); }
.activite-badge { font-size:.75rem;padding:2px 8px;border-radius:12px;font-weight:700; }
.activite-badge.sys { background:#dbeafe;color:#1d4ed8; }
.activite-badge.custom { background:#d1fae5;color:#065f46; }

/* NIR header row */
.nir-header-row { display:flex;gap:1rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap; }
.nir-header-row select { flex:1; }

/* Pointage buttons lighter variant */
.pointage-btn.lighter { opacity:.85; }

/* Admin stats */
.admin-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem; }
.admin-stat { text-align:center;padding:1.2rem;background:var(--bg);border-radius:12px; }
.admin-stat strong { display:block;font-size:2rem;font-weight:800;color:var(--blue); }
.admin-stat span { font-size:.78rem;color:var(--muted); }

/* 2FA info box */
.twofa-info { background:var(--blue-l);color:var(--blue-d);border:1px solid #bfdbfe;border-radius:10px;padding:1rem;margin-bottom:1.2rem;font-size:.88rem;line-height:1.6; }

/* Google button */
.btn-google { display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:11px;border:1.5px solid var(--border);border-radius:10px;background:var(--white);font-weight:600;font-size:.92rem;color:var(--dark);transition:.2s;margin-top:.5rem; }
.btn-google:hover { border-color:#4285F4;background:#f8faff; }
.auth-sep { display:flex;align-items:center;gap:.75rem;margin:1rem 0;color:var(--muted);font-size:.82rem; }
.auth-sep::before,.auth-sep::after { content:'';flex:1;height:1px;background:var(--border); }

/* Misc buttons */
.btn-ghost2 { background:transparent;border:1.5px solid var(--border);color:var(--text);padding:8px 16px;border-radius:8px;font-weight:500;font-size:.85rem;transition:.2s;cursor:pointer; }
.btn-ghost2:hover { border-color:var(--blue);color:var(--blue); }
.btn-link { background:none;border:none;color:var(--blue);font-size:.88rem;cursor:pointer;padding:4px;text-decoration:underline; }
.btn-icon { background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;transition:.15s;font-size:1rem; }
.btn-icon:hover { background:var(--bg); }
.btn-icon.red:hover { background:var(--red-l); }
.inp-date { border:1.5px solid var(--border);border-radius:6px;padding:5px 8px;font-size:.82rem;font-family:inherit; }

/* Extra pointage button colors */
.pointage-btn.indigo { background:#EEF2FF;color:#3730A3;border:2px solid #818CF8; }
.pointage-btn.indigo:hover { background:#818CF8;color:#fff; }
.pointage-btn.pink { background:#FDF2F8;color:#9D174D;border:2px solid #F9A8D4; }
.pointage-btn.pink:hover { background:#F9A8D4;color:#fff; }
.pointage-btn.cyan { background:#ECFEFF;color:#164E63;border:2px solid #22D3EE; }
.pointage-btn.cyan:hover { background:#22D3EE;color:#fff; }
.pointage-btn.lime { background:#F7FEE7;color:#3F6212;border:2px solid #A3E635; }
.pointage-btn.lime:hover { background:#A3E635;color:#fff; }
.pointage-btn.amber { background:#FFFBEB;color:#78350F;border:2px solid #FCD34D; }
.pointage-btn.amber:hover { background:#FCD34D;color:#fff; }


/* ─── PAGES LÉGALES — refonte graphique ─────────────── */
.legal-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  min-height: calc(100vh - 64px);
  background: var(--bg);
}

/* Sidebar */
.legal-sidebar {
  background: var(--white);
  border-right: 1px solid var(--border);
  padding: 2rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: sticky;
  top: 64px;
  height: calc(100vh - 64px);
  overflow-y: auto;
}
.legal-sidebar-title {
  font-size: .7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--muted);
  padding: 0 .75rem;
  margin-bottom: .75rem;
}
.legal-nav-links {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.legal-nav-item {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .65rem .85rem;
  border-radius: 10px;
  font-size: .88rem;
  font-weight: 500;
  color: var(--text);
  transition: .15s;
  text-decoration: none;
}
.legal-nav-item:hover {
  background: var(--blue-l);
  color: var(--blue);
}
.legal-nav-item.active {
  background: var(--blue);
  color: #fff;
  font-weight: 700;
}
.legal-sidebar-footer {
  margin-top: auto;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  font-size: .75rem;
  color: var(--muted);
  line-height: 1.6;
}
.legal-sidebar-footer p { margin-top: .35rem; }

/* Main content */
.legal-main {
  padding: 2.5rem 2rem;
  max-width: 820px;
}
.legal-card {
  background: var(--white);
  border-radius: 16px;
  padding: 2.5rem;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

/* Typographie des pages légales */
.legal-card h2 {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--dark);
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--blue-l);
  display: flex;
  align-items: center;
  gap: .6rem;
}
.legal-card h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--dark);
  margin: 1.8rem 0 .6rem;
  padding-left: .75rem;
  border-left: 3px solid var(--blue);
}
.legal-card p {
  font-size: .9rem;
  line-height: 1.75;
  color: var(--text);
  margin-bottom: .8rem;
}
.legal-card ul {
  padding-left: 1.4rem;
  margin-bottom: 1rem;
}
.legal-card li {
  font-size: .9rem;
  line-height: 1.75;
  color: var(--text);
  margin-bottom: .3rem;
}
.legal-card strong {
  color: var(--dark);
  font-weight: 700;
}
.legal-card code {
  background: var(--bg);
  border: 1px solid var(--border);
  padding: 2px 7px;
  border-radius: 5px;
  font-size: .82rem;
  font-family: 'Courier New', monospace;
}
.legal-card a {
  color: var(--blue);
  text-decoration: underline;
}

/* Badge intro */
.legal-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: var(--blue-l);
  color: var(--blue-d);
  border: 1px solid #bfdbfe;
  border-radius: 20px;
  padding: 4px 14px;
  font-size: .78rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}

/* Responsive mobile */
@media(max-width: 768px) {
  .legal-layout {
    grid-template-columns: 1fr;
  }
  .legal-sidebar {
    position: static;
    height: auto;
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding: 1rem;
  }
  .legal-nav-links {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .legal-nav-item {
    font-size: .78rem;
    padding: .4rem .7rem;
  }
  .legal-sidebar-footer { display: none; }
  .legal-main { padding: 1.2rem 1rem; }
  .legal-card { padding: 1.4rem; border-radius: 12px; }
}

/* ─── MODE SOMBRE ────────────────────────────────── */
[data-theme="dark"] {
  --blue:    #3B82F6;
  --blue-d:  #2563EB;
  --blue-l:  #1e3a5f;
  --green:   #10B981;
  --green-d: #059669;
  --green-l: #052e16;
  --orange:  #F59E0B;
  --orange-l:#2d1f00;
  --red:     #EF4444;
  --red-l:   #2d0a0a;
  --purple:  #8B5CF6;
  --purple-l:#2e1a4a;
  --dark:    #F1F5F9;
  --text:    #CBD5E1;
  --muted:   #64748B;
  --border:  #334155;
  --bg:      #0F172A;
  --white:   #1E293B;
  --shadow:  0 4px 20px rgba(0,0,0,.35);
  color-scheme: dark;
}
[data-theme="dark"] body { background:var(--bg); color:var(--text); }
[data-theme="dark"] .app-header { background:#1E293B; border-bottom:1px solid var(--border); }
[data-theme="dark"] .app-nav { background:#1E293B; border-bottom:1px solid var(--border); }
[data-theme="dark"] .app-tab { color:var(--muted); }
[data-theme="dark"] .app-tab.active { color:var(--blue); border-bottom-color:var(--blue); }
[data-theme="dark"] .section-card { background:var(--white); border:1px solid var(--border); }
[data-theme="dark"] .form-group input,
[data-theme="dark"] .form-group select,
[data-theme="dark"] .inp,
[data-theme="dark"] select.pointage-siret-select { background:#0f172a; color:var(--text); border-color:var(--border); }
[data-theme="dark"] .form-group label { color:var(--dark); }
[data-theme="dark"] .report-table th { background:#0f172a; }
[data-theme="dark"] .report-table td { border-color:var(--border); }
[data-theme="dark"] .report-table tr:hover td { background:#243346; }
[data-theme="dark"] .total-row td { background:#0f172a !important; }
[data-theme="dark"] .type-card { background:var(--white); border-color:var(--border); }
[data-theme="dark"] .auth-card { background:var(--white); }
[data-theme="dark"] .auth-tab { border-color:var(--border); color:var(--muted); }
[data-theme="dark"] .auth-tab.active { background:var(--blue-l); color:var(--blue); }
[data-theme="dark"] .btn-link { color:var(--blue); }
[data-theme="dark"] .btn-ghost { color:var(--text); background:transparent; }
[data-theme="dark"] .btn-ghost:hover { background:#334155; }
[data-theme="dark"] .btn-ghost2 { background:#334155; color:var(--text); }
[data-theme="dark"] .btn-ghost2:hover { background:#475569; }
[data-theme="dark"] .nir-table tr.row-expired { background:#2d0a0a; }
[data-theme="dark"] .bilan-card { background:#0f172a; border-color:var(--border); }
[data-theme="dark"] .profile-badge.salarie { background:#1e3a5f; color:#93c5fd; }
[data-theme="dark"] .profile-badge.etablissement { background:#052e16; color:#6ee7b7; }
[data-theme="dark"] .app-username { color:var(--text); }
[data-theme="dark"] .btn-logout { color:var(--muted); }
[data-theme="dark"] .btn-logout:hover { color:var(--red); }
[data-theme="dark"] .empty-state { color:var(--muted); }
[data-theme="dark"] .alert.info { background:#1e3a5f; color:#93c5fd; border-color:#2563EB; }
[data-theme="dark"] .alert.success { background:#052e16; color:#6ee7b7; border-color:#10B981; }
[data-theme="dark"] .alert.error { background:#2d0a0a; color:#fca5a5; border-color:#EF4444; }
[data-theme="dark"] .pointage-btn.green { background:#052e16; color:#6ee7b7; }
[data-theme="dark"] .pointage-btn.orange { background:#2d1f00; color:#fcd34d; }
[data-theme="dark"] .pointage-btn.red { background:#2d0a0a; color:#fca5a5; }
[data-theme="dark"] .pointage-btn.blue { background:#1e3a5f; color:#93c5fd; }
[data-theme="dark"] .pointage-btn.purple { background:#2e1a4a; color:#c4b5fd; }
[data-theme="dark"] .pointage-btn.teal { background:#042f2e; color:#5eead4; }
[data-theme="dark"] .pointage-btn.indigo { background:#1e1b4b; color:#a5b4fc; }
[data-theme="dark"] .siret-card { background:var(--white); border-color:var(--border); }
[data-theme="dark"] .pointage-status { background:#1e293b; border-color:var(--border); color:var(--text); }
[data-theme="dark"] .land-nav { background:#1e293b; border-bottom-color:var(--border); }
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4 { color:var(--dark); }

/* ─── ACTIVITÉS DU JOUR (écran pointage) ──────────── */
.activite-status-list { display:flex; flex-direction:column; gap:.6rem; margin-top:.75rem; }
.as-row {
  display:flex; align-items:center; gap:.75rem;
  padding:.7rem 1rem; border-radius:10px;
  background:var(--bg); border:1.5px solid var(--border);
  transition:.2s;
}
.as-row.ongoing {
  border-color:var(--green);
  background:var(--green-l);
}
.as-nom { font-weight:700; font-size:.88rem; min-width:90px; color:var(--dark); }
.as-times { display:flex; align-items:center; gap:.5rem; flex:1; }
.as-time-block { display:flex; flex-direction:column; align-items:center; }
.as-lbl { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); }
.as-time-block strong { font-size:.88rem; color:var(--dark); }
.as-sep { color:var(--muted); font-size:1.1rem; }
.badge-live { color:var(--green); font-size:.78rem; font-weight:700; }

/* ─── ACTIVITÉ BADGE dans les tables ─────────────── */
.activite-badge {
  display:inline-block; padding:2px 8px; border-radius:20px;
  font-size:.75rem; font-weight:700;
}
.act-service  { background:var(--blue-l);   color:var(--blue-d); }
.act-pause    { background:var(--orange-l); color:#92400E; }
.act-absence  { background:var(--red-l);    color:#991B1B; }
.act-other, [class^="act-"] { background:var(--purple-l); color:#5B21B6; }

/* ─── SESSION GROUP HEADER (établissement) ────────── */
.session-group-hdr {
  display:flex; align-items:center; gap:.75rem;
  margin-bottom:.5rem; flex-wrap:wrap;
}
.session-nir-tag {
  font-family:monospace; font-size:.82rem;
  background:var(--bg); border:1px solid var(--border);
  padding:2px 8px; border-radius:6px; color:var(--muted);
}
.session-name-tag {
  font-weight:700; font-size:.88rem; color:var(--dark);
}

/* ─── FIX BOUTONS SALARIÉ (alignement) ─────────────── */
.pointage-grid { align-items:stretch; }
.pointage-btn  { min-height: 80px; justify-content: center; }
.section-card .btn-save,
.section-card .btn-ghost2 { display:block; margin-top:1rem; width:100%; }
@media(min-width:480px){
  .section-card .btn-save,
  .section-card .btn-ghost2 { display:inline-block; width:auto; }
}
