.ct-roadcam-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;margin:8px 0}
.ct-roadcam-controls input{min-width:0}
.ct-cctv-lista .ct-linha.is-offline{opacity:.48;cursor:not-allowed}
.ct-roadcam-player{position:fixed;right:14px;bottom:calc(env(safe-area-inset-bottom,0px) + 92px);z-index:97;display:flex;flex-direction:column;width:min(460px,calc(100vw - 28px));max-height:min(72dvh,620px);overflow:hidden;border:1px solid var(--ct-line,#2b5963);border-radius:14px;background:#071219;box-shadow:0 16px 42px rgba(0,0,0,.54);color:var(--ct-ink,#d7f5f2)}
.ct-roadcam-player[hidden]{display:none}
.ct-roadcam-player-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 10px 8px 14px;border-bottom:1px solid rgba(137,230,223,.14);background:#0a1c24;touch-action:none;cursor:grab;user-select:none}
.ct-roadcam-player-header:active{cursor:grabbing}
.ct-roadcam-player-heading{display:flex;min-width:0;flex-direction:column;gap:3px}
.ct-roadcam-player-heading strong{overflow:hidden;color:#b9fff5;font:700 12px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;text-overflow:ellipsis;white-space:nowrap}
.ct-roadcam-player-heading small{overflow:hidden;color:#87aaa9;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.ct-roadcam-player-actions{display:flex;flex:none;gap:5px}
.ct-roadcam-player-actions button{width:30px;height:28px;border:1px solid rgba(137,230,223,.24);border-radius:7px;background:#102630;color:#b9fff5;font-size:17px;line-height:1;cursor:pointer}
.ct-roadcam-player-actions button:hover{background:#19424d}
.ct-roadcam-player-body{display:flex;min-height:0;flex-direction:column;gap:8px;overflow-x:hidden;overflow-y:auto;padding:10px}
.ct-roadcam-player-body video,.ct-roadcam-player-body img{display:block;width:100%;max-height:min(48dvh,420px);aspect-ratio:16/9;border:1px solid rgba(137,230,223,.16);border-radius:9px;background:#020608;object-fit:contain}
.ct-roadcam-player-body video[hidden],.ct-roadcam-player-body img[hidden]{display:none}
.ct-roadcam-player-body [data-roadcam-status]{margin:0;color:#8bd8cd;font-size:11px;line-height:1.45}
.ct-roadcam-player-body footer{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#66878a;font-size:10px}
.ct-roadcam-player-body footer a{color:#8fe9dc;text-decoration:underline;text-underline-offset:2px}
.ct-roadcam-player.is-minimized{width:min(340px,calc(100vw - 28px));max-height:52px}
.ct-roadcam-player.is-minimized .ct-roadcam-player-body{display:none}
@media(max-width:820px){
 .ct-roadcam-controls{grid-template-columns:minmax(0,1fr) auto auto}
 .ct-roadcam-player{left:8px;right:8px;bottom:calc(env(safe-area-inset-bottom,0px) + 70px);width:auto;max-height:calc(100dvh - 190px)}
 .ct-roadcam-player-body video,.ct-roadcam-player-body img{max-height:42dvh}
 .ct-roadcam-player.is-minimized{left:auto;right:8px;width:min(320px,calc(100vw - 16px))}
}

/* v2 · informações, tela cheia, modo sem borda, atualizar e ajuste para celular/paisagem */
.ct-roadcam-player-actions{flex-wrap:nowrap}
.ct-roadcam-player-actions button{width:28px;height:28px;font-size:14px}
.ct-roadcam-player-actions button[aria-pressed="true"]{background:#1d5a66;border-color:rgba(185,255,245,.5)}
.ct-roadcam-player-body > button{align-self:flex-start;min-height:30px;padding:0 10px;border:1px solid rgba(137,230,223,.28);border-radius:8px;background:#102630;color:#b9fff5;font:600 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;cursor:pointer}
.ct-roadcam-player-body > button[hidden]{display:none!important}
.ct-roadcam-info{display:block;max-height:55%;overflow:auto;padding:10px 12px;border-bottom:1px solid rgba(137,230,223,.14);background:#0a1c24;color:#d7f5f2;font-size:11px;line-height:1.4}
.ct-roadcam-info[hidden]{display:none}
.ct-roadcam-info dl{margin:0}
.ct-roadcam-info dl div{display:grid;grid-template-columns:118px minmax(0,1fr);gap:8px;padding:4px 0;border-bottom:1px solid rgba(137,230,223,.1)}
.ct-roadcam-info dt{color:#87aaa9}
.ct-roadcam-info dd{margin:0;color:#d7f5f2;overflow-wrap:anywhere}
.ct-roadcam-info p{margin:8px 0 0;color:#66878a;font-size:10px}
.ct-roadcam-player.is-minimized .ct-roadcam-info{display:none}
.ct-roadcam-player.is-expanded{left:8px!important;right:8px!important;top:8px!important;bottom:8px!important;width:auto;max-width:none;max-height:none}
.ct-roadcam-player.is-expanded .ct-roadcam-player-body{overflow:hidden}
.ct-roadcam-player.is-expanded .ct-roadcam-player-body video,.ct-roadcam-player.is-expanded .ct-roadcam-player-body img{width:100%;max-height:calc(100dvh - 150px)}
.ct-roadcam-player.is-borderless{background:transparent;border-color:transparent;box-shadow:none;overflow:visible}
.ct-roadcam-player.is-borderless .ct-roadcam-player-header{position:absolute;inset:0;z-index:3;min-height:0;padding:0;border:0;background:transparent;pointer-events:none;cursor:default}
.ct-roadcam-player.is-borderless .ct-roadcam-player-heading{position:absolute;top:6px;left:6px;max-width:calc(100% - 160px);padding:6px 9px;border-radius:8px;background:rgba(7,18,25,.62);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);pointer-events:none}
.ct-roadcam-player.is-borderless .ct-roadcam-player-actions{position:absolute;top:6px;right:6px;pointer-events:auto}
.ct-roadcam-player.is-borderless .ct-roadcam-player-actions button{background:rgba(16,38,48,.7);border-color:rgba(137,230,223,.3)}
.ct-roadcam-player.is-borderless .ct-roadcam-player-body{padding:0;gap:0;overflow:visible}
.ct-roadcam-player.is-borderless .ct-roadcam-player-body video,.ct-roadcam-player.is-borderless .ct-roadcam-player-body img{border:0;border-radius:10px}
.ct-roadcam-player.is-borderless .ct-roadcam-player-body footer,.ct-roadcam-player.is-borderless [data-roadcam-status]{display:none}
.ct-roadcam-player.is-borderless .ct-roadcam-info{position:absolute;top:44px;left:6px;right:6px;z-index:4;max-height:70%;border-radius:10px}
@media(max-width:820px){
 .ct-roadcam-player{left:auto;right:8px;bottom:calc(env(safe-area-inset-bottom,0px) + 70px);width:min(264px,calc(100vw - 16px));max-height:none;background:rgba(7,18,25,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
 .ct-roadcam-player-header{min-height:40px;padding:6px 8px 6px 10px;background:rgba(10,28,36,.62)}
 .ct-roadcam-player-heading strong{font-size:11px}
 .ct-roadcam-player-body{padding:6px}
 .ct-roadcam-player-body video,.ct-roadcam-player-body img{max-height:none;aspect-ratio:16/9}
 .ct-roadcam-player.is-minimized{left:auto;right:8px;width:min(230px,calc(100vw - 16px))}
 .ct-roadcam-player.is-expanded{left:6px!important;right:6px!important;top:6px!important;bottom:6px!important}
}
@media(orientation:landscape) and (max-height:520px){
 .ct-roadcam-player:not(.is-expanded){right:10px;bottom:10px;width:min(380px,46vw);max-height:calc(100dvh - 20px)}
 .ct-roadcam-player:not(.is-expanded) .ct-roadcam-player-body video,.ct-roadcam-player:not(.is-expanded) .ct-roadcam-player-body img{max-height:none;aspect-ratio:16/9}
 .ct-roadcam-player-header{min-height:36px}
}

/* v3 · correção de posição, aviso e botão "Ir até a câmera" */
.ct-roadcam-player-actions button[hidden]{display:none!important}
.ct-roadcam-hint{position:absolute;left:10px;right:10px;bottom:10px;z-index:5;padding:8px 10px;border:1px solid rgba(137,230,223,.3);border-radius:9px;background:rgba(7,18,25,.92);color:#b9fff5;font:600 11px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}
.ct-roadcam-hint[hidden]{display:none}
.ct-roadcam-player-body > .ct-roadcam-goto{margin-top:2px}
body.ct-roadcam-corrigindo{cursor:crosshair}

/* v4 · janela da câmera fora dos controles; "Ir até a câmera" no rodapé */
.ct-roadcam-player{top:132px;bottom:auto;right:14px;max-height:max(240px,calc(100dvh - 470px))}
.ct-roadcam-goto{min-height:28px;padding:0 9px;border:1px solid rgba(137,230,223,.28);border-radius:8px;background:#102630;color:#b9fff5;font:600 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;cursor:pointer;white-space:nowrap}
@media(max-width:820px){.ct-roadcam-player{top:112px;bottom:auto;right:8px;left:auto;width:min(264px,calc(100vw - 16px));max-height:max(220px,calc(100dvh - 400px))}}
@media(orientation:landscape) and (max-height:520px){.ct-roadcam-player:not(.is-expanded){top:12px;bottom:auto;right:10px;max-height:calc(100dvh - 24px)}}
