:root{--lac-black:#12090a;--lac-ink:#1a0c09;--lac-red:#5e1410;--lac-red-hi:#7a1912;--cinnabar:#a9201a;--cinnabar-dark:#8e1d16;--gold-leaf:#e6c27a;--gold:#c9a24f;--gold-deep:#9a7535;--gold-text:#6b4a1f;--gold-grad:linear-gradient(135deg,#f3dc9b,#c9a24f 38%,#8f6a2a 62%,#e6c27a);--ivory:#f7eedb;--ivory-hi:#fdf8ec;--ivory-deep:#ecdcb8;--rule:#d8c294;--rule-strong:#b9a57e;--ink:#1c0d0a;--ink-soft:#4a3326;--ink-mute:#6e5a49;--on-lac:#f3e6c8;--ok:#2f5d3a;--warn:#8a5a00;--danger:#8e1d16;--wash-red:#f4e3dc;--r-frame:2px;--r-card:6px;--r-tile:10px;--r-tab:10px 10px 3px 3px;--r-pill:999px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--t-xs:13px;--t-sm:15px;--t-md:16px;--t-lg:18px;--t-xl:20px;--t-2xl:22px;--t-3xl:26px;--t-4xl:28px;--t-5xl:32px;--t-6xl:40px;--t-7xl:64px;--filet:inset 0 0 0 1px var(--gold),inset 0 0 0 4px var(--ivory-hi),inset 0 0 0 5px var(--gold-deep);--lift-1:0 1px 0 rgba(28,13,10,.08);--lift-2:inset 0 1px 0 rgba(255,255,255,.6),0 12px 28px -14px rgba(18,9,10,.55);--lift-3:0 30px 60px -20px #000;--lip:0 3px 0 var(--lac-red);--focus:0 0 0 2px var(--lac-ink),0 0 0 5px var(--gold-leaf);--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .24 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");--lac-ground:radial-gradient(120% 80% at 50% 0%,#2a0f0b 0%,#12090a 60%);--sheen:linear-gradient(100deg,transparent 40%,rgba(230,194,122,.05) 50%,transparent 60%);--ease:cubic-bezier(.2,.7,.2,1);--t-micro:160ms;--t-panel:320ms;--t-entry:520ms;--tap:48px;--head-admin:120px;--head-tree:72px;--bar-tree:56px;--paper:var(--ivory);--paper-hi:var(--ivory-hi);--paper-deep:var(--ivory-deep);--card:var(--ivory-hi);--line:var(--rule);--son:var(--cinnabar);--son-dark:var(--cinnabar-dark);--gold-dim:var(--gold-deep);--radius:var(--r-card);font-size:18px;--cloud:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M2 26V9a7 7 0 0 1 7-7h17M6 26V12a3 3 0 0 1 3-3h3a3 3 0 0 1 0 6h-2M26 6H12a3 3 0 0 0-3 3'/%3E%3C/svg%3E");--fret:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' fill='none' stroke='%23c9a24f' stroke-width='1'%3E%3Cpath d='M0 9.5h4v-7h7v4H7.5v-1.5M10 9.5h10'/%3E%3C/svg%3E");--fret-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' fill='none' stroke='%239a7535' stroke-width='1'%3E%3Cpath d='M0 9.5h4v-7h7v4H7.5v-1.5M10 9.5h10'/%3E%3C/svg%3E")}*,:after,:before{box-sizing:border-box}body,html{margin:0;height:100%;line-height:1.5;-webkit-text-size-adjust:100%;background:var(--lac-ink) var(--lac-ground);color:var(--ink);font-family:var(--font-body),system-ui,sans-serif;overflow-x:clip}body{background-attachment:fixed}html{background:var(--lac-black) var(--lac-ground) no-repeat}h1,h2{font-family:var(--font-display),var(--font-body),Georgia,serif;letter-spacing:.005em}[hidden]{display:none!important}.hint{margin:0;color:var(--ink-soft)}.err{min-height:1.4em;color:var(--danger)}.err,.ok{margin:0;font-weight:600}.ok{color:var(--ok);word-break:break-all}.row{display:flex;gap:10px;align-items:flex-end}.row.wrap{flex-wrap:wrap}@media (max-width:600px){.row{flex-wrap:wrap}}
/* !important: surfaces give many controls their own box-shadow (tiles, cards, filets); keyboard focus must win over all of them. */:focus-visible{outline:none;box-shadow:var(--focus)!important}.btn{min-height:var(--tap);padding:10px 18px;border-radius:var(--r-card);border:0;background:linear-gradient(#b8271f,var(--cinnabar-dark));color:var(--on-lac);font:inherit;font-weight:600;line-height:1.2;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}.btn:hover{filter:brightness(1.06)}.btn:disabled{opacity:.5;cursor:default;filter:none}.btn-ghost{background:transparent;color:var(--cinnabar-dark);box-shadow:inset 0 0 0 2px var(--gold-deep)}.btn-ghost:hover{background:rgba(201,162,79,.12);filter:none}.btn-danger{background:var(--cinnabar-dark)}.linkish{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--cinnabar-dark);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.linkish:hover{color:var(--cinnabar)}.linkish.danger{color:var(--danger)}.btn,.linkish{transition:background-color var(--t-micro),color var(--t-micro),box-shadow var(--t-micro),transform 80ms,opacity var(--t-micro),filter var(--t-micro)}.btn:active:not(:disabled){transform:translateY(1px)}.badge{display:inline-block;padding:1px 8px;border:1px solid;border-radius:var(--r-frame);font:600 var(--t-xs)/1.5 var(--font-caps),var(--font-body),serif;letter-spacing:.06em;background:transparent;color:var(--ink-soft);white-space:nowrap}.badge.k-conflict,.badge.s-revoked{color:var(--cinnabar-dark)}.badge.k-new_person{color:var(--gold-text)}.badge.s-active{color:var(--ok)}.chip{border:1px solid var(--rule);background:var(--ivory-deep);color:var(--ink);font:inherit;font-size:14px;font-weight:600;border-radius:3px;padding:4px 12px;cursor:pointer;transition:background-color var(--t-micro),color var(--t-micro)}.chip.on,.chip:hover{background:var(--lac-red);color:var(--gold-leaf);border-color:var(--lac-red)}input,select,textarea{min-height:var(--tap);width:100%;padding:10px 14px;font:inherit;color:var(--ink);background:var(--ivory-hi);border:2px solid var(--rule);border-radius:var(--r-card);transition:border-color var(--t-micro),box-shadow var(--t-micro)}input::placeholder,textarea::placeholder{color:var(--ink-mute);opacity:1}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--gold-deep)}input:disabled,select:disabled,textarea:disabled{opacity:.6}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes fade{0%{opacity:0}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes pulse{50%{opacity:.35}}.sk{border-radius:3px;background:linear-gradient(100deg,transparent 30%,rgba(201,162,79,.14) 50%,transparent 70%) var(--ivory-deep);background-size:200% 100%;animation:shimmer 1.6s linear infinite}.sk-line{height:14px;margin:10px 0}.sk-title{height:22px;width:40%;margin-bottom:16px}.sk-tree{display:flex;flex-direction:column;align-items:center;gap:42px;padding:56px 0}.sk-tree>div{display:flex;gap:22px}.sk-plaque{width:140px;height:64px;border-radius:var(--r-tab)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.btn:active:not(:disabled){transform:none}}.shell{height:100dvh;display:flex;flex-direction:column;max-width:640px;margin:0 auto;overflow:hidden;background:var(--grain),var(--ivory);position:relative}@media (min-width:641px){.shell{box-shadow:0 0 0 1px var(--gold),var(--lift-3)}}.shell-top{display:flex;justify-content:space-between;height:64px;padding:0 16px;background:var(--sheen),var(--grain),var(--lac-ground);background-color:var(--lac-ink);border-bottom:2px solid transparent;border-image:var(--gold-grad) 1;box-shadow:0 1px 0 var(--lac-black);position:relative;z-index:2;animation:door-top var(--t-entry) var(--ease) both}.brand,.shell-top{flex:none;align-items:center;gap:12px}.brand{display:inline-flex;min-width:0}.wordmark{font:700 22px/1.2 var(--font-display),Georgia,serif;color:var(--gold-leaf);letter-spacing:.005em;white-space:nowrap}.seal{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:3px;background:var(--cinnabar);box-shadow:inset 0 0 0 3px var(--cinnabar),inset 0 0 0 4.5px var(--gold-leaf),0 2px 6px rgba(0,0,0,.45);color:var(--on-lac);font:700 15px/1 var(--font-display),Georgia,serif;transform:rotate(-3deg)}.progress-text{min-width:0;color:var(--on-lac);font:500 18px/1.3 var(--font-body),system-ui,sans-serif;font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:400px){.wordmark{font-size:20px}.seal{width:36px;height:36px;font-size:14px}}@media (max-width:560px){.shell-top:has(.progress-text) .wordmark{display:none}}.bar{flex:none;display:flex;gap:3px;padding:10px 16px 0}.bar i{flex:1 1;height:6px;border-radius:1px;background:var(--ivory-deep);transition:background-color .4s var(--ease)}.bar i.boqua,.bar i.xong{background:var(--gold)}.bar i.dang{background:var(--cinnabar);box-shadow:inset 0 1px 0 var(--gold-leaf)}.shell-body{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px 20px;display:flex;flex-direction:column;gap:16px}.lead{margin:0;font:italic 400 18px/1.45 var(--font-body),system-ui,sans-serif;color:var(--gold-text)}.lead:before{content:"";display:inline-block;width:24px;height:1px;margin-right:10px;vertical-align:middle;background:var(--gold)}.card{background:var(--ivory-hi);border:1px solid var(--rule);border-radius:var(--r-card);padding:20px}.card.qcard{border:0;padding:28px 24px;box-shadow:var(--filet),var(--lift-2)}@media (max-width:380px){.card.qcard{padding:20px 16px}}.question{margin:0;font:600 26px/1.3 var(--font-display),var(--font-body),Georgia,serif;color:var(--ink);letter-spacing:0;text-wrap:balance}@media (min-width:420px){.question{font-size:28px}}.question em{font-style:normal;color:var(--cinnabar-dark);-webkit-text-decoration:underline 1px var(--cinnabar);text-decoration:underline 1px var(--cinnabar);text-underline-offset:.18em}.shell .hint{font-size:18px;line-height:1.5;color:var(--ink-soft)}.qcard .hint{margin-top:12px}.shell.home .qcard{position:relative;padding-top:36px}.shell.home .qcard:after,.shell.home .qcard:before{content:"";position:absolute;top:9px;width:28px;height:28px;background:var(--gold-deep);-webkit-mask:var(--cloud) no-repeat center /contain;mask:var(--cloud) no-repeat center /contain;pointer-events:none}.shell.home .qcard:before{left:9px}.shell.home .qcard:after{right:9px;transform:scaleX(-1)}.recap{margin:0;padding-left:12px;border-left:3px solid var(--ok);font-size:18px;color:var(--ink-soft)}.recap b{color:var(--ink);font-weight:600}.status-line{margin:0;font-size:18px;color:var(--ink-soft);font-weight:500}.status-line:before{content:"";display:inline-block;width:.5em;height:.5em;margin-right:.5em;border-radius:50%;background:var(--cinnabar);vertical-align:.08em;animation:pulse 1.6s ease-in-out infinite}.shell .err{font-size:18px}.shell .err:not(:empty){padding:10px 12px;background:var(--wash-red);border-left:3px solid var(--danger);border-radius:4px}.shell .err:empty{min-height:0}.shell .ok{font-size:18px;word-break:normal;overflow-wrap:anywhere}.answer-area{display:flex;flex-direction:column;gap:12px}.shell input,.shell textarea{min-height:56px;padding:12px 16px;font-size:20px;line-height:1.35;color:var(--ink);background:var(--ivory-hi);border:2px solid var(--rule);border-radius:6px}.shell textarea{resize:vertical}.shell input:focus-visible,.shell textarea:focus-visible{border-color:var(--gold-deep)}.tiles,.typer{display:flex;flex-direction:column;gap:12px}.grid2,.grid3,.grid4,.grid5,.grid6{display:grid;grid-gap:8px;gap:8px}.grid2{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(4,1fr)}.grid5{grid-template-columns:repeat(2,1fr)}.grid6{grid-template-columns:repeat(6,1fr)}.grid2.big{min-height:120px}.tile{min-height:60px;padding:8px 12px;border:0;border-radius:var(--r-tile);background:var(--ivory-hi);box-shadow:inset 0 0 0 2px var(--rule);color:var(--ink);font:600 20px/1.25 var(--font-body),system-ui,sans-serif;text-align:center;text-decoration:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:background-color var(--t-micro),color var(--t-micro),box-shadow var(--t-micro),transform 80ms;-webkit-tap-highlight-color:transparent}.tile small{font-size:16px;font-weight:500;color:var(--ink-soft);line-height:1.2}.tile.small{min-height:52px;padding:4px;font-size:18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile.huge{min-height:120px;font-size:22px;gap:6px}.tile.huge .ic{font:600 32px/1 var(--font-display),Georgia,serif;color:var(--cinnabar)}.tile.no{background:var(--ivory-deep)}.tile.no .ic{color:var(--ink-soft)}.tile.on{background:var(--lac-red);box-shadow:inset 0 0 0 2px var(--gold)}.tile.on,.tile.on .ic,.tile.on small{color:var(--gold-leaf)}.tile.other{background:transparent;box-shadow:none;outline:2px dashed var(--gold-deep);outline-offset:-2px;color:var(--cinnabar-dark);font-size:18px}.tile.go{min-height:56px;background:linear-gradient(#b8271f,#8e1d16);color:var(--on-lac);font-weight:700;font-size:20px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),var(--lip);margin-bottom:3px}.tile:disabled{opacity:.5;cursor:default}.tile:active:not(:disabled){transform:translateY(2px)}.tile.go:active:not(:disabled){box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 1px 0 var(--lac-red)}@media (hover:hover){.tile:not(:disabled):not(.on):not(.go):not(.other):hover{box-shadow:inset 0 0 0 2px var(--gold-deep)}.tile.other:not(:disabled):hover{background:rgba(201,162,79,.1)}.tile.go:not(:disabled):hover{filter:brightness(1.06)}}.readout{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.readout .hint{margin:0}.digits{display:flex;gap:6px;font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.digits span{width:48px;height:64px;display:grid;place-items:center;border-radius:3px;background:var(--ivory-hi);border:2px solid var(--rule);font:600 32px/1 var(--font-display),Georgia,serif;color:var(--ink)}.digits span.empty{color:var(--gold-deep);background:var(--ivory);border-bottom-color:var(--gold-deep)}@media (max-width:380px){.digits span{width:42px;height:58px;font-size:28px}}.mini{min-height:56px;padding:0 16px;border:0;border-radius:var(--r-tile);background:var(--ivory-hi);box-shadow:inset 0 0 0 2px var(--gold-deep);color:var(--cinnabar-dark);font:600 18px/1.2 var(--font-body),system-ui,sans-serif;cursor:pointer;transition:background-color var(--t-micro),transform 80ms}.mini:disabled{opacity:.5;cursor:default}.mini:active:not(:disabled){transform:translateY(2px)}@media (hover:hover){.mini:not(:disabled):hover{background:rgba(201,162,79,.12)}}.sugg{display:flex;flex-direction:column;gap:8px}.sugg .tile{min-height:56px;align-items:flex-start;padding-left:16px;font-size:18px}.code-box{position:relative;margin:0;padding:32px 20px 24px;text-align:center;font:600 32px/1.3 var(--font-display),Georgia,serif;word-spacing:.3em;color:var(--cinnabar-dark);overflow-wrap:anywhere;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='%239a7535' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M2 26V9a7 7 0 0 1 7-7h17M6 26V12a3 3 0 0 1 3-3h3a3 3 0 0 1 0 6h-2M26 6H12a3 3 0 0 0-3 3'/%3E%3C/svg%3E") 7px 7px /26px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='%239a7535' stroke-width='1.4' stroke-linecap='round'%3E%3Cg transform='matrix(-1 0 0 1 28 0)'%3E%3Cpath d='M2 26V9a7 7 0 0 1 7-7h17M6 26V12a3 3 0 0 1 3-3h3a3 3 0 0 1 0 6h-2M26 6H12a3 3 0 0 0-3 3'/%3E%3C/g%3E%3C/svg%3E") right 7px top 7px /26px no-repeat,var(--ivory-hi);border:1px solid var(--ink-soft);border-radius:3px;box-shadow:inset 0 0 0 4px var(--ivory-hi),inset 0 0 0 5px var(--rule),var(--lift-2);animation:stamp .24s var(--ease) both}.code-box:before{content:"";position:absolute;top:10px;left:50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--ivory-deep);box-shadow:inset 0 1px 2px rgba(0,0,0,.3)}.card .code-box{margin-top:8px}.summary{display:flex;flex-direction:column;gap:20px}.summary h2{margin:0 0 4px;font:700 26px/1.25 var(--font-display),Georgia,serif;color:var(--ink)}.summary h2:after{content:"";display:block;height:1px;margin-top:8px;background:linear-gradient(90deg,var(--gold),transparent)}.summary dl{margin:0;display:flex;flex-direction:column}.summary dl>div{padding:10px 0;border-bottom:1px solid var(--rule)}.summary dt{font-size:16px;font-weight:600;color:var(--gold-text)}.summary dd{margin:2px 0 0;font-size:18px;color:var(--ink)}.invite-out{display:flex;flex-direction:column;align-items:center;gap:12px}.invite-out img{border:1px solid var(--gold-deep);padding:6px;background:#fff}.card.typer{gap:12px}.save-email{gap:8px}.save-email .row{gap:8px;align-items:stretch;flex-wrap:nowrap}.save-email .row input{flex:1 1;min-width:0}.save-email label{font-size:18px}.shell-foot.keys{flex:none;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--sheen),var(--grain),var(--lac-ground);background-color:var(--lac-ink);border-top:2px solid transparent;border-image:var(--gold-grad) 1;box-shadow:0 -1px 0 var(--lac-black);position:relative;z-index:2;animation:door-bottom var(--t-entry) var(--ease) both}.key{min-height:64px;border:0;border-radius:8px;background:var(--lac-red-hi);box-shadow:inset 0 0 0 1px rgba(201,162,79,.55),inset 0 1px 0 rgba(255,255,255,.08);color:var(--on-lac);font:600 18px/1.15 var(--font-body),system-ui,sans-serif;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:background-color var(--t-micro),box-shadow var(--t-micro),color var(--t-micro),transform 80ms;-webkit-tap-highlight-color:transparent}.key .ic{font:600 22px/1 var(--font-display),Georgia,serif;color:var(--gold-leaf)}.key:active:not(:disabled){background:var(--lac-red);box-shadow:inset 0 0 0 1px rgba(201,162,79,.55),inset 0 2px 0 var(--gold);transform:translateY(1px)}.key:disabled{cursor:default}.key:disabled,.key:disabled .ic{color:rgba(243,230,200,.5)}@media (hover:hover){.key:not(:disabled):hover{background:#87201a;box-shadow:inset 0 0 0 1px var(--gold-leaf)}}@media (max-height:640px){.shell-top{height:56px}.key{min-height:58px}.card.qcard{padding:20px 16px}.shell.home .qcard{padding-top:32px}.shell-body{padding:16px;gap:12px}}@keyframes door-top{0%{transform:translateY(-100%)}}@keyframes door-bottom{0%{transform:translateY(100%)}}@keyframes rise-sm{0%{opacity:0;transform:translateY(6px)}}@keyframes stamp{0%{opacity:0;transform:scale(1.08)}}.shell-body>.answer-area,.shell-body>.lead,.shell-body>.qcard,.shell-body>.recap{animation:rise-sm .28s var(--ease) both}.shell-body>.qcard{animation-delay:40ms}.shell-body>.recap{animation-delay:80ms}.shell-body>.answer-area{animation-delay:.12s}@media (prefers-reduced-motion:reduce){.code-box,.shell-foot.keys,.shell-top{animation:none}.key:active:not(:disabled),.mini:active:not(:disabled),.tile:active:not(:disabled){transform:none}}:root{--adm-cloud-tl:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='%239a7535' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M2 26V9a7 7 0 0 1 7-7h17M6 26V12a3 3 0 0 1 3-3h3a3 3 0 0 1 0 6h-2M26 6H12a3 3 0 0 0-3 3'/%3E%3C/svg%3E");--adm-cloud-tr:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='%239a7535' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath transform='matrix(-1 0 0 1 28 0)' d='M2 26V9a7 7 0 0 1 7-7h17M6 26V12a3 3 0 0 1 3-3h3a3 3 0 0 1 0 6h-2M26 6H12a3 3 0 0 0-3 3'/%3E%3C/svg%3E");--adm-cloud-bl:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='%239a7535' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath transform='matrix(1 0 0 -1 0 28)' d='M2 26V9a7 7 0 0 1 7-7h17M6 26V12a3 3 0 0 1 3-3h3a3 3 0 0 1 0 6h-2M26 6H12a3 3 0 0 0-3 3'/%3E%3C/svg%3E");--adm-cloud-br:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='%239a7535' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath transform='matrix(-1 0 0 -1 28 28)' d='M2 26V9a7 7 0 0 1 7-7h17M6 26V12a3 3 0 0 1 3-3h3a3 3 0 0 1 0 6h-2M26 6H12a3 3 0 0 0-3 3'/%3E%3C/svg%3E");--adm-diamond:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 0L10 5 5 10 0 5z' fill='%23c9a24f'/%3E%3C/svg%3E")}.admin{min-height:100dvh;font-size:16px;color:var(--ink)}.admin-head{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding:0 max(32px,calc(50% - 540px));min-height:var(--head-admin);background:var(--sheen),var(--grain),var(--lac-ground)}.admin-head>*{animation:rise .52s var(--ease) both}.admin-head>:nth-child(2){animation-delay:60ms}.admin:not(.admin-wide) .admin-head{padding-top:26px;padding-bottom:74px;border-bottom:2px solid transparent;border-image:var(--gold-grad) 1;box-shadow:0 1px 0 var(--lac-black)}.admin:not(.admin-wide) .admin-head:after{content:"";position:absolute;left:0;right:0;bottom:3px;height:10px;background:var(--fret) repeat-x;opacity:.35;pointer-events:none}.admin-head h1{display:flex;align-items:center;margin:0;font:700 var(--t-6xl)/1.2 var(--font-display),serif;letter-spacing:-.01em;color:var(--gold-leaf);background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 1px 0 rgba(0,0,0,.6))}.admin-head h1:before{content:"Phả";flex:none;display:inline-grid;place-items:center;width:52px;height:52px;margin-right:16px;border-radius:3px;background:var(--cinnabar);box-shadow:inset 0 0 0 3px var(--cinnabar),inset 0 0 0 4.5px var(--gold-leaf),0 4px 10px -4px #000;color:var(--on-lac);-webkit-text-fill-color:var(--on-lac);font:700 20px/1 var(--font-display),serif;letter-spacing:0;transform:rotate(-3deg)}.admin-head nav{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;font-size:0}.admin-head nav .linkish,.admin-head nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:10px 4px;font:600 var(--t-sm)/1.2 var(--font-body),sans-serif;color:var(--on-lac);text-decoration:none;background:none;border:0}.admin-head nav .linkish:after,.admin-head nav a:after{content:"";position:absolute;left:4px;right:4px;bottom:8px;height:2px;background:var(--gold-leaf);transform:scaleX(0);transition:transform .2s var(--ease)}.admin-head nav .linkish:hover,.admin-head nav a:hover{color:var(--gold-leaf)}.admin-head nav .linkish:focus-visible:after,.admin-head nav .linkish:hover:after,.admin-head nav a:focus-visible:after,.admin-head nav a:hover:after{transform:scaleX(1)}.admin-sheet{counter-reset:sec;position:relative;z-index:1;max-width:1080px;margin:-48px auto 64px;padding:44px 48px 48px;background:var(--grain),var(--ivory);border-radius:var(--r-frame);box-shadow:inset 0 0 0 1px var(--gold),inset 0 0 0 4px var(--ivory),inset 0 0 0 5px var(--gold-deep),var(--lift-3);animation:sheet-rise .48s var(--ease) both}@keyframes sheet-rise{0%{opacity:0;transform:translateY(16px)}}.admin-sheet>*{animation:rise .45s var(--ease) both}.admin-sheet>:nth-child(2){animation-delay:.06s}.admin-sheet>:nth-child(3){animation-delay:.12s}.admin-sheet>:nth-child(n+4){animation-delay:.18s}.admin-sheet>.err{margin-bottom:24px}.admin a{color:var(--cinnabar-dark)}.panel{background:var(--ivory-hi);border-radius:var(--r-card);padding:20px 24px;margin:24px auto;max-width:1080px;box-shadow:var(--filet),var(--lift-2)}.admin-sheet .panel{background:none;border:0;border-radius:0;padding:0;margin:0;max-width:none;box-shadow:none}.admin-sheet .panel+.panel{margin-top:56px}.panel h2{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;margin:0 0 20px;font:700 var(--t-2xl)/1.25 var(--font-display),serif;color:var(--ink)}.admin-sheet .panel:not(.login) h2:before{counter-increment:sec;content:counter(sec,upper-roman);font:600 var(--t-sm)/1 var(--font-caps),serif;letter-spacing:.06em;color:var(--cinnabar-dark);min-width:1.6em}.panel h2:after{content:"";flex-basis:100%;height:10px;margin-top:10px;background:var(--adm-diamond) 0 50%/10px 10px no-repeat,linear-gradient(90deg,var(--gold),rgba(201,162,79,0) 85%) 16px 50%/calc(100% - 16px) 1px no-repeat}.panel h3{margin:32px 0 12px;font:700 var(--t-xl)/1.3 var(--font-display),serif;color:var(--ink)}.panel h2 small,.panel>h3 small{display:inline-block;min-width:28px;padding:2px 8px;border-radius:var(--r-pill);background:var(--lac-red);color:var(--gold-leaf);text-align:center;font:700 var(--t-xs)/1.5 var(--font-body),sans-serif;font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums;vertical-align:middle}.admin-sheet .panel>p+.btn,.admin-sheet .panel>p+p{margin-top:12px}.admin .btn{min-height:44px;padding:8px 18px;font-size:var(--t-sm)}.admin input,.admin select,.admin textarea{min-height:44px;padding:8px 12px;border:1.5px solid var(--rule-strong);border-radius:4px;font:400 var(--t-md)/1.3 var(--font-body),sans-serif;letter-spacing:normal;color:var(--ink);background-color:var(--ivory-hi)}.admin label{display:flex;flex-direction:column;gap:6px;flex:1 1;min-width:200px;font:600 var(--t-xs)/1.3 var(--font-caps),serif;letter-spacing:.06em;color:var(--ink-soft)}.queue-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 20px;margin-bottom:4px}.queue-head h2{flex:1 1 320px;margin-bottom:8px}.queue-head .btn-ghost{min-height:40px}.group{margin-top:8px}.group h3{position:-webkit-sticky;position:sticky;top:0;z-index:1;margin:24px 0 0;padding:12px 0 8px;background:var(--ivory);border-bottom:2px solid var(--gold);font:700 var(--t-xl)/1.3 var(--font-display),serif;color:var(--ink)}.group h3 small{font:400 var(--t-sm)/1.3 var(--font-body),sans-serif;color:var(--ink-soft)}.claim{position:relative;padding:14px 0 14px 16px;border-bottom:1px solid var(--rule);transition:background-color var(--t-micro),opacity .3s}.claim:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:2px;background:var(--gold)}.claim.k-conflict:before{background:var(--cinnabar)}.claim.k-new_person:before{background:var(--gold-deep)}.claim.k-duplicate:before{background:var(--rule-strong)}.claim:hover{background:rgba(201,162,79,.07)}.claim.busy{opacity:.55}.claim-row{display:grid;grid-template-columns:180px minmax(0,1fr) auto;grid-column-gap:16px;column-gap:16px;align-items:center;min-height:48px}.claim-main{display:contents}.claim-label{grid-column:1;grid-row:1/span 2;align-self:center;display:flex;flex-direction:column;align-items:flex-start;gap:6px;font:600 14px/1.3 var(--font-caps),serif;letter-spacing:.06em;color:var(--gold-text)}.claim-main>.side,.claim-main>.val{grid-column:2;grid-row:1}.claim-main>.prov{grid-column:2;grid-row:2}.claim-btns{grid-column:3;grid-row:1/span 2;display:flex;align-items:center;gap:4px}.claim .val{margin:0;font-size:var(--t-md);font-weight:600;color:var(--ink);overflow-wrap:anywhere}.prov{display:block;margin-top:2px;font-size:var(--t-xs);color:var(--ink-mute)}.side{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 20px}.side>div{min-width:0}.side small:not(.prov){display:block;font:600 var(--t-xs)/1.4 var(--font-caps),serif;letter-spacing:.06em;color:var(--gold-text)}.side>div:not(.new) .val{color:var(--ink-soft)}.side .new{position:relative;padding-left:32px}.side .new:before{content:"→";position:absolute;left:0;top:50%;transform:translateY(-40%);font-size:20px;line-height:1;color:var(--cinnabar)}.side .new .val{color:var(--cinnabar-dark);-webkit-text-decoration:underline 1px var(--cinnabar);text-decoration:underline 1px var(--cinnabar);text-underline-offset:.2em}.claim-btns .btn{min-height:36px;padding:6px 16px;border-radius:3px;font-size:var(--t-sm);font-weight:600}.claim-btns .btn-ghost{box-shadow:none;background:transparent;color:var(--ink-soft);padding:6px 10px}.claim-btns .btn-ghost:hover:not(:disabled){background:transparent;color:var(--cinnabar-dark);text-decoration:underline;text-underline-offset:.2em}.admin .claim-attach,.claim-edit{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:10px 0 0 196px;padding:12px;background:var(--wash-red);border-top:3px solid var(--gold-deep)}.admin .claim-attach{font:600 var(--t-sm)/1.3 var(--font-body),sans-serif;letter-spacing:normal;color:var(--cinnabar-dark);min-width:0}.claim-attach select{width:auto;min-width:240px;flex:1 1}.claim-edit{animation:rise .2s both}.claim-edit input{flex:1 1;min-width:200px}.claim-edit .btn{min-height:44px}.claim .err{margin:8px 0 0 196px}@media (max-width:900px){.claim-row{grid-template-columns:minmax(0,1fr);row-gap:6px}.claim-label{grid-row:auto;flex-direction:row;align-items:center;flex-wrap:wrap}.claim-btns,.claim-main>.prov,.claim-main>.side,.claim-main>.val{grid-column:1;grid-row:auto}.claim-btns{flex-wrap:wrap;margin-top:4px}.admin .claim-attach,.claim .err,.claim-edit{margin-left:0}}.inv-form{display:flex;flex-direction:column;gap:16px;margin-bottom:32px;padding:20px;background:var(--ivory-deep);border-radius:var(--r-card);box-shadow:inset 0 1px 0 rgba(0,0,0,.05),inset 0 0 0 1px rgba(154,117,53,.18)}.inv-form>.btn{align-self:flex-end;min-height:48px;padding:10px 28px}.inv-form .row:has(>label.radio){gap:0;flex-wrap:nowrap}.admin label.radio{position:relative;flex:none;min-width:0;flex-direction:row;align-items:center;justify-content:center;height:44px;padding:0 18px;margin-left:-1.5px;cursor:pointer;border:1.5px solid var(--rule-strong);background:var(--ivory-hi);font:600 var(--t-sm)/1.2 var(--font-body),sans-serif;letter-spacing:normal;color:var(--ink-soft);transition:background-color var(--t-micro),color var(--t-micro)}.admin label.radio:first-child{margin-left:0;border-radius:4px 0 0 4px}.admin label.radio:last-child{border-radius:0 4px 4px 0}.admin label.radio:hover{color:var(--ink)}.admin label.radio:has(input:checked){z-index:1;background:var(--lac-red);border-color:var(--lac-red);color:var(--gold-leaf)}.admin label.radio:has(input:focus-visible){z-index:2;box-shadow:var(--focus)}.admin label.radio input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;margin:0;padding:0;pointer-events:none}.dup-warn{padding:12px 16px;background:var(--wash-red);border-left:3px solid var(--cinnabar);border-radius:3px;animation:rise .3s both}.dup-warn p{margin:0 0 6px}.dup-warn .linkish{margin-left:6px}.dup-warn .btn{margin-top:10px}.inv-form .ok{margin:0;padding:10px 14px;background:var(--ivory-hi);border-left:3px solid var(--ok);border-radius:3px;font-size:var(--t-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}code.link{background:var(--ivory-deep);padding:2px 6px;border-radius:3px;color:var(--ink);font-size:14px}.table-wrap{overflow-x:auto}.table-wrap table{min-width:560px}.admin td:nth-child(4){white-space:nowrap}.admin table{width:100%;border-collapse:collapse;font-size:var(--t-sm);font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.admin th{padding:10px 12px;text-align:left;vertical-align:bottom;white-space:nowrap;font:600 var(--t-xs)/1.3 var(--font-caps),serif;letter-spacing:.06em;color:var(--gold-text);border-bottom:2px solid var(--gold)}.admin td{height:52px;padding:6px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--rule);color:var(--ink)}.admin tbody tr:nth-child(2n) td{background:rgba(201,162,79,.06)}.admin td small{color:var(--ink-mute);font-size:var(--t-xs)}.admin td .linkish{color:var(--ink-soft);font-weight:600;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong)}.admin td .linkish:hover{color:var(--cinnabar-dark);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.admin td .linkish.danger:hover{color:var(--danger)}.admin td.hint{color:var(--ink-mute);font-style:italic}.audit td:first-child{color:var(--ink-mute);white-space:nowrap;width:1%}.plain{padding-left:18px;margin:0}.panel>.plain{list-style:none;padding:0}.panel>.plain li{padding:12px 0;border-bottom:1px solid var(--rule);color:var(--ink-soft);font-size:var(--t-sm)}.panel>.plain li b{color:var(--ink);font-size:var(--t-md)}.admin .panel.login{position:relative;display:flex;flex-direction:column;gap:14px;width:min(440px,calc(100% - 32px));max-width:none;margin:0 auto 64px;padding:64px 32px 32px;transform:translateY(-40px);text-align:center;border-radius:var(--r-frame);background:var(--adm-cloud-tl) 8px 8px/28px no-repeat,var(--adm-cloud-tr) calc(100% - 8px) 8px/28px no-repeat,var(--adm-cloud-bl) 8px calc(100% - 8px)/28px no-repeat,var(--adm-cloud-br) calc(100% - 8px) calc(100% - 8px)/28px no-repeat,var(--grain),var(--ivory-hi);box-shadow:var(--filet),var(--lift-3);animation:sheet-rise .48s var(--ease) both}.admin .panel.login:before{content:"Phả";position:absolute;top:-32px;left:50%;display:grid;place-items:center;width:64px;height:64px;border-radius:3px;background:var(--cinnabar);box-shadow:inset 0 0 0 3px var(--cinnabar),inset 0 0 0 4.5px var(--gold-leaf),0 8px 18px -6px #000;color:var(--on-lac);font:700 24px/1 var(--font-display),serif;transform:translateX(-50%) rotate(-3deg)}.login h2{display:block;margin:0;font-size:var(--t-5xl)}.login h2:after{display:block;width:200px;max-width:100%;margin:12px auto 0;height:9px;background:var(--adm-diamond) 50% 50%/9px 9px no-repeat,linear-gradient(90deg,transparent,var(--gold) 45%,transparent 45% 55%,var(--gold) 55%,transparent) 50%/100% 1px no-repeat}.login .hint{font-size:var(--t-md)}.login label{text-align:left;margin-top:6px}.login .btn,.login input{min-height:48px}.login .btn{width:100%;font-size:var(--t-md)}.admin-sheet .sk-tree{padding:24px 0 8px}.sk-stage{min-height:calc(100dvh - var(--head-tree));background:radial-gradient(rgba(230,194,122,.07) 1px,transparent 1.5px) 0 0/64px 64px,var(--grain),var(--lac-black);border-top:2px solid transparent;border-image:var(--gold-grad) 1}.sk-stage .sk{background-color:rgba(236,220,184,.12);box-shadow:inset 0 0 0 1px rgba(201,162,79,.25)}@media (max-width:640px){.admin-head{padding-left:16px;padding-right:16px;gap:4px 20px}.admin:not(.admin-wide) .admin-head{padding-top:18px;padding-bottom:44px;min-height:0}.admin-head h1{font-size:var(--t-4xl)}.admin-head h1:before{width:40px;height:40px;margin-right:12px;font-size:16px}.admin-sheet{margin:-24px 8px 32px;padding:28px 16px 32px}.admin-sheet .panel+.panel{margin-top:44px}.inv-form{padding:14px}.admin label.radio{padding:0 12px;flex:1 1;text-align:center}.inv-form>.btn{align-self:stretch}.admin .panel.login{padding:56px 20px 24px;transform:none;margin-top:24px}}.admin.admin-wide{max-width:none;margin:0;padding:0;height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column;font-size:16px;background:var(--sheen),var(--grain),var(--lac-ground)}.admin.admin-wide>*{animation:none}.admin.admin-wide .admin-head{position:relative;flex:none;height:var(--head-tree);min-height:0;margin:0;padding:0 max(16px,2vw);display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:16px;background:var(--sheen),var(--grain),var(--lac-ground);border:0;box-shadow:none;animation:fade var(--t-entry) both}.admin.admin-wide .admin-head:after,.admin.admin-wide .admin-head:before{content:none}.admin.admin-wide .admin-head h1{margin:0;display:flex;align-items:center;min-width:0;font:700 var(--t-4xl)/1.2 var(--font-display),Georgia,serif;letter-spacing:-.01em;color:var(--gold-leaf);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin.admin-wide .admin-head h1:before{content:"Phả";flex:none;width:40px;height:40px;margin-right:14px;display:inline-grid;place-items:center;border-radius:3px;background:var(--cinnabar);color:var(--on-lac);box-shadow:inset 0 0 0 3px var(--cinnabar),inset 0 0 0 4.5px var(--gold-leaf);font:700 15px/1 var(--font-display),Georgia,serif;letter-spacing:0;transform:rotate(-3deg);-webkit-text-fill-color:var(--on-lac)}.admin.admin-wide .admin-head nav{font-size:0;display:flex;gap:20px;flex:none}.admin.admin-wide .admin-head nav a{position:relative;font:600 var(--t-sm)/1.2 var(--font-body),sans-serif;color:var(--on-lac);text-decoration:none;padding:10px 4px}.admin.admin-wide .admin-head nav a:after{content:"";position:absolute;left:4px;right:4px;bottom:4px;height:2px;background:var(--gold-leaf);transform:scaleX(0);transition:transform .2s var(--ease)}.admin.admin-wide .admin-head nav a:focus-visible:after,.admin.admin-wide .admin-head nav a:hover:after{transform:scaleX(1)}.admin.admin-wide>.panel{margin:var(--s6) auto;width:min(640px,calc(100% - 32px));padding:var(--s5);background:var(--grain),var(--ivory);box-shadow:var(--filet),var(--lift-3);border:0;border-radius:var(--r-card)}@media (max-width:640px){.admin.admin-wide .admin-head{height:auto;min-height:56px;flex-wrap:wrap;row-gap:0;padding-block:8px}.admin.admin-wide .admin-head h1{font-size:var(--t-xl);white-space:normal}.admin.admin-wide .admin-head h1:before{width:34px;height:34px;margin-right:10px;font-size:13px}.admin.admin-wide .admin-head nav{gap:12px}}.tc{flex:1 1;min-height:0;flex-direction:column}.tc,.tc-bar{position:relative;display:flex}.tc-bar{flex:none;z-index:4;min-height:var(--bar-tree);padding:0 max(16px,2vw);flex-wrap:nowrap;gap:var(--s4);align-items:center;background:var(--lac-black);border-bottom:2px solid transparent;border-image:var(--gold-grad) 1;box-shadow:0 1px 0 var(--lac-black)}.edit-toggle{flex:none;height:36px;padding:0 14px;border-radius:3px;border:1px solid var(--gold);background:transparent;color:var(--gold-leaf);font:600 14px/1 var(--font-body),sans-serif;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background-color var(--t-micro),border-color var(--t-micro),color var(--t-micro)}.edit-toggle:not(.on):hover{background:rgba(230,194,122,.1)}.edit-toggle.on{background:var(--cinnabar);border-color:var(--cinnabar);color:var(--on-lac)}.edit-toggle.on:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold-leaf);animation:pulse 2s ease-in-out infinite}.seg{flex:none;display:inline-flex;padding:3px;border-radius:var(--r-pill);background:var(--lac-black);box-shadow:inset 0 0 0 1px rgba(201,162,79,.5)}.seg button{height:30px;padding:0 14px;border:0;border-radius:var(--r-pill);background:none;cursor:pointer;font:600 14px/1 var(--font-body),sans-serif;color:rgba(243,230,200,.7);transition:background-color var(--t-micro),color var(--t-micro)}.seg button:hover{color:var(--on-lac)}.seg button[aria-selected=true]{background:var(--lac-red);color:var(--gold-leaf);box-shadow:inset 0 0 0 1px rgba(201,162,79,.35)}.tc-search{flex:1 1;min-width:160px;max-width:340px;margin:0}.tc-search input{min-height:0;height:36px;padding:0 16px 0 36px;border-radius:var(--r-pill);border:1px solid rgba(230,194,122,.35);color:var(--on-lac);font-size:var(--t-sm);background:rgba(243,230,200,.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23e6c27a' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='4.8'/%3E%3Cpath d='M10.6 10.6 14 14'/%3E%3C/svg%3E") no-repeat 12px /16px}.tc-search input::placeholder{color:rgba(243,230,200,.55)}.tc-search input:focus-visible{border-color:var(--gold-leaf)}.tc-search.miss input{border:2px solid var(--cinnabar);animation:shake .3s}@keyframes shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.tc-zoom{flex:none;margin-left:auto;display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:var(--r-pill);background:var(--lac-black);box-shadow:inset 0 0 0 1px rgba(201,162,79,.5)}.tc-zoom button{min-width:32px;height:32px;border:0;border-radius:var(--r-pill);background:none;cursor:pointer;font:500 18px/1 var(--font-body),sans-serif;color:var(--gold-leaf);transition:background-color var(--t-micro)}.tc-zoom button:hover{background:rgba(230,194,122,.12)}.tc-zoom button.fit{font-size:14px;font-weight:600;padding:0 12px}.tc-zoom span{min-width:48px;text-align:center;font-size:14px;color:var(--on-lac);font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.tc-stage{--row:150px;flex:1 1;min-height:0;position:relative;overflow:hidden;touch-action:none;cursor:-webkit-grab;cursor:grab;background:var(--sheen),radial-gradient(rgba(230,194,122,.07) 1px,transparent 1.5px) 0 0 /64px 64px,var(--grain),var(--lac-ground);box-shadow:inset 0 18px 30px -18px #000,inset 0 0 120px rgba(0,0,0,.45);animation:fade .4s both}.tc-stage:active{cursor:-webkit-grabbing;cursor:grabbing}.tc-content{position:absolute;top:0;left:0;transform-origin:0 0;width:max-content;will-change:transform}.tc-help{position:absolute;right:12px;bottom:12px;margin:0;pointer-events:none;z-index:2;padding:6px 14px;border-radius:var(--r-pill);border:1px solid rgba(230,194,122,.2);background:rgba(18,9,10,.65);font-size:var(--t-xs);color:rgba(243,230,200,.7)}.tc:has(.tc-edit-hint) .tc-help{display:none}.tc.editing .tc-stage:after{content:"";inset:10px;border:2px dashed rgba(169,32,26,.8);border-radius:4px}.tc.editing .tc-stage:after,.tc.editing .tc-stage:before{position:absolute;z-index:3;pointer-events:none;animation:fade .2s both}.tc.editing .tc-stage:before{content:"Chế độ chỉnh sửa";top:10px;left:50%;transform:translateX(-50%);padding:4px 14px;border-radius:0 0 4px 4px;background:var(--cinnabar);color:var(--on-lac);font:600 var(--t-xs)/1.4 var(--font-caps),serif;letter-spacing:.06em;white-space:nowrap}.tc .tc-tree .gen-labels{padding-right:18px}.tc .tc-tree .gen-labels span{padding-top:28px;align-items:flex-start}.tc .tc-tree .gen-labels b{padding:4px 12px;border-radius:3px;background:var(--lac-red);box-shadow:inset 0 0 0 1px var(--gold);font:600 var(--t-sm)/1.25 var(--font-caps),serif;letter-spacing:.06em;color:var(--gold-leaf);font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.tc .tc-tree .gen-labels span:after{border-top:1px dashed rgba(230,194,122,.22);margin:14px 0 0 10px;min-width:24px}.tc-loose li,.tc-tree li{animation:rise .5s calc(var(--d, 0) * .16s + .05s) var(--ease) both}.tc-tree .gen-labels span{animation:fade .5s calc(var(--d, 0) * .16s) both}.tc .pha-do ul ul:before,.tc .pha-do ul ul>li:after{transform-origin:top;animation:draw-y .35s calc(var(--d, 0) * .16s) ease-out both}.tc .pha-do ul ul>li:before{animation:draw-x .4s calc(var(--d, 0) * .16s) ease-out both}@keyframes draw-y{0%{transform:scaleY(0)}}@keyframes draw-x{0%{transform:scaleX(0)}}.tc .pha-do ul ul:before,.tc .pha-do ul ul>li:after{border-left-width:2px}.tc .pha-do ul ul>li:before{border-top-width:2px}.tc .pha-do ul ul:before,.tc .pha-do ul ul>li:after,.tc .pha-do ul ul>li:before{border-color:var(--gold);transition:border-color .3s calc(var(--d, 0) * 80ms),opacity .3s,filter .3s}.tc .pha-do li.dim:after,.tc .pha-do li.dim:before,.tc .pha-do li.dim>ul:before{opacity:.2}.tc .pha-do li.lit:after,.tc .pha-do li.lit>ul:before{border-left-width:3px;margin-left:-.5px}.tc .pha-do li.lit:before{border-top-width:3px}.tc .pha-do li.lit:after,.tc .pha-do li.lit:before,.tc .pha-do li.lit>ul:before{border-color:var(--cinnabar);filter:drop-shadow(0 0 3px rgba(230,194,122,.6))}.tc .couple-link{position:relative;width:28px;height:0;border:0;border-top:2px solid var(--gold-leaf)}.tc .couple-link:after{content:"";position:absolute;left:50%;top:-1px;width:7px;height:7px;box-sizing:border-box;background:var(--cinnabar);border:1px solid var(--gold-leaf);transform:translate(-50%,-50%) rotate(45deg)}.tc-card{position:relative;width:168px;min-height:76px;padding:14px 12px 10px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:3px;text-align:center;font:inherit;color:var(--ink);cursor:pointer;border:0;border-radius:var(--r-tab);background:var(--ivory-hi);box-shadow:var(--filet),0 10px 22px -12px rgba(0,0,0,.7);transition:transform .2s var(--ease),box-shadow .2s,opacity .3s,filter .3s}.tc-card:before{content:"";position:absolute;inset:0 0 auto;height:6px;border-radius:10px 10px 0 0;background:linear-gradient(#c22a20,#8e1d16);border-bottom:1px solid var(--gold)}.tc-card.inlaw{box-shadow:inset 0 0 0 1px var(--gold),0 10px 22px -12px rgba(0,0,0,.7);outline:1px dashed var(--gold-deep);outline-offset:-5px}.tc-card.inlaw:before{background:linear-gradient(#e0bd72,#9a7535)}.tc-card.gone{background:#efe3c8;box-shadow:inset 0 0 0 1px var(--gold),inset 0 0 0 4px #efe3c8,inset 0 0 0 5px var(--gold-deep),0 10px 22px -12px rgba(0,0,0,.7)}.tc-card.gone.inlaw{box-shadow:inset 0 0 0 1px var(--gold),0 10px 22px -12px rgba(0,0,0,.7)}.tc-card.gone:before{background:linear-gradient(#2a1410,#12090a)}.tc-ribbon{position:absolute;top:12px;right:-20px;width:72px;height:10px;box-sizing:content-box;background:var(--lac-black);border-block:1px solid var(--gold);transform:rotate(45deg)}.tc-name{font:700 var(--t-sm)/1.25 var(--font-body),sans-serif;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tc-meta{font:italic 600 var(--t-sm)/1.3 var(--font-display),Georgia,serif;color:var(--ink-soft);font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums;display:flex;gap:8px;justify-content:center;align-items:baseline}.tc-tag{display:inline-flex;align-items:center;gap:5px;font:600 12px/1 var(--font-caps),serif;font-style:normal;letter-spacing:.06em;color:var(--gold-text)}.tc-tag:before{content:"";width:5px;height:5px;background:var(--gold-deep);transform:rotate(45deg)}@media (hover:hover){.tc-card:hover{transform:translateY(-2px)}}.tc-card.on{transform:scale(1.04);z-index:2;box-shadow:var(--filet),0 0 0 3px var(--gold-leaf),0 0 0 7px rgba(169,32,26,.4),0 18px 30px -12px #000}.tc-card.gone.on{box-shadow:inset 0 0 0 1px var(--gold),inset 0 0 0 4px #efe3c8,inset 0 0 0 5px var(--gold-deep),0 0 0 3px var(--gold-leaf),0 0 0 7px rgba(169,32,26,.4),0 18px 30px -12px #000}.tc-card.dim{opacity:.28;filter:saturate(.3)}.tc-links{position:absolute;top:0;left:0;overflow:visible;pointer-events:none;animation:fade .6s .5s both}.tc-links path{fill:none;stroke:rgba(230,194,122,.55);stroke-width:1.5;stroke-dasharray:6 5;stroke-linecap:round;vector-effect:non-scaling-stroke;transition:stroke .3s,opacity .3s}.tc-links path.lit{stroke:var(--cinnabar);stroke-width:2.5;stroke-dasharray:none;filter:drop-shadow(0 0 2px rgba(230,194,122,.6))}.tc-links path.dim{opacity:.15}.tc-loose{margin:48px 0 0 120px;padding:var(--s5);border-radius:4px;background:rgba(0,0,0,.35);border:1px dashed rgba(230,194,122,.3);box-shadow:inset 0 2px 10px rgba(0,0,0,.5)}.tc-loose h3{margin:0 0 4px;font:700 var(--t-xl)/1.25 var(--font-display),Georgia,serif;color:var(--gold-leaf)}.tc-loose h3 small{font:400 14px/1.4 var(--font-body),sans-serif;color:rgba(243,230,200,.7)}.tc-loose .pha-do{gap:24px;justify-content:flex-start}.tc-panel{position:absolute;top:calc(var(--bar-tree) + 2px);right:0;bottom:0;z-index:5;width:min(400px,100%);overflow-y:auto;overscroll-behavior:contain;container-type:inline-size;padding:36px 28px 28px;background:var(--grain),var(--ivory);border-left:8px solid var(--lac-red);box-shadow:inset 0 0 0 1px var(--gold),inset 0 0 0 4px var(--ivory),inset 0 0 0 5px var(--gold-deep),-20px 0 40px -20px #000;animation:slide var(--t-panel) var(--ease) both}.tc-panel:has(.te){width:min(460px,100%);border-left-color:var(--cinnabar)}.tc-panel:after,.tc-panel:before{content:"";position:absolute;top:10px;width:28px;height:28px;pointer-events:none;background:var(--gold-deep);-webkit-mask:var(--cloud) no-repeat center /contain;mask:var(--cloud) no-repeat center /contain}.tc-panel:before{left:10px}.tc-panel:after{right:10px;transform:scaleX(-1)}@keyframes slide{0%{opacity:0;transform:translateX(24px)}}.tc-kicker{margin:0;font:600 14px/1.4 var(--font-caps),serif;letter-spacing:.06em;color:var(--gold-text);font-feature-settings:"lnum";font-variant-numeric:lining-nums}.tc-panel h2{margin:4px 0;font:700 var(--t-5xl)/1.2 var(--font-display),Georgia,serif;color:var(--ink);text-wrap:balance}.tc-nick{margin:0;font:italic 600 var(--t-lg)/1.4 var(--font-display),Georgia,serif;color:var(--ink-soft)}.tc-panel dl{margin:var(--s5) 0 var(--s4);display:block;border-top:2px solid var(--gold)}.tc-panel dl div{display:grid;grid-template-columns:9em 1fr;grid-gap:12px;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px dotted var(--rule-strong)}.tc-panel dt{font-size:14px;color:var(--ink-soft)}.tc-panel dd{margin:0;font-size:var(--t-md);font-weight:600;color:var(--ink)}.tc-rel{margin-top:var(--s4);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tc-rel>span:first-child{display:block;width:100%;font:600 var(--t-xs)/1.4 var(--font-caps),serif;letter-spacing:.06em;color:var(--gold-text)}.tc-rel>button{min-height:36px;padding:0 12px;border:1px solid var(--rule);border-radius:4px;background:var(--ivory-deep);font:600 var(--t-sm)/1.2 var(--font-body),sans-serif;color:var(--ink);cursor:pointer;transition:border-color var(--t-micro),color var(--t-micro)}.tc-rel>button:hover{border-color:var(--gold-deep);color:var(--cinnabar-dark)}.tc-x{position:absolute;top:6px;right:42px;z-index:1;width:40px;height:40px;border:0;border-radius:3px;background:none;font:400 26px/1 var(--font-body),sans-serif;color:var(--gold-text);cursor:pointer}.tc-x:hover{background:var(--ivory-deep)}.te{display:flex;flex-direction:column;gap:0;margin-top:var(--s4)}.te-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@container (max-width: 339px){.te-fields{grid-template-columns:1fr}}.te-fields label{display:flex;flex-direction:column;gap:4px;flex:none;min-width:0;font:600 var(--t-xs)/1.3 var(--font-body),sans-serif;letter-spacing:normal;color:var(--ink-soft)}.te-check,.te-fields label.wide,.te-save{grid-column:1/-1}.te input,.te select{min-height:44px;padding:6px 12px;font-size:var(--t-md);font-weight:400;background:var(--ivory-hi);border:1.5px solid var(--rule-strong);border-radius:4px}.te-check{flex-direction:row!important;align-items:center;gap:10px!important;font-size:var(--t-sm)!important;font-weight:500!important;color:var(--ink)!important}.te .te-check input{width:20px;height:20px;min-height:0;accent-color:var(--cinnabar)}.te-save{position:-webkit-sticky;position:sticky;bottom:-28px;z-index:1;margin:4px -23px 0;padding:12px 23px;display:flex;align-items:center;justify-content:flex-end;gap:12px;background:var(--ivory);border-top:1px solid var(--rule)}.te-save .btn{min-height:44px;padding:0 18px;font-size:var(--t-sm)}.te-save .linkish{font-size:var(--t-sm);color:var(--ink-soft)}.te-save .linkish:hover{color:var(--cinnabar-dark)}.te-sec{margin-top:var(--s5);display:flex;flex-direction:column;gap:10px}.te-sec h3{margin:0;display:flex;align-items:center;gap:12px;font:600 14px/1.4 var(--font-caps),serif;letter-spacing:.06em;color:var(--cinnabar-dark)}.te-sec h3:after{content:"";flex:1 1;height:1px;background:var(--rule)}.te-sec .tc-rel{margin-top:0}.te-chip{display:inline-flex;align-items:center;border:1px solid var(--rule);border-radius:3px;background:var(--ivory-deep);transition:background-color var(--t-micro)}.te-chip button{min-height:34px;border:0;background:none;font:600 14px/1.2 var(--font-body),sans-serif;color:var(--ink);cursor:pointer;padding:0 4px 0 10px}.te-chip button:first-child:hover{color:var(--cinnabar-dark)}.te-chip .te-x{padding:0 10px 0 6px;color:var(--ink-mute);font-size:18px;font-weight:400;line-height:1}.te-chip .te-x:hover{color:var(--danger)}.te-add{display:flex;gap:6px;flex-wrap:wrap}.te-add .chip{min-height:36px}.te-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center;animation:rise .2s both}.te-inline input,.te-inline select{min-height:40px}.te-inline input{flex:1 1;min-width:140px}.te-inline select{width:auto;flex:1 1;min-width:120px}.te-inline .btn{min-height:40px;padding:0 16px;font-size:var(--t-sm)}.te-danger{padding:var(--s4);border-radius:4px;background:var(--wash-red)}.te-danger h3{color:var(--danger)}.te-danger h3:after{background:rgba(142,29,22,.25)}.te>.err,.te>.ok{margin-top:var(--s3)}.tc-edit-hint{position:absolute;bottom:20px;left:50%;z-index:4;transform:translateX(-50%);width:max-content;max-width:min(560px,90%);margin:0;padding:12px 18px;border-radius:6px;border:1px solid var(--gold);background:var(--sheen),var(--grain),var(--lac-ground);color:var(--on-lac);font-size:var(--t-sm);line-height:1.45;box-shadow:var(--lift-3);animation:fade var(--t-panel) both}.tc-list{flex:1 1;min-height:0;overflow-y:auto;padding:var(--s5) var(--s4);animation:fade .3s both}.tc-list .gen-tree{counter-reset:gen;max-width:1080px;margin:0 auto;padding:var(--s6) 40px;background:var(--grain),var(--ivory);border-radius:4px;box-shadow:var(--filet),var(--lift-3)}.gen{margin-bottom:var(--s6)}.gen:last-child{margin-bottom:0}.gen h2{margin:0 0 var(--s2);font:700 var(--t-2xl)/1.25 var(--font-display),Georgia,serif;color:var(--ink)}.gen h2:before{content:counter(gen,upper-roman);counter-increment:gen;margin-right:12px;font:600 var(--t-sm)/1 var(--font-caps),serif;letter-spacing:.06em;color:var(--cinnabar-dark)}.gen h2:after{content:"";display:block;height:9px;margin-top:8px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 9'%3E%3Cpath d='M4.5 0 9 4.5 4.5 9 0 4.5z' fill='%23c9a24f'/%3E%3C/svg%3E") 50% /9px 9px no-repeat,linear-gradient(90deg,transparent,var(--gold) calc(50% - 12px),transparent calc(50% - 12px) calc(50% + 12px),var(--gold) calc(50% + 12px),transparent) 50% /100% 1px no-repeat}.family{padding:var(--s4) 0;border-bottom:1px solid var(--rule)}.couple{display:flex;flex-wrap:wrap}.couple,.couple-item{align-items:center;gap:8px}.couple-item{display:inline-flex}.spouse-link{color:var(--cinnabar);font-size:20px}.pcard{display:inline-flex;flex-direction:column;gap:2px;padding:8px 14px 10px;scroll-margin-top:12px;background:var(--ivory-hi);border:1px solid var(--rule);border-top:6px solid var(--cinnabar);border-radius:4px;box-shadow:var(--lift-1)}.pcard b{font-size:var(--t-md);color:var(--ink)}.pcard small{font-size:14px;color:var(--ink-soft);font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.pcard.inlaw{border-top-color:var(--gold);border-style:solid}.pcard:target{box-shadow:var(--focus)}.kids{margin:10px 0 0;font-size:var(--t-sm);color:var(--ink-soft)}.kids a{color:var(--cinnabar-dark);text-underline-offset:.2em}@media (max-width:600px){.tc-bar{flex-wrap:wrap;gap:8px 10px;padding-block:8px}.tc-search{order:5;flex-basis:100%;max-width:none}.tc-zoom{margin-left:auto}.tc-help{display:none}.tc-panel,.tc-panel:has(.te){top:auto;left:0;right:0;bottom:0;width:auto;height:62dvh;border-left:0;border-top:6px solid var(--lac-red);border-radius:10px 10px 0 0;padding:28px 18px 20px}.tc-panel:has(.te){border-top-color:var(--cinnabar)}.tc-panel:before{content:none}.tc-panel:after{content:"";top:8px;left:50%;right:auto;width:40px;height:4px;border-radius:2px;transform:translateX(-50%);background:var(--rule-strong);-webkit-mask:none;mask:none}.te-save{bottom:-20px;margin-inline:-13px;padding-inline:13px}.tc-list{padding:var(--s3) 0}.tc-list .gen-tree{padding:var(--s5) var(--s4)}}@media (prefers-reduced-motion:reduce){.tc-card.on,.tc-card:hover{transform:none}.tc .pha-do ul ul:before,.tc .pha-do ul ul>li:after,.tc .pha-do ul ul>li:before{transition-delay:0s!important}}.te-other{flex-basis:100%;gap:6px;padding:8px 10px;border-left:3px solid var(--gold);background:rgba(201,162,79,.08);border-radius:0 6px 6px 0}.te-other,.te-other label{display:flex;flex-direction:column}.te-other label{gap:3px;font-size:var(--t-xs);color:var(--ink-soft)}.te-other input,.te-other select{width:100%}