/* PLATINUM SOFT — couche visuelle globale, sans logique métier. */
:root {
  --platinum-primary:#0f172a; --platinum-primary-soft:#1e293b;
  --platinum-silver:#e5e7eb; --platinum-silver-dark:#94a3b8;
  --platinum-silver-light:#f1f5f9; --platinum-blue:#2563eb;
  --platinum-blue-hover:#1d4ed8; --platinum-electric:#3b82f6;
  --platinum-background:#f8fafc; --platinum-surface:#fff;
  --platinum-text:#111827; --platinum-muted:#64748b;
  --platinum-border:#e2e8f0; --platinum-success:#10b981;
  --platinum-warning:#f59e0b; --platinum-danger:#dc2626;
  --platinum-gold:#f4b942; --platinum-radius:16px;
  --platinum-shadow:0 8px 24px rgba(15,23,42,.09);
}

*,*::before,*::after{box-sizing:border-box}
html{min-width:0;background:var(--platinum-background);-webkit-text-size-adjust:100%}
body{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--platinum-text);background-color:var(--platinum-background);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;text-rendering:optimizeLegibility}
img,video,canvas,svg{max-width:100%;height:auto}
.platinum-logo,.platinum-brand-logo{display:block;max-width:100%;height:auto;object-fit:contain}
a{color:var(--platinum-blue);text-underline-offset:.18em}
a:hover,a:focus{color:var(--platinum-blue-hover)}
:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}

