/* :root {
    --mainColor: #155a2a;
    --bgColor: #edf1ee;
    --bgCardColor: #fff;
    --errorColor: #dc3545;

    --borderrMax: 1rem;
    --borderrMid: .5rem;
    --borderrMin: .2rem;
    --textColor: #333;

    --transitionMid: .5s;

    --borderColor: #ddd;
    --inputBgColor: #fff;
    --formBgColor: #f9f9f9;
    --greyColor: #999;
    --greyLightColor: #e6e6e6;
    --readonlyHoverColor: #bbb;
    --readonlyHoverBgColor: #eaeaea;
    --tableHeadBgColor: #f4f4f4;
    --tableEvenRowBgColor: #f9f9f9;
    --tableHoverRowBgColor: #f1f1f1;
    --textInvertColor: #fff;
} */

:root {
    --mainColor: hsl(147, 62%, 40%);
    --bgColor: #1b1b1b;
    --bgCardColor: #2a2a2a;
    --errorColor: hsl(0, 62%, 60%);

    --borderrMax: 1rem;
    --borderrMid: .5rem;
    --borderrMin: .2rem;
    --textColor: #e0e0e0;

    --transitionMid: .5s;

    /* Nuevas variables de color */
    --borderColor: #444;
    --inputBgColor: #333;
    --formBgColor: #252525;
    --greyColor: #888;
    --greyLightColor: #555;
    --readonlyHoverColor: #aaa;
    --readonlyHoverBgColor: #3c3c3c;
    --tableHeadBgColor: #2d2d2d;
    --tableEvenRowBgColor: #242424;
    --tableHoverRowBgColor: #3b3b3b;
    --textInvertColor: #fff;
}


*{
    box-sizing: border-box;
    color: inherit;
}

html{
    background-color: var(--bgColor);
    color: var(--textColor);
}
p,h1,h2,h3{
    margin: 0;
}
h1{
    font-size: 2rem;
}
main{
    min-height: 100vh;
}
body,p{
    margin: 0;
    font-family: sans-serif;
}
ion-icon{
    font-size: 1.3rem;
}
form:not(:has(> .btn)) {
    display: grid;
    gap: 1rem;
    width: 100%;
    /* max-width: 800px; */
    margin: 0 auto;
    padding: 20px;
    background-color: var(--formBgColor);
    border-radius: var(--borderrMid);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: var(--transitionMid);
}
form .form-title{
    text-align: center;
    font-size: 1.5rem;
}
form .form-group label {
    display: block;
}

form .form-group input,
form .form-group select,
form .form-group textarea{
    width: 100%;
    padding: 10px;
    border: 1px solid var(--borderColor);
    border-radius: var(--borderrMin);
    font-size: 14px;
    box-sizing: border-box;
    background-color: var(--inputBgColor);
    /* color: var(--textColor); */
    background-size: 12px;
    resize: none;
    font-family: inherit;
}
form .form-group textarea{
    height: 8rem;
}

form .form-group input[readonly],
form .form-group textarea[readonly],
form .form-group select:disabled {
    background-color: transparent;
    border-color: var(--borderColor); 
    color: var(--greyColor); 
    cursor: not-allowed; 
    opacity: 0.7; 
    pointer-events: none;
}

form .form-group input[readonly]:hover,
form .form-group textarea[readonly]:hover,
form .form-group select:disabled {
    border-color: var(--readonlyHoverColor); 
    background-color: var(--readonlyHoverBgColor); 
}

.form-group:has(input[type="submit"]):has(.btn){
    display: flex;
    gap: 1rem;
}
form .form-group input[type="submit"],
form .btn {
    /* display: block; */
    width: 100%;
    /* padding: 10px; */
    background-color: var(--mainColor);
    /* color: var(--textInvertColor); */
    font-size: 16px;
    font-weight: bold;
    border: none;
    border-radius: var(--borderrMin);
    cursor: pointer;
    text-align: center;
}
form .form-group input[type="submit"]:hover {
    background-color: var(--mainColor);
}
form .form-input-error {
    color: var(--errorColor);
    font-size: 12px;
}

form .form-error {
    color: var(--errorColor);
    text-align: center;
    font-size: 14px;
    margin-top: .5rem;
}
.form-group-input{
    position:relative;
}
.form-sugerencias {
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: var(--bgCardColor);
    border: 1px solid #ccc;
    border-radius: 5px;
    max-height: 10rem;
    overflow-y: auto;
    position: absolute;
    top: 100%; 
    left: 0;
    width: 100%;
    z-index: 1000;
}

.form-sugerencias li {
    padding: 10px;
    cursor: pointer;
}
.form-sugerencias li:hover {
    background-color: var(--inputBgColor);
}
.form-sugerencias.hidden{
    height: 0;
    padding: 0;
    margin: 0;
    overflow: hidden;
    pointer-events: none;
    opacity:0;
}

ul{
    margin: 0;
}
table {
    width: 100%;
    border-collapse: collapse;
    font-size: 16px;
    text-align: left;
    border-radius: var(--borderrMid);
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

table th,
table td {
    padding: .3rem .5rem;
    border: 1px solid var(--borderColor);
}

table thead th {
    background-color: var(--tableHeadBgColor);
    font-weight: bold;
}

table tbody tr:nth-child(even) {
    background-color: var(--tableEvenRowBgColor);
}

table tbody tr:hover {
    background-color: var(--tableHoverRowBgColor);
}

table td {
    border-color: var(--borderColor);
    font-size: 1rem;
}
table .acciones{
    display: flex;
    gap: .5rem;
    align-items: center;
}
table .acciones > *{
    color: var(--mainColor);
    cursor: pointer;
}


.btns{
    display: flex;
    gap: .5rem;
    align-items: center;
}
.btns > form{
    height: min-content;
}
.btn{
    display: flex;
    gap: .5rem;
    justify-content: center;
    align-items: center;
    padding: .5rem 1rem;
    border-radius: var(--borderrMin);
    text-align: center;
    background-color: var(--mainColor);
    font-weight: bold;
    border: none;
    font-size: 1rem;
    font-family: inherit;
    text-decoration: none;
    cursor: pointer;
    color: var(--textColor);
    color: var(--textInvertColor);
}
.btn.outline{
    background-color: inherit;
    color: var(--mainColor);
    border: 2px solid var(--mainColor);
}
.btn.circle{
    padding: .2rem .5rem;
    border-radius: 50%;
    aspect-ratio: 1;
}
.btn.red{
    background-color: var(--errorColor);
}
.container{
    padding: 1rem;
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    overflow: auto;
}
.icon{
    width: 1.3rem;
    color: var(--mainColor);
}