:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#0f172a;background:#eef3f8;
  --blue:#003a8e;--blue2:#0754b8;--navy:#0f2f63;--red:#d0001b;
  --green:#16a34a;--orange:#d97706;--red2:#dc2626;--darkred:#7f1d1d;
  --line:#dbe4ee;--muted:#64748b;--panel:#fff
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#edf2f7}
button,input{font:inherit}
button{cursor:pointer}
a{color:inherit}

/* ---- LOGIN : reprise de l'identité visuelle ERP Sécurité ---- */
.login-page{
  min-height:100vh;width:100%;display:grid;
  grid-template-columns:minmax(500px,43vw) 1fr;align-items:center;
  gap:clamp(24px,4vw,64px);padding:clamp(28px,4vw,60px) clamp(28px,5vw,82px);
  position:relative;overflow:hidden;color:#fff;
  background-image:url("/assets/login_building.png");
  background-size:cover;background-position:center;background-repeat:no-repeat
}
.login-page:before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(2,12,32,.05),rgba(2,12,32,.18))}
.login-page:after{
  content:"";position:absolute;z-index:1;left:-13vw;top:-24vh;width:min(58vw,820px);height:148vh;
  border-radius:0 50% 50% 0;
  background:radial-gradient(circle at 20% 18%,rgba(37,99,235,.24),transparent 35%),
             linear-gradient(180deg,rgba(3,31,79,.985),rgba(0,49,112,.965) 52%,rgba(0,34,78,.985));
  box-shadow:28px 0 58px rgba(0,36,84,.22)
}
.login-showcase,.login-card{position:relative;z-index:2}
.login-showcase{width:100%;max-width:535px;color:#fff}
.login-showcase:after{content:"";position:absolute;top:0;right:-8px;width:14px;height:100%;background:#dc001b;border-radius:0 260px 260px 0;opacity:.95}
.login-main-logo{width:245px;margin:0 0 25px}
.login-main-logo img{display:block;width:100%;max-height:92px;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(0,0,0,.22))}
.login-eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.14em;color:#dbeafe;font-weight:900;font-size:.8rem}
.login-showcase h1{margin:0 0 16px;font-size:clamp(2.85rem,4.5vw,5.2rem);line-height:.94;letter-spacing:-.055em;text-shadow:0 14px 36px rgba(0,0,0,.22)}
.login-subtitle{max-width:520px;margin:0;font-size:clamp(.95rem,1.05vw,1.12rem);line-height:1.36;color:#eef6ff;font-weight:650}
.login-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px;max-width:500px;margin-top:30px}
.login-feature-grid span{display:grid;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:8px;min-height:40px;padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);font-weight:850;font-size:.78rem;backdrop-filter:blur(10px);white-space:nowrap;overflow:hidden}
.login-feature-grid b{font-size:.95rem}.login-feature-grid i{font-size:1.35rem;font-style:normal}
.login-signature{display:flex;align-items:center;gap:14px;margin-top:54px;color:#e0ecff;font-size:.82rem}
.login-signature img{width:98px;background:rgba(255,255,255,.96);border-radius:12px;padding:7px 10px;box-shadow:0 14px 30px rgba(0,0,0,.22)}
.login-signature p{margin:0;line-height:1.3}
.login-card{
  width:310px;justify-self:center;transform:translateY(-48px);color:#0f172a;background:rgba(255,255,255,.95);
  border:1px solid rgba(148,163,184,.28);border-top:6px solid var(--red);border-radius:22px;padding:20px;
  box-shadow:0 24px 58px rgba(0,20,55,.24);backdrop-filter:blur(14px)
}
.login-back{display:inline-block;margin-bottom:15px;color:#355271;text-decoration:none;font-size:.78rem;font-weight:800}
.secure-kicker{color:#0f2f63;font-size:.76rem;font-weight:900;margin-bottom:8px;letter-spacing:.04em}
.login-card h2{margin:0 0 6px;color:#003a8e;font-size:1.72rem;line-height:1.03}
.login-card>p{margin:0 0 16px;color:#334155;font-weight:650;font-size:.84rem;line-height:1.3}
.login-card label{display:block;margin:10px 0 5px;color:#0f2f63;font-weight:900;font-size:.82rem}
.login-card input{width:100%;min-height:40px;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;background:#fff;outline:none}
.login-card input:focus{border-color:#0754b8;box-shadow:0 0 0 3px rgba(7,84,184,.12)}
.login-card button{width:100%;min-height:42px;margin-top:16px;border:0;border-radius:11px;background:linear-gradient(135deg,#003a8e,#0754b8);color:#fff;font-weight:900;box-shadow:0 12px 24px rgba(0,58,142,.24)}
.demo-note{display:block;margin-top:13px;color:#708096;font-size:.7rem;text-align:center}
.error{background:#fff1f2!important;color:#9d1f2c!important;padding:10px!important;border-radius:8px;margin-top:12px!important}

/* ---- APP SHELL ---- */
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr);background:#eef3f8}
.sidebar{position:sticky;top:0;height:100vh;padding:26px 18px;background:linear-gradient(180deg,#082d5a,#061e3c);color:#fff;box-shadow:8px 0 26px rgba(14,40,72,.12);z-index:10}
.side-brand{display:flex;align-items:center;gap:10px;padding:4px 6px 24px;border-bottom:1px solid rgba(255,255,255,.12)}
.side-brand img{width:62px;height:42px;object-fit:contain;background:#fff;border-radius:8px;padding:4px}
.side-brand strong{display:block;font-size:1rem}.side-brand small{display:block;color:#afc8e5;margin-top:2px}
.side-demo{display:inline-flex;margin:16px 6px 10px;padding:5px 9px;border-radius:999px;background:#fff3cd;color:#6d5200;font-size:.68rem;font-weight:900;letter-spacing:.06em}
.nav-btn{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;color:#dbe7f5;padding:12px;border-radius:10px;margin:4px 0;font-weight:800}
.nav-btn.active,.nav-btn:hover{background:rgba(43,116,191,.42);color:#fff}
.nav-btn .ico{width:20px;text-align:center}
.sidebar .logout{position:absolute;bottom:22px;left:18px;right:18px;width:calc(100% - 36px);background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:11px;border-radius:9px;font-weight:800}
.content{padding:26px 34px 70px;min-width:0}
.demo-watermark{position:fixed;right:18px;bottom:12px;z-index:99;pointer-events:none;opacity:.38;font-size:10px;font-weight:900;background:#fff;padding:5px 9px;border-radius:6px}
.top-demo-strip{display:flex;justify-content:flex-end;margin-bottom:14px}
.demo-access-badge{background:#fff6d8;border:1px solid #e6cf86;color:#725500;padding:8px 12px;border-radius:11px;font-size:.72rem;font-weight:850;line-height:1.35;box-shadow:0 4px 14px rgba(95,74,6,.06)}

/* ---- DASHBOARD ---- */
.dashboard{width:100%;max-width:1380px;margin:0 auto;display:grid;gap:20px}
.dashboard-header{position:relative;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 30px;border-radius:28px;background:radial-gradient(circle at 8% 15%,rgba(255,255,255,.20),transparent 28%),linear-gradient(135deg,#003a8e 0%,#0754b8 60%,#0f2f63 100%);color:#fff;box-shadow:0 20px 48px rgba(0,58,142,.22);overflow:hidden}
.dashboard-header:after{content:"";position:absolute;inset:auto 0 0;height:6px;background:#dc001b}
.dashboard-title{display:flex;align-items:center;gap:18px;z-index:1}
.dashboard-logo{width:74px;height:74px;border-radius:20px;background:#fff;display:grid;place-items:center;box-shadow:0 16px 36px rgba(0,20,55,.26);overflow:hidden}
.dashboard-logo img{width:88%;height:88%;object-fit:contain}
.kicker{display:block;margin-bottom:5px;color:#bfdbfe;font-size:.78rem;text-transform:uppercase;letter-spacing:.13em;font-weight:900}
.dashboard-header h1{margin:0;font-size:clamp(1.9rem,3vw,3.15rem);line-height:1;letter-spacing:-.04em}
.dashboard-header p{margin:9px 0 0;color:#eaf2ff;font-weight:650}
.dashboard-date{text-align:right;z-index:1}.dashboard-date strong{display:block;font-size:1.05rem}.dashboard-date span{display:block;color:#dbeafe;margin-top:4px;font-weight:750;font-size:.84rem}
.top-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.mini-card{border:0;border-radius:17px;padding:15px 13px;display:grid;gap:4px;text-align:center;font-weight:800;box-shadow:0 8px 22px rgba(15,23,42,.05)}
.mini-card strong{font-size:1.6rem}.mini-card span{font-size:.8rem}
.mini-blue{background:#dbeafe;color:#1e3a8a}.mini-green{background:#dcfce7;color:#166534}.mini-orange{background:#ffedd5;color:#9a3412}.mini-red{background:#fee2e2;color:#991b1b}
.main-grid{display:grid;grid-template-columns:1.15fr 1.15fr .9fr;gap:18px}
.panel{background:#fff;border:1px solid rgba(59,130,246,.18);border-radius:23px;padding:20px;box-shadow:0 12px 30px rgba(15,23,42,.07);min-width:0}
.panel h2,.panel h3{margin:0;color:#0f172a}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:.8rem}
.gauge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.gauge-card{border:1px solid #e3eaf2;border-radius:18px;padding:15px;display:grid;justify-items:center;gap:10px;text-align:center;background:#fbfdff}
.gauge-card h3{font-size:.9rem}.gauge{--pct:70;--gc:#16a34a;width:104px;height:104px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gc) calc(var(--pct)*1%),#e5e7eb 0)}
.gauge:after{content:attr(data-value);width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:1.35rem;font-weight:950;color:#0f172a}
.gauge.orange{--gc:#d97706}.gauge.blue{--gc:#0754b8}
.gauge-card small{color:#64748b;font-weight:700;line-height:1.3}
.legend{display:flex;flex-wrap:wrap;gap:11px;margin-bottom:14px;color:#475569;font-weight:800;font-size:.76rem}
.legend span{display:inline-flex;align-items:center;gap:5px}.dot{width:9px;height:9px;border-radius:50%}.green{background:#16a34a}.orange{background:#d97706}.red{background:#dc2626}.darkred{background:#7f1d1d}.gray{background:#94a3b8}
.chart{display:grid;gap:11px}.chart-row{display:grid;grid-template-columns:135px 1fr 30px;align-items:center;gap:10px;padding:9px 10px;background:#f8fafc;border-radius:13px}
.chart-label{font-size:.76rem;font-weight:850;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track{height:14px;border-radius:999px;background:#e2e8f0;overflow:hidden;display:flex}.seg-green{background:#16a34a}.seg-orange{background:#d97706}.seg-red{background:#dc2626}.seg-dark{background:#7f1d1d}.seg-gray{background:#94a3b8}
.chart-total{font-size:.76rem;font-weight:900;color:#475569;text-align:right}
.alert-list{display:grid;gap:9px}.alert-card{border:0;border-left:4px solid #d97706;border-radius:13px;background:#fff7ed;padding:10px;display:grid;grid-template-columns:30px 1fr;gap:9px;text-align:left}.alert-card.overdue{border-left-color:#b91c1c;background:#fff1f2}.alert-card.missing{border-left-color:#64748b;background:#f8fafc}
.alert-icon{width:28px;height:28px;border-radius:9px;background:#fff;display:grid;place-items:center;font-weight:950}.alert-card strong{display:block;font-size:.78rem}.alert-card span,.alert-card small{display:block;color:#64748b;font-size:.68rem;line-height:1.3;margin-top:2px}
.bottom-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}
.commission-row{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid #e2e8f0;border-radius:13px;background:#f8fafc;margin-top:9px}.commission-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#dbeafe;color:#1d4ed8}.commission-row strong{display:block;font-size:.79rem}.commission-row small{display:block;color:#64748b;margin-top:2px;font-size:.7rem}
.action-link{border:0;border-radius:11px;padding:9px 12px;background:linear-gradient(135deg,#003a8e,#0754b8);color:#fff;font-weight:850;font-size:.77rem}
.fiction-note{font-size:.72rem;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;padding:10px 12px;border-radius:10px}

/* ---- ESTABLISHMENT CARDS ---- */
.page-wrap{width:100%;max-width:1380px;margin:0 auto}
.page-title{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px}.page-title h1{margin:0;color:#0f172a;font-size:2rem}.page-title p{margin:5px 0 0;color:#64748b}
.estab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.estab-card{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:238px;background:#fff;border:1px solid #d8e3ee;border-radius:22px;overflow:hidden;box-shadow:0 12px 28px rgba(15,23,42,.07);transition:.15s;text-align:left}
.estab-card:hover{transform:translateY(-2px);box-shadow:0 17px 34px rgba(15,23,42,.11);border-color:#9abbe1}
.estab-card.showcase{box-shadow:0 0 0 2px rgba(7,84,184,.11),0 12px 28px rgba(15,23,42,.07)}
.estab-photo{position:relative;overflow:hidden;background:#dce5ec}.estab-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:.25s}.estab-card:hover .estab-photo img{transform:scale(1.025)}
.status-float{position:absolute;top:12px;left:12px;padding:5px 9px;border-radius:999px;background:#fff;font-size:.66rem;font-weight:900;box-shadow:0 5px 14px rgba(0,0,0,.12)}
.status-float.good{color:#166534}.status-float.watch{color:#9a3412}.status-float.bad{color:#991b1b}
.showcase-tag{position:absolute;right:10px;bottom:10px;background:#003a8e;color:#fff;padding:5px 8px;border-radius:8px;font-size:.63rem;font-weight:900}
.estab-body{padding:17px;display:flex;flex-direction:column}.classification{color:#0754b8;font-weight:900;font-size:.7rem}.estab-body h3{margin:5px 0 6px;font-size:1.12rem;color:#172033}.address{margin:0;color:#64748b;font-size:.76rem}.activity{margin:7px 0 0;color:#334155;font-weight:800;font-size:.76rem}
.mini-gauges{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.mini-gauge{display:grid;justify-items:center;gap:4px;font-size:.62rem;font-weight:850;color:#475569}.ring{--p:0;--c:#16a34a;width:47px;height:47px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--c) calc(var(--p)*1%),#e5e7eb 0)}.ring:after{content:attr(data-v);width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:.62rem;font-weight:950;color:#334155}.ring.orange{--c:#d97706}.ring.red{--c:#dc2626}
.card-actions{display:flex;gap:8px;margin-top:auto;padding-top:13px}.card-actions button{border:0;border-radius:9px;padding:8px 11px;font-size:.72rem;font-weight:850}.primary{background:#0754b8;color:#fff}.secondary{background:#eef4fa;color:#174b7e}

/* ---- REGISTER ---- */
.back-btn{border:0;background:none;padding:0;color:#0754b8;font-weight:850;margin-bottom:12px}
.estab-hero{display:grid;grid-template-columns:280px 1fr;min-height:210px;background:#fff;border:1px solid #d8e3ee;border-radius:22px;overflow:hidden;box-shadow:0 12px 28px rgba(15,23,42,.07);margin-bottom:18px}
.estab-hero img{width:100%;height:100%;object-fit:cover}.hero-info{padding:24px}.hero-info .classification{font-size:.78rem}.hero-info h1{margin:6px 0 8px;font-size:2rem}.hero-info p{margin:4px 0;color:#64748b}.hero-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.chip{padding:6px 9px;border-radius:999px;background:#eef4fa;color:#174b7e;font-size:.7rem;font-weight:850}
.register-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:0 0 18px}.summary-chip{background:#fff;border:1px solid #e2e8f0;border-radius:13px;padding:11px;text-align:center}.summary-chip strong{display:block;font-size:1.18rem}.summary-chip span{font-size:.68rem;color:#64748b;font-weight:800}
.register-table{overflow:auto;background:#fff;border:1px solid #d8e3ee;border-radius:18px;box-shadow:0 8px 22px rgba(15,23,42,.05)}
table{border-collapse:collapse;width:100%;min-width:900px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #edf1f5;font-size:.72rem;vertical-align:top}th{background:#f7f9fc;color:#43516a;font-weight:900;position:sticky;top:0}tbody tr:hover{background:#fbfdff}
.pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.65rem;font-weight:900;white-space:nowrap}.pill.a_jour{background:#dcfce7;color:#166534}.pill.echeance_proche{background:#fff7d6;color:#8a6100}.pill.a_surveiller{background:#ffedd5;color:#9a3412}.pill.depasse{background:#fee2e2;color:#991b1b}.pill.a_completer{background:#f1f5f9;color:#475569}
.section-head{display:flex;justify-content:space-between;align-items:center;margin:24px 0 10px}.section-head h2{margin:0;font-size:1.25rem}.section-head span{color:#64748b;font-size:.72rem}
.doc-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.doc-card{background:#fff;border:1px solid #d8e3ee;border-radius:14px;padding:12px;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center}.doc-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#eef4fa}.doc-card strong{display:block;font-size:.76rem}.doc-card small{display:block;color:#64748b;margin-top:2px;font-size:.66rem}.readonly-tag{font-size:.63rem;font-weight:850;color:#64748b;background:#f1f5f9;padding:5px 7px;border-radius:999px}

/* mobile */
@media(max-width:1180px){
  .login-page{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:28px 22px 42px;gap:26px;overflow-y:auto;background-image:linear-gradient(rgba(7,26,61,.34),rgba(7,26,61,.46)),url("/assets/login_building.png")}
  .login-page:after,.login-showcase:after{display:none}.login-showcase{max-width:820px;margin:0 auto}.login-card{width:100%;max-width:540px;margin:10px auto 0;transform:none;padding:28px}
  .main-grid{grid-template-columns:1fr 1fr}.main-grid>.panel:last-child{grid-column:1/-1}.top-grid{grid-template-columns:repeat(2,1fr)}.gauge-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar .logout{position:static;width:100%;margin-top:18px}.content{padding:20px}
  .main-grid,.bottom-grid{grid-template-columns:1fr}.estab-grid{grid-template-columns:1fr}.estab-hero{grid-template-columns:220px 1fr}.register-summary{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:620px){
  .login-feature-grid{grid-template-columns:1fr}.login-main-logo{width:190px}.login-showcase h1{font-size:3rem}.login-signature{margin-top:28px}
  .top-grid,.gauge-grid{grid-template-columns:1fr 1fr}.dashboard-header{align-items:flex-start;flex-direction:column}.dashboard-date{text-align:left}
  .estab-card{grid-template-columns:1fr}.estab-photo{height:180px}.estab-hero{grid-template-columns:1fr}.estab-hero img{height:190px}.doc-cards{grid-template-columns:1fr}.register-summary{grid-template-columns:repeat(2,1fr)}
}
@media print{body{display:none!important}}