.platinum-shell{width:min(100% - 24px,1120px);margin-inline:auto}
.platinum-header{display:flex;align-items:center;gap:12px;min-height:68px;padding:10px 14px;color:#fff;background:linear-gradient(135deg,#020617,var(--platinum-primary-soft));border-bottom:1px solid rgba(203,213,225,.35);box-shadow:0 6px 18px rgba(2,6,23,.18)}
.platinum-header .platinum-brand-logo{width:48px;flex:0 0 48px;border-radius:50%;box-shadow:0 0 0 1px rgba(226,232,240,.55),0 0 18px rgba(59,130,246,.3)}
.platinum-brand-title{margin:0;color:#fff;font-size:clamp(1rem,5vw,1.3rem);font-weight:800;letter-spacing:.08em}
.platinum-brand-subtitle{margin:2px 0 0;color:#cbd5e1;font-size:.78rem}
.platinum-card,body .card,body .panel,body .well{max-width:100%;background:var(--platinum-surface);border:1px solid var(--platinum-border);border-radius:var(--platinum-radius);box-shadow:var(--platinum-shadow)}

.platinum-menu-grid,body.platinum-app .menu-grid,body.platinum-app .menu-container>.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}
.platinum-menu-item,body.platinum-app .menu-item{min-width:0;border:1px solid var(--platinum-border);border-radius:15px;background:linear-gradient(145deg,#fff,#f1f5f9);box-shadow:0 5px 16px rgba(15,23,42,.08);transition:transform 160ms ease,border-color 160ms ease,box-shadow 160ms ease}
.platinum-menu-item:hover,body.platinum-app .menu-item:hover{transform:translateY(-2px);border-color:#bfdbfe;box-shadow:0 9px 24px rgba(37,99,235,.13)}
.platinum-menu-item:active,body.platinum-app .menu-item:active{transform:translateY(0) scale(.985)}
body.platinum-app .menu-item>a,body.platinum-app .menu-item-content{display:flex;min-width:0;min-height:118px;height:100%;padding:12px 8px;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--platinum-primary);text-align:center;text-decoration:none}
body.platinum-app .menu-item img{width:62px;height:62px;object-fit:contain;border-radius:14px}
body.platinum-app .menu-item p,body.platinum-app .menu-item .menu-label{margin:0;color:var(--platinum-primary);font-size:.86rem;font-weight:750;line-height:1.25}

.platinum-btn,.platinum-btn-primary,.platinum-btn-dark,.platinum-btn-silver,body.platinum-app button,body.platinum-app input[type="submit"],body.platinum-app input[type="button"]{display:inline-flex;min-height:44px;max-width:100%;padding:10px 16px;align-items:center;justify-content:center;border:0;border-radius:12px;font:inherit;font-weight:750;line-height:1.25;text-align:center;text-decoration:none;cursor:pointer;transition:transform 150ms ease,background-color 150ms ease,box-shadow 150ms ease}
.platinum-btn-primary,body.platinum-app .btn-primary{color:#fff;background:var(--platinum-blue);box-shadow:0 7px 16px rgba(37,99,235,.22)}
.platinum-btn-primary:hover,body.platinum-app .btn-primary:hover{color:#fff;background:var(--platinum-blue-hover)}
.platinum-btn-dark{color:#fff;background:var(--platinum-primary)}
.platinum-btn-silver{color:var(--platinum-primary);background:linear-gradient(135deg,#f8fafc,#cbd5e1);border:1px solid #cbd5e1}
.platinum-btn:active,.platinum-btn-primary:active,.platinum-btn-dark:active,.platinum-btn-silver:active,body.platinum-app button:active,body.platinum-app input[type="submit"]:active{transform:scale(.98)}

body.platinum-app input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),body.platinum-app select,body.platinum-app textarea,.platinum-input{width:100%;min-height:46px;max-width:100%;padding:11px 13px;color:var(--platinum-text);background:#fff;border:1px solid #cbd5e1;border-radius:12px;font-size:16px;line-height:1.35;box-shadow:inset 0 1px 2px rgba(15,23,42,.035)}
body.platinum-app input:focus,body.platinum-app select:focus,body.platinum-app textarea:focus,.platinum-input:focus{border-color:var(--platinum-blue);outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
body.platinum-app label{color:#334155;font-weight:650}

.table-responsive,.platinum-table-responsive,body.platinum-app .table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
body.platinum-app table{width:100%;max-width:100%;border-collapse:collapse;background:#fff}
body.platinum-app th{padding:11px 12px;color:#fff;background:var(--platinum-primary);border-color:#334155;font-size:.78rem;letter-spacing:.02em}
body.platinum-app td{padding:11px 12px;color:var(--platinum-text);border-color:var(--platinum-border)}
body.platinum-app tbody tr:nth-child(even){background:#f8fafc}

.platinum-alert{padding:12px 14px;border:1px solid #bfdbfe;border-left:4px solid var(--platinum-blue);border-radius:12px;color:#1e3a8a;background:#eff6ff}
.platinum-alert-success{border-color:#a7f3d0;border-left-color:var(--platinum-success);color:#065f46;background:#ecfdf5}
.platinum-alert-warning{border-color:#fde68a;border-left-color:var(--platinum-warning);color:#92400e;background:#fffbeb}
.platinum-alert-danger{border-color:#fecaca;border-left-color:var(--platinum-danger);color:#991b1b;background:#fef2f2}
.platinum-badge{display:inline-flex;min-height:26px;padding:4px 9px;align-items:center;border:1px solid #cbd5e1;border-radius:999px;color:#334155;background:var(--platinum-silver-light);font-size:.75rem;font-weight:750}
.platinum-rank-gold,.rank-first,.medal-gold{color:#5c3b00;background:var(--platinum-gold)}

/*
 * Harmonisation des pages historiques.
 * Ces sélecteurs prennent le relais des anciens blocs inline Gold sans
 * modifier leur structure HTML ni leurs actions.
 */
body:not(.platinum-login):not(.platinum-app):not(.ci-body):not(.admin-election-page):not(.feedback-ui):not(.wild-app){
  min-height:100vh;
  color:var(--platinum-text)!important;
  background:linear-gradient(180deg,#eaf1fb 0,var(--platinum-background) 260px)!important;
  background-attachment:fixed!important;
}

body .top-header,
body .menu-header,
body #menu-header,
body .header:not(.alert):not(.modal-header):not(.card-header),
body .header-container>.header,
body #example1{
  color:#fff!important;
  background:linear-gradient(135deg,#020617,#1e293b)!important;
  border-color:rgba(148,163,184,.4)!important;
  text-shadow:none!important;
  box-shadow:0 7px 20px rgba(2,6,23,.18)!important;
}

body .top-header,
body #menu-header,
body #example1{
  width:min(100%,1120px)!important;
  max-width:100%!important;
  margin:0 auto 16px!important;
  padding:13px 15px!important;
  border-radius:14px!important;
  font-size:clamp(1rem,4vw,1.35rem)!important;
  font-weight:800!important;
  line-height:1.3!important;
  text-align:center!important;
}

body .container,
body .wrapper,
body .wrap,
body .content,
body .main-content,
body .menu-container,
body #menu-container{
  max-width:1120px;
}

body .card,
body .panel,
body .well,
body .box,
body .content-box,
body .form-container{
  color:var(--platinum-text);
  background-color:#fff;
  border-color:var(--platinum-border);
}

body:not(.platinum-login):not(.platinum-app):not(.ci-body):not(.admin-election-page):not(.feedback-ui):not(.wild-app) .menu-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

body:not(.platinum-login):not(.platinum-app):not(.ci-body):not(.admin-election-page):not(.feedback-ui):not(.wild-app) .menu-item{
  min-width:0!important;
  color:var(--platinum-primary)!important;
  background:linear-gradient(145deg,#fff,#f1f5f9)!important;
  border:1px solid var(--platinum-border)!important;
  border-radius:15px!important;
  box-shadow:0 5px 16px rgba(15,23,42,.08)!important;
}

body:not(.platinum-login):not(.platinum-app):not(.ci-body):not(.admin-election-page):not(.feedback-ui):not(.wild-app) .menu-item>a{
  display:flex;
  min-height:108px;
  padding:12px 8px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--platinum-primary)!important;
  text-align:center;
  text-decoration:none;
}

body:not(.platinum-login):not(.platinum-app):not(.ci-body):not(.admin-election-page):not(.feedback-ui):not(.wild-app) .menu-item img{
  width:min(68px,100%)!important;
  height:68px!important;
  object-fit:contain!important;
  border-radius:13px!important;
}

body .navbar,
body .navbar-default,
body .panel-heading,
body .card-header,
body .modal-header,
body .w3-blue,
body .w3-indigo{
  color:#fff!important;
  background-color:var(--platinum-primary)!important;
  background-image:linear-gradient(135deg,#020617,#1e293b)!important;
  border-color:#334155!important;
}

body .w3-green{color:#fff!important;background-color:#047857!important}
body .w3-yellow,body .w3-orange{color:#422006!important;background-color:#fbbf24!important}
body .w3-red{color:#fff!important;background-color:var(--platinum-danger)!important}
body .w3-card,body .w3-card-2,body .w3-card-4{border:1px solid var(--platinum-border);border-radius:14px;box-shadow:var(--platinum-shadow)}

body .badge:not(.rank-first):not(.medal-gold),
body .label-default,
body .pill:not(.pres){
  color:#334155!important;
  background:var(--platinum-silver-light)!important;
  border-color:#cbd5e1!important;
}

body .alert-success{color:#065f46!important;background:#ecfdf5!important;border-color:#a7f3d0!important}
body .alert-info{color:#1e3a8a!important;background:#eff6ff!important;border-color:#bfdbfe!important}
body .alert-warning{color:#92400e!important;background:#fffbeb!important;border-color:#fde68a!important}
body .alert-danger,body .error,body .Error{color:#991b1b!important;background:#fef2f2!important;border-color:#fecaca!important}

body .footer,
body footer,
body .menu-footer{
  color:#cbd5e1!important;
  background-color:var(--platinum-primary)!important;
  border-color:#334155!important;
}

body button:not(.close),
body input[type="submit"],
body input[type="button"],
body input[type="reset"],
body .btn-primary,
body .button:not(.close),
body a.button{
  min-height:44px;
  max-width:100%;
  border-color:transparent!important;
  border-radius:12px;
  color:#fff!important;
  background-color:var(--platinum-blue)!important;
  background-image:linear-gradient(135deg,var(--platinum-blue),var(--platinum-blue-hover))!important;
  box-shadow:0 7px 16px rgba(37,99,235,.2);
}

body .btn-success,
body button.success,
body input.success{background-color:var(--platinum-success)!important;background-image:none!important}
body .btn-danger,
body button.danger,
body input.danger{background-color:var(--platinum-danger)!important;background-image:none!important}
body .btn-warning,
body button.warning,
body input.warning{color:#422006!important;background-color:var(--platinum-warning)!important;background-image:none!important}

body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
body select,
body textarea{
  max-width:100%;
  min-height:46px;
  padding:11px 13px;
  color:var(--platinum-text);
  background:#fff;
  border:1px solid #cbd5e1;
  border-radius:12px;
  font-size:16px;
}

body input:focus,
body select:focus,
body textarea:focus{
  border-color:var(--platinum-blue)!important;
  outline:none!important;
  box-shadow:0 0 0 3px rgba(37,99,235,.15)!important;
}

body table{max-width:100%;border-color:var(--platinum-border)}
body th{color:#fff;background-color:var(--platinum-primary);border-color:#334155}
body td{border-color:var(--platinum-border)}

body [style*="background-color:gold" i],
body [style*="background-color: gold" i],
body [style*="background:gold" i],
body [style*="background: gold" i],
body [style*="#d4a017" i],
body [style*="#b8860b" i],
body [style*="#daa520" i],
body [style*="#ffd700" i]{
  color:#fff!important;
  background-color:var(--platinum-primary)!important;
  background-image:linear-gradient(135deg,#020617,#1e293b)!important;
  border-color:#64748b!important;
}

body [style*="color:gold" i],
body [style*="color: gold" i],
body [style*="color:yellow" i],
body [style*="color: yellow" i]{color:#dbeafe!important}

body hr{border-color:var(--platinum-border)}
body .member-photo,body .candidate-photo,body img.profile,body img.profil{max-width:100%;height:auto;object-fit:cover;border-radius:12px}

@media(max-width:719px){
  body .container,body .wrapper,body .wrap,body .content,body .main-content,body .menu-container,body #menu-container{width:100%;padding-inline:10px}
  body table{font-size:.86rem}
  body th,body td{padding:9px 8px}
}

@media(max-width:340px){
  body:not(.platinum-login):not(.platinum-app):not(.ci-body):not(.admin-election-page):not(.feedback-ui):not(.wild-app) .menu-grid{grid-template-columns:1fr}
}

@media(min-width:720px){
  body:not(.platinum-login):not(.platinum-app):not(.ci-body):not(.admin-election-page):not(.feedback-ui):not(.wild-app) .menu-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
}

@media(min-width:1024px){
  body:not(.platinum-login):not(.platinum-app):not(.ci-body):not(.admin-election-page):not(.feedback-ui):not(.wild-app) .menu-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

body.platinum-app{min-height:100vh;padding:14px 12px 32px;color:var(--platinum-text);background:linear-gradient(180deg,#eaf1fb 0,var(--platinum-background) 240px)}
body.platinum-app .top-header,body.platinum-app .header,body.platinum-app .menu-header{color:#fff;background:linear-gradient(135deg,#020617,var(--platinum-primary-soft));border-color:rgba(203,213,225,.42)}
body.platinum-app .menu-container{width:min(100%,1120px);max-width:1120px;margin-inline:auto}
body.platinum-app .footer,body.platinum-app .menu-footer,body.platinum-app .footer-text,body.platinum-app .notice{color:var(--platinum-muted)}
body.platinum-app .top-panel{background:linear-gradient(145deg,#020617,#1e293b);border-color:rgba(148,163,184,.38);box-shadow:0 16px 38px rgba(2,6,23,.24)}
body.platinum-app .info-card{background:rgba(255,255,255,.07);border-color:rgba(203,213,225,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 6px 14px rgba(2,6,23,.16)}
body.platinum-app .info-label{color:#cbd5e1}
body.platinum-app .info-value,body.platinum-app .user-name{color:#fff}
body.platinum-app .certified-voter-badge{color:#d1fae5;background:rgba(16,185,129,.16);border-color:rgba(16,185,129,.48)}
body.platinum-app .menu-header{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 14px;text-shadow:none}
body.platinum-app .menu-header .platinum-brand-logo{width:52px;height:52px;flex:0 0 52px;border-radius:50%;box-shadow:0 0 0 1px rgba(226,232,240,.55),0 0 16px rgba(59,130,246,.25)}
body.platinum-app .footer-logo{width:80px;height:80px;object-fit:contain;border-radius:50%}

body.platinum-login{min-height:100vh;padding:18px;color:#fff;background:radial-gradient(circle at 50% -10%,#334155 0%,#0f172a 53%,#020617 100%);overflow-x:hidden;overflow-y:auto}
body.platinum-login::before,body.platinum-login::after{width:min(72vw,320px);height:min(72vw,320px);background:rgba(59,130,246,.12)}
body.platinum-login::before{left:0}
body.platinum-login::after{right:0}
body.platinum-login .login-wrapper{width:100%;max-width:440px}
body.platinum-login .login-container{padding:26px 22px 22px;color:var(--platinum-text);background:rgba(255,255,255,.98);border:1px solid rgba(226,232,240,.9);border-radius:22px;box-shadow:0 18px 50px rgba(2,6,23,.2),inset 0 1px 0 #fff}
body.platinum-login .login-container::before{background:linear-gradient(180deg,rgba(226,232,240,.32),transparent 26%)}
body.platinum-login .logo-zone img{width:100px;height:100px;padding:2px;object-fit:contain;background:#e2e8f0;border:1px solid #94a3b8;border-radius:50%;box-shadow:0 0 0 4px #f8fafc,0 12px 28px rgba(15,23,42,.2),0 0 24px rgba(59,130,246,.2)}
body.platinum-login .logo-zone .platinum-logo{margin-inline:auto}
body.platinum-login .logo-zone h1{color:var(--platinum-primary);font-size:clamp(1.65rem,8vw,2rem);letter-spacing:.08em}
body.platinum-login .logo-zone p,body.platinum-login .footer-note{color:var(--platinum-muted)}
body.platinum-login .form-label{color:#334155}
body.platinum-login .form-control{width:100%;min-height:52px;padding:12px 14px;color:var(--platinum-text);background:#fff;border:1px solid #cbd5e1;border-radius:13px;font-size:16px}
body.platinum-login .form-control:focus{border-color:var(--platinum-blue);background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
body.platinum-login .btn-login{min-height:52px;color:#fff;background:linear-gradient(135deg,var(--platinum-blue),var(--platinum-blue-hover));border-radius:13px;box-shadow:0 10px 22px rgba(37,99,235,.25)}
body.platinum-login .btn-login:hover{color:#fff;background:linear-gradient(135deg,var(--platinum-blue-hover),#1e40af);box-shadow:0 12px 25px rgba(37,99,235,.32)}
body.platinum-login .security-banner{color:#1e3a8a;background:#eff6ff;border-left-color:var(--platinum-blue)}
body.platinum-login .extra-links{border-top-color:var(--platinum-border)}
body.platinum-login .extra-links a{color:var(--platinum-blue-hover)}
body.platinum-login .extra-links a:hover{color:#1e3a8a;background:#eff6ff}

@media(max-width:430px){body.platinum-app{padding-inline:10px}body.platinum-login{padding:16px;align-items:flex-start}body.platinum-login .login-container{padding:23px 18px 19px;border-radius:19px}body.platinum-login .logo-zone img{width:88px;height:88px}body.platinum-app .menu-item>a,body.platinum-app .menu-item-content{min-height:108px;padding-inline:6px}body.platinum-app .menu-item img{width:54px;height:54px}}
@media(max-width:340px){.platinum-menu-grid,body.platinum-app .menu-grid,body.platinum-app .menu-container>.menu-grid{grid-template-columns:1fr}}
@media(min-width:720px){body.platinum-app{padding:24px 20px 44px}.platinum-menu-grid,body.platinum-app .menu-grid,body.platinum-app .menu-container>.menu-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
@media(min-width:1024px){.platinum-menu-grid,body.platinum-app .menu-grid,body.platinum-app .menu-container>.menu-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
