:root { --rt-green: #148161; --rt-green-dark: #0b5848; --rt-ink: #17343a; --rt-muted: #647973; --rt-line: #d5e5de; --rt-cream: #fffaf0; --rt-orange: #ec7a39; }
.rabbit-multiplayer-page { max-width: 100%; overflow-x: hidden; overflow-x: clip; overscroll-behavior-x: none; background: linear-gradient(180deg, #effaf5, #fffaf0 68%); color: var(--rt-ink); touch-action: pan-y; }
.rabbit-multiplayer-page main { min-width: 0; }
.rt-multi-shell { box-sizing: border-box; width: calc(100% - 24px); max-width: 1480px; min-height: 70vh; margin-inline: auto; padding: 14px 0 max(52px, env(safe-area-inset-bottom)); }
.rt-player-shell { width: min(calc(100% - 24px), 760px); }
.rt-multi-header { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.rt-multi-header h1 { margin: 2px 0; color: var(--rt-green-dark); font-size: clamp(1.8rem, 8vw, 2.65rem); letter-spacing: -.04em; }
.rt-multi-header p { margin: 3px 0; color: var(--rt-muted); }
.rt-header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.rt-back-link { display: inline-block; margin-bottom: 10px; color: var(--rt-green-dark); font-weight: 850; }
.rt-kicker { margin: 0 !important; color: var(--rt-green) !important; font-size: .72rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.rt-connection { display: inline-flex; min-height: 30px; align-items: center; padding: 4px 9px; border-radius: 999px; background: #e5f7ef; color: #14634f; font-size: .75rem; font-weight: 900; white-space: nowrap; }
.rt-connection::before { content: ""; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: currentColor; }
.rt-connection.is-connecting { background: #fff5d9; color: #8a5b10; }
.rt-connection.is-offline { background: #ffe9e4; color: #9a3f32; }
.rt-icon-button { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid var(--rt-line); border-radius: 50%; background: #fff; cursor: pointer; }
.rt-icon-button[aria-pressed="false"] { border-color: #d9dedc; background: #f1f3f2; color: #6f7b77; }
.rt-shuffle-control > img { display: block; width: 27px; height: 27px; object-fit: contain; }
.rt-shuffle-control:not(:disabled):hover { transform: rotate(9deg); }
.rt-shuffle-control[hidden] { display: none; }
.rt-panel { box-sizing: border-box; min-width: 0; margin-bottom: 14px; padding: 18px; border: 1px solid var(--rt-line); border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: 0 14px 36px rgba(24, 82, 66, .08); }
.rt-panel h2 { margin: 5px 0 10px; color: var(--rt-ink); font-size: 1.3rem; }
.rt-panel p { color: var(--rt-muted); line-height: 1.55; }
.rt-create-panel { display: grid; justify-items: center; padding: 30px 22px; text-align: center; }
.rt-create-panel > img { width: 122px; height: 122px; object-fit: contain; }
.rt-create-panel p { max-width: 420px; margin-top: 0; }
.rt-primary, .rt-secondary, .rt-warning { box-sizing: border-box; width: 100%; min-height: 48px; padding: 11px 16px; border-radius: 13px; font-size: 1rem; font-weight: 900; cursor: pointer; }
.rt-primary { border: 0; background: linear-gradient(135deg, #168b68, #0d6c56); color: #fff; box-shadow: 0 11px 24px rgba(15, 112, 83, .2); }
.rt-secondary { border: 1px solid #a8d8c7; background: #f5fcf9; color: var(--rt-green-dark); }
.rt-warning { border: 1px solid #edc28d; background: #fff7e6; color: #8d5415; }
button:disabled { cursor: not-allowed; filter: grayscale(.35); opacity: .48; box-shadow: none; }
button:focus-visible, input:focus-visible, select:focus-visible, a:focus-visible { outline: 4px solid rgba(20, 129, 97, .24); outline-offset: 3px; }
.rt-room-summary { display: grid; grid-template-columns: 1fr 132px; align-items: center; gap: 12px 18px; }
.rt-room-summary > div:first-child { display: grid; gap: 4px; }
.rt-room-summary span { color: var(--rt-muted); font-weight: 800; }
.rt-room-summary strong { color: var(--rt-green-dark); font-size: clamp(2rem, 10vw, 3rem); letter-spacing: .08em; }
.rt-room-summary small { color: var(--rt-muted); font-weight: 850; }
.rt-room-summary > img { width: 132px; height: 132px; padding: 6px; border: 1px solid var(--rt-line); border-radius: 12px; background: #fff; }
.rt-share-actions { grid-column: 1 / -1; }
.rt-share-actions p { min-height: 1.4em; margin: 6px 0 0; font-size: .8rem; text-align: center; }
.rt-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.rt-section-heading > span { color: var(--rt-muted); font-size: .8rem; font-weight: 850; }
.rt-player-list, .rt-player-status-list, .rt-event-list { display: grid; gap: 8px; margin: 14px 0; padding: 0; list-style: none; }
.rt-player-list .rt-player-status-card, .rt-player-status-list .rt-player-status-card { box-sizing: border-box; display: grid; min-height: 62px; gap: 7px; padding: 9px 11px; border: 1px solid #dce9e4; border-radius: 13px; background: #f9fcfb; }
.rt-player-list .rt-player-status-card.is-current, .rt-player-status-list .rt-player-status-card.is-current { border-color: #59ac91; background: #eaf8f2; box-shadow: inset 3px 0 #188060; }
.rt-player-card-header, .rt-player-card-details { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; }
.rt-player-card-identity { display: flex; min-width: 0; align-items: center; gap: 6px; }
.rt-player-card-identity strong { overflow: hidden; color: var(--rt-ink); text-overflow: ellipsis; white-space: nowrap; }
.rt-player-card-identity small { color: #56716a; font-size: .69rem; font-weight: 800; white-space: nowrap; }
.rt-player-connection-dot { flex: 0 0 9px; width: 9px; height: 9px; border-radius: 50%; background: #27a176; box-shadow: 0 0 0 3px #dff5ed; }
.rt-player-status-card.is-offline .rt-player-connection-dot { background: #aab5b1; box-shadow: 0 0 0 3px #edf0ef; }
.rt-player-status-card.is-offline .rt-player-card-identity small { color: #818d89; }
.rt-player-badges { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; }
.rt-player-badge { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 9px; }
.rt-shield-badge { background: #e0f6ed; }
.rt-shield-badge img { display: block; width: 23px; height: 23px; object-fit: contain; }
.rt-shield-badge.has-count { width: auto; grid-auto-flow: column; gap: 3px; padding: 0 7px 0 3px; color: #12694f; font-size: .72rem; font-weight: 950; white-space: nowrap; }
.rt-inline-shield-status { display: inline-flex; align-items: center; gap: 4px; color: #12694f; font-size: .76rem; font-weight: 900; white-space: nowrap; }
.rt-inline-shield-status img { width: 22px; height: 22px; object-fit: contain; }
.rt-mobile-player-name { display: flex; min-width: 0; align-items: center; gap: 6px; }
.rt-mobile-player-name strong { overflow: hidden; color: #173f35; text-overflow: ellipsis; white-space: nowrap; }
.rt-skip-badge { grid-template-columns: repeat(2, 4px); justify-content: center; gap: 3px; background: #fff1d8; }
.rt-skip-badge i { display: block; width: 4px; height: 14px; border-radius: 2px; background: #c46d20; }
.rt-player-card-details { color: #526963; font-size: .76rem; font-weight: 850; }
.rt-player-card-details span:last-child { color: var(--rt-green-dark); text-align: right; }
.rt-player-status-card.is-offline .rt-player-card-details { color: #7f8b87; }
.rt-own-shield-status { margin: 10px 0 0 !important; padding: 9px 12px; border: 1px solid #83cdb4; border-radius: 12px; background: #e4f8f0; color: #115e48 !important; font-weight: 900; text-align: center; }
.rt-player-list > li:not(.rt-player-status-card), .rt-player-status-list > li:not(.rt-player-status-card) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid #dce9e4; border-radius: 12px; background: #f9fcfb; }
.rt-player-list > li:not(.rt-player-status-card) strong, .rt-player-status-list > li:not(.rt-player-status-card) strong { overflow: hidden; color: #173f35; text-overflow: ellipsis; white-space: nowrap; }
.rt-player-list > li:not(.rt-player-status-card) span, .rt-player-status-list > li:not(.rt-player-status-card) span { color: #688078; font-size: .84rem; }
.rt-game-grid { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; }
.rt-game-grid .rt-panel { height: auto; min-height: 0; margin-bottom: 0; align-self: start; }
.rt-dashboard-column { display: grid; min-width: 0; min-height: 0; gap: 14px; align-content: start; }
.rt-turn-panel { height: auto; min-height: 0; text-align: center; }
.rt-turn-panel h2 { font-size: 1.65rem; }
.rt-public-table { display: grid; justify-items: center; gap: 16px; background: radial-gradient(circle at 50% 30%, #fffde8, #edf8f2); }
.rt-public-table > .rt-kicker { margin-bottom: -12px; }
.rt-last-draw-player { width: 100%; margin: 0 !important; color: #315f51 !important; font-size: .95rem; font-weight: 900; text-align: center; }
.rt-draw-choice-copy { width: 100%; margin: 0 !important; color: var(--rt-green-dark) !important; font-weight: 900; text-align: center; }
.rt-dashboard-right { display: grid; justify-items: stretch; gap: 14px; background: linear-gradient(160deg, #f8fffb, #eef8f4); }
.rt-dual-decks { display: grid; width: 100%; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: start; gap: clamp(8px, 3vw, 16px); }
.rt-deck-choice { display: grid; min-width: 0; justify-items: center; align-content: start; gap: 7px; padding: 10px 5px; border: 1px solid transparent; border-radius: 16px; transition: opacity .2s ease, background .2s ease, border-color .2s ease; }
.rt-deck-choice h3 { display: grid; gap: 2px; margin: 0; color: var(--rt-green-dark); font-size: clamp(.82rem, 3.6vw, 1rem); text-align: center; }
.rt-deck-choice h3 span { color: var(--rt-muted); font-size: .72rem; }
.rt-deck-choice.is-selected { border-color: #76bea5; background: rgba(231, 249, 241, .78); }
.rt-deck-choice.is-inactive { opacity: .48; }
.rt-dual-decks .rt-deck-button { width: min(100%, 150px); margin: 3px 0 8px; }
.rt-dual-decks .rt-item-deck-button { width: min(100%, 124px); }
.rt-item-deck-top-card { position: absolute; }
.rt-item-deck-badge { position: absolute; z-index: 2; right: 9%; bottom: 8%; left: 9%; padding: 5px 4px; border-radius: 999px; background: rgba(13, 108, 86, .9); color: #fff; font-size: clamp(.66rem, 3vw, .84rem); font-weight: 950; letter-spacing: .12em; text-align: center; }
.rt-dual-decks .rt-draw-hint { min-width: 0; margin: 0; }
.rt-dual-decks .rt-draw-hint strong { font-size: clamp(.76rem, 3.4vw, .94rem); }
.rt-dual-decks .rt-draw-hint small { max-width: 16ch; line-height: 1.35; }
.rt-current-card { display: grid; width: min(72vw, 270px); aspect-ratio: 3 / 4; grid-template-rows: minmax(0, 1fr) auto; overflow: hidden; border: 9px solid #fff; border-radius: 22px; background: #eaf7fa; box-shadow: 0 22px 48px rgba(28, 74, 65, .18); }
.rt-current-card img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.rt-current-card div { display: grid; gap: 4px; padding: 12px; background: #fffbd7; text-align: center; }
.rt-current-card span { color: var(--rt-green); font-size: .78rem; font-weight: 900; }
.rt-current-card strong { font-size: 1.15rem; }
.rt-current-card.is-empty div { background: #e9f5ef; }
.rt-current-card.is-revealing { animation: rt-card-reveal .58s ease both; }
.rt-deck-button { --drag-y: 0px; position: relative; display: grid; width: clamp(150px, 46vw, 180px); aspect-ratio: 3 / 4; place-items: center; margin: 6px 0 10px; padding: 0; overflow: visible; border: 0; background: transparent; cursor: grab; touch-action: none; user-select: none; -webkit-tap-highlight-color: transparent; }
.rt-deck-button:active { cursor: grabbing; }
.rt-deck-layer, .rt-deck-top-card { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border-radius: 18px; }
.rt-deck-layer { border: 1px solid #d8d8d0; background: #fffdf7; box-shadow: 0 7px 14px rgba(44, 70, 62, .12); }
.rt-deck-layer-five { transform: translateY(16px); }
.rt-deck-layer-four { transform: translateY(12px); }
.rt-deck-layer-three { transform: translateY(8px); }
.rt-deck-layer-two { transform: translateY(4px); }
.rt-deck-top-card { z-index: 1; overflow: hidden; background: transparent; box-shadow: 0 16px 30px rgba(17, 77, 62, .24); transform: translate3d(0, var(--drag-y), 0); transition: transform .22s ease; }
.rt-deck-top-card > img { display: block; width: 100%; height: 100%; border-radius: 18px; object-fit: contain; pointer-events: none; }
.rt-deck-button.is-dragging .rt-deck-top-card { transition: none; }
.rt-deck-button.is-returning .rt-deck-top-card { transition: transform .26s cubic-bezier(.2, .8, .3, 1); }
.rt-deck-button.is-committing .rt-deck-top-card { animation: rt-deck-commit .58s cubic-bezier(.18, .78, .24, 1) forwards; }
.rt-deck-button.is-reshuffling .rt-deck-top-card { animation: rt-deck-reshuffle .4s cubic-bezier(.2, .8, .3, 1); }
.rt-deck-button:disabled { cursor: not-allowed; }
.rt-draw-hint { display: grid; justify-items: center; gap: 3px; margin: -1px 0 4px; text-align: center; }
.rt-draw-hint strong { color: var(--rt-green-dark); font-size: 1rem; }
.rt-draw-hint strong span { display: inline-block; margin-right: 4px; animation: rt-draw-hint 1.4s ease-in-out infinite; font-size: 1.35rem; }
.rt-draw-hint small { color: var(--rt-muted); font-size: .78rem; font-weight: 750; }
.rt-deck-stats { display: grid; width: 100%; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.rt-deck-stats div { display: grid; grid-template-columns: 1fr auto; gap: 2px; padding: 10px 6px; border-radius: 11px; background: rgba(255,255,255,.78); text-align: center; }
.rt-deck-stats span { grid-column: 1 / -1; color: var(--rt-muted); font-size: .7rem; font-weight: 850; }
.rt-deck-stats strong { color: var(--rt-green-dark); font-size: 1.55rem; }
.rt-deck-stats small { align-self: end; color: var(--rt-muted); font-size: .7rem; }
.rt-probability-panel { min-width: 0; padding: 11px 12px; border: 1px solid #d6e8e0; border-radius: 14px; background: rgba(255,255,255,.82); }
.rt-probability-heading { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2px 8px; }
.rt-probability-heading .rt-kicker { grid-column: 1 / -1; }
.rt-probability-heading h3 { margin: 0; color: var(--rt-green-dark); font-size: 1rem; }
.rt-probability-heading small { color: var(--rt-muted); font-size: .67rem; font-weight: 750; }
.rt-probability-groups { display: grid; min-width: 0; grid-template-columns: 1fr; gap: 10px; margin-top: 10px; }
.rt-probability-groups section { min-width: 0; }
.rt-probability-groups h3, .rt-probability-groups h4 { margin: 0 0 5px; color: #315f51; font-size: .77rem; font-weight: 950; }
.rt-probability-groups ul { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; }
.rt-probability-groups li { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: 7px; padding: 3px 5px; border-radius: 6px; background: #f4faf7; color: #536a63; font-size: .68rem; }
.rt-probability-groups li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rt-probability-groups li strong { flex: 0 0 auto; color: #174f40; font-size: .68rem; white-space: nowrap; }
.rt-dashboard-right > .rt-probability-panel { max-height: clamp(170px, 27dvh, 248px); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.rt-player-probability-panel { padding: 0; overflow: hidden; }
.rt-player-probability-panel summary { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; color: var(--rt-green-dark); cursor: pointer; list-style: none; }
.rt-player-probability-panel summary::-webkit-details-marker { display: none; }
.rt-player-probability-panel summary > span:first-child { display: grid; gap: 2px; }
.rt-player-probability-panel summary small { color: var(--rt-muted); font-size: .7rem; font-weight: 850; }
.rt-player-probability-panel summary strong { font-size: 1.02rem; }
.rt-player-probability-panel[open] summary { border-bottom: 1px solid #e1ece7; }
.rt-player-probability-panel[open] summary > span:last-child { transform: rotate(180deg); }
.rt-player-probability-panel > .rt-probability-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 12px 16px 16px; }
.rt-event-list li { padding: 10px 12px; border-left: 4px solid #8bcbb7; border-radius: 4px 10px 10px 4px; background: #f6fbf9; color: #455e58; overflow-wrap: anywhere; }
.rt-dashboard-list-panel { min-height: 0; overflow: hidden; align-self: start; }
.rt-dashboard-list-panel .rt-player-status-list, .rt-dashboard-list-panel .rt-event-list { max-height: clamp(132px, 22dvh, 228px); margin-bottom: 0; padding-right: 4px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.rt-room-danger { padding: 8px 0; text-align: center; }
.rt-room-danger button { padding: 8px 14px; border: 0; background: transparent; color: #a04b3b; font-weight: 850; text-decoration: underline; cursor: pointer; }
.rt-toast { position: fixed; z-index: 80; right: 14px; bottom: max(18px, env(safe-area-inset-bottom)); left: 14px; box-sizing: border-box; width: min(440px, calc(100% - 28px)); margin-inline: auto; padding: 13px 16px; border-radius: 12px; background: #153f37; color: #fff; box-shadow: 0 16px 44px rgba(8, 42, 35, .28); font-weight: 850; text-align: center; }
.rt-toast.is-error { background: #8c392d; }
.rt-toast[hidden] { display: none; }
.rt-join-panel label { display: block; margin: 14px 0 7px; color: var(--rt-ink); font-weight: 900; }
.rt-join-panel input { box-sizing: border-box; width: 100%; min-height: 50px; padding: 10px 13px; border: 2px solid #cfe2da; border-radius: 12px; background: #fbfffd; color: var(--rt-ink); font-size: 1rem; }
.rt-field-help { margin: 6px 0 14px; font-size: .8rem; }
.rt-player-identity { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; align-items: baseline; }
.rt-player-identity > span { color: var(--rt-muted); font-weight: 800; }
.rt-player-identity > strong { font-size: 1.55rem; overflow-wrap: anywhere; }
.rt-player-identity > small { grid-column: 1 / -1; color: var(--rt-muted); }
.rt-player-turn.is-mine { border-color: #63b89e; background: #edfbf5; box-shadow: 0 14px 38px rgba(18, 129, 96, .16); }
.rt-obtained-dialog .rt-kicker { justify-self: center; }
.rt-obtained-dialog .rt-primary { margin-top: 4px; }
.rt-hand-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rt-item-card { display: grid; min-width: 0; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 16px; background: transparent; box-shadow: 0 10px 24px rgba(20, 75, 61, .12); cursor: pointer; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, opacity .2s ease; }
.rt-item-card > img { display: block; width: 100%; height: auto; object-fit: contain; }
.rt-item-card:not(:disabled):hover { transform: translateY(-3px); box-shadow: 0 16px 30px rgba(20, 75, 61, .2); }
.rt-item-card:not(:disabled):active { transform: translateY(1px) scale(.985); }
.rt-item-card:focus-visible, .rt-item-card.is-selected { border-color: #1a9570; outline: 4px solid rgba(20, 129, 97, .2); outline-offset: 2px; }
.rt-item-card:disabled { cursor: default; filter: none; opacity: .72; }
.rt-item-card-fallback { box-sizing: border-box; display: grid; width: 100%; aspect-ratio: 257 / 456; align-content: center; gap: 10px; padding: 16px 10px; border: 5px solid #21866d; border-radius: 14px; background: linear-gradient(160deg, #eafff5, #96e2c7); color: var(--rt-green-dark); text-align: center; }
.rt-item-card-fallback strong { font-size: clamp(1rem, 5vw, 1.35rem); }
.rt-item-card-fallback span { color: #315d52; font-size: .8rem; line-height: 1.5; }
.rt-item-card-fallback[hidden] { display: none; }
.rt-item-dialog { box-sizing: border-box; width: min(92vw, 430px); max-height: min(92dvh, 760px); margin: auto; padding: 22px; overflow: auto; border: 0; border-radius: 24px; background: #fffefa; color: var(--rt-ink); box-shadow: 0 30px 90px rgba(6, 37, 31, .34); }
.rt-item-dialog::backdrop { background: rgba(10, 37, 32, .58); backdrop-filter: blur(3px); }
.rt-item-dialog form { position: relative; display: grid; gap: 12px; }
.rt-dialog-close { position: sticky; z-index: 2; top: 0; justify-self: end; display: grid; width: 42px; height: 42px; margin-bottom: -44px; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: var(--rt-ink); font-size: 1.65rem; cursor: pointer; box-shadow: 0 5px 16px rgba(17, 52, 45, .16); }
.rt-item-dialog-image { display: block; width: min(100%, 270px); height: auto; max-height: 52dvh; margin-inline: auto; object-fit: contain; }
.rt-item-dialog-image[hidden], .rt-item-dialog-fallback[hidden], .rt-dialog-error[hidden] { display: none; }
.rt-item-dialog-fallback { display: grid; width: min(100%, 270px); aspect-ratio: 257 / 456; align-content: center; gap: 12px; margin-inline: auto; padding: 24px; border: 6px solid #21866d; border-radius: 20px; background: linear-gradient(160deg, #eafff5, #96e2c7); color: var(--rt-green-dark); text-align: center; }
.rt-item-dialog h2 { margin: 2px 0 0; text-align: center; }
.rt-item-dialog > form > p { margin: 0; color: var(--rt-muted); line-height: 1.55; text-align: center; }
.rt-item-dialog fieldset { min-width: 0; margin: 0; padding: 12px; border: 1px solid var(--rt-line); border-radius: 14px; }
.rt-item-dialog legend { padding-inline: 6px; color: var(--rt-green-dark); font-weight: 900; }
.rt-target-list { display: grid; gap: 8px; }
.rt-target-list label { display: flex; min-height: 46px; align-items: center; gap: 10px; padding: 0 12px; border: 1px solid #cfe2da; border-radius: 11px; background: #f8fdfb; cursor: pointer; font-weight: 850; }
.rt-target-list label:has(input:checked) { border-color: #1a9570; background: #e7f8f1; }
.rt-target-list input { width: 20px; height: 20px; accent-color: var(--rt-green); }
.rt-dialog-error { padding: 9px 12px; border-radius: 10px; background: #ffe9e4; color: #8c392d !important; font-weight: 850; }
.rt-dialog-actions { display: grid; grid-template-columns: 1fr 1.3fr; gap: 10px; padding-top: 4px; }
.rt-dialog-cancel { min-height: 48px; border: 1px solid #a8d8c7; border-radius: 13px; background: #fff; color: var(--rt-green-dark); font-size: 1rem; font-weight: 900; cursor: pointer; }
.rt-shuffle-dialog { box-sizing: border-box; width: min(92vw, 480px); max-height: min(92dvh, 760px); margin: auto; padding: 0; overflow: auto; border: 0; border-radius: 28px; background: #fffefa; color: var(--rt-ink); box-shadow: 0 30px 90px rgba(6, 37, 31, .34); }
.rt-shuffle-dialog::backdrop { background: rgba(10, 37, 32, .58); backdrop-filter: blur(3px); }
.rt-shuffle-dialog form { position: relative; box-sizing: border-box; padding: 30px; text-align: center; }
.rt-shuffle-dialog .rt-dialog-close { position: absolute; top: 16px; right: 16px; width: 42px; height: 42px; margin: 0; border: 0; border-radius: 50%; background: #f1f4f2; color: #53615d; box-shadow: none; font-size: 1.55rem; cursor: pointer; }
.rt-shuffle-dialog-icon { display: grid; width: 68px; height: 68px; margin: 2px auto 14px; place-items: center; border-radius: 22px; background: #e6f5e8; }
.rt-shuffle-dialog-icon img { width: 44px; height: 44px; object-fit: contain; }
.rt-shuffle-dialog h2 { margin: 0 0 8px; font-size: 1.65rem; }
.rt-shuffle-dialog > form > p { margin: 0; color: var(--rt-muted); line-height: 1.55; }
.rt-shuffle-options { display: grid; gap: 12px; margin-top: 24px; text-align: left; }
.rt-shuffle-option { box-sizing: border-box; display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 14px; width: 100%; min-height: 96px; padding: 12px 14px; border: 1px solid #b9dbc8; border-radius: 17px; background: #f1fbf5; color: #174d3e; text-align: left; cursor: pointer; }
.rt-shuffle-option.is-primary { border-color: #8fcbd2; background: #eef9fb; color: #164a50; }
.rt-shuffle-option > img { display: block; width: 52px; height: 52px; object-fit: contain; }
.rt-shuffle-option > span { display: grid; min-width: 0; gap: 5px; }
.rt-shuffle-option strong { font-size: 1.05rem; font-weight: 950; }
.rt-shuffle-option small { color: #60736c; font-size: .84rem; line-height: 1.5; }
.rt-shuffle-option:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 9px 22px rgba(28, 102, 76, .12); }
.rt-shuffle-dialog .rt-dialog-cancel { width: 100%; margin-top: 12px; border: 0; background: transparent; }
.rt-privacy-note { margin-bottom: 0; padding-top: 10px; border-top: 1px solid #e8efec; font-size: .78rem; }
.rt-empty-copy { padding: 18px; border: 1px dashed #cfded8; border-radius: 12px; text-align: center; }
.rt-shield-notification-layer { position: fixed; z-index: 160; inset: 0; display: grid; padding: max(20px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); place-items: center; pointer-events: none; }
.rt-shield-notice { box-sizing: border-box; display: grid; width: min(90vw, 420px); justify-items: center; gap: 8px; padding: 22px 24px; border: 2px solid #59bd97; border-radius: 24px; background: rgba(247, 255, 251, .97); box-shadow: 0 22px 65px rgba(7, 50, 39, .28); color: #123e32; text-align: center; opacity: 0; transform: scale(.9) translateY(12px); transition: opacity .18s ease, transform .22s cubic-bezier(.2,.8,.2,1.15); }
.rt-shield-notice[hidden] { display: none; }
.rt-shield-notice.is-visible { opacity: 1; transform: none; }
.rt-shield-notice.is-blocked { border-color: #2c9d78; background: rgba(238, 255, 248, .98); }
.rt-shield-notice.is-expired { width: min(88vw, 360px); padding: 15px 18px; border-color: #a9c9bd; }
.rt-shield-notice img { width: clamp(88px, 22vw, 132px); max-height: 150px; object-fit: contain; }
.rt-shield-notice.is-expired img { width: 58px; max-height: 68px; opacity: .72; }
.rt-shield-notice h2, .rt-shield-notice p, .rt-shield-notice small { margin: 0; }
.rt-shield-notice h2 { color: #106a4f; font-size: clamp(1.25rem, 5vw, 1.7rem); }
.rt-shield-notice p { font-size: clamp(1rem, 4vw, 1.2rem); font-weight: 950; }
.rt-shield-notice small { color: #4d6f65; font-size: .86rem; font-weight: 800; }
@keyframes rt-card-reveal { 0% { transform: translateY(55px) rotateY(160deg) scale(.82); opacity: .3; } 100% { transform: none; opacity: 1; } }
@keyframes rt-deck-commit { 0% { transform: translate3d(0, var(--drag-y), 0); opacity: 1; } 100% { transform: translate3d(0, -150px, 0) scale(.72); opacity: 0; } }
@keyframes rt-deck-reshuffle { 0%, 100% { transform: translate3d(0, 0, 0); } 35% { transform: translate3d(9px, -5px, 0) rotate(4deg); } 70% { transform: translate3d(-8px, 3px, 0) rotate(-3deg); } }
@keyframes rt-draw-hint { 0%, 100% { transform: translateY(2px); } 50% { transform: translateY(-4px); } }
@media (min-width: 768px) and (max-width: 899px) {
  .rt-ipad-dashboard { grid-template-columns: minmax(240px, .82fr) minmax(360px, 1.18fr); }
  .rt-dashboard-right { grid-column: 1 / -1; }
  .rt-dashboard-right .rt-dual-decks { width: min(100%, 520px); justify-self: center; }
}
@media (min-width: 900px) {
  .rt-multi-shell:not(.rt-player-shell) { min-height: 100dvh; }
  .rt-multi-shell:not(.rt-player-shell) .rt-multi-header { margin-bottom: 10px; }
  .rt-ipad-dashboard { grid-template-columns: minmax(210px, .8fr) minmax(300px, 1.25fr) minmax(245px, .95fr); gap: clamp(10px, 1.2vw, 18px); }
  .rt-dashboard-center { min-height: min(680px, calc(100dvh - 120px)); align-content: center; }
  .rt-dashboard-center .rt-current-card { width: min(100%, calc((100dvh - 225px) * .75), 310px); }
  .rt-dashboard-right { min-height: min(680px, calc(100dvh - 120px)); align-content: start; }
  .rt-dashboard-right .rt-dual-decks { gap: 8px; }
  .rt-dashboard-right .rt-deck-choice { padding-inline: 2px; }
  .rt-dashboard-right .rt-deck-button { width: min(100%, 122px); }
  .rt-dashboard-right .rt-item-deck-button { width: min(100%, 112px); }
  .rt-room-danger { padding-block: 4px; }
}
@media (max-width: 600px) { .rt-shuffle-dialog { width: 100%; max-width: 100%; margin: auto 0 0; border-radius: 28px 28px 0 0; } .rt-shuffle-dialog form { padding: 26px 20px max(20px, env(safe-area-inset-bottom)); } }
@media (max-width: 767px) { .rt-multi-shell { width: calc(100% - 20px); } .rt-multi-header { align-items: flex-start; } .rt-header-actions { flex-flow: row wrap; justify-content: flex-end; } }
@media (max-width: 390px) { .rt-multi-shell { width: calc(100% - 16px); } .rt-panel { padding: 15px; border-radius: 15px; } .rt-room-summary { grid-template-columns: 1fr 112px; } .rt-room-summary > img { width: 112px; height: 112px; } .rt-header-actions { flex-flow: row wrap; justify-content: flex-end; } .rt-hand-grid { gap: 9px; } .rt-item-dialog { width: calc(100% - 16px); padding: 18px; border-radius: 22px; } .rt-shuffle-option { grid-template-columns: 50px minmax(0, 1fr); padding: 11px; gap: 10px; } .rt-shuffle-option > img { width: 47px; height: 47px; } }
@media (max-width: 430px) { .rt-player-probability-panel > .rt-probability-groups { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .rt-shield-notice { transform: none; transition: opacity .12s linear; } }
@media (prefers-reduced-motion: reduce) { .rt-current-card.is-revealing { animation: none; } .rt-item-card { transition: none; } .rt-deck-button.is-committing .rt-deck-top-card, .rt-deck-button.is-reshuffling .rt-deck-top-card { animation: none; } .rt-draw-hint strong span { animation: none; } }
