@import "https://fonts.googleapis.com/css2?family=Kantumruy+Pro:wght@400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap";:root{--text-main:#0f172a;--text-muted:#64748b;--bg-main:#f8f9fa;--bg-card:#fff;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#eff6ff;--border:#e2e8f0;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000000d;--radius-md:.5rem;--radius-lg:1rem;--radius-full:9999px;--font-sans:"Poppins", "Kantumruy Pro", sans-serif}*{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--text-main);background-color:var(--bg-main);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 0L60 30L30 60L0 30L30 0ZM30 1L59 30L30 59L1 30L30 1Z' fill='%23cbd5e1' fill-opacity='0.2' fill-rule='evenodd'/%3E%3C/svg%3E");margin:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--text-main);margin-top:0;font-weight:600}a{color:var(--primary);text-decoration:none}button{cursor:pointer;font-family:inherit}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:1.5rem;transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.btn-primary{background-color:var(--primary);color:#fff;border-radius:var(--radius-full);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.5rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 2px 4px #2563eb33}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 8px #2563eb4d}.btn-secondary{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-full);background-color:#fff;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.5rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-secondary:hover{border-color:var(--text-muted);color:var(--text-main)}.input-field{border:1px solid var(--border);border-radius:var(--radius-md);background-color:#fff;outline:none;width:100%;padding:.6rem 1rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.filter-select{border-radius:var(--radius-md);width:100%;font-size:.875rem;font-family:var(--font-sans);color:var(--text-main);cursor:pointer;background-color:#0000;border:1px solid #0000;outline:none;padding:.4rem .75rem;font-weight:500;transition:all .2s}.filter-select:hover{background-color:#00000008}.filter-select:focus,.filter-select:active{border-color:var(--border);box-shadow:var(--shadow-sm);background-color:#fff}.dashboard-container{min-height:100vh;display:flex}.sidebar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-right:1px solid var(--border);background-color:#ffffffe6;flex-direction:column;width:260px;height:100vh;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;overflow-x:hidden}.sidebar.collapsed{width:76px}.sidebar-header{color:var(--text-main);border-bottom:1px solid #0000;align-items:center;gap:.5rem;padding:1rem .5rem;font-size:1.25rem;font-weight:700;display:flex}.hover-bg-light{transition:background-color .2s}.hover-bg-light:hover{background-color:#0000000d}.sidebar-nav{flex-direction:column;flex:1;gap:.25rem;padding:.5rem .75rem;display:flex}.nav-item{color:var(--text-main);border:none;border-radius:50px;align-items:center;gap:1rem;padding:.75rem 1.25rem;font-weight:500;transition:all .2s;display:flex}.nav-item:hover{background-color:var(--bg-main)}.nav-item.active{background-color:var(--primary-light);color:var(--primary);font-weight:600}.sidebar.collapsed .nav-item{border-radius:50%;justify-content:center;width:44px;height:44px;margin:0 auto;padding:.75rem}.main-content{flex-direction:column;flex:1;min-width:0;min-height:0;margin-left:260px;transition:margin-left .3s cubic-bezier(.4,0,.2,1);display:flex}.main-content.collapsed{margin-left:76px}.topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);z-index:10;background-color:#ffffffe6;justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex;position:sticky;top:0}.page-content{flex:1;min-width:0;min-height:0;padding:2rem}.table-container{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{background-color:var(--bg-main);color:var(--text-muted);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;padding:1rem;font-size:.875rem;font-weight:600}.data-table td{border-bottom:1px solid var(--border);color:var(--text-main);padding:1rem}.data-table tbody tr:nth-child(2n){background-color:#f8fafc}.data-table tbody tr:hover{background-color:var(--bg-main)}.btn-danger{color:var(--danger);border-radius:var(--radius-md);background-color:#fef2f2;border:1px solid #fca5a5;justify-content:center;align-items:center;padding:.4rem .5rem;transition:all .2s;display:inline-flex}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.btn-danger:hover{background-color:var(--danger);color:#fff;border-color:var(--danger)}.form-group{margin-bottom:1rem}.text-gradient{background:linear-gradient(135deg,#1d4ed8 0%,#3b82f6 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass-panel{-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);border-radius:var(--radius-lg);background:#ffffffe6;border:1px solid #ffffff80}.sortable-item{border-bottom:1px solid var(--border);background-color:#fff;align-items:center;transition:box-shadow .2s,background-color .2s;display:flex;position:relative}.sortable-item:hover{background-color:var(--bg-main)}.sortable-item:nth-child(2n){background-color:#f8fafc}.sortable-item.dragging{box-shadow:var(--shadow-md);border:1px solid var(--primary);border-radius:var(--radius-md)}.sortable-item-content{cursor:grab;flex:1;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.sortable-item-content:active{cursor:grabbing}.sortable-item-left{align-items:center;gap:1rem;display:flex}.sortable-icon{background-color:var(--primary-light);width:40px;height:40px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.sortable-text{flex-direction:column;display:flex}.sortable-title{color:var(--text-main);font-size:1rem;font-weight:500}.sortable-subtitle{color:var(--text-muted);margin-top:2px;font-size:.8rem}.sortable-item-right{align-items:center;gap:1rem;display:flex}.sortable-label{color:var(--text-muted);font-size:.875rem}.sortable-actions-container{padding-right:1.5rem;position:relative}.icon-button{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:background-color .2s;display:flex}.icon-button:hover{background-color:var(--bg-main)}.action-menu{border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:50;background:#fff;flex-direction:column;min-width:150px;padding:.5rem 0;display:flex;position:absolute;top:2rem;right:1.5rem}.action-menu button{text-align:left;color:var(--text-main);cursor:pointer;background:0 0;border:none;width:100%;padding:.75rem 1rem;font-size:.875rem}.action-menu button:hover{background-color:var(--bg-main)}.action-menu button.text-danger{color:var(--danger)}.menu-backdrop{z-index:40;position:fixed;inset:0}.sortable-list-container{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff}.sortable-item:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.sortable-item:last-child{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);border-bottom:none}.input-transparent{background:0 0;border:1px solid #0000;transition:all .2s}.input-transparent:hover,.input-transparent:focus{border-color:var(--border);background:#fff}.table-row-actions{opacity:0;transition:opacity .2s}tr:hover .table-row-actions{opacity:1}.class-assign-tag{color:#2563eb;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;align-items:center;gap:.25rem;padding:2px 8px;font-size:.85rem;transition:all .2s;display:inline-flex}.class-assign-tag button{color:#3b82f6;cursor:pointer;background:0 0;border:none;border-radius:50%;align-items:center;margin:-2px -2px -2px 0;padding:2px;transition:all .2s;display:flex}.class-assign-tag:hover{color:#ef4444;background-color:#fef2f2;border-color:#fecaca}.class-assign-tag:hover button{color:#ef4444}.class-assign-tag button:hover{background-color:#fee2e2}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}.report-footer,.signature-section,.summary-statistics{page-break-inside:avoid!important;break-inside:avoid!important}table.report-table tr th,table.report-table tr td{padding:3px 4px!important;font-size:11px!important;line-height:1.2!important}@page{margin:0!important}html,body,#root,.dashboard-container,.page-content,.main-content{background-color:#fff!important;height:auto!important;min-height:auto!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}body{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}div[style*="marginTop: '4rem'"],div[style*="marginTop: '3rem'"],div[style*="margin-top: 4rem"],div[style*="margin-top: 3rem"]{margin-top:1.5rem!important}h1,h2,h3{margin-bottom:.5rem!important}tr,td,th{page-break-inside:avoid}.signature-section{page-break-inside:avoid;margin-top:.5rem!important}.avoid-page-break{page-break-inside:avoid}.no-print,.btn,.icon-btn,.sidebar,.topbar,#page-tabs-portal,#page-title-portal{display:none!important}.card,.table-container,.report-print-container{height:auto!important;overflow:visible!important}.card{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.report-print-container{background-color:#0000!important;gap:0!important;display:block!important}}.a4-page{box-sizing:border-box;background:#fff;flex-direction:column;margin:0 auto;padding:1.5cm;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.a4-page.landscape{width:297mm;height:210mm}.a4-page.portrait{width:210mm;height:297mm}@media print{@page{margin:0!important}.a4-page{box-shadow:none!important;page-break-after:always!important;page-break-inside:avoid!important;border:none!important;margin:0!important}.report-table tbody tr,.report-table tbody td{height:25px!important}.print-only{display:inline!important}}.print-only,.mobile-overlay{display:none}@media (width<=768px){.mobile-menu-btn{display:flex!important}.sidebar{z-index:1000;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0);box-shadow:4px 0 24px #00000026}.mobile-overlay{z-index:999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;display:block;position:fixed;inset:0}.main-content,.main-content.collapsed{margin-left:0!important}.dashboard-container{overflow-x:hidden}.timetable-table-container{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.page-content{padding:1rem}.topbar{padding:0 1rem}}.mobile-only{display:none!important}.hidden-mobile{display:block}@media (width<=768px){.mobile-only{display:block!important}.hidden-mobile{display:none!important}}.mobile-menu-btn{display:none!important}@media (width<=768px){.mobile-menu-btn{display:flex!important}}.device-preview-toolbar{border-radius:var(--radius-full);box-shadow:var(--shadow-lg);z-index:9999;border:1px solid var(--border);background:#fff;align-items:center;gap:.5rem;padding:.5rem;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.preview-btn{border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:500;transition:all .2s;display:flex}.preview-btn:hover{background:var(--bg-main);color:var(--text-main)}.preview-btn.active{background:var(--primary-light);color:var(--primary);font-weight:600}.preview-divider{background:var(--border);width:1px;height:24px}.device-simulator-backdrop{background-color:#f1f5f9;background-image:radial-gradient(#cbd5e1 1px,#0000 1px);background-size:20px 20px;justify-content:center;align-items:center;min-height:100vh;padding:6rem 2rem 2rem;display:flex}.device-simulator-container{justify-content:center;align-items:center;display:flex}.device-frame{background:#fff;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.device-content{background:var(--bg-main);width:100%;height:100%;overflow:hidden auto}body.device-preview-active{margin:0;padding:0;overflow:hidden}@media (width<=1024px){.device-preview-toolbar{display:none}}.device-frame{transform:translateZ(0)}.device-simulator-container .sidebar{height:100%!important}.device-simulator-container .dashboard-container{min-height:100%!important}.device-simulator-container .mobile-overlay{position:absolute!important}body.device-mode-mobile .sidebar{transform:translate(-100%)!important}body.device-mode-mobile .sidebar.mobile-open{transform:translate(0)!important}body.device-mode-mobile .main-content,body.device-mode-mobile .main-content.collapsed{margin-left:0!important}body.device-mode-mobile .mobile-menu-btn{display:flex!important}body.device-mode-mobile .hidden-mobile{display:none!important}body.device-mode-mobile .mobile-only{display:block!important}.teacher-app-dashboard{background-color:var(--primary-dark,#0f172a);color:#fff;flex-direction:column;min-height:100vh;font-family:inherit;display:flex}.app-header{background-color:var(--primary-dark,#0f172a);padding:1rem 1.5rem 1.5rem}.header-actions{justify-content:flex-end;margin-bottom:1rem;display:flex}.icon-btn-transparent{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:.5rem}.profile-section{align-items:center;gap:1rem;display:flex}.avatar-circle{background-color:var(--primary);color:#fff;border:2px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.5rem;font-weight:700;display:flex}.greeting-text{flex-direction:column;display:flex}.greeting{color:#fffc;font-size:.85rem}.user-name{color:#fff;margin:0;font-size:1.5rem;font-weight:700}.app-main-content{background-color:#f1f5f9;border-top-left-radius:24px;border-top-right-radius:24px;flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem 1.5rem 80px;display:flex}.hero-card{cursor:pointer;color:#fff;background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:20px;padding:1.25rem;box-shadow:0 10px 25px #0000001a}.hero-card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.badge-primary{background-color:var(--primary);color:#fff;border-radius:12px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.subtitle{color:#fff9;font-size:.85rem}.next-class-info{margin-bottom:1.5rem}.class-name{margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.class-time{color:#fffc;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.hero-card-footer{border-top:1px solid #ffffff1a;justify-content:space-between;padding-top:1rem;display:flex}.footer-item{align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;display:flex}.action-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.action-item{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:.5rem;display:flex}.action-icon{border-radius:16px;justify-content:center;align-items:center;width:60px;height:60px;transition:transform .2s;display:flex;box-shadow:0 4px 6px #0000000d}.action-item:active .action-icon{transform:scale(.95)}.action-item span{color:var(--text-main);font-size:.85rem;font-weight:600}.bg-blue{background-color:#3b82f6}.bg-red{background-color:#ef4444}.bg-green{background-color:#10b981}.bg-orange{background-color:#f59e0b}.bg-purple{background-color:#8b5cf6}.bg-gray{background-color:#64748b}.banner-section{flex-direction:column;gap:.75rem;display:flex}.section-title{color:var(--text-main);font-size:1.1rem;font-weight:700}.news-card{background:linear-gradient(to right, var(--primary), #3b82f6);color:#fff;border-radius:16px;justify-content:space-between;align-items:center;padding:1.25rem;display:flex}.news-content h3{margin:0 0 .25rem;font-size:1rem}.news-content p{opacity:.9;margin:0;font-size:.8rem}.dashboard-container.is-teacher .teacher-page-content{padding:0!important}.weekly-grid-container{margin-bottom:2rem;padding:1rem 0;overflow-x:auto}.weekly-grid{background-color:var(--border);border:1px solid var(--border);border-radius:12px;grid-template-columns:80px repeat(6,1fr);gap:1px;min-width:900px;display:grid;overflow:hidden}.grid-header,.grid-time,.grid-cell{background-color:#fff;padding:12px 8px}.grid-header{text-align:center;color:#111827;background-color:#f8fafc;flex-direction:column;justify-content:center;align-items:center;font-weight:700;display:flex}.grid-header .date{color:var(--text-muted);margin-top:4px;font-size:.85rem;font-weight:400;display:block}.grid-time{text-align:center;color:var(--text-muted);background-color:#f8fafc;flex-direction:column;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:flex}.grid-cell{flex-direction:column;gap:4px;min-height:100px;display:flex;position:relative}.grid-cell-empty{background-color:#fff}.class-card{color:#fff;cursor:pointer;border-radius:8px;flex-direction:column;gap:4px;height:100%;padding:10px;transition:transform .2s,box-shadow .2s;display:flex}.class-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #00000026}.class-card .class-time{opacity:.9;align-items:center;gap:4px;font-size:.75rem;display:flex}.class-card .class-subject{font-size:.95rem;font-weight:700;line-height:1.2}.class-card .class-room{opacity:.9;align-items:center;gap:4px;margin-top:auto;font-size:.8rem;display:flex}.a4-page table.report-table tr th,.a4-page table.report-table tr td{padding:1px 2px;font-size:11px;line-height:1.2}@media print{.teacher-bottom-nav,.mobile-overlay,.sidebar,.topbar{display:none!important}}@page{margin:0!important}
