/* FROM https://github.com/justboil/bulma-radio/blob/main/css/main.min.css / version 1.2.0 (npm bulma-radio@1.2.0) */
/* LOCAL CHANGES vs upstream: prefixe .b-radio supprime (style applique a tous les .radio) ; masquage de l input natif limite aux inputs suivis d un span.check (:has) afin qu un radio sans span reste visible ; bloc additionnel pour radio sans span.check (crispy) : input style via appearance:none ; couleur primaire (defaut et is-primary) via var(--bulma-primary) avec fallback hex */

.radio{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio{outline:none;display:inline-flex;align-items:center}.radio:not(.button){margin-right:0.5em}.radio:not(.button)+.radio:last-child{margin-right:0}.radio+.radio{margin-left:0}.radio input[type=radio]:has(+.check){position:absolute;left:0;opacity:0;outline:none;z-index:-1}.radio input[type=radio]+.check{display:flex;flex-shrink:0;position:relative;cursor:pointer;width:1.25em;height:1.25em;transition:background 150ms ease-out;border-radius:50%;border:2px solid #7a7a7a}.radio input[type=radio]+.check:before{content:"";display:flex;position:absolute;left:50%;margin-left:calc(-1.25em * 0.5);bottom:50%;margin-bottom:calc(-1.25em * 0.5);width:1.25em;height:1.25em;transition:transform 150ms ease-out;border-radius:50%;transform:scale(0);background-color:var(--bulma-primary, #00d1b2)}.radio input[type=radio]+.check.is-white:before{background:#fff}.radio input[type=radio]+.check.is-black:before{background:#0a0a0a}.radio input[type=radio]+.check.is-light:before{background:#f5f5f5}.radio input[type=radio]+.check.is-dark:before{background:#363636}.radio input[type=radio]+.check.is-primary:before{background:var(--bulma-primary, #00d1b2)}.radio input[type=radio]+.check.is-link:before{background:#485fc7}.radio input[type=radio]+.check.is-info:before{background:#3e8ed0}.radio input[type=radio]+.check.is-success:before{background:#48c78e}.radio input[type=radio]+.check.is-warning:before{background:#ffe08a}.radio input[type=radio]+.check.is-danger:before{background:#f14668}.radio input[type=radio]:checked+.check{border-color:var(--bulma-primary, #00d1b2)}.radio input[type=radio]:checked+.check.is-white{border-color:#fff}.radio input[type=radio]:checked+.check.is-black{border-color:#0a0a0a}.radio input[type=radio]:checked+.check.is-light{border-color:#f5f5f5}.radio input[type=radio]:checked+.check.is-dark{border-color:#363636}.radio input[type=radio]:checked+.check.is-primary{border-color:var(--bulma-primary, #00d1b2)}.radio input[type=radio]:checked+.check.is-link{border-color:#485fc7}.radio input[type=radio]:checked+.check.is-info{border-color:#3e8ed0}.radio input[type=radio]:checked+.check.is-success{border-color:#48c78e}.radio input[type=radio]:checked+.check.is-warning{border-color:#ffe08a}.radio input[type=radio]:checked+.check.is-danger{border-color:#f14668}.radio input[type=radio]:checked+.check:before{transform:scale(0.5)}.radio input[type=radio]:focus+.check{box-shadow:0 0 0.5em rgba(122,122,122,0.8)}.radio input[type=radio]:focus:checked+.check{box-shadow:0 0 0.5em color-mix(in srgb, var(--bulma-primary, #00d1b2) 80%, transparent)}.radio input[type=radio]:focus:checked+.check.is-white{box-shadow:0 0 0.5em rgba(255,255,255,0.8)}.radio input[type=radio]:focus:checked+.check.is-black{box-shadow:0 0 0.5em rgba(10,10,10,0.8)}.radio input[type=radio]:focus:checked+.check.is-light{box-shadow:0 0 0.5em rgba(245,245,245,0.8)}.radio input[type=radio]:focus:checked+.check.is-dark{box-shadow:0 0 0.5em rgba(54,54,54,0.8)}.radio input[type=radio]:focus:checked+.check.is-primary{box-shadow:0 0 0.5em color-mix(in srgb, var(--bulma-primary, #00d1b2) 80%, transparent)}.radio input[type=radio]:focus:checked+.check.is-link{box-shadow:0 0 0.5em rgba(72,95,199,0.8)}.radio input[type=radio]:focus:checked+.check.is-info{box-shadow:0 0 0.5em rgba(62,142,208,0.8)}.radio input[type=radio]:focus:checked+.check.is-success{box-shadow:0 0 0.5em rgba(72,199,142,0.8)}.radio input[type=radio]:focus:checked+.check.is-warning{box-shadow:0 0 0.5em rgba(255,224,138,0.8)}.radio input[type=radio]:focus:checked+.check.is-danger{box-shadow:0 0 0.5em rgba(241,70,104,0.8)}.radio .control-label{padding-left:calc(0.75em - 1px)}.radio.button{display:flex}.radio.button.is-selected{z-index:1}.radio[disabled]{opacity:0.5}.radio:hover input[type=radio]:not(:disabled)+.check{border-color:var(--bulma-primary, #00d1b2)}.radio:hover input[type=radio]:not(:disabled)+.check.is-white{border-color:#fff}.radio:hover input[type=radio]:not(:disabled)+.check.is-black{border-color:#0a0a0a}.radio:hover input[type=radio]:not(:disabled)+.check.is-light{border-color:#f5f5f5}.radio:hover input[type=radio]:not(:disabled)+.check.is-dark{border-color:#363636}.radio:hover input[type=radio]:not(:disabled)+.check.is-primary{border-color:var(--bulma-primary, #00d1b2)}.radio:hover input[type=radio]:not(:disabled)+.check.is-link{border-color:#485fc7}.radio:hover input[type=radio]:not(:disabled)+.check.is-info{border-color:#3e8ed0}.radio:hover input[type=radio]:not(:disabled)+.check.is-success{border-color:#48c78e}.radio:hover input[type=radio]:not(:disabled)+.check.is-warning{border-color:#ffe08a}.radio:hover input[type=radio]:not(:disabled)+.check.is-danger{border-color:#f14668}.radio.is-small{border-radius:2px;font-size:.75rem}.radio.is-medium{font-size:1.25rem}.radio.is-large{font-size:1.5rem}

/* Radio sans span.check (rendu crispy-forms : input puis texte) : l'input est style directement, uniquement quand il n'est PAS suivi d'un span.check, pour ne pas entrer en conflit avec le bloc precedent */
.radio input[type=radio]:not(:has(+.check)){-webkit-appearance:none;appearance:none;width:1.25em;height:1.25em;flex-shrink:0;border-radius:50%;border:2px solid #7a7a7a;transition:background 150ms ease-out;background:rgba(0,0,0,0);margin-right:.5em;cursor:pointer}
.radio:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:var(--bulma-primary, #00d1b2)}
.radio input[type=radio]:checked:not(:has(+.check)){border-color:var(--bulma-primary, #00d1b2);background-image:radial-gradient(circle,var(--bulma-primary, #00d1b2) 45%,transparent 50%)}
.radio input[type=radio]:focus:not(:has(+.check)){box-shadow:0 0 0.5em rgba(122,122,122,0.8)}
.radio input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em color-mix(in srgb, var(--bulma-primary, #00d1b2) 80%, transparent)}
.radio input[type=radio]:disabled:not(:has(+.check)){opacity:0.5;cursor:not-allowed}
.radio.is-white input[type=radio]:checked:not(:has(+.check)){border-color:#fff;background-image:radial-gradient(circle,#fff 45%,transparent 50%)}
.radio.is-white:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:#fff}
.radio.is-white input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em rgba(255,255,255,0.8)}
.radio.is-black input[type=radio]:checked:not(:has(+.check)){border-color:#0a0a0a;background-image:radial-gradient(circle,#0a0a0a 45%,transparent 50%)}
.radio.is-black:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:#0a0a0a}
.radio.is-black input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em rgba(10,10,10,0.8)}
.radio.is-light input[type=radio]:checked:not(:has(+.check)){border-color:#f5f5f5;background-image:radial-gradient(circle,#f5f5f5 45%,transparent 50%)}
.radio.is-light:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:#f5f5f5}
.radio.is-light input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em rgba(245,245,245,0.8)}
.radio.is-dark input[type=radio]:checked:not(:has(+.check)){border-color:#363636;background-image:radial-gradient(circle,#363636 45%,transparent 50%)}
.radio.is-dark:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:#363636}
.radio.is-dark input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em rgba(54,54,54,0.8)}
.radio.is-primary input[type=radio]:checked:not(:has(+.check)){border-color:var(--bulma-primary, #00d1b2);background-image:radial-gradient(circle,var(--bulma-primary, #00d1b2) 45%,transparent 50%)}
.radio.is-primary:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:var(--bulma-primary, #00d1b2)}
.radio.is-primary input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em color-mix(in srgb, var(--bulma-primary, #00d1b2) 80%, transparent)}
.radio.is-link input[type=radio]:checked:not(:has(+.check)){border-color:#485fc7;background-image:radial-gradient(circle,#485fc7 45%,transparent 50%)}
.radio.is-link:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:#485fc7}
.radio.is-link input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em rgba(72,95,199,0.8)}
.radio.is-info input[type=radio]:checked:not(:has(+.check)){border-color:#3e8ed0;background-image:radial-gradient(circle,#3e8ed0 45%,transparent 50%)}
.radio.is-info:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:#3e8ed0}
.radio.is-info input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em rgba(62,142,208,0.8)}
.radio.is-success input[type=radio]:checked:not(:has(+.check)){border-color:#48c78e;background-image:radial-gradient(circle,#48c78e 45%,transparent 50%)}
.radio.is-success:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:#48c78e}
.radio.is-success input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em rgba(72,199,142,0.8)}
.radio.is-warning input[type=radio]:checked:not(:has(+.check)){border-color:#ffe08a;background-image:radial-gradient(circle,#ffe08a 45%,transparent 50%)}
.radio.is-warning:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:#ffe08a}
.radio.is-warning input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em rgba(255,224,138,0.8)}
.radio.is-danger input[type=radio]:checked:not(:has(+.check)){border-color:#f14668;background-image:radial-gradient(circle,#f14668 45%,transparent 50%)}
.radio.is-danger:hover input[type=radio]:not(:disabled):not(:has(+.check)){border-color:#f14668}
.radio.is-danger input[type=radio]:focus:checked:not(:has(+.check)){box-shadow:0 0 0.5em rgba(241,70,104,0.8)}
/* HACK documente (README) : help_text par option injecte dans le libelle (span + span.help) : input aligne en haut, aide sous le libelle */
.radio:has(> .help){display:grid;grid-template-columns:auto 1fr;align-items:start}
.radio:has(> .help) input[type=radio]:not(:has(+.check)){margin-top:.125em}
.radio:has(> .help) .help{grid-column:2;margin-top:.1em;margin-bottom:.5rem}
