/* ORYVEX 0.9.26: privacy-first ANPR meldkamer. */
.anpr-page{display:grid;gap:18px}.anpr-page-actions{display:flex;gap:9px;flex-wrap:wrap}.anpr-page-actions .primary,.anpr-page-actions .secondary{white-space:nowrap}.anpr-privacy-note{display:flex;gap:12px;align-items:flex-start;padding:15px 17px;border:1px solid #b7d7fc;border-radius:12px;background:#f0f7ff;color:#23496f}.anpr-privacy-note strong,.anpr-privacy-note span{display:block}.anpr-privacy-note strong{font-size:12px}.anpr-privacy-note span{margin-top:3px;font-size:11px;line-height:1.55}.anpr-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.anpr-summary>div{padding:15px 16px;border:1px solid #dbe6f3;border-radius:12px;background:#fff}.anpr-summary span,.anpr-summary small{display:block;color:var(--muted);font-size:11px}.anpr-summary strong{display:block;margin:3px 0;font-size:24px}.anpr-masked-plate{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em;font-variant-numeric:tabular-nums}.anpr-alert-actions{display:flex;gap:7px;flex-wrap:wrap}.anpr-alert-actions button{font-size:10px}
.anpr-alert-detail{display:grid;gap:18px}.anpr-alert-hero{padding:16px;border:1px solid #efd194;border-radius:12px;background:#fffbf1}.anpr-alert-hero h3{margin:7px 0;font-size:24px}.anpr-alert-hero p{margin:0;color:#73551d;font-size:12px;line-height:1.55}.anpr-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.anpr-detail-grid>div{padding:11px 12px;border:1px solid #e2e9f2;border-radius:9px}.anpr-detail-grid dt{font-size:10px;color:var(--muted)}.anpr-detail-grid dd{margin:4px 0 0;font-size:12px;font-weight:650}.anpr-key-result{display:grid;gap:12px}.anpr-key-result p,.anpr-key-result small{margin:0;line-height:1.6}.anpr-key-result code{font-size:11px;overflow-wrap:anywhere}
.anpr-alert-popup{position:fixed;z-index:1200;right:22px;bottom:22px;width:min(385px,calc(100vw - 32px));padding:16px;border:1px solid #d9a844;border-radius:14px;background:#fffdf7;color:#2f3a47;box-shadow:0 18px 50px rgba(36,50,70,.24)}.anpr-alert-popup[hidden]{display:none}.anpr-alert-popup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#876117;font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.anpr-alert-popup-head .icon-button{width:26px;height:26px;color:#876117}.anpr-alert-popup>.anpr-masked-plate{display:block;margin:13px 0 5px;font-size:23px}.anpr-alert-popup p{margin:0;color:#63748a;font-size:12px;line-height:1.5}.anpr-alert-popup-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.anpr-alert-popup-actions button{font-size:11px}
@media(max-width:720px){.anpr-summary{grid-template-columns:1fr}.anpr-detail-grid{grid-template-columns:1fr}.anpr-page-actions .primary,.anpr-page-actions .secondary{flex:1}.anpr-alert-popup{right:16px;bottom:16px}}

/* ORYVEX 0.10.0: animated ANPR camera showcase. */
.anpr-live-shell{display:grid;grid-template-columns:minmax(0,1fr) 290px;grid-template-areas:"toolbar toolbar" "stage readout";overflow:hidden;border:1px solid #cddbeb;border-radius:16px;background:#081727;box-shadow:0 16px 42px rgba(16,42,72,.16)}
.anpr-live-toolbar{grid-area:toolbar;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;background:#fff;border-bottom:1px solid #dbe6f3}.anpr-live-toolbar>div:first-child{display:grid;grid-template-columns:12px auto;align-items:center;column-gap:9px}.anpr-live-toolbar small{grid-column:2;display:block;margin-top:2px;color:var(--muted);font-size:10px}.anpr-live-dot{grid-row:1/3;width:10px;height:10px;border-radius:50%;background:#18c787;box-shadow:0 0 0 5px rgba(24,199,135,.13);animation:anprPulse 1.6s infinite}
.anpr-live-stage{grid-area:stage;position:relative;min-height:0;aspect-ratio:16/9;overflow:hidden;background:#06111e}.anpr-live-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,13,23,.03),rgba(3,13,23,.24)),repeating-linear-gradient(180deg,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) 1px,transparent 1px,transparent 4px);pointer-events:none}.anpr-live-stage img{width:100%;height:100%;min-height:0;object-fit:cover;display:block;transition:opacity .18s ease,transform 4.8s linear}.anpr-live-shell.is-scanning .anpr-live-stage img{opacity:.9;transform:scale(1.025)}
.anpr-plate-target{position:absolute;z-index:2;left:var(--plate-x,13.7%);top:var(--plate-y,47.5%);width:var(--plate-w,8%);height:8%;min-width:56px;transform:translate(-50%,-50%);border:2px solid #4fdbff;border-radius:6px;box-shadow:0 0 0 999px rgba(1,10,18,.08),0 0 18px rgba(34,201,255,.58);transition:left .2s,top .2s,width .2s,border-color .22s,box-shadow .22s}.anpr-plate-target:before,.anpr-plate-target:after,.anpr-plate-target i:before,.anpr-plate-target i:after{content:"";position:absolute;width:12px;height:12px;border-color:#fff}.anpr-plate-target:before{left:-4px;top:-4px;border-left:3px solid;border-top:3px solid}.anpr-plate-target:after{right:-4px;top:-4px;border-right:3px solid;border-top:3px solid}.anpr-plate-target i:before{left:-4px;bottom:-4px;border-left:3px solid;border-bottom:3px solid}.anpr-plate-target i:after{right:-4px;bottom:-4px;border-right:3px solid;border-bottom:3px solid}.anpr-plate-target span{position:absolute;left:0;bottom:calc(100% + 6px);padding:3px 6px;border-radius:4px;background:#10bceb;color:#03131f;font-size:8px;font-weight:900;letter-spacing:.12em}.anpr-live-shell.is-alert .anpr-plate-target{border-color:#ff4a61;box-shadow:0 0 0 999px rgba(1,10,18,.09),0 0 20px rgba(255,54,80,.72)}.anpr-live-shell.is-alert .anpr-plate-target span{background:#ff4a61;color:#fff}
.anpr-scan-line{position:absolute;z-index:2;left:4%;right:4%;top:20%;height:2px;background:linear-gradient(90deg,transparent,#2edaff 12%,#d9faff 50%,#2edaff 88%,transparent);box-shadow:0 0 14px #32dfff;opacity:0}.anpr-live-shell.is-scanning .anpr-scan-line{opacity:1;animation:anprScan 1.05s ease-in-out infinite}.anpr-camera-stamp{position:absolute;z-index:3;left:14px;bottom:13px;display:flex;gap:10px;align-items:center;padding:6px 9px;border-radius:6px;background:rgba(3,14,25,.72);color:#d7f5ff;font:10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.anpr-camera-stamp b{color:#65dbff;letter-spacing:.08em}
.anpr-camera-plate{position:absolute;z-index:4;right:14px;bottom:13px;display:grid;grid-template-columns:25px auto;align-items:stretch;overflow:hidden;min-width:154px;border:2px solid #17191d;border-radius:5px;background:#f6c900;color:#111;box-shadow:0 4px 16px rgba(0,0,0,.35);opacity:0;transform:translateY(7px);transition:opacity .22s,transform .22s}.anpr-live-shell.is-result .anpr-camera-plate{opacity:1;transform:none}.anpr-camera-plate span{display:flex;align-items:center;justify-content:center;background:#1852a4;color:#fff;font-size:9px;font-weight:900;letter-spacing:.08em}.anpr-camera-plate span:before{content:'✦';display:block;position:absolute;margin-top:-14px;font-size:6px;color:#ffd72e}.anpr-camera-plate b{padding:7px 10px 6px;text-align:center;font:900 17px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.07em;white-space:nowrap}.anpr-camera-plate[data-country="DE"]{border-color:#30353a;background:#f5f6f3;color:#101214}
.anpr-live-readout{grid-area:readout;display:flex;flex-direction:column;padding:24px 20px;color:#dceaff;background:linear-gradient(155deg,#102b45,#071523)}.anpr-live-readout .eyebrow{color:#59d9ff}.anpr-live-plate{margin:18px 0 7px;font:800 25px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.09em;color:#fff}.anpr-live-readout>span:not(.eyebrow){font-size:11px;color:#9fb6ca}.anpr-live-result{margin-top:25px;padding:13px;border:1px solid rgba(71,217,255,.32);border-radius:9px;background:rgba(28,177,218,.1);color:#80e5ff;font-size:12px;font-weight:750}.anpr-live-shell.is-result:not(.is-alert) .anpr-live-result{border-color:rgba(56,215,152,.34);background:rgba(28,193,127,.11);color:#72e4b5}.anpr-live-shell.is-alert .anpr-live-result{border-color:rgba(255,75,99,.48);background:rgba(255,61,87,.12);color:#ff8c9d;animation:anprAlertPulse 1.1s infinite}.anpr-review-button{margin-top:auto;display:none}.anpr-live-shell.is-alert .anpr-review-button{display:block}.anpr-online-count{font-size:18px!important;color:#0c9d69}.anpr-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}.anpr-status.clear{background:#e6f8f1;color:#07845a}.anpr-status.alert{background:#ffe7eb;color:#d51e3b;animation:anprAlertPulse 1.1s infinite}
.anpr-live-vehicle{margin-top:8px;color:#dceaff!important;font-weight:750;line-height:1.45}
@keyframes anprScan{0%{top:19%}50%{top:78%}100%{top:19%}}@keyframes anprPulse{50%{box-shadow:0 0 0 9px rgba(24,199,135,0)}}@keyframes anprAlertPulse{50%{filter:brightness(1.22);box-shadow:0 0 0 5px rgba(255,61,87,.08)}}
@media(max-width:950px){.anpr-live-shell{grid-template-columns:1fr;grid-template-areas:"toolbar" "stage" "readout"}.anpr-live-readout{min-height:190px}.anpr-review-button{margin-top:20px}}
@media(max-width:620px){.anpr-live-toolbar{align-items:flex-start;flex-direction:column}.anpr-live-toolbar .row-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;width:100%}.anpr-live-toolbar button{min-width:0;width:100%;padding-left:8px;padding-right:8px;font-size:11px}.anpr-plate-target{left:var(--plate-x,13.7%);top:var(--plate-y,47.5%);width:var(--plate-w,8%);min-width:44px;height:10%}.anpr-plate-target span{bottom:calc(100% + 4px);font-size:7px;padding:2px 4px}.anpr-camera-stamp b{display:none}.anpr-camera-plate{right:9px;bottom:9px;min-width:124px;grid-template-columns:21px auto}.anpr-camera-plate b{padding:6px 8px 5px;font-size:13px}}

/* ORYVEX 0.10.1: live Vision AI smoke and fire presentation. */
.vision-live-shell{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"toolbar toolbar" "stage readout";overflow:visible;margin-bottom:16px;border:1px solid #cddbeb;border-radius:16px;background:#071522;box-shadow:0 16px 42px rgba(16,42,72,.16)}
.vision-live-toolbar{grid-area:toolbar;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:16px 16px 0 0;background:#fff;border-bottom:1px solid #dbe6f3}.vision-live-toolbar>div:first-child{display:grid;grid-template-columns:12px auto;align-items:center;column-gap:9px}.vision-live-toolbar .anpr-live-dot{grid-row:1/3}.vision-live-toolbar small{grid-column:2;display:block;margin-top:2px;color:var(--muted);font-size:10px}
.vision-live-stage{grid-area:stage;position:relative;isolation:isolate;aspect-ratio:16/9;min-height:0;overflow:hidden;border-radius:0 0 0 16px;background:#06111e}.vision-live-stage:after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(180deg,rgba(3,13,23,.04),rgba(3,13,23,.28)),repeating-linear-gradient(180deg,rgba(255,255,255,.022) 0,rgba(255,255,255,.022) 1px,transparent 1px,transparent 4px);pointer-events:none}.vision-live-stage video{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.04);transform:scale(1.012)}
.vision-analysis-grid{position:absolute;z-index:3;inset:0;opacity:.16;background-image:linear-gradient(rgba(76,213,255,.34) 1px,transparent 1px),linear-gradient(90deg,rgba(76,213,255,.34) 1px,transparent 1px);background-size:12.5% 16.66%;pointer-events:none}.vision-scan-line{position:absolute;z-index:5;left:2%;right:2%;top:18%;height:2px;background:linear-gradient(90deg,transparent,#37e4ff 14%,#e7fbff 50%,#37e4ff 86%,transparent);box-shadow:0 0 14px #35dfff;animation:visionScan 2.3s ease-in-out infinite;pointer-events:none}
.vision-object-box{position:absolute;z-index:6;border:2px solid #43dff8;border-radius:6px;box-shadow:0 0 16px rgba(44,215,246,.32);transition:border-color .25s,box-shadow .25s}.vision-object-box span{position:absolute;left:-2px;bottom:calc(100% + 4px);padding:3px 6px;border-radius:4px;background:#20c9e8;color:#03131e;font-size:8px;font-weight:900;letter-spacing:.1em;white-space:nowrap}.vision-object-box.vehicle{left:20%;top:18%;width:78%;height:80%}.vision-object-box.smoke{left:10%;top:38%;width:78%;height:58%;opacity:0;transition:opacity .25s,border-color .25s,box-shadow .25s}
.vision-live-shell.is-warning .vision-object-box.smoke,.vision-live-shell.is-critical .vision-object-box.smoke{opacity:1}.vision-live-shell.is-warning .vision-object-box.smoke{border-color:#ffb224;box-shadow:0 0 22px rgba(255,171,27,.55)}.vision-live-shell.is-warning .vision-object-box.smoke span{background:#ffb224}.vision-live-shell.is-critical .vision-object-box.smoke{border-color:#ff3d55;box-shadow:0 0 28px rgba(255,47,74,.75);animation:visionCriticalBox .8s infinite}.vision-live-shell.is-critical .vision-object-box.smoke span{background:#ff3d55;color:#fff}
.vision-ai-chip{position:absolute;z-index:9;right:13px;top:12px;padding:5px 8px;border:1px solid rgba(104,227,255,.56);border-radius:999px;background:rgba(3,20,32,.72);color:#69e1ff;font-size:8px;font-weight:900;letter-spacing:.12em}.vision-live-shell.is-warning .vision-ai-chip{border-color:#ffbd48;color:#ffd171}.vision-live-shell.is-critical .vision-ai-chip{border-color:#ff5870;color:#ff9caa;animation:visionAlertPulse .9s infinite}
.vision-live-readout{grid-area:readout;display:flex;flex-direction:column;padding:24px 20px;border-radius:0 0 16px 0;color:#dceaff;background:linear-gradient(155deg,#102b45,#071523);transition:background .35s}.vision-live-readout .eyebrow{color:#59d9ff}.vision-live-readout strong{margin:18px 0 7px;color:#fff;font-size:23px;line-height:1.15}.vision-live-readout>span:not(.eyebrow){color:#9fb6ca;font-size:11px}.vision-live-readout p{margin:10px 0;color:#d0dfec;font-size:11px;line-height:1.5}.vision-live-result{margin-top:14px;padding:13px;border:1px solid rgba(56,215,152,.34);border-radius:9px;background:rgba(28,193,127,.11);color:#72e4b5;font-size:12px;font-weight:800}.vision-live-shell.is-warning .vision-live-readout{background:linear-gradient(155deg,#453213,#17140e)}.vision-live-shell.is-warning .vision-live-result{border-color:rgba(255,181,38,.48);background:rgba(255,164,20,.12);color:#ffd170;animation:visionWarningPulse 1.1s infinite}.vision-live-shell.is-critical .vision-live-readout{background:linear-gradient(155deg,#4b1721,#17080d)}.vision-live-shell.is-critical .vision-live-result{border-color:rgba(255,75,99,.55);background:rgba(255,61,87,.15);color:#ff9cad;animation:visionAlertPulse .9s infinite}.vision-review-button{display:none;margin-top:auto}.vision-live-shell.is-warning .vision-review-button,.vision-live-shell.is-critical .vision-review-button{display:block}
.vision-alert-popup{position:fixed;z-index:1300;top:auto;right:22px;bottom:22px;left:auto;width:min(390px,calc(100vw - 32px));height:auto;max-height:calc(100vh - 44px);padding:16px;overflow:auto;border:1px solid #ef4059;border-radius:14px;background:#fff9fa;color:#2f3a47;box-shadow:0 18px 54px rgba(112,15,31,.28);animation:visionPopupIn .28s ease-out}.vision-alert-popup:not([hidden]){display:block}.vision-alert-popup[hidden]{display:none}.vision-alert-popup>div{display:grid;grid-template-columns:34px 1fr 28px;align-items:center;gap:9px;color:#bd1832}.vision-alert-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#ec2945;color:#fff;font-size:18px;font-weight:950;animation:visionAlertPulse .9s infinite}.vision-alert-popup .icon-button{width:28px;height:28px;color:#a82338}.vision-alert-popup>b{display:block;margin:13px 0 4px;font-size:17px}.vision-alert-popup p{margin:0;color:#63748a;font-size:12px}.vision-alert-popup>.primary{margin-top:14px;width:100%}.vision-alert-detail{display:grid;gap:18px}.vision-alert-hero{padding:16px;border:1px solid #f2a8b4;border-radius:12px;background:#fff4f6}.vision-alert-hero h3{margin:7px 0;font-size:24px}.vision-alert-hero p{margin:0;color:#753342;font-size:12px;line-height:1.55}.vision-event-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}.vision-event-status.warning{background:#fff2d4;color:#9a6100}.vision-event-status.critical{background:#ffe4e9;color:#c31c38;animation:visionAlertPulse .9s infinite}.vision-online-count{font-size:18px!important;color:#0c9d69}
@keyframes visionScan{0%{top:16%;opacity:.45}50%{top:83%;opacity:1}100%{top:16%;opacity:.45}}@keyframes visionWarningPulse{50%{filter:brightness(1.16);box-shadow:0 0 0 5px rgba(255,176,29,.07)}}@keyframes visionAlertPulse{50%{filter:brightness(1.24);box-shadow:0 0 0 7px rgba(255,61,87,.09)}}@keyframes visionCriticalBox{50%{box-shadow:0 0 34px rgba(255,47,74,.92)}}@keyframes visionPopupIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:950px){.vision-live-shell{grid-template-columns:1fr;grid-template-areas:"toolbar" "stage" "readout"}.vision-live-stage{border-radius:0}.vision-live-readout{min-height:190px;border-radius:0 0 16px 16px}.vision-review-button{margin-top:18px}}
@media(max-width:620px){.vision-live-toolbar{align-items:flex-start;flex-direction:column}.vision-live-toolbar .row-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}.vision-live-toolbar button{min-width:0;width:100%;padding-left:8px;padding-right:8px;font-size:11px}.vision-object-box.vehicle{left:12%;top:18%;width:86%;height:80%}.vision-object-box.smoke{left:2%;top:39%;width:88%;height:57%}.vision-object-box span{font-size:7px;padding:2px 4px}.vision-ai-chip{right:8px;top:8px;font-size:7px}.vision-alert-popup{right:16px;bottom:16px}.vision-live-readout strong{font-size:20px}}
