html{scrollbar-width:thin;scrollbar-color:#bfe0c8 transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#bfe0c8;background-clip:content-box;border:2px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#accfba}.navbar{z-index:999;box-sizing:border-box;background:#f7f7f7;justify-content:space-between;align-items:center;width:100vw;height:60px;padding:0 1rem;display:flex;position:fixed;top:0;left:0}.navbar__logo{align-items:center;gap:.5rem;font-size:1.2rem;font-weight:700;display:flex}.navbar-center{align-items:center;gap:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.navbar__burger{cursor:pointer;background:0 0;border:none;font-size:1.5rem}.navbar__burger:hover{background-color:#eee;border-radius:5px}.navbar__logo-image{width:auto;height:40px}.navbar__right{align-items:center;gap:1rem;display:flex}.navbar__notification{cursor:pointer;color:#5f6368;border-radius:50%;align-items:center;padding:8px;transition:background-color .2s;display:flex;position:relative}.notification-dropdown{z-index:1000;background-color:#fff;border-radius:8px;flex-direction:column;width:360px;padding:0;display:flex;position:absolute;top:50px;right:0;box-shadow:0 4px 12px #00000026}@media (width<=768px){.notification-dropdown{width:300px;right:-50px}}@media (width<=480px){.notification-dropdown{border-radius:0;width:100%;max-height:calc(100vh - 60px);margin:0;position:fixed;top:60px;left:0;right:0;overflow-y:auto}}.notification-list{max-height:228px;overflow-y:auto}.notification-item{cursor:pointer;border-bottom:1px solid #e8eaed;flex-direction:column;gap:4px;padding:16px;transition:background-color .2s;display:flex}.notification-item:hover{background-color:#f8f9fa}.notification-item.unread{background-color:#e8f2e9;border-left:4px solid #0aa158;padding-left:12px}.notification-item.unread:hover{background-color:#ceead6}.notification-item:last-child{border-bottom:none}.notification-content{flex-direction:column;gap:4px;display:flex}.notification-title{color:#414141;margin:0;font-size:14px;font-weight:600}.notification-item p{color:#414141;margin:0;font-size:13px;line-height:1.4}.notification-time{color:#5f6368;margin-top:4px;font-size:11px}.mark-all-read-btn{color:#0aa158;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:12px}.mark-all-read-btn:hover{background-color:#f1f3f4;text-decoration:underline}.notification-header{border-bottom:1px solid #e8eaed;justify-content:space-between;align-items:center;padding:16px;display:flex}.notification-item.empty{text-align:center;color:#5f6368;border-left:none;padding:24px 24px 24px 16px}.notification-item.empty p{margin:0}.notification-badge{color:#fff;box-sizing:border-box;background-color:#d93025;border:2px solid #f7f7f7;border-radius:10px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:0;right:0}.navbar__notification:hover{background-color:#e8f2e9}.navbar__profile{align-items:center;gap:.5rem;display:flex}.sidebar{color:#414141;z-index:998;background:#f7f7f7;flex-direction:column;width:260px;height:100%;padding-top:60px;transition:transform .3s ease-in-out;display:flex;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-list{flex-grow:1;margin:10px 0;padding:10px;list-style-type:none;overflow-y:auto}.sidebar-list-item{cursor:pointer;align-items:center;gap:10px;padding:9px 14px;font-size:14px;transition:background-color .2s,color .2s;display:flex}.sidebar-list-item:hover{color:#65ad67;background-color:#e8f2e9}.sidebar-create-class{color:#65ad67;margin-bottom:8px;font-weight:500}.sidebar-classroom-item{padding-left:24px;position:relative;overflow:hidden}.classroom-color-bar{background-color:#65ad67;width:4px;height:100%;position:absolute;top:0;left:0}.sidebar-classroom-item.blue .classroom-color-bar{background-color:#8fd085}.sidebar-classroom-item.green .classroom-color-bar{background-color:#34a853}.sidebar-classroom-item.red .classroom-color-bar{background-color:#ea4335}.sidebar-classroom-item.yellow .classroom-color-bar{background-color:#fbbc05}.sidebar-profile-image{border-radius:50%;flex-shrink:0;width:24px;height:24px;margin-right:0}.sidebar-classroom-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-no-class-text{color:#5f6368;text-align:center;margin-top:20px;font-size:14px}.navbar-profile-image{cursor:pointer;border-radius:50%;width:32px;height:32px;transition:box-shadow .3s}.navbar-profile-image:hover{box-shadow:0 0 0 4px #e8f2e9}.dropdown-menu{z-index:1000;background-color:#fff;border-radius:8px;min-width:250px;padding:8px 0;position:absolute;top:50px;right:10px;box-shadow:0 4px 12px #00000026}.dropdown-user-info{align-items:center;gap:12px;padding:16px;display:flex}.dropdown-profile-image{border-radius:50%;width:56px;height:56px}.dropdown-user-details{flex-direction:column;display:flex}.dropdown-user-name{color:#414141;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:500;overflow:hidden}.dropdown-user-email{color:#5f6368;font-size:14px}.dropdown-item{cursor:pointer;align-items:center;gap:16px;padding:12px 24px;transition:background-color .2s;display:flex}.leave-seat-btn{transition:background .2s}.leave-seat-btn:hover{background:#d32f2f}.kick-btn{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:6px;margin-left:10px;padding:4px 12px;font-size:.95em;transition:background .2s}.kick-btn:hover{background:#c0392b}.member-list-item{align-items:center;padding:4px 0;display:flex;position:relative}.menu-btn{color:#888;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:50%;margin-left:8px;padding:4px;font-size:1.2em;transition:background .2s,color .2s,opacity .2s}.menu-btn:hover{color:#7ec282;background:#f0f0f0}.sidebar-list-item:hover .menu-btn{opacity:1}.sidebar-category-header{cursor:pointer;color:#5f6368;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-top:8px;padding:12px 16px;font-size:14px;font-weight:500;transition:background-color .2s;display:flex}.sidebar-category-header:hover{background-color:#f1f3f4}.sidebar-category-header:first-of-type{margin-top:0}.sidebar-category-header span{text-transform:uppercase;letter-spacing:.5px;flex:1;font-size:12px}.sidebar-classroom-nested{border-left:1px solid #e8eaed;gap:8px;margin-left:4px;position:relative;padding:7px 10px 7px 16px!important}.sidebar-classroom-nested:before{content:"";background-color:#0000;width:3px;transition:background-color .2s;position:absolute;top:0;bottom:0;left:-1px}.sidebar-classroom-nested:hover:before{background-color:#7ec282}.sidebar-classroom-nested .sidebar-profile-image{width:20px;height:20px}.sidebar-category-header svg{transition:transform .2s}.divider{background-color:#dadce0;border:none;height:1px;margin:8px 16px}.sidebar-member-nested{border-left:1px solid #e8eaed;gap:8px;margin-left:4px;position:relative;padding:7px 10px 7px 16px!important}.sidebar-member-nested:before{content:"";background-color:#0000;width:3px;transition:background-color .2s;position:absolute;top:0;bottom:0;left:-1px}.sidebar-member-nested:hover:before{background-color:#7ec282}.sidebar-member-nested .sidebar-profile-image,.sidebar-classroom-nested .sidebar-profile-image{flex-shrink:0;width:22px;height:22px;margin-right:0!important}.sidebar-session-widget{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin:8px 12px;padding:14px 16px;transition:all .3s}.sidebar-session-widget.active{background:linear-gradient(135deg,#f0fdf4 0%,#ecfdf5 100%);border-color:#86efac;box-shadow:0 2px 8px #22c55e1a}.sidebar-session-header{align-items:center;gap:8px;margin-bottom:10px;display:flex}.sidebar-session-dot{background:#22c55e;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.5s ease-in-out infinite sessionPulse}@keyframes sessionPulse{0%,to{opacity:1;box-shadow:0 0 #22c55e66}50%{opacity:.7;box-shadow:0 0 0 4px #22c55e00}}.sidebar-session-title{color:#16a34a;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.sidebar-session-timer{color:#414141;text-align:center;letter-spacing:2px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:10px;padding:8px 0;font-family:Courier New,Courier,monospace;font-size:24px;font-weight:700}.sidebar-session-end-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;padding:9px 16px;font-size:13px;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex}.sidebar-session-end-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.sidebar-session-end-btn:active{transform:translateY(0)}.sidebar-start-session{font-weight:500;color:#16a34a!important}.sidebar-start-session:hover{color:#15803d!important;background-color:#f0fdf4!important}.notification-dropdown-footer{background-color:#fafbfc;border-top:1px solid #e8eaed;border-bottom-right-radius:8px;border-bottom-left-radius:8px;padding:10px 14px}.notification-view-all-btn{color:#414141;cursor:pointer;background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.notification-view-all-btn:hover{color:#15803d;background-color:#e8f5e9;border-color:#7ec282}.sidebar-inbox-link{align-items:center;gap:12px;display:flex}.sidebar-unread-pill{color:#fff;background-color:#7ec282;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.3}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}.main__content{box-sizing:border-box;background-color:#e8f2e9;border-top-left-radius:15px;flex-direction:column;transition:left .3s;display:flex;position:fixed;inset:60px 0 0;overflow:hidden}.main__content.shift{left:260px;right:0}.main-content-scrollable-area{-webkit-overflow-scrolling:touch;flex-direction:column;height:100%;padding-bottom:20px;display:flex;overflow-y:auto}.section-title{color:#414141;margin:1.25rem 1rem .5rem;font-size:1.5rem;font-weight:700}.section-divider{opacity:1;box-sizing:border-box;background:#e2e8f0;border:none;width:calc(100% - 2rem);height:1px;margin:1.5rem 1rem;display:block}.classroom-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:0 1rem 1rem;display:grid}.classroom-card{cursor:pointer;z-index:1;background:#fff;border:1px solid #f3f4f6;border-radius:16px;flex-direction:column;transition:all .3s;display:flex;position:relative;overflow:visible;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.classroom-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px -5px #0000001a,0 4px 6px -2px #0000000d}.card-accent-bar{border-radius:16px 0 0 16px;width:6px;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.classroom-card:hover .card-accent-bar{width:8px}.classroom-card.active-dropdown{z-index:10}.card-top-section{padding:20px 20px 16px 22px}.card-header-row{justify-content:space-between;align-items:flex-start;display:flex}.card-title-area{flex:1;min-width:0;padding-right:8px}.card-title-area h3{color:#414141;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.15rem;font-weight:700;transition:color .2s;overflow:hidden}.classroom-card:hover .card-title-area h3{color:#2563eb}.card-title-area .card-subname{color:#9ca3af;white-space:nowrap;text-overflow:ellipsis;margin:4px 0 0;font-size:.8rem;overflow:hidden}.card-creator-info{align-items:center;gap:10px;margin-top:14px;display:flex}.card-creator-avatar{object-fit:cover;border:2px solid #fff;border-radius:50%;flex-shrink:0;width:40px;height:40px;box-shadow:0 1px 3px #0000001a}.card-creator-details{flex-direction:column;min-width:0;display:flex}.card-creator-label{color:#9ca3af;font-size:.68rem;font-weight:500}.card-creator-name{color:#374151;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.card-divider{background:#f3f4f6;height:1px;margin:0 20px}.card-bottom-section{background:#f9fafb80;justify-content:space-between;align-items:center;padding:12px 20px 14px 22px;display:flex}.card-member-count{color:#6b7280;align-items:center;gap:5px;display:flex}.card-member-count svg{width:16px;height:16px}.card-member-count span{font-size:.75rem;font-weight:500}.card-avatar-group{flex-direction:row-reverse;display:flex}.card-avatar-group img{object-fit:cover;border:2px solid #fff;border-radius:50%;width:30px;height:30px;margin-left:-8px;transition:transform .2s;position:relative;box-shadow:0 1px 2px #00000014}.card-avatar-group img:hover{z-index:10;transform:scale(1.12)}.card-avatar-group img:last-child{margin-left:0}.card-avatar-extra{color:#4b5563;background:#e5e7eb;border:2px solid #fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;margin-left:-8px;font-size:.6rem;font-weight:700;display:flex;box-shadow:0 1px 2px #00000014}.empty-section{color:#6b7280;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:0 1rem .5rem;padding:.75rem 1rem}@keyframes dashboardEmptyFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes dashboardEmptyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes dashboardEmptyGlow{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.no-classrooms-container{justify-content:center;align-items:center;min-height:calc(100vh - 180px);padding:2.5rem 1rem;display:flex}.no-classrooms-card{text-align:center;background:#fff;border:1px solid #e2e8f0e6;border-radius:16px;flex-direction:column;align-items:center;width:100%;max-width:440px;margin:0 auto;padding:2.75rem 2.25rem 2.5rem;animation:.35s ease-out dashboardEmptyFadeUp;display:flex;box-shadow:0 4px 20px -2px #0000000a,0 1px 3px #00000005}.no-classrooms-icon-circle{color:#059669;background:#ecfdf5;border:1px solid #d1fae5;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:1.25rem;font-size:1.4rem;display:flex}.no-classrooms-title{color:#414141;letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.35rem;font-weight:600;line-height:1.35}.no-classrooms-desc{color:#64748b;max-width:330px;margin:0 0 1.75rem;font-size:.92rem;line-height:1.55}.no-classrooms-actions{justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.no-classrooms-btn{letter-spacing:-.01em;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:8px;max-width:175px;height:40px;min-height:40px;padding:0 18px;font-size:.88rem;font-weight:500;transition:all .15s ease-out;display:inline-flex}.no-classrooms-btn svg{width:1rem;height:1rem}.no-classrooms-btn.btn-primary{color:#fff;background:#10b981}.no-classrooms-btn.btn-primary:hover{background:#059669}.no-classrooms-btn.btn-secondary{color:#334155;background:#fff;border-color:#cbd5e1}.no-classrooms-btn.btn-secondary:hover{color:#414141;background:#f8fafc;border-color:#94a3b8}.no-classrooms-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #10b98129}@media (width<=480px){.no-classrooms-container{padding:1.5rem 1rem}.no-classrooms-card{padding:2rem 1.25rem 1.75rem}.no-classrooms-actions{flex-direction:column;gap:8px}.no-classrooms-btn{width:100%;max-width:100%}}@media (prefers-reduced-motion:reduce){.no-classrooms-card{transition:none;animation:none}}@media (width<=768px){.classroom-grid{max-width:auto;gap:1rem;padding:.1rem}.main__content,.main__content.shift{width:100%!important;margin-left:0!important;padding:0!important;left:0!important;right:0!important}}@media (width<=480px){.classroom-grid{box-sizing:border-box;grid-template-columns:1fr;width:100%;max-width:100%;padding:.5rem}.classroom-card{border-radius:12px}.card-top-section{padding:16px 16px 12px 18px}.card-title-area h3{white-space:normal;word-wrap:break-word;overflow-wrap:break-word;line-height:1.3}.card-title-area .card-subname{white-space:normal;word-wrap:break-word}.card-bottom-section{padding:10px 16px 12px 18px}.main__content{box-sizing:border-box;width:100vw;max-width:100vw;padding:3px;overflow-x:hidden}}.classroom-options-wrapper{z-index:2;gap:5px;display:flex;position:absolute;top:10px;right:10px}.classroom-options-icon,.classroom-pin-icon{color:#888;cursor:pointer;padding:5px;font-size:1.5rem;line-height:1}.classroom-options-icon:hover,.classroom-pin-icon:hover{color:#414141}.dropdown-menu{z-index:20;background-color:#fff;border:1px solid #dadce0;border-radius:8px;min-width:180px;padding:8px 0;position:absolute;top:40px;right:10px;box-shadow:0 2px 6px #0000001a}.dropdown-item{color:#414141;cursor:pointer;align-items:center;gap:8px;padding:12px 16px;font-size:14px;display:flex}.dropdown-item:hover{background-color:#f1f3f4}.swal2-confirm{color:#fff!important;box-shadow:none!important;background-color:#4caf50!important;border:none!important}.swal2-confirm:focus{box-shadow:0 0 0 3px #4caf5066!important}.swal2-html-container{margin:0!important}.swal2-class-code-box{color:#388e3c;word-break:break-all;background-color:#eaf6ea;border:1px solid #d4ecd4;border-radius:4px;margin:15px 0;padding:12px 15px;font-size:24px;font-weight:700}.error-page-fullscreen{box-sizing:border-box;background:#f8fafc;justify-content:center;align-items:center;min-height:100vh;padding:1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;display:flex;position:fixed;inset:0;overflow-y:auto}.error-page-container{width:100%;max-width:600px;margin:0 auto}.error-content{text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:3rem 2rem;animation:.6s ease-out slideUp;box-shadow:0 4px 6px #0000001a}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.error-icon{color:#ef4444;justify-content:center;margin-bottom:1.5rem;display:flex}.error-title{color:#414141;margin-top:0;margin-bottom:1rem;font-size:2rem;font-weight:700}.error-description{color:#6b7280;margin-bottom:2rem;font-size:1.1rem;line-height:1.6}.error-code-container{background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-bottom:2rem;padding:1rem;display:flex}.error-code-label{color:#374151;font-weight:600}.error-code{color:#f9fafb;letter-spacing:.5px;background:#1f2937;border-radius:4px;padding:.25rem .5rem;font-family:Courier New,monospace;font-size:.9rem}.error-details{text-align:left;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;max-width:100%;margin-bottom:2rem;padding:1rem}.error-details summary{cursor:pointer;color:#dc2626;outline:none;margin-bottom:.5rem;font-weight:600}.error-details summary:hover{color:#b91c1c}.error-stack{color:#f9fafb;white-space:pre-wrap;word-break:break-word;background:#1f2937;border-radius:4px;max-height:200px;margin-top:.5rem;padding:1rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.75rem;line-height:1.4;overflow:auto}.error-actions{flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:2rem;display:flex}.error-btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;min-width:140px;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.error-btn.primary{color:#fff;background:#3b82f6}.error-btn.primary:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.error-btn.secondary{color:#fff;background:#6b7280}.error-btn.secondary:hover{background:#4b5563;transform:translateY(-1px);box-shadow:0 4px 12px #6b72804d}.error-help{color:#9ca3af;font-size:.9rem;line-height:1.5}.error-help p{margin:0}@media (width<=768px){.error-page-container{min-height:calc(100vh - 60px);padding:1rem}.error-content{padding:2rem 1.5rem}.error-description{font-size:1rem}.error-actions{flex-direction:column;align-items:center}.error-code-container{flex-direction:column;gap:.25rem}.error-page-fullscreen{align-items:flex-start;padding:2rem .5rem .5rem}.error-page-container{max-width:100%}.error-content{margin:0;padding:2rem 1.5rem}.error-title{font-size:1.75rem}.error-description{margin-bottom:1.5rem;font-size:1rem}.error-actions{flex-direction:column;align-items:center;gap:.75rem}.error-btn{width:100%;max-width:280px}.error-code-container{flex-direction:column;gap:.5rem;padding:1rem}.error-details{margin-bottom:1.5rem}.error-stack{max-height:150px;font-size:.75rem;overflow-y:auto}}@media (width<=480px){.error-page-fullscreen{padding:1rem .25rem .25rem}.error-content{border-radius:8px;padding:1.5rem 1rem}.error-title{margin-bottom:.75rem;font-size:1.5rem}.error-description{font-size:.95rem;line-height:1.5}.error-icon svg{width:48px;height:48px}.error-btn{min-width:120px;padding:.625rem 1.25rem;font-size:.9rem}.error-code{padding:.25rem .5rem;font-size:.8rem}.error-help{font-size:.85rem}}@media (width<=320px){.error-content{padding:1rem .75rem}.error-title{font-size:1.25rem}.error-btn{min-width:100px;padding:.5rem 1rem;font-size:.85rem}}:root{--color-text-main:#414141;--color-text-primary:#414141;--text-main:#414141;--text-primary:#414141;--stream-text:#414141;--bento-text:#414141;--ad-text:#414141}html{color:#414141;background:#f7f7f7;font-family:Noto Sans Thai,sans-serif}body{color:#414141;-webkit-font-smoothing:antialiased;margin:0;padding:0}input,textarea,select,button{color:#414141;font-family:inherit}
