/** Campos. */
input:read-only, textarea:read-only {background-color: #f7f7f7}
label{font-size:.8rem;font-weight:700;color:#343a40;display:block;width:100%;padding:.2rem .5rem;background-color:#e9ecef;border:1px solid #adb5bd;border-radius:0;border-bottom:0}
input,select,optgroup,textarea{font-size:.9rem;display:block;width:100%;padding:.25rem .5rem;background-color:transparent;border:1px solid #adb5bd;border-radius:0}
input{height:30px;text-transform:none;overflow:visible}
select{height:30px;text-transform:none;overflow:visible}
textarea{text-transform:none;overflow:auto;resize:none}
input:focus,select:focus,optgroup:focus,textarea:focus{border-color:#86b6fe;outline:none;box-shadow:inset 0 0 0 1px #cfe2ff}

/** Correccion de texto con IA. */
.correccion-texto-pendiente{cursor:progress;background-color:#fff3bf!important;border-color:#b58105!important;animation:correccion-texto-pulso 1.1s ease-in-out infinite}
@keyframes correccion-texto-pulso{50%{background-color:#ffe69c;box-shadow:0 0 0 4px rgba(181,129,5,.25)}}
@media (prefers-reduced-motion:reduce){.correccion-texto-pendiente{animation:none}}

/** Presupuestos aceptados. */
select[data-economia-bloqueada="true"]{pointer-events:none;cursor:not-allowed;background-color:#e9ecef}
.economia-presupuesto-bloqueada{padding-left:8px;border-left:4px solid #b58105}
.economia-presupuesto-bloqueada input,.economia-presupuesto-bloqueada textarea,.economia-presupuesto-bloqueada select{pointer-events:none;cursor:not-allowed;background-color:#f1f3f5!important}
.economia-presupuesto-bloqueada .handle-element{pointer-events:none;cursor:default!important}

/** Checkbox. */
input[type="checkbox"]{cursor:pointer;width:20px;height:20px;border:1px solid #ccc;background-color:#fff;border-radius:3px;display:block;vertical-align:middle;margin-left:5px;margin-right:10px}
input[type="checkbox"]:checked{border-color:#1E90FF;background-color:#1E90FF}
input[type="checkbox"]:hover{background-color:#1E90FF;border-color:#1E90FF}
.checkbox-group{display:flex;flex-direction:column;margin-top:10px;margin-bottom:5px}
.checkbox-item{display:flex;align-items:center;margin-bottom:15px}

/** Radio. */
input[type="radio"]{cursor:pointer;width:20px;height:20px;border:1px solid #ccc;background-color:#fff;border-radius:3px;display:block;vertical-align:middle;margin-left:5px;margin-right:10px}
input[type="radio"]:checked{border-color:#1E90FF;background-color:#1E90FF}
input[type="radio"]:hover{background-color:#1E90FF;border-color:#1E90FF}
.radio-group{display:flex;flex-direction:column;margin-top:10px;margin-bottom:5px}
.radio-item{display:flex;align-items:center;margin-bottom:15px}

/** Archivo. */
input[type="file"]{height:auto;border:1px solid #ccc;background-color:#f9f9f9;color:#333;padding:10px}
input[type="file"]::-webkit-file-upload-button{background-color:#007BFF;color:#fff;border:none;border-radius:5px;padding:8px 20px;cursor:pointer}
input[type="file"]::file-selector-button{background-color:#007BFF;color:#fff;border:none;border-radius:5px;padding:8px 20px;cursor:pointer}
input[type="file"]:hover{border-color:#007BFF}
input[type="file"]:focus{outline:none;background-color:#fff;border-color:#007BFF;box-shadow:0 0 5px rgba(0,123,255,.5)}
input[type="file"]:disabled {background-color:#e0e0e0;color:#a0a0a0;cursor:not-allowed}

/** Selectores. */
select {color:#343a40}
select:disabled {color:#343a40;opacity:1}

/** Errores de validación de formulario. */
.input-error-message {color:red;font-weight:bold;margin-top:4px;font-size:0.9rem}
.input-error-style {border-color:#ff5b5b;background-color:#ffe5e5}

/** Errores de jornada. */
.jornada-error-dia{max-width:520px;margin-bottom:.5rem;font-size:.85rem;font-weight:600}

/** Errores de fichaje. */
.fichaje-input-error{border-color:#ff5b5b;background-color:#ffe5e5}

/** Lista de clientes. */
.seleccion-cliente{position:relative;display:block;width:100%}
.lista-clientes{position:absolute;z-index:1;background-color:#fff;border:1px solid #ccc;list-style-type:none;padding:0;margin:0;max-height:200px;overflow-y:auto;display:none;min-width:294px}
.seleccion-cliente .lista-clientes{left:0;right:0;width:100%;min-width:0}
.lista-clientes li{padding:5px;cursor:pointer}
.lista-clientes li:hover{background-color:#f2f2f2}

/** Autocompletar técnicos de partes. */
.parte-tecnico-autocomplete{position:relative;display:block;width:100%}
.parte-tecnico-autocomplete input{position:relative;z-index:2;background-color:transparent}
.table-edit .parte-tecnico-autocomplete .table-control:focus{background-color:transparent}
.parte-tecnico-suggestion{position:absolute;box-sizing:border-box;z-index:1;top:0;left:0;right:0;bottom:0;overflow:hidden;color:#adb5bd;pointer-events:none;white-space:pre;text-align:left}
.parte-tecnico-suggestion .typed{color:transparent}

/** Campo de búsqueda de dirección. */
#direccion-search {display:block;width:100%;height:40px;background-color:#fff;border:1px solid #adb5bd!important;border-radius:0!important;outline:none!important;box-shadow:none!important}
#direccion-search::part(input) {color:#343a40;background-color:#fff;border:1px solid #adb5bd!important;border-radius:0!important;outline:none!important;box-shadow:none!important}
#direccion-search:focus,
#direccion-search:focus-visible,
#direccion-search:focus-within {border-color:#adb5bd!important;outline:none!important;box-shadow:none!important}
#direccion-search:focus-within::part(input),
#direccion-search::part(input):focus {border-color:#adb5bd!important;outline:none!important;box-shadow:none!important}
