*{box-sizing:border-box}.webcams-page,.webcams-admin{width:100%;max-width:1200px;margin:0 auto;padding:4px;color:#233;font-size:.88rem}.webcams-heading{text-align:center;margin:0 0 5px}.webcams-heading h1,.admin-webcam-heading h1{margin:2px 0;color:#164f70;font-size:clamp(1.15rem,3vw,1.4rem)}.webcams-heading p,.admin-webcam-heading p,.webcam-note{margin:3px 0}.webcam-filter{padding:5px;margin:0 0 4px;background:#f3f7f8;border-radius:4px}.webcam-filter select,.webcam-form input,.webcam-form select,.webcam-form textarea{width:100%;padding:5px;border:1px solid #aab9bd;border-radius:3px;font:inherit}.webcam-filter a,.webcam-body a,.admin-webcam-heading a,.webcam-admin-list a{color:#075d91;font-weight:700}.webcam-note{text-align:center;font-size:.78rem;color:#52656a}.webcam-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(275px,1fr));gap:4px}.webcam-card{overflow:hidden;border:1px solid #d5dfe2;border-radius:4px;background:#fff}.webcam-media{position:relative;aspect-ratio:16/9;background:#17383b}.webcam-media>a,.webcam-player,.webcam-placeholder{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:#17383b;color:#fff;cursor:pointer}.webcam-media img,.webcam-media iframe{display:block;width:100%;height:100%;border:0;-o-object-fit:cover;object-fit:cover}.webcam-media span{position:absolute;left:50%;bottom:7px;transform:translate(-50%);white-space:nowrap;padding:4px 8px;border-radius:3px;background:#000000c2;font-size:.78rem;font-weight:700}.webcam-placeholder{display:grid!important;place-content:center;text-align:center}.webcam-placeholder b{font-size:3rem}.webcam-body{padding:5px}.webcam-title{display:flex;align-items:start;justify-content:space-between;gap:4px}.webcam-title h2,.webcam-title h3{margin:0;color:#164f70;font-size:1rem}.webcam-body p{margin:4px 0;text-align:justify;line-height:1.3}.webcam-body small{font-size:.75rem}.status{flex:none;padding:2px 4px;border-radius:3px;font-size:.68rem;font-weight:700}.status--live{background:#d9f3e3;color:#146337}.status--unknown{background:#fff0c7;color:#785700}.status--offline{background:#f5dada;color:#8d2929}.admin-webcam-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:5px}.admin-webcam-heading nav{display:flex;gap:8px}.webcam-success,.webcam-errors{margin:4px 0;padding:6px;border-radius:3px;background:#daf2e3}.webcam-errors{background:#fde2e2;color:#8d2929}.webcam-admin-list{display:grid;gap:3px}.webcam-admin-list article{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px;border:1px solid #d8e2e5;border-radius:3px}.webcam-admin-list article>div{display:flex;gap:7px;align-items:center}.webcam-admin-list article:first-child>div:first-child{display:grid;gap:1px}.webcam-admin-list form{margin:0}.webcam-admin-list button,.webcam-form button{padding:5px 8px;border:0;border-radius:3px;background:#176b9c;color:#fff;cursor:pointer}.webcam-admin-list button{background:#9b2c2c}.webcam-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:7px;border:1px solid #d8e2e5;border-radius:4px}.webcam-form label{display:grid;gap:2px;font-weight:700}.webcam-form .wide{grid-column:1/-1}.webcam-form small{font-weight:400}.webcam-form .check{display:flex;align-items:center}.webcam-form .check input{width:auto}@media(max-width:600px){.webcams-page,.webcams-admin{padding:2px;font-size:.84rem}.webcam-grid,.webcam-form{grid-template-columns:1fr}.webcam-form .wide{grid-column:auto}.admin-webcam-heading,.webcam-admin-list article{align-items:stretch;flex-direction:column}.webcam-admin-list article>div{flex-wrap:wrap}}.municipality-webcams{clear:both;margin:6px 0 2px}.municipality-webcams>h2{margin:3px 0}.municipality-webcams .webcam-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.municipality-webcams .webcam-body>a{display:block;margin-top:3px}.webcam-empty{margin:3px 0;padding:6px;background:#f3f7f8;border-radius:3px;font-size:.82rem}.webcam-filter{display:flex;align-items:center;gap:5px;width:min(100%,440px);margin:0 auto 4px;border:1px solid #d8e2e5}.webcam-filter select{flex:1;min-width:0;padding:6px;background:#fff;color:#233;border-color:#8fa4aa;cursor:pointer}.webcam-filter>a{flex:none;padding:6px 8px;border-radius:3px;background:#176b9c;color:#fff!important;text-decoration:none}.webcam-filter>a:hover,.webcam-filter>a:focus-visible{background:#0d527b}
