/* Dolap: fixed gold gondolas, clockwise light selector, shared server clock. */
.ph-modal.ph-modal-wheel{padding:0;width:min(100%,480px);max-width:480px;max-height:100dvh;min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid #dba9602b;border-radius:24px;background:#15141c;color:#fff1d9;box-shadow:0 30px 100px #0009;scrollbar-width:none}
.ph-modal-wheel::-webkit-scrollbar{display:none}
.ph-modal-wheel .ph-close{position:absolute;top:12px;left:12px;right:auto;z-index:12;background:linear-gradient(140deg,#c99345,#503018 75%);color:#ffdf99;border:1px solid #cda2629c;width:44px;height:44px;border-radius:50%;font-size:26px;line-height:1;box-shadow:inset 0 0 9px #ffca6660,0 2px 10px #0008}
.dl-game{--dl-board-height:min(110.5vw,530.4px);position:relative;isolation:isolate;font-family:Arial,Helvetica,sans-serif;background:linear-gradient(#17161a36,#16141ac9 52%,#181827 80%),url('/assets/royal-room.png') center top/100% auto no-repeat;color:#fff1db;overflow:hidden;border-radius:inherit}
.dl-game button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.dl-game button:focus-visible{outline:3px solid #fff4be;outline-offset:3px}
.dl-game [hidden]{display:none!important}
.dl-game svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dl-game .ph-coin{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;font-size:11px;flex-shrink:0;background:radial-gradient(circle at 35% 30%,#fff4c9,#ffd66a 45%,#e19a31 85%);border:1px solid #ffe9a0;box-shadow:inset 0 0 0 2px #e5a846;color:#fff9d9;text-shadow:0 1px #b68019;vertical-align:middle}
.dl-room-scene{height:clamp(110px,calc(100dvh - var(--dl-board-height) - 248px),185px);padding:16px 19px 0;background:linear-gradient(#12131d66,#12131d24);position:relative}
.dl-room-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-left:44px;min-height:27px;font-size:11px}
.dl-room-heading>span{display:flex;align-items:center;gap:6px;font-weight:600}
.dl-room-heading svg{width:15px;height:15px;color:#e6bb73}
.dl-room-heading small{font-size:8px;color:#c1b6a0;text-align:right}
.dl-room-pair{display:flex;align-items:center;justify-content:center;gap:24px;padding:16px 8px 0}
.dl-room-pair>div{display:flex;flex-direction:column;align-items:center;gap:5px;width:88px}
.dl-room-pair .ph-avatar.host,.dl-room-pair>div>.ph-art{width:70px;height:70px;border:2px solid #efd39896;border-radius:50%;box-shadow:0 0 20px #d8a33a38}
.dl-room-pair b{font-size:10px;font-weight:500;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ddcaa5}
.dl-empty-seat{width:70px;height:70px;display:grid;place-items:center;border:2px solid #a28f6077;border-radius:50%;color:#bcb8b19c;font-size:48px;font-weight:200;background:#14131d3d}
.dl-connection-wave{color:#d9d5cb7a;filter:drop-shadow(0 0 4px #f1ece18a)}
.dl-connection-wave svg{width:34px}
.dl-toolbar{display:flex;justify-content:space-between;align-items:center;padding:2px 13px 0;gap:8px;height:45px}
.dl-toolbar>div{display:flex;align-items:center;gap:9px}
.dl-toolbar h2{font-size:16px;color:#efd799;margin:0;font-weight:600;letter-spacing:.4px}
.dl-toolbar>div>span{font-size:7px;letter-spacing:1.5px;border:1px solid #c8a16260;padding:4px 6px;border-radius:9px;color:#d3ba85}
.dl-toolbar button{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;border:1px solid #bc8c4c80;background:radial-gradient(ellipse at 35% 25%,#b58248,#4f2e14 85%);box-shadow:inset 0 0 7px #df9d3b6b,0 3px 6px #0007;font-size:24px;color:#f7dca3}
.dl-toolbar button.dl-chest{border:0;box-shadow:none;background:none}
.dl-chest>.ph-art{height:44px;width:44px}
.dl-toolbar svg{width:20px;height:20px}
.dl-balance-row{display:flex;justify-content:space-between;align-items:center;padding:2px 14px 0;height:30px;position:relative;z-index:2}
.dl-balance{border:0;border-radius:18px;padding:5px 9px;background:#24222ce6;font-size:12px!important;white-space:nowrap}
.dl-balance-row>small{color:#b6a89399;font-size:8px}
.dl-stage{position:relative;width:100%;aspect-ratio:1/1.105;margin-top:-6px}
.dl-wheel{position:absolute;inset:0 0 9%}
.dl-wheel-rig{position:absolute;inset:8%;width:84%!important;height:84%!important;stroke:none!important;filter:drop-shadow(0 0 4px #ba77364d)}
.dl-center{position:absolute;left:50%;top:50%;width:22.5%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 40% 20%,#f8dc6b,#b49b39 63%,#5a531f);border:1px solid #d6c777;box-shadow:inset 0 0 10px #fff9d338,0 0 17px #e6d76c1c;z-index:2;text-shadow:0 1px 2px #74501d}
.dl-center>span{font-size:clamp(9px,2.4vw,12px);font-weight:600;min-height:14px;text-align:center;padding:0 8px;line-height:1.15;color:#fff7b9}
.dl-center>strong{font-size:clamp(28px,7.8vw,39px);font-weight:700;line-height:1.25;min-height:38px;color:#ffe88b}
.dl-center strong small{font-size:.6em;margin-left:1px}
.dl-food{position:absolute;left:var(--x);top:var(--y);width:24%;transform:translate(-50%,-50%);padding:0!important;min-height:0;background:none;border:0;overflow:visible;z-index:3;display:flex;align-items:center;flex-direction:column;filter:brightness(1);transition:filter 70ms linear}
.dl-game .dl-food:active{transform:translate(-50%,-50%) scale(.97)}
.dl-food,.dl-chips button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.dl-food *,.dl-chips button *{pointer-events:none}
.dl-food:disabled{cursor:default;opacity:1}
.dl-cabinet{display:block;position:relative;width:100%;aspect-ratio:1.08;filter:drop-shadow(0 3px 2px #0009)}
.dl-cabinet-frame{position:absolute;inset:8% 0 1%;border-radius:24% 24% 20% 20% / 32% 32% 32% 32%;background:linear-gradient(150deg,#fff5bd 0%,#ffcf64 12%,#a15a21 25%,#ffda7c 33%,#fff0b4 46%,#d68a24 60%,#ffdc83 80%,#9b4b0d 93%);box-shadow:inset 0 0 0 1px #fff7c2,0 0 0 1px #e7b258;transform:perspective(250px) rotateX(-10deg)}
.dl-cabinet-frame:after{content:'';position:absolute;left:14%;right:14%;bottom:2%;height:6%;border-radius:0 0 40% 40%;background:linear-gradient(#ffedb3,#c47320);box-shadow:0 1px 2px #fff7d4}
.dl-handle{position:absolute;left:23%;right:23%;top:0;height:13%;background:linear-gradient(#fff3b2,#d89a3c 35%,#ffcb6b 70%,#9f5619);border:1px solid #ffe8a3;border-radius:8px 8px 2px 2px;box-shadow:0 -1px 6px #ebc76c44;z-index:1}
.dl-handle:after{content:'';position:absolute;left:28%;right:28%;height:26%;top:27%;border-radius:6px;background:#fff9dd;box-shadow:0 1px 3px #8b5510}
.dl-window.ph-food-window{display:flex;position:absolute;inset:10% 10% 14%;border-radius:15% 15% 14% 14%;border:2px solid #8d4c1d;background:linear-gradient(#381a0e 4%,#1a1717 36%,#4d271a 66%,#1b0b09 97%);box-shadow:inset 0 0 6px #000,0 0 0 1px #ffdd90;align-items:center;justify-content:center;overflow:hidden;width:auto;height:auto;aspect-ratio:auto}
.dl-window.ph-food-window:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(175deg,transparent 8%,#fff8d53b 17%,transparent 35%,transparent 62%,#ffdd9a26 66%,transparent 85%);border:0;box-shadow:none}
.dl-window .ph-art{width:94%;height:100%;filter:drop-shadow(0 4px 2px #0008);transform:scale(1.03)}
.dl-stake{height:18px;position:absolute;top:-18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:3px;font-size:10px;padding:2px 6px;border-radius:14px;border:1px solid #cdb474;background:#17151b;white-space:nowrap;box-shadow:0 2px 3px #0008;z-index:5}
.dl-stake:empty{display:none}
.dl-stake .ph-coin{width:13px;height:13px;font-size:9px}
.dl-multiplier{font-size:clamp(8px,2.25vw,11px);white-space:nowrap;color:#e7d2b1;margin-top:4px;text-shadow:0 1px 2px #000}
.dl-hot{position:absolute;right:-2%;bottom:9%;font-size:9px;font-weight:700;padding:3px 4px;background:linear-gradient(#ff8265,#e23a29);border:1px solid #ffd0b4;border-radius:7px;color:#fff8e5;line-height:1;box-shadow:0 1px 3px #0006;z-index:3}
.dl-food.dl-dim{filter:brightness(.4) saturate(.75)}
.dl-food.dl-lit{filter:brightness(1.2);z-index:5}
.dl-food.dl-lit .dl-cabinet{filter:drop-shadow(0 0 3px #fffbd1) drop-shadow(0 0 7px #ffb832)}
.dl-food.dl-lit .dl-window{box-shadow:inset 0 0 8px #ffdb51,0 0 0 2px #fff9c2}
.dl-food.dl-hint-active .dl-window{box-shadow:inset 0 0 12px #f57cbc88,0 0 0 1px #ffd9ef}
.dl-tap{display:none;position:absolute;width:30px;right:0;bottom:3px;filter:drop-shadow(0 2px 3px #0009);transform:rotate(-28deg);pointer-events:none;z-index:8}
.dl-hint-active .dl-tap{display:block;animation:dl-tap .8s ease-in-out infinite}
.dl-tap svg{width:100%;height:100%;stroke-width:2px}
.dl-plate{position:absolute;bottom:6%;display:flex;flex-direction:column;align-items:center;gap:0;background:none;border:0;padding:0;z-index:6}
.dl-plate-meat{left:3%}.dl-plate-fruit{right:2%}
.dl-plate-art{width:56px;height:56px;border-radius:50%;position:relative;display:inline-block;background:radial-gradient(circle at 38% 30%,#e9fbff 0%,#87b9d6 45%,#344d77 65%,#291f31 68%,#e8d3a8 73%,#332b39 78%);box-shadow:0 0 8px #ebc97830;vertical-align:middle}
.dl-plate-foods{position:absolute;inset:0;overflow:hidden;border-radius:50%}
.dl-plate-foods>.ph-art{width:62%;height:62%;position:absolute;left:-1%;top:17%;transform:rotate(-15deg)}
.dl-plate-foods>.ph-art:nth-child(2){left:37%;top:10%;transform:rotate(15deg)}
.dl-plate-foods>.ph-art:nth-child(3){left:20%;top:33%;transform:rotate(-7deg)}
.dl-plate-foods>.ph-art:nth-child(4){left:9%;top:-7%;transform:scale(.7) rotate(20deg)}
.dl-plate-art>i{position:absolute;bottom:15%;left:11%;right:11%;height:20%;border-radius:0 0 50% 50%;background:linear-gradient(#e5faff,#8fbbd5 45%,#354e74);border-bottom:1px solid #fff4be}
.dl-plate>b{font-size:9px;padding:3px 5px;border-radius:4px;border:1px solid #efcc99;background:linear-gradient(#823314,#502d25);color:#fff2dd;margin-top:-5px;position:relative;font-weight:600}
.dl-game-hint{position:absolute;bottom:1.8%;left:23%;right:23%;text-align:center;font-size:8px;line-height:1.4;margin:0;color:#b8adbd}
.dl-console{padding:6px 9px calc(8px + env(safe-area-inset-bottom));border-top:2px solid #8b82bc;background:linear-gradient(110deg,#564f85,#27273f 48%,#4d4774);box-shadow:inset 0 2px 8px #b1a4ff68,0 -3px 10px #0005}
.dl-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) .8fr;gap:7px;padding:0 2px 9px}
.dl-chips button{min-width:0;min-height:44px;display:flex;align-items:center;justify-content:center;gap:2px;border:1px solid #aa9c7b;border-radius:5px;background:linear-gradient(120deg,#67504b,#152747 48%,#264872 80%,#daae69);box-shadow:inset 0 2px 3px #e9c09180,inset 0 -4px 0 #7e523d;color:#fff7e8;font-size:17px;font-weight:600;text-shadow:0 1px 4px #050505;padding:4px 2px}
.dl-chips button.active{background:linear-gradient(120deg,#ffe99c,#ffdb60 35%,#e59523 75%,#ffdb66);border-color:#ffecc7;box-shadow:inset 0 1px 3px #fff8ca,0 0 6px #ffe7b3aa,inset 0 -4px #d59430;color:#fff9e5;text-shadow:0 1px 3px #c58317}
.dl-chips .ph-coin{width:13px;height:13px;font-size:9px}
.dl-chips button.dl-repeat{grid-column:4;grid-row:1 / 3;flex-direction:column;gap:0;background:linear-gradient(#c3c4d1,#686979 80%,#b7b5c4);border-color:#b8b6c6;box-shadow:inset 0 -4px #666674;padding:1px 0;color:#f8f4f5}
.dl-repeat svg{width:25px;height:22px}
.dl-repeat small{font-size:9px;font-weight:400}
.dl-repeat:disabled{opacity:.55}
.dl-history{border:1px solid #a8a2d154;border-radius:8px;background:linear-gradient(110deg,#aaa1af88,#71668138);display:flex;align-items:center;padding:8px 10px;gap:7px;box-shadow:inset 0 2px 4px #1e193955}
.dl-history>b{font-size:11px;font-weight:600;line-height:1.2;flex-shrink:0;width:57px}
.dl-history>div{display:flex;justify-content:space-between;align-items:center;gap:5px;flex:1;min-width:0}
.dl-history-item{display:flex;position:relative;width:34px;height:34px;background:#14121e;border-radius:50%;flex-shrink:1;min-width:0;align-items:center;justify-content:center}
.dl-history-item>.ph-art{width:100%;height:100%}
.dl-history-item em{position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);padding:1px 4px;background:#ff4f87;border:1px solid #ffb6cb;border-radius:8px;font-size:8px;font-style:normal;color:white;font-weight:600}
.dl-history-item>small{position:absolute;top:-4px;left:50%;transform:translateX(-50%);font-size:6px;background:#a86614;border:1px solid #f5ce75;border-radius:3px;padding:1px 2px;color:#fff1bf}
.dl-history-item .dl-plate-art{width:100%;height:100%}
.dl-no-history{font-size:9px;color:#d0c7de}
.dl-ranking{display:flex;align-items:center;gap:12px;margin-top:10px;padding:7px 10px;background:#151529b8;border:1px solid #7b71a33d;border-radius:8px;min-height:57px}
.dl-ranking>button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 9px 0 0;border:0;border-right:1px solid #aca2c740;background:none;gap:3px;color:#ebcc9d;font-size:12px}
.dl-ranking>button svg{height:23px;width:23px;fill:#efbf8c30}
.dl-ranking>div{display:flex;align-items:center;gap:9px;flex:1;min-width:0}
.dl-ranking>div>span:not(.ph-avatar){display:flex;flex-direction:column;gap:5px;min-width:0}
.dl-ranking b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dl-ranking small{font-size:9px;color:#c2a5d2}
.dl-ranking .ph-avatar{width:35px;height:35px;flex-shrink:0}
.dl-ranking .ph-coin{width:11px;height:11px;font-size:7px}
.dl-chevron{font-size:30px;color:#ddd1b8}
.dl-footer{display:flex;justify-content:space-between;padding:7px 3px 0;font-size:8px;color:#ada4c5}
.dl-footer b{color:#e6ca9c;font-weight:500}
.dl-result-layer{position:absolute;inset:0;z-index:10;display:flex;align-items:flex-end;overflow:hidden}
.dl-result-shade{position:absolute;inset:0;background:#02030abf;animation:dl-shade .2s ease-out both}
.dl-result-sheet{position:relative;width:100%;padding:62px 14px 24px;background:linear-gradient(155deg,#a45b14 0%,#2a1c1c 16%,#181629 31%);border-radius:24px 24px 0 0;border-top:1px solid #d5983a66;box-shadow:0 -10px 35px #0005;text-align:center;animation:dl-sheet-in .3s ease-out both;min-height:390px}
.dl-result-glow{position:absolute;top:-34px;left:50%;transform:translateX(-50%);width:90px;height:90px;display:grid;place-items:center;isolation:isolate}
.dl-result-glow:before{content:'';position:absolute;inset:-15px;border-radius:50%;background:radial-gradient(#fff9c8c9 0%,#ffe4867a 20%,#ffe4ae0f 55%,transparent 70%);filter:blur(3px);z-index:-1}
.dl-result-glow:after{content:'';position:absolute;inset:8px -75px;background:conic-gradient(from 70deg,transparent 0deg,#fff7d455 15deg,transparent 35deg,transparent 170deg,#fff7d46b 190deg,transparent 210deg);filter:blur(3px);z-index:-1}
.dl-result-glow>.ph-art{width:90px;height:90px;filter:drop-shadow(0 1px 5px #ffe39e)}
.dl-result-glow>.dl-plate-art{width:76px;height:76px}
.dl-result-timer{position:absolute;right:17px;top:12px;font-size:20px;color:#e4d4c0}
.dl-result-sheet h3{font-size:22px;color:#fff8eb;font-weight:650;line-height:1.2;margin:5px 5px 14px}
.dl-season{font-size:11px;color:#a69fae;margin:0 0 19px}
.dl-result-stat{display:flex;justify-content:center;align-items:center;gap:6px;font-size:12px;color:#aaa4ba;background:#25223c;border-radius:8px;margin-top:7px;min-height:38px;padding:8px}
.dl-result-stat b{color:#fff6e8;font-weight:500}
.dl-podium{position:relative;background:#25213a;border-radius:10px;padding:34px 8px 14px;margin-top:10px}
.dl-podium-title{position:absolute;top:0;left:50%;transform:translateX(-50%);padding:7px 14px;background:#302a49;border-radius:0 0 18px 18px;font-size:10px;white-space:nowrap;color:#cec6db}
.dl-podium-members{display:flex;justify-content:center;gap:8px;min-height:110px}
.dl-podium-member{display:flex;flex-direction:column;align-items:center;position:relative;padding-top:7px;gap:6px;min-width:0;flex:1;max-width:125px}
.dl-podium-member .ph-avatar{height:57px;width:57px;border:2px solid #fff0cf}
.dl-podium-member>b{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic;color:#fff6e9}
.dl-podium-member>strong{font-size:13px;color:#ffe9af}
.dl-crown{position:absolute;top:-8px;left:50%;transform:translateX(-50%) rotate(-13deg);width:25px;height:25px;z-index:1;color:#fff0b6}
.dl-crown svg{fill:#e6ab50;stroke:#fff5d3;width:25px;height:25px;stroke-width:1}
.dl-crown b{position:absolute;font-size:10px;top:6px;left:10px;color:#5a3818}
.place-2 .dl-crown svg{fill:#a5b4d5;stroke:#e6efff}.place-3 .dl-crown svg{fill:#bb7e64;stroke:#f3bb98}
.dl-no-winner{font-size:12px;color:#a59bb8;align-self:center;margin:12px}
.dl-closing .dl-result-sheet{animation:dl-sheet-out .35s ease-in both}
.dl-closing .dl-result-shade{animation:dl-shade-out .35s linear both}
@keyframes dl-tap{50%{transform:translate(-4px,-4px) rotate(-28deg)}}
@keyframes dl-sheet-in{from{transform:translateY(110%)}to{transform:translateY(0)}}
@keyframes dl-sheet-out{from{transform:translateY(0)}to{transform:translateY(110%)}}
@keyframes dl-shade{from{opacity:0}to{opacity:1}}
@keyframes dl-shade-out{from{opacity:1}to{opacity:0}}
@media(max-width:600px){.ph-modal.ph-modal-wheel{width:100%;max-width:480px;border:0;border-radius:0;margin:auto;max-height:100dvh}.ph-backdrop:has(.ph-modal-wheel){align-items:center;background:#080911ed;padding:0}.dl-game{min-height:min(100dvh,850px)}.dl-chips button{font-size:clamp(13px,4vw,17px)}.dl-game .dl-chips .ph-coin{width:12px;height:12px}.dl-result-sheet{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.dl-podium-member .ph-avatar{width:56px;height:56px}}
@media(max-height:720px) and (max-width:600px){.dl-room-scene{height:122px}.dl-room-pair{padding-top:8px}.dl-room-pair .ph-avatar.host,.dl-room-pair>div>.ph-art,.dl-empty-seat{width:55px;height:55px}.dl-stage{aspect-ratio:1/1.02}.dl-ranking{min-height:44px;margin-top:6px;padding:5px 9px}.dl-history{padding:6px 8px}.dl-chips button{min-height:44px}.dl-result-sheet{min-height:350px}}
@media(prefers-reduced-motion:reduce){.dl-tap{animation:none!important}.dl-result-sheet,.dl-result-shade{animation-duration:.01s!important}.dl-food{transition:none}}

.dl-result-mode{font-size:12px;line-height:1.5;color:#f6dba2;margin:0 20px 12px}.ph-admin-link{display:flex;align-items:center;gap:16px;padding:20px;border-radius:14px;background:#f4effc;color:#7145c3;margin-bottom:10px}.ph-admin-link>svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7}.ph-admin-link>span{flex:1}.ph-admin-link small,.ph-history-mode{display:block;font-size:12px;margin-top:4px;color:#8d7f9f}

.dl-pending{height:27px;margin:0 2px 7px;padding:6px 8px;border-radius:6px;background:#171525;color:#ffe5a5;font-size:11px;text-align:center}

.dl-pending.is-idle{visibility:hidden}
