:root{--bg:#f7f4ee;--paper:#fff;--ink:#263349;--muted:#647188;--line:#e0e4ea;--navy:#202d46;--blue:#355b94;--gold:#ad7d3e;--gold-soft:#fff5e7;--blue-soft:#f0f4fb;--gray-soft:#f5f6fa;--focus:#c7a56e;--shadow:0 8px 25px #1f2d460c}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font:16px/1.7 Sarabun,'Noto Sans Thai',Tahoma,sans-serif;margin:0;background:radial-gradient(ellipse at 85% 1%,#f0e7db 0,transparent 28%),var(--bg);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}a{color:var(--blue)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.hidden,[hidden]{display:none!important}
.top{background:linear-gradient(95deg,#1d2a42,#32445f);color:white;border-bottom:3px solid #cda66b}.top-in{max-width:1200px;margin:auto;padding:15px 25px;display:flex;justify-content:space-between;align-items:center;gap:18px}.logo{display:flex;align-items:center;gap:11px;text-decoration:none;color:white}.logo .mark{width:47px;height:47px;border:1px solid #c9a36b;color:#f1d6a9;border-radius:50%;display:grid;place-items:center;font-size:24px}.logo strong,.logo small{display:block}.logo strong{font-size:19px;line-height:1.4}.logo small{color:#ced6e4;font-size:12px}.top nav{display:flex;gap:11px;align-items:center}.top nav a{font-size:13px;text-decoration:none;color:#eceff6;padding:8px 10px;border-radius:20px;font-weight:600}.top nav .nav-home{background:#d5b27e;color:#243149}
.wrap{max-width:1200px;margin:auto;padding:28px 24px 68px}.intro{max-width:850px;margin:0 0 26px}.eyebrow{color:#996a31;font-size:13px;font-weight:700}.intro h1{font-size:clamp(27px,3.5vw,41px);line-height:1.35;margin:7px 0 11px}.intro h1 span{color:var(--blue)}.intro p{color:var(--muted);margin:0;font-size:16px}.layout{display:grid;grid-template-columns:minmax(298px,342px) minmax(0,1fr);gap:20px;align-items:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:19px;box-shadow:var(--shadow)}.form-panel{padding:22px;border-top:3px solid #bf9259;position:sticky;top:13px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-heading h2,.chart-header h2,.extras h2,.learn h2{font-size:20px;margin:0}.step{font-size:12px;background:var(--gold-soft);padding:4px 10px;border-radius:20px;color:#956c31;font-weight:700}
#form{display:grid;gap:17px;margin-top:19px}.field{display:grid;gap:7px}.field>label{font-size:14px;font-weight:700}.field input,.field select,.calendar-type select,.actions select{border:1px solid #d7dfea;background:#fff;color:var(--ink);padding:11px 12px;border-radius:10px;min-height:46px;width:100%}.field input[type=number]{font-size:17px;font-variant-numeric:tabular-nums}.calendar-type{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:13px;color:var(--muted);margin-top:-3px}.calendar-type select{width:auto;padding:6px 10px;min-height:33px;background:#fff7e8;border-color:#e4d3b5}.date-row{display:grid;grid-template-columns:24% 44% 1fr;gap:5px}.date-row select{padding:10px 5px;text-align:center;font-size:14px}.hint{color:var(--muted);font-size:12px;line-height:1.6}.radio-line{display:flex;gap:20px;flex-wrap:wrap}.radio-line label{display:flex;gap:6px;align-items:center;font-size:14px}.radio-line input{accent-color:var(--blue)}.degree-input{position:relative}.degree-input input{padding-right:59px}.degree-input span{position:absolute;right:14px;top:10px;color:var(--muted)}.room-fields{display:grid;gap:17px;border-radius:12px;border:1px solid #dce4ef;background:#fafcff;padding:13px}.primary{border:0;background:#2c4272;color:#fff;font-weight:700;padding:13px 15px;min-height:51px;border-radius:11px;box-shadow:0 8px 19px #2c427226}.primary:hover{background:#1e3056}.primary:disabled{opacity:.7;cursor:wait}.form-error{background:#fff0ee;color:#a13f36;border-radius:10px;padding:9px;margin:0;font-size:13px}.form-status{font-size:12px;color:#587358;margin:0;min-height:0}.results{display:grid;gap:18px}.summary,.chart-panel,.extras,.learn{padding:22px}.chip{background:#eef2f9;color:#435b83;border-radius:15px;padding:4px 11px;font-size:12px;font-weight:700}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:16px 0 0}.stat{background:#f6f8fc;border:1px solid #edf0f6;border-radius:11px;padding:11px;display:flex;flex-direction:column}.stat span,.stat small{font-size:12px;color:var(--muted)}.stat strong{font-size:26px;color:#2a426d;line-height:1.5}.chart-type{font-size:13px;color:#4e6383;margin:13px 0 0}.notice{margin:12px 0 0;background:#fff8eb;border:1px solid #edd6b2;color:#885f28;border-radius:10px;padding:10px 12px;font-size:13px}.chart-header{display:flex;justify-content:space-between;align-items:start;gap:10px}.chart-header p{font-size:13px;color:var(--muted);margin:3px 0 0}.actions{display:flex;gap:7px;flex-wrap:wrap}.actions select{min-height:38px;padding:7px 8px;font-size:12px;width:auto}.outline{border:1px solid #d5dce7;background:#fff;color:var(--ink);padding:8px 12px;border-radius:9px;font-size:13px;font-weight:600}.legend{display:flex;flex-wrap:wrap;gap:8px 17px;margin:17px 0 9px;color:#526078;font-size:12px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle;margin-right:5px}.dot.people,.mini-dot.people{background:var(--blue)}.dot.activity,.mini-dot.activity{background:var(--gold)}.dot.base,.mini-dot.base{background:#8390a5}.dot.annual{background:#4c906e}.compass-title{font-size:13px;font-weight:600;text-align:center;color:#748096;margin:10px 0 8px}.chart{max-width:670px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.palace{border:1px solid #e0e5ef;border-radius:12px;background:#fff;min-height:139px;padding:12px 6px;display:flex;flex-direction:column;align-items:center;justify-content:space-around;position:relative;text-align:center;transition:border-color .12s,background .12s}.palace:hover,.palace.active{border-color:#7893bd;background:#f3f7ff;box-shadow:inset 0 0 0 1px #9aadd0}.palace.face{background:#f0f5fd}.palace.sit{background:#fff7ed}.palace.center{background:#f5f6f9}.palace.room-selected{box-shadow:0 0 0 3px #d3b073;border-color:#b68b47}.where{font-size:12px;color:#66728a}.star-pair{display:flex;gap:17px;align-items:flex-end;justify-content:center}.star-pair>span{display:grid;gap:0;min-width:40px}.star-pair b{font-size:30px;line-height:1.1}.star-pair small{font-size:10px;font-weight:400;color:#68758e}.mountain{color:var(--blue)}.water{color:var(--gold)}.base-row,.annual-row{font-size:12px;color:#718099}.base-row b{font-size:16px}.annual-row{color:#2f7454;background:#eaf5ef;border-radius:14px;padding:1px 7px}.annual-row b{font-size:14px}.flag{position:absolute;top:3px;right:4px;border-radius:6px;padding:0 5px;font-size:10px;color:#fff;background:#31486c}.palace.sit .flag{background:#b1874a}.chart-foot{text-align:center;font-size:12px;color:var(--muted);margin:13px 0 0}.detail{margin-top:17px;background:#f8f9fc;border:1px solid #e2e7f0;border-radius:12px;padding:15px}.detail h3{font-size:18px;margin:0}.detail>p{font-size:13px;color:#617089;margin:6px 0 12px}.detail-stars{display:grid;gap:9px}.detail-star{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:start}.detail-star strong{font-size:13px}.detail-star span{font-size:13px;color:#526078}.detail-star.people strong{color:var(--blue)}.detail-star.activity strong{color:var(--gold)}.detail-star.base strong{color:#626e86}.detail-annual{background:#eaf5ef;color:#2d7553!important;padding:9px 11px;border-radius:9px}.extras{border-top:3px solid #9db2cd}.extras p{font-size:14px;color:#53617a;margin:8px 0}.extras ul{padding-left:20px;margin-bottom:0;font-size:14px}.extras li{margin:5px 0}.room-highlight{font-weight:700;color:#314b72}.learn{background:#fff}.explain-grid{display:grid;gap:14px;margin-top:15px}.explain-grid>div{border:1px solid #e6eaf1;border-radius:12px;padding:11px 13px}.explain-grid strong{font-size:14px}.explain-grid p{margin:2px 0 0;color:var(--muted);font-size:13px}.mini-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px}.star-meanings{margin-top:18px;border:1px solid #e3e6ed;border-radius:10px;padding:12px}.star-meanings summary{cursor:pointer;font-weight:700;color:#355a8b}.star-list{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 12px;margin-top:12px}.star-list p{font-size:13px;margin:0;border-bottom:1px dashed #dfe4ed;padding:3px 0}.small-note{margin:13px 0 0;font-size:12px;color:var(--muted)}.footer{max-width:1150px;margin:auto;border-top:1px solid #dfe1e7;padding:17px 24px 25px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:13px}.footer a{font-weight:700;text-decoration:none}
@media(max-width:900px){.layout{grid-template-columns:1fr}.form-panel{position:static}.wrap{padding:23px 17px 50px}.top-in{padding:13px 17px}}
@media(max-width:560px){body{font-size:15px}.top nav a:first-child{display:none}.top nav a{font-size:12px}.logo strong{font-size:15px}.logo small{font-size:10px}.logo .mark{width:38px;height:38px;font-size:19px}.intro h1{font-size:28px}.summary,.chart-panel,.extras,.learn,.form-panel{padding:16px}.chart-header{flex-direction:column}.stats{gap:6px}.stat{padding:9px 7px}.stat span,.stat small{font-size:10px}.stat strong{font-size:21px}.chart{gap:5px}.palace{min-height:130px;padding:8px 3px}.where{font-size:10px}.star-pair{gap:6px}.star-pair>span{min-width:32px}.star-pair b{font-size:25px}.star-pair small{font-size:9px}.detail-star{grid-template-columns:1fr;gap:0}.star-list{grid-template-columns:1fr}.footer{padding:15px;flex-direction:column;gap:3px}}
@media print{body{background:white}.top{background:white;color:var(--ink);border-bottom:0}.top nav,.form-panel,.actions,.footer,.form-status,.intro p{display:none!important}.layout{display:block}.wrap{padding:0 12mm}.results{gap:10px}.panel{box-shadow:none;break-inside:avoid}.chart{max-width:580px}.palace{min-height:106px}.intro{margin:0 0 10px}.intro h1{font-size:20px}.detail{padding:8px}}
