/* Reference composition: two lacquer scoreboards, an open felt field and a broad wooden tray.
   The game remains a fixed top-down CSS 3D tabletop, not a WebGL scene. */
.single-table {
  --serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP','Songti SC',serif;
  --paper:#f5f1e7; --op-card:23px; --shelf-card:27px; --capture-step:.88;
  --op-height:234px; --own-height:166px; --hand-height:195px;
  width:100%; max-width:560px; height:100dvh; max-height:none; min-height:803px;
  grid-template-rows:38px var(--op-height) minmax(142px,1fr) var(--own-height) var(--hand-height);
  gap:7px; padding:env(safe-area-inset-top) 7px env(safe-area-inset-bottom);
  background-image:url('../../assets/theme/table.png?v=f58c6565aa8bfa7b'); background-size:100% 100%;
  border:0; box-shadow:0 0 60px #0008; overflow:hidden;
  font-family:var(--serif); color:#fff8e9;
}
.single-table.hanaawase {--op-height:184px;min-height:753px;grid-template-rows:38px var(--op-height) minmax(142px,1fr) var(--own-height) var(--hand-height)}
.single-table:before{display:none}
.single-table .topbar{margin:0 -7px;padding:2px 8px;background:#081c20cc;border:0;box-shadow:none;gap:6px}
.single-table .wordmark{font-size:16px;border:1px solid #b5bfb68c;border-radius:30px;padding:3px 9px;letter-spacing:.05em}
.single-table .round{font-size:14px;color:#fff8ed;letter-spacing:.03em}
.single-table .field-seal{font-size:14px;border:0;background:#294734;padding:3px 9px;box-shadow:none;border-radius:14px 9px;color:#ffedc8}
.single-table .field-seal[data-field=large]{background:linear-gradient(135deg,#bb4f43,#8e2523)}
.single-table .field-seal[data-field=absolute]{background:linear-gradient(135deg,#8d4679,#471e43)}
.single-table .top-stock{font-size:14px;white-space:nowrap}
.single-table .topbar .iconbutton{min-width:31px;min-height:31px;padding:0;font-size:22px;border:1px solid #bcbea899;border-radius:8px}
.single-table .opponents{gap:10px;margin:0;min-height:0}
.single-table .opponent{display:grid;grid-template-rows:48px minmax(0,1fr);gap:0;padding:4px;
  background:#0d2628 url('../../assets/theme/components.png?v=f58c6565aa8bfa7b') -678px -69px/1254px 1254px;
  border:1px solid #e6d68a;border-radius:10px;box-shadow:inset 0 0 0 2px #102c2b,0 3px 5px #10251688;overflow:hidden}
.single-table.hanaawase .opponent{grid-template-rows:48px minmax(0,1fr)}
.single-table .opponent.active{box-shadow:inset 0 0 0 2px #bda663,0 0 8px #f3d48366}
.single-table .opponent-heading{display:grid;grid-template-columns:26px minmax(0,1fr) auto;grid-template-rows:22px 24px;padding:0 2px 3px;gap:0 4px;min-height:0;line-height:1.15}
.player-crest{display:block;width:25px;height:25px;border-radius:50%;border:1px solid #f5db85;background:#eddca5;box-shadow:0 1px 3px #0009;flex:none}
.single-table .player-crest{background-image:url('../../assets/theme/components.png?v=f58c6565aa8bfa7b');background-size:583px 583px;background-position:-394px -178px}
.single-table .crest-1{filter:sepia(.2);background-color:#c98d49}
.single-table .crest-2{filter:hue-rotate(330deg);background-color:#dda552}
.single-table .opponent-heading .player-crest{grid-row:1/3;align-self:start;margin-top:2px}
.single-table .opponent-name{grid-column:2;font-size:16px;letter-spacing:.04em;min-width:0}
.single-table .opponent-name small{font-family:system-ui;font-size:10px;letter-spacing:0;color:#c4c7b5}
.single-table .seat-role{font-size:12px;line-height:1.2;background:linear-gradient(#f7e5b9,#dfc58f);border:1px solid #bba26a;border-radius:4px;padding:2px 4px;color:#28291f;white-space:nowrap}
.single-table .opponent-heading strong{grid-column:2;grid-row:2;font-size:26px;line-height:1;color:#fff9ec;font-weight:400}
.single-table .opponent-heading strong small{font-family:var(--serif);color:inherit;font-size:13px}
.single-table .hand-count{grid-column:3;grid-row:2;position:relative;white-space:nowrap;font-size:12px;color:#fff8e9;align-self:end;padding-bottom:2px;z-index:0}
.back-fan{position:absolute;right:10px;bottom:1px;width:37px;height:22px;z-index:-1;opacity:.6}
.back-fan i{position:absolute;inset:0 auto 0 0;width:15px;background:url('../../assets/theme/card-back.png?v=f58c6565aa8bfa7b') center/116% 110%;border-radius:1px;transform:rotate(-7deg)}
.back-fan i:nth-child(2){left:9px;transform:rotate(-2deg)}.back-fan i:nth-child(3){left:18px;transform:rotate(4deg)}
.opponent-paper{display:grid;grid-template-rows:56px 19px minmax(0,1fr);min-height:0;padding:3px 4px 4px;border-radius:6px;background:var(--paper) url('../../assets/theme/components.png?v=f58c6565aa8bfa7b') -70px -82px/1254px 1254px;color:#20251f}
.hanaawase .opponent-paper{grid-template-rows:20px minmax(0,1fr)}
.single-table .public-hand{display:grid;grid-template-rows:14px minmax(0,1fr);height:auto;gap:1px;padding:0;margin:0;overflow:hidden}
.single-table .public-hand>span{font-size:12px;line-height:14px;width:auto;color:#222a23;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.single-table .public-hand-cards{height:auto;min-height:0;gap:3px;overflow:auto;padding:0 1px 3px}
.single-table .public-hand-cards .card{width:25px;min-width:25px;flex-basis:25px;margin-right:0}
.single-table .public-hand-empty{visibility:visible;opacity:.6}
.single-table .capture-title{font-family:var(--serif);font-size:13px;font-weight:600;display:flex;align-items:center;gap:4px;line-height:1.2;white-space:nowrap;overflow:hidden;min-width:0;color:#24251e;background:transparent;border:0;box-shadow:none;text-align:left;padding:0;min-height:0;border-radius:0}
.single-table .capture-title small{font-size:11px;color:#4c4c40;font-weight:400;overflow:hidden;text-overflow:ellipsis}
.single-table .table-captures,.single-table .own-capture-area .table-captures{--shelf-card:var(--op-card);display:grid;grid-template-rows:repeat(4,minmax(0,1fr));height:100%;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;gap:0;border-radius:0;overflow:hidden}
.single-table .table-capture-row,.single-table .own-capture-area .table-capture-row{height:auto;min-height:0;grid-template-columns:39px minmax(0,1fr) 18px;gap:2px;align-items:center;border-bottom:1px solid #857f6a26}
.single-table .table-capture-row:last-child{border:0}
.single-table .rank-label,.single-table .own-capture-area .rank-label{display:flex;gap:2px;align-items:center;font-size:12px;padding:0;line-height:1.1;color:#282b23;white-space:nowrap}
.rank-points:before{content:'('}.rank-points:after{content:')'}
.single-table .row-count{display:flex;flex-direction:column;align-items:end;font-size:12px;line-height:1.1;padding:0;color:#34362a;font-family:var(--serif)}
.count-unit,.row-points{display:none}
.single-table .overlap-scroll.capture-scroll{height:100%;min-height:0;align-items:center;gap:0;padding:1px 1px 2px;overflow-x:auto;overflow-y:hidden;container-type:size}
.single-table .overlap-scroll .card,.single-table .compact-captures .overlap-scroll .card{--shelf-card:min(var(--op-card),calc(100cqh*72/112));width:var(--shelf-card);min-width:var(--shelf-card);flex-basis:var(--shelf-card);margin-right:calc(var(--shelf-card)*-.12);border-radius:1px}
.single-table .overlap-scroll .card:last-child{margin-right:2px}
.single-table .capture-empty,.single-table .compact-captures .capture-empty,.single-table .own-capture-area .capture-empty{height:auto;min-height:0;background:transparent;border:0;color:#aaa08b;width:auto;font-size:12px;box-shadow:none}
.single-table .capture-empty:before{display:none}
.single-table .field-row{grid-template-columns:minmax(0,1fr) 72px;grid-template-rows:minmax(0,1fr) 16px;gap:0 12px;padding:4px 16px 0 43px;min-height:0}
.single-table .table-zone,.single-table .table-zone.drop-ready{display:grid;grid-template-rows:14px minmax(0,1fr);height:100%;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;border-radius:0;overflow:visible}
.single-table .table-zone.drop-ready{outline:1px dashed #f2dc8b;outline-offset:7px}
.single-table .table-meta{font-size:11px;line-height:14px;color:#dfe4c3a6;margin:0;align-self:center}
.single-table .table-cards{--field-limit:120px;grid-template-columns:repeat(var(--field-cols,3),minmax(0,1fr));grid-template-rows:repeat(var(--field-rows,2),minmax(0,1fr));padding:3px 3px 5px;gap:10px;align-content:center;container-type:size;overflow:visible}
.single-table .table-cards .card{--field-card-height:min(var(--field-limit),calc((100cqh - 8px - (var(--field-rows,2) - 1)*10px)/var(--field-rows,2)),calc((100cqw - 6px - (var(--field-cols,3) - 1)*10px)/var(--field-cols,3)*112/72));height:var(--field-card-height);width:calc(var(--field-card-height)*72/112);max-height:none;max-width:none;align-self:center;justify-self:center}
.single-table .action-rail{justify-content:center;align-items:center;gap:9px;position:relative}
.single-table .draw-rest{display:flex;flex-direction:column;gap:3px;align-items:center;font-size:14px;color:#fff8ea}
.single-table .draw-rest .deck-back{width:48px!important;aspect-ratio:72/112;border:0;background:none;box-shadow:none;padding:0;margin:0 5px 9px 0}
.single-table .draw-rest>span{display:block;line-height:1}
.single-table .draw-rest>strong{font-size:26px;line-height:1.05;font-weight:400;background:#0b221789;border-radius:4px;min-width:38px;text-align:center}
.deck-back i:nth-child(1){transform:translate(-4px,7px)}.deck-back i:nth-child(2){transform:translate(-3px,5px)}.deck-back i:nth-child(3){transform:translate(-1px,2px)}
.single-table .draw-tray{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:3px;gap:8px;margin:0;border:0;background:#21452cef;box-shadow:0 0 12px #193e23;border-radius:8px;z-index:2;min-height:0}
.single-table .draw-slot{width:48px;flex:none}.single-table .draw-slot .card{width:100%;max-width:none}
.single-table .draw-copy strong{display:block;font-size:12px;line-height:1.3;color:#fff5d6;max-height:none}
.single-table .draw-copy button{min-height:34px;border:1px solid #d0b56c;background:#ead7a5;padding:4px 2px;font-size:12px}
.single-table .last-move{grid-column:1/-1;font-size:11px;line-height:16px;min-height:0;padding:0;color:#e8e3cb9c;align-self:end}
.single-table .personal-zone{grid-template-columns:23% minmax(0,1fr) 23%;gap:4px;padding:4px;border:1px solid #e8d789;border-radius:9px;background:#0a2629bf;box-shadow:inset 0 0 0 2px #173c31;min-height:0}
.single-table .own-heading{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:5px;padding:4px 3px;position:relative;white-space:normal;min-width:0}
.single-table .own-heading>.player-crest{width:26px;height:26px}
.single-table .own-heading>strong{font-size:17px;line-height:1.3;color:#fff8ea;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.single-table .own-heading>.seat-role{position:absolute;top:5px;right:2px;font-size:12px;color:#222b20}
.single-table .own-heading>.own-score{font-size:29px;line-height:1;color:#fff8ea;white-space:nowrap}
.single-table .own-score small{color:inherit;font-size:14px}
.personal-tools{display:flex;flex-wrap:wrap;gap:3px;margin-top:auto;width:100%}
.single-table .own-heading .personal-tools button{margin:0;min-height:28px;font-size:12px;padding:3px 5px;background:#0d2829b0;color:#e6dab4;border:1px solid #b7a57370;border-radius:5px;line-height:1.2}
.single-table .own-capture-area{display:grid;grid-template-rows:23px minmax(0,1fr);gap:0;padding:3px 5px;margin:0;border:0;border-radius:6px;background:var(--paper) url('../../assets/theme/components.png?v=f58c6565aa8bfa7b') -70px -82px/1254px 1254px;box-shadow:none;min-height:0}
.single-table .own-capture-area .table-captures{--op-card:27px}
.single-table .own-capture-area .capture-title{font-size:13px}
.single-table .own-capture-area .capture-title small{display:none}
.single-table .own-capture-area .table-capture-row{grid-template-columns:39px minmax(0,1fr) 13px}
.yaku-paper{display:flex;flex-direction:column;gap:6px;background:var(--paper) url('../../assets/theme/components.png?v=f58c6565aa8bfa7b') -70px -82px/1254px 1254px;border-radius:6px;color:#242c23;padding:6px 5px;min-height:0;overflow:hidden}
.yaku-paper h3{font-size:14px;font-weight:600;white-space:nowrap}
.single-table .capture-yaku{display:flex;flex-wrap:wrap;gap:4px;white-space:normal;border:0;overflow:auto;min-height:0;line-height:1.4;font-size:12px;color:#354438}
.yaku-chip{display:block;padding:4px 5px;border-radius:4px;color:#fff5e4;background:#265b49;font-size:12px}.yaku-chip:nth-child(even){background:#b7342e}
.no-yaku{color:#827c68;font-size:12px}
.single-table .review-rail{display:flex;flex-direction:column;gap:3px;margin-top:auto;color:#393a2e;text-align:left;font-size:12px;align-items:stretch;justify-content:end}
.single-table .review-rail>span{display:block;font-size:12px}
.single-table .review-rail button{min-height:28px;font-size:12px;line-height:1.2;padding:3px 2px;background:#142e31;border:0;border-radius:4px;box-shadow:none;color:#faf0d9}
.single-table .hand-zone{display:grid;grid-template-rows:24px minmax(0,1fr) 42px;gap:7px;margin:0 -7px;padding:7px 8px 11px;border:0;border-radius:45% 45% 0 0/13px 13px 0 0;background:#aa9671 url('../../assets/theme/wood-tray.png?v=f58c6565aa8bfa7b') center bottom/auto 125% no-repeat;box-shadow:0 -4px 8px #17271955,inset 0 3px 2px #e1c18b66;transform-style:flat;min-height:0}
.single-table .hand-zone:after{display:none}
.single-table .hand-title{display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;gap:10px;color:#fff8ea;padding:0;margin:0}
.single-table .hand-title>span{padding:4px 17px;background:#2e3026d1;border-radius:30px;white-space:nowrap;font-weight:400}
.single-table .hand-title:before,.single-table .hand-title:after{content:'';width:26px;height:3px;border-top:1px solid #f0cf7c;border-bottom:1px solid #f0cf7c;opacity:.9}
.single-table .hand-cards{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:start;gap:5px;padding:0 1px;overflow:visible;min-height:0}
.single-table .hand-cards>div{min-width:0;display:flex;flex-direction:column;align-items:center}
.single-table .hand-cards .card{width:100%;height:auto;max-width:none;aspect-ratio:72/112;margin:0;border:0;box-shadow:1px 2px #141d16,2px 4px 3px #251e1a99!important}
.single-table .hand-card-label{padding-top:4px;font-size:12px;line-height:15px;min-height:0;white-space:nowrap}
.single-table .public-marker{display:block;border-radius:4px;padding:1px 4px;background:#f2e5bf;color:#382d1b;box-shadow:none;font-size:12px}
.hand-controls{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:12px;align-items:stretch;padding:0 5px}
.hand-prompt{display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;line-height:1.25;padding:4px 12px;border-radius:40px;background:#292e29b3;color:#fffbec;min-width:0}
.single-table .rail-actions{display:flex;position:relative;gap:3px;align-items:stretch}
.single-table .rail-actions button.primary{min-height:38px;width:100%;font-family:var(--serif);font-size:17px;font-weight:400;line-height:1.1;padding:4px;border:1px solid #212e2d;border-radius:10px;background:linear-gradient(145deg,#919490,#585e60);color:white;box-shadow:inset 0 0 0 1px #f0ebd9,0 2px 3px #362e2580}
.single-table .rail-actions button.primary:not(:disabled){background:linear-gradient(#ead5a5,#c2a370);color:#252d25}
.single-table .rail-actions button:disabled{opacity:.75}
.single-table .rail-actions .cancel-card{position:absolute;right:-5px;top:-17px;min-height:23px;width:23px;padding:0;font-size:16px;background:#17362c;border-radius:50%;color:#fff0cd;border:1px solid #cfb773;box-shadow:none}
.single-table .rail-status{display:grid;place-items:center;color:#fff4d8;background:#28362cb0;border-radius:9px;width:100%;font-size:13px}
.single-table .card-solid,.single-table .overlap-scroll .card-solid{transform:translateZ(var(--card-z,2.5px)) rotateX(3deg) rotateY(-2deg)}
.single-table .card-front{border:2px solid #171b16;border-radius:2px;box-shadow:inset 0 0 0 1px #141a17}
.single-table .overlap-scroll .card-front,.single-table .public-hand .card-front{border-width:1px}
.single-table .card{box-shadow:1px 2px 0 #0e1913,2px 4px 3px #0a1d1599!important}
.single-table .card.selected{--card-z:140px;transform:translateY(-9px);outline:2px solid #ffe4a0;outline-offset:2px;box-shadow:3px 10px 8px #11200ccc!important}
.single-table .card.match{outline:2px solid #ffe08a;outline-offset:3px;filter:brightness(1.04)}
.single-table .spectator-info{grid-column:1/-1;padding:8px;gap:6px;justify-items:center}.single-table.spectator-table .opponents{gap:4px}.single-table.spectator-table .opponent-heading{grid-template-columns:minmax(0,1fr) auto}.single-table.spectator-table .player-crest{display:none}.single-table.spectator-table .opponent-name,.single-table.spectator-table .opponent-heading strong{grid-column:1}.single-table.spectator-table .hand-count{grid-column:2}.single-table.spectator-table .table-capture-row{grid-template-columns:26px minmax(0,1fr) 12px}.single-table.spectator-table .rank-name{display:none}.single-table.spectator-table .capture-title small{display:none}
@media(min-width:480px) and (min-height:780px){
  .single-table{--op-height:245px;--own-height:194px;--hand-height:207px;--op-card:27px;grid-template-rows:43px var(--op-height) minmax(170px,1fr) var(--own-height) var(--hand-height);gap:8px;padding-left:9px;padding-right:9px;min-height:891px}
  .single-table.hanaawase{--op-height:191px;grid-template-rows:43px var(--op-height) minmax(170px,1fr) var(--own-height) var(--hand-height);min-height:837px}
  .single-table .topbar{margin:0 -9px}.single-table .wordmark{font-size:19px}.single-table .round,.single-table .top-stock{font-size:17px}.single-table .opponent,.single-table.hanaawase .opponent{grid-template-rows:58px minmax(0,1fr)}
  .single-table .opponent-heading{grid-template-columns:34px minmax(0,1fr) auto;grid-template-rows:25px 29px}.single-table .opponent-name{font-size:20px}.single-table .opponent-heading strong{font-size:31px}.single-table .opponent-heading .player-crest{margin-top:4px}.single-table .hand-count{font-size:15px}
  .opponent-paper{grid-template-rows:48px 22px minmax(0,1fr)}.single-table .public-hand{grid-template-rows:16px minmax(0,1fr)}.single-table .public-hand-cards .card{width:19px;min-width:19px;flex-basis:19px}
  .single-table .capture-title{font-size:15px}.single-table .table-capture-row{grid-template-columns:49px minmax(0,1fr) 28px}.single-table .rank-label{font-size:14px}.count-unit{display:inline}.single-table .field-row{padding-left:80px;grid-template-columns:minmax(0,1fr) 85px;gap:0 26px}.single-table .draw-rest .deck-back{width:60px!important}
  .single-table .own-heading>strong{font-size:22px}.single-table .own-heading>.own-score{font-size:35px}.single-table .own-capture-area .table-captures{--op-card:29px}.single-table .own-capture-area .table-capture-row{grid-template-columns:47px minmax(0,1fr) 22px}.single-table .own-capture-area .rank-label{font-size:14px}
  .single-table .hand-zone{margin:0 -9px;padding:9px 12px 14px;grid-template-rows:25px minmax(0,1fr) 46px}.hand-controls{grid-template-columns:minmax(0,1fr) 95px;gap:18px}.hand-prompt{font-size:17px}.single-table .rail-actions button.primary{font-size:20px}
}
@media(max-height:740px){
  .single-table{--op-height:184px;--own-height:151px;--hand-height:151px;--op-card:20px;min-height:0;grid-template-rows:34px var(--op-height) minmax(98px,1fr) var(--own-height) var(--hand-height);gap:4px}
  .single-table.hanaawase{--op-height:148px;grid-template-rows:34px var(--op-height) minmax(98px,1fr) var(--own-height) var(--hand-height)}
  .single-table .opponent,.single-table.hanaawase .opponent{grid-template-rows:42px minmax(0,1fr)}.single-table .opponent-heading{grid-template-rows:19px 22px}.single-table .opponent-heading strong{font-size:23px}.single-table .opponent-name{font-size:14px}.single-table .field-row{padding:0 12px 0 34px;gap:0 9px;grid-template-columns:minmax(0,1fr) 62px;grid-template-rows:minmax(0,1fr) 13px}.single-table .last-move{line-height:13px;font-size:10px}.single-table .table-zone{grid-template-rows:12px minmax(0,1fr)}.single-table .table-cards{gap:7px;--field-limit:88px}.single-table .table-cards .card{--field-card-height:min(var(--field-limit),calc((100cqh - 8px - (var(--field-rows,2) - 1)*7px)/var(--field-rows,2)),calc((100cqw - 6px - (var(--field-cols,3) - 1)*7px)/var(--field-cols,3)*112/72))}
  .single-table .draw-rest .deck-back{width:38px!important;margin-bottom:5px}.single-table .draw-rest{gap:2px}.single-table .draw-rest>strong{font-size:21px}.single-table .own-capture-area .table-captures{--op-card:23px}.single-table .hand-zone{grid-template-rows:20px minmax(0,1fr) 35px;gap:5px;padding-top:4px;padding-bottom:5px}.single-table .hand-title{font-size:14px}.single-table .hand-title>span{padding:3px 13px}.single-table .hand-card-label{padding-top:2px}.single-table .rail-actions button.primary{min-height:32px;font-size:16px}.hand-prompt{font-size:13px}.single-table .own-heading{gap:3px}.single-table .own-heading>.own-score{font-size:25px}.yaku-paper{gap:4px;padding:5px 4px}.single-table .review-rail button{min-height:25px}
}
@media(max-height:620px){
  .single-table{--op-height:161px;--own-height:128px;--hand-height:127px;--op-card:17px;grid-template-rows:32px var(--op-height) minmax(102px,1fr) var(--own-height) var(--hand-height);gap:3px;overflow-y:hidden}
  .single-table.hanaawase{--op-height:131px;grid-template-rows:32px var(--op-height) minmax(102px,1fr) var(--own-height) var(--hand-height)}
  .single-table .opponent,.single-table.hanaawase .opponent{padding:3px;grid-template-rows:36px minmax(0,1fr)}.single-table .opponent-heading{grid-template-rows:17px 18px;grid-template-columns:21px minmax(0,1fr) auto;gap:0 2px}.single-table .player-crest{width:20px;height:20px;background-size:500px 500px;background-position:-337px -152px}.single-table .opponent-heading strong{font-size:20px}.single-table .opponent-name{font-size:13px}.single-table .opponent-name small{display:none}.single-table .hand-count{font-size:11px}.single-table .opponent-paper{padding:2px 3px;grid-template-rows:29px 17px minmax(0,1fr)}.single-table.hanaawase .opponent-paper{grid-template-rows:17px minmax(0,1fr)}.single-table .public-hand{grid-template-rows:12px minmax(0,1fr)}.single-table .public-hand>span{font-size:11px;line-height:12px}.single-table .public-hand-cards .card{width:10px;min-width:10px;flex-basis:10px}.single-table .capture-title{font-size:12px}.single-table .capture-title small{display:none}.single-table .table-capture-row{grid-template-columns:35px minmax(0,1fr) 12px}.single-table .rank-label{font-size:11px}.single-table .own-capture-area{grid-template-rows:20px minmax(0,1fr);padding:2px 4px}.single-table .own-capture-area .table-capture-row{grid-template-columns:31px minmax(0,1fr) 11px}.single-table .own-capture-area .rank-label{font-size:11px;gap:1px}.single-table .own-capture-area .table-captures{--op-card:19px}.single-table .own-capture-area .capture-title{font-size:12px}.single-table .own-heading{padding:3px 1px}.single-table .own-heading>strong{font-size:15px}.single-table .own-heading>.own-score{font-size:24px}.single-table .own-heading>.seat-role{right:0;top:3px;padding:1px 3px;font-size:11px}.single-table .own-heading>.player-crest{width:21px;height:21px}.single-table .own-heading .personal-tools button{font-size:11px;min-height:22px;padding:2px 3px}.yaku-paper h3{font-size:12px}.single-table .review-rail{gap:2px}.single-table .review-rail button{font-size:11px;min-height:22px}.single-table .review-rail>span{font-size:11px}.no-yaku{font-size:11px}.single-table .hand-zone{grid-template-rows:18px minmax(0,1fr) 31px;padding:3px 7px 4px;gap:3px}.single-table .hand-title{font-size:13px}.single-table .hand-cards{gap:4px}.single-table .hand-card-label{padding-top:2px;line-height:12px}.single-table .public-marker{font-size:11px;padding:0 3px}.hand-controls{grid-template-columns:minmax(0,1fr) 63px;gap:8px;padding:0 3px}.hand-prompt{font-size:12px;padding:3px 7px}.single-table .rail-actions button.primary{min-height:29px;font-size:15px}.single-table .topbar{gap:4px}.single-table .wordmark{font-size:14px;padding:2px 6px}.single-table .round,.single-table .top-stock,.single-table .field-seal{font-size:12px}.single-table .field-seal{padding:2px 6px}.single-table .topbar .iconbutton{min-height:27px;min-width:27px;font-size:20px}.single-table .field-row{padding-left:30px;grid-template-columns:minmax(0,1fr) 46px;gap:0 8px}.single-table .draw-rest .deck-back{width:30px!important}.single-table .draw-rest>span{font-size:12px}.single-table .draw-rest>strong{font-size:18px}.single-table .draw-slot{width:32px}.single-table .draw-copy strong{display:none}.single-table .draw-tray{gap:3px}.single-table .draw-copy button{min-height:27px;font-size:11px}
}
/* Dense custom fields use the entire felt width rather than the reference's empty left margin. */
.single-table .field-row:has(.table-cards[style*="--field-cols:6"]),.single-table .field-row:has(.table-cards[style*="--field-cols:9"]){padding-left:3px;padding-right:3px;gap:0 5px;grid-template-columns:minmax(0,1fr) 44px}
.single-table .table-cards[style*="--field-cols:9"]{gap:3px}
.single-table .table-cards[style*="--field-cols:9"] .card{--field-card-height:min(calc((100cqh - 8px - (var(--field-rows) - 1)*3px)/var(--field-rows)),calc((100cqw - 6px - (var(--field-cols) - 1)*3px)/var(--field-cols)*112/72))}
@media(prefers-reduced-motion:reduce){.single-table .card-solid{transform:translateZ(var(--card-z,2.5px))}.single-table .card.selected{transform:translateY(-5px)}}

/* Leave a separate strip for public markers; they must never cover the action bar. */
.single-table .player-crest{background-color:transparent;background-image:url('../../assets/theme/player-emblems.png?v=f58c6565aa8bfa7b');background-size:344% 115%;background-position:2.7% 50%;border:0;box-shadow:none;filter:none}
.single-table .crest-1{background-position:50% 50%}.single-table .crest-2,.single-table .crest-own{background-position:97.2% 50%}
.single-table .review-rail{flex-shrink:0}
.single-table .hand-zone{background-image:linear-gradient(#a6a38c66,#a6a38c66),url('../../assets/theme/wood-tray.png?v=f58c6565aa8bfa7b')}
@media(max-height:740px) and (min-height:621px){.single-table{--hand-height:170px;min-height:653px}.single-table.hanaawase{min-height:617px}}
@media(max-height:620px){
  .single-table{--hand-height:139px;--own-height:122px;--op-height:155px;min-height:640px}
  .single-table.hanaawase{--op-height:125px;min-height:640px}
  .single-table .yaku-paper{gap:3px;padding:4px}
  .single-table .review-rail button{min-height:21px}
  .single-table .hand-cards .card{width:min(100%,38px);height:auto;max-height:none;max-width:100%}
  .single-table .own-heading{min-height:0}
  .single-table .personal-tools [data-do=rules]{display:none}
  .single-table .hand-zone{overflow:visible}
}
