@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--primary:#4f46e5;--primary-hover:#4338ca;--primary-light:#6366f1;--primary-dim:#4f46e50d;--primary-rgb:79, 70, 229;--success:#10b981;--success-hover:#059669;--success-dim:#10b98114;--warning:#d97706;--warning-dim:#d9770614;--danger:#ef4444;--danger-hover:#dc2626;--danger-dim:#ef444414;--info:#0284c7;--info-dim:#0284c714;--bg-root:#f8fafc;--bg-app:#fff;--bg-sidebar:#f8fafc;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-input:#fff;--bg-elevated:#e2e8f0;--text-main:#0f172a;--text-sub:#334155;--text-muted:#64748b;--text-inverse:#fff;--text-sidebar:#475569;--text-sidebar-active:#4f46e5;--border-color:#cbd5e1;--border-hover:#94a3b8;--border-accent:#4f46e5;--bg-hover:#00000008;--bg-hover-strong:#0000000f;--font-display:"Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -2px #00000008;--shadow-lg:0 10px 15px -3px #0000000d, 0 4px 6px -4px #00000008;--shadow-card:0 1px 3px 0 #0000000d, 0 1px 2px 0 #00000008}[data-theme=dark]{--primary:#4f46e5;--primary-hover:#4338ca;--primary-light:#818cf8;--primary-dim:#4f46e51a;--primary-rgb:79, 70, 229;--success:#34d399;--success-hover:#10b981;--success-dim:#34d39926;--warning:#fbbf24;--warning-dim:#fbbf2426;--danger:#f87171;--danger-hover:#ef4444;--danger-dim:#f8717126;--info:#38bdf8;--info-dim:#38bdf826;--bg-root:#0f172a;--bg-app:#0f172a;--bg-sidebar:#1e293b;--bg-card:#1e293b;--bg-card-hover:#1e293b;--bg-input:#0f172a;--bg-elevated:#334155;--text-main:#f8fafc;--text-sub:#cbd5e1;--text-muted:#64748b;--text-inverse:#0f172a;--text-sidebar:#94a3b8;--text-sidebar-active:#fff;--border-color:#334155;--border-hover:#475569;--border-accent:#4f46e5;--bg-hover:#ffffff0d;--bg-hover-strong:#ffffff1a;--shadow-sm:0 1px 2px 0 #0003;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -2px #0003;--shadow-lg:0 10px 15px -3px #0000004d, 0 4px 6px -4px #0003;--shadow-card:0 1px 3px 0 #0000004d, 0 1px 2px 0 #0003}*,:before,:after{box-sizing:border-box;margin:0;padding:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}body{font-family:var(--font-body);background-color:var(--bg-root);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-root)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.portal-layout{width:100vw;min-height:100vh;display:flex}.portal-sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:250px;display:flex}.sidebar-brand{border-bottom:1px solid var(--border-color);align-items:center;gap:.75rem;padding:1.25rem 1.5rem;display:flex}.brand-icon{border-radius:var(--radius-sm);background:var(--primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.brand-info h2{color:var(--text-main);font-size:.9rem;font-weight:700}.brand-info p{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.65rem}.sidebar-nav{flex-direction:column;flex:1;gap:.25rem;padding:1rem .5rem;display:flex}.nav-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:.5rem .75rem;font-size:.65rem;font-weight:700}.nav-link{border-radius:var(--radius-sm);color:var(--text-sidebar);cursor:pointer;align-items:center;gap:.75rem;padding:.6rem .75rem;font-size:.85rem;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-link:hover{color:var(--text-main);background:var(--bg-hover)}.nav-link.active{color:#fff;background:var(--primary)}.nav-badge{background:var(--bg-hover-strong);color:var(--text-sub);border-radius:var(--radius-full);margin-left:auto;padding:.1rem .4rem;font-size:.7rem;font-weight:600}.nav-link.active .nav-badge{color:#fff;background:#fff3}.sidebar-footer{border-top:1px solid var(--border-color);align-items:center;gap:.5rem;padding:1rem;display:flex}.sidebar-footer-dot{background:var(--success);border-radius:50%;width:6px;height:6px}.sidebar-footer span{color:var(--text-muted);font-size:.7rem}.portal-main{background:var(--bg-app);flex-direction:column;flex:1;min-width:0;display:flex}.portal-topbar{background:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:10;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.topbar-title h1{color:var(--text-main);font-size:1.15rem;font-weight:700}.topbar-breadcrumb{color:var(--text-muted);margin-top:2px;font-size:.7rem}.topbar-actions{align-items:center;gap:.75rem;display:flex}.topbar-clock{font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.3rem .6rem;font-size:.75rem}.portal-content{flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem;display:flex;overflow-y:auto}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.8rem;font-weight:600;transition:background .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-hover);color:var(--text-sub);border-color:var(--border-color)}.btn-secondary:hover{background:var(--bg-hover-strong);border-color:var(--border-hover);color:var(--text-main)}.btn-danger{background:var(--danger-dim);color:var(--danger);border-color:#ef444433}.btn-danger:hover{background:#ef444433}.btn-success{background:var(--success-dim);color:var(--success);border-color:#10b98133}.btn-success:hover{background:#10b98133}.portal-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-card);flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.portal-card-header{justify-content:space-between;align-items:center;display:flex}.portal-card-title{color:var(--text-main);align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;display:flex}.stats-grid{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-card);align-items:center;gap:.875rem;padding:1rem 1.25rem;display:flex}.stat-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stat-icon.primary{background:var(--primary-dim);color:var(--primary)}.stat-icon.success{background:var(--success-dim);color:var(--success)}.stat-icon.warning{background:var(--warning-dim);color:var(--warning)}.stat-icon.secondary{background:var(--info-dim);color:var(--info)}.stat-info{flex-direction:column;gap:.1rem;display:flex}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.68rem;font-weight:600}.stat-value{color:var(--text-main);font-size:1.25rem;font-weight:700}.insights-grid{grid-template-columns:1fr 1.2fr;gap:1rem;display:grid}.insight-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.insight-header{justify-content:space-between;align-items:center;display:flex}.insight-title{color:var(--text-main);align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;display:flex}.stats-summary-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.metric-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.metric-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.metric-icon.indigo{background:var(--primary-dim);color:var(--primary)}.metric-icon.sky{background:var(--info-dim);color:var(--info)}.metric-icon.emerald{background:var(--success-dim);color:var(--success)}.metric-icon.amber{background:var(--warning-dim);color:var(--warning)}.metric-data{flex-direction:column;display:flex}.metric-label{color:var(--text-muted);text-transform:uppercase;font-size:.65rem;font-weight:600}.metric-value{color:var(--text-main);font-size:1.15rem;font-weight:700}.search-filter-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);grid-template-columns:2fr repeat(4,1fr);align-items:center;gap:.5rem;padding:.75rem 1rem;display:grid}.search-field{align-items:center;display:flex;position:relative}.search-field-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:.75rem}.input-dense{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-main);outline:none;padding:.6rem .9rem;font-size:.9rem;line-height:1.4}.input-dense:focus{border-color:var(--primary)}.search-field .input-dense{padding-left:2rem}.table-wrapper{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow-x:auto}.dense-table{border-collapse:collapse;text-align:left;width:100%;font-size:.85rem}.dense-table th{background:var(--bg-hover);color:var(--text-muted);border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.5px;padding:.85rem 1.1rem;font-size:.7rem;font-weight:700}.dense-table td{border-bottom:1px solid var(--border-color);color:var(--text-sub);padding:.85rem 1.1rem}.dense-table tr:last-child td{border-bottom:none}.dense-table tbody tr:hover td{background:var(--bg-hover)}.avatar-initial{background:var(--bg-elevated);width:28px;height:28px;color:var(--text-main);border:1px solid var(--border-color);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:600;display:flex}.badge{border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;align-items:center;gap:.25rem;padding:.2rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge-success{background:var(--success-dim);color:var(--success);border-color:#10b98133}.badge-warning{background:var(--warning-dim);color:var(--warning);border-color:#d9770633}.badge-danger{background:var(--danger-dim);color:var(--danger);border-color:#ef444433}.badge-info{background:var(--primary-dim);color:var(--primary);border-color:#4f46e533}.badge-cyan{background:var(--info-dim);color:var(--info);border-color:#06b6d433}.badge-neutral{background:var(--bg-hover-strong);color:var(--text-sub);border-color:var(--border-color)}.drawer-backdrop{z-index:1000;background:#0000008c;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer-panel{background:var(--bg-card);border-left:1px solid var(--border-color);flex-direction:column;width:calc(100% - 250px);max-width:1200px;height:100%;display:flex;box-shadow:-8px 0 40px #0000002e}.drawer-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.1rem 2rem;display:flex}.drawer-body{flex-direction:column;flex:1;gap:1.5rem;padding:1.75rem 2rem;display:flex;overflow-y:auto}.drawer-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;display:flex}.tab-list{border-bottom:1px solid var(--border-color);gap:1rem;margin-bottom:.75rem;display:flex}.tab-trigger{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.6rem .5rem;font-size:.9rem;font-weight:500;position:relative}.tab-trigger.active{color:var(--text-main);font-weight:700}.tab-trigger.active:after{content:"";background:var(--primary);width:100%;height:2px;position:absolute;bottom:-1px;left:0}.form-row{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.field-group{flex-direction:column;gap:.5rem;display:flex}.field-group.full{grid-column:1/-1}.field-label{color:var(--text-sub);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:700}.field-label.req:after{content:" *";color:var(--danger)}.activity-list{flex-direction:column;gap:.5rem;display:flex}.activity-item{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#ffffff03;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.82rem;display:flex}.doc-box-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;display:grid}.doc-box{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-elevated);flex-direction:column;gap:.4rem;padding:.75rem;display:flex}.doc-box-meta{color:var(--text-muted);font-size:.65rem}.doc-preview-sim{background:var(--bg-card);border-radius:var(--radius-xs);height:48px;color:var(--text-muted);border:1px dashed var(--border-color);justify-content:center;align-items:center;display:flex}.custom-progress-bar{background:var(--bg-elevated);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.custom-progress-fill{border-radius:var(--radius-full);height:100%;transition:width .3s}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:3rem 1.5rem;display:flex}.empty-state h3{color:var(--text-sub);font-size:.9rem}.empty-state p{font-size:.75rem}.pending-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#ffffff03;justify-content:space-between;align-items:center;padding:.75rem;display:flex}.pending-card:hover{background:#ffffff08}code{font-family:var(--font-mono);color:var(--text-main);border-radius:var(--radius-xs);border:1px solid var(--border-color);background:#ffffff0f;padding:.1rem .3rem;font-size:.75rem}.settings-step{border:1px solid var(--border-color);border-radius:var(--radius-sm);align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.settings-step-num{background:var(--bg-elevated);width:20px;height:20px;color:var(--text-main);border:1px solid var(--border-color);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:flex}.tab-list{border-bottom:1px solid var(--border-color);scrollbar-width:none;white-space:nowrap;-webkit-overflow-scrolling:touch;gap:1rem;margin-bottom:.75rem;display:flex;overflow-x:auto}.tab-list::-webkit-scrollbar{display:none}@media (width<=1280px){.stats-grid{grid-template-columns:repeat(2,1fr)}.insights-grid{grid-template-columns:1fr}}@media (width<=1024px){.search-filter-panel{grid-template-columns:1fr 1fr}.stats-summary-grid{grid-template-columns:1fr}}@media (width<=768px){.portal-sidebar{align-items:center;width:60px}.sidebar-brand{justify-content:center;padding:1rem .5rem}.brand-info,.nav-text,.nav-badge,.nav-section-label,.sidebar-footer span{display:none!important}.sidebar-footer{flex-direction:column;justify-content:center;gap:.75rem;padding:.75rem .25rem}.sidebar-footer button{font-size:0;padding:.25rem!important}.sidebar-footer button:after{content:"🚪";font-size:1rem}.nav-link{justify-content:center;padding:.6rem}.portal-content{padding:1rem}}@media (width<=600px){.form-row,.stats-grid{grid-template-columns:1fr}.drawer-panel{max-width:100%}.portal-topbar{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem 1rem}.topbar-actions{justify-content:space-between;width:100%}}.landing-container{background-color:var(--bg-root);background-image:radial-gradient(at 0 0,#4f46e50a 0,#0000 50%),radial-gradient(at 50% 0,#0f172a 0,#0000 100%);background-attachment:fixed}.landing-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#0f172ab3;position:sticky;top:0}.feature-card:hover{transform:translateY(-3px);box-shadow:0 10px 20px -10px #00000080;border-color:var(--primary-light)!important;background:#ffffff0a!important}@keyframes livePulse{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}.live-pulse{animation:2s ease-in-out infinite livePulse}@media (width<=768px){.landing-hero h2{font-size:2rem!important}.landing-hero p{font-size:.9rem!important}.landing-hero{padding:3rem 1rem 1.5rem!important}}@media print{@page{size:auto;margin:10mm}body *{visibility:hidden!important}.receipt-modal-backdrop,#printable-receipt-card,#printable-receipt-card *,#html-student-report-preview,#html-student-report-preview *{visibility:visible!important}.receipt-modal-backdrop{background:0 0!important;padding:0!important;display:block!important;position:absolute!important;inset:0!important}.receipt-print-container{width:100%!important;max-width:100%!important;box-shadow:none!important;color:#000!important;background:#fff!important;border:none!important;max-height:none!important;position:absolute!important;top:0!important;left:0!important;overflow:visible!important}#printable-receipt-card,#html-student-report-preview{color:#000!important;box-shadow:none!important;background:#fff!important;border:none!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.receipt-print-actions{height:0!important;margin:0!important;padding:0!important;display:none!important}#printable-receipt-card div{color:#000!important;background:0 0!important}#printable-receipt-card table{color:#000!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1.2s linear infinite spin}
