:root{--font-sans:system-ui,sans-serif!important;--font-serif:system-ui,sans-serif!important;--font-brush:system-ui,sans-serif!important;--font-mono:ui-monospace,monospace!important}#tp-source-bar{position:relative;z-index:999999;background:#f4f1e7;color:#28533e;padding:12px 20px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font:12px system-ui,sans-serif}#tp-source-bar a{color:inherit;text-decoration:none;font-weight:700}#tp-source-bar button{margin-left:auto;background:#28533e;color:#fff9e8;border:0;border-radius:22px;min-height:44px;padding:10px 16px}#tp-source-bar p{flex-basis:100%;margin:0;line-height:1.8}#tp-source-bar details{flex-basis:100%;line-height:1.8}#tp-source-bar summary{cursor:pointer;min-height:28px}.tp-dialog{position:fixed;inset:0;z-index:1000000;display:grid;place-items:center;padding:15px;background:#0008}.tp-dialog article{background:#f4f1e7;color:#28533e;border:1px solid #a6b094;border-radius:16px;padding:22px;max-width:min(92vw,760px);max-height:82svh;overflow:auto;font:14px/1.8 system-ui,sans-serif}.tp-dialog article>header{display:flex;gap:20px;justify-content:space-between;margin-bottom:14px;font-weight:700}.tp-dialog button{padding:8px 13px;border:1px solid #93a187;border-radius:9px;background:#28533e;color:white;min-height:44px}.tp-message{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:1000001;background:#f4f1e7;color:#28533e;padding:14px 20px;border-radius:12px;max-width:90vw;box-shadow:0 7px 30px #0005;font:13px system-ui,sans-serif}.public-discovery{display:none!important}.landscape-lock{padding-top:28px!important}.tp-dialog .rules-panel{color:#28533e}.tp-dialog .rules-panel h3{color:#28533e}@media(max-width:600px){#tp-source-bar{padding:11px 14px;gap:8px}#tp-source-bar>strong{order:3;flex-basis:100%}#tp-source-bar>p,#tp-source-bar>details{order:4}.tp-dialog article{padding:16px}}@media(max-height:480px)and(orientation:landscape){#tp-source-bar{padding:5px 12px;font-size:10px}#tp-source-bar p{font-size:10px}#tp-source-bar button{min-height:32px;padding:4px 12px}#tp-source-bar details{display:none}}

/* Establish a real remaining-viewport containing block for original fixed-position tables. */
html,body{height:100%;overflow:hidden}body{display:flex;flex-direction:column}#tp-source-bar{flex:none}#app{position:relative;flex:1;min-height:0;transform:translateZ(0);overflow:hidden}

