:root{
  --app-primary:#5b5bf7;
  --app-primary-dark:#4343d6;
  --app-accent:#06b6d4;
  --app-ink:#0f172a;
  --app-muted:#64748b;
  --app-bg:#f6f8fc;
  --app-card:#ffffff;
}
html,body{background:var(--app-bg);color:var(--app-ink);min-height:100%;}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;}
.app-navbar{background:linear-gradient(120deg,#111827,#312e81 65%,#155e75);box-shadow:0 8px 24px rgba(15,23,42,.14)}
.brand-mark{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:linear-gradient(135deg,var(--app-primary),var(--app-accent));box-shadow:0 4px 14px rgba(91,91,247,.35)}
.app-footer{border-top:1px solid #e8edf5;background:#fff}
.card{border-radius:18px}.btn{border-radius:12px}.form-control,.form-select{border-radius:12px;border-color:#dbe2ea}.form-control:focus,.form-select:focus{border-color:#8b8cf8;box-shadow:0 0 0 .2rem rgba(91,91,247,.12)}
.btn-primary{background:var(--app-primary);border-color:var(--app-primary)}.btn-primary:hover{background:var(--app-primary-dark);border-color:var(--app-primary-dark)}
.stat-card{overflow:hidden}.stat-icon{width:46px;height:46px;border-radius:14px;background:rgba(91,91,247,.10);color:var(--app-primary);display:flex;align-items:center;justify-content:center;font-size:1.25rem}
.stage-card{position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.stage-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(15,23,42,.10)!important}.stage-number{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:13px;background:linear-gradient(135deg,var(--app-primary),var(--app-accent));color:#fff;font-weight:800}
.progress{height:10px;border-radius:20px;background:#e9edf6}.progress-bar{background:linear-gradient(90deg,var(--app-primary),var(--app-accent))}
.section-card{border:0;box-shadow:0 7px 24px rgba(15,23,42,.06)}.section-card .card-header{background:transparent;border-bottom:1px solid #edf1f6;padding:1rem 1.25rem;font-weight:700}
.badge-soft-primary{background:rgba(91,91,247,.11);color:#4848d8}.badge-soft-info{background:rgba(6,182,212,.12);color:#0e7490}.badge-soft-warning{background:rgba(245,158,11,.14);color:#92400e}.badge-soft-success{background:rgba(16,185,129,.13);color:#047857}.badge-soft-secondary{background:#eef2f7;color:#475569}
.login-shell{min-height:calc(100vh - 82px);display:grid;place-items:center}.login-card{max-width:980px;width:100%;overflow:hidden;border:0;box-shadow:0 25px 70px rgba(15,23,42,.15)}.login-hero{background:radial-gradient(circle at top right,rgba(6,182,212,.42),transparent 38%),linear-gradient(145deg,#111827,#312e81);color:#fff;min-height:520px}.login-hero .display-6{line-height:1.1}
.table>thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;border-bottom-width:1px}.table td{vertical-align:middle}.sticky-eval{position:sticky;top:94px}.rubric-level{border:1px solid #e3e8f0;border-radius:12px;padding:.8rem}.rubric-level input{transform:scale(1.15)}
.timeline{position:relative;padding-left:28px}.timeline:before{content:"";position:absolute;left:9px;top:4px;bottom:4px;width:2px;background:#dfe5ef}.timeline-item{position:relative;padding-bottom:1rem}.timeline-item:before{content:"";position:absolute;left:-23px;top:.35rem;width:10px;height:10px;border-radius:50%;background:var(--app-primary);box-shadow:0 0 0 4px #eef0ff}
.material-body h2,.material-body h3{margin-top:1.5rem}.material-body p,.material-body li{line-height:1.7}.material-body blockquote{border-left:4px solid var(--app-primary);padding:.8rem 1rem;background:#f4f4ff;border-radius:0 12px 12px 0}
@media(max-width:991px){.sticky-eval{position:static}.login-hero{min-height:auto}.navbar-collapse{padding-top:1rem}}
