@font-face{font-family:DM Sans;src:url(/fonts/dm-regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/dm-medium.ttf) format("truetype");font-weight:500 600;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/dm-bold.ttf) format("truetype");font-weight:700 900;font-display:swap}@font-face{font-family:Libre Caslon Display;src:url(/fonts/caslon-display.ttf) format("truetype");font-weight:400;font-display:swap}:root{font-family:DM Sans,sans-serif;color:#173e2d;background:#fffaf0;font-synthesis:none;--canvas: #fffaf0;--paper: #fffdf7;--ink: #173e2d;--muted: #687467;--line: #e3e2d5;--green: #00552f;--felt: #064c39;--gold: #e6b447;--danger: #a44232;--serif: "Libre Caslon Display", Georgia, serif;--ease: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button,a{touch-action:manipulation}button{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible,[role=button]:focus-visible{outline:3px solid var(--gold);outline-offset:4px}input:focus,select:focus,textarea:focus{outline:2px solid var(--green);outline-offset:2px}::selection{background:#e6b447;color:#173e2d}input,textarea{caret-color:var(--green)}*{scrollbar-color:#b0b7a5 transparent;scrollbar-width:thin}a{text-underline-offset:4px;color:inherit}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.05;letter-spacing:-.025em}h3{font-size:16px;font-weight:600}button{border:0;background:none}svg{flex-shrink:0}input,textarea,select{width:100%;min-width:0;border:1px solid #d7dacd;border-radius:8px;background:var(--paper);padding:12px 14px;color:var(--ink)}input::placeholder,textarea::placeholder{color:#70766c}input[type=range]{padding:8px 0;accent-color:var(--green);border:0;background:none}label{display:block;font-weight:500;font-size:13px;margin:18px 0 8px}label input,label select,label textarea{margin-top:8px;font-weight:400}small{font-size:12px}.muted{color:var(--muted);line-height:1.7}.small-label{font-size:12px;color:var(--muted)}.positive{color:var(--green)}.button{min-height:45px;padding:11px 18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:8px;font-size:13px;font-weight:600;line-height:1.4;white-space:nowrap;transition:background .16s ease,color .16s ease,transform .16s var(--ease);text-decoration:none}.button:hover:not(:disabled){transform:translateY(-1px)}.primary{background:var(--green);color:#fffaf0}.primary:hover:not(:disabled){background:#003f24}.gold{background:var(--gold);color:#183d2c}.gold:hover:not(:disabled){background:#efc363}.outline{border:1px solid #d3d7c8;background:transparent}.outline:hover:not(:disabled){background:#eeeee2}.subtle{background:#eef0e5}.subtle:hover:not(:disabled){background:#e2e7d7}.danger{background:var(--danger);color:#fff}.danger-outline{border:1px solid #c9aca3;color:var(--danger)}.compact{min-height:36px;padding:8px 12px;font-size:12px}.full{width:100%;margin-top:22px}.button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:24px}.text-button{padding-left:6px;padding-right:0}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;border-radius:8px}.icon-button:hover{background:#eaece0}.inline-link{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;padding:0}.skip-link{position:fixed;top:-100px;left:15px;z-index:200;background:#fff;padding:14px}.skip-link:focus{top:10px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:218px;border-right:1px solid var(--line);background:#f6f5e9;display:flex;flex-direction:column;padding:22px 16px 14px}.brand{display:block;padding:0;margin:0 0 33px;width:100%;text-align:center}.brand img{display:block;width:125px;height:125px;object-fit:contain;margin:auto;mix-blend-mode:multiply}.primary-nav{display:flex;flex-direction:column;gap:7px}.primary-nav>button{display:flex;gap:12px;align-items:center;text-align:left;min-height:46px;padding:12px 14px;font-size:13px;border-radius:7px;color:#65705f}.primary-nav>button.active{background:var(--green);color:#fffaf0}.primary-nav>button:not(.active):hover{background:#e9edde;color:var(--green)}.nav-dot{margin-left:auto;width:5px;height:5px;border-radius:50%;background:var(--gold)}.sidebar-bottom{margin-top:auto;padding-top:36px}.sidebar-note{padding:30px 12px 32px;display:flex;align-items:center;gap:12px;color:#74816c}.sidebar-note p{font-family:var(--serif);font-size:22px;line-height:1.1}.little-tile{display:inline-flex;transform:rotate(-12deg);opacity:.75}.sidebar-settings{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;margin-bottom:15px;font-size:13px;color:#64735e}.sidebar-settings:hover{color:var(--green)}.sidebar-user{display:flex;gap:9px;align-items:center;border-top:1px solid #dfe2d4;padding:17px 2px 0;cursor:pointer}.sidebar-user>div{min-width:0;flex:1}.sidebar-user strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user span:not(.avatar){font-size:10px;color:var(--muted)}.avatar{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:43px;height:43px;border-radius:50%;background:#dfe9d9;color:#315c3d;font-size:17px;font-weight:500}.avatar-small{width:33px;height:33px;font-size:14px}.avatar-jade{background:#dce8d9;color:#285b3b}.avatar-amber{background:#f3e4b8;color:#765418}.avatar-blue{background:#dce8ed;color:#355e74}.avatar-rose{background:#f1dbd6;color:#91574c}.avatar-slate{background:#e1e4de;color:#586350}.avatar-violet{background:#e6def0;color:#73598b}.avatar-empty{background:#e5e7dc;color:#7d8a75}.main-shell{margin-left:218px}.topbar{height:83px;display:flex;align-items:center;justify-content:space-between;padding:0 45px;border-bottom:1px solid var(--line);gap:20px}.breadcrumb{display:flex;align-items:center;gap:14px;color:#78806f;font-size:11px;white-space:nowrap}.breadcrumb strong{font-weight:500;color:#3b503d}.breadcrumb>span{color:#a1a696}.topbar-right{display:flex;align-items:center;gap:22px}.topbar-note{font-family:var(--serif);font-size:17px;color:#76826f}.connection-status{display:flex;gap:6px;align-items:center;font-size:11px;color:#6c7964}.connection-status>span{width:6px;height:6px;border-radius:50%;background:#ba935c}.connection-status.online>span{background:#438b56}.page{padding:0 45px 25px;max-width:1600px;margin:auto}.lobby-hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:32px;min-height:410px;padding:39px 0 33px;border-bottom:1px solid var(--line)}.hero-copy h1{font-size:clamp(55px,5.2vw,79px);line-height:.99;letter-spacing:-.03em}.hero-copy h1>span{color:#d59f39}.hero-copy>p{margin-top:22px;font-size:14px;color:#78816e;line-height:1.75}.hero-actions{display:flex;align-items:center;gap:17px;margin-top:26px}.hero-details{display:flex;gap:20px;margin-top:23px;font-size:11px;color:#68785f}.hero-details>span{display:inline-flex;gap:7px;align-items:center}.lobby-table-art{position:relative;padding:20px 8px 32px;min-width:0;transform:rotate(-5deg);max-width:480px;width:100%;justify-self:end}.art-table{position:relative;height:272px;width:100%;border-radius:80px;background:#074e39;border:8px solid #c89e50;box-shadow:0 14px 26px -14px #173e2d80,inset 0 0 0 2px #205f40;overflow:visible}.art-table:before{content:"";position:absolute;inset:14px;border:1px solid #387052;border-radius:60px;pointer-events:none}.art-wind{position:absolute;font-family:serif;color:#bcaf6c;font-size:15px;opacity:.7}.wind-north{top:57px;left:50%}.wind-south{bottom:49px;left:49%}.wind-west{left:30px;top:45%}.wind-east{right:29px;top:45%}.art-center{position:absolute;top:91px;left:calc(50% - 40px);width:80px;text-align:center;color:#d4c892;opacity:.56}.art-center>span{font-size:35px;font-family:serif;line-height:1}.art-center small{display:block;font-size:5px;letter-spacing:1.8px;line-height:1.7;margin-top:6px}.art-back-row{position:absolute;left:50%;top:17px;display:flex;gap:3px;transform:translate(-50%)}.art-back-row .tile{width:20px;height:31px;border-radius:3px}.art-front-row{display:flex;position:absolute;bottom:-13px;left:50%;gap:4px;transform:translate(-50%)}.art-front-row .tile{width:39px;height:54px}.art-discard{position:absolute;display:flex;gap:7px}.art-discard .tile{width:31px;height:43px}.art-discard-one{top:94px;left:63px;transform:rotate(15deg)}.art-discard-two{top:120px;right:52px;transform:rotate(-15deg)}.art-caption{position:absolute;bottom:0;right:35px;font-family:var(--serif);font-size:17px;color:#60785b;transform:rotate(5deg);display:flex;align-items:center;gap:10px}.art-caption>span{width:23px;height:1px;background:#b4b99d}.lobby-bottom{display:grid;grid-template-columns:minmax(0,1fr) 252px;gap:35px;padding-top:32px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.section-heading h2{font-size:28px}.section-heading p{margin-top:8px;font-size:12px;color:var(--muted)}.live-label{display:flex;align-items:center;gap:6px;font-size:10px;color:#6c7864;white-space:nowrap}.live-dot,.offline-dot{width:6px;height:6px;background:#538c59;border-radius:50%}.offline-dot{background:#9ba58c}.directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:11px}.filter-tabs{display:flex;gap:17px}.filter-tabs button{padding:3px 0;white-space:nowrap;font-size:11px;color:#78836d}.filter-tabs button.active{color:var(--green);font-weight:700}.filter-tabs button span{margin-left:6px;border-radius:4px;background:#e2e8d9;padding:1px 5px;font-size:9px}.search-field{display:flex;align-items:center;gap:8px;margin:0;max-width:151px;color:#89917e}.search-field input{padding:6px 0;margin:0;font-size:11px;border:0;background:none}.room-list-head{display:grid;grid-template-columns:minmax(0,1fr) 63px 63px 86px;font-size:10px;color:#7a846e;padding:12px 0;border-bottom:1px solid #e9e8db}.room-row{display:grid;grid-template-columns:minmax(0,1fr) 63px 63px 86px;align-items:center;padding:15px 0;border-bottom:1px solid #e9e8db;gap:0}.room-row-title{display:flex;align-items:center;gap:11px;min-width:0;padding-right:12px}.room-row-title>div{min-width:0}.room-row-title strong{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-row-title div>span{display:block;font-size:10px;color:#79826f;margin-top:4px}.room-row-mark{width:34px;height:34px;border-radius:9px;background:#edf0e3;color:#76906d;display:flex;align-items:center;justify-content:center;flex-shrink:0}.players-count,.room-timer{font-size:12px;font-variant-numeric:tabular-nums}.players-count small,.room-timer small{color:#8c937f;font-size:10px}.empty-rooms{display:flex;align-items:center;justify-content:center;gap:24px;min-height:181px;padding:30px 10px}.empty-rooms h3{font-family:var(--serif);font-weight:400;font-size:23px}.empty-rooms p{font-size:11px;color:var(--muted);margin:9px 0 13px;max-width:250px}.empty-tiles{display:flex;transform:rotate(-8deg);padding-left:8px}.empty-tiles .tile{width:31px;height:42px}.empty-tiles .tile:last-child{margin-left:-6px;transform:rotate(20deg) translateY(10px)}.learn-panel{background:#eef0df;padding:23px 22px 0;border-radius:12px;align-self:start;overflow:hidden}.learn-heading{display:flex;align-items:center;gap:11px;color:#56714d}.learn-heading>span{font-size:10px}.learn-panel h2{font-size:35px;margin:19px 0 11px}.learn-panel>p{font-size:11px;color:#63755b;line-height:1.75}.learn-example{display:flex;align-items:center;margin-top:18px;gap:3px}.learn-example .tile{width:22px;height:31px}.learn-example>span:last-child{font-size:8px;color:#6d7a5e;line-height:1.65;margin-left:9px}.learn-link{border-top:1px solid #d8dec7;width:calc(100% + 44px);margin:22px -22px 0;padding:16px 22px;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;background:#e6ebd6}.learn-link:hover{background:#dce4c7}.lobby-footer{display:flex;justify-content:space-between;align-items:center;color:#7d8773;font-size:10px;margin-top:35px;padding-top:17px;border-top:1px solid var(--line)}.lobby-footer>span:last-child{display:flex;align-items:center;gap:7px}.lobby-footer button{display:flex;padding:0}.tile{width:43px;height:59px;position:relative;background:#fff6df;border-radius:5px;box-shadow:0 3px #b6b599,0 5px 7px -4px #133d2d66;color:#00552f;display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;vertical-align:middle;border:1px solid #e6ddbd;-webkit-user-select:none;user-select:none;padding:0;transition:transform .16s var(--ease),box-shadow .16s ease}.tile-corner{position:absolute;left:3px;top:2px;font-size:7px;line-height:1;font-weight:600;color:#6c735d}.tile-symbols{width:100%;height:100%;padding:3px}.tile-character{display:flex;flex-direction:column;align-items:center;font-family:serif;line-height:1.05;padding-top:4px}.tile-character b{font-weight:400;font-size:23px}.tile-character>span{font-size:20px;color:#a44232}.tile-honor{font-family:serif;font-size:31px;line-height:1;padding-top:4px}.tile-honor.red{color:#a44232}.white-dragon{display:inline-block;border:2px solid #406e8b;width:23px;height:34px;border-radius:2px;box-shadow:inset 0 0 0 2px #fff6df,inset 0 0 0 3px #406e8b}.tile-back{background:#4b795b;border-color:#7c9b67;box-shadow:0 3px #d1bd85,0 5px 7px -4px #133d2d66}.tile-back-mark{border:1px solid #739463;border-radius:2px;position:absolute;inset:4px;font-size:11px;color:#8ca577;display:flex;align-items:center;justify-content:center}.tile-small{width:28px;height:38px;border-radius:3px}.tile-small .tile-corner{font-size:5px;left:2px;top:2px}.tile-small .tile-symbols{padding:2px}.tile-small .tile-character b{font-size:15px}.tile-small .tile-character>span{font-size:13px}.tile-small .tile-honor{font-size:20px;padding-top:3px}.tile-small .white-dragon{width:15px;height:22px;border-width:1px;box-shadow:inset 0 0 0 1px #fff6df,inset 0 0 0 2px #406e8b}.tile-selected{transform:translateY(-12px);outline:3px solid var(--gold);outline-offset:1px;box-shadow:0 5px #a99b60,0 9px 12px -4px #173e2d50}button.tile:hover:not(:disabled){transform:translateY(-7px)}button.tile.tile-selected:hover{transform:translateY(-12px)}button.tile:disabled{opacity:1}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:49px 0 33px}.page-heading h1{font-size:54px;max-width:750px}.page-heading p{margin-top:17px;color:var(--muted);max-width:600px;line-height:1.75}.page-heading-icon{color:#7d916b;stroke-width:1.2}.data-page,.profile-page,.admin-page,.tutorial-page{padding-bottom:60px}.ranking-section{border-top:1px solid var(--line);padding-top:26px}.ranking-table,.scoring-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.ranking-table th,.scoring-table th{text-align:left;font-size:11px;font-weight:500;color:var(--muted);padding:15px 14px;border-bottom:1px solid var(--line)}.ranking-table td,.scoring-table td{padding:17px 14px;border-bottom:1px solid var(--line);font-size:13px}.ranking-table td:last-child,.ranking-table th:last-child{text-align:right}.rank-player{display:flex;align-items:center;gap:13px}.rank{display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--muted)}.rank-0{color:#a77c24;background:#f4e9c5;border-radius:50%}.data-empty{min-height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;text-align:center;color:var(--muted);padding:25px}.data-empty h3{font-family:var(--serif);font-size:30px;color:var(--ink);font-weight:400}.data-empty p{max-width:390px;font-size:13px;line-height:1.7}.profile-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:65px;padding-top:28px;border-top:1px solid var(--line)}.profile-layout h2,.admin-page h2{font-size:32px}.profile-form{max-width:360px}.avatar-options{display:flex;gap:11px;margin-top:12px}.avatar-option{height:38px;width:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid transparent}.avatar-option.chosen{outline:2px solid var(--green);outline-offset:3px}.profile-stats{display:flex;gap:30px;margin-top:40px;padding-top:25px;border-top:1px solid var(--line)}.profile-stats>div{display:flex;flex-direction:column;gap:5px}.profile-stats strong{font-family:var(--serif);font-weight:400;font-size:33px}.profile-stats span{font-size:10px;color:var(--muted)}.history-section>p{margin-top:12px;font-size:12px}.history-list{margin-top:20px}.history-entry{border-bottom:1px solid var(--line)}.history-entry summary{display:flex;align-items:center;gap:15px;cursor:pointer;padding:18px 0;list-style:none}.history-entry summary>div{flex:1}.history-entry summary strong{font-size:13px;display:block}.history-entry summary span{font-size:11px;color:var(--muted)}.history-entry summary b{font-size:15px}.history-detail{font-size:11px;padding-bottom:20px;color:var(--muted)}.history-detail p{margin:6px 0}.lesson-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:35px;border-top:1px solid var(--line);padding-top:30px}.lesson-nav{display:flex;flex-direction:column;gap:9px}.lesson-nav button{display:flex;align-items:center;gap:13px;text-align:left;color:var(--muted);font-size:12px;padding:13px 0}.lesson-nav button>span{width:25px;height:25px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px}.lesson-nav button.current{font-weight:700;color:var(--green)}.lesson-nav button.current>span{background:var(--green);color:var(--paper);border-color:var(--green)}.lesson-content{padding:10px 0 15px;min-width:0}.lesson-progress{color:var(--muted);font-size:11px;margin-bottom:18px}.lesson-content h2{font-size:40px}.lesson-content>p:not(.lesson-progress){font-size:14px;line-height:1.8;color:#65735f;margin-top:20px;max-width:650px}.lesson-tiles{display:flex;gap:5px;padding:30px 2px 20px;overflow-x:auto}.lesson-tiles .tile{width:35px;height:49px}.lesson-note{background:#eef0e2;padding:14px 16px;border-radius:8px;font-size:12px!important}.lesson-controls{display:flex;align-items:center;justify-content:space-between;margin-top:27px}.rules-section{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;margin-top:60px;padding-top:35px;border-top:1px solid var(--line)}.rules-section h2{font-size:34px}.rules-section p{font-size:12px;line-height:1.8;color:var(--muted);margin-top:18px}.rules-section details{margin-top:22px}.rules-section summary{cursor:pointer;font-size:12px;font-weight:600}.scoring-table caption{text-align:left;font-size:17px;margin-bottom:9px}.scoring-table th,.scoring-table td{padding:10px 9px;font-size:11px}.scoring-table td:last-child{text-align:right;white-space:nowrap}.admin-summary{display:flex;gap:35px;background:#eef0e3;padding:20px 25px;border-radius:12px;margin-bottom:40px}.admin-summary strong{font-size:22px;margin-right:7px}.admin-page h2{margin:35px 0 18px}.admin-reports article{padding:18px 0;border-bottom:1px solid var(--line)}.admin-reports article>div{display:flex;justify-content:space-between;gap:20px}.admin-reports time,.admin-reports article>span{font-size:11px;color:var(--muted)}.admin-reports p{margin:10px 0}.admin-users>div{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.admin-users>div>div{flex:1}.admin-users strong,.admin-users span{display:block}.admin-users>div>div>span{font-size:11px;color:var(--muted)}.modal{position:fixed;max-width:calc(100vw - 30px);width:460px;max-height:calc(100dvh - 40px);border:0;border-radius:15px;background:var(--canvas);color:var(--ink);box-shadow:0 20px 80px -20px #0d342790;padding:29px;overflow:auto}.modal::backdrop{background:#102b2090;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-wide{width:700px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:15px}.modal h2{font-size:34px}.modal>.muted{font-size:13px}.modal-head .icon-button{margin-top:-5px;margin-right:-7px}.auth-logo{display:block;width:90px;height:90px;object-fit:contain;mix-blend-mode:multiply;margin:5px auto 17px}.segmented{display:flex;padding:4px;background:#e9eddf;border-radius:8px;gap:3px}.segmented>button{flex:1;border-radius:5px;min-height:35px;font-size:12px}.segmented>button.active{background:var(--paper);box-shadow:0 2px 6px -3px #173e2d44}.auth-tabs{margin-top:22px}.form-foot{font-size:11px;line-height:1.7;color:var(--muted);margin-top:16px}.error-note{font-size:12px;line-height:1.6;background:#f5e5dc;color:#873c30;padding:12px 15px;border-radius:7px;margin:16px 0;overflow-wrap:anywhere}.success-note{color:var(--green);font-size:12px;margin-top:15px}.label-optional{color:var(--muted);font-weight:400;font-size:11px}.code-input{text-transform:uppercase;font-size:20px;letter-spacing:3px}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:22px 0}.settings-row strong{font-size:13px}.settings-row p{font-size:11px;color:var(--muted);margin-top:6px}.switch{width:43px;min-width:43px;height:25px;background:#cbd3c2;border-radius:30px;padding:3px}.switch>span{width:19px;height:19px;display:block;background:#fff;border-radius:50%;box-shadow:0 1px 3px #173e2d30;transition:transform .15s}.switch.on{background:var(--green)}.switch.on>span{transform:translate(18px)}.toast{position:fixed;bottom:24px;left:calc(50% + 90px);transform:translate(-50%);z-index:80;background:#173e2d;color:#fffaf0;padding:12px 12px 12px 20px;display:flex;align-items:center;gap:15px;border-radius:10px;box-shadow:0 8px 30px -10px #173e2d80;max-width:calc(100vw - 35px);width:max-content;font-size:13px}.toast .icon-button:hover{background:#365740}.spinner{animation:spin .9s linear infinite}.app-loading{display:flex;min-height:70vh;align-items:center;justify-content:center;gap:20px;flex-direction:column;color:var(--muted)}.app-loading img{width:120px;height:120px;mix-blend-mode:multiply}.mobile-menu{display:none}@keyframes spin{to{transform:rotate(360deg)}}.room-page{padding:25px 30px 30px;max-width:1700px;margin:auto}.room-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.room-title{display:flex;align-items:center;gap:10px;min-width:0}.room-title>div{min-width:0}.room-title h1{font-size:34px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-title p{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);margin-top:8px}.room-title p>span{color:#a2a891}.room-tools{display:flex;gap:7px;align-items:center}.room-tools>.icon-button.is-active{background:#e5ecd9}.sound-control{position:relative}.sound-popover{position:absolute;z-index:20;top:45px;right:0;width:205px;background:var(--paper);padding:18px;border:1px solid var(--line);border-radius:10px}.sound-popover label{margin:15px 0 0}.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:23px;align-items:start}.table-column{min-width:0}.waiting-table{padding:30px 25px 25px;background:#eef0e1;border-radius:14px}.waiting-table-intro{text-align:center;padding:8px 0 30px}.table-monogram{width:44px;height:44px;border:1px solid #a3b298;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 19px;font-family:var(--serif);font-size:23px;color:#6d8662}.waiting-table-intro h2{font-size:41px}.waiting-table-intro p{font-size:11px;color:var(--muted);margin-top:15px}.waiting-seats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.waiting-seat{background:#fffaf0;border-radius:10px;padding:15px;display:flex;flex-direction:column;gap:14px;min-width:0}.waiting-seat>.button{align-self:flex-start}.player{display:flex;align-items:center;gap:9px;min-width:0}.player .avatar{height:35px;width:35px;font-size:14px}.player-name{flex:1;min-width:0}.player-name strong{font-size:11px;font-weight:600;display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-name>span{font-size:9px;color:var(--muted);display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.you-tag{font-size:7px;font-weight:400;padding:1px 4px;background:#e5ebd9;border-radius:3px;color:#56724b}.player .quiet{width:20px;height:24px;min-width:20px;padding:0;color:#819176}.player-active .avatar{outline:2px solid var(--gold);outline-offset:3px}.ready-status{display:flex;align-items:center;gap:5px;color:#7a846e;font-size:10px;padding-left:44px}.ready-status.ready{color:var(--green)}.waiting-actions{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:30px}.waiting-hint{text-align:center;font-size:10px;color:var(--muted);margin:16px 0 20px}.whatsapp-link{display:flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;font-size:11px;color:#5b7950;border-top:1px solid #d7dfc8;padding-top:20px}.chat-panel{background:#f2f3e8;border:1px solid var(--line);border-radius:12px;overflow:hidden}.chat-panel>header{display:flex;justify-content:space-between;align-items:center;padding:17px 16px;border-bottom:1px solid #dfe4d2}.chat-panel h3{font-size:12px}.chat-panel>header svg{color:#718462}.chat-messages{height:365px;overflow-y:auto;padding:16px;overscroll-behavior:contain}.chat-empty{padding:75px 5px 0;text-align:center;color:#879378}.chat-empty>svg{stroke-width:1.4}.chat-empty p{font-family:var(--serif);font-size:24px;line-height:1.15;color:#607853;margin:15px 0 10px}.chat-empty>span{font-size:11px;line-height:1.6;display:block}.chat-message{margin-bottom:18px}.chat-message>div{display:flex;gap:8px;justify-content:space-between}.chat-message strong{font-size:10px}.chat-message time{font-size:9px;color:#829174}.chat-message p{font-size:12px;line-height:1.7;color:#627357;overflow-wrap:anywhere;margin-top:5px}.chat-input{display:flex;align-items:center;margin:0 10px;background:var(--paper);border:1px solid #d9dfcc;border-radius:8px}.chat-input input{border:0;background:none;padding:10px;font-size:11px}.chat-input .icon-button{color:#6f865f}.chat-panel .error-note{font-size:10px;margin:8px}.chat-guidance{text-align:center;font-size:9px;color:#809075;padding:9px 10px 13px}.table-footnote{display:flex;justify-content:center;align-items:center;gap:5px;font-size:9px;color:#839177;margin-top:17px}.connection-banner{display:flex;align-items:center;gap:9px;padding:12px 16px;background:#f5e9c8;color:#765e28;border-radius:8px;font-size:12px;margin-bottom:16px}.game-status{display:flex;align-items:center;gap:8px;padding:0 0 15px;font-size:11px}.turn-indicator{width:6px;height:6px;border-radius:50%;background:#9ca98e}.turn-indicator.your-turn{background:var(--green)}.round-label{font-size:9px;margin-left:auto;color:var(--muted)}.countdown{font-size:11px;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:4px;min-width:40px;margin-left:10px}.countdown.urgent{color:var(--danger)}.game-table{position:relative;height:480px;border:7px solid #a38550;background:#07503b;border-radius:22px;box-shadow:inset 0 0 0 1px #35714f;overflow:hidden}.game-table:before{position:absolute;inset:10px;content:"";border:1px solid #487958;border-radius:12px;pointer-events:none}.opponent{position:absolute;z-index:3}.opponent .player{max-width:160px;margin:auto}.opponent .player-name strong{color:#f1ebd2}.opponent .player-name>span{color:#b2c7aa;font-size:8px}.opponent .player .quiet{color:#a9c19e}.opponent .player .quiet:hover{background:#316749}.opponent .player .avatar{width:28px;height:28px;font-size:11px}.opponent .seat-score{display:block;color:#bad0ac;font-size:8px;margin-top:7px;text-align:center}.opponent-2{top:22px;left:50%;transform:translate(-50%);max-width:75%}.opponent-1{right:19px;top:calc(50% - 50px);width:110px}.opponent-3{left:19px;top:calc(50% - 50px);width:110px}.opponent-1 .player,.opponent-3 .player{flex-direction:column;gap:5px;text-align:center}.opponent-1 .player-name,.opponent-3 .player-name{max-width:95px}.opponent-1 .player-name strong,.opponent-3 .player-name strong{display:block}.opponent-1 .player>.quiet,.opponent-3 .player>.quiet{position:absolute;right:2px;top:0}.hidden-hand{display:flex;gap:2px;margin-top:10px;justify-content:center}.hidden-hand .tile{width:15px;height:23px;border-radius:2px;box-shadow:0 2px #c5b484}.hidden-hand .tile-back-mark{inset:3px;font-size:6px}.opponent-1 .hidden-hand,.opponent-3 .hidden-hand{max-width:92px;flex-wrap:wrap;margin:10px auto 0}.opponent-1 .hidden-hand .tile,.opponent-3 .hidden-hand .tile{width:11px;height:17px}.opponent-melds{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;justify-content:center}.opponent-melds .meld{gap:1px}.opponent-melds .tile{width:16px;height:22px;box-shadow:0 1px #b6b599}.opponent-melds .tile-honor{font-size:12px}.opponent-melds .tile-character b{font-size:9px}.opponent-melds .tile-character>span{font-size:8px}.opponent-melds .tile-corner{font-size:3px}.opponent-melds .white-dragon{width:8px;height:13px}.table-center{position:absolute;inset:135px 125px 43px;display:flex;align-items:center;flex-direction:column}.table-winds{display:flex;align-items:center;justify-content:center;gap:22px;color:#9fbb84;margin-bottom:15px}.table-winds>span{font-family:serif;font-size:25px;opacity:.55}.table-winds>div{text-align:center;display:flex;flex-direction:column}.table-winds strong{font-family:var(--serif);font-size:35px;font-weight:400;line-height:1}.table-winds small{font-size:7px;margin-top:4px}.discard-piles{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;overflow-y:auto;padding:0 3px 5px;scrollbar-color:#4a7f58 transparent}.discard-pile{min-width:0}.discard-pile>span{font-size:7px;color:#a2bea0;display:block;margin-bottom:5px;text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.discard-pile>div{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}.discard-pile .tile{width:19px;height:27px;box-shadow:0 2px #b6b599;border-radius:2px}.discard-pile .tile-corner{font-size:4px}.discard-pile .tile-honor{font-size:15px}.discard-pile .tile-character b{font-size:11px}.discard-pile .tile-character>span{font-size:10px}.discard-pile .white-dragon{width:10px;height:17px}.last-discard .tile{outline:2px solid var(--gold);outline-offset:1px}.table-brand{position:absolute;bottom:17px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:2.5px;color:#9bb581;opacity:.45}.own-hand-section{background:#eef0e2;border-radius:0 0 12px 12px;margin-top:-4px;padding:22px 20px 18px}.own-hand-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.own-hand-header .player{min-width:130px}.own-hand-header .player .avatar{width:30px;height:30px}.own-score{font-size:15px;font-variant-numeric:tabular-nums}.own-score small{font-size:9px;color:var(--muted)}.own-hand{display:flex;align-items:center;justify-content:safe center;gap:4px;overflow-x:auto;padding:24px 5px 13px;scrollbar-width:thin}.own-hand>.tile{width:38px;height:53px}.own-hand>.tile .tile-honor{font-size:28px}.own-melds{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.own-melds:empty{margin:0}.meld{display:inline-flex;gap:2px;align-items:center}.meld-label{font-size:8px;color:var(--muted);margin-right:4px}.own-melds .tile{width:22px;height:31px}.game-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding-top:14px;border-top:1px solid #dae1cd}.game-actions>p{font-size:10px;color:var(--muted)}.action-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.action-buttons .button{font-size:11px;min-height:37px;padding:9px 12px}.large-tiles .own-hand>.tile{width:51px;height:71px}.large-tiles .own-hand>.tile .tile-honor{font-size:37px}.large-tiles .own-hand>.tile .tile-character b{font-size:29px}.large-tiles .own-hand>.tile .tile-character>span{font-size:25px}.round-result{background:#f0e7cc;border-radius:12px;padding:25px;margin-top:23px}.result-title{display:flex;align-items:center;gap:14px}.result-title>svg{color:#a17d2f}.result-title>div{flex:1}.result-title h2{font-size:30px}.result-title p{font-size:11px;color:#7d775e;margin-top:8px}.fan-value{font-family:var(--serif);font-size:42px;display:flex;align-items:center;gap:6px}.fan-value small{font-family:DM Sans,sans-serif;font-size:10px}.result-patterns{display:flex;gap:9px;flex-wrap:wrap;margin-top:19px}.result-patterns>span{font-size:10px;background:#f8f1de;padding:5px 8px;border-radius:4px}.result-patterns b{margin-left:4px}.result-hand{display:flex;gap:3px;overflow-x:auto;padding:18px 2px 8px}.result-scores{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 25px;border-top:1px solid #d8d0b5;padding-top:16px}.result-scores>div{display:flex;flex-direction:column;gap:6px}.result-scores span{font-size:10px;color:#7d775e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-scores strong{font-size:16px}.round-result>.muted{font-size:11px}@media(min-width:1500px){.lobby-hero{min-height:470px}.art-table{height:300px}.art-center{top:105px}.art-discard-one{top:110px}.art-discard-two{top:140px}.game-table{height:550px}.table-center{top:155px;left:150px;right:150px}.discard-pile .tile{width:23px;height:32px}}@media(max-width:1200px){.sidebar{width:188px;padding-left:12px;padding-right:12px}.main-shell{margin-left:188px}.brand img{width:110px;height:110px}.primary-nav>button{font-size:12px;gap:10px;padding-left:12px;padding-right:12px}.topbar{padding:0 30px;height:72px}.page{padding-left:30px;padding-right:30px}.topbar-note{display:none}.lobby-hero{gap:20px;min-height:380px}.hero-copy h1{font-size:61px}.hero-copy>p{font-size:12px}.hero-actions{gap:12px;flex-wrap:wrap}.hero-actions .button{font-size:11px;padding:10px 13px}.hero-actions .text-button{padding-left:0}.hero-details{gap:14px;font-size:9px}.art-table{height:240px;border-radius:64px;border-width:7px}.art-table:before{border-radius:49px}.art-back-row .tile{width:16px;height:26px}.art-front-row .tile{width:33px;height:47px}.art-discard-one{left:44px;top:91px}.art-discard-two{right:35px;top:115px}.art-discard .tile{width:26px;height:36px}.art-center{top:82px;transform:scale(.8)}.wind-north{top:48px}.lobby-bottom{grid-template-columns:minmax(0,1fr) 220px;gap:25px}.section-heading h2{font-size:25px}.section-heading p{font-size:10px}.learn-panel{padding:20px 19px 0}.learn-panel h2{font-size:33px}.learn-link{width:calc(100% + 38px);margin-left:-19px;margin-right:-19px;padding-left:19px;padding-right:19px}.live-label{display:none}.empty-rooms{gap:18px}.empty-rooms h3{font-size:21px}.room-list-head,.room-row{grid-template-columns:minmax(0,1fr) 45px 48px 72px}.room-row .button{padding:7px;font-size:10px}.room-row-title{gap:7px}.room-code{display:none!important}.room-layout{grid-template-columns:minmax(0,1fr) 205px;gap:16px}.room-page{padding-left:22px;padding-right:22px}.chat-messages{height:340px;padding:12px}.waiting-table{padding:22px 17px}.waiting-table-intro h2{font-size:35px}.waiting-seats{gap:8px}.waiting-seat{padding:12px}.player-name strong{font-size:10px}.waiting-seat .player{gap:7px}.waiting-seat .player>.avatar{width:29px;height:29px}.waiting-seat .player .quiet{width:15px;min-width:15px}.game-table{height:440px}.opponent-1{right:9px;width:88px}.opponent-3{left:9px;width:88px}.table-center{left:99px;right:99px;top:128px}.discard-pile .tile{width:17px;height:24px}.own-hand-section{padding:18px 12px}.own-hand>.tile{width:33px;height:47px}.own-hand{gap:3px}.game-actions{flex-direction:column;align-items:flex-start}.action-buttons{justify-content:flex-start;width:100%}.profile-layout,.rules-section{gap:35px}.lesson-layout{grid-template-columns:185px minmax(0,1fr);gap:25px}.lesson-content h2{font-size:35px}}@media(max-width:1000px)and (min-width:761px){.sidebar{width:170px}.main-shell{margin-left:170px}.primary-nav>button{font-size:11px;gap:9px;padding:10px}.primary-nav>button svg{width:17px}.sidebar-note{gap:7px;padding-left:7px}.sidebar-note p{font-size:19px}.sidebar-settings{font-size:12px}.sidebar-user>svg{display:none}.page{padding:0 25px 25px}.topbar{padding:0 25px}.lobby-hero{grid-template-columns:1fr .9fr;gap:12px;min-height:350px}.hero-copy h1{font-size:51px}.hero-copy>p{font-size:11px}.hero-actions{gap:5px;flex-direction:column;align-items:flex-start;margin-top:20px}.hero-details{font-size:8px;gap:10px;margin-top:15px}.art-table{height:215px;border-radius:55px}.art-table:before{inset:10px;border-radius:43px}.art-back-row .tile{width:13px;height:21px}.art-front-row .tile{width:28px;height:40px}.art-discard-one{left:25px;top:80px}.art-discard-two{right:24px;top:110px}.art-discard .tile{width:22px;height:32px}.art-center{top:73px;transform:scale(.67)}.wind-north{top:41px}.wind-west{left:17px}.wind-east{right:16px}.art-caption{font-size:14px;right:12px}.lobby-bottom{grid-template-columns:minmax(0,1fr) 185px;gap:20px}.learn-panel{padding:18px 15px 0}.learn-heading>span{font-size:8px}.learn-heading{gap:6px}.learn-panel h2{font-size:30px}.learn-panel>p{font-size:10px}.learn-example>span:last-child{display:none}.learn-link{width:calc(100% + 30px);margin-left:-15px;margin-right:-15px;padding:14px 15px;font-size:10px}.filter-tabs{gap:12px}.filter-tabs button{font-size:9px}.search-field{max-width:95px}.search-field input{font-size:9px}.room-list-head,.room-row{grid-template-columns:minmax(0,1fr) 40px 65px}.room-list-head>span:nth-child(3),.room-timer{display:none}.empty-rooms{gap:14px;min-height:220px}.empty-rooms h3{font-size:20px}.empty-rooms p{font-size:10px}.empty-tiles .tile{width:24px;height:34px}.lobby-footer{font-size:8px}.room-layout{grid-template-columns:minmax(0,1fr)}.chat-panel{margin-top:10px}.chat-messages{height:180px}.chat-empty{padding:15px 10px}.chat-empty p{font-size:22px}.chat-empty>svg{display:none}.in-room .sidebar-note{display:none}.game-table{height:470px}.table-center{left:120px;right:120px}.room-title h1{font-size:31px}.page-heading h1{font-size:46px}.lesson-layout{grid-template-columns:155px minmax(0,1fr);gap:20px}.lesson-nav button{font-size:11px;gap:8px}.rules-section,.profile-layout{grid-template-columns:1fr}.profile-form{max-width:100%}.profile-stats{margin-top:28px}.history-section{margin-top:10px}}@media(max-width:760px){body{font-size:14px}.sidebar{position:relative;inset:auto;width:100%;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:12px 20px;display:grid;grid-template-columns:1fr auto;align-items:center;background:#f6f5e9;z-index:30}.brand{width:80px;margin:0}.brand img{width:64px;height:64px;margin:0}.mobile-menu{display:flex}.primary-nav{grid-column:1/-1;display:none;padding:13px 0 8px;gap:3px}.mobile-open .primary-nav{display:flex}.primary-nav>button{min-height:43px;font-size:13px;padding:11px 14px}.sidebar-bottom{display:none;padding-top:0;grid-column:1/-1}.mobile-open .sidebar-bottom{display:block}.sidebar-note{display:none}.sidebar-settings{margin:0;padding:12px 14px}.sidebar-user{padding:13px 14px 2px;border-top:0}.sidebar-user strong{font-size:13px}.sidebar-user span:not(.avatar){font-size:11px}.main-shell{margin-left:0}.topbar{height:52px;padding:0 20px;gap:10px}.breadcrumb{font-size:10px;gap:9px}.topbar .button{font-size:10px;min-height:30px;padding:6px 10px}.topbar .button svg{width:13px}.topbar-note{display:none}.connection-status{font-size:10px}.page{padding:0 22px 24px}.lobby-hero{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:33px 0 23px;min-height:0}.hero-copy h1{font-size:64px;line-height:1.01}.hero-copy>p{font-size:13px;line-height:1.75;margin-top:19px}.hero-actions{flex-wrap:wrap;margin-top:22px;gap:8px 13px}.hero-actions .button{font-size:12px;padding:11px 14px}.hero-actions .text-button{padding-left:0}.hero-details{font-size:10px;gap:19px;margin-top:19px}.lobby-table-art{max-width:400px;padding:30px 12px 32px;align-self:center;margin-top:6px}.art-table{height:240px;border-radius:66px}.art-table:before{border-radius:50px}.art-center{top:82px}.art-back-row .tile{width:17px;height:26px}.art-front-row .tile{width:35px;height:49px}.art-discard-one{top:90px;left:43px}.art-discard-two{top:120px;right:43px}.art-discard .tile{width:26px;height:37px}.art-caption{right:22px;font-size:15px}.lobby-bottom{display:flex;flex-direction:column;gap:29px;padding-top:26px}.section-heading{margin-bottom:19px;align-items:flex-start}.section-heading h2{font-size:28px}.section-heading p{font-size:11px;line-height:1.65;margin-top:9px}.live-label{display:flex;font-size:8px;margin-top:8px}.directory-toolbar{gap:10px}.filter-tabs{gap:18px}.filter-tabs button{font-size:11px}.search-field{max-width:105px}.search-field input{font-size:10px}.room-list-head,.room-row{grid-template-columns:minmax(0,1fr) 45px 73px}.room-list-head>span:nth-child(3),.room-timer{display:none}.room-row-title strong{font-size:11px}.room-row-title>div>span{font-size:9px}.room-row-mark{width:30px;height:30px}.room-row .button{font-size:10px;padding:7px 9px}.room-list-head{font-size:9px}.players-count{font-size:11px}.empty-rooms{min-height:180px;padding:27px 5px;gap:23px}.empty-rooms h3{font-size:25px;line-height:1.1}.empty-rooms p{font-size:11px;margin-top:10px;line-height:1.65}.learn-panel{width:100%;padding:24px 24px 0;position:relative}.learn-panel h2{font-size:39px;margin:18px 0 12px;max-width:240px}.learn-panel h2 br{display:none}.learn-panel>p{font-size:12px;max-width:235px}.learn-heading>span{font-size:11px}.learn-example{margin-top:20px}.learn-example .tile{width:29px;height:40px}.learn-example>span:last-child{font-size:10px;margin-left:12px}.learn-link{width:calc(100% + 48px);margin:24px -24px 0;padding:18px 24px;font-size:12px}.lobby-footer{flex-direction:column;gap:11px;align-items:flex-start;font-size:9px;margin-top:28px;padding-top:19px}.page-heading{padding:33px 0 27px;gap:17px}.page-heading h1{font-size:44px}.page-heading p{font-size:12px;margin-top:15px}.page-heading-icon{width:32px}.data-page,.profile-page,.admin-page,.tutorial-page{padding-bottom:45px}.ranking-section .section-heading{flex-direction:column;gap:9px}.ranking-table th,.ranking-table td{padding:14px 6px;font-size:11px}.ranking-table th{font-size:8px}.ranking-table th:first-child{width:35px}.ranking-table .rank-player{gap:8px}.ranking-table .avatar{height:25px;width:25px;font-size:11px}.ranking-table .rank-player strong{font-size:11px}.rank{width:25px;height:25px;font-size:11px}.data-empty{min-height:240px;padding:25px 0}.data-empty h3{font-size:29px}.data-empty p{font-size:12px}.profile-layout{grid-template-columns:1fr;gap:35px;padding-top:25px}.profile-layout h2{font-size:31px}.profile-form{max-width:100%}.profile-stats{justify-content:space-between;margin-top:30px;padding-top:22px;gap:15px}.profile-stats strong{font-size:32px}.profile-stats span{font-size:9px}.page-heading>.avatar{width:46px;height:46px}.lesson-layout{display:flex;flex-direction:column;gap:20px;padding-top:18px}.lesson-nav{flex-direction:row;gap:7px;overflow-x:auto;padding-bottom:5px}.lesson-nav button{font-size:0;min-width:50px;padding:8px;display:flex;justify-content:center}.lesson-nav button.current{font-size:11px;white-space:nowrap;flex:1;padding-left:0}.lesson-nav button>span{width:25px;min-width:25px;height:25px;font-size:11px}.lesson-content h2{font-size:37px}.lesson-content>p:not(.lesson-progress){font-size:13px;line-height:1.8;margin-top:17px}.lesson-progress{font-size:10px;margin-bottom:13px}.lesson-tiles{padding-top:27px}.lesson-controls .button{font-size:11px;padding:10px 13px;min-height:42px}.rules-section{grid-template-columns:1fr;gap:25px;margin-top:33px;padding-top:28px}.rules-section h2{font-size:33px}.rules-section p{font-size:12px}.scoring-table td,.scoring-table th{font-size:10px;padding:10px 6px}.admin-summary{flex-direction:column;gap:10px;padding:18px;margin-bottom:28px}.admin-summary span{font-size:12px}.admin-summary strong{font-size:23px}.admin-page h2{font-size:31px}.admin-page .page-heading{align-items:flex-start}.admin-page .page-heading .button{font-size:10px;padding:8px 10px}.admin-reports article>div{flex-direction:column;gap:4px}.admin-users .button{font-size:10px}.modal{padding:24px;width:440px}.modal h2{font-size:32px}.modal::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}.toast{left:50%;bottom:18px;font-size:12px;padding-left:15px}.room-page{padding:20px 12px 25px}.room-heading{gap:10px;margin-bottom:18px}.room-title{gap:6px}.back-button{min-width:25px;width:25px}.room-title h1{font-size:26px;max-width:185px}.room-title p{font-size:8px;gap:4px;white-space:nowrap}.room-tools{gap:2px}.room-tools .icon-button{width:29px;height:32px;min-width:29px}.room-tools .icon-button svg{width:16px}.room-tools .button{min-height:32px;width:31px;padding:6px;border:0}.room-tools .button>span{display:none}.room-layout{grid-template-columns:minmax(0,1fr);gap:15px}.waiting-table{padding:22px 15px}.waiting-table-intro{padding:5px 0 23px}.waiting-table-intro h2{font-size:35px}.waiting-table-intro p{font-size:10px;margin-top:13px}.waiting-seats{grid-template-columns:1fr;gap:10px}.waiting-seat{flex-direction:row;align-items:center;justify-content:space-between;padding:14px}.waiting-seat .player{flex:1;min-width:0}.waiting-seat .player-name strong{font-size:11px}.waiting-seat .player-name>span{font-size:9px}.waiting-seat .ready-status{padding-left:0;font-size:9px;white-space:nowrap}.waiting-seat>.button{font-size:9px;white-space:nowrap;padding:8px}.waiting-seat>.button svg{width:14px}.waiting-actions{gap:9px;margin-top:24px}.waiting-actions .button{font-size:11px;min-height:42px;padding:10px 15px}.waiting-hint{font-size:9px;line-height:1.7;margin:15px 10px 20px}.whatsapp-link{font-size:10px}.chat-panel{margin-top:2px}.chat-messages{height:210px}.chat-empty{padding-top:33px}.chat-empty p{font-size:25px}.chat-input input{font-size:13px;padding:12px}.chat-guidance{font-size:10px}.chat-message p{font-size:13px}.chat-message strong{font-size:11px}.chat-message time{font-size:10px}.game-status{gap:5px;font-size:10px;padding-bottom:12px}.round-label{font-size:8px}.countdown{font-size:10px;margin-left:3px;min-width:34px}.countdown svg{width:12px}.game-table{height:420px;border-width:5px;border-radius:16px}.game-table:before{inset:7px;border-radius:8px}.opponent-2{top:18px;max-width:83%}.opponent-1{right:8px;top:calc(50% - 47px);width:66px}.opponent-3{left:8px;top:calc(50% - 47px);width:66px}.opponent .player .avatar{width:26px;height:26px;font-size:10px}.opponent .player-name strong{font-size:9px}.opponent-1 .player-name,.opponent-3 .player-name{max-width:62px}.opponent-1 .player-name>span,.opponent-3 .player-name>span{font-size:7px}.opponent-1 .player>.quiet,.opponent-3 .player>.quiet{right:-2px;top:-8px;width:15px}.opponent-1 .player>.quiet svg,.opponent-3 .player>.quiet svg{width:10px}.hidden-hand{gap:2px;margin-top:9px}.hidden-hand .tile{width:12px;height:19px}.opponent-1 .hidden-hand,.opponent-3 .hidden-hand{max-width:60px;gap:2px}.opponent-1 .hidden-hand .tile,.opponent-3 .hidden-hand .tile{width:9px;height:14px}.opponent-1 .hidden-hand .tile-back-mark,.opponent-3 .hidden-hand .tile-back-mark{inset:2px;font-size:4px}.opponent-melds{gap:4px}.opponent-melds .tile{width:12px;height:18px}.opponent-melds .tile-honor{font-size:10px}.opponent-melds .tile-character b{font-size:7px}.opponent-melds .tile-character>span{font-size:6px}.opponent-melds .tile-corner{font-size:2px}.table-center{inset:116px 77px 32px}.table-winds{gap:15px;margin-bottom:12px}.table-winds>span{font-size:20px}.table-winds strong{font-size:29px}.table-winds small{font-size:6px}.discard-piles{gap:8px;padding:0 1px 5px}.discard-pile>span{font-size:6px}.discard-pile>div{gap:2px}.discard-pile .tile{width:17px;height:24px}.discard-pile .tile-honor{font-size:13px}.discard-pile .tile-character b{font-size:10px}.discard-pile .tile-character>span{font-size:8px}.discard-pile .tile-corner{font-size:3px}.discard-pile .white-dragon{width:9px;height:14px}.table-brand{font-size:7px;letter-spacing:2px;bottom:13px}.own-hand-section{padding:19px 11px 15px}.own-hand-header .player-name strong{font-size:11px}.own-hand{justify-content:flex-start;gap:4px;padding:23px 4px 13px;scrollbar-width:thin}.own-hand>.tile{width:33px;height:47px}.own-hand>.tile .tile-honor{font-size:25px}.own-hand>.tile .tile-character b{font-size:20px}.own-hand>.tile .tile-character>span{font-size:17px}.large-tiles .own-hand>.tile{width:46px;height:65px}.own-hand-header .player{min-width:150px}.game-actions{align-items:flex-start;gap:11px;padding-top:12px;flex-direction:column}.game-actions>p{font-size:11px}.action-buttons .button{min-height:43px;font-size:12px;padding:10px 13px}.table-footnote{font-size:8px;margin:14px 5px 3px}.round-result{padding:21px 16px}.result-title{gap:10px;align-items:flex-start}.result-title>svg{width:24px}.result-title h2{font-size:27px}.result-title p{font-size:10px}.fan-value{font-size:34px;gap:4px}.fan-value small{font-size:9px}.result-patterns{gap:7px;margin-top:16px}.result-patterns>span{font-size:9px}.result-scores{gap:8px}.result-scores span{font-size:9px}.result-scores strong{font-size:14px}.result-hand .tile{width:24px;height:34px}.connection-banner{font-size:11px;line-height:1.6;padding:10px 12px}.sound-popover{right:-35px}}@media(max-width:360px){.page{padding-left:18px;padding-right:18px}.hero-copy h1{font-size:57px}.hero-actions{align-items:flex-start;flex-direction:column;gap:3px}.hero-details{gap:15px;font-size:9px}.lobby-table-art{padding-left:2px;padding-right:2px}.art-table{height:225px}.room-title h1{max-width:140px}.room-title p,.round-label{font-size:7px}.table-center{left:70px;right:70px}.opponent-1{right:5px;width:60px}.opponent-3{left:5px;width:60px}.game-table{height:410px}.filter-tabs{gap:12px}.search-field{max-width:95px}.empty-rooms{gap:17px}.empty-rooms h3{font-size:23px}.avatar-options{gap:9px}.avatar-option{height:35px;width:35px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.spinner{opacity:.65}}.last-tile-note{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:10px;color:#c5d3b3;font-size:8px;flex-shrink:0}.last-tile-note:empty{display:none}.last-tile-note .tile{width:20px;height:28px}.last-tile-note .tile-honor{font-size:16px}.last-tile-note .tile-character b{font-size:12px}.last-tile-note .tile-character>span{font-size:10px}
