@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&family=Noto+Serif:wght@400;500;600;700&display=swap');
:root{--paper:#f7f3e9;--ink:#3d372e;--muted:#8b8171;--line:#ddd3bf;--red:#893b30;--serif:'Noto Serif',Georgia,serif;--sans:'Be Vietnam Pro',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:13px/1.65 var(--sans);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23887755' opacity='.035' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}button,input,select{font:inherit}button,a,input,select,summary{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}header{max-width:1440px;margin:auto;padding:24px 42px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:13px;font:600 19px var(--serif);letter-spacing:2px}.brand small{display:block;font:8px var(--sans);letter-spacing:1.7px;margin-top:8px;color:var(--muted)}.seal{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--red);outline:1px solid var(--red);outline-offset:-4px;background:var(--red);color:#f7e9ce;line-height:1.15;padding:7px 10px;font:20px var(--serif);text-align:center}nav{display:flex;gap:32px}nav a{padding:10px 0;font-size:12px}nav .active{color:var(--red);border-bottom:2px solid var(--red)}.header-note{font:italic 12px var(--serif);color:var(--muted)}main{max-width:1300px;margin:auto;padding:0 40px}.intro{text-align:center;padding:44px 0 25px;position:relative}.eyebrow{font-size:10px;color:var(--red);letter-spacing:3px;display:flex;align-items:center;justify-content:center;gap:12px}.eyebrow>span{width:26px;height:1px;background:#bfa78c}h1{font:500 43px/1.4 var(--serif);margin:14px 0}h1 em{font-weight:400;color:var(--red)}.intro p{color:var(--muted);font-size:12px;line-height:1.9}.intro-art{display:flex;align-items:center;justify-content:center;gap:18px;margin:22px auto 0;color:#9c8b71}.intro-art i{width:70px;height:1px;background:linear-gradient(90deg,transparent,#c5b79d,transparent)}.intro-art b{font-size:21px;font-weight:400}.workspace{display:grid;grid-template-columns:330px minmax(0,1fr);gap:30px;align-items:start;margin-top:6px}form{border:1px solid var(--line);background:#fffdf7a8;padding:24px;box-shadow:0 4px 16px #5a412005}.section-heading{display:flex;align-items:center;gap:13px;margin-bottom:25px}.chapter{font:24px var(--serif);color:var(--red);padding-right:12px;border-right:1px solid var(--line)}h2{font:600 20px var(--serif);margin:0}.section-heading p{font-size:10px;color:var(--muted);margin:6px 0 0}label,legend{font-size:11px;font-weight:500}label{display:block}.optional{float:right;font-size:9px;font-weight:400;color:var(--muted)}input:not([type=radio]):not([type=checkbox]),select{display:block;width:100%;background:#fffdf8;border:1px solid var(--line);border-radius:3px;padding:10px;color:var(--ink);margin-top:7px;min-height:41px;outline:none}input:focus,select:focus{border-color:var(--red)!important;box-shadow:0 0 0 2px #893b3014}input::placeholder{color:#aaa194;font-size:11px}fieldset{border:0;margin:18px 0;padding:0}legend{padding:0;margin-bottom:7px}.segments{display:flex;border:1px solid var(--line);padding:3px;border-radius:3px;background:#eee9dc77}.segments label{width:50%;position:relative}.segments input{position:absolute;opacity:0}.segments span{display:block;text-align:center;padding:7px;border-radius:2px;color:var(--muted)}.segments input:checked+span{color:var(--red);background:#fffdf8;box-shadow:0 1px 4px #56432310}.segments input:focus-visible+span{outline:2px solid var(--red)}.date-row{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:9px}.time-row{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:9px;margin-top:17px}.hour-note{align-self:end;font-size:11px;color:var(--red);padding:5px 0 7px 4px}.hour-note small{display:block;font-size:8px;color:var(--muted)}.field-note{font-size:9px;color:var(--muted);margin:9px 0 0;line-height:1.8}.divider{border-top:1px solid var(--line);margin:21px 0}summary{cursor:pointer;font:600 13px var(--serif);list-style:none}summary span{float:right;font:14px var(--sans)}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0}.check{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:400}.check input{accent-color:var(--red);width:13px;height:13px;margin:0}.annual-year{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px}.annual-year input{max-width:90px;min-height:30px!important;padding:5px 9px!important;margin:0!important}.primary{width:100%;margin-top:24px;padding:13px 12px;border:1px solid #753025;background:var(--red);color:#fff6e6;display:flex;align-items:center;justify-content:space-between;border-radius:3px;font-size:12px}.primary:hover{background:#713026}.primary span:first-child{font-size:19px}.privacy{text-align:center;font-size:8px;color:var(--muted);margin:12px 0 0}.form-error{font-size:11px;color:var(--red);margin-bottom:0}.quote{text-align:center;padding:20px;color:var(--muted)}.quote>span{font:35px var(--serif);color:#baa687}.quote p{font:italic 16px/1.8 var(--serif);margin:-6px 0 14px}.quote small{font-size:8px;letter-spacing:2px}.result-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:47px;font-size:9px;letter-spacing:1px}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--red);margin-right:7px}.tools{display:flex;gap:6px}.tools button{border:1px solid var(--line);background:transparent;border-radius:3px;padding:6px 9px;font-size:11px;color:#766b5a}.tools button:hover{background:#eee7d8}.chart-scroll{overflow:auto;padding:5px;background:#fbf8ef;border:1px solid #b8a483;box-shadow:0 3px 14px #523b1910}.chart{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,175px);border:1px solid #a9926b;min-width:570px;background:#fcf9f0;font-family:var(--serif)}.palace{border:0;border-right:1px solid #bca987;border-bottom:1px solid #bca987;background:transparent;text-align:left;padding:10px 10px 7px;display:flex;flex-direction:column;position:relative;color:var(--ink);font-family:var(--serif)}.palace:hover,.palace.selected{background:#eee5d399;box-shadow:inset 0 0 0 1px #b68f60}.palace-top{display:flex;justify-content:space-between;align-items:center;font-size:8px;color:#8b7b60}.palace h3{font-size:11px;letter-spacing:.4px;color:#6a4d30;margin:6px 0 8px;text-transform:uppercase}.stars{display:flex;flex-direction:column;gap:3px;font-size:10px;line-height:1.55}.stars strong{font-weight:600;font-size:11px}.wood{color:#52775a}.fire{color:#a24b3d}.water{color:#425e80}.earth{color:#997334}.metal{color:#807c71}.star-pair{display:flex;justify-content:space-between;font-size:9px;color:#786d5d}.palace-bottom{margin-top:auto;display:flex;justify-content:space-between;font-size:8px;color:#9a8a72}.hua{display:inline-block;font:8px var(--sans);padding:2px 5px;background:#e7eadf;color:#58704f;border-radius:2px;width:max-content;margin-top:4px}.chart-center{grid-column:2/4;grid-row:2/4;border-right:1px solid #bca987;border-bottom:1px solid #bca987;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:22px;background:radial-gradient(ellipse,#efe7d322,transparent)}.center-symbol{font-size:30px;line-height:1;color:#9c8053}.chart-center .center-kicker{font:8px var(--sans);letter-spacing:2px;color:#a38961;margin:13px 0 10px}.chart-center h2{font:600 24px var(--serif);color:var(--red);letter-spacing:2px}.chart-center h4{font:500 16px var(--serif);margin:14px 0 5px;overflow-wrap:anywhere;max-width:100%}.birth-info{font-size:10px;color:#8a7960;margin:4px 0 14px}.center-data{border-top:1px solid var(--line);padding-top:13px;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:5px 13px;text-align:left;font-size:10px}.center-data span{color:#93836b}.center-data b{font-weight:500}.center-stamp{font:8px var(--sans);color:var(--red);border:1px solid #ba8e7c;padding:4px 10px;margin-top:18px;letter-spacing:1px}.chart-bottom{display:flex;justify-content:space-between;padding:15px 0 9px;font-size:9px;color:var(--muted)}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;margin:0 4px 0 12px}.dot:first-child{margin-left:0}.notice{font-size:9px;color:var(--muted);padding:10px 13px;background:#ebe5d666;line-height:1.8;margin:7px 0 18px}.palace-info{display:flex;gap:17px;align-items:center;border-top:1px solid var(--line);padding:18px 0}.palace-info>span{font:24px var(--serif);color:#af9672;white-space:nowrap}.palace-info h3{font:500 14px var(--serif);margin:0 0 6px}.palace-info p{font-size:10px;color:var(--muted);margin:0;line-height:1.8}.guide{border-top:1px solid var(--line);margin-top:45px;padding:42px 0}.guide h2{text-align:center;margin:13px 0 30px;font-size:25px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.guide article{padding:0 20px;border-right:1px solid var(--line)}.guide article:first-child{padding-left:0}.guide article:last-child{border:0}.guide article>span{font:17px var(--serif);color:#b39a76}.guide h3{font:500 16px var(--serif);margin:12px 0}.guide p{font-size:11px;line-height:1.9;color:var(--muted)}.rules{padding:27px;background:#ede7d880;border:1px solid var(--line);display:flex;gap:23px;align-items:center;margin-bottom:45px}.rules .seal{flex-shrink:0;background:transparent;color:var(--red);font-size:23px}.rules h2{font-size:17px}.rules p{font-size:10px;line-height:1.9;color:var(--muted);max-width:740px;margin-bottom:0}.rule-tag{font-size:8px;letter-spacing:1px;white-space:nowrap;color:var(--red);margin-left:auto}footer{border-top:1px solid var(--line);padding:23px 42px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:9px}footer>span:first-child{font:12px var(--serif);letter-spacing:1px}footer p{margin:0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:12px 22px;border-radius:4px;display:none;z-index:5;font-size:12px}.mono{filter:grayscale(1)}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--red);outline-offset:3px}@media(min-width:1400px){.chart{grid-template-rows:repeat(4,185px)}}@media(max-width:1050px){.header-note{display:none}main{padding:0 25px}.workspace{grid-template-columns:290px minmax(0,1fr);gap:20px}form{padding:20px}.chart{grid-template-rows:repeat(4,165px)}.rule-tag{display:none}}@media(max-width:760px){header{padding:17px 20px}.brand{font-size:15px}.brand small{font-size:6px;letter-spacing:1px}nav{gap:15px}nav a{font-size:10px}nav a:last-child{display:none}main{padding:0 18px}.intro{padding-top:33px}h1{font-size:29px}.intro p{font-size:11px}.workspace{grid-template-columns:1fr}.quote{display:none}form{padding:22px}.section-heading{margin-bottom:20px}.chart{grid-template-rows:repeat(4,165px)}.result-toolbar{margin-top:3px}.guide{margin-top:25px;padding:30px 0}.guide h2{font-size:20px}.guide-grid{grid-template-columns:1fr;gap:18px}.guide article,.guide article:first-child{padding:0 0 14px;border-right:0;border-bottom:1px solid var(--line)}.guide h3{display:inline-block;margin:0 0 0 12px}.guide p{margin-bottom:0}.rules{padding:20px;gap:16px}.rules h2{font-size:15px}.rules .seal{display:none}footer{padding:22px 18px;gap:10px;flex-wrap:wrap}footer p{order:3;width:100%}.chart-scroll{margin:0 -4px}.tools button{padding:6px 8px}}@media print{body{background:#fff}header,.intro,aside,.result-toolbar,.chart-bottom,.notice,.palace-info,.guide,.rules,footer,#toast{display:none!important}main{padding:0;max-width:none}.workspace{display:block;margin:0}.chart-scroll{overflow:visible;border:none;box-shadow:none;padding:0}.chart{min-width:0;grid-template-rows:repeat(4,230px);print-color-adjust:exact}.palace{padding:14px}.stars{font-size:12px}.palace h3{font-size:13px}.chart-center{padding:30px}@page{size:A4 portrait;margin:12mm}}

/* ===== Lá số an sao (v2) ===== */
.chart{min-width:800px;grid-template-rows:repeat(4,minmax(215px,auto));position:relative;font-size:10.5px}
.palace{padding:7px 8px 6px;gap:0;overflow:hidden;line-height:1.35}
.palace.menh{background:#f1e9d6}
.palace.related{box-shadow:inset 0 0 0 2px #cdb48c}
.palace:hover,.palace.selected{background:#eadfc7;box-shadow:inset 0 0 0 2px #b68f60}
.palace-top{font-size:9.5px;align-items:flex-start}
.palace-top .canchi{font-weight:600;letter-spacing:.2px}
.palace-top .daihan{font-weight:700;font-size:12px;color:#6a4d30;background:#fff9ea;border:1px solid #dccbab;border-radius:3px;padding:0 5px;min-width:22px;text-align:center}
.palace-top .marks{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}
.mark{display:inline-block;font:700 8px/1 var(--sans);letter-spacing:.5px;padding:3px 5px;border-radius:2px;color:#fff6e6;background:#893b30;font-style:normal;white-space:nowrap}
.mark.tieu{background:#5d6f88}
.palace h3{text-align:center;font-size:12.5px;letter-spacing:.8px;margin:5px 0 4px;color:#6a4d30;display:flex;justify-content:center;align-items:center;gap:6px}
.palace.than h3{color:var(--red)}
.palace h3 b{font:700 8px var(--sans);letter-spacing:1px;color:#fff6e6;background:var(--red);padding:2px 5px;border-radius:2px;text-transform:uppercase}
.palace .main{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 10px;margin-bottom:5px;min-height:18px}
.palace .main .star{font-size:13px;font-weight:700}
.palace .vcd{font-style:italic;color:#9a8a72;font-size:11px}
.star{display:block;white-space:nowrap}
.star i{font-style:normal;font-size:8.5px;opacity:.75;margin-left:2px;vertical-align:1px}
.star.bold{font-weight:700}
.star.luu{font-style:italic;opacity:.9}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 6px;flex:1}
.col{display:flex;flex-direction:column;gap:1px}
.col.bad{text-align:right}
.palace-bottom{font-size:9.5px;color:#8b7b60;margin-top:6px;align-items:center}
.palace-bottom .ts{font-weight:600;color:#6a4d30}
.edge-tag{position:absolute;transform:translate(-50%,-50%);font:700 8.5px var(--sans);letter-spacing:1px;text-transform:uppercase;color:#fff6e6;background:var(--red);padding:4px 9px;border-radius:2px;pointer-events:none;z-index:2;box-shadow:0 1px 3px #0003;white-space:nowrap}
.edge-tag.triet{background:#3d372e}
.chart-center{padding:14px 18px;justify-content:flex-start}
.chart-center h4{margin:8px 0 4px;font-size:18px}
.birth-info{font-size:10.5px;line-height:1.8;margin:0 0 8px}
.birth-info .duong{color:var(--red);font-weight:600}.birth-info .am{color:#425e80;font-weight:600}
.tru{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%;margin-bottom:10px}
.tru span{border:1px solid var(--line);background:#fffdf7aa;padding:5px 2px;font-size:10.5px;font-weight:600;color:#6a4d30}
.tru small{display:block;font:8px var(--sans);letter-spacing:1px;color:#a38961;text-transform:uppercase;margin-bottom:2px}
.center-data{font-size:10.5px;gap:4px 10px}
.center-data b{font-weight:600}
.center-stamp{margin-top:12px}
.legend{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.legend .dot{margin:0 4px 0 0}
.legend .sep{width:1px;height:12px;background:var(--line)}
.legend .mark{font-size:7px;padding:2px 4px;margin-right:4px}
.luu-check{margin-top:8px}
.notice b{font-weight:600;color:var(--ink)}
.palace-info .detail{flex:1}
.palace-info h3 small{font:10px var(--sans);color:var(--muted);margin-left:6px}
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:12px}
.detail-grid h4{font:600 9px var(--sans);letter-spacing:1.5px;text-transform:uppercase;color:#a38961;margin:0 0 6px}
.detail-grid ul{list-style:none;margin:0;padding:0;font-size:11px;line-height:1.7}
.detail-grid li small{color:var(--muted);font-size:9px}
.detail-grid li .bold{font-weight:700}
.detail-grid li.none{color:var(--muted);font-style:italic}
@media(max-width:1050px){.chart{grid-template-rows:repeat(4,minmax(205px,auto))}.detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.chart{grid-template-rows:repeat(4,minmax(205px,auto))}.palace-info{align-items:flex-start}.palace-info>span{display:none}}
@media print{.chart{min-width:0;grid-template-rows:repeat(4,minmax(200px,auto));font-size:10px}.palace{padding:8px}.palace .main .star{font-size:12px}.edge-tag{print-color-adjust:exact}.palace.menh{print-color-adjust:exact}}
.result{min-width:0}
@media(max-width:760px){.workspace{grid-template-columns:minmax(0,1fr)}.chart-scroll{margin:0}.legend{gap:5px 10px}}
.palace-top .canchi small{font-size:9px;color:#a38961;font-weight:400}

/* tương phản màu sao */
.chart .wood{color:#1f6b34}.chart .fire{color:#b7261a}.chart .water{color:#1d3f78}.chart .earth{color:#9a5e08}.chart .metal{color:#5a564c}
.detail-grid .wood{color:#1f6b34}.detail-grid .fire{color:#b7261a}.detail-grid .water{color:#1d3f78}.detail-grid .earth{color:#9a5e08}.detail-grid .metal{color:#5a564c}
.chart{font-size:11px;background:#fffdf7}.palace{color:#2a251d}
.star i{opacity:.85;font-size:9px;margin-left:1px}
.palace .main .star{font-size:13.5px}
.palace-top .daihan{color:#3d372e;border-color:#c9b48f}
.palace-bottom{color:#6f6150}
.intro{padding:30px 0 14px}.intro-art{margin-top:12px}
.palace-info:empty{display:none}
.chart-center h4{margin-top:4px}

.date-row,.time-row{grid-template-columns:1fr 1fr 1fr}
.time-row{align-items:end}.hour-note{padding-bottom:12px}
.annual-year select{max-width:150px;min-height:34px!important;padding:5px 9px!important;margin:0!important}
.hoa-grid{margin:12px 0 0}
.star.dai{font-style:italic;color:inherit}.star.dai::before,.star.nam::before{content:''}
.palace .col .star.luu{opacity:.95}
.palace .col .star.dai{background:#f3e9cf;border-radius:2px;padding:0 3px}
.palace .col .star.nam{background:#e6ebf2;border-radius:2px;padding:0 3px}
.col.bad .star.luu{align-self:flex-end}

.chart .lines{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:visible}
.chart .lines line{stroke:#b7261a;stroke-width:1.8;stroke-opacity:.3;stroke-linecap:round}
.chart .lines line.xung{stroke-dasharray:6 5}
.chart .lines line.base{stroke-opacity:.2;stroke-width:1.4}
.chart-center{position:relative;z-index:0}
.chart-center .center-kicker{font:600 9px var(--sans);letter-spacing:3px;color:var(--red);margin:4px 0 6px}
@media print{.chart .lines line{print-color-adjust:exact}}

/* dropdown chuẩn chung */
select{appearance:none;-webkit-appearance:none;background:#fffdf8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238b8171' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 11px center!important;padding:10px 28px 10px 11px!important;min-height:41px!important;height:41px;border:1px solid var(--line)!important;border-radius:3px!important;color:var(--ink);font:13px var(--sans);width:100%;margin-top:7px!important;cursor:pointer;line-height:1.3}
select:focus{border-color:var(--red)!important;box-shadow:0 0 0 2px #893b3014}
.date-row,.time-row{grid-template-columns:1fr 1fr 1fr;gap:9px}
.time-row{align-items:start}
.hour-note{align-self:end;height:41px;display:flex;flex-direction:column;justify-content:center;padding:0 0 0 2px;margin-top:7px}
.hour-note small{font-size:9px}
.annual-year{display:block;color:inherit;font-size:inherit}
.annual-year>label{display:block;font-size:11px;font-weight:500}
.annual-year select{max-width:none;min-height:41px!important;height:41px;padding:10px 28px 10px 11px!important;margin-top:7px!important}
.hoa-grid{margin:14px 0 0}
.chart .lines line{stroke:#b7261a;stroke-width:1.4;stroke-opacity:.35;stroke-linecap:round}
.chart .lines line.xung{stroke-dasharray:6 5}
.chart .lines line.base{stroke-opacity:.2;stroke-width:1.2}
.chart-center h4{margin:10px 0 0}
.watermark{font:italic 11px var(--serif);color:#8b8171;opacity:.6;letter-spacing:.5px;margin:2px 0 8px}

/* ===== gọn, vừa một màn hình ===== */
header{padding:14px 42px}.brand{font-size:17px}.brand small{margin-top:5px;font-size:9px;letter-spacing:1px;text-transform:none}
.workspace{margin-top:22px;grid-template-columns:300px minmax(0,1fr);gap:22px}
form{padding:20px}.section-heading{margin-bottom:16px}.section-heading h2{font-size:18px}
label,legend{font-size:11px}fieldset{margin:13px 0}.divider{margin:16px 0}
input:not([type=radio]):not([type=checkbox]){min-height:38px;padding:8px 10px;margin-top:6px}
.date-row,.time-row{gap:8px}.time-row{margin-top:12px}.hour-note{height:38px;margin-top:6px}
.option-grid{margin:0 0 12px}.hoa-grid{margin:12px 0 0}.annual-year>label{font-size:11px}
.primary{margin-top:18px;padding:12px;justify-content:center;font-size:13px;font-weight:600;letter-spacing:.5px}
.result-toolbar{min-height:38px;margin-bottom:6px}
.tools button{padding:7px 14px;font-size:12px;color:var(--ink);background:#fffdf7;border-color:#c9b48f}.tools button:hover{background:#f1e9d6}
.chart{min-width:720px;grid-template-rows:repeat(4,minmax(158px,auto));font-size:9.5px}
.palace{padding:5px 6px 4px;line-height:1.3}
.palace-top{font-size:8.5px}.palace-top .daihan{font-size:10.5px;padding:0 4px}.palace-top .canchi small{font-size:8px}
.palace h3{font-size:11px;margin:3px 0 2px}.palace h3 b{font-size:7px;padding:1px 4px}
.palace .main{margin-bottom:3px;min-height:15px;gap:1px 8px}.palace .main .star{font-size:12px}
.star i{font-size:8px}.palace-bottom{font-size:8.5px;margin-top:4px}
.mark{font-size:7px;padding:2px 4px}.edge-tag{font-size:7.5px;padding:3px 7px}
.chart-center{padding:10px 14px}.chart-center h4{font-size:16px;margin:4px 0 0}.watermark{font-size:10px;margin:0 0 6px}
.birth-info{font-size:9.5px;line-height:1.6;margin-bottom:6px}
.tru{gap:5px;margin-bottom:8px}.tru span{padding:3px 2px;font-size:9.5px}.tru small{font-size:7px;margin-bottom:1px}
.center-data{font-size:9.5px;gap:2px 8px;padding-top:8px}
.chart-bottom{padding:8px 0 4px}
.palace-info{padding:12px 0}
footer{padding:14px 42px}
@media(min-width:1400px){.chart{grid-template-rows:repeat(4,minmax(165px,auto))}}
@media(max-width:1050px){.chart{grid-template-rows:repeat(4,minmax(158px,auto))}}
@media print{@page{size:A4 landscape;margin:8mm}body{background:#fff}.chart-scroll{padding:0}.chart{min-width:0;width:100%;height:calc(100vh - 2mm);grid-template-rows:repeat(4,1fr);font-size:10px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.palace{padding:6px 7px;overflow:hidden}.palace .main .star{font-size:12.5px}.palace h3{font-size:11.5px}.palace.menh,.mark,.edge-tag,.palace h3 b,.palace .col .star.dai,.palace .col .star.nam,.palace-top .daihan{print-color-adjust:exact;-webkit-print-color-adjust:exact}.chart .lines{display:block}}

/* ===== vừa một màn hình 1440×900 ===== */
header{padding:9px 42px}.seal{padding:5px 8px;font-size:16px}.brand{font-size:16px}.brand small{margin-top:3px}nav a{padding:6px 0}
.workspace{margin-top:14px}
.chart{min-width:720px;grid-template-rows:repeat(4,minmax(168px,auto));font-size:9px}
.palace{padding:4px 6px 3px;line-height:1.25}
.palace-top{font-size:8px;line-height:1.4}.palace-top .daihan{font-size:10px;line-height:1.5}
.palace h3{font-size:10.5px;margin:2px 0 1px}
.palace .main{margin-bottom:2px;min-height:14px}.palace .main .star{font-size:11.5px}
.col{gap:0}.palace-bottom{margin-top:3px;font-size:8px}
.edge-tag{font-size:7px;padding:2px 6px;box-shadow:0 0 0 2px #fffdf7,0 1px 3px #0003}
.chart-center{padding:8px 12px}.chart-center h4{font-size:15px}
.center-data{font-size:9px;gap:1px 8px;padding-top:6px}.tru{margin-bottom:6px}
.result-toolbar{min-height:34px;margin-bottom:4px}
@media(min-width:1400px){.chart{grid-template-rows:repeat(4,minmax(168px,auto))}}
@media(max-width:1050px){.chart{grid-template-rows:repeat(4,minmax(168px,auto))}}
@media print{@page{size:A4 landscape;margin:8mm}html,body{width:281mm;height:194mm;overflow:hidden}main,.workspace,.result{display:block;margin:0;padding:0;width:100%}.chart-scroll{overflow:visible;padding:0;border:0;box-shadow:none;margin:0}.chart{min-width:0;width:281mm;height:193mm;grid-template-rows:repeat(4,48.25mm);grid-template-columns:repeat(4,1fr);font-size:9.5pt;print-color-adjust:exact;-webkit-print-color-adjust:exact}.palace{padding:5px 6px;overflow:hidden;line-height:1.25}.palace .main .star{font-size:12pt}.palace h3{font-size:10.5pt}.palace-top{font-size:8pt}.palace-bottom{font-size:8pt}.chart-center{padding:8px 12px}.chart-center h4{font-size:14pt}.center-data,.birth-info{font-size:8.5pt}.tru span{font-size:8.5pt}.result-toolbar,.chart-bottom,.palace-info,header,footer,aside,#toast{display:none!important}}

.palace.tieu .palace-bottom .th{color:#fff;background:#5d6f88;padding:1px 5px;border-radius:2px;font-weight:700}
.palace-bottom .th{font-weight:600;color:#5d6f88}
@media print{.chart{font-size:8pt}.palace .main .star{font-size:10.5pt}.palace h3{font-size:9.5pt}.palace-top,.palace-bottom{font-size:7.5pt}.palace-top .daihan{font-size:8.5pt}.chart-center{overflow:hidden;padding:6px 10px}.chart-center h4{font-size:12pt;margin:2px 0 0}.watermark{font-size:8pt;margin:0 0 3px}.birth-info{font-size:7.5pt;line-height:1.5;margin-bottom:4px}.tru{gap:4px;margin-bottom:4px}.tru span{font-size:7.5pt;padding:2px}.tru small{font-size:5.5pt}.center-data{font-size:7.5pt;gap:0 6px;padding-top:4px;line-height:1.5}.palace.tieu .palace-bottom .th,.palace-bottom .th{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* ===== lá số to hơn ===== */
.workspace{grid-template-columns:280px minmax(0,1fr);gap:20px}
.chart{min-width:780px;grid-template-rows:repeat(4,minmax(215px,auto));font-size:10.5px}
.palace{padding:7px 8px 6px;line-height:1.35}
.palace-top{font-size:9px}.palace-top .daihan{font-size:11.5px}
.palace h3{font-size:12px;margin:4px 0 3px;letter-spacing:1px}.palace h3 b{font-size:7.5px;padding:2px 5px}
.palace .main{margin-bottom:4px;min-height:17px;gap:2px 10px}.palace .main .star{font-size:13.5px}
.star i{font-size:9px}.col{gap:1px}.palace-bottom{font-size:9px;margin-top:5px}
.mark{font-size:7.5px;padding:3px 5px}.edge-tag{font-size:8px;padding:3px 8px}
.chart-center{padding:14px 18px}.chart-center h4{font-size:18px;margin:6px 0 0}.watermark{font-size:11px;margin:0 0 8px}
.birth-info{font-size:10.5px;line-height:1.7;margin-bottom:8px}
.tru{gap:6px;margin-bottom:10px}.tru span{padding:5px 2px;font-size:10.5px}.tru small{font-size:7.5px;margin-bottom:2px}
.center-data{font-size:10.5px;gap:3px 10px;padding-top:10px}
@media(min-width:1400px){.chart{grid-template-rows:repeat(4,minmax(225px,auto))}}
@media(max-width:1050px){.chart{grid-template-rows:repeat(4,minmax(200px,auto))}}
.tools button{display:inline-flex;align-items:center;gap:7px}
.tools svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.edge-tag{font-size:9.5px;padding:5px 11px;letter-spacing:1.2px;border-radius:3px}

/* ===== tỉ lệ 1000×1150 như tuvichanco ===== */
.chart-scroll{display:flex;justify-content:center}
.chart{width:100%;max-width:880px;min-width:720px;grid-template-rows:repeat(4,minmax(0,auto))}
.palace,.chart-center{min-height:0}
.chart>.palace{aspect-ratio:1/1.15}
.chart-center{aspect-ratio:1/1.15}
@media(min-width:1400px){.chart{grid-template-rows:repeat(4,minmax(0,auto))}}
@media(max-width:1050px){.chart{grid-template-rows:repeat(4,minmax(0,auto))}}
@media print{@page{size:A4 portrait;margin:8mm}html,body{width:194mm;height:281mm;overflow:hidden}.chart{width:194mm;max-width:none;min-width:0;height:223mm;grid-template-rows:repeat(4,55.75mm);grid-template-columns:repeat(4,48.5mm);margin:0 auto}.chart>.palace,.chart-center{aspect-ratio:auto}.chart{font-size:8.5pt}.palace .main .star{font-size:11pt}.palace h3{font-size:10pt}}
@media print{.cols{display:flex;justify-content:space-between;gap:4px}.col{flex:0 1 auto;min-width:0}.chart{font-size:8pt}.star i{font-size:6.5pt}.palace{padding:4px 5px}.palace .main .star{font-size:10.5pt}.palace h3{font-size:9.5pt;letter-spacing:.5px}.palace-top .canchi small{display:none}}
/* ===== bản in: căn giữa, chữ to như Tử Vi Chân Cơ ===== */
@media print{@page{size:A4 portrait;margin:6mm}html,body{width:198mm;height:285mm}.chart{width:198mm;height:228mm;grid-template-columns:repeat(4,49.5mm);grid-template-rows:repeat(4,57mm);font-size:9.5pt;line-height:1.3}
.palace{padding:5px 6px 4px}.palace-top{font-size:8pt}.palace-top .daihan{font-size:9.5pt;padding:0 5px}.palace h3{font-size:11pt;letter-spacing:.8px;margin:3px 0 2px}.palace h3 b{font-size:6.5pt}
.palace .main{gap:1px 8px;margin-bottom:3px}.palace .main .star{font-size:12.5pt}.star i{font-size:7pt}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 4px;justify-items:start}.col{width:100%;gap:1px}.col.bad{text-align:left}.col.bad .star.luu{align-self:flex-start}
.palace-bottom{font-size:8.5pt;margin-top:4px}.palace-bottom .ts{font-size:9pt}
.chart-center{padding:10px 14px}.chart-center h4{font-size:15pt;margin:4px 0 0}.watermark{font-size:9pt;margin:0 0 6px}.birth-info{font-size:9pt;line-height:1.6;margin-bottom:8px}
.tru{gap:5px;margin-bottom:8px}.tru span{font-size:9pt;padding:4px 2px}.tru small{font-size:6.5pt;margin-bottom:2px}
.center-data{font-size:9pt;gap:2px 8px;padding-top:8px;line-height:1.55}
.edge-tag{font-size:8pt;padding:4px 10px}.mark{font-size:7pt}}

.palace .cols,.palace .main{overflow:hidden}
@media print{.cols{display:flex;justify-content:center;gap:0 12px;flex:1}.col{width:auto;flex:0 0 auto}.col.bad{text-align:left}.palace .main{flex-wrap:nowrap;white-space:nowrap}.palace .main .star{font-size:12pt}}

@media print{.cols{font-size:var(--print-fs,9.5pt)}.palace .main .star{font-size:var(--print-fs-main,12pt)}.star i{font-size:.72em}.palace .cols,.palace .main{overflow:visible}}

@media print{.star.luu i{display:none}}

/* ===== bản in: chữ to hơn, trung cung đẹp hơn ===== */
@media print{
.chart{font-size:10.5pt;line-height:1.28}.cols{font-size:var(--print-fs,10.5pt);gap:0 10px}.palace .main .star{font-size:var(--print-fs-main,13.5pt)}
.palace{padding:5px 5px 4px}.palace-top{font-size:8.5pt}.palace-top .daihan{font-size:10.5pt}.palace h3{font-size:12pt;margin:3px 0 2px}.palace h3 b{font-size:7pt}
.palace-bottom{font-size:9pt}.palace-bottom .ts{font-size:10pt}.edge-tag{font-size:8.5pt;padding:4px 11px}.mark{font-size:7.5pt}
.chart-center{padding:14px 16px 10px;justify-content:flex-start;background:radial-gradient(ellipse at 50% 35%,#f3ebd8 0,transparent 70%)}
.chart-center h4{font-size:21pt;margin:6px 0 0;letter-spacing:.5px;color:#893b30}
.watermark{font-size:10pt;opacity:.7;margin:2px 0 10px}
.birth-info{font-size:10.5pt;line-height:1.7;margin-bottom:10px;color:#3d372e}.birth-info .duong,.birth-info .am{font-size:11pt}
.tru{gap:7px;margin-bottom:12px}.tru span{font-size:11.5pt;padding:7px 2px;border-color:#c9b48f;background:#fffdf7}.tru small{font-size:7pt;margin-bottom:3px;letter-spacing:1.5px}
.center-data{font-size:10.5pt;gap:4px 12px;padding-top:10px;line-height:1.6;border-top:1px solid #c9b48f}.center-data span{font-size:9.5pt}
}
@media print{.chart{height:256mm;grid-template-rows:repeat(4,64mm);line-height:1.24}.cols{font-size:var(--print-fs,10.5pt)}.col{gap:1px}.palace .main{margin:2px 0 5px;min-height:22px}.palace-top{margin-bottom:2px}.chart-center{padding:16px 16px 10px}.center-data{gap:5px 12px;padding-top:12px;line-height:1.65}.chart-center h4{font-size:22pt}.birth-info{margin-bottom:12px}.tru{margin-bottom:14px}}
@media print{.chart{line-height:1.2}.palace{padding:4px 5px 3px}.palace .main{margin:1px 0 4px}.chart-center{padding:12px 16px 8px}.chart-center h4{font-size:20pt;margin:4px 0 0}.watermark{margin:1px 0 8px}.birth-info{margin-bottom:8px;line-height:1.6}.tru{margin-bottom:10px}.tru span{padding:5px 2px}.center-data{gap:3px 12px;padding-top:9px;line-height:1.5;font-size:10pt}}

/* ===== Tuần/Triệt theo tuvichanco ===== */
.edge-tag,.edge-tag.triet{background:#111;color:#fff;font:700 9.5px var(--sans);letter-spacing:1px;padding:0 10px;height:20px;line-height:20px;min-width:60px;text-align:center;border-radius:0;box-shadow:none;text-transform:uppercase}
.palace{padding-top:12px;padding-bottom:12px}
.palace-top{justify-content:flex-start;gap:6px}.palace-top .daihan{margin-left:auto}.palace-top .marks{justify-content:flex-start}
@media print{.edge-tag{font-size:8.5pt;height:22px;line-height:22px;min-width:66px;padding:0 12px}.palace{padding-top:12px;padding-bottom:12px}}

@media print{.palace{padding:10px 5px 9px;line-height:1.18}.palace-bottom{margin-top:3px}}

/* ===== nền trắng tăng tương phản ===== */
.chart-scroll{background:#fff;border-color:#a9926b}.chart{background:#fff;border-color:#8f7a56}.palace{border-color:#b3a082}.chart-center{border-color:#b3a082;background:#fff}
.palace.menh{background:#f4eedf}.palace:hover,.palace.selected{background:#efe6d2}.palace.related{box-shadow:inset 0 0 0 2px #c4a97e}
.palace-top .daihan{background:#fff;border-color:#b3a082}.tru span{background:#fff}
.chart .wood{color:#176a2e}.chart .fire{color:#c0170c}.chart .water{color:#153a7a}.chart .earth{color:#9a5a00}.chart .metal{color:#4a473f}.palace{color:#1f1b15}
@media print{body,.chart,.chart-scroll,.chart-center{background:#fff}.chart-center{background:none}}

.palace{padding-bottom:14px}@media print{.palace{padding-bottom:13px}}
/* ===== chữ sao to hơn ===== */
.chart{font-size:12px;max-width:920px}.chart>.palace,.chart-center{aspect-ratio:1/1.2}
.palace .main .star{font-size:15px}.star i{font-size:10px}.col{gap:2px}.palace-top{font-size:10px}.palace-top .daihan{font-size:12px}.palace h3{font-size:13px}.palace-bottom{font-size:10px}.palace-bottom .ts{font-size:11px}
.center-data{font-size:11px}.birth-info{font-size:11px}

.palace .main .star{font-size:1.25em}.palace .main{font-size:12px}.cols{font-size:12px}


@media print{.chart>.palace,.chart-center{aspect-ratio:auto}.chart{font-size:10.5pt}.palace .cols{font-size:var(--print-fs,10.5pt)!important}.palace .main{font-size:var(--print-fs-main,13.5pt)!important}.palace .main .star{font-size:1em}}

/* ===== chính tinh mỗi sao một dòng, cột sao thẳng hàng giữa các cung ===== */
.palace{cursor:default}.palace:hover{background:transparent;box-shadow:none}.palace.menh:hover{background:#f4eedf}
.palace .main{flex-direction:column;align-items:center;gap:0;flex-wrap:nowrap;height:2.7em;min-height:0;justify-content:flex-start;margin-bottom:4px;overflow:visible}
.palace .main .star{line-height:1.3}
.palace h3{height:1.4em}
.cols{flex:1}
.palace-info{display:none}
@media print{.palace .main{height:2.6em}}

@media print{.palace .main{height:36pt;line-height:1.25}.palace h3{height:15pt}}

/* ===== Phong cách Tử Vi Chân Cơ ===== */
.chart-scroll{background:#e7e4dd;border:0;box-shadow:none;padding:8px}
.chart{background:#e7e4dd;border:1px solid #000;max-width:1000px;font:12px/1.35 var(--sans);color:#000}
.chart>.palace,.chart-center{aspect-ratio:1/1.15}
.palace{border:0;border-right:1px solid #000;border-bottom:1px solid #000;background:#e7e4dd;color:#000;padding:6px 7px 5px;font-family:var(--sans)}
.palace.menh{background:#e7e4dd}.palace.menh:hover{background:#e7e4dd}
.chart .water{color:#000}.chart .wood{color:#009900}.chart .metal{color:#858585}.chart .earth{color:#ff9900}.chart .fire{color:#ff0000}
.palace-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;font-size:10px;gap:4px}
.palace-top .tl{display:flex;flex-direction:column;gap:2px;font-weight:700}
.palace-top .canchi{font-weight:700}.palace-top .canchi small{display:none}.palace-top .luuname{font-weight:700;color:#000;font-size:9.5px}
.palace-top .tr{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-weight:700}
.palace-top .daihan{background:none;border:0;padding:0;font-size:12px;color:#000;margin:0;min-width:0}
.palace-top .thang{font-size:11px;color:#000;font-weight:700}
.palace-top .marks{display:none}
.palace h3{font:700 13.5px var(--sans);letter-spacing:.3px;margin:0;height:auto;color:#000;text-transform:uppercase;white-space:nowrap}
.palace.than h3{color:#000}.palace h3 b{background:none;color:#ff0000;font:700 12px var(--sans);padding:0;letter-spacing:0}
.palace .main{height:2.8em;margin:2px 0 6px;font-size:13.5px}
.palace .main .star{font-size:1em;font-weight:700}
.star i{font-size:.85em;opacity:1;margin-left:0;font-weight:inherit}
.cols{font-size:12px;gap:0 6px}.col{gap:1px}.col.bad{text-align:right}
.star.bold{font-weight:700}.star{font-weight:400}
.star.luu{font-style:normal;opacity:1}.palace .col .star.dai,.palace .col .star.nam{background:none;padding:0;font-weight:700}
.palace-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;font-size:10px;color:#000;margin-top:4px}
.palace-bottom .dainame{font-weight:700}.palace-bottom .ts{font-weight:700;font-size:12px;color:#000}.palace-bottom .nhap{text-align:right;font-size:9px;line-height:1.25}
.chart-center{border-right:1px solid #000;border-bottom:1px solid #000;background:#e7e4dd;padding:10px 16px;justify-content:flex-start;align-items:center;text-align:left}
.chart-center .logo{font:italic 700 26px var(--serif);color:#1a7a2e;letter-spacing:1px;margin-top:6px}
.chart-center .ls-title{font:700 15px var(--sans);color:#1a3fd1;margin:2px 0 10px;border-top:1px solid #1a7a2e;padding-top:6px;letter-spacing:1px}
.chart-center .info{border-collapse:collapse;font-size:12.5px;font-weight:700}
.chart-center .info th{text-align:left;font-weight:700;color:#000;padding:1px 14px 1px 0;white-space:nowrap}
.chart-center .info td{padding:1px 14px 1px 0;white-space:nowrap}
.chart-center .info .v1{color:#1a3fd1}.chart-center .info .v2{color:#1a7a2e}
.chart-center .info .wood{color:#009900}.chart-center .info .fire{color:#ff0000}.chart-center .info .earth{color:#ff9900}.chart-center .info .metal{color:#858585}.chart-center .info .water{color:#000}
.chart-center .verdict{margin-top:10px;display:flex;flex-direction:column;align-items:center;gap:2px;font:700 12.5px var(--sans)}
.chart-center .verdict .r{color:#ff0000}.chart-center .verdict .b{color:#1a3fd1}
.chart-center .site{margin-top:auto;font:700 11px var(--sans);color:#ff0000}
.chart .lines line{stroke:#000;stroke-width:1;stroke-opacity:.9}.chart .lines line.xung{stroke-dasharray:none}.chart .lines line.base{stroke-opacity:.9;stroke-width:1}
.edge-tag,.edge-tag.triet{background:#000;color:#fff;font:700 11px var(--sans);text-transform:none;letter-spacing:.5px;height:20px;line-height:20px;padding:0 10px;min-width:56px}
.mono .chart,.chart.mono{filter:grayscale(1)}
@media print{@page{size:A4 portrait;margin:6mm}.chart-scroll{background:#e7e4dd;padding:0}.chart{background:#e7e4dd;font-size:9.5pt}.palace{background:#e7e4dd;padding:5px 5px 4px}.chart-center{background:#e7e4dd;padding:8px 12px}
.palace-top{font-size:8pt}.palace-top .daihan{font-size:9.5pt}.palace-top .thang{font-size:8.5pt}.palace-top .luuname{font-size:7.5pt}.palace h3{font-size:10.5pt;height:auto}.palace h3 b{font-size:9pt}
.palace .main{height:30pt;font-size:11pt!important}.palace .cols{font-size:var(--print-fs,9.5pt)!important}.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 6px}.col{width:auto}.col.bad{text-align:right}.col.bad .star.luu{align-self:auto}
.palace-bottom{font-size:8pt}.palace-bottom .ts{font-size:9.5pt}.palace-bottom .nhap{font-size:7pt}
.chart-center .logo{font-size:20pt}.chart-center .ls-title{font-size:12pt}.chart-center .info{font-size:9.5pt}.chart-center .verdict{font-size:9.5pt}.chart-center .site{font-size:8.5pt}
.palace,.chart-center,.chart,.chart-scroll,.edge-tag{print-color-adjust:exact;-webkit-print-color-adjust:exact}.star.luu i{display:inline}}
/* cột sao co giãn theo nội dung, không cắt chữ */
.cols{display:flex;justify-content:space-between;gap:0 8px;flex:1}.col{flex:0 1 auto;min-width:0;display:flex;flex-direction:column}.col.bad{align-items:flex-end}
@media print{.chart>.palace,.chart-center{aspect-ratio:auto}.chart{height:256mm;width:198mm;grid-template-rows:repeat(4,64mm);grid-template-columns:repeat(4,49.5mm)}.cols{display:flex;justify-content:space-between;gap:0 6px}.col{flex:0 1 auto;width:auto}.palace .main{height:30pt}}

.palace{padding:13px 7px 12px}
@media print{.palace{padding:12px 5px 11px}.star.luu i{display:inline}}

/* ===== chữ to hơn, Tuần/Triệt gọn đẹp ===== */
.chart{font-size:13px;max-width:1000px}.chart>.palace,.chart-center{aspect-ratio:1/1.2}
.palace{padding:15px 7px 13px}
.palace h3{font-size:14.5px}.palace h3 b{font-size:12.5px}
.palace .main{font-size:16px;height:2.75em;margin:3px 0 6px}
.cols{font-size:13px}.palace-top{font-size:11px}.palace-top .daihan{font-size:13px}.palace-top .thang{font-size:12px}.palace-top .luuname{font-size:10.5px}
.palace-bottom{font-size:11px}.palace-bottom .ts{font-size:13px}.palace-bottom .nhap{font-size:9.5px}
.chart-center .info{font-size:13.5px}.chart-center .verdict{font-size:13.5px}
.edge-tag,.edge-tag.triet{font:700 11.5px var(--sans);letter-spacing:.8px;height:22px;line-height:22px;padding:0 12px;min-width:64px;border-radius:3px;box-shadow:0 0 0 2px #e7e4dd}
@media print{.chart{font-size:10pt}.palace{padding:12px 5px 11px;line-height:1.25}.palace h3{font-size:11.5pt}.palace h3 b{font-size:10pt}.palace .main{height:32pt;font-size:12.5pt!important}.palace .cols{font-size:var(--print-fs,10pt)!important}.palace-top{font-size:8.5pt}.palace-top .daihan{font-size:10pt}.palace-top .thang{font-size:9pt}.palace-top .luuname{font-size:8pt}.palace-bottom{font-size:8.5pt}.palace-bottom .ts{font-size:10pt}.palace-bottom .nhap{font-size:7.5pt}.edge-tag{font-size:9pt;height:20px;line-height:20px;box-shadow:0 0 0 2px #e7e4dd}.chart-center .info{font-size:10pt}.chart-center .verdict{font-size:10pt}}

/* ===== ô tự cao theo nội dung, không đè chữ ===== */
.chart>.palace,.chart-center{min-height:auto}
.chart{grid-template-rows:repeat(4,minmax(0,auto))}
.palace>*{flex-shrink:0}.cols{flex:1 0 auto}
.hour-label{display:block;margin-top:12px}
.chart-center .logo{color:#893b30}.chart-center .ls-title{border-top-color:#893b30}
@media print{.chart>.palace,.chart-center{min-height:0}.palace{overflow:hidden}.palace>*{flex-shrink:0}.cols{flex:0 0 auto;line-height:1.25}}

@media print{@page{size:A4 portrait;margin:5mm}html,body{width:200mm;height:287mm}.chart{width:200mm;height:272mm;grid-template-columns:repeat(4,50mm);grid-template-rows:repeat(4,68mm)}.cols{flex:1 1 auto;min-height:0;overflow:hidden}.palace-bottom{flex-shrink:0}}

@media print{.chart>.palace,.chart-center{aspect-ratio:auto;height:auto}}

/* ===== chính tinh ngay dưới tên cung ===== */
.palace-top{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start}
.palace-top .tc{display:flex;flex-direction:column;align-items:center;min-width:0}
.palace-top .tc h3{height:auto;line-height:1.2}
.palace-top .main{height:2.6em;margin:1px 0 0;font-size:16px;line-height:1.3;justify-content:flex-start}
.cols{margin-top:8px}
@media print{.palace-top .main{height:30pt;font-size:12.5pt!important;line-height:1.2}.cols{margin-top:6px}}

@media print{.palace-top{grid-template-columns:auto minmax(0,1fr) auto;gap:3px}.palace-top .tc{overflow:visible}.palace-top .main{font-size:var(--print-fs-main,11.5pt)!important;height:28pt}.palace-top .main .star{white-space:nowrap}.palace-top .tl,.palace-top .tr{font-size:8pt}.palace-top .luuname{font-size:7.5pt}.palace-top .thang{font-size:8.5pt}}

/* ===== trạng thái chưa lập lá số; căn checkbox Tứ Hóa ===== */
.result-empty{display:none}
.result.is-empty .result-toolbar,.result.is-empty .scroll-hint,.result.is-empty .chart-scroll,.result.is-empty .chart-bottom,.result.is-empty .palace-info{display:none}
.result.is-empty .result-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;min-height:420px;padding:40px 24px;border:1px dashed #c9b48f;border-radius:10px;background:#fffdf7a8}
.result-empty img{width:110px;height:110px;opacity:.45;margin-bottom:10px}
.result-empty h3{font:600 18px var(--serif);color:#6a4d30;margin:0}
.result-empty p{margin:0;font-size:12px;color:var(--muted);line-height:1.7}
.result-empty b{color:var(--red);font-weight:600}
.annual-year .check input{width:15px;height:15px;min-height:0!important;padding:0!important;margin:0!important;flex:none}
.option-grid .check,.hoa-grid .check{display:flex;align-items:center;line-height:1.3}
.form-caption{margin-top:14px;text-align:center}.form-caption em{margin-top:0}
.view-toggle{display:none}
@media print{.result-empty{display:none!important}}
/* ===== ô cung tự cao theo số sao (màn hình), không cắt mất dòng ĐV/Lộc/Kỵ; cột lưới không nở theo tên sao ===== */
@media screen{.chart{grid-template-columns:repeat(4,minmax(0,1fr))}.palace{overflow:visible;min-width:0}}

/* ===== nhãn hai bên tên cung giữ nguyên bề rộng, phần giữa (tên cung + chính tinh) co lại khi ô hẹp; đường tam hợp / đối cung mờ ===== */
.palace-top{grid-template-columns:auto minmax(0,1fr) auto;gap:4px 6px}
.palace-top .tc>*{max-width:100%}
.chart .lines line,.chart .lines line.xung,.chart .lines line.base{stroke:#000;stroke-opacity:.28;stroke-width:1}
@media print{.chart .lines line,.chart .lines line.xung,.chart .lines line.base{stroke-opacity:.35}}
.result-empty{align-items:center;text-align:center}.result-empty img{display:block;margin:0 auto 10px;width:min(110px,28vw);height:auto;aspect-ratio:1}.result-empty h3,.result-empty p{width:100%}
/* liên hệ Zalo ở footer */
.footer-contact{margin:4px 0 0;font:600 12.5px/1.6 var(--sans);color:#3d372e}.footer-contact a{color:#893b30;font-weight:700;text-decoration:underline;text-underline-offset:3px}
@media print{.footer-contact{display:none}}
