:root {
    color-scheme: dark;
    --ink: #f8f7ff;
    --muted: #aaa8bc;
    --surface: rgba(28, 25, 48, .88);
    --surface-2: #24203e;
    --border: rgba(255, 255, 255, .10);
    --pink: #ff5c8a;
    --yellow: #ffd43b;
    --teal: #30d5c8;
    --violet: #9b7bff;
    --blue: #4f9cff;
    --green: #5ce1a4;
    --shadow: 0 24px 80px rgba(5, 4, 18, .40);
}

* { box-sizing: border-box; }

html, body { min-height: 100%; }

body {
    margin: 0;
    color: var(--ink);
    font-family: "Nunito", system-ui, sans-serif;
    background:
        radial-gradient(circle at 12% 18%, rgba(155, 123, 255, .20), transparent 32rem),
        radial-gradient(circle at 88% 80%, rgba(48, 213, 200, .13), transparent 28rem),
        #100d20;
}

button, input { font: inherit; }
button { color: inherit; }

.app-shell { min-height: 100vh; }

.topbar {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 clamp(20px, 5vw, 72px);
    border-bottom: 1px solid var(--border);
    background: rgba(16, 13, 32, .72);
}
.topbar-actions { display: flex; align-items: center; gap: 12px; }

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--ink);
    text-decoration: none;
    font-size: 1.2rem;
    font-weight: 900;
    letter-spacing: -.02em;
}

.brand-dot {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: #171323;
    transform: rotate(-5deg);
    box-shadow: 0 8px 24px rgba(255, 212, 59, .22);
}

.prototype-pill, .step-label, .host-badge, .invite-code {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.prototype-pill { padding: 8px 12px; color: var(--muted); background: rgba(255,255,255,.06); }
.step-label { color: var(--teal); margin-bottom: 8px; }

.main-content {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: clamp(42px, 7vw, 90px) 0;
}

h1, h2, p { margin-top: 0; }
h1 { max-width: 780px; margin-bottom: 18px; font-size: clamp(2.35rem, 6vw, 5rem); line-height: .98; letter-spacing: -.055em; }
h2 { margin-bottom: 8px; font-size: 1.5rem; letter-spacing: -.025em; }
p { color: var(--muted); line-height: 1.65; }

.eyebrow { margin-bottom: 14px; color: var(--yellow); font-weight: 900; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; }
.lead { max-width: 620px; font-size: 1.1rem; }

.welcome-grid, .lobby-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
    gap: clamp(30px, 6vw, 80px);
    align-items: center;
}

.lobby-grid { grid-template-columns: minmax(280px, .65fr) minmax(0, 1.35fr); align-items: start; gap: 24px; }
.lobby-overview { display: grid; grid-template-columns: minmax(0, 1fr) 250px; align-items: start; gap: 24px; }
.lobby-main { min-width: 0; }

.panel {
    padding: clamp(24px, 4vw, 40px);
    border: 1px solid var(--border);
    border-radius: 28px;
    background: linear-gradient(145deg, rgba(38, 33, 65, .94), rgba(24, 21, 43, .94));
    box-shadow: var(--shadow);
}

.sign-in-card form, .create-card { display: grid; gap: 14px; }
label { color: #d8d6e2; font-size: .86rem; font-weight: 800; }
.mode-toggle { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 12px; margin-top: 4px; padding: 13px; border: 1px solid var(--border); border-radius: 15px; background: rgba(8,7,19,.3); cursor: pointer; }.mode-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; }.toggle-track { width: 46px; height: 26px; position: relative; display: block; border-radius: 999px; background: rgba(255,255,255,.16); transition: background .2s; }.toggle-track i { width: 20px; height: 20px; position: absolute; top: 3px; left: 3px; border-radius: 50%; background: white; transition: transform .2s; }.mode-toggle input:checked + .toggle-track { background: var(--pink); }.mode-toggle input:checked + .toggle-track i { transform: translateX(20px); }.mode-toggle input:focus-visible + .toggle-track { outline: 3px solid rgba(155,123,255,.45); outline-offset: 2px; }.mode-copy { display: grid; gap: 2px; }.mode-copy strong { color: var(--ink); }.mode-copy small { color: var(--muted); font-size: .66rem; line-height: 1.35; }

