/* Patch 011: iPad/touch-friendly entry + on-screen keypads */
:root{--bm-gold:#ffc72c;--bm-black:#111827;--bm-soft:#f6f7fb;--bm-border:#d9dee8;--bm-green:#178a45;--bm-red:#b91c1c}
body{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.bm-wrap,.wrap{max-width:1400px;margin:auto;padding:14px}
.bm-card,.card{border-radius:18px!important;box-shadow:0 10px 28px rgba(17,24,39,.08)!important}
button,.btn,.bm-btn,.mark-chip{min-height:44px;border-radius:12px!important;font-weight:800;touch-action:manipulation}
input,select{font-size:22px!important;min-height:54px;border-radius:14px!important;border:2px solid var(--bm-border)!important;padding:10px 12px!important;background:#fff!important}
.field-control label,.form-row label{font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#4b5563}
.entry-row{display:grid!important;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:end}
.field-control input,.time-entry{width:100%;font-weight:900;text-align:center;font-size:30px!important}
.queue{gap:12px!important}.queue-box{border-radius:18px!important;padding:18px!important}.queue-box.now{outline:4px solid var(--bm-gold)}
.queue-label{font-size:14px!important;font-weight:1000!important;text-transform:uppercase;letter-spacing:.05em}.queue-name{font-size:30px!important;font-weight:1000!important;line-height:1.05}.queue-school{font-size:18px!important;margin-top:4px}
.action-row{gap:10px!important;flex-wrap:wrap}.attempts th,.attempts td{font-size:16px;padding:12px 10px!important}.mark-chip{display:inline-flex;align-items:center;justify-content:center;min-width:64px}
.bm-ipad-note{margin-top:10px;padding:10px 12px;background:#fff8dc;border:1px solid #f3d26b;border-radius:14px;font-weight:700;color:#5a4300}
/* Running screen touch cards */
.lane-card{padding:14px!important;border-radius:18px!important;margin-bottom:12px!important;gap:14px!important}.lane-num{font-size:26px!important;font-weight:1000!important;min-width:48px!important}.athlete-name{font-size:22px!important;font-weight:1000!important}.finish-buttons{gap:7px!important}.btn.small{min-width:44px!important;padding:9px 12px!important}
/* On-screen keypad */
.bm-keypad{position:fixed;right:16px;bottom:16px;width:min(390px,calc(100vw - 32px));background:#0f172a;color:#fff;border-radius:24px;box-shadow:0 24px 70px rgba(0,0,0,.35);z-index:9999;padding:14px;display:none;user-select:none}.bm-keypad.show{display:block}.bm-keypad-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-weight:1000}.bm-keypad-title{font-size:16px;opacity:.9}.bm-keypad-close{background:#334155;color:#fff;border:0;border-radius:12px;min-height:40px;padding:0 14px}.bm-keypad-display{background:#fff;color:#111827;border-radius:16px;min-height:52px;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:1000;margin-bottom:12px;letter-spacing:.03em}.bm-keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bm-keypad button{font-size:24px;min-height:58px;border:0;background:#e5e7eb;color:#111827}.bm-keypad button:active{transform:scale(.97)}.bm-keypad .gold{background:var(--bm-gold)}.bm-keypad .red{background:#ef4444;color:#fff}.bm-keypad .green{background:#22c55e;color:#052e16}.bm-keypad .wide{grid-column:span 2}.bm-keypad-help{font-size:12px;color:#cbd5e1;margin-top:10px;line-height:1.35}
.bm-keypad-inline{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.bm-keypad-inline button{font-size:22px;min-height:56px;background:#f3f4f6;border:1px solid #d1d5db}.bm-keypad-inline .gold{background:var(--bm-gold)}.bm-keypad-inline .red{background:#fee2e2}.bm-keypad-inline .green{background:#dcfce7}
@media (max-width:950px){.bm-grid,.grid.two{grid-template-columns:1fr!important}.entry-row{grid-template-columns:1fr 1fr!important}.entry-row .field-control:nth-child(3){grid-column:1/-1}.queue{grid-template-columns:1fr!important}.queue-name{font-size:26px!important}.bm-keypad{left:10px;right:10px;bottom:10px;width:auto}.attempts{display:block;overflow-x:auto;white-space:nowrap}.finish-buttons{display:grid!important;grid-template-columns:repeat(4,1fr)!important;width:100%}.lane-card{grid-template-columns:48px 1fr!important}}
@media (max-width:600px){.bm-wrap,.wrap{padding:8px}.entry-row{grid-template-columns:1fr!important}.action-row .bm-btn,.action-row .btn{width:100%}.queue-name{font-size:24px!important}.bm-keypad button{min-height:54px}.bm-keypad-display{font-size:26px}.finish-buttons{grid-template-columns:repeat(2,1fr)!important}}
