:root{--brand-cream:#fdf0d4;--brand-red:#d81a21;--brand-ink:#221f1f;--brand-blue:#223588;--brand-gold:#f6cd14;--brand-sand:#f7eadb;--color-header-bg:var(--brand-cream);--color-page-bg:#fffaf0;--color-surface:#fff;--color-surface-alt:var(--brand-sand);--color-border:#e6d7bc;--color-text:var(--brand-ink);--color-text-2:#3e3833;--color-text-muted:#5c534a;--color-primary:var(--brand-blue);--color-primary-strong:#1a2869;--color-primary-soft:#e8ebf6;--color-on-primary:#fff;--color-accent:var(--brand-gold);--color-brand-text:var(--brand-red);--color-nav-bg:var(--brand-sand);--color-nav-text:#4a423a;--color-focus:#f6cd14;--color-verbatim:#1d6b45;--color-verbatim-soft:#e6f3ec;--color-system:#7a5300;--color-system-soft:#fff3d6;--color-warn:#8f1d20;--color-warn-soft:#fbeaea;--color-info-soft:#eef1fa;--navy:var(--color-primary);--navy-2:var(--color-primary-strong);--navy-soft:var(--color-primary-soft);--ink:var(--color-text);--ink-2:var(--color-text-2);--muted:var(--color-text-muted);--line:var(--color-border);--bg:var(--color-page-bg);--card:var(--color-surface);--gold:var(--color-system);--gold-soft:var(--color-system-soft);--green:var(--color-verbatim);--green-soft:var(--color-verbatim-soft);--red:var(--color-warn);--red-soft:var(--color-warn-soft);--blue-soft:var(--color-info-soft);--radius:14px;--shadow:0 1px 2px #221f1f0f, 0 2px 8px #221f1f0a;--nav-h:66px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font);color:var(--ink);background:var(--bg);margin:0;font-size:1rem;line-height:1.55;overflow-x:hidden}a{color:var(--navy)}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%}:focus-visible{outline:3px solid var(--color-focus);box-shadow:0 0 0 5px var(--color-primary);outline-offset:2px;border-radius:6px}.app{min-height:100vh;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 12px)}.wrap{max-width:680px;margin:0 auto;padding:0 16px}.topbar{background:var(--color-header-bg);color:var(--color-text);border-bottom:3px solid var(--color-accent);padding:10px 0 12px;position:relative;overflow:hidden}.topbar:after{content:"";opacity:.07;pointer-events:none;background:url(/hoa-tiet-trong-dong.svg) 50%/contain no-repeat;width:230px;height:230px;position:absolute;top:-70px;right:-60px}.topbar .wrap{z-index:1;align-items:center;gap:10px;display:flex;position:relative}.topbar .brand{align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.brand .logo{object-fit:contain;flex:none;width:44px;height:44px}.brand .names{flex-direction:column;min-width:0;line-height:1.2;display:flex}.brand .b1{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text);font-size:.78rem;font-weight:800}.brand .b2{color:var(--color-brand-text);text-transform:uppercase;letter-spacing:.01em;font-size:1.04rem;font-weight:800}.brand .b3{color:var(--color-text-2);font-size:.82rem;font-weight:600}.topbar .back{color:var(--color-primary);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:12px;flex:none;place-items:center;min-width:44px;height:44px;text-decoration:none;display:grid}.topbar h1{overflow-wrap:anywhere;color:var(--color-text);margin:0;font-size:1.1rem;font-weight:800}.bottomnav{z-index:50;background:var(--color-nav-bg);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #221f1f0f}.bottomnav ul{grid-template-columns:repeat(5,1fr);max-width:680px;margin:0 auto;padding:0;list-style:none;display:grid}.bottomnav a{min-height:var(--nav-h);color:var(--color-nav-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font-size:.72rem;font-weight:650;line-height:1.15;text-decoration:none;display:flex;position:relative}.bottomnav a svg{width:24px;height:24px}.bottomnav a.active{color:var(--color-primary);font-weight:800}.bottomnav a.active:before{content:"";background:var(--color-accent);height:4px;box-shadow:0 1px 0 var(--color-primary);border-radius:0 0 4px 4px;position:absolute;top:0;left:22%;right:22%}.bottomnav a.active .nav-ic{background:var(--color-primary);color:var(--color-on-primary)}.nav-ic{border-radius:14px;place-items:center;width:40px;height:28px;display:grid}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--color-border);margin:12px 0;padding:16px}.card.flat{box-shadow:none;border:1px solid var(--line)}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:22px 0 8px;font-size:.82rem;font-weight:700}.btn{border:1px solid var(--color-primary);background:var(--color-primary);min-height:44px;color:var(--color-on-primary);cursor:pointer;text-align:center;box-shadow:inset 0 -3px 0 var(--color-accent);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-primary-strong)}.btn.secondary{background:var(--color-surface);color:var(--color-primary);box-shadow:none;border-color:var(--color-primary)}.btn.secondary:hover{background:var(--color-primary-soft)}.btn.ghost{color:var(--color-primary);box-shadow:none;text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.btn.ghost:hover{background:var(--color-primary-soft)}.btn.danger{background:var(--red);border-color:var(--red)}.btn.block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.sm{border-radius:10px;min-height:36px;padding:6px 12px;font-size:.9rem}.row{flex-wrap:wrap;gap:8px;display:flex}.row>.btn{flex:140px}.input,select.input,textarea.input{border:1.5px solid var(--line);background:#fff;border-radius:12px;width:100%;min-height:48px;padding:10px 14px;font-size:1rem}textarea.input{resize:vertical;min-height:96px}.input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #123a6326}label.lbl{margin:12px 0 6px;font-size:.95rem;font-weight:650;display:block}.hint{color:var(--muted);font-size:.88rem}.hero{background:var(--color-header-bg);color:var(--color-text);padding:4px 0 22px;position:relative}.hero p{color:var(--color-text-2);margin:0 0 12px;font-size:.98rem}.searchbox{background:var(--color-surface);border:2px solid var(--color-primary);box-shadow:0 3px 0 var(--color-accent);border-radius:16px;gap:8px;padding:6px;display:flex}.searchbox input{min-width:0;min-height:48px;color:var(--ink);background:0 0;border:0;flex:1;padding:0 10px;font-size:1.08rem}.searchbox input::placeholder{color:var(--color-text-muted)}.searchbox input:focus{outline:none}.searchbox button{flex:none;min-width:52px}.updated{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-2);border-radius:999px;align-items:center;gap:6px;margin-top:12px;padding:4px 10px;font-size:.84rem;display:inline-flex}.quick{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.quick a{background:var(--color-surface-alt);border-radius:var(--radius);border:1px solid var(--color-border);min-height:64px;color:var(--ink);align-items:center;gap:10px;padding:12px;font-weight:700;line-height:1.25;text-decoration:none;display:flex}.quick a:hover{border-color:var(--color-primary)}.quick .ic{background:var(--color-primary);width:40px;height:40px;color:var(--color-on-primary);border-bottom:3px solid var(--color-accent);border-radius:10px;flex:none;place-items:center;display:grid}.list{margin:0;padding:0;list-style:none}.list>li>a,.list>li>button{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;min-height:56px;color:var(--ink);cursor:pointer;background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.list>li:first-child>a,.list>li:first-child>button{border-radius:var(--radius) var(--radius) 0 0}.list>li:last-child>a,.list>li:last-child>button{border-radius:0 0 var(--radius) var(--radius);border-bottom:0}.list>li:only-child>a,.list>li:only-child>button{border-radius:var(--radius)}.list-box{border-radius:var(--radius);box-shadow:var(--shadow);background:var(--color-surface);border:1px solid var(--color-border)}.list .t{font-weight:650}.list .s{color:var(--muted);font-size:.88rem}.chev{color:var(--muted);flex:none}.tag{letter-spacing:.01em;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.74rem;font-weight:700;display:inline-flex}.tag.verbatim{background:var(--green-soft);color:var(--green)}.tag.plain{background:var(--blue-soft);color:var(--navy)}.tag.system{background:var(--gold-soft);color:var(--gold)}.tag.skill{color:#5b3a9b;background:#f1ecfb}.tag.warn{background:var(--red-soft);color:var(--red)}.tag.neutral{color:var(--ink-2);background:#eef1f4}.quote{border-left:4px solid var(--green);color:var(--color-text);white-space:pre-line;overflow-wrap:anywhere;background:#f9fcfa;border-radius:0 10px 10px 0;margin:8px 0;padding:10px 12px;font-family:Times New Roman,Times,serif;font-size:1.05rem;line-height:1.5}.amend{border-left-color:var(--gold);background:#fffaf0}.tabs{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;margin:14px 0 6px;padding:4px;display:grid}.tabs button{min-height:44px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:9px;font-weight:650}.tabs button[aria-selected=true]{background:var(--color-primary);color:var(--color-on-primary);box-shadow:inset 0 -3px 0 var(--color-accent)}.choices{gap:8px;display:grid}.choice{border:1.5px solid var(--line);cursor:pointer;text-align:left;min-height:52px;color:var(--ink);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:10px 14px;font-weight:600;display:flex}.choice:hover{border-color:var(--navy)}.choice:focus-visible{border-color:var(--navy)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--navy-soft);color:var(--navy);border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:600}.result-head{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--color-border);border-top:4px solid var(--color-primary);margin-top:12px;padding:16px}.result-head h2{margin:6px 0;font-size:1.2rem;line-height:1.35}.step{align-items:flex-start;gap:10px;display:flex}.step-n{background:var(--color-primary);width:26px;height:26px;box-shadow:0 0 0 2px var(--color-accent);color:#fff;border-radius:50%;flex:none;place-items:center;margin-top:2px;font-size:.82rem;font-weight:700;display:grid}.step h3{margin:0 0 6px;font-size:1rem}.fine{color:var(--navy-2);font-size:1.25rem;font-weight:800;line-height:1.3}.kv{grid-template-columns:minmax(0,40%) minmax(0,1fr);gap:6px 10px;font-size:.95rem;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;margin:0;font-weight:600}.note{background:var(--gold-soft);color:#5f4410;border-radius:10px;padding:10px 12px;font-size:.92rem}.notice{background:var(--blue-soft);border-radius:10px;padding:10px 12px;font-size:.92rem}.danger-box{background:var(--red-soft);color:#6d1a1c;border-radius:12px;padding:14px}details.src{border:1px solid var(--line);background:#fff;border-radius:12px;margin:10px 0}details.src>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:12px 14px;font-weight:650;list-style:none;display:flex}details.src>summary::-webkit-details-marker{display:none}details.src[open]>summary{border-bottom:1px solid var(--line)}details.src .inner{padding:12px 14px}.meta{color:var(--muted);font-size:.84rem}.state{text-align:center;color:var(--ink-2);padding:28px 16px}.state .icon{width:48px;height:48px;color:var(--muted);margin:0 auto 10px}.skeleton{background:linear-gradient(90deg,#e9edf2 0,#f5f7fa 50%,#e9edf2 100%) 0 0/200% 100%;border-radius:10px;height:18px;margin:10px 0;animation:1.2s infinite sk}@keyframes sk{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.chat{flex-direction:column;gap:10px;padding:12px 0;display:flex}.bubble{overflow-wrap:anywhere;border-radius:16px;max-width:92%;padding:10px 14px}.bubble.me{background:var(--navy);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.bubble.bot{box-shadow:var(--shadow);background:#fff;border-bottom-left-radius:4px;align-self:flex-start}.composer{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));background:var(--bg);padding:8px 0 10px;position:-webkit-sticky;position:sticky}.sheet-backdrop{z-index:80;background:#0a142373;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sheet{width:100%;max-width:680px;padding:18px 16px calc(18px + env(safe-area-inset-bottom));background:#fff;border-radius:18px 18px 0 0;max-height:90vh;overflow:auto}.sheet h2{margin:0 0 8px;font-size:1.1rem}.toast{left:50%;bottom:calc(var(--nav-h) + 20px);background:var(--ink);color:#fff;z-index:90;border-radius:10px;max-width:calc(100% - 32px);padding:10px 16px;font-size:.92rem;position:fixed;transform:translate(-50%)}.block{margin:12px 0}.block p{margin:6px 0 0}.qr{align-items:center;gap:14px;display:flex}.qr img{border:1px solid var(--line);background:#fff;border-radius:8px;width:128px;height:128px}.quiz-opt{text-align:left;width:100%;margin:6px 0;display:block}.quiz-opt.right{border-color:var(--green);background:var(--green-soft)}.quiz-opt.wrong{border-color:var(--red);background:var(--red-soft)}.tree details{border-bottom:1px solid var(--line)}.tree summary{cursor:pointer;min-height:48px;padding:12px 4px;font-weight:650}.tree .pts{flex-wrap:wrap;gap:6px;padding:0 4px 12px;display:flex}.tree .pts a{border:1px solid var(--line);border-radius:10px;place-items:center;min-width:44px;min-height:40px;padding:0 10px;font-weight:650;text-decoration:none;display:inline-grid}.preview-banner{color:#fff;text-align:center;background:#b45309;padding:6px;font-size:.9rem;font-weight:700}.footer-note{color:var(--muted);margin:24px 0 8px;font-size:.82rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn svg:not([width]){flex:none;width:22px;height:22px}.quick .ic svg{width:24px;height:24px}.state .icon svg{width:48px;height:48px}.hz-map{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface-alt);z-index:0;width:100%;overflow:hidden}.hz-marker{background:var(--color-primary);border:3px solid var(--color-accent);border-radius:5px;place-items:center;width:26px;height:26px;display:grid;transform:rotate(45deg);box-shadow:0 1px 4px #00000059}.hz-marker b{color:#fff;font-size:15px;line-height:1;transform:rotate(-45deg)}.hz-marker.sample{border:3px dashed var(--color-primary);background:#fff}.hz-marker.sample b{color:var(--color-primary)}.hz-marker.small{vertical-align:middle;border-width:2px;width:18px;height:18px;margin-right:6px;display:inline-grid}.hz-marker.small b{font-size:11px}.legend{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:6px;margin:8px 0;padding:10px 12px;font-size:.88rem;display:flex}.lg-line{background:var(--color-primary);vertical-align:middle;border-radius:3px;width:26px;height:6px;margin-right:6px;display:inline-block}.hz-badges{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.hz-badges .tag svg{width:14px;height:14px}.unverified{background:var(--color-surface-alt);border:1px dashed #b9a88a;border-radius:12px;padding:12px}.filters{gap:4px;display:grid}.timeline{border-left:3px solid var(--color-border);margin:8px 0 4px;padding:0 0 0 4px;list-style:none}.timeline li{align-items:flex-start;gap:10px;margin:0 0 10px -16px;display:flex}.tl-ic{background:var(--color-surface);border:2px solid var(--color-primary);width:28px;height:28px;color:var(--color-primary);border-radius:50%;flex:none;place-items:center;font-size:.9rem;font-weight:800;display:grid}.timeline li.done .tl-ic{background:var(--color-primary);color:#fff;border-color:var(--color-accent)}.src-kv dd{font-weight:500}.tabs button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.tabs button svg{width:20px;height:20px}.leaflet-container{font:inherit}.shortcuts{gap:10px;margin-top:14px;display:grid}.shortcuts a{background:var(--color-surface);border:1px solid var(--color-border);border-left:5px solid var(--color-primary);border-radius:var(--radius);min-height:68px;color:var(--color-text);align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.shortcuts a>span:nth-child(2){flex-direction:column;flex:1;min-width:0;display:flex}.shortcuts .t{font-size:1.02rem;font-weight:800}.shortcuts .s{color:var(--color-text-muted);font-size:.88rem}.shortcuts .ic{background:var(--color-primary);color:#fff;border-bottom:3px solid var(--color-accent);border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.shortcuts .ic svg{width:24px;height:24px}.shortcuts a:hover{border-color:var(--color-primary)}.src-kv{grid-template-columns:1fr;gap:0}.src-kv dt{text-transform:uppercase;letter-spacing:.04em;margin-top:10px;font-size:.82rem;font-weight:700}.src-kv dd{border-bottom:1px solid var(--color-border);padding-bottom:8px}.ask-page{min-height:calc(100vh - 150px - env(safe-area-inset-bottom));min-height:calc(100dvh - 150px - env(safe-area-inset-bottom));flex-direction:column;display:flex}.ask-page .chat{flex:1}.ask-page .composer{margin-top:auto}.ask-note{margin-top:12px}.ask-date{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.ask-date label{font-weight:650}.ask-date input{border:1px solid var(--line);background:#fff;border-radius:10px;flex:160px;min-height:44px;padding:6px 10px;font-size:1rem}.bubble.bot{width:100%;max-width:100%}.bubble.me{max-width:85%}.composer .searchbox input{font-size:1rem}
