:root{color:#1e293b;background:#f6f4ee;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.4}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{min-height:48px;border:2px solid #1e293b;border-radius:8px;background:#fff;color:#1e293b;font-weight:800;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}input{min-height:52px;width:100%;border:2px solid #94a3b8;border-radius:8px;padding:0 14px;font-size:1.08rem}.app-shell{min-height:100vh;padding:20px}.top-bar,.room-strip,.game-layout,.welcome-panel,.side-panel,.turn-card,.dice-card{border:2px solid #1e293b;background:#fffefb;border-radius:10px;box-shadow:0 10px #1e293b1f}.top-bar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;margin-bottom:18px}h1,h2,p{margin:0}h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1;letter-spacing:0}h2{font-size:1.25rem}.top-bar p,.welcome-panel p,.turn-card p{color:#475569;font-size:1.05rem}.sound-button{min-width:130px}.welcome-panel{max-width:620px;margin:44px auto;padding:28px;display:grid;gap:18px}.welcome-panel h2{font-size:2rem}label{display:grid;gap:8px;font-weight:800}.join-row{display:grid;grid-template-columns:1fr auto;gap:12px}.join-row:first-of-type{display:block}.primary-action{width:100%;background:#0f766e;color:#fff;border-color:#134e4a;font-size:1.15rem}.start-button{width:100%;background:#facc15;color:#422006;border-color:#854d0e}.game-layout{display:grid;grid-template-columns:minmax(360px,1fr) 360px;gap:18px;padding:18px}.board-section{display:grid;align-content:start;gap:14px}.room-strip{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;box-shadow:none}.room-strip span,.turn-card span{display:block;font-size:.9rem;font-weight:900;text-transform:uppercase;color:#64748b}.room-strip strong{font-size:2rem;letter-spacing:.08em}.side-panel{display:grid;gap:14px;padding:14px;box-shadow:none}.turn-card,.dice-card{padding:16px;display:grid;gap:12px;box-shadow:none}.turn-card strong{font-size:2.2rem;line-height:1}.dice-face{display:grid;place-items:center;width:132px;height:132px;margin:0 auto;border:4px solid #1e293b;border-radius:18px;background:#fff;font-size:4rem;font-weight:900;box-shadow:inset 0 -8px #e2e8f0}.player-list,.game-log{display:grid;gap:8px;margin:10px 0 0;padding:0}.player-row{display:grid;grid-template-columns:20px 72px 1fr;gap:10px;align-items:center;min-height:42px;padding:8px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.color-dot{width:18px;height:18px;border-radius:50%;border:2px solid #1e293b}.game-log{list-style-position:inside}.game-log li{min-height:34px;padding:7px 9px;border-radius:8px;background:#f8fafc}.notice{padding:10px 12px;border-radius:8px;background:#fff7ed;color:#9a3412;font-weight:800}.board-wrap{position:relative;width:min(100%,760px);aspect-ratio:1;margin:0 auto}.board-svg{width:100%;height:100%;display:block;border:3px solid #1e293b;border-radius:14px;background:#fff}.path-cell,.safe-cell,.home-cell{stroke:#1e293b;stroke-width:.8}.path-cell{fill:#fff}.safe-cell{fill:#e0f2fe}.yard.red,.home-cell.red,.start-dot.red,.color-dot.red,.token.red{fill:#ef4444;background:#ef4444}.yard.blue,.home-cell.blue,.start-dot.blue,.color-dot.blue,.token.blue{fill:#2563eb;background:#2563eb}.yard.green,.home-cell.green,.start-dot.green,.color-dot.green,.token.green{fill:#16a34a;background:#16a34a}.yard.yellow,.home-cell.yellow,.start-dot.yellow,.color-dot.yellow,.token.yellow{fill:#facc15;background:#facc15}.yard{opacity:.24}.start-dot{stroke:#1e293b;stroke-width:1}.token{position:absolute;z-index:2;width:clamp(30px,5vw,44px);height:clamp(30px,5vw,44px);min-height:0;transform:translate(-50%,-50%);border:3px solid #1e293b;border-radius:50%;color:#fff;font-weight:900;box-shadow:0 4px #1e293b40}.token.yellow{color:#422006}.token.can-move{outline:5px solid #14b8a6;animation:pulse 1.1s ease-in-out infinite}.player-text.red{color:#dc2626}.player-text.blue{color:#1d4ed8}.player-text.green{color:#15803d}.player-text.yellow{color:#a16207}@keyframes pulse{50%{transform:translate(-50%,-50%) scale(1.12)}}@media(max-width:900px){.app-shell{padding:10px}.top-bar,.game-layout,.room-strip{grid-template-columns:1fr;flex-direction:column;align-items:stretch}.game-layout{display:flex;flex-direction:column;padding:10px}.side-panel{order:-1}.join-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.token.can-move{animation:none}}
