/* 101 Okey shares the room viewport; the private rack never covers room chat. */
#erisRoomSurface.okey101-mode>.eris-room-stage,#erisRoomSurface.okey101-mode #erisRoomContributionButton,#erisRoomSurface.okey101-mode #erisRoomContributionButton,#erisRoomSurface.okey101-mode .eris-room-quick-actions{visibility:hidden!important;pointer-events:none!important}
html.eris-adaptive #erisRoomSurface.room-layout-v6.okey101-mode>.eris-room-chat{height:var(--eris-adaptive-ludo-chat,150px)!important;max-height:var(--eris-adaptive-ludo-chat,150px)!important}
#erisRoomSurface.okey101-mode .o101-root{position:absolute;inset:var(--eris-room-header,68px) 0 var(--eris-adaptive-ludo-chat,150px);z-index:31000;background:linear-gradient(145deg,#132539,#0c1729);display:flex;flex-direction:column;min-height:0;color:#f6f1e4;font:12px/1.4 system-ui,sans-serif;box-sizing:border-box;overflow:hidden}
.o101-root *{box-sizing:border-box}.o101-root button,.o101-root select{font:inherit;color:inherit;border:1px solid #bca26b66;border-radius:8px;padding:6px 9px;background:#213145;min-height:32px;cursor:pointer}.o101-root button:disabled{opacity:.4;cursor:default}.o101-root button.chosen{background:#a88b45;color:#fff;border-color:#ffdf9d}.o101-head{display:flex;gap:6px;align-items:center;padding:6px 9px;flex-shrink:0;border-bottom:1px solid #e3c58455}.o101-head strong{font-size:18px;color:#f0d18d;white-space:nowrap}.o101-head span{flex:1;font-size:10px;min-width:0}.o101-head button{font-size:18px;min-width:32px;padding:3px}.o101-content{min-height:0;flex:1}.o101-error{color:#ffb5b5;font-size:11px;padding:0 8px;max-height:55px;overflow:auto;flex-shrink:0}.o101-error:empty{display:none}.o101-lobby{overflow-y:auto;padding:12px;max-width:780px;width:100%;margin:auto}.o101-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.o101-settings label{display:flex;flex-direction:column;gap:4px;font-size:11px}.o101-settings select{width:100%;min-width:0}.o101-players{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:5px}.o101-players article{padding:5px;background:#102033;border:1px solid #d1b47744;border-radius:9px;min-width:0}.o101-players article.turn{border-color:#f5d78d;background:#64542f66;box-shadow:inset 0 0 14px #d8b65922}.o101-players b{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:11px}.o101-players small{display:block;font-size:9px;color:#c3cdd8}.o101-lobby .o101-players{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 0}.o101-lobby .o101-players article{padding:12px}.o101-stakes{display:flex;flex-wrap:wrap;gap:6px}.o101-lobby-actions{display:grid;gap:8px;margin:12px 0}.o101-lobby-actions button{min-height:40px;background:linear-gradient(120deg,#ecd293,#b89a54);color:#172235;font-weight:700}.o101-rules{font-size:11px;border-top:1px solid #eee3;padding-top:10px}.o101-rules p{color:#cbd2db}.o101-game{display:flex;flex-direction:column;overflow:auto}.o101-info{text-align:center;color:#dbc995;font-size:10px;padding:2px}.o101-table{flex:1;min-height:135px;overflow:auto;background:radial-gradient(ellipse,#225b55,#143c38);border:2px solid #b1986355;border-radius:20px;margin:4px 8px;box-shadow:inset 0 0 25px #040d1a99;padding:7px}.o101-deck{display:flex;justify-content:center;gap:12px;align-items:center;font-size:9px}.o101-deck>div{display:flex;align-items:center;gap:4px}.o101-discards{display:flex;justify-content:space-evenly;margin:8px 0}.o101-discards>div{display:flex;align-items:center;gap:4px;min-width:0}.o101-discards small{font-size:8px}.o101-melds{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.o101-meld{display:flex;gap:2px;align-items:center;background:#05191355;padding:3px;border-radius:6px}.o101-meld>button:not(.o101-tile){padding:1px;min-height:24px;font-size:11px}.o101-root .o101-tile{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;color:var(--tile-color);background:linear-gradient(130deg,#fff9e9,#e4d9bd);border:1px solid #bba77f;box-shadow:0 2px 2px #05081255,inset 0 0 0 1px #fff8;border-radius:4px;width:27px;height:38px;min-height:38px;padding:0;flex-shrink:0;position:relative}.o101-tile b{font-size:18px;line-height:21px;font-weight:800}.o101-tile i{font-style:normal;font-size:8px;line-height:9px}.o101-root .o101-tile.wild{border-color:#ffe39c}.o101-root .o101-tile.chosen{transform:translateY(-5px);outline:2px solid #ffd369;background:#fff0b6;color:var(--tile-color)}.o101-rack-area{flex-shrink:0;padding:4px 6px 6px;background:#101e31;border-top:1px solid #cab17666;position:relative}.o101-rack{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:3px;padding:7px 4px 4px;background:linear-gradient(#594b35,#8b7048);border-radius:6px;box-shadow:inset 0 -3px 0 #c2a472}.o101-rack .o101-tile{width:100%;height:42px;min-height:42px;touch-action:manipulation}.o101-actions{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;margin-top:5px}.o101-actions button{font-size:9px;padding:3px 5px;min-height:29px}.o101-actions button:last-child{background:#c2a263;color:#102033;font-weight:700}.o101-draft{max-height:80px;overflow:auto;display:flex;flex-wrap:wrap;gap:4px;font-size:9px;margin-top:5px}.o101-draft>div{background:#283c4e;border-radius:4px;padding:2px}.o101-draft button{font-size:10px;min-height:24px;padding:2px 6px}.o101-result{text-align:center;background:#15263b;padding:10px;border:1px solid #e4c781;border-radius:8px}.o101-result strong{font-size:18px;color:#ecd193}.o101-result button{margin:4px}.o101-watch{text-align:center;color:#c9c9d2}.o101-editor,.o101-rule-overlay{position:absolute;inset:5px;z-index:3;padding:12px;background:#112438f5;border:1px solid #e2c17d;border-radius:12px;overflow:auto;box-shadow:0 6px 25px #0009}.o101-editor>div{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.o101-editor label{display:grid;gap:3px;width:83px;font-size:9px}.o101-editor select{width:100%;min-width:0;font-size:10px;padding:3px}.o101-editor>button{margin:4px}.o101-editor strong{color:#e9ce8d}.o101-rule-overlay .o101-rules{margin-top:12px}.o101-rule-overlay button{float:right}
@media(min-width:600px){.o101-rack-area{max-width:740px;width:100%;margin:auto}.o101-rack .o101-tile{height:55px}.o101-tile b{font-size:22px}.o101-table{margin-inline:20px}.o101-players{max-width:900px;width:100%;margin:auto}.o101-actions button{font-size:12px}}
@media(max-width:360px){.o101-head strong{font-size:15px}.o101-rack{gap:2px}.o101-tile b{font-size:16px}.o101-actions button{font-size:8px}.o101-deck{gap:5px}.o101-discards small{display:none}}
@media(max-height:550px){.o101-game{overflow:auto}.o101-table{flex:0 0 160px}.o101-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.o101-root .o101-players{flex-shrink:0}}

/* 101 seat strip and room chat share the same game boundary. */
html.eris-adaptive #erisRoomSurface.room-layout-v6.okey101-mode>.eris-room-chat:has(#erisLiveChat){
 position:absolute!important;inset:auto 0 0!important;width:auto!important;
 height:var(--eris-adaptive-ludo-chat,150px)!important;max-height:var(--eris-adaptive-ludo-chat,150px)!important;
 min-height:0!important;transform:none!important;display:grid!important;
 grid-template-rows:auto minmax(0,1fr) auto!important;overflow:hidden!important;
 z-index:32000!important;visibility:visible!important;pointer-events:auto!important;
}
#erisRoomSurface.room-layout-v6.okey101-mode>.eris-room-chat #erisLiveChat{
 position:relative!important;inset:auto!important;height:auto!important;max-height:none!important;
 min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;
}
#erisRoomSurface.room-layout-v6.okey101-mode>.eris-room-chat>.eris-room-compose{
 position:relative!important;inset:auto!important;width:100%!important;margin:0!important;
}
.o101-seat-strip{display:flex;align-items:center;flex:0 0 68px;gap:8px;padding:6px 12px;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid #f1d39b20;background:#080f1b70;touch-action:pan-x}
#erisRoomSurface.okey101-mode .o101-seat-proxy{position:relative!important;inset:auto!important;transform:none!important;translate:none!important;flex:0 0 44px!important;width:44px!important;height:44px!important;margin:0 0 8px!important;border:1px solid #fff4;border-radius:50%;padding:0!important;display:grid;place-items:center;visibility:visible!important;pointer-events:auto!important}
.o101-seat-proxy .seat-pod{position:relative!important;inset:auto!important;width:100%!important;height:100%!important;display:grid;place-items:center}
.o101-seat-proxy .seat-ava{width:78%!important;height:78%!important;border-radius:50%;overflow:hidden}
.o101-seat-proxy .seat-frame{position:absolute;inset:-8%;background-size:contain;background-position:center;background-repeat:no-repeat;pointer-events:none}
#erisRoomSurface.okey101-mode .o101-seat-proxy>b{position:absolute!important;top:calc(100% + 3px)!important;left:-4px!important;width:52px!important;max-width:52px!important;margin:0!important;display:block!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:9px!important;line-height:12px!important}
.o101-seat-proxy>small,.o101-seat-proxy .seat-mic{display:none!important}

#erisRoomSurface.okey101-mode .o101-seat-strip{flex-basis:68px;min-height:68px}
@media(max-height:720px){#erisRoomSurface.okey101-mode .o101-seat-strip{flex-basis:58px;min-height:58px}}

/* Stable meld lanes and explicit automatic/manual processing. */
.o101-game{position:relative}.o101-meld-section{border-top:1px solid #cfdfa933;padding:5px 0}.o101-meld-section h3{margin:2px 0 6px;font-size:11px;color:#d7dbb5}.o101-meld-section .o101-melds{justify-content:flex-start;align-items:flex-start;gap:8px}.o101-meld-section .o101-meld{display:flex;flex-direction:column;align-items:flex-start;max-width:100%;border:1px solid #e0d59d22;padding:5px;min-width:0}.o101-meld>small{font-size:8px;color:#d0dcb8;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o101-meld-row{display:flex;align-items:center;gap:2px;max-width:100%;overflow-x:auto;padding:3px 0}.o101-meld.can-lay{border-color:#f1d791;background:#bbaa3140;box-shadow:0 0 8px #e9d15b33}.o101-root .o101-target{background:#f0d493;color:#11273b;min-height:38px;padding:3px 5px;font-weight:700;white-space:nowrap}.o101-info{display:flex;gap:4px;flex-wrap:wrap;align-items:center;justify-content:center}.o101-info button{font-size:9px;min-height:25px;padding:2px 7px}.o101-penalty{font-size:10px;background:#742e294d;color:#ffdcba;padding:4px 9px;flex-shrink:0}.o101-root .o101-processing,.o101-root .o101-score-panel{position:absolute;inset:5px;z-index:7;border:1px solid #edcf91;border-radius:12px;background:#0f2239fa;padding:12px;overflow:auto;overscroll-behavior:contain}.o101-processing>header{display:flex;align-items:center;justify-content:space-between}.o101-processing p,.o101-processing>small{font-size:11px;color:#c3d0df;display:block;margin-block:8px}.o101-processing>button{margin:3px}.o101-plan{padding:10px 0}.o101-plan>div{display:flex;gap:9px;align-items:center;border-bottom:1px solid #fff2;padding:5px}.o101-plan span{font-size:11px}.o101-score-panel>strong{font-size:17px;color:#edcf91}.o101-score-panel>button{float:right}.o101-score-scroll{overflow-x:auto;margin-top:14px}.o101-score-scroll table{border-collapse:collapse;width:100%;font-size:11px}.o101-score-scroll th,.o101-score-scroll td{padding:8px;border:1px solid #d6bb7c33;text-align:center}.o101-score-scroll th{background:#263b52}.o101-breakdown p{font-size:11px;padding:6px;border-bottom:1px solid #fff2}.o101-draft{max-height:120px;align-items:center}.o101-draft>strong{width:100%;color:#f1d18d}.o101-draft article{display:flex;align-items:center;gap:2px;background:#223a50;padding:3px;border-radius:6px}.o101-draft .o101-tile{width:22px;min-height:31px;height:31px}.o101-draft .o101-tile b{font-size:15px}.o101-joker-face{font-size:20px;font-weight:800;background:#fff1d2;border-radius:5px;padding:5px 7px}.o101-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.o101-actions button[data-action="process"]{background:#d8bc78;color:#112438;font-weight:700}
@media(prefers-reduced-motion:reduce){.o101-root *{animation:none!important;transition:none!important}}

.o101-revealed-hands article{padding:8px 0;border-top:1px solid #fff2}.o101-revealed-hands article>div{display:flex;flex-wrap:wrap;gap:3px;margin-top:5px}.o101-plan span{overflow-wrap:anywhere}.o101-manual-options{display:grid;gap:4px;margin-top:10px}.o101-manual-options button{text-align:left;font-size:11px}


/* Keep dialogs outside the scrolling table and reserve chat on every layout. */
#erisRoomSurface.okey101-mode{isolation:isolate}
#erisRoomSurface.okey101-mode>.eris-room-chat:has(#erisLiveChat){position:absolute!important;inset:auto 0 0!important;height:var(--eris-adaptive-ludo-chat,150px)!important;max-height:var(--eris-adaptive-ludo-chat,150px)!important;min-height:0!important;overflow:hidden!important;z-index:32000!important}
.o101-root .o101-game{position:static;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.o101-root .o101-game>.o101-players,.o101-root .o101-info,.o101-root .o101-deck{flex-shrink:0}
.o101-root .o101-table{flex:1 0 135px;min-width:0}
.o101-root .o101-deck{flex-wrap:wrap}
.o101-root .o101-discards{flex-wrap:wrap;gap:5px}
.o101-root .o101-editor,.o101-root .o101-processing,.o101-root .o101-score-panel,.o101-root .o101-rule-overlay{inset:5px;z-index:10;background:#112438;overscroll-behavior:contain;max-width:calc(100% - 10px)}
.o101-root .o101-rule-overlay .o101-rules{display:block}
.o101-root .o101-rule-overlay .o101-rules:not([open])>p{display:none}
.o101-root .o101-rack-area{margin-block:0}


/* LIDYA 101 / spatial table: visual-only, never changes the server game rules. */
#erisRoomSurface.okey101-mode .o101-root[data-phase="playing"] .o101-seat-strip{display:none!important}
#erisRoomSurface.okey101-mode .o101-root[data-phase="playing"] .o101-game{overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}
#erisRoomSurface.okey101-mode .o101-premium-table{position:relative;display:block;flex:1 0 280px;min-height:280px;overflow:auto;isolation:isolate;padding:12px 12px 16px;border:3px solid #bd9a55;border-radius:26px;background:radial-gradient(ellipse at 50% 40%,#28685d 0%,#17453e 58%,#0e292c 100%);box-shadow:inset 0 0 0 4px #422c19,inset 0 0 35px #071916,0 5px 20px #0004}
.o101-premium-table .o101-table-players{display:block;position:absolute;inset:0;pointer-events:none;z-index:2;padding:0;margin:0}
.o101-premium-table .o101-table-players article{position:absolute;width:min(30%,135px);min-height:32px;padding:3px 5px;text-align:center;border-radius:12px;background:#172f33ee;border:1px solid #bca26b99;box-shadow:0 3px 8px #0004;pointer-events:none}
.o101-premium-table .o101-table-players article[data-position="top"]{top:5px;left:50%;transform:translateX(-50%)}
.o101-premium-table .o101-table-players article[data-position="left"]{top:36%;left:5px;transform:translateY(-50%)}
.o101-premium-table .o101-table-players article[data-position="right"]{top:36%;right:5px;transform:translateY(-50%)}
.o101-premium-table .o101-table-players article[data-position="bottom"]{bottom:4px;left:50%;transform:translateX(-50%)}
.o101-premium-table .o101-table-players article.turn{border-color:#ffe09c;box-shadow:0 0 0 2px #e3bd6c77,0 0 14px #e3bd6c88}
.o101-premium-table .o101-deck{position:relative;z-index:3;display:flex;justify-content:center;gap:7px;flex-wrap:wrap;max-width:78%;margin:42px auto 5px;padding:5px;border-radius:10px;background:#081f22a8}
.o101-premium-table .o101-spatial-discards{position:relative;z-index:3;display:grid!important;grid-template-areas:'. top .' 'left center right' '. bottom .';grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);grid-template-rows:44px 56px 44px;align-items:center;justify-items:center;gap:3px;max-width:340px;margin:0 auto 10px;padding:0!important;background:none!important;border:0!important}
.o101-premium-table .o101-spatial-discards>div{display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:0;padding:2px 4px!important;border-radius:8px;background:#062621b8}
.o101-premium-table .o101-spatial-discards>div[data-position="top"]{grid-area:top}
.o101-premium-table .o101-spatial-discards>div[data-position="left"]{grid-area:left}
.o101-premium-table .o101-spatial-discards>div[data-position="right"]{grid-area:right}
.o101-premium-table .o101-spatial-discards>div[data-position="bottom"]{grid-area:bottom}
.o101-premium-table .o101-spatial-discards small{font-size:8px;max-width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.o101-premium-table .o101-spatial-discards .o101-tile{min-height:28px!important;height:28px!important;min-width:23px!important;width:23px!important;padding:1px!important}
.o101-premium-table .o101-spatial-discards .o101-tile b{font-size:14px}
.o101-premium-table .o101-table-melds{position:relative;z-index:3;display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:4px 0 25px}
.o101-premium-table .o101-table-melds .o101-meld-section{min-width:0;max-height:145px;overflow:auto;border:1px solid #c3a26677;border-radius:10px;background:#0c2928b8;padding:4px}
.o101-premium-table .o101-table-melds h3{margin:0 0 4px;font-size:11px;color:#f4d999}
#erisRoomSurface.okey101-mode .o101-rack-area{position:relative;z-index:4;background:linear-gradient(145deg,#70451f,#b9894c 35%,#67421f 85%);border:2px solid #e4c17d;border-radius:12px;margin:3px 7px 5px;padding:6px;box-shadow:inset 0 0 0 3px #442a17,0 3px 12px #0004}
#erisRoomSurface.okey101-mode .o101-rack{background:repeating-linear-gradient(90deg,#2d2119,#2d2119 2px,#4c3420 3px,#4c3420 42px);border-radius:7px;padding:5px}
#erisRoomSurface.okey101-mode .o101-rack .o101-tile{box-shadow:inset 0 0 0 1px #fff9,0 2px 4px #0005}
#erisRoomSurface.okey101-mode .o101-root[data-phase="playing"]{background:linear-gradient(135deg,#2d251e,#141d23)}
html[data-theme="light"] #erisRoomSurface.okey101-mode .o101-root[data-phase="playing"],body.light-theme #erisRoomSurface.okey101-mode .o101-root[data-phase="playing"]{background:linear-gradient(135deg,#f3e7cc,#d6c5a2);color:#fff5d9}
@media(max-width:430px){.o101-premium-table .o101-deck{max-width:96%;margin-top:45px}.o101-premium-table .o101-table-players article{width:32%;font-size:9px}.o101-premium-table .o101-table-players article small{font-size:8px}.o101-premium-table .o101-table-melds{grid-template-columns:1fr}.o101-premium-table .o101-table-melds .o101-meld-section{max-height:90px}}
@media(max-height:640px){#erisRoomSurface.okey101-mode .o101-premium-table{min-height:235px;flex-basis:235px}.o101-premium-table .o101-spatial-discards{grid-template-rows:35px 45px 35px}.o101-premium-table .o101-deck{margin-top:36px}}
