*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.block{display:block}.flex{display:flex}.\!table{display:table!important}.table{display:table}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.running{animation-play-state:running}html,body,#root{background-color:#08090a;min-height:100%}@media (prefers-color-scheme:light){html,body,#root{background-color:#fff}}body{font-family:var(--xq-font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-color:hsl(var(--background));color:hsl(var(--foreground));margin:0;font-weight:700}.cjk-latin{font-size-adjust:.56;vertical-align:var(--cjk-latin-shift,-.15em)}:root{--xq-app-bg:#15110c;--xq-app-bg2:#1d1812;--xq-surface:#221b13;--xq-surface-2:#2c241a;--xq-border:#3a2f20;--xq-text:#ece2cf;--xq-text-dim:#b3a486;--xq-text-mute:#7d6e54;--xq-primary:#c0392b;--xq-primary-hover:#d44a3b;--xq-primary-soft:#c0392b29;--xq-accent:#d4a13a;--xq-board-bg:#dfbf8a;--xq-board-bg2:#d3b176;--xq-piece-wood:#ecd9a6;--xq-piece-wood-edge:#c9a76a;--xq-line:#6b4a23;--xq-river:#7a5a2c;--xq-red:#c0392b;--xq-red-ink:#7a2418;--xq-black:#232020;--xq-black-light:#4a4036;--xq-black-edge:#0a0806;--xq-token:#f3e6c4;--xq-token-red:#f4d9c0;--xq-preview:#2f7d8c;--xq-preview-soft:#2f7d8c80;--xq-ghost-stroke:#6b665c;--xq-shadow:0 1px 2px #0006;--xq-shadow-lg:0 10px 30px #00000073;--xq-radius:22px;--xq-font-serif:"Xingkai SC", "STXingkai", "华文行楷", "KaiTi", "楷体", "STKaiti", "Songti SC", "SimSun", "NSimSun", "MingLiU", "Source Han Serif SC", "Noto Serif CJK SC", serif;--xq-font-board:"JinghuaOldSong", "京华老宋体", "CMEXcSong", "PMingLiU", "MingLiU", "Songti TC", "Noto Serif TC", "Source Han Serif TC", "Songti SC", "SimSun", serif;--xq-font-ui:var(--xq-font-serif);--xq-hairline:#ece2cf14;--xq-focus:#d4a13a52;--xq-glass:#15110cc7;--xq-shadow-sm:0 1px 2px #0a080659;--xq-radius-sm:12px;--xq-board-shadow:0 14px 34px #0a08066b}html[data-xq-theme=light]{--xq-app-bg:#efe8da;--xq-app-bg2:#e6ddca;--xq-surface:#faf6ec;--xq-surface-2:#f0e9d9;--xq-border:#d9cdb2;--xq-text:#3a3325;--xq-text-dim:#6c624e;--xq-text-mute:#8a7f68;--xq-primary-soft:#c0392b1a;--xq-accent:#a97c22;--xq-river:#8a6f42;--xq-preview:#23707e;--xq-preview-soft:#23707e73;--xq-hairline:#3a2f201f;--xq-focus:#a97c224d;--xq-glass:#efe8dad1;--xq-shadow:0 1px 2px #3a2f2029;--xq-shadow-sm:0 1px 2px #3a2f2024;--xq-shadow-lg:0 12px 30px #3a2f2029;--xq-board-shadow:0 12px 28px #3a2f2038}html,body,#root{background-color:var(--xq-app-bg);color:var(--xq-text)}.xq-app{background:radial-gradient(1200px 600px at 80% -10%, var(--xq-app-bg2), var(--xq-app-bg) 60%);flex-direction:column;min-height:100vh;display:flex}.xq-top{box-shadow:var(--xq-shadow-sm);background:var(--xq-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;border-bottom:none;flex-wrap:wrap;align-items:center;gap:12px;padding:5px 16px;display:flex;position:sticky;top:0}.xq-brand{align-items:center;gap:12px;display:flex}.xq-brand h1{font-family:var(--xq-font-serif);letter-spacing:.14em;margin:0;font-size:18px;font-weight:700}.xq-brand small{color:var(--xq-text-mute);letter-spacing:.06em;font-size:11px}.xq-logo{width:34px;height:34px;font-family:var(--xq-font-serif);color:var(--xq-token);background:linear-gradient(145deg, var(--xq-primary), var(--xq-red-ink));box-shadow:inset 0 1px 0 #ffffff24, var(--xq-shadow);border-radius:10px;place-items:center;font-size:19px;font-weight:800;display:grid}.xq-status{background:var(--xq-primary-soft);color:var(--xq-text);border:1px solid var(--xq-border);border-radius:999px;align-items:center;gap:8px;margin-left:auto;padding:3px 12px;font-size:12px;font-weight:700;display:inline-flex}.xq-status.xq-status-alert{background:var(--xq-primary);color:var(--xq-token-red);border-color:var(--xq-primary-hover);animation:1.1s ease-in-out 3 xq-alert-flash}@keyframes xq-alert-flash{0%,to{box-shadow:0 0 0 0 var(--xq-primary-soft)}50%{box-shadow:0 0 0 5px var(--xq-primary-soft)}}.xq-status.xq-status-risk{background:var(--xq-surface-2);color:var(--xq-accent);border-color:var(--xq-accent);box-shadow:inset 0 0 0 1px var(--xq-focus)}.xq-status-dot{background:var(--xq-text-mute);border-radius:50%;flex-shrink:0;width:7px;height:7px}.xq-status-dot.is-red{background:var(--xq-red);box-shadow:0 0 0 3px var(--xq-primary-soft)}.xq-status-dot.is-black{background:var(--xq-text-dim);box-shadow:0 0 0 3px #ece2cf14}.xq-toolbar{flex-wrap:wrap;gap:8px;display:flex}.xq-top .xq-btn{min-height:26px;padding:2px 10px;font-size:12px}.xq-main{grid-template-columns:minmax(0,1fr) 312px;grid-template-rows:var(--xq-stage-h);--xq-board-h:calc(100dvh - 90px);--xq-stage-h:calc(var(--xq-board-h) + 20px);gap:14px;width:100%;max-width:1520px;margin:0 auto;padding:8px 16px;display:grid}.xq-stage{align-items:stretch;gap:10px;min-width:0;display:flex}.xq-rail{height:var(--xq-stage-h);--xq-clock-h:46px;flex-direction:column;flex:0 0 214px;align-self:stretch;gap:10px;min-height:0;display:flex}.xq-rail-moves{flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex}.xq-rail-moves>.xq-panel{flex:none;padding:10px 12px}.xq-rail-moves .xq-moves-panel{flex-direction:column;flex:auto;min-height:0;display:flex}.xq-rail-moves .xq-moves-panel .xq-movelist{flex:auto;min-height:0;max-height:none}.xq-rail-moves>.xq-game-panel{min-height:var(--xq-clock-h);flex-direction:column;flex:none;justify-content:center;gap:3px;padding:8px 12px;display:flex}.xq-rail-moves>.xq-game-panel .xq-panel-h{margin-bottom:0}.xq-rail-moves>.xq-actions-panel{height:calc(var(--xq-clock-h) * 2);flex:none;padding:10px 12px;display:flex}.xq-rail-moves>.xq-actions-panel .xq-actions{flex:1;grid-template-rows:1fr 1fr;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:0;display:grid}.xq-rail-moves>.xq-actions-panel .xq-btn{padding:2px 4px}.xq-menu-btn,.xq-side-mask{display:none}@media (width<=960px){.xq-main{grid-template-columns:1fr}.xq-menu-btn{display:inline-flex}.xq-side-mask{z-index:55;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a07038c;display:block;position:fixed;inset:0}.xq-side{z-index:60;background:var(--xq-app-bg);border-left:none;width:min(88vw,350px);height:auto;padding:18px 14px 24px;transition:transform .24s;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(105%);box-shadow:-16px 0 40px #00000059}.xq-side.is-open{transform:none}.xq-stage{flex-direction:column}.xq-rail{flex:none;height:auto}.xq-board-wrap{height:auto}.xq-rail-moves .xq-moves-panel .xq-movelist{max-height:260px}}.xq-board-wrap{box-shadow:none;min-width:0;height:var(--xq-stage-h);background:0 0;border:none;border-radius:44px;flex-direction:column;flex:auto;justify-content:center;align-items:center;padding:10px;transition:height .18s cubic-bezier(.22,.61,.36,1);display:flex;position:relative}.xq-settle{text-align:center;background:var(--xq-glass);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:44px;flex-direction:column;justify-content:center;align-items:center;gap:6px;animation:.25s ease-out xq-settle-in;display:flex;position:absolute;inset:0}@keyframes xq-settle-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.xq-settle-verdict{font-family:var(--xq-font-serif);letter-spacing:.06em;margin:0;font-size:34px;font-weight:700}.xq-settle-verdict.is-win{color:var(--xq-accent)}.xq-settle-verdict.is-loss,.xq-settle-verdict.is-red{color:var(--xq-primary-hover)}.xq-settle-verdict.is-black{color:var(--xq-text)}.xq-settle-verdict.is-draw{color:var(--xq-text-dim)}.xq-settle-reason{color:var(--xq-text-dim);margin:0;font-size:13px}.xq-settle-actions{gap:10px;margin-top:10px;display:flex}.xq-board{-webkit-user-select:none;user-select:none;box-shadow:none;width:min(100%, calc(var(--xq-board-h) * .88));max-height:var(--xq-board-h);aspect-ratio:540/612;border:none;border-radius:0;min-width:300px;height:auto;transition:width .18s cubic-bezier(.22,.61,.36,1),transform .18s cubic-bezier(.22,.61,.36,1)}.xq-cursor{fill:none;stroke:var(--xq-accent);stroke-width:1.6px;stroke-dasharray:4 3;opacity:.85;pointer-events:none}.xq-side{height:var(--xq-stage-h);flex-direction:column;align-self:stretch;gap:10px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.xq-panel{background:var(--xq-surface);border:1px solid var(--xq-hairline);border-radius:var(--xq-radius);box-shadow:none;padding:12px 14px}.xq-panel-h{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.xq-panel-h h3{letter-spacing:.05em;color:var(--xq-text);margin:0;font-size:13px;font-weight:700}.xq-mt{margin-top:10px}.xq-tag{background:var(--xq-surface-2);color:var(--xq-text-dim);border:1px solid var(--xq-hairline);letter-spacing:.02em;border-radius:999px;padding:2px 9px;font-size:11px}.xq-field-label{color:var(--xq-text-mute);letter-spacing:.04em;margin:12px 0 6px;font-size:11px}.xq-field-label:first-child{margin-top:0}.xq-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.xq-row:last-child{margin-bottom:0}.xq-label{width:48px;color:var(--xq-text-dim);flex-shrink:0;font-size:12px}.xq-input,.xq-select,.xq-textarea{background:var(--xq-app-bg);border:1px solid var(--xq-border);border-radius:var(--xq-radius-sm);min-height:34px;color:var(--xq-text);outline:none;flex:1;padding:7px 11px;font-family:inherit;font-size:13px;transition:border-color .16s,box-shadow .16s}.xq-input:hover,.xq-select:hover,.xq-textarea:hover{border-color:var(--xq-text-mute)}.xq-input:focus,.xq-select:focus,.xq-textarea:focus{border-color:var(--xq-accent);box-shadow:0 0 0 3px var(--xq-focus)}.xq-input::-moz-placeholder{color:var(--xq-text-mute)}.xq-textarea::-moz-placeholder{color:var(--xq-text-mute)}.xq-input::placeholder,.xq-textarea::placeholder{color:var(--xq-text-mute)}.xq-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--xq-text-mute) 50%), linear-gradient(135deg, var(--xq-text-mute) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 17px) 55%,calc(100% - 12px) 55%;background-repeat:no-repeat;background-size:5px 5px;padding-right:30px}.xq-textarea{resize:vertical;width:100%;min-height:70px;font-family:var(--xq-font-serif);font-size:12px;font-weight:700;line-height:1.55}.xq-textarea-sm{min-height:52px}.xq-slider{flex:1;align-items:center;gap:10px;display:flex}.xq-slider input[type=range],input.xq-slider[type=range]{appearance:none;background:var(--xq-surface-2);border:1px solid var(--xq-hairline);cursor:pointer;border-radius:999px;outline:none;flex:1;height:5px}.xq-slider input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--xq-accent);border:2px solid var(--xq-surface);width:15px;height:15px;box-shadow:var(--xq-shadow-sm);border-radius:50%;transition:transform .12s}input.xq-slider[type=range]::-webkit-slider-thumb{appearance:none;background:var(--xq-accent);border:2px solid var(--xq-surface);width:15px;height:15px;box-shadow:var(--xq-shadow-sm);border-radius:50%;transition:transform .12s}.xq-slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.12)}input.xq-slider[type=range]::-webkit-slider-thumb:hover{transform:scale(1.12)}.xq-slider input[type=range]::-moz-range-thumb{background:var(--xq-accent);border:2px solid var(--xq-surface);width:15px;height:15px;box-shadow:var(--xq-shadow-sm);border-radius:50%}input.xq-slider[type=range]::-moz-range-thumb{background:var(--xq-accent);border:2px solid var(--xq-surface);width:15px;height:15px;box-shadow:var(--xq-shadow-sm);border-radius:50%}.xq-slider input[type=range]:focus-visible,input.xq-slider[type=range]:focus-visible{box-shadow:0 0 0 3px var(--xq-focus)}.xq-seg{background:var(--xq-app-bg);border:1px solid var(--xq-border);border-radius:var(--xq-radius-sm);flex:1;gap:2px;padding:3px;display:flex}.xq-seg-btn{min-height:28px;color:var(--xq-text-dim);font-family:var(--xq-font-ui);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;padding:4px 6px;font-size:12px;font-weight:700;transition:background .15s,color .15s,box-shadow .15s}.xq-seg-btn:hover{color:var(--xq-text)}.xq-seg-btn:focus-visible{outline:2px solid var(--xq-accent);outline-offset:1px}.xq-seg-btn.on{background:var(--xq-surface-2);color:var(--xq-text);box-shadow:var(--xq-shadow-sm), inset 0 0 0 1px var(--xq-hairline)}.xq-seg-btn.on.xq-seg-red{color:var(--xq-red)}.xq-panel-h.xq-foldable-h{cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:8px}.xq-stats-row{color:var(--xq-text-dim);flex-wrap:wrap;align-items:center;gap:14px;font-size:12px;display:flex}.xq-stats-item{align-items:center;gap:6px;display:inline-flex}.xq-stats-item strong{font-variant-numeric:tabular-nums;color:var(--xq-text);font-weight:700}.xq-stats-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.xq-stats-dot.is-red{background:var(--xq-red)}.xq-stats-dot.is-black{background:var(--xq-text-dim)}.xq-btn-sm{border-radius:8px;min-height:26px;padding:2px 10px;font-size:12px}.xq-vol{flex:1;align-items:center;gap:10px;display:flex}.xq-foldable-h:hover .xq-chevron{border-color:var(--xq-text-dim)}.xq-panel-side{align-items:center;gap:8px;display:inline-flex}.xq-chevron{border-right:1.6px solid var(--xq-text-mute);border-bottom:1.6px solid var(--xq-text-mute);width:7px;height:7px;transition:transform .18s,border-color .15s;transform:rotate(225deg)}.xq-chevron.xq-chev-folded{transform:rotate(45deg)}.xq-actions{gap:8px;margin-top:10px;display:flex}.xq-presets{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.xq-btn{border:1px solid var(--xq-border);background:var(--xq-surface-2);min-height:28px;color:var(--xq-text);border-radius:var(--xq-radius-sm);font-family:var(--xq-font-ui);letter-spacing:.01em;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:3px 12px;font-size:13px;font-weight:700;transition:background .16s,border-color .16s,color .16s,transform 80ms,box-shadow .16s;display:inline-flex}.xq-btn:hover:not(:disabled){border-color:var(--xq-primary)}.xq-btn:active:not(:disabled){transform:translateY(1px)}.xq-btn:focus-visible{outline:2px solid var(--xq-accent);outline-offset:2px}.xq-btn:disabled{opacity:.45;cursor:not-allowed}.xq-btn-primary{background:linear-gradient(145deg, var(--xq-primary), var(--xq-red-ink));border-color:var(--xq-primary);color:var(--xq-token);box-shadow:inset 0 1px 0 #ffffff1f, var(--xq-shadow-sm)}.xq-btn-primary:hover:not(:disabled){background:linear-gradient(145deg, var(--xq-primary-hover), var(--xq-primary));box-shadow:inset 0 1px #ffffff1f,0 4px 14px #c0392b47}.xq-btn-ghost{background:0 0}.xq-btn-ghost:hover:not(:disabled){background:var(--xq-surface-2)}.xq-presets .xq-btn{border-radius:8px;min-height:30px;padding:4px 12px;font-size:12px}.xq-hint{color:var(--xq-text-mute);margin:6px 0 0;font-size:11px}.xq-llm{margin-top:6px}.xq-suggest{color:var(--xq-text-dim);background:var(--xq-app-bg);border:1px dashed var(--xq-border);border-radius:8px;flex-direction:column;gap:4px;margin-top:10px;padding:8px 10px;font-size:12px;display:flex}.xq-note{color:var(--xq-text-mute);font-size:11px}.xq-note.xq-note-alert{color:var(--xq-primary-hover);font-weight:700}.xq-note.xq-note-alert.xq-note-jump{cursor:pointer;text-underline-offset:3px;border-radius:6px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;transition:background .14s}.xq-note.xq-note-alert.xq-note-jump:hover{background:var(--xq-primary-soft)}.xq-note.xq-note-alert.xq-note-jump:focus-visible{outline:2px solid var(--xq-primary);outline-offset:1px}.xq-note.xq-puzzle-timer{font-variant-numeric:tabular-nums}.xq-note.xq-puzzle-timer.is-over{color:var(--xq-primary-hover);font-weight:700}.xq-note.xq-puzzle-timer.is-low{color:var(--xq-primary-hover);font-weight:700;animation:1s ease-in-out infinite xq-timer-pulse}@keyframes xq-timer-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.xq-note.xq-puzzle-timer.is-low{animation:none}}.xq-puzzle-time{flex-direction:column;gap:6px;margin-top:10px;display:flex}.xq-puzzle-best{font-variant-numeric:tabular-nums;color:var(--xq-accent);margin-left:6px;font-size:10px;font-style:normal}.xq-record-list{flex-direction:column;gap:2px;margin:4px 0 0;padding:0;list-style:none;display:flex}.xq-record-row{background:var(--xq-surface-2);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;display:flex}.xq-record-name{color:var(--xq-text);font-size:13px}.xq-record-time{font-variant-numeric:tabular-nums;color:var(--xq-text-mute);font-size:12px}.xq-record-time.is-done{color:var(--xq-accent);font-weight:700}.xq-puzzle-result{font-variant-numeric:tabular-nums;color:var(--xq-text-dim);animation:.5s xq-result-pop}.xq-board-wrap.is-cheer:after{content:"";pointer-events:none;box-shadow:0 0 0 2px var(--xq-accent), 0 0 26px 3px var(--xq-accent);opacity:0;border-radius:44px;animation:.9s forwards xq-cheer;position:absolute;inset:0}@keyframes xq-cheer{0%{opacity:0}18%{opacity:.85}to{opacity:0}}@keyframes xq-result-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.xq-confetti{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.xq-confetti-bit{background:var(--xq-accent);opacity:0;width:7px;height:7px;animation:xq-confetti var(--t) cubic-bezier(.16, .62, .44, 1) var(--d) 2;border-radius:2px;position:absolute;top:46%;left:50%}.xq-confetti-bit.is-red{background:var(--xq-primary)}@keyframes xq-confetti{0%{opacity:0;transform:translate(0)rotate(0)scale(.5)}12%{opacity:1}to{opacity:0;transform:translate(var(--dx), -180px) rotate(260deg) scale(1)}}@media (prefers-reduced-motion:reduce){.xq-puzzle-result{animation:none}.xq-board-wrap.is-cheer:after{box-shadow:0 0 0 2px var(--xq-accent);opacity:.6;animation:none}.xq-drag-return,.xq-guide{animation:none}.xq-lastmove.xq-lm-fade,.xq-capture.xq-lm-fade,.xq-ghost-entering.xq-lm-fade{opacity:0;animation:none}.xq-burst,.xq-burst-core{display:none}.xq-check-glow{opacity:.55;animation:none}.xq-trail,.xq-confetti{display:none}.xq-duel-card.is-low{box-shadow:0 0 0 2px var(--xq-primary), var(--xq-shadow-sm);animation:none}.xq-board,.xq-board-wrap{transition:none}}.xq-pre-row{align-items:center;gap:8px;margin:8px 0 0;display:flex}.xq-pre-dot{background:var(--xq-text-mute);border-radius:999px;flex-shrink:0;width:8px;height:8px}.xq-pre-dot.xq-pre-thinking{background:var(--xq-accent);animation:1s ease-in-out infinite xq-pre-pulse}.xq-pre-dot.xq-pre-ready{background:var(--xq-preview)}.xq-pre-dot.xq-pre-hit{background:var(--xq-primary);animation:.6s ease-in-out 2 xq-pre-pulse}@keyframes xq-pre-pulse{0%,to{opacity:1}50%{opacity:.3}}.xq-movelist{overscroll-behavior:contain;max-height:240px;font-family:var(--xq-font-serif);font-size:12px;overflow-y:auto}.xq-movelist:focus-visible{outline:2px solid var(--xq-primary);outline-offset:-2px;border-radius:8px}.xq-mv-row{border-radius:7px;grid-template-columns:28px 1fr 1fr;align-items:center;gap:6px;padding:4px 6px;transition:background .12s;display:grid}.xq-mv-row:nth-child(2n){background:var(--xq-app-bg)}.xq-mv-row:not(.xq-mv-head):hover{background:var(--xq-surface-2)}.xq-mv-head{color:var(--xq-text-mute);font-weight:700;font-family:var(--xq-font-ui);letter-spacing:.06em;font-size:11px}.xq-mv-no{color:var(--xq-text-mute);font-family:var(--xq-font-ui);font-variant-numeric:tabular-nums;font-size:11px}.xq-mv-red{color:var(--xq-red)}.xq-mv-black{color:var(--xq-text)}.xq-mv-cell{border-radius:6px;padding:2px 6px;transition:background .12s,box-shadow .12s}.xq-movelist [role=button].xq-mv-cell{cursor:pointer}.xq-movelist [role=button].xq-mv-cell:hover{background:var(--xq-primary-soft)}.xq-mv-cell.xq-mv-active,.xq-mv-cell.xq-mv-foul{background:var(--xq-primary-soft);box-shadow:inset 0 0 0 1px var(--xq-primary);font-weight:700}.xq-mv-foul-mark{font-style:normal;font-family:var(--xq-font-ui);color:var(--xq-token-red);background:var(--xq-primary);vertical-align:middle;border-radius:4px;margin-left:4px;padding:2px 4px;font-size:9px;line-height:1;display:inline-block}.xq-tag-viewing{background:var(--xq-primary-soft);border-color:var(--xq-primary);color:var(--xq-text);font-weight:700}.xq-empty{color:var(--xq-text-mute);text-align:center;border:1px dashed var(--xq-border);border-radius:var(--xq-radius-sm);padding:10px 4px;font-size:12px}.xq-drill-log{flex-direction:column;gap:3px;max-height:200px;margin-top:10px;display:flex;overflow-y:auto}.xq-drill-row{font-size:12px;font-family:var(--xq-font-serif);background:var(--xq-app-bg);border-radius:7px;grid-template-columns:28px 1fr 56px 70px;align-items:center;gap:6px;padding:4px 6px;display:grid}.xq-toast{background:var(--xq-surface-2);color:var(--xq-text);border:1px solid var(--xq-primary);box-shadow:var(--xq-shadow-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;border-radius:12px;padding:10px 18px;font-size:13px;animation:.2s ease-out xq-fade;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}@keyframes xq-fade{0%{opacity:0;transform:translate(-50%,8px)}}.xq-board{-webkit-user-select:none;user-select:none}.xq-bg{fill:var(--xq-board-bg)}.xq-grid line{stroke:var(--xq-line);stroke-width:1.4px}.xq-grid line.xq-line-major{stroke-width:2.6px}.xq-palace line{stroke:var(--xq-line);stroke-width:1.4px}.xq-river{fill:var(--xq-river);font-family:"STXingkai", "华文行楷", "KaiTi", "楷体", "STKaiti", var(--xq-font-board);letter-spacing:.44em;opacity:.62;font-size:36px;font-weight:400}.xq-board-no-coords{transform:scale(1.05)}.xq-coord{fill:var(--xq-line);font-family:var(--xq-font-board);text-anchor:middle;opacity:.9;font-size:14px}.xq-coord-num{font-family:var(--xq-font-ui);letter-spacing:.02em;font-size:12.5px}.xq-lastmove{fill:var(--xq-accent);stroke:var(--xq-accent);stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:1.9s ease-in-out infinite xq-last-breath}@keyframes xq-last-breath{0%,to{opacity:.16;stroke-width:1.6px;transform:scale(.94)}50%{opacity:.44;stroke-width:3px;transform:scale(1.03)}}.xq-guide{stroke:var(--xq-preview);stroke-width:1.6px;stroke-dasharray:4 4;opacity:.6;fill:none;animation:.85s linear infinite xq-guide-flow}@keyframes xq-guide-flow{to{stroke-dashoffset:-8px}}.xq-target{fill:var(--xq-preview);opacity:.8;transition:r .12s,opacity .12s}.xq-board g:hover>.xq-target{r:9;opacity:1}.xq-target-cap{fill:none;stroke:var(--xq-primary);stroke-width:2.6px;opacity:.85;transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out infinite xq-cap-target-breath}@keyframes xq-cap-target-breath{0%,to{opacity:.5;stroke-width:2.2px;transform:scale(.95)}50%{opacity:1;stroke-width:3.4px;transform:scale(1.04)}}.xq-capture{fill:none;stroke:var(--xq-primary);stroke-width:2.8px;stroke-dasharray:7 5;transform-box:fill-box;transform-origin:50%;animation:1.2s ease-in-out infinite xq-capture-breath}@keyframes xq-capture-breath{0%,to{opacity:.45;stroke-width:2.2px;transform:scale(.95)}50%{opacity:1;stroke-width:3.8px;transform:scale(1.05)}}.xq-burst{fill:none;stroke:var(--xq-primary);stroke-width:3.4px;transform-box:fill-box;transform-origin:50%;animation:.5s cubic-bezier(.16,.84,.44,1) .14s both xq-burst}@keyframes xq-burst{0%{opacity:0;stroke-width:4px;transform:scale(.45)}18%{opacity:.95}to{opacity:0;stroke-width:.8px;transform:scale(1.55)}}.xq-burst-core{fill:var(--xq-primary);transform-box:fill-box;transform-origin:50%;animation:.38s ease-out .14s both xq-burst-core}@keyframes xq-burst-core{0%{opacity:0;transform:scale(.3)}32%{opacity:.5;transform:scale(.92)}to{opacity:0;transform:scale(1.18)}}.xq-check-glow{fill:none;stroke:var(--xq-primary);stroke-width:4px;transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 0 8px var(--xq-primary)) drop-shadow(0 0 20px var(--xq-primary));pointer-events:none;animation:.9s ease-in-out infinite xq-check-glow-pulse;transform:scale(.98)}@keyframes xq-check-glow-pulse{0%,to{opacity:.35}50%{opacity:.9}}.xq-trail{stroke:var(--xq-accent);stroke-width:6px;stroke-linecap:round;filter:blur(2.5px);opacity:.42;pointer-events:none;animation:.42s ease-out forwards xq-trail-out}@keyframes xq-trail-out{to{opacity:0}}.xq-lastmove.xq-lm-fade,.xq-capture.xq-lm-fade,.xq-ghost-entering.xq-lm-fade{animation:.5s forwards xq-lm-fade}@keyframes xq-lm-fade{0%{opacity:1}to{opacity:0}}.xq-sel-halo{fill:var(--xq-accent);stroke:none;transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out infinite xq-sel-halo-breath}@keyframes xq-sel-halo-breath{0%,to{opacity:.12;transform:scale(.9)}50%{opacity:.34;transform:scale(1.07)}}.xq-sel-ring{fill:none;stroke:var(--xq-accent);stroke-width:2.6px;transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out infinite xq-sel-ring-breath}.xq-sel-outline{fill:none;stroke:var(--xq-accent);stroke-width:3.2px;filter:drop-shadow(0 0 3px var(--xq-accent));pointer-events:none}@keyframes xq-sel-ring-breath{0%,to{opacity:.55;stroke-width:2.2px;transform:scale(.97)}50%{opacity:1;stroke-width:4px;transform:scale(1.08)}}.xq-hint-line{stroke:var(--xq-accent);stroke-width:2px;stroke-dasharray:2 5;opacity:.85;fill:none;animation:1s linear infinite xq-hint-dash}@keyframes xq-hint-dash{to{stroke-dashoffset:-14px}}.xq-hint-ring{fill:none;stroke:var(--xq-accent);stroke-width:2.4px;opacity:.9;animation:1.2s ease-in-out infinite xq-hint-pulse}.xq-flash-ring{fill:none;stroke:var(--xq-preview);stroke-width:2.4px;opacity:.9;animation:.5s ease-in-out infinite xq-flash-pulse}@keyframes xq-flash-pulse{0%,to{opacity:.3;stroke-width:2.2px}50%{opacity:1;stroke-width:3.6px}}@keyframes xq-hint-pulse{0%,to{opacity:.55;stroke-width:2px}50%{opacity:1;stroke-width:3.2px}}.xq-duel{flex-direction:column;flex:none;gap:10px;display:flex}.xq-duel-card{height:var(--xq-clock-h,auto);border:1px solid var(--xq-hairline);background:linear-gradient(180deg, var(--xq-app-bg2), var(--xq-app-bg));box-shadow:var(--xq-shadow-sm);border-radius:12px;align-items:center;gap:8px;padding:5px 12px;transition:border-color .25s,box-shadow .25s;display:flex;position:relative}.xq-duel-card.is-turn.is-red{border-color:var(--xq-red);box-shadow:0 0 0 1px var(--xq-red), inset 0 0 26px #c0392b24, var(--xq-shadow-sm)}.xq-duel-card.is-turn.is-black{border-color:var(--xq-accent);box-shadow:0 0 0 1px var(--xq-accent), inset 0 0 26px #d4a13a1f, var(--xq-shadow-sm)}.xq-duel-card.is-low{border-color:var(--xq-primary);animation:.9s ease-in-out infinite xq-clock-low}.xq-duel-card.is-low .xq-duel-time{color:var(--xq-primary)}@keyframes xq-clock-low{0%,to{box-shadow:0 0 0 0 var(--xq-primary-soft), var(--xq-shadow-sm)}50%{box-shadow:0 0 0 6px var(--xq-primary-soft), var(--xq-shadow-sm)}}[data-xq-flash=off] .xq-duel-card.is-low{box-shadow:0 0 0 2px var(--xq-primary), var(--xq-shadow-sm);animation:none}.xq-duel-dot{width:9px;height:9px;box-shadow:0 0 0 3px var(--xq-hairline);border-radius:50%;flex:none;transition:background .2s,box-shadow .2s}.xq-duel-card.is-red .xq-duel-dot{background:var(--xq-red)}.xq-duel-card.is-black .xq-duel-dot{background:var(--xq-text-dim)}.xq-duel-card.is-turn .xq-duel-dot{box-shadow:0 0 0 3px var(--xq-hairline), 0 0 8px currentColor}.xq-duel-name{letter-spacing:.05em;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.xq-duel-card.is-red .xq-duel-name{color:var(--xq-red)}.xq-duel-card.is-black .xq-duel-name{color:var(--xq-text)}.xq-duel-time{font-size:22px;font-weight:700;font-family:var(--xq-font-ui);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:.02em;margin-left:auto;line-height:1.05}.xq-duel-card.is-red .xq-duel-time{color:var(--xq-red)}.xq-duel-card.is-black .xq-duel-time{color:var(--xq-text)}.xq-duel-card.is-low .xq-duel-time{color:var(--xq-primary);animation:1s ease-in-out infinite xq-clock-blink}@keyframes xq-clock-blink{0%,to{opacity:1}50%{opacity:.45}}.xq-duel-sub{color:var(--xq-text-mute);letter-spacing:.03em;white-space:nowrap;font-size:10px}.xq-duel-card.timed-out{opacity:.55}.xq-side,.xq-movelist,.xq-drill-log{scrollbar-width:thin;scrollbar-color:var(--xq-border) transparent}.xq-side::-webkit-scrollbar{width:8px}.xq-movelist::-webkit-scrollbar{width:8px}.xq-drill-log::-webkit-scrollbar{width:8px}.xq-side::-webkit-scrollbar-thumb{background:var(--xq-border);border-radius:999px}.xq-movelist::-webkit-scrollbar-thumb{background:var(--xq-border);border-radius:999px}.xq-drill-log::-webkit-scrollbar-thumb{background:var(--xq-border);border-radius:999px}.xq-side::-webkit-scrollbar-track{background:0 0}.xq-movelist::-webkit-scrollbar-track{background:0 0}.xq-drill-log::-webkit-scrollbar-track{background:0 0}.xq-disc{fill:var(--xq-piece-wood);stroke-width:2.6px}.xq-ring{fill:none;stroke-width:1.6px}.xq-piece.xq-red .xq-disc,.xq-piece.xq-red .xq-ring{stroke:var(--xq-red)}.xq-piece.xq-black .xq-disc,.xq-piece.xq-black .xq-ring{stroke:var(--xq-black)}.xq-glyph{font-size:24px;font-weight:700;font-family:var(--xq-font-board)}.xq-piece.xq-red .xq-glyph{fill:var(--xq-red)}.xq-piece.xq-black .xq-glyph{fill:var(--xq-black)}.xq-piece.xq-ghost{opacity:.55}.xq-piece.xq-ghost .xq-disc{fill:none;stroke:var(--xq-ghost-stroke);stroke-width:1.8px;stroke-dasharray:4 3}.xq-piece.xq-ghost .xq-ring{fill:none;stroke:var(--xq-ghost-stroke);stroke-width:1.2px;stroke-dasharray:3 3}.xq-piece.xq-ghost .xq-glyph{fill:var(--xq-ghost-stroke);opacity:.6}.xq-ghost-entering,.xq-ghost-leaving{pointer-events:none;transform-box:fill-box;transform-origin:50%}.xq-ghost-entering{animation:.26s ease-out both xq-ghost-in}.xq-ghost-leaving{animation:.32s ease-in forwards xq-ghost-out}@keyframes xq-ghost-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}@keyframes xq-ghost-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.86)}}.xq-drag-layer{transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 4px 6px var(--xq-primary-soft));opacity:.92;transform:scale(1.1)}.xq-drag-return{transform-box:fill-box;transform-origin:50%;animation:.22s ease-in forwards xq-drag-back}@keyframes xq-drag-back{0%{opacity:.92;transform:translate(0)scale(1.1)}to{transform:translate(var(--xq-dx,0px), var(--xq-dy,0px)) scale(1);opacity:0}}.xq-piece.xq-sel .xq-disc{stroke:var(--xq-accent);stroke-width:2.6px}.xq-piece.xq-static{animation:none}.xq-piece.xq-check .xq-disc{stroke:var(--xq-accent);stroke-width:2.6px;animation:1.1s ease-in-out infinite xq-check-pulse}@keyframes xq-check-pulse{0%,to{stroke-width:2.6px}50%{stroke-width:4.4px}}.xq-mark{stroke:var(--xq-line);stroke-width:1.4px;fill:none;stroke-linecap:round}.xq-piece{transform-box:fill-box;transform-origin:50%;animation:.18s ease-out both xq-pop}@keyframes xq-pop{0%{opacity:0;transform:scale(.85)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes xq-fade-in{0%{opacity:0}}.xq-levels{flex-direction:column;gap:6px;display:flex}.xq-level{text-align:left;border-radius:var(--xq-radius-sm);border:1px solid var(--xq-border);background:var(--xq-surface-2);width:100%;color:var(--xq-text);cursor:pointer;align-items:baseline;gap:10px;padding:8px 11px;transition:border-color .16s,background .16s,transform .16s;display:flex}.xq-level:hover{border-color:var(--xq-text-mute)}.xq-level.on{border-color:var(--xq-primary);background:var(--xq-primary-soft);box-shadow:inset 2px 0 0 var(--xq-primary)}.xq-level-name{letter-spacing:.08em;flex-shrink:0;min-width:3.2em;font-size:13px}.xq-level.on .xq-level-name{color:var(--xq-primary)}.xq-level-blurb{color:var(--xq-text-mute);letter-spacing:.02em;font-size:11px}.xq-ai-stat{border-radius:var(--xq-radius-sm);border:1px solid var(--xq-hairline);background:var(--xq-app-bg);color:var(--xq-text-dim);flex-wrap:wrap;gap:6px 14px;margin-top:10px;padding:8px 11px;font-size:11px;display:flex}.xq-ai-stat strong{color:var(--xq-text);font-size:12px}.xq-seg-btn:disabled,.xq-level:disabled{opacity:.42;cursor:not-allowed}body,.xq-app,.xq-app :where(*),.xq-app :where(input),.xq-app :where(button),.xq-app :where(select),.xq-app :where(textarea){font-family:var(--xq-font-serif);font-weight:700}.xq-app :where(*)::-moz-placeholder{font-family:var(--xq-font-serif);font-weight:700}.xq-app :where(*)::placeholder{font-family:var(--xq-font-serif);font-weight:700}.xq-app .xq-board text{font-family:var(--xq-font-board);font-weight:700}.xq-review{border-top:1px solid var(--xq-hairline);margin-top:10px;padding-top:8px}.xq-review-status{justify-content:space-between;align-items:center;gap:8px;display:flex}.xq-review-list{flex-direction:column;gap:2px;max-height:240px;margin:8px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.xq-review-row{cursor:pointer;border-radius:6px;grid-template-columns:26px 1fr auto;align-items:center;gap:8px;padding:4px 6px;transition:background .15s;display:grid}.xq-review-row:hover{background:var(--xq-surface-2)}.xq-review-row.is-current{background:var(--xq-primary-soft);outline:1px solid var(--xq-primary)}.xq-review-row.xq-review-foul{box-shadow:inset 3px 0 0 var(--xq-primary)}.xq-review-no{font-variant-numeric:tabular-nums;text-align:center;font-size:12px}.xq-review-no.is-red{color:var(--xq-primary-hover)}.xq-review-no.is-black{color:var(--xq-text-dim)}.xq-review-move{color:var(--xq-text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.xq-review-tag{border:1px solid var(--xq-border);color:var(--xq-text-dim);white-space:nowrap;border-radius:999px;padding:3px 6px;font-size:11px;line-height:1}.xq-review-tag.v-good{color:var(--xq-accent);border-color:var(--xq-focus)}.xq-review-tag.v-soft{color:var(--xq-text-dim)}.xq-review-tag.v-bad{color:var(--xq-primary-hover);border-color:var(--xq-primary-soft)}.xq-review-tag.v-blunder{color:var(--xq-token-red);background:var(--xq-primary);border-color:var(--xq-primary)}.xq-review-detail{color:var(--xq-text-mute);white-space:normal;grid-column:1/-1;font-size:11px;line-height:1.45}.xq-review-best{color:var(--xq-accent);font-style:normal;font-weight:600}.xq-review-best:before{content:"· ";color:var(--xq-text-mute)}.xq-review-overview{background:var(--xq-surface-2);border-left:3px solid var(--xq-accent);border-radius:6px;flex-direction:column;gap:8px;margin:6px 0 0;padding:8px 10px 10px;display:flex}.xq-review-overview-text{color:var(--xq-text-dim);margin:0;font-size:12px;line-height:1.6}.xq-review-cmp{flex-direction:column;gap:5px;display:flex}.xq-review-cmp-row{grid-template-columns:16px 1fr 76px;align-items:center;gap:6px;display:grid}.xq-review-cmp-name{text-align:center;font-size:12px;font-weight:700}.xq-review-cmp-name.is-red{color:var(--xq-primary-hover)}.xq-review-cmp-name.is-black{color:var(--xq-text-dim)}.xq-review-cmp-track{background:var(--xq-surface);border-radius:999px;height:8px;position:relative;overflow:hidden}.xq-review-cmp-bar{border-radius:999px;min-width:3px;transition:width .4s;position:absolute;inset:0 auto 0 0}.xq-review-cmp-bar.is-red{background:var(--xq-primary)}.xq-review-cmp-bar.is-black{background:var(--xq-text-dim)}.xq-review-cmp-val{font-variant-numeric:tabular-nums;text-align:right;color:var(--xq-text-mute);font-size:11px}.xq-bed-wrap{margin-top:8px}.xq-bed{border:1px solid var(--xq-border);border-radius:var(--xq-radius-sm);background:var(--xq-surface-2);padding:4px;position:relative}.xq-bed-lines{pointer-events:none;position:absolute;inset:4px}.xq-bed-lines path{fill:none;stroke:var(--xq-text-mute);stroke-width:1.5px;opacity:.8;vector-effect:non-scaling-stroke}.xq-bed-river{pointer-events:none;grid-template-rows:repeat(10,1fr);grid-template-columns:1fr 1fr;display:grid;position:absolute;inset:4px}.xq-bed-riv{font-family:var(--xq-font-serif);letter-spacing:.3em;text-indent:.3em;color:var(--xq-accent);opacity:.75;grid-row:5/7;place-self:center;font-size:14px;font-weight:700}.xq-bed-row{grid-template-columns:repeat(9,1fr);display:grid}.xq-bed-cell{aspect-ratio:1;color:var(--xq-text-dim);font-family:var(--xq-font-serif);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:700;display:flex;position:relative}.xq-bed-cell:before,.xq-bed-cell:after{content:"";background:var(--xq-text-mute);opacity:.55;pointer-events:none;position:absolute}.xq-bed-cell:before{height:1px;margin-top:-.5px;top:50%;left:0;right:0}.xq-bed-cell:after{width:1px;margin-left:-.5px;top:0;bottom:0;left:50%}.xq-bed-cell.edge-l:before{left:50%}.xq-bed-cell.edge-r:before{right:50%}.xq-bed-cell.edge-t:after{top:50%}.xq-bed-cell.edge-b:after,.xq-bed-cell.river-a:after{bottom:50%}.xq-bed-cell.river-b:after{top:50%}.xq-bed-mark{pointer-events:none;opacity:.7;--mk:linear-gradient(var(--xq-text-mute), var(--xq-text-mute));background-image:var(--mk), var(--mk), var(--mk), var(--mk), var(--mk), var(--mk), var(--mk), var(--mk);background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat;background-size:34% 1.5px,1.5px 34%,34% 1.5px,1.5px 34%,34% 1.5px,1.5px 34%,34% 1.5px,1.5px 34%;position:absolute;inset:24%}.xq-bed-cell{touch-action:none}.xq-bed-ghost{z-index:60;pointer-events:none;border:1px solid var(--xq-border);background:var(--xq-surface);width:34px;height:34px;box-shadow:var(--xq-shadow-lg);font-family:var(--xq-font-serif);border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex;position:fixed;transform:translate(-50%,-50%)}.xq-bed-ghost.is-red{color:var(--xq-red)}.xq-bed-ghost.is-black{color:var(--xq-text)}.xq-bed-cell:hover{background:var(--xq-primary-soft)}.xq-bed-cell.is-red{color:var(--xq-red)}.xq-bed-cell.is-black{color:var(--xq-text)}.xq-bed-palette{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.xq-bed-chip{border:1px solid var(--xq-border);background:var(--xq-surface);min-width:26px;font-family:var(--xq-font-serif);cursor:pointer;border-radius:8px;padding:2px 6px;font-size:13px;font-weight:700}.xq-bed-chip.is-red{color:var(--xq-red)}.xq-bed-chip.is-black,.xq-bed-chip.is-erase{color:var(--xq-text)}.xq-bed-chip.on{border-color:var(--xq-primary);background:var(--xq-primary-soft)}.xq-bed-cell.xq-bed-drag{opacity:.35}.xq-bed-cell.xq-bed-drop{outline:2px solid var(--xq-primary);outline-offset:-2px;border-radius:50%}.xq-fen-row{align-items:center;gap:8px;margin-top:10px;display:flex}.xq-fen-text{min-width:0;max-height:60px;color:var(--xq-text-dim);word-break:break-all;background:var(--xq-surface);border:1px solid var(--xq-border);border-radius:8px;flex:1;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.5;overflow:auto}.xq-drop-zone{border:2px dashed #0000;border-radius:12px;padding:2px;transition:border-color .15s,background-color .15s}.xq-drop-zone.is-over{border-color:var(--xq-primary);background:var(--xq-primary-soft)}.xq-crop-wrap{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;margin-top:8px;position:relative}.xq-crop-wrap img{border:1px solid var(--xq-border);border-radius:10px;width:100%;height:auto;display:block}.xq-crop-sel{border:2px solid var(--xq-primary);background:var(--xq-primary-soft);pointer-events:none;position:absolute}.xq-debug-wrap{margin-top:8px}.xq-debug-wrap img{border:1px solid var(--xq-border);border-radius:10px;width:100%;height:auto;display:block}.xq-saved-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.xq-saved-tools{flex:none;gap:6px;display:inline-flex}.xq-lvl-on{border-color:var(--xq-accent);color:var(--xq-accent)}.xq-saved-search{width:100%;color:var(--xq-text);background:var(--xq-surface-2);border:1px solid var(--xq-border);border-radius:8px;margin:6px 0;padding:5px 8px;font-size:13px}.xq-saved-search:focus-visible{outline:2px solid var(--xq-primary);outline-offset:-1px}.xq-thumb-modal{z-index:90;background:var(--xq-glass);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.xq-thumb-card{background:var(--xq-surface);border:1px solid var(--xq-border);box-shadow:var(--xq-shadow-lg);border-radius:14px;padding:14px 16px}.xq-thumb-head{color:var(--xq-text);justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.xq-bt{background:var(--xq-board-bg);border:1px solid var(--xq-border);border-radius:6px;flex-direction:column;flex:none;gap:1px;padding:3px;display:inline-flex}.xq-bt-row{gap:1px;display:flex}.xq-bt-c{text-align:center;color:#0000;width:9px;height:9px;font-size:8px;line-height:9px;font-family:var(--xq-font-board);border-radius:50%}.xq-bt-c.is-red{color:var(--xq-red);background:var(--xq-token-red)}.xq-bt-c.is-black{color:var(--xq-black);background:var(--xq-token)}.xq-saved-row .xq-bt{cursor:pointer}.xq-saved-row .xq-bt:hover{box-shadow:0 0 0 2px var(--xq-primary)}.xq-bt.is-lg{border-radius:10px;gap:2px;padding:6px}.xq-bt.is-lg .xq-bt-row{gap:2px}.xq-bt.is-lg .xq-bt-c{width:24px;height:24px;font-size:17px;line-height:24px}.xq-saved-row{align-items:center;gap:8px;padding:4px 0;display:flex}.xq-rename-input{min-width:0;color:var(--xq-text);background:var(--xq-surface);border:1px solid var(--xq-primary);border-radius:6px;flex:1;padding:4px 8px;font-size:13px}.xq-saved-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--xq-text-dim);flex:1;font-size:13px;overflow:hidden}@media (prefers-reduced-motion:reduce){.xq-drop-zone{transition:none}}.xq-cut-range{min-width:0;accent-color:var(--xq-primary);flex:1}.xq-seg-multi{flex-wrap:wrap}.xq-seg-multi .xq-seg-btn{white-space:nowrap;flex:1 0 auto;padding:0 6px;font-size:12px}.xq-badges{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.xq-badge{border:1px solid var(--xq-border);color:var(--xq-text-dim);border-radius:999px;padding:2px 8px;font-size:12px}.xq-badge.is-on{border-color:var(--xq-accent);color:var(--xq-accent)}.xq-plan{border:1px solid var(--xq-border);border-radius:8px;flex-direction:column;gap:6px;margin-top:8px;padding:8px;display:flex}.xq-plan-row{align-items:center;gap:6px;min-width:0;display:flex}.xq-plan-no{text-align:center;border:1px solid var(--xq-border);width:18px;height:18px;color:var(--xq-text-dim);border-radius:50%;flex:none;font-size:12px;line-height:18px}.xq-plan-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.xq-plan-size{flex:none;align-items:center;gap:6px;display:inline-flex}.xq-praise{color:var(--xq-accent)}.xq-celebrate{color:var(--xq-accent);font-weight:600;animation:.45s ease-out xq-pop;position:relative;overflow:hidden}.xq-confetti-piece{border-radius:1px;width:5px;height:9px;animation:1.15s ease-in forwards xq-confetti-fall;position:absolute;top:2px}.xq-confetti-p{background:var(--xq-primary)}.xq-confetti-a{background:var(--xq-accent)}@keyframes xq-confetti-fall{0%{opacity:1;transform:translateY(-4px)rotate(0)}to{opacity:0;transform:translateY(30px)rotate(240deg)}}.xq-praise-edit{box-sizing:border-box;background:var(--xq-surface-2);border:1px solid var(--xq-border);width:100%;color:var(--xq-text);font:inherit;resize:vertical;border-radius:6px;padding:6px 8px}.xq-praise-edit:focus{border-color:var(--xq-primary);outline:none}@media (prefers-reduced-motion:reduce){.xq-celebrate{animation:none}.xq-confetti-piece{animation:none;display:none}}
