#chicken-foot-app{margin:12px 0 0}:root{--cf-bone:#f9f0db;--cf-bone-lo:#d6c5a0;--cf-back:#7a2323;--cf-back-dark:#3d0f0f;--cf-rule-blue:#b4c6da;--cf-ledge:10px}.cf-game{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (width>=1100px){.cf-game{grid-template-columns:minmax(0,1fr) 330px;align-items:start}.cf-side{position:sticky;top:12px}}.cf-main{gap:12px;min-width:0;display:grid}.cf-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.cf-round-info{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.cf-round-num{font-size:var(--text-lg);font-weight:800}.cf-of{color:var(--muted);font-weight:600}.cf-chip{border:2px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:1.1rem;display:inline-flex}.cf-chip-tile{filter:drop-shadow(0 1px 1px #3c280f66);width:44px;height:22px}.cf-chip[data-anchor=yard]{border-color:var(--brass-dark);background:linear-gradient(180deg, #fffdf6, var(--highlight-soft))}.cf-chip[data-anchor=yard]:before{content:"";border:1.5px solid var(--tile-edge);background:var(--cf-bone);width:13px;height:24px;box-shadow:3px 3px 0 -.5px var(--tile-shade), 3px 3px 0 1px var(--tile-edge), 6px 6px 0 -.5px var(--tile-shade), 6px 6px 0 1px var(--tile-edge);border-radius:3px;flex:none;margin:0 6px 4px 0}.cf-chip[data-anchor=yard] strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.3rem}.cf-opponents{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.cf-player{border:3px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);min-width:0;padding:8px 12px}.cf-player.is-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-soft), var(--shadow-md)}.cf-player-name{font-family:var(--font-display);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:1.25rem;font-weight:700;display:flex}.cf-badge{background:var(--primary);color:var(--on-primary);border-radius:999px;padding:0 10px;font-size:.95rem;font-weight:700;display:inline-block}.cf-backs{flex-wrap:wrap;gap:2px;min-height:20px;margin:6px 0 2px;display:flex}.cf-back{width:10px;height:20px}.tile-back-face{fill:var(--cf-back);stroke:var(--cf-back-dark);stroke-width:.08px}.tile-back-inlay{stroke:var(--brass-light);stroke-width:.05px}.tile-back-mark{fill:var(--brass);stroke:var(--brass-light);stroke-width:.03px}.cf-more{color:var(--muted);font-size:.9rem}.cf-player-meta{flex-wrap:wrap;gap:0 14px;font-size:1.05rem;display:flex}.cf-status{border:3px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:10px 16px;transition:border-color .2s,box-shadow .2s}.cf-status p{margin:0}.cf-turn{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700}.cf-hint{margin-top:2px!important}.cf-rule{border-left:6px solid var(--brass);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--highlight-soft);padding:6px 12px;margin-top:8px!important}.cf-log{border-top:1px solid var(--border);color:var(--muted);margin:8px 0 0;padding:8px 0 0;font-size:1.05rem;list-style:none}.cf-log li:last-child{color:var(--text);font-weight:600}.cf-board{border:8px solid var(--felt-edge);background:var(--felt-bg);background-color:var(--felt);height:clamp(300px,56vh,680px);box-shadow:var(--shadow-md);border-radius:20px;position:relative;overflow:hidden}.cf-board:after{content:"";pointer-events:none;border-radius:12px;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #00000059,inset 0 2px 0 3px #ffffff0d,inset 0 0 60px #00000047}.cf-board-scroll{width:100%;height:100%;overflow:hidden}.cf-board-scroll.is-zoomed{-webkit-overflow-scrolling:touch;overflow:auto}.cf-board-svg{width:100%;height:100%;display:block}.tile-face{fill:var(--cf-bone);stroke:var(--tile-edge);stroke-width:.05px}.tile-bevel-hi{stroke:#fff;stroke-width:.05px;stroke-linecap:round}.tile-bevel-lo{stroke:var(--cf-bone-lo);stroke-width:.06px;stroke-linecap:round}.tile-line{stroke:#4a4136;stroke-width:.04px;stroke-linecap:round}.tile-line-hi{stroke:#fff;stroke-width:.03px;stroke-linecap:round}.tile-pin{fill:var(--brass);stroke:var(--brass-dark);stroke-width:.022px}.pip{fill:var(--pip)}.pip-rim{stroke:#fff;stroke-width:.024px;stroke-linecap:round}.cf-board .tile-shadow{fill:#0006}.cf-ghost .tile-shadow{fill:none}.cf-center-disc{fill:#ffffff12}.cf-center-ring{fill:none;stroke:var(--brass);stroke-width:.08px;opacity:.85}.cf-center-ring-thin{fill:none;stroke:var(--brass-light);stroke-width:.035px;stroke-dasharray:.035 .14;stroke-linecap:round;opacity:.8}.cf-tile.is-starter .tile-face{stroke:#1a130a;stroke-width:.07px}.cf-ring-last{fill:none;stroke:#8fd3ff;stroke-width:.1px}.cf-ring-pending{fill:none;stroke:var(--highlight);stroke-width:.12px;stroke-dasharray:.3 .15}.cf-link{stroke:var(--tile);stroke-width:.1px;stroke-dasharray:.2 .15;stroke-linecap:round;opacity:.9}.cf-ghost{cursor:pointer;outline:none}.cf-ghost-hit{fill:#0000}.cf-ghost-face{opacity:.6}.cf-ghost-ring{fill:#ffc80038;stroke:var(--highlight);stroke-width:.14px;animation:1.2s ease-in-out infinite cf-pulse}.cf-ghost:hover .cf-ghost-ring,.cf-ghost:focus-visible .cf-ghost-ring{fill:#ffc80073;stroke:#fff}@keyframes cf-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.35}}.cf-zoom{z-index:1;gap:6px;display:flex;position:absolute;bottom:8px;right:8px}.cf-zoom-btn{border:2px solid var(--brass-dark);min-width:52px;height:52px;box-shadow:0 3px 0 var(--wood-dark), 0 5px 8px #00000059;color:var(--text);font:inherit;cursor:pointer;background:linear-gradient(#fffdf6,#f1e6cd);border-radius:10px;font-size:1.6rem;font-weight:800;line-height:1}.cf-zoom-fit{padding:0 10px;font-size:1.1rem}.cf-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.cf-you{flex:220px}.cf-buttons{flex-wrap:wrap;gap:12px;display:flex}.cf-buttons:empty{display:none}.cf-hand{--hand-tile-w:clamp(42px, 11.5vw, 68px);border:5px solid var(--felt-edge);border-radius:var(--radius);background:var(--tex-noise), linear-gradient(180deg, #f1e7d0, #e3d5b6);background-blend-mode:soft-light, normal;box-shadow:var(--shadow-sm), inset 0 3px 8px #3c280f47, inset 0 0 0 1px #00000040;min-height:calc(var(--hand-tile-w) * 2 + 40px);flex-wrap:wrap;justify-content:center;gap:12px 8px;padding:22px 12px 14px;display:flex}.cf-hand-tile:after{content:"";height:var(--cf-ledge);background:linear-gradient(180deg, var(--wood-light) 0 2px, var(--wood) 2px, var(--wood-dark));pointer-events:none;transition:transform .15s;position:absolute;top:100%;left:-5px;right:-5px;box-shadow:0 2px 3px #28190a59}.cf-hand-tile:first-child:after{border-radius:4px 0 0 4px;left:-9px}.cf-hand-tile:last-child:after{border-radius:0 4px 4px 0;right:-9px}.cf-hand-tile:only-child:after{border-radius:4px}.cf-hand-tile.can-play:after{transform:translateY(8px)}.cf-hand-tile.can-play:hover:after{transform:translateY(12px)}.cf-hand-tile.is-selected:after{transform:translateY(14px)}.cf-hand-tile.is-selected.can-play:hover:after{transform:translateY(12px)}.cf-hand-tile{width:var(--hand-tile-w);cursor:default;background:0 0;border:0;border-radius:10px;padding:0;transition:transform .15s;position:relative}.cf-hand-tile .tile-svg{filter:drop-shadow(0 2px 2px #28190a73);width:100%;height:auto;display:block}.cf-hand-tile.can-play .tile-svg,.cf-hand-tile.is-selected .tile-svg{filter:drop-shadow(0 6px 5px #28190a66)}.cf-hand-tile.can-play{cursor:pointer;outline:4px solid var(--success);outline-offset:2px;transform:translateY(-8px)}.cf-hand-tile.can-play:hover{transform:translateY(-12px)}.cf-hand-tile.is-selected{outline:6px solid var(--primary);outline-offset:2px;transform:translateY(-14px)}.cf-hand-tile.cannot-play .tile-svg{opacity:.45}.cf-hand-tile:focus-visible{outline:6px solid var(--focus)}.cf-new{z-index:1;background:var(--highlight);color:#1a1a1a;border-radius:6px;padding:0 6px;font-size:.85rem;font-weight:800;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.cf-side{border:1px solid var(--border-strong);border-radius:8px 8px var(--radius) var(--radius);box-shadow:var(--shadow-md), 0 3px 0 -1px #f3ead6, 0 4px 0 -1px var(--border-strong);background:#fffdf6;padding:0 0 14px;overflow:hidden}.cf-sb-title{border-bottom:4px solid var(--brass);background:var(--wood-bg);background-color:var(--wood);color:#fff6e0;font-size:var(--text-lg);text-shadow:0 1px 2px #0009;margin:0;padding:10px 16px}.cf-sb-note{color:var(--muted);margin:10px 16px 8px;font-size:1.05rem}.cf-scoreboard{width:100%;margin:0}.cf-scoreboard th,.cf-scoreboard td{border-bottom-color:var(--cf-rule-blue);padding-left:4px;padding-right:4px}.cf-scoreboard thead th{border-bottom:2px solid var(--text)}.cf-scoreboard tbody th,.cf-scoreboard tfoot th{border-right:2px solid #b5392c8c}.cf-scoreboard td{font-family:var(--font-display);font-size:1.2rem}.cf-scoreboard,.cf-results{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:1.1rem}.cf-scoreboard th,.cf-scoreboard td,.cf-results th,.cf-results td{border-bottom:1px solid var(--border);text-align:center;padding:5px 6px}.cf-scoreboard tbody th,.cf-results tbody th{text-align:left;white-space:nowrap}.cf-sb-double{color:var(--muted);font-size:.95rem;font-weight:400}.cf-scoreboard tr.is-current{background:var(--highlight-soft)}.cf-scoreboard tr.is-current th{box-shadow:inset 6px 0 0 var(--primary);font-weight:800}.cf-scoreboard tfoot th,.cf-scoreboard tfoot td{border-top:3px solid var(--text);border-bottom:0;font-weight:800}.cf-scoreboard td.is-best{color:var(--success);text-underline-offset:.15em;background:#dff3e3;-webkit-text-decoration:underline double;text-decoration:underline double}.cf-dialog{border:0;border-top:8px solid var(--brass);background:var(--surface);width:min(720px,100vw - 24px);max-height:calc(100vh - 24px);box-shadow:0 0 0 2px var(--wood-dark), var(--shadow-lg);color:var(--text);border-radius:18px;padding:20px 24px 24px}.cf-dialog::backdrop{background:#1c12089e}.cf-results thead th{border-bottom:3px solid var(--brass);font-family:var(--font-display)}.cf-mini-tile,.cf-all-tile{filter:drop-shadow(0 1px 1px #3c280f73)}.cf-dialog h2{margin-top:0}.cf-headline{font-size:var(--text-lg);font-weight:700}.cf-table-wrap{overflow-x:auto}.cf-left-tiles{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.cf-mini-tile{width:22px;height:44px}.cf-none{color:var(--success);font-weight:700}.cf-note{color:var(--muted)}.cf-dialog-buttons{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.cf-winner{font-size:var(--text-xl);color:var(--success);margin:0 0 8px;font-weight:800}.cf-ranking{font-size:var(--text-lg);padding-left:1.6em}.cf-ranking li{justify-content:space-between;max-width:360px;display:flex}.cf-ranking li.is-winner{font-weight:800}@media (width<=600px){.game-title{margin-top:8px;font-size:1.35rem}.cf-game,.cf-main{gap:8px}.cf-round-info{gap:6px 8px}.cf-round-num{font-size:1.3rem}.cf-chip{padding:2px 10px;font-size:1rem}.cf-chip-tile{display:none}.cf-topbar .btn{min-height:48px;padding:4px 14px;font-size:1.05rem}.cf-player{padding:6px 8px}.cf-player-name{font-size:1.1rem}.cf-badge{font-size:.85rem}.cf-backs{display:none}.cf-player-meta{flex-direction:column;font-size:1rem}.cf-status{padding:8px 12px}.cf-turn{font-size:1.3rem}.cf-rule{padding:4px 10px;font-size:1.1rem}.cf-log li:not(:last-child){display:none}.cf-board{height:clamp(280px,48vh,520px)}.cf-zoom-btn{min-width:48px;height:48px}.cf-buttons,.cf-buttons .btn{width:100%}.cf-hand{padding:20px 8px 12px}}.game-title{margin:12px 0 0;font-size:1.75rem}.cf-tile.is-arriving,.cf-hand-tile.is-arriving{opacity:0}.fly-tile svg{filter:drop-shadow(0 4px 6px #0006);width:100%;height:100%;display:block}.cf-fly-back{width:100%;height:100%}.cf-topbar-buttons{flex-wrap:wrap;gap:8px;display:flex}.cf-settings fieldset{border:2px solid var(--border);border-radius:var(--radius);margin:0 0 16px;padding:8px 16px 12px}.cf-settings legend{padding:0 6px;font-weight:800}.cf-option{min-height:var(--tap);cursor:pointer;align-items:flex-start;gap:12px;padding:6px 0;display:flex}.cf-option input{width:28px;height:28px;accent-color:var(--primary);flex:none;margin:4px 0 0}.cf-option-note{color:var(--muted);font-size:1.05rem}.cf-deal{font-variant-numeric:tabular-nums}.cf-status.is-your-turn{border-color:var(--highlight);background:linear-gradient(180deg, var(--highlight-soft), var(--surface) 70%);box-shadow:0 0 0 3px var(--highlight) inset, var(--shadow-md)}.cf-hint-box{margin-top:8px!important}.cf-log .why-text{font-weight:400}.cf-hand-tile.is-hint,.cf-hand-tile.can-play.is-hint{outline:6px dashed var(--highlight);outline-offset:3px;box-shadow:0 0 0 9px var(--wood-dark)}.cf-hand-tile.is-selected.is-hint{outline:6px dashed var(--primary)}.cf-hint-tag{background:#fff;border:2px solid #1a1a1a}.cf-buttons .btn.is-hint{outline:6px dashed var(--highlight);outline-offset:3px;box-shadow:0 0 0 9px var(--wood-dark)}.cf-ghost-hint{fill:none;stroke:#fff;stroke-width:.16px;stroke-dasharray:.35 .2}.cf-all-hands{margin-top:16px}.cf-all-hands>p{margin:0}.cf-all-row{gap:6px}.cf-all-tile{width:30px;height:60px}.cf-rule-q{margin:10px 0 0;font-weight:700}.cf-settings .choice{min-height:var(--tap)}.cf-error{background:#fde8eb;border-left:6px solid #b00020;margin:-8px 0 16px;padding:6px 12px;font-weight:700}@media (width<=600px){.cf-level{display:none}.cf-all-tile{width:26px;height:52px}}.cf-game .why-text[hidden],.cf-dialog .all-hands[hidden]{display:none}@media (width<=767px){.play-dock .cf-controls{gap:6px}.play-dock .cf-you{flex-wrap:wrap;flex:100%;align-items:center;gap:2px 12px;padding:4px 10px;display:flex}.play-dock .cf-you .cf-player-name,.play-dock .cf-you .cf-player-meta{margin:0;font-size:1.05rem}.play-dock .cf-buttons{flex-wrap:nowrap;flex:100%;gap:6px}.play-dock .cf-buttons .btn{flex:1 1 0;min-height:52px;padding:4px 10px;font-size:1.15rem}.play-dock .cf-hand{--hand-tile-w:40px;gap:10px 6px;min-height:0;padding:16px 6px 8px}:root{--cf-ledge:8px}.cf-board{border-width:4px;border-radius:16px}.cf-board:after{border-radius:12px}.cf-hand{border-width:2px}.cf-player-name{font-family:var(--font);font-weight:800}.cf-chip[data-anchor=yard]:before{width:10px;height:18px;margin:0 6px 3px 0}.cf-chip[data-anchor=yard] strong{font-size:1.15rem;line-height:1}.cf-board{height:max(260px, min(clamp(280px, 48vh, 520px), calc(100svh - var(--dock-h,420px) - 12px)))}}
