.assist-panel{gap:12px;display:grid}.assist-group h3{color:var(--color-muted);letter-spacing:.04em;margin:0 0 2px;font-size:.78rem;font-weight:600}.switch{width:100%;min-height:40px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:4px 0;display:flex}.switch-icon{width:28px;height:28px;color:var(--color-primary);background:#eef7f2;border-radius:8px;flex:none;place-items:center;display:inline-grid}.switch-label{flex:1}.switch-track{background:#c4c7cc;border-radius:999px;flex:none;width:36px;height:22px;transition:background .15s;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0000004d}.switch.is-on .switch-track{background:var(--color-primary)}.switch.is-on .switch-track:after{transform:translate(14px)}.switch strong{min-width:2em}.table,.table-vars{--felt:#2e6a4f;--felt-dark:#255a42;--panel:#fffffff0;--accent:#f2b134;--thickness:#b7ae8a;--hand-tile:min(11vw, 64px);--meld-tile:min(6.5vw, 36px);--pond-tile:min(5.6vw, 28px);--mini-tile:16px}.table{background:var(--felt);color:#fff;height:100dvh;font-family:var(--font);padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;grid-template:"bar bar bar""top top top""left center right"minmax(0,1fr)"actions actions actions""own own own"/auto minmax(0,1fr) auto;column-gap:6px;display:grid;overflow:hidden}.table-mee-4{--hand-tile:min(17vw, 88px);--meld-tile:min(8vw, 44px);--pond-tile:min(6.6vw, 32px)}.table-bar{background:#00000038;flex-wrap:wrap;grid-area:bar;align-items:center;gap:4px 12px;padding:6px 12px;font-size:.85rem;display:flex}.table-back{color:#fff;font-weight:600;text-decoration:none}.table-level{font-weight:600}.badge{background:var(--accent);color:#3a2a00;border-radius:999px;padding:0 6px;font-size:.75rem;font-weight:700;line-height:1.5;display:inline-block}.seat-panel{background:var(--panel);color:var(--color-text);border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:5px 8px;font-size:.78rem;display:flex}.seat-panel.is-active{box-shadow:0 0 0 3px var(--accent)}.seat-panel.is-out{opacity:.7}.seat-top{grid-area:top;justify-self:center;min-width:50%;margin:6px auto 4px}.seat-left,.seat-right{align-self:center;width:68px}.seat-left{grid-area:left;margin-left:6px}.seat-right{grid-area:right;margin-right:6px}.seat-head,.seat-body{flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 6px;display:flex}.seat-name{font-weight:700}.seat-count{align-items:center;gap:3px;display:inline-flex}.seat-won{color:#a35d00;font-weight:700}.table-center{background:var(--felt-dark);border-radius:12px;grid-area:center;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;min-height:0;padding:6px;display:grid;overflow:hidden}.pond{flex-wrap:wrap;align-content:flex-start;gap:3px 2px;display:flex}.pond-top,.pond-bottom{max-width:calc(var(--pond-tile) * 8 + 16px);grid-column:1/4;justify-content:center;margin:0 auto}.pond-top{grid-row:1}.pond-bottom{grid-row:3}.pond-left,.pond-right{width:calc(var(--pond-tile) * 3 + 6px);grid-row:2}.pond-left.is-packed,.pond-right.is-packed{width:calc(var(--pond-tile) * .62 * 4 + 8px)}.pond-left{grid-column:1}.pond-right{grid-column:3;justify-content:flex-end}.action-bar{text-align:center;grid-area:actions;padding:6px 12px 4px}.prompt{margin:0 0 6px;font-size:.9rem}.actions{flex-wrap:wrap;justify-content:center;gap:8px;min-height:44px;display:flex}.action{color:var(--color-text);font:inherit;cursor:pointer;touch-action:manipulation;background:#fff;border:0;border-radius:999px;align-items:center;gap:4px;padding:8px 18px;font-size:1.05rem;font-weight:700;text-decoration:none;display:inline-flex}.action-win{background:var(--accent);color:#3a2a00}.action-pass{background:#ffffffa6}.own-area{padding:6px 8px calc(10px + env(safe-area-inset-bottom));background:#00000029;grid-area:own}.own-area.is-active{box-shadow:inset 0 3px 0 var(--accent)}.own-head{align-items:center;gap:8px;font-size:.85rem;display:flex}.own-head .seat-won{color:var(--accent)}.wait-strip{background:#00000040;border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-left:auto;padding:2px 8px;display:inline-flex}.wait-strip .wait{align-items:center;gap:2px;font-weight:700;display:inline-flex}.wait-strip .wait.is-dead{opacity:.45}.wait-strip.muted-hint{opacity:.9;font-size:.8rem}.ttile.is-ready:after{content:"";right:calc(var(--w) * .08);bottom:calc(var(--w) * .1);width:max(8px, calc(var(--w) * .16));height:max(8px, calc(var(--w) * .16));background:#22b573;border-radius:50%;position:absolute;box-shadow:0 0 0 2px #fff}.ttile.is-ready.is-selected:after,.own-hand.is-one-click button.ttile.is-ready:hover:after{transform:translateY(calc(var(--w) * -.38))}.melds{flex-wrap:wrap;justify-content:center;gap:4px 8px;margin:4px 0;display:flex}.meld{gap:1px;display:inline-flex}.own-hand{justify-content:center;align-items:flex-end;gap:calc(var(--hand-tile) * .3);padding-top:calc(var(--hand-tile) * .4);display:flex}.own-hand-tiles{gap:2px;display:flex}.ttile{vertical-align:bottom;background:0 0;border:0;padding:0;line-height:0;display:inline-block}button.ttile{cursor:pointer;touch-action:manipulation}.ttile img{width:var(--w);border-radius:calc(var(--w) * .1);height:auto;box-shadow:0 calc(var(--w) * .08) 0 var(--thickness), 0 calc(var(--w) * .08 + 2px) 3px #00000059;transition:transform .12s;display:block}.ttile-hand{--w:var(--hand-tile);margin-bottom:calc(var(--w) * .08)}.ttile-meld{--w:var(--meld-tile)}.ttile-pond{--w:var(--pond-tile)}.pond.is-crowded .ttile-pond{--w:calc(var(--pond-tile) * .78)}.pond.is-packed .ttile-pond{--w:calc(var(--pond-tile) * .62)}.ttile-mini{--w:var(--mini-tile)}.ttile.is-selected img{transform:translateY(-30%)}.ttile.is-blocked img{filter:grayscale()brightness(.85);opacity:.55}.ttile.is-dim img{opacity:.35}.ttile.is-highlight img{outline:3px solid var(--accent);outline-offset:1px}.notices{z-index:5;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:fixed;top:48px;right:8px}.notice{color:#fff;font:inherit;background:#000000c7;border:0;border-radius:8px;padding:6px 12px;font-size:.85rem}.dialog-backdrop{z-index:10;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dialog{width:100%;max-width:560px;max-height:88dvh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));color:var(--color-text);-webkit-user-select:text;user-select:text;background:#fff;border-radius:16px 16px 0 0;overflow-y:auto;box-shadow:0 -8px 30px #00000059}@media (width>=600px){.dialog-backdrop{align-items:center}.dialog{border-radius:16px}}.dialog-title{margin:0 0 4px;font-size:1.2rem}.dialog-lead{margin:4px 0 12px;font-size:1.1rem;font-weight:700}.muted-on-card{color:var(--color-muted);margin:0;font-size:.85rem}.dialog-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}.dialog .action{border:1px solid var(--color-border)}.win-card{border:1px solid var(--color-border);background:#fbf8ee;border-radius:12px;margin:10px 0;padding:10px 12px}.win-head{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.win-tile{align-items:center;gap:4px;margin-left:auto;font-size:.85rem;display:inline-flex}.win-groups{flex-wrap:wrap;gap:8px 10px;margin:10px 0;display:flex}.win-group{gap:1px;padding-bottom:4px;display:inline-flex}.win-group.is-meld{border-bottom:3px solid var(--accent)}.score-lines{margin:6px 0;padding:0;list-style:none}.score-lines li{border-bottom:1px dashed var(--color-border);justify-content:space-between;align-items:center;gap:10px;padding:3px 0;display:flex}.score-lines li>span:first-child{align-items:center;gap:4px;display:inline-flex}.score-detail{color:var(--color-muted);font-variant-numeric:tabular-nums;margin-left:6px;font-size:.85rem}.points{font-variant-numeric:tabular-nums;font-weight:700}.score-total{font-weight:700}.score-penalty{color:var(--color-danger,#b32d2e)}.result-scroll{overflow-x:auto}.result-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:10px}.result-table th,.result-table td{border-bottom:1px solid var(--color-border);text-align:right;white-space:nowrap;padding:5px 6px}.result-table tbody th{text-align:left}.result-table tr.is-me{background:#fff3d2;font-weight:700}.rotate-hint{display:none}@media (orientation:portrait) and (width<=900px){.rotate-hint{z-index:20;color:#fff;text-align:center;background:#143224f7;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;font-size:1.2rem;display:flex;position:fixed;inset:0}.rotate-hint:before{content:"⟳";font-size:4rem;line-height:1}}@media (orientation:landscape){.table{--hand-tile:min(calc((100vw - 140px) / 15.5), 11vh, 60px);--meld-tile:min(calc(var(--hand-tile) * .72), 42px);--pond-tile:min(2.6vw, 5.4vh, 30px);grid-template:"bar bar bar""left top right""left center right"minmax(0,1fr)"left actions right""own own own"/minmax(76px,auto) minmax(0,1fr) minmax(76px,auto)}.table-mee-4{--hand-tile:min(calc((100vw - 140px) / 8), 15vh, 84px);--pond-tile:min(3vw, 6vh, 32px)}.table-mee-7{--hand-tile:min(calc((100vw - 140px) / 11), 13vh, 72px)}.seat-top{flex-flow:wrap;justify-content:center;gap:2px 10px;min-width:0;margin:4px auto;padding:3px 10px}.seat-left,.seat-right{width:auto;min-width:76px;max-width:120px}.pond-top,.pond-bottom{max-width:calc(var(--pond-tile) * 14 + 30px)}.pond-left,.pond-right{width:calc(var(--pond-tile) * 6 + 12px)}.action-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;padding:4px 8px;display:flex}.prompt{margin:0}.actions{min-height:0}.own-area{padding:4px 12px calc(6px + env(safe-area-inset-bottom));justify-content:center;align-items:flex-end;gap:14px;display:flex}.own-head{margin-bottom:calc(var(--hand-tile) * .15);flex-direction:column;align-items:flex-start;gap:2px}.own-area .melds{margin:0 0 calc(var(--hand-tile) * .08);flex-wrap:nowrap}.own-hand{padding-top:calc(var(--hand-tile) * .3)}}@media (orientation:landscape) and (width>=1300px){.table{padding-left:calc(50vw - 640px);padding-right:calc(50vw - 640px)}}@media (orientation:landscape) and (width>=1100px) and (height>=680px){.table{--mini-tile:22px;--pond-tile:min(2.4vw, 4.6vh, 36px);font-size:18px}.table-bar,.seat-panel,.own-head,.prompt{font-size:1rem}.seat-panel{padding:8px 12px}.seat-left,.seat-right{min-width:110px;max-width:160px}.action{padding:10px 22px;font-size:1.15rem}}.own-hand.is-one-click button.ttile:not(.is-blocked):hover img{transform:translateY(-30%)}.icon-button{width:36px;height:36px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:inline-grid}.icon-button:hover{background:#0000001f}.table-tools{align-items:center;gap:6px;margin:-6px -6px -6px auto;display:flex}.bar-button{min-height:30px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #fff9;border-radius:999px;padding:2px 12px}.bar-button.is-on{border-color:var(--accent);background:var(--accent);color:#3a2a00;font-weight:700}.settings-popover{inset:calc(env(safe-area-inset-top) + 44px) 8px auto auto;width:min(320px,100vw - 16px);max-height:calc(100dvh - 60px);color:var(--color-text);background:#fff;border:0;border-radius:12px;margin:0;padding:10px 14px 14px;position:fixed;overflow-y:auto;box-shadow:0 8px 30px #00000059}.settings-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.settings-head h2{margin:0;font-size:1.05rem}.ttile{position:relative}.seen-tag{z-index:6;color:#fff;white-space:nowrap;pointer-events:none;background:#000000d9;border-radius:6px;padding:2px 7px;font-size:.78rem;line-height:1.4;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.own-hand .ttile.is-selected .seen-tag,.own-hand.is-one-click .ttile:hover .seen-tag{bottom:calc(100% + var(--w) * .4)}.pond-top .seen-tag,.pond-left .seen-tag,.pond-right .seen-tag{top:calc(100% + 4px);bottom:auto}.ttile.is-match img{outline-offset:1px;outline:3px solid #4fc3f7}:root{--font:system-ui, -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--color-bg:#f7f1df;--color-surface:#fff;--color-text:#1d2327;--color-muted:#646970;--color-border:#d9cfb3;--color-primary:#1e7b58;--tile-width:48px}*{box-sizing:border-box}body{font-family:var(--font);color:var(--color-text);background:var(--color-bg);margin:0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--color-muted)}.small{font-size:.85em}.app-header{padding:10px max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:16px;display:flex}.app-title{color:var(--color-primary);font-weight:600;text-decoration:none}.app-nav{flex:1;gap:16px;display:flex}.app-nav a{color:var(--color-text);text-decoration:none}.app-nav a.active{color:var(--color-primary);font-weight:600}.app-main{max-width:960px;margin:0 auto;padding:16px}.lang-switcher select{font:inherit;padding:4px 6px}.tile{width:var(--tile-width);-webkit-user-select:none;user-select:none;height:auto;display:block}.tile-group h2{margin:20px 0 8px;font-size:1rem}.tile-row{flex-wrap:wrap;gap:6px;display:flex}@media (width>=600px){:root{--tile-width:64px}}.lobby h2{margin:24px 0 8px;font-size:1.05rem}.level-list{gap:10px;display:grid}.level-list button{border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px;display:flex}.level-list button:hover,.segmented button:hover{border-color:var(--color-primary)}.level-list button.is-chosen{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);background:#eef7f2}.level-name{color:var(--color-primary);font-size:1.2rem;font-weight:700}.lobby-options{gap:12px;margin-bottom:20px;display:grid}.lobby-field{gap:6px;display:grid}.lobby-field-label{font-size:.9rem;font-weight:600}.lobby-field p{margin:0}.segmented{flex-wrap:wrap;gap:6px;display:flex}.segmented button{border:1px solid var(--color-border);background:var(--color-surface);min-height:40px;color:var(--color-text);font:inherit;cursor:pointer;border-radius:999px;padding:6px 14px}.segmented button.is-chosen{border-color:var(--color-primary);background:var(--color-primary);color:#fff;font-weight:600}.primary-button{background:var(--color-primary);color:#fff;min-height:44px;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:10px 28px;font-weight:700;text-decoration:none;display:inline-block}.continue-card{border:2px solid var(--color-primary);background:var(--color-surface);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:16px 0;padding:14px 16px;display:flex}.continue-card h2{margin:0}.continue-card p{margin:2px 0 0}.lobby-assists{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;max-width:420px;padding:8px 16px 12px}.lobby-links{flex-wrap:wrap;gap:8px 20px;margin-top:24px;display:flex}.record-list{gap:8px;margin:12px 0;padding:0;list-style:none;display:grid}.record-row{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:12px 16px;text-decoration:none;display:flex}.record-row:hover{border-color:var(--color-primary)}.record-main{gap:2px;display:grid}.record-outcome{font-weight:700}.record-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;margin:10px 0;padding:10px 14px}.record-card summary{cursor:pointer;font-weight:600}
