@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";:root{--navy: #0b2a5b;--navy-dark: #071d42;--blue: #1668d9;--blue-soft: #e8f1fd;--orange: #f26b1d;--orange-dark: #d9560b;--header-h: 72px;--red: #c62839;--red-soft: #fdecee;--green: #138a4b;--green-soft: #e6f6ed;--amber: #b26a00;--amber-soft: #fff4e0;--ink: #142033;--ink-2: #4a5568;--ink-3: #7a8699;--line: #e3e8ef;--bg: #f5f7fa;--card: #ffffff;--radius: 14px;--shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 4px 16px rgba(16, 24, 40, .06);--club-tin: #1668d9;--club-anh: #c62839;font-family:Be Vietnam Pro,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--bg);min-height:100vh}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}h1,h2,h3{line-height:1.25;margin:0 0 .5em;color:var(--navy)}h1{font-size:clamp(1.6rem,3.5vw,2.3rem);font-weight:800}h2{font-size:1.4rem;font-weight:700}h3{font-size:1.1rem;font-weight:700}.container{width:100%;max-width:1140px;margin:0 auto;padding:0 16px}.page{padding-top:28px;padding-bottom:56px}.muted{color:var(--ink-3)}.small{font-size:.875rem}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.stack>*+*{margin-top:16px}.topbar{background:var(--navy-dark);color:#d5def0;font-size:.8rem}.topbar .container{display:flex;justify-content:space-between;align-items:center;min-height:36px;gap:12px}.topbar a{color:#d5def0}.topbar a:hover{color:#fff;text-decoration:none}.topbar i{font-style:normal;opacity:.4;margin:0 9px}.topbar-phone{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.topbar-phone svg{color:var(--orange)}.topbar-links{display:flex;align-items:center;gap:12px}.topbar-search input{height:26px;width:180px;border:0;border-radius:2px;padding:0 9px;font:inherit;font-size:.8rem}.search-btn{width:30px;height:30px;flex:none;display:grid;place-items:center;background:var(--orange);color:#fff;border:0;cursor:pointer}.search-btn:hover{background:var(--orange-dark)}.header{background:var(--navy);position:sticky;top:0;z-index:20;overflow-x:clip;box-shadow:0 2px 10px #0b2a5b40}.header-row{display:flex;align-items:stretch;min-height:var(--header-h)}.brand-box{position:relative;display:flex;align-items:center;gap:12px;flex:none;background:#fff;padding:8px 42px 8px 0;clip-path:polygon(-100vw 0,100% 0,calc(100% - 30px) 100%,-100vw 100%);line-height:1.2}.brand-box:before{content:"";position:absolute;top:0;bottom:0;right:100%;width:100vw;background:#fff}.brand-box:hover{text-decoration:none}.brand-box b{display:block;color:var(--navy);font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.brand-box small{display:block;color:var(--ink-2);font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.nav{display:flex;flex:1;justify-content:flex-end;align-items:stretch}.nav-top{display:flex;align-items:center;gap:5px;padding:0 10px;color:#fff;background:none;border:0;border-bottom:3px solid transparent;border-top:3px solid transparent;font:inherit;font-size:.8rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;cursor:pointer}.nav-top:hover,.nav-group:hover>.nav-top{background:#ffffff14;text-decoration:none}.nav-top.active{border-bottom-color:var(--orange)}.nav-top .caret{font-size:.7rem;opacity:.8}.nav-cta{background:var(--orange);margin-left:6px;border-bottom-color:transparent!important}.nav-cta:hover{background:var(--orange-dark)!important}.nav-group{position:relative;display:flex}.nav-sub{display:none;position:absolute;top:100%;left:0;min-width:240px;background:#fff;border-top:3px solid var(--orange);box-shadow:0 12px 28px #0b2a5b2e;padding:6px 0;z-index:30}.nav-group:last-of-type .nav-sub{left:auto;right:0}.nav-group.open .nav-sub{display:block}@media(hover:hover)and (min-width:1181px){.nav-group:hover .nav-sub{display:block}}.nav-sub a,.nav-sub button{display:block;width:100%;text-align:left;padding:9px 18px;color:var(--ink);background:none;border:0;font:inherit;font-size:.9rem;cursor:pointer}.nav-sub a:hover,.nav-sub button:hover{background:var(--bg);color:var(--navy);text-decoration:none}.nav-sub-head{padding:8px 18px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;line-height:1.35}.nav-sub-head b{display:block;color:var(--navy)}.nav-sub-head span{font-size:.8rem;color:var(--ink-3)}.menu-btn{display:none;margin-left:auto;background:none;border:0;font-size:1.6rem;width:48px;cursor:pointer;color:#fff}@media(max-width:1180px){.menu-btn{display:block}.nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--navy);padding:4px 0 14px;max-height:calc(100vh - var(--header-h));overflow-y:auto;box-shadow:0 12px 24px #00000040}.nav.open{display:flex}.nav-top{justify-content:space-between;padding:13px 20px;border:0;border-bottom:1px solid rgba(255,255,255,.08);font-size:.86rem}.nav-top.active{color:#ffb88e}.nav-group{flex-direction:column}.nav-sub,.nav-group:last-of-type .nav-sub{position:static;min-width:0;box-shadow:none;border:0;background:#ffffff0d;padding:4px 0}.nav-sub a,.nav-sub button{color:#dbe6ff;padding:10px 20px 10px 34px}.nav-sub a:hover,.nav-sub button:hover{background:#ffffff14;color:#fff}.nav-sub-head{border-color:#ffffff1a;padding-left:34px}.nav-sub-head b{color:#fff}.nav-sub-head span{color:#aebbd6}.nav-cta{margin:14px 20px 0;justify-content:center;border-radius:2px}}@media(max-width:600px){:root{--header-h: 62px}.topbar .hide-sm{display:none}.topbar-search input{width:150px}.brand-box{padding-right:28px;gap:8px;clip-path:polygon(-100vw 0,100% 0,calc(100% - 22px) 100%,-100vw 100%)}.brand-box .logo-duo{--s: 36px !important}.menu-btn{width:40px}.brand-box b{font-size:.8rem;letter-spacing:0}.brand-box small{font-size:.66rem;letter-spacing:.03em}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-weight:600;font-size:.92rem;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--bg);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-primary:hover{background:#0f56b8}.btn-accent{background:var(--orange);border-color:var(--orange);color:#fff}.btn-accent:hover{background:#d9650e}.btn-danger{color:var(--red);border-color:#f3c3c9}.btn-danger:hover{background:var(--red-soft)}.btn-sm{padding:5px 10px;font-size:.82rem;border-radius:8px}.btn-ghost{border-color:transparent;background:transparent}.field{display:block;margin-bottom:14px}.field>span{display:block;font-weight:600;font-size:.88rem;margin-bottom:6px;color:var(--ink-2)}.input,select.input,textarea.input{width:100%;padding:10px 12px;border:1px solid #cfd7e3;border-radius:10px;font:inherit;background:#fff;color:var(--ink)}.input:focus{outline:2px solid var(--blue-soft);border-color:var(--blue)}textarea.input{resize:vertical;min-height:80px}.alert{padding:11px 14px;border-radius:10px;font-size:.92rem;margin-bottom:14px}.alert-error{background:var(--red-soft);color:#8f1726}.alert-ok{background:var(--green-soft);color:#0b5e33}.alert-info{background:var(--blue-soft);color:#0b3f87}.alert-warn{background:var(--amber-soft);color:#7a4800}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:22px}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--bg);color:var(--ink-2)}.badge-tin{background:var(--blue-soft);color:var(--club-tin)}.badge-anh{background:var(--red-soft);color:var(--club-anh)}.badge-published{background:var(--green-soft);color:var(--green)}.badge-pending{background:var(--amber-soft);color:var(--amber)}.badge-draft{background:var(--bg);color:var(--ink-3)}.badge-rejected{background:var(--red-soft);color:var(--red)}.logo-duo{display:inline-flex;align-items:center;flex:none}.logo-duo img{width:var(--s);height:var(--s);border-radius:50%;object-fit:contain;background:#fff;box-shadow:0 0 0 2px #fff,0 2px 6px #0b2a5b33}.logo-duo img:first-child{position:relative;z-index:1}.logo-duo img+img{margin-left:calc(var(--s) * -.2)}.duo-big img{box-shadow:0 0 0 4px #ffffffe6,0 14px 32px #00000059}.duo-big img:first-child{transform:rotate(-6deg)}.duo-big img+img{transform:rotate(6deg) translateY(10%)}.hero{background:var(--bg);padding:28px 0}.hero-kicker{display:flex;align-items:center;gap:10px;color:var(--orange);font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.hero-kicker:before{content:"";width:28px;height:2px;background:var(--orange)}.btn-outline-accent{background:transparent;border:2px solid var(--orange);color:var(--orange);border-radius:2px;padding:9px 22px;text-transform:uppercase;font-size:.82rem;letter-spacing:.04em}.btn-outline-accent:hover{background:var(--orange);color:#fff}@media(max-width:860px){.hero{padding:16px 0 24px}}.home-cols{background:#fff;padding:36px 0 40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.home-cols-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}@media(max-width:860px){.home-cols-grid{grid-template-columns:minmax(0,1fr);gap:32px}}.col-title{color:var(--navy);font-size:1.05rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;position:relative;padding-bottom:10px;margin:0 0 14px}.col-title:after{content:"";position:absolute;left:0;bottom:0;width:46px;height:3px;background:var(--orange)}.news-list,.event-list{list-style:none;margin:0;padding:0}.news-list li{padding:10px 0;border-bottom:1px dashed var(--line)}.news-list a{display:block;color:var(--ink);font-weight:600;line-height:1.4}.news-list a:hover,.event-list a:hover{color:var(--navy)}.event-list li{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px dashed var(--line)}.event-list a{color:var(--ink);font-weight:600;line-height:1.4}.date-box{flex:none;width:60px;background:var(--navy);color:#fff;text-align:center;overflow:hidden}.date-box small{display:block;background:var(--orange);font-size:.68rem;font-weight:700;text-transform:uppercase;padding:2px 0}.date-box b{display:block;font-size:1.6rem;font-weight:800;line-height:1;padding:7px 0 8px}.intro-img{height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:radial-gradient(circle at 75% 15%,#2b5aa6 0%,transparent 55%),linear-gradient(135deg,#0b2a5b,#1d4f99);margin-bottom:14px}.intro-slogan{color:#ffd2ad;font-style:italic;font-weight:600;font-size:.92rem}.intro-clubs{list-style:none;margin:0;padding:0;display:grid;gap:8px}.intro-clubs li{border-left:4px solid var(--c);background:var(--bg);padding:8px 12px;line-height:1.4}.intro-clubs a{display:block;color:var(--navy);font-weight:700}.intro-clubs span{font-size:.85rem;color:var(--ink-3)}.intro-text{margin:0;color:var(--ink-2)}.col-more{display:inline-block;margin-top:12px;font-weight:700;font-size:.88rem;color:var(--orange)}.narrow{max-width:760px}ul.plain{list-style:none;margin:0;padding:0;display:grid;gap:8px}.schedule td{vertical-align:top}.schedule td div+div{margin-top:4px}.link-btn{background:none;border:0;padding:0;color:var(--blue);font:inherit;cursor:pointer;text-decoration:underline}.club-card{padding:26px;border-top:5px solid var(--c);display:flex;flex-direction:column;gap:10px}.club-card .tag{color:var(--c);font-weight:800;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}.topic-list{display:grid;gap:10px;margin:6px 0 4px;padding:0;list-style:none}.topic-list li{padding:10px 12px;border-radius:10px;background:var(--bg)}.topic-list b{color:var(--navy)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:40px 0 16px}.section-head h2{margin:0}.post-card{overflow:hidden;display:flex;flex-direction:column;transition:transform .15s;color:inherit}.post-card:hover{transform:translateY(-2px);text-decoration:none}.post-cover{aspect-ratio:16 / 9;background:linear-gradient(135deg,var(--blue-soft),#f0f4fa);display:grid;place-items:center;color:var(--blue);font-weight:800;font-size:1.4rem;overflow:hidden}.post-cover.anh{background:linear-gradient(135deg,var(--red-soft),#fbf3f4);color:var(--club-anh)}.post-cover img{width:100%;height:100%;object-fit:cover}.post-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}.post-body h3{margin:0;color:var(--ink)}.post-meta{font-size:.8rem;color:var(--ink-3);display:flex;gap:8px;flex-wrap:wrap;align-items:center}.article{max-width:760px;margin:0 auto}.article-cover{border-radius:var(--radius);overflow:hidden;margin:18px 0}.prose{font-size:1.04rem}.prose img{border-radius:10px}.prose blockquote{border-left:4px solid var(--blue);margin:1em 0;padding:4px 16px;color:var(--ink-2);background:var(--blue-soft);border-radius:0 8px 8px 0}.prose pre{background:#0f1b2e;color:#e6edf7;padding:14px;border-radius:10px;overflow-x:auto}.prose code{font-family:Consolas,monospace;font-size:.92em}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.tab{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;color:var(--ink-2)}.tab.active{background:var(--navy);border-color:var(--navy);color:#fff}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);background:#fafbfd}.editor{border:1px solid #cfd7e3;border-radius:10px;background:#fff}.editor-toolbar{display:flex;flex-wrap:wrap;gap:2px;padding:6px;border-bottom:1px solid var(--line);background:#fafbfd;border-radius:10px 10px 0 0;position:sticky;top:var(--header-h);z-index:5}.editor-toolbar button{border:0;background:none;padding:6px 9px;border-radius:6px;cursor:pointer;font:inherit;font-size:.88rem;color:var(--ink-2);min-width:32px}.editor-toolbar button:hover{background:var(--line)}.editor-toolbar button.on{background:var(--blue-soft);color:var(--blue)}.editor-toolbar .sep{width:1px;background:var(--line);margin:4px}.editor-toolbar button svg{vertical-align:-2px}.editor .tiptap{min-height:320px;padding:14px 16px;outline:none}.editor .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--ink-3);float:left;height:0;pointer-events:none}.footer{background:#0b1b36;color:#a9b8d0;padding:36px 0 24px;margin-top:40px;font-size:.9rem}.footer h4{color:#fff;margin:0 0 10px}.footer a{color:#cfe0ff}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:24px}@media(max-width:760px){.footer-grid{grid-template-columns:1fr}}.footer .copy{border-top:1px solid #1f3254;margin-top:24px;padding-top:16px;font-size:.8rem}.demo-bar{background:var(--amber-soft);color:#7a4800;font-size:.82rem;text-align:center;padding:6px 16px}.demo-bar button{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.empty{text-align:center;padding:40px 16px;color:var(--ink-3)}.login-box{max-width:420px;margin:24px auto}.divider{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:.82rem;margin:18px 0}.divider:before,.divider:after{content:"";flex:1;border-top:1px solid var(--line)}.demo-accounts button{text-align:left;width:100%;justify-content:flex-start}.dash-stat{padding:18px}.dash-stat b{display:block;font-size:1.8rem;color:var(--navy);line-height:1.1}.prose pre code.hljs,.editor pre code.hljs{padding:0;background:none}.editor .tiptap pre{background:#0f1b2e;color:#e6edf7;padding:14px;border-radius:10px;overflow-x:auto;font-family:Consolas,monospace;font-size:.92em}.editor-toolbar select{font:inherit;font-size:.82rem;border:1px solid var(--line);border-radius:6px;padding:2px 6px;background:#fff;color:var(--ink-2);margin-left:4px}.progress{display:flex;align-items:center;gap:10px}.progress-track{flex:1;height:8px;border-radius:999px;background:var(--line);overflow:hidden;min-width:60px}.progress-fill{height:100%;background:var(--blue);border-radius:999px;transition:width .3s}.progress-fill.full{background:var(--green)}.progress .small{white-space:nowrap}.course-card .post-cover span{padding:0 18px;text-align:center;font-size:1.15rem;line-height:1.3}.continue-card{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px;border-left:4px solid var(--blue)}.lesson-list{list-style:none;margin:0;padding:6px}.lesson-list a{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;color:var(--ink)}.lesson-list a:hover{background:var(--bg);text-decoration:none}.lesson-list li+li{border-top:1px solid var(--line)}.lesson-no{width:28px;height:28px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:.82rem;font-weight:700;background:var(--bg);color:var(--ink-2);border:1px solid var(--line)}.lesson-list a.done .lesson-no{background:var(--green);border-color:var(--green);color:#fff}.lesson-list a.current{background:var(--blue-soft)}.lesson-list a.current .lesson-no{border-color:var(--blue);color:var(--blue)}.lesson-list.compact a{padding:8px 10px;font-size:.9rem;gap:10px}.lesson-list.compact li+li{border-top:0}.lesson-list.compact .lesson-no{width:24px;height:24px;font-size:.75rem}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start}.lesson-main{min-width:0}.lesson-side{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow-y:auto}.lesson-side-head{padding:14px 16px 8px;border-bottom:1px solid var(--line)}@media(max-width:900px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-side{position:static;max-height:none}}.video-frame{position:relative;aspect-ratio:16 / 9;border-radius:var(--radius);overflow:hidden;background:#000;margin:14px 0 18px}.video-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.attach-box{margin-top:24px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}.attach-box h3{margin:0 0 8px}.attach-box ul{margin:0;padding-left:4px;list-style:none}.attach-box li{padding:4px 0;word-break:break-word}.lesson-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:32px;padding-top:16px;border-top:1px solid var(--line)}.admin-split{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}@media(max-width:860px){.admin-split{grid-template-columns:minmax(0,1fr)}}.course-pick{list-style:none;margin:0;padding:0 8px 8px}.course-pick li{display:flex;align-items:center;gap:4px;border-radius:10px}.course-pick li.active{background:var(--blue-soft)}.course-pick-main{flex:1;text-align:left;background:none;border:0;font:inherit;cursor:pointer;padding:10px;color:var(--ink);display:flex;flex-direction:column;min-width:0}.course-pick li:not(.active):hover{background:var(--bg)}.attach-edit{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}.attach-edit li{display:flex;align-items:center;gap:8px}.attach-edit .input{padding:6px 10px}.attach-add{display:grid;grid-template-columns:1fr 1.4fr auto auto auto;gap:8px;align-items:center}@media(max-width:760px){.attach-add{grid-template-columns:1fr}}.table .center{text-align:center}.progress-table td,.progress-table th{white-space:nowrap}.progress-table th.center{max-width:140px;overflow:hidden;text-overflow:ellipsis}.progress-table tfoot td{background:#fafbfd;font-weight:600}.tick{color:var(--green);font-weight:800}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.quiz-card{color:inherit;display:block}.quiz-card:hover{text-decoration:none;transform:translateY(-2px)}.quiz-facts{margin:6px 0 16px;padding-left:20px}.quiz-facts li{margin:3px 0}.leaderboard{list-style:none;margin:0;padding:0}.leaderboard li{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:10px}.leaderboard li+li{border-top:1px solid var(--line)}.leaderboard li.me{background:var(--blue-soft)}.leaderboard .rank{width:30px;text-align:center;font-weight:700;color:var(--ink-3)}.lb-score{font-size:1.1rem;color:var(--navy);min-width:44px;text-align:right}.quiz-take{max-width:860px}.quiz-bar{position:sticky;top:var(--header-h);z-index:10;display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 14px;margin-bottom:12px}.quiz-bar>div:first-child{flex:1}.quiz-bar-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timer{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.2rem;color:var(--navy);padding:4px 10px;border-radius:8px;background:var(--bg);white-space:nowrap}.timer.warn{color:var(--amber);background:var(--amber-soft)}.timer.danger{color:var(--red);background:var(--red-soft);animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:.55}}.quiz-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.quiz-nav a{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font-weight:600;font-size:.88rem}.quiz-nav a:hover{text-decoration:none;border-color:var(--blue)}.quiz-nav a.done{background:var(--blue);border-color:var(--blue);color:#fff}.question{scroll-margin-top:150px}.question-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;color:var(--navy)}.question-text{white-space:pre-wrap;font-size:1.02rem;margin-bottom:10px}.question-code{background:#0f1b2e;color:#e6edf7;padding:12px 14px;border-radius:10px;overflow-x:auto;font-size:.9rem;margin:0 0 12px}.question-code code{font-family:Consolas,monospace}.question-code code.hljs{padding:0;background:none}.question-img{max-height:320px;border-radius:10px;margin-bottom:12px;display:block}.question.q-right{border-left:4px solid var(--green)}.question.q-wrong{border-left:4px solid var(--red)}.question.q-part{border-left:4px solid var(--amber)}.options{display:grid;gap:8px}.option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.option:hover{background:var(--bg)}.option input{margin-top:5px}.option.picked{border-color:var(--blue);background:var(--blue-soft)}.option.right{border-color:var(--green);background:var(--green-soft)}.option.wrong{border-color:var(--red);background:var(--red-soft)}.opt-letter{font-weight:700;color:var(--navy);min-width:18px}.tf-list{display:grid;gap:8px}.tf-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.tf-row.right{border-color:var(--green);background:var(--green-soft)}.tf-row.wrong{border-color:var(--red);background:var(--red-soft)}.tf-btns{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}.tf-btns button{border:0;background:var(--card);padding:6px 12px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;color:var(--ink-2)}.tf-btns button+button{border-left:1px solid var(--line)}.tf-btns button.on{background:var(--navy);color:#fff}.tf-btns button:disabled{cursor:default}.tf-key{font-weight:800;color:var(--green);width:16px;text-align:center}.tf-text{flex:1}@media(max-width:560px){.tf-row{flex-wrap:wrap}.tf-text{flex-basis:calc(100% - 40px)}.tf-btns{margin-left:28px}}.short-answer .input{max-width:360px}.explain{margin-top:12px;padding:8px 12px;background:var(--blue-soft);border-radius:8px;color:#0b3f87}.score-card{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.score-big{font-size:3.4rem;font-weight:800;color:var(--amber);line-height:1;font-variant-numeric:tabular-nums}.score-big small{font-size:1.2rem;color:var(--ink-3)}.score-big.good{color:var(--green)}.score-big.low{color:var(--red)}.q-edit textarea.input{min-height:0}.code-input{font-family:Consolas,monospace;font-size:.88rem}.opt-edit{display:grid;gap:8px;margin-top:10px}.save-bar{position:sticky;bottom:12px;margin-top:20px;z-index:5}.dist{display:grid;gap:8px}.dist-row{display:grid;grid-template-columns:110px 1fr 60px;gap:10px;align-items:center}.dist-track{height:14px;background:var(--line);border-radius:999px;overflow:hidden}.dist-fill{height:100%;background:var(--blue);border-radius:999px}.progress-fill.low{background:var(--red)}.quiz-section{background:var(--navy);color:#fff;font-weight:700;padding:10px 16px;border-left:5px solid var(--orange);white-space:pre-line}.quiz-rules{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:4px 16px 12px;margin-bottom:12px}.quiz-rules h4{margin:14px 0 4px;color:var(--navy)}.quiz-rules ul{margin:0;padding-left:20px}.quiz-rules li+li{margin-top:3px}.quiz-rules .table td{padding:6px 10px}.btn-pin-on{background:var(--amber-soft);border-color:#f0c58a}.pin-off{opacity:.35}.import-summary{padding:10px 14px;border-radius:10px;font-size:.95rem}.import-summary.good{background:var(--green-soft);color:#0b5e33}.import-summary.bad{background:var(--red-soft);color:#8f1726}.issue-list{margin:6px 0 0;padding-left:22px}.issue-list li+li{margin-top:3px}.preview-bad>.question{border:2px solid var(--red)}.preview-err{background:var(--red-soft);color:#8f1726;font-size:.88rem;font-weight:600;padding:8px 12px;border-radius:10px 10px 0 0}.import-actions{padding:12px 0 2px;margin-top:10px}.tf-key{font-weight:700;color:var(--green)}.exam-entry{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:center;margin-bottom:20px;border-top:4px solid var(--orange)}.exam-entry h3{margin-top:0}@media(max-width:760px){.exam-entry{grid-template-columns:1fr}}.kind-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:640px){.kind-pick{grid-template-columns:1fr}}.kind-opt{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:start;padding:12px 14px;border:2px solid var(--line);border-radius:12px;cursor:pointer}.kind-opt input{grid-row:span 2;margin-top:4px}.kind-opt.on{border-color:var(--navy);background:var(--blue-soft)}.exam-link{background:var(--bg);border:1px dashed var(--navy);border-radius:12px;padding:12px 14px;display:grid;gap:8px;margin-bottom:14px}.exam-link .input{font-family:Consolas,monospace;font-size:.88rem}.exam-intro h1{font-size:clamp(1.4rem,3vw,1.9rem)}.exam-facts{padding-left:20px;margin:10px 0 18px}.exam-facts li+li{margin-top:3px}.class-filter{margin:16px 0 0;gap:6px}.kind-tabs .tab{font-size:.95rem;padding:9px 16px}.topbar-user{display:inline-flex;align-items:center;gap:10px;min-width:0}.topbar-me{display:inline-flex;align-items:center;gap:7px;min-width:0;color:#fff!important;font-weight:600}.topbar-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem;flex:none}.avatar-sm{width:24px;height:24px;font-size:.68rem;background:var(--orange)}.topbar-logout{background:none;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:4px;padding:3px 10px;font:inherit;font-size:.78rem;cursor:pointer;white-space:nowrap}.topbar-logout:hover{background:#ffffff1f}.topbar-login{color:#fff!important;font-weight:700;border:1px solid rgba(255,255,255,.35);border-radius:4px;padding:3px 12px}.topbar-quick{border-left:1px solid rgba(255,255,255,.2);padding-left:12px}a.topbar-phone{color:inherit}a.topbar-phone:hover{text-decoration:underline}@media(max-width:900px){.topbar.has-user .topbar-quick{display:none}}@media(max-width:600px){.topbar.has-user .topbar-phone{display:none}.topbar-links{flex:1;justify-content:flex-end;min-width:0}.topbar-name{max-width:150px}}.list-head{margin:16px 0 14px;gap:10px}.view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;flex:none}.view-toggle button{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:7px 12px;font:inherit;font-size:.85rem;font-weight:600;color:var(--ink-2);cursor:pointer}.view-toggle button+button{border-left:1px solid var(--line)}.view-toggle button.on{background:var(--navy);color:#fff}@media(max-width:520px){.view-toggle span{display:none}}.course-rows{overflow:hidden}.course-row{display:flex;align-items:center;gap:14px;padding:12px 16px;color:inherit;border-bottom:1px solid var(--line)}.course-row:last-child{border-bottom:0}.course-row:hover{background:var(--bg);text-decoration:none}.course-thumb{width:64px;height:48px;border-radius:8px;flex:none;overflow:hidden;display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.3rem;background:var(--navy)}.course-thumb.tin{background:linear-gradient(135deg,#0b2a5b,#1668d9)}.course-thumb.anh{background:linear-gradient(135deg,#7a1222,#c62839)}.course-thumb img{width:100%;height:100%;object-fit:cover}.course-row-main{flex:1;min-width:0;display:grid;gap:3px}.course-row-main b{color:var(--navy)}.course-row-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-row-progress{width:180px;flex:none}@media(max-width:640px){.course-row-progress{display:none}.course-row-desc{white-space:normal}}.lesson-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.lesson-tile{display:flex;flex-direction:column;gap:6px;padding:16px;color:inherit;min-height:170px}.lesson-tile:hover{text-decoration:none;border-color:var(--navy)}.lesson-tile b{color:var(--navy);line-height:1.35}.lesson-tile-no{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:1.3rem;font-weight:800;background:var(--blue-soft);color:var(--navy)}.lesson-tile.done .lesson-tile-no{background:var(--green-soft);color:var(--green)}.lesson-tile-sum{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lesson-tile-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center}.media-icons{display:inline-flex;gap:3px;font-size:.95rem}.att-list{display:grid;gap:10px}.att-item{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.att-row{display:flex;align-items:center;gap:12px;padding:10px 12px}.att-icon{font-size:1.6rem;width:40px;text-align:center;flex:none}.att-name{flex:1;min-width:0;display:grid}.att-name b{word-break:break-word}.att-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.att-view{border-top:1px solid var(--line);background:var(--bg)}.att-frame{display:block;width:100%;height:70vh;min-height:420px;border:0;background:#fff}.att-frame.tall{height:78vh;min-height:480px}.att-video{display:block;width:100%;max-height:75vh;background:#000}.att-audio{display:block;width:100%;padding:12px}.att-image{display:block;max-width:100%;margin:0 auto}@media(max-width:560px){.att-row{flex-wrap:wrap}.att-actions{width:100%;justify-content:flex-start}.att-frame{height:60vh;min-height:320px}}.attach-help{margin-top:8px;display:grid;gap:4px}.topbar-act{display:inline-flex;align-items:center;gap:5px;color:#fff!important;font-weight:600;white-space:nowrap;position:relative}.topbar-badge{background:var(--orange);color:#fff;border-radius:999px;font-size:.68rem;min-width:18px;height:18px;padding:0 5px;display:inline-grid;place-items:center}.col-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}@media(max-width:900px){.topbar-act span{display:none}}@media(max-width:600px){.topbar-name{max-width:110px}}.shell{display:grid;grid-template-columns:270px minmax(0,1fr);max-width:1480px;margin:0 auto;align-items:start}.shell-side{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow-y:auto;border-right:1px solid var(--line);background:#fff}.shell-main{min-width:0}.explorer{padding:12px 8px 18px;font-size:.9rem}.ex-title{font-weight:800;color:var(--navy);text-transform:uppercase;font-size:.78rem;letter-spacing:.06em;padding:4px 8px 8px;border-bottom:2px solid var(--orange);margin-bottom:6px}.ex-root,.ex-sub{list-style:none;margin:0;padding:0}.ex-row{display:flex;align-items:center;gap:2px;border-radius:6px;min-height:30px}.ex-row:hover{background:var(--bg)}.ex-row.trail>.ex-link{color:var(--navy);font-weight:600}.ex-row.active{background:var(--blue-soft)}.ex-row.active>.ex-link{color:var(--navy);font-weight:700}.ex-caret,.ex-caret-space{width:18px;flex:none}.ex-caret{border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:.8rem;padding:0;height:24px;transition:transform .15s}.ex-caret.open{transform:rotate(90deg)}.ex-link{display:flex;align-items:center;gap:6px;flex:1;min-width:0;color:var(--ink);padding:4px 6px 4px 2px;background:none;border:0;font:inherit;text-align:left;cursor:pointer}.ex-link:hover{text-decoration:none;color:var(--navy)}.ex-icon{width:20px;text-align:center;flex:none}.ex-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ex-fab{display:none}.ex-drawer{position:fixed;top:0;right:0;bottom:0;left:0;background:#04102673;z-index:40}.ex-drawer-panel{position:absolute;top:0;left:0;bottom:0;width:min(320px,86vw);background:#fff;overflow-y:auto;box-shadow:8px 0 24px #0003}.ex-close{position:absolute;top:8px;right:8px;border:0;background:none;font-size:1.2rem;cursor:pointer;color:var(--ink-3)}@media(max-width:1100px){.shell{grid-template-columns:minmax(0,1fr)}.shell-side{display:none}.ex-fab{display:inline-flex;position:fixed;left:14px;bottom:16px;z-index:30;background:var(--navy);color:#fff;border:0;border-radius:999px;padding:10px 16px;font:inherit;font-weight:700;font-size:.88rem;box-shadow:0 6px 18px #0b2a5b59;cursor:pointer}.ex-drawer .explorer{padding-top:14px}}.stats-box{margin:16px 6px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.stats-title{background:var(--navy);color:#fff;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;padding:7px 12px}.stats-row{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;font-size:.86rem}.stats-row+.stats-row{border-top:1px dashed var(--line)}.stats-row b{color:var(--navy)}.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #22c55e33;margin-right:4px;vertical-align:1px}.footer .copy{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px}.stats-inline{display:inline-flex;flex-wrap:wrap;gap:4px 14px}.stats-inline b{color:#fff}.reg-intro h1{margin-bottom:4px}.reg-intro p{margin:0 0 20px;max-width:680px}.reg-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.reg-form{padding:0;overflow:hidden}.reg-form section{padding:22px 26px 8px;border-top:1px solid var(--line)}.reg-form h2{font-size:1.05rem;display:flex;align-items:center;gap:10px;margin-bottom:16px;text-transform:uppercase;letter-spacing:.02em}.reg-num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--navy);color:#fff;font-size:.8rem}.reg-clubs{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px 26px;background:#fafbfd}.reg-club{display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font:inherit;text-align:left;color:var(--ink);transition:border-color .15s,box-shadow .15s}.reg-club img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none}.reg-club b{display:block;color:var(--navy)}.reg-club small{display:block;color:var(--ink-3);font-size:.8rem;margin-top:2px}.reg-club:hover{border-color:#c5cfdd}.reg-club.on{border-color:var(--orange);box-shadow:0 0 0 3px #f26b1d1f}.reg-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}.reg-wide{grid-column:1 / -1}.reg-form .field>span i{color:var(--red);font-style:normal}.reg-form .field>span em{font-style:normal;font-weight:400}.field>.field-err,.field-err{display:block;color:var(--red);font-size:.82rem;font-weight:400;margin:5px 0 0}.field>.field-hint{display:block;color:var(--ink-3);font-size:.8rem;font-weight:400;margin:5px 0 0}.input-err{border-color:var(--red);background:snow}.reg-groups{display:flex;flex-wrap:wrap;gap:8px}.reg-group{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid #cfd7e3;border-radius:999px;cursor:pointer;font-size:.92rem;background:#fff}.reg-group.on{border-color:var(--navy);background:var(--navy);color:#fff}.reg-group input{accent-color:var(--orange);margin:0}.reg-agree{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px;cursor:pointer;font-size:.93rem;line-height:1.5}.reg-agree input{margin-top:4px;accent-color:var(--orange);width:16px;height:16px;flex:none}.reg-agree.bad{border-color:var(--red);background:snow}.reg-agree+.field-err{margin:-6px 0 10px}.reg-trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.reg-form>.alert{margin:0 26px 14px}.reg-submit{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 26px 24px;border-top:1px solid var(--line);background:#fafbfd}.btn-lg{padding:12px 22px;font-size:1rem}.reg-side{display:grid;gap:16px;position:sticky;top:calc(var(--header-h) + 16px)}.reg-side h3{font-size:1rem}.reg-steps{margin:0;padding-left:20px;font-size:.9rem;line-height:1.55}.reg-steps li+li{margin-top:6px}.reg-done{text-align:center}.reg-done-icon{width:64px;height:64px;margin:4px auto 12px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-size:2rem;font-weight:700}.reg-summary{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;text-align:left;margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:.92rem}.reg-summary dt{color:var(--ink-3)}.reg-summary dd{margin:0}@media(max-width:900px){.reg-layout{grid-template-columns:minmax(0,1fr)}.reg-side{position:static}}@media(max-width:600px){.reg-clubs,.reg-grid{grid-template-columns:minmax(0,1fr)}.reg-form section,.reg-clubs,.reg-submit{padding-left:16px;padding-right:16px}.reg-form>.alert{margin:0 16px 14px}}.reg-row-detail td{background:#fafbfd}.reg-detail{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:.9rem;margin:0}.reg-detail dt{color:var(--ink-3)}.reg-detail dd{margin:0;white-space:pre-wrap}.st-pending{background:var(--amber-soft);color:var(--amber)}.st-accepted{background:var(--green-soft);color:var(--green)}.st-rejected{background:var(--red-soft);color:var(--red)}.reg-print{display:none}@media print{body:has(>.reg-print)>#root{display:none}.reg-print{display:block}@page{size:A4;margin:15mm 18mm}.reg-paper{font-family:Times New Roman,Times,serif;font-size:13pt;line-height:1.4;color:#000;break-after:page}.reg-paper:last-child{break-after:auto}.reg-paper p{margin:0 0 4pt;text-align:justify}.reg-paper h2{font-size:14pt;text-align:center;color:#000;margin:8pt 0}.reg-paper h3{font-size:13pt;color:#000;margin:8pt 0 4pt}.reg-paper table{width:100%;border-collapse:collapse}.reg-paper td{vertical-align:top;text-align:center;font-size:12.5pt}.reg-head td{white-space:nowrap;font-size:12pt}.reg-head td:first-child{width:40%}.reg-date{text-align:right!important;margin-top:6pt!important}.reg-center{text-align:center!important}.reg-check{padding-left:18pt}.reg-sign{margin-top:10pt}.reg-sign td{padding-bottom:60pt;position:relative}.reg-name{position:absolute;left:0;right:0;bottom:0;font-weight:700}.reg-bcn{margin-top:6pt!important;border-top:1px dashed #000;padding-top:6pt}}.linklike{border:0;background:none;padding:0;font:inherit;color:var(--blue);cursor:pointer;text-align:left}.mem-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:8px}.mem-stats>div{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 18px;border-left:4px solid var(--orange)}.mem-stats b{display:block;font-size:1.6rem;color:var(--navy);line-height:1.1}.mem-stats span{color:var(--ink-3);font-size:.88rem}.mem-h{font-size:1.1rem;margin:26px 0 12px;text-transform:uppercase;letter-spacing:.02em}.mem-teachers{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.mem-teacher{display:flex;align-items:center;gap:12px;padding:14px 16px}.mem-teacher b{display:block;color:var(--navy)}.mem-teacher small{color:var(--ink-3)}.mem-classes{display:flex;flex-wrap:wrap;gap:8px}.mem-class{padding:7px 12px;background:var(--card);border:1px solid var(--line);border-radius:999px;font-size:.9rem;color:var(--ink-2)}.mem-class b{color:var(--navy);margin-right:4px}.mem-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;align-items:start}.mem-group{padding:0;overflow:hidden}.mem-group-head{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--navy);color:#fff}.mem-group-head span{font-size:.82rem;opacity:.8}.mem-group ol{margin:0;padding:10px 16px 12px 40px;font-size:.93rem;line-height:1.8}.mem-role{margin-left:8px;font-size:.72rem;font-weight:600;padding:1px 8px;border-radius:999px;vertical-align:1px}.mem-role-manager{background:#fff1e8;color:var(--orange-dark)}.mem-role-editor{background:var(--blue-soft);color:var(--blue)}.row-picked td{background:#fff7f0}.text-warn{color:var(--amber);font-weight:600}.season-banner{position:relative;overflow:hidden;color:#fff}.sb-row{position:relative;z-index:1;display:flex;align-items:center;gap:16px;min-height:84px;padding-top:12px;padding-bottom:12px}.sb-icon{font-size:2.6rem;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));animation:sb-bob 3s ease-in-out infinite}.sb-text{flex:1;min-width:0}.sb-text b{display:block;font-size:1.25rem;line-height:1.3;text-shadow:0 1px 8px rgba(0,0,0,.25)}.sb-text span{display:block;font-size:.92rem;opacity:.92;margin-top:2px}.sb-btn{flex:none;background:#fff;color:var(--navy);font-weight:700;padding:9px 16px;border-radius:999px;font-size:.9rem;box-shadow:0 2px 10px #0000002e}.sb-btn:hover{transform:translateY(-1px)}.sb-close{position:absolute;top:6px;right:6px;border:0;background:#ffffff29;color:#fff;width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:1.1rem;line-height:1}.sb-close:hover{background:#ffffff4d}.sb-fx{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.sb-fx span{position:absolute;top:-20px;line-height:1;animation-timing-function:linear;animation-iteration-count:infinite}.sb-fx-petals span,.sb-fx-snow span{animation-name:sb-fall}.sb-fx-snow span{color:#fff;opacity:.85}.sb-fx-confetti span{width:6px;height:10px;border-radius:1px;animation-name:sb-fall}.sb-fx-stars span{color:#fde68a;animation-name:sb-twinkle;animation-timing-function:ease-in-out}.sb-fx-lanterns span{font-size:26px!important;animation-name:sb-swing;animation-timing-function:ease-in-out;transform-origin:top center}@keyframes sb-fall{0%{transform:translateY(0) rotate(0)}to{transform:translateY(140px) rotate(320deg)}}@keyframes sb-twinkle{0%,to{opacity:.15;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}@keyframes sb-swing{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}@keyframes sb-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.sb-fx span,.sb-icon{animation:none!important}}@media(max-width:600px){.sb-row{gap:10px;min-height:64px;padding-right:26px}.sb-icon{font-size:1.8rem}.sb-text b{font-size:1rem}.sb-text span{font-size:.8rem}.sb-btn{padding:7px 12px;font-size:.8rem}.sb-fx span:nth-child(2n){display:none}.sb-fx span{opacity:.55}}.cfg-list{display:grid;gap:10px}.cfg-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px}.cfg-item.off{opacity:.55}.cfg-item.now{outline:2px solid var(--orange)}.cfg-swatch{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:1.2rem}.cfg-item b{color:var(--navy)}.cfg-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 14px}.cfg-form .wide{grid-column:1 / -1}.cfg-colors{display:flex;gap:8px;align-items:center}.cfg-colors input[type=color]{width:44px;height:38px;border:1px solid #cfd7e3;border-radius:8px;padding:2px;background:#fff}.cfg-preview{border-radius:12px;overflow:hidden;margin:6px 0 14px;box-shadow:var(--shadow)}.sys-badge{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--navy);color:#fff}.sys-badge.owner{background:var(--orange)}.role-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:10px 0 16px}.role-guide>div{background:var(--card);border-radius:12px;box-shadow:var(--shadow);padding:12px 14px;font-size:.86rem;color:var(--ink-2);border-top:3px solid var(--line)}.role-guide b{display:block;color:var(--navy);margin-bottom:4px;font-size:.92rem}@keyframes hero-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.hero-kicker em{font-style:normal;margin-left:4px;color:#fff;opacity:.7;letter-spacing:.04em}.gal-drop{border:2px dashed #c5cfdd;border-radius:14px;padding:22px;text-align:center;background:#fafbfd;color:var(--ink-2);cursor:pointer}.gal-drop.over{border-color:var(--orange);background:#fff7f0}.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.gal-card{padding:0;overflow:hidden;display:flex;flex-direction:column}.gal-card.in{outline:3px solid var(--orange)}.gal-thumb{position:relative;aspect-ratio:16 / 10;background:#e9eef5}.gal-thumb img{width:100%;height:100%;object-fit:cover;display:block}.gal-flag{position:absolute;top:8px;left:8px;background:var(--orange);color:#fff;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px}.gal-body{padding:10px 12px 12px;display:grid;gap:6px;font-size:.86rem}.gal-body .input{padding:6px 9px;font-size:.86rem}.gal-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;max-height:60vh;overflow:auto}.gal-pick button{border:2px solid transparent;padding:0;border-radius:8px;overflow:hidden;cursor:pointer;background:none;aspect-ratio:16 / 10}.gal-pick button:hover{border-color:var(--orange)}.gal-pick img{width:100%;height:100%;object-fit:cover;display:block}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0712288c;z-index:100;display:grid;place-items:center;padding:16px}.modal{background:#fff;border-radius:14px;width:min(860px,100%);max-height:90vh;overflow:auto;padding:20px;box-shadow:0 20px 60px #0000004d}.chat-fab{position:fixed;right:18px;bottom:18px;z-index:60;border:0;border-radius:999px;background:var(--orange);color:#fff;font:inherit;font-weight:700;padding:12px 18px;box-shadow:0 8px 24px #f26b1d66;cursor:pointer;display:flex;align-items:center;gap:6px}.chat-fab:hover{background:var(--orange-dark)}.chat-fab.open{padding:12px 15px;background:var(--navy);box-shadow:0 8px 24px #0b2a5b59}.chat-dot{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;border-radius:999px;background:var(--red);color:#fff;font-size:.72rem;display:grid;place-items:center;padding:0 5px}.chat-dot.in{position:static;margin-left:4px;display:inline-grid}.chat-panel{position:fixed;right:18px;bottom:78px;z-index:60;width:min(400px,calc(100vw - 24px));height:min(600px,calc(100vh - 110px));background:#fff;border-radius:16px;box-shadow:0 20px 60px #07122847;display:flex;flex-direction:column;overflow:hidden}.chat-head{background:var(--navy);color:#fff;padding:12px 14px 0}.chat-head>b{display:block;margin-bottom:8px}.chat-tabs{display:flex;gap:4px}.chat-tabs button{border:0;background:#ffffff1a;color:#cfdaf0;font:inherit;font-size:.86rem;font-weight:600;padding:7px 12px;border-radius:8px 8px 0 0;cursor:pointer}.chat-tabs button.on{background:#fff;color:var(--navy)}.chat-body{flex:1;overflow-y:auto;padding:14px;background:#f7f9fc;display:flex;flex-direction:column;gap:10px}.chat-hello p{margin:0 0 10px;font-size:.92rem}.chat-suggest{display:flex;flex-wrap:wrap;gap:6px}.chat-suggest button{border:1px solid #cfd7e3;background:#fff;border-radius:999px;padding:6px 11px;font:inherit;font-size:.82rem;color:var(--navy);cursor:pointer;text-align:left}.chat-suggest button:hover{border-color:var(--orange)}.chat-msg{max-width:88%;padding:9px 12px;border-radius:14px;font-size:.92rem;line-height:1.5;word-wrap:break-word}.chat-msg.user{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:4px;white-space:pre-wrap}.chat-msg.assistant{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}.chat-msg .prose{font-size:.92rem}.chat-msg .prose pre{font-size:.8rem;margin:8px 0;max-width:100%;overflow-x:auto}.chat-msg.typing{display:flex;gap:4px;padding:12px 14px}.chat-msg.typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-3);animation:chat-dot 1s infinite ease-in-out}.chat-msg.typing span:nth-child(2){animation-delay:.15s}.chat-msg.typing span:nth-child(3){animation-delay:.3s}@keyframes chat-dot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.chat-input{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);align-items:flex-end}.chat-input textarea{flex:1;resize:none;border:1px solid #cfd7e3;border-radius:10px;padding:8px 10px;font:inherit;font-size:.9rem}.chat-foot{display:flex;justify-content:space-between;gap:8px;padding:0 12px 8px;font-size:.72rem;color:var(--ink-3)}.chat-foot>span:first-child{flex:1}.chat-foot .linklike{font-size:.72rem}.chat-ask{display:grid;gap:8px}.chat-ask .input{padding:8px 10px;font-size:.9rem}.chat-mine{display:grid;gap:8px;margin-top:6px}.chat-ticket{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:.88rem}.chat-answer{margin-top:6px;padding:7px 9px;background:var(--green-soft);border-radius:8px;white-space:pre-wrap}@media(max-width:600px){.chat-fab span{display:none}.chat-fab{padding:13px 15px;right:12px;bottom:12px}.chat-panel{right:8px;left:8px;width:auto;bottom:70px;height:calc(100vh - 90px)}}@media print{.chat-fab,.chat-panel{display:none!important}}.cost-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.cost-cards .card-pad{display:grid;gap:6px;align-content:start}.cost-big{font-size:1.7rem;color:var(--navy);line-height:1.2}.cost-total{border-top:4px solid var(--orange)}.progress-fill.over{background:var(--red)}.ctrl-list{display:grid;gap:10px}.ctrl-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.ctrl-item input{width:18px;height:18px;accent-color:var(--red)}.ctrl-item b{display:block;color:var(--navy)}.ctrl-item small{color:var(--ink-3)}.ctrl-item em{font-style:normal;font-size:.78rem;font-weight:700;color:var(--green);white-space:nowrap}.ctrl-item.on{border-color:var(--red);background:snow}.ctrl-item.on em{color:var(--red)}.badge-doan{background:#e6f4ea;color:#1e7a3c}.badge-truong{background:#fdf0e7;color:#c4520f}.post-cover.doan{background:linear-gradient(135deg,#e6f4ea,#f3faf5);color:#1e7a3c}.post-cover.truong{background:linear-gradient(135deg,#fdf0e7,#fef8f3);color:#c4520f}.prose video,.ProseMirror video,video.video-file{display:block;width:100%;max-height:70vh;border-radius:var(--radius);background:#000;margin:14px 0 18px}.ProseMirror .video-frame iframe{pointer-events:none}.ProseMirror video.ProseMirror-selectednode,.ProseMirror .video-frame.ProseMirror-selectednode{outline:3px solid var(--blue)}.prose .table-wrap,.ProseMirror .tableWrapper{overflow-x:auto;margin:14px 0 18px}.prose table,.ProseMirror table{border-collapse:collapse;width:100%;font-size:.95em}.prose th,.prose td,.ProseMirror th,.ProseMirror td{border:1px solid #c9d2e0;padding:6px 10px;vertical-align:top;text-align:left;min-width:60px}.prose th,.ProseMirror th{background:#eef3fa;font-weight:700;color:var(--navy, #0b2a5b)}.prose td p,.prose th p,.ProseMirror td p,.ProseMirror th p{margin:0}.ProseMirror .selectedCell{background:var(--blue-soft)}.editor-table-tools{display:inline-flex;flex-wrap:wrap;gap:2px;padding-left:4px;margin-left:2px;border-left:2px solid var(--blue-soft)}.editor-table-tools button{font-size:.8rem!important}.tabs-label{align-self:center;min-width:92px;font-size:.85rem;font-weight:700;color:var(--ink-3)}.source-mark{display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.85}.source-mark img{width:56px;height:56px;object-fit:contain;border-radius:50%;background:#fff;padding:4px;box-shadow:0 1px 4px #0b2a5b1f}.source-mark b{font-size:.82rem;font-weight:700;letter-spacing:.02em}.hint-warn{font-size:.82rem;color:#8a5a00;background:#fff6e0;border-radius:6px;padding:6px 10px;margin-top:6px}.footer-parent{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#8fa3c4;margin-bottom:4px}.footer-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:24px;font-size:.85rem}.footer-note{margin:12px 0 0;font-size:.8rem;line-height:1.6;color:#8fa3c4}.fh{display:grid;grid-template-columns:56fr 44fr;height:420px;background:var(--navy);box-shadow:0 10px 30px #0b2a5b29;overflow:hidden}.fh-media{position:relative;overflow:hidden;background:#071a3a}.fh-slide{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .7s ease,visibility .7s}.fh-slide.on{opacity:1;visibility:visible}.fh-blur{position:absolute;top:-24px;right:-24px;bottom:-24px;left:-24px;background-size:cover;background-position:center;filter:blur(18px) brightness(.7)}.fh-slide>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center}.fh-ph{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;aspect-ratio:auto!important}.fh-ph .source-mark img{width:120px;height:120px}.fh-ph .source-mark b{font-size:1rem}.fh-ph-site{background:radial-gradient(circle at 70% 20%,#2b5aa6 0%,transparent 55%),linear-gradient(135deg,#0b2a5b,#143f80)}.fh-body{position:relative;border-left:5px solid var(--orange);padding:32px 36px 64px;display:flex;flex-direction:column;justify-content:center;color:#fff;min-width:0}.fh-text{animation:hero-in .6s ease}.fh-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.8rem;color:#aebbd6;margin-bottom:10px}.fh-title{font-size:clamp(1.2rem,2vw,1.65rem);line-height:1.3;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.fh-title a{color:#fff}.fh-title a:hover{color:var(--orange);text-decoration:none}.fh-desc{color:#cfdaf0;margin:0 0 20px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.fh-nav{position:absolute;left:36px;bottom:20px;display:flex;align-items:center;gap:6px}.fh-nav>button{border:0;background:#ffffff24;color:#fff;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:1rem;line-height:1}.fh-nav>button:hover{background:var(--orange)}.fh-nav .fh-dot{position:relative;width:22px;height:4px;border-radius:2px;padding:0;overflow:hidden;background:#ffffff4d}.fh-nav .fh-dot.on{width:44px}.fh-dot i{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--orange);transform-origin:left;animation:fh-progress linear forwards}.fh.paused .fh-dot i{animation-play-state:paused}@keyframes fh-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media(max-width:860px){.fh{grid-template-columns:1fr;height:auto}.fh-media{aspect-ratio:16 / 9}.fh-body{border-left:0;border-top:5px solid var(--orange);padding:22px 20px 60px;height:360px;justify-content:flex-start}.fh-nav{left:20px}}@media(prefers-reduced-motion:reduce){.fh-slide,.fh-text{transition:none;animation:none}.fh-dot i{animation:none;transform:none}}.photo-strip{overflow:hidden}.photo-track{display:flex;gap:12px;width:max-content}.photo-strip .photo-thumb{width:220px;flex:none}.photo-strip.run{-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}.photo-strip.run .photo-track{animation:photo-run linear infinite;padding-right:12px}.photo-strip.run:hover .photo-track,.photo-strip.run:focus-within .photo-track{animation-play-state:paused}@keyframes photo-run{0%{transform:translate(0)}to{transform:translate(calc(-100% / var(--reps, 2)))}}@media(max-width:600px){.photo-strip .photo-thumb{width:160px}}@media(prefers-reduced-motion:reduce){.photo-strip{overflow-x:auto}.photo-strip.run .photo-track{animation:none}}.photo-thumb{position:relative;padding:0;border:0;border-radius:10px;overflow:hidden;aspect-ratio:4 / 3;cursor:zoom-in;background:var(--line)}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.photo-thumb:hover img{transform:scale(1.05)}.photo-thumb span{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 8px;font-size:.78rem;font-weight:600;color:#fff;text-align:left;background:linear-gradient(to top,rgba(4,16,38,.8),transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#040c1ceb;display:flex;align-items:center;justify-content:center;padding:48px 56px}.lightbox figure{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:10px}.lightbox img{max-width:100%;max-height:calc(100vh - 140px);object-fit:contain;border-radius:6px}.lightbox figcaption{color:#dbe6ff;font-size:.9rem;text-align:center}.lightbox figcaption a{color:var(--orange)}.lb-close{position:absolute;top:14px;right:16px;border:0;background:#ffffff24;color:#fff;width:38px;height:38px;border-radius:50%;font-size:1.1rem;cursor:pointer}.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);border:0;background:#ffffff24;color:#fff;width:42px;height:56px;font-size:1.8rem;cursor:pointer;border-radius:6px}.lb-arrow:hover,.lb-close:hover{background:var(--orange)}.lb-arrow.prev{left:8px}.lb-arrow.next{right:8px}.post-cover{position:relative}.post-cover>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.admin-shortcut{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;font-weight:600;color:var(--ink-2);background:#fff;border:1px dashed #b9c6da;border-radius:6px;padding:4px 10px;margin-top:8px}.admin-shortcut:hover{border-color:var(--orange);color:var(--orange);text-decoration:none}.section-head .admin-shortcut{margin-top:0}.class-chips{display:flex;flex-wrap:wrap;gap:6px}.class-chip{display:inline-flex;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 4px 3px 10px;font-weight:600;font-size:.88rem}.class-chip em{font-style:normal;font-size:.72rem;color:#fff;background:var(--navy);border-radius:999px;padding:0 6px}.class-chip button{border:0;background:none;color:var(--ink-3);cursor:pointer;width:22px;height:22px;border-radius:50%}.class-chip button:hover{background:var(--red-soft);color:var(--red)}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
