:root{--pp-bg: #0e0f14;--pp-bg-elevated: #171923;--pp-bg-card: #1c1f2e;--pp-border: #2a2e42;--pp-text: #f2f3f7;--pp-text-dim: #9aa0b4;--pp-accent: #7c5cff;--pp-accent-hover: #8f72ff;--pp-success: #3ecf8e;--pp-danger: #ff5d73;--pp-warn: #ffb84d;--pp-radius: 14px;--pp-shadow: 0 8px 30px rgba(0, 0, 0, .35);--pp-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}.pp-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 20px calc(24px + env(safe-area-inset-bottom));box-sizing:border-box;gap:18px;text-align:center;font-family:var(--pp-font)}.pp-screen--wide{justify-content:flex-start;padding-top:32px}.pp-card{background:var(--pp-bg-card);border:1px solid var(--pp-border);border-radius:var(--pp-radius);box-shadow:var(--pp-shadow);padding:24px;width:100%;max-width:420px;box-sizing:border-box;display:flex;flex-direction:column;gap:14px}.pp-card--wide{max-width:720px}.pp-row{display:flex;gap:12px;align-items:center;width:100%}.pp-row--between{justify-content:space-between}.pp-stack{display:flex;flex-direction:column;gap:14px;width:100%}.pp-grow{flex:1}.pp-dim{color:var(--pp-text-dim);font-size:14px;line-height:1.5}.pp-title{font-size:22px;font-weight:700;margin:0;color:var(--pp-text)}.pp-subtitle{font-size:15px;color:var(--pp-text-dim);margin:0}.pp-input{background:var(--pp-bg-elevated);border:1px solid var(--pp-border);border-radius:10px;color:var(--pp-text);font-size:16px;padding:14px 16px;width:100%;box-sizing:border-box;outline:none;font-family:var(--pp-font)}.pp-input:focus{border-color:var(--pp-accent)}.pp-code-input{text-transform:uppercase;letter-spacing:.5em;font-weight:700;text-align:center;font-size:24px}.pp-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:12px;padding:14px 20px;min-height:48px;font-size:16px;font-weight:600;font-family:var(--pp-font);cursor:pointer;transition:background .12s ease,transform 60ms ease,opacity .12s ease;color:var(--pp-text);background:var(--pp-bg-elevated);border:1px solid var(--pp-border);width:100%}.pp-btn:active{transform:scale(.98)}.pp-btn:disabled{opacity:.45;cursor:not-allowed}.pp-btn--primary{background:var(--pp-accent);border-color:var(--pp-accent);color:#fff}.pp-btn--primary:hover:not(:disabled){background:var(--pp-accent-hover)}.pp-btn--danger{background:transparent;border-color:var(--pp-danger);color:var(--pp-danger)}.pp-btn--ghost{background:transparent;border-color:transparent;color:var(--pp-text-dim)}.pp-btn--sm{min-height:36px;padding:8px 14px;font-size:14px;width:auto}.pp-player-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;list-style:none;margin:0;padding:0}.pp-player-chip{display:inline-flex;align-items:center;gap:8px;background:var(--pp-bg-elevated);border:1px solid var(--pp-border);border-radius:999px;padding:6px 14px 6px 6px;font-size:15px;font-weight:500}.pp-player-chip--disconnected{opacity:.5}.pp-avatar{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}.pp-room-code{font-size:44px;font-weight:800;letter-spacing:.35em;color:var(--pp-accent);font-variant-numeric:tabular-nums}.pp-qr-wrap{display:inline-flex;padding:10px;background:#fff;border-radius:12px}.pp-qr-wrap img{display:block;width:180px;height:180px}.pp-spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--pp-border);border-top-color:var(--pp-accent);animation:pp-spin .8s linear infinite}@keyframes pp-spin{to{transform:rotate(360deg)}}.pp-badges{display:flex;gap:6px;flex-wrap:wrap}.pp-badge{font-size:12px;font-weight:600;background:var(--pp-bg-elevated);border:1px solid var(--pp-border);color:var(--pp-text-dim);border-radius:999px;padding:4px 10px}body{background:radial-gradient(1200px 600px at 50% -100px,rgba(124,92,255,.14),transparent 60%),var(--pp-bg);color:var(--pp-text);font-family:var(--pp-font);-webkit-font-smoothing:antialiased}.app-logo{font-size:40px;font-weight:800;letter-spacing:-.02em;margin:0}.app-logo span{color:var(--pp-accent)}.app-game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;width:100%;max-width:720px}.app-game-card{display:flex;flex-direction:column;gap:8px;text-align:left;background:var(--pp-bg-card);border:2px solid var(--pp-border);border-radius:var(--pp-radius);padding:14px;cursor:pointer;transition:border-color .12s ease;font-family:var(--pp-font);color:var(--pp-text)}.app-game-card:hover{border-color:var(--pp-accent-hover)}.app-game-card--selected{border-color:var(--pp-accent);background:#7c5cff1a}.app-game-thumb{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;background:var(--pp-bg-elevated)}.app-game-name{font-weight:700;font-size:15px}.app-game-desc{font-size:12.5px;color:var(--pp-text-dim);line-height:1.4}.app-in-game-banner{display:flex;align-items:center;gap:10px;background:#7c5cff1f;border:1px solid var(--pp-accent);border-radius:10px;padding:10px 14px;font-size:14px;width:100%}
