:root{
    --u107-green:#00FF88;
    --u107-dark:#030712;
    --u107-navy:#0A1A3F;
    --u107-bg:#eef3f8;
    --u107-line:#d6deea;
}
html{
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
    scroll-behavior:smooth;
}
body{
    min-width:0 !important;
    overflow-x:hidden !important;
}
*,*::before,*::after{
    box-sizing:border-box !important;
}
img,video,canvas,svg,iframe{
    max-width:100% !important;
}
.container,.wrap,.wrapper,.content,.main,main,section,article{
    max-width:100% !important;
}
.card,.box,.panel,.modal,.form-card,.login-card,.admin-card,.aluno-card,[class*="card"],[class*="box"],[class*="panel"]{
    max-width:100% !important;
}
input,select,textarea,button{
    max-width:100% !important;
    font-size:16px !important;
}
input,select,textarea{
    min-height:42px;
}
textarea{
    resize:vertical;
}
button,.btn,a.btn,[class*="btn"],input[type="submit"]{
    white-space:normal !important;
    line-height:1.25 !important;
    text-align:center !important;
}
table{
    width:100% !important;
    max-width:100% !important;
    border-collapse:collapse;
}
.table-responsive,.table-wrap,.tabela-wrap,.listagem,.lista,.admin-table,.dataTables_wrapper,.u107-table-wrap{
    width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
}
table{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
header,.top,.navbar,.menu,.admin-top,.aluno-top,.topbar,nav{
    max-width:100% !important;
}
nav a,.menu a,.top a,.topbar a,header a{
    white-space:normal !important;
}
.modal,.modal-content,.popup,.overlay-card,.dialog,[role="dialog"]{
    max-width:calc(100vw - 24px) !important;
    max-height:calc(100vh - 24px) !important;
    overflow:auto !important;
}
@media(max-width:1200px){
    .wrap,.container,main{
        width:min(96vw, 1100px) !important;
    }
    .grid,.cards,.planos,.objectives,.info-section{
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    }
}
@media(max-width:900px){
    body{font-size:15px !important;}
    h1{font-size:clamp(26px, 7vw, 42px) !important;line-height:1.08 !important;}
    h2{font-size:clamp(22px, 5.5vw, 32px) !important;line-height:1.12 !important;}
    h3{font-size:clamp(18px, 4.8vw, 24px) !important;}
    .grid,.cards,.planos,.objectives,.info-section,.dashboard-grid,.stats-grid,.form-grid,form[style*="grid"],div[style*="grid-template-columns"]{
        grid-template-columns:1fr !important;
    }
    .hero,.banner,.card,.box,.panel,[class*="card"],[class*="panel"]{
        border-radius:18px !important;
    }
    .hero,.banner{
        padding:22px !important;
    }
    header,.top,.navbar,.topbar,.admin-top,.aluno-top{
        flex-wrap:wrap !important;
        gap:8px !important;
    }
    .nav,nav,.menu,.topbar .nav,header nav{
        flex-wrap:wrap !important;
        justify-content:flex-start !important;
        gap:7px !important;
    }
}
@media(max-width:640px){
    body{
        font-size:14px !important;
        line-height:1.45 !important;
    }
    .wrap,.container,main,.content,.main{
        width:96vw !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }
    header,.top,.navbar,.topbar,.admin-top,.aluno-top{
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        padding:10px !important;
    }
    .logo,.brand,.titulo,.title{
        width:100% !important;
        text-align:left !important;
        font-size:16px !important;
        line-height:1.25 !important;
    }
    nav,.nav,.menu{
        width:100% !important;
        display:flex !important;
        flex-wrap:wrap !important;
        gap:6px !important;
    }
    nav a,.nav a,.menu a,header a,.top a,.topbar a{
        flex:1 1 auto !important;
        min-width:calc(50% - 6px) !important;
        padding:10px 8px !important;
        font-size:13px !important;
        text-align:center !important;
        border-radius:10px !important;
    }
    .actions,.button-row,.botoes,.admin-actions{
        display:flex !important;
        flex-wrap:wrap !important;
        gap:8px !important;
    }
    .actions a,.actions button,.button-row a,.button-row button,.botoes a,.botoes button{
        flex:1 1 100% !important;
    }
    input,select,textarea,button,.btn,a.btn{
        width:100%;
    }
    input[type="checkbox"],input[type="radio"]{
        width:auto !important;
        min-height:auto !important;
    }
    .card,.box,.panel,.hero,.banner,[class*="card"],[class*="panel"]{
        padding:14px !important;
        border-radius:16px !important;
    }
    form,.form,.form-grid{
        max-width:100% !important;
    }
    label{
        display:block;
        margin-bottom:6px;
    }
    table{
        font-size:12px !important;
    }
    th,td{
        padding:8px !important;
        vertical-align:top !important;
    }
    .exercicio-card,.exercise-card,[class*="exercicio"],[class*="exercise"]{
        max-width:100% !important;
    }
    .exercicio-card img,.exercise-card img,[class*="exercicio"] img,[class*="exercise"] img{
        max-height:220px !important;
        object-fit:contain !important;
    }
    #update103PlanosSide,#update102PlanosSide{
        left:8px !important;
        right:8px !important;
        top:auto !important;
        bottom:8px !important;
        width:auto !important;
        max-height:72vh !important;
        border-radius:18px !important;
    }
    .grid,.cards,.planos,.objectives,.info-section{
        grid-template-columns:1fr !important;
    }
}
@media(max-width:420px){
    body{font-size:13px !important;}
    h1{font-size:28px !important;}
    h2{font-size:22px !important;}
    nav a,.nav a,.menu a,header a,.top a{
        min-width:100% !important;
    }
    .price,.valor,[class*="price"],[class*="valor"]{
        font-size:20px !important;
    }
    .hero,.banner{
        padding:16px !important;
    }
}
@media print{
    body{
        background:#fff !important;
        color:#000 !important;
    }
    header,nav,.top,.topbar,.menu,.no-print{
        display:none !important;
    }
    table{
        display:table !important;
        overflow:visible !important;
    }
}