body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));display:flex;font-family:Sarabun,sans-serif;height:100vh;justify-content:center;overflow:hidden;position:relative;width:100vw}.decor-blob{animation:float-blob 20s ease-in-out infinite alternate;filter:blur(80px)}.blob-1{background:var(--primary);height:350px;left:-80px;top:-80px;width:350px}.blob-2{animation-delay:-10s;background:#f72585;background:var(--accent,#f72585);bottom:-60px;height:300px;right:-60px;width:300px}.blob-3{animation-delay:-5s;background:#06d6a0;background:var(--secondary,#06d6a0);height:250px;left:60%;top:50%;width:250px}.login-box{animation:fade-in-up .8s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffffd9;border:1px solid #fff6;border-radius:24px;box-shadow:0 20px 45px #0000001f,inset 0 1px 0 #fff9;box-sizing:border-box;max-width:430px;padding:3rem 2.5rem;transition:var(--transition);width:100%;z-index:2}.login-icon img{display:block;filter:drop-shadow(0 8px 12px rgba(0,0,0,.08));margin:0 auto 1.25rem;transition:transform .5s ease;width:160px}.login-icon img:hover{transform:scale(1.05) rotate(1deg)}.login-form h2{color:var(--dark);font-size:1.75rem;font-weight:800;letter-spacing:-.5px;margin-bottom:.5rem;text-align:center}.login-form .subtitle{color:var(--gray);font-size:.9rem;font-weight:400;margin-bottom:2rem;text-align:center}.input-group{margin-bottom:1.25rem;position:relative}.input-icon{color:#94a3b8;font-size:1.1rem;left:18px;position:absolute;top:50%;transform:translateY(-50%);transition:var(--transition);z-index:2}.input-group .input100{background:#f8fafccc;border:2px solid #e2e8f0;border-radius:14px;box-sizing:border-box;color:var(--dark);font-family:inherit;font-size:1rem;padding:1rem 1.25rem 1rem 3.25rem;transition:var(--transition);width:100%}.input-group .input100::placeholder{color:#64748b;font-weight:400}.input-group .input100:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 4px #4361ee1f;outline:none}.input-group .input100:focus~.input-icon{color:var(--primary)}.input-group input[name=username]{text-transform:lowercase}.input-group input[name=password]{padding-right:3.5rem}@keyframes shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}.alert-validate{animation:shake .4s ease-in-out}.alert-validate .input100{border-color:var(--danger);box-shadow:0 0 0 4px #ef476f1f}.alert-validate .input-icon{color:var(--danger)}.password-toggle{color:#94a3b8;cursor:pointer;font-size:1.1rem;position:absolute;right:18px;top:50%;transform:translateY(-50%);transition:var(--transition);z-index:2}.password-toggle:hover{color:var(--primary)}.login-button{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border:none;border-radius:14px;box-shadow:0 6px 20px #4361ee40;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;letter-spacing:.5px;margin-top:.5rem;overflow:hidden;padding:1.1rem;position:relative;transition:all .3s cubic-bezier(.16,1,.3,1);width:100%}.login-button:before{background:linear-gradient(90deg,#0000,#ffffff40,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:.6s ease;width:100%}.login-button:hover:not(:disabled):before{left:100%}.login-button:hover:not(:disabled){box-shadow:0 8px 24px #4361ee59;transform:translateY(-2px)}.login-button:active:not(:disabled){box-shadow:0 4px 12px #4361ee40;transform:translateY(0)}.login-button:disabled{background:var(--gray);box-shadow:none;cursor:not-allowed;opacity:.75}.status-message{align-items:center;animation:slide-fade-in .4s cubic-bezier(.16,1,.3,1) forwards;border-radius:12px;display:flex;font-size:.95rem;font-weight:600;justify-content:center;margin-top:1.25rem;padding:.85rem 1rem;transition:all .4s cubic-bezier(.16,1,.3,1)}@keyframes slide-fade-in{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.status-message.error{background-color:#ef476f14;border:1px solid #ef476f26;color:var(--danger)}.status-message.success{background-color:#06d6a014;border:1px solid #06d6a026;color:#06d6a0;color:var(--secondary,#06d6a0)}.status-message.loading{background-color:#4361ee14;border:1px solid #4361ee26;color:var(--primary)}.modal-overlay{background:#00000080;height:100%;width:100%}.modal-content{border-radius:15px;overflow-y:auto;padding:30px}.modal-close-btn{color:#666;font-size:2rem;right:20px;top:15px}.modal-header-title{color:#333;font-size:1.8rem;text-align:center}#root,body,html{font-family:Sarabun,sans-serif;height:100%;margin:0;padding:0}.teacher-container{align-items:center;background:linear-gradient(135deg,#0f172a,#1e1b4b 60%,#020617);box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:40px 20px;position:relative}.decor-blob{animation:float-blob 22s ease-in-out infinite alternate;border-radius:50%;filter:blur(100px);opacity:.45;pointer-events:none;position:absolute;z-index:1}.blob-1{background:#4f46e5;height:450px;left:-5%;top:-10%;width:450px}.blob-2{animation-delay:-11s;background:#06d6a0;bottom:-5%;height:400px;right:-5%;width:400px}.blob-3{animation-delay:-6s;background:#f43f5e;height:350px;left:55%;top:45%;transform:translateY(-50%);width:350px}@keyframes float-blob{0%{transform:translate(0) scale(1)}50%{transform:translate(80px,-60px) scale(1.15)}to{transform:translate(-40px,80px) scale(.9)}}.teacher-materials-container{animation:fade-in-up .8s cubic-bezier(.16,1,.3,1) forwards;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#ffffffd9;border:1px solid #ffffff80;border-radius:32px;box-shadow:0 30px 60px #00000026,inset 0 1px 0 #fff9;box-sizing:border-box;max-width:1100px;padding:50px 40px;position:relative;text-align:center;width:100%;z-index:2}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.page-logo{height:auto;margin-bottom:20px;width:150px}.page-title{color:#0f172a;font-size:2rem;font-weight:800;margin-bottom:40px}.buttons-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(4,1fr);width:100%}.green-button{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:16px;box-shadow:0 4px 12px #10b98140;color:#fff;cursor:pointer;display:flex;font-size:1.1em;font-weight:600;justify-content:center;line-height:1.4;min-height:120px;padding:20px;text-align:center;transition:all .4s cubic-bezier(.16,1,.3,1);white-space:pre-wrap;width:100%}.green-button:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 12px 24px #10b98166;color:#fff;transform:translateY(-4px)}.green-button:active{box-shadow:0 4px 8px #10b98140;transform:translateY(0)}.green-button.disabled-button{background:#cbd5e1;color:#94a3b8;cursor:not-allowed;opacity:.6;pointer-events:none}.green-button.disabled-button:active,.green-button.disabled-button:hover{background:#cbd5e1;box-shadow:none;transform:none}.back-button{align-items:center;background:#f43f5e0f;border:2px solid #f43f5e33;border-radius:16px;box-sizing:border-box;color:#e11d48;cursor:pointer;display:flex;font-size:1.1em;font-weight:700;justify-content:center;line-height:1.4;min-height:120px;padding:20px;text-align:center;transition:all .4s cubic-bezier(.16,1,.3,1);white-space:pre-wrap;width:100%}.back-button:hover{background:linear-gradient(135deg,#f43f5e,#e11d48);border-color:#0000;box-shadow:0 12px 24px #f43f5e4d;color:#fff;transform:translateY(-4px)}.back-button:active{box-shadow:0 4px 8px #f43f5e26;transform:translateY(0)}@media (max-width:1024px){.teacher-materials-container{padding:30px}.buttons-grid{gap:20px;grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.teacher-materials-container{padding:25px}.page-title{font-size:1.75rem}.buttons-grid{gap:15px;grid-template-columns:repeat(2,1fr)}.green-button{font-size:1em;min-height:100px}}@media (max-width:480px){.teacher-container{padding:15px}.teacher-materials-container{padding:20px}.page-title{font-size:1.5rem}.buttons-grid{gap:15px;grid-template-columns:1fr}.green-button{min-height:80px;padding:15px}}.settings-btn{align-items:center;background:#ffffffe6;border:1px solid #fff9;border-radius:50%;box-shadow:0 4px 15px #00000014;color:#475569;cursor:pointer;display:flex;height:52px;justify-content:center;min-height:52px;min-width:52px;padding:0;position:absolute;right:25px;top:25px;transition:transform .4s cubic-bezier(.16,1,.3,1),background-color .3s;width:52px;z-index:1000}.settings-btn:hover{background:#fff;box-shadow:0 6px 20px #4f46e526;color:#4f46e5;transform:rotate(90deg) scale(1.08)}.settings-modal-content{-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;background:#fffffff2!important;border:1px solid #ffffff80!important;border-radius:24px!important;box-shadow:0 30px 70px #0003!important;max-width:500px}.settings-body{max-height:55vh;overflow-y:auto;padding:5px;text-align:left}.add-course-form{display:flex;gap:10px;margin-bottom:20px}.course-input{border:1px solid #ddd;border-radius:5px;flex:1 1;padding:10px}.course-list{list-style:none;margin:0;padding:0}.course-item{background:#f9f9f9;border:1px solid #eee;border-radius:5px;margin-bottom:8px;padding:10px}.course-item,.view-mode{align-items:center;display:flex;justify-content:space-between}.view-mode{width:100%}.edit-mode{display:flex;gap:5px;width:100%}.course-input-edit{border:1px solid #4caf50;border-radius:4px;flex:1 1;padding:5px}.action-buttons{display:flex;gap:5px}.btn-cancel-mini,.btn-delete-mini,.btn-edit-mini,.btn-save-mini{background:none;border:none;cursor:pointer;font-size:1.2rem;padding:2px 5px;transition:transform .2s}.btn-cancel-mini:hover,.btn-delete-mini:hover,.btn-edit-mini:hover,.btn-save-mini:hover{transform:scale(1.2)}.modal-header-nav{gap:40px;margin-bottom:25px}.modal-header-nav,.nav-btn{align-items:center;display:flex;justify-content:center}.nav-btn{background:#eee;border:none;border-radius:50%;cursor:pointer;font-size:1.5rem;height:40px;min-height:40px;min-width:40px;padding:0;transition:background .2s;width:40px}.nav-btn:hover{background:#ddd}body,html{background:linear-gradient(90deg,#4568dc,#b06ab3);font-family:Sarabun,sans-serif;margin:0;padding:0;width:100%}.dashboard-container{background:linear-gradient(180deg,#ffffffd1 0,#f5f9ff);border:1px solid #3f51b51a;border-radius:24px;box-shadow:0 16px 40px #00000014;box-sizing:border-box;margin:3rem auto;max-width:2400px;width:70%}.dashboard-top-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:2rem;min-height:100px;position:relative}.header-logo{filter:drop-shadow(0 8px 16px rgba(0,0,0,.08));flex-shrink:0;height:100px;transition:transform .3s cubic-bezier(.16,1,.3,1)}.header-logo:hover{transform:scale(1.08)}.dashboard-main-title-container{align-items:center;display:flex;gap:.5rem;justify-content:center;left:50%;position:absolute;transform:translateX(-50%);z-index:1}.year-select{-webkit-text-fill-color:#0000;background:linear-gradient(45deg,#3f51b5 30%,#2196f3 90%);background-clip:text;-webkit-background-clip:text;font-family:Sarabun,sans-serif!important;font-size:2.125rem!important;font-weight:800!important;line-height:1.9!important;padding-bottom:2px}.chart-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid #3f51b51a;border-radius:20px;box-shadow:0 10px 30px #0000000f}.year-select .MuiSelect-select{padding-right:32px!important}.year-select .MuiSelect-icon{-webkit-text-fill-color:#0000;background:linear-gradient(45deg,#3f51b5 30%,#2196f3 90%);background-clip:text;-webkit-background-clip:text;font-size:2.5rem!important;right:0!important;top:calc(50% - 1.25rem)}.back-button{background-color:#4caf50!important;border-radius:12px!important;box-shadow:0 4px 8px #00000026!important;color:#fff!important;flex-shrink:0;transition:background-color .3s,transform .3s!important;white-space:nowrap}.back-button:hover{background-color:#45a049!important;transform:translateY(-2px)}.filters-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid #3f51b51a;border-radius:16px;box-shadow:0 8px 16px #00000008;margin-bottom:2rem;padding:1.5rem 2rem}@media (max-width:1200px){.dashboard-container{width:90%}}@media (max-width:768px){.dashboard-container{margin:1.5rem auto;width:95%}.dashboard-top-header{align-items:center;flex-direction:column;gap:1.5rem;min-height:auto}.header-logo{height:50px;order:1}.dashboard-main-title-container{left:auto;order:2;position:relative;transform:none}.back-button{justify-content:center;order:3;width:100%}}:root{--warning:#f59e0b;--dark:#1e293b;--gray:#64748b;--border:#e2e8f0;--card-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #0000000d;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #00000014,0 2px 4px -2px #00000014;--shadow-lg:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--transition:all 0.2s cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f5f7fb;color:#333}.admin-container{margin:0 auto;max-width:1400px;padding:20px}.admin-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #0000000d;box-shadow:var(--card-shadow);display:flex;gap:20px;justify-content:space-between;margin-bottom:25px;padding:15px 25px;position:sticky;top:10px;z-index:100}.admin-header h1{color:#1e293b;color:var(--dark);flex-grow:1;font-size:1.8rem;font-weight:700;margin:0;text-align:center}.header-brand{align-items:center;color:inherit;display:flex;gap:15px;text-decoration:none}.student-first-name{margin-right:12px}.header-logo{transition:transform .3s ease}.header-logo:hover{transform:scale(1.05)}.admin-header .header-brand h1{color:#4361ee;color:var(--primary);font-size:1.8rem;font-weight:700;letter-spacing:-.5px;margin:0}.search-bar{align-items:center;display:flex;gap:12px}.search-input-container{position:relative;width:300px}.search-input-container input{background-color:#f8f9fa;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:30px;font-size:.95rem;padding:12px 15px 12px 40px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:100%}.search-input-container input:focus{background-color:#fff;border-color:#4361ee;border-color:var(--primary);box-shadow:0 0 0 3px #4361ee26;outline:none}.search-icon{color:#64748b;color:var(--gray);font-size:1.1rem;left:15px;position:absolute;top:50%;transform:translateY(-50%)}.search-bar button{align-items:center;background:#4361ee;background:var(--primary);border:none;border-radius:30px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:8px;padding:12px 20px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.search-bar button:hover{background:#3a56d4;background:var(--primary-dark);box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.search-bar button:disabled{background:#a0aec0;box-shadow:none;cursor:not-allowed;transform:none}.refresh-icon{font-size:1.1rem}.table-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #0000000d;box-shadow:var(--card-shadow);margin-bottom:30px;overflow:visible}table{border-collapse:initial;border-spacing:0}th{padding:1.25rem 1.5rem}th:first-child{border-radius:12px 0 0 0}th:last-child{border-radius:0 12px 0 0}th.sortable{transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}th.sortable:hover{background:#3a56d4;background:var(--primary-dark)}th.sortable:after{border-left:5px solid #0000;border-right:5px solid #0000;border-top:5px solid #fff9;content:"";display:inline-block;height:0;margin-left:8px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:0}th.sortable.asc:after{border-bottom:5px solid #fff;border-top:none}th.sortable.desc:after{border-top:5px solid #fff}td{padding:1rem 1.5rem}tbody tr{transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}tbody tr:nth-child(2n){background-color:#f9fafb}tbody tr:hover{background-color:#edf2ff}.student-avatar{border:2px solid #fff;border-radius:50%;box-shadow:0 4px 8px #0000001a;height:60px;object-fit:cover;position:relative;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),box-shadow .3s ease;width:60px}@media (hover:hover){.student-avatar:hover{border-radius:10%;box-shadow:0 15px 30px #0000004d;cursor:pointer;position:relative;transform:scale(3.5);transform-origin:left center;z-index:9999}}.delete-btn,.edit-btn{align-items:center;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:6px;justify-content:center;min-width:80px;padding:8px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.edit-btn{background-color:#f59e0b;background-color:var(--warning);color:#fff}.edit-btn:hover{background-color:#d97706;box-shadow:0 4px 10px #f59e0b40;transform:translateY(-2px)}.delete-btn{background-color:#ef476f;background-color:var(--danger)}.delete-btn:hover{background-color:#e63946;box-shadow:0 2px 6px #0000001a;transform:translateY(-2px)}.modal-overlay{background-color:#000000b3;z-index:2000}.modal-content{animation:modalIn .3s ease-out;background:#f8f9fa;box-shadow:0 20px 60px #0000004d;max-width:1000px;outline:none}@keyframes modalIn{0%{opacity:0;transform:translateY(-20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header-container{align-items:center;background:linear-gradient(135deg,#4361ee,#5a4fcf);background:linear-gradient(135deg,var(--primary),#5a4fcf);border-radius:16px 16px 0 0;color:#fff;display:flex;flex-shrink:0;gap:16px;justify-content:space-between;padding:20px 28px}.modal-brand{align-items:center;display:flex;gap:14px;min-width:0}.modal-logo{flex-shrink:0;max-height:52px;width:auto}.modal-title-block{display:flex;flex-direction:column;min-width:0}.modal-title-label{font-size:.8rem;font-weight:500;letter-spacing:.5px;opacity:.85;text-transform:uppercase}.modal-student-name{font-size:1.25rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-header-right{align-items:center;display:flex;flex-shrink:0;gap:12px}.modal-image-preview{border:3px solid #fffc;border-radius:50%;box-shadow:0 4px 12px #00000040;height:72px;object-fit:cover;width:72px}.modal-close-btn{align-items:center;background:#fff3;border-radius:50%;color:#fff;display:flex;font-size:1.1rem;height:36px;justify-content:center;transition:background .2s;width:36px}.modal-close-btn:hover{background:#ffffff59}.modal-body{flex:1 1;padding:24px 28px}.modal-form{height:100%;max-height:100%;overflow:hidden}.form-sections,.modal-form{display:flex;flex-direction:column}.form-sections{gap:20px}.form-section{background:#fff;border:1px solid #edf2f7;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:22px}.form-section h3{border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border);color:#4361ee;color:var(--primary);font-size:1.08rem;font-weight:700;margin-bottom:20px;padding-bottom:8px;position:relative}.form-section h3:after{background-color:#4361ee;background-color:var(--primary);bottom:-2px;content:"";height:2px;left:0;position:absolute;width:48px}.form-grid{grid-gap:16px;gap:16px;grid-template-columns:repeat(3,1fr)}.modal-form .form-group{display:flex;flex-direction:column}.modal-form label{color:#1e293b;color:var(--dark);font-size:.88rem;font-weight:600;margin-bottom:6px}.modal-form input,.modal-form select,.modal-form textarea{background-color:#f8fafc;border:1.5px solid #e2e8f0;border:1.5px solid var(--border);border-radius:8px;color:#1e293b;color:var(--dark);font-family:Sarabun,sans-serif;font-size:.93rem;padding:10px 14px;transition:border-color .2s,box-shadow .2s,background-color .2s;width:100%}.modal-form input::placeholder{color:#cbd5e1}.modal-form input:hover,.modal-form select:hover,.modal-form textarea:hover{background-color:#f1f5f9;border-color:#cbd5e1}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{background-color:#fff;border-color:#4361ee;border-color:var(--primary);box-shadow:0 0 0 4px #4361ee1f;outline:none}.modal-form textarea{min-height:90px;resize:vertical}.modal-form .form-group.full-width{grid-column:1/-1}.modal-actions{background:#fff;border-radius:0 0 16px 16px;border-top:1px solid #e2e8f0;border-top:1px solid var(--border);display:flex;gap:12px;justify-content:flex-end;padding:16px 28px}.modal-actions button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-family:Sarabun,sans-serif;font-size:.95rem;font-weight:600;gap:7px;padding:12px 26px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.modal-actions .save-btn{background:#4361ee;background:var(--primary);color:#fff}.modal-actions .save-btn:hover{background:#3a56d4;background:var(--primary-dark);box-shadow:0 4px 12px #4361ee59;transform:translateY(-2px)}.modal-actions .cancel-btn{background:#e2e8f0;color:#1e293b;color:var(--dark)}.modal-actions .cancel-btn:hover{background:#cbd5e0;transform:translateY(-2px)}@media (max-width:992px){.admin-header{align-items:center;flex-direction:column;gap:20px}.admin-header h1{position:static;transform:none;width:auto}.search-bar,.search-input-container{width:100%}.form-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.admin-container{padding:15px}.table-container{background:#0000;border:none;box-shadow:none;overflow:visible}.admin-container table,.admin-container tbody,.admin-container td,.admin-container th,.admin-container thead,.admin-container tr{display:block}.admin-container thead tr{left:-9999px;position:absolute;top:-9999px}.admin-container tr{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #0000000d;box-shadow:var(--card-shadow);margin-bottom:20px;padding:15px}.admin-container tbody tr:hover,.admin-container tbody tr:nth-child(2n){background-color:#fff}.admin-container td{align-items:center;border:none;border-bottom:1px solid #f1f5f9;display:flex;font-size:.9rem;justify-content:flex-end;min-height:45px;padding:10px 10px 10px 45%;position:relative;text-align:right}.admin-container td:last-child{border-bottom:none;gap:15px;justify-content:center;margin-top:10px;padding-left:0}.admin-container td:before{color:#64748b;color:var(--gray);content:attr(data-label);font-weight:700;left:10px;padding-right:10px;position:absolute;text-align:left;white-space:nowrap;width:40%}.admin-container td[data-label=\E23\E39\E1B]{border-bottom:1px solid #e2e8f0;height:70px;justify-content:center;margin-bottom:10px;padding-left:0}.admin-container td:last-child:before,.admin-container td[data-label=\E23\E39\E1B]:before{display:none}.admin-container .student-avatar{border-radius:50%;height:60px;width:60px}.admin-container .delete-btn,.admin-container .edit-btn{flex-grow:1;justify-content:center;padding:10px}.modal-content{max-height:95vh;width:97%}.modal-header-container{flex-wrap:wrap;gap:10px;padding:14px 16px}.modal-student-name{font-size:1rem}.modal-logo{max-height:38px}.modal-image-preview{height:52px;width:52px}.modal-body{padding:16px}.form-grid{grid-template-columns:1fr}.modal-actions{flex-direction:column;padding:12px 16px}.modal-actions button{justify-content:center;width:100%}}.ReceiptApp,.ReceiptApp *,.modal-overlay,.modal-overlay *{box-sizing:border-box}.ReceiptApp{margin:0 auto;max-width:1800px;padding:2rem}.swal2-container{z-index:9999!important}button{border:none;border-radius:6px;cursor:pointer;font-size:14px;margin-bottom:5px;margin-right:5px;min-width:80px;padding:8px 12px;transition:background-color .2s,transform .1s}button:disabled{background-color:#ccc;cursor:not-allowed}button:active:not(:disabled){transform:scale(.98)}.btn-primary{background-color:#007bff;color:#fff;min-width:80px;text-align:center}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff;min-width:80px;text-align:center}.btn-secondary:hover:not(:disabled){background-color:#5a6268}.btn-edit{background-color:#ffc107;color:#212529;min-width:80px;text-align:center}.btn-edit:hover:not(:disabled){background-color:#e0a800}.btn-delete{background-color:#dc3545;color:#fff;min-width:80px;text-align:center}.btn-delete:hover:not(:disabled){background-color:#c82333}.actions-cell{text-align:center!important;vertical-align:middle!important;white-space:nowrap}.btn-icon{align-items:center;border-radius:8px;display:inline-flex;justify-content:center;margin:0 6px;min-width:0;min-width:auto;padding:12px;transition:all .2s ease;vertical-align:middle}.btn-edit-icon{background-color:#ffc10726;color:#db9c00}.btn-edit-icon:hover:not(:disabled){background-color:#ffc107;color:#212529}.btn-delete-icon{background-color:#dc354526;color:#dc3545}.btn-delete-icon:hover:not(:disabled){background-color:#dc3545;color:#fff}.btn-print-icon{background-color:#6c757d26;color:#6c757d}.btn-print-icon:hover:not(:disabled){background-color:#6c757d;color:#fff}.btn-transfer-icon{background-color:#007bff26;color:#007bff}.btn-transfer-icon:hover:not(:disabled){background-color:#007bff;color:#fff}.day-selector-item{align-items:center;border:1px solid #dee2e6;border-radius:8px;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:8px 16px;transition:all .2s ease}.day-selector-item.active{background-color:#007bff;border-color:#007bff;box-shadow:0 4px 6px #007bff33;color:#fff}.selected-day-card{background:#f8f9fa;border-left:5px solid #007bff;border-radius:12px;box-shadow:0 2px 4px #0000000d;margin-bottom:12px;padding:15px;position:relative}.close-card-btn{background:none;border:none;color:#dc3545;cursor:pointer;font-size:1.5rem;line-height:1;margin:0;min-width:0;min-width:auto;padding:0;position:absolute;right:10px;top:5px;transition:color .2s,transform .1s}.close-card-btn:hover{background:none;color:#a71d2a;transform:scale(1.1)}.icon-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;justify-content:center;margin:0 4px;min-width:0;min-width:auto;padding:6px;transition:all .2s ease;vertical-align:middle}.edit-btn{background-color:#ffc10726;color:#db9c00}.edit-btn:hover:not(:disabled){background-color:#ffc107;color:#212529}.primary-btn{background-color:#007bff26;color:#007bff}.primary-btn:hover:not(:disabled){background-color:#007bff;color:#fff}.main-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:20px;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:25px;padding:1.5rem 2rem}.header-logo{filter:drop-shadow(0 4px 6px rgba(0,0,0,.1));height:70px}.header-title{flex-grow:1;text-align:center}.receipt-type-selector{background-color:#f8f9fa;border:1px solid #ccc;border-radius:8px;cursor:pointer;font-size:1.8rem;font-weight:700;outline:none;padding:8px 12px}.receipt-type-selector:focus{border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40}.header-actions{align-items:flex-end;display:flex;flex-direction:column;gap:12px}.filter-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2380868b'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E");background-position:12px;background-repeat:no-repeat;background-size:20px 20px;border:1px solid #dfe1e5;border-radius:24px;box-shadow:0 1px 4px #0000000d;font-size:16px;max-width:100%;outline:none;padding:10px 15px 10px 40px;transition:all .2s ease-in-out;width:224px}.filter-input:hover{border-color:#cdd1d6;box-shadow:0 1px 6px #0000001a}.filter-input:focus{border-color:#007bff;box-shadow:0 1px 8px #007bff33}.table-container{border:1px solid #dee2e6;border-radius:8px;margin-top:20px;overflow-x:auto;width:100%}table{border-collapse:collapse;width:100%}td,th{border:1px solid #ddd;padding:12px;text-align:left;vertical-align:middle}th{background-color:#007bff;color:#fff;font-weight:600;text-align:center}tr:nth-child(2n){background-color:#f2f2f2}.office-receipt-table td:first-child,.office-receipt-table th:first-child{width:6%}.office-receipt-table td:nth-child(2),.office-receipt-table th:nth-child(2){width:5%}.office-receipt-table td:nth-child(3),.office-receipt-table th:nth-child(3){width:10%}.office-receipt-table td:nth-child(4),.office-receipt-table th:nth-child(4){width:6%}.office-receipt-table td:nth-child(5),.office-receipt-table th:nth-child(5){width:10%}.office-receipt-table td:nth-child(6),.office-receipt-table th:nth-child(6){width:4%}.office-receipt-table td:nth-child(7),.office-receipt-table th:nth-child(7){width:5%}.office-receipt-table td:nth-child(8),.office-receipt-table td:nth-child(9),.office-receipt-table th:nth-child(8),.office-receipt-table th:nth-child(9){width:7%}.office-receipt-table td:nth-child(10),.office-receipt-table td:nth-child(11),.office-receipt-table th:nth-child(10),.office-receipt-table th:nth-child(11){text-align:right;width:8%}.office-receipt-table td:last-child,.office-receipt-table th:last-child{min-width:180px;text-align:center;width:15%}.school-receipt-table td:first-child,.school-receipt-table th:first-child{width:6%}.school-receipt-table td:nth-child(2),.school-receipt-table th:nth-child(2){width:5%}.school-receipt-table td:nth-child(3),.school-receipt-table th:nth-child(3){width:10%}.school-receipt-table td:nth-child(4),.school-receipt-table th:nth-child(4){width:8%}.school-receipt-table td:nth-child(5),.school-receipt-table th:nth-child(5){width:10%}.school-receipt-table td:nth-child(6),.school-receipt-table th:nth-child(6){width:4%}.school-receipt-table td:nth-child(7),.school-receipt-table th:nth-child(7){width:6%}.school-receipt-table td:nth-child(8),.school-receipt-table th:nth-child(8){width:8%}.school-receipt-table td:last-child,.school-receipt-table th:last-child{min-width:180px;text-align:center;width:10%}.transfer-table-container{max-height:50vh;overflow-y:auto}.transfer-table-container table td:first-child,.transfer-table-container table th:first-child{width:8%}.transfer-table-container table td:nth-child(2),.transfer-table-container table th:nth-child(2){width:20%}.transfer-table-container table td:nth-child(3),.transfer-table-container table td:nth-child(4),.transfer-table-container table th:nth-child(3),.transfer-table-container table th:nth-child(4){width:12%}.transfer-table-container table td:nth-child(5),.transfer-table-container table td:nth-child(6),.transfer-table-container table th:nth-child(5),.transfer-table-container table th:nth-child(6){width:18%}.transfer-table-container table td:last-child,.transfer-table-container table th:last-child{min-width:120px;text-align:center;width:14%}th.sortable{cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}th.sortable:hover{background-color:#0056b3}.sort-icon{color:#eee;font-size:.8em;margin-left:5px}.modal-overlay{background-color:#0009}.modal-content{animation:slide-down .3s ease-out;background:#fff;border-radius:8px;box-shadow:0 5px 15px #0000004d;max-height:90vh;max-width:800px;padding:0;position:relative}.modal-content.modal-lg{max-width:95%;width:1100px}@keyframes slide-down{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.modal-close-btn{background:none;border:none;color:#aaa;cursor:pointer;font-size:2.5rem;font-weight:700;line-height:1;padding:0;position:absolute;right:15px;top:10px;z-index:10}.modal-close-btn:hover{color:#333}.modal-header-title{border-bottom:1px solid #eee;flex-shrink:0;margin:0;padding:1.5rem 2rem}.modal-form-container{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.modal-form-body{flex-grow:1;overflow-y:auto;padding:1.5rem 2rem}.modal-actions{border-top:1px solid #eee;flex-shrink:0;margin-top:0;padding:1rem 2rem;text-align:right}.form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-bottom:20px}.form-field{display:flex;flex-direction:column}.form-field label{color:#333;font-weight:700;margin-bottom:5px}.form-field input,.form-field select,.form-field textarea{border:1px solid #ccc;border-radius:4px;font-family:inherit;font-size:1rem;padding:10px;width:100%}.form-field input[readOnly],.form-field select[disabled]{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.form-section-header{border-bottom:2px solid #007bff;color:#007bff;font-size:1.2rem;font-weight:700;grid-column:1/-1;margin-bottom:1rem;margin-top:1.5rem;padding-bottom:.5rem}.modal-form-body>.form-section-header:first-of-type,.modal-form-body>h4:first-of-type{margin-top:0}.form-field.full-width{grid-column:1/-1}.form-field textarea{min-height:80px;resize:vertical;width:100%}.student-search-controls{margin-bottom:20px;padding:0 2rem}.student-search-controls .filter-input{max-width:none;width:100%}.student-search-results{border:1px solid #eee;margin:0 2rem 1.5rem;max-height:50vh;overflow-x:auto;overflow-y:auto}.student-search-results table{min-width:auto;width:100%}.student-search-results td,.student-search-results th{overflow:hidden;padding:10px 15px;text-overflow:ellipsis;white-space:nowrap}.student-search-results th{background-color:#007bff;color:#fff}.student-search-results th.sortable:hover{background-color:#0056b3}.student-search-results td:first-child,.student-search-results th:first-child{text-align:center;width:5%}.student-search-results td:nth-child(2),.student-search-results th:nth-child(2){width:15%}.student-search-results td:nth-child(3),.student-search-results th:nth-child(3){width:8%}.student-search-results td:nth-child(4),.student-search-results th:nth-child(4){text-align:center;width:10%}.loading-indicator{color:#555;font-size:1.2rem;padding:20px;text-align:center}@media (max-width:768px){.ReceiptApp{padding:1rem}.main-header{align-items:center;border-radius:12px;flex-direction:column;padding:1rem}.header-title{display:flex;flex-direction:column;gap:10px;width:100%}.receipt-type-selector{font-size:1.2rem;width:100%}.header-actions{align-items:center;width:100%}.header-actions .filter-input,.header-actions button{width:100%!important}.office-receipt-table table,.office-receipt-table tbody,.office-receipt-table td,.office-receipt-table th,.office-receipt-table thead,.office-receipt-table tr,.school-receipt-table table,.school-receipt-table tbody,.school-receipt-table td,.school-receipt-table th,.school-receipt-table thead,.school-receipt-table tr{display:block}.office-receipt-table td,.office-receipt-table th,.school-receipt-table td,.school-receipt-table th{box-sizing:border-box;width:100%!important}.office-receipt-table thead tr,.school-receipt-table thead tr{left:-9999px;position:absolute;top:-9999px}.office-receipt-table tr,.school-receipt-table tr{background:#fff;border:1px solid #dee2e6;border-radius:12px;box-shadow:0 4px 6px -1px #0000000d;margin-bottom:20px;padding:15px}.office-receipt-table tbody tr:hover,.office-receipt-table tbody tr:nth-child(2n),.school-receipt-table tbody tr:hover,.school-receipt-table tbody tr:nth-child(2n){background-color:#fff}.office-receipt-table td,.school-receipt-table td{border:none;border-bottom:1px solid #f1f5f9;box-sizing:border-box;display:block;font-size:.95rem;min-height:45px;padding:12px 10px 12px 45%;position:relative;text-align:right;word-break:break-word}.office-receipt-table td:last-child,.school-receipt-table td:last-child{border-bottom:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:10px;padding-left:0;text-align:center}.office-receipt-table td:before,.school-receipt-table td:before{color:#64748b;content:attr(data-label);font-weight:700;left:10px;position:absolute;text-align:left;top:50%;transform:translateY(-50%);white-space:nowrap;width:40%}.office-receipt-table td:last-child:before,.school-receipt-table td:last-child:before{display:none}.modal-content{max-height:95vh;width:95%!important}.modal-header-title{font-size:1.25rem;padding:1rem 3rem 1rem 1.25rem!important}.modal-close-btn{font-size:2rem!important;right:10px!important;top:5px!important}.modal-form-body{padding:1rem 1.25rem!important}.form-section-header{font-size:1.1rem!important;margin-bottom:.75rem!important;margin-top:1rem!important}.form-grid{gap:12px;grid-template-columns:1fr!important}.modal-actions{display:flex;flex-direction:column;gap:10px;padding:1rem 1.25rem!important}.modal-actions button{justify-content:center;margin:0!important;width:100%!important}.student-search-controls{margin-bottom:12px!important;padding:0 1.25rem!important}.student-search-results{margin:0 1.25rem 1.25rem!important}}@media print{*,:after,:before{box-sizing:border-box;margin:0;padding:0}@page{size:A5 landscape;margin:12.7mm;margin-bottom:6.35mm;margin-top:6.35mm}body>:not(.print-only){display:none!important}.print-only{background-color:#fff;box-sizing:border-box;color:#000;display:block!important;font-family:Sarabun,sans-serif;font-size:11pt;min-height:122.6mm;padding:0;width:184.6mm}.receipt-print-container{box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;page-break-after:always;width:100%}.office-receipt-print .receipt-header,.school-receipt-print .receipt-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:5px;position:relative}.office-receipt-print .receipt-address,.school-receipt-print .receipt-address{flex-basis:60%;font-size:9pt;order:1;text-align:left}.office-receipt-print .receipt-address p,.school-receipt-print .receipt-address p{line-height:1;margin:0}.office-receipt-print .receipt-logo,.school-receipt-print .receipt-logo{flex-basis:35%;order:2;text-align:right}.office-receipt-print .receipt-title-row,.school-receipt-print .receipt-title-row{align-items:flex-start;display:flex;height:auto;justify-content:space-between;margin-bottom:5px;position:relative}.office-receipt-print .receipt-title-school,.school-receipt-print .receipt-title-school{font-size:16pt;font-weight:700;left:50%;margin:0;position:absolute;transform:translateX(-50%);white-space:nowrap}.office-receipt-print .receipt-info-box-school,.school-receipt-print .receipt-info-box-school{border:1px solid #000;box-sizing:border-box;flex-shrink:0;font-size:10pt;margin-left:auto;padding:5px;text-align:right;width:200px}.office-receipt-print .receipt-info-box-school .info-row,.school-receipt-print .receipt-info-box-school .info-row{display:flex;font-size:11pt;justify-content:space-between;margin-bottom:3px}.office-receipt-print .receipt-info-box-school .info-value,.school-receipt-print .receipt-info-box-school .info-value{font-weight:700}.receipt-details{display:flex;flex-wrap:wrap;margin-bottom:0;margin-top:5px;padding:5px 10px}.detail-row{display:flex;margin-bottom:5px;width:100%}.office-receipt-print .detail-row .label{flex-basis:auto;padding-right:1.5em}.office-receipt-print .detail-row .value{border-bottom:1px dashed #000;flex-basis:0;flex-grow:1}.school-receipt-print .detail-row .label{flex-basis:15%;font-weight:700}.school-receipt-print .detail-row .value{border-bottom:1px dashed #000;flex-basis:85%}.receipt-table{border-collapse:collapse;font-size:10pt;margin-bottom:10px;width:100%}.receipt-table td,.receipt-table th{border:1px solid #000;padding:2px;text-align:left;vertical-align:top}.receipt-table th{background-color:#e9ecef!important;color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;text-align:center}.office-receipt-print .receipt-table .plain-row td{background-color:#fff!important;font-weight:400!important}.receipt-table .amount{text-align:right}.receipt-table .total-row td,.receipt-table .total-word-row td{background-color:#e9ecef!important;font-weight:700;-webkit-print-color-adjust:exact;print-color-adjust:exact}.office-receipt-print .receipt-table .total-row .total-word-cell{text-align:center;vertical-align:middle}.receipt-table .total-row .total{font-size:12pt}.school-receipt-print .receipt-table .total-word-row .total-label{font-weight:700;padding:5px;text-align:center;vertical-align:middle}.receipt-footer{display:flex;flex-wrap:wrap;font-size:10pt;justify-content:flex-start;margin-top:5px}.payment-info{margin-bottom:0}.footer-notes,.payment-info{box-sizing:border-box;flex-basis:100%;padding:0 5px;text-align:left}.footer-notes{margin-top:0}.note-label,.payment-label{font-weight:700;margin-bottom:0}.footer-notes p,.payment-info p{line-height:1.6;margin:0}.recipient-signature{font-size:10pt;margin-top:5px;text-align:right;width:100%}.school-receipt-print .recipient-signature{margin-top:5px}.recipient-signature p{line-height:1;margin:0}.recipient-signature p:first-child{display:inline-block;position:relative;width:fit-content}.receipt-validation-box{border:1px solid #000;box-sizing:border-box;color:red;font-size:8pt;margin-left:auto;margin-right:auto;margin-top:1rem;padding:5px;text-align:center;width:70%}}.timetable-page{background:linear-gradient(135deg,#6a51cc,#4a78ee);font-family:Sarabun,sans-serif;min-height:100vh;padding:3rem}.timetable-header{background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;justify-content:space-between;margin-bottom:2rem;padding:1.5rem 2rem}.header-left,.timetable-header{align-items:center;display:flex}.header-left{gap:1.5rem}.header-logo{cursor:pointer;height:80px;width:auto}.timetable-title{color:#1e293b;font-size:1.75rem;font-weight:700;margin:0}.timetable-subtitle{color:#64748b;font-size:.9rem;margin:0}.header-logo-container{display:flex;flex:1 1;justify-content:flex-start}.header-title-container{flex:2 1;text-align:center}.header-filters-container-in-header{align-items:flex-end;display:flex;flex:1 1;flex-direction:column;gap:.5rem;justify-content:center}.header-filters-container-in-header .filter-group{align-items:center;flex-direction:row;gap:.75rem}.header-filters-container-in-header .filter-group label{margin-bottom:0;white-space:nowrap}.header-filters-container-in-header .filter-group select{width:180px}.filter-group{display:flex;flex-direction:column;gap:.25rem}.filter-group label{color:#64748b;font-size:.75rem;font-weight:600;text-transform:uppercase}.filter-group select{-webkit-appearance:none;appearance:none;background-color:#f8fafc;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m19 9-7 7-7-7'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.25rem;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;cursor:pointer;font-size:.875rem;min-width:120px;outline:none;padding:.5rem 2rem .5rem .75rem;transition:all .2s}.filter-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.back-btn{align-items:center;background-color:#3b82f6;border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.back-btn:hover{background-color:#2563eb;box-shadow:0 4px 12px #2563eb33;transform:translateY(-1px)}.timetable-content{background:#fff;border-radius:16px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;overflow:hidden}.table-wrapper{overflow-x:auto}.timetable-table{border-collapse:collapse;text-align:left;width:100%}.timetable-table th{background-color:#0084ff;border-bottom:2px solid #0076e4;color:#fff;font-size:.875rem;font-weight:600;letter-spacing:.05em;padding:1.25rem 1.5rem;text-transform:uppercase}.sortable-header{cursor:pointer;transition:background-color .2s;-webkit-user-select:none;user-select:none}.sortable-header:hover{background-color:#0076e4}.sort-indicator{font-size:.8rem;margin-left:.5rem;opacity:.5}.sort-indicator.active{color:gold;opacity:1}.timetable-table td{border-bottom:1px solid #f1f5f9;color:#334155;font-size:.95rem;padding:1.25rem 1.5rem}.timetable-table tr:nth-child(2n){background-color:#e2e8f0}.timetable-table tr:hover{background-color:#edf2ff!important}.students-cell{min-width:350px}.status-cell{min-width:140px}.student-list{display:flex;flex-direction:column;gap:.25rem;list-style:none;margin:0;padding:0}.student-list li{background:none;border-radius:0;color:#1e293b;font-size:.9rem;font-weight:700;padding:0;white-space:nowrap;width:auto}.status-list-item,.student-list li{align-items:center;display:flex;height:32px}.status-list-item{justify-content:flex-start}.no-students{color:#94a3b8;font-size:.85rem;font-style:italic}.timetable-table tr:last-child td{border-bottom:none}.status-badge{border-radius:12px;display:inline-block;font-size:.85rem;font-weight:700;padding:.375rem .75rem}.status-active{background-color:#dcfce7!important;color:#166534!important}.status-complete{background-color:#fee2e2!important;color:#b91c1c!important}.status-warning-orange{background-color:#ffedd5!important;color:#c2410c!important}.status-warning-yellow{background-color:#fef9c3!important;color:#a16207!important}.loading-container{align-items:center;color:#64748b;display:flex;flex-direction:column;justify-content:center;padding:5rem}.loader{animation:rotation 1s linear infinite;border:5px solid #e2e8f0;border-bottom-color:#3b82f6;border-radius:50%;box-sizing:border-box;display:inline-block;height:48px;margin-bottom:1rem;width:48px}.no-data{color:#94a3b8;padding:4rem;text-align:center}.no-data svg{height:64px;margin-bottom:1rem;opacity:.5;width:64px}.mobile-only-cards{display:none}.desktop-only-table{display:block}@media (max-width:768px){.timetable-page{padding:1rem}.timetable-header{align-items:center;flex-direction:column;gap:1.25rem;padding:1.5rem 1rem;text-align:center}.header-logo-container{justify-content:center;width:100%}.header-logo{height:70px}.header-title-container{text-align:center;width:100%}.timetable-title{font-size:1.4rem}.timetable-subtitle{font-size:.85rem}.header-filters-container-in-header{align-items:center;gap:.75rem;margin-top:.5rem;width:100%}.header-filters-container-in-header .filter-group{align-items:center;flex-direction:row;gap:.75rem;justify-content:space-between;max-width:320px;width:100%}.header-filters-container-in-header .filter-group label{font-size:.8rem;min-width:45px;text-align:left}.header-filters-container-in-header .filter-group select{flex-grow:1;max-width:none;min-width:0;min-width:auto;width:100%}.back-btn{justify-content:center;width:100%}.desktop-only-table{display:none}.mobile-only-cards{display:flex;flex-direction:column;gap:1rem}.timetable-card{background:#fff;border-left:5px solid #3b82f6;border-radius:12px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #0000000d;padding:1.25rem;transition:transform .2s,box-shadow .2s}.timetable-card:active{transform:scale(.99)}.card-course-title{color:#1e293b;font-size:1.15rem;font-weight:700;margin:0 0 .75rem}.card-details{grid-gap:.75rem;border-bottom:1px solid #f1f5f9;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:.75rem;padding-bottom:.75rem}.card-detail-item{display:flex;flex-direction:column;gap:.15rem}.detail-label{color:#94a3b8;font-size:.75rem;font-weight:600;text-transform:uppercase}.detail-value{color:#334155;font-size:.9rem;font-weight:500}.detail-value.highlight-day{color:#3b82f6;font-weight:600}.card-students-section{display:flex;flex-direction:column;gap:.5rem}.students-section-title{color:#64748b;font-size:.85rem;font-weight:600;letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.card-student-list{display:flex;flex-direction:column;gap:.5rem}.card-student-row{align-items:center;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:.75rem 1rem;transition:background-color .2s,transform .1s}.card-student-row:active,.card-student-row:hover{background-color:#edf2ff;border-color:#bfdbfe}.card-student-info{display:flex;flex-direction:column;gap:.15rem}.card-student-name{color:#1e293b;font-size:.95rem;font-weight:600}.card-student-updated{color:#64748b;font-size:.75rem}}.clickable-student{border-radius:4px;cursor:pointer;padding:2px 8px!important;transition:color .2s,background-color .2s}.clickable-student:hover{background-color:#0076e41a;color:#0076e4}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0f172a99;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalFadeIn .3s ease;background-color:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-height:85vh;max-width:500px;overflow:hidden;width:90%}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{align-items:center;background-color:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.modal-header h3{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0}.close-modal-btn{align-items:center;background:none;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;line-height:1;padding:.25rem;transition:all .2s}.close-modal-btn:hover{background-color:#e2e8f0;color:#1e293b}.modal-body{overflow-y:auto;padding:1.5rem}.modal-info-row{display:flex;flex-direction:column;margin-bottom:1rem}.modal-info-label{color:#64748b;font-size:.85rem;font-weight:600;margin-bottom:.25rem;text-transform:uppercase}.modal-info-value{color:#0f172a;font-size:1.05rem;font-weight:500}.modal-history-list{margin-top:1.5rem}.modal-history-list h4{border-bottom:2px solid #e2e8f0;color:#1e293b;font-size:1.1rem;margin:0 0 1rem;padding-bottom:.5rem}.history-item{border-bottom:1px solid #f1f5f9;display:flex;flex-direction:column;padding:.75rem 0}.history-item-header{align-items:center;display:flex;justify-content:space-between}.history-item-details{background-color:#f8fafc;border-left:3px solid #3b82f6;border-radius:6px;font-size:.85rem;margin-top:.5rem;padding:.5rem .75rem}.history-item-details p{color:#475569;margin:0 0 .25rem}.history-item-details p:last-child{margin-bottom:0}.history-item:last-child{border-bottom:none}.history-date{color:#334155;font-weight:500}.history-status{font-weight:600}.history-status.present{color:#16a34a}.history-status.absent{color:#dc2626}.history-status.cancel{color:#d97706}.payroll-section{background-color:#f8fafc;font-family:Sarabun,sans-serif;min-height:100vh;padding:30px}.sa-header{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 6px 12px -2px #0000000d,0 3px 7px -3px #00000008;display:flex;justify-content:center;margin-bottom:25px;min-height:120px;padding:35px 30px;position:relative}.payroll-logo{cursor:pointer;height:60px;left:20px;object-fit:contain;position:absolute;transition:transform .15s ease-in-out}.payroll-logo:hover{transform:scale(1.03)}.sa-header-block{align-items:center;display:flex;justify-content:space-between;margin-bottom:25px}.sa-header-block h2{align-items:center;color:#1e293b;display:flex;font-size:1.8rem;font-weight:700;gap:15px;margin:0}.sa-summary-badge{align-items:center;background:linear-gradient(135deg,#1e293b,#334155);border-radius:12px;box-shadow:0 4px 15px #1e293b33;color:#fff;display:flex;font-size:1rem;padding:10px 25px}.sa-summary-badge strong{color:#ffb01f;font-size:1.4rem;margin:0 8px}.sa-filters-compact{align-items:flex-end;display:flex;flex-direction:column;gap:8px;position:absolute;right:30px}.sa-search-bar{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 10px #00000008;display:flex;padding:6px 15px;width:280px}.sa-search-icon{color:#94a3b8;margin-right:12px}.sa-search-bar input{border:none;color:#334155;font-size:.95rem;outline:none;width:100%}.filter-item-small{align-items:center;display:flex;gap:10px}.filter-item-small label{color:#64748b;font-size:.9rem;font-weight:600}.filter-item-small select{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#334155;font-size:.9rem;padding:8px 15px}.sa-teacher-group{background:#fff;border:1px solid #e2e8f0;border-radius:15px;box-shadow:0 2px 5px #00000005;margin-bottom:15px;overflow:hidden}.sa-teacher-header{align-items:center;background:#fdfefe;border-bottom:2px solid #1e293b;cursor:pointer;display:flex;justify-content:space-between;padding:20px 25px;transition:background .2s;-webkit-user-select:none;user-select:none}.sa-teacher-header:hover{background:#f1f5f9}.teacher-info{gap:15px}.teacher-icon,.teacher-info{align-items:center;display:flex}.teacher-icon{background:#0f172a;border-radius:10px;color:#ffb01f;font-size:1.2rem;height:40px;justify-content:center;width:40px}.teacher-name{color:#0f172a;font-size:1.3rem;font-weight:800;text-transform:capitalize}.teacher-total-badge{background:#dcfce7;border-radius:20px;color:#166534;font-size:.85rem;font-weight:700;padding:4px 12px}.teacher-expand{color:#94a3b8;transition:transform .3s}.sa-teacher-content{background:#f8fafc;padding:15px 20px}.sa-day-group{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:12px;overflow:hidden}.sa-day-header{align-items:center;background:#fff;cursor:pointer;display:flex;justify-content:space-between;padding:15px 20px;transition:background .2s;-webkit-user-select:none;user-select:none}.sa-day-header:hover{background:#fbfcfd}.day-info{gap:15px}.day-icon,.day-info{align-items:center;display:flex}.day-icon{background:#e2e8f0;border-radius:8px;color:#475569;font-size:1.1rem;height:35px;justify-content:center;width:35px}.day-name{color:#334155;font-size:1.1rem;font-weight:700}.day-total-badge{background:#f1f5f9;border-radius:20px;color:#475569;font-size:.8rem;font-weight:700;padding:4px 12px}.day-expand{color:#cbd5e1;transition:transform .3s}.sa-day-content{background:#fcfdfe;border-top:1px solid #f1f5f9;padding:0 20px 20px}.sa-slot-block{background:#fff;border:1px solid #f1f5f9;border-radius:10px;margin-top:12px;overflow:hidden}.sa-slot-header-small{align-items:center;background:#fdfefe;cursor:pointer;display:flex;justify-content:space-between;padding:12px 18px}.slot-info{align-items:center;display:flex;gap:20px}.slot-time{color:#1a3e5f;font-weight:700}.slot-course,.slot-time{align-items:center;display:flex;font-size:.95rem;gap:8px}.slot-course{color:#475569;font-weight:600}.slot-meta{align-items:center;display:flex;gap:15px}.slot-st-count{color:#94a3b8;font-size:.8rem;font-weight:600}.sa-slot-content-nested{background:#fcfdfe;border-top:1px solid #f8fafc;padding:10px 15px 15px}.sa-st-card-nested{background:#fff;border:1px solid #f1f5f9;border-radius:8px;margin-bottom:8px;overflow:hidden}.st-header{cursor:pointer;justify-content:space-between;padding:12px 18px}.st-header,.st-name{align-items:center;display:flex}.st-name{color:#334155;font-size:.9rem;font-weight:700;gap:8px}.st-name-block{display:flex;flex-direction:column;gap:2px}.st-receipt{color:#94a3b8;font-size:.75rem;font-weight:500;margin-left:23px}.st-total{color:#64748b;font-size:.85rem;font-weight:600}.st-logs{background:#fafbfc;border-top:1px solid #f1f5f9;padding:10px 18px 18px}.sa-micro-table{border-collapse:collapse;font-size:.85rem;width:100%}.sa-micro-table th{border-bottom:2px solid #e2e8f0;color:#1e293b;font-weight:700;padding:6px 10px;text-align:left}.sa-micro-table td{color:#475569;padding:8px 10px}.badge-present-micro{background:#dcfce7;color:#15803d}.badge-cancelled-micro,.badge-present-micro{border-radius:4px;font-size:.8rem;font-weight:700;padding:2px 8px}.badge-cancelled-micro{background:#fee2e2;color:#b91c1c}.row-cancelled td{color:#cbd5e1}.animate-slide-down{animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.sa-loading{color:#64748b;padding:80px 20px;text-align:center}.loader-small{animation:rotation 1s linear infinite;border:3px solid #f3f3f3;border-bottom-color:#1e293b;border-radius:50%;display:inline-block;height:35px;margin-bottom:15px;width:35px}@keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sa-no-data-card{background:#fff;border:1px dashed #cbd5e1;border-radius:15px;color:#94a3b8;font-size:1.1rem;padding:60px 20px;text-align:center}.claim-checkbox{accent-color:#10b981;cursor:pointer;height:16px;width:16px}.claim-checkbox:disabled{cursor:not-allowed;opacity:.6}.st-action-bar{border-top:1px dashed #e2e8f0;display:flex;justify-content:flex-end;margin-top:15px;padding-top:10px}.btn-submit-selected{align-items:center;background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:8px;padding:8px 16px;transition:all .2s}.btn-submit-selected:hover:not(:disabled){background:#059669;box-shadow:0 4px 10px #10b98133;transform:translateY(-1px)}.btn-submit-selected:disabled{background:#f1f5f9;box-shadow:none;color:#94a3b8;cursor:not-allowed}.st-info-meta{align-items:center;display:flex;gap:10px}.badge-finished{background:#1e293b}.badge-confirmed,.badge-finished{border-radius:4px;color:#fff;font-size:.65rem;font-weight:600;padding:2px 8px}.badge-confirmed{background:#10b981}.badge-pending{background:#f59e0b;border-radius:4px;color:#fff;font-size:.65rem;font-weight:600;padding:2px 8px}.sa-filter-group{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.table-responsive-micro{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:15px;overflow-x:auto;width:100%}.table-responsive-micro::-webkit-scrollbar{height:6px}.table-responsive-micro::-webkit-scrollbar-track{background:#f1f5f9}.table-responsive-micro::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}@media (max-width:1024px){.sa-header{align-items:center;flex-direction:column;gap:15px;justify-content:center;min-height:auto;padding:25px 20px;text-align:center}.payroll-logo{height:50px;margin-bottom:10px;position:static}.sa-header h2{font-size:1.5rem;justify-content:center}.sa-filters-compact{align-items:center;gap:12px;margin-top:5px;position:static;width:100%}}@media (max-width:768px){.payroll-section{padding:15px 10px}.sa-header{border-radius:8px;padding:20px 15px}.sa-header h2{flex-wrap:wrap;font-size:1.2rem;gap:8px}.sa-search-bar{max-width:320px;width:100%}.sa-filter-group{align-items:center;flex-direction:column;gap:10px;width:100%}.filter-checkbox-item{margin-left:0!important}.sa-teacher-header{padding:15px}.teacher-name{font-size:1.1rem}.teacher-icon{border-radius:8px;font-size:1rem;height:32px;width:32px}.sa-teacher-content{padding:10px}.sa-day-header{padding:12px 15px}.day-name{font-size:.95rem}.day-icon{border-radius:6px;font-size:.9rem;height:28px;width:28px}.sa-day-content{padding:0 10px 15px}.st-header{align-items:flex-start;flex-direction:column;gap:8px;padding:10px 12px}.st-name-block{width:100%}.st-name{align-items:flex-start;flex-direction:column;font-size:.85rem;gap:4px}.st-name span{display:block;margin-left:0!important}.st-receipt{margin-left:21px}.st-info-meta{border-top:1px solid #f1f5f9;justify-content:space-between;padding-top:8px;width:100%}.st-logs{padding:10px}.sa-micro-table td,.sa-micro-table th{font-size:.8rem;padding:6px 8px}.btn-submit-selected,.st-action-bar{justify-content:center}.btn-submit-selected{width:100%}}:root{--primary:#4361ee;--primary-dark:#3a56d4;--secondary:#06d6a0;--accent:#f72585;--light:#f8f9fa;--dark:#212529;--gray:#6c757d;--success:#4caf50;--warning:#ffc107;--danger:#ef476f;--gradient-start:#4568dc;--gradient-end:#b06ab3;--card-shadow:0 10px 30px #0000001a;--transition:all 0.3s ease}body{background:linear-gradient(90deg,#4568dc,#b06ab3);background:linear-gradient(to right,var(--gradient-start),var(--gradient-end));color:#212529;color:var(--dark);font-family:Sarabun,sans-serif;line-height:1.6}
/*# sourceMappingURL=main.71067b7f.css.map*/