:root{--bg:#1a1916;--panel:#2a2722;--border:#3a342c;--text:#e9e3d8;--text-dim:#a39c8e;--accent:#d8b878;--warn:#d97757;--board-bg:#d8a85b;--board-line:#2a1f10;--piece:#1f1a13;--last-dest:#b4dc3c73;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font:16px/1.4 system-ui,Hiragino Sans,Yu Gothic,sans-serif}*{box-sizing:border-box}body{min-height:100svh;margin:0}a{color:var(--accent)}button{font:inherit;cursor:pointer}.app{max-width:1200px;min-height:100svh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;margin:0 auto;display:flex}.game-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.game-header .players{flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.game-header .player{align-items:baseline;gap:6px;display:inline-flex}.game-header .player .dot{border-radius:50%;width:10px;height:10px;display:inline-block}.game-header .player.sente .dot{background:#fff;border:1px solid #888}.game-header .player.gote .dot{background:#111;border:1px solid #888}.game-header .rating{color:var(--text-dim);font-size:.85em;font-weight:400}.game-header .vs{color:var(--text-dim)}.game-header .meta{color:var(--text-dim);align-items:center;gap:12px;font-size:.9em;display:flex}.feed-status.open{color:#8edc84}.feed-status.connecting{color:var(--accent)}.feed-status.closed{color:var(--warn)}.source-link{color:var(--text-dim);align-items:center;line-height:0;transition:color .2s;display:inline-flex}.source-link:hover{color:var(--text)}.layout{flex:1;grid-template-columns:minmax(0,1fr) 320px;gap:16px;padding:16px;display:grid}@media (width<=800px) and (orientation:portrait){.layout{grid-template-columns:1fr;gap:12px;padding:8px}}.board-stack{flex-direction:column;align-items:center;gap:8px;display:flex}.clock-row{width:100%;max-width:var(--board-w,640px);background:var(--panel);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-family:ui-monospace,Menlo,monospace;font-size:1.4em;font-weight:600;transition:color .2s,border-color .2s;display:flex}.clock-row.ticking{color:var(--text);border-color:var(--accent);background:#d8b87814}.clock-row .dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.clock-row.sente .dot{background:#fff;border:1px solid #888}.clock-row.gote .dot{background:#111;border:1px solid #888}.clock-row .player-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-family:system-ui,Hiragino Sans,Yu Gothic,sans-serif;font-size:.7em;font-weight:600;overflow:hidden}.clock-row .rating{color:var(--text-dim);flex-shrink:0;font-family:system-ui,Hiragino Sans,Yu Gothic,sans-serif;font-size:.6em;font-weight:400}.clock-row .time{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto}.clock-row .result{flex-shrink:0;font-family:system-ui,Hiragino Sans,Yu Gothic,sans-serif;font-size:.85em;font-weight:600}.clock-row .result.win{color:var(--accent)}.clock-row .result.loss{color:var(--warn)}.clock-meta{color:var(--text-dim);width:100%;max-width:var(--board-w,640px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-size:.8em;display:flex}.game-result{width:100%;max-width:var(--board-w,640px);border:1px solid var(--accent);color:var(--text);text-align:center;background:linear-gradient(90deg,#d8b87826,#d8b8780f);border-radius:6px;justify-content:center;align-items:center;gap:12px;margin-top:4px;padding:10px 14px;font-weight:600;display:flex}.game-result .end-status{color:var(--accent);font-size:1.1em}.game-result .winner{color:var(--text)}.flip-btn{color:var(--text-dim);border:1px solid var(--border);background:0 0;border-radius:6px;padding:4px 10px;font-size:.85em}.flip-btn:hover{color:var(--text);border-color:var(--accent)}.board-with-bar{flex-direction:row;justify-content:center;align-items:stretch;gap:6px;width:100%;display:flex}.board-area{--board-w:calc(round(down, min(calc((100vh - 220px) / 12 * 9), calc(100% - 46px), 640px) - 4px, 9px) + 4px);width:var(--board-w);flex-direction:column;flex:none;gap:6px;display:flex}.hand{background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:0;min-height:44px;padding:4px 8px;display:flex}.hand sg-hand{flex-direction:row;gap:6px;width:100%;display:flex}.hand-top sg-hand{flex-direction:row-reverse}.hand sg-hp-wrap{align-items:center;gap:2px;display:inline-flex;position:relative}.hand sg-hp-wrap[data-nb="0"]{opacity:.25}.hand sg-hp-wrap[data-nb]:not([data-nb="0"]):not([data-nb="1"]):after{content:attr(data-nb);color:var(--text);margin-left:-2px;font-size:.85em;font-weight:600}.sg-wrap{box-sizing:border-box;width:100%;height:0;padding-top:109.091%;position:relative;overflow:hidden}.board-area>.sg-wrap{background:var(--board-bg);border:2px solid var(--board-line);border-radius:4px}.sg-wrap>div:first-child{position:absolute;inset:0}sg-board{width:100%;height:100%;display:block;position:absolute;top:0;left:0}sg-squares,sg-pieces,sg-promotion{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;box-sizing:border-box;width:100%;height:100%;line-height:0;display:block;position:absolute;top:0;left:0}sg-squares{background-image:linear-gradient(to right, var(--board-line) 1px, transparent 1px), linear-gradient(to bottom, var(--board-line) 1px, transparent 1px);background-size:11.1111% 11.1111%;grid-template:repeat(9,1fr)/repeat(9,1fr);display:grid}sg-squares sq{display:block}sg-squares sq.last-dest{background-color:var(--last-dest)}sg-squares sq.check{background:radial-gradient(#ff0000d9 0%,#e7000099 25%,#a9000000 89%)}.sg-wrap{container-type:inline-size}piece{pointer-events:none}sg-board piece,sg-promotion piece{z-index:3;width:22.2222%;height:22.2222%;margin:-6.06061% -5.55556%;position:absolute;top:0;left:0;transform:scale(.5)}.hand piece{flex-shrink:0;width:28px;height:32px;position:relative}piece:before{content:"";color:var(--piece);clip-path:polygon(50% 0%,12% 18%,0% 100%,100% 100%,88% 18%);background:#f3e0b3;justify-content:center;align-items:center;padding-top:8%;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}sg-board piece:before,sg-promotion piece:before{font-size:10cqw;inset:8%}.hand piece:before{font-size:18px;inset:4%}.orientation-sente piece.gote:before,.orientation-gote piece.sente:before{transform:rotate(180deg)}piece.tokin:before{content:"と";color:#b22222}piece.promotedlance:before{content:"杏";color:#b22222}piece.promotedknight:before{content:"圭";color:#b22222}piece.promotedsilver:before{content:"全";color:#b22222}piece.horse:before{content:"馬";color:#b22222}piece.dragon:before{content:"龍";color:#b22222}piece.pawn:before{content:"歩"}piece.lance:before{content:"香"}piece.knight:before{content:"桂"}piece.silver:before{content:"銀"}piece.gold:before{content:"金"}piece.bishop:before{content:"角"}piece.rook:before{content:"飛"}piece.king.sente:before{content:"玉"}piece.king.gote:before{content:"王"}.king-badges{pointer-events:none;z-index:5;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);display:grid;position:absolute;inset:0}.king-badge-cell{padding:4%;display:flex;overflow:hidden}.king-badge-cell.corner-tr{justify-content:flex-end;align-items:flex-start}.king-badge-cell.corner-bl{justify-content:flex-start;align-items:flex-end}.king-badge{aspect-ratio:1;border-radius:50%;justify-content:center;align-items:center;width:50%;font-family:system-ui,Hiragino Sans,Yu Gothic,sans-serif;font-size:clamp(11px,3.5cqw,22px);font-weight:700;line-height:1;display:inline-flex;box-shadow:0 1px 3px #00000073}.king-badge.win{color:#111;background:#fff;border:1.5px solid #555}.king-badge.loss{color:#fff;background:#111;border:1.5px solid #555}.king-badge.draw{color:#fff;background:#888;border:1.5px solid #aaa}.hand-count{color:var(--text-dim);margin-left:-4px;margin-right:4px;font-size:.8em}sg-hand-piece-counter,hand-piece-counter,counter,.hand counter{background:var(--panel);color:var(--text);pointer-events:none;border-radius:8px;padding:0 4px;font-size:12px;position:absolute;bottom:-2px;right:-2px}.hand:empty:before{content:"持駒なし";color:var(--text-dim);font-size:.85em}.sg-wrap coords{pointer-events:none;opacity:.7;color:var(--board-line);font-size:10px;display:flex;position:absolute}.sg-wrap coords.ranks{flex-flow:column-reverse;width:12px;height:100%;top:0;right:2px}.sg-wrap coords.ranks.gote{flex-flow:column}.sg-wrap coords.files{text-align:center;flex-flow:row;width:100%;height:12px;top:2px;left:0}.sg-wrap coords.files.gote{flex-flow:row-reverse}.sg-wrap coords coord{flex:auto}.side-panel{flex-direction:column;gap:12px;display:flex}.eval-bar{background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;flex:0 0 40px;align-items:stretch;width:40px;display:flex;position:relative;overflow:hidden}.eval-bar.idle .bar-track,.eval-bar.idle .bar-label{opacity:.4}.eval-bar .bar-track{background:#111;flex:1;position:relative;overflow:hidden}.eval-bar .bar-fill.sente{height:var(--sente-pct,50%);background:#fff;transition:height .25s ease-out,width .25s ease-out;position:absolute;left:0;right:0}.eval-bar.orientation-sente .bar-fill.sente{top:auto;bottom:0}.eval-bar.orientation-gote .bar-fill.sente{top:0;bottom:auto}.eval-bar .bar-label{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.5px;background:var(--panel);border-top:1px solid var(--border);padding:4px 2px;font-family:ui-monospace,Menlo,monospace;font-size:.75em}.eval-score{background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:10px;padding:12px;display:flex}.eval-score .row.primary{align-items:baseline;gap:12px;display:flex}.eval-score .value{color:var(--text);font-family:ui-monospace,Menlo,monospace;font-size:2em;font-weight:700}.eval-score .caption{color:var(--text-dim)}.eval-score .row.meta{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:12px;font-size:.8em;display:flex}.engine-status.searching{color:var(--accent)}.engine-status.error{color:var(--warn)}.eval-score .pv-list{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:8px;display:flex}.eval-score .pv-label{color:var(--text-dim);font-size:.8em}.eval-score .pv-lines{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.eval-score .pv-row{color:var(--text-dim);word-break:keep-all;overflow-wrap:anywhere;grid-template-columns:56px 1fr;gap:8px;font-size:.92em;line-height:1.45;display:grid}.eval-score .pv-row.best{color:var(--text)}.eval-score .pv-score{text-align:right;white-space:nowrap;color:var(--accent);align-self:start;font-family:ui-monospace,Menlo,monospace;font-size:.9em}.eval-score .pv-row:not(.best) .pv-score{color:var(--text-dim)}.eval-score .pv-line{color:inherit}.error-banner{border:1px solid var(--warn);color:var(--text);background:#d9775726;border-radius:6px;padding:8px 12px;font-size:.9em}.app-footer{border-top:1px solid var(--border);color:var(--text-dim);flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 12px;font-size:.8em;display:flex}@media (width<=800px) and (orientation:landscape){.layout{grid-template-columns:minmax(0,1fr) minmax(160px,280px);gap:8px;padding:4px}.board-stack{gap:2px}.board-area{--board-w:calc(round(down, min(calc((100vh - 130px) / 12 * 11), calc(100% - 46px), 640px) - 4px, 9px) + 4px)}.clock-row{gap:6px;min-height:0;padding:1px 8px;font-size:.95em}.clock-meta{padding:0 6px;font-size:.7em}.hand{min-height:28px;padding:2px 6px}.hand piece{width:22px;height:25px}.hand piece:before{font-size:14px}.game-header{padding:4px 8px;font-size:.85em}.app-footer{display:none}.flip-btn{padding:1px 8px;font-size:.75em}}
