:root{--red-400: #E0353B;--red-500: #C4161C;--red-600: #A6111A;--red-700: #7E0C10;--red-800: #5C080B;--gold-200: #FFE9A8;--gold-300: #FFD976;--gold-400: #F5B829;--gold-500: #E0A013;--gold-600: #B8810D;--sky-100: #EAF4FD;--sky-200: #CFE6FA;--sky-300: #9CCBF3;--sky-400: #4FB0E8;--sky-500: #2E8BDE;--navy-700: #103E78;--navy-800: #0A2C56;--navy-900: #06203F;--ink: #1A1410;--ink-soft: #3A3128;--muted: #6B6256;--line: #ECE3D6;--line-strong: #DCCFBC;--bg: #F7F2EA;--bg-tint: #FBF7F0;--card: #FFFFFF;--ok: #1E8E5A;--ok-bg: #E7F6EE;--err: #C4161C;--err-bg: #FCEBEB;--radius-xl: 22px;--radius: 16px;--radius-sm: 11px;--shadow-xs: 0 1px 2px rgba(92, 8, 11, .06);--shadow-sm: 0 2px 8px rgba(92, 8, 11, .07);--shadow-md: 0 10px 28px rgba(92, 8, 11, .12);--shadow-lg: 0 22px 48px rgba(60, 5, 8, .22);--shadow-gold: 0 8px 22px rgba(224, 160, 19, .36);--font: "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Bebas Neue", var(--font)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(120% 80% at 50% -10%,#3a0608,#1a0203 55%,#120203) fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.logo-img{height:auto}.app-shell{max-width:480px;margin:0 auto;min-height:100vh;background:radial-gradient(140% 50% at 100% 0%,rgba(245,184,41,.06),transparent 60%),radial-gradient(120% 60% at 0% 100%,rgba(46,139,222,.05),transparent 55%),var(--bg);position:relative;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden}.app-main{flex:1;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:30;background:linear-gradient(120deg,var(--red-700) 0%,var(--red-600) 55%,var(--red-500) 100%);color:#fff;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 13px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-md);border-bottom:2px solid var(--gold-400)}.appbar:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:linear-gradient(90deg,transparent,var(--gold-300),transparent);opacity:.6}.appbar .back{width:40px;height:40px;border-radius:12px;flex:none;background:#ffffff26;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;transition:background .15s,transform .1s}.appbar .back:active{background:#ffffff4d;transform:scale(.94)}.appbar .emblem-sm{height:40px;display:flex;align-items:center;flex:none}.appbar .emblem-sm .logo-img{height:38px;width:auto;filter:drop-shadow(0 1px 3px rgba(0,0,0,.35))}.appbar .bar-title{line-height:1.18;min-width:0;flex:1}.appbar .bar-title strong{font-size:15px;font-weight:700;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar .bar-title span{font-size:10.5px;opacity:.85;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.hero{position:relative;background:radial-gradient(90% 70% at 50% 8%,rgba(245,184,41,.28),transparent 60%),linear-gradient(165deg,var(--red-500) 0%,var(--red-700) 58%,var(--red-800) 100%);color:#fff;padding:30px 22px 34px;overflow:hidden;text-align:center;border-bottom:3px solid var(--gold-400)}.hero .sky-decor{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.9}.hero-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}.hero .hero-logo{position:relative;margin-bottom:16px}.hero .hero-logo .logo-img{width:184px;filter:drop-shadow(0 10px 22px rgba(0,0,0,.4))}.hero .hero-logo:before{content:"";position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:230px;height:150px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,217,118,.45),transparent 70%);filter:blur(8px);z-index:-1}.hero .hero-unit{display:flex;flex-direction:column;align-items:center;gap:2px}.hero .hero-unit strong{font-size:14px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--gold-300);text-shadow:0 1px 8px rgba(40,3,5,.5)}.hero .hero-unit span{font-size:11.5px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:#ffffffe0}.hero h1{margin-top:14px;font-size:27px;line-height:1.2;font-weight:800;letter-spacing:-.4px;text-shadow:0 2px 14px rgba(40,3,5,.5)}.hero h1 .accent{color:var(--gold-300)}.hero p{margin-top:11px;font-size:13.5px;line-height:1.6;opacity:.92;max-width:30ch}.hero .qr-pill{margin-top:20px;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--gold-300),var(--gold-500));color:var(--red-800);padding:9px 16px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.2px;box-shadow:var(--shadow-gold)}.section-lbl{display:flex;align-items:center;gap:10px;padding:24px 22px 12px;font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--red-700)}.section-lbl:before{content:"";width:16px;height:3px;border-radius:2px;flex:none;background:linear-gradient(90deg,var(--gold-400),var(--gold-600))}.section-lbl:after{content:"";flex:1;height:1px;background:var(--line-strong)}.law-list{padding:0 16px;display:flex;flex-direction:column;gap:13px}.law-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 16px 16px 18px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .2s ease,border-color .2s;text-align:left;width:100%;overflow:hidden}.law-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--gold-300),var(--gold-500));opacity:0;transition:opacity .2s}.law-card:active{transform:scale(.985);box-shadow:var(--shadow-md);border-color:var(--gold-400)}.law-card:active:before{opacity:1}.law-card .ic{width:54px;height:54px;flex:none;border-radius:15px;background:linear-gradient(145deg,var(--gold-200),var(--gold-400));display:flex;align-items:center;justify-content:center;color:var(--red-700);box-shadow:inset 0 1px #ffffffb3,var(--shadow-xs)}.law-card .body{flex:1;min-width:0}.law-card h3{font-size:15.5px;font-weight:700;line-height:1.32;color:var(--ink)}.law-card .desc{font-size:12.5px;color:var(--muted);margin-top:5px;line-height:1.5}.law-card .meta{margin-top:11px;display:flex;gap:8px;flex-wrap:wrap}.chip{font-size:11px;font-weight:700;padding:5px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;background:var(--sky-100);color:var(--navy-700)}.chip.gold{background:#fcf1d6;color:var(--gold-600)}.chip.red{background:var(--err-bg);color:var(--red-600)}.law-card .arrow{align-self:center;flex:none;color:var(--gold-600);font-size:20px;width:30px;height:30px;border-radius:50%;background:#fcf1d6;display:flex;align-items:center;justify-content:center}.detail-head{padding:24px 22px 6px}.detail-head .eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--red-600);background:var(--err-bg);padding:5px 11px;border-radius:999px}.detail-head h2{margin-top:11px;font-size:22px;font-weight:800;line-height:1.27;color:var(--ink);letter-spacing:-.3px}.detail-head .sub{margin-top:9px;font-size:13.5px;color:var(--muted);line-height:1.6}.tabs{display:flex;gap:9px;padding:16px 16px 4px;position:sticky;top:64px;background:var(--bg);z-index:10}.tab{flex:1;padding:13px 8px;border-radius:13px;border:1.5px solid var(--line-strong);background:var(--card);font-size:13.5px;font-weight:700;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:7px;transition:all .15s}.tab.active{background:linear-gradient(135deg,var(--red-600),var(--red-700));color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}.pane{padding:16px}.pdf-reader{display:flex;flex-direction:column;gap:10px}.pdf-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;font-weight:700;color:var(--muted)}.pdf-bar-info{color:var(--red-700)}.pdf-open{display:inline-flex;align-items:center;gap:4px;background:#fcf1d6;color:var(--gold-600);padding:6px 11px;border-radius:999px;font-size:12px;font-weight:700}.pdf-open:active{filter:brightness(.96)}.pdf-pages{display:flex;flex-direction:column;gap:10px;background:var(--line-strong);border-radius:14px;padding:8px}.pdf-page{width:100%;height:auto;display:block;background:#fff;border-radius:6px;box-shadow:var(--shadow-sm)}.pdf-loading{display:flex;align-items:center;justify-content:center;gap:9px;padding:40px 16px;color:var(--muted);font-size:13.5px;font-weight:600}.pdf-spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--line-strong);border-top-color:var(--red-500);animation:pdf-spin .7s linear infinite}@keyframes pdf-spin{to{transform:rotate(360deg)}}.pdf-empty{width:100%;min-height:54vh;border:1.5px dashed var(--gold-400);border-radius:16px;background:var(--bg-tint);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:32px;color:var(--muted)}.pdf-empty .pic{width:66px;height:66px;border-radius:19px;background:#fcf1d6;display:flex;align-items:center;justify-content:center;font-size:31px}.pdf-empty b{color:var(--ink);font-size:15px}.pdf-empty span{font-size:12.5px;line-height:1.6;max-width:280px}.pdf-empty code{background:#fcf1d6;padding:1px 6px;border-radius:5px;font-size:12px;color:var(--gold-600)}.btn{position:relative;width:100%;border-radius:14px;padding:16px;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:9px;transition:transform .08s,filter .15s;overflow:hidden}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--red-500),var(--red-700));color:#fff;box-shadow:var(--shadow-md)}.btn-primary:active{filter:brightness(1.08)}.btn-gold{background:linear-gradient(135deg,var(--gold-300),var(--gold-500));color:var(--red-800);box-shadow:var(--shadow-gold)}.btn-ghost{background:var(--card);color:var(--red-700);border:1.5px solid var(--line-strong)}.btn:disabled{opacity:.42;pointer-events:none}.btn-row{margin-top:14px}.quiz-intro{text-align:center;padding:34px 24px 8px}.quiz-intro .glyph{width:78px;height:78px;margin:0 auto 16px;border-radius:24px;background:linear-gradient(145deg,var(--red-500),var(--red-700));color:var(--gold-300);display:flex;align-items:center;justify-content:center;font-size:37px;box-shadow:var(--shadow-md);border:2px solid var(--gold-400)}.quiz-intro h3{font-size:20px;font-weight:800;color:var(--ink)}.quiz-intro p{font-size:13.5px;color:var(--muted);margin-top:10px;line-height:1.65}.quiz-intro .facts{margin:20px auto 0;display:flex;gap:11px;justify-content:center}.quiz-intro .fact{background:var(--card);border:1px solid var(--line-strong);border-radius:14px;padding:13px 18px;box-shadow:var(--shadow-xs)}.quiz-intro .fact b{display:block;font-size:22px;font-weight:800;color:var(--red-600)}.quiz-intro .fact span{font-size:11px;color:var(--muted);font-weight:600}.quiz-top{padding:18px 18px 0}.progress{height:9px;background:var(--line-strong);border-radius:999px;overflow:hidden}.progress>i{display:block;height:100%;background:linear-gradient(90deg,var(--gold-400),var(--red-500));border-radius:999px;transition:width .35s ease}.qcount{font-size:12.5px;color:var(--muted);margin-top:10px;font-weight:700;display:flex;justify-content:space-between}.qcount .score-now{color:var(--ok)}.question{padding:8px 18px 18px}.qtext{font-size:17px;font-weight:700;line-height:1.44;color:var(--ink);margin:14px 0 18px}.opt{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;background:var(--card);border:1.5px solid var(--line-strong);border-radius:14px;padding:15px;margin-bottom:11px;font-size:14.5px;line-height:1.44;color:var(--ink-soft);transition:all .12s;box-shadow:var(--shadow-xs)}.opt:active:not(:disabled){transform:scale(.99)}.opt .key{width:28px;height:28px;flex:none;border-radius:9px;background:#fcf1d6;color:var(--gold-600);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}.opt.sel{border-color:var(--red-500);background:var(--err-bg)}.opt.sel .key{background:var(--red-600);color:#fff}.opt.correct{border-color:var(--ok);background:var(--ok-bg)}.opt.correct .key{background:var(--ok);color:#fff}.opt.wrong{border-color:var(--err);background:var(--err-bg)}.opt.wrong .key{background:var(--err);color:#fff}.explain{background:var(--bg-tint);border:1px solid var(--line-strong);border-left:4px solid var(--gold-400);border-radius:12px;padding:13px 15px;font-size:13px;line-height:1.65;color:var(--ink-soft);margin-top:8px;animation:fade .25s ease}.explain b{color:var(--red-700)}.quiz-foot{padding:12px 18px calc(env(safe-area-inset-bottom,0px) + 22px);position:sticky;bottom:0;background:linear-gradient(to top,var(--bg) 72%,transparent)}.result{padding:32px 22px 10px;text-align:center}.ring-wrap{width:160px;height:160px;margin:4px auto 18px;position:relative}.ring-wrap svg{transform:rotate(-90deg)}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-center .pct{font-size:42px;font-weight:800;line-height:1;color:var(--ink)}.ring-center .frac{font-size:12.5px;color:var(--muted);margin-top:4px;font-weight:700}.result h2{font-size:23px;font-weight:800;color:var(--ink)}.result .verdict{display:inline-flex;align-items:center;gap:7px;margin-top:8px;padding:7px 15px;border-radius:999px;font-size:12.5px;font-weight:800}.verdict.pass{background:var(--ok-bg);color:var(--ok)}.verdict.fail{background:var(--err-bg);color:var(--err)}.result .msg{font-size:13.5px;color:var(--muted);margin-top:13px;line-height:1.65}.review{padding:6px 16px 0;text-align:left}.rev-item{background:var(--card);border:1px solid var(--line-strong);border-radius:14px;padding:15px;margin-bottom:11px;box-shadow:var(--shadow-xs)}.rev-item .rq{font-size:13.5px;font-weight:700;line-height:1.44;color:var(--ink)}.rev-item .ra{font-size:12.5px;margin-top:8px;display:flex;gap:8px;align-items:flex-start;line-height:1.5}.rev-item .ra .tag{font-weight:800;flex:none}.rev-item .ra.you{color:var(--err)}.rev-item .ra.right{color:var(--ok)}.rev-allright{text-align:center;padding:24px;background:var(--ok-bg);border-radius:16px;color:var(--ok);font-weight:800}.result-actions{padding:8px 16px calc(env(safe-area-inset-bottom,0px) + 26px);display:flex;flex-direction:column;gap:11px}.app-footer{margin-top:8px;padding:26px 20px calc(env(safe-area-inset-bottom,0px) + 28px);text-align:center;border-top:1px solid var(--line-strong);background:radial-gradient(100% 80% at 50% 0%,rgba(245,184,41,.08),transparent 65%),var(--bg-tint)}.app-footer .foot-logo{width:96px;margin:0 auto 14px;opacity:.96}.app-footer .org{font-size:12.5px;font-weight:800;color:var(--red-700);line-height:1.65;letter-spacing:.3px}.app-footer .divider{width:46px;height:2px;margin:14px auto;border-radius:2px;background:linear-gradient(90deg,transparent,var(--gold-400),transparent)}.app-footer .credit{font-size:11.5px;color:var(--muted);line-height:1.7}.app-footer .credit b{color:var(--ink)}.app-footer .ver{font-size:10.5px;color:var(--muted);margin-top:12px;opacity:.8}.admin-wrap{padding:16px 16px calc(env(safe-area-inset-bottom,0px) + 28px)}.admin-guide{background:var(--bg-tint);border:1px solid var(--line-strong);border-left:4px solid var(--gold-400);border-radius:12px;padding:13px 15px;font-size:12.5px;line-height:1.65;color:var(--ink-soft)}.admin-guide b{color:var(--red-700)}.admin-guide code{background:#fcf1d6;padding:1px 6px;border-radius:5px;font-size:11.5px;color:var(--gold-600)}.form-group{margin-bottom:14px}.form-row{display:flex;gap:11px}.form-row .form-group{flex:1}.form-label{display:block;font-size:12px;font-weight:700;color:var(--red-700);margin-bottom:6px}.form-input,.form-textarea{width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:var(--card);border:1.5px solid var(--line-strong);border-radius:11px;padding:11px 13px;transition:border-color .15s,box-shadow .15s}.form-textarea{resize:vertical;line-height:1.5}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--red-500);box-shadow:0 0 0 3px #c4161c1f}.form-input.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.field-hint{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.5}.field-hint code{background:#fcf1d6;padding:1px 5px;border-radius:4px;color:var(--gold-600)}.icon-pick{display:flex;flex-wrap:wrap;gap:8px}.icon-opt{width:42px;height:42px;border-radius:11px;font-size:21px;background:var(--card);border:1.5px solid var(--line-strong);transition:all .12s}.icon-opt.on{border-color:var(--gold-500);background:#fcf1d6;transform:scale(1.05)}.q-editor{background:var(--card);border:1px solid var(--line-strong);border-radius:16px;padding:14px;margin-bottom:13px;box-shadow:var(--shadow-xs)}.q-editor .form-textarea{margin-bottom:10px}.q-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.q-no{font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--red-700)}.q-tools{display:flex;gap:6px}.q-tool{width:30px;height:30px;border-radius:8px;font-size:14px;font-weight:700;background:var(--bg-tint);border:1px solid var(--line-strong);color:var(--ink-soft);transition:all .12s}.q-tool:disabled{opacity:.35}.q-tool.danger{color:var(--err)}.q-tool.danger:active{background:var(--err-bg)}.opt-hint{font-size:11.5px;color:var(--muted);margin-bottom:8px}.opt-edit{display:flex;align-items:center;gap:9px;margin-bottom:8px}.opt-edit input[type=radio]{width:18px;height:18px;flex:none;accent-color:var(--ok);cursor:pointer}.opt-edit .opt-key{width:26px;height:26px;flex:none;border-radius:8px;background:#fcf1d6;color:var(--gold-600);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px}.opt-edit.is-correct .opt-key{background:var(--ok);color:#fff}.opt-edit.is-correct .form-input{border-color:var(--ok)}.err-list{background:var(--err-bg);border:1px solid #F3C2C2;border-radius:12px;padding:12px 15px;font-size:12.5px;color:var(--red-700);margin:14px 0}.err-list ul{margin:6px 0 0;padding-left:18px;line-height:1.7}.admin-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}.json-box{margin-top:18px;border:1px solid var(--line-strong);border-radius:12px;background:var(--card);overflow:hidden}.json-box summary{padding:13px 15px;font-size:13px;font-weight:700;color:var(--red-700);cursor:pointer}.json-box pre{margin:0;padding:14px;background:#1a1410;color:#e8dfd0;font-size:11.5px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:auto;max-height:340px}.ui-icon{display:inline-block;flex:none;vertical-align:-.18em}.law-icon{display:block}.ic-spin,.ic-pulse,.ic-twinkle,.ic-wiggle,.ic-ring{transform-box:fill-box;transform-origin:center}.ic-spin{animation:ic-spin 7s linear infinite}.ic-pulse{animation:ic-pulse 2.6s ease-in-out infinite}.ic-blink{animation:ic-blink 1.9s ease-in-out infinite}.ic-twinkle{animation:ic-twinkle 3s ease-in-out infinite}.ic-shine{animation:ic-blink 2.8s ease-in-out infinite}.ic-wiggle{animation:ic-wiggle 3.2s ease-in-out infinite}.ic-ring{animation:ic-ring 2.8s ease-in-out infinite}@keyframes ic-spin{to{transform:rotate(360deg)}}@keyframes ic-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes ic-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes ic-twinkle{0%,to{transform:rotate(0) scale(1);opacity:1}50%{transform:rotate(8deg) scale(1.08);opacity:.82}}@keyframes ic-wiggle{0%,to{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}@keyframes ic-ring{0%{transform:scale(.8);opacity:.6}70%,to{transform:scale(1.15);opacity:0}}.fade{animation:fade .26s ease}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rise{animation:rise .42s cubic-bezier(.2,.7,.3,1) both}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}button:focus-visible,.opt:focus-visible,.tab:focus-visible,.law-card:focus-visible{outline:3px solid var(--gold-400);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
