.footer{width:100vw;min-height:max-content;padding:3rem 2rem;background:linear-gradient(180deg,rgba(10,14,39,.98),rgba(5,9,20,.98));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);color:var(--text-primary)!important;position:relative;margin-top:4rem}.footer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0,var(--primary) 50%,transparent 100%)}.footer .footer-title{font-weight:800;font-size:1.75rem;display:flex;justify-content:center;text-transform:uppercase;padding:.5em 0 1em;background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.05em;margin-bottom:1rem}@media screen and (max-width:768px){.footer .footer-title{font-size:1.5rem}}.footer .footer-content{font-weight:400;font-size:1rem;display:flex;flex-direction:row;justify-content:center;align-items:flex-start;margin-top:1rem;gap:4rem;flex-wrap:wrap;max-width:1200px;margin-left:auto;margin-right:auto}@media screen and (max-width:1024px){.footer .footer-content{gap:3rem}}@media screen and (max-width:768px){.footer .footer-content{flex-direction:column;gap:2rem;align-items:center;text-align:center}}.footer .footer-content>*{flex:1 1;min-width:250px;max-width:400px}@media screen and (max-width:768px){.footer .footer-content>*{min-width:100%;max-width:100%}}.footer .footer-content .footer-section{display:flex;flex-direction:column;gap:1rem}.footer .footer-content .footer-section h3{font-size:1.25rem;font-weight:700;color:var(--primary);margin-bottom:.5rem}.footer .footer-content .footer-section a,.footer .footer-content .footer-section p{color:var(--text-secondary);transition:color var(--transition-fast);line-height:1.8}.footer .footer-content .footer-section a:hover,.footer .footer-content .footer-section p:hover{color:var(--primary-hover)}.footer .footer-content .footer-section a{text-decoration:none;display:inline-block;padding:.25rem 0;border-bottom:1px solid transparent;transition:all var(--transition-fast)}.footer .footer-content .footer-section a:hover{border-bottom-color:var(--primary);transform:translateX(4px)}.footer .footer-content .footer-contact .contact-item{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;color:var(--text-secondary)}.footer .footer-content .footer-contact .contact-item svg{color:var(--primary);font-size:1.25rem}.footer .footer-content .footer-contact .contact-item a{color:var(--text-secondary);transition:color var(--transition-fast)}.footer .footer-content .footer-contact .contact-item a:hover{color:var(--primary-hover)}.footer .footer-content .footer-social{display:flex;flex-direction:column;gap:1rem}.footer .footer-content .footer-social .social-links{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}@media screen and (max-width:768px){.footer .footer-content .footer-social .social-links{justify-content:center}}.footer .footer-content .footer-social .social-links a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-primary);transition:all var(--transition-base);text-decoration:none}.footer .footer-content .footer-social .social-links a:hover{background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);border-color:var(--primary);transform:translateY(-4px);box-shadow:var(--shadow-md)}.footer .footer-bottom{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--glass-border);text-align:center;color:var(--text-muted);font-size:.875rem}.footer .footer-bottom p{margin:0;color:var(--text-muted)}@media screen and (max-width:600px){.footer{padding:2rem 1rem}.footer .footer-content{gap:2rem;margin-left:0}}:root{--background:#0a0e27;--bg-color:#0a0e27;--bg-gradient:linear-gradient(135deg,#0a0e27,#1a1f3a 50%,#0f1419);--card-color:rgba(22,48,81,.6);--card-hover:rgba(30,60,100,.8);--foreground:#ededed;--primary:#6366f1;--primary-hover:#818cf8;--secondary:#8b5cf6;--accent:#ec4899;--text-primary:#fff;--text-secondary:#a1a1aa;--text-muted:#71717a;--border-color:hsla(0,0%,100%,.1);--shadow-sm:0 2px 8px rgba(0,0,0,.1);--shadow-md:0 4px 16px rgba(0,0,0,.2);--shadow-lg:0 8px 32px rgba(0,0,0,.3);--shadow-xl:0 16px 48px rgba(0,0,0,.4);--glass-bg:hsla(0,0%,100%,.05);--glass-border:hsla(0,0%,100%,.1);--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:300ms cubic-bezier(0.4,0,0.2,1);--transition-slow:500ms cubic-bezier(0.4,0,0.2,1)}@media(prefers-color-scheme:dark){:root{--background:#0a0e27;--foreground:#ededed}}html{scroll-behavior:smooth}body,html{max-width:100vw;height:100%;overflow-x:hidden}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:rgba(0,0,0,.2);border-radius:10px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--primary) 0,var(--secondary) 100%);border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--primary-hover) 0,var(--secondary) 100%);background-clip:padding-box}body{background:var(--bg-gradient);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--font-vietnamese),var(--font-geist-sans),"Inter","Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Noto Sans","Noto Sans Vietnamese",-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text-primary);line-height:1.6;font-feature-settings:"liga","kern";text-rendering:optimizeLegibility}*{box-sizing:border-box;padding:0;margin:0}p{color:var(--text-primary);line-height:1.7}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-hover)}.container{flex-direction:row}.container,.container .user{display:flex;align-items:center;justify-content:center}.container .user{box-sizing:border-box}.container .user p{margin-bottom:0}.root-layout{display:flex;flex-direction:column;align-items:center;min-height:100vh;background:var(--bg-gradient);position:relative}.root-layout:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(99,102,241,.1) 0,transparent 50%),radial-gradient(circle at 80% 80%,rgba(139,92,246,.1) 0,transparent 50%),radial-gradient(circle at 40% 20%,rgba(236,72,153,.05) 0,transparent 50%);pointer-events:none;z-index:0}.root-layout>*{position:relative;z-index:1}.root-layout .root-header{width:100vw;position:relative;z-index:100}@media(prefers-color-scheme:dark){html{color-scheme:dark}}li{color:var(--text-primary)}.spinner-container{display:flex;justify-content:center;align-items:center;height:200px;width:100%;margin:0 auto}.spinner-container .spinner{border:4px solid rgba(99,102,241,.2);border-top:4px solid var(--primary);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;box-shadow:0 0 20px rgba(99,102,241,.3)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pagination{width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center;text-align:center;margin-top:2rem;gap:.5rem}.pagination span{margin-top:.5em;color:var(--text-primary);font-weight:500}.pagination button{min-width:70px;padding:10px 16px;background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.pagination button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md);background:linear-gradient(135deg,var(--primary-hover) 0,var(--secondary) 100%)}.pagination button:disabled{color:var(--text-muted);background:hsla(0,0%,100%,.1);cursor:not-allowed;opacity:.5}.announcement{color:#fff;width:100%;background:linear-gradient(135deg,rgba(99,102,241,.9),rgba(139,92,246,.9));font-weight:600;font-family:var(--font-geist-sans);padding:.75rem 0;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.announcement:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);animation:shine 3s infinite}@keyframes shine{0%{left:-100%}to{left:100%}}.modal .modal-content{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-xl)}.modal .modal-content,.modal .modal-header{background:rgba(10,14,39,.98)!important;color:var(--text-primary)!important}.modal .modal-header{border-bottom:1px solid var(--glass-border)}.modal .modal-header .modal-title{color:var(--text-primary)!important;font-weight:700}.modal .modal-header .btn-close{filter:invert(1) grayscale(100%) brightness(200%);opacity:.8;transition:opacity var(--transition-fast)}.modal .modal-header .btn-close:hover{opacity:1}.modal .modal-body{background:rgba(10,14,39,.98)!important}.modal .modal-body,.modal .modal-body .form-control,.modal .modal-body .form-label,.modal .modal-body>div:not(.quill):not(.ql-container),.modal .modal-body>h1:not(.ql-editor),.modal .modal-body>h2:not(.ql-editor),.modal .modal-body>h3:not(.ql-editor),.modal .modal-body>h4:not(.ql-editor),.modal .modal-body>h5:not(.ql-editor),.modal .modal-body>h6:not(.ql-editor),.modal .modal-body>label,.modal .modal-body>p:not(.ql-editor),.modal .modal-body>span:not(.ql-editor){color:var(--text-primary)!important}.modal .modal-body .form-control{background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important}.modal .modal-body .form-control::placeholder{color:var(--text-muted)!important}.modal .modal-body .form-control:focus{background:hsla(0,0%,100%,.08)!important;border-color:var(--primary)!important;color:var(--text-primary)!important;box-shadow:0 0 0 .2rem rgba(99,102,241,.25)!important}.modal .modal-body .form-select{background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;color:var(--text-primary)!important}.modal .modal-body .form-select:focus{background:hsla(0,0%,100%,.08)!important;border-color:var(--primary)!important;box-shadow:0 0 0 .2rem rgba(99,102,241,.25)!important}.modal .modal-footer{background:rgba(10,14,39,.98)!important;border-top:1px solid var(--glass-border);color:var(--text-primary)!important}.modal .btn.btn-primary{background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);border:none;color:#fff;font-weight:600;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.modal .btn.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:linear-gradient(135deg,var(--primary-hover) 0,var(--secondary) 100%)}.modal .btn.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.modal .btn.btn-secondary{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-primary);transition:all var(--transition-base)}.modal .btn.btn-secondary:hover{background:hsla(0,0%,100%,.1);border-color:var(--primary);color:var(--text-primary)}.modal .btn.btn-link{color:var(--primary)!important;text-decoration:none}.modal .btn.btn-link:hover{color:var(--primary-hover)!important;text-decoration:underline}.modal .btn.btn-outline-secondary{background:transparent;border:1px solid var(--glass-border);color:var(--text-primary)}.modal .btn.btn-outline-secondary:hover{background:var(--glass-bg);border-color:var(--primary);color:var(--text-primary)}.modal-backdrop{background-color:rgba(0,0,0,.7)!important;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.Toastify__toast-container{z-index:120000000!important;width:100%;max-width:min(90vw,420px);left:50%!important;transform:translateX(-50%)!important;padding:0;bottom:100px!important;top:auto!important}.Toastify__toast{border-radius:12px;box-shadow:var(--shadow-md)}.Toastify__toast-body{font-family:var(--font-vietnamese),var(--font-geist-sans),"Inter",sans-serif}.modal-body .ql-container{border:none!important;color:var(--text-primary)!important;font-family:inherit!important}.modal-body .ql-container,.modal-body .ql-container.ql-bubble{background:transparent!important}.modal-body .ql-container.ql-snow{background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;border-radius:8px}.modal-body .ql-editor{background:transparent!important;padding:0!important;font-family:inherit!important;line-height:1.7!important}.modal-body .ql-editor:before{color:var(--text-muted)!important}.modal-body .ql-editor b,.modal-body .ql-editor strong{font-weight:700!important}.modal-body .ql-editor em,.modal-body .ql-editor i{font-style:italic}.modal-body .ql-editor u{-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary)}.modal-body .ql-editor a{color:var(--primary)!important;text-decoration:underline!important}.modal-body .ql-editor a:hover{color:var(--primary-hover)!important}.modal-body .ql-editor blockquote{border-left:4px solid var(--primary)!important;color:var(--text-secondary)!important;padding-left:1rem!important;margin:1rem 0!important}.modal-body .ql-editor code{background:var(--glass-bg)!important;color:var(--primary)!important;padding:.2rem .4rem!important;border-radius:4px!important;font-family:var(--font-geist-mono),monospace!important}.modal-body .ql-editor pre{background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;border-radius:8px!important;padding:1rem!important;overflow-x:auto!important}.modal-body .ql-editor pre code{background:transparent!important;padding:0!important}.modal-body .ql-editor ol,.modal-body .ql-editor ul{padding-left:1.5rem!important}.modal-body .ql-editor ol li,.modal-body .ql-editor ul li{margin:.5rem 0!important}.modal-body .ql-editor img{max-width:100%!important;height:auto!important;border-radius:8px!important;margin:1rem 0!important}.modal-body .ql-editor.ql-bubble{padding:0!important}.modal-body .ql-toolbar{background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;border-bottom:none!important;border-radius:8px 8px 0 0;padding:.5rem!important}.modal-body .ql-toolbar .ql-stroke{stroke:var(--text-primary)!important}.modal-body .ql-toolbar .ql-fill{fill:var(--text-primary)!important}.modal-body .ql-toolbar .ql-picker-label{color:var(--text-primary)!important}.modal-body .ql-toolbar .ql-picker-options{background:rgba(10,14,39,.98)!important;border:1px solid var(--glass-border)!important;border-radius:8px!important;box-shadow:var(--shadow-lg)!important}.modal-body .ql-toolbar .ql-picker-options .ql-picker-item{color:var(--text-primary)!important}.modal-body .ql-toolbar .ql-picker-options .ql-picker-item:hover{background:var(--glass-bg)!important;color:var(--primary-hover)!important}.modal-body .ql-toolbar button.ql-active,.modal-body .ql-toolbar button:focus,.modal-body .ql-toolbar button:hover{background:var(--glass-bg)!important;border-radius:4px!important}.modal-body .ql-toolbar.ql-bubble{background:rgba(10,14,39,.95)!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;border:1px solid var(--glass-border)!important;border-radius:8px!important;padding:.5rem!important;box-shadow:var(--shadow-md)!important}.modal-body .ql-toolbar.ql-bubble .ql-stroke{stroke:var(--text-primary)!important}.modal-body .ql-toolbar.ql-bubble .ql-fill{fill:var(--text-primary)!important}.modal-body .quill{background:transparent!important}.modal-body .quill.ql-bubble .ql-editor{padding:0!important}