#rallyDialog{width:720px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;border:5px solid #324e62;border-top-color:#db9564;padding:14px;background:#132638;color:#f7e9c6;box-shadow:0 15px 60px #0008;font-family:'DM Mono',monospace}
#rallyDialog::backdrop{background:#08121cd9}
#rallyDialog [hidden]{display:none!important}
#rallyDialog header{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:2px solid #54c9c1;padding-bottom:8px}
#rallyDialog h2{margin:0;font-size:clamp(1rem,3vw,1.5rem);color:#f5c173;letter-spacing:.04em}
#rallyDialog button{min-height:46px;padding:10px 14px;border:2px solid #65879a;background:#203d51;color:#fff0c5;font:700 .9rem 'DM Mono',monospace;cursor:pointer;touch-action:manipulation}
#rallyDialog button:focus-visible{outline:3px solid #f5c173;outline-offset:2px}
#rallyHud{display:flex;justify-content:space-between;gap:8px;padding:10px 0;font-size:.8rem}
#rallyHud b{display:block;font-size:1.1rem;color:#75ddd2}
#rallyCanvas{display:block;width:100%;height:auto;max-height:55dvh;object-fit:contain;background:#172b3b;outline:none}
#rallyTouch{display:flex;justify-content:space-between;gap:20px;margin-top:10px}
#rallyTouch button{width:46%;min-height:60px;touch-action:none;user-select:none;-webkit-user-select:none}
#rallyPanel{padding:18px 6px;text-align:center;line-height:1.5}
#rallyPanel button{margin:8px 4px}
#rallyPanel h3{color:#f5c173}
#rallyPanel .rally-final{font-size:1.6rem;color:#75ddd2;font-weight:bold}
#rallyPanel label{display:block;font-size:.9rem}
#rallyInitials{display:block;width:100px;margin:10px auto;padding:8px;background:#f6e7c5;color:#163145;border:2px solid #ba9061;text-align:center;font:700 24px monospace;text-transform:uppercase}
