
:root{--bg:#f5f8f7;--card:#fff;--ink:#16342d;--muted:#687a75;--primary:#0b6b57;--primary-dark:#075143;--soft:#e9f4f0;--line:#d9e5e1;--danger:#b43d3d;--warn-bg:#fff6d9;--shadow:0 12px 32px rgba(15,54,44,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px max(18px,calc((100vw - 1180px)/2));background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;cursor:pointer}.brand-icon{width:58px;height:58px;object-fit:contain;border-radius:10px;background:#fff}.brand-title{font-weight:850}.brand-subtitle{font-size:.84rem;color:var(--muted)}nav{display:flex;gap:8px;flex-wrap:wrap}
.container{max-width:1180px;margin:auto;padding:32px 18px 60px}.view{display:none}.view.active{display:block}
.hero{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:34px;border-radius:24px;background:linear-gradient(135deg,#0b6b57,#11856e);color:white;box-shadow:var(--shadow)}
.hero h1{font-size:clamp(2rem,4vw,3.5rem);margin:.2rem 0}.hero p{color:#e7f5f1}.eyebrow{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;font-weight:850;color:var(--primary)}.hero .eyebrow{color:#bfeadf}.muted{color:var(--muted)}
.nav-btn,.filter,.secondary,.tab,.icon-btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:9px 12px}.nav-btn.active,.filter.active,.tab.active{background:var(--soft);border-color:#b8d8cf;color:var(--primary);font-weight:800}
.primary{border:0;background:var(--primary);color:#fff;border-radius:10px;padding:10px 14px;font-weight:800}.primary:hover{background:var(--primary-dark)}.primary:disabled{opacity:.55;cursor:not-allowed}
.danger{border:1px solid #e5bcbc;background:#fff;color:var(--danger);border-radius:10px;padding:9px 12px}.light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.35)}.full{width:100%}
.filter-row,.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:15px}
.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:19px;box-shadow:var(--shadow)}.card h3,.panel h2{margin:.2rem 0 .55rem}.meta{color:var(--muted);font-size:.92rem;line-height:1.62}
.info-box,.warning-box,.status-box{margin-top:18px;border-radius:14px;padding:14px;line-height:1.5}.info-box{background:#eef6f3;border:1px solid #cce3db}.warning-box{background:var(--warn-bg);border:1px solid #eadb9d;color:#66500e}.status-box.error{background:#fff0f0;border:1px solid #eccaca;color:#8f2828}.status-box.loading{background:#f0f4f3;border:1px solid var(--line);color:var(--muted)}
.narrow{max-width:520px;margin:auto}label{display:block;font-weight:750;margin:12px 0 6px}input,select,textarea{width:100%;border:1px solid #cbd9d5;border-radius:10px;padding:11px;background:#fff;color:var(--ink)}textarea{resize:vertical}.check{display:flex;align-items:flex-start;gap:10px;font-weight:650}.check input{width:auto;margin-top:3px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.page-head,.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.page-head h1{margin:.1rem 0}.icon-btn{font-size:1.4rem;line-height:1;padding:6px 10px}
.list{display:grid;gap:12px}.list-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 6px 20px rgba(15,54,44,.045)}.list-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.77rem;font-weight:850}.badge.pending{background:#fff1c7;color:#765400}.badge.validated{background:#e5f4ee;color:#075744}.badge.rejected{background:#fde8e8;color:#8b2b2b}.badge.cancelled{background:#ecefee;color:#596661}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:15px 0 20px}.stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px}.stat b{display:block;font-size:1.65rem;margin-top:3px}.message{margin-top:10px;font-size:.92rem}.hidden{display:none!important}.empty{color:var(--muted);padding:20px 0}footer{text-align:center;color:var(--muted);font-size:.84rem;padding:0 18px 32px}.site-footer{line-height:1.6}.site-footer a{color:var(--primary);font-weight:850;text-decoration:none}.site-footer a:hover{text-decoration:underline}a.link{color:var(--primary);font-weight:800;text-decoration:none}hr{border:0;border-top:1px solid var(--line);margin:24px 0}
.directory-row{border-bottom:1px solid var(--line);padding:12px 0}.directory-row:last-child{border-bottom:0}
@media(max-width:760px){.topbar{align-items:flex-start;flex-direction:column}.topbar nav{width:100%}.nav-btn{flex:1}.grid2,.split,.stats{grid-template-columns:1fr}.hero,.page-head,.panel-head{align-items:flex-start;flex-direction:column}.hero{padding:24px}.list-top{flex-direction:column}}


/* ===== Récurrences et calendrier annuel ===== */
.recurrence-box{
  margin-top:18px;
  padding:15px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fbfdfc;
}
.small{font-size:.86rem}
.selection-summary{
  margin:12px 0;
  padding:10px 12px;
  background:var(--soft);
  border:1px solid #cfe3dc;
  border-radius:10px;
  font-weight:750;
}
.year-calendar{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.month-card{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:10px;
}
.month-title{
  text-align:center;
  font-weight:850;
  margin-bottom:7px;
  text-transform:capitalize;
}
.week-head,.month-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:3px;
}
.week-head span{
  text-align:center;
  font-size:.68rem;
  color:var(--muted);
  font-weight:750;
  padding:2px 0;
}
.cal-day,.cal-empty{
  aspect-ratio:1/1;
  min-width:0;
  display:grid;
  place-items:center;
  border-radius:7px;
  font-size:.74rem;
}
.cal-day{
  border:1px solid transparent;
  background:#f6f9f8;
  color:var(--ink);
  padding:0;
}
.cal-day:hover{border-color:#a9cfc4}
.cal-day.selected{
  background:var(--primary);
  color:#fff;
  font-weight:850;
}
.cal-day.start-date{
  outline:2px solid #7db4a5;
  outline-offset:1px;
}
.cal-day.past{opacity:.42}
@media(max-width:900px){
  .year-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .year-calendar{grid-template-columns:1fr}
  .cal-day,.cal-empty{aspect-ratio:auto;min-height:34px}
}

.center-actions{justify-content:center}
.link-btn{
  border:0;background:transparent;color:var(--primary);font-weight:800;
  padding:8px 10px;text-decoration:underline;text-underline-offset:3px;
}
.recovery-inline{
  margin-top:14px;padding:14px;border:1px solid var(--line);
  border-radius:12px;background:#fbfdfc;
}

.field-hint{display:block;margin-top:5px;color:var(--muted);font-size:.78rem;font-weight:500}


/* ===== Impression / PDF ===== */
.grid3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.print-preview{
  margin-top:18px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:16px;
}
.print-day-group{
  margin-bottom:18px;
  break-inside:avoid;
}
.print-day-group:last-child{margin-bottom:0}
.print-day-title{
  background:var(--soft);
  border:1px solid #cfe3dc;
  border-radius:10px;
  padding:9px 12px;
  font-weight:850;
  margin-bottom:8px;
  text-transform:capitalize;
}
.print-table{
  width:100%;
  border-collapse:collapse;
  font-size:.9rem;
}
.print-table th,.print-table td{
  border:1px solid #d8e2de;
  padding:8px;
  text-align:left;
  vertical-align:top;
}
.print-table th{
  background:#f3f7f5;
  font-weight:800;
}
.print-root{display:none}
.print-brand{
  font-weight:900;
  font-size:1.05rem;
  margin-bottom:4px;
}
.print-header{
  border-bottom:2px solid #1d4f43;
  padding-bottom:10px;
  margin-bottom:16px;
}
.print-header h1{
  margin:0 0 4px;
  font-size:1.6rem;
}
.print-footer{
  margin-top:20px;
  padding-top:8px;
  border-top:1px solid #aaa;
  font-size:.72rem;
  color:#555;
}
@media(max-width:760px){
  .grid3{grid-template-columns:1fr}
  .print-table{font-size:.8rem}
  .print-table th,.print-table td{padding:6px}
}
@media print{
  @page{
    size:A4 landscape;
    margin:10mm;
  }
  body{
    background:#fff !important;
    color:#000 !important;
  }
  .topbar,.container,footer{
    display:none !important;
  }
  .print-root{
    display:block !important;
    font-family:Arial,Helvetica,sans-serif;
    color:#000;
  }
  .print-day-title{
    background:#eee !important;
    color:#000 !important;
    border:1px solid #999;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .print-table{
    width:100%;
    border-collapse:collapse;
    font-size:9.5pt;
  }
  .print-table th,.print-table td{
    border:1px solid #777;
    padding:5px 6px;
  }
  .print-table th{
    background:#eee !important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .badge{
    border:1px solid #777;
    background:#fff !important;
    color:#000 !important;
  }
}


/* ===== V8 : carte, contrôles, statistiques, QR ===== */
.public-tools{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.map-panel{margin-top:18px}
.public-map{height:460px;border-radius:14px;overflow:hidden;background:#e8eeec}
.distance-pill{display:inline-flex;margin-top:7px;padding:4px 8px;border-radius:999px;background:#edf5f2;color:var(--primary);font-size:.78rem;font-weight:850}
.control-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}
.control-count{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.control-count b{display:block;font-size:1.5rem}
.controls-list{display:grid;gap:9px}
.control-item{border:1px solid var(--line);border-left:5px solid #7b8a86;border-radius:11px;padding:11px 13px;background:#fff}
.control-item.high{border-left-color:#b43d3d}.control-item.medium{border-left-color:#d29a22}.control-item.info{border-left-color:#3c7b9e}
.simple-table{width:100%;border-collapse:collapse;font-size:.9rem}
.simple-table th,.simple-table td{border-bottom:1px solid var(--line);padding:8px 7px;text-align:left}
.simple-table th{font-weight:850;background:#f7faf9}
.coverage-box{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.coverage-big{font-size:2.3rem;font-weight:900;color:var(--primary)}
.qr-layout{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}
.qr-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}
.qr-card img{width:100%;height:auto;display:block}
.copy-field{display:flex;gap:8px}.copy-field input{flex:1}.button-link{text-decoration:none;display:inline-flex;align-items:center}
.location-ok{font-weight:800;color:var(--primary)}
.location-missing{font-weight:700;color:#8a6500}
@media(max-width:760px){
  .control-summary{grid-template-columns:1fr 1fr}
  .qr-layout{grid-template-columns:1fr}
  .public-map{height:360px}
}
@media print{
  .qr-print-only{display:block!important}
}

/* ===== V9 : recherche horaire, impression pharmacie, gestion officines ===== */
.nearest-panel{margin:18px 0 20px}
.nearest-actions-cell{display:flex;align-items:end;padding-bottom:1px}
.nearest-results{margin-top:14px}
.nearest-summary{margin:12px 0;color:var(--muted)}
.nearest-card{position:relative}
.nearest-card.nearest-first{border-width:2px;border-color:#8fc8b8}
.nearest-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}
.nearest-rank{display:inline-flex;border-radius:999px;padding:5px 9px;background:var(--primary);color:#fff;font-size:.77rem;font-weight:850}
.nearest-rank.secondary-rank{background:#edf3f1;color:var(--primary)}
.nearest-distance{font-weight:850;color:var(--primary)}
.privacy-note{margin-top:12px}
.pharmacy-print-panel{margin-top:22px}
.directory-row{display:flex;justify-content:space-between;gap:16px;align-items:center}
.directory-main{min-width:0;flex:1}
.directory-actions{margin-top:0;flex:0 0 auto}
.print-header-layout{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.print-qr{width:72px;height:72px;object-fit:contain}
.print-public-url{margin-top:5px;font-size:.78rem;color:#555}
@media(max-width:760px){
  .nearest-actions-cell{align-items:stretch;padding-bottom:0}
  .directory-row{align-items:flex-start;flex-direction:column}
  .directory-actions{width:100%}
}
@media print{
  .print-header-layout{display:flex!important}
  .print-qr{display:block!important;width:60px;height:60px}
  .print-public-url{font-size:7.5pt}
}

/* ===== Présentation de la CPTS sur la page publique ===== */
.cpts-about{margin-top:18px}
.cpts-about-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.cpts-about-logo{width:76px;height:76px;object-fit:contain;flex:0 0 auto;border-radius:16px;background:#fff}
.cpts-about-head h2{margin:.15rem 0 .35rem}
.cpts-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0 16px}
.cpts-fact{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fbfdfc;text-align:center}
.cpts-fact strong{display:block;color:var(--primary);font-size:1.55rem;line-height:1.1;margin-bottom:5px}
.cpts-fact span{display:block;color:var(--muted);font-size:.9rem;font-weight:700}
.cpts-about-text{margin:0;color:var(--ink);line-height:1.65}
.cpts-site-link{display:inline-flex;align-items:center;text-decoration:none;font-weight:800}
@media(max-width:760px){.cpts-about-head{align-items:flex-start}.cpts-about-logo{width:64px;height:64px}.cpts-facts{grid-template-columns:1fr}.cpts-fact{text-align:left}.cpts-fact strong{display:inline-block;margin-right:7px}}

/* ===== V9.3 : tableaux publics téléchargeables ===== */
.public-download-panel{margin:18px 0 20px}
.public-period-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.public-period-btn{min-height:52px;font-weight:800}
.territory-note{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:#f3f8f6;border:1px solid #d7e7e1;line-height:1.5;color:var(--ink)}
#publicTablePanel{margin-top:16px}
#publicTablePanel .print-preview{max-height:520px;overflow:auto}
@media(max-width:760px){.public-period-buttons{grid-template-columns:1fr}#publicTablePanel .print-preview{max-height:none;overflow:visible}}

/* ===== V9.4 : période publique personnalisée ===== */
.custom-period-panel{
  margin:14px 0 4px;
  padding:15px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fbfdfc;
}
.custom-period-panel .grid2{max-width:620px}

/* V9.6 – formulaires de coordonnées */
.pharmacy-profile-panel,.admin-edit-pharmacy-panel{margin-bottom:18px}

/* V9.9 – paramétrage des horaires types */
.guard-type-settings{display:grid;gap:12px;margin:16px 0 18px}
.guard-type-setting-row{display:grid;grid-template-columns:minmax(220px,1.7fr) minmax(130px,.7fr) minmax(130px,.7fr);gap:12px;align-items:end;padding:14px;border:1px solid var(--border,#d9e1dd);border-radius:14px;background:#fff}
.guard-type-setting-row label{margin:0}
@media(max-width:760px){.guard-type-setting-row{grid-template-columns:1fr}}

/* ===== V9.9.2 : menus publics repliables et paramétrage CPTS ===== */
.public-accordion{padding:0;overflow:hidden;margin:18px 0 20px}
.public-accordion-trigger{
  width:100%;border:0;background:#fff;color:var(--ink);padding:18px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;
  cursor:pointer
}
.public-accordion-trigger:hover{background:#fbfdfc}
.public-accordion-trigger .eyebrow{display:block;margin-bottom:5px}
.public-accordion-title{display:block;font-size:1.18rem;line-height:1.25}
.public-accordion-chevron{
  width:34px;height:34px;border:1px solid var(--line);border-radius:999px;display:grid;place-items:center;
  flex:0 0 auto;font-size:1.35rem;transition:transform .2s ease,background .2s ease;background:var(--soft);color:var(--primary)
}
.public-accordion.is-open .public-accordion-chevron{transform:rotate(180deg)}
.public-accordion-content{border-top:1px solid var(--line);padding:0 20px 20px}
.public-accordion-content>.section-intro{margin-top:16px}
.public-guards-accordion .filter-row{margin-top:18px}
.public-accordion .map-panel{margin-top:18px;box-shadow:none}
.public-accordion.cpts-about{padding:0}
.public-accordion.cpts-about .cpts-about-head{margin-top:20px}

.public-section-settings{display:grid;gap:10px;margin-top:18px}
.public-section-setting-row{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fbfdfc
}
.switch-control{position:relative;display:inline-block;width:52px;height:30px;margin:0;flex:0 0 auto}
.switch-control input{opacity:0;width:0;height:0;position:absolute}
.switch-slider{position:absolute;inset:0;background:#cbd9d5;border-radius:999px;transition:.2s;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.switch-slider:before{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.switch-control input:checked + .switch-slider{background:var(--primary)}
.switch-control input:checked + .switch-slider:before{transform:translateX(22px)}
.switch-control input:focus-visible + .switch-slider{outline:3px solid #b8d8cf;outline-offset:2px}
@media(max-width:760px){
  .public-accordion-trigger{padding:16px}
  .public-accordion-content{padding:0 16px 16px}
  .public-section-setting-row{align-items:center}
}


/* ===== V10.0 : sécurisation publique, alerte de fin de garde, traçabilité ===== */
.public-last-updated{margin-top:10px;font-size:.82rem;font-weight:750;opacity:.92}
.emergency-strip{
  margin:12px 0 18px;padding:10px 14px;border-left:4px solid #b52f2f;border-radius:8px;
  background:#fff4f4;color:#7e2020;font-size:.84rem;line-height:1.45;text-align:right
}
.source-note{margin-top:7px;color:var(--muted);font-size:.78rem;font-style:italic}
.closing-alert{
  margin-top:12px;padding:11px 13px;border:1px solid #e6a0a0;border-left:5px solid #ba2f2f;
  border-radius:11px;background:#fff1f1;color:#8f2020;line-height:1.45
}
.next-guard-panel{margin-top:18px;padding-top:18px;border-top:2px dashed #d5dfdc}
.next-guard-heading{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;padding:12px 14px;border-radius:12px;background:#f2f8f6;border:1px solid #d5e7e1;color:var(--ink)}
.next-guard-heading>span{font-size:1.25rem}
.next-guard-heading span:last-child{color:var(--muted);font-size:.86rem}
.next-rank{background:#275b8a}
.next-guard-card.nearest-first{border-color:#9bbad4}
.legal-content{line-height:1.62}
.legal-content p{margin:14px 0}
.legal-content a{color:var(--primary);font-weight:750}
.audit-list{display:grid;gap:10px;margin-top:16px}
.audit-item{padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}
.audit-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:7px}
.audit-head span{font-size:.8rem;color:var(--muted)}
.audit-diff{margin-top:8px;padding:8px 10px;border-radius:9px;background:#f5f8f7;font-size:.82rem;color:#42524e}
@media(max-width:760px){
  .emergency-strip{text-align:left;font-size:.8rem}
  .audit-head{align-items:flex-start;flex-direction:column;gap:3px}
}

/* ===== V10.1 : affichage officine simplifié + personnalisation page publique ===== */
.emergency-size-small{padding:7px 10px;font-size:.74rem;line-height:1.35;border-left-width:3px}
.emergency-size-medium{padding:10px 14px;font-size:.84rem;line-height:1.45;border-left-width:4px}
.emergency-size-large{padding:16px 18px;font-size:1rem;line-height:1.55;border-left-width:6px}
.emergency-admin-preview{margin:6px 0 0;text-align:left;min-height:54px}
.field-label{display:block;font-weight:750;margin-bottom:6px;color:var(--ink)}
.public-section-setting-row{justify-content:flex-start}
.public-section-order{display:flex;gap:6px;flex:0 0 auto}
.public-section-setting-label{min-width:0;flex:1}
.compact-btn{min-width:38px;padding:7px 9px;line-height:1;font-size:1rem}
.order-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#f6eaea;color:#8c2b2b;font-size:.75rem;font-weight:800;white-space:nowrap}

.simple-door-table{font-size:1.02rem}
.simple-door-table th,.simple-door-table td{padding:10px 11px;vertical-align:middle}
.simple-door-table .simple-hours,.simple-door-table .simple-phone{white-space:nowrap}
.simple-door-table .simple-pharmacy{font-size:1.06em}
.print-preview.simple-door-format .print-day-title{font-size:1.08rem;padding:11px 13px}
.print-preview.simple-door-format{padding:18px}

@media(max-width:760px){
  .public-section-setting-row{flex-wrap:wrap;gap:10px}
  .public-section-setting-label{order:1;flex:1 1 calc(100% - 100px)}
  .public-section-order{order:0}
  .public-section-setting-row .switch-control,.public-section-setting-row .order-badge{order:2;margin-left:auto}
  .emergency-size-large{font-size:.92rem;padding:13px 15px}
}

@media print{
  @page simple-door{size:A4 portrait;margin:9mm}
  .print-root.simple-door-format{page:simple-door}
  .print-root.simple-door-format .print-header-layout{display:block!important;text-align:center;border-bottom:2px solid #111;padding-bottom:8px;margin-bottom:10px}
  .print-root.simple-door-format .print-header h1{font-size:18pt;margin-bottom:3px}
  .print-root.simple-door-format .print-brand{font-size:10pt}
  .print-root.simple-door-format .print-public-url{display:none!important}
  .print-root.simple-door-format .print-qr{display:none!important}
  .print-root.simple-door-format .print-day-group{margin-bottom:12px;break-inside:avoid}
  .print-root.simple-door-format .print-day-title{font-size:13pt;padding:7px 9px;margin-bottom:4px;background:#fff!important;border:2px solid #111;border-radius:0;text-align:center}
  .print-root.simple-door-format .simple-door-table{font-size:11pt}
  .print-root.simple-door-format .simple-door-table th,.print-root.simple-door-format .simple-door-table td{border:1.4px solid #111;padding:7px 6px}
  .print-root.simple-door-format .simple-door-table th{background:#fff!important;text-align:center;font-size:10pt;text-transform:uppercase}
  .print-root.simple-door-format .simple-door-table td{vertical-align:middle}
  .print-root.simple-door-format .simple-door-table .simple-pharmacy{font-size:11.5pt}
  .print-root.simple-door-format .print-footer{font-size:7.5pt;margin-top:10px;padding-top:6px;color:#222}
}
.emergency-strip em{white-space:pre-line}

/* ===== V10.3.3 : sécurisation de l'import en série ===== */
.guard-import-preview{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc}
.guard-import-preview h4{margin:0 0 12px}
.guard-import-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.guard-import-stat{border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px 12px}
.guard-import-stat span{display:block;color:var(--muted);font-size:.78rem;font-weight:750}
.guard-import-stat b{display:block;margin-top:3px;font-size:1.25rem}
.guard-import-stat.ok{border-color:#b9d9ce;background:#f2faf7}
.guard-import-stat.warn{border-color:#ead8aa;background:#fffaf0}
.guard-import-table-wrap{overflow:auto;max-height:420px;border:1px solid var(--line);border-radius:11px;background:#fff}
.guard-import-table{width:100%;border-collapse:collapse;min-width:780px;font-size:.86rem}
.guard-import-table th,.guard-import-table td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.guard-import-table th{position:sticky;top:0;background:#eef6f3;z-index:1;font-size:.78rem;text-transform:uppercase;letter-spacing:.02em}
.guard-import-issues{margin-top:12px;padding:11px 13px;border-radius:10px;line-height:1.45}
.guard-import-issues ul{margin:7px 0 0 18px;padding:0}
.guard-import-issues.error{background:#fff1f1;border:1px solid #edc7c7;color:#842626}
.guard-import-issues.duplicate{background:#fff9ed;border:1px solid #ead8aa;color:#695315}
.guard-import-issues.overlap{background:#fff3e9;border:1px solid #e7c39e;color:#754319}
.app-version{margin-top:4px;font-size:.75rem;opacity:.8}
@media(max-width:760px){
  .guard-import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ===== V10.3.4 : sélection des pharmacies dans les tableaux publics ===== */
.table-pharmacy-selector{margin:14px 0 16px;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc}
.table-pharmacy-selector-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.table-pharmacy-selector-head p{margin:5px 0 0}
.compact-actions{margin-top:0;justify-content:flex-end}
.table-pharmacy-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.table-pharmacy-choice{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;margin:0}
.table-pharmacy-choice input{width:auto;margin-top:3px;flex:0 0 auto}
.table-pharmacy-choice span{min-width:0}
.table-pharmacy-choice strong{display:block;line-height:1.25}
.table-pharmacy-choice small{display:block;margin-top:3px;color:var(--muted);font-weight:600}
#publicTableSimplePdfBtn:disabled,#publicTableDetailedPdfBtn:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:760px){
  .table-pharmacy-selector-head{flex-direction:column}
  .compact-actions{width:100%;justify-content:flex-start}
  .table-pharmacy-checklist{grid-template-columns:1fr}
}

/* V10.4 – créneaux types personnalisés */
.section-divider{border:0;border-top:1px solid var(--border,#d9e1dd);margin:26px 0}
.guard-time-slot-form{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(130px,.7fr) minmax(130px,.7fr);gap:12px;align-items:end}
.guard-time-slots-list{display:grid;gap:10px;margin-top:18px}
.guard-time-slot-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--border,#d9e1dd);border-radius:14px;background:#fff}
.guard-time-slot-row .actions{margin-top:0}
@media(max-width:760px){.guard-time-slot-form{grid-template-columns:1fr}.guard-time-slot-row{align-items:flex-start;flex-direction:column}}

/* V10.4.1 – navigation chronologique des gardes publiques */
.next-navigation{display:flex;justify-content:flex-end;margin-top:12px}
.next-navigation .primary{min-width:150px}
.compact-next-panel{padding-top:14px}
.next-help{margin-top:10px}
@media(max-width:640px){.next-navigation .primary{width:100%}}

/* ===== V10.5.3 : répertoire vertical + archives ===== */
.directory-row{display:block!important}
.directory-main{width:100%;max-width:none}
.directory-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:100%;max-width:330px;margin-top:12px}
.directory-actions button{width:100%;text-align:center}
@media(min-width:900px){.directory-actions{max-width:280px}}


/* V10.6.2 – aperçu public rapide dans l'administration */
.info{border:1px solid #b8d3f0;background:#eef5ff;color:#245ea8;border-radius:10px;padding:9px 12px}
.info:hover{background:#e2eefc}
.admin-status-stack{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:0 0 auto}
.preview-toggle-btn{min-width:92px;text-align:center}
.admin-guard-preview-card{margin-top:14px}
.admin-guard-preview-head{font-size:.9rem;font-weight:800;color:#245ea8;margin:0 0 8px 2px}
.admin-guard-preview-body{padding:16px 18px;border-color:#cfe0f5;background:#fbfdff;box-shadow:none}
.admin-guard-preview-body h3{margin-top:.5rem}
@media(max-width:760px){.admin-status-stack{align-items:flex-start}}


/* V10.6.4 – navigation précédente / suivante dans les gardes de proximité */
.next-navigation{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.next-navigation .secondary,.next-navigation .primary{min-width:150px}
.next-navigation .secondary:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:640px){.next-navigation .secondary,.next-navigation .primary{flex:1 1 140px;width:auto}}

/* V10.6.4 – mention de droits en pied de page public */
.copyright-notice{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:.75rem;line-height:1.45;opacity:.82}


/* ===== V10.7 : sauvegarde et restauration complète ===== */
.backup-card{height:100%}
.backup-actions{align-items:center}
.backup-actions .primary,.backup-actions .secondary,.backup-actions .danger{min-height:42px}
#restoreBackupPreview{white-space:pre-line;line-height:1.55}
.backup-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px}
.backup-count{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fbfdfc}
.backup-count strong{display:block;font-size:1.2rem}


/* V10.7.4 – QR public visible + champs d’accès facultatifs */
.optional-label{font-weight:500;color:var(--muted);font-size:.88em}
.public-access-qr-panel{padding:0;overflow:hidden}
.public-access-qr-content-inner{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:24px;align-items:center;padding-top:16px}
.public-access-qr-copy .section-intro{margin-top:0}
.public-access-qr-image-wrap{display:flex;align-items:center;justify-content:center}
.public-access-qr-image-wrap img{width:min(210px,100%);height:auto;display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:var(--shadow)}
@media(max-width:700px){.public-access-qr-content-inner{grid-template-columns:1fr}.public-access-qr-image-wrap{justify-content:flex-start}.public-access-qr-image-wrap img{width:180px}}

/* V10.7.6 – QR code public repliable comme les autres rubriques */
