/* ============================================================
   EduNotas RC2 — capa visual consolidada
   No modifica permisos, consultas, sesiones ni estructura BD.
   ============================================================ */
:root{
  --rc2-navy:#071d49;
  --rc2-blue:#0b5dd7;
  --rc2-cyan:#18c8f3;
  --rc2-bg:#f3f7fc;
  --rc2-card:#fff;
  --rc2-line:#dce6f2;
  --rc2-muted:#65758b;
  --rc2-radius:18px;
  --rc2-shadow:0 12px 34px rgba(7,29,73,.08);
}
html{scroll-behavior:smooth}
body{background:var(--rc2-bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{max-width:100%}
button,a,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid rgba(24,200,243,.42)!important;outline-offset:2px}

/* Topbar y estructura */
.topbar-g{min-height:64px!important;box-shadow:0 1px 0 rgba(7,29,73,.08),0 8px 24px rgba(7,29,73,.05)!important}
.app-shell{padding-top:0!important}
.main,.main-content,.content-area{min-width:0}
.main{background:var(--rc2-bg)!important}
.page-container,.dashboard-wrap,.edn-page,.content-wrapper{width:min(100%,1540px);margin-inline:auto}

/* Sidebar */
.sidebar{border-right:1px solid rgba(220,230,242,.9)!important;box-shadow:7px 0 24px rgba(7,29,73,.045)!important}
.sidebar a,.sidebar button{transition:background-color .18s ease,color .18s ease,transform .18s ease,border-color .18s ease}
.sidebar a:hover{transform:translateX(2px)}
.sidebar .active,.sidebar a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--rc2-cyan)}
.sidebar::-webkit-scrollbar{width:0;height:0}
.sidebar{scrollbar-width:none}

/* Tarjetas, tablas y formularios */
.edn-card,.card,.panel,.stat-card,.kpi-card,.dashboard-card{border-color:var(--rc2-line)!important;border-radius:var(--rc2-radius)!important;box-shadow:var(--rc2-shadow)!important}
.edn-card:hover,.stat-card:hover,.kpi-card:hover{box-shadow:0 16px 42px rgba(7,29,73,.11)!important}
table{border-collapse:separate;border-spacing:0}
.table-responsive,.table-wrap,.data-table-wrap{overflow:auto;border-radius:16px;-webkit-overflow-scrolling:touch}
thead th{position:sticky;top:0;z-index:2;background:#f7faff!important;white-space:nowrap}
tbody tr{transition:background-color .15s ease}
tbody tr:hover{background:rgba(11,93,215,.035)}
input,select,textarea{border-color:#cfdbea!important;border-radius:12px!important;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
input:focus,select:focus,textarea:focus{border-color:var(--rc2-blue)!important;box-shadow:0 0 0 4px rgba(11,93,215,.10)!important}
.btn,.button,button[type="submit"]{border-radius:12px;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.btn:hover,.button:hover,button[type="submit"]:hover{transform:translateY(-1px)}

/* Dashboard */
.dashboard-hero,.hero-dashboard,.welcome-card{border-radius:22px!important;overflow:hidden}
.kpi-grid,.stats-grid{align-items:stretch}
.kpi-card,.stat-card{height:100%}
.dashboard-grid>*{min-width:0}
.progress,.progress-bar-wrap{overflow:hidden;border-radius:999px}

/* Estados y mensajes */
.alert,.notice,.flash-message{border-radius:14px!important}
.badge,.status,.pill{border-radius:999px!important}
.empty-state{border:1px dashed #c8d6e8;border-radius:18px;background:#fbfdff}

/* Login */
.login-page{isolation:isolate}
.login-card{box-shadow:0 30px 80px rgba(7,29,73,.22)!important}
.login-card input{min-height:48px}
.login-card button[type="submit"]{min-height:50px}

/* Landing */
body.landing-page .topbar,.topbar{transition:box-shadow .2s ease,background-color .2s ease}
.pricing-card,.cap,.card{backface-visibility:hidden}

/* Responsive */
@media (max-width:1100px){
  .dashboard-grid,.director-dashboard-grid,.doc-dashboard-grid{grid-template-columns:1fr!important}
  .page-container,.dashboard-wrap,.edn-page,.content-wrapper{max-width:100%}
}
@media (max-width:820px){
  .topbar-g{min-height:58px!important}
  .main,.app-shell:not(.docente-shell)>.main{margin-left:0!important;width:100%!important}
  .main{padding-left:12px!important;padding-right:12px!important}
  .kpi-grid,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-hero,.hero-dashboard,.welcome-card{padding:20px!important}
  .table-responsive,.table-wrap,.data-table-wrap{margin-inline:-4px}
}
@media (max-width:560px){
  .kpi-grid,.stats-grid{grid-template-columns:1fr!important}
  .main{padding-left:9px!important;padding-right:9px!important}
  .edn-card,.card,.panel,.stat-card,.kpi-card,.dashboard-card{border-radius:15px!important}
  .dashboard-hero,.hero-dashboard,.welcome-card{border-radius:17px!important;padding:17px!important}
  .btn,.button,button[type="submit"]{min-height:44px}
  .page-title,h1{font-size:clamp(1.45rem,7vw,2rem)!important}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@media print{
  .sidebar,.topbar-g,.no-print{display:none!important}
  .main,.app-shell:not(.docente-shell)>.main{margin:0!important;width:100%!important;padding:0!important}
  .edn-card,.card,.panel{box-shadow:none!important;border-color:#bbb!important}
}
