.dashboard-page{max-width:1500px;margin:auto}.main{background:linear-gradient(180deg,#f8fbff 0,#f3f7fc 100%)}
.home-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:25px;min-height:250px;animation:dashRise .7s cubic-bezier(.2,.8,.2,1) both}.home-hero:before,.home-hero:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.home-hero:before{width:300px;height:300px;right:22%;top:-190px;background:#ffffff0d;animation:heroFloat 7s ease-in-out infinite}.home-hero:after{width:170px;height:170px;left:42%;bottom:-120px;border:1px solid #ffffff18;animation:heroFloat 5s ease-in-out infinite reverse}.hero-orbit{position:absolute;border:1px solid #ffffff16;border-radius:50%;pointer-events:none}.orbit-one{width:230px;height:230px;right:-70px;top:18px;animation:orbitSpin 16s linear infinite}.orbit-two{width:105px;height:105px;right:30%;bottom:-55px;border-style:dashed;animation:orbitSpin 10s linear infinite reverse}.home-hero .hero-content,.home-hero .hero-profile{position:relative;z-index:2;align-self:center}.home-hero .hero-content{animation:heroContent .75s .1s cubic-bezier(.2,.8,.2,1) both}.home-hero .hero-label{display:inline-flex;align-items:center;gap:8px;color:#ffe37b;text-transform:uppercase;font-size:10px;font-weight:950;letter-spacing:.15em}.home-hero .hero-label:before{content:"";width:7px;height:7px;border-radius:50%;background:#f7c928;box-shadow:0 0 0 5px #f7c92818;animation:labelPulse 1.8s ease-in-out infinite}.home-hero h2{font-size:35px;line-height:1.05;letter-spacing:-.045em;margin:13px 0 9px;color:#fff}.home-hero p{font-size:12px;color:#dcecff;line-height:1.65;margin:0}.hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:19px}.hero-meta .pill{margin-top:0;animation:pillIn .5s .4s both}.hero-meta .pill:nth-child(2){animation-delay:.48s}.hero-meta .pill:nth-child(3){animation-delay:.56s}.hero-profile{width:min(340px,100%);justify-self:end;background:#ffffff12;border:1px solid #ffffff22;border-radius:20px;padding:19px;backdrop-filter:blur(14px);box-shadow:0 16px 40px #001d4026;animation:profileIn .75s .18s cubic-bezier(.2,.8,.2,1) both;transition:transform .28s ease,box-shadow .28s ease}.hero-profile:hover{transform:translateY(-5px) scale(1.01);box-shadow:0 24px 55px #001d4038}.hero-profile-top{display:flex;justify-content:space-between;align-items:center;color:#cfe2ff;font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.hero-status{color:#ffe37b;animation:statusBlink 2.2s ease-in-out infinite}.hero-profile-main{display:flex;align-items:center;gap:13px;margin-top:16px}.hero-avatar{width:64px;height:64px;border-radius:17px;background:#fff;color:#0755a5;display:grid;place-items:center;overflow:hidden;font-weight:950;box-shadow:0 0 0 5px #ffffff0b;animation:avatarPop .8s .45s cubic-bezier(.2,.8,.2,1) both}.hero-avatar img{width:100%;height:100%;object-fit:cover}.hero-profile h3{margin:0;color:#fff;font-size:17px}.hero-profile p{margin:4px 0 0;color:#cfe2ff;font-size:10px}.hero-profile-foot{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:17px;padding-top:13px;border-top:1px solid #ffffff18}.hero-profile-foot span{font-size:9px;color:#c7dcf5}.hero-profile-foot b{display:block;color:#fff;font-size:10px;margin-top:3px}
.dashboard-loading{padding:11px 14px;margin-top:13px;border:1px solid #e3ebf5;background:#fff;border-radius:12px;color:#7890aa;font-size:10px;font-weight:800;box-shadow:0 6px 18px #163d6908;animation:loadingShimmer 1.5s ease-in-out infinite}.loading-dot{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#f7c928;box-shadow:0 0 0 0 #f7c92855;animation:loadPulse 1.4s infinite}.dashboard-error{padding:20px;margin-top:14px;background:#fff;border:1px solid #f1d7d7;border-radius:16px;color:#7d3434;animation:dashRise .5s ease both}.dashboard-error p{font-size:11px;margin:7px 0 13px}
.dash-grid{gap:14px;margin-top:15px}.dash-stat{position:relative;overflow:hidden;animation:dashRise .55s cubic-bezier(.2,.8,.2,1) both;transition:transform .28s ease,box-shadow .28s ease}.dash-stat:before{content:"";position:absolute;left:-45px;top:-55px;width:110px;height:110px;border-radius:50%;background:#0755a50b;transition:transform .5s ease}.dash-stat:after{content:"";position:absolute;width:100px;height:100px;border:1px solid #0755a514;border-radius:50%;right:-40px;bottom:-50px;transition:transform .5s ease}.dash-stat:hover{transform:translateY(-6px);box-shadow:0 20px 45px rgba(22,61,105,.12)}.dash-stat:hover:before{transform:scale(1.5)}.dash-stat:hover:after{transform:translate(-9px,-8px) scale(1.08)}.dash-stat h3{transition:transform .35s ease;position:relative;z-index:1}.dash-stat:hover h3{transform:scale(1.06)}.dash-stat:nth-child(1){animation-delay:.08s}.dash-stat:nth-child(2){animation-delay:.15s}.dash-stat:nth-child(3){animation-delay:.22s}.dash-stat:nth-child(4){animation-delay:.29s}.stat-glow{position:absolute;width:75px;height:75px;border-radius:50%;right:-24px;top:28px;background:#f7c9280a;filter:blur(2px);animation:glowFloat 5s ease-in-out infinite;pointer-events:none}.fee-stat .stat-glow{animation-delay:.8s}
.pulse-card{position:relative;overflow:hidden;display:grid;grid-template-columns:1.1fr 1.6fr auto;align-items:center;gap:25px;margin-top:14px;padding:22px 24px;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 10px 35px rgba(22,61,105,.06);animation:dashRise .65s .32s cubic-bezier(.2,.8,.2,1) both}.pulse-copy h2{margin:4px 0 6px;color:var(--blue-dark);font-size:19px}.pulse-copy p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.pulse-metrics{display:grid;gap:10px}.pulse-metric>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:10px;font-weight:850;color:#6e8199;margin-bottom:5px}.pulse-metric b{color:var(--blue-dark)}.pulse-metric .progress{height:7px}.pulse-metric .progress i{width:0;transition:width 1s cubic-bezier(.2,.8,.2,1)}.pulse-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:var(--yellow-soft);color:#c28f00;font-size:23px;animation:markFloat 3s ease-in-out infinite}.dash-columns,.lower-grid{gap:14px;margin-top:14px}.dash-card{animation:dashRise .6s cubic-bezier(.2,.8,.2,1) both;transition:transform .28s ease,box-shadow .28s ease}.dash-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px #163d6910}.dash-columns .dash-card:nth-child(1){animation-delay:.34s}.dash-columns .dash-card:nth-child(2){animation-delay:.4s}.lower-grid .dash-card:nth-child(1){animation-delay:.46s}.lower-grid .dash-card:nth-child(2){animation-delay:.52s}.dash-head{position:relative}.dash-head:after{content:"";position:absolute;left:0;bottom:-9px;width:34px;height:2px;background:linear-gradient(90deg,#0755a5,#f7c928);transform-origin:left;animation:lineGrow .7s .7s both}.dash-row,.notice-item{animation:dashSlide .42s cubic-bezier(.2,.8,.2,1) both;transition:background .2s ease,transform .2s ease}.dash-row:hover,.notice-item:hover{transform:translateX(4px);background:#f7faff;border-radius:10px}.dash-row:nth-child(2),.notice-item:nth-child(2){animation-delay:.08s}.dash-row:nth-child(3),.notice-item:nth-child(3){animation-delay:.16s}.dash-row:nth-child(4),.notice-item:nth-child(4){animation-delay:.24s}.grade-badge{transition:transform .25s ease,box-shadow .25s ease}.dash-row:hover .grade-badge{transform:scale(1.12) rotate(-2deg);box-shadow:0 6px 16px #0755a51a}.notice-icon{animation:noticePulse 2s ease-in-out infinite}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick-grid a{display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:11px 12px;border:1px solid #e2ebf5;background:#f7faff;border-radius:14px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease}.quick-grid a span{grid-row:1/3;width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#fff;color:var(--blue);font-weight:950}.quick-grid a b{font-size:11px;color:var(--blue-dark)}.quick-grid a small{font-size:9px;color:var(--muted)}.quick-grid a:hover{transform:translateY(-4px);box-shadow:0 12px 28px #163d6912;border-color:#9fc1e4;background:#f8fbff}.attendance-box div{transition:transform .22s ease,box-shadow .22s ease}.attendance-box div:hover{transform:translateY(-4px);box-shadow:0 12px 28px #0755a514}.attendance-box b{display:inline-block;animation:numberPop .6s .65s both}.footer{animation:dashRise .5s .6s both}
@keyframes dashRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes dashSlide{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}@keyframes heroContent{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}@keyframes profileIn{from{opacity:0;transform:translateX(22px) scale(.96)}to{opacity:1;transform:none}}@keyframes avatarPop{from{opacity:0;transform:scale(.7) rotate(-8deg)}to{opacity:1;transform:none}}@keyframes heroFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(18px,12px,0)}}@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes glowFloat{50%{transform:translate(-12px,12px) scale(1.18);opacity:.65}}@keyframes labelPulse{50%{box-shadow:0 0 0 8px #f7c92812}}@keyframes pillIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes statusBlink{50%{opacity:.62}}@keyframes lineGrow{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes noticePulse{50%{transform:scale(1.12)}}@keyframes numberPop{from{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:none}}@keyframes loadingShimmer{50%{box-shadow:0 6px 25px #0755a514}}@keyframes loadPulse{50%{box-shadow:0 0 0 6px #f7c92812}}@keyframes markFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(5deg)}}.page-loader-ready{opacity:0!important;visibility:hidden!important;pointer-events:none!important}.page-loader-ready .loader-ring{animation:none}
@media(max-width:1050px){.home-hero{grid-template-columns:1fr}.hero-profile{justify-self:start;width:100%;max-width:420px}.home-hero h2{font-size:32px}.pulse-card{grid-template-columns:1fr}.pulse-mark{display:none}}@media(max-width:700px){.home-hero{min-height:0;padding:21px 18px;border-radius:20px}.home-hero h2{font-size:27px}.home-hero p{font-size:11px}.hero-profile{display:none}.dash-grid{grid-template-columns:1fr 1fr;gap:9px}.dash-stat{min-height:116px;padding:14px}.dash-stat h3{font-size:22px}.dash-stat p{font-size:9px}.pulse-card{padding:18px;margin-top:10px}.pulse-copy h2{font-size:17px}.quick-grid{grid-template-columns:1fr 1fr}.top h1{font-size:24px}.top p{font-size:11px}}@media(max-width:390px){.dash-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}.pulse-card{padding:16px}}@media(prefers-reduced-motion:reduce){.dash-stat,.dash-card,.dash-row,.notice-item,.home-hero,.hero-profile,.hero-content,.hero-avatar,.hero-meta .pill,.footer,.pulse-card,.pulse-mark,.hero-orbit,.stat-glow{animation:none!important;transition:none!important}.pulse-metric .progress i{transition:none!important}}
