@charset "UTF-8";
:root{--ink:#263f34;--paper:#f7edcf;--gold:#d6ab56;--jade:#286b5a;--red:#a54432;--shadow:0 7px 18px #17352944;--serif:"Songti SC","STSong","Noto Serif CJK SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#172b24;font-family:var(--sans);-webkit-tap-highlight-color:transparent}body{color:var(--ink)}#GameDiv{position:fixed!important;inset:0!important;margin:auto!important;max-width:560px;width:100%!important;height:100%!important;transform:none!important}#Cocos2dGameContainer{width:100%!important;height:100%!important}#GameCanvas{width:100%!important;height:100%!important}#splash{background-color:#253d31!important}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.42;filter:saturate(.5)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #fcdb79;outline-offset:3px}button{border:0}#jiajiale-app{position:fixed;inset:0;margin:auto;width:min(100%,560px);height:100%;height:100dvh;display:flex;flex-direction:column;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#fcf5d513,transparent 32%,#173f2710);font-size:14px}#jiajiale-app h1,#jiajiale-app h2,#jiajiale-app h3,#jiajiale-app p{margin:0}.topbar{height:68px;min-height:68px;padding:14px 20px 8px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(#eff2d3cc,#e9efcf55,transparent);z-index:2}.brand{font:900 25px var(--serif);letter-spacing:3px;text-shadow:0 1px 0 #fff8}.brand small{font:10px var(--sans);letter-spacing:2px;display:block;margin-top:1px;color:#536b50}.top-actions{display:flex;gap:6px;align-items:center}.round-btn{width:36px;height:36px;border-radius:50%;border:1px solid #94773d;background:linear-gradient(135deg,#fff7d7,#cfc797);box-shadow:inset 0 0 0 2px #fffcdd80,0 2px 4px #293e3026;color:#365743;font-size:17px}.connection{font-size:10px;color:#2a5a3b;display:flex;gap:4px;align-items:center}.connection:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#419458}.connection.offline:before{background:#c26538}.page{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 20px 14px;position:relative;overflow-y:auto;scrollbar-width:thin}.ornament{font:14px var(--serif);letter-spacing:6px;color:#466849;text-align:center}.lobby-hero{text-align:center;flex:1;min-height:155px;max-height:260px;display:flex;justify-content:center;flex-direction:column;padding:12px 0 24px}.lobby-hero h1{font:900 clamp(45px,11vw,70px) var(--serif);letter-spacing:9px;color:#244b3b;text-shadow:1px 2px 0 #f8efc0,0 8px 12px #477d4833}.lobby-hero h1 em{font-style:normal;color:#a3462f;letter-spacing:0}.lobby-hero p{font-family:var(--serif);letter-spacing:4px;color:#425c40;margin-top:10px!important;font-size:14px}.seal{display:inline-flex;border:1px solid #ac5135;color:#994932;background:#faf1c977;padding:4px 8px;font-family:var(--serif);font-size:11px;letter-spacing:2px;align-self:center;margin-top:18px;transform:rotate(-3deg)}.paper{background:linear-gradient(135deg,#fff7dff5,#e7d9aef7);border:1px solid #b29456;border-radius:8px;box-shadow:inset 0 0 0 3px #fffae660,inset 0 0 0 5px #96744130,var(--shadow);padding:18px}.lobby-controls{padding:18px 18px 20px;position:relative}.panel-heading{display:flex;align-items:center;gap:10px;font:800 19px var(--serif);letter-spacing:2px;margin-bottom:14px!important}.panel-heading:before,.panel-heading:after{content:"";height:1px;background:#ad976070;flex:1}.profile-row{display:flex;gap:12px;align-items:center;margin-bottom:16px}.avatar{flex-shrink:0;width:45px;height:45px;border-radius:50%;border:2px solid #b79447;background:radial-gradient(circle at 32% 28%,#f9f0cf,#719d7c 90%);box-shadow:inset 0 0 0 3px #fbf2ce88,0 2px 6px #112c3233;display:flex;align-items:center;justify-content:center;font:900 23px var(--serif);color:#295643}.profile-row label{display:block;font-size:10px;letter-spacing:2px;color:#73816a;margin-bottom:3px}.profile-row input{min-width:0;width:100%;border:0;border-bottom:1px solid #a5935e;background:transparent;padding:6px 0;color:var(--ink);font-size:16px}.profile-row>div:last-child{flex:1}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.mode-card{position:relative;background:#eff0d866;border:1px solid #aaae8755;border-radius:6px;min-height:78px;padding:12px 4px;color:#5b6b55;box-shadow:inset 0 0 12px #cdc49933}.mode-card.active{border:2px solid #38745c;background:linear-gradient(#e6eed3,#b4c8a1);box-shadow:0 3px 0 #40644650,inset 0 0 0 2px #fff6c580;color:#275c43}.mode-card strong{display:block;font:900 19px var(--serif);letter-spacing:2px}.mode-card span{display:block;font-size:11px;margin-top:5px}.mode-card.active:after{content:"✓";position:absolute;top:4px;right:7px;font-size:12px}.gold-btn,.jade-btn,.plain-btn{min-height:46px;border-radius:7px;padding:10px 16px;font-weight:800;letter-spacing:1px;font-family:var(--serif);font-size:17px;transition:filter .15s,transform .15s}.gold-btn{background:#d9b253 url('/ui/assets/gold-button.png') center/100% 100% no-repeat;color:#65451b;text-shadow:0 1px #fff2bd;box-shadow:0 3px 0 #8d632a70}.jade-btn{background:linear-gradient(#60a78d,#2d7764);color:#f5efc8;border:1px solid #e4c77b;box-shadow:inset 0 0 0 2px #c3d19750,0 3px 0 #1a534a88;text-shadow:0 1px 2px #17493f}.plain-btn{background:#f1e5be;color:#50634b;border:1px solid #a59b6e;box-shadow:inset 0 0 0 2px #fff6dd90;font-size:14px}.gold-btn:hover:not(:disabled),.jade-btn:hover:not(:disabled){filter:brightness(1.08)}.gold-btn:active:not(:disabled),.jade-btn:active:not(:disabled){transform:translateY(2px)}.wide{width:100%}.big{min-height:56px;font-size:24px;letter-spacing:4px}.button-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.lobby-note{text-align:center;font-size:11px;color:#e6ecd0;text-shadow:0 1px 3px #1b3b33;margin:14px 0 4px!important;letter-spacing:1px}.bottom-mark{text-align:center;font:12px var(--serif);letter-spacing:5px;color:#efe3b9;opacity:.8;margin-top:auto;padding-top:15px}.busy-page{justify-content:center;gap:24px;text-align:center}.match-rings{width:150px;height:150px;border:1px solid #ead58c;border-radius:50%;margin:0 auto;box-shadow:0 0 0 14px #d7e1b41a,0 0 0 15px #e4d49e66,0 0 0 30px #d7e1b415;display:grid;place-items:center;animation:breathe 2s ease-in-out infinite}.match-rings span{font:900 62px var(--serif);color:#f8ecc3;text-shadow:0 3px 6px #1d4a36}.busy-page h2{font:900 27px var(--serif);color:#fff1c9;letter-spacing:4px;text-shadow:0 2px 4px #28573b}.busy-page p{color:#dce6c7;font-size:13px;line-height:1.8}.waiting{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0}.waiting i{height:16px;width:16px;border:1px solid #efdfa5;border-radius:50%;background:#a6ba8266}.waiting i.filled{background:#f7d880;box-shadow:0 0 14px #f7d88066}.room-title{text-align:center;padding:14px 0 18px}.room-title h2{font:900 27px var(--serif);letter-spacing:5px}.room-code{display:inline-flex;align-items:center;gap:12px;background:#f7eccbcc;border:1px solid #ab9455;margin-top:10px;padding:8px 16px;border-radius:4px}.room-code b{font-size:24px;letter-spacing:5px}.room-code span{font-size:10px}.link-btn{background:none;color:#2b624b;font-size:12px;text-decoration:underline;text-underline-offset:3px;padding:6px}.room-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.room-seat{min-height:115px;padding:12px 8px;background:linear-gradient(#f7efd1ee,#e0dfb7ef);border:1px solid #b79d61;border-radius:7px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;box-shadow:var(--shadow)}.room-seat .avatar{width:48px;height:48px}.room-seat strong{font-size:13px}.room-seat small{font-size:10px;color:#6a7358}.ready-tag{font-size:11px;background:#d0e1b9;padding:3px 10px;color:#245d42;border-radius:10px}.ready-tag.empty{background:#dfd9bc;color:#8b7d58}.team-label{grid-column:1/-1;font:800 14px var(--serif);letter-spacing:3px;color:#f9edc6;text-shadow:0 1px 4px #1f4d3c;text-align:center}.room-actions{margin-top:auto;padding-top:20px}.room-hint{text-align:center;color:#eff1d4;font-size:11px;margin:12px 0!important;text-shadow:0 1px 3px #1b4234}.battle-page{padding:0 14px 8px;overflow:hidden}.battle-top{display:flex;align-items:center;justify-content:space-between;margin:0 4px 8px;padding:6px 8px;color:#374b38;font-size:11px;border-top:1px solid #74794a44}.score{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:700}.score b{font-size:21px;letter-spacing:4px}.opponents,.allies{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex-shrink:0}.fighter{position:relative;display:flex;align-items:center;gap:8px;background:linear-gradient(110deg,#f5eaccf2,#dae0bcd9);border:1px solid #b49c67;border-radius:7px;padding:8px 7px;min-height:76px;box-shadow:0 3px 6px #183c3433;text-align:left;color:var(--ink)}button.fighter{width:100%}.fighter .avatar{width:37px;height:37px;font-size:21px}.fighter-info{min-width:0;flex:1}.fighter-name{font-weight:700;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.fighter-name small{font-size:9px;color:#707453;font-weight:400}.fighter-stats{font-size:9px;color:#666f51;margin-top:3px}.hp{font-size:14px;letter-spacing:2px;color:#b34d37;line-height:1.3}.hp .lost{color:#b9b18c}.hp .shield{font-size:10px;color:#386e83;letter-spacing:0}.fighter.turn{border:2px solid #e7c35e;box-shadow:0 0 0 2px #ffe19755,0 0 18px #eed06455}.fighter.targeted{outline:2px solid #d98b52;outline-offset:2px}.fighter.down{filter:saturate(.35);opacity:.72}.fighter .turn-label{position:absolute;right:4px;top:-9px;background:#e9c976;color:#5a481e;font-size:9px;padding:2px 6px;border-radius:6px}.fighter.equipment-on:after{content:"J";font:bold 10px Georgia;position:absolute;left:35px;bottom:5px;border:1px solid #a18b46;border-radius:3px;background:#ebe2b0;width:14px;text-align:center}.arena{position:relative;flex:1;min-height:96px;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:8px 0;color:#f7efce}.arena:before{content:"";position:absolute;width:150px;height:150px;border:1px solid #e4dba81e;border-radius:50%;box-shadow:0 0 0 15px #e2dda708;z-index:-1}.turn-banner{font:800 18px var(--serif);letter-spacing:2px;color:#fff3c9;text-shadow:0 2px 3px #194532;margin-bottom:8px;text-align:center}.turn-banner em{font-style:normal;color:#ffda73}.arena-subtitle{font-size:11px;color:#e1e9c6;text-shadow:0 1px 2px #1e4936;text-align:center;line-height:1.5}.played-row{display:flex;gap:5px;margin:8px 0;align-items:center;justify-content:center}.mini-card{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(120deg,#fff9e5,#e0d4a8);border:1px solid #ceb880;color:#29463e;border-radius:4px;width:36px;height:50px;box-shadow:0 3px 5px #15372a55;font:900 18px Georgia}.mini-card.red{color:#aa3e30}.mini-card small{font-size:16px;line-height:1.15}.attack-ribbon{font-size:11px;padding:5px 12px;background:#ecd388dd;color:#5f4922;border:1px solid #efdca3;border-radius:14px}.battle-log{height:27px;min-height:27px;text-align:center;overflow:hidden;font-size:10px;color:#e2e7c9;line-height:27px;text-shadow:0 1px 2px #19432e;margin:4px 0}.allies .fighter{min-height:66px;background:linear-gradient(110deg,#f1e8cbed,#dce5bbdf)}.hand-dock{flex-shrink:0;position:relative;margin:6px -4px 0;padding-top:0}.hand-meta{display:flex;align-items:center;justify-content:space-between;height:26px;font-size:11px;color:#f9e8bc;text-shadow:0 1px 2px #374b2a}.hand-meta strong{font-size:11px;letter-spacing:1px}.hand-meta .link-btn{color:#fff0bc;padding:2px;font-size:10px}.hand{height:111px;display:flex;justify-content:center;align-items:flex-end;gap:4px;padding:14px 3px 5px;position:relative}.playing-card{position:relative;flex:0 1 58px;min-width:0;max-width:62px;height:85px;padding:5px;border-radius:6px;border:1px solid #bfa263;background:linear-gradient(125deg,#fffcee,#e9dfbb);color:#29483e;box-shadow:0 3px 0 #b29865,0 5px 8px #102e304a;text-align:left;transition:transform .15s,box-shadow .15s;user-select:none;font:800 23px Georgia}.playing-card:before{content:"";position:absolute;inset:3px;border:1px solid #bba46766;border-radius:3px;pointer-events:none}.playing-card.red{color:#b24633}.playing-card .suit{display:block;font-size:21px;margin-top:-1px}.playing-card .center-suit{position:absolute;bottom:7px;right:7px;font-size:23px;color:currentColor;opacity:.6}.playing-card .special-title{font:11px var(--serif);position:absolute;left:0;right:0;bottom:7px;text-align:center}.playing-card.selected{transform:translateY(-12px);box-shadow:0 0 0 2px #f1c657,0 6px 12px #15362655;background:linear-gradient(125deg,#fffadc,#f1d898)}.playing-card.selected:after{content:"✓";position:absolute;right:3px;top:4px;background:#38674c;color:#fff5c9;width:14px;height:14px;border-radius:50%;font:10px var(--sans);text-align:center;line-height:14px}.playing-card:disabled{opacity:.82;filter:none}.selection-info{text-align:center;min-height:26px;height:26px;line-height:24px;white-space:nowrap;font-size:11px;color:#fff2c3;text-shadow:0 1px 2px #523b23}.selection-info.error{color:#ffcf9b}.actions{display:flex;gap:8px;justify-content:center;align-items:center;min-height:49px;margin-top:1px}.actions button{min-height:43px;font-size:15px;padding:8px 12px;flex:1}.actions .secondary{max-width:82px}.actions .main-action{flex:1.5}.actions .tiny{font-size:12px;padding:5px}.battle-footer{height:24px;font-size:10px;color:#eedeb4;display:flex;justify-content:space-between;align-items:center;letter-spacing:1px}.battle-footer .link-btn{color:#efe1b8;font-size:10px;text-decoration:none;padding:3px}.countdown{display:inline-flex;align-items:center;justify-content:center;min-width:25px;padding:2px 5px;font-size:11px;border:1px solid #e2c97670;border-radius:10px;line-height:14px;color:#fbebba}.countdown.urgent{color:#ffbc91;border-color:#da7652}.overlay{position:absolute;inset:0;z-index:20;background:#112b23b8;display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(3px)}.dialog{max-width:440px;width:100%;max-height:92%;overflow-y:auto;padding:24px 20px;position:relative}.dialog h2{text-align:center;font:900 25px var(--serif);letter-spacing:3px;margin-bottom:14px!important}.dialog h3{font:800 16px var(--serif);margin:16px 0 6px!important}.dialog p{font-size:13px;line-height:1.8}.dialog .close-dialog{position:absolute;right:9px;top:8px;background:none;color:#88663f;font-size:23px;width:32px;height:32px}.dialog input,.dialog select{width:100%;padding:13px 12px;margin:14px 0;background:#fff6dc;border:1px solid #b5a069;border-radius:5px;color:#334a37}.dialog input.room-input{text-align:center;letter-spacing:7px;font-size:28px;text-transform:uppercase}.dialog .helper{text-align:center;font-size:11px;color:#7e795d;margin-top:10px!important}.rules-list{padding-left:18px;margin:8px 0;font-size:12px;line-height:1.8}.rules-list li{margin:6px 0}.toast{position:absolute;z-index:50;top:80px;left:20px;right:20px;background:#423822ed;border:1px solid #f0d787;color:#fff0bf;border-radius:6px;padding:10px 14px;text-align:center;font-size:12px;box-shadow:var(--shadow);pointer-events:none}.connection-banner{position:absolute;top:67px;left:0;right:0;z-index:35;background:#8a4f26ed;color:#fff3c5;padding:8px;text-align:center;font-size:12px}.stage-content{display:flex;flex-direction:column;gap:15px;flex:1;justify-content:center;padding:15px 0}.stage-title{text-align:center;font:900 28px var(--serif);letter-spacing:5px;color:#fff0be;text-shadow:0 2px 4px #264d3a}.stage-subtitle{text-align:center;color:#e7efca;font-size:12px;line-height:1.7}.result-score{font:900 52px var(--serif);text-align:center;letter-spacing:13px;color:#84602a}.result-teams{display:flex;justify-content:space-around;font-size:12px;margin-bottom:12px}.result-summary{text-align:center;font-size:12px;color:#697355;line-height:1.8;margin:10px 0!important}.result-history{display:flex;justify-content:center;gap:8px;margin:18px 0}.result-medal{width:37px;height:37px;display:grid;place-items:center;border:1px solid #b49757;border-radius:50%;background:#dcc591;color:#72552c;font:14px var(--serif)}.result-medal.won{background:#496e53;color:#ffebae}.choice-grid{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.choice-option{padding:15px 8px;min-height:85px;border:1px solid #ae985f;border-radius:5px;background:#f9efd0;color:var(--ink);text-align:center;box-shadow:inset 0 0 0 3px #dfd4a677}.choice-option strong{display:block;font:800 18px var(--serif)}.choice-option span{display:block;font-size:11px;line-height:1.5;margin-top:6px;color:#6b7155}.choice-option.selected{border:2px solid #326953;background:#dbe4ba}.reward-grid{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;padding:18px 2px}.reward-grid .playing-card{flex:none;width:68px;max-width:none;height:100px}.reward-description{min-height:43px;text-align:center;line-height:1.5;font-size:12px}.shop-row{display:flex;gap:10px;align-items:center;justify-content:space-between;border-bottom:1px solid #baa56c66;padding:12px 0}.shop-row strong{font:800 15px var(--serif)}.shop-row small{display:block;font-size:10px;color:#788063;margin-top:4px}.shop-row button{min-height:33px;padding:5px 10px;font-size:12px}.selected-card-detail{text-align:center;padding:12px;font-size:12px;line-height:1.7;background:#dfe4bf88;border:1px solid #a4af7c55;border-radius:5px}.spinner{display:inline-block;width:13px;height:13px;border:2px solid #eee2aa55;border-top-color:#e6cc6d;border-radius:50%;animation:spin 1s linear infinite;vertical-align:middle}.quiet-text{font-size:11px;color:#738265}.divider{height:1px;background:#b5a97555;margin:12px 0}.inline-input{display:flex;gap:10px;align-items:center}.inline-input input{flex:1;min-width:0}.error-page{text-align:center;gap:20px;justify-content:center;color:#f0e7be}.boot-status{position:absolute;inset:0;display:grid;place-content:center;color:#fff0bd;text-align:center;background:#305946}.boot-status h2{font:900 40px var(--serif);letter-spacing:7px}.boot-status p{margin:16px 0!important;font-size:13px}.chip{display:inline-block;font-size:10px;padding:3px 8px;background:#dee4bf;border:1px solid #aebd89;border-radius:10px;color:#466347}.equip-row{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:8px}.stat-row{display:flex;justify-content:space-between;padding:7px 0;font-size:12px;border-bottom:1px solid #bba66c55}.small-btn{font-size:12px!important;min-height:36px!important}.muted{opacity:.7}.battle-title{font:800 13px var(--serif);letter-spacing:2px}.notify-dot{position:absolute;right:6px;top:4px;color:#c35937}.no-hand{color:#e4dab0;font-size:12px;align-self:center}.red-text{color:#a24434}.hero-card-row{display:flex;justify-content:center;gap:8px;margin:15px 0}.hero-card-row .mini-card{width:42px;height:58px;transform:rotate(-9deg)}.hero-card-row .mini-card:nth-child(2){transform:translateY(-6px)}.hero-card-row .mini-card:nth-child(3){transform:rotate(9deg)}
@keyframes breathe{50%{box-shadow:0 0 0 16px #d7e1b421,0 0 0 17px #e4d49e55,0 0 0 34px #d7e1b409}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}}.toast{animation:toastIn .18s ease-out}.played-row{animation:toastIn .25s ease-out}@media(max-height:740px){.topbar{height:57px;min-height:57px;padding:8px 16px}.page{padding-left:16px;padding-right:16px}.lobby-hero{min-height:128px;padding:8px 0 16px}.lobby-hero h1{font-size:49px}.lobby-hero .seal{margin-top:10px}.lobby-controls{padding:14px}.mode-card{min-height:68px;padding:9px 3px}.lobby-note{margin-top:9px!important}.bottom-mark{padding-top:7px}.battle-top{margin-bottom:5px;padding:3px 5px}.fighter{min-height:65px;padding:5px}.fighter .avatar{width:32px;height:32px;font-size:18px}.allies .fighter{min-height:59px}.arena{margin:4px 0;min-height:79px}.turn-banner{font-size:16px;margin-bottom:4px}.played-row{margin:5px 0}.mini-card{height:44px;width:31px;font-size:16px}.battle-log{height:20px;min-height:20px;line-height:20px;margin:2px 0}.hand{height:98px}.playing-card{height:75px;font-size:21px}.playing-card .center-suit{font-size:20px}.actions{min-height:43px}.actions button{min-height:40px}.hand-meta{height:21px}.battle-footer{height:20px}.room-seat{min-height:96px}.room-seat .avatar{width:36px;height:36px}.room-title{padding:8px 0 12px}.room-grid{gap:8px}.room-actions{padding-top:12px}.stage-content{gap:10px}.brand{font-size:22px}.connection-banner{top:57px}}@media(max-width:360px){.page{padding-left:11px;padding-right:11px}.topbar{padding-left:12px;padding-right:12px}.hand{gap:2px}.playing-card{padding:4px;font-size:19px}.playing-card .center-suit{font-size:17px;right:5px}.fighter{gap:4px}.fighter-name{font-size:11px}.fighter .avatar{width:30px;height:30px}.fighter-stats{font-size:8px}.opponents,.allies{gap:8px}.actions{gap:5px}.actions button{font-size:13px;padding:7px 7px}.selection-info{font-size:10px}.lobby-hero h1{font-size:46px}}@media(min-width:700px){#jiajiale-app,#GameDiv{border-left:1px solid #9fa87977;border-right:1px solid #9fa87977;box-shadow:0 0 80px #07150dcc}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Midnight Kitchen: the Cocos scene paints the set; UI keeps actions legible. */
:root{--ink:#f7edd4;--paper:#fff6df;--gold:#e8b85d;--jade:#426779;--red:#ed8a70;--shadow:0 9px 24px #080c1a70;--serif:"Avenir Next","PingFang SC","Microsoft YaHei",sans-serif;--sans:"Avenir Next",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
html,body{background:#0c1120;color:var(--ink)}
#GameDiv{max-width:1100px;height:100dvh!important;border:0;box-shadow:0 0 100px #0009}
#jiajiale-app{width:min(100%,1100px);height:100dvh;background:linear-gradient(180deg,#0c142066,transparent 32%,#0c102022);color:var(--ink);border:0;box-shadow:0 0 80px #0005}
#Cocos2dGameContainer,#GameCanvas{width:100%!important;height:100%!important}
.topbar{height:64px;min-height:64px;padding:10px 26px;background:linear-gradient(#101b2ef2,#172034bd);border-bottom:1px solid #bda26d4d;box-shadow:0 4px 15px #070a1429}
.brand{color:#ffe3a1;font-weight:950;letter-spacing:2px;text-shadow:0 2px 0 #694826,0 4px 8px #0006}
.brand small{color:#c2c9d1;font-size:10px;letter-spacing:1px;font-weight:500;margin-top:4px;text-shadow:none}
.round-btn{color:#ffdf9b;background:linear-gradient(#334050,#20293c);border-color:#ac8854;box-shadow:inset 0 0 0 2px #d7bb7030,0 3px 0 #091220;width:36px;height:36px}
.connection{color:#b9d4cc}.connection:before{background:#8fcea7;box-shadow:0 0 7px #7cd7af60}
.page{padding:12px 28px 20px;scrollbar-color:#8c7049 #151c2a;scrollbar-width:thin}
.page:not(.battle-page):not(.lobby-page){width:min(100%,620px);margin:0 auto}
.ornament{color:#e0bd82;font-size:12px;letter-spacing:2px;font-weight:700;text-shadow:0 2px 4px #081323}
.paper{color:#f4ead5;background:linear-gradient(135deg,#263144f7,#172236f7);border:1px solid #be9b5b;border-radius:14px;box-shadow:inset 0 0 0 3px #090f1b66,inset 0 0 0 4px #e7ca7c26,0 8px 0 #0b10247a,0 15px 32px #070b1740}
.panel-heading{color:#ffe6ac;font-weight:900;font-size:20px;letter-spacing:2px}.panel-heading:before,.panel-heading:after{background:#a5834859}
.profile-row label{color:#aebaca}.profile-row input{color:#fff2d0;border-bottom-color:#a38b5a}
.avatar{background:radial-gradient(circle at 50% 35%,#576984,#1c283d 78%);border-color:#d0aa66;box-shadow:inset 0 0 0 2px #efdaa657,0 3px 8px #0006;overflow:hidden}
.avatar img{display:block;width:115%;height:115%;object-fit:contain;object-position:center bottom;flex-shrink:0}
.mode-card{background:linear-gradient(#2b384c,#202c3e);color:#c9c8bb;border:1px solid #6e6e6b;border-radius:10px;box-shadow:inset 0 1px #fff1}
.mode-card.active{background:linear-gradient(#486878,#294955);color:#fff1c6;border:2px solid #e5bb68;box-shadow:0 3px 0 #101c30,inset 0 0 0 2px #efd49320}
.mode-card strong{font-size:19px;letter-spacing:1px}.mode-card span{color:#c9d5d8;font-size:11px}
.gold-btn,.jade-btn,.plain-btn{font-family:var(--sans);font-weight:850;letter-spacing:.5px;min-height:46px;border-radius:9px;font-size:16px}
.gold-btn{color:#63451f;background:#e3b650 url('/ui/assets/gold-button.png') center/100% 100% no-repeat;text-shadow:0 1px #ffefb9;box-shadow:0 4px 0 #71462c,0 6px 14px #0a102845}
.jade-btn{color:#fff2d2;background:linear-gradient(#537b89,#2b5165);border:1px solid #c6ab67;box-shadow:inset 0 0 0 2px #d5e5d320,0 4px 0 #122c40;text-shadow:0 1px 2px #132331}
.plain-btn{background:linear-gradient(#364354,#243046);border:1px solid #89939b;color:#e8e3d3;box-shadow:inset 0 1px #fff1,0 3px 0 #11192a;font-size:14px;text-shadow:0 1px #162235}
button:disabled{opacity:.43;filter:saturate(.35)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffdd85;outline-offset:3px}
.link-btn{color:#e3c990;font-weight:650;font-size:12px}.big{min-height:56px;font-size:23px}
.lobby-hero{min-height:190px;max-height:none;flex:1;color:#ffedc6}.lobby-hero h1{color:#f3cb73;text-shadow:0 3px #694926,0 7px 0 #18283d,0 10px 25px #0c1a2b90;letter-spacing:6px;font-weight:1000}.lobby-hero h1 em{color:#fff2c5}.lobby-hero p{color:#f3dbaf;font-weight:700;text-shadow:0 2px 6px #081323;letter-spacing:2px}.seal{border-color:#d9b76a;background:#1c263ccb;color:#ffe6ab;border-radius:7px;transform:none;letter-spacing:1px;font-weight:750}.lobby-cast{display:flex;justify-content:center;align-items:flex-end;min-height:90px;max-height:170px;margin-top:18px;isolation:isolate}.lobby-cast img{display:block;width:25%;max-width:150px;max-height:170px;object-fit:contain;filter:drop-shadow(0 6px 7px #061528aa);margin:0 -5px;animation:cast-breathe 4.3s ease-in-out infinite}.lobby-cast img:nth-child(2){animation-delay:-1.2s}.lobby-cast img:nth-child(3){animation-delay:-2.3s}.lobby-cast img:nth-child(4){animation-delay:-.5s}.lobby-note,.bottom-mark{color:#d5d2c0;letter-spacing:.7px;font-size:12px;text-shadow:0 1px 4px #081321}.bottom-mark{padding-top:12px}.lobby-controls{width:100%;max-width:540px;margin:0 auto}.lobby-modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px auto 8px;width:min(100%,540px)}.lobby-modules button,.lobby-module{position:relative;min-height:72px;background:linear-gradient(#344457,#212d42);border:1px solid #a38a54;border-radius:12px;color:#f5dfad;padding:10px 6px;font-weight:800}.lobby-modules strong,.lobby-modules span{display:block}.lobby-modules span{font-size:10px;margin-top:7px;color:#bbc6cf}.lobby-modules button:disabled{opacity:.7;filter:saturate(.4);cursor:not-allowed}
.room-title{padding:8px 0 18px}.room-code{background:linear-gradient(#27364d,#172439);border:1px solid #ac8d56;color:#f5dfaf;border-radius:9px;box-shadow:0 4px 0 #10182c}.room-code b{font-family:var(--sans);font-size:28px;font-weight:900;color:#ffe5a1;letter-spacing:4px}.room-seat{background:linear-gradient(#344055eb,#1c293ef5);border-color:#a68d5a;border-radius:12px;color:#f9eac7;min-height:140px;gap:5px;padding:12px 8px;box-shadow:0 5px 0 #10182b99}.room-seat .avatar{width:72px;height:72px}.room-seat strong{font-size:14px;font-weight:850}.room-seat small{color:#b2bfcc;font-size:10px}.ready-tag{background:#375a51;color:#c9f2cd;border:1px solid #7caa7738;font-weight:700}.ready-tag.empty{background:#414352;color:#bfc1c1;border-color:#9399a033}.team-label{color:#efdaa4;font-size:12px;font-weight:850;letter-spacing:2px;padding:3px 0;text-shadow:0 2px 4px #0c1427}.room-hint{color:#d4d3c9;font-size:12px}.room-actions{padding-top:18px;max-width:520px;width:100%;margin-left:auto;margin-right:auto}

/* The teams occupy fixed left and right lanes at every screen width. */
.battle-page{padding:8px 26px 7px;overflow:hidden;min-height:0;gap:0}
.battle-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;min-height:43px;margin:0;padding:3px 12px 9px;border:0;color:#eadabc;font-size:12px;text-shadow:0 2px 4px #061327}
.battle-title{font:850 14px var(--sans);letter-spacing:1px;color:#ffdfa1}.score{display:flex;gap:15px;align-items:center;font-size:12px;color:#cbdbe4;font-family:var(--sans)}.score b{font:950 28px var(--sans);letter-spacing:3px;color:#ffe7a8;text-shadow:0 2px 0 #795c30}.score:after{content:"";display:none}
.battlefield{position:relative;display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,1.35fr) minmax(150px,1fr);gap:24px;align-items:stretch;flex:1;min-height:0;padding:12px 0 0;isolation:isolate}
.team-side{display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;gap:5px;min-width:0;min-height:0;position:relative;z-index:2}
.team-side-label{position:absolute;top:-7px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:3px 14px;border:1px solid #b6cae033;border-radius:30px;background:#1c3754cb;color:#d7edff;font-size:10px;font-weight:800;letter-spacing:2px;box-shadow:0 3px 6px #080f2033}
.opponents .team-side-label{background:#582f2edb;color:#ffdfc4;border-color:#d899593f}
.fighter,.allies .fighter{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:0;width:100%;max-width:224px;flex:1;min-height:0;height:auto;max-height:245px;padding:0 5px 3px;border:0;border-radius:15px;background:none;box-shadow:none;text-align:center;color:#f2e6cc;overflow:visible;isolation:isolate;-webkit-user-select:none;user-select:none}
.fighter-figure{display:block;position:relative;width:min(100%,174px);height:auto;min-height:70px;flex:1;max-height:165px;aspect-ratio:1;isolation:isolate;animation:character-breathe 4s ease-in-out infinite;transform-origin:50% 90%}
.fighter:nth-child(3) .fighter-figure{animation-delay:-1.7s}.opponents .fighter-figure{animation-delay:-.8s}
.character-image{position:relative;display:block;z-index:2;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 6px 7px #050a1b80);pointer-events:none;user-select:none}
.enemy .character-image{transform:scaleX(-1)}
.character-shadow{position:absolute;z-index:0;left:16%;right:16%;bottom:3%;height:12%;border-radius:50%;background:#080b2199;filter:blur(5px)}
.fighter-info{display:flex;flex-direction:column;align-items:center;position:relative;width:100%;min-width:0;flex:0 0 auto;margin-top:-5px;padding:7px 9px 8px;border:1px solid #afbcbd6b;border-radius:8px;background:linear-gradient(105deg,#253f55ee,#1a2c43ee);box-shadow:inset 0 1px #d7eaf724,0 4px 0 #0a142966;z-index:3}
.enemy .fighter-info{border-color:#d0a07470;background:linear-gradient(105deg,#4d3438ee,#302637ef)}
.fighter-name{display:block;width:100%;max-width:none;font-size:13px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35;color:#fff1d4}.fighter-name small{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;padding:0 4px;min-height:14px;background:#bcd1d61c;color:#d0dde2;font-size:9px;font-weight:600;vertical-align:middle}
.self .fighter-name small{background:#e5b861;color:#51391e;font-weight:900}.character-name{position:absolute;top:-16px;font-size:9px;letter-spacing:1px;font-weight:750;color:#f2e1b9;text-shadow:0 1px 3px #071225;background:#182134a1;border-radius:4px;padding:1px 5px}
.hp{font-size:16px;letter-spacing:3px;color:#ff9d83;line-height:1.3;text-shadow:0 2px 0 #673b3c}.hp .lost{color:#858998;text-shadow:none}.hp .shield{font-size:10px;color:#a8e4ff;text-shadow:none;font-weight:900;letter-spacing:0}.fighter-stats{display:block;font-size:10px;color:#c8d1d6;line-height:1.25;margin-top:2px;white-space:nowrap}.enemy .fighter-stats{color:#e1c7c2}
.fighter.turn{border:0;box-shadow:none}.fighter.turn .fighter-info{border-color:#f3cd74;box-shadow:inset 0 0 0 1px #f6d88b66,0 0 20px #e7ad4926,0 4px 0 #72532e66}.fighter.turn .character-image{filter:drop-shadow(0 0 6px #f8d07570) drop-shadow(0 6px 8px #050c1a99)}
.fighter .turn-label{position:absolute;z-index:6;left:50%;right:auto;top:3px;transform:translateX(-50%);padding:3px 10px;white-space:nowrap;border:1px solid #ffeea6;border-radius:6px;background:linear-gradient(#fce3a2,#d8aa51);color:#654522;font-size:10px;font-weight:900;box-shadow:0 2px 5px #0a13288c}
.fighter.targeted{outline:0}.fighter.targeted .fighter-info{border:2px solid #ffb36e;padding:6px 8px 7px;box-shadow:0 0 0 2px #f37d5933,0 3px 12px #f9923938}.fighter.targeted .fighter-figure:after{content:"";position:absolute;inset:10% 5%;z-index:1;border:2px solid #f4b174b8;border-radius:50%;box-shadow:0 0 20px #ff9a4029;background:#e67b2110}
.fighter.down{opacity:.75;filter:none}.fighter.down .character-image{filter:grayscale(.8) brightness(.7);opacity:.75}.fighter.down .fighter-figure{animation:none}.fighter.equipment-on:after{content:"J";left:auto;right:9px;bottom:7px;z-index:5;background:#c9aa66;color:#302c27;border:1px solid #fae5a7;border-radius:4px;width:17px;line-height:20px;font:900 12px Georgia;text-align:center}.fighter.equipment-on .fighter-stats{padding-right:12px}
.battle-center{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;min-width:0;padding:22px 0 8px;z-index:1}
.arena{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;width:100%;margin:0;min-height:140px;padding:20px 8px;color:#fff0ce;position:relative;text-align:center}
.arena:before{content:"";position:absolute;inset:10% -7%;width:auto;height:auto;margin:0;border:1px solid #d8c18e2b;border-radius:45%;background:radial-gradient(ellipse,#172639b0,transparent 70%);box-shadow:none;z-index:-1;pointer-events:none}
.turn-banner{color:#faedd1;font-family:var(--sans);font-size:19px;line-height:1.5;font-weight:850;letter-spacing:.4px;text-shadow:0 2px 5px #041021;margin-bottom:10px;text-align:center}.turn-banner em{color:#ffe3a0;font-style:normal}
.countdown{min-width:35px;font-family:var(--sans);font-size:11px;font-weight:800;line-height:20px;white-space:nowrap;padding:0 6px;color:#ffe8b5;border:1px solid #dfc18877;border-radius:8px;background:#152337d9;vertical-align:middle}.countdown.urgent{color:#ffd4bb;border-color:#ef9872;background:#6c3932bf}
.arena-subtitle{font-size:12px;line-height:1.55;color:#e0e5e4;text-shadow:0 1px 4px #030b18;text-wrap:pretty}.arena-subtitle em{font-style:normal;color:#ffd58c;font-weight:850}
.played-row{display:flex;justify-content:center;align-items:center;gap:5px;margin:15px 0;max-width:100%;animation:card-arrive .25s ease-out}
.mini-card{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;position:relative;width:48px;height:66px;flex:0 1 48px;min-width:26px;padding:3px;border:1px solid #c9a864;border-radius:6px;background:linear-gradient(135deg,#fffced,#fff,#e8e4d5);color:#263448;box-shadow:0 3px 0 #afa28b,0 7px 10px #0a12254d;font:900 22px Georgia}.mini-card.red{color:#bd4b43}.mini-card small{font-size:21px;line-height:1.2}.attack-ribbon{font-size:11px;font-weight:800;line-height:1.5;padding:5px 10px;border:1px solid #dfbc70;border-radius:7px;background:linear-gradient(#e3c485,#b79b61);color:#4d351f;box-shadow:0 3px 0 #49332466;text-wrap:balance}
.battle-log{display:flex;align-items:center;justify-content:center;width:100%;min-height:34px;height:auto;max-height:56px;padding:4px 8px;margin:5px 0 0;border-radius:8px;background:#101d318c;border:1px solid #b9c1c11a;color:#e3d6be;font-size:11px;line-height:1.5;text-align:center;overflow:hidden;text-shadow:0 1px 3px #030a16}

/* A physical card fan, with generous exposed corners for drag selection. */
.hand-dock{flex:0 0 auto;position:relative;margin:8px 0 0;padding:7px 20px 10px;border:1px solid #b08b586e;border-radius:18px 18px 10px 10px;background:linear-gradient(180deg,#3c2d2bde,#271f27f5);box-shadow:inset 0 2px #d5b37e38,0 8px 22px #03081555;z-index:5}
.hand-dock:before{content:"";position:absolute;inset:3px 3px auto;height:1px;background:linear-gradient(90deg,transparent,#e9c48488,transparent);pointer-events:none}
.hand-meta{height:25px;display:flex;justify-content:space-between;align-items:center;padding:0 5px;color:#ead9b5;text-shadow:none}.hand-meta strong{font-size:11px;letter-spacing:.5px}.hand-meta .link-btn{font-size:11px;color:#d9c390;min-height:25px;padding:4px}
.hand{display:flex;justify-content:center;align-items:flex-end;height:142px;padding:26px 22px 20px;gap:0;overflow:visible;isolation:isolate;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.playing-card{--card-angle:0deg;--card-lift:0px;--card-index:0;display:block;position:relative;flex:0 1 78px;min-width:38px;max-width:82px;height:103px;margin:0;padding:7px 8px;border:1px solid #c7a764;border-radius:8px;background:linear-gradient(125deg,#fff9e9,#ffffff 48%,#e5e4da);color:#263448;box-shadow:0 3px 0 #ad9e84,0 6px 10px #080d243d;text-align:left;font:900 28px Georgia;transform-origin:50% 115%;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s,filter .18s;user-select:none;touch-action:pan-y}
.hand .playing-card{transform:translateY(var(--card-lift)) rotate(var(--card-angle));z-index:calc(var(--card-index) + 1)}
.hand .playing-card+.playing-card{margin-left:-14px}.playing-card:before{inset:4px;border:1px solid #c2a66a66;border-radius:5px}.playing-card.red{color:#b6473e}.playing-card .suit{font-size:22px;line-height:1;display:block;margin-top:0}.playing-card .center-suit{font-size:30px;right:18px;bottom:24px;opacity:.9}.playing-card .special-title{font-family:var(--sans);font-size:12px;line-height:1.2;bottom:34px;font-weight:900;letter-spacing:2px}.playing-card .card-corner-bottom,.playing-card .bottom-corner{position:absolute;right:7px;bottom:6px;transform:rotate(180deg);font-size:18px;line-height:1;display:flex;flex-direction:column;align-items:center;gap:0}.playing-card .card-corner-bottom small,.playing-card .bottom-corner small{font-size:14px}
.hand .playing-card.selected,.playing-card.selected{transform:translateY(calc(var(--card-lift) - 22px)) rotate(var(--card-angle));z-index:30;border-color:#f3d581;background:linear-gradient(125deg,#fff9de,#fff7d0 60%,#f1da9d);box-shadow:0 0 0 2px #efbc5d,0 4px 0 #b58a43,0 12px 20px #0005}.playing-card.selected:after{content:"✓";top:5px;right:5px;bottom:auto;background:#bc8943;border:1px solid #fff0b5;color:#fff8dd;width:16px;height:16px;line-height:14px;font:800 12px var(--sans);border-radius:50%;text-align:center}.playing-card:disabled{opacity:.88;filter:none}
@media(hover:hover){.hand .playing-card:hover:not(:disabled){transform:translateY(calc(var(--card-lift) - 14px)) rotate(0deg);z-index:40;filter:brightness(1.035);box-shadow:0 3px 0 #b89f72,0 12px 18px #0005}.hand .playing-card.selected:hover:not(:disabled){transform:translateY(calc(var(--card-lift) - 27px)) rotate(0deg)}.fighter.enemy:hover .fighter-info{border-color:#efbc77;filter:brightness(1.12)}}
.selection-info{min-height:26px;height:auto;max-height:45px;line-height:1.5;padding:3px 8px;text-align:center;font-size:12px;color:#e9d9ba;text-shadow:none;white-space:normal;text-wrap:balance}.selection-info.error{color:#ffbe9b}.actions{display:flex;gap:10px;justify-content:center;align-items:center;min-height:49px;margin-top:4px}.actions button{flex:1;max-width:180px;min-height:45px;font-size:16px;padding:9px 15px}.actions .secondary{max-width:105px}.actions .main-action{max-width:240px;flex:1.7}.actions .tiny{font-size:12px;max-width:72px}.battle-footer{display:flex;justify-content:space-between;align-items:center;min-height:25px;height:25px;padding:2px 4px;color:#d0c5b5;font-size:10px;letter-spacing:.3px}.battle-footer .link-btn{color:#d3c4a7;font-size:11px;padding:4px}
.combat-float{position:absolute;left:50%;top:35%;z-index:12;pointer-events:none;white-space:nowrap;font:950 35px var(--sans);letter-spacing:-1px;color:#fff3bd;text-shadow:0 3px 0 #25334c,2px 0 #25334c,-2px 0 #25334c,0 0 10px #1118;transform:translateX(-50%)}.combat-float.damage{color:#ffb290;text-shadow:0 3px #6c302b,2px 0 #6c302b,-2px 0 #6c302b,0 0 12px #6c302b80}.combat-float.block{font-size:25px;color:#c5f3ff;text-shadow:0 3px #254d69,2px 0 #254d69,-2px 0 #254d69}.combat-float.heal{font-size:27px;color:#d6fac0;text-shadow:0 3px #325d3f,2px 0 #325d3f,-2px 0 #325d3f}

/* Room, reward and modal surfaces share the same midnight materials. */
.overlay{position:absolute;inset:0;z-index:30;background:#080d1dbf;backdrop-filter:blur(5px);padding:18px}.dialog{max-width:480px;max-height:92%;padding:28px 24px;overflow:auto}.dialog h2{color:#ffe4a7;font-size:24px;font-weight:900;letter-spacing:1px}.dialog h3{color:#e7c784;font-size:16px}.dialog p,.rules-list{color:#d8dfdf}.dialog .close-dialog{color:#e7c785;border-radius:50%;background:#10192c88}.dialog input,.dialog select,.inline-input input{background:#111e32!important;color:#fae8bd!important;border:1px solid #b79b64!important;border-radius:8px}.dialog input.room-input{color:#ffde98!important;font-weight:900;letter-spacing:6px;font-size:27px}.dialog .helper,.helper,.quiet-text{color:#b9c6d1}.join-name-label{display:block;font-size:12px;font-weight:750;color:#d4c6a5;margin:15px 0 0}.dialog .join-name-input{margin:7px 0 5px;font-size:16px}.dialog .stat-row{color:#e8deca;border-bottom-color:#7581973d}.toast{top:76px;left:max(18px,calc(50% - 260px));right:max(18px,calc(50% - 260px));background:#172940f5;border-color:#c5a564;color:#ffe8b9;border-radius:10px;padding:12px 15px;box-shadow:0 7px 20px #0006}.connection-banner{top:64px;background:#784431f0;color:#ffead0;border-bottom:1px solid #e8b47450}.stage-content{width:100%;max-width:550px;margin:0 auto;gap:18px;padding:24px 0}.stage-title{font-size:30px;font-weight:950;color:#ffdfa0;letter-spacing:1px;text-shadow:0 3px #473827,0 7px 14px #061327}.stage-subtitle{color:#dce0db;font-size:13px}.result-score{font:950 58px var(--sans);color:#f3cb78;letter-spacing:10px;text-shadow:0 3px #795630}.result-teams{color:#d6dad7}.result-summary{color:#bdc8d2;font-size:12px}.result-medal{border:1px solid #99927d;background:#344053;color:#bfc8d0;font-family:var(--sans);font-weight:800}.result-medal.won{background:linear-gradient(#e5c37c,#b18a45);color:#503719;border-color:#f9d898}.choice-option{background:linear-gradient(#33445a,#223249);color:#f3dfb4;border:1px solid #9c8e6e;border-radius:10px;box-shadow:inset 0 1px #fff1,0 3px 0 #121b2d}.choice-option strong{font-family:var(--sans);font-size:17px;font-weight:850}.choice-option span{color:#bfcbd5}.choice-option.selected{background:linear-gradient(#385c65,#234852);border-color:#ddc181}.reward-grid{padding:25px 2px;gap:14px}.reward-grid .playing-card{height:112px;width:78px;max-width:none;flex:none;transform:none}.reward-grid .playing-card.selected{transform:translateY(-10px)}.reward-description{color:#d9dddc;font-size:13px}.chip{background:#3b4d5e;color:#e4d8b8;border-color:#c2a67055}.shop-row{border-color:#7a879b3d}.shop-row strong{color:#ebd9ad;font-family:var(--sans)}.shop-row small{color:#b6c5d1}.shop-row .jade-btn{min-height:38px}.selected-card-detail{background:#24364b;color:#d8dfde;border-color:#90a0b044}.busy-page{gap:23px}.busy-page h2{color:#ffdf9d;letter-spacing:1px;font-weight:900}.busy-page p{color:#d0dadd}.match-rings{border-color:#e1b86a;background:radial-gradient(circle,#614b3626,transparent);box-shadow:0 0 0 13px #d7b8750a,0 0 0 14px #bb9b5f40,0 0 0 27px #b1966010}.match-rings span{color:#ffdc94;font-family:var(--sans);text-shadow:0 3px #6d5230}.waiting i{border-color:#a49476;background:#354052}.waiting i.filled{background:#dfba71;box-shadow:0 0 12px #f0c56e66}.boot-status{background:#101c2c;color:#ffdf9d}.error-page{color:#f5dfb4}.no-hand{color:#cececa;font-size:12px}.red-text{color:#f1a28b}
@keyframes character-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.014)}}
@keyframes cast-breathe{0%,100%{translate:0 0}50%{translate:0 -4px}}
@keyframes card-arrive{from{opacity:.6;translate:0 -8px}to{opacity:1;translate:0 0}}

@media(min-width:760px){.lobby-page{padding-top:20px;padding-bottom:25px}.lobby-hero{max-height:350px;min-height:210px}.lobby-hero h1{font-size:65px}.lobby-cast{height:150px;margin-top:12px}.room-grid{gap:12px 18px}.room-seat{min-height:155px}.room-seat .avatar{width:82px;height:82px}.room-actions{max-width:440px}.page:not(.battle-page):not(.lobby-page){max-width:660px}}
@media(max-width:700px){.topbar{height:58px;min-height:58px;padding:8px 15px}.brand{font-size:23px}.brand small{font-size:9px;letter-spacing:.5px}.top-actions{gap:5px}.round-btn{width:32px;height:32px}.connection{font-size:9px}.page{padding:10px 16px 14px}.battle-page{padding:5px 10px 3px}.battle-top{min-height:39px;padding:3px 3px 7px;gap:5px;font-size:10px}.battle-title{font-size:12px}.score{gap:8px;font-size:10px}.score b{font-size:24px;letter-spacing:2px}.battlefield{grid-template-columns:minmax(78px,1fr) minmax(118px,1.42fr) minmax(78px,1fr);gap:7px;padding-top:13px}.team-side{gap:6px;justify-content:space-evenly}.team-side-label{font-size:8px;padding:3px 7px;letter-spacing:.5px;top:-7px}.fighter,.allies .fighter{padding:0 0 3px;max-height:205px;max-width:145px;min-height:0;gap:0}.fighter-figure{width:min(100%,130px);max-height:127px;min-height:58px}.fighter-info{padding:5px 3px;border-radius:7px;margin-top:-4px}.fighter-name{font-size:10px;line-height:1.4}.fighter-name small{font-size:8px;padding:0 2px;min-height:12px}.character-name{font-size:8px;top:-13px;padding:0 3px;letter-spacing:.5px}.hp{font-size:13px;letter-spacing:1px;line-height:1.2}.hp .shield{font-size:8px}.fighter-stats{font-size:8px;line-height:1.2;margin-top:3px;white-space:normal}.fighter .turn-label{font-size:8px;padding:2px 5px;top:2px;border-radius:4px}.fighter.targeted .fighter-info{padding:4px 2px}.fighter.equipment-on:after{width:12px;right:3px;bottom:6px;font-size:9px;line-height:13px}.fighter.equipment-on .fighter-stats{padding-right:8px}.battle-center{padding:16px 0 5px}.arena{min-height:110px;padding:10px 1px}.arena:before{inset:15% -5%}.turn-banner{font-size:14px;line-height:1.5;letter-spacing:0;margin-bottom:8px}.countdown{min-width:30px;font-size:9px;line-height:17px;padding:0 4px}.arena-subtitle{font-size:10px;line-height:1.55}.played-row{gap:3px;margin:10px -4px;max-width:calc(100% + 8px)}.mini-card{width:31px;height:46px;flex-basis:31px;min-width:19px;font-size:16px;border-radius:4px;padding:2px}.mini-card small{font-size:16px}.attack-ribbon{font-size:9px;line-height:1.55;padding:4px 5px;border-radius:6px}.battle-log{font-size:9px;line-height:1.45;min-height:34px;max-height:52px;padding:4px 4px;margin-top:2px}.hand-dock{margin-top:6px;padding:4px 7px 8px;border-radius:13px 13px 8px 8px}.hand-meta{height:23px;padding:0 3px}.hand-meta strong,.hand-meta .link-btn{font-size:10px}.hand{height:129px;padding:24px 9px 17px;gap:0}.playing-card{flex-basis:63px;max-width:68px;min-width:32px;height:88px;font-size:24px;padding:6px 6px;border-radius:7px}.hand .playing-card+.playing-card{margin-left:-17px}.playing-card .suit{font-size:20px}.playing-card .center-suit{font-size:25px;right:15px;bottom:25px}.playing-card .special-title{font-size:10px;bottom:28px;letter-spacing:1px}.playing-card .card-corner-bottom,.playing-card .bottom-corner{font-size:15px;right:5px;bottom:5px}.playing-card .card-corner-bottom small,.playing-card .bottom-corner small{font-size:12px}.hand .playing-card.selected{transform:translateY(calc(var(--card-lift) - 17px)) rotate(var(--card-angle))}.playing-card.selected:after{width:13px;height:13px;line-height:11px;font-size:10px;right:4px;top:4px}.selection-info{font-size:10px;min-height:27px;max-height:42px;padding:3px 3px}.actions{gap:6px;min-height:43px;margin-top:2px}.actions button{min-height:41px;font-size:14px;padding:7px 8px}.actions .secondary{max-width:69px}.actions .main-action{max-width:none;flex:1.7}.actions .tiny{max-width:48px;font-size:11px;padding:6px}.battle-footer{height:23px;min-height:23px;font-size:9px;letter-spacing:0}.battle-footer .link-btn{font-size:10px}.combat-float{font-size:28px}.combat-float.block,.combat-float.heal{font-size:20px}.connection-banner{top:58px}.lobby-hero{min-height:195px;padding:8px 0 15px}.lobby-hero h1{font-size:49px}.lobby-cast{margin-top:10px;max-height:110px}.lobby-cast img{max-height:112px}.lobby-controls{padding:15px}.lobby-modules{gap:7px}.lobby-modules button{font-size:12px;min-height:64px}.room-seat .avatar{width:60px;height:60px}.room-seat{min-height:125px}.stage-title{font-size:26px}.stage-content{padding:12px 0;gap:13px}.dialog{padding:24px 18px}.dialog p{font-size:12px}.result-score{font-size:49px}}
@media(max-height:730px){.topbar{height:52px;min-height:52px;padding-top:6px;padding-bottom:6px}.brand{font-size:21px}.brand small{font-size:8px;margin-top:2px}.battle-top{min-height:32px;padding-bottom:4px}.battlefield{padding-top:12px}.fighter,.allies .fighter{max-height:174px}.fighter-figure{max-height:106px;min-height:45px}.fighter-info{padding-top:4px;padding-bottom:4px}.arena{min-height:82px;padding-top:5px;padding-bottom:5px}.turn-banner{font-size:13px;margin-bottom:5px}.battle-log{font-size:9px;min-height:28px;max-height:42px}.hand-dock{padding-top:3px;padding-bottom:5px;margin-top:3px}.hand{height:106px;padding-top:18px;padding-bottom:13px}.playing-card{height:76px;font-size:21px}.playing-card .center-suit{font-size:23px;bottom:20px}.playing-card .suit{font-size:18px}.playing-card .special-title{bottom:24px;font-size:10px}.selection-info{font-size:10px;min-height:23px;max-height:38px}.actions{min-height:39px}.actions button{min-height:38px;padding-top:6px;padding-bottom:6px}.hand-meta{height:21px}.battle-footer{height:20px;min-height:20px}.connection-banner{top:52px}.lobby-hero{min-height:150px;padding:4px 0 10px}.lobby-hero h1{font-size:42px}.lobby-cast{max-height:90px;margin-top:7px}.lobby-cast img{max-height:93px}.lobby-hero .seal{margin-top:9px}.lobby-controls{padding:12px}.mode-card{min-height:65px;padding:8px 3px}.room-seat{min-height:106px;padding:8px}.room-seat .avatar{width:48px;height:48px}.room-title{padding:4px 0 12px}.room-actions{padding-top:10px}.stage-content{gap:10px}}
@media(max-width:360px){.battle-page{padding-left:7px;padding-right:7px}.battlefield{grid-template-columns:minmax(69px,1fr) minmax(107px,1.43fr) minmax(69px,1fr);gap:5px}.fighter-name{font-size:9px}.fighter-stats{font-size:7.5px}.hp{font-size:12px;letter-spacing:.5px}.playing-card{flex-basis:58px;min-width:29px;padding-left:5px}.hand .playing-card+.playing-card{margin-left:-18px}.actions{gap:4px}.actions button{font-size:12px;padding-left:6px;padding-right:6px}.actions .secondary{max-width:58px}.actions .tiny{max-width:40px}.turn-banner{font-size:12px}.arena-subtitle{font-size:9px}.attack-ribbon{font-size:8.5px}.selection-info{font-size:9px}.topbar{padding-left:11px;padding-right:11px}.brand{font-size:21px}.brand small{font-size:8px}.connection{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Original chess-hall composition, reskinned with Midnight Kitchen artwork. */
.kitchen-atlas{display:block;aspect-ratio:3/4;background-image:url('/ui/assets/characters/kitchen-units.webp');background-size:400% 200%;background-position:var(--sprite-x,0%) 0%;background-repeat:no-repeat;flex-shrink:0;image-rendering:auto}
.fighter-figure{aspect-ratio:3/4;width:min(83%,128px);max-height:172px}
.fighter-figure .kitchen-atlas{width:100%;height:100%;object-fit:initial}
.avatar>.kitchen-atlas{width:77%;height:100%;background-size:400% 200%}
.lobby-cast>.kitchen-atlas{width:24%;height:145px;max-width:109px;filter:drop-shadow(0 5px 5px #061227aa)}
#jiajiale-app>.xiangqi-lobby{display:flex;flex-direction:column;width:min(100%,560px);max-width:560px;margin:0 auto;padding:0 24px 12px;min-height:0;height:100%;overflow-y:auto;gap:0;background:linear-gradient(180deg,#14162baa,transparent 25%,#17203624)}
.hall-profile{display:flex;align-items:center;gap:11px;min-height:91px;flex-shrink:0;margin:0 -24px;padding:12px 24px 10px;background:linear-gradient(110deg,#1b253bef,#253248e8);border-bottom:2px solid #927648;box-shadow:inset 0 -3px #ffe6a118,0 5px 12px #090e243b}
.hall-avatar{width:66px;height:66px;flex:0 0 66px;display:flex;align-items:center;justify-content:center;padding:0;border:3px solid #d7b16b;border-radius:50%;background:radial-gradient(circle at 50% 25%,#66598a,#20263d 72%);box-shadow:inset 0 0 0 2px #ffeac77a,0 4px 0 #0c1529;overflow:hidden}.hall-avatar .kitchen-atlas{height:80px;width:60px;flex:none;transform:translateY(13px)}
.hall-player{min-width:0;flex:1;display:flex;flex-direction:column;gap:8px}.hall-name{display:block;max-width:100%;padding:0;color:#fff1c8;background:none;font-size:15px;font-weight:900;line-height:1.4;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hall-name>span{color:#bdc5d0;font-size:11px;margin-left:4px}.hall-record{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:10px;color:#d3c3a3}.hall-record>span{border:1px solid #ae905659;border-radius:9px;padding:3px 7px;background:#121d31a8}.hall-record>span:first-child{color:#f1cb7a;background:#9a703c26}.hall-badge{display:flex;flex-direction:column;align-items:center;gap:3px;flex-shrink:0;color:#efcd8c;text-shadow:0 2px #664528}.hall-badge b{font-size:20px;font-weight:1000;letter-spacing:2px}.hall-badge small{font-size:9px;letter-spacing:2px;color:#cfc4a7;text-shadow:none}
.hall-title{display:flex;align-items:center;justify-content:space-between;min-height:34px;flex-shrink:0;padding:5px 1px;color:#f3e0b4;font-size:10px;font-weight:650;text-shadow:0 2px 4px #0c1529}.hall-title>.connection{font-size:9px}
.hall-utilities{display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:0 2px 9px;gap:14px;flex-shrink:0}.hall-rewards{display:flex;gap:16px}.hall-rewards button{display:flex;align-items:center;flex-direction:column;gap:0;min-width:51px;padding:0;background:none;color:#ffe1a5;position:relative}.hall-rewards button:disabled{opacity:.82;filter:none}.hall-icon{display:grid;place-items:center;width:37px;height:34px;color:#ffe3a1;font-size:28px;line-height:1;text-shadow:0 3px #734328,0 0 12px #faad502b}.hall-rewards strong{font-size:10px;line-height:1.5;font-weight:850}.hall-rewards small{font-size:8px;line-height:1.5;color:#beb2a1;white-space:nowrap}.hall-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.hall-tools button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:0;background:none;color:#e6d3ad;min-width:30px}.hall-tools button>span{display:grid;place-items:center;width:32px;height:32px;border:1px solid #b49356;border-radius:50%;background:linear-gradient(#485266,#26364a);box-shadow:inset 0 0 0 2px #e7d4a326,0 3px 0 #142030;color:#ffe3a1;font-size:17px;font-weight:800}.hall-tools small{font-size:8px;font-weight:650}
.hall-games{display:grid;grid-template-columns:1fr .46fr .46fr;grid-template-rows:1fr 1fr .87fr;grid-template-areas:'pvp duo duo' 'pvp room practice' 'adventure room practice';gap:10px;min-height:337px;flex:1;max-height:450px;position:relative;margin:0 1px 15px}
.hall-game{position:relative;display:block;min-width:0;min-height:0;padding:0;overflow:hidden;border:2px solid #e3c07d;border-radius:14px;text-align:left;isolation:isolate;box-shadow:inset 0 0 0 3px #fff1ca30,0 5px 0 #392739,0 8px 15px #0004;color:#fff3d3;transition:filter .15s,transform .15s}
.hall-game:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:10px;background:radial-gradient(circle at 70% 20%,#fff9d55c,transparent 62%);pointer-events:none}.hall-game:after{content:"";position:absolute;inset:4px;border:1px solid #fff1bd45;border-radius:8px;pointer-events:none;z-index:4}.hall-game.pvp{grid-area:pvp;background:linear-gradient(145deg,#9e5f9c,#663e8a 60%,#3c2e5d)}.hall-game.duo{grid-area:duo;background:linear-gradient(145deg,#609898,#336679 64%,#264b69)}.hall-game.adventure{grid-area:adventure;background:linear-gradient(135deg,#b38550,#83653d 68%,#624b37)}.hall-game.room{grid-area:room;background:linear-gradient(160deg,#668573,#386a58 65%,#2e4a48)}.hall-game.practice{grid-area:practice;background:linear-gradient(165deg,#9c6671,#784753 65%,#563641)}
.hall-game:disabled{opacity:1;filter:none;cursor:not-allowed}.hall-game.coming{filter:saturate(.58)}.hall-game.chosen{border-color:#ffeab8;box-shadow:inset 0 0 0 3px #ffefd35c,0 5px 0 #412c3f,0 0 15px #ffb65826}.hall-game:hover:not(:disabled){filter:brightness(1.07)}.hall-game:active:not(:disabled){transform:translateY(2px)}
.hall-art{position:absolute;inset:0;z-index:0;pointer-events:none}.hall-duel{display:flex;align-items:flex-end;justify-content:center;padding-bottom:55px}.hall-duel>.kitchen-atlas{position:absolute;width:73%;aspect-ratio:3/4;height:auto;bottom:54px;filter:drop-shadow(0 6px 5px #21162d75)}.hall-duel>.kitchen-atlas:first-child{left:-1%;z-index:2;transform:rotate(-3deg)}.hall-duel>.kitchen-atlas:nth-child(2){right:-6%;bottom:80px;z-index:1;transform:rotate(5deg)}
.hall-monsters{display:flex;justify-content:flex-end;align-items:center;padding:0 2px 20px}.hall-monsters>img{width:56%;height:100%;max-height:150px;object-fit:contain;filter:drop-shadow(0 5px 4px #12263d77);margin-left:-11%}.hall-monsters>img:first-child{transform:rotate(-7deg)}.hall-monsters>img:nth-child(2){transform:rotate(7deg)}
.hall-game-caption{position:absolute;z-index:3;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:3px;padding:12px 12px 14px;background:linear-gradient(transparent,#17132955 18%,#111d379c);color:#fff3cf;text-shadow:0 2px #302343,0 3px 8px #11182d66}.hall-game-caption strong{font-size:21px;line-height:1.2;letter-spacing:1px;font-weight:950}.hall-game-caption small{font-size:10px;font-weight:600;color:#f3ddbe;text-shadow:0 1px 3px #16152a}.pvp .hall-game-caption strong{font-size:26px}.duo .hall-game-caption{padding:8px 9px 10px}.duo .hall-game-caption strong{font-size:19px}.duo .hall-game-caption small{font-size:8px;white-space:nowrap}.room .hall-game-caption,.practice .hall-game-caption{padding:12px 7px 14px;align-items:center;text-align:center}.room .hall-game-caption strong,.practice .hall-game-caption strong{font-size:16px;line-height:1.4;letter-spacing:0;max-width:3em}.room .hall-game-caption small,.practice .hall-game-caption small{font-size:8px;letter-spacing:0;white-space:nowrap}.adventure .hall-game-caption{padding:8px 10px 11px}.adventure .hall-game-caption strong{font-size:18px}.adventure .hall-game-caption small{font-size:9px}.coming .hall-game-caption small{display:inline-flex;align-self:flex-start;white-space:nowrap;padding:3px 6px;border:1px solid #e2c59257;border-radius:5px;background:#25263494;color:#f4ddbb;font-size:8px}.practice .hall-game-caption small{align-self:center}
.hall-tile-image{position:absolute;object-fit:contain;width:100%;height:75%;left:0;top:3%;filter:drop-shadow(0 5px 5px #15203670);z-index:1;pointer-events:none}.adventure .hall-tile-image{width:53%;height:98%;left:auto;right:-2%;top:-5%;transform:rotate(8deg)}.room .hall-tile-image{top:4%;height:58%;width:118%;left:-9%;transform:rotate(-5deg)}.practice .hall-tile-image{top:4%;height:60%;width:119%;left:-10%;transform:rotate(5deg)}
.hall-quick{display:block;position:relative;flex-shrink:0;width:92%;min-height:62px;margin:0 auto 12px;font-size:25px;font-weight:950;letter-spacing:3px;border-radius:12px;padding:7px 14px 9px;box-shadow:0 4px 0 #875329,0 7px 18px #17112466}.hall-quick small{display:block;font-size:10px;line-height:1.5;font-weight:800;letter-spacing:1px;color:#7a552a;margin-top:1px}
.hall-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;flex-shrink:0;min-height:73px;padding:8px 4px 0;border-top:1px solid #bd9c6140}.hall-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:0;color:#f5dda8;padding:1px 0}.hall-nav button>span{display:block;min-height:30px;font-size:29px;line-height:1;text-shadow:0 3px #5f3f29,0 4px 7px #0b142f80}.hall-nav button>strong{font-size:12px;line-height:1.2;font-weight:900;letter-spacing:1px}.hall-nav button>small{font-size:8px;color:#b8b5ae;margin-top:2px}.hall-nav button:disabled{opacity:.8;filter:saturate(.6)}
@media(min-width:701px){#jiajiale-app:has(.xiangqi-lobby){width:min(100%,560px)}.hall-games{min-height:360px}.hall-art .kitchen-atlas{animation:none}}
@media(max-width:700px){.fighter-figure{width:min(85%,95px);max-height:133px}#jiajiale-app>.xiangqi-lobby{padding:0 18px 8px}.hall-profile{margin:0 -18px;padding:11px 18px 9px;min-height:83px;gap:9px}.hall-avatar{width:60px;height:60px;flex-basis:60px}.hall-name{font-size:13px}.hall-record{font-size:9px;gap:5px}.hall-record>span{padding:2px 6px}.hall-badge b{font-size:18px}.hall-badge small{font-size:8px}.hall-title{min-height:31px;font-size:9px}.hall-utilities{min-height:69px;padding-bottom:8px;gap:7px}.hall-rewards{gap:11px}.hall-icon{height:30px;font-size:26px}.hall-tools{gap:7px}.hall-tools button>span{width:29px;height:29px;font-size:15px}.hall-tools small{font-size:8px}.hall-games{gap:8px;min-height:326px;max-height:420px;margin-bottom:14px}.hall-game{border-radius:12px}.hall-game-caption{padding-left:9px;padding-right:9px}.pvp .hall-game-caption strong{font-size:23px}.duo .hall-game-caption strong{font-size:17px}.duo .hall-game-caption small{font-size:7px}.room .hall-game-caption strong,.practice .hall-game-caption strong{font-size:15px}.adventure .hall-game-caption strong{font-size:16px}.hall-quick{min-height:58px;font-size:23px;margin-bottom:10px}.hall-nav{min-height:68px;padding-top:8px}.hall-nav button>span{font-size:26px;min-height:27px}.hall-nav button>strong{font-size:11px}.hall-duel>.kitchen-atlas:nth-child(2){bottom:78px}.hall-rewards strong{font-size:9px}}
@media(max-height:730px){#jiajiale-app>.xiangqi-lobby{padding-bottom:6px}.hall-profile{min-height:73px;padding-top:8px;padding-bottom:8px}.hall-avatar{height:54px;width:54px;flex-basis:54px}.hall-title{min-height:27px;padding-top:4px;padding-bottom:3px}.hall-utilities{min-height:60px;padding-bottom:6px}.hall-games{min-height:270px;max-height:none;margin-bottom:12px;gap:7px}.hall-quick{min-height:52px;font-size:21px;margin-bottom:8px}.hall-nav{min-height:59px;padding-top:6px}.hall-nav button>span{font-size:23px;min-height:25px}.hall-nav button>small{font-size:7px}.hall-nav button>strong{font-size:10px}.hall-icon{height:26px;font-size:23px}.hall-rewards small{font-size:7px}.hall-tools button>span{width:27px;height:27px}.hall-game-caption{padding-bottom:11px}.hall-duel>.kitchen-atlas{bottom:49px}.hall-duel>.kitchen-atlas:nth-child(2){bottom:67px}.fighter-figure{width:min(76%,80px);max-height:110px}}
@media(max-width:360px){#jiajiale-app>.xiangqi-lobby{padding-left:13px;padding-right:13px}.hall-profile{margin-left:-13px;margin-right:-13px;padding-left:13px;padding-right:13px}.hall-games{gap:7px}.hall-rewards{gap:7px}.hall-tools{gap:5px}.hall-tools button{min-width:27px}.hall-rewards button{min-width:45px}.hall-game-caption strong{font-size:18px}.pvp .hall-game-caption strong{font-size:21px}.duo .hall-game-caption strong{font-size:16px}.duo .hall-game-caption small{font-size:7px;letter-spacing:-.3px}.room .hall-game-caption strong,.practice .hall-game-caption strong{font-size:14px}.hall-quick{font-size:22px}.hall-badge{display:none}}
/* Match the source hall's measured 960 × 783 five-tile silhouette. */
.hall-games{grid-template-rows:2.5fr 1fr 1.5fr;aspect-ratio:960/783;width:100%;height:auto;min-height:0;max-height:none;flex:0 0 auto}
.hall-utilities{flex:1 0 78px;max-height:125px}
.hall-nav{margin-top:auto}
@media(max-width:700px){.hall-games{min-height:0;max-height:none}.hall-utilities{flex-basis:72px;max-height:125px}}
@media(max-height:730px){.hall-games{min-height:0;max-height:none}.hall-utilities{flex-basis:60px;max-height:85px}}

/* Keep four-character labels balanced in the narrow original hall tiles. */
.room .hall-game-caption strong,.practice .hall-game-caption strong{max-width:2em;line-height:1.35}

.hall-nav{margin-top:4px}
/* Atlas frames preserve their 3:4 proportions when flex rows become shorter. */
.fighter-figure .kitchen-atlas{width:auto;max-width:none;height:100%;aspect-ratio:3/4;flex:none}

/* Mobile playability: keep input targets reachable while the browser chrome or
   keyboard changes height. The scene continues to paint behind this safe area. */
:root {
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
}
html, body { overscroll-behavior: none; -webkit-text-size-adjust: 100%; }
#jiajiale-app {
  top: var(--visual-offset-top, 0px);
  bottom: auto;
  height: var(--visual-height, 100dvh);
  padding: var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);
}
.page {
  overscroll-behavior-y: contain;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  scroll-padding: 16px;
}
.topbar { flex-shrink: 0; }
.round-btn, .dialog .close-dialog { width: 44px; height: 44px; flex-shrink: 0; }
.link-btn { min-height: 44px; min-width: 44px; }
.small-btn { min-height: 44px !important; }
.dialog input, .dialog select, .inline-input input { min-height: 48px; font-size: 16px; }
.overlay {
  padding: max(16px, var(--safe-top)) max(16px, var(--safe-right)) max(16px, var(--safe-bottom)) max(16px, var(--safe-left));
  overscroll-behavior: contain;
}
.dialog {
  max-height: 100%;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-top: 32px;
  scroll-padding: 20px;
}
.dialog h2 { padding: 0 28px; overflow-wrap: anywhere; }
.dialog .close-dialog { top: 5px; right: 5px; z-index: 2; }
.dialog p, .dialog .stat-row, .invite-address { overflow-wrap: anywhere; }
.invite-address { margin: 14px 0 0 !important; text-align: center; color: #eed3a1; font-size: 13px !important; }
.stat-row { align-items: center; gap: 10px; }
.stat-row > span, .shop-row > div { min-width: 0; overflow-wrap: anywhere; }
.stat-row > button, .shop-row > button { flex-shrink: 0; }
.shop-row button, .shop-row .jade-btn { min-height: 44px; min-width: 64px; }
.stage-content { justify-content: flex-start; flex: 0 0 auto; margin-top: auto; margin-bottom: auto; }
.choice-grid, .mode-options, .button-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choice-option, .mode-card { overflow-wrap: anywhere; }
.choice-option strong, .mode-card strong { line-height: 1.4; }
.reward-grid { gap: 12px; }
.reward-grid > div { max-width: 100%; }
.reward-grid .chip { max-width: 130px; overflow-wrap: anywhere; }
.room-seat { min-width: 0; }
.room-seat strong { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.room-title, .room-grid, .room-actions { flex-shrink: 0; }
.room-code { max-width: 100%; gap: 10px; }
.busy-page { justify-content: flex-start; }
.busy-page > :first-child { margin-top: auto; }
.busy-page > :last-child { margin-bottom: auto; }
.busy-page > * { flex-shrink: 0; }
.toast { max-height: min(30%, 130px); overflow: hidden; overflow-wrap: anywhere; }
.connection-banner { top: calc(64px + var(--safe-top)); }

/* The physical card fan stays within its own row even before an overflow
   discard. Only the hand consumes drag gestures; all surrounding panels scroll. */
.hand {
  container-type: inline-size;
  --fan-card-width: clamp(52px, 16vw, 78px);
  touch-action: none;
  -webkit-touch-callout: none;
}
.hand .playing-card {
  width: var(--fan-card-width);
  flex: 0 0 var(--fan-card-width);
  min-width: 0;
  max-width: none;
  touch-action: none;
  -webkit-touch-callout: none;
}
.hand .playing-card + .playing-card {
  margin-left: min(-8px, calc((100cqw - var(--fan-card-width) * var(--hand-count, 7)) / max(1, calc(var(--hand-count, 7) - 1))));
}
.hand .playing-card > * { pointer-events: none; }
.hand-meta { height: 44px; min-height: 44px; }
.hand-meta .link-btn { height: 44px; min-height: 44px; padding: 8px 4px; }
.selection-info { min-height: 28px; max-height: none; overflow-wrap: anywhere; }
.actions { min-height: 44px; }
.actions button { min-width: 44px; min-height: 44px; line-height: 1.3; }
.actions .tiny { min-width: 44px; }
.battle-footer { height: 44px; min-height: 44px; gap: 8px; }
.battle-footer > span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.battle-footer .link-btn { min-height: 44px; padding: 8px; }
.battle-page { overflow-x: hidden; overflow-y: auto; }
.battlefield { min-height: 250px; flex-shrink: 0; }
.fighter { touch-action: manipulation; }
.fighter-info { flex-shrink: 0; }
.team-side-label { pointer-events: none; }

/* Preserve the chess hall's five-tile silhouette; enlarge the transparent
   touch targets around its existing round tools rather than moving the tiles. */
.hall-tools { grid-template-columns: repeat(4, 44px); gap: 0; }
.hall-tools button { width: 44px; min-width: 44px; min-height: 48px; justify-content: center; }
.hall-tools small { font-size: 10px; }
.hall-name { min-height: 44px; margin-top: -6px; margin-bottom: -6px; }
.hall-rewards { gap: 6px; }
.hall-rewards button { min-width: 44px; }
.hall-nav button { min-height: 58px; }
.hall-utilities { min-height: 68px; flex-basis: 72px; gap: 6px; }
.hall-record { line-height: 1.4; }
.hall-game-caption small { line-height: 1.4; }

@media (max-width: 700px) {
  .topbar { height: 60px; min-height: 60px; padding: 7px 12px; }
  .top-actions { gap: 5px; }
  .round-btn { width: 44px; height: 44px; font-size: 18px; }
  .connection-banner { top: calc(60px + var(--safe-top)); }
  .battle-page { padding: 4px 9px 0; }
  .battlefield { min-height: 242px; }
  .fighter-name { font-size: 11px; }
  .fighter-name small { font-size: 9px; }
  .fighter-stats { font-size: 9px; line-height: 1.35; }
  .character-name { font-size: 9px; }
  .arena-subtitle { font-size: 11px; }
  .attack-ribbon { font-size: 10px; }
  .battle-log { font-size: 10px; max-height: 64px; }
  .hand-dock { padding: 2px 7px 7px; margin-top: 5px; }
  .hand-meta strong, .hand-meta .link-btn { font-size: 11px; }
  .hand { height: 116px; padding: 23px 6px 18px; }
  .hand .playing-card { height: 84px; font-size: 23px; padding: 5px; }
  .hand .playing-card .suit { font-size: 20px; }
  .hand:has(.playing-card:nth-child(n+9)) .playing-card { font-size: 20px; padding-left: 4px; }
  .hand:has(.playing-card:nth-child(n+9)) .playing-card .suit { font-size: 18px; }
  .selection-info { font-size: 11px; line-height: 1.4; padding: 4px 2px; }
  .actions { gap: 6px; }
  .actions button { font-size: 14px; padding: 8px 6px; }
  .actions .secondary { max-width: 74px; }
  .actions .tiny { font-size: 12px; max-width: 46px; }
  .battle-footer { font-size: 10px; }
  .battle-footer .link-btn { font-size: 12px; }
  .dialog { padding-left: 18px; padding-right: 18px; }
  .dialog p, .rules-list { font-size: 13px; }
  .room-title h2 { font-size: 24px; }
  .room-hint { line-height: 1.6; }
  .room-grid { gap: 10px; }
}

@media (max-width: 360px) {
  .topbar { padding-left: 10px; padding-right: 10px; }
  .brand { font-size: 21px; letter-spacing: 1px; }
  .brand small { font-size: 8px; letter-spacing: 0; }
  .top-actions { gap: 3px; }
  .connection { font-size: 9px; }
  .battle-page { padding-left: 6px; padding-right: 6px; }
  .battlefield { grid-template-columns: minmax(72px, 1fr) minmax(110px, 1.4fr) minmax(72px, 1fr); gap: 5px; }
  .fighter-name { font-size: 10px; }
  .fighter-stats { font-size: 8px; }
  .fighter-name small { padding-left: 1px; padding-right: 1px; }
  .arena-subtitle { font-size: 10px; }
  .battle-log { font-size: 9px; }
  .actions { gap: 4px; }
  .actions button { font-size: 13px; padding-left: 4px; padding-right: 4px; }
  .actions .secondary { max-width: 62px; }
  .actions .tiny { font-size: 11px; }
  .hall-utilities { padding-left: 0; padding-right: 0; }
  .hall-rewards { gap: 4px; }
  .hall-rewards button { min-width: 42px; }
  .hall-tools { gap: 0; }
  .hall-tools button { min-width: 44px; }
  .hall-record { font-size: 9px; }
  .hall-quick { width: 100%; }
  .room-code { gap: 7px; padding-left: 10px; padding-right: 6px; }
  .room-code b { font-size: 25px; letter-spacing: 3px; }
  .dialog { padding-left: 14px; padding-right: 14px; }
  .dialog h2 { font-size: 21px; }
  .mode-card strong { font-size: 17px; }
  .mode-card span { font-size: 10px; }
  .reward-grid { gap: 9px; }
  .reward-grid .playing-card { width: 65px; height: 102px; }
}

@media (max-height: 650px) and (orientation: portrait) {
  .battlefield { min-height: 194px; }
  .battle-top { min-height: 30px; }
  .fighter-figure { min-height: 35px; max-height: 74px; }
  .fighter-info { padding-top: 3px; padding-bottom: 3px; }
  .fighter-stats { margin-top: 1px; }
  .team-side { gap: 7px; }
  .battle-center { padding-top: 12px; padding-bottom: 0; }
  .arena { min-height: 76px; padding: 4px 0; }
  .turn-banner { font-size: 12px; line-height: 1.4; }
  .played-row { margin-top: 7px; margin-bottom: 7px; }
  .hand-dock { margin-top: 3px; padding-top: 0; padding-bottom: 5px; }
  .hand { height: 98px; padding-top: 20px; padding-bottom: 15px; }
  .hand .playing-card { height: 74px; font-size: 21px; }
  .hand .playing-card .center-suit { font-size: 22px; bottom: 22px; }
  .hand .playing-card .special-title { bottom: 23px; }
  .selection-info { min-height: 26px; font-size: 10px; }
  .battle-footer { min-height: 44px; }
  .stage-content { padding-top: 12px; padding-bottom: 12px; }
  .stage-title { font-size: 24px; }
}

/* Short landscape phones use the width: teams stay left/right of the table,
   with the hand and its actions in a separate adjacent panel. */
@media (orientation: landscape) and (max-height: 520px) and (min-width: 540px) {
  .topbar { height: 52px; min-height: 52px; padding: 4px 16px; }
  .brand { font-size: 21px; }
  .brand small { font-size: 8px; margin-top: 1px; }
  .connection-banner { top: calc(52px + var(--safe-top)); }
  .battle-page {
    display: grid;
    grid-template-columns: minmax(252px, 1.12fr) minmax(242px, 1fr);
    grid-template-rows: 28px minmax(178px, 1fr) 44px;
    column-gap: 10px;
    padding: 3px 12px 0;
    align-content: stretch;
  }
  .battle-top { grid-column: 1; grid-row: 1; min-height: 28px; padding: 1px 0 3px; gap: 5px; }
  .battle-title { font-size: 11px; }
  .score { gap: 7px; font-size: 10px; }
  .score b { font-size: 23px; }
  .battlefield { grid-column: 1; grid-row: 2; min-height: 178px; padding-top: 13px; grid-template-columns: minmax(64px, 1fr) minmax(106px, 1.4fr) minmax(64px, 1fr); gap: 6px; }
  .team-side { gap: 5px; }
  .team-side-label { top: -6px; font-size: 8px; padding: 2px 5px; letter-spacing: 0; }
  .fighter, .allies .fighter { max-height: 125px; max-width: 130px; padding: 0 0 2px; }
  .fighter-figure { min-height: 27px; max-height: 74px; width: min(75%, 67px); }
  .fighter-info { padding: 3px 2px; margin-top: -3px; border-radius: 6px; }
  .fighter-name { font-size: 9px; }
  .fighter-name small { font-size: 8px; min-height: 10px; padding: 0 1px; }
  .character-name { font-size: 8px; top: -11px; padding: 0 2px; }
  .hp { font-size: 12px; letter-spacing: .5px; }
  .fighter-stats { font-size: 8px; line-height: 1.2; margin-top: 1px; }
  .fighter .turn-label { font-size: 8px; padding: 1px 4px; top: 0; }
  .fighter.targeted .fighter-info { padding: 2px 1px; }
  .battle-center { padding: 7px 0 0; }
  .arena { min-height: 90px; padding: 3px 0; }
  .turn-banner { font-size: 12px; line-height: 1.4; margin-bottom: 5px; letter-spacing: 0; }
  .countdown { min-width: 28px; font-size: 9px; line-height: 17px; }
  .arena-subtitle { font-size: 9px; }
  .played-row { gap: 3px; margin: 7px 0; }
  .mini-card { width: 28px; flex-basis: 28px; min-width: 16px; height: 40px; font-size: 15px; }
  .mini-card small { font-size: 14px; }
  .attack-ribbon { font-size: 9px; padding: 3px 4px; }
  .battle-log { min-height: 25px; max-height: 42px; font-size: 9px; line-height: 1.3; padding: 3px; }
  .hand-dock { grid-column: 2; grid-row: 1 / 3; align-self: stretch; display: flex; flex-direction: column; justify-content: center; margin: 0; padding: 0 7px 7px; border-radius: 12px; min-width: 0; }
  .hand-meta { flex-shrink: 0; padding: 0; }
  .hand-meta strong, .hand-meta .link-btn { font-size: 10px; }
  .hand { --fan-card-width: 55px; height: 108px; flex: 1 0 102px; max-height: 142px; padding: 23px 4px 18px; }
  .hand .playing-card { height: 80px; font-size: 22px; padding: 5px; }
  .hand .playing-card .suit { font-size: 19px; }
  .hand .playing-card .center-suit { font-size: 24px; bottom: 23px; right: 12px; }
  .hand .playing-card .special-title { bottom: 25px; font-size: 10px; }
  .hand .playing-card .card-corner-bottom { font-size: 14px; right: 4px; bottom: 4px; }
  .hand .playing-card .card-corner-bottom small { font-size: 11px; }
  .hand:has(.playing-card:nth-child(n+9)) .playing-card { font-size: 18px; padding-left: 3px; }
  .hand:has(.playing-card:nth-child(n+9)) .playing-card .suit { font-size: 16px; }
  .selection-info { font-size: 10px; padding: 3px 0; min-height: 28px; }
  .actions { gap: 4px; flex-shrink: 0; margin-top: 2px; }
  .actions button { min-width: 44px; min-height: 44px; padding: 6px 3px; font-size: 13px; }
  .actions .secondary { max-width: 62px; }
  .actions .tiny { max-width: 44px; font-size: 11px; }
  .battle-footer { grid-column: 1 / -1; grid-row: 3; margin: 0; padding: 0 3px; }
  .dialog { max-width: 540px; padding-top: 25px; padding-bottom: 20px; }
  .dialog h2 { font-size: 22px; }
  .dialog h3 { margin-top: 12px !important; }
  .dialog input, .dialog select { margin-top: 10px; margin-bottom: 10px; }
  .stage-content { padding: 10px 0 16px; gap: 12px; }
  .room-seat { min-height: 112px; }
  .room-seat .avatar { width: 45px; height: 45px; }
}

@media (prefers-reduced-motion: reduce) {
  .fighter-figure, .lobby-cast > *, .match-rings, .playing-card, .played-row { animation: none !important; transition: none !important; }
}

@media (orientation: landscape) and (max-height: 350px) and (min-width: 540px) {
  .battle-page { grid-template-rows: 28px minmax(190px, 1fr) 44px; padding-left: 7px; padding-right: 7px; column-gap: 8px; }
  .hand { height: 96px; flex-basis: 92px; max-height: 102px; padding-top: 19px; padding-bottom: 15px; }
  .hand .playing-card { height: 72px; font-size: 20px; }
  .hand .playing-card .center-suit { bottom: 20px; font-size: 22px; }
  .hand .playing-card .special-title { bottom: 23px; }
  .selection-info { min-height: 24px; font-size: 9px; }
}

/* Matching and fallback belong to the playable interface, independent of scene load. */
body:has(#jiajiale-app) #splash { display: none !important; }
.quick-match-status { display:flex;flex-direction:column;gap:5px;align-items:center;text-align:center;border:1px solid #b99355;border-radius:14px;background:#1a243bdd;padding:12px;margin:8px 0 12px;color:#f8e4b4;flex-shrink:0; }
.quick-match-status strong { font:800 20px var(--serif);color:#ffe0a0; }
.quick-match-status strong span { display:inline-block;min-width:1.1em;font-size:28px;color:#ffd16e; }
.quick-match-status>span { font-size:12px;color:#e3ddce; }
.quick-match-status small { font-size:11px;line-height:1.5;color:#c0c6d0; }
.room-seat.vacant { border-style:dashed;opacity:.75; }
.room-page .room-actions { flex-shrink:0; }
#invite-link,.room-code b { -webkit-user-select:text;user-select:text; }
#invite-link { font-size:16px; }
@media(max-height:650px){.quick-match-status{padding:7px;margin:4px 0 8px;gap:2px}.quick-match-status strong{font-size:17px}.quick-match-status strong span{font-size:22px}.room-page .room-grid{margin-bottom:6px}}

/* Preserve atlas proportions while centering the narrower frame in its lane. */
.fighter-figure {
  display: flex;
  justify-content: center;
  align-items: flex-end;
}
@media (max-height: 650px) and (orientation: portrait) {
  /* The central turn prompt and nameplate remain visible on compact phones. */
  .fighter .character-name, .fighter .turn-label { display: none; }
}
/* Keep the hall's ornamental highlights from creating a horizontal scroll rail. */
.xiangqi-lobby { overflow-x: hidden; }

/* Equipped J art stays beside the fighter stats without covering the hand. */
.fighter.equipment-on:after{display:none}.fighter-equipment{position:absolute;right:3px;bottom:3px;display:flex;gap:2px;pointer-events:none}.fighter-equipment img{width:22px;height:22px;object-fit:contain;border:1px solid #e1bd7766;border-radius:4px;background:#352b2a}.fighter.equipment-on .fighter-stats{padding-right:28px}
@media(max-width:700px){.fighter-equipment img{width:15px;height:17px}.fighter-equipment img+img{display:none}.fighter.equipment-on .fighter-stats{padding-right:14px}}

/* Qin's source portrait faces left; each seat still looks toward the table. */
.enemy .character-image[data-facing="left"]{transform:none}
.ally .character-image[data-facing="left"]{transform:scaleX(-1)}

/* Readiness is a separate player choice; show it before the room roster. */
.room-ready-panel {
  flex-shrink: 0;
  padding: 13px 14px;
  margin: 0 0 14px;
  border: 1px solid #b99761;
  border-radius: 14px;
  color: #f8e7c3;
  background: linear-gradient(140deg, #35463af5, #192c31f5);
  box-shadow: inset 0 1px 0 #e5cc9a21, 0 5px 16px #10182b38;
  text-align: center;
}
.room-own-ready { font-size: 15px; font-weight: 800; line-height: 1.6; }
.room-own-ready [data-ready-countdown] { font-size: 21px; font-variant-numeric: tabular-nums; color: #ffe0a0; }
.room-ready-buttons { display: flex; gap: 10px; margin: 9px 0; }
.room-ready-buttons button { flex: 1; min-width: 0; min-height: 46px; padding: 10px 8px; font-size: 15px; }
.room-start-reason { font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.room-ready-panel > small { display: block; color: #d5ccaf; font-size: 11px; line-height: 1.5; margin-top: 4px; }
.room-seat.is-self { border-color: #ecd185; box-shadow: inset 0 0 0 1px #ecd18555, 0 5px 0 #10182b99; }
.room-seat .ready-tag { white-space: normal; line-height: 1.5; }
.room-seat [data-ready-countdown] { font-weight: 850; font-variant-numeric: tabular-nums; }
.room-ready-panel .urgent, .ready-tag .urgent { color: #ffc18d; }
.room-page .room-actions button, .room-page .room-code button { min-height: 44px; }
.room-page .room-grid { flex-shrink: 0; }
.room-page .room-actions { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
.takeover-title { text-align: center; font: 800 20px var(--serif); line-height: 1.5; color: #ffe4af; margin: 3px 0 14px !important; }
@media (max-height: 650px) {
  .room-ready-panel { padding: 9px 11px; margin-bottom: 10px; }
  .room-ready-buttons { margin: 7px 0; gap: 7px; }
  .room-ready-buttons button { min-height: 44px; }
  .room-own-ready { font-size: 14px; }
  .room-page .room-title { padding-bottom: 8px; }
}
@media (max-width: 350px) {
  .room-ready-buttons button { font-size: 13px; padding-inline: 5px; }
  .room-ready-panel > small { font-size: 10px; }
}
.pile-counts{display:inline-flex;gap:8px;white-space:nowrap;font-size:12px;color:#efd5a0}
.fighter.targeted{outline:2px solid #ffd574;outline-offset:2px;filter:drop-shadow(0 0 5px #e8ae3870)}
.target-marker{position:absolute;top:2px;left:50%;transform:translateX(-50%);z-index:3;padding:2px 6px;border-radius:8px;background:#ffdc86;color:#37220e;font-size:10px;white-space:nowrap;pointer-events:none}
.fighter.targeted .turn-label{top:24px}

/* Public attack and every response stay on the table until the next play. */
.table-exchange{display:flex;flex-direction:column;gap:7px;width:100%;min-width:0}
.table-attack>small,.table-response>small{display:block;font-size:11px;color:#ffedc9;text-shadow:0 1px 3px #20140f;overflow-wrap:anywhere;line-height:1.4}
.table-exchange .played-row{flex-wrap:wrap;gap:3px;margin:5px 0;max-width:100%}
.table-exchange .mini-card{width:28px;flex:0 1 28px;min-width:20px;height:39px;font-size:15px}
.table-exchange .mini-card small{font-size:12px}
.table-response{padding-top:5px;border-top:1px solid #e5c89155}
.table-response.blocked>small{color:#c6f4dc}
.table-pass{display:block;font-size:11px;color:#f2c6aa;padding:4px 0}
.seat-move{min-height:44px!important;padding:7px 10px!important;font-size:12px!important;margin-top:5px;width:100%}
.seat-swap-request{padding:14px;border:1px solid #e6c581;border-radius:12px;background:#352a25ed;color:#fff0cd;margin:10px 0}
.seat-swap-request>strong,.seat-swap-request>small{display:block;line-height:1.5}
.seat-swap-request p{font-size:12px;line-height:1.6;margin:7px 0!important}
.quick-match-status>button{min-height:44px;padding:8px 16px;margin-top:7px}
.name-dice-row{display:flex;gap:8px;align-items:center}
.name-dice-row input{min-width:0;flex:1}
.name-dice-row .name-dice{flex:0 0 48px;min-width:48px;min-height:48px;font-size:28px;padding:4px}
.account-status{display:flex;flex-direction:column;gap:7px;padding:13px;border:1px solid #d0ae6944;border-radius:10px;color:#efcf95}
.account-status>span{font-size:12px;color:#e2d6c0;overflow-wrap:anywhere}
.account-form>label{display:block;font-size:12px;margin-top:10px}
.account-form input{margin:7px 0!important;font-size:16px}
.account-form .account-error{color:#f4ad96;font-size:12px;min-height:18px;margin:6px 0!important}
.account-form .helper{font-size:12px}
.hub-account{margin-top:25px;border-top:1px solid #c09c6a55;padding-top:10px}
.rank-qualification{display:flex;flex-direction:column;gap:9px;border:1px solid #bc985d66;border-radius:12px;padding:14px;color:#ffe3a8;margin:12px 0}
.rank-qualification>span,.rank-qualification>small{font-size:12px;line-height:1.6;color:#d6d1c5}
.rank-qualification progress{width:100%;height:9px;accent-color:#d9b65f}
.stats-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stats-detail-grid>span{display:flex;flex-direction:column;align-items:center;gap:7px;border-bottom:1px solid #ba9a6433;padding:12px 3px;color:#c6c8c7;font-size:10px;text-align:center}
.stats-detail-grid b{font-size:17px;color:#f3dfb8}
.stats-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.stats-modes article{display:flex;flex-direction:column;gap:7px;border:1px solid #b699633f;border-radius:10px;padding:13px 9px}
.stats-modes strong{font-size:13px;color:#f7d9a6}.stats-modes span{font-size:12px}.stats-modes small{font-size:10px;color:#bdc5c7}
.solo-challenge .team-side{justify-content:center}.solo-challenge .fighter{max-height:360px}.solo-challenge .fighter-figure{max-height:250px}
@media(max-width:700px){.table-exchange{gap:4px}.table-attack>small,.table-response>small{font-size:9px}.table-exchange .mini-card{width:23px;flex-basis:23px;height:32px;min-width:16px;font-size:12px}.table-exchange .mini-card small{font-size:10px}.table-pass{font-size:9px}.table-response{padding-top:3px}.solo-challenge .fighter-figure{max-height:170px}.room-seat .seat-move{font-size:11px!important}.account-form .gold-btn{font-size:14px}}
@media(max-width:360px){.table-exchange .mini-card{width:21px;flex-basis:21px;min-width:15px;height:30px}.stats-detail-grid{gap:5px}.stats-detail-grid b{font-size:15px}}
.hall-account-entry{display:block;min-height:44px;padding:6px 0;background:none;color:#efd398;font-size:11px;font-weight:700;text-align:left;text-decoration:underline;text-underline-offset:3px;touch-action:manipulation}
.hall-profile:has(.hall-account-entry){min-height:108px;height:auto}
@media(max-width:360px){.hall-account-entry{font-size:10px}.hall-profile:has(.hall-account-entry){min-height:102px}}
