.spottraffic-app{position:relative;border:1px solid #d7d7d7;border-radius:.4rem;overflow:hidden;background:#fff}.spottraffic-toolbar{display:flex;align-items:center;gap:.6rem;padding:.65rem .8rem;background:#f4f6f7}.spottraffic-toolbar input{max-width:220px}.spottraffic-toolbar select{max-width:180px}.spottraffic-toolbar [data-spottraffic-status]{margin-left:auto;font-size:.9rem}.spottraffic-layout{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:stretch}.spottraffic-map{width:100%;min-height:420px}.spottraffic-panel{position:absolute;z-index:500;right:12px;top:12px;width:min(330px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;background:#fff;padding:1rem;border-radius:.4rem;box-shadow:0 4px 24px rgba(0,0,0,.22)}.spottraffic-panel .btn-close{float:right}.spottraffic-panel h3{margin:0 2rem .8rem 0}.spottraffic-panel dl,.spottraffic-popup dl{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .7rem;margin:0}.spottraffic-panel dt,.spottraffic-popup dt{font-weight:600}.spottraffic-panel dd,.spottraffic-popup dd{margin:0}.spottraffic-plane-wrap{background:transparent;border:0}.spottraffic-plane{display:block;font-size:24px;line-height:28px;text-align:center;color:#155eef;text-shadow:0 1px 2px #fff;transform-origin:50% 50%}.spottraffic-plane.is-emergency{color:#c00}@media(max-width:760px){.spottraffic-toolbar{flex-wrap:wrap}.spottraffic-toolbar strong{width:100%}.spottraffic-toolbar [data-spottraffic-status]{order:4;width:100%;margin-left:0}.spottraffic-toolbar input,.spottraffic-toolbar select{max-width:none;flex:1 1 160px}}
.spottraffic-check{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;font-size:.9rem}.spottraffic-check input{margin:0}.spottraffic-panel [data-spottraffic-follow][aria-pressed="true"]{font-weight:700}

.spottraffic-toolbar [data-spottraffic-layer]{max-width:150px}.spottraffic-app.is-loading [data-spottraffic-status]::before{content:"";display:inline-block;width:.75rem;height:.75rem;margin-right:.4rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spottraffic-spin .7s linear infinite}.spottraffic-app.is-degraded [data-spottraffic-status]{color:#a33}.spottraffic-app.is-paused [data-spottraffic-status]{opacity:.7}@keyframes spottraffic-spin{to{transform:rotate(360deg)}}
.spottraffic-legend{position:absolute;z-index:450;left:10px;bottom:24px;max-width:min(440px,calc(100% - 20px));padding:.45rem .6rem;background:rgba(255,255,255,.94);border-radius:.35rem;box-shadow:0 1px 5px rgba(0,0,0,.25);font-size:.76rem}.spottraffic-legend-title{display:block;margin-bottom:.3rem;font-size:.78rem}.spottraffic-legend-items{display:flex;align-items:center;gap:.35rem .7rem;flex-wrap:wrap}.spottraffic-legend-item{display:inline-flex;align-items:center;gap:.28rem;white-space:nowrap}.spottraffic-legend-icon{display:inline-block;width:20px;height:20px;background-color:var(--spottraffic-legend-icon-color,#155eef);-webkit-mask-image:var(--spottraffic-legend-icon-url);mask-image:var(--spottraffic-legend-icon-url);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;transform:rotate(-45deg)}@media(max-width:700px){.spottraffic-legend{max-width:calc(100% - 20px)}.spottraffic-legend-title{display:none}.spottraffic-legend-items{gap:.25rem .5rem}.spottraffic-legend-item{font-size:.7rem}.spottraffic-legend-icon{width:17px;height:17px}}.spottraffic-plane.is-light{color:#2271b1}.spottraffic-plane.is-medium{color:#6f42c1}.spottraffic-plane.is-heavy{color:#8a4b08;font-size:27px}.spottraffic-plane.is-rotor{color:#008060}.spottraffic-plane.is-military{color:#1f2937;text-shadow:0 0 2px #fff}.spottraffic-plane.is-other{color:#555}.spottraffic-plane.is-emergency,.spottraffic-legend .is-emergency{color:#c00!important;animation:spottraffic-pulse .8s ease-in-out infinite alternate}@keyframes spottraffic-pulse{to{transform:scale(1.25)}}

.spottraffic-watch-star{position:absolute;right:0;top:-5px;color:#d39e00;font-size:13px;text-shadow:0 1px 2px #fff}.spottraffic-plane.is-watched{filter:drop-shadow(0 0 3px rgba(211,158,0,.8))}.spottraffic-panel-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.spottraffic-map-column{min-width:0;grid-column:1}.spottraffic-map-column .spottraffic-map{height:100%}.spottraffic-list-panel{grid-column:2}.spottraffic-list-panel{width:280px;max-height:70vh;overflow:hidden;display:flex;flex-direction:column;background:#fff;border-left:1px solid #d8d8d8}.spottraffic-list-panel h3{font-size:1rem;margin:0;padding:.75rem;border-bottom:1px solid #ddd}.spottraffic-aircraft-list{overflow:auto;padding:.35rem}.spottraffic-list-item{width:100%;display:flex;justify-content:space-between;gap:.5rem;text-align:left;border:0;border-bottom:1px solid #eee;background:transparent;padding:.55rem .45rem;cursor:pointer}.spottraffic-list-item:hover,.spottraffic-list-item.is-selected{background:#eef5ff}.spottraffic-list-item span{font-size:.8rem;white-space:nowrap;color:#555}.spottraffic-empty{padding:.75rem;color:#666}.spottraffic-reference-label{display:flex;align-items:center;gap:.35rem;white-space:nowrap}.spottraffic-reference-label select{min-width:150px}@media(max-width:900px){.spottraffic-layout{display:block}.spottraffic-list-panel{width:100%;max-height:260px;border-left:0;border-top:1px solid #ddd}.spottraffic-list-item{font-size:.95rem}}

.spottraffic-list-header{display:flex;align-items:center;gap:.5rem;padding:.65rem .7rem;border-bottom:1px solid #ddd}.spottraffic-list-header h3{padding:0;border:0;flex:1}.spottraffic-list-header select{width:auto;max-width:145px}.spottraffic-quick-filters{display:flex;gap:.25rem;flex-wrap:wrap;padding:.45rem .55rem;border-bottom:1px solid #eee}.spottraffic-quick-filters button{border:1px solid #cfd6df;background:#fff;border-radius:999px;padding:.18rem .5rem;font-size:.75rem;cursor:pointer}.spottraffic-quick-filters button.is-active{background:#155eef;color:#fff;border-color:#155eef}.spottraffic-list-summary{padding:.3rem .65rem;font-size:.75rem;color:#666;border-bottom:1px solid #eee}.spottraffic-list-main,.spottraffic-list-meta{display:flex;flex-direction:column}.spottraffic-list-main{min-width:0}.spottraffic-list-main strong,.spottraffic-list-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spottraffic-list-main small,.spottraffic-list-meta small{font-size:.72rem;color:#777}.spottraffic-list-meta{text-align:right;flex:0 0 auto}.spottraffic-list-item.is-emergency{box-shadow:inset 3px 0 #c00}.spottraffic-list-item.is-selected{box-shadow:inset 4px 0 #155eef;background:#e8f1ff}

/* Version 2.0: docked detail panel and wider desktop workspace */
.spottraffic-layout{grid-template-columns:minmax(0,1fr) 300px;transition:grid-template-columns .2s ease}
.spottraffic-app.has-selection .spottraffic-layout{grid-template-columns:minmax(0,1fr) 300px 320px}
.spottraffic-list-panel{grid-column:2;width:auto;min-width:0}
.spottraffic-panel{position:relative;z-index:1;right:auto;top:auto;grid-column:3;width:auto;max-height:70vh;border-radius:0;box-shadow:none;border-left:1px solid #d8d8d8;padding:1rem;overflow:auto}
.spottraffic-panel[hidden]{display:none}
.spottraffic-detail-heading{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e5e5e5}
.spottraffic-detail-heading h3{margin:0;font-size:1.15rem}
.spottraffic-detail-heading p{margin:.15rem 0 0;color:#666;font-size:.85rem}
.spottraffic-detail-plane{font-size:2rem;color:#155eef}
.spottraffic-toolbar [data-spottraffic-export]{white-space:nowrap}
@media(max-width:1200px){.spottraffic-app.has-selection .spottraffic-layout{grid-template-columns:minmax(0,1fr) 280px}.spottraffic-panel{position:absolute;right:12px;top:12px;width:min(330px,calc(100% - 24px));max-height:calc(100% - 24px);border:0;border-radius:.4rem;box-shadow:0 4px 24px rgba(0,0,0,.22)}}
@media(max-width:900px){.spottraffic-app.has-selection .spottraffic-layout{display:block}.spottraffic-panel{position:relative;right:auto;top:auto;width:100%;max-height:none;border-top:1px solid #ddd;border-radius:0;box-shadow:none}}

/* Version 2.0.1: labelled two-row toolbar */
.spottraffic-toolbar{display:block;padding:0;background:#f4f6f7}
.spottraffic-toolbar-row{display:flex;align-items:flex-end;gap:1rem;padding:.8rem 1rem}
.spottraffic-toolbar-row+.spottraffic-toolbar-row{border-top:1px solid #dde2e6}
.spottraffic-toolbar-title{align-self:center;min-width:105px;font-size:1.05rem}
.spottraffic-field{display:flex;flex-direction:column;gap:.3rem;min-width:145px;margin:0}
.spottraffic-field>span,.spottraffic-field-label{font-size:.76rem;font-weight:700;color:#39424c;line-height:1.2}
.spottraffic-field input,.spottraffic-field select{max-width:none;width:100%}
.spottraffic-toolbar-primary .spottraffic-field:first-of-type{min-width:220px;flex:1 1 240px}
.spottraffic-option-group{display:flex;align-items:center;gap:.85rem;min-width:max-content;margin:0;padding:0;border:0}
.spottraffic-option-group legend{float:none;width:auto;margin:0 .35rem 0 0;font-size:.76rem;font-weight:700;color:#39424c}
.spottraffic-reference-label{min-width:190px}
.spottraffic-status-box{display:flex;flex-direction:column;gap:.3rem;min-width:220px;flex:1 1 260px}
.spottraffic-toolbar [data-spottraffic-status]{margin:0;font-size:.86rem;line-height:1.35}
.spottraffic-toolbar-actions{display:flex;align-items:center;gap:.55rem;margin-left:auto;white-space:nowrap}
.spottraffic-location-marker{color:#1266d4;fill:#2f80ed}
@media(max-width:1100px){.spottraffic-toolbar-row{flex-wrap:wrap}.spottraffic-toolbar-title{width:100%;min-width:0}.spottraffic-toolbar-primary .spottraffic-field{flex:1 1 180px}.spottraffic-toolbar-actions{margin-left:0}.spottraffic-status-box{flex:1 1 100%}}
@media(max-width:700px){.spottraffic-toolbar-row{align-items:stretch;gap:.7rem}.spottraffic-field,.spottraffic-reference-label,.spottraffic-status-box{width:100%;min-width:0}.spottraffic-option-group{width:100%;flex-wrap:wrap}.spottraffic-option-group legend{width:100%;margin-bottom:.15rem}.spottraffic-toolbar-actions{width:100%;flex-wrap:wrap}.spottraffic-toolbar-actions .btn{flex:1 1 auto}}

/* Version 2.1: grouped dashboard toolbar and modern aircraft list */
.spottraffic-toolbar{background:#f7f8fa}
.spottraffic-toolbar-row{align-items:stretch;gap:1rem;padding:1rem 1.1rem}
.spottraffic-toolbar-title{display:flex;align-items:center;gap:.55rem;min-width:155px;padding:.55rem .2rem;font-size:1.08rem}
.spottraffic-title-icon{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#155eef;color:#fff;font-size:1rem}
.spottraffic-control-group{position:relative;display:flex;align-items:flex-end;gap:.7rem;padding:1.35rem .8rem .75rem;border:1px solid #dfe4ea;border-radius:.55rem;background:#fff}
.spottraffic-group-filter{flex:1 1 520px}.spottraffic-group-map{flex:0 1 390px}
.spottraffic-group-title{position:absolute;left:.8rem;top:.35rem;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#68717c}
.spottraffic-control-group .spottraffic-field{min-width:125px}.spottraffic-control-group .spottraffic-field:first-of-type{flex:1 1 210px}
.spottraffic-toolbar-secondary{align-items:center;background:#fff}
.spottraffic-option-group{padding:.65rem .8rem;border:1px solid #dfe4ea;border-radius:.55rem;background:#fafbfc}
.spottraffic-option-group legend{padding:0 .25rem;margin-left:.15rem}
.spottraffic-status-box{min-width:260px;flex:1 1 320px;display:flex;flex-direction:row;align-items:center;gap:.55rem;padding:.65rem .8rem;border:1px solid #dfe4ea;border-radius:.55rem;background:#fafbfc}
.spottraffic-status-dot{width:.68rem;height:.68rem;border-radius:50%;background:#2e9d50;box-shadow:0 0 0 3px rgba(46,157,80,.14);flex:0 0 auto}
.spottraffic-app.is-loading .spottraffic-status-dot{background:#d39e00;box-shadow:0 0 0 3px rgba(211,158,0,.14)}
.spottraffic-app.is-degraded .spottraffic-status-dot{background:#c0392b;box-shadow:0 0 0 3px rgba(192,57,43,.14)}
.spottraffic-toolbar-actions .btn{min-height:38px;padding-inline:.85rem;font-weight:700;letter-spacing:.02em}
.spottraffic-list-panel{background:#fbfcfd}
.spottraffic-list-header{background:#fff}.spottraffic-aircraft-list{padding:.5rem}
.spottraffic-list-item{align-items:center;margin-bottom:.35rem;padding:.65rem .6rem;border:1px solid #e3e7ec;border-radius:.45rem;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.spottraffic-list-item:hover{background:#f4f8ff;border-color:#b9cff5}.spottraffic-list-item.is-selected{background:#eaf2ff;border-color:#79a5ed;box-shadow:inset 4px 0 #155eef}
.spottraffic-list-main{position:relative;min-width:0}.spottraffic-list-main::before{content:none;display:none}
.spottraffic-list-main strong{font-size:.9rem;color:#111}.spottraffic-list-main small{margin-top:.12rem}.spottraffic-list-meta{font-size:.78rem;font-weight:600;color:#333}
.spottraffic-list-item.is-emergency{border-color:#e7a5a5;background:#fff7f7}
@media(max-width:1250px){.spottraffic-toolbar-primary{flex-wrap:wrap}.spottraffic-toolbar-title{width:100%}.spottraffic-group-filter,.spottraffic-group-map{flex:1 1 100%}}
@media(max-width:760px){.spottraffic-control-group{flex-wrap:wrap}.spottraffic-control-group .spottraffic-field{flex:1 1 100%;min-width:0}.spottraffic-status-box{flex:1 1 100%}.spottraffic-toolbar-actions{width:100%}}
.spottraffic-track-hint{margin:.75rem 0 0;padding:.65rem .75rem;border-left:3px solid #2563eb;background:#eff6ff;font-size:.85rem;line-height:1.35;color:#334155}
.spottraffic-route-hint { margin: .65rem 0 0; padding: .55rem .65rem; border-radius: .35rem; background: #f8fafc; color: #64748b; font-size: .82rem; }

.spottraffic-provider-status{margin:-.35rem 0 .85rem;padding:.65rem .75rem;border:1px solid #dbe4ee;border-radius:.45rem;background:#f8fafc;font-size:.8rem;line-height:1.35}.spottraffic-provider-status p{margin:0}.spottraffic-provider-status p+p{margin-top:.25rem;color:#52606d}

.spottraffic-aircraft-photo{display:block;width:100%;max-height:210px;object-fit:cover;border-radius:8px;margin:0 0 14px;background:#eef1f5}
.spottraffic-aircraft-notes{padding:10px 12px;border-radius:8px;background:#f6f7f9;white-space:pre-wrap}


/* Version 2.4.2: configurable map size and detail panel below map/list */
.spottraffic-layout{
  display:grid;
  grid-template-columns:minmax(0,var(--spottraffic-map-width,1fr)) 300px;
  align-items:stretch;
  position:relative;
  width:100%;
}
.spottraffic-app.has-selection .spottraffic-layout{
  grid-template-columns:minmax(0,var(--spottraffic-map-width,1fr)) 300px;
}
.spottraffic-map-column{min-width:0;width:100%;}
.spottraffic-map-column .spottraffic-map{height:var(--spottraffic-map-height,70vh);min-height:320px;width:100%;}
.spottraffic-list-panel{max-height:var(--spottraffic-map-height,70vh);}
.spottraffic-panel{
  position:relative;
  inset:auto;
  width:100%;
  max-height:none;
  margin:0;
  padding:1rem 1.1rem 1.25rem;
  border:1px solid #d8d8d8;
  border-top:0;
  border-radius:0 0 .45rem .45rem;
  box-shadow:none;
  background:#fff;
  overflow:visible;
}
.spottraffic-panel[hidden]{display:none;}
.spottraffic-panel .btn-close{position:absolute;right:1rem;top:1rem;}
.spottraffic-panel [data-spottraffic-details]{padding-right:2.5rem;}
.spottraffic-panel .spottraffic-detail-heading{max-width:100%;}
.spottraffic-panel-actions{display:flex;gap:.5rem;flex-wrap:wrap;}
@media(max-width:900px){
  .spottraffic-layout,.spottraffic-app.has-selection .spottraffic-layout{display:block;}
  .spottraffic-list-panel{width:100%;max-height:260px;border-left:0;border-top:1px solid #ddd;}
  .spottraffic-panel{border-top:1px solid #d8d8d8;}
}

/* Version 2.4.3: explicit backend-controlled component, map and list sizing */
.spottraffic-app{
  width:100%;
  max-width:var(--spottraffic-component-max-width,100%);
  margin-inline:auto;
}
.spottraffic-layout,
.spottraffic-app.has-selection .spottraffic-layout{
  grid-template-columns:minmax(0,var(--spottraffic-map-width,1fr)) var(--spottraffic-list-width,300px);
}

/* Version 2.4.4: aircraft image with reliable placeholder */
.spottraffic-aircraft-photo-wrap{margin:0 0 1rem;max-width:760px;background:#eef2f7;border:1px solid #dce3ec;border-radius:10px;overflow:hidden;text-align:center}
.spottraffic-aircraft-photo-wrap .spottraffic-aircraft-photo{display:block;width:auto;max-width:100%;height:auto;max-height:520px;margin:0 auto;border-radius:0;object-fit:contain;background:#eef2f7}
.spottraffic-aircraft-photo-wrap.is-placeholder .spottraffic-aircraft-photo{width:100%;min-height:190px;object-fit:contain;padding:1.25rem;background:#eef2f7}
.spottraffic-aircraft-photo-wrap figcaption{padding:.45rem .75rem;color:#5d6878;font-size:.8rem;background:#f8fafc;border-top:1px solid #dce3ec}

/* Version 2.7.0: ACL protected frontend aircraft editor */
.spottraffic-editor{margin-top:1rem;padding:1rem 1.1rem;border:1px solid #d8e0e8;border-radius:.5rem;background:#fff}
.spottraffic-editor[hidden]{display:none}.spottraffic-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.spottraffic-editor-header h3{margin:0}
.spottraffic-editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.spottraffic-editor-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:700}.spottraffic-editor-wide{grid-column:1/-1}.spottraffic-editor-check{grid-column:1/-1;display:flex!important;flex-direction:row!important;align-items:center}.spottraffic-editor-actions{display:flex;gap:.6rem;margin-top:1rem}.spottraffic-editor-message{margin-top:.8rem}.spottraffic-editor-message.is-error{color:#b42318}.spottraffic-editor-message.is-success{color:#067647}
@media(max-width:1000px){.spottraffic-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.spottraffic-editor-grid{grid-template-columns:1fr}}

/* Version 2.8.0: per-user proximity watch alerts */
.spottraffic-watch-dialog,.spottraffic-alert-dialog{width:min(92vw,620px);border:0;border-radius:.65rem;padding:0;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.spottraffic-watch-dialog::backdrop,.spottraffic-alert-dialog::backdrop{background:rgba(15,23,42,.55)}
.spottraffic-watch-dialog form,.spottraffic-alert-dialog-inner{padding:1.25rem}
.spottraffic-watch-dialog h3,.spottraffic-alert-dialog h3{margin:0 0 .75rem}
.spottraffic-watch-dialog label{display:flex;flex-direction:column;gap:.35rem;font-weight:700}
.spottraffic-watch-dialog input{width:100%;padding:.55rem .65rem;border:1px solid #b8c2cf;border-radius:.35rem}
.spottraffic-watch-help{font-size:.85rem;color:#5d6878}.spottraffic-dialog-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.spottraffic-alert-dialog-inner{position:relative}.spottraffic-alert-dialog .btn-close{position:absolute;right:1rem;top:1rem}.spottraffic-alert-dialog [data-spottraffic-alert-details]{max-height:70vh;overflow:auto;padding-right:.5rem}


/* Version 2.9.0: personal watch-list management */
.spottraffic-watch-list-dialog{width:min(94vw,900px);border:0;border-radius:.65rem;padding:0;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.spottraffic-watch-list-dialog::backdrop{background:rgba(15,23,42,.55)}
.spottraffic-watch-list-inner{position:relative;padding:1.25rem}.spottraffic-watch-list-inner>.btn-close{position:absolute;right:1rem;top:1rem}
.spottraffic-watch-list-items{display:grid;gap:.65rem;margin:1rem 0}.spottraffic-watch-row{display:grid;grid-template-columns:minmax(140px,1fr) 130px auto;gap:.75rem;align-items:end;padding:.75rem;border:1px solid #d8e0e8;border-radius:.5rem;background:#fff}
.spottraffic-watch-row.is-paused{opacity:.65;background:#f6f7f9}.spottraffic-watch-row-main{display:flex;flex-direction:column}.spottraffic-watch-row-main small{color:#657184}
.spottraffic-watch-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:700}.spottraffic-watch-row input{width:100%;padding:.45rem;border:1px solid #b8c2cf;border-radius:.3rem}
.spottraffic-watch-row-actions{display:flex;gap:.4rem;flex-wrap:wrap}.spottraffic-watch-empty{padding:1rem;border:1px dashed #b8c2cf;border-radius:.4rem;color:#657184}
@media(max-width:760px){.spottraffic-watch-row{grid-template-columns:1fr}.spottraffic-watch-row-actions{align-items:stretch}.spottraffic-watch-row-actions .btn{flex:1 1 45%}}

/* 3.0 dashboard */
.spottraffic-statistics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;padding:.65rem .8rem;border-top:1px solid #dfe3e8;border-bottom:1px solid #dfe3e8;background:#fff}
.spottraffic-statistics>div{min-width:0;padding:.5rem .65rem;border:1px solid #e1e5ea;border-radius:.45rem;background:#f8fafc}
.spottraffic-statistics span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#667085}
.spottraffic-statistics strong{display:block;margin-top:.15rem;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spottraffic-trail-color-field{display:inline-flex;align-items:center;gap:.4rem;margin-left:.35rem}
.spottraffic-plane.is-military{color:#111827;font-size:25px}.spottraffic-plane.is-rotor{font-size:21px}.spottraffic-plane.is-heavy{font-size:28px}
.spottraffic-panel [data-spottraffic-details]>dl{display:grid;grid-template-columns:minmax(130px,max-content) minmax(0,1fr);column-gap:1rem;row-gap:.35rem;padding:1rem;border:1px solid #e2e8f0;border-radius:.5rem;background:#fff}
.spottraffic-detail-heading{padding:.75rem 1rem;border-radius:.5rem;background:#f1f5f9;margin-bottom:.75rem}
@media(max-width:1100px){.spottraffic-statistics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.spottraffic-statistics{grid-template-columns:repeat(2,minmax(0,1fr))}.spottraffic-trail-color-field{width:100%;margin-left:0}.spottraffic-panel [data-spottraffic-details]>dl{grid-template-columns:1fr}}

.spottraffic-watch-catalog{margin:1rem 0;padding:1rem;border:1px solid #d8e0e8;border-radius:.6rem;background:#f8fafc}.spottraffic-watch-catalog h4{margin:0 0 .75rem}.spottraffic-watch-catalog-controls{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(220px,1.5fr) 140px auto;gap:.75rem;align-items:end}.spottraffic-watch-catalog-controls label{display:grid;gap:.25rem}.spottraffic-watch-catalog>small{display:block;margin-top:.65rem;color:#5f6b76}@media(max-width:850px){.spottraffic-watch-catalog-controls{grid-template-columns:1fr 1fr}.spottraffic-watch-catalog-controls button{width:100%}}@media(max-width:560px){.spottraffic-watch-catalog-controls{grid-template-columns:1fr}}


/* Version 3.0.3: aligned secondary toolbar status */
.spottraffic-toolbar-secondary{
  flex-wrap:wrap;
  min-width:0;
  align-items:flex-start;
}
.spottraffic-toolbar-secondary .spottraffic-option-group{
  flex:1 1 430px;
  min-width:0;
}
.spottraffic-toolbar-secondary .spottraffic-status-box{
  flex:1 1 260px;
  min-width:220px;
  align-self:flex-start;
  margin-top:0;
}
.spottraffic-toolbar-secondary .spottraffic-toolbar-actions{
  flex:1 1 470px;
  align-self:flex-start;
  min-width:0;
  margin-left:0;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  white-space:normal;
}
.spottraffic-toolbar-secondary .spottraffic-toolbar-actions .btn{
  max-width:100%;
  white-space:nowrap;
}
@media(max-width:1350px){
  .spottraffic-toolbar-secondary .spottraffic-toolbar-actions{
    flex-basis:100%;
    justify-content:flex-start;
  }
}
@media(max-width:700px){
  .spottraffic-toolbar-secondary .spottraffic-status-box{min-width:0;width:100%;}
  .spottraffic-toolbar-secondary .spottraffic-toolbar-actions .btn{flex:1 1 190px;}
}
@media(max-width:440px){
  .spottraffic-toolbar-secondary .spottraffic-toolbar-actions .btn{flex-basis:100%;width:100%;}
}


/* Version 3.0.4: aligned display options and trail-colour selector */
.spottraffic-toolbar-secondary .spottraffic-option-group{
  display:block;
  padding:.45rem .8rem .7rem;
}
.spottraffic-toolbar-secondary .spottraffic-option-group legend{
  display:block;
  width:auto;
  margin:0 0 .35rem;
  padding:0 .25rem;
}
.spottraffic-option-content{
  display:flex;
  align-items:flex-end;
  gap:.65rem .9rem;
  flex-wrap:wrap;
  width:100%;
}
.spottraffic-option-content .spottraffic-check{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  min-height:31px;
  margin:0;
  white-space:nowrap;
}
.spottraffic-option-content .spottraffic-trail-color-field{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:.3rem;
  min-width:145px;
  margin:0 0 0 auto;
}
.spottraffic-option-content .spottraffic-trail-color-field>span{
  display:block;
  text-align:left;
}
.spottraffic-option-content .spottraffic-trail-color-field select{
  width:100%;
  min-width:145px;
}
@media(max-width:760px){
  .spottraffic-option-content .spottraffic-trail-color-field{margin-left:0;flex:1 1 180px;}
}
@media(max-width:520px){
  .spottraffic-option-content{align-items:stretch;}
  .spottraffic-option-content .spottraffic-check{width:100%;}
  .spottraffic-option-content .spottraffic-trail-color-field{width:100%;flex-basis:100%;}
}

/* Version 3.0.5: centre the trail-colour control inside display options */
.spottraffic-option-content .spottraffic-trail-color-field{
  flex:1 0 100%;
  width:100%;
  min-width:0;
  margin:.15rem 0 0;
  align-items:center;
}
.spottraffic-option-content .spottraffic-trail-color-field>span{
  width:min(180px,100%);
  text-align:center;
}
.spottraffic-option-content .spottraffic-trail-color-field select{
  width:min(180px,100%);
  min-width:0;
}
@media(max-width:520px){
  .spottraffic-option-content .spottraffic-trail-color-field{
    align-items:stretch;
  }
  .spottraffic-option-content .spottraffic-trail-color-field>span,
  .spottraffic-option-content .spottraffic-trail-color-field select{
    width:100%;
  }
}


/* Version 3.1.0: advanced personal alarm center */
.spottraffic-alarm-center{margin:1rem 0;padding:1rem;border:1px solid #d8e0e8;border-radius:.6rem;background:#fff}.spottraffic-alarm-center h4{margin:0 0 .35rem}.spottraffic-alarm-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:.75rem}.spottraffic-alarm-grid label{display:grid;gap:.25rem;font-size:.82rem;font-weight:700}.spottraffic-alarm-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1rem}.spottraffic-alarm-actions label{display:flex;align-items:center;gap:.35rem}.spottraffic-alarm-actions .btn{margin-left:auto}.spottraffic-watch-row.is-generic{border-left:4px solid #2563eb}.spottraffic-watch-rule-summary{display:block;margin-top:.25rem;color:#556274}.spottraffic-watch-row-options{display:flex;gap:.65rem;flex-wrap:wrap;font-size:.78rem}.spottraffic-watch-row-options label{display:flex;flex-direction:row;align-items:center;gap:.25rem;font-weight:600}
@media(max-width:980px){.spottraffic-alarm-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:560px){.spottraffic-alarm-grid{grid-template-columns:1fr}.spottraffic-alarm-actions .btn{width:100%;margin-left:0}}

.spottraffic-aircraft-photo-wrap figcaption a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Version 3.2.0: structured aircraft information card */
.spottraffic-aircraft-card{display:grid;gap:1rem}
.spottraffic-detail-heading{display:flex;align-items:center;gap:.85rem;padding:1rem 1.1rem;margin:0;border:1px solid #dbe3ed;border-radius:12px;background:linear-gradient(135deg,#f8fafc,#eef4fb)}
.spottraffic-detail-title{min-width:0;flex:1}.spottraffic-detail-title h3{font-size:1.35rem}.spottraffic-detail-title p{white-space:normal}.spottraffic-detail-title small{display:block;margin-top:.25rem;color:#64748b}
.spottraffic-detail-category{align-self:flex-start;padding:.3rem .55rem;border-radius:999px;background:#e0ecff;color:#174ea6;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.spottraffic-detail-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.spottraffic-detail-card{border:1px solid #dbe3ed;border-radius:10px;background:#fff;overflow:hidden;min-width:0}
.spottraffic-detail-card summary{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem 1rem;cursor:pointer;font-weight:700;background:#f8fafc;list-style:none}.spottraffic-detail-card summary::-webkit-details-marker{display:none}
.spottraffic-detail-card[open] summary{border-bottom:1px solid #e5eaf0}.spottraffic-detail-chevron{transition:transform .2s ease}.spottraffic-detail-card[open] .spottraffic-detail-chevron{transform:rotate(180deg)}
.spottraffic-detail-card-body{padding:.85rem 1rem}
.spottraffic-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}
.spottraffic-detail-value{position:relative;min-width:0;padding:.65rem .75rem;border-radius:8px;background:#f8fafc}.spottraffic-detail-value>span{display:block;margin-bottom:.15rem;color:#64748b;font-size:.72rem;text-transform:uppercase;letter-spacing:.035em}.spottraffic-detail-value>strong{display:block;overflow-wrap:anywhere;font-size:.95rem}
.spottraffic-copy-button{position:absolute;right:.35rem;top:.35rem;border:0;background:transparent;color:#64748b;line-height:1;padding:.25rem;border-radius:4px}.spottraffic-copy-button:hover,.spottraffic-copy-button.is-copied{background:#e2e8f0;color:#0f172a}
.spottraffic-detail-empty{margin:0;color:#64748b;font-style:italic}
@media(max-width:900px){.spottraffic-detail-sections{grid-template-columns:1fr}}
@media(max-width:560px){.spottraffic-detail-grid{grid-template-columns:1fr}.spottraffic-detail-heading{align-items:flex-start}.spottraffic-detail-category{display:none}}


.spottraffic-spotlog-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
}
.spottraffic-spotlog-status {
  font-size: .84rem;
  color: var(--spottraffic-muted, #5f6b7a);
}
@media (max-width: 575.98px) {
  .spottraffic-spotlog-tools .btn { flex: 1 1 auto; }
  .spottraffic-spotlog-status { flex-basis: 100%; }
}

.spottraffic-sighting-badge {
  display: inline-flex;
  align-items: center;
  margin-left: .45rem;
  padding: .08rem .38rem;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.25;
  vertical-align: middle;
}

.spottraffic-type-conflict{border:1px solid #f0ad4e;background:#fffaf0;border-radius:.5rem;padding:1rem;margin:.25rem 0 .75rem}.spottraffic-type-conflict-title{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.6rem}.spottraffic-type-conflict-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 .35rem}.spottraffic-type-match-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.spottraffic-type-match-card span{display:block;color:#6c757d;font-size:.78rem}.spottraffic-type-match-card strong{display:block}.spottraffic-type-conflict.is-resolved{border-color:#198754;background:#f2fbf6}@media(max-width:720px){.spottraffic-type-match-card{grid-template-columns:1fr 1fr}.spottraffic-type-conflict-actions .btn{flex:1 1 100%}}


/* Version 3.6.0: geofence management */
.spottraffic-geofence-dialog{width:min(760px,calc(100vw - 2rem));border:0;border-radius:12px;padding:0;box-shadow:0 20px 60px rgba(15,23,42,.28)}
.spottraffic-geofence-dialog::backdrop{background:rgba(15,23,42,.45)}
.spottraffic-geofence-inner{position:relative;padding:1.25rem}
.spottraffic-geofence-inner>.btn-close{position:absolute;right:1rem;top:1rem}
.spottraffic-geofence-form-grid{display:grid;grid-template-columns:2fr 1fr minmax(220px,auto);gap:.75rem;align-items:end}
.spottraffic-geofence-form-grid label{display:grid;gap:.25rem;font-weight:700;font-size:.84rem}
.spottraffic-geofence-create-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.spottraffic-geofence-create-actions .btn{flex:1 1 auto;white-space:nowrap}
.spottraffic-geofence-message{min-height:1.4rem;margin:.6rem 0;color:#166534}
.spottraffic-geofence-list{display:grid;gap:.55rem;margin:1rem 0}
.spottraffic-geofence-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .8rem;border:1px solid #dbe3ed;border-radius:9px;background:#f8fafc}
.spottraffic-geofence-row small{display:block;color:#64748b;margin-top:.15rem}
@media(max-width:680px){.spottraffic-geofence-form-grid{grid-template-columns:1fr}.spottraffic-geofence-create-actions{display:grid;grid-template-columns:1fr}.spottraffic-geofence-form-grid .btn{width:100%}}


/* Version 3.6.1: flight-track analysis and playback */
.spottraffic-trail-length-field{display:flex;flex-direction:column;gap:.3rem;min-width:135px}
.spottraffic-track-dialog{width:min(720px,calc(100vw - 2rem));border:0;border-radius:12px;padding:0;box-shadow:0 20px 60px rgba(15,23,42,.28)}
.spottraffic-track-dialog::backdrop{background:rgba(15,23,42,.45)}
.spottraffic-track-inner{position:relative;padding:1.25rem}.spottraffic-track-inner>.btn-close{position:absolute;right:1rem;top:1rem}
.spottraffic-track-actions,.spottraffic-playback-controls{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-top:1rem}
.spottraffic-playback-controls select{width:90px}.spottraffic-playback-controls input[type=range]{flex:1 1 240px}
.spottraffic-track-message{min-height:1.4rem;margin:.75rem 0 0;color:#166534}
.spottraffic-playback-marker{fill:#f59e0b;stroke:#7c2d12}
@media(max-width:560px){.spottraffic-track-actions .btn,.spottraffic-playback-controls .btn{flex:1 1 100%}.spottraffic-playback-controls select{width:100%}}


/* Version 3.6.2: aligned trail controls and responsive option layout */
.spottraffic-option-content{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}
.spottraffic-trail-options{display:grid;grid-template-columns:repeat(2,minmax(150px,220px));gap:.75rem 1rem;flex:1 1 100%;width:100%;margin-top:.2rem}
.spottraffic-option-content .spottraffic-trail-options .spottraffic-field{display:flex;flex-direction:column;align-items:stretch;gap:.3rem;width:100%;min-width:0;margin:0}
.spottraffic-option-content .spottraffic-trail-options .spottraffic-field>span{width:auto;text-align:left;font-weight:600}
.spottraffic-option-content .spottraffic-trail-options .spottraffic-field select{width:100%;min-width:0}
@media(max-width:560px){.spottraffic-trail-options{grid-template-columns:1fr}}


/* 3.6.4: Frontend import preview */
.spottraffic-photo-import{display:flex;gap:1rem;align-items:center;padding:1rem;border:1px solid #cfe2ff;border-radius:.6rem;background:#f5f9ff}
.spottraffic-photo-import[hidden]{display:none!important}
.spottraffic-photo-import img{width:150px;height:96px;object-fit:contain;border-radius:.45rem;background:#fff;border:1px solid #dfe6ee}
.spottraffic-photo-import>div{display:grid;gap:.35rem;min-width:0}
.spottraffic-photo-import small{display:block;color:#5c6773;overflow-wrap:anywhere}
@media (max-width:640px){.spottraffic-photo-import{align-items:flex-start;flex-direction:column}.spottraffic-photo-import img{width:100%;height:170px}}

/* Frontend aircraft database */
.spottraffic-db{max-width:1500px;margin:0 auto}.spottraffic-db-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}.spottraffic-db-header h1{margin:0}.spottraffic-db-header p{margin:.25rem 0 0;color:#5c6773}.spottraffic-db-filters{display:grid;grid-template-columns:minmax(260px,1fr) 220px 220px auto;gap:.75rem;align-items:end;padding:1rem;border:1px solid #d8e0ea;border-radius:.6rem;background:#f8fafc}.spottraffic-db-filters label{display:grid;gap:.3rem}.spottraffic-db-count{text-align:right;margin:.75rem 0;font-weight:600}.spottraffic-db-thumb{width:76px;height:48px;object-fit:cover;border-radius:.3rem;background:#f3f5f7}.spottraffic-db-dialog{border:0;padding:0;border-radius:.75rem;box-shadow:0 20px 60px rgba(0,0,0,.25);width:min(900px,calc(100vw - 2rem))}.spottraffic-db-dialog::backdrop{background:rgba(15,23,42,.55)}.spottraffic-db-dialog-card{position:relative;padding:1.5rem;margin:0}.spottraffic-db-dialog-card>.btn-close{position:absolute;right:1rem;top:1rem}.spottraffic-db-preview-image{display:block;max-width:100%;max-height:420px;margin:1rem auto;object-fit:contain}.spottraffic-db-preview-grid{display:grid;grid-template-columns:140px 1fr;gap:.5rem 1rem}.spottraffic-db-preview-grid dt{font-weight:700}.spottraffic-db-preview-grid dd{margin:0}.spottraffic-db-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.spottraffic-db-form label{display:grid;gap:.25rem}.spottraffic-db-form-wide,.spottraffic-db-form-actions,.spottraffic-db-form .alert{grid-column:1/-1}.spottraffic-db-form-actions{display:flex;justify-content:flex-end;gap:.5rem}@media(max-width:850px){.spottraffic-db-filters{grid-template-columns:1fr 1fr}.spottraffic-db-form{grid-template-columns:1fr}.spottraffic-db-form-wide,.spottraffic-db-form-actions,.spottraffic-db-form .alert{grid-column:auto}}@media(max-width:560px){.spottraffic-db-header{align-items:flex-start;flex-direction:column}.spottraffic-db-filters{grid-template-columns:1fr}}

.spottraffic-db-current-photo{display:grid;gap:.5rem}.spottraffic-db-current-photo img{display:block;max-width:320px;max-height:190px;width:auto;height:auto;object-fit:contain;border:1px solid #d7dde5;border-radius:.35rem;background:#f6f8fa;padding:.25rem}

/* Version 3.6.15: show detail photos completely and centered */
.spottraffic-panel .spottraffic-aircraft-photo-wrap {
  width: min(100%, 960px);
  max-width: 960px;
  margin: 0 auto 1rem;
}
.spottraffic-panel .spottraffic-aircraft-photo-wrap .spottraffic-aircraft-photo {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  margin: 0 auto;
  object-fit: contain;
  object-position: center center;
}
.spottraffic-panel .spottraffic-aircraft-photo-wrap.is-placeholder .spottraffic-aircraft-photo {
  width: 100%;
  height: auto;
  min-height: 190px;
  object-fit: contain;
  object-position: center center;
}
.spottraffic-panel .spottraffic-photo-import,
.spottraffic-panel .spottraffic-db-current-photo {
  justify-items: center;
  text-align: center;
}
.spottraffic-panel .spottraffic-photo-import img,
.spottraffic-panel .spottraffic-db-current-photo img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin-inline: auto;
  object-fit: contain;
  object-position: center center;
}

/* 3.6.17: directional aircraft markers and compact hover popup */
.spottraffic-plane{width:34px;height:34px;display:flex;align-items:center;justify-content:center;transform-origin:50% 50%;transition:transform .18s linear}
.spottraffic-plane-svg{display:block;width:30px;height:30px;filter:drop-shadow(0 1px 1px rgba(255,255,255,.95)) drop-shadow(0 1px 2px rgba(0,0,0,.25))}
.spottraffic-plane-svg.is-rotorcraft{width:27px;height:27px}
.spottraffic-special-glyph{display:block;font-size:27px;line-height:32px}
.spottraffic-map-popup{min-width:210px;font-size:.88rem}
.spottraffic-map-popup>strong{display:block;margin-bottom:.35rem;font-size:1rem}
.spottraffic-map-popup dl{display:grid;grid-template-columns:max-content 1fr;gap:.12rem .65rem;margin:0}
.spottraffic-map-popup dt{font-weight:600;color:#475569}.spottraffic-map-popup dd{margin:0;text-align:right}
.spottraffic-map-popup small{display:block;margin-top:.4rem;color:#64748b}
.spottraffic-leaflet-popup .leaflet-popup-content{margin:.65rem .75rem}
.spottraffic-leaflet-popup .leaflet-popup-content-wrapper{border-radius:.45rem;box-shadow:0 5px 18px rgba(15,23,42,.22)}

/* 3.6.18 category SVG map icons */
.spottraffic-icon-shape{display:block;width:100%;height:100%;background:var(--spottraffic-icon-color,currentColor);-webkit-mask-image:var(--spottraffic-icon-url);mask-image:var(--spottraffic-icon-url);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;filter:drop-shadow(0 1px 1px rgba(255,255,255,.95)) drop-shadow(0 1px 2px rgba(0,0,0,.28))}
.spottraffic-plane.is-emergency .spottraffic-icon-shape{background:#c00}.spottraffic-plane.is-watched .spottraffic-icon-shape{filter:drop-shadow(0 0 4px rgba(211,158,0,.95))}
.spottraffic-map-hover-popup{position:absolute;z-index:1100;box-sizing:border-box;width:max-content;max-width:min(330px,calc(100% - 16px));padding:.7rem .8rem;background:#fff;color:#1f2937;border:1px solid rgba(15,23,42,.18);border-radius:.5rem;box-shadow:0 6px 22px rgba(15,23,42,.28);pointer-events:none;overflow-wrap:anywhere}
.spottraffic-map-hover-popup[hidden]{display:none}.spottraffic-map-hover-popup .spottraffic-map-popup strong{display:block;margin-bottom:.4rem;font-size:1rem}.spottraffic-map-hover-popup dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.2rem .65rem;margin:0}.spottraffic-map-hover-popup dt{font-weight:600}.spottraffic-map-hover-popup dd{margin:0;text-align:right}.spottraffic-map-hover-popup small{display:block;margin-top:.45rem;color:#64748b}
@media(max-width:520px){.spottraffic-map-hover-popup{font-size:.85rem}.spottraffic-map-hover-popup dl{grid-template-columns:1fr 1fr}}
.spottraffic-plane.is-emergency{animation:none!important}.spottraffic-plane.is-emergency .spottraffic-icon-shape{animation:spottraffic-icon-pulse .8s ease-in-out infinite alternate}@keyframes spottraffic-icon-pulse{to{transform:scale(1.18)}}

/* SpotTraffic 3.7.7: marker-consistent icons in the right aircraft list */
.spottraffic-list-icon{flex:0 0 28px;width:28px;height:28px;display:block;background-color:var(--spottraffic-list-icon-color,#2563eb);-webkit-mask-image:var(--spottraffic-list-icon-url);mask-image:var(--spottraffic-list-icon-url);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;transform-origin:center}
.spottraffic-list-main{flex:1 1 auto}.spottraffic-list-meta{margin-left:auto}

.spottraffic-airline-logo {
  width: 52px;
  height: 52px;
  object-fit: contain;
  flex: 0 0 52px;
  padding: 4px;
  border: 1px solid rgba(15, 23, 42, .12);
  border-radius: 10px;
  background: #fff;
}


/* SpotTraffic 3.8.2.9: centered airline branding without caption */
.spottraffic-flight-airline-logo{display:flex;align-items:center;justify-content:center;min-height:104px;margin:0 0 .8rem;padding:.7rem 1rem;border:1px solid #dbe3ed;border-radius:10px;background:#fff;overflow:hidden}
.spottraffic-flight-airline-logo img{display:block;max-width:min(360px,88%);max-height:88px;width:auto;height:auto;object-fit:contain;object-position:center}
.spottraffic-detail-heading .spottraffic-airline-logo{width:72px;height:72px;flex-basis:72px;padding:6px}
@media(max-width:640px){.spottraffic-flight-airline-logo{min-height:88px;padding:.6rem .75rem}.spottraffic-flight-airline-logo img{max-width:90%;max-height:68px}.spottraffic-detail-heading .spottraffic-airline-logo{width:60px;height:60px;flex-basis:60px}}

/* Version 3.8.4.2: reordered map popup controls for clearer grouping */
.spottraffic-toolbar-compact{position:relative;background:#fff;border-bottom:1px solid #dde2e6}
.spottraffic-compact-bar{display:flex;align-items:center;gap:.65rem;padding:.55rem .75rem;min-height:54px}
.spottraffic-toolbar-compact .spottraffic-toolbar-title{min-width:auto;width:auto;padding:0;margin-right:.35rem;white-space:nowrap}
.spottraffic-compact-menus{display:flex;gap:.45rem}
.spottraffic-menu-toggle[aria-expanded="true"]{background:#155eef;color:#fff;border-color:#155eef}
.spottraffic-toolbar-compact .spottraffic-status-box{min-width:220px;padding:.45rem .65rem;margin-left:.25rem}
.spottraffic-toolbar-compact .spottraffic-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem;margin-left:auto}
.spottraffic-toolbar-compact .spottraffic-toolbar-actions .btn{min-height:34px;padding:.35rem .62rem;font-size:.78rem}
.spottraffic-compact-panel{position:absolute;z-index:850;top:calc(100% + 6px);left:150px;width:min(700px,calc(100% - 170px));padding:.9rem;background:#fff;border:1px solid #cfd8e3;border-radius:.55rem;box-shadow:0 12px 32px rgba(20,38,63,.2)}
.spottraffic-compact-panel[hidden]{display:none!important}
.spottraffic-panel-grid{display:grid;gap:.8rem;align-items:end}
.spottraffic-panel-grid-filter{grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) minmax(170px,1fr)}
.spottraffic-panel-grid-map{grid-template-columns:repeat(4,minmax(140px,1fr))}
.spottraffic-panel-grid-map .spottraffic-check{min-height:38px;display:flex;align-items:center;padding:.35rem .2rem}
.spottraffic-panel-grid .spottraffic-field{min-width:0}
.spottraffic-panel-grid .spottraffic-field input,.spottraffic-panel-grid .spottraffic-field select{max-width:none;width:100%}
@media(max-width:1100px){.spottraffic-compact-bar{flex-wrap:wrap}.spottraffic-toolbar-compact .spottraffic-toolbar-actions{width:100%;justify-content:flex-start;margin-left:0}.spottraffic-compact-panel{left:.75rem;width:calc(100% - 1.5rem)}.spottraffic-panel-grid-map{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:700px){.spottraffic-compact-bar{align-items:stretch}.spottraffic-toolbar-compact .spottraffic-toolbar-title{width:100%}.spottraffic-compact-menus{width:100%}.spottraffic-compact-menus .btn{flex:1}.spottraffic-toolbar-compact .spottraffic-status-box{width:100%;min-width:0;margin-left:0}.spottraffic-panel-grid-filter,.spottraffic-panel-grid-map{grid-template-columns:1fr}.spottraffic-compact-panel{position:static;width:auto;margin:0 .75rem .75rem}.spottraffic-toolbar-compact .spottraffic-toolbar-actions .btn{flex:1 1 145px}}

.spottraffic-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.42rem;min-width:78px}
.spottraffic-menu-icon{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;flex:0 0 20px}
.spottraffic-menu-icon svg{display:block;width:20px;height:20px;fill:currentColor}
.spottraffic-compact-panel{padding:1.15rem 3.15rem 1rem 1rem}
.spottraffic-panel-close{position:absolute;top:.45rem;right:.55rem;display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid #aebccc;border-radius:50%;background:#fff;color:#25364d;font-size:1.55rem;line-height:1;cursor:pointer;z-index:2}
.spottraffic-panel-close:hover,.spottraffic-panel-close:focus{background:#eef4ff;border-color:#155eef;color:#155eef;outline:none}
@media(max-width:700px){.spottraffic-menu-icon,.spottraffic-menu-icon svg{width:22px;height:22px}.spottraffic-compact-panel{padding:3rem .85rem .85rem}.spottraffic-panel-close{top:.4rem;right:.55rem}}

/* Version 3.8.4.3: rounded controls in the compact map toolbar */
.spottraffic-toolbar-compact .spottraffic-compact-menus .btn,
.spottraffic-toolbar-compact .spottraffic-toolbar-actions .btn{
  border-radius:20px;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;
}
.spottraffic-toolbar-compact .spottraffic-compact-menus .btn:hover,
.spottraffic-toolbar-compact .spottraffic-compact-menus .btn:focus,
.spottraffic-toolbar-compact .spottraffic-toolbar-actions .btn:hover,
.spottraffic-toolbar-compact .spottraffic-toolbar-actions .btn:focus{
  box-shadow:0 2px 8px rgba(15,23,42,.12);
}
.spottraffic-toolbar-compact .spottraffic-menu-toggle[aria-expanded="true"]{
  border-radius:20px;
}

/* Version 3.8.4.7: Geofences button is outlined when inactive and dark when active or hovered */
.spottraffic-toolbar-compact [data-spottraffic-geofences]{
  background-color:#fff!important;
  border-color:#212529!important;
  color:#212529!important;
}
.spottraffic-toolbar-compact [data-spottraffic-geofences]:hover,
.spottraffic-toolbar-compact [data-spottraffic-geofences]:focus,
.spottraffic-toolbar-compact [data-spottraffic-geofences]:active,
.spottraffic-toolbar-compact [data-spottraffic-geofences].is-active{
  background-color:#212529!important;
  border-color:#212529!important;
  color:#fff!important;
}

/* 3.8.4.26 manufacturer logo in aircraft details */
.spottraffic-manufacturer-logo{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:116px;
  margin:0 0 .8rem;
  padding:.5rem .75rem;
  border:1px solid #dbe3ed;
  border-radius:10px;
  background:#fff;
  overflow:hidden;
}
.spottraffic-manufacturer-logo img{
  display:block;
  height:100px;
  width:auto;
  max-width:100%;
  object-fit:contain;
  object-position:left center;
}
@media(max-width:560px){
  .spottraffic-manufacturer-logo{justify-content:center}
  .spottraffic-manufacturer-logo img{object-position:center}
}


/* 4.2.1: real viewport layout without an internal iframe scrollbar. */
.spottraffic-frame-shell{display:contents!important;min-height:0!important}
.spottraffic-app{width:100%!important;max-width:none!important;overflow:visible}
.spottraffic-layout{min-height:520px}
.spottraffic-map-column .spottraffic-map{height:var(--spottraffic-map-height,calc(100vh - 250px));min-height:520px}
.spottraffic-list-panel{max-height:var(--spottraffic-map-height,calc(100vh - 250px))}
.spottraffic-panel{scroll-margin-top:1rem}
@media(max-width:900px){
  .spottraffic-map-column .spottraffic-map{height:65vh;min-height:420px}
  .spottraffic-list-panel{max-height:300px}
}

/* 4.2.3: detail header uses the same configured marker as map, list and legend. */
.spottraffic-detail-marker{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.spottraffic-detail-marker .spottraffic-icon-shape{
  display:block;
  width:100%;
  height:100%;
  background:var(--spottraffic-icon-color,#475569);
  -webkit-mask-image:var(--spottraffic-icon-url);
  mask-image:var(--spottraffic-icon-url);
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:contain;
  mask-size:contain;
}

/* SpotTraffic 4.2.6 logo diagnostics */
.spottraffic-logo-debug{font-size:.85rem;overflow:auto}.spottraffic-logo-debug table{width:100%;border-collapse:collapse}.spottraffic-logo-debug th,.spottraffic-logo-debug td{padding:.35rem .45rem;border-bottom:1px solid #dfe5ec;text-align:left;vertical-align:top;word-break:break-all}.spottraffic-logo-debug th{width:32%;font-weight:600;color:#53677d}

/* 4.2.13: enforce title image limit and manufacturer logo display */
.spottraffic-aircraft-photo-wrap .spottraffic-aircraft-photo{height:auto!important;max-height:400px!important;width:auto!important;max-width:100%!important;object-fit:contain!important;}
.spottraffic-manufacturer-logo{grid-column:1/-1;padding:10px;border:1px solid #dbe3ef;border-radius:8px;text-align:center;background:#fff;margin-bottom:10px;}
.spottraffic-manufacturer-logo img{display:block;max-width:100%;max-height:100px;width:auto;height:auto;object-fit:contain;margin:0 auto;}

.spottraffic-manufacturer-logo.is-error::after{content:'Herstellerlogo konnte nicht geladen werden';font-size:.8rem;color:#64748b;}


/* 4.2.26: authoritative logo dimensions after media migration. */
.spottraffic-manufacturer-logo{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:96px!important;
  padding:8px 12px!important;
}
.spottraffic-manufacturer-logo img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:260px!important;
  max-height:80px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0 auto!important;
}
.spottraffic-flight-airline-logo{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:96px!important;
}
.spottraffic-flight-airline-logo img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:300px!important;
  max-height:76px!important;
  object-fit:contain!important;
  margin:0 auto!important;
}

/* SpotTraffic 4.3.23: shared SpotLog dossier in the aircraft detail card. */
.spottraffic-sighting-list { display: grid; gap: .55rem; margin-top: .8rem; }
.spottraffic-sighting-row { display: grid; grid-template-columns: minmax(6.5rem,auto) 1fr auto; gap: .65rem; align-items: center; padding: .55rem .7rem; border: 1px solid rgba(15,23,42,.12); border-radius: .55rem; background: rgba(248,250,252,.8); }
.spottraffic-sighting-row small { opacity: .75; }
@media (max-width: 640px) { .spottraffic-sighting-row { grid-template-columns: 1fr; gap: .2rem; } }
