.tile-art[data-v-0eeb5142]{display:block;width:calc(100% - 5px);height:calc(100% - 5px);flex:none}.tile-wan-num[data-v-0eeb5142],.tile-wan-suit[data-v-0eeb5142]{font-family:"Noto Serif CJK SC","Noto Serif CJK TC",Songti SC,SimSun,serif;font-weight:900;line-height:.92}.tile-wan-num[data-v-0eeb5142]{letter-spacing:-2px}:root{font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#23332f;background:#f7f3ea;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #c77b36;outline-offset:3px}#app{min-height:100vh}.app-shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;align-self:flex-start;width:248px;min-width:248px;height:100vh;background:#153a36;color:#e7f0e9;padding:31px 17px 20px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:0 14px 40px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid #bcad7d;border-radius:9px;color:#e7cf99;font-family:serif;font-size:23px}.brand strong{display:block;font-family:serif;font-size:19px;letter-spacing:2px}.brand small{display:block;color:#9eb8b0;font-size:10px;letter-spacing:2px;margin-top:4px}.nav-caption{padding:0 14px 13px;color:#8eaaa3;font-size:12px;letter-spacing:2px}.nav-list{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;border:0;background:none;color:#b9cec7;text-align:left;padding:11px 13px;border-radius:9px;font-size:14px;width:100%}.nav-item:hover{background:#24534c;color:#fff}.nav-item.active{background:#2c665b;color:#fff;font-weight:700}.nav-icon{display:grid;place-items:center;width:24px;height:24px;border:1px solid #668e81;border-radius:5px;font-family:serif;font-size:14px}.sidebar-bottom{margin-top:auto;border-top:1px solid #366059;padding:19px 12px 0;color:#9eb8b0;font-size:12px}.offline-dot{display:inline-block;width:7px;height:7px;background:#a5cfa8;border-radius:50%;margin-right:6px}.main-shell{flex:1;min-width:0}.topbar{height:72px;border-bottom:1px solid #e8e1d6;background:#fffdf8;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,4vw,64px);color:#63716a;font-size:13px}.topbar-meta{border:1px solid #d9e6df;color:#44796e;padding:7px 12px;border-radius:20px}.menu-button{display:none;border:0;background:none;font-size:24px;color:#153a36}.page{max-width:1370px;margin:0 auto;padding:45px clamp(24px,4vw,64px) 80px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:31px}.eyebrow,.section-kicker{color:#a87936;font-weight:700;letter-spacing:2px;font-size:12px}.page h1{font-family:Songti SC,SimSun,serif;font-size:clamp(31px,3vw,44px);color:#183e38;letter-spacing:2px;margin:11px 0 9px}.page-heading p{color:#687771;font-size:15px;margin:0;line-height:1.7}.heading-seal{border:2px solid #b54842;color:#b54842;border-radius:4px;padding:7px 10px;font-family:serif;font-size:16px;line-height:1.2;transform:rotate(-7deg);opacity:.82}.rule-switch{display:flex;gap:10px;margin-bottom:25px}.rule-switch button{background:#fffdf8;border:1px solid #e2ded1;border-radius:12px;padding:13px 22px;color:#27443d;text-align:left;min-width:210px;box-shadow:0 2px 8px #173b3010}.rule-switch button.active{border-color:#27796e;background:#e8f1ea;box-shadow:inset 0 0 0 1px #27796e;font-weight:700}.rule-switch small{display:block;font-size:12px;color:#72827c;margin-top:4px;font-weight:400}.home-grid{display:grid;grid-template-columns:minmax(400px,1.55fr) minmax(290px,1fr);gap:22px}.feature-card{background:#fffdf8;border:1px solid #e5e0d4;border-radius:16px;box-shadow:0 10px 30px #2f45300b}.practice-card{padding:26px 30px 30px}.card-top{display:flex;align-items:start;justify-content:space-between}.feature-card h2{font-family:Songti SC,SimSun,serif;color:#1a4039;font-size:25px;margin:9px 0 0}.card-index{color:#89958b;font-size:12px}.practice-stage{height:270px;border-radius:11px;background:radial-gradient(circle at 50% 40%,#306e61,#18443c 75%);margin:24px 0 19px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:19px}.stage-caption{color:#e3ebe1;font-size:13px}.tile-face{width:62px;height:83px;border-radius:7px;border:2px solid #d0d0bb;background:linear-gradient(135deg,#fff,#f7f3e9);box-shadow:3px 5px #b2c3ad,5px 8px 12px #112d2360;display:inline-flex;align-items:center;justify-content:center;gap:2px;flex-direction:column;color:#215046;flex:none;transition:transform .15s,box-shadow .15s}.tile-face:not(:disabled):hover{transform:translateY(-5px)}.tile-face.selected{transform:translateY(-9px);border-color:#ad7e32}.tile-face:disabled{cursor:default}.tile-num{font-family:Georgia,serif;font-size:31px;line-height:1}.tile-suit{font-family:serif;font-weight:700;font-size:18px}.suit-m{color:#af3b36}.suit-p{color:#245f84}.suit-s{color:#247762}.tile-red{font-family:serif;font-size:44px;font-weight:700;color:#b54842}.tile-face.compact{width:42px;height:57px;border-width:1px;border-radius:5px;box-shadow:2px 3px #b2c3ad,2px 4px 7px #112d2330}.tile-face.compact .tile-num{font-size:21px}.tile-face.compact .tile-suit{font-size:12px}.tile-face.compact .tile-red{font-size:30px}.practice-stage .tile-face{width:88px;height:119px;box-shadow:5px 8px #b2c3ad,8px 14px 18px #0d211e75}.practice-stage .tile-num{font-size:47px}.practice-stage .tile-suit{font-size:26px}.practice-stage .tile-red{font-size:65px}.choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.choice-button{background:#fff;border:1px solid #d8dfd6;border-radius:9px;padding:12px 5px;color:#27443d;font-weight:600;min-height:45px}.choice-button:hover{border-color:#24776d;background:#f3f8f4}.choice-button.correct{border-color:#24776d;background:#dfefe6}.choice-button.wrong{border-color:#b54842;background:#fae8e4}.answer-feedback{display:flex;align-items:center;justify-content:space-between;color:#24776d;margin-top:17px}.answer-feedback button{background:none;border:0;color:#1f695f;font-weight:700;text-decoration:underline}.home-side{display:grid;grid-template-rows:auto auto;gap:18px}.plan-card{padding:28px}.plan-card h2{line-height:1.45;margin-bottom:20px}.plan-step{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid #ece9df}.plan-step>span{font-family:Georgia,serif;color:#b08c57;font-size:19px}.plan-step div{flex:1}.plan-step strong{display:block;color:#2a453d;font-size:14px}.plan-step small{display:block;color:#75847b;margin-top:3px}.plan-step b{font-size:11px;background:#e3f0e9;color:#24776d;border-radius:20px;padding:5px 9px}.primary-button{background:#24776d;border:0;border-radius:8px;color:#fff;padding:12px 20px;min-height:44px;font-weight:700;width:100%;margin-top:16px}.primary-button:hover{background:#1d6159}.note-card{display:flex;align-items:center;gap:15px;background:#e8eee9;border:1px solid #dae5dc;border-radius:14px;padding:21px}.note-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;background:#b54842;color:#fff;border-radius:50%;font-family:serif;font-size:23px}.note-card strong{font-size:14px;color:#2a463d}.note-card p{font-size:13px;color:#63766d;line-height:1.55;margin:5px 0 0}.menu-backdrop{display:none}@media(max-width:1000px){.sidebar{width:204px;min-width:204px}.page{padding-left:28px;padding-right:28px}.home-grid{grid-template-columns:1fr}.home-side{grid-template-columns:1fr 1fr}}@media(max-width:700px){.sidebar{position:fixed;left:0;transform:translate(-105%);transition:transform .2s;width:260px}.sidebar.open{transform:translate(0)}.menu-backdrop{display:block;position:fixed;inset:0;background:#071a17a6;z-index:20}.menu-button{display:block}.topbar{height:60px;padding:0 18px;gap:12px}.topbar-label{margin-right:auto}.topbar-meta{display:none}.page{padding:31px 16px 80px}.heading-seal{display:none}.page-heading{margin-bottom:23px}.rule-switch button{min-width:0;flex:1;padding:11px}.home-grid,.home-side{grid-template-columns:1fr}.practice-card{padding:21px}.choice-grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 22px}.segmented{display:inline-flex;gap:2px;border:1px solid #d6e1d8;background:#ecf1eb;padding:4px;border-radius:10px}.segmented button{border:0;background:transparent;color:#547168;padding:9px 15px;border-radius:7px;min-height:39px}.segmented button.active{background:#24776d;color:#fff;box-shadow:0 2px 6px #153a3622}.rule-label{font-size:13px;color:#698078}.category-tabs{display:flex;gap:10px;overflow-x:auto;padding-bottom:12px;margin-bottom:12px}.category-tabs button{background:#fffdf8;border:1px solid #e3e0d5;border-radius:11px;color:#31534b;text-align:left;padding:14px 17px;min-width:145px;white-space:nowrap}.category-tabs button.active{border-color:#24776d;background:#e8f2ec;box-shadow:inset 0 0 0 1px #24776d}.category-tabs strong,.category-tabs small{display:block}.category-tabs small{color:#7b8b82;margin-top:3px;font-size:12px}.compact-tabs button{min-width:120px;text-align:center}.training-layout,.lab-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.75fr);gap:20px}.training-card,.lab-editor,.analysis-panel,.side-panel,.detail-panel,.lesson-detail{padding:26px}.question-stage,.single-tile-stage{background:radial-gradient(circle at 50% 30%,#357367,#194b42 78%);border-radius:11px;margin:24px 0 15px;min-height:170px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;gap:16px}.single-tile-stage{min-height:215px}.single-tile-stage .tile-face{width:83px;height:113px}.single-tile-stage .tile-num{font-size:43px}.single-tile-stage .tile-suit{font-size:25px}.hand-row{display:flex;gap:3px;flex-wrap:wrap;align-items:center}.question-stage .hand-row{justify-content:center}.incoming-tile{display:flex;align-items:center;gap:12px;color:#edf8f0;font-size:13px}.answer-instruction{font-size:13px;color:#7b8a80;margin:12px 0}.answer-choices{display:flex;gap:8px;flex-wrap:wrap}.answer-choices button{border:1px solid #d9dfd5;background:#fff;color:#2e5148;border-radius:8px;padding:9px 15px;min-height:44px}.answer-choices button.selected{border-color:#24776d;background:#e4f1e8}.answer-choices button.correct{background:#d9eee1;border-color:#24776d}.answer-choices button.wrong{background:#fae4e2;border-color:#b54842}.training-actions,.lesson-footer{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:20px}.training-actions .primary-button,.lesson-footer .primary-button{width:auto;margin:0}.secondary-button{border:1px solid #bed0c6;color:#25685e;background:#fff;border-radius:8px;padding:10px 15px;min-height:44px}.secondary-button:hover{background:#ecf4ee}.result-panel{border:1px solid #c8e1d1;background:#edf6ef;color:#244d3f;border-radius:10px;padding:17px 20px;margin-top:20px;line-height:1.6}.result-panel p{margin:7px 0}.comparison{margin-top:15px}.comparison-row,.analysis-row{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #d1e6d6;padding:9px 0;font-size:13px}.comparison-row b,.analysis-row b{white-space:nowrap}.training-side{display:grid;align-content:start;gap:18px}.side-panel h2{font-size:20px}.hint-row{border-top:1px solid #e7ece5;padding:10px 0}.hint-row button,.inline-actions button,.text-button{border:0;background:none;color:#24776d;font-weight:700;padding:6px 0}.hint-row p{font-size:13px;color:#52665a;line-height:1.6;margin:6px 0 0}.side-panel p{line-height:1.65}.inline-actions{display:flex;gap:18px}.muted{color:#77857a;font-size:13px;line-height:1.6}.learn-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:19px}.lesson-list{border:1px solid #e5e0d4;background:#fffdf8;border-radius:14px;padding:17px;align-self:start}.list-caption{font-size:12px;color:#a87936;letter-spacing:2px;font-weight:700;padding:7px 10px 12px}.lesson-item{width:100%;display:flex;align-items:center;gap:11px;text-align:left;border:0;background:none;border-radius:8px;padding:11px 8px;color:#38594c}.lesson-item.active{background:#e4f0e7}.lesson-item.completed>.lesson-index{background:#24776d;color:#fff}.lesson-index{display:grid;place-items:center;width:30px;height:30px;flex:none;border:1px solid #cdded1;border-radius:50%;font-size:12px}.lesson-item strong,.lesson-item small{display:block}.lesson-item strong{font-size:14px}.lesson-item small{font-size:11px;color:#829184;margin-top:3px}.lesson-detail{min-height:550px}.lesson-overline{color:#a87936;font-size:12px;letter-spacing:2px}.lesson-detail h2{font-size:32px;margin:10px 0}.lesson-lead{font-size:17px;line-height:1.8;color:#52655b}.lesson-example{background:#e7f0e9;border-radius:10px;padding:17px 18px;margin:24px 0}.example-label{font-size:12px;color:#687e72;margin-bottom:13px}.lesson-detail h3,.analysis-panel h3{font-size:17px;color:#254a3e;margin:22px 0 12px}.lesson-points{padding-left:22px;line-height:1.9;color:#52685b}.lesson-check{background:#f8f2e6;border-left:3px solid #a87936;padding:17px 20px;margin-top:22px}.lesson-check p{margin:8px 0}.lesson-check strong{color:#315b49}.lab-hand{min-height:83px;align-content:center;margin:24px 0 4px;padding:10px;border-radius:8px;background:#e9f0e9}.tile-picker{margin-top:21px;border-top:1px solid #e4e6dd}.picker-suit{padding:14px 0;border-bottom:1px solid #e9eade}.picker-suit strong{display:block;font-size:13px;margin-bottom:10px;color:#587164}.picker-suit .hand-row{gap:6px}.lab-editor .tile-face.compact{margin-bottom:5px}.river-editor{padding:16px 0;border-top:1px solid #e5e9df}.river-tabs{display:flex;gap:5px;flex-wrap:wrap}.river-tabs button{border:1px solid #d6e2d8;background:#fff;border-radius:7px;padding:7px 12px}.river-tabs button.active{background:#24776d;color:#fff}.river-row{min-height:68px;margin:10px 0}.analysis-panel{align-self:start;position:sticky;top:20px}.analysis-panel>p{line-height:1.7;color:#60756a}.wait-list{display:flex;gap:12px;flex-wrap:wrap}.wait-list>div{display:grid;justify-items:center;gap:7px;font-size:12px;color:#617468}.decomposition{display:flex;gap:6px;flex-wrap:wrap}.decomposition span{background:#e8f2e9;border-radius:6px;padding:8px;font-size:12px}.decomposition em{display:block;color:#af4d42;font-style:normal}.error-text{color:#a53530;font-size:13px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.metric{padding:22px}.metric span,.metric strong,.metric small{display:block}.metric span{font-size:13px;color:#6a7c70}.metric strong{font-size:34px;color:#1a4a3e;margin:10px 0}.metric small{font-size:12px;color:#91a093}.progress-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.detail-panel h2{font-size:23px;margin-bottom:20px}.detail-panel h2 small{font:13px sans-serif;color:#8b9b8c}.bar-chart{height:185px;display:flex;align-items:flex-end;justify-content:space-around;gap:7px;border-bottom:1px solid #dfe7da;padding:0 5px 8px}.bar-column{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:25px;font-size:11px;color:#65796c}.bar-column div{width:21px;background:#24776d;border-radius:5px 5px 0 0}.bar-column small{font-size:11px}.skill-row{display:grid;grid-template-columns:110px 1fr 45px;align-items:center;gap:10px;padding:9px 0}.skill-row>div:first-child strong,.skill-row>div:first-child span{display:block}.skill-row strong{font-size:13px}.skill-row span{font-size:11px;color:#89998c}.skill-row b{font-size:12px;color:#24776d;text-align:right}.skill-track{height:8px;background:#e9eee7;border-radius:8px;overflow:hidden}.skill-track span{display:block;height:100%;background:#24776d}.error-tags{display:flex;gap:9px;flex-wrap:wrap}.error-tags span{background:#faeae5;color:#a1483d;padding:8px 12px;border-radius:30px;font-size:13px}.record-list{display:grid}.record-row{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #e8ece5;padding:15px 0}.record-row strong,.record-row small{display:block}.record-row strong{font-size:14px;color:#35574b}.record-row small{font-size:12px;color:#849387;margin-top:4px}.record-row button{border:1px solid #c9ded0;background:#f3f8f3;color:#24776d;border-radius:7px;padding:9px 12px;white-space:nowrap}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #e9ece4;padding:14px 0;font-size:14px}.setting-row select{border:1px solid #cfddd1;background:#fff;border-radius:6px;padding:7px}.switch{width:47px;height:28px;border:0;border-radius:20px;background:#bac6bb;padding:3px}.switch.on{background:#24776d}.switch span{display:block;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .2s}.switch.on span{transform:translate(19px)}.import-area{border-top:1px solid #e8eae3;margin-top:23px;padding-top:18px}.import-area label{display:block;margin-bottom:8px;font-weight:700}.import-area input{max-width:100%}.import-preview{background:#eff6ee;border-radius:9px;padding:16px;margin-top:17px;font-size:13px;line-height:1.7}.status-message{padding:12px 16px;background:#e9f2e9;color:#24776d;border-radius:8px;margin-top:20px}@media(max-width:1100px){.training-layout,.lab-layout{grid-template-columns:1fr}.training-side{grid-template-columns:1fr 1fr}.analysis-panel{position:static}.metric-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.learn-layout,.progress-grid,.settings-grid,.training-side{grid-template-columns:1fr}.lesson-list{display:flex;overflow-x:auto;gap:4px}.lesson-item{min-width:180px}.question-stage .tile-face.compact,.lab-hand .tile-face.compact{width:34px;height:47px}.question-stage .tile-face.compact .tile-num,.lab-hand .tile-face.compact .tile-num{font-size:18px}.question-stage .tile-face.compact .tile-suit,.lab-hand .tile-face.compact .tile-suit{font-size:10px}.question-stage .tile-face.compact .tile-red,.lab-hand .tile-face.compact .tile-red{font-size:25px}.training-card,.lab-editor,.analysis-panel,.detail-panel,.lesson-detail{padding:19px}.metric-grid{gap:9px}.metric{padding:16px}.metric strong{font-size:27px}.skill-row{grid-template-columns:85px 1fr 39px}.record-row{align-items:start}.record-row button{font-size:12px}}.game-start{padding:35px;max-width:790px}.game-start h2{font-size:30px;margin-bottom:25px}.start-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.start-controls label{font-size:13px;color:#597065}.start-controls select{display:block;width:100%;border:1px solid #cfddd3;border-radius:8px;background:#fff;padding:11px 9px;color:#23493e;margin-top:8px}.game-start .primary-button{max-width:190px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px}.table-topline{display:flex;justify-content:space-between;gap:12px;color:#527367;font-size:13px;margin:0 0 11px}.mahjong-table{background:radial-gradient(circle at 50% 40%,#367367,#16463e 76%);border:13px solid #6c5136;box-shadow:inset 0 0 0 4px #b49464,0 10px 25px #263c3025;border-radius:20px;min-height:610px;padding:17px;display:grid;grid-template-rows:135px 1fr 225px;color:#fff}.opponent-top{display:grid;justify-items:center;align-content:start;gap:9px}.seat-label{font-size:12px;color:#d3e8da;margin-bottom:6px}.tile-backs,.side-backs{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}.tile-backs span,.side-backs span{display:block;width:21px;height:31px;background:linear-gradient(#b7d5bc,#e8f1d9);border:2px solid #e3e5c9;border-radius:3px;box-shadow:1px 2px #739b7d}.table-middle{display:grid;grid-template-columns:1fr 1.3fr 1fr;align-items:center;gap:6px}.opponent-side{text-align:center}.side-backs span{width:16px;height:25px}.mini-river{display:flex;gap:3px;justify-content:center;flex-wrap:wrap;max-width:230px;margin:6px auto}.mini-river .tile-face.compact{width:24px;height:33px;box-shadow:none;border-radius:3px;pointer-events:none}.mini-river .tile-num{font-size:12px!important}.mini-river .tile-suit{font-size:7px!important}.mini-river .tile-red{font-size:17px!important}.table-center{display:grid;place-items:center;text-align:center;gap:10px;min-height:100px;border:1px solid #9ccbb142;background:#0c342b7a;border-radius:14px;padding:15px;font-size:13px}.center-seal{display:grid;place-items:center;border:2px solid #d7bf7b;width:48px;height:48px;border-radius:9px;color:#f1d9a6;font-family:serif;font-size:27px}.self-area{display:grid;align-content:end;justify-items:center}.self-river{min-height:43px;max-width:400px}.self-hand{justify-content:center;max-width:100%;margin-top:10px}.self-hand .tile-face.compact{width:37px;height:51px}.self-hand .tile-num{font-size:19px}.self-hand .tile-suit{font-size:11px}.meld-list{font-size:12px;color:#dce8da;margin-top:9px}.meld-list span{margin-right:7px}.action-bar,.end-actions,.replay-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#fffdf8;border:1px solid #e5e0d4;border-radius:11px;padding:13px;margin-top:13px}.action-bar button,.replay-controls button{border:1px solid #b9d0bd;border-radius:7px;background:#f1f7ef;color:#276659;padding:10px 15px;min-height:44px}.action-bar .primary-button,.end-actions .primary-button{width:auto;margin:0;background:#24776d;color:#fff}.action-bar .action-win{background:#b54842;color:#fff;border-color:#b54842}.action-bar span{font-size:13px;color:#6b7b6e}.end-actions strong{margin-right:auto}.replay-controls span{flex:1;font-size:13px;color:#3b5547}.table-tools{display:flex;justify-content:flex-end;margin-top:9px}.table-tools button{border:0;background:none;color:#7d7669;text-decoration:underline}.game-coach{display:grid;align-content:start;gap:16px}.event-list{max-height:250px;overflow:auto;font-size:12px;color:#68796b}.event-list div{padding:7px 0;border-top:1px solid #e9ece4}.event-list div.important{color:#b54842;font-weight:700}@media(max-width:1150px){.game-layout{grid-template-columns:1fr}.game-coach{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.mahjong-table{border-width:8px;min-height:560px;padding:10px;grid-template-rows:120px 1fr 210px}.table-middle{grid-template-columns:.7fr 1.2fr .7fr}.opponent-side .mini-river{display:none}.tile-backs span{width:16px;height:25px}.side-backs span{width:11px;height:19px}.self-hand .tile-face.compact{width:24px;height:36px}.self-hand .tile-num{font-size:14px}.self-hand .tile-suit{font-size:8px}.self-hand .tile-red{font-size:20px}.game-coach,.start-controls{grid-template-columns:1fr}.table-topline{font-size:11px}.game-start{padding:21px}.action-bar{position:sticky;bottom:0;z-index:10;border-radius:10px 10px 0 0;padding-bottom:max(13px,env(safe-area-inset-bottom))}}.duration-switch{display:flex;gap:5px;margin-bottom:15px}.duration-switch button{flex:1;border:1px solid #d9e3da;background:#fff;color:#477164;border-radius:7px;padding:7px}.duration-switch button.active{background:#24776d;color:#fff}.diagnosis-card{max-width:830px;padding:30px}.diagnosis-card h2{margin:26px 0}.diagnosis-card>.primary-button{width:auto;min-width:150px;margin-top:25px}.diagnosis-progress{display:flex;align-items:center;gap:15px;color:#7b8c7d;font-size:13px}.diagnosis-progress>div{height:8px;flex:1;border-radius:8px;background:#e7eee6;overflow:hidden}.diagnosis-progress i,.score-track i{display:block;height:100%;background:#24776d}.score-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.score-grid>div{padding:14px;border:1px solid #e1e8de;border-radius:9px}.score-grid span{color:#62766b;font-size:13px}.score-grid strong{float:right;color:#1d6156}.score-track{height:7px;background:#eaf0e8;border-radius:8px;clear:both;margin-top:18px}.diagnosis-recommend{border-top:1px solid #e3e9e1;margin-top:30px;padding-top:24px}.diagnosis-recommend p{color:#687970}.diagnosis-recommend .primary-button{width:auto}@media(max-width:700px){.diagnosis-card{padding:20px}.score-grid{grid-template-columns:1fr}.duration-switch{flex-wrap:wrap}}.preset-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.preset-actions .secondary-button{padding:8px 11px;min-height:39px}.input-label{display:block;color:#607368;font-size:13px;font-weight:700;margin:22px 0 8px}.detail-panel textarea{display:block;width:100%;border:1px solid #cbded0;border-radius:8px;padding:11px;color:#254b3f;background:#fff;line-height:1.6}.inspector-results{display:grid;gap:0;margin:18px 0}.inspector-results>div{display:grid;grid-template-columns:115px 1fr;gap:10px;border-top:1px solid #e4eae2;padding:10px 0;font-size:13px}.inspector-results strong{color:#556f60}.inspector-results span{word-break:break-word;color:#275e51}.seed-input{display:block;font-size:13px;color:#597065;margin-top:18px}.seed-input input{display:block;width:min(300px,100%);margin-top:8px;border:1px solid #cfddd3;border-radius:8px;background:#fff;padding:11px;color:#23493e}.custom-duration{display:flex;align-items:center;gap:3px;color:#547168;font-size:12px;white-space:nowrap}.custom-duration input{width:42px;border:1px solid #d9e3da;background:#fff;border-radius:6px;padding:5px;color:#23493e;text-align:center}.lesson-list .lesson-item{position:relative}.lesson-list .lesson-item:not(:last-child):after{content:"";position:absolute;left:31px;bottom:-8px;height:16px;border-left:2px solid #b7d1bd;z-index:1}@media(max-width:700px){.lesson-list .lesson-item:after{display:none}.custom-duration{flex-basis:100%;justify-content:center}}.install-button{border:1px solid #b8d0bf;border-radius:7px;background:#e8f2ec;color:#25695c;padding:7px 12px;font-size:12px;font-weight:700;white-space:nowrap}.scenario-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:18px}.scenario-fields label{display:grid;gap:5px;font-size:12px;color:#5d746a}.scenario-fields input,.scenario-fields select{min-width:0;width:100%;border:1px solid #d6e1d8;border-radius:7px;background:#fff;padding:8px;color:#254b3f}.saved-scenarios{margin-top:20px}.saved-scenarios>strong{display:block;margin-bottom:6px;color:#31584c}.saved-scenarios .record-row{padding:10px 0}.meld-editor{margin-top:19px;padding:15px;border:1px solid #e1e8df;border-radius:10px;background:#f8faf5}.meld-editor>strong{color:#31584c}.meld-editor .secondary-button{margin-top:10px}.meld-seat{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid #e1e8df;margin-top:12px;padding-top:9px;font-size:12px}.meld-seat button{border:1px solid #cbded0;border-radius:6px;background:#fff;color:#2c665b;padding:7px}.lesson-item.locked{opacity:.62}.lesson-item .skill-status{color:#a87936;font-weight:700}.lesson-footer .primary-button:disabled{opacity:.5;cursor:not-allowed}.replay-inspector{margin-top:20px;padding:22px}.replay-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.replay-inspector-head h2{margin:6px 0}.key-node-list{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid #e7ece5;margin:16px 0;padding-top:15px;font-size:13px}.key-node-list button{border:1px solid #d4e2d5;border-radius:7px;background:#f3f8f2;color:#35675c;padding:8px}.key-node-list button.active{background:#24776d;color:#fff}.replay-comparison{display:grid;grid-template-columns:1fr 1fr;gap:9px;border-top:1px solid #e7ece5;padding:14px 0;font-size:13px}.replay-comparison strong{color:#1d5e53}.replay-comparison span{color:#65796d}@media(max-width:700px){.replay-comparison{grid-template-columns:1fr}.replay-inspector-head{align-items:flex-start}}.favorite-filters{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.favorite-filters input,.favorite-filters select{border:1px solid #cfddd1;border-radius:7px;background:#fff;padding:10px;color:#254b3f;min-height:44px}.favorite-filters input{flex:1;min-width:170px}.favorite-filters select{min-width:120px}.record-row .inline-actions{display:flex;gap:7px;flex-wrap:wrap}.mahjong-table{grid-template-rows:minmax(148px,max-content) minmax(260px,1fr) max-content;gap:8px;min-height:655px}.seat-head{display:flex;align-items:center;justify-content:center;gap:7px;width:max-content;max-width:100%;margin:0 auto 7px;padding:5px 9px;border:1px solid #b7d6b260;border-radius:22px;background:#0e393480;text-align:left}.seat-head strong,.seat-head small{display:block;white-space:nowrap}.seat-head strong{color:#f8f1d7;font-size:12px}.seat-head small{color:#c7e0d1;font-size:10px;margin-top:2px}.seat-avatar{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:50%;background:#e7d19d;color:#25483f;font-family:Songti SC,SimSun,serif;font-weight:900;font-size:15px}.self-seat-head .seat-avatar{background:#b54d42;color:#fff8e8}.mahjong-table .tile-backs span,.mahjong-table .side-backs span{position:relative;border-color:#d3b978;background:linear-gradient(145deg,#3c826d,#184a40 68%);box-shadow:inset 0 0 0 2px #7ead86,1px 2px #0c2e27}.mahjong-table .tile-backs span:after,.mahjong-table .side-backs span:after{content:"◆";position:absolute;inset:0;display:grid;place-items:center;color:#e6cf94;font-size:11px;line-height:1}.mahjong-table .side-backs span:after{font-size:7px}.table-middle{grid-template-columns:minmax(0,1fr) minmax(155px,1.2fr) minmax(0,1fr)}.opponent-side{display:grid;grid-template-columns:25px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;align-items:center;justify-content:center;gap:4px;min-width:0}.opponent-side .seat-head{grid-column:1/-1}.opponent-side .side-backs{grid-row:2;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;gap:1px;width:25px}.opponent-side .side-backs span{width:23px;height:16px}.opponent-side .mini-river{grid-row:2;display:flex;align-content:center;width:100%;max-width:94px;max-height:230px;overflow-y:auto;margin:0 auto}.opponent-side .mini-river .tile-face.compact{width:27px;height:37px}.opponent-left .side-backs{grid-column:1}.opponent-left .mini-river,.opponent-right .side-backs{grid-column:2}.opponent-right .mini-river{grid-column:1}.opponent-right{grid-template-columns:minmax(0,1fr) 25px}.opponent-melds{grid-column:1/-1;color:#dce8da;font-size:11px;line-height:1.4;text-align:center}.opponent-melds span{display:inline-block;margin:2px 2px 0;padding:2px 4px;border-radius:4px;background:#0a302a9c}.opponent-top .mini-river .tile-face.compact{width:34px;height:46px}.mini-river .tile-face.compact .tile-art{width:calc(100% - 2px);height:calc(100% - 2px)}.mini-river .tile-face.compact .tile-num{font-size:15px!important}.mini-river .tile-face.compact .tile-suit{font-size:10px!important}.mini-river .tile-face.compact .tile-red{font-size:21px!important}.table-center{min-width:0;padding:11px}.table-center-overline{color:#e4d5ad;font-size:11px}.self-area{width:100%;min-width:0;align-content:end;gap:3px}.self-river{min-height:44px}.self-river .tile-face.compact{width:30px;height:41px}.self-hand{width:100%;max-width:100%;flex-wrap:nowrap;justify-content:flex-start;gap:2px;overflow-x:auto;overflow-y:hidden;padding:19px 8px 14px;scroll-padding-inline:8px;scrollbar-width:thin;touch-action:pan-x}.self-hand .tile-face.compact{flex:none;width:50px;height:68px}.self-hand .tile-face.compact .tile-num{font-size:27px}.self-hand .tile-face.compact .tile-suit{font-size:17px}.self-hand .tile-face.compact .tile-red{font-size:38px}.self-hand .tile-face.selected{transform:translateY(-12px);border:2px solid #e7b651;box-shadow:2px 3px #b2c3ad,0 0 0 3px #ffe0a566,0 8px 17px #081d1b9c;position:relative;z-index:2}.self-hand .tile-face.selected:hover{transform:translateY(-12px)}.turn-playback-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 14px;background:#eaf1e7;border:1px solid #cfdfcf;border-radius:9px;color:#245a4e;font-size:13px}.turn-playback-bar button{border:0;background:transparent;color:#1b6658;font-weight:700}@media(min-width:1151px){.game-page{padding-top:22px}.game-page .page-heading{margin-bottom:16px}.game-page .page-heading h1{margin:6px 0 4px;font-size:35px}.mahjong-table{min-height:570px;grid-template-rows:minmax(110px,max-content) minmax(215px,1fr) max-content;padding:12px;border-width:10px}.opponent-side .side-backs span{height:12px}.self-river{min-height:24px}.game-coach{position:sticky;top:88px;gap:12px}.game-coach .side-panel{padding:20px}}@media(min-width:701px){.self-hand{justify-content:center}}@media(max-width:700px){.mahjong-table{min-height:690px;grid-template-rows:minmax(116px,max-content) minmax(255px,1fr) max-content;gap:5px;padding:8px}.table-middle{grid-template-columns:minmax(68px,1fr) minmax(112px,1.3fr) minmax(68px,1fr);gap:2px}.seat-head{gap:3px;padding:4px}.seat-head strong{font-size:10px}.seat-head small{font-size:8px}.seat-avatar{width:22px;height:22px;font-size:12px}.opponent-side{grid-template-columns:18px minmax(0,1fr);gap:2px}.opponent-right{grid-template-columns:minmax(0,1fr) 18px}.opponent-side .side-backs{width:18px;gap:1px}.opponent-side .side-backs span{width:17px;height:13px}.opponent-side .mini-river{display:flex;max-width:58px;max-height:222px;gap:2px}.opponent-side .mini-river .tile-face.compact{width:27px;height:37px}.opponent-side .opponent-melds{font-size:10px}.table-center{padding:5px;font-size:11px}.table-center-overline{font-size:9px}.center-seal{width:38px;height:38px;font-size:21px}.self-area{align-content:end}.self-seat-head{margin-bottom:3px}.self-hand{gap:4px;padding:20px 6px 15px;overscroll-behavior-inline:contain}.self-hand .tile-face.compact{width:50px;height:68px}.self-hand .tile-face.compact .tile-num{font-size:30px}.self-hand .tile-face.compact .tile-suit{font-size:19px}.self-hand .tile-face.compact .tile-red{font-size:41px}}@media(min-width:380px)and (max-width:700px){.opponent-side .mini-river{max-width:64px}.opponent-side .mini-river .tile-face.compact{width:30px;height:42px}}
