:root{color:#243e36;font-synthesis:none;--green:#254e45;--muted:#6b7d74;--line:#dce5de;--red:#a94537;--paper:#fffef9;background:#f1f5f2;font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;font-weight:400;line-height:1.6}.brand-signature,.project-links{align-items:center;display:flex}.brand-signature{gap:12px;min-width:0}.project-links{flex-shrink:0;gap:4px}.brand-signature .brand{flex-shrink:0}.author-link{color:#526f61;white-space:nowrap;align-items:center;gap:4px;min-height:44px;font-size:12px;text-decoration:none;display:inline-flex}.author-link>span{color:#68796e;font-size:11px}.author-link:hover{text-underline-offset:3px;text-decoration:underline}.about-button{color:#526f61;cursor:pointer;background:0 0;border:0;border-radius:7px;min-width:44px;min-height:44px;padding:0 6px;font-size:12px}.about-button:hover{background:#e7eee5}.project-about a{text-underline-offset:3px}.about-identity{align-items:center;gap:13px;margin-top:6px;display:flex}.project-about .about-identity h3{color:var(--green);margin:0;font-size:23px;font-weight:650}.about-identity h3>span{color:#637566;margin-left:7px;font-size:12px;font-weight:400}.about-version{color:#68796e;font-size:11px}.project-about .about-description{margin:18px 0 22px}.about-author{border-top:1px solid var(--line);color:#637566;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;font-size:12px;display:flex}.about-author>a{min-height:44px;color:var(--green);align-items:center;gap:8px;font-size:18px;font-weight:600;text-decoration:none;display:inline-flex}.about-author>a>span{color:#68796e;font-size:14px}.about-github{min-height:46px;color:var(--green);background:#e8f0e5;border:1px solid #ccd9c6;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;text-decoration:none;display:flex}.about-github:hover{background:#dfead9}.about-credits{margin-top:19px;font-size:12px}.about-credits summary{cursor:pointer;color:#637566;align-content:center;min-height:44px;display:list-item}.about-credits>a{align-items:center;min-height:44px;display:inline-flex}.project-about .about-copyright{color:#68796e;margin:16px 0 0;font-size:11px}.author-link:focus-visible,.about-button:focus-visible,.project-about a:focus-visible{outline-offset:3px;border-radius:4px;outline:3px solid #b77b2d}@media (max-width:360px){.brand-signature{gap:8px}.author-link{font-size:11px}.author-link>span{font-size:10px}.project-links{gap:0}}*{box-sizing:border-box}body{margin:0}button,input,a,summary{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #d69737}a{color:var(--green)}button{color:inherit}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.8px;margin-bottom:10px;font-size:30px;line-height:1.4}h2{margin-bottom:12px;font-size:16px}h3{margin:22px 0 10px;font-size:14px}p{margin-bottom:12px}small{color:var(--muted);font-weight:400}.muted,.field-help{color:var(--muted);font-size:12px}.field-help{margin-top:12px}.app-header,.tabs,.play-layout,.setup-layout,.document-page,.app-footer{max-width:1140px;margin-left:auto;margin-right:auto}.app-header{justify-content:space-between;align-items:center;padding:26px 30px 18px;display:flex}.brand{letter-spacing:2px;align-items:center;gap:12px;font-size:21px;font-weight:800;text-decoration:none;display:flex}.brand>span{align-items:baseline;gap:12px;display:flex}.brand small{letter-spacing:1px;font-size:11px}.header-tools{align-items:center;gap:15px;display:flex}.local-status{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.local-status i{background:#659171;border-radius:50%;width:6px;height:6px}.icon-button{border:1px solid var(--line);background:0 0;border-radius:50%;min-width:36px;height:36px;font-weight:600}.tabs{border-bottom:1px solid var(--line);gap:36px;padding:0 30px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;min-width:50px;padding:13px 3px;font-size:14px}.tabs button[aria-current]{color:var(--green);border-bottom-color:var(--green);font-weight:700}.button{background:#fff;border:1px solid #cedbd1;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-size:13px;font-weight:600;display:inline-flex}.button:hover:not(:disabled){background:#e9f0e9;border-color:#96b5a1}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover:not(:disabled){background:#193e35}.button:disabled{opacity:.42}.button.subtle{background:0 0}.button.text{color:var(--muted);background:0 0;border-color:#0000;font-weight:400}.button.compact{min-height:36px;padding:7px 11px;font-size:12px}.button.win{color:#fff;background:#a54839;border-color:#a54839}.wide{width:100%}.eyebrow{letter-spacing:2px;color:#647e6c;margin-bottom:10px;font-size:11px;font-weight:650}.setup-layout{grid-template-columns:1fr 1fr;align-items:center;gap:56px;padding:42px 30px;display:grid}.setup-card{max-width:510px}.lead{color:var(--muted);margin-bottom:28px;font-size:14px}.dealer-picker{border:0;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding:0;display:flex}.dealer-picker legend{margin-bottom:10px;font-size:13px;font-weight:600}.dealer-picker label{cursor:pointer;flex:1;position:relative}.dealer-picker input{opacity:0;width:100%;height:100%;margin:0;position:absolute}.dealer-picker span{border:1px solid var(--line);text-align:center;background:#fff;border-radius:8px;padding:9px 12px;font-size:13px;display:block}.dealer-picker input:checked+span{color:var(--green);background:#e1ece2;border-color:#91ad95;font-weight:700}.dealer-picker input:focus-visible+span{outline:3px solid #d69737}.section-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.section-heading h2{margin:0;font-size:14px}.section-heading>span{color:var(--muted);font-size:11px}.section-heading small{margin-left:6px;font-size:11px}.hand{flex-wrap:wrap;align-items:center;gap:5px;min-height:62px;display:flex}.setup-hand{background:#e6ede4;border:1px dashed #b8cab9;border-radius:12px;align-content:center;min-height:152px;margin-bottom:20px;padding:14px 10px}.empty-hand{text-align:center;color:#728371;width:100%;line-height:2}.empty-hand small{font-size:11px}.setup-note{border-top:1px solid var(--line);gap:4px;margin-top:22px;padding:19px 0 0;font-size:12px;display:grid}.setup-note span{color:var(--muted);font-size:11px}.setup-note button{color:#547964;text-underline-offset:3px;background:0 0;border:0;justify-self:start;padding:4px 0;font-size:12px;text-decoration:underline}.tile{--tile-width:40px;width:var(--tile-width);height:calc(var(--tile-width) * 1.42);vertical-align:middle;background:linear-gradient(110deg,#fffef7,#f4f1e6);border:1px solid #d3d2c3;border-bottom:3px solid #a3b3a0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;padding:1px;line-height:1;display:inline-flex;position:relative;box-shadow:0 1px 1px #173b3310}.tile svg{width:100%;height:100%;display:block}.tile-number{fill:#273f38;font-family:Kaiti SC,KaiTi,STKaiti,serif;font-size:24px;font-weight:700}.tile-wan{fill:#b34136;font-family:KaiTi,STKaiti,serif;font-size:23px;font-weight:700}.tile-honor{font-family:KaiTi,STKaiti,serif;font-size:30px;font-weight:600}button.tile{transition:background .12s,transform .12s}button.tile:hover:not(:disabled){background:#e2edde;border-color:#759c78;transform:translateY(-2px)}button.tile:active:not(:disabled){transform:translateY(1px)}button.tile:disabled{opacity:.27;box-shadow:none}.tile-small{--tile-width:24px;border-bottom-width:2px;border-radius:3px}.tile-selected{border-color:#b99048;box-shadow:0 0 0 2px #d0b77655}.tile-count{color:#fff;text-align:center;background:#547963;border-radius:3px;min-width:13px;padding:0 2px;font-size:9px;line-height:13px;position:absolute;bottom:-6px;right:-3px}.keypad-panel{border:1px solid var(--line);background:#fff;border-radius:13px;padding:20px;box-shadow:0 5px 20px #18392d04}.keypad-heading{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:16px;display:flex}.keypad-heading strong{font-size:13px}.keypad-heading>span{color:var(--muted);white-space:nowrap;font-size:10px}.keypad-hint{color:var(--muted);margin-top:-6px;margin-bottom:14px;font-size:11px}.keypad-row{grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;margin-bottom:7px;display:grid}.keypad-row:last-child{margin:0}.keypad-row .tile{--tile-width:100%;aspect-ratio:40/57;width:100%;height:auto;min-height:40px}.keypad-legend{text-align:center;color:#95a097;grid-column:span 2;align-self:center;font-size:9px;line-height:2}.play-layout{grid-template-columns:minmax(0,1.55fr) minmax(325px,1fr);gap:28px;padding:24px 30px;display:grid}.game-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.game-toolbar>div{align-items:center;gap:9px;display:flex}.game-toolbar .eyebrow{margin:0}.demo-tag{color:#846b35;background:#fff6da;border:1px solid #c5b17b;border-radius:4px;padding:2px 6px;font-size:11px}.input-column{align-self:start;padding-top:49px;position:sticky;top:0}.input-column .keypad-panel{padding:16px 12px}.input-column .keypad-row{gap:4px}.input-column .keypad-heading>span{display:none}.table-board{background:var(--green);border:1px solid #193f35;border-radius:16px;grid-template-columns:1fr 1.05fr 1fr;grid-template-areas:".top.""left center right""bottom bottom bottom";gap:10px;min-height:310px;padding:15px;display:grid;box-shadow:inset 0 0 40px #122e3026}.player-card{background:#f1f5ee;border:1px solid #f5f6e970;border-radius:7px;align-self:start;min-width:0;padding:7px 8px}.player-2{grid-area:top}.player-3{grid-area:left}.player-1{grid-area:right}.player-0{grid-area:bottom;margin:3px 0 0}.player-heading{justify-content:space-between;align-items:center;gap:3px;margin-bottom:4px;font-size:12px;display:flex}.player-heading strong{white-space:nowrap}.dealer-tag{color:#916b30;border:1px solid #d3be8f;border-radius:2px;margin-left:4px;padding:0 2px;font-size:9px;font-weight:500}.score{font-variant-numeric:tabular-nums;color:#718375;white-space:nowrap;font-size:12px;font-weight:600}.score small{margin-left:2px;font-size:8px}.score.positive{color:#317856}.current-player{box-shadow:0 0 0 2px #d8b36d}.river{flex-wrap:wrap;align-content:start;gap:2px;min-height:20px;display:flex}.river .tile-small{--tile-width:20px}.player-0 .river .tile-small{--tile-width:23px}.empty-river{color:#8b998f;font-size:10px}.claimed{opacity:.28;filter:grayscale()}.last-discard{box-shadow:0 0 0 1.5px #c18c3d}.melds{flex-wrap:wrap;gap:4px;display:flex}.meld{gap:1px;margin-bottom:2px;padding-bottom:11px;display:inline-flex;position:relative}.meld .tile-small{--tile-width:16px}.meld small{font-size:8px;line-height:1.2;position:absolute;bottom:-1px;left:0}.table-center{text-align:center;color:#d5e3d7;flex-direction:column;grid-area:center;justify-content:center;align-items:center;min-height:122px;padding:3px 0 5px;display:flex}.table-mark{letter-spacing:8px;color:#81a48e;opacity:.7;margin-left:8px;font-family:serif;font-size:20px}.last-play{flex-direction:column;align-items:center;gap:5px;margin-top:8px;font-size:10px;display:flex}.last-play .tile{--tile-width:31px}.table-status{margin-top:15px;font-size:12px}.turn-order{white-space:nowrap;color:#93b09d;margin-top:9px;font-size:8px}.my-hand-panel{padding:20px 0 15px}.my-hand-panel .tile{--tile-width:35px}.my-hand-panel .hand{gap:4px}.action-bar{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.action-bar:empty{display:none}.action-bar .button{min-height:40px;padding:7px 10px;font-size:12px}.advice-panel{background:#fffef9;border:1px solid #e0e4d7;border-left:3px solid #64876b;border-radius:10px;margin-top:1px;padding:17px 19px}.advice-panel:empty{display:none}.advice-label{color:#698272;align-items:center;gap:6px;font-size:11px;display:flex}.advice-spark{color:#4b7b56;font-size:16px}.method-tag{color:#6a7c62;background:#edf1e7;border-radius:4px;margin-left:auto;padding:2px 6px;font-size:9px}.advice-main{justify-content:space-between;align-items:center;margin:8px 0;display:flex}.advice-main h2{letter-spacing:-.5px;margin-bottom:3px;font-size:24px;font-weight:650}.advice-main p{color:#73826e;margin:0;font-size:11px}.advice-main>.tile{--tile-width:33px}.effective-tiles{flex-wrap:wrap;align-items:center;gap:6px;margin:16px 0;display:flex}.effective-tiles>span:first-child:not(.tile){color:var(--muted);margin-right:4px;font-size:10px}.effective-tiles .tile{--tile-width:22px}.alternatives{border-top:1px solid #e9ecdf;margin-top:14px;padding-top:10px}.alternatives summary{color:#697d6d;cursor:pointer;min-height:30px;padding:4px 0;font-size:11px}.alternative{border-bottom:1px dashed #e6e9df;justify-content:space-between;gap:12px;padding:9px 0;display:flex}.alternative strong{font-size:12px}.alternative span{color:var(--muted);text-align:right;font-size:10px}.method-note{color:#7c897c;margin:12px 0 0;font-size:10px;line-height:1.8}.method-note button{color:#587761;background:0 0;border:0;padding:0 2px;font-size:10px;text-decoration:underline}.risk-note{color:#a07736;margin:8px 0;font-size:11px}.pulse{background:#779d7d;border-radius:50%;width:7px;height:7px;animation:1s infinite alternate pulse}@keyframes pulse{to{opacity:.3}}.document-page{max-width:840px;padding:35px 30px}.page-heading p{color:var(--muted);max-width:610px;font-size:13px}.card{border:1px solid var(--line);background:#fff;border-radius:12px;margin:20px 0;padding:24px}.card h2{margin-bottom:18px;font-size:15px}.toggle-grid{grid-template-columns:1fr 1fr;column-gap:30px;display:grid}.toggle-row{border-bottom:1px solid #edf1eb;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;font-size:13px;display:flex}.toggle-row input{appearance:none;cursor:pointer;background:#c4ccc3;border:0;border-radius:20px;flex-shrink:0;width:36px;height:21px;position:relative}.toggle-row input:before{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:transform .12s;position:absolute;top:3px;left:3px}.toggle-row input:checked{background:#447555}.toggle-row input:checked:before{transform:translate(15px)}.number-grid{grid-template-columns:1fr 1fr;gap:20px 30px;display:grid}.number-field{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.number-field small{font-size:10px;display:block}.number-field input{background:#f8faf6;border:1px solid #d7e1d6;border-radius:6px;width:80px;padding:9px;font-size:14px}.number-field input::placeholder{font-size:11px}.rule-example{background:#f0f5ec;border-radius:7px;margin-top:20px;padding:14px 16px;font-size:12px}.rule-example p{color:#677d64;margin:5px 0 0;font-size:11px}.rule-example strong{font-size:12px}.notice{color:#826d48;background:#f8f2e4;border:1px solid #e8d9b6;border-radius:8px;padding:16px 19px;font-size:12px}.notice p{margin:5px 0 0;font-size:11px;line-height:1.8}.notice.error{max-width:1080px;margin:16px auto}.form-actions{flex-wrap:wrap;gap:10px;margin:24px 0 14px;display:flex}.history-tools{flex-wrap:wrap;gap:8px;display:flex}.score-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.score-grid>div{text-align:center;background:#f3f7f0;border-radius:6px;padding:9px 5px}.score-grid span{color:var(--muted);font-size:11px;display:block}.score-grid strong{font-variant-numeric:tabular-nums;font-size:23px;font-weight:500}.ledger-line{color:var(--muted);margin:12px 0 0;font-size:10px}.ledger-line strong{color:var(--green);margin-right:8px}.timeline{margin:24px 0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--line);align-items:center;gap:15px;padding:14px 0;display:flex}.event-no{text-align:center;background:#e1eae0;border-radius:50%;flex-shrink:0;width:27px;height:27px;font-size:10px;line-height:27px}.timeline li>div{flex:1}.timeline strong{font-size:13px;font-weight:550}.timeline small{font-size:10px;display:block}.timeline .button{white-space:nowrap;font-size:10px}.initial-tiles{flex-wrap:wrap;gap:3px;margin-top:8px;display:flex}.empty-state{text-align:center;color:var(--muted);padding:60px 15px}.empty-state p{margin:8px 0 20px;font-size:12px}.result-panel{background:#e1ecdc;border:1px solid #c4d5bc;border-radius:10px;margin-top:18px;padding:16px;font-size:14px}.result-panel p{margin:5px 0;font-size:12px}.result-panel small{font-size:10px}.next-round{margin:0}.next-round p{color:var(--muted);font-size:12px}.next-round .button{margin-top:10px}.app-footer{border-top:1px solid var(--line);color:#8c9b8e;letter-spacing:.5px;justify-content:space-between;padding:20px 30px 30px;font-size:10px;display:flex}dialog{border:1px solid var(--line);color:var(--green);border-radius:15px;width:calc(100vw - 28px);max-width:490px;max-height:85dvh;padding:22px 24px;box-shadow:0 25px 120px #0d211350}.dialog-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.dialog-heading h2{margin:0;font-size:19px}.dialog-heading .icon-button{border:0;font-size:23px}.dialog-body{font-size:13px}.dialog-body p{color:var(--muted)}.dialog-options{flex-wrap:wrap;gap:8px;display:flex}.dialog-action{width:100%;margin-top:12px}.dialog-tile-grid{grid-template-columns:repeat(9,1fr);gap:4px;margin-top:12px;display:grid}.dialog-tile-grid .tile{aspect-ratio:40/57;width:100%;height:auto}.dialog-body details{margin:18px 0}.dialog-body summary{cursor:pointer;font-size:12px}.dialog-body .rule-example{margin-bottom:18px}.win-patterns{border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;gap:14px;padding:12px;display:flex}.win-patterns legend{color:var(--muted);font-size:11px}.win-patterns label{font-size:13px}.win-patterns input{accent-color:var(--green);vertical-align:middle;width:18px;height:18px}.win-patterns small{width:100%;font-size:11px}.help-list{color:var(--muted);padding-left:22px}.help-list li{padding:7px 0}#toast{bottom:max(24px,env(safe-area-inset-bottom));color:#fff;opacity:0;pointer-events:none;z-index:100;background:#203f37;border-radius:10px;width:max-content;max-width:calc(100vw - 30px);padding:12px 20px;font-size:13px;transition:opacity .18s,transform .18s;position:fixed;left:50%;transform:translate(-50%,20px);box-shadow:0 6px 30px #172d2730}#toast.visible{opacity:1;transform:translate(-50%)}@media (min-width:1100px){.my-hand-panel .tile{--tile-width:36px}.table-board{min-height:330px}.river .tile-small{--tile-width:23px}.meld .tile-small{--tile-width:19px}}@media (max-width:760px){.app-header{padding:17px 16px 12px}.brand{gap:8px;font-size:19px}.brand img{width:31px;height:31px}.brand small{letter-spacing:0;font-size:9px}.brand>span{gap:8px}.header-tools{gap:9px}.local-status{font-size:9px}.icon-button{min-width:31px;height:31px}.tabs{gap:30px;padding:0 18px}.tabs button{padding:10px 2px;font-size:13px}.setup-layout{flex-direction:column;gap:25px;padding:26px 16px;display:flex}.setup-card{width:100%;max-width:none}h1{font-size:27px}.lead{margin-bottom:22px;font-size:12px}.setup-hand{min-height:126px}.setup-card .tile{--tile-width:37px}.setup-layout .keypad-panel{width:100%;padding:16px 12px}.setup-note{margin-top:12px;padding-top:12px}.play-layout{flex-direction:column;gap:16px;padding:17px 12px;display:flex}.play-column{width:100%;min-width:0}.game-toolbar{margin-bottom:12px}.game-toolbar .muted{font-size:10px}.game-toolbar .eyebrow{font-size:9px}.game-toolbar .button{min-height:34px;padding:6px 9px;font-size:10px}.input-column{width:100%;padding:0;position:static}.table-board{gap:8px;min-height:282px;padding:12px}.table-center{min-height:112px}.player-card{padding:6px}.player-heading{font-size:11px}.river .tile-small{--tile-width:19px}.player-0 .river .tile-small{--tile-width:21px}.my-hand-panel{padding:17px 0 14px}.my-hand-panel .tile{--tile-width:39px}.my-hand-panel .hand{gap:5px;min-height:58px}.action-bar .button{padding:8px 10px;font-size:11px}.advice-panel{padding:14px 15px}.advice-main h2{font-size:22px}.advice-main p,.method-note{font-size:10px}.keypad-panel{padding:15px 11px}.keypad-row,.input-column .keypad-row{gap:5px}.keypad-heading{margin-bottom:13px}.keypad-row .tile{min-height:45px}.keypad-legend{font-size:8px}.document-page{padding:27px 16px}.card{margin:19px 0;padding:19px 16px}.toggle-grid,.number-grid{grid-template-columns:1fr}.toggle-row{padding:11px 0}.number-grid{gap:17px}.number-field{font-size:13px}.number-field small{font-size:11px}.number-field input{width:94px}.notice{padding:14px}.notice.error{margin:12px}.app-footer{padding:18px 16px 26px;font-size:9px}.form-actions .button{font-size:12px}.timeline{margin-top:16px}.timeline li{gap:10px}.timeline strong{font-size:12px}.timeline .button{padding:6px;font-size:9px}.timeline .event-no{width:25px;height:25px;line-height:25px}.end-button{margin-top:10px}dialog{padding:18px}.dialog-heading h2{font-size:18px}.help-list li{font-size:12px}.dialog-options .button{padding:8px;font-size:11px}.score-grid strong{font-size:21px}}@media (max-width:360px){.brand small{display:none}.my-hand-panel .tile{--tile-width:36px}.keypad-row,.input-column .keypad-row{gap:3px}.keypad-row .tile{min-height:41px}.turn-order{font-size:7px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.mobile-table-summary,.mobile-end{display:none}.record-text-label{margin:20px 0 15px;font-size:12px;display:block}.record-text-label textarea{width:100%;height:170px;color:var(--green);resize:vertical;background:#f6f8f3;border:1px solid #cddbc9;border-radius:7px;margin-top:7px;padding:10px;font:11px/1.6 monospace;display:block}.record-text-label textarea:focus-visible{outline-offset:2px;outline:3px solid #d69737}@media (max-width:360px){.my-hand-panel .tile{--tile-width:34px}.my-hand-panel .hand{gap:4px}}.update-notice{background:#e5eee0;border:1px solid #cad9c5;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;max-width:1080px;margin:12px auto;padding:10px 15px;font-size:12px;display:flex}@media (max-width:760px){.mobile-table-summary{background:var(--green);color:#e1ebe0;border-radius:10px;margin-bottom:4px;display:block}.mobile-table-summary>button{width:100%;color:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;min-height:44px;padding:13px 14px;font-size:13px;display:flex}.mobile-table-summary small{color:#acbfae;font-size:10px}.mobile-table-summary strong{color:#f2dbaa}.mini-scores{color:#b6c8b7;justify-content:space-between;gap:5px;padding:0 14px 11px;font-size:10px;display:flex}.mini-scores b{color:#e5eede;margin-left:3px;font-weight:500}.table-board{display:none}.table-board.expanded{margin-top:12px;display:grid}.has-keypad{padding-bottom:310px}.has-keypad .input-column{z-index:5;padding:8px 8px max(9px,env(safe-area-inset-bottom));background:#f1f5f2;border-top:1px solid #c8d6c8;width:100%;position:fixed;inset:auto 0 0;box-shadow:0 -5px 20px #1a352a0a}.has-keypad .keypad-panel{border-radius:9px;padding:10px}.has-keypad .keypad-heading{margin-bottom:9px}.has-keypad .keypad-hint{margin-bottom:8px;font-size:10px;line-height:1.5}.has-keypad .keypad-row .tile{aspect-ratio:auto;height:clamp(41px,12vw,59px);max-height:59px}.has-keypad .end-button,.own-discard .input-column{display:none}.mobile-end{margin-top:12px;font-size:11px;display:inline-flex}.has-keypad .advice-panel .method-note{font-size:9px}.has-keypad .advice-panel{padding:11px 13px}.has-keypad .effective-tiles{margin:10px 0}.play-layout.has-keypad~.app-footer{display:none}#toast{z-index:20}}.operation-bar{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:15px;display:grid}.operation-button{min-height:48px;padding:7px 12px;font-size:19px;font-weight:650}.operation-button:disabled{color:#879184;opacity:1;background:#e8ede7;border-color:#d9e1d6}.pass-button{min-height:36px;margin-top:9px;padding:6px 10px;font-size:11px}.operation-seats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:20px 0;display:grid}.seat-choice{min-height:56px;padding:8px;font-size:15px}.operation-options{gap:9px;display:grid}.operation-options .dialog-action{width:100%;min-height:54px}.operation-options .tile-small{--tile-width:25px;pointer-events:none}.dialog-back{min-height:32px;padding:0 3px;font-size:12px}.dialog-body details{margin-top:18px}.dialog-body details summary{cursor:pointer;padding:8px 0}.keypad-row .tile-count{pointer-events:none;font-variant-numeric:tabular-nums;background:#406952;border:1px solid #fffdf4;border-radius:4px;min-width:16px;padding:0 2px;font-size:11px;font-weight:650;line-height:16px;bottom:-3px;right:-2px}.keypad-row .tile:disabled{opacity:1;box-shadow:none}.keypad-row .tile:disabled svg{opacity:.4}.keypad-row .tile-exhausted .tile-count{color:#616c60;background:#e0e5dc;border-color:#fffdf4}.keypad-legend{color:#677b68;font-size:10px;line-height:1.6}.discard-shortcut{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;min-width:62px;margin-left:12px;display:flex}.discard-shortcut .tile{--tile-width:43px;-webkit-user-select:none;user-select:none;touch-action:manipulation}.discard-shortcut-hint{color:#52705b;white-space:nowrap;font-size:10px}.discard-shortcut .tap-armed{border-color:#a98a49;transform:none;box-shadow:0 0 0 3px #b99b57}@media (max-width:360px){.operation-bar{gap:7px}.operation-button{min-height:44px}.keypad-row .tile-count{min-width:14px;font-size:10px;line-height:14px}.keypad-legend{font-size:8px}}.app-header{padding-top:20px;padding-bottom:12px}.brand{letter-spacing:1px;gap:10px;font-size:20px}.brand img{width:32px;height:32px}.help-button{color:#698073;touch-action:manipulation;background:0 0;border:0;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;line-height:1;display:inline-flex}.help-button>span{border:1px solid #a3b3a7;border-radius:50%;justify-content:center;align-items:center;width:19px;height:19px;font:500 12px/1 system-ui,sans-serif;display:flex}.help-button:hover{color:#244f40}.help-button:hover>span{background:#edf3eb;border-color:#547b64}.heading-tools{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.page-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px;display:flex}.page-heading h1{letter-spacing:0;margin:0;font-size:25px;font-weight:600}.page-heading .help-button,.section-heading .help-button,.keypad-heading .help-button,.advice-label .help-button{margin:-10px -10px -10px 0}.section-heading{min-height:24px;margin-bottom:14px}.card .section-heading h2{margin:0}.keypad-heading{align-items:center;min-height:24px;margin-bottom:14px}.keypad-heading strong{font-size:14px;font-weight:600}.keypad-panel{box-shadow:none;border-color:#dfe7dc}.keypad-legend{color:#72816f;font-size:10px}.setup-layout{align-items:start;gap:42px;padding-top:34px}.setup-hand{background:#eaf0e7;border-style:solid;border-color:#dce5d8;border-radius:10px}.empty-hand{color:#8a9787;font-size:13px}.setup-note{justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:16px;display:flex}.setup-note button{min-height:36px;font-size:12px;text-decoration:none}.dealer-picker legend{font-size:13px}.demo-tag{color:#7d8068;background:0 0;border-color:#d9ded0}.game-toolbar .muted{font-variant-numeric:tabular-nums}.table-board{box-shadow:none}.table-status{margin:0;font-size:14px}.operation-button{border-color:#d9e3d7;font-size:18px;font-weight:600}.operation-button.win:not(:disabled){color:#985449;background:#fff;border-color:#d9e3d7}.operation-button.win:hover:not(:disabled){background:#f8efec}.advice-panel{background:#fff;border-color:#dde5d8 #dde5d8 #dde5d8 #819c80;border-left-style:solid;border-left-width:2px;border-radius:12px;padding:18px 20px}.advice-label{color:#54725b;justify-content:space-between;min-height:24px;font-size:12px}.advice-label .method-tag{color:#75816f;background:0 0;margin:0;padding:0;font-size:10px}.advice-main{gap:8px;margin:12px 0 4px}.advice-main h2{font-size:26px;font-weight:600}.advice-main p{color:#73806e;font-size:12px;line-height:1.7}.effective-tiles{margin:14px 0}.effective-tiles>span:first-child:not(.tile){font-size:11px}.alternatives{border-color:#edf0e8;margin-top:16px;padding-top:6px}.alternatives summary{min-height:36px;padding:7px 0;font-size:12px}.progress-heading{margin:12px 0 2px;font-size:18px;font-weight:550}.discard-shortcut .tile{--tile-width:43px}.discard-shortcut-hint{font-size:11px}.card{border-color:#dfe7dc}.number-grid{row-gap:18px}.number-field{min-height:42px;font-size:13px}.number-field input{background:#f8faf6;flex-shrink:0}.rule-preview{border-top:1px solid #edf0e8;margin-top:22px;padding-top:12px}.rule-preview summary{cursor:pointer;color:#58705c;padding:6px 0;font-size:13px}.rule-preview .rule-example{margin-top:12px}.rule-limits{color:#7b806e;justify-content:space-between;align-items:center;gap:12px;padding:0 6px;font-size:12px;display:flex}.form-actions{margin-top:20px}.result-panel .section-heading{margin-bottom:4px}.result-panel p{line-height:1.7}.dialog-heading .heading-tools{gap:2px}.dialog-heading .help-button{margin:0}.dialog-heading .icon-button{color:#849180;min-width:40px;height:40px;font-weight:400}dialog{box-shadow:0 20px 70px #193b3429}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#12352b55}.operation-context{margin-bottom:12px}.operation-seats{margin:12px 0 4px}.info-dialog{background:#fff;border-radius:18px;max-width:460px;padding:0}.info-dialog .dialog-heading{z-index:1;background:#fff;border-bottom:1px solid #edf1e9;gap:8px;margin:0;padding:16px 20px 12px;position:sticky;top:0}.info-dialog .dialog-heading h2{font-size:17px;font-weight:600}.info-body{color:#637464;padding:20px 24px 24px;font-size:14px;line-height:1.8}.info-body p{margin:0 0 16px}.info-body p:last-child{margin-bottom:0}.info-body strong{color:#355440;font-weight:600}.info-body .help-list{margin:0 0 18px;padding-left:20px}.info-body .help-list li{padding:0 0 10px;font-size:14px}.info-body details{border-top:1px solid #e4eade;margin-top:20px;padding-top:14px}.info-body summary{cursor:pointer;color:#365840;margin-bottom:14px}.help-definitions{margin:0}.help-definitions dt{color:#355440;font-weight:600}.help-definitions dd{margin:4px 0 20px}.help-definitions dd:last-child{margin-bottom:0}.info-status{color:#456a4e;border-top:1px solid #edf1e9;margin-bottom:10px;padding-top:16px;font-size:12px}@media (max-width:760px){.app-header{padding:10px 16px 6px}.app-header>.help-button{margin-right:-8px}.brand{font-size:19px}.brand img{width:30px;height:30px}.tabs{gap:28px}.tabs button{min-height:44px}.setup-layout{gap:26px;padding:25px 16px 24px}.page-heading{margin-bottom:22px}.page-heading h1{font-size:23px}.page-heading .heading-tools{gap:3px}.page-heading .muted,.game-toolbar .muted{font-size:11px}.game-toolbar .button{min-height:36px;font-size:11px}.my-hand-panel{padding-top:18px;padding-bottom:18px}.mini-scores,.mobile-table-summary small{font-size:11px}.advice-panel,.has-keypad .advice-panel{padding:15px 16px}.advice-main h2{font-size:24px}.advice-main p{font-size:11px}.has-keypad{padding-bottom:calc(clamp(164px,48vw,236px) + 110px + env(safe-area-inset-bottom))}.has-keypad .keypad-heading{margin-bottom:12px}.has-keypad .input-column{box-shadow:none;background:#f1f5f2}.has-keypad .keypad-panel{border-color:#dfe7dc;border-radius:12px;padding:12px 10px}.keypad-legend{font-size:9px}.info-dialog{width:calc(100vw - 20px);max-height:82dvh;margin:auto auto max(10px,env(safe-area-inset-bottom));border-radius:18px}.info-body{padding:18px 20px 24px}.document-page{padding-top:26px;padding-bottom:28px}}.project-about .about-star{color:#637566;margin:9px 0 0;font-size:12px}
