/* ==========================================================================
   DOSSIER SASKATCHEWAN — design « tuiles » (Martin, 30 sept. 2026)
   ==========================================================================
   D'après la maquette « Cultiver une démocratie lisible » : fond blanc, un vert franc,
   des tuiles de champ inclinées (verts, lime, ocre), des cartes aux coins très arrondis,
   des pastilles, et une police à chasse fixe pour les petites étiquettes.

   Cette feuille est chargée APRÈS commun/dq.css (l'ancien style néo-brutaliste de DQ). Elle
   l'emporte de trois façons :
     1. elle redéfinit ses JETONS (encre, papier, accent, ombres, coins) ;
     2. elle remplace les familles de caractères (Onest partout, JetBrains Mono pour les
        étiquettes) et annule les capitales forcées ;
     3. elle dessine les composants propres au design (sk-*).
   Le thème sombre est à la fin du fichier (html[data-theme="dark"]).
   ========================================================================== */

:root,
:root[data-theme],
:root[data-theme="dark"]{   /* :root[...] et non html[...] : le bloc clair du haut porte :root[data-theme], plus fort */
  /* Les champs */
  --sk-vert:#16A34A;
  --sk-vert-fonce:#15803D;
  --sk-foret:#14532D;
  --sk-sapin:#166534;
  --sk-olive:#4D7C0F;
  --sk-pousse:#65A30D;
  --sk-lime:#84CC16;
  --sk-lime-clair:#BEF264;
  --sk-lime-pale:#D9F99D;
  --sk-lime-fond:#ECFCCB;
  --sk-ocre:#CA8A04;
  --sk-nuit:#0F1F17;
  /* Le papier */
  --sk-blanc:#FFFFFF;
  --sk-brume:#F1F5F2;
  --sk-filet:#E3EAE5;

  /* Les jetons de DQ, réécrits */
  --ink:#0F1F17;
  --ink-2:#0F1F17;
  --paper:#FFFFFF;
  --paper-2:#F1F5F2;
  --card:#FFFFFF;
  --line:#E3EAE5;
  --line-soft:#EDF2EE;
  --slate:#56635B;
  --sur-clair:#0F1F17;
  --sur-fonce:#FFFFFF;
  --gold:#15803D;          /* l'accent : liens, bouton principal */
  --gold-soft:#DCFCE7;
  --gold-bg:#16A34A;
  --gold-hover:#15803D;
  --gold-pale:#BBF7D0;
  --gold-paler:#DCFCE7;
  --ink-bg:#0F1F17;
  --yellow:#ECFCCB;
  --green:#15803D;
  --green-soft:#DCFCE7;
  --red:#B42318;
  --red-soft:#FDE2DF;
  --radius:16px;
  --shadow:0 1px 2px rgba(15,31,23,.05), 0 8px 24px rgba(15,31,23,.06);
  --shadow-lg:0 2px 6px rgba(15,31,23,.06), 0 18px 44px rgba(15,31,23,.10);
  --shadow-sm:0 1px 2px rgba(15,31,23,.05), 0 3px 8px rgba(15,31,23,.05);
  color-scheme:light;
}

/* --------------------------------------------------------------------------
   Typographie
   -------------------------------------------------------------------------- */
