:root{--accent:#00a884;--line:#dce3df;--muted:#667781;color-scheme:light;background:#e5ddd5;color:#172b32;font-family:"Segoe UI",system-ui,sans-serif}
body{background:linear-gradient(#008069 0 130px,#e4e8e5 130px);min-height:100vh}
header{max-width:1450px;margin:auto;border:0;color:white;padding:18px 28px;height:90px}header h1{font-size:27px;letter-spacing:-.5px}.eyebrow{color:#c6eee3;letter-spacing:1px}.pill{color:inherit;border-color:#92bfb2}.pill.live{color:#b8ffe6;border-color:#a3e4cd}
.layout{max-width:1450px;grid-template-columns:300px minmax(0,1fr);padding:0 22px 18px;gap:0;align-items:start}.stack{background:#fff;gap:0;border-radius:12px 0 0 12px;overflow:hidden;max-height:calc(100vh - 130px);overflow-y:auto}.card{background:#fff;border:0;border-radius:0;padding:18px}.stack .card{border-bottom:1px solid #e9edef}.stack h2{font-size:16px}.id{font-size:17px;color:#008069}.metric{font-size:18px}.statusgrid{gap:10px}.muted,label{color:#667781}input,select,textarea{background:#fff;color:#203239;border:1px solid #d8e0dd;border-radius:9px}button{background:#eef3f0;color:#24433a;border:1px solid #d4dfda;border-radius:8px}button:hover{background:#dbeae3}button.primary{background:#008069;color:white;border-color:#008069}.power-switch button[aria-pressed=true]{background:#008069;color:white;border-color:#008069}.power-switch button{font-size:12px;padding:8px 3px}
.chat{height:calc(100vh - 130px);min-height:620px;padding:0;border-left:1px solid #d9e1dd;border-radius:0 12px 12px 0;overflow:hidden;box-shadow:3px 5px 24px #1d493915}.chathead{background:#f0f2f5;padding:15px 20px;align-items:center;gap:14px}.chathead h2{font-size:18px}.avatar{width:44px;height:44px;background:#008069;color:white;display:grid;place-items:center;border-radius:50%;font-size:15px;font-weight:700;flex-shrink:0}.chat-title{flex:1}.transportbar{display:flex;align-items:center;gap:12px;padding:9px 20px;background:#fff;border-bottom:1px solid #e6eae8}.transportbar select{width:150px;font-size:13px;padding:6px}.transportbar .pill{color:#667781;border:0;padding:0;font-size:12px}.transportbar .pill.live{color:#008069}.channel-banner{background:#f7f9f8;border:0;border-bottom:1px solid #e4ebe7;border-radius:0;padding:7px 20px;margin:0}.channel-banner strong{display:none}.channel-banner .muted{font-size:11px}
.messages{flex:1;height:auto;min-height:160px;padding:24px 6%;gap:10px;background-color:#efeae2;background-image:radial-gradient(#c8c1b840 .8px,transparent .8px);background-size:14px 14px}.empty{color:#556960;background:#fff9;border-radius:12px;font-size:14px}.bubble{background:white;border:0;border-radius:0 9px 9px 9px;padding:9px 13px;box-shadow:0 1px 2px #0002;max-width:82%;font-size:15px}.bubble.out{background:#d9fdd3;border:0;border-radius:9px 0 9px 9px}.meta{color:#008069;font-size:11px;font-weight:600;white-space:normal}.meta time{color:#667781;font-weight:400}.delivery{color:#597268;font-size:10px;text-align:right}.compose{background:#f0f2f5;padding:12px 18px;margin:0;border:0;position:relative}.compose>label{display:none}.composerline{display:flex;align-items:flex-end;gap:10px}.composerline textarea{min-height:48px;height:48px;max-height:150px;border:0;border-radius:10px;padding:12px;resize:vertical}.composerline #emoji{height:46px;min-width:44px;font-size:25px;padding:2px;border:0;background:transparent}.compose .sendrow{margin-top:7px}.compose p{font-size:11px;margin:6px 0 0}.compose #send{border-radius:24px;padding:8px 22px}.compose #cancel{font-size:11px;padding:5px 10px}.emoji-picker{position:absolute;left:16px;bottom:128px;max-width:340px;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:12px;background:white;box-shadow:0 3px 24px #0003;border-radius:12px;z-index:3}.emoji-picker button{border:0;background:white;font-size:25px;padding:4px}.emoji-picker button:hover{background:#e8f4ec}.error{margin:0;border-radius:0}.chat>details{padding:0 18px 8px;background:#f0f2f5;margin-top:0!important}.chat>details summary{margin:0}.log{color:#43564e}.profile-row{display:flex;gap:6px}.profile-row input{min-width:0}.profile-row button{padding:7px 12px}.cloud-fields .field{margin-bottom:10px}.cloud-fields input{font-size:12px}.cloud-fields .checks label{font-size:12px}.notice{background:#eff8f3;border-color:#d1e8db;color:#395b4b}footer{font-size:11px;padding-bottom:12px;color:#667781}
@media(max-width:850px){header{height:78px;padding:12px 16px}.layout{padding:0 8px 12px;grid-template-columns:1fr;gap:12px}.chat{border-radius:10px;min-height:580px;height:calc(100dvh - 100px);order:1}.stack{order:2;border-radius:10px;max-height:none}.topright{flex-direction:row;gap:6px}.topright .pill{display:none}.messages{padding:16px 4%}.chathead{padding:12px}.transportbar{padding:8px 12px;gap:6px}.transportbar select{width:115px}.transportbar .pill{font-size:11px}.bubble{max-width:91%}header .eyebrow{font-size:9px}.chat-title .muted{font-size:11px}}
/* Use the entire available desktop instead of a centered narrow panel. */
header,.layout,footer{max-width:none}
@media(min-width:851px){header{height:76px;padding:14px 20px}.layout{padding:0 10px 8px;grid-template-columns:280px minmax(0,1fr)}.chat{height:calc(100dvh - 108px);min-height:400px}.stack{max-height:calc(100dvh - 108px)}footer{padding:0 14px 8px}.messages{padding-left:4%;padding-right:4%}}

dialog{max-width:min(560px,calc(100vw - 40px));border:1px solid #b0c8bb;border-radius:14px;padding:24px}dialog select{max-width:100%;width:100%;box-sizing:border-box}dialog::backdrop{background:#0a241d99}

button.avatar{padding:0;border:0;flex-shrink:0;cursor:pointer}

.chat-photo{display:block;max-width:100%;width:320px;max-height:420px;object-fit:contain;border-radius:8px;margin:8px 0;}

.internet-warning{flex-shrink:0;background:#b00020;color:#fff;padding:18px 20px;border-bottom:3px solid #720015;font-size:clamp(16px,2vw,23px);font-weight:800;line-height:1.4;text-align:center;overflow-wrap:anywhere;}

.chat-photo{cursor:zoom-in}.chat-photo:focus-visible{outline:3px solid #008069;outline-offset:3px}
#photoviewer{width:min(1400px,96vw);max-width:96vw;max-height:94dvh;padding:16px;background:#111b21;color:#fff;border:0}
#photoviewer::backdrop{background:#000c}.photo-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.photo-toolbar h2{flex:1;margin:0;font-size:16px;overflow-wrap:anywhere}.photo-download{display:inline-block;background:#008069;color:#fff;padding:10px 14px;border-radius:8px;text-decoration:none}
#largephoto{display:block;max-width:100%;max-height:calc(94dvh - 110px);width:auto;height:auto;object-fit:contain;margin:auto}

.header-slogan{flex:1;min-width:0;margin:0;text-align:center;color:#e0fff3;font-size:clamp(12px,1.2vw,18px);font-weight:600;white-space:nowrap;overflow-x:auto;}header>.topright{flex-shrink:0}@media(max-width:1100px){header{height:auto;flex-wrap:wrap}.header-slogan{order:3;flex-basis:100%;padding-bottom:6px}}

/* Regional emergency communications styling. */
body{background:#e4e8e5}
header{display:grid;grid-template-columns:180px minmax(240px,1fr) auto;gap:16px;width:100%;height:auto;min-height:110px;margin:0;padding:14px 22px;background:linear-gradient(110deg,#11272c,#193b40);color:#f4faf7;border-left:8px solid #ffd34e;border-bottom:4px solid #ffd34e;box-shadow:0 3px 12px #071f2426}
header h1{font-size:30px;font-weight:850;letter-spacing:1px;color:#fff}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.6px;color:#ffd34e}
.header-slogan{font-size:clamp(12px,1.12vw,18px);line-height:1.5;color:#fff3bd;white-space:nowrap;text-align:center;margin:0;min-width:0;overflow-x:auto;order:initial;padding:0}
header .topright{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:470px}header .topright .pill{flex-basis:100%;text-align:right;border:0;padding:0 2px 3px;font-size:12px;color:#d2e3df}header .topright .pill.live{color:#91f5c7}header button{font-size:11px;padding:7px 9px;background:#25464c;color:#e8f3ef;border-color:#567078}header button.primary{background:#ffd34e;border-color:#ffd34e;color:#182d30}header button:hover{background:#365961}header button.primary:hover{background:#ffe185}
@media(min-width:1101px){.chat{height:calc(100dvh - 150px)}.stack{max-height:calc(100dvh - 150px)}}
@media(max-width:1100px){header{grid-template-columns:150px minmax(0,1fr);gap:12px;padding:12px 14px}.header-slogan{grid-column:1/-1;grid-row:2;font-size:clamp(10px,1.65vw,16px)}header .topright{justify-self:end}.chat{height:calc(100dvh - 176px)}}
@media(max-width:600px){header{grid-template-columns:115px minmax(0,1fr)}header h1{font-size:24px}header .eyebrow{letter-spacing:.4px;font-size:9px}header .topright{gap:4px}header button{font-size:10px;padding:6px}header .topright .pill{font-size:10px}}

header .buy-radio{display:inline-flex;align-items:center;color:#ffd34e;font-size:11px;font-weight:600;padding:7px 9px;border:1px solid #86763e;border-radius:8px;text-decoration:none}header .buy-radio:hover{background:#365961;text-decoration:underline}header .buy-radio:focus-visible{outline:2px solid #ffd34e;outline-offset:3px}

/* Display the supplied artwork unchanged; crop its white margins in the layout. */
header.banner-header{grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;padding:0 18px 12px;border-left:0;border-bottom:0;min-height:0}
.header-art{grid-column:1/-1;position:relative;aspect-ratio:2172/184;overflow:hidden;margin:0 -18px;background:#06151c}
.header-art img{position:absolute;display:block;width:100%;height:auto;top:50%;left:0;transform:translateY(-50%)}
.banner-header .header-slogan{grid-column:auto;grid-row:auto;font-size:clamp(11px,1.2vw,18px);text-align:left}
.banner-header .topright{max-width:530px}
@media(min-width:1101px){.chat{height:calc(100dvh - 100vw * 184 / 2172 - 110px)}.stack{max-height:calc(100dvh - 100vw * 184 / 2172 - 110px)}}
@media(max-width:1100px){header.banner-header{grid-template-columns:minmax(0,1fr);padding:0 12px 10px;gap:9px}.header-art{margin:0 -12px}.banner-header .header-slogan{grid-column:1;grid-row:auto;text-align:center;font-size:clamp(10px,1.6vw,16px)}.banner-header .topright{justify-self:stretch;max-width:none;justify-content:center}.banner-header .topright .pill{text-align:center}.chat{height:calc(100dvh - 100vw * 184 / 2172 - 155px)}}

header.banner-header{display:block;position:relative;padding:0;background:#06151c}
.banner-header .header-art{margin:0;aspect-ratio:2172/184}
.banner-header .topright{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:27%;max-width:530px;gap:4px;justify-content:flex-end;padding:6px;border-radius:8px;background:#03121cbb}
.banner-header .topright .pill{font-size:10px;text-align:right;padding:0 0 2px}.banner-header .topright button,.banner-header .buy-radio{font-size:10px;padding:5px 6px}
@media(min-width:1101px){.chat{height:calc(100dvh - 100vw * 184 / 2172 - 42px)}.stack{max-height:calc(100dvh - 100vw * 184 / 2172 - 42px)}}
@media(max-width:1100px){.banner-header .topright{position:relative;right:auto;top:auto;transform:none;width:100%;max-width:none;justify-content:flex-end;border-radius:0;padding:8px 12px}.banner-header .topright .pill{flex-basis:auto;margin-right:auto}.chat{height:calc(100dvh - 100vw * 184 / 2172 - 110px)}}

/* Updated banner: controls anchored in its lower right corner. */
.banner-header .header-art{aspect-ratio:2172/174}
.banner-header .topright{top:auto;bottom:8px;right:12px;transform:none;width:25%;padding:5px 6px;background:linear-gradient(90deg,#03121c55,#03121cdb);border-radius:6px;gap:4px}
.banner-header .topright .pill{font-size:10px;color:#e0efed;margin:0}
.banner-header .topright button,.banner-header .buy-radio{font-size:10px;line-height:1.2;padding:5px 6px}
@media(min-width:1101px){.chat{height:calc(100dvh - 100vw * 174 / 2172 - 42px)}.stack{max-height:calc(100dvh - 100vw * 174 / 2172 - 42px)}}
@media(max-width:1100px){.banner-header .topright{position:relative;bottom:auto;right:auto;width:100%;padding:8px 12px;background:#071b25;justify-content:flex-end}.banner-header .topright .pill{margin-right:auto}.chat{height:calc(100dvh - 100vw * 174 / 2172 - 110px)}}
/* Regional information above the conversation, in the right chat column. */
.local-live{flex-shrink:0;background:linear-gradient(110deg,#071b2c,#123144);color:#edf5fb;border-bottom:3px solid #ffc91c;padding:10px 18px;font-size:12px}
.local-top{display:flex;align-items:center;gap:12px}.local-top strong{font-size:15px}.local-top strong span{display:inline-block;margin-left:8px;font-size:11px;font-weight:400;color:#b8ccd9}.local-top #p2000status{margin-left:auto;color:#b8ccd9;font-size:10px}.local-top button{padding:3px 8px;font-size:11px;background:#294456;color:white;border-color:#486273}
#p2000viewport{overflow:hidden;min-height:65px;padding:7px 0}#p2000card{overflow-wrap:anywhere}.p2000meta{font-size:10px;color:#abc5d7;margin-bottom:3px}.p2000title{font-size:15px;font-weight:600;color:white;text-decoration:none}.p2000title:hover{text-decoration:underline}#p2000card details{font-size:11px;margin-top:4px;max-height:160px;overflow-y:auto}#p2000card summary{margin:0;color:#b8ccd9;font-weight:400}#p2000card details p{margin:6px 0}#p2000card ul{padding-left:18px;margin:5px 0}
.local-bottom{display:flex;align-items:center;gap:8px;color:#b8ccd9;font-size:10px;flex-wrap:wrap}.local-bottom a{color:#a6d9f7}.traffic-counter{margin-left:auto;border-left:1px solid #486273;padding-left:10px}.traffic-counter strong{color:#ffdb63;font-size:12px}.local-live .muted{color:#b8ccd9}
@media(max-width:600px){.local-live{padding:9px 12px}.local-top{flex-wrap:wrap;gap:5px}.local-top strong span{display:block;margin:2px 0}.local-top #p2000status{max-width:120px}.traffic-counter{margin-left:0;border-left:0;padding-left:0;width:100%}.p2000title{font-size:13px}}

/* P2000 shares the channel heading; it never takes a separate chat row. */
.chathead{padding:8px 16px;gap:12px;flex-shrink:0;position:relative;align-items:center}
.chathead .chat-title{flex:0 1 220px;min-width:0}.chathead .chat-title .muted{font-size:11px}
.chathead .local-live{flex:1 1 260px;min-width:0;margin-left:auto;background:transparent;color:#213c48;border:0;border-left:1px solid #ccd8dc;padding:0 0 0 14px;height:72px;position:relative}
.local-top{gap:6px;height:18px;flex-wrap:nowrap}.local-top strong{font-size:11px;white-space:nowrap}.local-top #p2000status{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#607680}.local-top button{font-size:9px;padding:1px 5px;background:#e1e9ed;color:#344d59;border-color:#c4d2d9}
#p2000viewport{min-height:0;height:42px;padding:1px 0;overflow:hidden}#p2000card{position:relative}.p2000meta{font-size:9px;color:#607680;margin:0}.p2000title{display:block;font-size:12px;color:#213c48;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#p2000card details{margin:0;font-size:10px;max-height:none}#p2000card summary{color:#526d79;font-size:9px}#p2000viewport:has(details[open]){overflow:visible}#p2000card details[open]{position:absolute;top:26px;right:0;width:100%;min-width:220px;max-height:240px;overflow:auto;padding:10px;background:#fff;border:1px solid #becfd6;border-radius:8px;box-shadow:0 4px 16px #0003;z-index:6}
.local-bottom{font-size:9px;line-height:12px}.local-bottom a,.local-live .muted{color:#607680}.local-live .muted{font-size:10px}
.transportbar{flex-wrap:wrap}.transportbar .traffic-counter{margin-left:auto;width:auto;font-size:10px;color:#607680;border-left:1px solid #d5dfdc;padding-left:10px}.traffic-counter strong{font-size:11px;color:#526d32}.traffic-counter a{color:#526d79}.channel-banner #history{float:right;padding:1px 7px;font-size:10px}
@media(max-width:600px){.chathead{padding:8px;gap:7px}.chathead .avatar{width:32px;height:32px;font-size:11px}.chathead .chat-title{flex:0 1 105px}.chathead .chat-title h2{font-size:14px}.chathead .chat-title .muted{font-size:9px}.chathead .local-live{flex:1 1 150px;padding-left:7px}.local-top strong{font-size:9px}.local-top #p2000status{display:none}.local-top button{margin-left:auto}.p2000title{font-size:11px}.transportbar .traffic-counter{margin-left:auto}.traffic-counter #flitsertime{display:none}}

/* Align the live bulletin with the traffic counter on the far right. */
.chathead .local-live{flex:0 1 540px;margin-left:auto;text-align:right}
.local-top{justify-content:flex-end}.local-top #p2000status{margin-left:8px}.local-top button{margin-left:0}
.local-bottom{justify-content:flex-end}#p2000card details[open]{text-align:left}
@media(max-width:600px){.chathead .local-live{flex:1 1 150px}.local-top #p2000status{margin-left:0}.local-top button{margin-left:0}}
.p2000meta{line-height:12px}.p2000title{line-height:16px}#p2000card summary{line-height:12px}

/* Self-contained vehicle backgrounds also remain available without internet. */
#p2000card[data-service]{border-radius:5px;padding:0 7px 0 54px;background:linear-gradient(100deg,#dce7ec,#f3f6f8);border-right:3px solid #7993a2;isolation:isolate}
#p2000card[data-service=ambulance]{background:linear-gradient(100deg,#ffe391,#fff9e5);border-right-color:#d39b00}
#p2000card[data-service=politie]{background:linear-gradient(100deg,#c4dff7,#eff6ff);border-right-color:#2870ba}
#p2000card[data-service=brandweer]{background:linear-gradient(100deg,#ffc6bb,#fff1ed);border-right-color:#ce4332}
#p2000card[data-service=trauma]{background:linear-gradient(100deg,#ead1fa,#fbf3ff);border-right-color:#9754bd}
.p2000-vehicle{position:absolute;left:5px;top:0;line-height:40px;font-size:36px;opacity:.36;pointer-events:none;user-select:none;z-index:-1;filter:saturate(.8)}
@media(max-width:600px){#p2000card[data-service]{padding-left:27px;padding-right:3px}.p2000-vehicle{left:1px;font-size:25px;opacity:.28}}

/* Compact composer, keeping all existing send and photo controls. */
.compose{padding:7px 12px}.composerline{gap:7px;align-items:center}.composerline textarea{min-height:36px;height:36px;padding:8px 10px;line-height:20px;max-height:120px}.composerline #emoji{height:34px;min-width:32px;font-size:23px}.composerline #photo{height:34px;min-width:32px;padding:4px 7px}.compose .sendrow{margin-top:4px}.compose #send{padding:5px 18px}.compose #cancel{padding:3px 8px}.compose p{margin:3px 0 0;font-size:10px;line-height:12px}.compose #count{font-size:10px}

.mini-player{position:absolute;right:18px;top:5px;width:24%;height:32px;display:flex;align-items:center;gap:7px;background:#061722d9;border:1px solid #425c67;border-radius:6px;padding:3px 6px;color:#fff}.mini-player button{padding:2px;width:25px;height:24px;border:0;background:#ffda29;color:#10232f;font-size:14px;flex-shrink:0}.radio-caption{min-width:0;flex:1;font-size:9px;line-height:12px;text-align:left}.radio-caption strong,.radio-caption span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radio-caption span{color:#cae4eb}.mini-player input{width:45px;min-width:45px;padding:0;accent-color:#ffda29}
@media(max-width:1100px){.mini-player{position:relative;top:auto;right:auto;width:calc(100% - 24px);margin:5px 12px;height:34px}.radio-caption{font-size:10px}.chat{height:calc(100dvh - 100vw * 174 / 2172 - 150px)}}

@media(min-width:1101px){.mini-player{top:3px;height:28px}.radio-caption{font-size:8px;line-height:10px}}
@media(min-width:1101px){.banner-header .topright{gap:2px;padding:2px 4px;align-items:center;flex-direction:row;flex-wrap:wrap}.banner-header .topright .pill{line-height:11px;font-size:9px;padding:0;min-height:0}.banner-header .topright button,.banner-header .buy-radio{font-size:9px;line-height:11px;padding:3px 5px}.mini-player{height:24px;top:2px}.mini-player button{height:20px}}
.mini-player{height:38px}.radio-caption{font-size:10px;line-height:14px}.mini-player button{height:28px;width:28px}.mini-player input{width:50px;min-width:50px}
@media(min-width:1101px){.mini-player{top:5px;height:38px}.radio-caption{font-size:10px;line-height:14px}}

.online-count{position:absolute;left:14px;bottom:5px;font-size:11px;color:white;background:#071a25dd;border-radius:8px;padding:3px 8px;z-index:2}.banner-header{position:relative}
