html{--mat-sys-background: #faf9fd;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f2f0f4;--mat-sys-inverse-primary: #abc7ff;--mat-sys-inverse-surface: #2f3033;--mat-sys-on-background: #1a1b1f;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #00458f;--mat-sys-on-primary-fixed: #001b3f;--mat-sys-on-primary-fixed-variant: #00458f;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #3e4759;--mat-sys-on-secondary-fixed: #131c2b;--mat-sys-on-secondary-fixed-variant: #3e4759;--mat-sys-on-surface: #1a1b1f;--mat-sys-on-surface-variant: #44474e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #0000ef;--mat-sys-on-tertiary-fixed: #00006e;--mat-sys-on-tertiary-fixed-variant: #0000ef;--mat-sys-outline: #74777f;--mat-sys-outline-variant: #c4c6d0;--mat-sys-primary: #005cbb;--mat-sys-primary-container: #d7e3ff;--mat-sys-primary-fixed: #d7e3ff;--mat-sys-primary-fixed-dim: #abc7ff;--mat-sys-scrim: #000000;--mat-sys-secondary: #565e71;--mat-sys-secondary-container: #dae2f9;--mat-sys-secondary-fixed: #dae2f9;--mat-sys-secondary-fixed-dim: #bec6dc;--mat-sys-shadow: #000000;--mat-sys-surface: #faf9fd;--mat-sys-surface-bright: #faf9fd;--mat-sys-surface-container: #efedf0;--mat-sys-surface-container-high: #e9e7eb;--mat-sys-surface-container-highest: #e3e2e6;--mat-sys-surface-container-low: #f4f3f6;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #dbd9dd;--mat-sys-surface-tint: #005cbb;--mat-sys-surface-variant: #e0e2ec;--mat-sys-tertiary: #343dff;--mat-sys-tertiary-container: #e0e0ff;--mat-sys-tertiary-fixed: #e0e0ff;--mat-sys-tertiary-fixed-dim: #bec2ff;--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}:root{--app-page-max-width: 1380px;--app-page-padding-x: 1.6rem;--app-page-padding-y: 1.4rem;--app-shell-sidebar-width: 280px;--app-shell-sidebar-padding: 1.35rem 1rem;--app-toolbar-height: 70px;--app-toolbar-background: rgba(246, 250, 255, .82);--app-surface: rgba(255, 255, 255, .84);--app-surface-strong: rgba(255, 255, 255, .92);--app-surface-soft: #f7fafe;--app-border-color: rgba(17, 38, 71, .08);--app-shadow-sm: 0 10px 28px rgba(18, 44, 84, .08);--app-shadow-md: 0 18px 44px rgba(17, 47, 94, .12);--app-radius-panel: 24px;--app-radius-hero: 26px;--app-gradient-hero: linear-gradient(135deg, #0f4c81 0%, #1866a5 45%, #4aa0d8 100%);--app-gradient-shell: linear-gradient(180deg, #f7fbff 0%, #edf4fb 100%);--app-brand-strong: #163b67;--app-brand: #1c63a8;--app-brand-soft: #e9f2ff;--app-text: #172033;--app-text-muted: #657791;--app-hero-padding-y: 1.2rem;--app-hero-padding-x: 1.4rem;--app-hero-gap: .75rem;--app-hero-tag-padding-y: .3rem;--app-hero-tag-padding-x: .72rem;--app-hero-title-size: 1.76rem;--app-hero-title-margin-top: .45rem;--app-hero-title-margin-bottom: .28rem;--app-hero-copy-size: .84rem;--app-hero-copy-max-width: 46rem;--app-font-size-body: .93rem;--app-font-size-body-sm: .8rem;--app-font-size-overline: .72rem;--app-font-size-title-xl: 2.2rem;--app-font-size-title-lg: 1.58rem;--app-font-size-title-md: 1.2rem;--app-toolbar-title-size: .98rem;--app-toolbar-title-weight: 600;--app-toolbar-action-size: .92rem;--app-toolbar-action-weight: 600;--app-toolbar-letter-spacing: -.01em;--app-toolbar-padding-x: 1.1rem;--app-toolbar-gap: .85rem;--app-banner-padding-y: 1.2rem;--app-banner-padding-x: 1.4rem;--app-banner-gap: .95rem;--app-banner-min-height: 132px;--app-banner-title-size: 1.76rem;--app-banner-title-weight: 700;--app-banner-copy-size: .84rem;--app-banner-title-color: #173553;--app-banner-copy-color: #5f7593;--app-banner-tag-gap-bottom: .9rem;--app-banner-tag-letter-spacing: .12em;--app-line-height-body: 1.6;--app-line-height-tight: 1.18}html,body{min-height:100%}body{margin:0;font-family:Roboto,Helvetica Neue,sans-serif;font-size:var(--app-font-size-body);background:radial-gradient(circle at top left,rgba(41,85,234,.08),transparent 28%),radial-gradient(circle at top right,rgba(74,160,216,.12),transparent 34%),linear-gradient(180deg,#f5f8fd,#e9f0f9);color:var(--app-text)}*{box-sizing:border-box}.mat-drawer-container{background:transparent!important}.mat-drawer-content{background:transparent}.mat-toolbar{min-height:var(--app-toolbar-height)}.mat-toolbar[class*=toolbar]{font-family:inherit;color:var(--app-text);min-height:var(--app-toolbar-height);padding-inline:var(--app-toolbar-padding-x);gap:var(--app-toolbar-gap);align-items:center;flex-wrap:nowrap}.mat-toolbar[class*=toolbar]>span:first-child{font-size:var(--app-toolbar-title-size);font-weight:var(--app-toolbar-title-weight);letter-spacing:var(--app-toolbar-letter-spacing);color:#24364f}.mat-toolbar[class*=toolbar] .mat-mdc-button,.mat-toolbar[class*=toolbar] .mat-mdc-outlined-button,.mat-toolbar[class*=toolbar] .mat-mdc-unelevated-button,.mat-toolbar[class*=toolbar] .mat-mdc-raised-button,.mat-toolbar[class*=toolbar] .toolbar-switcher a[mat-stroked-button],.mat-toolbar[class*=toolbar] .toolbar-switcher button[mat-stroked-button],.mat-toolbar[class*=toolbar] .toolbar-tabs button,.mat-toolbar[class*=toolbar] .toolbar-actions button{font-family:inherit;font-size:var(--app-toolbar-action-size);font-weight:var(--app-toolbar-action-weight);letter-spacing:var(--app-toolbar-letter-spacing)}.mat-toolbar[class*=toolbar] .toolbar-switcher,.mat-toolbar[class*=toolbar] .toolbar-tabs,.mat-toolbar[class*=toolbar] .toolbar-actions{display:inline-flex;align-items:center;gap:.65rem;min-width:0}.mat-toolbar[class*=toolbar] .toolbar-switcher,.mat-toolbar[class*=toolbar] .toolbar-tabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.mat-toolbar[class*=toolbar] .toolbar-switcher::-webkit-scrollbar,.mat-toolbar[class*=toolbar] .toolbar-tabs::-webkit-scrollbar{display:none}.mat-toolbar[class*=toolbar] .toolbar-switcher>*,.mat-toolbar[class*=toolbar] .toolbar-tabs>*,.mat-toolbar[class*=toolbar] .toolbar-actions>*{flex:0 0 auto}.mat-toolbar[class*=toolbar] .toolbar-switcher :is(.mat-mdc-button-base),.mat-toolbar[class*=toolbar] .toolbar-tabs :is(.mat-mdc-button-base),.mat-toolbar[class*=toolbar] .toolbar-actions :is(.mat-mdc-button-base){white-space:nowrap}.student-toolbar,.student-toolbar__search,.student-toolbar__search input,.student-toolbar__profile,.student-toolbar__breadcrumbs,.student-toolbar__logout{font-family:inherit}.student-toolbar{min-height:var(--app-toolbar-height);padding-inline:2rem;gap:var(--app-toolbar-gap)}.student-toolbar__search,.student-toolbar__search input,.student-toolbar__profile,.student-toolbar__breadcrumbs,.student-toolbar__logout{font-size:var(--app-toolbar-action-size);font-weight:var(--app-toolbar-action-weight);letter-spacing:var(--app-toolbar-letter-spacing)}:is(.hero,.hero-box,.hero-card,.courses-hero,.subjects-hero,.teachers-hero){min-height:var(--app-banner-min-height);padding:var(--app-banner-padding-y) var(--app-banner-padding-x);gap:var(--app-banner-gap)}:is(.hero,.hero-box,.hero-card,.courses-hero,.subjects-hero,.teachers-hero) :is(.hero-head){gap:var(--app-banner-gap)}:is(.hero,.hero-box,.hero-card,.courses-hero,.subjects-hero,.teachers-hero) :is(.hero-tag){padding:var(--app-hero-tag-padding-y) var(--app-hero-tag-padding-x);margin-bottom:var(--app-banner-tag-gap-bottom);font-size:var(--app-font-size-overline);font-weight:700;letter-spacing:var(--app-banner-tag-letter-spacing)}:is(.hero,.hero-box,.hero-card,.courses-hero,.subjects-hero,.teachers-hero) :is(h1,.hero-copy h1){margin:var(--app-hero-title-margin-top) 0 var(--app-hero-title-margin-bottom);font-size:var(--app-banner-title-size);line-height:var(--app-line-height-tight);font-weight:var(--app-banner-title-weight)}:is(.hero,.hero-box,.hero-card,.courses-hero,.subjects-hero,.teachers-hero) :is(p,.hero-copy p){margin:0;max-width:var(--app-hero-copy-max-width);font-size:var(--app-banner-copy-size);line-height:var(--app-line-height-body)}:is(.overview-hero,.subject-hero,.page-heading){gap:var(--app-banner-gap)}:is(.overview-hero__copy,.subject-hero__copy,.page-heading__copy){max-width:var(--app-hero-copy-max-width)}:is(.overview-hero__copy h1,.subject-hero__copy h1,.page-heading__copy h1){margin:0;font-size:var(--app-banner-title-size);line-height:var(--app-line-height-tight);font-weight:var(--app-banner-title-weight);color:var(--app-banner-title-color)}:is(.overview-hero__copy p,.subject-hero__copy p,.page-heading__copy p){margin:0;max-width:var(--app-hero-copy-max-width);font-size:max(var(--app-banner-copy-size),.95rem);line-height:var(--app-line-height-body);color:var(--app-banner-copy-color)}.page-heading__eyebrow{margin-bottom:var(--app-banner-tag-gap-bottom);letter-spacing:var(--app-banner-tag-letter-spacing)}@media(max-width:900px){.student-toolbar{padding-inline:1.25rem}:is(.hero,.hero-box,.hero-card,.courses-hero,.subjects-hero,.teachers-hero){min-height:auto;padding:1rem}}@media(max-width:1200px){.mat-toolbar[class*=toolbar]{flex-wrap:wrap;align-items:stretch;row-gap:.65rem;padding-block:.75rem}.mat-toolbar[class*=toolbar] .toolbar-spacer{display:none}.mat-toolbar[class*=toolbar] .toolbar-switcher,.mat-toolbar[class*=toolbar] .toolbar-tabs,.mat-toolbar[class*=toolbar] .toolbar-actions{order:3;width:100%;justify-content:flex-start;padding-bottom:.1rem}.mat-toolbar[class*=toolbar]>.mat-mdc-button-base:last-child,.mat-toolbar[class*=toolbar]>button:last-child{margin-left:auto}}.pdf-export-shell{position:fixed;left:-10000px;top:0;width:900px;opacity:0;pointer-events:none}.pdf-report-card{padding:0;background:#fff;color:#172033}.pdf-report-legacy{display:none}.pdf-bulletin{padding:30px 34px;background:#fff;color:#0b1220}.pdf-bulletin__header{display:flex;align-items:center;gap:16px;padding-bottom:16px;border-bottom:2px solid #0f1e3c;margin-bottom:16px}.pdf-bulletin__brand{display:flex;align-items:center;gap:16px;min-width:0}.pdf-bulletin__brand img{width:52px;height:52px;object-fit:contain;flex-shrink:0}.pdf-bulletin__brand strong,.pdf-bulletin__meta strong{display:block;font-weight:800}.pdf-bulletin__brand strong{font-size:17px}.pdf-bulletin__brand span,.pdf-bulletin__meta span{display:block;color:#64748b}.pdf-bulletin__brand span{font-size:12px;margin-top:2px}.pdf-bulletin__meta{margin-left:auto;text-align:right}.pdf-bulletin__meta strong{font-size:14px;color:#0f1e3c;letter-spacing:.04em;text-transform:uppercase}.pdf-bulletin__meta span{font-size:11px;margin-top:2px}.pdf-bulletin__student-band{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 16px;margin-bottom:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pdf-bulletin__field{display:flex;flex-direction:column;gap:2px}.pdf-bulletin__field span{font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.pdf-bulletin__field strong{font-size:13px;font-weight:700;color:#0b1220}.pdf-bulletin__status-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.pdf-bulletin__status-box{border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;text-align:center}.pdf-bulletin__status-box>strong{display:block;font-size:20px;font-weight:800;margin-bottom:2px;color:#059669}.pdf-bulletin__status-box:nth-child(2)>strong{color:#2563eb}.pdf-bulletin__status-box>span{display:block;font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}.pdf-bulletin__mini-bar{height:4px;border-radius:999px;background:#f1f5f9;margin-top:6px;overflow:hidden}.pdf-bulletin__mini-bar span{display:block;height:100%;border-radius:inherit;background:#10b981}.pdf-bulletin__status-pill,.pdf-bulletin__avg-chip,.pdf-bulletin__concept-chip{display:inline-flex;align-items:center;justify-content:center;font-weight:800}.pdf-bulletin__status-pill{min-width:86px;height:26px;padding:0 10px;border-radius:6px;font-size:11px;letter-spacing:.03em}.pdf-bulletin__status-pill.is-approved{background:#0f1e3c;color:#d4a017}.pdf-bulletin__status-pill.is-review{background:#fee2e2;color:#991b1b}.pdf-bulletin__section{margin-bottom:16px}.pdf-bulletin__section h3{margin:0 0 8px;font-size:11px;font-weight:800;color:#0f1e3c;text-transform:uppercase;letter-spacing:.06em}.pdf-bulletin__table thead tr{background:#0f1e3c}.pdf-bulletin__table thead th{padding:7px 10px;font-size:10.5px;font-weight:700;color:#fff;text-align:center;letter-spacing:.04em;text-transform:uppercase}.pdf-bulletin__table thead th.left,.pdf-bulletin__table td.left{text-align:left}.pdf-bulletin__table tbody td{padding:7px 10px;font-size:12px;color:#1e293b;border-bottom:1px solid #f1f5f9;text-align:center}.pdf-bulletin__table tbody td.left strong{display:block;font-weight:700;color:#0b1220}.pdf-bulletin__table tbody td.left span{display:block;font-size:10.5px;font-weight:500;color:#94a3b8;margin-top:2px}.pdf-bulletin__table tfoot tr{background:#e8f0e8;border-top:1.5px solid #0f1e3c}.pdf-bulletin__table tfoot td{padding:8px 10px;font-size:12px;font-weight:800;color:#0f172a;text-align:center}.pdf-bulletin__avg-chip,.pdf-bulletin__concept-chip{min-width:36px;height:22px;padding:0 8px;border-radius:5px;font-size:11.5px}.pdf-bulletin__concept-chip{min-width:84px;font-size:10px;letter-spacing:.03em}.pdf-bulletin__avg-chip.is-empty,.pdf-bulletin__concept-chip.is-empty,.pdf-bulletin__table td.is-empty{color:#cbd5e1}.pdf-bulletin__observations{border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px;display:grid;gap:8px}.pdf-bulletin__observation-row{display:flex;align-items:flex-start;gap:8px}.pdf-bulletin__observation-dot{width:6px;height:6px;border-radius:999px;flex:0 0 auto;margin-top:5px}.pdf-bulletin__observation-dot.is-green{background:#059669}.pdf-bulletin__observation-dot.is-amber{background:#d97706}.pdf-bulletin__observation-dot.is-blue{background:#2563eb}.pdf-bulletin__observations p{margin:0;font-size:12px;color:#1f2937;line-height:1.5}.pdf-bulletin__signatures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:8px}.pdf-bulletin__signatures div{border-top:1px solid #334155;padding-top:6px;text-align:center;font-size:10.5px;color:#475569;font-weight:600}.pdf-bulletin__footer{margin-top:16px;text-align:center;font-size:10px;color:#cbd5e1;letter-spacing:.04em}.report-preview-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.2rem;background:#0f172a6b;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.report-preview-modal{width:min(1040px,100%);max-height:92vh;display:flex;flex-direction:column;border-radius:20px;border:1px solid #dbe5f0;background:#fff;box-shadow:0 24px 70px #0f172a33;overflow:hidden}.report-preview-modal__header{padding:.9rem 1.1rem;border-bottom:1px solid #e8edf3;background:#fbfdff;display:flex;align-items:center;justify-content:space-between;gap:1rem}.report-preview-modal__header h3{margin:0;color:#18283f;font-size:.95rem;font-weight:800}.report-preview-modal__header p{margin:.18rem 0 0;color:#7f92ad;font-size:.75rem;font-weight:600}.report-preview-modal__actions{display:inline-flex;align-items:center;gap:.55rem;flex-shrink:0}.report-preview-modal__save{min-height:36px!important;padding-inline:.95rem!important;border-radius:12px!important;box-shadow:0 10px 22px #0f9d6b29}.report-preview-modal__close{color:#64748b}.report-preview-modal__body{flex:1;overflow:auto;padding:1rem;background:#f5f8fd}.report-preview-sheet{width:min(100%,860px);margin:0 auto;border-radius:18px;overflow:hidden;box-shadow:0 12px 28px #0f172a14}.pdf-bulletin__observation-editor{width:100%;min-height:132px;resize:vertical;border:1px solid #d7e2ee;border-radius:12px;background:#fff;padding:.85rem .95rem;color:#1f2937;font:inherit;font-size:12px;line-height:1.6;outline:0;transition:border-color .2s ease,box-shadow .2s ease}.pdf-bulletin__observation-editor::placeholder{color:#94a3b8}.pdf-bulletin__observation-editor:focus{border-color:#0f9d6b;box-shadow:0 0 0 3px #0f9d6b1f}@media(max-width:960px){.report-preview-overlay{padding:.75rem}.report-preview-modal{max-height:94vh}.report-preview-modal__body{padding:.65rem}}@media(max-width:768px){.mat-toolbar[class*=toolbar]{padding-inline:1rem}.mat-toolbar[class*=toolbar] .toolbar-switcher,.mat-toolbar[class*=toolbar] .toolbar-tabs,.mat-toolbar[class*=toolbar] .toolbar-actions{gap:.55rem}.mat-toolbar[class*=toolbar] .toolbar-actions{flex-wrap:wrap}}.mat-mdc-raised-button,.mat-mdc-unelevated-button,.mat-mdc-outlined-button{border-radius:14px!important}.mat-mdc-card{box-shadow:var(--app-shadow-sm);border-color:var(--app-border-color)!important}.mat-icon,.material-icons{font-family:Material Icons!important;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.course-dialog-panel .mat-mdc-dialog-surface{border-radius:28px;overflow:hidden;box-shadow:0 24px 80px #132c5633}.course-dialog-panel .mat-mdc-dialog-content{max-height:calc(88vh - 170px)}.course-dialog-panel .mat-mdc-dialog-actions{min-height:72px}.activities-month-dialog-panel .mat-mdc-dialog-surface{border-radius:24px;overflow:hidden;box-shadow:0 24px 80px #132c562e}.activities-month-dialog-panel .month-detail-dialog{background:#fff}.activities-month-dialog-panel .month-detail-dialog__header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.85rem;padding:.8rem 1rem;border-bottom:1px solid #eef2f7}.activities-month-dialog-panel .month-detail-dialog__heading{display:flex;align-items:center;justify-content:flex-start}.activities-month-dialog-panel .month-detail-dialog__nav,.activities-month-dialog-panel .month-detail-dialog__actions{display:flex;align-items:center;gap:.45rem;justify-content:flex-end}.activities-month-dialog-panel .month-detail-dialog__eyebrow{display:inline-flex;padding:.45rem .8rem;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.activities-month-dialog-panel .month-detail-dialog__title{display:flex;align-items:center;justify-content:center;gap:.35rem;min-width:0}.activities-month-dialog-panel .month-detail-dialog__title strong{font-size:1.1rem;font-weight:800;color:#12233d}.activities-month-dialog-panel .month-detail-dialog__title .mat-icon{color:#12233d}.activities-month-dialog-panel .month-detail-dialog__calendar{max-height:calc(92vh - 84px);overflow:auto}.activities-month-dialog-panel .month-detail-dialog__calendar .weekdays-row{padding:.5rem .7rem;font-size:.72rem}.activities-month-dialog-panel .month-detail-dialog__calendar .calendar-day{min-height:112px;padding:.38rem .42rem}.activities-month-dialog-panel .month-detail-dialog__calendar .activity-pill{cursor:pointer;padding:.24rem .34rem;border-radius:7px}.activities-month-dialog-panel .month-detail-dialog__calendar .activity-pill strong{font-size:.68rem;line-height:1.14}.activities-month-dialog-panel .month-detail-dialog__calendar .activity-pill span{font-size:.6rem}.activities-month-dialog-panel .month-detail-dialog__calendar .day-number{font-size:.92rem}@media(max-width:900px){.activities-month-dialog-panel .month-detail-dialog__header{grid-template-columns:1fr;justify-items:stretch}.activities-month-dialog-panel .month-detail-dialog__title{justify-content:flex-start}.activities-month-dialog-panel .month-detail-dialog__actions{justify-content:flex-end}}.activities-page .activity-sidebar__detail{height:44px;min-width:46px;padding-inline:1rem;border-radius:14px;font-size:.76rem;font-weight:700;color:#7c3aed;border-color:#7c3aed47;background:#fff}.activities-page .activity-sidebar__detail .mat-icon{color:#7c3aed;margin-right:.2rem}.activities-page .activity-sidebar__detail:hover{background:#faf5ff;border-color:#7c3aed57}.activities-page .activity-sidebar__add{width:44px;height:44px;min-width:44px;padding:0;border-radius:14px;background:#2563eb;color:#fff;display:grid;place-items:center}.activities-page .activity-sidebar__add .mat-icon{width:20px;height:20px;font-size:20px;margin:0}.activities-page .activity-sidebar__list{display:grid;gap:.7rem;padding:.6rem;max-height:355px;overflow-y:auto}.activities-page .activity-empty{display:grid;grid-template-columns:28px 1fr;align-items:center;column-gap:.65rem;row-gap:.12rem;padding:1.1rem .2rem .35rem;text-align:left;color:#64748b}.activities-page .activity-empty .mat-icon{grid-column:1;grid-row:1/span 2;width:28px;height:28px;font-size:28px;color:#475569;flex-shrink:0}.activities-page .activity-empty strong{grid-column:2;color:#1e293b;font-size:.8rem;font-weight:800;line-height:1.2}.activities-page .activity-empty span{grid-column:2;font-size:.76rem;color:#64748b;line-height:1.2}.student-report-actions{display:flex;align-items:center;justify-content:flex-end;justify-self:end;gap:.65rem;flex-wrap:wrap}.student-report-button{min-height:40px!important;border-radius:14px!important;font-weight:800!important}.student-report-button--primary{background:#2563eb!important;color:#fff!important}.student-report-pdf-shell{position:fixed;left:-10000px;top:0;width:880px;pointer-events:none;opacity:0}.student-report-sheet{padding:18px 20px;background:#fff;border-radius:20px;box-shadow:0 14px 34px #0f172a14}.student-report-sheet--preview{padding:20px 22px}.report-preview-overlay{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;padding:1rem;background:#0f172a7a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.report-preview-modal{width:min(1080px,100%);max-height:min(92vh,920px);display:flex;flex-direction:column;border-radius:24px;border:1px solid rgba(203,213,225,.9);background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 24px 80px #0f172a3d;overflow:hidden}.report-preview-modal__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;background:linear-gradient(135deg,#eef6ff,#f8fbff);border-bottom:1px solid rgba(203,213,225,.9)}.report-preview-modal__header h3{margin:0;font-size:1rem;font-weight:800;color:#173553}.report-preview-modal__header p{margin:.18rem 0 0;font-size:.8rem;font-weight:600;color:#64748b}.report-preview-modal__actions{display:flex;align-items:center;gap:.6rem}.report-preview-modal__close{background:#f1f5f9!important;color:#475569!important}.report-preview-modal__body{padding:1rem;overflow:auto;background:linear-gradient(180deg,#f8fbff,#eef4fb)}.pdf-bulletin{display:grid;gap:1rem;color:#0f172a}.pdf-bulletin__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.2rem;padding-bottom:1rem;border-bottom:2px solid #1e3a8a}.pdf-bulletin__brand{display:flex;align-items:center;gap:.9rem}.pdf-bulletin__brand img{width:56px;height:56px;object-fit:contain}.pdf-bulletin__brand strong{display:block;font-size:1.15rem;font-weight:800;color:#0f172a}.pdf-bulletin__brand span{display:block;margin-top:.12rem;font-size:.76rem;color:#64748b}.pdf-bulletin__meta{text-align:right;display:grid;gap:.18rem}.pdf-bulletin__meta strong{font-size:.95rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#0f1e3c}.pdf-bulletin__meta span{font-size:.74rem;color:#64748b}.pdf-bulletin__student-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;padding:.95rem 1rem;border:1px solid #dbe5f1;border-radius:16px;background:#f8fbff}.pdf-bulletin__field{display:grid;gap:.18rem}.pdf-bulletin__field span{font-size:.66rem;font-weight:800;color:#94a3b8;letter-spacing:.05em;text-transform:uppercase}.pdf-bulletin__field strong{font-size:.9rem;font-weight:800;color:#0f172a}.pdf-bulletin__status-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.pdf-bulletin__status-box{padding:.95rem 1rem;border:1px solid #dbe5f1;border-radius:16px;background:#fff;text-align:center}.pdf-bulletin__status-box strong{display:block;font-size:1.8rem;font-weight:800;color:#0f766e}.pdf-bulletin__status-box span{display:block;margin-top:.18rem;font-size:.72rem;font-weight:800;color:#8a9bb5;letter-spacing:.04em;text-transform:uppercase}.pdf-bulletin__mini-bar{height:5px;margin-top:.7rem;border-radius:999px;background:#e2e8f0;overflow:hidden}.pdf-bulletin__mini-bar span{display:block;height:100%;border-radius:999px;background:#22c55e}.pdf-bulletin__mini-bar--blue span{background:#3b82f6}.pdf-bulletin__status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:160px;min-height:38px;border-radius:10px;padding:0 .9rem!important;font-size:.9rem!important}.pdf-bulletin__status-pill.is-approved{background:#172554;color:#facc15!important}.pdf-bulletin__status-pill.is-review{background:#7f1d1d;color:#fff!important}.pdf-bulletin__section{display:grid;gap:.6rem}.pdf-bulletin__section h3{margin:0;font-size:.86rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#0f1e3c}.pdf-bulletin__table{width:100%;border-collapse:collapse}.pdf-bulletin__table thead tr{background:#172554}.pdf-bulletin__table th{padding:.55rem .7rem;font-size:.72rem;font-weight:800;color:#fff;text-align:center;letter-spacing:.04em;text-transform:uppercase}.pdf-bulletin__table th.left,.pdf-bulletin__table td.left{text-align:left}.pdf-bulletin__table tbody tr:nth-child(2n){background:#f8fafc}.pdf-bulletin__table td{padding:.65rem .7rem;font-size:.84rem;color:#334155;border-bottom:1px solid #eef2f7;text-align:center}.pdf-bulletin__table td strong{display:block;font-size:.9rem;color:#0f172a}.pdf-bulletin__table td span{display:block;font-size:.74rem;color:#94a3b8}.pdf-bulletin__table tfoot tr{background:#eef6ef;border-top:2px solid #172554}.pdf-bulletin__table tfoot td{font-weight:800;color:#0f172a}.pdf-bulletin__avg-chip,.pdf-bulletin__concept-chip{display:inline-flex;align-items:center;justify-content:center;min-width:56px;min-height:30px;padding:0 .7rem;border-radius:9px;font-size:.8rem;font-weight:800}.pdf-bulletin__avg-chip.is-high,.pdf-bulletin__concept-chip.is-high{background:#d1fae5;color:#065f46}.pdf-bulletin__avg-chip.is-mid,.pdf-bulletin__concept-chip.is-mid{background:#fef3c7;color:#92400e}.pdf-bulletin__avg-chip.is-low,.pdf-bulletin__concept-chip.is-low{background:#fee2e2;color:#991b1b}.pdf-bulletin__avg-chip.is-empty,.pdf-bulletin__concept-chip.is-empty{background:#f1f5f9;color:#94a3b8}.pdf-bulletin__table td.is-high{color:#059669;font-weight:800}.pdf-bulletin__table td.is-mid{color:#d97706;font-weight:800}.pdf-bulletin__table td.is-low{color:#dc2626;font-weight:800}.pdf-bulletin__table td.is-empty{color:#cbd5e1;font-weight:700}.pdf-bulletin__observations{padding:.9rem 1rem;border:1px solid #dbe5f1;border-radius:14px;background:#fff}.pdf-bulletin__observations--readonly{display:grid;gap:.55rem}.pdf-bulletin__observation-line{position:relative;padding-left:1rem;font-size:.84rem;line-height:1.55;color:#334155}.pdf-bulletin__observation-line:before{content:"";position:absolute;left:0;top:.48rem;width:7px;height:7px;border-radius:50%;background:#10b981}.pdf-bulletin__observation-line:nth-child(2):before{background:#f59e0b}.pdf-bulletin__observation-line:nth-child(3):before{background:#3b82f6}.pdf-bulletin__signatures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.pdf-bulletin__signatures div{padding-top:.6rem;border-top:1px solid #334155;text-align:center;font-size:.75rem;line-height:1.5;color:#64748b;font-weight:700}.pdf-bulletin__footer{text-align:center;font-size:.7rem;color:#cbd5e1;letter-spacing:.04em}@media(max-width:900px){.student-report-actions{justify-content:flex-start;justify-self:start}.report-preview-modal{width:min(100%,980px)}.pdf-bulletin__student-band,.pdf-bulletin__status-row,.pdf-bulletin__signatures{grid-template-columns:1fr}}
