.tb-shell{--indigo:#2a2550;--accent:#bd3b2e;--gold:#bf9a4f;--bronze:#a07247;--line:#ddd0b6;--line-soft:#ece2cf;--muted:#6b6356;--surface:#fffdf8;--paper:#f4ede2;--ink:#2a2550;color:#2a2550;background:#e9e1d1;min-height:100vh;font-family:Noto Sans TC,sans-serif}.tb-shell .serif{font-family:Noto Serif TC,serif}.tb-shell .notice{border:1px solid var(--line);border-left:3px solid var(--gold);background:var(--surface);border-radius:4px;padding:10px 12px;font-size:13.5px;line-height:1.7}.tb-shell .notice.error{border-color:var(--accent)}.tb-top{z-index:50;color:#e9e3cf;background:#241f47;position:sticky;top:0;box-shadow:0 2px 10px #0000002e}.tb-top-in{justify-content:space-between;align-items:center;height:56px;padding:0 20px;display:flex}.tb-brand{align-items:center;gap:10px;display:flex}.tb-wordmark{letter-spacing:3px;color:#f1ead6;font-family:Noto Serif TC,serif;font-size:19px;font-weight:700}.tb-nav{align-items:center;gap:4px;display:flex}.tb-nav a{cursor:pointer;color:#cfc6e6;border-radius:7px;padding:8px 16px;font-size:14.5px;font-weight:600;text-decoration:none}.tb-pro{color:#f1ead6;white-space:nowrap;border:1px solid #d8b8768c;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:600;text-decoration:none}.tb-soon{color:#8f88a8;cursor:default;align-items:center;gap:6px;padding:8px 12px;font-size:14.5px;font-weight:600;display:inline-flex}.tb-soon small{background:#ffffff14;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:400}.tb-nav a.active{color:#f1ead6;background:#d8b87629}.tb-top-right{color:#a89fc4;align-items:center;gap:14px;font-size:13.5px;display:flex}.tb-top-right a{color:#cfc6e6;align-items:center;gap:5px;text-decoration:none;display:flex}.tb-login{cursor:pointer;color:#2a2550;background:linear-gradient(90deg,#d4b876,#c4a05a);border-radius:8px;padding:7px 16px;font-family:Noto Serif TC,serif;font-weight:700}.tb-top-right form{margin:0}.tb-top-right .lo{color:#cfc6e6;cursor:pointer;background:0 0;border:0;font-family:inherit;font-size:13.5px}.tb-body{align-items:flex-start;min-height:calc(100vh - 56px);display:flex}.tb-aside{background:#fbf7ef;border-right:1px solid #ddd0b6;flex:0 0 336px;align-self:flex-start;width:336px;height:calc(100vh - 56px);padding:20px 18px 30px;position:sticky;top:56px;overflow-y:auto}.tb-main{background:#fff;flex:1;align-self:stretch;min-width:0;padding:18px 22px 40px}.tb-sec{align-items:center;gap:8px;margin:0 0 16px;display:flex}.tb-sec .d{background:#b8923f;width:6px;height:6px;transform:rotate(45deg)}.tb-sec b{color:#2a2550;font-family:Noto Serif TC,serif;font-size:16px;font-weight:700}.tb-aside .field{margin-bottom:14px}.tb-aside .field label{color:#6b6356;margin-bottom:6px;font-size:13px;display:block}.tb-aside input,.tb-aside select,.tb-aside textarea{color:#2a2550;background:#fffdf8;border:1px solid #ddd0b6;border-radius:8px;width:100%;padding:11px 12px;font-size:14.5px}.tb-aside input[type=checkbox]{width:auto}.tb-aside .check{color:var(--ink);align-items:center;gap:8px;font-size:14px;display:flex}.tb-shell .btn{color:#f1ead6;letter-spacing:2px;cursor:pointer;background:#2a2550;border:none;border-radius:9px;width:100%;padding:13px;font-family:Noto Serif TC,serif;font-size:15px;font-weight:700;box-shadow:0 8px 18px #2a25502e}.tb-shell .btn.ghost{color:#2a2550;letter-spacing:0;box-shadow:none;background:#fffdf8;border:1px solid #ddd0b6;padding:9px 12px;font-size:13.5px}.tb-shell .btn:disabled{opacity:.6;cursor:default}.tb-shell .btn.inline{width:auto;margin-right:8px;padding:10px 20px;display:inline-block}.tb-aside .solar-helper{border-top:1px solid var(--gold);margin-top:8px;padding-top:14px}.tb-aside .solar-helper summary{cursor:pointer;color:var(--indigo);font-size:14px;font-weight:600}.tb-aside .summary-card{background:#fffdf8;border:1px solid #e7dcc4;border-radius:12px;margin-top:20px;padding:16px;font-size:13.5px;line-height:1.7}.tb-aside .pattern-tag{color:#2a2550;background:#f6efe1;border:1px solid #ead9b8;border-radius:8px;margin:4px 4px 0 0;padding:6px 10px;font-size:12px;display:inline-block}.tb-aside a.pattern-tag{text-decoration:none}.tb-aside a.pattern-tag:hover{background:#f3e7cf;border-color:#c39a57}.tb-empty{text-align:center;color:#6b6356;background:#fffdf8;border:1px solid #e7dcc4;border-radius:16px;max-width:520px;margin:60px auto;padding:40px 30px;font-size:14.5px;line-height:1.9}.tb-empty b{color:#2a2550;margin-bottom:8px;font-family:Noto Serif TC,serif;font-size:18px;display:block}.tb-toggles{background:#fffdf8;border:1px solid #e7dcc4;border-radius:12px;overflow:hidden}.tb-tog{cursor:pointer;border-bottom:1px solid #f1ead9;justify-content:space-between;align-items:center;margin:0;padding:11px 14px;display:flex;position:relative}.tb-tog:last-child{border-bottom:0}.tb-tog>span.l{color:#3a3530;font-size:13.5px}.tb-aside .tb-tog input{opacity:0;width:0;height:0;position:absolute}.tb-sw{background:#2a2550;border-radius:999px;flex:none;width:38px;height:22px;position:relative}.tb-sw:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;position:absolute;top:2px;right:2px}.tb-tog input:not(:checked)~.tb-sw{background:#d8ccb4}.tb-tog input:not(:checked)~.tb-sw:after{left:2px;right:auto}.tb-tog.is-na{cursor:not-allowed}.tb-tog.is-na>span.l,.tb-tog.is-na .tb-sw{opacity:.45}.tb-tog .na{color:var(--muted);margin-left:6px;font-size:11.5px}.tb-tog input:focus-visible~.tb-sw{outline:2px solid var(--gold);outline-offset:2px}#view-fate-wrapper.hl-major .csv-major,#view-fate-wrapper.hl-minor .csv-minor,#view-fate-wrapper.hl-adj .csv-adj,#view-fate-wrapper.hl-bright .csv-bright,#view-fate-wrapper.hl-bright .csv-bright-box,#view-fate-wrapper.hl-mut .csv-mut,#view-fate-wrapper.hl-mut .csv-mut-box,#view-fate-wrapper.hl-self [data-cat=自化],#view-fate-wrapper.hl-self .csv-self-box,#view-fate-wrapper.hl-gods .csv-gods,#view-fate-wrapper.hl-span .csv-span,#view-fate-wrapper.hl-span .csv-span-years,#view-fate-wrapper.hl-horo .csv-horo-grp,#view-fate-wrapper.hl-palace .csv-pname,#view-fate-wrapper.hl-palace .csv-branch,#view-fate-wrapper.hl-dir .csv-dir{display:none}.view-fate-wrapper{box-sizing:border-box;background:#fff;padding:28px 20px}.view-fate-wrapper .view-trad,.view-fate-wrapper .view-circ{max-width:960px;margin-left:auto;margin-right:auto}.view-fate-wrapper.is-circ .trad-only{display:none}.chart-wrap{max-width:960px;margin:12px auto 0;position:relative}.chart-wrap .chart-svg{aspect-ratio:1;width:100%;height:auto;display:block}.chart-wrap .chart-svg [data-index]{cursor:pointer}.chart-wrap .chart-svg [data-cat]{cursor:help}.chart-wrap .chart-svg [data-scope-tab]{cursor:pointer}.chart-swap-status{text-align:center;color:var(--muted);min-height:18px;margin-top:4px;font-size:13px}#chart-popover{z-index:60;pointer-events:none;white-space:nowrap;background:var(--indigo,#233a5e);color:#fff;border-radius:4px;max-width:260px;padding:5px 10px;font-size:13px;line-height:1.4;position:fixed}#chart-popover b{font-weight:700}#chart-popover small{color:#d9cdb6;font-size:12px}.legendbar{border-top:1px solid var(--line);max-width:960px;color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 12px;margin:10px auto 0;padding:9px 4px;font-size:13px;display:flex}.legendbar .lb-grp{align-items:center;gap:4px;display:inline-flex}.legendbar .lb-mut{color:#fff;border:1px solid;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:inline-flex}.legendbar .lb-bright{border:1px solid var(--line);width:20px;height:20px;color:var(--muted);justify-content:center;align-items:center;font-size:12px;display:inline-flex}.legendbar .lb-scope{color:var(--ink);align-items:center;gap:3px;display:inline-flex}.legendbar .lb-box{color:#000;border:1px solid #000;justify-content:center;align-items:center;width:17px;height:17px;font-size:12px;font-style:normal;font-weight:700;display:inline-flex}.legendbar .lb-sep{background:var(--line);width:1px;height:18px;margin:0 2px}.chart-toolbar{border:1px solid var(--line);background:var(--surface);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px 10px;max-width:960px;margin:4px auto 12px;padding:10px 12px;display:flex}.chart-toolbar.main-toolbar{z-index:40;border:0;border-bottom:1px solid var(--line);border-radius:0;max-width:none;margin:-46px -42px 16px;padding:10px 42px;position:sticky;top:56px;box-shadow:0 4px 10px #2a25500f}@media (width<=900px){.chart-toolbar.main-toolbar{position:static}}.chart-toolbar .tb-label{color:var(--muted);letter-spacing:1px;font-size:12px}.chart-toolbar .tb-group{align-items:center;gap:8px;display:inline-flex}.chart-toolbar .tb-sep{background:var(--line);align-self:stretch;width:1px;min-height:24px;margin:0 2px}.chart-toolbar input[type=number]{border:1px solid var(--line);background:#fff;border-radius:2px;padding:5px 6px;font-family:inherit;font-size:13px}.chart-toolbar select,.chart-toolbar .tb-btn,.chart-toolbar .tb-step{box-sizing:border-box;height:34px}.chart-toolbar .tb-step .sbtn{height:100%}.chart-toolbar .seg-tabs{box-sizing:border-box;height:34px}.chart-toolbar .seg-tabs .seg{box-sizing:border-box;height:32px;padding-top:0;padding-bottom:0}.chart-toolbar .tb-step select{height:100%}.chart-toolbar select{border:1px solid var(--line);background:#fff;border-radius:2px;padding:5px 4px;font-family:inherit;font-size:13px}.horo-form{display:contents}.tb-step{border:1px solid var(--line);background:#fff;border-radius:4px;align-items:center;gap:4px;padding:2px 3px;display:inline-flex}.tb-step .sbtn{cursor:pointer;color:var(--indigo);background:0 0;border:0;padding:3px 8px;font-family:inherit;font-size:15px;line-height:1}.tb-step .sbtn:hover{color:var(--accent)}.tb-step .sbtn:disabled{color:#c9bfa8;cursor:default}.tb-step b{text-align:center;min-width:88px;font-size:13px;font-weight:700}.chart-toolbar .tb-step select{text-align:center;background:0 0;border:0;width:76px;padding:4px 0;font-weight:700}.tb-btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:2px;padding:6px 12px;font-family:inherit;font-size:13px}.tb-btn:hover{background:var(--paper)}.tb-btn.primary{background:var(--indigo);color:#fff;border-color:var(--indigo)}.seg-tabs{border:1px solid var(--line);border-radius:4px;display:inline-flex;overflow:hidden}.seg-tabs .seg{cursor:pointer;color:var(--muted);border-left:1px solid var(--line);-webkit-user-select:none;user-select:none;background:var(--surface);align-items:center;gap:6px;padding:7px 18px;font-size:14px;display:inline-flex;position:relative}.seg-tabs .seg:first-child{border-left:0}.seg-tabs .seg input{opacity:0;width:0;height:0;position:absolute}.seg-tabs .seg:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:-2px}.view-tabs .seg:has(input:checked){background:var(--accent);color:#fff}.layer-tabs .seg:has(input:checked){background:var(--indigo);color:#fff}.mut-tabs .seg{color:var(--c);font-weight:700}.mut-tabs .seg:has(input:checked){background:var(--c);color:#fff}.seg-tabs .seg:has(input:disabled){opacity:.4;cursor:not-allowed}.line-tabs .seg:has(input:checked){background:var(--gold);color:#fff}.chart-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px;display:grid}.chart-main{min-width:0}.chart-side{--side-top:calc(56px + var(--toolbar-h,0px) + 12px);top:var(--side-top);max-height:calc(100vh - var(--side-top) - 12px);color:var(--ink);gap:12px;font-size:13px;display:grid;position:sticky;overflow-y:auto}.chart-side-card{border:1px solid var(--line);background:#fff;border-radius:8px;padding:14px 16px}.chart-side h3{color:var(--indigo);align-items:baseline;gap:8px;margin:0 0 6px;font-family:Noto Serif TC,serif;font-size:16px;display:flex}.chart-side h3 small{color:var(--muted);font-family:Noto Sans TC,sans-serif;font-size:13px;font-weight:400}.chart-side-clear{color:var(--muted);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:2px 4px;font-size:18px;line-height:1}.chart-side-horo{gap:6px;margin:0;display:grid}.chart-side-horo div{grid-template-columns:34px 1fr;gap:6px;display:grid}.chart-side-horo dt{color:var(--muted)}.chart-side-horo dd{flex-wrap:wrap;gap:0 8px;margin:0;display:flex}.chart-side-horo dd span{color:var(--muted)}.chart-side-stars{margin:0 0 8px}.chart-side section{margin-top:8px}.chart-side ul{margin:2px 0 0;padding-left:16px;list-style:outside}.chart-side li{line-height:1.6}.chart-side-hint{color:var(--muted);margin:0;line-height:1.6}@media (width<=1180px){.chart-layout{grid-template-columns:minmax(0,1fr)}.chart-side{position:static}}@media (width<=720px){.chart-toolbar .tb-sep{display:none}}.tb-interp{max-width:960px;margin:8px auto 0}.tb-interp h3{color:var(--indigo);margin:28px 0 10px;font-family:Noto Serif TC,serif;font-size:18px;font-weight:700}.tb-interp .field{margin-bottom:14px}.tb-interp .field label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.tb-interp input,.tb-interp select,.tb-interp textarea{color:#2a2550;background:#fffdf8;border:1px solid #ddd0b6;border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:14.5px}.tb-interp textarea{min-height:96px;line-height:1.7}.tb-interp .grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.tb-interp .hint{color:var(--muted);margin-top:6px;font-size:13px}@media (width<=720px){.tb-interp .grid-2{grid-template-columns:1fr}}@media (width<=900px){.tb-aside{border-bottom:1px solid #ddd0b6;border-right:0;flex:none;width:100%;height:auto;position:static}.tb-body{flex-direction:column}.tb-nav{display:none}}.zw-wrap{font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}.zw-stage{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.ziwei-circular{flex:460px;width:100%;max-width:760px;height:auto;display:block}.tb-mtabs{display:none}@media (width<=900px){.tb-mtabs{border-top:1px solid #e9e3cf1f;grid-template-columns:repeat(4,1fr);display:grid}.tb-mtabs button{color:#b9b1cf;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;min-height:44px;font-family:inherit;font-size:14px}.tb-mtabs button[aria-selected=true]{color:#fff;border-bottom-color:var(--gold);font-weight:700}.tb-mtabs button:disabled{opacity:.4;cursor:default}.tb-shell:not([data-mtab=basic]) .tb-aside,.tb-shell:not([data-mtab=settings]) .main-toolbar,.tb-shell:not([data-mtab=chart]) .chart-main,.tb-shell:not([data-mtab=info]) .chart-side,.tb-shell[data-mtab=basic] .tb-main{display:none}.tb-shell[data-mtab=settings] .chart-toolbar.main-toolbar{border:1px solid var(--line);box-shadow:none;border-radius:8px;gap:12px 10px;margin:0;padding:14px 12px}.main-toolbar .tb-sep{display:none}.main-toolbar .tb-group{width:100%}.main-toolbar .tb-group .tb-label{flex:0 0 40px}.main-toolbar .seg-tabs{flex:1}.main-toolbar .seg-tabs .seg{white-space:nowrap;flex:1;justify-content:center;padding:9px 8px}}
