/* tsubomi.fr – Bibliothèque autonome d'icônes et boutons. Sans framework ni installation. */
:root {
  --ms-navy: #16223b;
  --ms-orange: #ff781d;
  --ms-orange-hover: #ec620d;
  --ms-peach: #fff1e7;
  --ms-text: #16223b;
  --ms-muted: #596579;
  --ms-border: #d9dde5;
  --ms-panel: #ffffff;
  --ms-radius: 12px;
  --ms-font: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}
.ms-icon {
  display: inline-block; width: 1.25em; height: 1.25em; flex: 0 0 auto;
  background-color: currentColor; vertical-align: -0.20em;
  -webkit-mask: var(--ms-icon-file) center / contain no-repeat;
  mask: var(--ms-icon-file) center / contain no-repeat;
}
.ms-icon--logo-livre { --ms-icon-file: url("../icones/svg/logo-livre.svg"); }
.ms-icon--accueil { --ms-icon-file: url("../icones/svg/accueil.svg"); }
.ms-icon--bibliotheque { --ms-icon-file: url("../icones/svg/bibliotheque.svg"); }
.ms-icon--livre-ouvert { --ms-icon-file: url("../icones/svg/livre-ouvert.svg"); }
.ms-icon--lecture { --ms-icon-file: url("../icones/svg/lecture.svg"); }
.ms-icon--actualites { --ms-icon-file: url("../icones/svg/actualites.svg"); }
.ms-icon--auteur { --ms-icon-file: url("../icones/svg/auteur.svg"); }
.ms-icon--profil { --ms-icon-file: url("../icones/svg/profil.svg"); }
.ms-icon--recherche { --ms-icon-file: url("../icones/svg/recherche.svg"); }
.ms-icon--fleche-droite { --ms-icon-file: url("../icones/svg/fleche-droite.svg"); }
.ms-icon--fleche-gauche { --ms-icon-file: url("../icones/svg/fleche-gauche.svg"); }
.ms-icon--chevron-droite { --ms-icon-file: url("../icones/svg/chevron-droite.svg"); }
.ms-icon--chevron-gauche { --ms-icon-file: url("../icones/svg/chevron-gauche.svg"); }
.ms-icon--chevron-bas { --ms-icon-file: url("../icones/svg/chevron-bas.svg"); }
.ms-icon--plus { --ms-icon-file: url("../icones/svg/plus.svg"); }
.ms-icon--moins { --ms-icon-file: url("../icones/svg/moins.svg"); }
.ms-icon--fermer { --ms-icon-file: url("../icones/svg/fermer.svg"); }
.ms-icon--coeur { --ms-icon-file: url("../icones/svg/coeur.svg"); }
.ms-icon--coeur-plein { --ms-icon-file: url("../icones/svg/coeur-plein.svg"); }
.ms-icon--coups-de-coeur { --ms-icon-file: url("../icones/svg/coups-de-coeur.svg"); }
.ms-icon--marque-page { --ms-icon-file: url("../icones/svg/marque-page.svg"); }
.ms-icon--marque-page-plein { --ms-icon-file: url("../icones/svg/marque-page-plein.svg"); }
.ms-icon--horloge { --ms-icon-file: url("../icones/svg/horloge.svg"); }
.ms-icon--rappel { --ms-icon-file: url("../icones/svg/rappel.svg"); }
.ms-icon--calendrier { --ms-icon-file: url("../icones/svg/calendrier.svg"); }
.ms-icon--parametres { --ms-icon-file: url("../icones/svg/parametres.svg"); }
.ms-icon--modifier { --ms-icon-file: url("../icones/svg/modifier.svg"); }
.ms-icon--corbeille { --ms-icon-file: url("../icones/svg/corbeille.svg"); }
.ms-icon--plus-options { --ms-icon-file: url("../icones/svg/plus-options.svg"); }
.ms-icon--partager { --ms-icon-file: url("../icones/svg/partager.svg"); }
.ms-icon--etoile { --ms-icon-file: url("../icones/svg/etoile.svg"); }
.ms-icon--etoile-pleine { --ms-icon-file: url("../icones/svg/etoile-pleine.svg"); }
.ms-icon--play { --ms-icon-file: url("../icones/svg/play.svg"); }
.ms-icon--pause { --ms-icon-file: url("../icones/svg/pause.svg"); }
.ms-icon--lecture-page { --ms-icon-file: url("../icones/svg/lecture-page.svg"); }
.ms-icon--lecture-double { --ms-icon-file: url("../icones/svg/lecture-double.svg"); }
.ms-icon--lecture-scroll { --ms-icon-file: url("../icones/svg/lecture-scroll.svg"); }
.ms-icon--lecture-double-scroll { --ms-icon-file: url("../icones/svg/lecture-double-scroll.svg"); }
.ms-icon--plein-ecran { --ms-icon-file: url("../icones/svg/plein-ecran.svg"); }
.ms-icon--vignettes { --ms-icon-file: url("../icones/svg/vignettes.svg"); }
.ms-icon--liste { --ms-icon-file: url("../icones/svg/liste.svg"); }
.ms-icon--lecture-prochaine { --ms-icon-file: url("../icones/svg/lecture-prochaine.svg"); }
.ms-icon--notes { --ms-icon-file: url("../icones/svg/notes.svg"); }
.ms-icon--note-ajout { --ms-icon-file: url("../icones/svg/note-ajout.svg"); }
.ms-icon--progres { --ms-icon-file: url("../icones/svg/progres.svg"); }
.ms-icon--statistiques { --ms-icon-file: url("../icones/svg/statistiques.svg"); }
.ms-icon--etiquette { --ms-icon-file: url("../icones/svg/etiquette.svg"); }
.ms-icon--deplacer { --ms-icon-file: url("../icones/svg/deplacer.svg"); }
.ms-icon--poignee { --ms-icon-file: url("../icones/svg/poignee.svg"); }
.ms-icon--cadenas { --ms-icon-file: url("../icones/svg/cadenas.svg"); }
.ms-icon--check { --ms-icon-file: url("../icones/svg/check.svg"); }
.ms-icon--check-cercle { --ms-icon-file: url("../icones/svg/check-cercle.svg"); }
.ms-icon--alerte { --ms-icon-file: url("../icones/svg/alerte.svg"); }
.ms-icon--info { --ms-icon-file: url("../icones/svg/info.svg"); }
.ms-icon--aide { --ms-icon-file: url("../icones/svg/aide.svg"); }
.ms-icon--notification { --ms-icon-file: url("../icones/svg/notification.svg"); }
.ms-icon--image { --ms-icon-file: url("../icones/svg/image.svg"); }
.ms-icon--charger { --ms-icon-file: url("../icones/svg/charger.svg"); }
.ms-icon--filtre { --ms-icon-file: url("../icones/svg/filtre.svg"); }
.ms-icon--ordonner { --ms-icon-file: url("../icones/svg/ordonner.svg"); }
.ms-icon--globe { --ms-icon-file: url("../icones/svg/globe.svg"); }
.ms-icon--assistant-ia { --ms-icon-file: url("../icones/svg/assistant-ia.svg"); }
.ms-icon--baguette-ia { --ms-icon-file: url("../icones/svg/baguette-ia.svg"); }
.ms-icon--soleil { --ms-icon-file: url("../icones/svg/soleil.svg"); }
.ms-icon--cloche-active { --ms-icon-file: url("../icones/svg/cloche-active.svg"); }
.ms-icon--retour { --ms-icon-file: url("../icones/svg/retour.svg"); }
.ms-icon--sauvegarder { --ms-icon-file: url("../icones/svg/sauvegarder.svg"); }
.ms-icon--menu { --ms-icon-file: url("../icones/svg/menu.svg"); }
.ms-icon--agrandir { --ms-icon-file: url("../icones/svg/agrandir.svg"); }