html, body{background:var(--sk-blanc); color:var(--ink);}
body, button, input, select, textarea,
h1, h2, h3, .hero-h1, .brand-title, .section-head h2{font-family:'Onest', system-ui, sans-serif;}
body{font-size:16px; line-height:1.55;}
h1, h2, h3, .hero-h1, .brand-title, .section-head h2{text-transform:none !important; letter-spacing:-0.02em;}
h2, .section-head h2{font-weight:600; font-size:clamp(26px, 3.2vw, 40px); line-height:1.12;}
h3{font-weight:600;}
a{color:var(--gold);}
.sk-masque{position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

/* Plus aucune capitale forcée, sauf les étiquettes à chasse fixe. */
body *:not(.sk-etiq):not(.sk-badge):not(.sk-etapes):not(.hero-sujet):not(.promo-sur):not(.mission-eyebrow):not(.role-group-title):not(.quick-nav-label):not(.dep-table-head){
  text-transform:none !important;
}
.meta, .bstep, .status-pill, .tabs a, .legend-label, .open-label, .sub, .follow-hint,
.bill-share-label, .vc-meta, .result-badge, .depute-party, .hot-badge, .expand-hint,
.calendar-box .status, .stat-cell span, .lang-toggle, footer, footer a{letter-spacing:0 !important;}

/* Les petites étiquettes : chasse fixe, capitales, vert */
.sk-etiq, .promo-sur, .mission-eyebrow, .role-group-title, .quick-nav-label, .dep-table-head{
  font-family:'JetBrains Mono', ui-monospace, monospace !important; font-weight:500 !important;
  font-size:12.5px !important; letter-spacing:0.12em !important; text-transform:uppercase !important;
  color:var(--sk-vert-fonce) !important; background:transparent !important;
}
.band-blue .promo-sur, .band-blue .mission-eyebrow{color:var(--sk-lime-clair) !important;}

/* --------------------------------------------------------------------------
   En-tête : logo | menu en pilule | « Mon dossier » en pilule foncée
   -------------------------------------------------------------------------- */
.ticker{display:none !important;}
#dq-topbar, #dq-topbar.compact{background:var(--sk-blanc); border-bottom:0; box-shadow:none;}
header.top{background:var(--sk-blanc); border:0; box-shadow:none;}
.brand-title{display:flex; align-items:center; gap:12px; font-weight:700; font-size:26px; color:var(--ink); letter-spacing:-0.02em;}
.brand-title .brand-blue{color:var(--ink);}
.sk-logo{width:36px; height:36px; flex:none;}
.brand-text p{display:none;}
.tabs a{font-family:'Onest', sans-serif; font-weight:500; font-size:17px; color:var(--ink); background:transparent; border:0 !important; box-shadow:none; border-radius:999px; padding:9px 20px;}
.tabs a .n{display:none;}
header.top .tabs a:hover{background:rgba(255,255,255,.7) !important; color:var(--ink) !important; box-shadow:none !important; text-decoration:none;}
header.top .tabs a.active, header.top .tabs a[aria-current="page"]{
  background:var(--sk-blanc) !important; color:var(--ink) !important; box-shadow:var(--shadow-sm) !important;
  border-color:transparent !important; outline:0; text-decoration:none;
}
.tabs a.nav-mondossier{background:var(--sk-nuit); color:var(--sk-lime-clair); font-weight:600;}
header.top .tabs a.nav-mondossier:hover, header.top .tabs a.nav-mondossier.active, header.top .tabs a.nav-mondossier[aria-current="page"]{background:#000 !important; color:var(--sk-lime-clair) !important; box-shadow:none !important;}
.header-ctrls button, .font-size-ctrl, .lang-toggle{background:transparent; border:1px solid var(--sk-filet); box-shadow:none; color:var(--ink); border-radius:999px;}
.lang-toggle:hover{background:var(--sk-brume); color:var(--ink);}
@media (min-width: 981px){
  /* Le menu dans une pilule grise ; « Mon dossier » en pilule foncée à côté (maquette). */
  header.top .tabs{background:var(--sk-brume); border-radius:999px; padding:6px; gap:2px;}
  header.top .tabs a.nav-mondossier{margin-left:14px; padding:11px 26px;}
}

/* --------------------------------------------------------------------------
   Accueil — 1. le résumé (« L'essentiel en 30 secondes »)
   -------------------------------------------------------------------------- */
.sk-resume{
  display:grid; grid-template-columns:1.15fr repeat(4, 1fr); gap:16px; align-items:stretch;
  background:var(--sk-brume); border-radius:28px; padding:34px 34px 34px 42px; margin:28px 0 30px;
}
.sk-resume-tete{display:flex; flex-direction:column; justify-content:center; gap:10px; padding-right:12px;}
.sk-resume-tete .sk-etiq::before{content:"● "; color:var(--sk-vert);}
.sk-resume-titre{display:block; font-weight:600; font-size:clamp(24px, 2.3vw, 34px); line-height:1.15; letter-spacing:-0.02em;}
.sk-resume-case{background:var(--sk-blanc); border-radius:18px; padding:22px 24px; display:flex; flex-direction:column; gap:8px;}
.sk-case-tete{display:flex; justify-content:space-between; align-items:center; gap:10px;}
.sk-resume-case b{font-weight:600; font-size:20px;}
.sk-resume-case > span{color:var(--slate); font-size:16px; line-height:1.55;}
.sk-badge{
  font-family:'JetBrains Mono', ui-monospace, monospace; font-size:12px; letter-spacing:0.06em; font-style:normal;
  text-transform:uppercase; border-radius:999px; padding:4px 10px; white-space:nowrap;
}
.sk-badge:empty{display:none;}
.sk-badge-vert{background:var(--sk-lime-fond); color:var(--sk-vert-fonce);}
.sk-badge-ocre{background:#FEF3C7; color:#A16207;}
.sk-badge-gris{background:var(--sk-brume); color:var(--slate);}

/* --------------------------------------------------------------------------
   Accueil — 2. le titre et les tuiles
   -------------------------------------------------------------------------- */
.sk-hero{display:grid; grid-template-columns:1.12fr 1fr; gap:clamp(28px, 4vw, 72px); align-items:center; margin:0 0 88px;}
.sk-pilule{
  display:inline-flex; align-items:center; gap:10px; background:var(--sk-lime-fond); color:var(--sk-foret);
  border-radius:999px; padding:9px 22px; font-family:'JetBrains Mono', ui-monospace, monospace; font-size:15px;
}
.sk-pilule::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--sk-vert);}
.sk-hero-titre{margin:30px 0 26px; font-weight:600; font-size:clamp(46px, 6.4vw, 104px); line-height:1.02; letter-spacing:-0.035em; color:var(--ink);}
.sk-hero-titre .sk-vert-txt{color:var(--sk-vert);}
.sk-hero-texte{font-size:clamp(18px, 1.6vw, 25px); line-height:1.6; color:var(--slate); margin:0 0 36px; max-width:36ch;}
.sk-boutons{display:flex; flex-wrap:wrap; gap:16px;}
.sk-btn{display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:18px 40px; font-weight:600; font-size:clamp(17px, 1.4vw, 21px); text-decoration:none;}
.sk-btn-plein{background:var(--sk-vert); color:#fff;}
.sk-btn-plein:hover{background:var(--sk-vert-fonce); color:#fff;}
.sk-btn-creux{border:2px solid var(--sk-nuit); color:var(--ink); background:var(--sk-blanc);}
.sk-btn-creux:hover{background:var(--sk-brume); color:var(--ink);}

.sk-champ{position:relative; border-radius:36px; overflow:hidden; aspect-ratio:1.18 / 1; background:var(--sk-nuit);}
.sk-tuiles{
  position:absolute; left:-20%; top:-22%; width:140%; display:grid; grid-template-columns:repeat(9, 1fr); gap:10px;
  transform:rotate(-8deg); transform-origin:50% 50%;
}
.sk-tuiles span{border-radius:8px; aspect-ratio:1 / 1;}
.sk-indice{
  position:absolute; left:4%; top:4.5%; background:rgba(255,255,255,.95); border-radius:20px;
  padding:16px 22px 18px; box-shadow:var(--shadow);
}
.sk-indice .sk-etiq{color:var(--slate) !important; font-size:12px !important;}
.sk-barres{display:flex; align-items:flex-end; gap:4px; height:58px; margin-top:12px;}
.sk-barres i{display:block; width:9px; border-radius:3px; background:var(--sk-vert); min-height:3px;}
.sk-barres i.zero{background:var(--sk-filet);}
.sk-compteurs{
  position:absolute; left:3.5%; right:3.5%; bottom:4%; display:grid; grid-template-columns:repeat(3, 1fr);
  background:rgba(15,31,23,.9); border-radius:22px; padding:22px 28px; gap:16px;
}
.sk-compteurs div{display:flex; flex-direction:column;}
.sk-compteurs b{font-weight:600; font-size:clamp(32px, 3.4vw, 52px); line-height:1; color:var(--sk-lime-clair); letter-spacing:-0.03em;}
.sk-compteurs span{color:#E6EFE9; font-size:clamp(14px, 1.1vw, 18px); margin-top:8px;}

/* --------------------------------------------------------------------------
   Accueil — 3. la récolte récente (lois sanctionnées)
   -------------------------------------------------------------------------- */
.sk-sanct{margin:0 0 72px;}
.sk-sanct-tete{display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:30px;}
.sk-sanct-tete h2{margin:0;}
.sk-sanct-date{color:var(--slate); font-family:'JetBrains Mono', monospace; font-size:15px;}
.sk-sanct-grille{display:grid; grid-template-columns:repeat(4, 1fr); gap:20px;}
.sk-carte{
  display:flex; flex-direction:column; text-decoration:none; color:var(--ink); background:var(--sk-blanc);
  border:1.5px solid var(--sk-filet); border-radius:26px; padding:28px 28px 26px; min-height:300px;
}
.sk-carte:hover{border-color:var(--sk-vert); box-shadow:var(--shadow); color:var(--ink);}
.sk-carte-tete{display:flex; justify-content:space-between; align-items:center; gap:10px;}
.sk-num{background:var(--sk-brume); border-radius:999px; padding:6px 18px; font-family:'JetBrains Mono', ui-monospace, monospace; font-size:16px;}
.sk-etat{font-family:'JetBrains Mono', ui-monospace, monospace; font-size:15px; color:var(--sk-vert-fonce);}
.sk-etat::before{content:"● "; font-size:11px; vertical-align:2px;}
.sk-carte b{font-weight:600; font-size:clamp(19px, 1.5vw, 24px); line-height:1.35; margin:24px 0 12px; letter-spacing:-0.01em;}
.sk-carte small{color:var(--slate); font-size:15px; line-height:1.5;}
.sk-carte-pied{margin-top:auto; padding-top:26px;}
.sk-barre{height:8px; border-radius:999px; background:var(--sk-vert);}
.sk-etapes{display:block; margin-top:20px; font-family:'JetBrains Mono', ui-monospace, monospace; font-size:12.5px; letter-spacing:0.04em; text-transform:uppercase; color:var(--slate);}
.sk-source{color:var(--slate); font-size:16px; margin:22px 0 0;}

/* --------------------------------------------------------------------------
   Les bandes et cartes de l'ancien style, adoucies
   -------------------------------------------------------------------------- */
.band, .band.bleed{border:0 !important; box-shadow:none !important;}
.band-yellow, .band-yellow.bleed{background:var(--sk-brume) !important; color:var(--ink) !important;}
.band-blue, .band-blue.bleed{background:var(--sk-nuit) !important;}
.band-white{background:var(--sk-blanc) !important;}
.bill, .vote-card, .md-carte, .info-box, .calendar-box, .deput-card, .minister-card, .m-card, .pet-card, .news-item, .challenged-card{
  border:1.5px solid var(--sk-filet) !important; box-shadow:none !important; border-radius:22px;
  background:var(--sk-blanc);
}
.bill:hover, .vote-card:hover{box-shadow:var(--shadow) !important;}
.bill .num{background:var(--sk-brume); color:var(--ink); border:0; border-radius:999px; font-family:'JetBrains Mono', monospace; font-weight:500;}
.bill h3{font-size:21px; font-weight:600; letter-spacing:-0.01em;}
.bill-resume-executif{border-left-color:var(--sk-vert);}
.bstep{border:1px solid var(--sk-filet) !important; background:var(--sk-blanc); color:var(--slate); border-radius:999px; font-weight:500;}
.bstep.on{background:var(--sk-lime-fond) !important; color:var(--sk-foret) !important; border-color:var(--sk-lime-pale) !important;}
.bstep.now{background:var(--sk-vert) !important; color:#fff !important; border-color:var(--sk-vert) !important;}
.status-pill{border-radius:999px; border:0 !important; font-weight:600;}
.status-sanctionne{background:var(--sk-lime-fond) !important; color:var(--sk-vert-fonce) !important;}
.status-encours{background:#FEF3C7 !important; color:#A16207 !important;}
.status-mort{background:var(--sk-brume) !important; color:var(--slate) !important;}
.depute-party{border-radius:999px;}
.follow-btn, .account-btn, .hero-cta, .votes-more, .bill-more, button.qf-btn, .qf-btn{
  border-radius:999px !important; box-shadow:none !important; border:1.5px solid var(--sk-filet) !important;
}
.follow-btn.on, .qf-btn.active{background:var(--sk-nuit) !important; color:var(--sk-lime-clair) !important; border-color:var(--sk-nuit) !important;}
.account-btn, .hero-cta{background:var(--sk-vert) !important; color:#fff !important; border-color:var(--sk-vert) !important;}
input[type="email"], input[type="search"], input[type="text"], select{border:1.5px solid var(--sk-filet) !important; border-radius:14px; box-shadow:none !important;}

/* Les autres pages ont leur propre grand titre : même famille que l'accueil, sans contour. */
.view-hero .hero-h1, .hero-h1{color:var(--ink); font-weight:600 !important; letter-spacing:-0.03em !important;}
.hero-outline{-webkit-text-stroke:0 !important; color:var(--sk-vert) !important;}
.hero-blue{color:var(--sk-vert) !important;}
.hero-sujet{color:var(--sk-vert-fonce); background:transparent !important; border:0 !important; padding:0 !important; font-family:'JetBrains Mono', monospace; font-weight:500; letter-spacing:0.12em !important; text-transform:uppercase !important; font-size:13px;}

/* Pied de page : sobre */
footer{background:var(--sk-blanc) !important; color:var(--slate) !important; border-top:1px solid var(--sk-filet) !important;}
footer a{color:var(--slate) !important;}

/* --------------------------------------------------------------------------
   Polissage des autres pages : filets fins, coins arrondis, pas d'ombre dure
   -------------------------------------------------------------------------- */
.brutal-search, .legend-strip, .promo-compte, .compare-col, .account-box, .diss-cta, .role-card,
.lexique-item, .legende-presence, .compare-placeholder, .cp-col, .dep-table, .dep-group-banner,
.prom-methode, .prom-ailleurs, .lire-box, .dq-remonter, .compo-bar, .search-box, .quick-filters .qf-btn{
  border-width:1.5px !important; border-style:solid !important; border-color:var(--sk-filet) !important;
  box-shadow:none !important; border-radius:20px;
}
.quick-filters .qf-btn{border-radius:999px;}
.legend-strip{border-left:0 !important; border-right:0 !important; border-radius:0; background:var(--sk-blanc) !important;}
.compo-seg{border-left:2px solid var(--sk-blanc) !important; border-top:0 !important; border-bottom:0 !important; border-right:0 !important;}
.compo-bar{overflow:hidden; border-radius:999px;}
.dep-group-banner{border:0 !important;}
.lire-box.hl{background:var(--sk-lime-fond) !important; border-color:var(--sk-lime-pale) !important;}
.createur-lead{border-left-color:var(--sk-vert) !important;}
.dq-remonter{background:var(--sk-nuit) !important; color:var(--sk-lime-clair) !important; border-radius:999px !important;}

.brutal-search{background:var(--sk-blanc) !important; overflow:hidden; border-radius:999px !important;}
.brutal-search .bs-icon{background:var(--sk-brume) !important; border:0 !important; color:var(--ink) !important;}
.brutal-search input{border:0 !important; font-family:'Onest', sans-serif; font-size:17px;}

.sort-toggle, .qf-btn{font-family:'Onest', sans-serif !important; font-weight:500 !important; letter-spacing:0 !important;}
.sort-toggle{border:1.5px solid var(--sk-filet) !important; box-shadow:none !important; border-radius:999px; background:var(--sk-blanc) !important;}

.fil-ariane, .fil-ariane a, .fil-ariane span{font-family:'JetBrains Mono', monospace !important; font-size:13px !important; letter-spacing:0.04em !important; color:var(--slate) !important;}
.head-note, .legend-link, .legend-label, .vcc, .news-date, .prom-filter-lbl, .lp-titre, .m-label, .cp-txt, .cp-hint{
  font-family:'Onest', sans-serif !important; letter-spacing:0 !important;
}

.lexique-item dt{font-weight:600; font-size:20px;}
.lex-badge, .role-badge{border-radius:999px !important; font-family:'JetBrains Mono', monospace !important; font-weight:500; letter-spacing:0.04em !important; font-size:12px;}
.role-card .role{color:var(--slate) !important;}
.role-card h3 a{color:var(--ink); text-decoration:none;}
.role-card h3 a:hover{color:var(--sk-vert-fonce); text-decoration:underline;}

.mission-statement{font-weight:600 !important; letter-spacing:-0.02em !important; line-height:1.2 !important;}
.mission-statement .hl{background:transparent !important; color:var(--sk-lime-clair) !important; box-shadow:none !important;}
.compare-col{background:rgba(255,255,255,0.05) !important; border-color:rgba(255,255,255,0.18) !important;}
.compare-col .tag{background:transparent !important; color:var(--sk-lime-clair) !important; border:0 !important; font-family:'JetBrains Mono', monospace; font-weight:500;}

.m-name{font-weight:600 !important; letter-spacing:-0.01em !important;}
.m-portfolio{letter-spacing:0 !important;}
.dep-group-name, .dep-group-count{letter-spacing:0.02em !important;}

/* --------------------------------------------------------------------------
   Tablette et téléphone
   -------------------------------------------------------------------------- */
@media (max-width: 1180px){
  .sk-resume{grid-template-columns:1fr 1fr; padding:26px;}
  .sk-resume-tete{grid-column:1 / -1;}
  .sk-sanct-grille{grid-template-columns:1fr 1fr;}
}
@media (max-width: 980px){
  .sk-hero{grid-template-columns:1fr; gap:36px;}
  .sk-hero-texte{max-width:none;}
}
@media (max-width: 640px){
  /* L'en-tête sur une seule rangée : logo, langue, menu. */
  .header-ctrls .font-size-ctrl{display:none !important;}
  header.top{flex-wrap:nowrap !important; gap:6px; padding-top:10px; padding-bottom:10px;}
  .brand{min-width:0;}
  .brand-title{font-size:18px !important; gap:8px; white-space:nowrap; margin-right:6px;}
  .sk-logo{width:28px; height:28px;}
  .header-ctrls{margin-left:auto; gap:6px; flex:none;}
  .header-ctrls .lang-toggle{padding:0 10px; height:34px; font-size:13px;}
  .sk-resume{grid-template-columns:1fr; padding:20px; border-radius:22px;}
  .sk-hero-titre{font-size:44px;}
  .sk-btn{flex:1 1 100%; padding:16px 24px;}
  .sk-champ{aspect-ratio:0.85 / 1; border-radius:26px;}
  .sk-compteurs{padding:16px; gap:8px;}
  .sk-sanct-tete{flex-direction:column; gap:6px;}
  .sk-sanct-grille{grid-template-columns:1fr;}
  .sk-carte{min-height:0;}
}



/* L'ancienne feuille impose ses tailles au menu et aux titres de section : on les reprend. */
header.top .tabs a{font-size:17px !important; font-weight:500 !important; padding:9px 20px !important;}
header.top .tabs a.nav-mondossier{font-weight:600 !important;}
h2, .section-head h2, .sk-sanct-tete h2{font-weight:600 !important; letter-spacing:-0.025em !important;}

/* --------------------------------------------------------------------------
   Lexique en couleur (Martin, 1er oct. 2026 : « le lexique manque de couleur »)
   Chaque catégorie prend une couleur du champ de tuiles de l'accueil :
     Processus = vert · Votes = ocre · Personnes et rôles = lime · Outils citoyens = forêt
   -------------------------------------------------------------------------- */
.lexique-item{position:relative; padding-top:26px !important; overflow:hidden;}
.lexique-item::before{content:""; position:absolute; left:0; right:0; top:0; height:8px; background:var(--cat, var(--sk-vert));}
.lexique-item dt::before{
  content:""; display:inline-block; width:14px; height:14px; border-radius:4px; margin-right:10px;
  background:var(--cat, var(--sk-vert)); transform:rotate(-8deg); vertical-align:1px;
}
.lexique-item:has(.cat-proc){--cat:#16A34A; background:#F0FDF4 !important; border-color:#BBF7D0 !important;}
.lexique-item:has(.cat-votes){--cat:#CA8A04; background:#FFFBEB !important; border-color:#FDE68A !important;}
.lexique-item:has(.cat-pers){--cat:#84CC16; background:#F7FEE7 !important; border-color:#D9F99D !important;}
.lexique-item:has(.cat-outils){--cat:#14532D; background:#F1F5F2 !important; border-color:#CFDDD3 !important;}
.lex-badge{border:0 !important; padding:4px 12px !important;}
.lex-badge.cat-proc{background:#16A34A !important; color:#fff !important;}
.lex-badge.cat-votes{background:#A16207 !important; color:#fff !important;}
.lex-badge.cat-pers{background:#BEF264 !important; color:#14532D !important;}
.lex-badge.cat-outils{background:#14532D !important; color:#BEF264 !important;}

/* Qui gravite autour : une tuile de couleur par groupe, à gauche de chaque fiche */
.role-card{position:relative; padding-left:34px !important; overflow:hidden;}
.role-card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:12px; background:#16A34A;}
.role-group-title[data-i18n="pers.g2"] ~ .role-card::before{background:#CA8A04;}
.role-group-title[data-i18n="pers.g3"] ~ .role-card::before{background:#14532D;}
.role-card .role{color:var(--sk-vert-fonce) !important; font-weight:600;}
.role-badge{background:var(--sk-lime-fond) !important; color:var(--sk-vert-fonce) !important; border:0 !important;}

/* Aller à : des pastilles de couleur */
.quick-nav a{border:0 !important; border-radius:999px !important; font-weight:500;}
.quick-nav a:nth-of-type(4n+1){background:#DCFCE7 !important; color:#15803D !important;}
.quick-nav a:nth-of-type(4n+2){background:#FEF3C7 !important; color:#A16207 !important;}
.quick-nav a:nth-of-type(4n+3){background:#ECFCCB !important; color:#4D7C0F !important;}
.quick-nav a:nth-of-type(4n+4){background:#14532D !important; color:#BEF264 !important;}
.quick-nav a:hover{filter:brightness(0.95);}

/* --------------------------------------------------------------------------
   Projets de loi en couleur (Martin, 1er oct. 2026)
   La couleur dit l'état : vert = sanctionné, ocre = en cours, gris = mort ou retiré,
   rouge = rejeté. Bande en haut, fond teinté, numéro et résumé dans la même teinte.
   -------------------------------------------------------------------------- */
.bill{position:relative; overflow:hidden; padding-top:26px !important; --etat:#16A34A; --etat-fond:#F0FDF4; --etat-filet:#BBF7D0; --etat-txt:#15803D;}
.bill:has(.status-encours){--etat:#CA8A04; --etat-fond:#FFFBEB; --etat-filet:#FDE68A; --etat-txt:#A16207;}
.bill:has(.status-mort), .bill:has(.status-retire){--etat:#8A968F; --etat-fond:#F6F8F7; --etat-filet:#E3EAE5; --etat-txt:#56635B;}
.bill:has(.status-rejete){--etat:#B42318; --etat-fond:#FEF3F2; --etat-filet:#FECDCA; --etat-txt:#B42318;}
.bill::before{content:""; position:absolute; left:0; right:0; top:0; height:8px; background:var(--etat);}
.bill{background:var(--etat-fond) !important; border-color:var(--etat-filet) !important;}
.bill:hover{border-color:var(--etat) !important;}
.bill .num{background:var(--etat) !important; color:#fff !important;}
.bill:has(.status-encours) .num{color:#fff !important;}
.bill-resume-executif{background:rgba(255,255,255,.75); border-left:4px solid var(--etat) !important; border-radius:0 12px 12px 0; padding:10px 14px !important;}
.bstep.on{background:#fff !important; color:var(--etat-txt) !important; border-color:var(--etat-filet) !important;}
.bstep.now{background:var(--etat) !important; color:#fff !important; border-color:var(--etat) !important;}
.bill .expand-hint{color:var(--etat-txt) !important; font-weight:600;}
.status-rejete{background:#FEE4E2 !important; color:#B42318 !important;}
.status-retire{background:var(--sk-brume) !important; color:var(--slate) !important;}
.last-event-box{background:#fff !important; border:1.5px solid var(--etat-filet) !important; border-radius:12px;}

/* Les filtres de la page : chacun dans la couleur de l'état qu'il montre */
.qf-btn[onclick*="'encours'"]:not(.active){background:#FEF3C7 !important; color:#A16207 !important; border-color:#FDE68A !important;}
.qf-btn[onclick*="'adoptes'"]:not(.active){background:#DCFCE7 !important; color:#15803D !important; border-color:#BBF7D0 !important;}
.qf-btn.active{background:var(--sk-nuit) !important; color:var(--sk-lime-clair) !important; border-color:var(--sk-nuit) !important;}
.brutal-search .bs-icon{background:var(--sk-vert) !important; color:#fff !important;}

/* --------------------------------------------------------------------------
   Promesses (1er oct. 2026) : cartes arrondies, bande de la couleur du parti
   -------------------------------------------------------------------------- */
.prom-card{position:relative; overflow:hidden; border:1.5px solid var(--sk-filet) !important; box-shadow:none !important; border-radius:22px !important; padding-top:28px !important; background:var(--sk-blanc) !important;}
.prom-card::before{content:""; position:absolute; left:0; right:0; top:0; height:8px; background:#16A34A;}
.prom-card:has(.depute-party[style*="#F58220"])::before{background:#F58220;}
.prom-card:has(.depute-party[style*="#005941"])::before{background:#005941;}
.prom-quote{font-weight:600 !important; font-size:clamp(18px, 1.5vw, 22px) !important; letter-spacing:-0.01em;}
.prom-col{border:0 !important; box-shadow:none !important; border-radius:16px !important; background:var(--sk-brume) !important;}
.prom-col:last-child{background:#FFFBEB !important;}
.prom-col .lbl{font-family:'JetBrains Mono', monospace !important; letter-spacing:0.08em !important; text-transform:uppercase !important; color:var(--sk-vert-fonce) !important;}
.prom-col .lbl.att{color:#A16207 !important;}
.prom-theme-pill{border:0 !important; border-radius:999px !important; box-shadow:none !important; font-weight:600;}
.prom-col a{color:var(--sk-vert-fonce) !important; font-weight:600;}
.qf-btn.qf-sel{outline:3px solid var(--sk-nuit); outline-offset:2px;}
.prom-loi{background:#fff; border-radius:12px; padding:12px 14px; margin:0 0 10px;}
.prom-loi > a:first-child{color:var(--ink) !important; text-decoration:none; font-weight:500;}
.prom-loi > a:first-child:hover{text-decoration:underline;}
.prom-loi p{margin:6px 0 6px; font-size:14.5px; color:var(--slate);}
.prom-loi-src{font-size:13px; font-weight:500 !important;}
.prom-etat{display:inline-block; font-family:'JetBrains Mono', monospace; font-size:12px; border-radius:999px; padding:2px 10px; background:#FEF3C7; color:#A16207; margin-left:4px;}
.prom-etat.ok{background:var(--sk-lime-fond); color:var(--sk-vert-fonce);}
.prom-top{display:flex; flex-wrap:wrap; align-items:center; gap:8px;}
.prom-etiq{margin-left:auto; font-family:'JetBrains Mono', monospace; font-size:12.5px; border-radius:999px; padding:5px 14px; font-weight:500;}
.prom-etiq::before{content:"● "; font-size:10px; vertical-align:1px;}
.prom-etiq-loi{background:var(--sk-lime-fond); color:var(--sk-vert-fonce);}
.prom-etiq-partiel{background:#FEF3C7; color:#A16207;}
.prom-etiq-aucune{background:var(--sk-brume); color:var(--slate);}

/* --------------------------------------------------------------------------
   Thème sombre (1er oct. 2026) : la nuit sur le champ. Fond vert très foncé, surfaces un
   cran plus claires, le vert et le lime gardent leur éclat. Activé par le bouton lune de
   l'en-tête (html[data-theme="dark"], voir appliquerTheme dans commun/dq.js).
   -------------------------------------------------------------------------- */
:root[data-theme="dark"]{   /* :root[...] et non html[...] : le bloc clair du haut porte :root[data-theme], plus fort */
  --sk-blanc:#0E1A13;       /* le fond de page */
  --sk-brume:#16241B;       /* les surfaces douces */
  --sk-filet:#24372B;       /* les filets */
  --sk-lime-fond:#1C3320;
  --sk-nuit:#050B07;

  --ink:#E8F0EA; --ink-2:#E8F0EA;
  --paper:#0E1A13; --paper-2:#16241B; --card:#132119;
  --line:#24372B; --line-soft:#1B2B21;
  --slate:#A3B4A8;
  --sur-clair:#E8F0EA; --sur-fonce:#E8F0EA;
  --gold:#4ADE80; --gold-hover:#86EFAC; --gold-soft:#16341F; --gold-pale:#86EFAC; --gold-paler:#16341F;
  --ink-bg:#050B07; --yellow:#BEF264;   /* DQ s'en sert comme TEXTE clair sur fond foncé */
  --green:#4ADE80; --green-soft:#16341F;
  --red:#F97066; --red-soft:#3A1916;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35);
  --shadow-lg:0 2px 6px rgba(0,0,0,.45), 0 18px 44px rgba(0,0,0,.45);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4), 0 3px 8px rgba(0,0,0,.3);
  color-scheme:dark;
}
html[data-theme="dark"], html[data-theme="dark"] body{background:var(--sk-blanc) !important; color:var(--ink);}
html[data-theme="dark"] .sk-etiq, html[data-theme="dark"] .role-group-title, html[data-theme="dark"] .quick-nav-label,
html[data-theme="dark"] .promo-sur, html[data-theme="dark"] .mission-eyebrow, html[data-theme="dark"] .dep-table-head{color:#4ADE80 !important;}

/* En-tête et menu */
html[data-theme="dark"] .tabs a{color:var(--ink);}
html[data-theme="dark"] header.top .tabs a:hover{background:rgba(255,255,255,.06) !important; color:var(--ink) !important;}
html[data-theme="dark"] header.top .tabs a.active, html[data-theme="dark"] header.top .tabs a[aria-current="page"]{background:#24372B !important; color:#fff !important;}
html[data-theme="dark"] .tabs a.nav-mondossier{background:var(--sk-lime-clair); color:#0E1A13;}
html[data-theme="dark"] header.top .tabs a.nav-mondossier:hover, html[data-theme="dark"] header.top .tabs a.nav-mondossier.active,
html[data-theme="dark"] header.top .tabs a.nav-mondossier[aria-current="page"]{background:#D9F99D !important; color:#0E1A13 !important;}

/* Accueil */
html[data-theme="dark"] .sk-vert-txt, html[data-theme="dark"] .hero-outline, html[data-theme="dark"] .hero-blue{color:#4ADE80 !important;}
html[data-theme="dark"] .sk-pilule{color:#BEF264;}
html[data-theme="dark"] .sk-btn-creux{border-color:var(--ink); color:var(--ink); background:transparent;}
html[data-theme="dark"] .sk-btn-creux:hover{background:var(--sk-brume);}
html[data-theme="dark"] .sk-indice{background:rgba(14,26,19,.92);}
html[data-theme="dark"] .sk-barres i.zero{background:#2F4636;}
html[data-theme="dark"] .sk-resume-case{background:#0E1A13;}
html[data-theme="dark"] .sk-badge-vert, html[data-theme="dark"] .prom-etiq-loi, html[data-theme="dark"] .prom-etat.ok, html[data-theme="dark"] .status-sanctionne{background:#1C3320 !important; color:#86EFAC !important;}
html[data-theme="dark"] .sk-badge-ocre, html[data-theme="dark"] .prom-etiq-partiel, html[data-theme="dark"] .prom-etat, html[data-theme="dark"] .status-encours{background:#3A2E0E !important; color:#FCD34D !important;}
html[data-theme="dark"] .sk-badge-gris, html[data-theme="dark"] .prom-etiq-aucune, html[data-theme="dark"] .status-mort{background:#1B2B21 !important; color:var(--slate) !important;}
html[data-theme="dark"] .sk-carte{background:#132119;}
html[data-theme="dark"] .sk-etat, html[data-theme="dark"] .sk-carte:hover{color:inherit;}
html[data-theme="dark"] .sk-etat{color:#4ADE80;}

/* Projets de loi : les teintes d'état, en version nuit */
html[data-theme="dark"] .bill{--etat-fond:#112418; --etat-filet:#1F4A2B; --etat-txt:#86EFAC;}
html[data-theme="dark"] .bill:has(.status-encours){--etat-fond:#211C0C; --etat-filet:#4A3B12; --etat-txt:#FCD34D;}
html[data-theme="dark"] .bill:has(.status-mort), html[data-theme="dark"] .bill:has(.status-retire){--etat-fond:#151D18; --etat-filet:#2A3830; --etat-txt:#A3B4A8;}
html[data-theme="dark"] .bill:has(.status-rejete){--etat-fond:#261412; --etat-filet:#5A2520; --etat-txt:#F97066;}
html[data-theme="dark"] .bill-resume-executif, html[data-theme="dark"] .last-event-box{background:rgba(0,0,0,.25) !important; color:var(--ink);}
html[data-theme="dark"] .bstep.on{background:transparent !important;}
html[data-theme="dark"] .qf-btn[onclick*="'encours'"]:not(.active){background:#3A2E0E !important; color:#FCD34D !important; border-color:#4A3B12 !important;}
html[data-theme="dark"] .qf-btn[onclick*="'adoptes'"]:not(.active){background:#1C3320 !important; color:#86EFAC !important; border-color:#1F4A2B !important;}
html[data-theme="dark"] .qf-btn.active, html[data-theme="dark"] .follow-btn.on{background:var(--sk-lime-clair) !important; color:#0E1A13 !important; border-color:var(--sk-lime-clair) !important;}

/* Lexique */
html[data-theme="dark"] .lexique-item:has(.cat-proc){background:#112418 !important; border-color:#1F4A2B !important;}
html[data-theme="dark"] .lexique-item:has(.cat-votes){background:#211C0C !important; border-color:#4A3B12 !important;}
html[data-theme="dark"] .lexique-item:has(.cat-pers){background:#18240E !important; border-color:#34501A !important;}
html[data-theme="dark"] .lexique-item:has(.cat-outils){background:#132119 !important; border-color:#2A3830 !important;}
html[data-theme="dark"] .lex-badge.cat-outils{background:#BEF264 !important; color:#14532D !important;}
html[data-theme="dark"] .role-card .role, html[data-theme="dark"] .role-card h3 a:hover{color:#4ADE80 !important;}
html[data-theme="dark"] .role-badge{background:#1C3320 !important; color:#86EFAC !important;}
html[data-theme="dark"] .quick-nav a:nth-of-type(4n+1){background:#1C3320 !important; color:#86EFAC !important;}
html[data-theme="dark"] .quick-nav a:nth-of-type(4n+2){background:#3A2E0E !important; color:#FCD34D !important;}
html[data-theme="dark"] .quick-nav a:nth-of-type(4n+3){background:#18240E !important; color:#BEF264 !important;}
html[data-theme="dark"] .lire-box.hl{background:#18240E !important; border-color:#34501A !important;}

/* Promesses */
html[data-theme="dark"] .prom-col:last-child{background:#211C0C !important;}
html[data-theme="dark"] .prom-loi{background:rgba(0,0,0,.28);}
html[data-theme="dark"] .prom-col .lbl, html[data-theme="dark"] .prom-col a, html[data-theme="dark"] .prom-loi-src{color:#4ADE80 !important;}
html[data-theme="dark"] .prom-col .lbl.att{color:#FCD34D !important;}
html[data-theme="dark"] .qf-btn.qf-sel{outline-color:var(--ink);}

/* Divers */
html[data-theme="dark"] .brutal-search .bs-icon{background:#16A34A !important;}
html[data-theme="dark"] input, html[data-theme="dark"] select, html[data-theme="dark"] textarea{background:#132119 !important; color:var(--ink) !important;}
html[data-theme="dark"] .dq-remonter{background:var(--sk-lime-clair) !important; color:#0E1A13 !important;}
/* En sombre, les bandes foncées prennent le même fond que « Projets challengés » (Martin, 1er oct. 2026). */
html[data-theme="dark"] .band-blue, html[data-theme="dark"] .band-blue.bleed{background:var(--sk-brume) !important;}

/* Relevé des contrastes en sombre (scripts maison, 1er oct. 2026) : les restes de l'ancien style */
html[data-theme="dark"] .band-yellow, html[data-theme="dark"] .band-yellow h2, html[data-theme="dark"] .band-yellow p,
html[data-theme="dark"] .band-yellow b, html[data-theme="dark"] .band-yellow .sub{color:var(--ink) !important;}
html[data-theme="dark"] .sort-toggle{color:var(--ink) !important;}
html[data-theme="dark"] .band-blue h2, html[data-theme="dark"] .band-blue p, html[data-theme="dark"] .promo-texte{color:var(--ink) !important;}
html[data-theme="dark"] .calendar-box .status{color:var(--ink) !important;}
html[data-theme="dark"] .lire-box h3{color:var(--ink) !important;}
html[data-theme="dark"] .lire-box.hl h3{color:#BEF264 !important;}
html[data-theme="dark"] .diss-cta{color:#BEF264 !important;}
html[data-theme="dark"] .challenged-empty, html[data-theme="dark"] #challengedList > div{background:var(--card) !important; color:var(--ink);}
/* DQ garde la bande jaune CLAIRE en sombre en y redéfinissant les jetons ; ici elle devient une
   surface sombre, donc on redéfinit les jetons dans l'autre sens. */
:root[data-theme="dark"] .band-yellow{
  color:var(--ink);
  --ink:#E8F0EA; --ink-2:#E8F0EA; --line:#24372B; --line-soft:#1B2B21;
  --slate:#A3B4A8; --card:#132119; --paper:#0E1A13; --paper-2:#16241B;
  --gold:#4ADE80; --gold-soft:#16341F; --green:#4ADE80; --green-soft:#16341F; --red:#F97066; --red-soft:#3A1916;
}
/* Les boutons sur fond lime (l'ancien jaune) : texte foncé */
html[data-theme="dark"] .bill-more, html[data-theme="dark"] .votes-more, html[data-theme="dark"] .cp-slot,
html[data-theme="dark"] .md-etiquette{color:#0E1A13 !important;}
:root[data-theme="dark"] .promo-compte{background:#132119 !important; color:var(--ink) !important;}
:root[data-theme="dark"] .promo-compte .promo-compte-titre{color:#E8F0EA !important;}
:root[data-theme="dark"] .promo-compte .promo-compte-note{color:#A3B4A8 !important;}
/* Thème clair : deux restes de l'ancien style trouvés par le même relevé */
.calendar-box .status{color:var(--sk-vert-fonce) !important;}
.lire-box.hl h3, .lire-box.hl p{color:var(--ink) !important;}
html[data-theme="dark"] .calendar-box .status{color:#4ADE80 !important;}
html[data-theme="dark"] .lire-box.hl p{color:var(--ink) !important;}

/* --------------------------------------------------------------------------
   En-tête compact (Martin, 1er oct. 2026 : « Mon dossier prend trop de place ») — et la
   feuille d'érable de DossierCanada revient à côté du logo (goToFederal, gabarit.html).
   -------------------------------------------------------------------------- */
.brand-title{font-size:23px;}
.sk-logo{width:32px; height:32px;}
header.top .tabs a{font-size:15.5px !important; padding:7px 15px !important;}
@media (min-width: 981px){
  header.top .tabs{padding:4px;}
  header.top .tabs a.nav-mondossier{margin-left:6px; padding:7px 16px !important;}
}
.maple-flip{display:inline-flex !important; align-items:center; margin-left:10px; color:#D52B1E; cursor:pointer;}
.maple-flip svg{width:22px; height:22px;}
html[data-theme="dark"] .maple-flip{color:#F87171;}
@media (max-width: 640px){
  /* Téléphone : logo + nom + feuille d'érable, puis langue et menu. Le bouton lune cède sa
     place (le téléphone suit déjà souvent son propre thème) ; il reste sur ordinateur. */
  .brand-title{font-size:15px !important; gap:6px; margin-right:0; letter-spacing:-0.02em;}
  .header-ctrls .lang-toggle{padding:0 7px !important;}
  .sk-logo{width:24px; height:24px;}
  .maple-flip{margin-left:4px; width:20px !important; height:20px !important;}
  .maple-flip svg{width:18px; height:18px;}
  .header-ctrls .theme-toggle{display:none !important;}
}

/* Le nom seul, sans pictogramme (Martin, 1er oct. 2026) : « Saskatchewan » prend le vert du logo. */
.brand-title .brand-blue{color:var(--sk-vert) !important;}
html[data-theme="dark"] .brand-title .brand-blue{color:#4ADE80 !important;}
.ch-papier{margin-top:6px; font-weight:700 !important; color:var(--ink) !important;}
.ch-papier::before{content:"** ";}
.ch-papier::after{content:" **";}

/* Thème clair : les bandes foncées (« Suivez les projets de loi », « Notre mission ») prennent le
   même fond pâle que « Projets challengés », comme en sombre (Martin, 1er oct. 2026). Leur
   contenu était écrit pour un fond foncé : on y remet les jetons du clair. */
html:not([data-theme="dark"]) .band-blue, html:not([data-theme="dark"]) .band-blue.bleed{
  background:var(--sk-brume) !important; color:var(--ink) !important;
  --ink:#0F1F17; --ink-2:#0F1F17; --card:#FFFFFF; --line:#E3EAE5; --slate:#56635B; --gold:#15803D; --sur-fonce:#0F1F17;
}
html:not([data-theme="dark"]) .band-blue h2, html:not([data-theme="dark"]) .band-blue p,
html:not([data-theme="dark"]) .band-blue li, html:not([data-theme="dark"]) .band-blue .promo-texte{color:var(--ink) !important;}
html:not([data-theme="dark"]) .band-blue .promo-sur, html:not([data-theme="dark"]) .band-blue .mission-eyebrow{color:var(--sk-vert-fonce) !important;}
html:not([data-theme="dark"]) .mission-statement .hl{color:var(--sk-vert-fonce) !important;}
html:not([data-theme="dark"]) .compare-col{background:#FFFFFF !important; border-color:var(--sk-filet) !important;}
html:not([data-theme="dark"]) .compare-col .tag{color:var(--sk-vert-fonce) !important;}
html:not([data-theme="dark"]) .band-blue .sub, html:not([data-theme="dark"]) .band-blue h3,
html:not([data-theme="dark"]) .band-blue .cp-txt{color:var(--ink) !important;}
html:not([data-theme="dark"]) .band-blue .cp-vs, html:not([data-theme="dark"]) .band-blue .cp-hint{color:var(--sk-vert-fonce) !important;}

/* Ministres : l'encadré « Lire la présence aux votes » prend le fond des bandes (« Projets
   challengés », comparateur), en clair comme en sombre (Martin, 1er oct. 2026). */
.legende-presence{background:var(--sk-brume) !important; border-color:transparent !important;}
