/* Casillas (checkbox) de toda a aplicación: cadrado de 18px co borde mariño suave e, marcada, chea
   en mariño co visto branco. Ao pasar o rato, un aro dourado suave; co teclado, o aro azul.

   SÓ CSS SOBRE A MESMA CASILLA DO NAVEGADOR (appearance: none): clic, teclado, a etiqueta, o «change»
   e o valor que se envía no formulario non cambian, e non hai nada que iniciar por JS (vale tamén
   para os bloques que se engaden por AJAX ou desde un prototipo).

   Inclúe as dos formularios (.mws_checkbox): o plugin bootstrap-checkbox pon despois delas uns botóns
   vermello/verde, pero sdweb.css agóchaos sempre (.button-checkbox{display:none!important}), así que
   a casilla que se ve e se preme en toda a aplicación é a nativa.

   Fóra, porque xa teñen o seu debuxo e este estragaríallelo:
   - os interruptores: os do panel (.dash-edit-vis), os do construtor de enquisas (.enc-chip,
     .enc-check), o «ir ao inicio» do modal de suplantar (.adm-interruptor) e .checkbox-modern;
   - as casillas agochadas que se marcan polo seu envoltorio: as tarxetas de asignar agrupamentos
     (.asig-card), as capas do calendario (.cal-capa-chip) e o prazo do consumo (.cons-prazo-op).

   Vai nun ficheiro propio, cargado despois de sdweb.css e cabeceiras.css, para poder comparar unha
   pantalla con e sen el só quitando este <link>. */

:root {
    --casilla-mar: #2c3862;
    --casilla-borde: rgba(44, 56, 98, .45);
    --casilla-ouro: rgba(222, 182, 74, .28);
    --casilla-foco: rgba(83, 119, 245, .30);
    --casilla-visto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --casilla-medias: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* O selector común. :not(:is(...) *) deixa fóra calquera casilla DENTRO deses compoñentes. */
input[type="checkbox"]:not(:is(.dash-edit-vis, .enc-chip, .enc-check, .adm-interruptor, .checkbox-modern, .asig-card, .cal-capa-chip, .cons-prazo-op) *) {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    flex: none;
    box-sizing: border-box;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px;
    border: 1.5px solid var(--casilla-borde) !important;
    border-radius: 5px !important;
    outline: 0 !important;
    background: #fff center / 14px 14px no-repeat !important;
    box-shadow: none !important;
    vertical-align: middle;
    cursor: pointer;
    transition: background-color .15s, border-color .15s, box-shadow .15s;
}
/* sdweb.css encolle a marcada a 12px e ponlle un aro: aquí mide o mesmo marcada ou non. */
input[type="checkbox"]:not(:is(.dash-edit-vis, .enc-chip, .enc-check, .adm-interruptor, .checkbox-modern, .asig-card, .cal-capa-chip, .cons-prazo-op) *):checked {
    border-color: var(--casilla-mar) !important;
    background-color: var(--casilla-mar) !important;
    background-image: var(--casilla-visto) !important;
}
/* «A medias» (indeterminate): a de «marcar todas» cando só hai algunhas. */
input[type="checkbox"]:not(:is(.dash-edit-vis, .enc-chip, .enc-check, .adm-interruptor, .checkbox-modern, .asig-card, .cal-capa-chip, .cons-prazo-op) *):indeterminate {
    border-color: var(--casilla-mar) !important;
    background-color: var(--casilla-mar) !important;
    background-image: var(--casilla-medias) !important;
}
input[type="checkbox"]:not(:is(.dash-edit-vis, .enc-chip, .enc-check, .adm-interruptor, .checkbox-modern, .asig-card, .cal-capa-chip, .cons-prazo-op) *):hover:not(:disabled) {
    border-color: var(--casilla-mar) !important;
    box-shadow: 0 0 0 3px var(--casilla-ouro) !important;
}
input[type="checkbox"]:not(:is(.dash-edit-vis, .enc-chip, .enc-check, .adm-interruptor, .checkbox-modern, .asig-card, .cal-capa-chip, .cons-prazo-op) *):focus-visible {
    box-shadow: 0 0 0 3px var(--casilla-foco) !important;
}
input[type="checkbox"]:not(:is(.dash-edit-vis, .enc-chip, .enc-check, .adm-interruptor, .checkbox-modern, .asig-card, .cal-capa-chip, .cons-prazo-op) *):disabled {
    opacity: .55;
    background-color: #f1f2f6 !important;
    cursor: not-allowed;
}
input[type="checkbox"]:not(:is(.dash-edit-vis, .enc-chip, .enc-check, .adm-interruptor, .checkbox-modern, .asig-card, .cal-capa-chip, .cons-prazo-op) *):checked:disabled {
    background-color: var(--casilla-mar) !important;
}

/* Os campos si/non dos formularios do CRUD: sdweb.css mete a casilla nun recadro de 16px con
   overflow oculto e, ao marcala, posiciónaa en absoluto e encólle a 12px. Co cadrado novo, o
   recadro mide o mesmo ca a casilla e esta queda no seu sitio. */
label ~ div[class=""]:has(> input[type="checkbox"]) {
    width: 18px !important;
    height: 18px !important;
    overflow: visible !important;
}
label ~ div[class=""] > input[type="checkbox"],
label ~ div[class=""] > input[type="checkbox"]:checked {
    position: static !important;
    inset: auto !important;
    margin: 0 !important;
}