.ms-btn { appearance: none; position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:.72rem 1rem; min-height:44px; box-sizing:border-box; max-width:100%; vertical-align:middle;
  font:600 14px/1.22 var(--ms-font); color:var(--ms-text); border:1px solid var(--ms-border);
  border-radius:var(--ms-radius); background:var(--ms-panel); cursor:pointer; text-align:center;
  text-decoration:none; white-space:normal; transition: background-color .17s ease, border-color .17s ease, transform .17s ease, box-shadow .17s ease;
}
.ms-btn:hover:not(:disabled) { border-color: var(--ms-orange); transform:translateY(-1px); box-shadow:0 4px 10px #111c3521; }
.ms-btn:active:not(:disabled) { transform:translateY(0); box-shadow:none; }
.ms-btn:focus-visible { outline:3px solid #ffb579; outline-offset:3px; }
.ms-btn:disabled {opacity:.45; cursor:not-allowed;}
.ms-btn--primary { background:var(--ms-orange);border-color:var(--ms-orange);color:#fff; }
.ms-btn--primary:hover:not(:disabled) { background:var(--ms-orange-hover);border-color:var(--ms-orange-hover); }
.ms-btn--secondary { background:#fff;color:var(--ms-navy); }
.ms-btn--ghost {background:transparent;border-color:transparent;color:var(--ms-text);}
.ms-btn--nav { background:var(--ms-navy);color:#fff;border-color:transparent; }
.ms-btn--tab { background:var(--ms-peach);border-color:transparent; }
.ms-btn--toolbar { background:var(--ms-navy);color:#fff;border-color:transparent;border-radius:0; }
.ms-btn--mode { background:#f3f4f6;border-color:#ecedf2; }
.ms-btn--danger {background:#fff0ed;color:#b92e29;border-color:#ffc9bc;}
.ms-btn--icon { width:44px;height:44px;min-width:44px;padding:0; }
.ms-btn--compact {min-height:36px;padding:.5rem .75rem;font-size:13px;}
.ms-btn[aria-pressed="true"],.ms-btn[aria-selected="true"] { background:var(--ms-orange);border-color:var(--ms-orange);color:#fff; }
.ms-btn--nav[aria-current="page"] {color:#ffb477; border-bottom:3px solid var(--ms-orange); border-radius:0;}
.ms-btn .ms-icon {font-size:1.1em;}
.ms-btn__text {display:inline-block;min-width:0;}
.ms-btn-group { display:flex; flex-wrap:wrap;gap:8px;align-items:center; }
.ms-btn-group--attached {gap:0;}
.ms-btn-group--attached .ms-btn {border-radius:0;}
.ms-btn-group--attached .ms-btn:first-child {border-radius:var(--ms-radius) 0 0 var(--ms-radius);}
.ms-btn-group--attached .ms-btn:last-child {border-radius:0 var(--ms-radius) var(--ms-radius) 0;}
.ms-button-card { background:#fff; border:1px solid var(--ms-border);border-radius:14px; padding:14px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:70px;}
.ms-button-card .ms-icon {color:var(--ms-orange);font-size:24px;}
.ms-button-card span {flex:1;}
.ms-toggle {appearance:none;width:48px;height:27px;display:inline-block;background:#bec5d1;
  border:0;border-radius:999px;position:relative;cursor:pointer;vertical-align:middle;transition:background .2s;}
.ms-toggle::before {content:"";position:absolute;left:3px;top:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 4px #0002;}
.ms-toggle:checked {background:var(--ms-orange);}
.ms-toggle:checked::before {transform:translateX(21px);}
.ms-toggle:focus-visible {outline:3px solid #ffb579;outline-offset:3px;}
@media(max-width:650px){.ms-btn{font-size:13px;min-height:44px;padding:.65rem .72rem;}.ms-btn-group{gap:6px;}.ms-btn--toolbar .ms-btn__text{display:none;}.ms-btn--toolbar{border-radius:12px;min-width:44px;}}
@media(prefers-reduced-motion:reduce){.ms-btn,.ms-toggle,.ms-toggle::before{transition:none;}}
