/* GP029: native-size item readability and a single bottom-edge skill strip. */
.flow29-setup{margin:10px 0 12px;padding:10px 12px;border:1px solid #446a92;border-left:3px solid #d02840;border-radius:7px;background:#0b2542}
.flow29-setup label{display:flex;gap:10px;align-items:center;cursor:pointer;min-height:44px}.flow29-setup input{width:22px;height:22px;accent-color:#e5bf68;flex-shrink:0}.flow29-setup b{font-size:12px;letter-spacing:1px;color:#f6d784}.flow29-setup small{display:block;font-size:12px;line-height:1.45;color:#d2e4f8;margin-top:3px}.flow29-setup p{font-size:11px;line-height:1.5;margin:4px 0 0;color:#bed0e5}.flow29-setup p:empty{display:none}.flow29-help{font-size:13px;line-height:1.6;border-top:1px solid #456689;padding:12px 0}.flow29-help summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:#f3d286}.flow29-help p{color:#ccddf0}
body.gp29-racing #item-slot{border:1px solid #7899be;background:#071d38;color:#e9f4ff;border-radius:8px;min-height:62px;padding:8px 10px;line-height:1.3;box-shadow:none;max-width:100%;touch-action:manipulation}body.gp29-racing #item-slot.ready{border-left:4px solid #f2ce79;background:#123355}body.gp29-racing #item-slot[data-weapon=tape]{border-left-color:#ed7b85}body.gp29-racing #item-slot[data-weapon=appeal]{border-left-color:#9bd2ff}body.gp29-racing #item-slot>span{font-size:9px;letter-spacing:1px}body.gp29-racing #item-slot b{font-size:14px;letter-spacing:0;line-height:1.25;margin:4px 0;color:#f5d992;white-space:normal}body.gp29-racing #item-slot small{font-size:10px;letter-spacing:0;line-height:1.3;white-space:normal;color:#e2ebf7}
body.gp29-feedback :is(#toast,#fl-feedback,#commentary-caption){display:none!important}
#flow29-strip{position:absolute;pointer-events:none;z-index:4;left:50%;bottom:22px;transform:translateX(-50%);width:330px;max-width:calc(100% - 32px);padding:8px 12px;background:#081d36ee;border:1px solid #688bae;border-left:3px solid #c62839;border-radius:7px;box-sizing:border-box;color:#f1f5fe;font:700 12px/1.3 Arial,sans-serif}
#flow29-strip p{font-size:12px;line-height:1.35;margin:0;text-align:center}.flow29-meter{margin-bottom:5px}.flow29-meter>b{font:700 10px Arial,sans-serif;letter-spacing:.5px}.flow29-meter>span{float:right;color:#ffe08c;font-size:11px}.flow29-meter>div{height:4px;background:#274564;margin-top:6px;border-radius:3px;overflow:hidden}.flow29-meter i{height:100%;display:block;width:0;background:linear-gradient(90deg,#79b7e8,#f5db9b);transition:none}
#flow29-target{position:absolute;pointer-events:none;z-index:2;width:38px;height:38px;transform:translate(-50%,-50%);border:2px dashed #f4db8bcc;border-radius:50%;background:transparent;display:grid;place-items:center;color:#f4db8b;font:700 20px Arial,sans-serif;text-shadow:0 1px 3px #000}#flow29-target[data-kind=appeal]{border-color:#92c9f6;color:#92c9f6}#flow29-target span{line-height:1}
#flow29-result{margin:14px 0;border:1px solid #486c96;border-left:4px solid #d32c43;border-radius:6px;padding:13px 16px;background:#0b2946}.flow29-recap-title>span{display:block;color:#b3d3ec;font-size:10px;letter-spacing:1px}.flow29-recap-title>b{display:block;color:#f4d48a;font-size:18px;line-height:1.3;margin:5px 0}#flow29-statline,#flow29-best{font-size:12px;color:#e0eafa;line-height:1.6}#flow29-best{margin:6px 0 0}#flow29-best:empty{display:none}
#flow29-more{margin-top:14px;border-top:1px solid #557896;padding-top:5px}#flow29-more>summary{padding:12px 0;min-height:44px;cursor:pointer;color:#d2e4f4;font:700 13px Arial,sans-serif}.flow29-more-actions{display:flex;flex-wrap:wrap;gap:8px}.flow29-more-actions button{min-height:44px;flex:1 1 150px}
body.gp29-racing #result .result-modal{max-height:none}body.gp29-racing #result .modal-buttons{gap:10px}body.gp29-racing #result .modal-buttons>.primary{min-height:48px}body.gp29-racing #result-stats{margin:14px 0}
body.touch #flow29-strip{bottom:max(10px,env(safe-area-inset-bottom));width:230px;font-size:10px;padding:6px 8px}body.touch #flow29-strip p{font-size:10px}body.touch.sv27-layout #flow29-strip{left:calc(var(--sv27-middle-x) + var(--sv27-middle-w)/2);width:calc(var(--sv27-middle-w) - 14px);max-width:260px}body.touch.sv27-layout #flow29-strip .flow29-meter>b{font-size:9px}body.touch.sv27-layout #flow29-strip .flow29-meter>span{float:none;display:block;font-size:9px}
body.touch.gp29-racing #pulse-button{font-size:23px}body.touch.gp29-racing #pulse-ready{font-size:9px;line-height:1.15;letter-spacing:0}body.touch.gp29-racing #item-slot b{font-size:12px}body.touch.gp29-racing #item-slot small{font-size:10px}
@media(orientation:landscape) and (max-height:480px){.flow29-setup{margin:6px 0;padding:7px 9px}.flow29-setup label{min-height:40px}.flow29-setup small,.flow29-setup p{font-size:10px}#flow29-strip{bottom:10px}.flow29-recap-title>b{font-size:15px}#flow29-result{padding:10px 12px}}
@media(orientation:portrait){#flow29-strip{display:none!important}#flow29-result{padding:10px 12px}.flow29-recap-title>b{font-size:16px}}
@media(prefers-reduced-motion:reduce){#flow29-strip *,#flow29-target{animation:none!important;transition:none!important}}

/* Keep ready text horizontal and let feedback occupy a reserved telemetry row;
   it must never sit over the ITEM target or raised touch groups. */
body.gp29-racing #item-slot{display:block}
body.gp29-racing #item-slot>span{display:block;writing-mode:horizontal-tb;transform:none;grid-row:auto;font-size:9px;line-height:1.2}
body.gp29-racing #item-slot b,body.gp29-racing #item-slot small{display:block}
body #race-telemetry #flow29-strip{position:relative;grid-column:1/-1;left:auto;right:auto;top:auto;bottom:auto;transform:none;width:100%;max-width:none;margin:3px 0 0;padding:7px 8px}
#race-telemetry #flow29-strip p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}

/* Results should lead to another run, not a wall of tiny telemetry. */
body.gp29-racing #result .result-modal h2{font-size:clamp(28px,4vw,38px);line-height:1.08;margin:12px 0}
body.gp29-racing #result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 12px;margin:14px 0}
body.gp29-racing #result-stats b{color:#f3d28b;font-size:24px;line-height:1.25;letter-spacing:-.4px}
body.gp29-racing #result-stats span{font-size:10px;letter-spacing:.6px;color:#d2e1f1}
body.gp29-racing #result-loadout{font-size:11px;letter-spacing:.4px;line-height:1.55;padding:8px 10px}
