:root{--bg: #f6f5f2;--panel: #fffefb;--ink: #23211d;--ink-soft: #6b655c;--line: #ddd8cd;--accent: #8a6d3b;--accent-soft: #f0e8d8;--danger: #a33a2a;--ok: #3f6b4f;--radius: 12px;--shadow: 0 1px 2px rgb(35 33 29 / 8%), 0 8px 24px rgb(35 33 29 / 4%);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #171614;--panel: #201e1b;--ink: #ece7dd;--ink-soft: #a49c8f;--line: #34312c;--accent: #d3b378;--accent-soft: #2c271f;--danger: #e08a76;--ok: #7fb894;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 8px 24px rgb(0 0 0 / 20%)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif}.app{display:flex;flex-direction:column;min-height:100%;max-width:760px;margin:0 auto;padding:12px 14px 28px;gap:12px}header{display:flex;align-items:center;justify-content:space-between;gap:8px}.brand b{font-size:17px;letter-spacing:1px}.brand span{display:block;font-size:12px;color:var(--ink-soft)}.badges{display:flex;gap:6px;flex-wrap:wrap}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.badge.owner{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.badge.warn{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.tabs{display:flex;gap:4px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);position:sticky;top:6px;z-index:5}.tabs button{flex:1;padding:8px 4px;border:0;border-radius:8px;background:transparent;color:var(--ink-soft);font-size:14px;cursor:pointer;white-space:nowrap}.tabs button.active{background:var(--accent-soft);color:var(--ink);font-weight:600}.tabs button i{font-style:normal;font-size:11px;opacity:.6;margin-left:2px}.body{flex:1}.tab-pane[hidden]{display:none}.view{display:flex;flex-direction:column;gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card h3{margin:0 0 10px;font-size:14px;color:var(--accent);letter-spacing:.5px}.card p{margin:6px 0}code{font-size:12px;padding:1px 5px;border-radius:5px;background:var(--accent-soft)}.hint{font-size:12px;color:var(--ink-soft);margin:6px 0}.hint.center{text-align:center}.pillars{font-variant-numeric:tabular-nums}button{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 14px;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fffdf8;font-weight:600}button.ghost{background:transparent}button.danger,.link.danger{color:var(--danger)}.link{background:none;border:0;padding:2px 0;color:var(--accent);font-size:13px;text-decoration:underline;text-underline-offset:3px}input,select{font:inherit;width:100%;padding:8px 10px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:9px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field{display:block;font-size:13px;color:var(--ink-soft);margin:8px 0}.field input,.field select{margin-top:4px;color:var(--ink)}.field-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin:8px 0}.field-row label{flex:1;min-width:120px;font-size:13px;color:var(--ink-soft)}.field-row input{margin-top:4px}.check{display:flex;align-items:center;gap:8px;font-size:13px;margin:10px 0}.check input{width:auto}.method-tabs{display:flex;gap:6px;flex-wrap:wrap}.method-tabs button.active{background:var(--accent-soft);border-color:var(--accent);font-weight:600}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.idle-hint{margin:0;padding:18px;text-align:center;color:var(--ink-soft);font-size:13px;background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius)}.casting{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:14px;color:var(--accent);font-size:13px}.spinner{width:14px;height:14px;border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hexagram{--hex-scale: 1;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:calc(12px * var(--hex-scale, 1));box-shadow:var(--shadow)}.hexagram-head{display:flex;justify-content:space-between;align-items:baseline;gap:calc(10px * var(--hex-scale, 1));flex-wrap:wrap}.hexagram-name{font-size:calc(20px * var(--hex-scale, 1));letter-spacing:2px}.hexagram-full{font-size:max(10px,calc(12px * var(--hex-scale, 1)));color:var(--ink-soft);margin-left:8px}.hexagram-meta{display:flex;gap:calc(10px * var(--hex-scale, 1));font-size:max(9px,calc(11px * var(--hex-scale, 1)));color:var(--ink-soft);flex-wrap:wrap}.hexagram-lines{margin-top:calc(10px * var(--hex-scale, 1));display:flex;flex-direction:column;gap:calc(8px * var(--hex-scale, 1))}.line-row{display:grid;grid-template-columns:calc(34px * var(--hex-scale, 1)) 1fr calc(56px * var(--hex-scale, 1));align-items:center;gap:calc(8px * var(--hex-scale, 1))}.line-label{font-size:max(10px,calc(12px * var(--hex-scale, 1)));color:var(--ink-soft);text-align:right}.line-type{font-size:max(9px,calc(11px * var(--hex-scale, 1)));color:var(--ink-soft)}.hex-line{--glyph-w: calc(96px * var(--hex-scale, 1));display:inline-flex;align-items:center;gap:calc(8px * var(--hex-scale, 1))}.hex-line-bars{display:flex;gap:calc(var(--glyph-w) * .16);width:var(--glyph-w);flex:none}.hex-line-bars i{flex:1;height:calc(9px * var(--hex-scale, 1));border-radius:calc(3px * var(--hex-scale, 1));background:var(--ink)}.hex-line[data-moving] .hex-line-bars i{background:var(--accent)}.hex-line-mark{flex:none;display:grid;place-items:center;width:calc(14px * var(--hex-scale, 1));height:calc(14px * var(--hex-scale, 1));border-radius:50%;background:var(--accent);color:#fff;font-size:max(7px,calc(9px * var(--hex-scale, 1)));font-style:normal;font-weight:700;line-height:1}.result{display:flex;flex-direction:column;gap:14px}.hexagram-trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:stretch}.hexagram-trio>.trio-cell{display:flex;flex-direction:column}.hexagram-trio>.trio-cell>.hexagram{flex:1;--hex-scale: .67}.hexagram-trio>.trio-cell[data-clickable]{cursor:pointer}.hexagram-trio>.trio-cell[data-clickable]>.hexagram{transition:border-color .15s ease,box-shadow .15s ease}.hexagram-trio>.trio-cell[data-clickable]:hover>.hexagram{border-color:var(--accent)}.hexagram-trio>.trio-cell[data-clickable]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}.trio-tag{align-self:flex-start;font-size:11px;padding:1px 8px;margin-bottom:4px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.result-method{margin:0;font-size:12px;color:var(--ink-soft)}.coin-toss{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}.coin-lines{display:flex;flex-direction:column;gap:6px}.coin-line{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:8px;opacity:.35;transition:opacity .2s ease}.coin-line[data-shown]{opacity:1}.coin-line-label{font-size:12px;color:var(--ink-soft);text-align:right}.coin-line-empty{font-size:12px;color:var(--ink-soft)}.coin-coins{display:flex;align-items:center;gap:6px}.coin{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-style:normal;border:1px solid var(--line);background:var(--accent-soft);color:var(--accent);animation:coin-in .42s ease}.coin[data-face=front]{background:var(--bg);color:var(--ink-soft)}@keyframes coin-in{0%{transform:scale(.4) rotate(-90deg);opacity:0}}@media(prefers-reduced-motion:reduce){.coin{animation:none}}.coin-coins b{font-size:12px;margin-left:4px}.coin-progress{display:flex;align-items:center;justify-content:space-between;margin-top:10px;font-size:12px;color:var(--ink-soft)}.judgement{font-size:15px;letter-spacing:1px;line-height:1.8}.extra{font-size:12px;color:var(--accent)}.plain{font-size:13px;color:var(--ink-soft);line-height:1.7}.line-texts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.line-texts li{display:grid;grid-template-columns:58px 1fr;gap:4px 8px;padding:6px 0;border-top:1px dashed var(--line);font-size:13px;line-height:1.7}.line-texts li:first-child{border-top:0}.line-texts li[data-moving]{background:var(--accent-soft);border-radius:8px;padding:6px 8px}.line-title{color:var(--accent);font-size:12px}.line-changed{grid-column:2;font-size:12px;color:var(--ink-soft)}.tag{font-size:10px;padding:0 5px;margin-left:4px;border-radius:4px;background:var(--accent);color:#fffdf8}.facts{display:flex;flex-direction:column;gap:8px;font-size:13px}.facts div{display:flex;gap:10px}.facts span{flex:0 0 64px;color:var(--ink-soft);font-size:12px}.hexagram-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:6px;margin-top:8px;max-height:46vh;overflow:auto}.hexagram-grid button{position:relative;display:flex;align-items:center;gap:8px;padding:7px 9px;text-align:left;border-radius:8px}.hexagram-grid .grid-text{display:flex;flex-direction:column;gap:1px;min-width:0}.hexagram-grid .grid-text b{font-size:14px}.hexagram-grid .grid-text>span{font-size:10px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hexagram-grid button>i{position:absolute;top:5px;right:7px;font-size:10px;font-style:normal;color:var(--ink-soft)}.hexagram-grid button.active{background:var(--accent-soft);border-color:var(--accent)}.mini-hexagram{display:flex;flex-direction:column;gap:3px;flex:none}.mini-line{display:flex;gap:3px;width:30px}.mini-line i{flex:1;height:4px;border-radius:1px;background:var(--ink)}.allow-moving{margin-top:8px}.line-legend{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 4px;font-size:12px;color:var(--ink-soft)}.line-legend b{font-weight:700;color:var(--ink)}.line-legend b[data-mark]{color:var(--accent)}.line-editor{display:flex;flex-direction:column;gap:6px;margin-top:4px}.line-editor-row{display:grid;grid-template-columns:40px 1fr 48px 20px;align-items:center;gap:8px;padding:7px 10px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px}.line-editor-row:hover{border-color:var(--accent)}.line-editor-row[data-moving]{border-color:var(--accent);background:var(--accent-soft)}.line-editor-row .line-label{text-align:left;font-weight:600;color:var(--ink)}.line-editor-row .line-type{color:var(--ink-soft)}.line-editor-row[data-moving] .line-type{color:var(--accent)}.line-editor-row .chevron{font-style:normal;font-size:12px;line-height:.8;color:var(--ink-soft)}.line-editor-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.line-editor-foot .hint{margin:0}.chat{display:flex;flex-direction:column;gap:8px}.chat-log{max-height:52vh;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-right:2px}.chat-empty{font-size:12px;color:var(--ink-soft);margin:0}.chat-turn.user{display:flex;justify-content:flex-end}.bubble{max-width:88%;padding:8px 11px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-size:14px;white-space:pre-wrap;word-break:break-word}.chat-turn.user .bubble{background:var(--accent-soft);border-color:transparent}.bubble p{margin:0 0 8px}.bubble p:last-child{margin-bottom:0}.markdown{white-space:normal;line-height:1.7}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{margin:16px 0 8px;line-height:1.35}.markdown h1{font-size:1.4em}.markdown h2{font-size:1.25em}.markdown h3{font-size:1.1em}.markdown h4,.markdown h5,.markdown h6{font-size:1em}.markdown p{margin:0 0 10px}.markdown ul,.markdown ol{margin:0 0 10px;padding-left:1.4em}.markdown li{margin:2px 0}.markdown li>p{margin:0}.markdown blockquote{margin:0 0 10px;padding:2px 0 2px 10px;border-left:3px solid var(--line);color:var(--ink-soft)}.markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}.markdown pre{margin:0 0 10px;padding:10px 12px;border-radius:8px;background:var(--accent-soft);overflow-x:auto}.markdown pre code{background:none;padding:0;font-size:.85em}.markdown a{color:var(--accent)}.markdown table{border-collapse:collapse;width:100%;margin:0 0 10px;font-size:13px}.markdown th,.markdown td{border:1px solid var(--line);padding:5px 8px;text-align:left}.markdown th{background:var(--bg)}.markdown hr{border:0;border-top:1px solid var(--line);margin:12px 0}.typing{color:var(--ink-soft);font-size:13px}.typing:after{content:"…";animation:blink 1.2s steps(2,start) infinite}@keyframes blink{50%{opacity:.3}}@media(prefers-reduced-motion:reduce){.typing:after{animation:none}}.reasoning{margin-bottom:4px}.reasoning-body{font-size:12px;color:var(--ink-soft);border-left:2px solid var(--line);padding:2px 0 2px 8px;margin:4px 0;max-height:30vh;overflow:auto;white-space:pre-wrap}.chat-usage{font-size:11px;color:var(--ink-soft);margin:0}.chat-error{font-size:13px;color:var(--danger);margin:6px 0}.chat-warn{font-size:12px;color:var(--accent);background:var(--accent-soft);padding:6px 10px;border-radius:8px;margin:0}.chat-input{display:flex;gap:8px}.chat-input input{flex:1}.chat-input button{flex:0 0 auto}.usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:8px}.usage-grid div{display:flex;flex-direction:column}.usage-grid span{font-size:11px;color:var(--ink-soft)}.usage-grid b{font-size:15px}.list-head{display:flex;align-items:center;justify-content:space-between}.record-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.record{width:100%;display:flex;align-items:center;gap:8px;text-align:left;padding:9px 11px}.record-main{flex:1;display:flex;flex-direction:column;gap:1px}.record-main b{font-size:15px}.record-main i{font-style:normal;font-size:11px;color:var(--ink-soft)}.record-main em{font-style:normal;font-size:12px;color:var(--ink-soft)}.record-del{font-size:11px;color:var(--danger);padding:4px 6px;flex:0 0 auto}.provider-slots{display:flex;flex-direction:column;gap:10px;margin:10px 0}.slot{border:1px solid var(--line);border-radius:10px;padding:10px}.slot[data-active]{border-color:var(--accent);background:var(--accent-soft)}.slot h4{margin:0 0 4px;font-size:13px}.visitor-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.visitor-list li{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px dashed var(--line)}.visitor-list li span{flex:1;display:flex;flex-direction:column}.visitor-list li i{font-style:normal;font-size:11px;color:var(--ink-soft)}footer{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--ink-soft);padding-top:6px;border-top:1px solid var(--line);flex-wrap:wrap}
