*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f7fb;color:#0f172a}
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#06213d,#001827);padding:20px}
.login-card{width:100%;max-width:430px;background:white;border-radius:26px;padding:34px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.login-card h1{margin:0;font-size:34px}
.login-card p{color:#64748b}
label{display:block;margin-top:16px;font-weight:800}
input{width:100%;margin-top:8px;padding:13px;border:1px solid #cbd5e1;border-radius:12px;font-size:15px}
button{width:100%;margin-top:22px;padding:14px;border:0;border-radius:12px;background:#0b5ed7;color:white;font-weight:900;font-size:16px;cursor:pointer}
.alert-error{background:#fee2e2;color:#991b1b;padding:12px;border-radius:12px;margin:14px 0;font-weight:800}
.layout{display:flex;min-height:100vh}
.sidebar{width:270px;background:#001827;color:white;padding:24px 20px;display:flex;flex-direction:column}
.brand{padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.16);margin-bottom:20px}
.brand strong{font-size:25px;display:block}
.brand span{font-size:13px;color:#dbeafe}
.nav{display:grid;gap:10px}
.nav a{color:#dbeafe;text-decoration:none;padding:13px 14px;border-radius:12px;font-weight:900}
.nav a:hover,.nav a.active{background:rgba(37,99,235,.45);color:white}
.user-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.16);padding-top:18px;color:#dbeafe}
.main{flex:1;padding:30px}
.card{background:white;border-radius:20px;padding:24px;box-shadow:0 8px 28px rgba(15,23,42,.07);margin-top:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.module-card{text-decoration:none;color:#0f172a;background:white;border-radius:22px;padding:28px;box-shadow:0 8px 28px rgba(15,23,42,.07);display:block}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);background:white;border-radius:18px;overflow:hidden;margin-top:18px}
.tabs a{text-align:center;padding:20px;text-decoration:none;color:#64748b;font-weight:900;border-bottom:4px solid transparent}
.tabs a.active{color:#0b5ed7;border-bottom-color:#0b5ed7}
@media(max-width:900px){.layout{display:block}.sidebar{width:100%}.main{padding:18px}.tabs{grid-template-columns:1fr}}
