

/* Connexion modernisée — 2026-09-25 */
.auth-body {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: clamp(20px, 5vw, 56px);
  background: radial-gradient(circle at 12% 12%, #294366 0, transparent 38%),
    radial-gradient(circle at 92% 100%, #2a304e 0, transparent 36%),
    #1b2c47;
  color: #203655;
}

.auth-body .auth-card {
  width: min(100%, 520px);
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 30px 80px rgba(8, 19, 37, .24);
}

.auth-body .auth-brand {
  min-height: 136px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 32px;
  border-bottom: 4px solid #ffba18;
  background: linear-gradient(118deg, #5d1f2d, #702638 70%, #582233);
}

.auth-body .auth-brand img {
  display: block;
  width: 210px;
  height: 110px;
  max-width: 70%;
  max-height: none;
  object-fit: contain;
}

.auth-body .auth-content {
  padding: clamp(28px, 5vw, 42px);
}

.auth-body .auth-content .eyebrow {
  margin: 0 0 10px;
  color: #75293a;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.auth-body .auth-content h1 {
  margin: 0 0 12px;
  color: #203655;
  font-size: clamp(28px, 4vw, 34px);
  line-height: 1.12;
  letter-spacing: -.03em;
}

.auth-body .auth-content .muted {
  margin: 0 0 29px;
  color: #62728a;
  font-size: 15px;
  line-height: 1.55;
}

.auth-body .auth-content form {
  display: grid;
  gap: 18px;
}

.auth-body .auth-content label {
  display: grid;
  gap: 8px;
  margin: 0;
  color: #253a5b;
  font-size: 14px;
  font-weight: 700;
}

.auth-body .auth-content input[type="email"],
.auth-body .auth-content input[type="password"] {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 12px 15px;
  border: 1px solid #d5ddea;
  border-radius: 12px;
  background: #f9fbfe;
  color: #203655;
  font-family: inherit;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.35;
  box-shadow: none;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.auth-body .auth-content input[type="email"]:focus,
.auth-body .auth-content input[type="password"]:focus {
  outline: none;
  border-color: #6d293c;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(109, 41, 60, .12);
}

.auth-body .auth-content .btn {
  width: 100%;
  min-height: 52px;
  margin-top: 4px;
  border: 0;
  border-radius: 12px;
  background: #65202e;
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.auth-body .auth-content .btn:hover {
  background: #7b2a3c;
  box-shadow: 0 8px 18px rgba(101, 32, 46, .2);
  transform: translateY(-1px);
}

.auth-body .auth-content .btn:focus-visible,
.auth-body .auth-content .auth-link:focus-visible {
  outline: 3px solid #ffba18;
  outline-offset: 3px;
}

.auth-body .auth-content .auth-link {
  display: inline-block;
  margin-top: 20px;
  color: #65202e;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.auth-body .auth-content .auth-link:hover { text-decoration: underline; }

@media (max-width: 540px) {
  .auth-body { padding: 16px; }
  .auth-body .auth-card { border-radius: 20px; }
  .auth-body .auth-brand { min-height: 104px; }
  .auth-body .auth-content { padding: 28px 24px 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .auth-body .auth-content .btn,
  .auth-body .auth-content input[type="email"],
  .auth-body .auth-content input[type="password"] { transition: none; }
}
:root{--grenat:#65202e;--gold:#f9af05;--blue:#1b355e;--bg:#f3f5f8;--muted:#68758a;--white:#fff;--border:#dfe4eb;--green:#187452;--red:#a62a35}*{box-sizing:border-box}html{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--blue);background:var(--bg)}body{margin:0;font-size:16px}a{color:inherit}.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,var(--blue),#101d33)}.auth-card{width:min(100%,500px);overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 28px 80px #0005}.auth-brand{display:grid;place-items:center;padding:28px;background:var(--grenat);border-bottom:5px solid var(--gold)}.auth-brand img{width:220px;max-height:80px;object-fit:contain;filter:brightness(0) invert(1)}.auth-content{padding:36px}.auth-content h1{margin:0 0 10px;font-size:2.1rem}.eyebrow{margin:0 0 10px;color:var(--grenat);font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.muted{color:var(--muted)}form{display:grid;gap:15px}label{display:grid;gap:7px;font-size:.9rem;font-weight:700}input,select,textarea{width:100%;min-height:46px;border:1px solid #c8d0dc;border-radius:9px;padding:10px 12px;color:var(--blue);background:#fff;font:inherit}textarea{min-height:85px;resize:vertical}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--grenat);box-shadow:0 0 0 4px #65202e18}.btn,button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;border-radius:9px;padding:10px 15px;color:#fff;background:var(--grenat);font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.btn.secondary,button.secondary{border:1px solid var(--border);color:var(--blue);background:#fff}.btn.danger,button.danger{background:var(--red)}.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed}.notice{margin:15px 0;border-left:4px solid var(--gold);border-radius:8px;padding:12px 14px;background:#fff6dd;font-weight:700}.notice.success{border-color:var(--green);color:var(--green);background:#e8f7ef}.notice.error{color:#8d1b23}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;padding:24px 18px;color:#fff;background:var(--blue)}.sidebar img{display:block;width:190px;max-height:70px;margin:6px 8px 34px;object-fit:contain;filter:brightness(0) invert(1)}.nav{display:grid;gap:5px}.nav a{border-radius:10px;padding:12px 14px;color:#ffffffb8;font-size:.92rem;font-weight:700;text-decoration:none}.nav a.active,.nav a:hover{color:var(--blue);background:#fff}.account{position:absolute;right:18px;bottom:22px;left:18px;border:1px solid #ffffff1c;border-radius:14px;padding:14px;background:#ffffff0d}.account strong,.account span{display:block}.account span{margin-top:3px;color:#ffffff80;font-size:.76rem;overflow-wrap:anywhere}.account a{display:inline-block;margin-top:12px;font-size:.8rem}.main{margin-left:270px}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;min-height:76px;border-bottom:1px solid var(--border);padding:15px 28px;background:#fffffff2}.topbar h1{margin:0;font-size:1.35rem}.content{max-width:1500px;margin:auto;padding:28px}.hero{position:relative;overflow:hidden;border-radius:24px;padding:34px;color:#fff;background:linear-gradient(130deg,var(--grenat),var(--blue));box-shadow:0 15px 35px #1b355e14}.hero:after{content:"";position:absolute;right:-80px;bottom:-100px;width:330px;height:330px;border:55px solid #f9af0526;border-radius:50%}.hero h2{position:relative;z-index:1;max-width:700px;margin:10px 0 8px;font-size:clamp(1.8rem,4vw,3rem)}.hero p{position:relative;z-index:1;max-width:700px;color:#ffffffb8}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-top:20px}.card,.panel{border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 8px 24px #1b355e0b}.card{padding:20px}.card strong{display:block;font-size:2rem}.card span{color:var(--muted);font-size:.85rem}.panel{margin-top:20px;overflow:hidden}.panel-head{display:flex;align-items:end;justify-content:space-between;gap:15px;border-bottom:1px solid var(--border);padding:20px}.panel-head h2{margin:0}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:.9rem}.actions{display:flex;flex-wrap:wrap;gap:9px}.filters{display:flex;flex-wrap:wrap;gap:10px;padding:15px 20px;background:#f8f9fb}.filters input,.filters select{width:auto;min-width:170px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th{padding:12px 15px;color:var(--muted);background:#f8f9fb;text-align:left;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}td{border-top:1px solid #edf0f4;padding:14px 15px;vertical-align:top}.person{display:flex;align-items:center;gap:10px}.avatar{display:grid;place-items:center;width:42px;height:52px;border-radius:9px;color:#8b96a7;background:#eef1f5;font-weight:800;object-fit:cover}.badge{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:800}.badge.pending{color:#8b5d00;background:#fff6dc}.badge.approved{color:var(--green);background:#e8f7ef}.badge.rejected{color:var(--red);background:#fff0f1}.badge.to_complete{color:#1e6296;background:#eaf5ff}.entity{display:inline-block;border-radius:6px;padding:5px 8px;color:#fff;background:var(--grenat);font-size:.72rem;font-weight:900}.entity.GSHC{color:var(--blue);background:var(--gold)}.entity.SFCCF{background:var(--blue)}.entity.SRC{color:var(--grenat);background:#ece2e5}.grid-2,.grid-3{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-box{display:grid;gap:16px;padding:20px}.checks{display:flex;flex-wrap:wrap;gap:8px}.checks label{display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:9px;padding:9px 11px;font-weight:500}.checks input{width:17px;min-height:17px}.meeting-grid,.org-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.meeting-card,.org-card{border:1px solid var(--border);border-radius:14px;padding:18px;background:#fff}.meeting-card h3,.org-card h3{margin:14px 0 5px}.meeting-card p,.org-card p{margin:5px 0;color:var(--muted);font-size:.84rem}.decision{min-width:260px}.decision form{gap:7px}.print-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.print-badge{overflow:hidden;border:1px solid var(--border);border-radius:16px;background:#fff}.print-brand{display:flex;align-items:center;justify-content:space-between;padding:14px;color:#fff;background:var(--grenat)}.print-brand img{width:150px;max-height:45px;object-fit:contain;filter:brightness(0) invert(1)}.print-body{padding:20px;text-align:center}.print-body .avatar{width:112px;height:140px;margin:auto;font-size:1.4rem}.print-body h3{font-size:1.55rem;text-transform:uppercase}.hidden{display:none!important}small{color:var(--muted)}@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}.meeting-grid,.org-grid,.print-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.sidebar{position:static;width:auto}.sidebar img{margin-bottom:15px}.nav{grid-template-columns:repeat(2,1fr)}.account{position:static;margin-top:15px}.main{margin-left:0}.topbar{position:static}.content{padding:18px}.cards,.meeting-grid,.org-grid,.print-grid,.grid-2,.grid-3{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-direction:column}.auth-content{padding:28px 22px}}@media print{.sidebar,.topbar,.no-print{display:none!important}.main{margin:0}.content{max-width:none;padding:0}.print-grid{grid-template-columns:repeat(2,1fr)}.print-badge{break-inside:avoid;box-shadow:none}}
.org-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.org-card-head h3{margin-top:0}.edit-box{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.edit-box summary{color:var(--grenat);font-weight:800;cursor:pointer}.edit-box form{margin-top:14px}.manager-list{display:grid;gap:8px;margin-top:18px}.manager-list>small{display:block}.manager-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:9px;padding:9px;background:#f8f9fb}.manager-list span small{display:block;margin-top:3px}
.auth-link{display:inline-block;margin-top:16px;color:var(--grenat);font-weight:800}.bulk-actions{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:8px}.bulk-actions input{min-width:220px;flex:1}.request-select,#select-all{width:18px;min-width:18px;min-height:18px}.badge-code{margin-top:14px;color:var(--muted);font-size:.7rem;letter-spacing:.14em}.audit-details{max-width:360px;overflow-wrap:anywhere}
.print-toolbar{border-radius:16px;background:#fff}.print-grid{align-items:start}.print-badge{--badge-accent:var(--grenat);position:relative;display:flex;flex-direction:column;width:100%;aspect-ratio:90/119;overflow:hidden;border:1px solid #d8dce3;border-radius:18px;color:#182b49;background:#fff;box-shadow:0 12px 35px #1b355e1b}.print-badge[data-entity="GSHC"]{--badge-accent:#f9af05}.print-badge[data-entity="SFCCF"]{--badge-accent:#1b355e}.print-badge[data-entity="SRC"]{--badge-accent:#8b2338}.print-accent{height:7px;flex:0 0 7px;background:var(--badge-accent)}.print-brand{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:17px 18px 12px;color:var(--grenat);background:#fff}.print-title{display:grid;line-height:.86;letter-spacing:-.035em}.print-title span{font-size:clamp(.72rem,1.4vw,1.05rem);font-weight:800;letter-spacing:.025em}.print-title strong{font-size:clamp(1.35rem,2.8vw,2.15rem);font-weight:900}.print-mark{display:grid;place-items:center;width:58px;min-width:58px;border-radius:5px;padding:8px 6px 6px;color:#fff;background:var(--badge-accent)}.print-mark img{width:42px;height:31px;object-fit:contain;filter:none}.print-mark small{margin-top:3px;color:#fff;font-size:.58rem;font-weight:800;letter-spacing:.12em}.print-identity{display:grid;grid-template-columns:39% 1fr;gap:16px;padding:4px 18px 14px}.print-photo{width:100%;aspect-ratio:4/5;border-radius:4px;background:#e9edf2;object-fit:cover}.print-photo-empty{display:grid;place-items:center;color:#fff;background:var(--badge-accent);font-size:2rem;font-weight:900}.print-person{display:flex;min-width:0;flex-direction:column;justify-content:center}.print-name{display:grid;margin:0 0 12px;text-align:right;text-transform:uppercase;line-height:.92}.print-name span{color:#647085;font-size:clamp(.72rem,1.2vw,.95rem);font-weight:500}.print-name strong{overflow-wrap:anywhere;color:#182b49;font-size:clamp(1.05rem,2.2vw,1.65rem);font-weight:900}.print-status{margin:0;border-top:3px solid var(--badge-accent);border-bottom:3px solid var(--badge-accent);padding:6px 0;color:var(--badge-accent);font-size:clamp(1.55rem,3vw,2.35rem);font-weight:900;line-height:1;text-align:right}.print-job{margin:10px 0 2px;font-size:clamp(.66rem,1.15vw,.88rem);font-weight:800;text-align:right}.print-org{margin:0;color:#667287;font-size:clamp(.58rem,1vw,.74rem);font-weight:600;text-align:right}.print-meeting{display:flex;align-items:center;gap:10px;margin:0 18px;border-top:1px solid #dfe4eb;border-bottom:1px solid #dfe4eb;padding:9px 0}.print-meeting p{display:grid;margin:0;line-height:1.1}.print-meeting p strong{font-size:.79rem}.print-meeting p small{margin-top:3px;font-size:.61rem}.print-access{display:flex;min-height:0;flex:1;flex-direction:column;padding:12px 18px}.print-access h4{margin:0 0 8px;color:#697488;font-size:.58rem;letter-spacing:.16em}.print-zones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.print-zone{display:flex;align-items:center;justify-content:center;min-height:38px;border-radius:4px;padding:7px;color:#fff;background:#65202e;font-size:clamp(.56rem,1vw,.72rem);font-weight:900;line-height:1.05;text-align:center;text-transform:uppercase}.zone-loges{color:#17263e;background:#e7d39f}.zone-hospitalite{background:#c80f45}.zone-grand-prix{color:#17263e;background:#f9af05}.zone-media{background:#0b4b70}.zone-technique{background:#59626c}.zone-bord-terrain{background:#55751c}.zone-tribunes{background:#39434b}.zone-vestiaires{background:#682034}.zone-perimetre-exterieur{background:#1b355e}.print-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e2e6eb;padding:9px 18px 11px;color:#697488;font-size:.5rem;letter-spacing:.035em}.print-footer strong{color:var(--grenat);font-size:.54rem;letter-spacing:.08em}
.print-badge[data-entity="GSHC"] .print-mark{background:#1b355e}
@media(max-width:1050px){.print-title strong{font-size:1.75rem}.print-status{font-size:1.9rem}}
@media(max-width:780px){.print-badge{max-width:520px;margin:auto}.print-title strong{font-size:clamp(1.6rem,8vw,2.3rem)}.print-status{font-size:clamp(1.8rem,8vw,2.5rem)}}
@media print{@page{size:A4 portrait;margin:0}html,body{width:210mm;margin:0!important;background:#fff!important}.shell,.main,.content{width:210mm!important;min-height:0!important;margin:0!important;padding:0!important;background:#fff!important}.print-grid{display:grid!important;grid-template-columns:105mm 105mm!important;grid-auto-rows:148.5mm!important;gap:0!important;width:210mm!important}.print-badge{align-self:center!important;justify-self:center!important;width:90mm!important;height:119mm!important;aspect-ratio:auto!important;border:.25mm dashed #cbd0d7!important;border-radius:4mm!important;box-shadow:none!important;break-inside:avoid!important;page-break-inside:avoid!important}.print-brand{padding:5mm 5mm 3mm}.print-title span{font-size:3.5mm}.print-title strong{font-size:7.2mm}.print-mark{width:16mm;min-width:16mm;padding:2mm 1.5mm 1.5mm}.print-mark img{width:12mm;height:9mm}.print-mark small{font-size:1.7mm}.print-identity{gap:4mm;padding:1mm 5mm 3.5mm}.print-name{margin-bottom:3mm}.print-name span{font-size:2.7mm}.print-name strong{font-size:4.5mm}.print-status{border-width:.8mm;padding:1.5mm 0;font-size:7mm}.print-job{margin:2.5mm 0 .6mm;font-size:2.5mm}.print-org{font-size:2mm}.print-meeting{gap:2.5mm;margin:0 5mm;padding:2.4mm 0}.print-meeting p strong{font-size:2.3mm}.print-meeting p small{font-size:1.8mm}.print-access{padding:3mm 5mm}.print-access h4{margin-bottom:2mm;font-size:1.7mm}.print-zones{gap:1.8mm}.print-zone{min-height:10mm;padding:1.7mm;font-size:2.05mm}.print-footer{padding:2.4mm 5mm 2.8mm;font-size:1.45mm}.print-footer strong{font-size:1.6mm}}

/* Badge 26/27 — direction artistique inspirée du modèle physique transmis. */
.print-badge{--badge-accent:#6d1f34;--badge-ink:#5f1930;border-color:#d9d9d9;color:#17191d;background:#fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}
.print-badge[data-entity="GSHC"]{--badge-accent:#f4b000;--badge-ink:#192f52}.print-badge[data-entity="SFCCF"]{--badge-accent:#253b72;--badge-ink:#253b72}.print-badge[data-entity="SRC"]{--badge-accent:#852139;--badge-ink:#6e1c31}
.print-accent{height:0;flex-basis:0}.print-brand{align-items:stretch;padding:17px 18px 5px;color:var(--badge-ink);background:#fff}.print-title{align-content:start;line-height:.82;text-transform:uppercase}.print-title span{color:#fff;font-size:clamp(.78rem,1.5vw,1.1rem);font-style:italic;font-weight:950;letter-spacing:-.035em;-webkit-text-stroke:1px var(--badge-ink);paint-order:stroke fill}.print-title strong{margin-top:5px;color:var(--badge-ink);font-size:clamp(1.55rem,3vw,2.25rem);font-style:italic;font-weight:950;letter-spacing:-.075em}.print-mark{align-self:start;width:58px;min-width:58px;min-height:58px;border-radius:4px;padding:7px 5px 5px;color:#fff;background:var(--badge-accent);box-shadow:inset 0 0 0 1px #ffffff22}.print-club-code{font-size:1.08rem;font-style:italic;font-weight:950;letter-spacing:-.08em;line-height:1}.print-mark small{margin-top:3px;color:#fff;font-size:.56rem;font-weight:800;letter-spacing:.06em}
.print-mark.has-logo{grid-template-rows:minmax(0,1fr) auto;overflow:hidden;border:1px solid #e1e3e7;padding:4px;color:var(--badge-ink);background:#fff;box-shadow:none}.print-club-logo{display:block;width:44px;height:38px;object-fit:contain;object-position:center}.print-mark.has-logo small{margin-top:1px;color:var(--badge-ink)}.print-badge[data-entity="GSHC"] .print-mark.has-logo{background:#fff}.print-badge[data-entity="SRC"] .print-club-logo{width:32px}.print-badge[data-entity="SFC"] .print-club-logo{width:34px;height:39px}.print-badge[data-entity="SFCCF"] .print-club-logo{width:39px;height:39px}
.print-identity{display:flex;min-height:0;flex:1;align-items:center;justify-content:center;gap:15px;padding:4px 18px 8px}.print-photo{width:96px;height:120px;aspect-ratio:auto;border:1px solid #e2e2e2;border-radius:2px;box-shadow:0 5px 18px #1b355e16}.print-photo-empty{border:0;color:#fff;background:var(--badge-accent)}.print-person{max-width:155px;justify-content:center}.print-name{margin:0 0 8px;line-height:.92;text-align:left}.print-name span{color:#59616d;font-size:.74rem}.print-name strong{color:#131820;font-size:clamp(1.05rem,2vw,1.55rem);letter-spacing:-.035em}.print-status{margin:0;border:0;padding:0;color:var(--badge-ink);font-size:.68rem;font-weight:950;letter-spacing:.13em;text-align:left}.print-job{margin:8px 0 2px;font-size:.69rem;line-height:1.15;text-align:left}.print-org{font-size:.61rem;text-align:left}.print-meeting{margin:0 18px;border-top:1px solid #e7e7e7;border-bottom:0;padding:7px 0 3px}.print-meeting .entity{border-radius:3px;padding:4px 6px}.print-meeting p strong{font-size:.72rem}.print-meeting p small{font-size:.56rem}.print-access{display:block;flex:0 0 auto;padding:8px 18px 10px}.print-access h4{margin:0 0 6px;color:#6a6a6a;font-size:.5rem;letter-spacing:.18em}.print-zones{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px}.print-zone{min-height:32px;border-radius:4px;padding:5px 7px;font-size:.63rem;font-style:italic;letter-spacing:-.02em;box-shadow:inset 0 0 12px #00000012}.print-zone:before{display:block;margin-right:4px;color:#ffffffaa;font-size:.42rem;font-style:normal;font-weight:700;letter-spacing:.04em}.zone-loges{color:#17191d;background:linear-gradient(110deg,#f1dca9,#ffeec8)}.zone-hospitalite{background:linear-gradient(110deg,#8c1a40,#ce1450)}.zone-grand-prix{color:#17191d;background:linear-gradient(110deg,#efa600,#ffd45a)}.zone-media{background:linear-gradient(110deg,#06486e,#146b91)}.zone-technique{background:linear-gradient(110deg,#444c52,#707a80)}.zone-bord-terrain{background:linear-gradient(110deg,#4c6d0a,#769b1f)}.zone-tribunes{background:linear-gradient(110deg,#333a3f,#596268)}.zone-vestiaires{background:linear-gradient(110deg,#65172d,#8f2943)}.zone-perimetre-exterieur{background:linear-gradient(110deg,#142d51,#294c78)}.print-footer{padding:7px 18px 9px;font-size:.45rem}.print-footer strong{color:var(--badge-ink)}
@media print{.print-brand{padding:4.5mm 5mm 1.5mm}.print-title span{font-size:3.7mm;-webkit-text-stroke:.3mm var(--badge-ink)}.print-title strong{margin-top:1.3mm;font-size:7.5mm}.print-mark{width:16mm;min-width:16mm;min-height:16mm;padding:2mm 1.4mm 1.4mm}.print-mark.has-logo{padding:1mm}.print-club-logo{width:12mm;height:9.5mm}.print-badge[data-entity="SRC"] .print-club-logo{width:8mm}.print-badge[data-entity="SFC"] .print-club-logo{width:8.5mm;height:10mm}.print-badge[data-entity="SFCCF"] .print-club-logo{width:10mm;height:10mm}.print-club-code{font-size:4.5mm}.print-mark small{font-size:1.7mm}.print-identity{gap:4mm;padding:1mm 5mm 2mm}.print-photo{width:27mm;height:34mm}.print-person{max-width:42mm}.print-name{margin-bottom:2mm}.print-name span{font-size:2.7mm}.print-name strong{font-size:4.7mm}.print-status{font-size:2.1mm}.print-job{margin:2mm 0 .5mm;font-size:2.2mm}.print-org{font-size:1.8mm}.print-meeting{margin:0 5mm;padding:1.8mm 0 .8mm}.print-meeting p strong{font-size:2.2mm}.print-meeting p small{font-size:1.65mm}.print-access{padding:2mm 5mm 2.4mm}.print-access h4{margin-bottom:1.5mm;font-size:1.5mm}.print-zones{gap:1.6mm 2mm}.print-zone{min-height:8.8mm;padding:1.3mm 1.8mm;font-size:1.95mm}.print-footer{padding:1.7mm 5mm 2.2mm;font-size:1.35mm}.print-footer strong{font-size:1.5mm}}

/* Les bandeaux haut et bas sont déjà présents sur le support physique du club. */
.print-preprinted-top{flex:0 0 22mm;overflow:hidden}.print-preprinted-bottom{display:flex;flex:0 0 8mm;overflow:hidden}.print-preprinted-top .print-brand{height:100%}.print-preprinted-bottom .print-footer{width:100%;margin-top:auto}.print-badge{background:#fff}.print-identity{flex:0 0 auto}.print-access{flex:1}
@media print{.print-badge{border:0!important;background:transparent!important}.print-stock-art{display:none!important}.print-preprinted-top{flex-basis:22mm}.print-preprinted-bottom{flex-basis:8mm}.print-identity{padding-top:0}.print-access{padding-bottom:1mm}}

/* Aperçu du support préimprimé et grille fixe des neuf zones. */
.print-preprinted-top,.print-preprinted-bottom{background:var(--grenat)}.print-preprinted-top .print-brand{color:#fff;background:var(--grenat)}.print-preprinted-top .print-title span{color:var(--grenat);-webkit-text-stroke:1px #fff}.print-preprinted-top .print-title strong{color:#fff}.print-preprinted-bottom .print-footer{border:0;color:#fff;background:var(--grenat)}.print-preprinted-bottom .print-footer strong{color:var(--gold)}.print-zones{grid-template-columns:repeat(3,minmax(0,1fr))}.print-zone.is-inactive{visibility:hidden;pointer-events:none}
@media print{.print-preprinted-top,.print-preprinted-bottom{background:transparent!important}.print-zones{grid-template-columns:repeat(3,minmax(0,1fr))}.print-zone{min-height:7mm!important;padding:1mm!important;font-size:1.65mm!important}.print-zone.is-inactive{visibility:hidden!important}}

/* Lisibilité du titre et identité : photo à gauche, nom compact et toujours contenu. */
.print-preprinted-top .print-title span{color:#fff;-webkit-text-stroke:0;text-shadow:none}.print-identity{justify-content:flex-start;gap:12px}.print-photo{flex:0 0 92px;width:92px}.print-person{min-width:0;max-width:none;flex:1}.print-name strong{max-width:100%;font-size:clamp(.88rem,1.55vw,1.12rem);line-height:.92;overflow-wrap:anywhere;word-break:normal}
@media print{.print-preprinted-top .print-title span{color:#fff;-webkit-text-stroke:0}.print-identity{justify-content:flex-start;gap:3mm}.print-photo{flex-basis:25mm;width:25mm}.print-person{max-width:none}.print-name strong{font-size:3.7mm;line-height:.92}}

/* Logos officiels blancs directement sur le bandeau grenat. */
.print-mark.has-logo,.print-badge[data-entity="GSHC"] .print-mark.has-logo{border:0;color:#fff;background:transparent;box-shadow:none}.print-mark.has-logo small{color:#fff}.print-club-logo{width:46px;height:40px}.print-badge[data-entity="SFC"] .print-club-logo{width:31px;height:43px}.print-badge[data-entity="GSHC"] .print-club-logo{width:42px;height:42px}.print-badge[data-entity="SRC"] .print-club-logo{width:42px;height:43px}.print-badge[data-entity="SFCCF"] .print-club-logo{width:42px;height:42px}
@media print{.print-badge[data-entity="SFC"] .print-club-logo{width:8mm;height:11mm}.print-badge[data-entity="GSHC"] .print-club-logo{width:11mm;height:11mm}.print-badge[data-entity="SRC"] .print-club-logo{width:11mm;height:11mm}.print-badge[data-entity="SFCCF"] .print-club-logo{width:11mm;height:11mm}}

/* Hiérarchie renforcée pour les accréditations temporaires. */
.print-badge[data-entity="SRC"] .print-mark{width:76px;min-width:76px}.print-badge[data-entity="SRC"] .print-club-logo{width:72px;height:46px}.print-job{font-size:.78rem}.print-org{font-size:.7rem;font-weight:800}.print-meeting{padding:9px 0 5px}.print-meeting p strong{font-size:.86rem}.print-meeting p small{font-size:.66rem;font-weight:600}.print-zones{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.print-zone{min-height:39px;padding:7px 8px;font-size:.7rem}
@media print{.print-badge[data-entity="SRC"] .print-mark{width:19mm;min-width:19mm}.print-badge[data-entity="SRC"] .print-club-logo{width:18mm;height:12mm}.print-job{font-size:2.5mm}.print-org{font-size:2.15mm}.print-meeting{padding:2.2mm 0 1.2mm}.print-meeting p strong{font-size:2.55mm}.print-meeting p small{font-size:1.9mm}.print-zones{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1.8mm 2mm}.print-zone{min-height:8.5mm!important;padding:1.2mm 1.8mm!important;font-size:1.9mm!important}}

/* Impression couleur fiable : les aplats des accès doivent être conservés. */
@media print{html,body,.print-grid,.print-badge,.print-badge *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important;forced-color-adjust:none!important}.print-zone{color:#fff!important;background-image:none!important}.zone-perimetre-exterieur{background-color:#1b355e!important}.zone-tribunes{background-color:#39434b!important}.zone-hospitalite{background-color:#b51649!important}.zone-loges{color:#17191d!important;background-color:#f1dca9!important}.zone-grand-prix{color:#17191d!important;background-color:#f4b000!important}.zone-media{background-color:#0b5b80!important}.zone-technique{background-color:#59626c!important}.zone-bord-terrain{background-color:#5d7f13!important}.zone-vestiaires{background-color:#76203a!important}.entity{color:#fff!important;background-color:#65202e!important}.entity.GSHC{color:#1b355e!important;background-color:#f9af05!important}.entity.SFCCF{background-color:#1b355e!important}.entity.SRC{color:#65202e!important;background-color:#ece2e5!important}}

/* Tableau de bord : liste des dernières demandes plus aérée et structurée. */
.hero+.cards+.panel>.panel-head~div{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px!important;min-height:72px;padding:14px 24px!important;border-top:1px solid var(--border)!important;background:#fff}.hero+.cards+.panel>.panel-head~div:hover{background:#f8f9fb}.hero+.cards+.panel>.panel-head~div>span:first-child{min-width:0}.hero+.cards+.panel>.panel-head~div strong{display:block;color:var(--blue);font-size:1rem;line-height:1.25}.hero+.cards+.panel>.panel-head~div small{display:block;margin-top:5px;color:var(--muted);font-size:.82rem;line-height:1.3}.hero+.cards+.panel>.panel-head~div>.badge{justify-self:end;white-space:nowrap;padding:6px 11px;font-size:.75rem}
@media(max-width:620px){.hero+.cards+.panel>.panel-head~div{grid-template-columns:1fr;gap:10px!important;min-height:0;padding:16px 18px!important}.hero+.cards+.panel>.panel-head~div>.badge{justify-self:start}}

/* Impression individuelle et lisibilité renforcée du badge. */
.print-one{position:absolute;z-index:3;right:12px;bottom:12px;min-height:34px;border:1px solid #ffffff66;border-radius:8px;padding:7px 10px;font-size:.72rem;box-shadow:0 4px 14px #0002;opacity:0;transform:translateY(4px);transition:.18s ease}
.print-badge:hover .print-one,.print-one:focus-visible{opacity:1;transform:none}
.print-photo{flex-basis:104px;width:104px;height:130px}
.print-meeting{gap:12px;padding:11px 0 7px}
.print-meeting .entity{min-width:52px;padding:6px 8px;text-align:center;font-size:.78rem}
.print-meeting p{gap:2px;line-height:1.18}
.print-meeting p strong{font-size:1rem;line-height:1.15}
.print-meeting p small{font-size:.72rem;font-weight:700;line-height:1.3}
@media print{
  .print-photo{flex-basis:28mm;width:28mm;height:35mm}
  .print-meeting{gap:3mm;padding:2.8mm 0 1.8mm}
  .print-meeting .entity{min-width:14mm;padding:1.5mm 2mm;font-size:2.25mm}
  .print-meeting p strong{font-size:2.9mm}
  .print-meeting p small{font-size:2.15mm;line-height:1.25}
  body.print-single-mode,body.print-single-mode .shell,body.print-single-mode .main,body.print-single-mode .content{width:90mm!important;height:119mm!important;min-height:119mm!important;overflow:hidden!important}
  body.print-single-mode .print-grid{display:block!important;width:90mm!important;height:119mm!important;margin:0!important}
  body.print-single-mode .print-badge:not(.print-selected){display:none!important}
  body.print-single-mode .print-badge.print-selected{display:flex!important;margin:0!important;align-self:auto!important;justify-self:auto!important}
}

/* Connexion : fond quadrillé Groupe Grenat */
.auth-body.auth-body{background-color:#172b47;background-image:radial-gradient(circle at 10% 14%,rgba(249,175,5,.22) 0 5px,transparent 6px),radial-gradient(circle at 88% 84%,rgba(249,175,5,.18) 0 4px,transparent 5px),linear-gradient(rgba(255,255,255,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.075) 1px,transparent 1px),linear-gradient(135deg,#1b3556,#3f2743 68%,#652c40);background-size:auto,auto,34px 34px,34px 34px,auto;background-position:0 0,0 0,-1px -1px,-1px -1px,0 0;padding:clamp(20px,5vw,56px)}
.auth-body .auth-card{position:relative;z-index:1}
