@charset "UTF-8";@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.portal-main{--portal-card-bg: #ffffff;--portal-card-radius: 16px;--portal-card-shadow: 0 4px 24px rgba(4, 47, 46, .07);--portal-border: 1px solid rgba(13, 148, 136, .12);--portal-thead: linear-gradient(180deg, rgba(13, 148, 136, .1), rgba(13, 148, 136, .04))}.portal-main .card{border:var(--portal-border);border-radius:var(--portal-card-radius);box-shadow:var(--portal-card-shadow);background:var(--portal-card-bg);overflow:hidden}.portal-main .card .card-body{padding:1.25rem 1.35rem}.portal-main .page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1.35rem}.portal-main .page-header h2{margin:0;font-size:1.55rem;font-weight:800;color:#042f2e;letter-spacing:-.02em}.portal-main .filters,.portal-main .filter-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.portal-main .filter-group label{display:block;font-size:.78rem;font-weight:700;color:var(--text-light);margin-bottom:.35rem}.portal-main .form-control,.portal-main .form-select{border-radius:10px;border:1px solid rgba(13,148,136,.2);min-height:42px}.portal-main table.table{width:100%;border-collapse:separate;border-spacing:0;font-size:.92rem}.portal-main table.table thead th{text-align:left;padding:12px 14px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#0f766e;background:var(--portal-thead);border-bottom:1px solid rgba(13,148,136,.15)}.portal-main table.table tbody td{padding:14px;border-bottom:1px solid rgba(15,118,110,.08);vertical-align:middle}.portal-main table.table tbody tr:nth-child(2n) td{background:#f0fdfa73}.portal-main table.table tbody tr:hover td{background:#0d94880f}.portal-main .btn-outline.staff-link,.portal-main a.btn-outline.staff-link{border-radius:10px;border:1px solid rgba(13,148,136,.45);color:#0f766e;font-weight:700;padding:.5rem 1rem}.portal-main .btn-outline.staff-link:hover,.portal-main a.btn-outline.staff-link:hover{background:#0d948814;border-color:#0f766e}.portal-main .staff-page,.portal-main .teachers-page,.portal-main .students-page{max-width:1280px}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #0c4a6e;--secondary-color: #0d9488;--accent-color: #ea580c;--success-color: #059669;--warning-color: #ca8a04;--light-bg: #f0fdfa;--dark-bg: #042f2e;--text-color: #134e4a;--text-light: #5f7674;--white: #ffffff;--shadow: 0 2px 12px rgba(30, 58, 95, .06);--shadow-lg: 0 12px 40px rgba(30, 58, 95, .1);--border-radius: 12px;--transition: all .3s ease;--shadow-light: 0 1px 3px rgba(0, 0, 0, .06)}html,body{height:100%}body{font-family:Plus Jakarta Sans,sans-serif;line-height:1.6;color:var(--text-color);background-color:var(--white)}a{text-decoration:none;color:inherit}ul{list-style:none}img{max-width:100%;height:auto}.container{max-width:1200px;margin:0 auto;padding:0 20px}.container-wide{max-width:1280px;padding-left:24px;padding-right:24px}@media(max-width:768px){.container-wide{padding-left:16px;padding-right:16px}}.btn{display:inline-block;padding:12px 30px;border:none;border-radius:var(--border-radius);cursor:pointer;font-size:1rem;font-weight:500;transition:var(--transition);text-align:center}.btn-primary{background:var(--secondary-color);color:var(--white)}.btn-primary:hover{background:#a63509;transform:translateY(-2px)}.btn-secondary{background:var(--primary-color);color:var(--white)}.btn-secondary:hover{background:#152a47}.btn-accent{background:var(--accent-color);color:var(--white)}.btn-accent:hover{background:#b91c1c}.btn-outline{background:transparent;border:2px solid var(--secondary-color);color:var(--secondary-color);font-weight:500}.btn-outline:hover{background:var(--secondary-color);color:var(--white)}.btn-success{background:var(--success-color);color:var(--white)}.btn-success:hover{background:#1e8449}.btn-warning{background:var(--warning-color);color:var(--white)}.btn-warning:hover{background:#b45309}.btn-danger{background:var(--accent-color);color:var(--white)}.btn-danger:hover{background:#b91c1c}.btn-sm{padding:8px 16px;font-size:.875rem}.btn-lg{padding:16px 40px;font-size:1.125rem}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-color)}.form-control{width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:var(--border-radius);font-size:1rem;font-family:inherit;transition:var(--transition)}.form-control:focus{outline:none;border-color:var(--secondary-color);box-shadow:0 0 0 3px #c2410c26}.form-control.is-invalid{border-color:var(--accent-color)}.form-select{width:100%;padding:12px 40px 12px 16px;border:1px solid #ddd;border-radius:var(--border-radius);font-size:1rem;font-family:inherit;transition:var(--transition);appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 12px;background-color:#fff}.form-select:focus{outline:none;border-color:var(--secondary-color);box-shadow:0 0 0 3px #c2410c26}textarea.form-control{min-height:120px;resize:vertical}.form-error{color:var(--accent-color);font-size:.875rem;margin-top:.25rem}.card{background:var(--white);border-radius:var(--border-radius);box-shadow:var(--shadow);overflow:hidden;transition:var(--transition)}.card:hover{box-shadow:var(--shadow-lg)}.card-header{padding:1.5rem;border-bottom:1px solid #eee;background:var(--light-bg)}.card-header h3,.card-header h4{margin:0;color:var(--primary-color)}.card-body{padding:1.5rem}.card-footer{padding:1rem 1.5rem;border-top:1px solid #eee;background:var(--light-bg)}.table-responsive{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 16px;text-align:left;border-bottom:1px solid #eee}.table th{background:var(--light-bg);font-weight:600;color:var(--primary-color)}.table tbody tr{transition:var(--transition)}.table tbody tr:hover{background:#f8f9fa}.badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:500}.badge-primary{background:#c2410c1f;color:var(--secondary-color)}.badge-success{background:#27ae601a;color:var(--success-color)}.badge-warning{background:#f39c121a;color:var(--warning-color)}.badge-danger{background:#e74c3c1a;color:var(--accent-color)}.alert{padding:1rem 1.5rem;border-radius:var(--border-radius);margin-bottom:1rem}.alert-success{background:#27ae601a;border:1px solid var(--success-color);color:var(--success-color)}.alert-error{background:#e74c3c1a;border:1px solid var(--accent-color);color:var(--accent-color)}.alert-warning{background:#f39c121a;border:1px solid var(--warning-color);color:var(--warning-color)}.alert-info{background:#c2410c14;border:1px solid var(--secondary-color);color:var(--secondary-color)}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--primary-color)}.text-secondary{color:var(--secondary-color)}.text-success{color:var(--success-color)}.text-danger{color:var(--accent-color)}.text-warning{color:var(--warning-color)}.text-muted{color:var(--text-light)}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.p-1{padding:.5rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.p-4{padding:2rem}.d-flex{display:flex}.flex-wrap{flex-wrap:wrap}.align-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.w-100{width:100%}.h-100{height:100%}.row{display:flex;flex-wrap:wrap;margin:0 -15px}.col{flex:1;padding:0 15px}.col-12{width:100%;flex:0 0 100%;padding:0 15px}.col-6{width:50%;flex:0 0 50%;padding:0 15px}.col-4{width:33.333%;flex:0 0 33.333%;padding:0 15px}.col-3{width:25%;flex:0 0 25%;padding:0 15px}@media(max-width:992px){.col-md-6{width:50%;flex:0 0 50%}.col-md-12{width:100%;flex:0 0 100%}}@media(max-width:768px){.col-sm-12{width:100%;flex:0 0 100%}}.section{padding:80px 0}.section-title{text-align:center;margin-bottom:50px}.section-title h2{font-size:2.5rem;color:var(--primary-color);margin-bottom:1rem}.section-title p{color:var(--text-light);max-width:600px;margin:0 auto}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--white);border-radius:var(--border-radius);max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{padding:1.5rem;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0}.modal-header .close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-light)}.modal-header .close-btn:hover{color:var(--accent-color)}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:1rem}.loader{display:flex;align-items:center;justify-content:center;padding:2rem}.loader .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:var(--secondary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}@media print{.no-print{display:none!important}body{background:#fff}.card{box-shadow:none;border:1px solid #ddd}}
