/* style.css */

/* --- INPUTS & DESIGN --- */
.m3-input-container { position: relative; }

.m3-input {
    width: 100%;
    height: 3.5rem; /* 56px */
    
    border-radius: 16px !important; 
    
    border: 1px solid;
    border-color: #79747E; 
    
    background-color: transparent !important;
    
    padding-left: 1rem;
    padding-right: 2.5rem; 
    padding-top: 0.5rem;
    font-size: 1rem;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    color: inherit; 
    
    appearance: none; 
    -webkit-appearance: none;
    -moz-appearance: none;
}

/* Options no modo escuro */
.dark option {
    background-color: #202323; 
    color: white;
}

.dark .m3-input {
    border-color: #8da29e;
    color: white;
}

.m3-input:focus {
    outline: none;
    border-color: #006A60; 
    border-width: 2px;
}
.dark .m3-input:focus {
    border-color: #74F8E5;
}

/* --- LABELS --- */
.m3-label {
    position: absolute;
    left: 1rem;
    padding: 0 0.25rem;
    pointer-events: none;
    transition: all 0.2s;
    font-size: 1rem;
    color: #79747E;
    z-index: 10;
    top: 50%;
    transform: translateY(-50%);
}

/* Efeito flutuante */
.m3-input:focus + .m3-label,
.m3-input:not(:placeholder-shown) + .m3-label {
    top: 0 !important;
    transform: translateY(-50%) scale(0.85);
    background-color: #FAFDFA; 
    color: #006A60;
}

.dark .m3-input:focus + .m3-label,
.dark .m3-input:not(:placeholder-shown) + .m3-label {
    background-color: #202323; 
    color: #74F8E5;
}

/* --- ANIMAÇÕES --- */
.fade-in { animation: fadeIn 0.4s ease-in-out; }
@keyframes fadeIn { 
    from { opacity: 0; transform: translateY(10px); } 
    to { opacity: 1; transform: translateY(0); } 
}

/* Animação do Toast */
@keyframes toastSlideIn {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

/* Ripple */
.ripple { position: relative; overflow: hidden; }
.ripple::after {
    content: ""; display: block; position: absolute; width: 100%; height: 100%;
    top: 0; left: 0; pointer-events: none;
    background-image: radial-gradient(circle, #fff 10%, transparent 10.01%);
    background-repeat: no-repeat; background-position: 50%;
    transform: scale(10, 10); opacity: 0; transition: transform .5s, opacity 1s;
}
.ripple:active::after { transform: scale(0, 0); opacity: 0.2; transition: 0s; }

select.m3-input {
    background-image: none !important; 
}