/* Real Unity elongated trays, never stretched square ornaments. */
.board-frame.world-table-frame { padding:0!important;border:0!important;background:none!important;box-shadow:none!important; }
.world-table-frame::before,.world-table-frame::after { display:none!important; }
.unity-table-shell { position:relative;width:100%;isolation:isolate; }
.unity-table-bed,.unity-table-rim { display:none; }
.shaped-table .unity-table-shell { aspect-ratio:var(--unity-table-ratio); }
.shaped-table .unity-table-bed { display:block;position:absolute;inset:0;z-index:0;background:var(--theme-motif) center/cover;filter:var(--arena-texture-filter);mask-image:var(--table-cutout);mask-size:100% 100%;mask-repeat:no-repeat;pointer-events:none; }
.shaped-table .unity-table-rim { display:block;position:absolute;inset:0;z-index:4;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 2px #0005); }
.shaped-table .board { position:absolute;inset:var(--table-inset-top) var(--table-inset-right) var(--table-inset-bottom) var(--table-inset-left);width:auto;height:auto;aspect-ratio:auto!important;min-height:0;padding:0;gap:2%;border-radius:0!important;background:transparent!important;overflow:visible; }
.shaped-table .board::before,.shaped-table .board::after { display:none!important; }
.shaped-table .board.mancala { grid-template-rows:repeat(2,minmax(0,1fr));row-gap:10%; }
.shaped-table .board.mancala .square { width:100%;height:100%;aspect-ratio:auto;border-radius:50%;border:1px solid var(--table-line);box-shadow:inset 0 3px 7px #0009,0 1px 1px #fff6; }
.board.mancala .piece.mancala-grains { position:absolute;inset:5%;width:90%;height:90%;max-width:none;max-height:none;transform:none;filter:none; }
.board.mancala .mancala-grains[hidden] { display:none; }
.board.mancala .mancala-seed { position:absolute;display:block;object-fit:contain;pointer-events:none;filter:drop-shadow(.5px 0 .1px #fff7db) drop-shadow(-.5px 0 .1px #fff7db) drop-shadow(0 1px .5px #160c06); }
.board.mancala .plain-seed { background:#f1d48d;border:1px solid #392510;border-radius:55% 40%; }
.board.mancala .coord { display:none; }
.mancala-dense-count { position:absolute;right:-7%;bottom:-7%;z-index:3;border:1px solid var(--table-paper,#fff);border-radius:5px;padding:1px 4px;background:var(--table-ink,#24170c);color:var(--table-paper,#fff);font:700 clamp(10px,1.2vw,13px)/1.2 sans-serif; }
.shaped-table .board.track { gap:.6%;align-items:stretch; }
.shaped-table .board.track .square { width:100%;height:100%;min-width:0;min-height:0;aspect-ratio:auto;border-radius:2px; }
.puluc-camps { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px;margin:0 0 14px;color:var(--table-paper,#fff); }
.puluc-reserve { display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;padding:9px 8px;border:1px solid var(--table-line,#675442);border-radius:12px;background:var(--table-panel,#332519);color:var(--table-paper,#fff); }
.puluc-reserve:disabled { opacity:1;cursor:default; }
.puluc-reserve.is-turn { border-color:var(--table-highlight,#d6ac5b); }
.puluc-reserve:not(:disabled):hover,.puluc-reserve:focus-visible { outline:2px solid var(--table-highlight,#d6ac5b);outline-offset:2px; }
.puluc-camp-name { font-weight:700;font-size:13px; }
.puluc-reserve-row { display:flex;align-items:center;justify-content:center;gap:3px;height:42px;width:100%;font-size:12px; }
.puluc-reserve-piece { width:calc((100% - 12px)/5);max-width:36px;height:100%;object-fit:contain;filter:url(#piece-alpha-clean) drop-shadow(0 1px 1px #0008); }
.puluc-plain-pawn { font-size:26px; }
.puluc-reserve-note { font-size:11px; }
.puluc-board-roll { grid-column:1/-1;justify-self:center;min-height:42px;margin:0; }
@media(max-width:600px){.puluc-camps{gap:8px;margin-bottom:10px}.puluc-reserve{padding:7px 4px}.puluc-reserve-row{height:32px;gap:1px}.puluc-reserve-note{font-size:10px}.shaped-table .board.mancala{gap:9% 1.5%}.shaped-table .board.track .coord{font-size:6px}}
/* A real Puluc tabletop: two five-pawn starting rows perpendicular to the path.
   The existing generated web rails repeat at their native proportions; the
   elongated Unity rim is NOT stretched to fit this deeper playing surface. */
.puluc-table { display:grid;grid-template-columns:minmax(28px,8%) minmax(0,1fr) minmax(28px,8%);grid-template-rows:minmax(0,1fr);gap:0;aspect-ratio:2.35;min-height:190px;background:var(--table-light,#d8bd82); }
.native-art .board-frame.puluc-full-table .board.track,.puluc-full-table .board.track { position:relative;inset:auto;width:100%;height:100%;aspect-ratio:auto!important;gap:0;padding:0;min-height:0;background:transparent; }
.puluc-full-table .board.track .square { height:100%;width:100%;min-width:0;min-height:0;aspect-ratio:auto;border-radius:0; }
.puluc-table .puluc-reserve { position:relative;z-index:2;min-height:0;border:0;border-radius:0;padding:5px 2px;gap:2px;background:var(--theme-motif) center/auto 240px,var(--table-light,#d8bd82);color:var(--table-ink,#342516);box-shadow:inset 0 0 0 1px var(--table-line,#675442); }
.puluc-table .puluc-reserve.is-turn { box-shadow:inset 0 0 0 2px var(--table-ink,#342516); }
.puluc-table .puluc-camp-name,.puluc-table .puluc-reserve-note { background:var(--table-paper,#fff3d3);color:var(--table-ink,#342516);border-radius:3px;padding:1px 2px;font-size:10px;line-height:1.2; }
.puluc-table .puluc-reserve-row { flex:1;min-height:0;flex-direction:column;justify-content:space-evenly;gap:1px;height:auto; }
.puluc-table .puluc-reserve-piece { width:100%;height:calc((100% - 4px)/5);max-height:44px;max-width:44px; }
.puluc-table .puluc-plain-pawn { font-size:22px;line-height:1; }
.puluc-full-table .board.track .coord { font-size:clamp(6px,.8vw,9px); }
.puluc-full-table.zoomed { padding:var(--frame-size,12px); }
@media(max-width:600px){.puluc-table{aspect-ratio:1.85;min-height:190px}.puluc-table .puluc-camp-name{font-size:8px}.puluc-table .puluc-reserve-piece{max-height:31px}}


/* Size the whole Awale tray: its inset board is absolutely positioned and
   cannot provide an intrinsic width to the fullscreen frame or its shell. */
body.match-fullscreen #game-app.play-experience .board-frame.world-table-frame:not(.salons3d-visible) {
  width:min(calc(var(--match-stage-width,100dvw) - 24px),calc((100dvh - 110px) * 2.6));
  height:auto;
  padding:0!important;
}
body.match-fullscreen #game-app.play-experience .board-frame.world-table-frame:not(.salons3d-visible) .unity-table-shell {
  width:100%;
}
body.match-fullscreen #game-app.play-experience .board-frame.world-table-frame:not(.salons3d-visible) .board.mancala {
  width:100%;
}
body.match-fullscreen #game-app.play-experience .board-frame.world-table-frame.shaped-table:not(.salons3d-visible) .board.mancala {
  width:auto!important;
  height:auto!important;
  margin:0;
}
/* Hide every 2D layer, including the rim and bed, when the 3D room is active. */
.board-frame.salons3d-visible > .unity-table-shell { display:none!important; }
