.laso-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:14px 0}.laso-form label{display:grid;gap:4px;font-size:.9rem;color:var(--muted, #6b6153);grid-column:span 3;align-content:start}.laso-form .span2{grid-column:span 2}.laso-form .form-wide{grid-column:1 / -1}.laso-form input,.laso-form select{width:100%;min-height:46px;padding:8px 12px;border-radius:12px;border:2px solid var(--accent-soft);background:var(--card);color:var(--ink);font:inherit}.laso-form input:disabled{opacity:.45}.laso-form .check{grid-column:1 / -1;display:flex;align-items:center;gap:10px;color:var(--ink);min-height:44px}.laso-form .check input{width:22px;height:22px;min-height:0;flex:none}.laso-form .submit-laso{grid-column:1 / -1}.laso-form .hint{grid-column:1 / -1;margin:-4px 0 0}.laso-output{margin:20px auto 0;max-width:100%}.board-scroll{position:relative;overflow-x:auto;overflow-y:hidden;width:100%;max-width:750px;margin:0 auto;padding-bottom:6px}.board-sizer{position:relative;margin:0 auto}.board-shell{position:absolute;top:0;left:0;width:750px;border:2px solid #000;background:#f4efe6;color:#000;font:600 12px/1.27 Arial,Tahoma,sans-serif;transform-origin:top left}.laso-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,242px)}.house-cell{position:relative;z-index:3;min-width:0;border:1px solid #000;padding:5px 5px 22px;overflow:hidden;background:#f4efe6;cursor:pointer;transition:opacity .16s ease,background .16s ease,box-shadow .16s ease}.house-cell:focus-visible{outline:3px solid #7c3aed;outline-offset:-4px}.house-cell.is-selected{z-index:4;background:#fff5dc;box-shadow:inset 0 0 0 3px #db2525}.house-cell.is-tam-hop{z-index:4;background:#f3fae9;box-shadow:inset 0 0 0 3px #4d9b4b}.house-cell.is-opposite{z-index:4;background:#f2edff;box-shadow:inset 0 0 0 3px #8064bd}.house-cell.is-dimmed{opacity:.3}.top-1{grid-area:1 / 1}.top-2{grid-area:1 / 2}.top-3{grid-area:1 / 3}.top-4{grid-area:1 / 4}.mid-left-1{grid-area:2 / 1}.mid-right-1{grid-area:2 / 4}.mid-left-2{grid-area:3 / 1}.mid-right-2{grid-area:3 / 4}.bottom-1{grid-area:4 / 1}.bottom-2{grid-area:4 / 2}.bottom-3{grid-area:4 / 3}.bottom-4{grid-area:4 / 4}.house-header,.house-subhead,.house-footer{display:flex;justify-content:space-between;gap:4px}.house-header{align-items:baseline;font-weight:700;white-space:nowrap}.house-subhead{margin-top:3px;font-weight:600}.palace{font-size:12px;font-weight:800;text-align:center}.palace-0,.palace-11{color:red}.palace-1,.palace-4,.palace-7,.palace-10{color:#ff8c00}.palace-2,.palace-3{color:#999}.palace-8,.palace-9{color:#093}.main-stars{min-height:17px;margin:1px 0 3px;text-align:center}.house-stars-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:5px}.house-stars-left,.house-stars-right{min-width:0}.star-line{display:block;min-width:0;margin:1px 0;font-size:10.5px;font-weight:600;line-height:1.18;overflow-wrap:break-word}.star-bold{font-weight:800}.star-red{color:red}.star-green{color:#008f3a}.star-orange{color:#ff8c00}.star-gray{color:#999}.star-black{color:#000}.house-footer{position:absolute;right:5px;bottom:5px;left:5px;font-size:11px;font-weight:700;white-space:nowrap}.center-panel{position:relative;z-index:1;grid-area:2 / 2 / 4 / 4;overflow:hidden;border:1px solid #000;background:#f4efe6}.center-dragon-watermark{position:absolute;z-index:0;inset:18px;background:url(/bg/dragon.webp) center / contain no-repeat;opacity:.9;pointer-events:none}.center-logo{position:absolute;z-index:2;right:20px;bottom:24px;width:62px;height:62px;object-fit:contain;pointer-events:none}.center-content{position:relative;z-index:2;width:330px;margin:60px auto 0;padding:0 10px;background:#f4efe694}.board-shell .slogan{display:flex;flex-direction:column;align-items:center;gap:2px;color:#000;font-size:13px;font-weight:800;line-height:1.3;text-align:center;-webkit-text-stroke:.5px currentColor}.board-shell .slogan span{white-space:nowrap}.board-shell .slogan a{color:#1414ff;font-size:15px;font-weight:800;text-decoration:none;-webkit-text-stroke:.5px currentColor}.board-shell .brand{display:block;overflow:hidden;color:#801616;font-size:11px;font-weight:700;text-align:center;text-decoration:none}.center-content h2{margin:16px 0 10px;font:900 34px/1.15 Merienda,Brush Script MT,cursive;text-align:center;color:#000}.center-info{display:grid;grid-template-columns:99px 1fr;gap:4px;margin:6px 0;font-size:12px}.center-info b{font-weight:800}.center-info span{font-weight:600}.center-branch-labels{position:absolute;inset:0;z-index:3;pointer-events:none}.branch-label{position:absolute;font-size:12px;font-weight:700}.label-mao{top:0;left:4px}.label-thin{top:0;left:84px}.label-ty-snake{top:0;right:90px}.label-ngo{top:0;right:5px}.label-dan{top:115px;left:4px}.label-mui{top:115px;right:4px}.label-suu{bottom:112px;left:4px}.label-than{bottom:112px;right:4px}.label-ty{bottom:0;left:16px}.label-hoi{bottom:0;left:95px}.label-tuat{bottom:0;right:90px}.label-dau{bottom:0;right:5px}.board-marker{position:absolute;z-index:6;width:46px;height:14px;border:1px solid #000;background:#000;color:#fff;font-size:9px;font-weight:700;line-height:12px;text-align:center;transform:translate(-50%,-50%);pointer-events:none}.board-marker.is-combined{width:72px}.tam-phuong-overlay{position:absolute;z-index:5;inset:0;width:100%;height:100%;pointer-events:none}.tam-phuong-overlay line{stroke-width:1.75;stroke-linecap:round;vector-effect:non-scaling-stroke}.tam-hop-line{stroke:#7846b49e}.opposite-line{stroke:#ff5a3cb8;stroke-dasharray:7 5}.tam-phuong-bar{width:100%;max-width:750px;margin:0 auto 8px;color:#584c40;font-size:12px;min-height:30px;padding:6px 10px;border:1px solid #ddcfbd;border-radius:5px;background:#fffdf8;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.tam-phuong-bar button{margin-left:auto;min-height:0;border:1px solid #b44d38;border-radius:4px;background:#fff8f3;color:#8b2e1e;cursor:pointer;padding:4px 7px;font-size:11px}.board-shell .legend{display:flex;min-height:31px;align-items:center;gap:8px;border-top:1px solid #000;padding:4px 6px;font-size:11px;font-weight:600;white-space:nowrap;background:#f4efe6;color:#000}.board-shell .legend i{display:inline-block;width:12px;height:12px;margin-right:-5px;border-radius:0}.legend .kim{background:#aaa}.legend .moc{background:#093}.legend .thuy{background:#000}.legend .hoa{background:red}.legend .tho{background:#f5a000}.legend .laso-code{flex-shrink:0;margin-left:auto;color:#000;font-size:12px}.detail h3{margin:12px 0 4px;font-size:1.05rem}.detail .star{margin:0 0 10px}.overview h2{margin-top:0}.overview h3{margin:18px 0 6px;font-size:1.05rem}.overview p{margin:0 0 10px;line-height:1.65}.share-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 6px}.sb{font-family:inherit;font-size:13px;font-weight:600;line-height:1.2;padding:7px 13px;border-radius:8px;cursor:pointer;color:#7a1818;background:#fff8ea;border:1px solid #d9b46a}.sb:hover{background:#fff0d2}.sb:disabled{opacity:.6;cursor:default}.sb-pri{color:#ffe9a8;background:linear-gradient(#a82222,#8a1616);border-color:#7a1212}.sb-pri:hover{background:linear-gradient(#b52a2a,#941a1a)}.sb-wrap{position:relative}.sb-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:210px;padding:6px;background:#fff;border:1px solid #e6cfa0;border-radius:10px;box-shadow:0 8px 22px #3c141433;display:grid;gap:2px}.sb-menu a,.sb-menu button{display:block;width:100%;text-align:left;box-sizing:border-box;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:500;line-height:1.2;color:#2a1a1a;background:none;border:0;border-radius:6px;text-decoration:none;cursor:pointer}.sb-menu a:hover,.sb-menu button:hover,.sb-menu a:focus-visible,.sb-menu button:focus-visible{background:#fbeccd;color:#7a1818}.sb-note{margin:2px 6px 4px;font-size:11.5px;line-height:1.35;color:#6b5a5a}.share-out{margin-bottom:6px}.share-out img{display:block;margin:6px 0;border-radius:10px}.share-out .row{display:flex;gap:8px;margin:6px 0}.share-out .btn,.share-out button{font-size:13px;padding:7px 13px}.school-switch{display:flex;gap:.5rem;flex-wrap:wrap;margin:.75rem 0}.school-switch a{padding:.35rem .8rem;border:1px solid #c9b88a;border-radius:999px;text-decoration:none;font-size:.92rem}.school-switch a[aria-current=page]{background:#f3ead2;font-weight:600}.school-tabs{margin:.5rem 0 1rem}.school-pick{display:grid;gap:4px;font-size:.9rem;color:var(--muted, #6b6153)}.school-pick select{width:100%;min-height:46px;padding:8px 12px;border-radius:12px;border:2px solid var(--accent-soft);background:var(--card);color:var(--ink);font:inherit}.reading-nav,.palace-nav{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}.palace-nav{margin-top:0}.reading-nav .chip[aria-pressed=true],.palace-nav .chip[aria-pressed=true]{background:#f3ead2;border-color:#c9b88a;font-weight:600}.han .timeline{margin:.5rem 0 1rem;padding-left:1.1rem}.han .timeline li{padding:.15rem 0}.han .timeline li.now{font-weight:700}.year-nav{display:flex;align-items:center;justify-content:center;gap:.8rem;margin:.5rem 0;flex-wrap:wrap}@media(max-width:600px){.sb-menu{left:auto;right:0}}.sb-switch{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#4a2a2a;cursor:pointer;user-select:none}.sb-switch input{position:absolute;opacity:0;width:1px;height:1px}.sb-track{position:relative;width:36px;height:20px;border-radius:999px;background:#c9bfb0;transition:background .15s;flex:none}.sb-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .15s}.sb-switch input:checked+.sb-track{background:#a82222}.sb-switch input:checked+.sb-track:after{transform:translate(16px)}.sb-switch input:focus-visible+.sb-track{outline:3px solid #7c3aed;outline-offset:2px}.hide-birth .center-info.birth span{font-size:0}.hide-birth .center-info.birth span:after{content:"••••••";font-size:12px}.overview h2,#han h2,#detail h2{margin:0 0 14px;padding:11px 16px;border-radius:4px;text-align:center;background:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 40 40%22%3E%3Cdefs%3E%3ClinearGradient id=%22g%22 x1=%220%22 y1=%220%22 x2=%221%22 y2=%221%22%3E%3Cstop offset=%220%22 stop-color=%22%23ffe27a%22/%3E%3Cstop offset=%221%22 stop-color=%22%23f0a500%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform=%22translate%280 0%29 scale%281 1%29%22%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2218.2%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%2222%22 cy=%225%22 r=%228.7%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%225%22 cy=%2222%22 r=%228.7%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%2232%22 cy=%222%22 r=%224.8%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%222%22 cy=%2232%22 r=%224.8%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2217%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%2222%22 cy=%225%22 r=%227.5%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%225%22 cy=%2222%22 r=%227.5%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%2232%22 cy=%222%22 r=%223.6%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%222%22 cy=%2232%22 r=%223.6%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%227%22 cy=%227%22 r=%224%22 fill=%22%239a1006%22/%3E%3Ccircle cx=%227%22 cy=%227%22 r=%222%22 fill=%22%23f7c948%22/%3E%3C/g%3E%3C/svg%3E") left top / 26px 26px no-repeat,url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 40 40%22%3E%3Cdefs%3E%3ClinearGradient id=%22g%22 x1=%220%22 y1=%220%22 x2=%221%22 y2=%221%22%3E%3Cstop offset=%220%22 stop-color=%22%23ffe27a%22/%3E%3Cstop offset=%221%22 stop-color=%22%23f0a500%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform=%22translate%2840 0%29 scale%28-1 1%29%22%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2218.2%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%2222%22 cy=%225%22 r=%228.7%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%225%22 cy=%2222%22 r=%228.7%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%2232%22 cy=%222%22 r=%224.8%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%222%22 cy=%2232%22 r=%224.8%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2217%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%2222%22 cy=%225%22 r=%227.5%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%225%22 cy=%2222%22 r=%227.5%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%2232%22 cy=%222%22 r=%223.6%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%222%22 cy=%2232%22 r=%223.6%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%227%22 cy=%227%22 r=%224%22 fill=%22%239a1006%22/%3E%3Ccircle cx=%227%22 cy=%227%22 r=%222%22 fill=%22%23f7c948%22/%3E%3C/g%3E%3C/svg%3E") right top / 26px 26px no-repeat,url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 40 40%22%3E%3Cdefs%3E%3ClinearGradient id=%22g%22 x1=%220%22 y1=%220%22 x2=%221%22 y2=%221%22%3E%3Cstop offset=%220%22 stop-color=%22%23ffe27a%22/%3E%3Cstop offset=%221%22 stop-color=%22%23f0a500%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform=%22translate%280 40%29 scale%281 -1%29%22%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2218.2%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%2222%22 cy=%225%22 r=%228.7%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%225%22 cy=%2222%22 r=%228.7%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%2232%22 cy=%222%22 r=%224.8%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%222%22 cy=%2232%22 r=%224.8%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2217%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%2222%22 cy=%225%22 r=%227.5%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%225%22 cy=%2222%22 r=%227.5%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%2232%22 cy=%222%22 r=%223.6%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%222%22 cy=%2232%22 r=%223.6%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%227%22 cy=%227%22 r=%224%22 fill=%22%239a1006%22/%3E%3Ccircle cx=%227%22 cy=%227%22 r=%222%22 fill=%22%23f7c948%22/%3E%3C/g%3E%3C/svg%3E") left bottom / 26px 26px no-repeat,url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 40 40%22%3E%3Cdefs%3E%3ClinearGradient id=%22g%22 x1=%220%22 y1=%220%22 x2=%221%22 y2=%221%22%3E%3Cstop offset=%220%22 stop-color=%22%23ffe27a%22/%3E%3Cstop offset=%221%22 stop-color=%22%23f0a500%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform=%22translate%2840 40%29 scale%28-1 -1%29%22%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2218.2%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%2222%22 cy=%225%22 r=%228.7%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%225%22 cy=%2222%22 r=%228.7%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%2232%22 cy=%222%22 r=%224.8%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%222%22 cy=%2232%22 r=%224.8%22 fill=%22%23b86e00%22/%3E%3Ccircle cx=%220%22 cy=%220%22 r=%2217%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%2222%22 cy=%225%22 r=%227.5%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%225%22 cy=%2222%22 r=%227.5%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%2232%22 cy=%222%22 r=%223.6%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%222%22 cy=%2232%22 r=%223.6%22 fill=%22url%28%23g%29%22/%3E%3Ccircle cx=%227%22 cy=%227%22 r=%224%22 fill=%22%239a1006%22/%3E%3Ccircle cx=%227%22 cy=%227%22 r=%222%22 fill=%22%23f7c948%22/%3E%3C/g%3E%3C/svg%3E") right bottom / 26px 26px no-repeat,url(/ui/banner-rong.webp) var(--bx, center) center / clamp(320px,100%,500px) 100% no-repeat,linear-gradient(#a30f04,#860a02);color:#fff;font-family:Merienda,Georgia,serif;font-weight:900;font-size:1.05rem;line-height:1.25;text-shadow:0 2px 3px rgba(0,0,0,.8),0 0 2px rgba(0,0,0,.9)}.vm-card h2{margin:0 0 4px}.vm-card h3{margin:14px 0 4px;font-size:1rem}.vm-coso{font-size:.82rem;margin-top:14px}.vm-note{font-size:.85rem}.vm-cungs{margin-top:14px}.vm-cung p{margin:6px 0 0}.viz{margin:0 0 22px}.viz h3{margin:0 0 6px}.viz>p{margin:0 0 10px}.viz-basis{margin:10px 0 0;font-size:.85rem;line-height:1.5}.viz-note{margin:6px 0 0}.viz-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.rd{display:block;width:100%;max-width:440px;height:auto;margin:0 auto}.rd-ring{fill:none;stroke:#96785a47;stroke-width:1}.rd-spoke{stroke:#96785a40;stroke-width:1}.rd-area{fill:#d4a63a61;stroke:#b8741a;stroke-width:2;stroke-linejoin:round}.rd-dot{fill:#a82222}.rd-hollow{fill:var(--card);stroke:#a82222;stroke-width:1.6}.rd-lab{font-size:11.5px;fill:currentColor}.rd-menh{font-weight:700;fill:#a82222}.viz-data{margin-top:8px}.viz-data summary{cursor:pointer;font-weight:600;min-height:36px;display:flex;align-items:center}.viz-data table{width:100%;border-collapse:collapse;font-size:.9rem}.viz-data th,.viz-data td{padding:6px 8px;text-align:left;border-bottom:1px solid rgba(150,120,90,.22);vertical-align:top}.dv-strip{list-style:none;margin:0;padding:0 0 6px;display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.dv-strip li{flex:0 0 128px;display:flex;flex-direction:column;gap:3px;padding:10px;border-radius:8px;border:1px solid rgba(150,120,90,.35);background:#d4a63a14;scroll-snap-align:start;font-size:.88rem}.dv-strip li.now{border:2px solid #a82222;background:#a822221a}.dv-age{font-weight:700}.dv-stars{font-size:.82rem;line-height:1.35}.dv-now{margin-top:auto;font-size:.78rem;font-weight:700;color:#a82222}.tv-map{border-collapse:separate;border-spacing:0;min-width:100%;font-size:.85rem}.tv-map th,.tv-map td{padding:5px 6px;border-bottom:1px solid rgba(150,120,90,.2);text-align:center;vertical-align:middle;min-width:66px}.tv-map thead th{position:sticky;top:0;background:var(--card)}.tv-map thead .yr{display:block;font-weight:700}.tv-map tbody th{position:sticky;left:0;z-index:1;text-align:left;min-width:84px;background:var(--card);font-weight:600}.tv-map thead th:first-child{position:sticky;left:0;z-index:2;text-align:left}.tv-map .cur{background:#d4a63a33}.tv-map thead th.cur{border-top:2px solid #a82222}.hoa{display:inline-block;margin:1px;padding:1px 7px;border-radius:999px;color:#fff;font-size:.78rem;font-weight:700}.hoa-loc{background:#2f8f4e}.hoa-quyen{background:#2a6fb0}.hoa-khoa{background:#1f8a8a}.hoa-ky{background:#b8741a}.menh-dot{display:inline-block;width:9px;height:9px;margin:0 3px 1px 0;border-radius:50%;background:#a82222}@media(prefers-color-scheme:dark){.rd-menh,.dv-now{fill:#ffd66b;color:#ffd66b}.dv-strip li.now{border-color:#ffd66b}}
