/* A compact recovery control appears only after an actual image error. */
:root{--media-surface:#fff;--media-ink:#263238;--media-rule:#d8dfe2;--media-shadow:#172c3826;--media-focus:#245e88}
.media-load-host{position:relative}
.p4-map-surface[data-media-error] .p4-map-overlay{visibility:hidden}
.media-load-error{position:absolute;inset:auto 12px 12px;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:var(--media-surface);color:var(--media-ink);border:1px solid var(--media-rule);border-radius:8px;box-shadow:0 2px 12px var(--media-shadow);font:14px/1.5 var(--font-body);text-align:left;cursor:default;touch-action:manipulation}
.media-load-error p{margin:0!important;font:inherit!important;color:inherit!important;letter-spacing:normal!important}
.media-load-error button{flex:none;min-width:88px;min-height:44px;margin:0;padding:8px 12px;border:1px solid var(--red-deep);border-radius:5px;background:var(--red-deep);color:var(--media-surface);font:600 14px/1.4 var(--font-body);cursor:pointer;touch-action:manipulation}
.media-load-error button:active,.media-load-error button.is-active{background:var(--ink);transform:translateY(1px)}
.media-load-error button:focus-visible,.media-load-error button.is-focus{outline:3px solid var(--media-focus);outline-offset:3px}
.media-load-error button:disabled{opacity:.7;cursor:wait}
@media(hover:hover){.media-load-error button:hover{background:var(--ink)}}
.media-load-error button.is-hover{background:var(--ink)}
@media(max-width:360px){.media-load-error{inset:auto 8px 8px;gap:8px;padding:8px;font-size:12px}}
