*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:Arial, sans-serif;
}

:root{
    --green:#007a2f;
    --green-2:#009944;
    --green-dark:#005f25;
    --bg:#f5f5f5;
    --text:#1f2937;
    --muted:#6b7280;
    --border:#d1d5db;
    --shadow:0 12px 35px rgba(0,0,0,0.15);
}

html{
    -webkit-text-size-adjust:100%;
    scroll-behavior:smooth;
}

body{
    background:var(--bg);
    color:var(--text);
    overflow-x:hidden;
    min-height:100vh;
}

img{
    max-width:100%;
    height:auto;
}

.navbar{
    background:var(--green);
    padding:20px clamp(16px, 5vw, 60px);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    color:white;
}

.logo{
    display:flex;
    align-items:center;
    gap:15px;
    min-width:0;
}

.logo img{
    width:clamp(52px, 10vw, 70px);
    flex:0 0 auto;
}

.logo h1{
    font-size:clamp(30px, 7vw, 48px);
    line-height:1;
}

.logo p{
    font-size:clamp(11px, 2.8vw, 14px);
    line-height:1.3;
}

nav{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

nav a{
    color:white;
    text-decoration:none;
    margin-left:0;
    font-weight:bold;
}

.nav-btn{
    background:white;
    color:var(--green);
    padding:12px 20px;
    border-radius:8px;
}

.hero,
.dashboard-hero{
    min-height:clamp(260px, 55vw, 500px);
    background:url('../img/road.jpg') center/cover no-repeat;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:32px 16px;
}

.overlay,
.dashboard-overlay{
    background:rgba(0,0,0,0.55);
    padding:clamp(26px, 6vw, 50px);
    border-radius:15px;
    text-align:center;
    color:white;
    max-width:920px;
}

.overlay h2,
.dashboard-overlay h2{
    font-size:clamp(36px, 10vw, 72px);
    line-height:1.05;
    margin-bottom:20px;
}

.overlay p,
.dashboard-overlay p{
    font-size:clamp(18px, 5vw, 32px);
    line-height:1.35;
    margin-bottom:30px;
}

.buttons,
.dashboard-actions{
    display:flex;
    gap:16px;
    justify-content:center;
    flex-wrap:wrap;
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:14px 24px;
    border-radius:10px;
    text-decoration:none;
    font-size:clamp(16px, 4vw, 22px);
    font-weight:bold;
    border:none;
    cursor:pointer;
    min-height:50px;
    text-align:center;
}

.green{
    background:var(--green-2);
    color:white;
}

.white{
    background:white;
    color:var(--green);
}

.cards{
    width:1200px;
    max-width:95%;
    margin:50px auto;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:25px;
}

.card,
.dashboard-card{
    background:white;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 4px 15px rgba(0,0,0,0.15);
}

.card img{
    width:100%;
    height:250px;
    object-fit:cover;
}

.card h3{
    padding:20px 20px 10px;
    color:var(--green);
    font-size:clamp(24px, 5vw, 30px);
}

.card p{
    padding:0 20px 30px;
    font-size:18px;
    line-height:1.6;
}

footer{
    background:var(--green);
    color:white;
    text-align:center;
    padding:25px 16px;
    margin-top:40px;
    font-size:clamp(14px, 3.5vw, 18px);
    line-height:1.5;
}

/* LOGIN */
.login-page{
    min-height:100vh;
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#f4f6f7;
}

.login-left{
    background:linear-gradient(rgba(0,122,47,0.85), rgba(0,90,35,0.9)), url('../img/road.jpg') center/cover no-repeat;
    color:white;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:40px 20px;
}

.login-left img{
    width:clamp(90px, 25vw, 150px);
    margin-bottom:20px;
}

.login-left h1{
    font-size:clamp(38px, 10vw, 58px);
    margin:0;
}

.login-left p{
    font-size:clamp(18px, 5vw, 24px);
    margin-top:10px;
}

.login-card{
    width:430px;
    max-width:90%;
    margin:auto;
    background:white;
    padding:clamp(24px, 6vw, 45px);
    border-radius:18px;
    box-shadow:var(--shadow);
}

.login-card h2{
    color:var(--green);
    font-size:clamp(28px, 7vw, 34px);
    margin-bottom:8px;
}

.login-subtitle{
    color:var(--muted);
    margin-bottom:25px;
    line-height:1.45;
}

.login-card label{
    display:block;
    font-weight:bold;
    margin-bottom:8px;
    color:var(--text);
}

.login-card input,
.login-card button{
    width:100%;
}

.login-card input{
    padding:14px;
    margin-bottom:18px;
    border:1px solid var(--border);
    border-radius:10px;
    font-size:16px;
}

.login-card input:focus{
    outline:none;
    border-color:var(--green);
    box-shadow:0 0 0 4px rgba(0,122,47,0.15);
}

.erro{
    background:#fee2e2;
    color:#991b1b;
    padding:13px;
    border-radius:8px;
    margin-bottom:20px;
    border:1px solid #fca5a5;
}

.register-link{
    display:block;
    margin-top:22px;
    text-align:center;
    color:var(--green);
    text-decoration:none;
    font-weight:bold;
}

.register-link:hover{
    text-decoration:underline;
}

/* DASHBOARD */
.dashboard-container{
    width:1100px;
    max-width:95%;
    margin:-60px auto 40px;
    position:relative;
    z-index:5;
}

.dashboard-card{
    padding:clamp(22px, 5vw, 36px);
}

.dashboard-card-header{
    text-align:center;
    margin-bottom:26px;
}

.dashboard-card-header h2{
    color:var(--green);
    font-size:clamp(26px, 7vw, 36px);
    line-height:1.15;
    margin-bottom:8px;
    overflow-wrap:anywhere;
}

.dashboard-card-header p{
    color:var(--muted);
    font-size:clamp(15px, 3.5vw, 18px);
    line-height:1.45;
}

.student-info{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin-bottom:26px;
}

.info-box{
    border:1px solid #e5e7eb;
    border-radius:12px;
    padding:16px;
    background:#fafafa;
    min-width:0;
}

.info-box span{
    display:block;
    color:var(--muted);
    font-size:14px;
    margin-bottom:6px;
}

.info-box strong{
    display:block;
    color:var(--text);
    font-size:17px;
    overflow-wrap:anywhere;
}

.dashboard-actions .btn{
    flex:1 1 220px;
}

/* RESPONSIVE */
@media(max-width:900px){
    .cards{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .login-page{
        grid-template-columns:1fr;
    }

    .login-left{
        min-height:260px;
    }

    .login-card{
        margin:35px auto;
    }
}

@media(max-width:768px){
    .navbar{
        padding:14px 16px;
        align-items:flex-start;
    }

    .logo{
        gap:10px;
    }

    nav{
        align-self:center;
    }

    .hero,
    .dashboard-hero{
        min-height:230px;
    }

    .overlay p,
    .dashboard-overlay p{
        margin-bottom:20px;
    }

    .buttons,
    .dashboard-actions{
        flex-direction:column;
        align-items:stretch;
    }

    .btn{
        width:100%;
    }

    .cards{
        grid-template-columns:1fr;
        margin:32px auto;
    }

    .dashboard-container{
        max-width:100%;
        padding:0 14px;
        margin:-35px auto 28px;
    }

    .student-info{
        grid-template-columns:1fr;
    }
}

@media(max-width:480px){
    .navbar{
        flex-direction:column;
    }

    nav{
        width:100%;
        justify-content:flex-start;
    }

    .logo p{
        max-width:230px;
    }

    .overlay,
    .dashboard-overlay{
        width:100%;
        padding:22px 16px;
    }

    .login-card{
        max-width:calc(100% - 28px);
        border-radius:14px;
    }

    .card img{
        height:200px;
    }
}
