*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#2c1810;-webkit-font-smoothing:antialiased;background:#f5f0e8;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif;line-height:1.5}.app{max-width:600px;min-height:100vh;margin:0 auto;padding:16px}.app-title{text-align:center;color:#2c1810;letter-spacing:.1em;margin-bottom:16px;font-size:1.6rem;font-weight:700}.error{color:#c00;background:#fff0f0;border:1px solid #fcc;border-radius:6px;margin-bottom:16px;padding:10px 14px;font-size:.9rem}.loading{text-align:center;color:#8b7355;padding:24px 0;font-size:.95rem}.input-panel{background:#fff;border:1px solid #d4c5a9;border-radius:8px;margin-bottom:16px;padding:16px}.input-row{margin-bottom:12px}.input-row:last-child{margin-bottom:0}.input-row label{color:#5a4a3a;margin-bottom:4px;font-size:.85rem;font-weight:500;display:block}.datetime-row{gap:8px;display:flex}.now-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#8b7355;border:none;border-radius:6px;padding:8px 14px;font-size:.9rem}.now-btn:hover{background:#6d5a43}.input-row input[type=text],.input-row select{color:#2c1810;background:#faf8f4;border:1px solid #d4c5a9;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-size:.95rem;transition:border-color .2s}.input-row input[type=text]:focus,.input-row select:focus{border-color:#8b7355}.checkbox-row label{cursor:pointer;color:#2c1810;align-items:center;gap:6px;font-size:.9rem;display:flex}.checkbox-row input[type=checkbox]{accent-color:#8b7355;width:16px;height:16px}.field-error{color:#c00;font-size:.8rem}.submit-btn{color:#f5f0e8;cursor:pointer;letter-spacing:.15em;background:#2c1810;border:none;border-radius:6px;width:100%;padding:10px 0;font-size:1rem;font-weight:600;transition:background .2s}.submit-btn:hover:not(:disabled){background:#4a3628}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.adjust-row{gap:8px;display:flex}.adjust-btn{color:#4a3628;cursor:pointer;background:#f5f0e8;border:1px solid #d4c5a9;border-radius:6px;flex:1;padding:8px 0;font-size:.85rem;transition:background .2s}.adjust-btn:hover{background:#e8dfd0}.pan-summary{background:#fff;border:1px solid #d4c5a9;border-radius:8px;margin-bottom:16px;padding:14px 16px}.summary-row{border-bottom:1px dashed #e8dfd0;flex-wrap:wrap;gap:12px;padding:4px 0;display:flex}.summary-row:last-child{border-bottom:none}.summary-row.pillars{justify-content:center;gap:20px;padding-bottom:8px}.pillar{flex-direction:column;align-items:center;display:flex}.pillar-label{color:#8b7355;font-size:.75rem}.pillar-value{color:#2c1810;letter-spacing:.05em;font-size:1.1rem;font-weight:600}.summary-item,.summary-line{color:#4a3628;white-space:nowrap;font-size:.85rem}.summary-row.true-solar{background:#faf5ed;border-radius:0;margin:2px -16px;padding:6px 16px}.chart-grid{background:#d4c5a9;border:1px solid #d4c5a9;border-radius:8px;grid-template-columns:auto auto auto;gap:1px;display:grid;overflow:hidden}.palace-cell{background:#fff;min-height:90px;padding:6px 8px;font-size:1.2rem}.palace-cell.palace-void{background:#f8f5f0}.palace-grid{text-align:left;grid-template-rows:auto auto auto minmax(1.3em,auto);grid-template-columns:auto auto auto auto;align-items:center;row-gap:2px;display:grid}.g-r1c1{color:#e74c3c;grid-column:1}.g-r1c2{grid-column:2}.g-r1c3{grid-column:3}.g-r1c4{color:#999;grid-column:4}.g-r2c1{grid-column:1}.g-r2c2{grid-column:2}.g-r2c34{grid-column:3/5}.g-r3c1{grid-column:1}.g-r3c2{grid-column:2}.g-r3c34{grid-column:3/5}.g-r4c1{grid-column:1}.g-r4c2{grid-column:2}.g-r4c3{grid-column:3}.g-r4c4{grid-column:4}.clr-deity{color:#7b5ea7}.clr-hidden{color:#999}.clr-star{color:#c0392b}.clr-gate{color:#2980b9}.clr-hstem{color:#2c1810}.clr-estem{color:#4a3628}.palace-center-grid{grid-template-columns:auto 1fr;align-items:center;row-gap:2px;display:grid}.c-r1{text-align:right;color:#4a3628;grid-column:1/-1}.c-r2{text-align:right;color:#2c1810;grid-column:1/-1}.c-r3l{color:#c0392b}.c-r3r{text-align:right;color:#4a3628}.c-r4l{color:#2980b9}.c-r4r{text-align:right;color:#4a3628}@media (width<=400px){.app{padding:10px}.app-title{font-size:1.3rem}.palace-cell{min-height:72px;padding:4px 5px;font-size:1.05rem}.palace-grid{grid-template-columns:auto auto auto auto}.summary-row.pillars{gap:14px}.pillar-value{font-size:1rem}}@media (width>=500px){.palace-cell{min-height:100px;padding:8px 10px;font-size:1.3rem}}
