:root{--brand-navy:#001789;--brand-navy-deep:#040d3a;--brand-navy-hover:#071e9e;--brand-navy-light:#0d2bb5;--brand-blue-accent:#2563eb;--brand-blue-subtle:#eff4ff;--brand-blue-border:#dbeafe;--accent-emerald:#10b981;--accent-emerald-subtle:#ecfdf5;--accent-amber:#f59e0b;--accent-amber-subtle:#fffbeb;--accent-rose:#ef4444;--accent-purple:#8b5cf6;--bg-page:#f1f5f9;--bg-card:#fff;--border-card:#cbd5e1;--text-main:#0f172a;--text-body:#334155;--text-muted:#64748b;--text-light:#94a3b8;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--shadow-sm:0 1px 3px #0017890a;--shadow-md:0 4px 14px #00178914;--shadow-lg:0 12px 28px #0017891f;--shadow-xl:0 20px 40px #0017892e;--font-family:"Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading:"Outfit", "Plus Jakarta Sans", system-ui, sans-serif;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-spring:.4s cubic-bezier(.175, .885, .32, 1.275)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-size:16px}body{font-family:var(--font-family);background-color:var(--bg-page);color:var(--text-body);touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:100vh;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-main);letter-spacing:-.02em;font-weight:700}a{color:var(--brand-blue-accent);transition:color var(--transition-normal);touch-action:manipulation;-webkit-tap-highlight-color:transparent;text-decoration:none}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;font-family:inherit}input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-family:inherit;font-size:.95rem}button:active:not(:disabled),.btn-card-primary:active,.btn-card-secondary:active,.hero-action-btn:active,.tab-btn:active,.filter-chip:active,.profile-pill:active,.document-link-btn:active,.view-notes-btn:active,.btn-action-primary:active{transition:transform 60ms cubic-bezier(0,0,.2,1);transform:scale(.97)}.edstaq-app{flex-direction:column;min-height:100vh;display:flex;position:relative}.main-content{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.edstaq-navbar{z-index:100;-webkit-backdrop-filter:blur(16px);transition:all var(--transition-normal);background:#ffffffd1;border-bottom:1px solid #e2e8f0cc;position:sticky;top:0;box-shadow:0 4px 20px #00178908}.navbar-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:1240px;margin:0 auto;padding:.75rem 1.25rem;display:flex}.brand-section{align-items:center;gap:.75rem;display:flex}.brand-logo-link{align-items:center;gap:.75rem;text-decoration:none;display:flex}.brand-logo-img{object-fit:cover;border:1px solid #00178914;border-radius:10px;width:38px;height:38px;box-shadow:0 2px 8px #0017891f}.brand-portal-tag{background:var(--brand-blue-subtle);color:var(--brand-navy);border-radius:var(--radius-full);border:1px solid var(--brand-blue-border);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.brand-portal-tag .dot{background:var(--brand-navy);border-radius:50%;width:6px;height:6px}.nav-center-menu{border-radius:var(--radius-full);background:#f1f5f9;border:1px solid #e2e8f0e6;align-items:center;padding:.3rem;display:flex}.nav-tab-btn{color:var(--text-muted);border-radius:var(--radius-full);transition:all var(--transition-normal);white-space:nowrap;align-items:center;gap:.45rem;padding:.5rem 1.15rem;font-size:.88rem;font-weight:600;display:inline-flex}.nav-tab-btn:hover{color:var(--brand-navy)}.nav-tab-btn.active{background:var(--bg-card);color:var(--brand-navy);font-weight:700;box-shadow:0 2px 8px #0017891a}.mobile-bottom-nav{display:none}.nav-actions-section{align-items:center;gap:.75rem;display:flex}.mode-badge{border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.78rem;font-weight:600;display:inline-flex}.mode-badge.live{background:var(--accent-emerald-subtle);color:#065f46;border:1px solid #10b9814d}.mode-badge.demo{color:var(--text-muted);background:#f1f5f9;border:1px solid #e2e8f0}.mode-badge .pulse-dot{background:currentColor;border-radius:50%;width:7px;height:7px;animation:2s infinite pulseBadge}.nav-action-icon-btn{background:var(--bg-card);border:1px solid var(--border-card);width:40px;height:40px;color:var(--text-body);transition:all var(--transition-normal);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.nav-action-icon-btn:hover{border-color:var(--brand-navy);color:var(--brand-navy);transform:translateY(-1px);box-shadow:0 4px 12px #00178914}.nav-action-icon-btn:active{transform:scale(.94)}.nav-refresh-btn{color:#64748b}.nav-refresh-btn:hover{color:var(--brand-navy);border-color:var(--brand-blue-accent)}.nav-refresh-btn.is-spinning{cursor:not-allowed;opacity:.85;border-color:var(--brand-blue-accent);color:var(--brand-navy)}.refresh-rotate-anim{transform-origin:50%;animation:.8s linear infinite spin;display:inline-block}.student-switcher-container{position:relative}.student-profile-icon-btn{background:0 0;border:2px solid #0000;padding:0}.student-profile-icon-btn .student-avatar-micro{letter-spacing:-.02em;background:linear-gradient(135deg, var(--brand-navy), var(--brand-blue-accent));width:36px;height:36px;font-size:.88rem;font-weight:800;transition:all .2s;box-shadow:0 2px 8px #00178933}.student-profile-icon-btn:hover .student-avatar-micro{transform:scale(1.05);box-shadow:0 4px 14px #00178952}.student-profile-icon-btn.active .student-avatar-micro{box-shadow:0 0 0 3px #2563eb4d,0 4px 12px #00178940}.student-avatar-micro{background:linear-gradient(135deg, var(--brand-navy), var(--brand-blue-accent));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.72rem;font-weight:700;display:flex}.student-avatar-micro.small{width:28px;height:28px;font-size:.75rem}.student-select-dropdown{z-index:120;background:#fff;border:1px solid #e2e8f0;border-radius:20px;width:320px;max-width:90vw;padding:.85rem;animation:.2s cubic-bezier(.16,1,.3,1) slideUp;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 16px 40px -4px #00178929,0 4px 16px #0000000f}.student-profile-summary-card{background:linear-gradient(145deg,#f8fafc 0%,#f1f5f9 100%);border:1px solid #e2e8f0;border-radius:14px;margin-bottom:.75rem;padding:.85rem}.student-profile-summary-header{border-bottom:1px solid #e2e8f0cc;align-items:center;gap:.75rem;margin-bottom:.75rem;padding-bottom:.75rem;display:flex}.student-profile-avatar-large{background:linear-gradient(135deg, var(--brand-navy), var(--brand-blue-accent));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.15rem;font-weight:800;display:flex;box-shadow:0 4px 12px #00178938}.student-profile-summary-info{flex:1;min-width:0}.student-profile-summary-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.98rem;font-weight:800;line-height:1.25;overflow:hidden}.student-profile-pills-row{flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.3rem;display:flex}.student-profile-id-tag{color:var(--brand-navy);background:#dbeafe;border-radius:6px;padding:.15rem .5rem;font-size:.72rem;font-weight:700}.student-profile-fields-list{flex-direction:column;gap:.4rem;display:flex}.student-profile-field-row{justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.78rem;display:flex}.student-profile-field-row .field-label{color:var(--text-muted);flex-shrink:0;font-weight:600}.student-profile-field-row .field-value{color:var(--text-main);text-align:right;word-break:break-word;font-weight:700}.student-dropdown-siblings-box{border-top:1px solid #f1f5f9;margin-top:.35rem;padding-top:.65rem}.student-dropdown-logout-section{border-top:1px solid #f1f5f9;margin-top:.5rem;padding-top:.5rem}.student-dropdown-item.logout{color:var(--accent-rose,#ef4444);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:.65rem;width:100%;padding:.6rem .75rem;font-weight:700;transition:all .15s;display:flex}.student-dropdown-item.logout:hover{background:#fef2f2}.student-dropdown-header{text-transform:uppercase;color:#8899a6;letter-spacing:.05em;padding:.35rem .65rem .45rem;font-size:.74rem;font-weight:800}.student-dropdown-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:.65rem .85rem;transition:all .2s;display:flex;position:relative}.student-dropdown-item:hover{background:#f8fafc}.student-dropdown-item.active{background:#eff6ff}.student-item-left{align-items:center;gap:.75rem;min-width:0;display:flex}.student-item-indicator{background:0 0;border-radius:999px;flex-shrink:0;width:3.5px;height:32px;transition:background .2s}.student-dropdown-item.active .student-item-indicator{background:var(--brand-navy)}.student-dropdown-item:not(.active):hover .student-item-indicator{background:#cbd5e1}.student-item-info{flex-direction:column;min-width:0;display:flex}.student-item-name{color:var(--text-main);font-size:.94rem;font-weight:700;line-height:1.25}.student-item-meta{color:var(--text-muted);margin-top:2px;font-size:.78rem;font-weight:500}.student-status-badge{flex-shrink:0;margin-left:.75rem;font-size:.82rem;font-weight:700}.student-status-badge.active{color:var(--brand-navy)}.student-status-badge.inactive{color:var(--accent-rose,#ef4444)}.notif-bell-btn{color:#64748b}.notif-bell-btn:hover{border-color:var(--brand-navy);color:var(--brand-navy);transform:translateY(-1px)}.notif-badge-pill{border-radius:var(--radius-full);background:var(--accent-rose);color:#fff;border:2px solid #fff;justify-content:center;align-items:center;min-width:19px;height:19px;padding:0 4px;font-size:.7rem;font-weight:800;animation:1.8s infinite pulseBadge;display:flex;position:absolute;top:-3px;right:-3px}.mobile-nav-toggle{color:var(--text-main);background:0 0;border:none;padding:.5rem;display:none}.student-hero-card{background:linear-gradient(135deg, var(--brand-navy-deep) 0%, var(--brand-navy) 60%, #081d77 100%);color:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);justify-content:space-between;align-items:center;gap:2rem;margin-bottom:2rem;padding:2.25rem 2.5rem;display:flex;position:relative;overflow:hidden}.student-hero-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#2563eb66 0%,#00178900 70%);border-radius:50%;width:320px;height:320px;position:absolute;top:-50px;right:-50px}.student-hero-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#10b98126 0%,#0000 70%);width:250px;height:250px;position:absolute;bottom:-40px;left:30%}.hero-left-col{z-index:2;align-items:center;gap:1.75rem;display:flex;position:relative}.student-avatar-box{width:82px;height:82px;font-family:var(--font-heading);color:#fff;background:linear-gradient(135deg,#ffffff38,#ffffff0f);border:2px solid #ffffff59;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;font-size:2.25rem;font-weight:800;display:flex;box-shadow:0 8px 24px #0003}.hero-info-wrapper{flex-direction:column;gap:.45rem;display:flex}.hero-tags-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.hero-pill{border-radius:var(--radius-full);letter-spacing:.02em;padding:.25rem .65rem;font-size:.75rem;font-weight:700}.hero-pill.class-pill{color:#fff;background:#ffffff2e;border:1px solid #ffffff40}.hero-pill.board-pill{color:#93c5fd;background:#2563eb4d;border:1px solid #93c5fd4d}.student-hero-title{color:#fff;margin:0;font-size:2rem;line-height:1.15}.hero-school-name{color:#ffffffd9;align-items:center;gap:.45rem;font-size:.95rem;font-weight:500;display:flex}.hero-guardian-line{color:#ffffffad;align-items:center;gap:.4rem;margin-top:.15rem;font-size:.84rem;display:flex}.hero-right-col{z-index:2;text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.85rem;display:flex;position:relative}.active-batch-badge{color:#34d399;border-radius:var(--radius-full);letter-spacing:.02em;background:#10b98133;border:1px solid #34d39959;align-items:center;gap:.5rem;padding:.4rem .95rem;font-size:.82rem;font-weight:700;display:inline-flex}.active-batch-badge .live-dot{background:#34d399;border-radius:50%;width:8px;height:8px;animation:1.6s infinite pulseBadge;box-shadow:0 0 10px #34d399}.hero-date-box{color:#ffffffb3;font-size:.85rem;font-weight:500}.hero-quick-actions{gap:.6rem;display:flex}.hero-action-btn{color:#fff;border-radius:var(--radius-full);transition:all var(--transition-normal);background:#ffffff1f;border:1px solid #fff3;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.82rem;font-weight:600;display:inline-flex}.hero-action-btn:hover{background:#ffffff38;transform:translateY(-2px)}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.kpi-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-spring);flex-direction:column;justify-content:space-between;gap:1.2rem;padding:1.5rem;display:flex;position:relative;overflow:hidden}.kpi-card:hover{box-shadow:var(--shadow-lg);border-color:#cbd5e1;transform:translateY(-4px)}.kpi-card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.kpi-icon-wrap{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.kpi-icon-wrap.amber{background:var(--accent-amber-subtle);color:var(--accent-amber)}.kpi-icon-wrap.navy{background:var(--brand-blue-subtle);color:var(--brand-navy)}.kpi-icon-wrap.emerald{background:var(--accent-emerald-subtle);color:var(--accent-emerald)}.kpi-icon-wrap.purple{color:var(--accent-purple);background:#f5f3ff}.kpi-badge{border-radius:var(--radius-full);padding:.2rem .55rem;font-size:.75rem;font-weight:700}.kpi-badge.amber{background:var(--accent-amber-subtle);color:#b45309}.kpi-badge.navy{background:var(--brand-blue-subtle);color:var(--brand-navy)}.kpi-badge.emerald{background:var(--accent-emerald-subtle);color:#047857}.kpi-badge.purple{color:#6d28d9;background:#f5f3ff}.kpi-content-box{flex-direction:column;gap:.25rem;display:flex}.kpi-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.84rem;font-weight:600}.kpi-value-row{align-items:baseline;gap:.5rem;display:flex}.kpi-value{font-family:var(--font-heading);letter-spacing:-.02em;font-size:2.35rem;font-weight:800;line-height:1}.kpi-value.amber-highlight{color:#d97706!important}.kpi-value.navy-highlight{color:var(--brand-navy)!important}.kpi-value.emerald-highlight{color:#059669!important}.kpi-value.purple-highlight{color:#7c3aed!important}.kpi-unit{color:var(--text-muted);font-size:.88rem;font-weight:500}.kpi-stars-row{color:#f59e0b;align-items:center;gap:2px;margin-top:.2rem;display:flex}.kpi-progress-track{border-radius:var(--radius-full);background:#f1f5f9;width:100%;height:6px;overflow:hidden}.kpi-progress-fill{border-radius:var(--radius-full);height:100%;transition:width .8s cubic-bezier(.16,1,.3,1)}.kpi-progress-fill.amber{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.kpi-progress-fill.navy{background:linear-gradient(90deg, var(--brand-navy), var(--brand-blue-accent))}.kpi-progress-fill.emerald{background:linear-gradient(90deg,#10b981,#34d399)}.kpi-progress-fill.purple{background:linear-gradient(90deg, var(--accent-purple), #a78bfa)}.revision-alert-banner{border:1px solid #fde68a;border-left:6px solid var(--accent-amber);border-radius:var(--radius-lg);transition:all var(--transition-normal);background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);justify-content:space-between;align-items:center;gap:1.25rem;margin-bottom:2.25rem;padding:1.35rem 1.6rem;display:flex;box-shadow:0 4px 16px #f59e0b14}.revision-alert-banner:hover{box-shadow:0 8px 24px #f59e0b24}.banner-left{align-items:center;gap:1.2rem;display:flex}.banner-icon-box{color:#b45309;border-radius:var(--radius-md);background:#f59e0b29;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.banner-text-box{flex-direction:column;gap:.2rem;display:flex}.banner-header-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.banner-badge{color:#fff;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;background:#f59e0b;padding:.2rem .55rem;font-size:.72rem;font-weight:800}.banner-interval-label{color:#92400e;font-size:.82rem;font-weight:700}.banner-title{color:#78350f;margin:0;font-size:1.05rem;font-weight:700}.banner-topic{color:#92400e;font-size:.88rem}.banner-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.btn-revise-now{background:var(--brand-navy);color:#fff;border-radius:var(--radius-full);transition:all var(--transition-normal);align-items:center;gap:.45rem;padding:.6rem 1.25rem;font-size:.85rem;font-weight:700;display:inline-flex;box-shadow:0 4px 12px #00178933}.btn-revise-now:hover{background:var(--brand-navy-hover);transform:translateY(-1px)}.btn-view-all-revisions{color:#92400e;border-radius:var(--radius-full);transition:all var(--transition-normal);background:#f59e0b24;border:1px solid #f59e0b4d;align-items:center;gap:.4rem;padding:.6rem 1.15rem;font-size:.85rem;font-weight:700;display:inline-flex}.btn-view-all-revisions:hover{background:#f59e0b3d}.section-header-block{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.section-title{color:var(--text-main);font-size:1.45rem}.section-subtitle{color:var(--text-muted);font-size:.88rem}.filter-bar{border-radius:var(--radius-xl);background:#fff;border:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:1.15rem;margin-bottom:2rem;padding:1.1rem 1.4rem;display:flex;box-shadow:0 4px 18px -2px #0f172a0d,0 1px 3px #00000005}.search-input-wrap{flex:1;min-width:260px;position:relative}.search-icon{color:var(--text-light);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.search-input{border-radius:var(--radius-full);width:100%;color:var(--text-main);transition:all var(--transition-normal);background:#f8fafc;border:1px solid #cbd5e1;outline:none;padding:.7rem 1.1rem .7rem 2.7rem;font-size:.88rem;box-shadow:inset 0 1px 2px #0000000a}.search-input:focus{border-color:var(--brand-blue-accent);background:#fff;box-shadow:0 0 0 3px #2563eb26,inset 0 1px 1px #00000005}.filter-pills-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filter-pill-btn{border-radius:var(--radius-full);color:var(--text-body);transition:all var(--transition-normal);background:#f8fafc;border:1px solid #cbd5e1;align-items:center;gap:.45rem;padding:.55rem 1.1rem;font-size:.84rem;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #00000008}.filter-pill-btn:hover{border-color:var(--brand-navy);color:var(--brand-navy);background:#fff;transform:translateY(-1px);box-shadow:0 3px 8px #00178914}.filter-pill-btn.active{background:var(--brand-navy);color:#fff;border-color:var(--brand-navy);box-shadow:0 4px 14px #00178938}.pill-count{border-radius:var(--radius-full);background:#00000012;padding:.12rem .5rem;font-size:.72rem;font-weight:700}.filter-pill-btn.active .pill-count{color:#fff;background:#ffffff40}.sessions-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;display:grid}.session-card{border-radius:var(--radius-xl);background:#fff;border:1px solid #cbd5e1;flex-direction:column;justify-content:space-between;gap:1.25rem;padding:1.6rem;transition:all .28s cubic-bezier(.16,1,.3,1);display:flex;position:relative;box-shadow:0 4px 16px -2px #0f172a12,0 1px 3px #00000005}.session-card:hover{border-color:#94a3b8;transform:translateY(-5px);box-shadow:0 16px 32px -4px #0017891f,0 3px 8px #0000000a}.session-card-top{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.subject-badge{background:var(--brand-blue-subtle);color:var(--brand-navy);border-radius:var(--radius-full);border:1px solid var(--brand-blue-border);padding:.25rem .65rem;font-size:.75rem;font-weight:700}.status-badge{border-radius:var(--radius-full);align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.status-badge.completed{background:var(--accent-emerald-subtle);color:#065f46;border:1px solid #10b98140}.status-badge.upcoming{background:var(--brand-blue-subtle);color:var(--brand-blue-accent);border:1px solid var(--brand-blue-border)}.status-badge.cancelled{color:#b91c1c;background:#ef44441f;border:1px solid #ef444447}.status-badge.rescheduled{color:#b45309;background:#f59e0b1f;border:1px solid #f59e0b47}.status-badge.neutral{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1}.session-card--completed{border-top:3px solid #10b981}.session-card--upcoming{border-top:3px solid #2563eb}.session-card--cancelled{background:#fff;border-left:4px solid #ef4444}.session-cancellation-note{color:#991b1b;border-radius:var(--radius-md);background:#ef444414;border:1px dashed #ef444459;align-items:center;gap:.5rem;margin-top:.35rem;padding:.5rem .85rem;font-size:.82rem;line-height:1.4;display:flex}.session-cancellation-note .cancellation-icon{color:#dc2626;flex-shrink:0}.cancelled-card-tag{color:#b91c1c;border-radius:var(--radius-full);background:#ef444414;align-items:center;gap:.35rem;padding:.4rem .8rem;font-size:.78rem;font-weight:700;display:inline-flex}.filter-pill-btn.pill-cancelled:hover,.filter-pill-btn.pill-cancelled.active{border-color:#dc2626}.filter-pill-btn.pill-cancelled.active{color:#fff;background:#dc2626}.session-topic-title{color:var(--text-main);font-size:1.15rem;font-weight:700;line-height:1.35}.session-meta-list{color:var(--text-body);background:#f8fafc;border:1px solid #eef2f6;border-radius:14px;flex-direction:column;gap:.55rem;padding:.85rem 1rem;font-size:.85rem;display:flex}.session-meta-item{align-items:center;gap:.55rem;display:flex}.blocking-loading-overlay{z-index:99999;-webkit-backdrop-filter:blur(10px);pointer-events:all;background:#0f172ab8;justify-content:center;align-items:center;padding:1.5rem;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.blocking-loading-card{text-align:center;background:#fff;border:1px solid #e2e8f0e6;border-radius:24px;flex-direction:column;align-items:center;width:100%;max-width:420px;padding:2.25rem 2rem;animation:.3s cubic-bezier(.16,1,.3,1) scaleIn;display:flex;position:relative;box-shadow:0 24px 60px -10px #00178940,0 10px 25px -5px #0000001a}.blocking-loading-spinner-wrap{justify-content:center;align-items:center;width:84px;height:84px;margin-bottom:1.25rem;display:flex;position:relative}.blocking-loading-ring{border:4px solid #0017891a;border-top-color:var(--brand-navy);border-right-color:var(--brand-blue-accent);will-change:transform;border-radius:50%;animation:.9s cubic-bezier(.55,.15,.45,.85) infinite spin;position:absolute;inset:0}.blocking-loading-logo{object-fit:contain;border-radius:10px;width:44px;height:44px;animation:2s ease-in-out infinite pulseLogo}@keyframes pulseLogo{0%,to{opacity:.92;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}.blocking-loading-title{font-family:var(--font-heading);color:var(--brand-navy);letter-spacing:-.02em;margin-bottom:.35rem;font-size:1.25rem;font-weight:800}.blocking-loading-desc{color:var(--text-muted);max-width:320px;margin-bottom:1.35rem;font-size:.88rem;line-height:1.5}.blocking-loading-badge{color:#1e40af;border-radius:var(--radius-full);letter-spacing:.01em;background:#eff6ff;border:1px solid #bfdbfe;align-items:center;gap:.5rem;padding:.4rem .9rem;font-size:.78rem;font-weight:700;display:inline-flex}.blocking-loading-pulse-dot{background:#2563eb;border-radius:50%;width:7px;height:7px;animation:1.5s infinite pulseBadge}.top-sync-banner{color:#1e40af;border-radius:var(--radius-full);background:#fff;border:1px solid #bfdbfe;align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:.6rem 1.2rem;font-size:.82rem;font-weight:600;animation:.3s ease-out fadeIn;display:flex;box-shadow:0 4px 12px #2563eb14}.sync-spinner{will-change:transform;transform-origin:50%;border:2px solid #2563eb33;border-top-color:#2563eb;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}.classes-loading-banner{border:1px solid #bfdbfe;border-left:4px solid var(--brand-navy);border-radius:var(--radius-xl);background:#fff;align-items:center;gap:1.25rem;margin-bottom:2rem;padding:1.4rem 1.75rem;display:flex;box-shadow:0 4px 20px -2px #0017890f}.loading-spinner-circle{border:3px solid #0017891f;border-top-color:var(--brand-navy);border-right-color:var(--brand-blue-accent);will-change:transform;transform-origin:50%;border-radius:50%;flex-shrink:0;width:38px;height:38px;animation:.9s cubic-bezier(.55,.15,.45,.85) infinite spin}.loading-banner-text h3{color:var(--brand-navy);margin-bottom:.2rem;font-size:1.05rem;font-weight:700}.loading-banner-text p{color:var(--text-muted);font-size:.84rem}.skeleton-card{pointer-events:none;background:#fff;border:1px solid #e2e8f0;min-height:260px}@keyframes skeletonShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-shimmer-bar{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 37%,#f1f5f9 63%) 0 0/400% 100%;border-radius:6px;animation:1.5s ease-in-out infinite skeletonShimmer}.skeleton-line-badge{border-radius:var(--radius-full);width:90px;height:22px}.skeleton-line-title{width:85%;height:24px;margin-top:1rem}.skeleton-meta-box{background:#f8fafc;border:1px solid #f1f5f9;border-radius:12px;flex-direction:column;gap:.6rem;margin-top:1rem;padding:.85rem 1rem;display:flex}.skeleton-line-meta{width:70%;height:14px}.skeleton-footer{border-top:1px solid #f1f5f9;justify-content:space-between;margin-top:auto;padding-top:1rem;display:flex}.skeleton-line-btn{border-radius:var(--radius-full);width:100px;height:34px}.session-card-bottom{border-top:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding-top:1rem;display:flex}.session-rating-stars{color:#f59e0b;align-items:center;gap:3px;font-size:.85rem;display:flex}.btn-card-primary{background:var(--brand-navy);color:#fff;border-radius:var(--radius-full);transition:all var(--transition-normal);align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.82rem;font-weight:700;display:inline-flex}.btn-card-primary:hover{background:var(--brand-navy-hover)}.btn-card-secondary{color:var(--text-main);border:1px solid var(--border-card);border-radius:var(--radius-full);transition:all var(--transition-normal);background:#f8fafc;align-items:center;gap:.35rem;padding:.5rem .95rem;font-size:.82rem;font-weight:600;display:inline-flex}.btn-card-secondary:hover{background:#f1f5f9;border-color:#cbd5e1}.btn-join-meet{color:#fff;border-radius:var(--radius-full);transition:all var(--transition-normal);background:#10b981;align-items:center;gap:.45rem;padding:.5rem 1.15rem;font-size:.82rem;font-weight:700;display:inline-flex;box-shadow:0 4px 12px #10b98140}.btn-join-meet:hover{background:#059669;transform:translateY(-1px)}.empty-state-card{background:var(--bg-card);border:1px dashed var(--border-card);border-radius:var(--radius-xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:4rem 2rem;display:flex}.empty-state-icon{background:var(--brand-blue-subtle);width:64px;height:64px;color:var(--brand-navy);border-radius:50%;justify-content:center;align-items:center;display:flex}.empty-state-title{color:var(--text-main);font-size:1.25rem}.empty-state-desc{color:var(--text-muted);max-width:400px;font-size:.9rem}.modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(8px);background:#0f172aa6;justify-content:center;align-items:center;padding:1.25rem;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content-card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);flex-direction:column;width:100%;max-width:680px;max-height:90vh;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;display:flex;position:relative;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-card);background:var(--bg-card);z-index:10;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 1.75rem;display:flex;position:sticky;top:0}.modal-title-row{align-items:center;gap:.65rem;display:flex}.modal-close-btn{width:36px;height:36px;color:var(--text-muted);transition:all var(--transition-normal);background:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;display:flex}.modal-close-btn:hover{color:var(--text-main);background:#e2e8f0}.modal-body{flex-direction:column;gap:1.5rem;padding:1.75rem;display:flex}.session-modal-meta-grid{border-radius:var(--radius-md);background:#f8fafc;border:1px solid #e2e8f0;grid-template-columns:repeat(2,1fr);gap:1rem;padding:1.25rem;display:grid}.meta-field{flex-direction:column;gap:.2rem;display:flex}.meta-field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.meta-field-val{color:var(--text-main);font-size:.92rem;font-weight:700}.listening-rating-box{border-radius:var(--radius-lg);background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%);border:1px solid #bfdbfe;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;display:flex}.rating-header-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.rating-score-pill{background:var(--brand-navy);color:#fff;border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0;align-items:center;gap:3px;padding:.25rem .65rem;font-size:.82rem;font-weight:800;display:inline-flex}.teacher-comment-quote{color:#1e3a8a;border-left:3px solid var(--brand-blue-accent);padding-left:.85rem;font-size:.92rem;font-style:italic;line-height:1.5}.learn-docs-section{flex-direction:column;gap:.85rem;display:flex}.docs-list{flex-direction:column;gap:.65rem;display:flex}.doc-file-card{border:1px solid var(--border-card);border-radius:var(--radius-md);transition:all var(--transition-normal);background:#fff;justify-content:space-between;align-items:center;padding:.85rem 1.15rem;display:flex}.doc-file-card:hover{border-color:var(--brand-blue-accent);box-shadow:var(--shadow-sm)}.doc-file-left{align-items:center;gap:.75rem;display:flex}.doc-file-icon{border-radius:var(--radius-sm);background:var(--brand-blue-subtle);width:38px;height:38px;color:var(--brand-navy);flex-shrink:0;justify-content:center;align-items:center;display:flex}.doc-file-name{color:var(--text-main);font-size:.9rem;font-weight:600}.btn-study-doc{background:var(--brand-navy);color:#fff;border-radius:var(--radius-full);align-items:center;gap:.35rem;padding:.45rem 1rem;font-size:.8rem;font-weight:700;display:inline-flex}.modal-footer{border-top:1px solid var(--border-card);border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl);background:#f8fafc;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1.25rem 1.75rem;display:flex}.doc-viewer-modal-card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);flex-direction:column;width:95vw;max-width:1040px;height:90vh;display:flex;position:relative;overflow:hidden}.doc-viewer-frame-wrap{background:#f1f5f9;flex:1;width:100%;height:100%;position:relative}.doc-iframe{border:none;width:100%;height:100%}.doc-fallback-banner{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:3rem 2rem;display:flex}.active-study-timer-pill{z-index:300;background:var(--brand-navy-deep);color:#fff;border-radius:var(--radius-full);border:1px solid #fff3;align-items:center;gap:.85rem;padding:.65rem 1.15rem;animation:.3s cubic-bezier(.16,1,.3,1) slideInUp;display:flex;position:fixed;bottom:24px;right:28px;box-shadow:0 12px 32px #00178966}.timer-pulsing-dot{background:#ef4444;border-radius:50%;width:9px;height:9px;animation:1.2s infinite pulseBadge;box-shadow:0 0 10px #ef4444}.timer-digits{font-family:var(--font-heading);letter-spacing:.05em;font-size:1.15rem;font-weight:800}.timer-action-btn{color:#fff;width:30px;height:30px;transition:all var(--transition-normal);background:#ffffff26;border-radius:50%;justify-content:center;align-items:center;display:flex}.timer-action-btn:hover{background:#ffffff4d}.timer-done-btn{color:#fff;border-radius:var(--radius-full);transition:all var(--transition-normal);background:#10b981;padding:.35rem .85rem;font-size:.78rem;font-weight:700}.timer-done-btn:hover{background:#059669}.drawer-backdrop{z-index:2000;-webkit-backdrop-filter:blur(4px);background:#0f172a80;animation:.2s ease-out fadeIn;position:fixed;inset:0}.notification-drawer{z-index:2001;background:var(--bg-card);flex-direction:column;width:420px;max-width:100vw;height:100vh;animation:.35s cubic-bezier(.16,1,.3,1) slideInRight;display:flex;position:fixed;top:0;right:0;box-shadow:-8px 0 32px #00178926}.drawer-header{border-bottom:1px solid var(--border-card);justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 1rem;display:flex}.drawer-title-row{align-items:center;gap:.65rem;display:flex}.drawer-reminder-subbar{border-bottom:1px solid var(--border-card);color:var(--text-muted);background:#f8fafc;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;font-size:.82rem;display:flex}.drawer-reminder-subbar a,.drawer-reminder-subbar button{color:var(--brand-blue-accent);font-size:.8rem;font-weight:700}.drawer-list-wrap{flex-direction:column;flex:1;gap:1rem;padding:1.25rem 1.5rem;display:flex;overflow-y:auto}.revision-milestone-card{border:1px solid var(--border-card);border-radius:var(--radius-md);transition:all var(--transition-normal);background:#fff;flex-direction:column;gap:.75rem;padding:1.15rem;display:flex}.revision-milestone-card.due-today{border-left:5px solid var(--accent-amber);background:#fffdf7;border-color:#fde68a}.revision-milestone-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.rev-card-header{justify-content:space-between;align-items:center;display:flex}.rev-interval-badge{border-radius:var(--radius-full);letter-spacing:.03em;padding:.2rem .55rem;font-size:.72rem;font-weight:800}.rev-interval-badge.day-1{color:#92400e;background:#fef3c7}.rev-interval-badge.day-4{color:#1e40af;background:#eff6ff}.rev-interval-badge.day-7{color:#065f46;background:#ecfdf5}.rev-status-pill{border-radius:var(--radius-full);padding:.15rem .5rem;font-size:.72rem;font-weight:700}.rev-status-pill.due-today{color:#fff;background:#f59e0b}.rev-status-pill.overdue{color:var(--text-muted);background:#f1f5f9}.rev-status-pill.upcoming{color:var(--brand-blue-accent);background:#eff6ff}.rev-topic-title{color:var(--text-main);font-size:.95rem;font-weight:700;line-height:1.3}.rev-meta-sub{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.78rem;display:flex}.scorecard-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.scorecard-item{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);flex-direction:column;gap:.35rem;padding:1.35rem;display:flex}.scorecard-label{color:var(--text-muted);text-transform:uppercase;font-size:.8rem;font-weight:600}.scorecard-value{font-family:var(--font-heading);color:var(--brand-navy);font-size:1.85rem;font-weight:800}.scorecard-sub{color:var(--text-light);font-size:.78rem}.chart-card-box{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);margin-bottom:2rem;padding:1.75rem}.chart-bars-list{flex-direction:column;gap:1.15rem;margin-top:1.25rem;display:flex}.chart-bar-item{flex-direction:column;gap:.35rem;display:flex}.chart-bar-label-row{justify-content:space-between;align-items:center;font-size:.88rem;display:flex}.chart-bar-track{border-radius:var(--radius-full);background:#f1f5f9;width:100%;height:10px;overflow:hidden}.chart-bar-fill{border-radius:var(--radius-full);height:100%;transition:width .8s ease-out}.chart-bar-fill.high{background:linear-gradient(90deg,#10b981,#34d399)}.chart-bar-fill.medium{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.observations-list{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.observation-card{border:1px solid var(--border-card);border-radius:var(--radius-md);background:#fff;gap:1rem;padding:1.25rem;display:flex}.obs-teacher-avatar{background:linear-gradient(135deg, var(--brand-navy), var(--brand-blue-accent));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;font-weight:700;display:flex}.obs-content{flex-direction:column;flex:1;gap:.35rem;display:flex}.obs-header-row{justify-content:space-between;align-items:center;display:flex}.obs-teacher-name{color:var(--text-main);font-size:.95rem;font-weight:700}.obs-date{color:var(--text-light);font-size:.78rem}.obs-quote{color:var(--text-body);font-size:.9rem;font-style:italic;line-height:1.45}.settings-stack{flex-direction:column;gap:1.75rem;display:flex}.settings-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);flex-direction:column;gap:1.25rem;padding:1.75rem;display:flex}.settings-card-header{border-bottom:1px solid #f1f5f9;align-items:center;gap:.75rem;padding-bottom:.85rem;display:flex}.settings-input-group{flex-direction:column;gap:.45rem;display:flex}.settings-label{color:var(--text-main);font-size:.86rem;font-weight:600}.settings-input{border-radius:var(--radius-sm);border:1px solid var(--border-card);color:var(--text-main);transition:all var(--transition-normal);background:#fff;outline:none;padding:.65rem 1rem}.settings-input:focus{border-color:var(--brand-blue-accent);box-shadow:0 0 0 3px #2563eb1f}.settings-checkbox-row{cursor:pointer;align-items:center;gap:.65rem;display:flex}.settings-checkbox{width:18px;height:18px;accent-color:var(--brand-navy)}.profile-spec-grid{border-radius:var(--radius-md);background:#f8fafc;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;padding:1.25rem;display:grid}.profile-field{flex-direction:column;gap:.2rem;display:flex}.profile-field-label{color:var(--text-muted);text-transform:uppercase;font-size:.74rem;font-weight:600}.profile-field-val{color:var(--text-main);font-size:.92rem;font-weight:600}.audit-table-wrap{border:1px solid var(--border-card);border-radius:var(--radius-md);width:100%;overflow-x:auto}.audit-table{border-collapse:collapse;text-align:left;width:100%;font-size:.86rem}.audit-table th{color:var(--text-muted);border-bottom:1px solid var(--border-card);background:#f8fafc;padding:.75rem 1rem;font-weight:700}.audit-table td{color:var(--text-body);border-bottom:1px solid #f1f5f9;padding:.75rem 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes pulseBadge{0%{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@media print{.edstaq-navbar,.active-study-timer-pill,.notification-drawer,.drawer-backdrop,.btn-print-hide,.filter-bar,.btn-card-primary,.btn-card-secondary{display:none!important}body{color:#000!important;background:#fff!important}.main-content{max-width:100%!important;padding:0!important}.student-hero-card{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#fff!important;background:#001789!important}}@media (width<=900px){.student-hero-card{flex-direction:column;align-items:flex-start;gap:1.5rem;padding:1.75rem}.hero-right-col{text-align:left;align-items:flex-start;width:100%}.revision-alert-banner{flex-direction:column;align-items:flex-start}.banner-actions{justify-content:flex-start;width:100%}}@media (width<=768px){.navbar-inner{gap:.5rem;padding:.65rem .85rem!important}.nav-install-btn{display:none!important}.brand-logo-img{width:32px!important;height:32px!important}.nav-actions-section{gap:.5rem!important}.nav-action-icon-btn{width:36px!important;height:36px!important}.student-profile-icon-btn .student-avatar-micro{width:34px!important;height:34px!important;font-size:.82rem!important}.student-select-dropdown{width:min(320px,100vw - 24px)!important;max-width:calc(100vw - 24px)!important;right:-4px!important}.desktop-only-nav{display:none!important}.mobile-bottom-nav{z-index:999!important;-webkit-backdrop-filter:blur(20px)!important;padding-bottom:env(safe-area-inset-bottom,8px)!important;background:#fffffff5!important;border-top:1px solid #e2e8f0f2!important;transition:transform .3s cubic-bezier(.16,1,.3,1)!important;display:block!important;position:fixed!important;bottom:0!important;left:0!important;right:0!important;box-shadow:0 -4px 20px #00178914!important}.mobile-bottom-nav.hidden{pointer-events:none!important;transform:translateY(115%)!important}.mobile-bottom-nav.visible{pointer-events:auto!important;transform:translateY(0)!important}.mobile-bottom-nav-inner{justify-content:space-around!important;align-items:center!important;max-width:480px!important;margin:0 auto!important;padding:.45rem .5rem .35rem!important;display:flex!important}.mobile-tab-btn{color:#64748b!important;cursor:pointer!important;-webkit-tap-highlight-color:transparent!important;background:0 0!important;border:none!important;border-radius:12px!important;flex-direction:column!important;flex:1!important;justify-content:center!important;align-items:center!important;gap:.2rem!important;padding:.3rem .2rem!important;font-family:Plus Jakarta Sans,sans-serif!important;font-size:.72rem!important;font-weight:600!important;transition:color .15s,transform .12s!important;display:flex!important}.mobile-tab-btn:active{transform:scale(.92)!important}.mobile-tab-btn.active{color:var(--brand-navy)!important;font-weight:800!important}.mobile-tab-icon-wrap{border-radius:10px!important;justify-content:center!important;align-items:center!important;width:38px!important;height:30px!important;transition:background .18s!important;display:flex!important;position:relative!important}.mobile-tab-btn.active .mobile-tab-icon-wrap{background:var(--brand-blue-subtle)!important;color:var(--brand-navy)!important}.mobile-tab-badge{background:var(--accent-rose)!important;color:#fff!important;border:2px solid #fff!important;border-radius:8px!important;justify-content:center!important;align-items:center!important;min-width:16px!important;height:16px!important;padding:0 4px!important;font-size:.65rem!important;font-weight:800!important;display:flex!important;position:absolute!important;top:-2px!important;right:2px!important}.mobile-tab-label{letter-spacing:-.01em!important;line-height:1.1!important}.main-content{padding-bottom:calc(75px + env(safe-area-inset-bottom,16px))!important}.student-hero-title{font-size:1.45rem!important}.student-avatar-box{width:60px!important;height:60px!important;font-size:1.6rem!important}.hero-left-col{gap:.85rem!important}.hero-top-badge{z-index:5!important;padding:.22rem .55rem!important;font-size:.72rem!important;position:absolute!important;top:1rem!important;right:1rem!important}.kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:.75rem!important;margin-bottom:1.5rem!important}.kpi-card{border-radius:var(--radius-md)!important;gap:.75rem!important;padding:.95rem .85rem!important}.kpi-card-header{gap:.4rem!important;margin-bottom:0!important}.kpi-icon-wrap{border-radius:8px!important;width:34px!important;height:34px!important}.kpi-icon-wrap svg{width:18px!important;height:18px!important}.kpi-badge{padding:.15rem .45rem!important;font-size:.65rem!important;font-weight:700!important}.kpi-title{letter-spacing:.02em!important;align-items:center!important;min-height:28px!important;font-size:.7rem!important;line-height:1.25!important;display:flex!important}.kpi-value-row{flex-wrap:wrap!important;align-items:baseline!important;gap:.25rem!important}.kpi-card .kpi-value,.kpi-content-box .kpi-value,.kpi-value-row .kpi-value,span.kpi-value{letter-spacing:-.02em!important;font-size:2.25rem!important;font-weight:800!important;line-height:1!important;display:inline-block!important}.kpi-card .kpi-value.amber-highlight,.kpi-value.amber-highlight{color:#d97706!important}.kpi-card .kpi-value.navy-highlight,.kpi-value.navy-highlight{color:var(--brand-navy)!important}.kpi-card .kpi-value.emerald-highlight,.kpi-value.emerald-highlight{color:#059669!important}.kpi-card .kpi-value.purple-highlight,.kpi-value.purple-highlight{color:#7c3aed!important}.kpi-card .kpi-unit,.kpi-content-box .kpi-unit,.kpi-value-row .kpi-unit,span.kpi-unit{color:var(--text-muted)!important;font-size:.85rem!important;font-weight:600!important;line-height:1.2!important}.kpi-stars-row{gap:1.5px!important;margin-top:.15rem!important}.kpi-stars-row svg{width:12px!important;height:12px!important}.kpi-content-box>span:not(.kpi-title):not(.kpi-value):not(.kpi-unit){font-size:.68rem!important;line-height:1.25!important}.revision-alert-banner{border-left-width:4px!important;flex-direction:column!important;align-items:flex-start!important;gap:.75rem!important;margin-bottom:1.35rem!important;padding:.85rem 1rem!important}.banner-left{align-items:flex-start!important;gap:.75rem!important}.banner-icon-box{border-radius:8px!important;width:36px!important;height:36px!important}.banner-icon-box svg{width:18px!important;height:18px!important}.banner-header-row{gap:.4rem!important}.banner-badge{padding:.15rem .45rem!important;font-size:.65rem!important}.banner-interval-label{font-size:.72rem!important}.banner-title{margin:.15rem 0!important;font-size:.95rem!important;line-height:1.3!important}.banner-topic{font-size:.72rem!important}.banner-actions{gap:.5rem!important;width:100%!important;display:flex!important}.btn-revise-now{flex:1!important;justify-content:center!important;padding:.45rem .95rem!important;font-size:.8rem!important}.btn-view-all-revisions{justify-content:center!important;padding:.45rem .85rem!important;font-size:.8rem!important}.scorecard-grid{grid-template-columns:repeat(2,1fr)!important;gap:.75rem!important;margin-bottom:1.5rem!important}.scorecard-item{border-radius:var(--radius-md)!important;gap:.35rem!important;padding:.95rem .85rem!important}.scorecard-label{letter-spacing:.02em!important;align-items:center!important;min-height:28px!important;font-size:.68rem!important;line-height:1.2!important;display:flex!important}.scorecard-value{font-size:1.7rem!important;font-weight:800!important;line-height:1.1!important}.scorecard-value span{font-size:.76rem!important}.scorecard-sub{font-size:.66rem!important;line-height:1.25!important}.sessions-grid{grid-template-columns:1fr}.notification-drawer{width:100vw}.session-modal-meta-grid{grid-template-columns:1fr}.active-study-timer-pill{bottom:calc(70px + env(safe-area-inset-bottom,12px))!important;padding:.45rem .85rem!important;font-size:.82rem!important;right:14px!important}}.mobile-install-banner{bottom:calc(64px + env(safe-area-inset-bottom,10px));z-index:980;-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);cursor:pointer;max-width:480px;transition:transform var(--transition-normal);background:#040d3af5;border:1px solid #fff3;justify-content:space-between;align-items:center;gap:.85rem;margin:0 auto;padding:.75rem 1rem;animation:.4s cubic-bezier(.16,1,.3,1) slideInUp;display:flex;position:fixed;left:.75rem;right:.75rem;box-shadow:0 16px 36px #00178959}.mobile-install-banner:hover{transform:translateY(-2px)}.banner-left-content{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.install-banner-app-icon{object-fit:cover;border:1px solid #ffffff4d;border-radius:12px;flex-shrink:0;width:44px;height:44px;box-shadow:0 4px 12px #0000004d}.install-banner-text{flex-direction:column;min-width:0;display:flex}.banner-top-tag{color:#fbbf24;text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:.3rem;font-size:.68rem;font-weight:800;display:flex}.banner-headline{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:700;overflow:hidden}.banner-subtext{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;overflow:hidden}.banner-right-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.btn-install-banner-cta{background:linear-gradient(135deg, var(--brand-blue-accent), #1d4ed8);color:#fff;border-radius:var(--radius-full);transition:all var(--transition-normal);border:1px solid #ffffff40;align-items:center;gap:.35rem;padding:.45rem .95rem;font-size:.8rem;font-weight:700;display:inline-flex;box-shadow:0 4px 14px #2563eb66}.btn-install-banner-cta:hover{background:#1e40af;transform:scale(1.02)}.btn-close-banner{color:#94a3b8;transition:color var(--transition-normal);border-radius:50%;justify-content:center;align-items:center;padding:.25rem;display:flex}.btn-close-banner:hover{color:#fff}.nav-install-btn{color:#fff;border-radius:var(--radius-full);transition:all var(--transition-normal);background:linear-gradient(135deg,#040d3a,#001789);border:1px solid #fff3;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.78rem;font-weight:700;display:inline-flex;box-shadow:0 2px 8px #00178933}.nav-install-btn:hover{background:var(--brand-blue-accent);transform:translateY(-1px)}.pulse-arrow{animation:1.5s infinite bounceDown}@keyframes bounceDown{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(6px)}60%{transform:translateY(3px)}}.login-page{background:linear-gradient(135deg,#f8fafc 0%,#edf2f9 40%,#e2e8f0 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;position:relative;overflow:hidden}.login-bg-gradient{pointer-events:none;z-index:0;position:absolute;inset:0}.login-orb{filter:blur(90px);opacity:.65;border-radius:50%;animation:8s ease-in-out infinite alternate orbFloat;position:absolute}.login-orb-1{background:radial-gradient(circle,#0017891f 0%,#00178900 70%);width:450px;height:450px;animation-delay:0s;top:-120px;right:-100px}.login-orb-2{background:radial-gradient(circle,#2563eb24 0%,#2563eb00 70%);width:360px;height:360px;animation-delay:-3s;bottom:-80px;left:-80px}.login-orb-3{background:radial-gradient(circle,#8b5cf61a 0%,#8b5cf600 70%);width:280px;height:280px;animation-delay:-5s;top:45%;left:45%;transform:translate(-50%,-50%)}@keyframes orbFloat{0%{transform:scale(1)translateY(0)}to{transform:scale(1.12)translateY(-25px)}}.login-container{z-index:1;flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:420px;display:flex;position:relative}.login-brand{text-align:center;animation:.6s fadeIn}.login-logo-wrap{border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto .85rem;display:flex;overflow:hidden;box-shadow:0 10px 25px -5px #00178938,0 4px 10px -2px #0017891f}.login-logo-img{object-fit:cover;border-radius:20px;width:100%;height:100%;display:block}.login-brand-name{color:var(--brand-navy);letter-spacing:-.02em;margin:0 0 .2rem;font-family:Outfit,sans-serif;font-size:2.1rem;font-weight:800}.login-brand-tagline{color:var(--text-muted);margin:0;font-size:.9rem;font-weight:500}.login-card{border-radius:var(--radius-lg);background:#fff;border:1px solid #e2e8f0e6;width:100%;padding:2.25rem 2rem;animation:.5s slideUp;box-shadow:0 20px 45px -10px #00178914,0 8px 16px -4px #00000008}.login-card-header{text-align:center;margin-bottom:1.75rem}.login-icon-ring{background:linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-blue-accent) 100%);color:#fff;border-radius:14px;justify-content:center;align-items:center;width:50px;height:50px;margin:0 auto 1rem;display:flex;box-shadow:0 8px 20px #00178940}.login-title{color:var(--text-main);margin:0 0 .35rem;font-family:Outfit,sans-serif;font-size:1.45rem;font-weight:700}.login-subtitle{color:var(--text-muted);margin:0;font-size:.85rem}.login-method-tabs{border-radius:var(--radius-full);background:#f1f5f9;border:1px solid #e2e8f0;gap:.35rem;margin-bottom:1.4rem;padding:.35rem;display:flex}.login-method-tab{border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:.45rem;padding:.55rem .85rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.85rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.login-method-tab:hover:not(.active){color:var(--brand-navy)}.login-method-tab.active{color:var(--brand-navy);background:#fff;font-weight:700;box-shadow:0 2px 8px #0017891f}.login-parent-badge{color:#1e40af;border-radius:var(--radius-full);letter-spacing:.01em;background:#dbeafe;padding:.15rem .55rem;font-size:.72rem;font-weight:700}.login-field-hint{color:#64748b;margin-top:.15rem;font-size:.76rem}.login-form{flex-direction:column;gap:1.15rem;display:flex}.login-field{flex-direction:column;gap:.45rem;display:flex}.login-label{color:var(--text-body);letter-spacing:.02em;font-size:.82rem;font-weight:600}.login-input-wrap{align-items:center;display:flex;position:relative}.login-input-icon{color:var(--text-muted);pointer-events:none;flex-shrink:0;position:absolute;left:.95rem}.login-input{border-radius:var(--radius-md);width:100%;color:var(--text-main);background:#f8fafc;border:1.5px solid #cbd5e1;outline:none;padding:.8rem 2.75rem .8rem 2.6rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.95rem;transition:border-color .2s,box-shadow .2s,background .2s}.login-input:focus{border-color:var(--brand-navy);background:#fff;box-shadow:0 0 0 3px #0017891a}.login-eye-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;align-items:center;padding:.25rem;transition:color .15s;display:flex;position:absolute;right:.9rem}.login-eye-btn:hover{color:var(--brand-blue-accent)}.login-error{border-radius:var(--radius-sm);color:var(--accent-rose);background:#fef2f2;border:1px solid #fecaca;padding:.65rem .9rem;font-size:.84rem;font-weight:500;animation:.3s fadeIn}.login-btn{background:linear-gradient(135deg, var(--brand-navy) 0%, #0d2bb5 100%);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;margin-top:.4rem;padding:.85rem 1.5rem;font-family:Plus Jakarta Sans,sans-serif;font-size:1rem;font-weight:700;transition:transform .2s,box-shadow .2s,opacity .2s;display:flex;box-shadow:0 6px 20px #00178940}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 26px #00178952}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled,.login-btn--loading{opacity:.7;cursor:not-allowed}.login-spinner{will-change:transform;transform-origin:50%;border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin}.login-demo-hint{background:var(--brand-blue-subtle);border:1px solid var(--brand-blue-border);border-radius:var(--radius-sm);color:var(--text-body);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1.25rem;padding:.75rem 1rem;font-size:.82rem;display:flex}.login-demo-label{color:var(--brand-navy);font-weight:700}.login-footer-text{color:var(--text-light);text-align:center;margin:0;font-size:.8rem}@media (width<=480px){.login-card{padding:1.75rem 1.5rem}.login-brand-name{font-size:1.75rem}}.student-chooser-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#0f172ab8;justify-content:center;align-items:center;padding:1.5rem;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.student-chooser-modal{background:#fff;border-radius:24px;flex-direction:column;width:100%;max-width:440px;padding:2rem 1.75rem;animation:.3s cubic-bezier(.16,1,.3,1) scaleIn;display:flex;box-shadow:0 25px 60px -15px #00178940,0 0 0 1px #0000000f}.student-chooser-header{text-align:center;margin-bottom:1.35rem}.student-chooser-badge{color:#1e40af;border-radius:var(--radius-full);background:#eff6ff;border:1px solid #bfdbfe;align-items:center;gap:.45rem;margin-bottom:.85rem;padding:.3rem .8rem;font-size:.76rem;font-weight:700;display:inline-flex}.student-chooser-title{color:var(--brand-navy);margin:0 0 .45rem;font-family:Outfit,sans-serif;font-size:1.45rem;font-weight:800}.student-chooser-subtitle{color:var(--text-muted);margin:0;font-size:.86rem;line-height:1.5}.student-chooser-list{flex-direction:column;gap:.85rem;max-height:340px;margin-bottom:1.35rem;padding-right:.25rem;display:flex;overflow-y:auto}.student-chooser-card{cursor:pointer;text-align:left;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:16px;align-items:center;gap:.95rem;width:100%;padding:1rem 1.15rem;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.student-chooser-card:hover{border-color:var(--brand-navy);background:#fff;transform:translateY(-2px);box-shadow:0 8px 20px -4px #00178924}.student-chooser-card:active{transform:scale(.98)}.chooser-avatar{background:linear-gradient(135deg, var(--brand-navy), var(--brand-blue-accent));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.15rem;font-weight:800;display:flex;box-shadow:0 3px 10px #00178933}.chooser-info{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.chooser-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:800;overflow:hidden}.chooser-meta{color:var(--text-muted);font-size:.8rem}.chooser-school{color:#64748b;white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;overflow:hidden}.chooser-arrow-wrap{width:32px;height:32px;color:var(--brand-navy);background:#fff;border:1px solid #cbd5e1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.student-chooser-card:hover .chooser-arrow-wrap{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff;transform:translate(3px)}.student-chooser-back-btn{width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;padding:.7rem;font-size:.85rem;font-weight:600;transition:all .15s;display:flex}.student-chooser-back-btn:hover{color:var(--brand-navy);background:#f1f5f9}.chpwd-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#0f172a80;justify-content:center;align-items:center;padding:1.5rem;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.chpwd-modal{border-radius:var(--radius-lg);z-index:1001;background:#fff;width:100%;max-width:420px;padding:2.25rem 2rem;animation:.3s slideUp;position:relative;box-shadow:0 25px 60px -15px #00000080,0 0 0 1px #00000014}.chpwd-header{text-align:center;margin-bottom:1.5rem}.chpwd-icon-ring{background:linear-gradient(135deg, var(--accent-amber) 0%, #f97316 100%);color:#fff;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 1rem;display:flex;box-shadow:0 8px 24px #f59e0b66}.chpwd-title{color:#0f172a;margin:0 0 .45rem;font-family:Outfit,sans-serif;font-size:1.35rem;font-weight:700}.chpwd-subtitle{color:#475569;margin:0;font-size:.86rem;line-height:1.5}.chpwd-form{flex-direction:column;gap:1rem;display:flex}.chpwd-skip-btn{cursor:pointer;width:100%;color:var(--text-muted);text-align:center;border-radius:var(--radius-sm);background:0 0;border:none;margin-top:.75rem;padding:.6rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.82rem;transition:color .15s,background .15s;display:block}.chpwd-skip-btn:hover{color:var(--text-body);background:var(--bg-page)}.chpwd-success{text-align:center;padding:1rem 0}.chpwd-success-icon{color:var(--accent-emerald);margin-bottom:1rem}.chpwd-success h3{color:var(--text-main);margin:0 0 .4rem;font-family:Outfit,sans-serif;font-size:1.3rem;font-weight:700}.chpwd-success p{color:var(--text-muted);margin:0;font-size:.85rem}.mobile-headsup-banner{-webkit-backdrop-filter:blur(16px);z-index:99999;cursor:pointer;color:#fff;background:#0f172af0;border:1px solid #ffffff26;border-radius:20px;width:calc(100% - 1.5rem);max-width:440px;padding:.85rem 1rem;animation:.35s cubic-bezier(.16,1,.3,1) slideInUp;position:fixed;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 16px 36px #00000059}.mobile-headsup-inner{align-items:flex-start;gap:.75rem;display:flex}.mobile-headsup-icon{background:#fff;border-radius:10px;flex-shrink:0;width:38px;height:38px;padding:2px;box-shadow:0 2px 8px #0003}.mobile-headsup-content{flex:1;min-width:0}.mobile-headsup-header{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.mobile-headsup-appname{color:#ffffffb3;letter-spacing:.05em;text-transform:uppercase;font-size:.68rem;font-weight:700}.mobile-headsup-time{color:#ffffff80;font-size:.68rem}.mobile-headsup-title{color:#fff;font-size:.85rem;font-weight:700;line-height:1.25}.mobile-headsup-body{color:#ffffffd9;margin-top:2px;font-size:.78rem;line-height:1.35}