/* R5: one compact disclosure row; expanded legal text overlays, never shrinks the table. */
#tp-source-bar{height:44px;min-height:44px;padding:3px 12px;gap:12px;flex-wrap:nowrap;white-space:nowrap;z-index:999999}
#tp-source-bar>a{flex:none;font-size:13px}#tp-source-bar>strong{flex:1;min-width:0;font-size:11px;order:initial}
#tp-source-bar details{display:block;flex:0 0 auto;order:initial;line-height:1.3}
#tp-source-bar summary{display:flex;align-items:center;min-height:36px;padding:0 10px;border:1px solid #b4bca8;border-radius:8px;font-size:11px;list-style:none}
#tp-source-bar summary::-webkit-details-marker{display:none}
#tp-source-bar button{flex:none;margin-left:0;min-height:36px;padding:4px 12px;font-size:12px}
#tp-source-bar .tp-source-popover{position:absolute;left:8px;right:8px;top:100%;padding:16px;border:1px solid #93a187;border-radius:0 0 12px 12px;background:#f4f1e7;box-shadow:0 8px 25px #0006;white-space:normal;max-height:65svh;overflow:auto;font-size:12px;line-height:1.7}
#tp-source-bar .tp-source-popover p{display:block;margin:0 0 10px;font-size:12px;line-height:1.7}
.tp-selection-count{display:inline-grid;place-items:center;min-width:24px;padding:3px;border:1px solid #a6b094;border-radius:8px;font:13px system-ui;color:#fff9e8}
.card-group-self .card{touch-action:none}.card-group-self .card:focus-visible{outline:3px solid #efff9e;outline-offset:-3px}
@media(max-width:480px){#tp-source-bar{gap:6px;padding:3px 7px}#tp-source-bar>a{font-size:12px}#tp-source-bar>strong{font-size:9px}#tp-source-bar summary{padding:0 7px;font-size:10px}#tp-source-bar button{padding:4px 8px;font-size:11px}}
/* Short landscape: explicit non-overlapping zones in the REMAINING #app height.
   Opponents' private cards remain hidden; accessible counts replace redundant backs. */
@media(max-width:900px)and(max-height:480px)and(orientation:landscape){
 #tp-source-bar{height:40px;min-height:40px;padding:2px 10px;gap:10px}
 #tp-source-bar summary,#tp-source-bar button{min-height:34px}
 .room{--table-top-safe:46px;--table-left-safe:8px;--table-right-safe:8px}
 .room .btn-exit-room{top:4px;left:6px;width:120px;height:34px;min-height:34px;padding:0 5px;font-size:11px;letter-spacing:0;white-space:nowrap}
 .room .room-topbar{top:4px;left:132px;right:6px;width:auto;height:34px;min-height:34px;padding:3px 7px;gap:6px;flex-wrap:nowrap;transform:none}
 .room .room-title{min-width:0;gap:5px}.room .room-title strong{flex:none;font-size:12px}.room .room-title span{min-width:0;font-size:10px;white-space:nowrap}
 .room .ai-difficulty-control{flex:none;min-width:0;gap:4px;padding:0 4px}.room .ai-difficulty-control>span,.room .ai-difficulty-control>em{display:none}.room .ai-difficulty-control select{width:72px;min-height:28px;padding:0 3px;font-size:10px}
 .room .room-top-actions{flex:none;gap:6px}.room .room-top-actions>span{font-size:10px;white-space:nowrap}.room .room-top-actions>button{min-height:28px;padding:0 7px;font-size:10px}.room .room-top-actions>button:first-of-type{display:none}
 .room .btn-group{bottom:86px;left:50%;right:auto;top:auto;transform:translateX(-50%);max-width:calc(100% - 28px);height:38px;min-height:38px;padding:2px 7px;gap:6px;white-space:nowrap;z-index:100}
 .room .btn-group .btn{min-width:54px;height:32px;min-height:32px;padding:0 10px;font-size:12px;letter-spacing:0}.room .btn-group .tp-clear-selection{min-width:48px;padding:0 8px;font-size:11px}
 .room .btn-group .clock{width:30px;height:30px;font-size:13px;flex:none}
 .room .card-group-self{bottom:6px;max-width:calc(100% - 168px);z-index:80}
 .room .players .player-left,.room .players .player-right{display:flex;position:fixed;top:46px;bottom:auto;transform:none;flex-direction:column;align-items:center;width:76px;height:52px;gap:2px}
 .room .players .player-left{left:4px;right:auto}.room .players .player-right{right:4px;left:auto}
 .room .player-photo{width:30px;height:30px;border-width:1px}.room .player-name{font-size:10px;margin-top:0;max-width:76px}.room .team-tag{display:none}.room .bot-tag{font-size:8px;line-height:1.2;padding:1px 3px;top:-3px;right:-5px}
 .room .players .player-top{display:flex;position:fixed;left:50%!important;top:44px!important;bottom:auto;transform:translateX(-50%)!important;flex-direction:row;align-items:center;gap:7px;width:auto;height:30px}.room .players .player-top .player-name{max-width:110px}
 .room .players>.player-self-ctx,.room.room-guandan .players>.player-self-ctx,.room.room-playing:not(.room-guandan) .players>.player-self-ctx,.room .players>.player-self{left:4px!important;bottom:6px!important;top:auto!important;right:auto!important;transform:none!important;width:72px;height:50px;z-index:90}
 .room .players>.player-self-ctx .player-photo,.room .players>.player-self .player-photo{width:28px;height:28px;margin:0 auto}.room .players>.player-self-ctx .player-name{margin-top:2px;max-width:72px;font-size:9px}
 .room .card-group-left,.room .card-group-right{top:101px!important;bottom:auto;width:76px!important;height:24px!important;transform:none!important}.room .card-group-left{left:4px!important}.room .card-group-right{right:4px!important;left:auto!important}
 .room .card-group-left .card,.room .card-group-right .card,.room.room-playing .card-group-up .card{display:none}
 .room .card-group-up{left:50%;top:77px!important;bottom:auto;width:150px!important;height:20px!important;transform:translateX(-50%)}
 .room .text-tips-left,.room .text-tips-right,.room .text-tips-top{position:absolute;inset:0 auto auto 0;width:100%;min-width:0;padding:2px;font-size:10px;text-align:center;white-space:nowrap;transform:none;line-height:16px}
 .room .card-group-left .icon-group,.room .card-group-right .icon-group,.room .card-group-up .icon-group{top:25px;left:50%;right:auto;transform:translateX(-50%)}
 .room .icon-group .clock{width:26px;height:26px;font-size:12px}
 .room .card-ctx-left,.room.room-guandan .card-ctx-left{top:116px!important;left:96px!important;right:auto;bottom:auto;transform:scale(.8);transform-origin:left top;animation:none}
 .room .card-ctx-right,.room.room-guandan .card-ctx-right{top:116px!important;right:96px!important;left:auto;bottom:auto;transform:scale(.8);transform-origin:right top;animation:none}
 .room .card-ctx-top,.room.room-guandan .card-ctx-top{top:94px!important;left:50%;right:auto;bottom:auto;transform:translateX(-50%) scale(.72);transform-origin:center top;animation:none}
 .room .card-ctx-self{top:calc(100% - 175px)!important;bottom:auto;left:50%;right:auto;transform:translateX(-50%) scale(.72);transform-origin:center top;animation:none}
 .room .card-group-top:not(.card-group-up){top:46px!important;transform:translateX(-50%) scale(.75);transform-origin:center top}
 .room .score-tipe{font-size:14px;padding:4px 8px;letter-spacing:0}.room .connection-banner{top:40px;font-size:10px;max-width:80%}
 .room-waiting .bot-bar{bottom:64px}.room .btn-prepare{bottom:10px;min-height:38px;height:38px;font-size:15px}
 .room .fx-announcement{max-width:70%;font-size:26px}
}
#tp-source-bar>strong{overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px)and(max-height:480px)and(orientation:landscape){.fx-burst{top:40%;max-width:80vw;font-size:34px!important;letter-spacing:.05em;white-space:normal;text-align:center}.connection-banner{top:40px;font-size:10px;max-width:80%}}
/* R5a native follow-up: lobby navigation participates in scrolling, never overlays Create. */
.house{padding-top:12px;scroll-padding-top:12px}.house>.quick-bar{position:relative;inset:auto;width:min(1160px,100%);flex:none;min-height:44px;padding:9px 12px;flex-wrap:wrap;gap:8px}.house>.hall-shell{flex:none}.house .hall-actions{flex-shrink:0;scroll-margin-top:12px}.house .hall-actions>button{min-height:40px}
