:root{font-family:Trebuchet MS,Segoe UI,sans-serif;color:#173b38;background:#f5efe2;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f5efe2}form{display:flex;flex-direction:column;gap:.75rem;max-width:320px}button,input{font:inherit}button{cursor:pointer}.seo-page{max-width:1080px;margin:auto;padding:clamp(1rem,4vw,3rem);line-height:1.65}.seo-nav,.trainer-choices{display:flex;flex-wrap:wrap;gap:1rem}.seo-nav a,.seo-play-link{display:inline-flex;align-items:center;min-height:44px}.seo-page a{color:#105c56}.room-introduction{margin:1rem 0;line-height:1.5}.seo-hero{padding:clamp(2rem,6vw,4rem) 0}.seo-hero h1{font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.5rem);line-height:1.15}.seo-hero p{max-width:720px}.seo-actions{max-width:360px;min-height:105px}.seo-actions .primary-action{color:#fffaf0;justify-content:center;min-height:48px}.seo-page section{margin-bottom:2rem}.tile-trainer{padding:1.5rem;background:#fffaf0;border:1px solid #d8cdb6}.trainer-face{width:70px;height:96px;margin:1rem 0}.trainer-face .tile-face{width:100%;height:100%}.tile-trainer button{min-height:48px;padding:.6rem 1rem}.trainer-feedback{min-height:2rem}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(280px,.9fr) minmax(360px,440px);align-items:center;justify-content:center;gap:clamp(3rem,9vw,9rem);padding:clamp(2rem,6vw,6rem);background-color:#f5efe2;background-image:radial-gradient(#d8cdb6 .8px,transparent .8px);background-size:18px 18px}.login-intro{max-width:420px;padding:1rem 0}.brand-mark{width:54px;height:54px;display:grid;place-items:center;margin-bottom:2.5rem;color:#f8f2e7;background:#16736b;border:5px solid #e2b866;box-shadow:8px 8px #d8cdb6;transform:rotate(-7deg);font-family:Georgia,serif;font-size:1.6rem}.eyebrow{margin:0 0 .7rem;color:#b15c43;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.login-intro h1{margin:0;color:#173b38;font-family:Georgia,Times New Roman,serif;font-size:clamp(4rem,9vw,7.5rem);font-weight:400;letter-spacing:-.04em;line-height:.9}.intro-copy{max-width:290px;margin:1.5rem 0 0;color:#56706a;font-family:Georgia,Times New Roman,serif;font-size:1.25rem;line-height:1.45}.tile-row{display:flex;gap:.55rem;margin-top:3rem}.tile-row span{width:42px;height:52px;display:grid;place-items:center;color:#b15c43;background:#fffaf0;border:1px solid #d8cdb6;border-radius:4px;box-shadow:3px 3px #d8cdb6;font-family:Georgia,serif;font-size:1.3rem}.tile-row span:nth-child(2){color:#16736b;transform:translateY(-8px) rotate(4deg)}.login-card{width:100%;padding:clamp(1.6rem,4vw,2.7rem);background:#fffaf0f0;border:1px solid #ded3bf;border-top:5px solid #16736b;box-shadow:14px 14px #d8cdb6b3}.login-card-heading h2{margin:0;color:#173b38;font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:400}.login-card-heading>p:last-child{margin:.65rem 0 2rem;color:#71817a;font-size:.92rem;line-height:1.5}.login-card form{max-width:none;gap:1.1rem}.login-card label{color:#385852;font-size:.78rem;font-weight:800;letter-spacing:.04em}.login-card input{width:100%;margin-top:.45rem;padding:.85rem .95rem;color:#173b38;background:#fffdf8;border:1px solid #cfc4af;border-radius:3px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.login-card input::placeholder{color:#a7a094}.login-card input:focus{border-color:#16736b;box-shadow:0 0 0 3px #16736b24}.login-error{margin:-.25rem 0 0;padding:.7rem .8rem;color:#8d3f31;background:#fae8df;border-left:3px solid #b15c43;font-size:.85rem}.primary-action{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:.4rem;padding:.9rem 1rem;color:#fffaf0;background:#16736b;border:0;border-radius:3px;font-weight:800;transition:background .15s ease,transform .15s ease}.primary-action:hover{background:#105c56;transform:translateY(-2px)}.primary-action span:last-child{font-size:1.25rem}.guest-action{width:100%;margin-top:.75rem;padding:.85rem 1rem;color:#16736b;background:#fffdf8;border:1px solid #16736b;border-radius:3px;font-weight:800;transition:background .15s ease,transform .15s ease}.guest-action:hover{background:#edf7f3;transform:translateY(-2px)}.login-switch{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem;color:#71817a;font-size:.82rem}.login-switch button{padding:0;color:#b15c43;background:transparent;border:0;font-weight:800}.login-switch button:hover{color:#8d3f31;text-decoration:underline}@media (max-width: 760px){.login-page{grid-template-columns:1fr;gap:2rem;padding:2rem 1.25rem 3rem}.login-intro{max-width:440px;margin:0 auto;text-align:center}.brand-mark{margin:0 auto 1.6rem}.login-intro h1{font-size:clamp(4rem,20vw,6rem)}.intro-copy{margin-right:auto;margin-left:auto}.tile-row{justify-content:center;margin-top:1.5rem}.login-card{max-width:440px;margin:0 auto;box-shadow:8px 8px #d8cdb6b3}}label{display:flex;flex-direction:column;gap:.25rem}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.table-card{border:1px solid #ccc;border-radius:8px;padding:1rem}.seat-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.seat-list .add-bot-button{margin-top:.25rem;font-size:.8rem;opacity:.85}[role=alert]{color:#b00020}.reconnecting-banner{color:#b00020;font-weight:600}.turn-countdown{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}.turn-countdown-track{width:160px;height:8px;background:#eee;border-radius:4px;overflow:hidden}.turn-countdown-fill{height:100%;background:#2e7d32;transition:width .2s linear}.bot-fill-banner{margin:.5rem 0;padding:.6rem .9rem;border:1px solid #f57c00;border-radius:8px;background:#fff8ec}.bot-fill-banner p{margin:0 0 .35rem}.bot-fill-banner .bot-fill-hint{margin:.35rem 0 0;font-size:.85rem;color:#6b5d3f}.access-denied{max-width:26rem;margin:4rem auto;padding:1.5rem 2rem;border:1px solid #f0b4b4;border-radius:10px;background:#fff5f5;color:inherit}.access-denied h1{margin:.25rem 0 .5rem;font-size:1.4rem;color:#b00020}.access-denied p{margin:.4rem 0}.access-denied-redirect strong{font-variant-numeric:tabular-nums}.bot-fill-track{width:220px;max-width:100%;height:8px;background:#eee;border-radius:4px;overflow:hidden}.bot-fill-fill{height:100%;background:#f57c00;transition:width 1s linear}.call-prompt{position:fixed;left:50%;bottom:clamp(150px,20vh,220px);z-index:20;width:min(320px,calc(100% - 2rem));border:2px solid #f57c00;border-radius:8px;padding:.75rem;background:#fffdf8;box-shadow:0 8px 24px #173b383d;transform:translate(-50%)}.call-prompt-actions{display:flex;gap:.5rem;flex-wrap:wrap}.call-discarded-tile{display:flex;align-items:center;gap:.75rem;margin:.75rem 0;color:#71817a;font-size:.75rem;font-weight:800}.call-countdown{display:flex;align-items:center;gap:.5rem;margin:.75rem 0;color:#8d3f31;font-weight:800}.call-countdown-track{flex:1;height:8px;background:#f2d8c8;border-radius:4px;overflow:hidden}.call-countdown-fill{height:100%;background:#b15c43;transition:width .2s linear}.settlement-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#173b38a6;padding:1rem}.settlement-modal{position:relative;width:min(420px,100%);max-height:calc(100vh - 2rem);overflow-y:auto;background:#fffdf8;border-radius:12px;border:2px solid #e2b866;padding:1.5rem;box-shadow:0 16px 40px #173b3859}.settlement-modal-winner{border-color:#f5c518;animation:settlement-glow 1.6s ease-in-out infinite}.settlement-celebration{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.settlement-celebration span{position:absolute;top:-1rem;left:calc((var(--piece, 0) + 1) * 7.7%);width:8px;height:16px;background:#f5c518;animation:settlement-confetti 2.4s linear infinite;animation-delay:calc(var(--piece, 0) * -.17s)}.settlement-celebration span:nth-child(3n+1){background:#16736b;transform:rotate(24deg)}.settlement-celebration span:nth-child(3n+2){background:#b15c43;transform:rotate(-18deg)}.settlement-celebration span:nth-child(1){--piece: 0}.settlement-celebration span:nth-child(2){--piece: 1}.settlement-celebration span:nth-child(3){--piece: 2}.settlement-celebration span:nth-child(4){--piece: 3}.settlement-celebration span:nth-child(5){--piece: 4}.settlement-celebration span:nth-child(6){--piece: 5}.settlement-celebration span:nth-child(7){--piece: 6}.settlement-celebration span:nth-child(8){--piece: 7}.settlement-celebration span:nth-child(9){--piece: 8}.settlement-celebration span:nth-child(10){--piece: 9}.settlement-celebration span:nth-child(11){--piece: 10}.settlement-celebration span:nth-child(12){--piece: 11}@keyframes settlement-confetti{0%{translate:0 -1rem;opacity:0}10%{opacity:1}to{translate:18px 440px;rotate:360deg;opacity:0}}@keyframes settlement-glow{0%,to{box-shadow:0 16px 40px #173b3859}50%{box-shadow:0 16px 48px #f5c518a6}}.settlement-announcement{text-align:center;margin-bottom:1.25rem}.settlement-trophy{display:inline-block;font-size:2.5rem;animation:settlement-bounce 1s ease-in-out infinite}@keyframes settlement-bounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.1)}}.settlement-announcement-you h2{color:#b15c43}.settlement-score{color:#5c5142;font-weight:600}.settlement-patterns{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem;margin:.65rem 0 0;padding:0;list-style:none}.settlement-patterns li{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .5rem;color:#155d57;background:#e1f0e9;border:1px solid #91bdb1;border-radius:4px;font-size:.75rem;font-weight:700}.settlement-pattern-name{color:#0e3a34}.settlement-pattern-fan{color:#925c0e;background:#e2b86659;padding:1px 4px;border-radius:3px;font-weight:800}.settlement-ranking{width:100%;border-collapse:collapse;margin-bottom:1.25rem}.settlement-ranking th,.settlement-ranking td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid #e6dcc6}.settlement-row-you{background:#fdf3df;font-weight:700}.settlement-delta-positive{color:#2e7d32;font-weight:700}.settlement-delta-negative{color:#b3261e;font-weight:700}.room-page{width:min(1180px,calc(100% - 3rem));min-height:100vh;margin:0 auto;padding:2rem 0 4rem}.room-leaderboard{margin:0 0 1.5rem;padding:0 0 1rem;border-block:1px solid #d8cdb6;border-top:0}.room-leaderboard ol{display:grid;grid-template-columns:1fr;gap:.5rem 1.5rem;margin:0;padding:0;list-style:none}.room-leaderboard li{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.5rem;min-width:0;padding:.5rem 0;border-bottom:1px solid #e6dcc6}.room-leaderboard li>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-rank{color:#8d3f31;font-weight:800}.leaderboard-you{color:#16736b}.room-banner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.25rem 1.5rem;color:#f8f2e7;background:#173b38;border-bottom:4px solid #e2b866}.room-banner h1,.section-heading h2{margin:0;font-family:Georgia,Times New Roman,serif;font-weight:400}.room-banner h1{font-size:2rem}.room-kicker,.room-account-label{margin:0 0 .3rem;color:#d9b970;font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.room-account{display:flex;align-items:center;gap:1.4rem}.room-account>div{display:flex;flex-direction:column;gap:.15rem}.room-account strong{font-size:.92rem}.room-login-link{color:#fff}.room-balance strong{color:#f0ca78}.logout-button{padding:.55rem .8rem;color:#f8f2e7;background:transparent;border:1px solid rgba(248,242,231,.55);border-radius:3px;font-size:.8rem;font-weight:800}.logout-button:hover{color:#173b38;background:#f8f2e7}.room-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 0 1.25rem}.room-toolbar>p{margin:0;color:#71817a}.info-board-toggle{width:2.25rem;height:2.25rem;display:grid;flex:0 0 auto;place-items:center;padding:0;color:#173b38;background:#fffaf0;border:1px solid #b9aa8e;border-radius:50%;font-family:Georgia,Times New Roman,serif;font-size:1rem;font-weight:700;line-height:1}.info-board-toggle:hover,.info-board-toggle[aria-expanded=true]{color:#fffaf0;background:#16736b;border-color:#16736b}.info-board-toggle:focus-visible{outline:3px solid rgba(226,184,102,.7);outline-offset:2px}.tutorial-ribbon{width:fit-content;display:flex;align-items:center;gap:.55rem;margin-left:auto;padding:.65rem 1.1rem .65rem .85rem;color:#173b38;background:#e2b866;box-shadow:4px 4px #c99c4d;font-weight:800;text-decoration:none;transform:translateY(-2px)}.tutorial-ribbon small{padding-left:.55rem;border-left:1px solid rgba(23,59,56,.35);font-size:.68rem;font-weight:700}.tutorial-page{width:min(1120px,calc(100% - 3rem));margin:0 auto;padding:2rem 0 5rem}.tutorial-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;padding:clamp(1.5rem,4vw,3rem);color:#f8f2e7;background:#173b38;border-bottom:5px solid #e2b866}.tutorial-hero h1{max-width:720px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.3rem,6vw,4.8rem);font-weight:400;line-height:1}.tutorial-hero p:last-child{max-width:650px;margin:1rem 0 0;color:#d7e1dc}.tutorial-hero a{flex:0 0 auto;color:#f0ca78;font-weight:800}.tutorial-jump-links{display:flex;flex-wrap:wrap;gap:.6rem;padding:1rem 0 2rem}.tutorial-jump-links a{padding:.55rem .75rem;color:#155d57;background:#e1f0e9;border:1px solid #91bdb1;font-weight:800;text-decoration:none}.tutorial-section{padding:2rem 0;border-bottom:1px solid #d8cdb6;scroll-margin-top:1rem}.tutorial-section h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,4vw,2.7rem);font-weight:400}.tutorial-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:1.25rem}.tutorial-cards article{display:grid;gap:.45rem;padding:1rem;background:#fffaf0;border:1px solid #ded3bf;border-top:3px solid #16736b}.tutorial-cards span,.tutorial-scoring-guide>p:last-child{color:#56706a;font-size:.86rem;line-height:1.5}.tutorial-scoring-guide ol{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:0;counter-reset:scoring-step;list-style:none}.tutorial-scoring-guide li{padding:1rem;background:#e8f1e9;counter-increment:scoring-step}.tutorial-scoring-guide li:before{content:counter(scoring-step,decimal-leading-zero);display:block;margin-bottom:.6rem;color:#b15c43;font-weight:800}.tutorial-pattern-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.tutorial-pattern-heading>span{padding:.45rem .7rem;color:#f8f2e7;background:#16736b;font-weight:800}.fan-group{padding-top:2rem}.fan-group h3{margin:0 0 .8rem;color:#b15c43;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.pattern-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.pattern-card{min-width:0;display:flex;flex-direction:column;gap:.65rem;padding:1rem;background:#fffaf0e0;border:1px solid #ded3bf;border-top:3px solid #16736b}.pattern-card header{display:grid;grid-template-columns:2.2rem minmax(0,1fr) auto;align-items:baseline;gap:.65rem}.pattern-number{color:#b15c43;font-family:Georgia,Times New Roman,serif;font-size:1.15rem}.pattern-grid h4{margin:0;color:#173b38;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;font-weight:400}.pattern-card header strong{padding:.25rem .45rem;color:#173b38;background:#f0ca78;border-radius:2px;font-size:.68rem;white-space:nowrap}.pattern-grid p{min-height:2.3em;margin:0;color:#71817a;font-size:.78rem;line-height:1.45}.pattern-example{min-height:52px;display:flex;align-items:flex-end;gap:3px;overflow-x:auto;padding:.45rem .45rem .55rem;background:#e8f1e9;border:1px solid #c5d7cb}.pattern-example .tutorial-tile{width:30px;height:43px;flex:0 0 30px;padding:.2rem;border-radius:3px;box-shadow:1px 2px #b7aa92}.pattern-example .tutorial-tile .tile-character-mark{font-size:.82rem}.pattern-example .tutorial-tile .tile-character-mark small{font-size:.36rem}.pattern-example .tutorial-tile .tile-honor-mark{font-size:1rem}.pattern-example .tutorial-tile .tile-flower-mark{color:#b15c43}.pattern-card>small{color:#56706a;font-size:.69rem;line-height:1.4}.mcr-tutorial{margin:0 0 2rem;padding:clamp(1rem,2.5vw,1.5rem);background:#fffaf0;border:1px solid #ded3bf;border-top:4px solid #e2b866;box-shadow:6px 6px #d8cdb68c}.mcr-tutorial-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.mcr-tutorial-heading .room-kicker{color:#b15c43}.mcr-tutorial-heading h2{margin:0;color:#173b38;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,3vw,2rem);font-weight:400}.mcr-tutorial-heading>div>p:last-child{margin:.35rem 0 0;color:#71817a}.mcr-tutorial-stamp{width:58px;height:58px;flex:0 0 auto;display:grid;place-content:center;color:#f8f2e7;background:#16736b;border:3px double #e2b866;border-radius:50%;font-family:Georgia,Times New Roman,serif;font-size:.72rem;font-weight:800;line-height:1.05;text-align:center}.mcr-turn-rule{margin:0 0 1rem;padding:.7rem .85rem;color:#38534f;background:#e8f1e9;border-left:3px solid #16736b;font-size:.84rem;line-height:1.5}.mcr-tutorial-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none;counter-reset:tutorial}.mcr-tutorial-step{min-width:0;padding:.9rem;background:#f7f1e6;border:1px solid #e0d5c2;counter-increment:tutorial}.mcr-step-number{width:2rem;height:2rem;display:grid;place-items:center;color:#fffaf0;background:#16736b;border-radius:50%;font-size:.75rem;font-weight:800}.mcr-tutorial-step h3{margin:.65rem 0 .35rem;color:#173b38;font-family:Georgia,Times New Roman,serif;font-size:1.13rem;font-weight:400}.mcr-tutorial-step p{margin:0;color:#56706a;font-size:.8rem;line-height:1.5}.mcr-tile-examples,.mcr-shape-example{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.8rem}.mcr-tile-examples span{padding:.35rem .45rem;color:#173b38;background:#fffdf8;border:1px solid #c9bda7;border-bottom:3px solid #c9bda7;border-radius:3px;font-size:.66rem;font-weight:800}.mcr-shape-example span{min-width:2.1rem;display:grid;place-items:center;padding:.32rem;color:#155d57;background:#e1f0e9;border:1px solid #91bdb1;border-radius:3px;font-size:.68rem;font-weight:800}.mcr-tutorial-step>small{display:block;margin-top:.45rem;color:#71817a;font-size:.68rem;line-height:1.4}.mcr-fan-example{display:flex;align-items:center;justify-content:space-between;gap:.2rem;margin-top:.8rem}.mcr-fan-example>span{min-width:0;display:grid;justify-items:center;gap:.12rem;padding:.4rem;color:#173b38;background:#fffdf8;border:1px solid #ded3bf;border-radius:3px}.mcr-fan-example>span strong{color:#16736b;font-family:Georgia,Times New Roman,serif;font-size:1.15rem}.mcr-fan-example>span small{color:#56706a;font-size:.57rem;text-align:center;white-space:nowrap}.mcr-fan-example>b{color:#b15c43;font-size:.9rem}.mcr-fan-example .mcr-fan-total{background:#fff0c8;border-color:#e2b866}.mcr-tutorial-step-win{background:#e8f1e9;border-color:#a9c5b6}.mcr-tutorial-step-win .mcr-step-number{color:#173b38;background:#f0ca78}.mcr-eight-badge{display:inline-block;margin-top:.8rem;padding:.45rem .55rem;color:#173b38;background:#f0ca78;border-radius:3px;font-size:.72rem;font-weight:800}.mcr-tutorial-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;margin-top:.85rem;padding-top:.8rem;border-top:1px solid #ded3bf}.mcr-tutorial-footer p{margin:0;color:#71817a;font-size:.72rem;line-height:1.5}.mcr-tutorial-footer a{color:#155d57;font-size:.78rem;font-weight:800;text-decoration-thickness:1px;text-underline-offset:3px}.room-toolbar .rules-reference-panel{margin-left:auto}.room-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);gap:2rem;align-items:start}.section-heading{margin-bottom:1rem}.section-heading h2{color:#173b38;font-size:1.8rem}.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.table-card{min-width:0;padding:1.1rem;background:#fffaf0c2;border:1px solid #ded3bf;border-top:3px solid #16736b;border-radius:3px;box-shadow:5px 5px #d8cdb68c}.table-card h2{margin:0;color:#173b38;font-family:Georgia,Times New Roman,serif;font-size:1.35rem;font-weight:400}.table-card>p{margin:.35rem 0 1rem;color:#71817a;font-size:.82rem}.table-card>button{margin-bottom:.8rem;padding:.45rem .65rem;color:#8d3f31;background:#fae8df;border:1px solid #dfaa96;border-radius:3px;font-size:.78rem;font-weight:800}.table-card>.setup-hands-button{margin-right:.5rem;color:#155d57;background:#e1f0e9;border-color:#91bdb1}.room-chat-area{min-width:0}.room-chat-area .chat-panel{height:390px;display:flex;flex-direction:column;padding:1rem;background:#fffaf0e6;border:1px solid #ded3bf;border-top:3px solid #b15c43}.room-chat-area .chat-messages{flex:1;min-height:0;overflow-y:auto;margin:0 0 1rem;padding:0 .2rem}.room-chat-area .chat-panel form{max-width:none;display:grid;grid-template-columns:1fr auto;gap:.5rem}.room-chat-area .chat-panel label{grid-column:1 / -1;color:#71817a;font-size:.75rem}.room-chat-area .chat-panel input{min-width:0;padding:.65rem;border:1px solid #cfc4af}.room-chat-area .chat-panel button{padding:.65rem .8rem;color:#fffaf0;background:#16736b;border:0;border-radius:3px;font-weight:800}@media (max-width: 820px){.room-page{width:min(100% - 2rem,600px)}.room-banner,.room-toolbar{align-items:flex-start;flex-direction:column}.room-account{width:100%;justify-content:space-between}.room-content{grid-template-columns:1fr}.mcr-tutorial-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.mcr-tutorial-footer{grid-template-columns:1fr}.tutorial-hero{align-items:flex-start;flex-direction:column}.tutorial-cards,.tutorial-scoring-guide ol{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.room-page{width:calc(100% - 1.25rem);padding-top:.75rem}.room-banner{padding:1rem}.room-account{align-items:flex-start;flex-wrap:wrap;gap:.8rem 1rem}.room-grid,.mcr-tutorial-flow{grid-template-columns:1fr}.tutorial-page{width:calc(100% - 1.25rem);padding-top:.75rem}.tutorial-cards,.tutorial-scoring-guide ol,.pattern-grid{grid-template-columns:1fr}.tutorial-ribbon small{display:none}}.hand-setup-page{width:min(1100px,calc(100% - 3rem));min-height:100vh;margin:0 auto;padding:2rem 0 5rem}.hand-setup-banner,.hand-setup-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;color:#f8f2e7;background:#173b38;border-bottom:4px solid #e2b866}.hand-setup-banner h1,.hand-setup-banner p{margin:0}.hand-setup-banner button,.hand-setup-actions button{padding:.65rem .9rem;color:#173b38;background:#f4d58d;border:1px solid #d8ab4d;border-radius:3px;font-weight:800}.hand-setup-message{padding:.75rem 1rem;background:#fff4cf;border-left:4px solid #c58a21}.hand-setup-hint{margin:.5rem 0 0;color:#5d6b66;font-style:italic}.seat-hand-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:1.5rem 0 1rem;border-bottom:2px solid #16736b}.seat-hand-tabs button{display:flex;justify-content:space-between;padding:.8rem 1rem;color:#38534f;background:#e8e3d8;border:0;border-right:1px solid #cfc4af}.seat-hand-tabs button.active{color:#fffaf0;background:#16736b}.configured-hand,.tile-palette{padding:1.25rem;background:#fffaf0d1;border:1px solid #d7cbb5}.hand-setup-heading{display:flex;align-items:center;justify-content:space-between}.hand-setup-heading h2,.tile-palette h2,.tile-suit-row h3{margin:0;color:#173b38}.hand-setup-heading button{color:#8d3f31;background:transparent;border:0;font-weight:800}.configured-tiles{display:grid;grid-template-columns:repeat(13,minmax(42px,1fr));gap:.35rem;margin-top:1rem;overflow-x:auto}.configured-tiles button,.empty-tile-slot{min-width:42px;height:62px;border-radius:3px}.configured-tiles button{padding:.2rem;color:#173b38;background:#fffdf7;border:1px solid #b9ad97;font-weight:800}.empty-tile-slot{display:block;background:#eee8dc;border:1px dashed #c8bca7}.tile-palette{margin-top:1rem}.tile-suit-row{display:grid;grid-template-columns:110px 1fr;gap:1rem;align-items:center;margin-top:.8rem}.tile-suit-row h3{font-size:.9rem}.tile-suit-row>div{display:flex;flex-wrap:wrap;gap:.4rem}.tile-suit-row button{width:58px;height:52px;display:grid;place-items:center;padding:.25rem;color:#173b38;background:#fffdf7;border:1px solid #b9ad97;border-radius:3px}.tile-suit-row button span{color:#71817a;font-size:.68rem}.tile-suit-row button:disabled{opacity:.35}.hand-setup-actions{margin-top:1rem;padding:1rem 1.25rem}.hand-setup-actions button:disabled{opacity:.45}@media (max-width: 640px){.hand-setup-page{width:calc(100% - 1.25rem);padding-top:.75rem}.hand-setup-banner,.hand-setup-actions{align-items:flex-start;flex-direction:column}.seat-hand-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-suit-row{grid-template-columns:1fr}}.table-page{width:min(1180px,calc(100% - 3rem));min-height:100vh;margin:0 auto;padding:2rem 0 4rem}.table-banner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.25rem 1.5rem;color:#f8f2e7;background:#173b38;border-bottom:4px solid #e2b866}.table-banner h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:400}.table-banner .table-subline{display:flex;align-items:baseline;gap:.5rem;margin:.25rem 0 0;font-size:.85rem;color:#dfe9df}.table-banner .table-id-code{font-family:Courier New,monospace;font-size:.75rem;letter-spacing:.08em;color:#b9cfc9}.table-account{display:flex;align-items:center;gap:1.5rem;color:#dfe9df;font-size:.85rem}.table-account strong{color:#fffaf0}.table-account .table-balance strong{color:#f0ca78}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 0 1.25rem}.table-toolbar>p{margin:0;color:#71817a}.table-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);gap:2rem;align-items:start}.game-area{min-width:0;padding:clamp(1rem,3vw,1.75rem);background:#fffaf0c2;border:1px solid #ded3bf;border-top:3px solid #16736b;box-shadow:6px 6px #d8cdb68c}.game-area h2{color:#173b38;font-family:Georgia,Times New Roman,serif;font-weight:400}.hand{display:flex;flex-wrap:wrap;gap:.45rem;margin:.75rem 0 1rem}.tile-button{width:58px;height:82px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:.3rem .25rem .35rem;color:#173b38;background:linear-gradient(145deg,#fffdf8,#eee5d3);border:1px solid #c9bda7;border-radius:4px;box-shadow:2px 3px #c9bda7;cursor:grab;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.tile-face{width:58px;height:82px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:.45rem .35rem;color:#173b38;background:linear-gradient(135deg,#fffef9,#f5eddd 72%,#e8dcc7);border:1px solid #c9bda7;border-radius:5px;box-shadow:inset -2px -2px #aa947033,2px 3px #c9bda7}.tile-button .tile-face{width:100%;height:100%;padding:0;background:transparent;border:0;box-shadow:none}.tile-button:hover:not(:disabled),.tile-button.tile-selected{border-color:#16736b;box-shadow:2px 5px #16736b;transform:translateY(-3px)}.tile-button:disabled{cursor:default}.tile-button.tile-dimmed{filter:grayscale(1);opacity:.46}.tile-button.tile-drawn{border-color:#e2b866;box-shadow:2px 5px #e2b866;transform:translateY(-3px)}.tile-button.tile-dragging{cursor:grabbing;opacity:.62;transform:translateY(-6px) rotate(-1deg)}.tile-character-mark{display:flex;width:100%;height:100%;flex:1;flex-direction:column;align-items:center;justify-content:space-evenly;color:#111;font-family:"Noto Serif CJK SC",Microsoft YaHei,serif;font-size:1.8rem;font-weight:700;line-height:.95}.tile-character-mark small{color:#b3312d;font-size:1.5rem;line-height:1}.tile-honor-mark{display:grid;place-items:center;height:100%;color:#b3312d;font-family:"Noto Serif CJK SC",Microsoft YaHei,serif;font-size:2.4rem;font-weight:700}.tile-dragons .tile-honor-mark{color:#13745f}.tile-dragons .tile-dragon-3{color:#303c42}.tile-pattern{width:100%;height:100%;position:relative}.tile-pip{position:absolute;transform:translate(-50%,-50%)}.tile-pip .tile-mark{display:block;width:.8rem;height:.8rem}.tile-dots-pattern .tile-mark{border:.16rem solid #416d8b;border-radius:50%;background:#e9f0ee}.tile-dots-pattern .tile-mark.mark-green{border-color:#26734f;background:#ebf3ea}.tile-dots-pattern .tile-mark.mark-red{border-color:#b3312d;background:#f7ece9}.tile-dot-one{display:block;width:100%;height:100%}.tile-bamboo-pattern .tile-mark{width:.38rem;height:1.05rem;border:1px solid #26734f;border-radius:.35rem .35rem .2rem .2rem;background:linear-gradient(90deg,#75ae65 0,#75ae65 35%,#e2c862 36%,#e2c862 50%,#26734f 51%,#26734f);transform:rotate(-12deg)}.tile-bamboo-pattern .tile-mark.mark-red{border-color:#8f2b28;background:linear-gradient(90deg,#c25650 0,#c25650 35%,#e2c862 36%,#e2c862 50%,#8f2b28 51%,#8f2b28)}.tile-bamboo-pattern .tile-mark.mark-blue{border-color:#2f536e;background:linear-gradient(90deg,#628dab 0,#628dab 35%,#e2c862 36%,#e2c862 50%,#2f536e 51%,#2f536e)}.tile-bamboo-one{display:block;width:100%;height:100%}.player-tile-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:.75rem 0 1.25rem}.player-tile-group{min-width:0;padding:.75rem;border:1px solid #d8cfbd;border-radius:6px;background:#fffdf7b8}.player-tile-group-own{border-color:#16736b;box-shadow:inset 0 0 0 2px #16736b2e;background:#e2f2ebd1}.player-tile-group h3{margin:0 0 .65rem;color:#314a45;font-size:.85rem}.meld-list{display:flex;flex-wrap:wrap;gap:.75rem}.meld{display:flex;flex-direction:column;gap:.35rem}.meld-type{color:#71817a;font-size:.68rem;line-height:1;text-transform:capitalize}.meld-tiles,.discard-pile{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.35rem}.empty-tile-group{margin:0;color:#87928d;font-size:.75rem}.discard-entry{display:flex;flex-direction:column;align-items:center;gap:.2rem}.table-tile{width:44px;height:60px;padding:.28rem .2rem .25rem;box-shadow:2px 2px #c9bda7}.table-tile .tile-rank{font-size:1.05rem}.table-tile .tile-character-mark{font-size:1.25rem}.table-tile .tile-character-mark small{font-size:1.05rem}.table-tile .tile-honor-mark{font-size:1.7rem}.table-tile .tile-pip .tile-mark{width:.55rem;height:.55rem}.table-tile .tile-dots-pattern .tile-mark{border-width:.11rem}.table-tile .tile-bamboo-pattern .tile-mark{width:.25rem;height:.7rem}.discard-meta{color:#71817a;font-size:.68rem;line-height:1}.table-chat-area{min-width:0}.table-chat-area .chat-panel{height:390px;display:flex;flex-direction:column;padding:1rem;background:#fffaf0e6;border:1px solid #ded3bf;border-top:3px solid #b15c43}.table-chat-area .chat-messages{flex:1;min-height:0;overflow-y:auto;margin:0 0 1rem;padding:0 .2rem}.table-chat-area .chat-panel form{max-width:none;display:grid;grid-template-columns:1fr auto;gap:.5rem}.table-chat-area .chat-panel label{grid-column:1 / -1;color:#71817a;font-size:.75rem}.table-chat-area .chat-panel input{min-width:0;padding:.65rem;border:1px solid #cfc4af}.table-chat-area .chat-panel button{padding:.65rem .8rem;color:#fffaf0;background:#16736b;border:0;border-radius:3px;font-weight:800}@media (max-width: 820px){.table-page{width:min(100% - 2rem,600px)}.table-banner,.table-toolbar{align-items:flex-start;flex-direction:column}.table-account{width:100%;justify-content:space-between}.table-content{grid-template-columns:1fr}}@media (max-width: 480px){.table-page{width:calc(100% - 1.25rem);padding-top:.75rem}.table-banner{padding:1rem}.table-account{align-items:flex-start;flex-wrap:wrap;gap:.8rem 1rem}}.audio-controls{position:relative;color:#173b38;font-size:.9rem}.audio-controls summary{cursor:pointer;list-style:none;padding:.45rem .9rem;border:1px solid #ded3bf;border-radius:999px;background:#fffaf0e6;box-shadow:3px 3px #d8cdb68c;-webkit-user-select:none;user-select:none}.audio-controls summary:hover{background:#f6ecd8}.audio-controls[open] summary{border-color:#16736b}.audio-controls-body{position:absolute;right:0;top:calc(100% + .5rem);z-index:30;width:16.5rem;padding:.8rem .9rem;display:grid;gap:.6rem;background:#fffaf0;border:1px solid #ded3bf;border-top:3px solid #16736b;box-shadow:6px 6px #d8cdb68c}.audio-control-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.35rem .6rem}.audio-control-row span{color:#54655f}.audio-control-row input[type=range]{grid-column:1 / -1;width:100%;accent-color:#16736b}.audio-control-row output{font-variant-numeric:tabular-nums;color:#173b38}.audio-toggle{padding:.25rem .85rem;border:1px solid #16736b;border-radius:999px;background:#16736b;color:#fffaf0;cursor:pointer}.audio-toggle[aria-pressed=false]{background:transparent;color:#16736b}.audio-controls-body>button{justify-self:start;padding:.3rem .9rem;border:1px solid #ded3bf;border-radius:999px;background:#fffaf0e6;color:#173b38;cursor:pointer}.audio-controls-body>button:hover{background:#f6ecd8}.own-fan{min-height:1.4rem;margin:0 0 .5rem;display:inline-flex;align-items:center;gap:.4rem;padding:.15rem .6rem;border:1px solid #d8cfbd;border-radius:999px;background:#fffdf7b8;font-size:.9rem}.own-fan>strong{color:var(--fan-badge-short, #8a6d1f)}.own-fan>strong.enough-fan{color:var(--fan-badge-ok, #1b7d3f)}.own-fan>.fan-none{color:#8d8677;font-style:italic}.admin-log-link{padding:.55rem .8rem;color:#f8f2e7;background:transparent;border:1px solid rgba(248,242,231,.55);border-radius:3px;font-size:.8rem;font-weight:800;text-decoration:none}.admin-log-link:hover{color:#173b38;background:#f8f2e7}.visitors-page{max-width:78rem;margin:0 auto;padding:1.5rem 1.5rem 3rem}.visitors-page h2{font-family:Georgia,Times New Roman,serif;font-weight:400;font-size:1.15rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.9rem;margin:1.5rem 0}.stat-card{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.1rem;background:#fff;border:1px solid #e3d8c2;border-left:4px solid #173b38;border-radius:4px}.stat-card-value{font-size:1.7rem;font-weight:800;color:#173b38}.stat-card-label{margin:0 0 .3rem;color:#71817a;font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.visitor-toplist,.visitor-log-table-section{background:#fff;border:1px solid #e3d8c2;border-radius:4px;padding:1rem 1.2rem;margin:1.2rem 0}.visitor-toplist ul,.visitor-toplist li{list-style:none}.visitor-toplist ul{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0 0;padding:0}.visitor-toplist li{display:grid;grid-template-columns:minmax(7rem,max-content) 1fr 3rem;align-items:center;gap:.75rem;font-size:.85rem}.visitor-toplist-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visitor-toplist-bar{display:block;height:.55rem;background:#f1ead9;border-radius:3px;overflow:hidden}.visitor-toplist-bar>span{display:block;height:100%;background:#e2b866;border-radius:3px}.visitor-toplist-count{text-align:right;font-variant-numeric:tabular-nums;color:#71817a}.visitor-empty{margin:.75rem 0 0;color:#71817a;font-size:.85rem}.visitor-toplist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.2rem}.visitor-toplist-grid .visitor-toplist{margin:0}.visitor-log-table-wrap{overflow-x:auto;margin-top:.75rem}.visitor-log-table{width:100%;border-collapse:collapse;font-size:.82rem}.visitor-log-table th{text-align:left;padding:.45rem .6rem;color:#71817a;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid #e3d8c2;white-space:nowrap}.visitor-log-table td{padding:.45rem .6rem;border-bottom:1px solid #f1ead9;vertical-align:top}.visitor-method{font-weight:800;color:#173b38}.visitor-referrer{display:block;color:#71817a;font-size:.72rem;max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visitor-status{font-weight:800;padding:.1rem .4rem;border-radius:3px}.visitor-status-ok{color:#1b7d3f;background:#1b7d3f1f}.visitor-status-error{color:#a33b2c;background:#a33b2c1f}.visitor-agent{max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#71817a}.visitor-log-table-section .login-error{margin:0 0 .75rem}.live-status-button{margin-bottom:.8rem;padding:.45rem .65rem;color:#4b4170;background:#ece7f8;border:1px solid #b3a8d4;border-radius:3px;font-size:.78rem;font-weight:800}.table-live-status{margin:0 0 1rem;padding:.75rem;border:1px dashed #b3a8d4;border-radius:4px;background:#f0ecfca6}.live-status-title{margin:0 0 .35rem;color:#4b4170;font-family:Georgia,Times New Roman,serif;font-size:1rem;font-weight:400}.live-status-turn,.live-status-note,.live-status-error{margin:0 0 .5rem;font-size:.8rem}.live-status-error{color:#b00020}.live-status-timer{font-weight:700;color:#8d3f31}.live-status-seats{display:grid;gap:.75rem}.live-status-seat{padding:.6rem;border:1px solid #ded3bf;border-radius:3px;background:#fffaf0cc}.live-status-seat-active{border-color:#16736b;box-shadow:inset 0 0 0 1px #16736b}.live-status-seat h4{margin:0 0 .35rem;color:#173b38;font-size:.85rem;font-weight:700}.live-status-turn-badge{margin-left:.4rem;padding:.1rem .35rem;color:#fff;background:#16736b;border-radius:3px;font-size:.65rem;font-weight:800}.live-status-group-label{margin:.4rem 0 .2rem;color:#71817a;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.live-status-hand{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.3rem}@media (prefers-reduced-motion: no-preference){.live-status-turn-badge{animation:live-status-pulse 1.4s ease-in-out infinite}@keyframes live-status-pulse{0%,to{opacity:1}50%{opacity:.65}}}.mahjong-table-card{min-width:0;padding:1.15rem;background:#fffcf5f2;border:1px solid #dcd2be;border-top:4px solid #1a5e3a;border-radius:12px;box-shadow:0 6px 16px #00000012,4px 4px #d8cdb680;display:flex;flex-direction:column}.table-card-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;padding-bottom:.45rem;border-bottom:1px solid #eddcc5}.table-card-header h2{margin:0;color:#153c30;font-family:Georgia,Times New Roman,serif;font-size:1.35rem;font-weight:700;letter-spacing:.02em}.table-card-header .table-status-caption{margin:.2rem 0 0;font-size:.82rem;color:#5c7569;font-weight:600}.table-card-admin-actions{display:flex;flex-wrap:wrap;gap:.4rem}.table-card-admin-actions button,.table-card .setup-hands-button,.table-card .interrupt-button,.table-card .live-status-button{padding:.35rem .65rem;font-size:.78rem;font-weight:700;border-radius:4px;cursor:pointer;transition:all .15s ease}.table-card .setup-hands-button{color:#155d57;background:#e1f0e9;border:1px solid #91bdb1}.table-card .setup-hands-button:hover{background:#cce7dc}.table-card .interrupt-button{color:#8d3f31;background:#fae8df;border:1px solid #dfaa96}.table-card .interrupt-button:hover{background:#f5d4c4}.table-card .live-status-button{color:#3b4d61;background:#e5edf5;border:1px solid #a8c0d6}.table-card .live-status-button:hover{background:#d4e3f0}.mahjong-table-board{position:relative;width:100%;max-width:440px;aspect-ratio:1 / 1;margin:.4rem auto .8rem;background:linear-gradient(145deg,#3d2012,#29150a,#1a0b04);border-radius:20px;box-shadow:0 12px 28px #0000006b,0 3px 6px #00000040,inset 0 2px 2px #ffffff2e,inset 0 -2px 4px #000c;padding:13px;box-sizing:border-box}.corner-bracket{position:absolute;width:22px;height:22px;border-color:#d4af37;border-style:solid;border-width:0;pointer-events:none;z-index:5;opacity:.85}.corner-tl{top:6px;left:6px;border-top-width:3px;border-left-width:3px;border-top-left-radius:6px}.corner-tr{top:6px;right:6px;border-top-width:3px;border-right-width:3px;border-top-right-radius:6px}.corner-bl{bottom:6px;left:6px;border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:6px}.corner-br{bottom:6px;right:6px;border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:6px}.table-felt-mat{position:relative;width:100%;height:100%;background:radial-gradient(circle at center,#1b663f,#145233 65%,#0e3b24);border-radius:12px;border:1.5px solid rgba(212,175,55,.35);box-shadow:inset 0 0 24px #000000a6,inset 0 0 4px #000c;overflow:hidden}.felt-river{position:absolute;border:1px dashed rgba(255,245,215,.16);border-radius:4px;pointer-events:none;background:#0000000d}.river-top{top:76px;left:50%;transform:translate(-50%);width:140px;height:36px}.river-bottom{bottom:76px;left:50%;transform:translate(-50%);width:140px;height:36px}.river-left{left:84px;top:50%;transform:translateY(-50%);width:36px;height:110px}.river-right{right:84px;top:50%;transform:translateY(-50%);width:36px;height:110px}.table-center-hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:106px;height:106px;background:linear-gradient(145deg,#1d3326,#0e1e16);border:2px solid #caa85d;border-radius:10px;box-shadow:0 6px 14px #00000080,inset 0 1px 2px #ffffff40,inset 0 0 10px #0009;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:3;pointer-events:none;-webkit-user-select:none;user-select:none}.hub-compass{position:absolute;font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,serif;font-size:.74rem;font-weight:700;color:#dfbe73;opacity:.85}.compass-top{top:3px;left:50%;transform:translate(-50%)}.compass-bottom{bottom:3px;left:50%;transform:translate(-50%)}.compass-left{left:4px;top:50%;transform:translateY(-50%)}.compass-right{right:4px;top:50%;transform:translateY(-50%)}.hub-center-core{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.hub-table-title{font-family:Georgia,serif;font-size:.72rem;font-weight:700;color:#fff0cf;text-transform:uppercase;letter-spacing:.05em}.hub-status-badge{display:inline-flex;align-items:center;gap:3px;font-size:.62rem;font-weight:600;padding:1px 5px;border-radius:8px}.hub-status-waiting{background:#23784b80;color:#8bedb4}.hub-status-in_progress{background:#b4641e80;color:#ffd080}.hub-status-dot{width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 4px currentColor}.hub-player-count{font-size:.62rem;color:#b7ccbf}.seat-list.mahjong-seats-container{list-style:none;padding:0;margin:0;position:absolute;top:0;right:0;bottom:0;left:0;display:block}.mahjong-seat{position:absolute;z-index:4;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.2,0,0,1)}.seat-side-top{top:7px;left:50%;transform:translate(-50%);width:165px}.seat-side-bottom{bottom:7px;left:50%;transform:translate(-50%);width:165px}.seat-side-left{left:7px;top:50%;transform:translateY(-50%);width:92px}.seat-side-right{right:7px;top:50%;transform:translateY(-50%);width:92px}.seat-station{width:100%;border-radius:8px;padding:.28rem .35rem;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center}.seat-station.seat-empty{background:#0e261ac7;border:1.5px dashed rgba(220,185,120,.55);box-shadow:inset 0 0 8px #00000073;cursor:pointer;transition:all .2s ease}.seat-station.seat-empty:hover{background:#163c2aeb;border-color:#f2cf78;box-shadow:0 0 14px #f2cf7866,inset 0 0 8px #00000040;transform:scale(1.02)}.seat-wind-tag{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:700;color:#f0cf7e;letter-spacing:.03em;text-shadow:0 1px 2px rgba(0,0,0,.7)}.seat-wind-tag .wind-kanji{font-size:.85rem;color:#ffe6a3}.seat-station .seat-join-btn{width:100%;background:linear-gradient(135deg,#2b7a50,#1a5636);color:#fff;border:1px solid #45a470;border-radius:4px;padding:.32rem .35rem;font-size:.74rem;font-weight:700;cursor:pointer;box-shadow:0 2px 4px #0000004d;line-height:1.2;transition:all .15s ease}.seat-station .seat-join-btn:hover{background:linear-gradient(135deg,#359663,#206d44);border-color:#63c791;box-shadow:0 3px 8px #35966373}.seat-side-left .seat-station .seat-join-btn,.seat-side-right .seat-station .seat-join-btn{font-size:.68rem;padding:.25rem .2rem;line-height:1.15}.seat-station .add-bot-button{width:100%;margin-top:.15rem;background:#e6f0eb26;color:#c9e4d5;border:1px solid rgba(160,210,185,.35);border-radius:4px;padding:.2rem .25rem;font-size:.66rem;font-weight:600;cursor:pointer;line-height:1.15;transition:all .15s ease}.seat-station .add-bot-button:hover{background:#e6f0eb4d;color:#fff;border-color:#8cd6b0}.seat-side-left .seat-station .add-bot-button,.seat-side-right .seat-station .add-bot-button{font-size:.62rem;padding:.18rem .15rem}.seat-station.seat-occupied{background:linear-gradient(135deg,#10241af0,#091610f5);border:1.5px solid rgba(220,185,120,.75);box-shadow:0 4px 10px #0006,inset 0 1px 1px #ffffff1a}.seat-station.seat-occupied.seat-occupied-you{border-color:#4edba1;box-shadow:0 0 12px #4edba159,inset 0 1px 1px #fff3}.occupant-card{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%}.occupant-avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#caa85d,#876c31);color:#1a1a1a;font-size:.72rem;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000004d}.occupant-name-label{font-size:.7rem;font-weight:600;color:#e8f5ee;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-side-left .occupant-name-label,.seat-side-right .occupant-name-label{font-size:.65rem;white-space:normal;line-height:1.15}.occupant-you-badge{font-size:.6rem;font-weight:700;background:#1f8a55;color:#fff;padding:1px 5px;border-radius:6px;text-transform:uppercase;letter-spacing:.05em}.tile-rack-silhouette{display:flex;gap:2px;margin-top:2px;pointer-events:none}.mini-tile{width:6px;height:9px;background:#fbf7ec;border-radius:1px;box-shadow:0 1px 2px #0006;border-bottom:2px solid #3c825a}.tile-svg{width:100%;height:100%;max-width:100%;max-height:100%;min-width:0;min-height:0;object-fit:contain;display:block;pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:1}.tile-face{min-width:0;min-height:0;box-sizing:border-box;overflow:hidden}.tile-button .tile-face{display:flex;align-items:center;justify-content:center;overflow:hidden}.table-tile{min-width:0;min-height:0;box-sizing:border-box;overflow:hidden}.own-tile-back{width:58px;height:82px;background:linear-gradient(135deg,#1f7d73,#0d4a43);border:1px solid #d4c7b2;border-radius:4px;box-shadow:1px 2px 3px #0006;position:relative;box-sizing:border-box}.own-tile-back:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid rgba(255,255,255,.2);border-radius:2px}
