:root{--primary: #2B50AA;--primary-hover: #1E3E8C;--primary-light: #EBF2FF;--secondary: #FF7A38;--secondary-hover: #E05F1D;--secondary-light: #FFF0E8;--bg-main: #F4F7FE;--bg-card: #FFFFFF;--bg-card-hover: #F8FAFC;--border-color: #E2E8F0;--text-main: #1E293B;--text-muted: #64748B;--text-white: #FFFFFF;--success: #10B981;--success-light: #D1FAE5;--danger: #EF4444;--danger-light: #FEE2E2;--warning: #F59E0B;--warning-light: #FEF3C7;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(43, 80, 170, .08);--shadow-lg: 0 10px 25px rgba(43, 80, 170, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--font-heading: "Outfit", "Plus Jakarta Sans", sans-serif;--font-body: "Plus Jakarta Sans", sans-serif}[data-theme=dark]{--bg-main: #0B0F19;--bg-card: #151C2C;--bg-card-hover: #1E293B;--border-color: #2D3748;--text-main: #F1F5F9;--text-muted: #94A3B8;--primary-light: rgba(43, 80, 170, .2);--secondary-light: rgba(255, 122, 56, .15)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-main);color:var(--text-main);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none;transition:all .2s ease}input,select,textarea{font-family:var(--font-body);outline:none}.app-container{display:flex;flex-direction:column;min-height:100vh}.main-wrapper{display:flex;flex:1}.sidebar{width:260px;background-color:var(--bg-card);border-right:1px solid var(--border-color);padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.5rem;transition:width .3s ease}.content-area{flex:1;padding:2rem;overflow-y:auto;max-width:1400px;margin:0 auto;width:100%}.header-bar{background-color:var(--bg-card);border-bottom:1px solid var(--border-color);padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}.brand-logo{width:42px;height:42px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;box-shadow:0 4px 10px #2b50aa4d}.brand-text{display:flex;flex-direction:column}.brand-title{font-size:1.25rem;font-weight:800;color:var(--primary);line-height:1.1;letter-spacing:-.02em}.brand-subtitle{font-size:.725rem;font-weight:600;color:var(--secondary);letter-spacing:.05em;text-transform:uppercase}.role-switcher-container{display:flex;align-items:center;background-color:var(--bg-main);padding:4px;border-radius:999px;border:1px solid var(--border-color)}.role-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;font-size:.875rem;font-weight:600;color:var(--text-muted);background:transparent;transition:all .2s ease}.role-btn.active{background-color:var(--primary);color:#fff;box-shadow:0 2px 8px #2b50aa4d}.role-btn:hover:not(.active){color:var(--text-main);background-color:#0000000a}.card{background-color:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:1.5rem;box-shadow:var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-lg)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase}.badge-primary{background-color:var(--primary-light);color:var(--primary)}.badge-secondary{background-color:var(--secondary-light);color:var(--secondary)}.badge-success{background-color:var(--success-light);color:var(--success)}.badge-danger{background-color:var(--danger-light);color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.25rem;border-radius:var(--radius-md);font-weight:600;font-size:.875rem}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;box-shadow:0 4px 12px #2b50aa40}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #2b50aa59}.btn-secondary{background:linear-gradient(135deg,var(--secondary),var(--secondary-hover));color:#fff}.btn-secondary:hover{transform:translateY(-1px)}.btn-outline{background-color:transparent;border:1px solid var(--border-color);color:var(--text-main)}.btn-outline:hover{background-color:var(--bg-main)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-container{background-color:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border-color);width:100%;max-width:650px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003;padding:2rem;position:relative;animation:modalIn .2s cubic-bezier(.16,1,.3,1)}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.form-group{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.25rem}.form-group label{font-size:.85rem;font-weight:600;color:var(--text-main)}.form-control{width:100%;padding:.65rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--bg-main);color:var(--text-main);font-size:.9rem}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2b50aa26}.custom-table-container{width:100%;overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-color)}.custom-table{width:100%;border-collapse:collapse;text-align:left}.custom-table th{background-color:var(--bg-main);padding:.85rem 1rem;font-size:.775rem;font-weight:700;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-color)}.custom-table td{padding:.85rem 1rem;border-bottom:1px solid var(--border-color);font-size:.875rem;color:var(--text-main)}.custom-table tr:last-child td{border-bottom:none}.custom-table tr:hover{background-color:var(--bg-card-hover)}.esmart-report-card{background-color:#fff!important;color:#1e293b!important;border:4px solid #2B50AA;border-radius:28px;padding:2.25rem 2rem;max-width:760px;margin:0 auto;box-shadow:0 15px 35px #2b50aa26;position:relative;font-family:Plus Jakarta Sans,sans-serif}.report-header{text-align:center;position:relative;margin-bottom:1.5rem;padding-right:70px}.report-header-title{font-family:Outfit,sans-serif;font-size:1.35rem;font-weight:800;color:#2b50aa;font-style:italic;letter-spacing:.02em}.report-header-sub{font-size:.85rem;color:#2b50aa;font-weight:600}.report-logo-corner{position:absolute;top:0;right:0;width:64px;height:64px;background-color:#2b50aa;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 8px #0000001a}.report-logo-img{width:100%;height:100%;object-fit:cover;border-radius:12px}.report-banner-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.report-title-pill{background-color:#2b50aa;color:#fff;border-radius:16px;padding:.65rem 1.75rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 4px 12px #2b50aa40}.report-title-pill h2{font-family:Outfit,sans-serif;font-size:1.85rem;font-weight:800;margin:0;letter-spacing:-.01em}.report-session-badge{font-family:Outfit,sans-serif;color:#ff7a38;font-size:1.2rem;font-weight:800}.report-info-grid{display:grid;grid-template-columns:1fr 180px;gap:1.25rem;margin-bottom:1.5rem}.report-fields-list{display:flex;flex-direction:column;gap:.5rem}.report-field-row{display:flex;border:2px solid #2B50AA;border-radius:10px;overflow:hidden;background:#fff}.report-field-label{background-color:#2b50aa;color:#fff;font-weight:700;font-size:.875rem;padding:.5rem .85rem;width:145px;flex-shrink:0;display:flex;align-items:center;justify-content:center;text-align:center}.report-field-value{padding:.5rem .85rem;font-size:.875rem;font-weight:600;color:#334155;flex:1;display:flex;align-items:center}.report-photo-box{border:2px solid #2B50AA;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#64748b;font-size:.9rem;font-weight:600;background-color:#f8fafc;text-align:center;padding:1rem;height:100%;min-height:220px}.report-photo-img{width:100%;height:100%;object-fit:cover;border-radius:8px}.report-description-box{border:2px solid #FF7A38;border-radius:14px;overflow:hidden;margin-bottom:1.5rem;background:#fff}.report-description-header{background-color:#ff7a38;color:#fff;text-align:center;padding:.5rem 1rem;font-family:Outfit,sans-serif;font-size:1.35rem;font-weight:800;letter-spacing:.03em}.report-description-content{padding:1.25rem 1.5rem}.report-bullets-list{list-style-type:disc;padding-left:1.25rem;display:flex;flex-direction:column;gap:.65rem}.report-bullets-list li{color:#334155;font-size:.875rem;line-height:1.55;font-weight:500}.report-teacher-sign{text-align:right;margin-top:1.5rem;font-weight:700;font-size:.95rem;color:#334155}.report-footer-tagline{text-align:center;font-family:Outfit,sans-serif;font-style:italic;font-weight:800;font-size:1.15rem;color:#2b50aa;margin-top:1rem}.spin{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media print{body{background:#fff!important}.header-bar,.sidebar,.role-switcher-container,.no-print{display:none!important}.content-area{padding:0!important;max-width:100%!important}.modal-overlay{position:static!important;inset:auto!important;background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;display:block!important;padding:0!important;z-index:auto!important}.modal-container{max-width:100%!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:none!important;padding:0!important;border-radius:0!important;animation:none!important}.esmart-report-card{border-width:3px!important;box-shadow:none!important;margin:0 auto!important;max-width:100%!important;page-break-inside:avoid}}
