/* Estructura estandar de campos de formulario (input, select, textarea).
   Fija tamano, relleno, alineacion y apariencia nativa; la piel (color, borde, radio)
   la define cada app. Excepciones: .ak-control--sm (denso, 44px) y .ak-raw (sin regla). */

:is(
    input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"], [type="hidden"],
              [type="submit"], [type="button"], [type="reset"], [type="color"], [type="image"]),
    select,
    textarea
):not(.ak-raw) {
    box-sizing: border-box !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: var(--ak-control-h, 52px) !important;
    padding: var(--ak-control-py, 12px) var(--ak-control-px, 14px) !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    line-height: 1.4;
}

:is(input, select, textarea).ak-control--sm:not(.ak-raw) {
    height: var(--ak-control-h-sm, 44px) !important;
    padding: 9px 12px !important;
}

/* Textarea: alto minimo, solo crece en vertical, texto a la izquierda */
html textarea:not(.ak-raw):not(.ak-raw) {
    display: block;
    height: auto !important;
    min-height: 96px !important;
    resize: vertical;
    text-align: start;
    line-height: 1.5;
}

/* Selector: flecha propia (appearance:none la quita) */
html select:not(.ak-raw):not(.ak-raw) {
    padding-right: 40px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235a6b73' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px;
    text-overflow: ellipsis;
}

/* Fecha y hora: iOS les da ancho minimo propio (min-width:0 arriba lo anula) y los deja sin altura cuando estan vacios */
input[type="date"]:not(.ak-raw),
input[type="time"]:not(.ak-raw),
input[type="datetime-local"]:not(.ak-raw),
input[type="month"]:not(.ak-raw),
input[type="week"]:not(.ak-raw) {
}
input[type="date"]::-webkit-date-and-time-value,
input[type="time"]::-webkit-date-and-time-value,
input[type="datetime-local"]::-webkit-date-and-time-value,
input[type="month"]::-webkit-date-and-time-value,
input[type="week"]::-webkit-date-and-time-value {
    min-height: 1.5em;
    text-align: inherit;
    margin: 0;
}
input[type="date"]::-webkit-datetime-edit,
input[type="time"]::-webkit-datetime-edit,
input[type="datetime-local"]::-webkit-datetime-edit {
    padding: 0;
}

/* Numero: sin botones de subir/bajar */
input[type="number"]:not(.ak-raw) { -moz-appearance: textfield; }
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Fila de campos en columnas iguales que nunca desbordan; alinea los campos al fondo */
.ak-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-items: end;
}
.ak-form-row > * { min-width: 0; }
@media (max-width: 340px) { .ak-form-row { grid-template-columns: minmax(0, 1fr); } }
