:root{--primary:#22c55e;--primary-dark:#16a34a;--success:#15803d;--danger:#dc2626;--bg:#f1f5f9;--card:#fff;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--sidebar:#14532d;--sidebar-text:#cbd5e1;--font-en:"Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-lo:"Noto Sans Lao Looped", "Noto Sans Lao", "Phetsarath OT", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}body{font-family:var(--font-en);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-wrap:break-word;min-height:100dvh;line-height:1.65;overflow-x:hidden}a,button{-webkit-tap-highlight-color:#16a34a2e;touch-action:manipulation}html[lang=lo] body,html[lang=lo] button,html[lang=lo] input,html[lang=lo] select,html[lang=lo] textarea{font-family:var(--font-lo);letter-spacing:.01em;font-weight:400}html[lang=lo] h1,html[lang=lo] h2,html[lang=lo] h3,html[lang=lo] h4,html[lang=lo] .sidebar-header h2,html[lang=lo] .btn{font-weight:500}.loading-screen{justify-content:center;align-items:center;min-height:100dvh;display:flex}.login-form .form-group label{color:var(--muted);margin-bottom:.375rem;font-size:.875rem;font-weight:500;display:block}.login-form .form-group{margin-bottom:1.125rem}.app-layout{min-height:100dvh;display:flex}.sidebar{background:var(--sidebar);width:260px;height:100dvh;color:var(--sidebar-text);padding:1.5rem 1rem;padding-top:max(1.5rem, env(safe-area-inset-top));padding-bottom:max(1rem, env(safe-area-inset-bottom));padding-left:max(1rem, env(safe-area-inset-left));flex-direction:column;flex-shrink:0;align-self:flex-start;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-header-row{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.sidebar-close-btn,.mobile-menu-btn,.sidebar-backdrop{display:none}.sidebar-header h2,.sidebar-school-name{color:#fff;min-width:0;margin-bottom:.75rem;font-size:1.125rem;line-height:1.3}.sidebar-user-card{color:#fff;cursor:default;text-align:left;width:100%;font:inherit;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.625rem .5rem;display:flex}.sidebar-user-card-clickable{cursor:pointer}.sidebar-user-card-clickable:hover{background:#ffffff1a}.sidebar-user-avatar{object-fit:cover;border:2px solid #ffffff59;border-radius:50%;flex-shrink:0;width:42px;height:42px}.sidebar-user-avatar-fallback{background:#ffffff26;justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:inline-flex}.sidebar-user-text{flex-direction:column;gap:.125rem;min-width:0;display:flex}.sidebar-user-text strong{white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;line-height:1.3;overflow:hidden}.sidebar-user-text span{color:#ffffffbf;font-size:.75rem}.user-badge{font-size:.875rem}.role-tag{background:#ffffff1a;border-radius:999px;margin-top:.25rem;padding:.125rem .5rem;font-size:.75rem;display:inline-block}.sidebar-nav{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:.25rem;margin:1.5rem 0;display:flex;overflow-y:auto}.nav-link{color:var(--sidebar-text);border-radius:8px;min-height:2.75rem;padding:.625rem 1rem;text-decoration:none;transition:background .15s}.nav-link-content{align-items:center;gap:.625rem;min-width:0;display:inline-flex}.nav-link-icon{text-align:center;flex-shrink:0;width:1.25rem;font-size:1rem;line-height:1}.nav-link:hover,.nav-link.active{color:#fff;background:#ffffff1a}.nav-group{flex-direction:column;gap:.125rem;display:flex}.nav-link-parent{cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.nav-group-caret{opacity:.85;flex-shrink:0;font-size:.75rem}.nav-sub{border-left:1px solid #ffffff1f;flex-direction:column;gap:.125rem;margin-left:.5rem;padding-left:.75rem;display:flex}.nav-link-sub{padding:.5rem .875rem;font-size:.875rem}.logout-btn{margin-top:auto}.back-home-link{text-align:center;color:var(--sidebar-text);opacity:.8;margin-top:.75rem;font-size:.85rem;text-decoration:none;display:block}.back-home-link:hover{opacity:1;color:#fff}.main-content{flex:1;min-width:0;padding:1.5rem 2rem;overflow-x:auto}.page-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.page-header-left{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.page-header h1{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:1.75rem;overflow:hidden}.page-header-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.header-lang.lang-switcher{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;align-items:center;gap:.15rem;padding:.2rem;display:flex}.header-lang .lang-btn{cursor:pointer;color:#475569;background:0 0;border:none;border-radius:8px;padding:.35rem .65rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:background .15s}.header-lang .lang-btn:hover{background:#dcfce7}.header-lang .lang-btn.active{background:var(--primary);color:#fff}.header-user-menu{position:relative}.header-user-menu-btn{border:2px solid var(--border);background:var(--card);cursor:pointer;border-radius:50%;width:42px;height:42px;padding:0;overflow:hidden}.header-user-menu-avatar{object-fit:cover;width:100%;height:100%;display:block}.header-user-menu-avatar-fallback{color:#1d4ed8;background:#eff6ff;justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:inline-flex}.header-user-dropdown{background:var(--card);border:1px solid var(--border);z-index:1300;border-radius:14px;width:min(92vw,280px);position:absolute;top:calc(100% + .5rem);right:0;overflow:hidden;box-shadow:0 16px 40px #0f172a1f}.header-user-dropdown-head{border-bottom:1px solid var(--border);background:#f8fafc;flex-direction:column;gap:.125rem;padding:.875rem 1rem;display:flex}.header-user-dropdown-head strong{color:var(--text);font-size:.9375rem}.header-user-dropdown-head span{color:var(--muted);font-size:.8125rem}.header-user-dropdown-item{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.625rem;padding:.75rem 1rem;text-decoration:none;display:flex}.header-user-dropdown-item:hover{background:#f8fafc}.header-user-dropdown-icon{text-align:center;width:1.25rem}.header-user-dropdown-logout{color:#2563eb;width:calc(100% - 1.5rem);font:inherit;cursor:pointer;background:#fff;border:1px solid #2563eb;border-radius:999px;margin:.75rem;padding:.625rem 1rem;font-weight:600}.header-user-dropdown-logout:hover{background:#eff6ff}.avatar-view-modal{width:min(100%,360px)}.avatar-view-modal-preview{width:260px;height:260px}.page-header-user{color:var(--muted);font-size:.875rem;font-weight:500}.admin-notification-bell{position:relative}.admin-notification-bell-btn{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;transition:background .15s,border-color .15s;display:inline-flex;position:relative}.admin-notification-bell-btn:hover{background:#f8fafc;border-color:#cbd5e1}.admin-notification-bell-icon{font-size:1.125rem;line-height:1}.admin-notification-badge{background:var(--danger);color:#fff;border:2px solid var(--card);border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.6875rem;font-weight:700;display:inline-flex;position:absolute;top:-4px;right:-4px}.admin-notification-dropdown{background:var(--card);border:1px solid var(--border);z-index:1200;border-radius:14px;flex-direction:column;width:min(100vw - 2rem,380px);max-height:min(70vh,520px);display:flex;position:absolute;top:calc(100% + .5rem);right:0;overflow:hidden;box-shadow:0 16px 40px #0f172a1f}.admin-notification-dropdown-header{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:center;gap:.5rem;padding:.875rem 1rem;display:flex}.admin-notification-unread-label{color:var(--danger);font-size:.75rem;font-weight:600}.admin-notification-empty{color:var(--muted);margin:0;padding:1.25rem 1rem;font-size:.875rem}.admin-notification-list{padding:.375rem;overflow-y:auto}.admin-notification-section-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.5rem .75rem .25rem;font-size:.75rem;font-weight:700}.admin-notification-item{border:1px solid #0000;border-radius:10px;margin-bottom:.25rem}.admin-notification-item.unread{background:#fff7ed;border-color:#fed7aa}.admin-notification-item.expanded{border-color:var(--border);background:#f8fafc}.admin-notification-item-main{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none;padding:.75rem}.admin-notification-item.read-only .admin-notification-item-main{cursor:default}.admin-notification-item-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.admin-notification-title{font-size:.875rem;font-weight:600}.admin-notification-sender,.admin-notification-time{color:var(--muted);margin:0;font-size:.8125rem}.admin-notification-detail{border-top:1px dashed var(--border);padding:0 .75rem .75rem}.admin-notification-meta,.admin-notification-reason{margin:.5rem 0 0;font-size:.8125rem;line-height:1.5}.admin-notification-actions{gap:.5rem;margin-top:.75rem;display:flex}.badge-pending{color:#b45309;background:#fef3c7}.badge-approved{color:var(--success);background:#dcfce7}.badge-rejected{color:var(--danger);background:#fef2f2}@media (width<=768px){.page-header{flex-wrap:wrap;align-items:flex-start}.page-header-actions{justify-content:flex-end;width:100%}}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.form-card h3,.table-card h3{margin-bottom:1rem;font-size:1.125rem}.form-row{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.form-group{flex-direction:column;gap:.375rem;display:flex}.form-group label{color:var(--muted);font-size:.875rem;font-weight:500}.label-optional{color:var(--muted);font-size:.8125rem;font-weight:400}.field-hint{color:var(--muted);font-size:.8125rem;line-height:1.4}.form-group input,.form-group select,.form-group textarea,.login-form input{border:1px solid var(--border);border-radius:8px;padding:.625rem .75rem;font-size:.9375rem}.form-group textarea{resize:vertical;width:100%;min-height:5.5rem;font:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.login-form input:focus{outline:2px solid var(--primary);border-color:#0000}.form-actions{gap:.75rem;display:flex}.checkbox-label{align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.875rem;display:flex}.nested-form{background:var(--bg);border-radius:8px;padding:1rem}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.625rem 1.25rem;font-size:.9375rem;font-weight:500;transition:background .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-outline{border:1px solid var(--border);color:var(--sidebar-text);background:0 0}.btn-cancel{color:#334155;background:#eef2f7;border:1px solid #c5d0de;font-weight:600}.btn-cancel:hover{color:#0f172a;background:#e2e8f0;border-color:#94a3b8}.btn-blue{color:#fff;background:#2563eb;border:1px solid #2563eb}.btn-blue:hover{background:#1d4ed8;border-color:#1d4ed8}.btn-blue-light{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.btn-blue-light:hover{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.btn-block{width:100%}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn:disabled{opacity:.6;cursor:not-allowed}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.data-table{border-collapse:collapse;width:100%;font-size:.9375rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem}.data-table th{background:var(--bg);color:var(--muted);text-transform:uppercase;letter-spacing:.025em;font-size:.8125rem;font-weight:600}.data-table tr:hover td{background:#f8fafc}.input-sm{border:1px solid var(--border);border-radius:6px;width:80px;padding:.375rem .5rem}.alert{border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9375rem}.alert-error{color:var(--danger);background:#fef2f2;border:1px solid #fecaca}.alert-info{color:var(--primary-dark);background:#f0fdf4;border:1px solid #bbf7d0}.badge{background:var(--bg);border-radius:999px;padding:.25rem .625rem;font-size:.75rem;display:inline-block}.badge-success{color:var(--success);background:#dcfce7}.badge-danger{color:var(--danger);background:#fef2f2}.badge-tuition-paid{color:#15803d;background:#dcfce7;font-weight:700}.badge-tuition-partial{color:#dc2626;background:#fef2f2;font-weight:700}.badge-tuition-unpaid{color:#a16207;background:#fef9c3;font-weight:700}.tuition-money{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.tuition-paid-cell{color:var(--primary-dark)}.tuition-year-semester{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.tuition-filters{background:var(--bg);border:1px solid var(--border);border-radius:12px;gap:1rem;margin-bottom:1rem;padding:1rem;display:grid}.tuition-search-row .form-group{max-width:560px;margin:0}.tuition-search-row .input-with-btn{width:100%}.tuition-search-row .input-with-btn input{flex:1;min-width:0}.tuition-filter-row{margin:0}.tuition-table td.actions{flex-wrap:wrap;gap:.4rem;display:flex}.dashboard{gap:1rem;display:grid}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.stat-card h3{margin-bottom:.5rem}.stat-card p{color:var(--muted);font-size:.9375rem}.portal-page .card:first-child{margin-bottom:1.5rem}@media (width<=768px){.app-layout{flex-direction:column}.sidebar{width:100%}.main-content{padding:1rem}}.admin-dashboard{gap:1.25rem;display:grid}.admin-page-header h2{margin-bottom:.25rem;font-size:1.5rem}.admin-page-header p{color:var(--muted)}.admin-loading{text-align:center;color:var(--muted);padding:2rem}.admin-stat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.admin-stat-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:12px;align-items:center;gap:1rem;padding:1.25rem;text-decoration:none;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex}.admin-stat-card-link{cursor:pointer}button.admin-stat-card{font:inherit;text-align:left;width:100%}.admin-stat-card-link:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 6px 16px #00000014}.admin-stat-card-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.admin-stat-icon{background:#f0fdf4;border-radius:12px;justify-content:center;align-items:center;width:52px;height:52px;font-size:2rem;display:flex}.admin-stat-card.accent-blue .admin-stat-icon{background:#eff6ff}.admin-stat-card.accent-purple .admin-stat-icon{background:#faf5ff}.admin-stat-card.accent-orange .admin-stat-icon{background:#fff7ed}.admin-stat-card.accent-teal .admin-stat-icon{background:#f0fdfa}.admin-stat-card.accent-red .admin-stat-icon{background:#fef2f2}.admin-stat-value{color:var(--text);font-size:1.75rem;font-weight:700;line-height:1.2;display:block}.admin-stat-label{color:var(--muted);font-size:.8125rem}.admin-panel-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;display:grid}.admin-panel h3{margin-bottom:1rem;font-size:1rem}.admin-attendance-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.attendance-item{text-align:center;background:var(--bg);border-radius:10px;padding:1rem}.attendance-item-link{color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s;display:block}.attendance-item-link:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.attendance-item-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.admin-back-link{color:var(--primary);margin-bottom:.5rem;font-size:.875rem;text-decoration:none;display:inline-block}.admin-back-link:hover{text-decoration:underline}.attendance-item.present{color:var(--success);background:#f0fdf4}.attendance-item.absent{color:var(--danger);background:#fef2f2}.attendance-item.late{color:#c2410c;background:#fff7ed}.attendance-item.leave{color:#1d4ed8;background:#eff6ff}.attendance-num{font-size:1.5rem;font-weight:700;display:block}.admin-notif-list{gap:.75rem;list-style:none;display:grid}.admin-notif-item{background:var(--bg);border-radius:8px;padding:.75rem}.admin-notif-item p{color:var(--muted);margin:.25rem 0;font-size:.875rem}.admin-notif-clickable p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.admin-notif-clickable{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;border:none;display:block}.admin-notif-clickable:hover{background:#f0fdf4}.admin-notif-clickable.unread strong:after{content:"";background:var(--primary);vertical-align:middle;border-radius:50%;width:.45rem;height:.45rem;margin-left:.4rem;display:inline-block}.admin-notif-link{color:inherit;text-decoration:none;display:block}.admin-notif-link:hover strong{color:var(--primary)}.admin-notif-target{color:var(--primary-dark);font-size:.75rem}.admin-notif-empty{color:var(--muted);font-size:.875rem}.admin-chart-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;display:grid}.admin-chart-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.admin-chart-title{margin-bottom:1rem;font-size:1rem}.admin-chart-empty{color:var(--muted)}.admin-bar-chart{gap:.625rem;display:grid}.admin-bar-row{grid-template-columns:80px 1fr 40px;align-items:center;gap:.5rem;display:grid}.admin-bar-label{white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.admin-bar-track{background:var(--bg);border-radius:999px;height:8px;overflow:hidden}.admin-bar-fill{background:linear-gradient(90deg, var(--primary), var(--primary-dark));border-radius:999px;height:100%;transition:width .4s}.admin-bar-value{text-align:right;font-size:.8125rem;font-weight:600}.checkbox-grid{border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;max-height:160px;padding:.5rem;display:grid;overflow-y:auto}.checkbox-item{align-items:center;gap:.5rem;font-size:.875rem;display:flex}.input-with-btn{gap:.5rem;display:flex}.input-with-btn input{flex:1}.badge-present{color:var(--success);background:#dcfce7}.badge-absent{color:var(--danger);background:#fef2f2}.badge-late{color:#c2410c;background:#ffedd5}.badge-leave{color:#1d4ed8;background:#dbeafe}.class-chip-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.class-chip{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:12px;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;text-decoration:none;transition:box-shadow .2s,border-color .2s;display:flex}.class-chip:hover{border-color:var(--primary);box-shadow:0 4px 12px #0000000f}.class-chip-name{color:var(--primary-dark);font-size:1.25rem;font-weight:700}.class-chip-meta{color:var(--muted);font-size:.8125rem}.class-chip-room{color:var(--text);font-size:.8125rem}.class-chip-action{pointer-events:none;align-self:flex-start;margin-top:.75rem}.class-chip-top{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.class-chip-subject{color:var(--primary-dark);font-size:.8125rem;font-weight:600}.class-chip-homeroom{border-left:4px solid var(--primary);cursor:default}.class-chip-teaching{color:inherit;border-left:4px solid #2563eb;text-decoration:none}.class-chip-badges{flex-wrap:wrap;justify-content:flex-end;gap:.25rem;display:flex}.class-chip-dual-role{box-shadow:inset 0 0 0 1px #2563eb26}.class-chip-link-btn{align-self:flex-start;width:fit-content;margin-top:.75rem;text-decoration:none}.class-chip-subject-actions{border-top:1px dashed var(--border);flex-direction:column;gap:.375rem;margin-top:.75rem;padding-top:.75rem;display:flex}.class-chip-subject-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.class-chip-subject-btn{align-self:flex-start;text-decoration:none}.class-role-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;padding:.2rem .5rem;font-size:.6875rem;font-weight:700;display:inline-block}.class-role-badge-homeroom{color:var(--primary-dark);background:#f0fdf4}.class-role-badge-teaching{color:#1d4ed8;background:#eff6ff}.homeroom-class-title{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.homeroom-class-title h3{margin:0}.tabs-nav{border-bottom:1px solid var(--border);gap:.5rem;margin-bottom:1.25rem;padding-bottom:0;display:flex}.tabs-nav-item{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.375rem;margin-bottom:-1px;padding:.625rem 1rem;font-size:.875rem;font-weight:600;transition:color .2s,border-color .2s;display:inline-flex}.tabs-nav-item:hover{color:var(--text)}.tabs-nav-item.active{color:var(--primary-dark);border-bottom-color:var(--primary)}.tabs-count{background:var(--bg);color:var(--muted);border-radius:999px;padding:.1rem .45rem;font-size:.75rem;font-weight:700}.tabs-nav-item.active .tabs-count{color:var(--primary-dark);background:#f0fdf4}.grade-summary-scroll{overflow-x:auto}.grade-summary-table th,.grade-summary-table td{white-space:nowrap}.grade-summary-table td:first-child,.grade-summary-table th:first-child,.grade-summary-table td:nth-child(2),.grade-summary-table th:nth-child(2){background:var(--card);z-index:1;position:sticky;left:0}.grade-summary-table td:nth-child(2),.grade-summary-table th:nth-child(2){z-index:2;left:4.5rem}.grade-summary-input{text-align:center;width:4.25rem;min-width:4.25rem}.grade-summary-table td.cell-locked{opacity:.65}.grade-summary-actions{justify-content:flex-end;margin-top:1rem;padding-top:.5rem;display:flex}.grade-summary-section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;margin-bottom:1rem;display:flex}.grade-summary-section-header .form-hint{flex:1;min-width:200px;margin-bottom:0}.grade-summary-overview-table .grade-summary-actions-col{white-space:nowrap;text-align:right;width:1%}.grade-rank-badge{min-width:1.75rem;height:1.75rem;color:var(--primary-dark);background:#f0fdf4;border-radius:999px;justify-content:center;align-items:center;padding:0 .5rem;font-size:.875rem;font-weight:700;display:inline-flex}.student-grades-card{border:1px solid var(--border);border-radius:16px;overflow:hidden}.student-grades-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem 1.5rem;margin-bottom:1.25rem;display:flex}.student-grades-header h3{margin:0}.student-grades-filters{flex-direction:column;align-items:stretch;gap:.75rem;min-width:min(100%,280px);display:flex}.student-grade-filter{flex-direction:column;gap:.35rem;display:flex}.student-grade-filter label{color:var(--muted);font-size:.8125rem;font-weight:600}.student-grade-filter-select,.student-grade-month-select{border:1px solid var(--border);width:100%;min-width:0;color:var(--text);cursor:pointer;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2315803d' d='M1.41 0 6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E") right .75rem center no-repeat;border-radius:10px;padding:.55rem 2rem .55rem .85rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:border-color .2s,box-shadow .2s}.student-grade-filter-select:hover,.student-grade-filter-select:focus,.student-grade-month-select:hover,.student-grade-month-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #22c55e26}.student-grade-filter-select:disabled{opacity:.65;cursor:not-allowed}.student-grade-matrix-scroll{border:1px solid var(--border);-webkit-overflow-scrolling:touch;background:#fff;border-radius:12px;overflow-x:auto}.student-grade-matrix-table{border-collapse:collapse;width:100%;min-width:max-content}.student-grade-matrix-table th,.student-grade-matrix-table td{text-align:center;vertical-align:middle;white-space:nowrap;border:1px solid #e8edf2;padding:.85rem 1rem;font-size:.875rem}.student-grade-matrix-table thead th{color:var(--text);background:linear-gradient(#f8fafc 0%,#f1f5f9 100%);min-width:5.5rem;font-size:.8125rem;font-weight:700}.student-grade-matrix-table tbody td{color:var(--text);background:#fff;font-weight:600}.student-grade-matrix-table tbody tr:hover td:not(.student-grade-matrix-summary-col){background:#fafafa}.student-grade-matrix-summary-col{min-width:5.75rem;color:var(--primary-dark);background:#f0fdf4!important}.student-grade-matrix-summary-col strong{color:var(--primary-dark);font-size:1rem}@media (width<=768px){.student-grades-header{flex-direction:column;align-items:stretch}.student-grades-filters{width:100%}.student-grade-matrix-table th,.student-grade-matrix-table td{padding:.7rem .75rem;font-size:.8125rem}}.homeroom-grade-entry-modal{width:min(100%,720px)}.homeroom-grade-entry-subtitle{color:var(--muted);margin:.25rem 0 0;font-size:.875rem}.homeroom-grade-entry-subtitle .cell-sub{margin-left:.5rem}.homeroom-grade-entry-form{gap:1.25rem;display:grid}.homeroom-grade-matrix-scroll{border:1px solid var(--border);background:var(--card);border-radius:12px;overflow-x:auto}.homeroom-grade-matrix-table{border-collapse:collapse;width:100%;min-width:max-content}.homeroom-grade-matrix-table th,.homeroom-grade-matrix-table td{border:1px solid var(--border);text-align:center;vertical-align:middle;white-space:nowrap;padding:.75rem .875rem}.homeroom-grade-matrix-table thead th{color:var(--text);background:#f8fafc;font-size:.8125rem;font-weight:600}.homeroom-grade-matrix-table tbody td{background:var(--card)}.homeroom-grade-matrix-input{text-align:center;width:4.5rem;min-width:4.5rem;margin:0 auto;display:block}.homeroom-grade-matrix-total-col{min-width:4.75rem;background:#f0fdf4!important}.homeroom-grade-matrix-total{color:var(--primary-dark);font-size:1rem}.homeroom-grade-matrix-lock{margin-top:.25rem;font-size:.75rem;display:block}.homeroom-grade-entry-actions{margin-top:.25rem}.teacher-timetable-card{overflow:hidden}.teacher-timetable-scroll{border:1px solid var(--border);border-radius:12px;overflow-x:auto}.teacher-timetable-table{min-width:640px;margin:0}.teacher-timetable-table th,.teacher-timetable-table td{border-color:var(--border);vertical-align:middle;padding:.875rem 1rem}.teacher-timetable-table thead th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#f8fafc;font-size:.8125rem}.teacher-timetable-table tbody tr:hover{background:#fafafa}.teacher-timetable-day{white-space:nowrap;font-weight:600}.teacher-timetable-time{color:#1d4ed8;white-space:nowrap;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:.25rem .625rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8125rem;font-weight:600;display:inline-block}.teacher-timetable-subject strong{color:var(--text);font-size:.9375rem}.teacher-timetable-count{color:var(--primary-dark);white-space:nowrap;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;padding:.25rem .75rem;font-size:.8125rem;font-weight:600}@media (width<=768px){.teacher-timetable-table th,.teacher-timetable-table td{padding:.75rem .625rem;font-size:.875rem}.teacher-timetable-time{padding:.2rem .5rem;font-size:.75rem}}.homeroom-detail-card{padding-top:.5rem}.homeroom-detail-tabs{margin-bottom:0;padding:0 .25rem}.homeroom-tab-panel{padding-top:1rem}.homeroom-tab-filters{box-shadow:none;border:1px solid var(--border);margin-bottom:1rem}.homeroom-tab-filters.form-card{padding:1rem}.material-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.material-card{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.5rem;padding:1.25rem;display:flex}.material-card h4{margin:0;font-size:1rem}.material-type{color:var(--primary-dark);background:#f0fdf4;border-radius:999px;align-self:flex-start;padding:.125rem .5rem;font-size:.75rem}.row-locked{opacity:.6;background:#f9fafb}.row-locked input{pointer-events:none}.lock-badge{color:var(--danger);background:#fef2f2;border-radius:999px;margin-left:.5rem;padding:.125rem .5rem;font-size:.75rem;display:inline-block}.form-hint{color:var(--muted);margin-bottom:1rem;font-size:.875rem}.readonly-fields input[disabled]{background:var(--bg);color:var(--muted);cursor:not-allowed}.readonly-input{background:var(--bg);color:var(--text);cursor:default}.profile-card h3{margin-bottom:1.25rem}.profile-layout{grid-template-columns:180px 1fr;align-items:start;gap:2rem;display:grid}.profile-avatar-column .avatar-picker{align-items:flex-start;margin-bottom:0}.profile-avatar-column .avatar-picker-hint{text-align:left;max-width:160px;line-height:1.4}.profile-fields-column{gap:1rem;display:grid}.profile-fields-column .form-group{margin-bottom:0}.profile-save-btn{justify-self:start;margin-top:.25rem}.profile-fields-column{flex-direction:column;gap:1.25rem;display:flex}.profile-section{flex-direction:column;gap:.75rem;display:flex}.profile-section-title{color:var(--text);border-bottom:1px solid var(--border);margin:0;padding-bottom:.35rem;font-size:.9375rem;font-weight:600}.profile-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;display:grid}.profile-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.25rem;display:flex}.avatar-picker-trigger.avatar-picker-disabled{cursor:default}.avatar-picker-trigger.avatar-picker-disabled:hover{box-shadow:none;transform:none}.profile-edit-header{margin-bottom:1rem}.profile-back-link{color:var(--primary);margin-bottom:.5rem;font-size:.875rem;text-decoration:none;display:inline-block}.profile-back-link:hover{text-decoration:underline}.password-modal{background:var(--card);border-radius:16px;width:min(100%,420px);padding:1.25rem;box-shadow:0 20px 40px #0003}.password-modal-form{gap:1rem;margin-top:.5rem;display:grid}.reset-password-user{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;flex-direction:column;gap:.15rem;margin:0 0 .5rem;padding:.85rem 1rem;display:flex}.reset-password-user strong{color:var(--text);font-size:.98rem}.reset-password-user span{color:var(--muted);font-size:.8125rem}.reset-password-role{background:#dcfce7;border-radius:999px;align-self:flex-start;margin-top:.35rem;padding:.15rem .55rem;font-weight:600;color:var(--primary-dark)!important;font-size:.75rem!important;display:inline-flex!important}.reset-password-actions{margin-top:.25rem}.reset-password-modal .form-group input{width:100%}.reset-password-modal .input-with-icon input{padding-left:.75rem;padding-right:2.6rem}.avatar-picker{flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.avatar-picker-trigger{border:3px solid var(--primary);cursor:pointer;background:#f0fdf4;border-radius:50%;width:112px;height:112px;padding:0;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.avatar-picker-trigger:hover{transform:scale(1.03);box-shadow:0 8px 20px #1665342e}.avatar-picker-image{object-fit:cover;width:100%;height:100%;display:block}.avatar-picker-fallback{width:100%;height:100%;color:var(--primary-dark);background:linear-gradient(135deg,#f0fdf4,#dcfce7);justify-content:center;align-items:center;font-size:2rem;font-weight:700;display:flex}.avatar-picker-badge{background:var(--primary);color:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.875rem;display:flex;position:absolute;bottom:4px;right:4px}.avatar-picker-hint{color:var(--muted);text-align:center;font-size:.8125rem}.avatar-modal-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-layer-top{z-index:1100}.modal-layer-back{pointer-events:none}.schedule-entry-modal{max-height:none;overflow:visible}.schedule-entry-modal .schedule-form-grid .form-group{overflow:visible}.schedule-entry-modal select{z-index:2;cursor:pointer;width:100%;position:relative}.avatar-modal{background:var(--card);border-radius:16px;width:min(100%,420px);padding:1.25rem;box-shadow:0 20px 40px #0003}.avatar-modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.avatar-modal-header h4{margin:0;font-size:1.125rem}.avatar-modal-close{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:.25rem .5rem;font-size:1.5rem;line-height:1}.avatar-modal-preview{border:4px solid var(--primary);background:#f0fdf4;border-radius:50%;justify-content:center;align-items:center;width:220px;height:220px;margin:0 auto 1.25rem;display:flex;overflow:hidden}.avatar-modal-preview img{object-fit:cover;width:100%;height:100%}.confirm-modal-message{color:var(--text);margin:0;line-height:1.5}.confirm-modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.25rem;display:flex}.avatar-file-input{display:none}@media (width<=768px){.profile-layout{grid-template-columns:1fr;gap:1.25rem}.profile-field-grid{grid-template-columns:1fr}.profile-avatar-column .avatar-picker{align-items:center}.profile-avatar-column .avatar-picker-hint{text-align:center;max-width:none}.teacher-filter-bar{grid-template-columns:1fr}}.teacher-filter-bar{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end;gap:1rem;display:grid}.users-toolbar,.users-toolbar .form-group{margin:0}.grade-records-filters{gap:1rem;display:grid}.grade-records-search-row .form-group{max-width:520px;margin:0}.grade-records-search-row .input-with-btn input{flex:1;min-width:0}.grade-records-filter-row{margin:0}.attendance-report-filters{gap:0;display:grid}.attendance-report-export-wrap{align-self:end}.attendance-warning-row{background:#fff7ed}.attendance-warning-row:hover{background:#ffedd5}.notification-attachment-picker{margin-bottom:1rem}.notification-attachment-dropzone{border:2px dashed var(--border);text-align:center;background:#f8fafc;border-radius:12px;justify-items:center;gap:.5rem;padding:1.25rem;transition:border-color .15s,background .15s;display:grid}.notification-attachment-dropzone.drag-over{border-color:var(--primary);background:#f0fdf4}.notification-attachment-input{display:none}.notification-attachment-dropzone-icon{font-size:1.75rem}.notification-attachment-dropzone p{color:var(--text);margin:0;font-size:.875rem}.notification-attachment-choose-btn{min-width:8rem;font-weight:700;box-shadow:0 4px 12px #16a34a47}.notification-attachment-choose-btn:hover{filter:brightness(1.05);box-shadow:0 6px 16px #16a34a59}.notification-attachment-selected{border:1px solid var(--border);background:#f8fafc;border-radius:12px;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.notification-attachment-file-icon{font-size:1.5rem;line-height:1}.notification-attachment-file-meta{flex:1;min-width:0}.notification-attachment-file-meta strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.notification-attachment-remove{color:#b91c1c;cursor:pointer;background:#fee2e2;border:none;border-radius:50%;flex-shrink:0;width:2rem;height:2rem;font-size:1.25rem;line-height:1}.notification-attachment-remove:hover{background:#fecaca}.notification-list-attachment{margin-top:.35rem;font-size:.8125rem}.notification-list-attachment a{color:var(--primary-dark);text-decoration:none}.notification-list-attachment a:hover{text-decoration:underline}.notification-detail-attachment{color:var(--primary-dark);margin-top:.5rem;font-size:.8125rem;text-decoration:none;display:inline-block}.input-readonly{color:var(--text);cursor:default;background:#f1f5f9}.table-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.table-card-header h3{margin:0}.bulk-toolbar{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.bulk-toolbar span{color:var(--primary-dark);font-size:.875rem;font-weight:600}.table-checkbox-col{text-align:center;vertical-align:middle;width:44px}.table-row-checkbox{cursor:pointer;width:1rem;height:1rem;accent-color:var(--primary)}.data-table tr.row-selected{background:#f8fafc}.bulk-assign-modal{width:min(100%,460px)}.bulk-assign-modal .form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=520px){.bulk-assign-modal .form-row{grid-template-columns:1fr}}.bulk-assign-modal .form-group{margin-bottom:1.25rem}.bulk-assign-modal .confirm-modal-actions{margin-top:.5rem}.table-card-meta{color:var(--muted);margin:.25rem 0 0;font-size:.8125rem}.table-pagination{border-top:1px solid var(--border);justify-content:center;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;display:flex}.form-modal{background:var(--card);border-radius:16px;width:min(100%,640px);max-height:min(90vh,720px);padding:1.25rem;overflow-y:auto;box-shadow:0 20px 40px #0003}.form-modal-wide{width:min(100%,760px)}.teacher-detail-modal{width:min(100%,920px);max-height:min(90vh,900px);overflow-y:auto}.teacher-detail-body{flex-direction:column;gap:1.25rem;display:flex}.teacher-detail-header{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding-bottom:1rem;display:flex}.teacher-detail-avatar{border:3px solid var(--primary);background:#f0fdf4;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex;overflow:hidden}.teacher-detail-avatar img{object-fit:cover;width:100%;height:100%}.teacher-detail-avatar span{color:var(--primary-dark);font-size:1.5rem;font-weight:700}.teacher-detail-header h3{margin:0 0 .25rem}.teacher-detail-meta{color:var(--muted);margin:0;font-size:.875rem}.teacher-detail-tags{flex-wrap:wrap;gap:.375rem;margin-top:.5rem;display:flex}.teacher-detail-section h5{color:var(--text);margin:0 0 .75rem;font-size:.9375rem}.teacher-detail-section-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.teacher-detail-section-header h5{margin:0}.teacher-detail-edit-btn{min-width:5.5rem;font-weight:700;box-shadow:0 4px 12px #16834b47}.teacher-detail-edit-btn:hover{filter:brightness(1.05);box-shadow:0 6px 16px #16834b59}.teacher-detail-toolbar{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:.75rem;display:flex}.teacher-detail-toolbar-field{flex:1;min-width:200px;margin:0}.teacher-detail-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem 1rem;display:grid}.teacher-detail-item{flex-direction:column;gap:.2rem;display:flex}.teacher-detail-label{color:var(--muted);font-size:.8125rem}.teacher-detail-value{font-size:.9375rem;font-weight:500}.teacher-detail-table{margin-top:0}.teacher-detail-empty{color:var(--muted);margin:0;font-size:.875rem}.btn-icon{white-space:nowrap}.form-modal-body{gap:1rem;display:grid}.form-modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.notification-detail-modal{width:min(100%,560px)}.notification-detail-title{margin:0;font-size:1.125rem}.notification-detail-message{white-space:pre-wrap;margin:0;line-height:1.55}.notification-detail-attachment{color:var(--primary);margin-top:.25rem;font-weight:600;display:inline-block}.student-history-modal{width:min(100%,820px)}.student-history-year{gap:.5rem;margin-bottom:1rem;display:grid}.student-history-year-head{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:.75rem 1.25rem;font-size:.875rem;display:flex}.student-history-year-head strong{color:var(--text);font-size:.95rem}.schedule-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:1rem;display:grid}.schedule-form-submit{align-items:flex-end;display:flex}.schedule-list-hint{margin-bottom:1rem}.timetable-wrapper{overflow-x:auto}.timetable-grid{border-collapse:separate;border-spacing:0;width:100%;min-width:640px}.timetable-grid th,.timetable-grid td{border:1px solid var(--border);vertical-align:top;text-align:center;padding:.625rem}.timetable-grid thead th{color:var(--primary-dark);background:#f0fdf4;font-weight:600}.timetable-corner,.timetable-period{background:var(--bg);white-space:nowrap;font-weight:600}.timetable-period{vertical-align:middle}.timetable-period-time{color:var(--text-muted);margin-top:.25rem;font-size:.75rem;font-weight:500;display:block}.timetable-cell{background:var(--card);min-width:120px;min-height:88px;position:relative}.timetable-cell-filled{background:#f8fafc}.timetable-cell-empty{background:#fafafa}.timetable-entry{gap:.25rem;padding-right:2.5rem;font-size:.8125rem;display:grid;position:relative}.timetable-entry strong{color:var(--text);font-size:.875rem}.timetable-entry span{color:var(--muted)}.timetable-meta{font-size:.75rem}.timetable-entry-actions{gap:.25rem;display:flex;position:absolute;top:-.25rem;right:-.25rem}.timetable-edit{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:none;border-radius:999px;width:1.25rem;height:1.25rem;font-size:.75rem;line-height:1}.timetable-delete{color:var(--danger);cursor:pointer;background:#fef2f2;border:none;border-radius:999px;width:1.25rem;height:1.25rem;font-size:.875rem;line-height:1;position:static}.timetable-add-slot{border:1px dashed var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;width:100%;min-height:72px;font-size:1.25rem;transition:border-color .15s,color .15s}.timetable-add-slot:hover{border-color:var(--primary);color:var(--primary)}@media (width<=768px){.schedule-form-grid{grid-template-columns:1fr 1fr}}.grade-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.attendance-subject-required-hint{color:var(--danger);flex:100%;margin:0 0 .25rem;font-size:.8125rem;font-weight:500}.input-required{box-shadow:0 0 0 2px #ef44441f;border-color:var(--danger)!important}.cell-sub{color:var(--muted);margin-top:.125rem;font-size:.75rem;display:block}.publish-badge{color:#1d4ed8;background:#dbeafe;border-radius:999px;margin-left:.5rem;padding:.125rem .5rem;font-size:.6875rem;display:inline-block}.attendance-legend{flex-wrap:wrap;gap:.5rem;display:flex}.legend-item{border-radius:999px;padding:.25rem .625rem;font-size:.75rem}.attendance-grid-table th,.attendance-grid-table td{text-align:center}.attendance-grid-table th:first-child,.attendance-grid-table td:first-child,.attendance-grid-student{text-align:left}.attendance-grid-student{min-width:180px}.attendance-check-cell{width:72px}.attendance-radio input{cursor:pointer;width:18px;height:18px}.attendance-editing-badge{color:var(--primary-dark);background:#f0fdf4;border-radius:999px;margin-left:.5rem;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.attendance-history-students{color:var(--text);margin:0;padding-left:1rem;font-size:.8125rem}.attendance-history-students li{margin:.125rem 0}.attendance-history-table td:first-child{min-width:160px}.attendance-history-table .cell-sub{color:var(--muted);font-size:.8125rem;font-weight:400;display:block}.attendance-history-card .table-card-header{margin-bottom:.75rem}.attendance-history-count{color:var(--primary-dark);white-space:nowrap;background:#f0fdf4;border-radius:999px;align-items:center;padding:.35rem .75rem;font-size:.8125rem;font-weight:600;display:inline-flex}.attendance-history-toolbar{background:var(--bg);border:1px solid var(--border);border-radius:12px;margin-bottom:1rem;padding:1rem}.attendance-history-clear-wrap{align-self:end}.attendance-history-table{table-layout:fixed;width:100%;min-width:860px}.attendance-history-table th,.attendance-history-table td{vertical-align:middle;padding:.75rem .625rem}.attendance-history-table th:first-child,.attendance-history-table td:first-child{width:22%}.attendance-history-table th:nth-child(2),.attendance-history-table td:nth-child(2){width:10%}.attendance-history-table th:nth-child(3),.attendance-history-table td:nth-child(3){width:11%}.attendance-history-table th:nth-child(4),.attendance-history-table td:nth-child(4){width:14%}.attendance-history-table th:nth-child(5),.attendance-history-table td:nth-child(5){width:13%}.attendance-history-table th:nth-child(6),.attendance-history-table td:nth-child(6){width:14%}.attendance-history-actions-col{text-align:center;width:10%}.attendance-history-table td.actions{text-align:center}.attendance-history-date{white-space:nowrap;font-weight:500}.attendance-period-cell{line-height:1.35}.attendance-period-num{color:var(--text);font-weight:600}.attendance-status-badge{letter-spacing:.01em;border-radius:999px;justify-content:center;align-items:center;min-width:5.5rem;padding:.3rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.btn-edit-attendance{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .85rem;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn-edit-attendance:hover{background:#dbeafe;border-color:#93c5fd;box-shadow:0 2px 8px #1d4ed81f}.btn-edit-attendance-icon{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.75rem;line-height:1;display:inline-flex}.table-scroll{border:1px solid var(--border);border-radius:12px;overflow-x:auto}.table-scroll .data-table{border:none;border-radius:0;margin:0}.teaching-grade-sheet-table{table-layout:fixed;width:100%}.teaching-grade-sheet-table th:first-child,.teaching-grade-sheet-table td:first-child{text-align:left;width:50%}.teaching-grade-score-col{text-align:center;width:12%}.teaching-grade-score-cell{text-align:center;vertical-align:middle}.teaching-grade-score-box{border:1px solid var(--border);width:4.5rem;color:var(--primary-dark);text-align:center;cursor:default;background:#f8fafc;border-radius:10px;padding:.45rem .5rem;font-size:1rem;font-weight:700}.teaching-grade-score-box::placeholder{color:var(--muted);font-weight:500}.row-locked .teaching-grade-score-box{color:var(--muted);background:#f1f5f9}.teaching-grade-actions-col{text-align:center;width:38%}.teaching-grade-sheet-table td.actions{text-align:center}.teaching-grade-entry-modal{width:min(100%,400px)}.teaching-grade-entry-form{gap:1rem;display:grid}.teaching-grade-score-input{width:100%;max-width:160px;font-size:1.125rem;font-weight:600}.edit-attendance-modal{width:min(100%,420px)}.edit-attendance-info{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:1rem}.edit-attendance-info p{margin:0 0 .25rem}.edit-attendance-meta{color:var(--muted);font-size:.8125rem;margin-top:.5rem!important}.edit-attendance-status-group{border:none;flex-direction:column;gap:.625rem;margin:0;padding:0;display:flex}.edit-attendance-status-group legend{margin-bottom:.5rem;padding:0;font-size:.875rem;font-weight:600}.edit-attendance-status-option{cursor:pointer;align-items:center;gap:.625rem;display:flex}.edit-attendance-status-option input{cursor:pointer;width:16px;height:16px}.date-input-wrap{align-items:stretch;width:100%;display:flex;position:relative}.date-input-wrap:after{content:"";pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2364748b' stroke-width='1.6' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") 50%/contain no-repeat;width:1rem;height:1rem;position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}.date-input-wrap input[type=text]{width:100%;padding-right:2.6rem}.date-input-native{color:#0000;cursor:pointer;background:0 0;width:2.5rem;height:100%;margin:0;position:absolute;top:0;right:0;border:none!important;padding:0!important}.date-input-native:focus{box-shadow:none;outline:none!important}.date-input-native::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.excuse-reason-modal{width:min(100%,420px)}.excuse-reason-student{margin:0 0 .75rem}.excuse-reason-view{border:1px solid var(--border);white-space:pre-wrap;background:#f8fafc;border-radius:10px;margin:0 0 1.25rem;padding:.85rem 1rem;line-height:1.55}.excuse-reason-chip,.attendance-status-btn{cursor:pointer;font:inherit;border:none;justify-content:center;align-items:center;margin-top:.4rem;display:inline-flex}.excuse-reason-chip{color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:.2rem .65rem;font-size:.75rem;font-weight:700}.excuse-reason-chip:hover,.attendance-status-btn:hover{filter:brightness(.96);box-shadow:0 2px 8px #0f172a14}.cms-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.cms-tab{border:1px solid var(--border);background:var(--card);cursor:pointer;font:inherit;border-radius:999px;padding:.5rem 1rem}.cms-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.cms-highlights-header{justify-content:space-between;align-items:center;gap:.75rem;margin:1.25rem 0 .35rem;display:flex}.cms-highlights-header h4{margin:0}.cms-add-highlight{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.5rem;line-height:1;display:inline-flex}.cms-add-highlight:hover{filter:brightness(.95)}.cms-highlights-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:.5rem;display:grid}.cms-highlight-card{border:1px solid var(--border);background:#f8fafc;border-radius:12px;min-width:0;padding:1rem}.cms-highlight-card-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.cms-remove-highlight{color:#b91c1c;cursor:pointer;background:#fee2e2;border:none;border-radius:999px;width:1.75rem;height:1.75rem;font-size:1.15rem;line-height:1}.cms-remove-highlight:hover{background:#fecaca}.cms-highlight-card .localized-field{margin-bottom:.75rem}.cms-highlight-card .localized-field:last-child{margin-bottom:0}.cms-map-settings{border:1px solid var(--border);background:#f8fafc;border-radius:12px;margin:1.25rem 0 1.5rem;padding:1rem 1.1rem}.cms-map-settings h4{margin:0 0 .35rem}.cms-map-settings textarea{resize:vertical;width:100%;min-height:84px;font-family:inherit}.cms-map-preview{margin-top:.75rem}.cms-map-preview .map-placeholder{border:1px solid var(--border);background:#1e293b;border-radius:12px;height:220px;overflow:hidden}.cms-map-preview .map-placeholder iframe{border:0;width:100%;height:100%}.localized-field{margin-bottom:1rem}.localized-field-label{margin-bottom:.5rem;font-weight:600;display:block}.localized-field-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.localized-field-grid.is-stacked,.localized-field.is-stacked .localized-field-grid{grid-template-columns:1fr;gap:.5rem}.cms-stat-row{border-bottom:1px solid var(--border);align-items:start;margin-bottom:1.15rem;padding-bottom:1.15rem}.cms-stat-row .localized-field{margin-bottom:0}.media-uploader{margin-bottom:1rem}.media-uploader-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.35rem;display:flex}.media-uploader-input{display:none}.media-uploader-choose-btn{min-width:7.5rem;font-weight:700;box-shadow:0 4px 12px #16a34a47}.media-uploader-choose-btn:hover{filter:brightness(1.05);box-shadow:0 6px 16px #16a34a59}.homework-upload-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.homework-file-name{color:var(--text);font-size:.875rem;font-weight:600}.homework-file-placeholder{color:var(--muted);font-size:.875rem}.media-uploader-preview{margin-top:.75rem}.media-preview-image{border:1px solid var(--border);object-fit:cover;border-radius:12px;max-width:100%;max-height:220px}.media-preview-video{border-radius:12px;max-width:100%;max-height:220px}.news-thumb{object-fit:cover;border-radius:6px;width:56px;height:40px}.news-media-grid,.banner-admin-grid,.gallery-admin-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.banner-admin-card,.gallery-admin-card,.news-media-item{border:1px solid var(--border);background:var(--card);border-radius:12px;overflow:hidden}.banner-admin-card img,.gallery-admin-media{object-fit:cover;width:100%;height:140px;display:block}.banner-admin-meta,.gallery-admin-meta{gap:.35rem;padding:.75rem;display:grid}.form-error{color:var(--danger);margin-top:.25rem;font-size:.8125rem}.toast-backdrop{z-index:2000;pointer-events:auto;background:#0f172a2e;justify-content:center;align-items:flex-start;padding:1.5rem;display:flex;position:fixed;inset:0}.toast{border-radius:14px;align-items:center;gap:.75rem;min-width:min(100%,360px);max-width:480px;padding:1rem 1.125rem;animation:.25s toast-in;display:flex;box-shadow:0 16px 40px #0000002e}.toast-success{color:#14532d;background:#f0fdf4;border:1px solid #86efac}.toast-icon{background:var(--primary);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-weight:700;display:flex}.toast-message{flex:1;margin:0;font-weight:600;line-height:1.4}.toast-close{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:.25rem;font-size:1.25rem;line-height:1}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=768px){.localized-field-grid,.cms-highlights-grid{grid-template-columns:1fr}}.subject-tags-field{border:1px solid var(--border);background:#fff;border-radius:10px;min-height:2.75rem;padding:.5rem .65rem}.subject-tags-list{flex-wrap:wrap;align-items:center;gap:.4rem;min-height:1.75rem;display:flex}.subject-tags-placeholder{color:var(--muted);font-size:.875rem}.subject-tag{color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .55rem .2rem .65rem;font-size:.8125rem;font-weight:500;display:inline-flex}.subject-tag-remove{color:#15803d;cursor:pointer;opacity:.75;background:0 0;border:none;padding:0 .15rem;font-size:1rem;line-height:1}.subject-tag-remove:hover{opacity:1}.subject-tags-add{margin-top:.45rem;position:relative}.subject-tags-add-btn{border:1px dashed var(--border);background:var(--bg);color:var(--primary-dark);cursor:pointer;border-radius:8px;padding:.3rem .65rem;font-size:.8125rem}.subject-tags-add-btn:hover:not(:disabled){border-color:var(--primary);background:#f0fdf4}.subject-tags-add-btn:disabled{opacity:.55;cursor:not-allowed}.subject-tags-menu{z-index:20;border:1px solid var(--border);background:#fff;border-radius:10px;min-width:220px;max-height:200px;margin:0;padding:.35rem;list-style:none;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 8px 24px #0f172a1f}.subject-tags-menu li button{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;width:100%;padding:.45rem .55rem;font-size:.875rem;display:flex}.subject-tags-menu li button:hover{color:#166534;background:#f0fdf4}.subject-tags-menu-code{color:var(--muted);font-size:.75rem}.subject-tags-empty{color:var(--muted);margin:.35rem 0 0;font-size:.8125rem}.form-section-block{border:1px solid var(--border);background:#f8fafc;border-radius:12px;margin-top:1rem;padding:1rem 1.1rem}.form-section-title{margin:0 0 .35rem;font-size:1rem;font-weight:700}.form-section-block .form-hint{margin-bottom:.85rem}.form-accordion{border:1px solid var(--border);background:#fafafa;border-radius:12px;margin-top:1rem;overflow:hidden}.form-accordion-toggle{width:100%;color:var(--text);cursor:pointer;text-align:left;background:#f8fafc;border:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;font-size:.9375rem;font-weight:600;display:flex}.form-accordion-toggle:hover{background:#f1f5f9}.form-accordion-icon{color:var(--primary-dark);font-size:1.125rem;line-height:1}.form-accordion-panel{border-top:1px solid var(--border);background:#fff;padding:0 1rem 1rem}.form-accordion-panel .form-hint{margin:.75rem 0}.tuition-history-list{gap:.75rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.tuition-history-item{border:1px solid var(--border);background:#f8fafc;border-radius:10px;padding:.75rem}.tuition-history-meta{color:var(--muted);margin:0 0 .35rem;font-size:.8125rem}.tuition-history-note{white-space:pre-wrap;margin:0;font-size:.9375rem}.badge-excused{color:#1d4ed8;background:#dbeafe}.parents-page{gap:1rem;display:grid}.parent-page-search{background:var(--card);border:1px solid var(--border);color:var(--muted);border-radius:14px;align-items:center;gap:.625rem;padding:.8rem 1rem;display:flex}.parent-page-search input{font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:1}.parent-card-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;display:grid}.parent-person-card{background:var(--card);border:1px solid var(--border);border-radius:16px;transition:border-color .2s,box-shadow .2s;overflow:hidden}.parent-person-card.is-expanded,.parent-person-card:hover{border-color:#99f6e4;box-shadow:0 8px 20px #0f172a0f}.parent-person-main{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:.85rem;padding:.95rem 1rem;display:flex}.parent-person-avatar,.parent-child-avatar{color:#0f766e;background:#ccfbf1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-weight:700;display:flex;overflow:hidden}.parent-person-avatar.rel-father{color:#1d4ed8;background:#dbeafe}.parent-person-avatar.rel-mother{color:#be185d;background:#fce7f3}.parent-person-avatar.rel-guardian{color:#0f766e;background:#ccfbf1}.parent-child-avatar img{object-fit:cover;width:100%;height:100%}.parent-person-info{flex:1;min-width:0}.parent-person-top{flex-wrap:wrap;align-items:center;gap:.45rem .6rem;margin-bottom:.4rem;display:flex}.parent-person-top strong{color:var(--text);font-size:.98rem}.parent-rel-badge{border-radius:999px;align-items:center;padding:.12rem .5rem;font-size:.72rem;font-weight:600;display:inline-flex}.parent-rel-badge.rel-father{color:#1d4ed8;background:#dbeafe}.parent-rel-badge.rel-mother{color:#be185d;background:#fce7f3}.parent-rel-badge.rel-guardian{color:#0f766e;background:#ccfbf1}.parent-person-contacts{color:var(--muted);gap:.28rem;font-size:.8125rem;display:grid}.parent-person-contacts span{align-items:center;gap:.4rem;min-width:0;display:flex}.parent-person-contacts a{color:inherit;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}.parent-person-contacts a:hover{color:var(--primary-dark)}.parent-person-chevron{color:var(--muted);margin-top:.35rem;font-size:.85rem}.parent-children{border-top:1px solid var(--border);padding:0 1rem 1rem}.parent-children h5{color:var(--muted);margin:.85rem 0 .65rem;font-size:.82rem}.parent-child-list{gap:.6rem;list-style:none;display:grid}.parent-child-card{background:#f8fafc;border-radius:12px;align-items:center;gap:.75rem;padding:.7rem;display:flex}.parent-child-info{flex:1;gap:.1rem;min-width:0;display:grid}.parent-child-info strong{font-size:.9rem}.parent-child-info span,.parent-child-meta{color:var(--muted);font-size:.78rem}.parent-list-empty{text-align:center;color:var(--muted);margin:1.5rem 0;font-size:.9rem}@media (width<=640px){.parent-card-list{grid-template-columns:1fr}.parent-child-card{flex-wrap:wrap}}.mobile-menu-btn{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;padding:0}.mobile-menu-btn span{background:var(--text);border-radius:2px;width:18px;height:2px;transition:transform .2s,opacity .2s;display:block}.mobile-menu-btn.is-open span:first-child{transform:translateY(7px)rotate(45deg)}.mobile-menu-btn.is-open span:nth-child(2){opacity:0}.mobile-menu-btn.is-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.sidebar-close-btn{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.5rem;line-height:1}.sidebar-backdrop{z-index:1350;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;background:#0f172a7a;border:0;padding:0;position:fixed;inset:0}:is(.table-card,.card:has(>.data-table),.card:has(>table)){-webkit-overflow-scrolling:touch;overflow-x:auto}.tabs-nav,.cms-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.tabs-nav::-webkit-scrollbar{display:none}.cms-tabs::-webkit-scrollbar{display:none}.tabs-nav-item,.cms-tab{white-space:nowrap;flex-shrink:0}@media (width<=900px){.app-layout{flex-direction:row}.sidebar-backdrop{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility .25s;display:block}.app-layout.sidebar-open .sidebar-backdrop{opacity:1;visibility:visible;pointer-events:auto}.sidebar{z-index:1400;visibility:hidden;pointer-events:none;width:min(86vw,300px);height:100dvh;box-shadow:none;transition:transform .28s cubic-bezier(.22,1,.36,1),visibility .28s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%)}.app-layout.sidebar-open .sidebar{visibility:visible;pointer-events:auto;transform:translate(0,0);box-shadow:12px 0 40px #0f172a38}.mobile-menu-btn,.sidebar-close-btn{display:inline-flex}.main-content{width:100%;padding:1rem;padding-bottom:max(1.25rem, env(safe-area-inset-bottom))}.page-header{z-index:200;padding:.75rem 1rem;padding-top:max(.75rem, env(safe-area-inset-top));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.65rem .75rem;margin:-1rem -1rem 1rem;position:sticky;top:0}.page-header h1{font-size:1.2rem}.page-header-actions{gap:.5rem;margin-left:auto}.header-lang .lang-btn{min-height:36px;padding:.4rem .7rem}.card,.stat-card,.admin-stat-card,.admin-chart-card{border-radius:14px;padding:1.1rem}.form-row{grid-template-columns:1fr}.form-group input,.form-group select,.form-group textarea,.login-form input,.student-grade-filter-select,.student-grade-month-select{min-height:44px;font-size:16px}.btn:not(.btn-sm){min-height:44px}.form-actions,.form-modal-actions,.confirm-modal-actions{flex-wrap:wrap}.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-attendance-grid{grid-template-columns:1fr 1fr}.admin-panel-grid,.admin-chart-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.class-chip-grid,.material-grid{grid-template-columns:1fr}.avatar-modal-backdrop{-webkit-overflow-scrolling:touch;padding:max(.75rem, env(safe-area-inset-top)) .75rem max(.75rem, env(safe-area-inset-bottom));align-items:flex-start;overflow-y:auto}.form-modal,.avatar-modal,.password-modal,.teacher-detail-modal{width:100%;max-height:min(92dvh,900px)}.admin-notification-dropdown{width:min(100vw - 1.5rem,380px);right:0}.header-user-dropdown{width:min(100vw - 1.5rem,280px);right:0}.tuition-year-semester,.schedule-form-grid{grid-template-columns:1fr}}@media (width<=640px){.page-header-actions{justify-content:flex-end;width:100%}.page-header h1{white-space:normal}.form-actions .btn,.form-modal-actions .btn,.confirm-modal-actions .btn{width:100%}.form-modal-actions,.confirm-modal-actions{flex-direction:column-reverse}.admin-stat-card{gap:.7rem;padding:.9rem}.admin-stat-icon{width:42px;height:42px;font-size:1.5rem}.admin-stat-value{font-size:1.35rem}.admin-stat-label{font-size:.75rem}.toast-backdrop{padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));align-items:flex-end}.toast{width:100%;max-width:none}}@media (width<=480px){.stat-grid,.admin-stat-grid{grid-template-columns:1fr}.header-user-menu-btn,.admin-notification-bell-btn{width:40px;height:40px}}@media (hover:none){.admin-stat-card-link:hover,.attendance-item-link:hover,.class-chip:hover{box-shadow:none;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html{scroll-behavior:smooth}img,video{max-width:100%}.public-site{--brand-green:#43a047;--brand-green-dark:#1b5e20;--brand-green-light:#e8f5e9;--primary:#43a047;--primary-dark:#1b5e20;--text-dark:#172033;--text-secondary:#667085;min-height:100dvh;padding-top:var(--public-header-h,4.75rem);background:#fff}.public-site main{overflow-x:clip}.public-header{z-index:400;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:100%;padding-top:env(safe-area-inset-top);background:#fffffff7;border-bottom:1px solid #e4e7ece6;position:fixed;top:0;left:0;right:0;box-shadow:0 1px #1720330a}.public-header-inner{align-items:center;gap:1.5rem;max-width:1320px;margin:0 auto;padding:.85rem 1.5rem;display:flex}.public-logo{color:var(--text);flex-shrink:0;align-items:center;gap:.75rem;text-decoration:none;display:flex}.logo-icon{background:linear-gradient(135deg, var(--brand-green-dark), var(--brand-green));color:#fff;letter-spacing:-.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:.7rem;font-weight:800;display:flex;overflow:hidden}.logo-icon svg{width:22px;height:22px}.logo-icon .logo-image{object-fit:cover;background:#fff;width:100%;height:100%;display:block}.logo-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.logo-text strong{color:var(--text-dark);text-overflow:ellipsis;white-space:nowrap;font-size:1.12rem;font-weight:700;overflow:hidden}.logo-text span{color:var(--text-secondary);font-size:.85rem}.logo-tagline{min-height:1.2em;display:inline-block}.typewriter-text{display:inline}.typewriter-cursor{color:var(--brand-green);margin-left:1px;font-weight:600;animation:.9s step-end infinite typewriter-blink;display:inline-block}@keyframes typewriter-blink{50%{opacity:0}}.public-nav{flex:1;justify-content:center;align-items:center;gap:.25rem;display:flex}.nav-item{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.5rem .875rem;font-family:inherit;font-size:1.05rem;transition:color .25s,background .25s}.nav-item:hover,.nav-item.active{color:var(--brand-green);background:var(--brand-green-light)}.nav-item.active{font-weight:700}.public-header-actions{align-items:center;gap:.75rem;display:flex}.nav-mobile-login{display:none}.btn-login{white-space:nowrap;background:var(--brand-green);border-color:var(--brand-green);padding:.65rem 1.2rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .25s,transform .25s,box-shadow .25s;box-shadow:0 4px 14px #43a04738}.public-header-actions .btn-login:hover{background:var(--brand-green-dark);border-color:var(--brand-green-dark);transform:translateY(-1px)}.menu-toggle{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;padding:0;display:none}.menu-toggle span{background:var(--text);border-radius:2px;width:22px;height:2px;transition:transform .2s,opacity .2s;display:block}.menu-toggle.is-open span:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.hero{display:flex;position:relative}.hero-overlay{pointer-events:none;background:radial-gradient(circle at 30%,#a5d6a738,#0000 60%);position:absolute;inset:0}.hero-content{z-index:1;max-width:820px;position:relative}.hero-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff26;border:1px solid #ffffff40;border-radius:999px;margin-bottom:1.25rem;padding:.55rem 1.15rem;font-size:1.7rem;font-weight:700;line-height:1.35;display:inline-block}.hero h1{letter-spacing:-.02em;margin-bottom:1rem;font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:1.15}.hero h1 span:not(.typewriter-text):not(.typewriter-cursor){opacity:.92;color:#c8e6c9;margin-top:.75rem;font-size:clamp(1rem,2.5vw,1.35rem);font-weight:500;display:block}.hero-desc{opacity:.9;max-width:640px;margin:0 auto 2rem;font-size:1.05rem;line-height:1.7}.hero-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.btn-lg{padding:.85rem 1.75rem;font-size:1rem}.btn-light{color:var(--brand-green-dark);background:#fff;border:none}.btn-light:hover{background:var(--brand-green-light);transform:translateY(-1px)}.btn-outline-light{color:#fff;background:0 0;border:2px solid #ffffffb3}.btn-outline-light:hover{background:#ffffff1f;border-color:#fff}.stats-section{z-index:2;margin-top:-2.5rem;padding:0 1.5rem;position:relative}.stats-section-inner{max-width:1320px;margin:0 auto}.stats-grid{box-shadow:none;background:0 0;border:none;grid-template-columns:repeat(4,1fr);gap:1rem;padding:0;display:grid}@property --stat-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.stat-item{--stat-accent:#43a047;--stat-accent-soft:#e8f5e9;--stat-accent-glow:#43a04747;--stat-spin-delay:0s;--stat-angle:0deg;isolation:isolate;z-index:0;text-align:center;animation:.55s ease-out backwards statFadeInUp;animation-delay:var(--stat-delay,0s);background:#fff;border:none;border-radius:16px;padding:1.45rem 1rem 1.25rem;transition:transform .28s,box-shadow .28s;position:relative;box-shadow:0 10px 30px #0000000d}.stat-item:before{content:"";z-index:1;border-radius:inherit;background:conic-gradient(from var(--stat-angle), color-mix(in srgb, var(--stat-accent) 22%, transparent) 0%, var(--stat-accent) 14%, #fff 22%, color-mix(in srgb, var(--stat-accent) 22%, transparent) 34%, color-mix(in srgb, var(--stat-accent) 18%, transparent) 100%);-webkit-mask-composite:xor;animation:2.6s linear infinite statBorderSpin;animation-delay:var(--stat-spin-delay);pointer-events:none;padding:3px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.stat-item>*{z-index:2;position:relative}.stat-item-green{--stat-accent:#43a047;--stat-accent-soft:#e8f5e9;--stat-accent-glow:#43a04747;--stat-spin-delay:0s}.stat-item-blue{--stat-accent:#2563eb;--stat-accent-soft:#eff6ff;--stat-accent-glow:#2563eb42;--stat-spin-delay:-.65s}.stat-item-orange{--stat-accent:#fb8c00;--stat-accent-soft:#fff7ed;--stat-accent-glow:#fb8c0047;--stat-spin-delay:-1.3s}.stat-item-red{--stat-accent:#e53935;--stat-accent-soft:#ffebee;--stat-accent-glow:#e5393547;--stat-spin-delay:-1.95s}@keyframes statFadeInUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes statBorderSpin{to{--stat-angle:360deg}}.stat-icon{background:var(--stat-accent-soft);width:48px;height:48px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--stat-accent) 18%, transparent);border-radius:14px;justify-content:center;align-items:center;margin:0 auto .75rem;font-size:1.45rem;line-height:1;display:flex}.stat-item strong{color:var(--stat-accent);font-size:clamp(1.5rem,2.5vw,1.85rem);font-weight:800;line-height:1.2;display:block}.stat-item span:last-child{color:var(--text-secondary);font-size:.9rem}@media (hover:hover) and (pointer:fine){.stat-item:hover{z-index:3;box-shadow:0 18px 40px var(--stat-accent-glow);transform:translateY(-8px)}.stat-item:hover:before{filter:brightness(1.12)saturate(1.15);padding:3.5px}}@media (prefers-reduced-motion:reduce){.stat-item{opacity:1;animation:none;transform:none}.stat-item:before{background:var(--stat-accent);animation:none}}.section{padding:5rem 1.5rem}.section-alt{background:#f8fafc}.section-inner{max-width:1100px;margin:0 auto}.section-header{text-align:center;max-width:640px;margin:0 auto 3rem}.section-tag{color:var(--primary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem;font-size:.8rem;font-weight:700;display:inline-block}.section-header h2{letter-spacing:-.02em;margin-bottom:.75rem;font-size:clamp(1.75rem,3vw,2.25rem)}.section-header p{color:var(--muted);font-size:1.05rem}#home,#about,#news,#contact{scroll-margin-top:var(--public-header-h,5.5rem)}.about-section{background:#f8fafc}.about-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:1.35rem;display:grid;overflow:visible}.about-card-reveal{opacity:0;min-width:0;height:100%;transform:translate(-72px)}.about-section.is-revealed .about-card-reveal{opacity:1;animation:.75s cubic-bezier(.22,1,.36,1) backwards aboutSlideInLeft;animation-delay:var(--about-delay,0s);transform:none}@keyframes aboutSlideInLeft{0%{opacity:0;transform:translate(-72px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.about-card-reveal{opacity:1;animation:none;transform:none}}.about-card{background:var(--brand-green-light);text-align:left;border:1px solid #c8e6c9;border-radius:18px;flex-direction:column;height:100%;min-height:100%;padding:1.75rem 1.4rem 1.35rem;transition:transform .22s,box-shadow .22s;display:flex;box-shadow:0 8px 24px #43a04714}.about-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px #43a04724}.about-icon{background:var(--brand-green);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 1rem;display:flex;box-shadow:0 10px 20px #43a04752}.about-icon svg{width:26px;height:26px}.about-card h3{color:var(--brand-green);text-align:left;min-height:2.8em;margin-bottom:.7rem;font-size:1.32rem;font-weight:700;line-height:1.4}.about-card p{color:var(--text-secondary,var(--muted));text-align:left;font-size:.95rem;line-height:1.8}.about-card-featured{background:var(--brand-green-light);border-color:#c8e6c9;transform:none;box-shadow:0 8px 24px #43a04714}.about-card-featured:hover{transform:translateY(-4px);box-shadow:0 16px 32px #43a04724}.about-card-featured h3{color:var(--brand-green)}.about-card-featured p{color:var(--text-secondary,var(--muted))}.about-card-featured .about-icon{background:var(--brand-green);color:#fff;box-shadow:0 10px 20px #43a04752}.about-card-featured .read-more-toggle{color:var(--brand-green)}.about-card-featured .read-more-toggle:hover{color:var(--brand-green-dark)}.read-more-block{flex-direction:column;flex:1;min-height:0;display:flex}.read-more-block p{margin:0}.read-more-block .read-more-toggle{align-self:flex-start;margin-top:auto;padding-top:.95rem;font-weight:600;text-decoration:none}.read-more-toggle{color:var(--primary-dark,#1b5e20);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin:0;padding:0;font-weight:700;text-decoration:underline;display:inline}.read-more-toggle:hover{color:var(--primary,#43a047)}.news-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.news-card{border:1px solid var(--border);background:#fff;border-radius:16px;padding:1.75rem;transition:box-shadow .2s,transform .2s}.news-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px #0f172a14}.news-card.featured{background:linear-gradient(135deg, var(--brand-green-light) 0%, #fff 100%);border-color:#a5d6a7;grid-column:span 2}.news-meta{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.news-tag{background:var(--primary);color:#fff;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.news-meta time{color:var(--muted);font-size:.8rem}.news-card h3{margin-bottom:.625rem;font-size:1.125rem;line-height:1.4}.news-card p{color:var(--muted);margin-bottom:1rem;font-size:.9375rem;line-height:1.6}.news-link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.9rem;font-weight:600}.news-link:hover{text-decoration:underline}.admissions-banner{color:#fff;background:linear-gradient(135deg,#1b5e20,#43a047);border-radius:20px;justify-content:space-between;align-items:center;gap:2rem;padding:3rem;display:flex}.admissions-banner .section-tag{color:#86efac}.admissions-banner h2{margin:.5rem 0 1rem;font-size:1.75rem}.admissions-banner p{opacity:.9;margin-bottom:1rem}.admissions-list{opacity:.92;flex-direction:column;gap:.5rem;font-size:.95rem;list-style:none;display:flex}.admissions-list li:before{content:"✓ ";color:#a5d6a7}.admissions-cta .btn-primary{color:var(--brand-green-dark);background:#fff;box-shadow:0 8px 24px #00000026}.admissions-cta .btn-primary:hover{background:var(--brand-green-light)}.lookup-section{max-width:640px}.lookup-form{gap:.75rem;margin-bottom:1.5rem;display:flex}.lookup-form input{border:1px solid var(--border);border-radius:10px;flex:1;padding:.85rem 1rem;font-size:1rem}.lookup-form input:focus{outline:2px solid var(--primary);border-color:#0000}.lookup-result{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.5rem}.lookup-result h4{color:var(--primary);margin-bottom:1rem}.lookup-result dl{gap:.75rem;display:grid}.lookup-result dl div{gap:1rem;display:flex}.lookup-result dt{min-width:90px;color:var(--muted);font-size:.875rem;font-weight:600}.lookup-result dd{font-weight:500}.lookup-note{color:var(--muted);margin-top:1rem;font-size:.8rem}.public-footer{background:var(--brand-green-dark);color:#cbd5e1;padding:4rem 1.5rem 0;padding-bottom:env(safe-area-inset-bottom)}.public-footer-grid{grid-template-columns:1.2fr 1fr .8fr 1fr;gap:2.5rem;max-width:1100px;margin:0 auto;padding-bottom:3rem;display:grid}.footer-block h3,.footer-block h4{color:#fff;margin-bottom:1rem;font-size:1rem}.footer-block p{opacity:.85;font-size:.9rem;line-height:1.65}.footer-list{flex-direction:column;gap:.625rem;font-size:.9rem;list-style:none;display:flex}.footer-links a{color:#94a3b8;text-decoration:none}.footer-links a:hover{color:#fff}.social-links{gap:.75rem;margin-top:1.25rem;display:flex}.social-links a{color:#fff;background:#ffffff1a;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;text-decoration:none;transition:background .2s;display:flex}.social-links a:hover{background:var(--primary)}.map-placeholder{background:#1e293b;border-radius:12px;height:160px;overflow:hidden}.map-placeholder iframe{filter:grayscale(30%);border:0;width:100%;height:100%}.footer-bottom{text-align:center;opacity:.7;border-top:1px solid #ffffff14;padding:1.25rem;font-size:.85rem}.login-page{min-height:100dvh;padding:max(2rem, env(safe-area-inset-top)) 1rem max(2rem, env(safe-area-inset-bottom));background:#1b5e20;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-bg-pattern{background:radial-gradient(circle at 20% 30%,#43a04766,#0000 50%),radial-gradient(circle at 80% 70%,#a5d6a747,#0000 50%),linear-gradient(160deg,#0d3b12 0%,#1b5e20 100%);position:absolute;inset:0}.login-back{color:#94a3b8;font-size:.9rem;text-decoration:none;transition:color .2s}button.login-back{cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.force-password-form .input-with-icon input{padding-left:.75rem;padding-right:2.6rem}.login-top-bar{top:max(1.25rem, env(safe-area-inset-top));left:max(1rem, env(safe-area-inset-left));right:max(1rem, env(safe-area-inset-right));z-index:2;justify-content:space-between;align-items:center;display:flex;position:absolute}.login-back:hover{color:#fff}.lang-switcher{background:#ffffff26;border:1px solid #fff3;border-radius:10px;align-items:center;gap:.25rem;padding:.2rem;display:flex}.public-header-actions .lang-switcher{background:var(--brand-green-light);border-color:#43a0472e}.public-header-actions .lang-btn{color:var(--text-secondary)}.public-header-actions .lang-btn:hover{background:#43a0471a}.public-header-actions .lang-btn.active{background:var(--brand-green);color:#fff}.sidebar-lang.lang-switcher{width:fit-content;margin-top:.75rem}.lang-btn{cursor:pointer;color:inherit;background:0 0;border:none;border-radius:8px;align-items:center;gap:.35rem;padding:.35rem .6rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:background .15s;display:flex}.lang-btn.active{background:var(--primary);color:#fff}.sidebar-lang .lang-btn{color:var(--sidebar-text)}.sidebar-lang .lang-btn.active{color:#fff;background:#ffffff26}.login-page .lang-switcher{background:#ffffff1a;border-color:#ffffff26}.login-page .lang-btn{color:#cbd5e1}.login-page .lang-btn.active{background:var(--primary);color:#fff}.lang-flag{font-size:1rem;line-height:1}.login-card{z-index:1;background:#fffffffa;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:440px;padding:2.5rem;position:relative;box-shadow:0 25px 60px #00000059}.login-brand{align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.login-logo{color:#fff;background:linear-gradient(135deg,#1b5e20,#43a047);border-radius:12px;justify-content:center;align-items:center;width:52px;height:52px;font-size:.75rem;font-weight:800;display:flex}.login-brand h1{margin-bottom:.15rem;font-size:1.35rem}.login-brand p{color:var(--muted);font-size:.85rem}.login-subtitle{color:var(--muted);margin-bottom:1.5rem;font-size:.875rem;line-height:1.5}.input-with-icon{align-items:center;display:flex;position:relative}.input-icon{pointer-events:none;opacity:.6;font-size:.9rem;position:absolute;left:.875rem}.input-with-icon input{border:1px solid var(--border);border-radius:10px;width:100%;padding:.75rem 2.5rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.input-with-icon input::-ms-reveal{display:none}.input-with-icon input::-ms-clear{display:none}.input-with-icon input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #43a04726}.toggle-password{cursor:pointer;opacity:.6;color:var(--muted,#6b7280);background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;font-size:1rem;line-height:1;display:inline-flex;position:absolute;right:.75rem}.toggle-password:hover{opacity:1}.toggle-password svg{width:1.15rem;height:1.15rem;display:block}.btn-login-submit{justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;padding:.85rem;font-size:1rem;display:flex}.login-options{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:.25rem 0 .75rem;display:flex}.remember-me{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.remember-me input{width:16px;height:16px;accent-color:var(--primary)}.link-btn{color:var(--primary-dark);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.875rem;font-weight:500;text-decoration:underline}.link-btn:hover{color:var(--primary)}.forgot-modal .form-hint{margin-bottom:.5rem}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-roles{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.5rem}.login-roles p{color:var(--muted);margin-bottom:.75rem;font-size:.8rem}.role-chips{flex-wrap:wrap;gap:.5rem;display:flex}.role-chips span{color:#475569;background:#f1f5f9;border-radius:6px;padding:.3rem .6rem;font-size:.72rem}.login-hint{text-align:center;color:var(--muted);background:#f8fafc;border-radius:8px;margin-top:1rem;padding:.75rem;font-size:.8rem}@media (width<=992px){.public-nav{border-bottom:1px solid var(--border);opacity:0;visibility:hidden;pointer-events:none;-webkit-overflow-scrolling:touch;background:#fff;flex-direction:column;align-items:stretch;max-height:min(70dvh,480px);padding:.75rem 1rem 1.15rem;transition:opacity .22s,transform .22s,visibility .22s;display:flex;position:absolute;top:100%;left:0;right:0;overflow-y:auto;transform:translateY(-8px);box-shadow:0 16px 32px #0f172a1f}.public-nav.open{opacity:1;visibility:visible;pointer-events:auto;z-index:2;transform:translateY(0)}.public-nav-backdrop{z-index:1;cursor:pointer;background:#0f172a52;border:0;padding:0;position:fixed;inset:0}.public-nav .nav-item{text-align:left;border-radius:12px;width:100%;min-height:48px;padding:.85rem .9rem;font-size:1.05rem}.public-header-inner{z-index:2;flex-wrap:nowrap;gap:.75rem;position:relative}.public-header-actions .btn-login{display:none}.nav-mobile-login{padding:.5rem .15rem .15rem;display:block}.nav-mobile-login .btn-login{justify-content:center;width:100%}.public-logo{flex:1;min-width:0}.menu-toggle{display:flex}.hero-slider{flex-direction:row;height:calc(100svh - 4.75rem);min-height:calc(100svh - 4.75rem);max-height:calc(100svh - 4.75rem);padding:0;display:flex}.hero-media{border-radius:0;order:0;width:100%;height:100%;min-height:0;position:absolute;inset:0;overflow:hidden}.hero-container{order:0;align-items:flex-end;min-height:100%;padding:1.25rem 1rem 4.75rem}.hero-gallery .hero-overlay,.hero-gallery.hero-has-media .hero-overlay{background:linear-gradient(#43a0476b 0%,#1b5e20b8 42%,#0d3010e6 100%);display:block}.hero-gallery .hero-content{max-width:100%;box-shadow:none;background:0 0;border:0;padding:0}.hero-gallery .hero-badge{color:#fff;background:#ffffff29;border:1px solid #ffffff47;margin-bottom:.75rem;padding:.28rem .75rem;font-size:.82rem}.hero-title{color:#fff;margin-bottom:.6rem;font-size:clamp(1.35rem,6.2vw,1.85rem)}.hero-slogan{font-size:clamp(1rem,2vw,1.15rem)}.hero-gallery .hero-desc{color:#fff;-webkit-line-clamp:3;border-radius:0;-webkit-box-orient:vertical;margin:0 0 1rem;padding:0;font-size:.9rem;line-height:1.55;display:-webkit-box;overflow:hidden}.hero-actions{flex-direction:column;align-items:center;gap:.6rem;width:100%}.hero-actions .btn{justify-content:center;width:auto;max-width:86%;min-height:40px;padding:.45rem 1.2rem;font-size:.88rem}.hero-gallery .btn-hero-outline{color:#fff;background:#ffffff1f;border-color:#ffffffd9}.hero-gallery .btn-hero-outline:hover{background:#ffffff38}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.about-card,.about-card h3,.about-card p{text-align:left}.about-card h3{min-height:0}.about-icon{margin-left:0;margin-right:auto}.about-card-featured{transform:none}.about-card-featured:hover{transform:translateY(-4px)}.reasons-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.news-grid,.news-grid-3{grid-template-columns:1fr}.news-card.featured{grid-column:span 1}.home-section-head-row,.home-section-head-row.is-centered{flex-direction:column;align-items:center;gap:.85rem;display:flex}.home-section-head-row.is-centered h2,.home-section-head-row.is-centered .btn-view-all{grid-column:auto;justify-self:center}.admissions-banner{text-align:center;flex-direction:column;padding:2rem}.public-footer-grid{grid-template-columns:1fr 1fr}.hero-controls{bottom:1rem;left:1rem;right:1rem}}@media (width<=576px){.public-header-inner{padding:.75rem 1rem}.logo-text strong{max-width:46vw;font-size:.95rem}.logo-text span{display:none}.btn-login{min-height:40px;padding:.5rem .75rem;font-size:.8rem}.hero,.hero-slider{height:calc(100svh - 4.5rem);min-height:calc(100svh - 4.5rem);max-height:calc(100svh - 4.5rem)}.hero-gallery.hero-has-media .hero-overlay{display:block}.hero-slide-bg{background-position:50%}.hero-container{align-items:flex-end;padding:1rem 1rem 4.5rem}.hero-title{font-size:clamp(1.28rem,6.8vw,1.7rem)}.hero-actions{flex-direction:column;align-items:center;gap:.5rem;width:100%}.hero-actions .btn{justify-content:center;width:auto;max-width:86%;min-height:38px;padding:.4rem 1.1rem;font-size:.84rem}.stats-section{margin-top:-1.5rem;padding:0 1rem}.stats-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:0;padding:0}.reasons-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.reason-card{padding:1rem .8rem .85rem}.reason-icon{width:40px;height:40px;margin-bottom:.7rem}.reason-card h3{font-size:.88rem}.reason-card p{-webkit-line-clamp:3;font-size:.75rem}.reason-more{margin-top:.65rem;font-size:.78rem}.stat-item{padding:1rem .75rem}.stat-item strong{font-size:1.25rem}.section{padding:3rem 1rem}.section-header{margin-bottom:2rem}.lookup-form{flex-direction:column}.lookup-form input,.lookup-form .btn{width:100%;min-height:48px;font-size:16px}.public-footer{padding:3rem 1rem 0;padding-bottom:env(safe-area-inset-bottom)}.public-footer-grid{grid-template-columns:1fr;gap:2rem}.login-card{border-radius:18px;padding:1.5rem 1.25rem}.login-brand h1{font-size:1.15rem}.gallery-preview-grid,.gallery-public-grid{grid-template-columns:1fr}}@keyframes hero-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hero-slider{text-align:left;width:100%;min-height:calc(100svh - var(--public-header-h,4.75rem));height:calc(100svh - var(--public-header-h,4.75rem));justify-content:flex-start;align-items:stretch;max-height:none;padding:0;overflow:hidden}.hero-container{z-index:2;width:100%;max-width:1320px;min-height:inherit;align-items:center;margin:0 auto;padding:clamp(3rem,8vh,5.5rem) clamp(1rem,3vw,2rem);display:flex;position:relative}.hero-media{z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.hero-content-animate{animation:.55s ease-out both hero-fade-up}.hero-gallery{color:var(--text-dark);background:linear-gradient(135deg, var(--brand-green-light) 0%, #fff 100%)}.hero-gallery.hero-has-media{background:#1a2a1c}.hero-overlay{pointer-events:none;position:absolute;inset:0}.hero-gallery .hero-overlay,.hero-gallery.hero-has-media .hero-overlay{background:linear-gradient(90deg,#0d301052 0%,#0d30101f 42%,#0000 72%)}.hero-gallery .hero-content{text-align:left;align-items:initial;-webkit-backdrop-filter:none;max-width:560px;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0;display:block}.hero-gallery .hero-badge{background:var(--brand-green-light);color:var(--brand-green-dark);border:1px solid #43a0472e;border-radius:999px;max-width:100%;margin-bottom:1.1rem;padding:.6rem 1.2rem;font-size:1.64rem;font-weight:700;line-height:1.35;display:inline-block}.hero-title{letter-spacing:-.02em;color:var(--text-dark);word-break:break-word;text-align:left;margin-bottom:.85rem;font-size:clamp(2.35rem,5vw,3.6rem);font-weight:800;line-height:1.12}.hero-slogan{color:var(--brand-green);margin-bottom:1rem;font-size:clamp(1.05rem,2vw,1.25rem);font-weight:600;line-height:1.5}.hero-gallery .hero-desc{color:var(--text-dark);text-align:left;opacity:1;-webkit-backdrop-filter:none;max-width:none;box-shadow:none;text-shadow:0 1px #ffffffd9,0 2px 10px #ffffff73;background:0 0;border:0;border-radius:0;margin:0 0 1.25rem;padding:0;font-size:clamp(1rem,1.6vw,1.125rem);line-height:1.75}.hero-gallery .hero-actions{justify-content:flex-start;gap:.85rem}.btn-hero-primary,.btn-hero-outline{align-items:center;gap:.5rem;display:inline-flex}.btn-hero-primary svg,.btn-hero-outline svg{flex-shrink:0}.btn-hero-primary{background:var(--brand-green);color:#fff;border:2px solid var(--brand-green);border-radius:999px;font-weight:600;transition:background .25s,transform .25s,box-shadow .25s}.btn-hero-primary:hover{background:var(--brand-green-dark);border-color:var(--brand-green-dark);transform:translateY(-1px);box-shadow:0 8px 20px #43a04738}.btn-hero-outline{color:var(--brand-green);border:2px solid var(--brand-green);background:#fff;border-radius:999px;font-weight:600;transition:background .25s,color .25s,transform .25s}.btn-hero-outline:hover{background:var(--brand-green-light);transform:translateY(-1px)}.hero-slide-bg,.hero-slide-img{background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;max-width:none;height:100%;transition:opacity .6s;position:absolute;inset:0}.hero-slide-img{object-fit:cover;object-position:center center;display:block}.hero-slide-video{object-fit:cover;width:100%;height:100%}.hero-dots{z-index:2;gap:.5rem;display:flex}.hero-controls{z-index:3;align-items:center;gap:.75rem;display:flex;position:absolute;bottom:1.5rem;left:auto;right:clamp(1rem,4vw,2rem)}.hero-pause-btn{border:2px solid var(--brand-green);width:2.25rem;height:2.25rem;color:var(--brand-green);cursor:pointer;background:#ffffffeb;border-radius:999px;justify-content:center;align-items:center;font-size:.85rem;transition:background .25s,color .25s;display:flex}.hero-pause-btn:hover{background:var(--brand-green);color:#fff}.banner-admin-card{position:relative}.banner-order-badge{z-index:1;background:var(--brand-green);color:#fff;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700;position:absolute;top:.5rem;left:.5rem}.hero-dot{cursor:pointer;background:#43a04759;border:none;border-radius:999px;width:10px;height:10px;transition:background .25s,width .25s}.hero-dot.active{background:var(--brand-green);width:24px}.public-loading{text-align:center;padding:4rem}.news-card-thumb img{object-fit:cover;width:100%;height:180px;display:block}.gallery-preview-grid,.gallery-public-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.gallery-preview-card,.gallery-public-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px #0000000f}.gallery-preview-media,.gallery-public-media{object-fit:cover;width:100%;height:180px;display:block}.gallery-preview-card span,.gallery-public-meta{padding:.75rem 1rem;display:block}.section-cta{text-align:center;margin-top:1.5rem}.public-article .article-inner{max-width:820px;margin:0 auto}.article-hero-image{object-fit:cover;border-radius:16px;width:100%;max-height:420px;margin:1rem 0}.article-media-grid{gap:1rem;margin-top:1.5rem;display:grid}.article-media{border-radius:12px;width:100%}.article-excerpt{color:var(--muted,#64748b);font-size:1.125rem}.home-section-inner{max-width:1200px}.home-section-head{text-align:left;margin-bottom:2rem}.home-section-head h2{color:var(--brand-green);letter-spacing:-.02em;font-size:clamp(1.45rem,2.6vw,1.9rem);font-weight:700}.home-section-head h2:after{content:"";background:var(--brand-green);border-radius:99px;width:52px;height:3px;margin-top:.55rem;display:block}.home-section-head.is-centered{text-align:center}.home-section-head.is-centered h2:after{margin-left:auto;margin-right:auto}.home-section-head-row{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.home-section-head-row.is-centered{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.home-section-head-row.is-centered h2{grid-column:2;justify-self:center}.home-section-head-row.is-centered .btn-view-all{grid-column:3;justify-self:end}.home-section-head-row h2:after{margin-top:.55rem}.btn-view-all{border:1.5px solid var(--brand-green);color:var(--brand-green);white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.btn-view-all:hover{background:var(--brand-green);color:#fff}.reasons-section{background:#fff;padding-top:3.5rem}.reasons-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;display:grid}.reason-card{background:#fff;border:1px solid #eef1f4;border-radius:18px;flex-direction:column;min-height:100%;padding:1.6rem 1.35rem 1.4rem;transition:transform .22s,box-shadow .22s;display:flex;box-shadow:0 10px 28px #1720330f}.reason-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px #17203317}.reason-icon{background:var(--brand-green-light);width:48px;height:48px;color:var(--brand-green);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1rem;display:flex}.reason-card h3{text-align:center;color:var(--text-dark);margin-bottom:.55rem;font-size:1.05rem}.reason-card p{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;font-size:.92rem;line-height:1.65;display:-webkit-box;overflow:hidden}.reason-more{color:var(--brand-green);margin-top:.9rem;font-size:.9rem;font-weight:600}.reason-card .read-more-toggle{color:var(--brand-green);margin-top:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.news-section{background:#f8fafc}.news-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.35rem;display:grid}.news-card-media{border:1px solid #eef1f4;padding:0;overflow:hidden;box-shadow:0 10px 28px #1720330f}.news-card-link{color:inherit;height:100%;text-decoration:none;display:block}.news-card-thumb{background:var(--brand-green-light);margin:0;position:relative}.news-card-thumb-fallback{background:linear-gradient(135deg, var(--brand-green-light), #c8e6c9);height:180px}.news-date-badge{color:#fff;background:#f59e0b;border-radius:8px;padding:.28rem .65rem;font-size:.75rem;font-weight:700;position:absolute;bottom:.85rem;left:.85rem;box-shadow:0 4px 10px #f59e0b47}.news-card-body{padding:1.1rem 1.2rem 1.3rem}.news-card-body h3{margin-bottom:.45rem;font-size:1.05rem;line-height:1.4}.news-card-body p{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:0;display:-webkit-box;overflow:hidden}.home-empty{color:var(--text-secondary)}@media (width<=992px){.hero-slider{overflow:hidden}.hero-media{border-radius:0;width:100%;height:100%;min-height:0;position:absolute;inset:0;overflow:hidden}.hero-gallery .hero-overlay,.hero-gallery.hero-has-media .hero-overlay{background:linear-gradient(#43a0476b 0%,#1b5e20b8 42%,#0d3010e6 100%);display:block}.hero-gallery .hero-badge{color:#fff;background:#ffffff29;border-color:#ffffff47}.hero-gallery .hero-title,.hero-title,.hero-gallery .hero-desc{color:#fff}.hero-gallery .typewriter-cursor{color:#c8e6c9}.hero-gallery .btn-hero-outline{color:#fff;background:#ffffff1f;border-color:#ffffffd9}.reasons-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.news-grid-3{grid-template-columns:1fr}.home-section-head-row,.home-section-head-row.is-centered{flex-direction:column;align-items:center;gap:.85rem;display:flex}.home-section-head-row.is-centered h2,.home-section-head-row.is-centered .btn-view-all{grid-column:auto;justify-self:center}.reasons-section{padding-top:2.5rem;padding-bottom:2.5rem}.about-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.about-card,.about-card h3,.about-card p{text-align:left}.about-icon{width:42px;height:42px;margin:0 auto .7rem}.about-icon svg{width:20px;height:20px}.about-card-featured{transform:none}.about-card-featured:hover{transform:translateY(-4px)}.about-card{padding:1rem .8rem .85rem}.about-card h3{min-height:2.6em;font-size:.95rem}.about-card p{font-size:.78rem;line-height:1.65}}@media (width<=576px){.reasons-grid,.about-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}}
