.statistics-page{padding:2rem}.stats-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-top:2rem}.stat-card{background-color:var(--card-bg);padding:2rem;border-radius:var(--border-radius);box-shadow:var(--shadow-sm);text-align:center}.stat-card h2{font-size:1.5rem;margin-bottom:1rem}.stat-card p{font-size:2.5rem;font-weight:700}:root{--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-primary-alpha: rgba(59,130,246,.08);--color-secondary: #64748b;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-danger-alpha: rgba(239,68,68,.08);--color-info: #06b6d4;--text-primary: #1e293b;--text-secondary: #64748b;--text-tertiary: #94a3b8;--text-inverse: #ffffff;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--border-primary: #e2e8f0;--border-secondary: #cbd5e1;--border-focus: #3b82f6;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0,0,0,.05);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.06), 0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.07), 0 4px 6px -2px rgba(0,0,0,.05);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04);--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-dropdown: 100;--z-sticky: 120;--z-fixed: 130;--z-modal-backdrop: 140;--z-modal: 150;--z-popover: 160;--z-tooltip: 170;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--button-display: inline-flex;--button-align-items: center;--button-justify-content: center;--button-border: none;--button-border-radius: var(--radius-md);--button-font-weight: var(--font-weight-medium);--button-cursor: pointer;--button-transition: all var(--transition-fast);--button-white-space: nowrap;--button-user-select: none;--button-focus-outline: 2px solid var(--border-focus);--button-focus-outline-offset: 2px;--button-disabled-opacity: .6;--button-disabled-cursor: not-allowed;--button-sm-padding: var(--space-xs) var(--space-sm);--button-sm-font-size: var(--font-size-xs);--button-sm-min-height: 28px;--button-md-padding: var(--space-sm) var(--space-md);--button-md-font-size: var(--font-size-sm);--button-md-min-height: 36px;--button-lg-padding: var(--space-md) var(--space-lg);--button-lg-font-size: var(--font-size-base);--button-lg-min-height: 44px;--button-xl-padding: var(--space-lg) var(--space-xl);--button-xl-font-size: var(--font-size-lg);--button-xl-min-height: 52px;--button-primary-bg: var(--color-primary);--button-primary-color: var(--text-inverse);--button-primary-hover-bg: var(--color-primary-dark);--button-secondary-bg: var(--bg-secondary);--button-secondary-color: var(--text-primary);--button-secondary-hover-bg: var(--bg-tertiary);--button-outline-bg: transparent;--button-outline-color: var(--color-primary);--button-outline-border: 1px solid var(--color-primary);--button-outline-hover-bg: var(--color-primary);--button-outline-hover-color: var(--text-inverse);--button-ghost-bg: transparent;--button-ghost-color: var(--text-secondary);--button-ghost-border: none;--button-ghost-hover-bg: var(--bg-secondary);--button-danger-bg: var(--color-danger);--button-danger-color: var(--text-inverse);--button-danger-hover-bg: #dc2626;--input-container-display: flex;--input-container-flex-direction: column;--input-container-gap: var(--space-xs);--input-label-font-size: var(--font-size-sm);--input-label-font-weight: var(--font-weight-medium);--input-label-color: var(--text-primary);--input-required-color: var(--color-danger);--input-required-margin-left: var(--space-xs);--input-padding: var(--space-sm) var(--space-md);--input-border: 1px solid var(--border-primary);--input-border-radius: var(--radius-md);--input-font-size: var(--font-size-base);--input-bg-color: var(--bg-primary);--input-color: var(--text-primary);--input-transition: border-color var(--transition-fast), box-shadow var(--transition-fast);--input-min-height: 40px;--input-focus-outline: none;--input-focus-border-color: var(--color-primary);--input-focus-box-shadow: 0 0 0 2px var(--color-primary-alpha);--input-disabled-bg: var(--bg-secondary);--input-disabled-color: var(--text-tertiary);--input-disabled-cursor: not-allowed;--input-placeholder-color: var(--text-tertiary);--input-error-border-color: var(--color-danger);--input-error-focus-box-shadow: 0 0 0 3px rgba(239, 68, 68, .1);--input-error-message-font-size: var(--font-size-xs);--input-error-message-color: var(--color-danger);--input-error-message-margin-top: var(--space-xs);--modal-overlay-position: fixed;--modal-overlay-inset: 0;--modal-overlay-bg: rgba(0, 0, 0, .5);--modal-overlay-display: flex;--modal-overlay-align-items: center;--modal-overlay-justify-content: center;--modal-overlay-z-index: var(--z-modal-backdrop);--modal-overlay-opacity: 1;--modal-overlay-pointer-events: auto;--modal-overlay-transition: opacity var(--transition-normal);--modal-bg: var(--bg-primary);--modal-border-radius: var(--radius-lg);--modal-box-shadow: var(--shadow-xl);--modal-min-width: 320px;--modal-max-width: 90vw;--modal-max-height: 90vh;--modal-padding: var(--space-xl);--modal-display: flex;--modal-flex-direction: column;--modal-animation: modalIn .2s ease-out;--modal-header-display: flex;--modal-header-align-items: center;--modal-header-justify-content: space-between;--modal-header-margin-bottom: var(--space-lg);--modal-title-font-size: var(--font-size-xl);--modal-title-font-weight: var(--font-weight-semibold);--modal-title-color: var(--text-primary);--modal-content-overflow-y: auto;--modal-content-color: var(--text-primary)}[data-theme=dark]{--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--text-inverse: #1e293b;--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-card: #1e293b;--border-primary: #334155;--border-secondary: #475569;--border-focus: #3b82f6;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .2), 0 2px 4px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3), 0 4px 6px -2px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .3), 0 10px 10px -5px rgba(0, 0, 0, .2)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-primary);transition:background-color var(--transition-normal),color var(--transition-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin-bottom:var(--space-md)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-base)}h6{font-size:var(--font-size-sm)}p{margin-bottom:var(--space-md)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}input,textarea,select,button{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none;padding:0}*:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;box-shadow:0 0 0 4px var(--border-focus)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.grid{display:grid;gap:var(--space-md)}.grid-cols-1{grid-template-columns:repeat(11fr)}.grid-cols-2{grid-template-columns:repeat(21fr)}.grid-cols-3{grid-template-columns:repeat(31fr)}.grid-cols-4{id-template-columns:repeat(41r)}@media (min-width: 640x){.sm\:grid-cols-2{grid-template-columns:repeat(2fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}}@media (min-width: 768x){.md\:grid-cols-2{id-template-columns:repeat(2fr)}.md\:grid-cols-3{id-template-columns:repeat(3fr)}.md\:grid-cols-4{id-template-columns:repeat(4,1fr)}}@media (min-width:1024x){.lg\:grid-cols-2{id-template-columns:repeat(2fr)}.lg\:grid-cols-3{id-template-columns:repeat(3fr)}.lg\:grid-cols-4{id-template-columns:repeat(4,1fr)}}.container{width:10;max-width:1200;margin:0 auto;padding:0 var(--space-md)}@media (min-width: 640px){.container{padding:0 var(--space-lg)}}@media (min-width: 768px){.container{padding:0 var(--space-xl)}}@media (min-width: 1024px){.container{padding:0var(--space-2xl)}}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.m0{margin:0}.m-sm{margin:var(--space-sm)}.m-md{margin:var(--space-md)}.m-lg{margin:var(--space-lg)}.mt-0{margin-top:0}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.p-0{padding:0}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.pt-0{padding-top:0}.pt-sm{padding-top:var(--space-sm)}.pt-md{padding-top:var(--space-md)}.pt-lg{padding-top:var(--space-lg)}.pb-0{padding-bottom:0}.pb-sm{padding-bottom:var(--space-sm)}.pb-md{padding-bottom:var(--space-md)}.pb-lg{padding-bottom:var(--space-lg)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.font-light{font-weight:var(--font-weight-light)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-inverse{color:var(--text-inverse)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.bg-card{background-color:var(--bg-card)}.border{border:1px solid var(--border-primary)}.border-t{border-top:1px solid var(--border-primary)}.border-b{border-bottom:1px solid var(--border-primary)}.border-l{border-left:1px solid var(--border-primary)}.border-r{border-right:1px solid var(--border-primary)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.transition{transition:all var(--transition-normal)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.hidden{display:none}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}@media (min-width: 640px){.sm\:hidden{display:none}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:inline-block{display:inline-block}}@media (min-width: 768px){.md\:hidden{display:none}.md\:block{display:block}.md\:inline{display:inline}.md\:inline-block{display:inline-block}}@media (min-width:1024x){.lg\:hidden{display:none}.lg\:block{display:block}.lg\:inline{display:inline}.lg\:inline-block{display:inline-block}}button,.button{display:var(--button-display);align-items:var(--button-align-items);justify-content:var(--button-justify-content);border:var(--button-border);border-radius:var(--button-border-radius);font-weight:var(--button-font-weight);text-decoration:none;cursor:var(--button-cursor);transition:var(--button-transition);white-space:var(--button-white-space);-webkit-user-select:var(--button-user-select);user-select:var(--button-user-select);padding:var(--button-md-padding);font-size:var(--button-md-font-size);min-height:var(--button-md-min-height)}button:focus,.button:focus{outline:var(--button-focus-outline);outline-offset:var(--button-focus-outline-offset)}button:disabled,.button:disabled{opacity:var(--button-disabled-opacity);cursor:var(--button-disabled-cursor)}.button.primary,button.primary{background-color:var(--button-primary-bg);color:var(--button-primary-color)}.button.primary:hover:not(:disabled),button.primary:hover:not(:disabled){background-color:var(--button-primary-hover-bg)}.button.secondary,button.secondary{background-color:var(--button-secondary-bg);color:var(--button-secondary-color)}.button.secondary:hover:not(:disabled),button.secondary:hover:not(:disabled){background-color:var(--button-secondary-hover-bg)}.button.outline,button.outline{background-color:var(--button-outline-bg);color:var(--button-outline-color);border:var(--button-outline-border)}.button.outline:hover:not(:disabled),button.outline:hover:not(:disabled){background-color:var(--button-outline-hover-bg);color:var(--button-outline-hover-color)}.button.ghost,button.ghost{background-color:var(--button-ghost-bg);color:var(--button-ghost-color);border:var(--button-ghost-border)}.button.ghost:hover:not(:disabled),button.ghost:hover:not(:disabled){background-color:var(--button-ghost-hover-bg)}.button.danger,button.danger{background-color:var(--button-danger-bg);color:var(--button-danger-color)}.button.danger:hover:not(:disabled),button.danger:hover:not(:disabled){background-color:var(--button-danger-hover-bg)}.button.sm,button.sm{padding:var(--button-sm-padding);font-size:var(--button-sm-font-size);min-height:var(--button-sm-min-height)}.button.md,button.md{padding:var(--button-md-padding);font-size:var(--button-md-font-size);min-height:var(--button-md-min-height)}.button.lg,button.lg{padding:var(--button-lg-padding);font-size:var(--button-lg-font-size);min-height:var(--button-lg-min-height)}.button.xl,button.xl{padding:var(--button-xl-padding);font-size:var(--button-xl-font-size);min-height:var(--button-xl-min-height)}@media (min-width:768x){button,.button{padding:var(--button-lg-padding);font-size:var(--button-lg-font-size)}}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-sm);box-shadow:var(--shadow-md);border:1px solid var(--border-primary);transition:var(--transition-normal);font-size:var(--font-size-xs);max-width:220px;margin:0 auto;aspect-ratio:1 / 1;min-height:0;max-height:100vw;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card-header{display:flex;align-items:center;gap:4px;margin-bottom:var(--space-xs)}.card-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:#fff}.card-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.card-count{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:var(--space-2xs) 0}.card-description{color:var(--text-secondary);font-size:var(--font-size-xs)}.card-content{padding:0;flex-grow:1;font-size:var(--font-size-xs)}.card-footer{margin-top:var(--space-2xs);padding-top:var(--space-2xs);border-top:1px solid var(--border-primary);display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs)}.card-date{font-size:.7em;color:var(--text-tertiary)}.card-actions{display:flex;gap:var(--space-2xs);align-items:center}.input-container{display:var(--input-container-display);flex-direction:var(--input-container-flex-direction);gap:var(--input-container-gap)}.input-label{font-size:var(--input-label-font-size);font-weight:var(--input-label-font-weight);color:var(--input-label-color)}.input-required{color:var(--input-required-color);margin-left:var(--input-required-margin-left)}input,.input{padding:var(--input-padding);border:var(--input-border);border-radius:var(--input-border-radius);font-size:var(--input-font-size);background-color:var(--input-bg-color);color:var(--input-color);transition:var(--input-transition);min-height:var(--input-min-height)}input:focus,.input:focus{outline:var(--input-focus-outline);border-color:var(--input-focus-border-color);box-shadow:var(--input-focus-box-shadow)}input:disabled,.input:disabled{background-color:var(--input-disabled-bg);color:var(--input-disabled-color);cursor:var(--input-disabled-cursor)}input::placeholder,.input::placeholder{color:var(--input-placeholder-color)}input.error,.input.error{border-color:var(--input-error-border-color)}input.error:focus,.input.error:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-focus-box-shadow)}.input-error-message{font-size:var(--input-error-message-font-size);color:var(--input-error-message-color);margin-top:var(--input-error-message-margin-top)}.modal-overlay{position:var(--modal-overlay-position);inset:var(--modal-overlay-inset);background:var(--modal-overlay-bg);display:var(--modal-overlay-display);align-items:var(--modal-overlay-align-items);justify-content:var(--modal-overlay-justify-content);z-index:var(--modal-overlay-z-index);opacity:var(--modal-overlay-opacity);pointer-events:var(--modal-overlay-pointer-events);transition:var(--modal-overlay-transition)}.modal{background:var(--modal-bg);border-radius:var(--modal-border-radius);box-shadow:var(--modal-box-shadow);min-width:var(--modal-min-width);max-width:var(--modal-max-width);max-height:var(--modal-max-height);padding:var(--modal-padding);display:var(--modal-display);flex-direction:var(--modal-flex-direction);animation:var(--modal-animation)}@keyframes modalIn{0%{opacity:0;transform:translateY(40px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:var(--modal-header-display);align-items:var(--modal-header-align-items);justify-content:var(--modal-header-justify-content);margin-bottom:var(--modal-header-margin-bottom)}.modal-title{font-size:var(--modal-title-font-size);font-weight:var(--modal-title-font-weight);color:var(--modal-title-color)}.modal-content{overflow-y:var(--modal-content-overflow-y);color:var(--modal-content-color)}.loading-spinner-container{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-xl);width:100%;height:100%}.spinner{border:4px solid var(--border-primary);border-top:4px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.spinner.sm{width:24px;height:24px}.spinner.md{width:48px;height:48px}.spinner.lg{width:64px;height:64px}.loading-text{font-size:var(--font-size-md);color:var(--text-secondary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.student-filters{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm);max-width:960px;margin-left:auto;margin-right:auto}.filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.filters-title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0}.filters-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.filter-group{display:flex;flex-direction:column;gap:var(--space-xs)}.filter-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-primary)}.filter-select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-alpha)}.active-filters{margin-top:var(--space-md);border-top:1px solid var(--border-primary);padding-top:var(--space-md)}.active-filters-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--space-sm);display:block}.active-filters-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.filter-tag{background:var(--bg-primary);color:var(--text-primary);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-sm);display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);border:1px solid var(--border-primary)}@media (max-width: 992px){.filters-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.student-filters{padding:var(--space-sm)}.filters-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.filters-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.active-filters-tags{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}}.entity-grid-container{width:100%}.entity-grid-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-primary)}.entity-grid-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0}.entity-grid{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);background-color:var(--bg-secondary);border-radius:var(--radius-lg);text-align:center;color:var(--text-secondary);gap:var(--space-md)}.empty-state .icon{width:64px;height:64px;color:var(--color-primary)}@media (max-width: 768px){.entity-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-sm)}.entity-grid-header{flex-direction:column;align-items:flex-start;gap:var(--space-md)}}.layout{display:flex;flex-direction:column;min-height:100vh;background-color:var(--bg-primary);color:var(--text-primary)}.header{position:sticky;top:0;z-index:10;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary);box-shadow:var(--shadow-sm);padding:var(--space-sm) var(--space-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto}.brand{display:flex;align-items:center;gap:var(--space-sm)}.brand .logo{color:var(--color-primary)}.brand .title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0}.header-actions{display:flex;align-items:center;gap:var(--space-sm)}.user-info{display:flex;flex-direction:column;align-items:flex-end;font-size:var(--font-size-xs)}.user-name{font-weight:var(--font-weight-semibold)}.user-role{color:var(--text-secondary)}.main{flex-grow:1;padding:var(--space-lg);width:100%;max-width:1400px;margin:0 auto}.footer{padding:var(--space-md) var(--space-lg);background-color:var(--bg-secondary);border-top:1px solid var(--border-primary);text-align:center;font-size:var(--font-size-xs);color:var(--text-secondary)}.dashboard-page{padding:var(--space-lg)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,220px));gap:var(--space-xs);margin-top:var(--space-xs);justify-content:center}.login-page-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:var(--space-lg);background-color:var(--bg-primary)}.login-page-container .card{max-width:400px;width:100%;padding:var(--space-xl)}.login-header{text-align:center;margin-bottom:var(--space-lg)}.login-logo{color:var(--color-primary);margin-bottom:var(--space-md)}.login-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0}.login-subtitle{color:var(--text-secondary);margin-top:var(--space-xs)}.login-form{display:flex;flex-direction:column;gap:var(--space-md)}.login-error-message{background-color:var(--color-danger-alpha);color:var(--color-danger);padding:var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--color-danger);font-size:var(--font-size-sm);text-align:center}.login-submit-button{margin-top:var(--space-sm)}.login-footer{margin-top:var(--space-lg);font-size:var(--font-size-xs);color:var(--text-secondary);text-align:center}.login-credentials{margin-top:var(--space-sm);padding:var(--space-sm);background-color:var(--bg-secondary);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-xs);text-align:left}.login-page-header-actions{position:absolute;top:var(--space-md);right:var(--space-md);display:flex;gap:var(--space-sm)}.attendance-page{display:flex;flex-direction:column;gap:var(--space-lg)}.attendance-header{padding-bottom:var(--space-md);border-bottom:1px solid var(--border-primary)}.attendance-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0}.attendance-subtitle{color:var(--text-secondary);margin-top:var(--space-xs)}.attendance-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-lg)}.attendance-stats{display:flex;justify-content:space-around;text-align:center;padding:var(--space-md) 0}.attendance-stat{display:flex;flex-direction:column;gap:var(--space-xs)}.attendance-stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.attendance-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.attendance-actions{display:flex;flex-direction:column;gap:var(--space-md);justify-content:center}.students-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--space-xs);padding:var(--space-xs)}.students-list .card-content{text-align:center;display:flex;align-items:center;justify-content:center}.student-info{display:flex;flex-direction:column;gap:2px;align-items:center}.student-details{margin:0;font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.1}.student-age{margin:0;font-size:.7em;color:var(--text-tertiary);line-height:1.1}.student-name{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:1.2;text-align:center;word-break:break-word}.student-details{margin:0;font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.2}.student-age{margin:0;font-size:.7em;color:var(--text-tertiary);line-height:1.2}