.text-input {
    width: 100%;
    min-height: 52px;
    border: 1px solid var(--border);
    border-radius: 14px;
    outline: none;
    padding: 0 16px;
    color: var(--ink);
    background: rgba(8, 7, 19, .55);
    transition: border-color .2s, box-shadow .2s;
}

.text-input:focus { border-color: var(--violet); box-shadow: 0 0 0 4px rgba(155,123,255,.15); }
.validation-message { color: #ff89a7; font-size: .8rem; }

.button {
    min-height: 48px;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 0 20px;
    cursor: pointer;
    background: rgba(255,255,255,.07);
    font-weight: 900;
    transition: transform .18s, filter .18s, opacity .18s;
}

.button:hover:not(:disabled) { transform: translateY(-2px); filter: brightness(1.08); }
.button:disabled { opacity: .38; cursor: not-allowed; }
.button.primary { color: #171323; border-color: transparent; background: var(--yellow); }
.button.accent { color: #171323; border-color: transparent; background: var(--teal); }
.button.ghost { background: transparent; }
.button.small { min-height: 40px; padding: 0 16px; }
.button.wide { width: 100%; margin-top: 6px; }
.button.ready-button { color: #10251e; border-color: transparent; background: var(--green); }

.number-row { display: flex; gap: clamp(8px, 1.5vw, 16px); margin-top: 36px; perspective: 800px; }
.number-tile {
    width: clamp(48px, 7vw, 78px);
    aspect-ratio: .76;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #171323;
    font-size: clamp(1.6rem, 4vw, 2.7rem);
    font-weight: 900;
    box-shadow: 0 14px 34px rgba(0,0,0,.28), inset 0 -5px 0 rgba(0,0,0,.14);
}
.number-tile:nth-child(odd) { transform: rotate(-4deg); }
.number-tile:nth-child(even) { transform: rotate(3deg) translateY(-7px); }
.tile-pink { background: var(--pink); }
.tile-yellow, .dot-yellow { background: var(--yellow); }
.tile-teal { background: var(--teal); }
.tile-violet { background: var(--violet); }
.tile-blue { background: var(--blue); }

.lobby-header, .waiting-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 34px; }
.lobby-header h1, .waiting-heading h1 { margin-bottom: 10px; font-size: clamp(2.5rem, 5vw, 4.4rem); }
.lobby-header p, .waiting-heading p { margin-bottom: 0; }
.waiting-heading { display: block; text-align: center; }
.waiting-heading h1 { margin-left: auto; margin-right: auto; }
.back-link { float: left; border: 0; padding: 8px 0; color: var(--muted); cursor: pointer; background: transparent; font-weight: 800; }

.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.section-heading h2 { margin: 0; }
.live-indicator { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: .78rem; font-weight: 800; }
.live-indicator i { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(92,225,164,.12); }

.room-list { display: grid; gap: 10px; }
.room-row { display: flex; align-items: center; gap: 14px; padding: 14px; border: 1px solid var(--border); border-radius: 17px; background: rgba(255,255,255,.035); }
.room-token { width: 42px; height: 50px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; color: #171323; background: var(--violet); font-size: 1.25rem; font-weight: 900; }
.room-details { min-width: 0; flex: 1; display: grid; }
.room-details strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.room-details span { color: var(--muted); font-size: .78rem; }

.empty-state { display: grid; justify-items: center; gap: 9px; text-align: center; }
.empty-state.compact { padding: 28px 10px 16px; box-shadow: none; background: transparent; }
.empty-state span { color: var(--muted); }
.empty-icon { width: 52px; height: 62px; display: grid; place-items: center; margin-bottom: 7px; border-radius: 12px; color: #171323; background: var(--yellow); font-size: 1.7rem; font-weight: 900; transform: rotate(-5deg); }

.alert { margin: 0 0 22px; padding: 14px 17px; border: 1px solid rgba(255,92,138,.3); border-radius: 14px; color: #ffc4d4; background: rgba(255,92,138,.10); }

.players-panel { max-width: 960px; margin: 0 auto; }
.invite-code { padding: 8px 12px; color: var(--violet); background: rgba(155,123,255,.11); }
.player-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 12px; }
.player-card { min-height: 194px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; border: 1px solid var(--border); border-radius: 20px; background: rgba(255,255,255,.035); text-align: center; }
.player-card.ready { border-color: rgba(92,225,164,.45); background: rgba(92,225,164,.075); }
.player-card.empty { opacity: .45; border-style: dashed; }
.avatar { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 18px; color: #171323; background: var(--yellow); font-weight: 900; font-size: 1.1rem; transform: rotate(-3deg); }
.player-card:nth-child(2) .avatar { background: var(--teal); transform: rotate(3deg); }
.player-card:nth-child(3) .avatar { background: var(--pink); }
.player-card:nth-child(4) .avatar { background: var(--violet); transform: rotate(3deg); }
.ready-status { color: var(--muted); font-size: .78rem; }
.ready .ready-status { color: var(--green); font-weight: 900; }
.host-badge { padding: 4px 8px; color: var(--yellow); background: rgba(255,212,59,.09); font-size: .6rem; }
.waiting-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.host-hint, .start-hint { color: var(--muted); font-size: .82rem; }
.start-hint { margin: 14px 0 0; text-align: center; }
.game-placeholder { display: grid; justify-items: center; max-width: 760px; margin: 0 auto; text-align: center; }
.game-placeholder .number-row { margin: 0 0 34px; }
.game-placeholder h1 { font-size: clamp(2.5rem, 5vw, 4.4rem); }
.lobby-chat { margin-top: 24px; padding: 24px; }.chat-count { color: var(--muted); font-size: .72rem; }.chat-feed { max-height: 260px; display: flex; flex-direction: column; gap: 8px; overflow-y: auto; padding: 4px; }.chat-feed > p { margin: 18px 0; text-align: center; }.chat-message { max-width: 80%; display: grid; gap: 2px; align-self: flex-start; padding: 9px 13px; border-radius: 14px 14px 14px 4px; background: rgba(255,255,255,.07); }.chat-message.mine { align-self: flex-end; border-radius: 14px 14px 4px 14px; background: rgba(155,123,255,.18); }.chat-message strong { color: var(--teal); font-size: .68rem; }.chat-message span { overflow-wrap: anywhere; }.chat-compose { display: grid; grid-template-columns: 1fr auto; gap: 9px; margin-top: 14px; }.chat-retention { display: block; margin-top: 10px; color: var(--muted); text-align: center; font-size: .65rem; }
.lobby-players { position: sticky; top: 18px; padding: 22px; }
.online-heading { display: flex; align-items: center; gap: 11px; padding-bottom: 17px; border-bottom: 1px solid var(--border); }
.online-heading > div { display: grid; gap: 2px; }.online-heading small { color: var(--muted); font-size: .7rem; }.online-dot { width: 11px; height: 11px; flex: 0 0 auto; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 6px rgba(92,225,164,.11); }
.online-list { display: grid; gap: 9px; margin-top: 16px; }.online-player { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 9px; }.online-player strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .85rem; }.online-player em { color: var(--teal); font-size: .62rem; font-style: normal; font-weight: 900; text-transform: uppercase; }.online-avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: #171323; background: var(--yellow); font-size: .67rem; font-weight: 1000; }

.rules-trigger { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; border: 1px solid rgba(255,255,255,.15); border-radius: 13px; padding: 0 13px; color: var(--ink); background: rgba(36,32,62,.92); cursor: pointer; font-size: .76rem; font-weight: 900; }
.rules-trigger:hover { border-color: var(--yellow); transform: translateY(-1px); }.rules-trigger svg { width: 20px; height: 20px; fill: none; stroke: var(--yellow); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.rules-backdrop { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(5,4,18,.78); backdrop-filter: blur(9px); }
.rules-modal { width: min(900px, 100%); max-height: min(860px, calc(100vh - 40px)); overflow-y: auto; border: 1px solid rgba(255,255,255,.15); border-radius: 28px; background: linear-gradient(145deg, #292443, #171429); box-shadow: 0 35px 100px rgba(0,0,0,.55); }
.rules-header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 28px 20px; border-bottom: 1px solid var(--border); background: rgba(31,27,53,.94); backdrop-filter: blur(14px); }.rules-header h2 { margin: 0; font-size: clamp(1.55rem, 4vw, 2.3rem); }.rules-close { width: 42px; height: 42px; flex: 0 0 auto; border: 1px solid var(--border); border-radius: 50%; color: var(--ink); background: rgba(255,255,255,.06); cursor: pointer; font-size: 1.8rem; line-height: 1; }.rules-close:hover { border-color: var(--pink); background: rgba(255,92,138,.12); }
.rules-content { display: grid; gap: 18px; padding: 26px 28px 30px; }.rules-content h3 { margin: 0 0 7px; font-size: 1rem; }.rules-content p { margin: 0; font-size: .86rem; line-height: 1.55; }.rules-goal { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 17px; padding: 19px; border: 1px solid rgba(255,212,59,.23); border-radius: 18px; background: rgba(255,212,59,.08); }.rules-number { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: #171323; background: var(--yellow); font-size: 1rem; font-weight: 1000; transform: rotate(-4deg); }.rules-columns { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }.rules-columns section { position: relative; min-height: 155px; padding: 19px 18px 18px 67px; border: 1px solid var(--border); border-radius: 17px; background: rgba(255,255,255,.035); }.rules-columns .rules-number { position: absolute; top: 18px; left: 17px; background: var(--teal); }.rules-columns section:nth-child(2) .rules-number { background: var(--pink); }.rules-columns section:nth-child(3) .rules-number { background: var(--violet); }.rules-columns section:nth-child(4) .rules-number { background: var(--blue); }.rules-note { padding: 18px; border-left: 4px solid var(--violet); border-radius: 4px 15px 15px 4px; background: rgba(155,123,255,.09); }.rules-finish { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.rules-finish > div { padding: 18px; border-radius: 16px; background: rgba(8,7,19,.34); }.rules-finish > div:first-child h3 { color: var(--yellow); }.rules-finish > div:last-child h3 { color: var(--teal); }
.rules-note.hard-rule { border-left-color: var(--pink); background: rgba(255,92,138,.08); }.rules-note.hard-rule h3 { color: var(--pink); }

select.text-input { appearance: auto; }
.game-screen { width: min(1500px, 100%); margin: 0 auto; }
.game-topline { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; margin-bottom: 20px; text-align: center; }
.game-topline .back-link { justify-self: start; float: none; }
.game-topline h1 { margin: 0; font-size: clamp(1.8rem, 4vw, 3.2rem); }
.timer { width: 82px; height: 82px; display: grid; place-content: center; justify-self: end; border: 3px solid var(--teal); border-radius: 50%; background: rgba(48,213,200,.08); line-height: 1; }
.timer span { font-size: 1.8rem; font-weight: 1000; }
.timer small { margin-top: 3px; color: var(--muted); font-size: .62rem; text-transform: uppercase; }
.timer.urgent { border-color: var(--pink); animation: pulse .7s infinite alternate; }
@keyframes pulse { to { transform: scale(1.07); box-shadow: 0 0 28px rgba(255,92,138,.35); } }
.event-banner { margin-bottom: 16px; padding: 12px 18px; border: 1px solid rgba(155,123,255,.25); border-radius: 14px; color: #ded7ff; background: rgba(155,123,255,.09); text-align: center; font-weight: 800; }
.opponents-strip { display: flex; gap: 12px; margin-bottom: 18px; overflow-x: auto; padding: 2px 2px 8px; }
.opponent { min-width: 300px; max-width: min(720px, 90vw); padding: 12px 14px; border: 1px solid var(--border); border-radius: 16px; background: rgba(28,25,48,.76); }
.opponent.eliminated { opacity: .42; filter: grayscale(.6); }
.opponent-racks { display: flex; align-items: flex-start; gap: 10px; margin-top: 8px; overflow-x: auto; padding-bottom: 4px; }.mini-rack { display: flex; flex: 0 0 auto; gap: 5px; }.played-separator { width: 2px; min-height: 54px; flex: 0 0 2px; border-radius: 2px; background: rgba(255,255,255,.18); }.played-clues { display: flex; flex: 0 0 auto; gap: 6px; }.opponent-clue { display: grid; justify-items: center; gap: 3px; }.opponent-clue > span { color: var(--muted); font-size: .58rem; font-weight: 1000; white-space: nowrap; }
.game-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.table-zone, .deduction-zone { padding: clamp(20px, 3vw, 32px); }
.turn-heading { display: flex; justify-content: space-between; align-items: center; }
.instruction { margin-bottom: 12px; color: var(--ink); font-weight: 800; }
.backs-row, .market-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.tile-back { width: 72px; height: 94px; border: 0; border-radius: 13px; color: #171323; box-shadow: 0 10px 22px rgba(0,0,0,.28), inset 0 -5px 0 rgba(0,0,0,.15); cursor: pointer; font-weight: 1000; font-size: 1.2rem; transition: transform .18s, filter .18s; }
button.tile-back:hover { transform: translateY(-5px) rotate(2deg); filter: brightness(1.08); }
button.tile-back:disabled { opacity: .22; filter: grayscale(.75); cursor: not-allowed; }
.tile-back.small { width: 58px; height: 78px; display: grid; place-items: center; cursor: default; font-size: .9rem; }
.tile-hidden { color: var(--ink); background: linear-gradient(145deg, #4b4860, #2a273b); box-shadow: 0 10px 22px rgba(0,0,0,.28), inset 0 -5px 0 rgba(0,0,0,.18); }
.market-title { margin: 28px 0 12px; text-align: center; color: var(--muted); font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; }
.reserve-empty-hint { margin: -4px 0 12px; color: var(--yellow); text-align: center; font-size: .78rem; font-weight: 800; }
.tile-button { border: 0; padding: 0; border-radius: 14px; background: transparent; cursor: pointer; transition: transform .18s, filter .18s; }
.tile-button:hover:not(:disabled), .tile-button.selected { transform: translateY(-7px); filter: drop-shadow(0 0 13px rgba(255,255,255,.28)); }
.tile-button.selected { outline: 3px solid white; outline-offset: 4px; }
.tile-button:disabled { cursor: default; }
.game-tile { width: 72px; height: 94px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 13px; color: #171323; box-shadow: 0 10px 22px rgba(0,0,0,.28), inset 0 -5px 0 rgba(0,0,0,.15); }
.game-tile b { font-size: 1.75rem; line-height: 1; }
.game-tile small { margin-top: 9px; letter-spacing: 2px; font-size: .62rem; }
.game-tile.mini { width: 38px; height: 50px; border-radius: 7px; box-shadow: inset 0 -3px 0 rgba(0,0,0,.14); }
.game-tile.mini b { font-size: .95rem; }.game-tile.mini small { margin-top: 4px; font-size: .38rem; }
.clue-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 26px; }
.clue-button { min-height: 104px; display: grid; grid-template-columns: 70px 1fr; grid-template-rows: 1fr 1fr; align-items: center; text-align: left; border: 1px solid var(--border); border-radius: 18px; padding: 14px; background: rgba(255,255,255,.045); cursor: pointer; }
.clue-button:hover:not(:disabled), .clue-button.active { border-color: var(--teal); background: rgba(48,213,200,.09); }
.clue-button:disabled { opacity: .35; cursor: not-allowed; }.clue-button strong { align-self: end; font-size: 1.05rem; }.clue-button small { align-self: start; color: var(--muted); }
.classify-icon, .compare-icon { grid-row: 1 / 3; display: flex; align-items: center; justify-content: center; gap: 4px; }
.classify-icon i, .classify-icon b, .compare-icon i { display: block; width: 20px; height: 31px; border-radius: 5px; background: var(--violet); box-shadow: inset 0 -3px rgba(0,0,0,.15); }
.classify-icon b { width: 15px; height: 24px; background: var(--yellow); transform: translateY(11px); }
.compare-icon i:first-child { background: var(--pink); }.compare-icon i:last-child { background: var(--blue); transform: translateY(-8px); }
.position-picker { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.position-picker span { width: 100%; color: var(--muted); text-align: center; font-size: .8rem; }
.position-picker button { width: 42px; height: 42px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); background: var(--surface-2); cursor: pointer; font-weight: 900; }
.position-picker button:hover { border-color: var(--yellow); }
.own-rack-wrap { margin-top: 30px; padding: 18px; border-radius: 18px; background: rgba(8,7,19,.35); }
.rack-arrow { display: block; margin-bottom: 10px; color: var(--muted); text-align: center; font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; }
.classification-row { display: grid; grid-template-columns: minmax(30px,.65fr) repeat(5, minmax(48px,1fr) minmax(30px,.65fr)); align-items: start; gap: 5px; overflow-x: auto; padding: 4px; }
.classification-slot { min-width: 30px; min-height: 82px; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 5px 2px; border: 1px dashed rgba(255,255,255,.14); border-radius: 10px; }
.secret-position { min-width: 48px; display: grid; justify-items: center; gap: 5px; }.secret-position > span { color: var(--muted); font-size: .68rem; font-weight: 900; }
.compare-stack { width: 100%; display: grid; gap: 3px; }.compare-chip { padding: 3px; border-radius: 5px; color: #10251e; background: var(--green); text-align: center; font-size: .6rem; font-weight: 1000; }.compare-chip.no { color: #35111b; background: #ff91ad; transform: rotate(-3deg); }
.clue-history { margin-top: 24px; }.clue-history h3 { font-size: .95rem; }.clue-line { display: flex; align-items: center; gap: 12px; margin-top: 8px; padding: 8px; border-radius: 12px; background: rgba(255,255,255,.035); font-size: .82rem; }
.deduction-zone { position: static; }.deduction-zone h2 { margin-bottom: 4px; }.deduction-zone > p { margin-bottom: 12px; font-size: .78rem; }
.guess-only-notice { display: grid; justify-items: center; gap: 5px; margin: 26px 0; padding: 20px; border: 1px solid rgba(255,212,59,.28); border-radius: 16px; background: rgba(255,212,59,.08); text-align: center; }.guess-only-notice span { color: var(--muted); font-size: .82rem; }
.deduction-heading { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin-bottom: 6px; }.layout-switch { display: flex; padding: 3px; border-radius: 10px; background: rgba(8,7,19,.45); }.layout-switch button { min-height: 30px; border: 0; border-radius: 7px; padding: 0 8px; color: var(--muted); background: transparent; cursor: pointer; font-size: .62rem; font-weight: 900; }.layout-switch button.active { color: #171323; background: var(--teal); }
.deduction-grid { display: grid; gap: 4px; overflow-x: visible; padding: 4px 3px 8px; }
.deduction-grid.by-color { grid-template-rows: repeat(5, minmax(34px, 1fr)); grid-auto-flow: column; grid-auto-columns: minmax(24px, 1fr); }
.deduction-grid.by-fifteen { grid-template-columns: repeat(15, minmax(24px, 1fr)); }
.deduction-number { min-width: 31px; min-height: 34px; position: relative; display: grid; place-content: center; gap: 1px; border: 0; border-radius: 6px; color: #171323; cursor: pointer; font-size: clamp(.58rem, .9vw, .75rem); font-weight: 1000; line-height: 1; }
.deduction-number b { font-size: inherit; }.deduction-number small { min-height: 7px; font-size: .38rem; letter-spacing: 1px; }
.deduction-number.excluded::after { content: ""; position: absolute; left: 4px; right: 4px; top: 50%; height: 3px; border-radius: 2px; background: #171323; transform: rotate(-35deg); }
.deduction-number.excluded { opacity: .38; }.deduction-number.candidate { outline: 3px solid white; outline-offset: 1px; transform: scale(1.08); z-index: 1; }
.reset-notes { display: block; margin: 10px auto 0; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: .72rem; text-decoration: underline; }
.guess-box { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--border); }.guess-box h3 { margin: 0 0 4px; font-size: 1rem; }.guess-order { margin: 0 0 10px; color: var(--muted); font-size: .72rem; }.guess-box > small { display: block; margin-top: 9px; color: var(--muted); text-align: center; }
.guess-inputs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }.guess-field { display: grid; gap: 4px; text-align: center; }.guess-field span { overflow: hidden; color: var(--muted); font-size: .55rem; text-overflow: ellipsis; }.guess-inputs input { min-width: 0; width: 100%; height: 43px; border: 1px solid rgba(255,255,255,.18); border-radius: 9px; color: #171323; text-align: center; font-weight: 1000; }
.guess-color-pink { background: #ffb7ca; }.guess-color-yellow { background: #ffe99a; }.guess-color-teal { background: #9cebe5; }.guess-color-violet { background: #c9baff; }.guess-color-blue { background: #a9ceff; }.guess-color-hidden { color: var(--ink) !important; background: linear-gradient(145deg, #55516a, #302c42); }
.end-panel { max-width: 1180px; margin: 50px auto; text-align: center; }.end-symbol { color: var(--yellow); font-size: 4rem; }.end-panel .market-row { margin: 20px 0 28px; }
.final-deduction { margin: 30px 0 26px; padding: 22px; border: 1px solid var(--border); border-radius: 20px; background: rgba(8,7,19,.28); text-align: left; }.final-deduction .deduction-heading { margin-bottom: 14px; }.final-deduction h3 { margin: 0; font-size: 1.15rem; }.deduction-grid.readonly .deduction-number { cursor: default; }.readonly-note { display: block; margin-top: 10px; color: var(--muted); text-align: center; font-size: .7rem; }
.tile-pink { background: var(--pink); }.tile-yellow { background: var(--yellow); }.tile-teal { background: var(--teal); }.tile-violet { background: var(--violet); }.tile-blue { background: var(--blue); }

@media (max-width: 800px) {
    .welcome-grid, .lobby-grid { grid-template-columns: 1fr; }
    .lobby-overview { grid-template-columns: 1fr; }
    .lobby-players { position: static; order: 2; }
    .online-list { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
    .game-layout { grid-template-columns: 1fr; }
    .deduction-zone { position: static; }
    .lobby-header { align-items: start; flex-direction: column; }
}

@media (max-width: 520px) {
    .main-content { width: min(100% - 24px, 1180px); padding-top: 32px; }
    .topbar { padding: 0 14px; }
    .prototype-pill { display: none; }
    .panel { padding: 22px; border-radius: 22px; }
    .player-grid { grid-template-columns: repeat(2, 1fr); }
    .player-card { min-height: 142px; }
    .room-row { align-items: stretch; flex-wrap: wrap; }
    .room-row .button { width: 100%; }
    .back-link { float: none; display: block; margin-bottom: 22px; }
    .game-topline { grid-template-columns: 1fr auto; text-align: left; }.game-topline .back-link { display: none; }.timer { width: 64px; height: 64px; }.timer span { font-size: 1.35rem; }
    .opponents-strip { display: grid; grid-template-columns: minmax(0, 1fr); overflow-x: visible; }
    .opponent { width: 100%; min-width: 0; max-width: none; }
    .clue-actions { grid-template-columns: 1fr; }.tile-back.small { width: 48px; height: 66px; }.classification-row { min-width: 650px; }.own-rack-wrap { overflow-x: auto; }.deduction-grid { gap: 3px; overflow-x: auto; }.deduction-grid.by-color { grid-auto-columns: minmax(31px, 1fr); }.deduction-grid.by-fifteen { grid-template-columns: repeat(15, minmax(31px, 1fr)); }.deduction-number { font-size: .56rem; }.deduction-heading { align-items: start; flex-direction: column; }
    .chat-compose { grid-template-columns: 1fr; }.chat-compose .button { width: 100%; }
    .topbar { min-height: 68px; padding: 0 12px; }.brand { gap: 8px; font-size: 1rem; }.brand-dot { width: 36px; height: 36px; }.topbar-actions { gap: 6px; }.rules-trigger { min-height: 38px; padding: 0 9px; font-size: .67rem; }.rules-trigger svg { width: 17px; height: 17px; }
    .rules-backdrop { padding: 8px; }.rules-modal { max-height: calc(100vh - 16px); border-radius: 21px; }.rules-header { padding: 20px; }.rules-content { padding: 20px; }.rules-columns, .rules-finish { grid-template-columns: 1fr; }.rules-columns section { min-height: 0; }
}
