:root{
  --bg:#0D1117;--bg2:#182424;--muted:#94A3B8;--muted2:#8B98A9;--text:#E6EDF3;--border:#30363D;
  --green:#00FF41;--green-dim:rgba(0,255,65,.15);--red:#FF3333;--red-dim:rgba(255,51,51,.15);
  --orange:#FF8C00;--yellow:#FFD700;--blue:#00BFFF;--purple:#9370DB;--feed:340px;
  --mono:"JetBrains Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --hud:"Orbitron","Bahnschrift","DIN Alternate","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text);font:13px/1.45 var(--mono)}button,select,input{font:inherit}.app-shell{position:relative;width:100%;height:100%}.map-stage{position:absolute;inset:0 var(--feed) 0 0;background:var(--bg);transition:right .22s ease}.map-stage.feed-closed{right:0}#map{position:absolute;inset:0}#map .maplibregl-canvas{filter:grayscale(.82) brightness(.46) contrast(1.18) saturate(.55)}.maplibregl-map{font-family:var(--mono);background:var(--bg)}.maplibregl-ctrl-bottom-left{bottom:64px}.maplibregl-ctrl-bottom-right{bottom:64px}.maplibregl-ctrl-attrib{background:#0d1117cc!important;color:#6f7a85!important}.maplibregl-ctrl-attrib a{color:#8d99a5!important}.maplibregl-ctrl-group{background:#0d1117eb!important;border:1px solid var(--border)!important;box-shadow:0 4px 18px #0008!important}.maplibregl-ctrl-group button{filter:invert(1) opacity(.78)}
.top-brand{position:absolute;z-index:20;top:14px;left:16px;pointer-events:none;text-shadow:0 2px 12px #000}.brand-title{display:flex;align-items:center;gap:7px}.brand-cross{color:var(--green);font-size:17px}.brand-title strong{font:800 17px var(--hud);letter-spacing:.12em;color:#f4f4f4}.beta{font:700 8px var(--mono);padding:2px 5px;border:1px solid #33523d;border-radius:3px;color:var(--green);background:#04140a}.brand-sub{display:block;margin:3px 0 0 24px;color:#76818c;font-size:8px;letter-spacing:.14em}
.time-strip{position:absolute;z-index:20;top:14px;left:50%;transform:translateX(-50%);display:flex;background:#0d1117eb;border:1px solid var(--border);border-radius:7px;overflow:hidden;box-shadow:0 4px 18px #0007}.time-strip button{height:34px;min-width:48px;border:0;border-right:1px solid #25292F;background:transparent;color:#8B98A9;cursor:pointer;font-weight:700;font-size:10px}.time-strip button:last-child{border-right:0}.time-strip .active,.time-strip button:hover{color:var(--green);background:var(--green-dim)}.time-strip .icon-only{min-width:38px;font-size:15px}
.filter-panel{position:absolute;z-index:30;top:70px;left:16px;width:300px;max-height:calc(100vh - 145px);overflow:auto;background:#0d1117eb;backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 24px #0008}.filter-head{height:46px;padding:0 12px 0 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff0f}.filter-head h2{margin:0;font:700 13px var(--hud);letter-spacing:.06em;color:var(--green)}.filter-actions{display:flex;gap:5px}.filter-actions button{width:28px;height:28px;border:1px solid var(--border);border-radius:4px;background:transparent;color:#aab3bc;cursor:pointer}.filter-actions button:hover{color:var(--green);border-color:#3f684a}.filter-body{padding:13px 15px 15px}.filter-body>label:not(.check-row){display:block;margin:12px 0 7px;color:#77828d;font-size:9px;font-weight:700;letter-spacing:.13em}.mini-times,.chips{display:flex;flex-wrap:wrap;gap:5px}.mini-time,.chip{border:1px solid var(--border);border-radius:4px;background:#111820;color:#a6b0ba;cursor:pointer;padding:5px 8px;font-size:10px}.mini-time.active,.chip.active{border-color:#2d6e42;background:var(--green-dim);color:var(--green)}select{width:100%;height:34px;border:1px solid var(--border);border-radius:4px;background:#111820;color:#d5dce2;padding:0 9px;outline:none}.check-row{margin-top:14px;padding-top:12px;border-top:1px solid #ffffff0f;display:flex;align-items:center;gap:8px;color:#9aa5ae;font-size:10px}.check-row input{accent-color:var(--green)}.filter-fab{position:absolute;z-index:30;top:70px;left:16px;border:1px solid var(--border);background:#0d1117eb;color:var(--green);border-radius:6px;padding:9px 11px;font:700 10px var(--hud);cursor:pointer}
.event-feed{position:absolute;z-index:25;top:0;right:0;bottom:58px;width:var(--feed);background:#0d1117f2;backdrop-filter:blur(14px);border-left:1px solid var(--border);display:flex;flex-direction:column;transition:transform .22s ease;box-shadow:-4px 0 24px #0006}.event-feed:not(.open){transform:translateX(100%)}.feed-head{height:58px;display:flex;align-items:center;gap:10px;padding:0 13px 0 16px;border-bottom:1px solid #ffffff0f}.feed-head h3{margin:0;color:var(--green);font:700 12px var(--hud);letter-spacing:.08em}.feed-head span{margin-left:auto;color:#7f8a94;font-size:10px}.feed-head button{width:28px;height:28px;border:0;background:transparent;color:#909aa4;font-size:20px;cursor:pointer}.feed-list{flex:1;overflow:auto;padding:7px}.feed-list::-webkit-scrollbar{width:4px}.feed-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.feed-empty{padding:30px 18px;text-align:center;color:#6f7b85}.event-card{position:relative;padding:10px 10px 11px 12px;border-bottom:1px solid #ffffff0b;cursor:pointer}.event-card:hover{background:#ffffff05}.event-card:before{content:"";position:absolute;left:0;top:12px;width:3px;height:calc(100% - 24px);border-radius:2px;background:var(--event-color)}.event-card .row{display:flex;align-items:center;gap:7px}.feed-icon{width:20px;height:20px;color:var(--event-color);filter:drop-shadow(0 0 5px var(--event-color));flex:0 0 auto}.event-card .kind{font-size:9px;color:#a8b1ba;text-transform:uppercase}.event-card time{margin-left:auto;color:#727d87;font-size:9px}.event-card h4{margin:5px 0 1px;font-size:12px;color:#e5ebef}.event-card p{margin:0;color:#8f9aa4;font-size:10px}.event-card small{display:block;margin-top:5px;color:#606c76;font-size:9px}.source-pill{color:#7a8791}
.stats-bar{position:absolute;z-index:35;left:0;right:0;bottom:0;min-height:58px;padding:7px 14px;background:#0d1117e8;backdrop-filter:blur(14px);border-top:1px solid var(--border);display:flex;align-items:center;gap:14px}.stats-left{display:flex;gap:23px;align-items:center;overflow:auto;scrollbar-width:none}.stat-main,.stat-item{min-width:44px;text-align:center}.stat-main strong{font:700 19px var(--hud);color:var(--green)}.stat-item strong{font:700 14px var(--hud);color:#e6edf3}.stat-main span,.stat-item span{display:block;margin-top:1px;color:#78838e;font-size:8px;letter-spacing:.08em}.live-indicator{margin-left:auto;display:flex;align-items:center;gap:6px;white-space:nowrap}.live-indicator i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse 1.6s infinite}.live-indicator span{font:700 9px var(--hud);color:var(--green)}.live-indicator small{color:#6f7a84;font-size:9px}.feed-open-btn{border:1px solid var(--border);background:#121820;color:#a9b3bd;border-radius:5px;padding:7px 9px;cursor:pointer;font-size:9px}.feed-open-btn b{color:var(--green)}@keyframes pulse{50%{opacity:.35}}
.map-error{position:absolute;z-index:50;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:6px;text-align:center;padding:18px 22px;background:#0d1117f2;border:1px solid var(--border);border-radius:8px}.map-error span{color:#89949f;font-size:10px}.map-error button{justify-self:center;border:1px solid var(--border);background:#111820;color:var(--green);border-radius:4px;padding:6px 11px}
.war-marker{position:relative;width:34px;height:34px;background:none;border:0;padding:0;display:grid;place-items:center;cursor:pointer;color:var(--marker-color)}.war-marker .halo,.war-marker .halo2{position:absolute;inset:8px;border:1.5px solid var(--marker-color);border-radius:50%;animation:halo 2.8s cubic-bezier(.2,.6,.3,1) infinite;opacity:0}.war-marker .halo2{animation-delay:1.4s}.war-marker.critical .halo,.war-marker.critical .halo2{animation-duration:1.7s}.war-marker .glyph{position:relative;z-index:2;width:25px;height:25px;filter:drop-shadow(0 0 5px var(--marker-color)) drop-shadow(0 0 9px #000);transition:transform .15s}.war-marker:hover .glyph{transform:scale(1.2)}.war-marker svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.war-marker.uav .rotor{transform-origin:12px 12px;animation:rotor 1.2s linear infinite}.war-marker.missile .glyph{animation:drift 2.4s ease-in-out infinite}@keyframes halo{0%{transform:scale(.55);opacity:.75}70%{opacity:.1}100%{transform:scale(2.4);opacity:0}}@keyframes rotor{to{transform:rotate(360deg)}}@keyframes drift{50%{transform:translate(1px,-2px)}}
.maplibregl-popup-content{background:#0d1117f5!important;color:#e6edf3!important;border:1px solid var(--border);border-radius:8px!important;padding:11px 12px!important;box-shadow:0 5px 24px #0009!important}.maplibregl-popup-tip{border-top-color:#0d1117f5!important;border-bottom-color:#0d1117f5!important}.maplibregl-popup-close-button{color:#8b98a9!important;font-size:18px!important}.popup small{color:#7f8b95;font-size:9px}.popup h4{margin:4px 0 2px;font-size:13px}.popup p{margin:0;color:#9ca7b0;font-size:10px}.popup .src{margin-top:7px;color:#6f7b85;font-size:9px}
@media(max-width:900px){:root{--feed:320px}.filter-panel{width:270px}.brand-sub{display:none}.live-indicator small{display:none}}
@media(max-width:720px){.map-stage{right:0}.event-feed{bottom:0;width:100vw;transform:translateX(100%)}.event-feed.open{transform:translateX(0)}.time-strip{top:55px}.filter-panel{top:100px;width:calc(100vw - 32px);max-height:45vh}.filter-fab{top:100px}.stats-bar{right:0}.stats-left{gap:12px}.stat-item:nth-child(4){display:none}.top-brand{top:12px}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{bottom:64px}}

/* v2.2.2: respect HTML hidden state for HUD overlays */
[hidden]{display:none!important}

/* v2.2.3: stronger black HUD separation from the map */
.time-strip{
  background:rgba(4,6,9,.97) !important;
  border-color:#1b222c !important;
  box-shadow:0 8px 28px rgba(0,0,0,.48) !important;
}
.filter-panel{
  background:rgba(5,7,10,.97) !important;
  border-color:#1b222c !important;
  box-shadow:0 16px 42px rgba(0,0,0,.48) !important;
}
.feed-list{
  background:#05070a !important;
  box-shadow:inset 1px 0 0 rgba(255,255,255,.025) !important;
}
.stats-bar{
  background:rgba(4,6,9,.98) !important;
  border-top-color:#1b222c !important;
  box-shadow:0 -8px 28px rgba(0,0,0,.28) !important;
}

/* V2.5 — V2.2.3 görünümü korunur; yeni davranışlar aşağıdaki katmanda eklenir. */
html[data-map-theme="light"] #map .maplibregl-canvas{
  filter:grayscale(.82) brightness(.46) contrast(1.18) saturate(.55);
}
html[data-map-theme="dark"] #map .maplibregl-canvas{
  filter:grayscale(.62) brightness(.56) contrast(1.16) saturate(.5);
}
.theme-fab{
  position:absolute;z-index:31;top:14px;right:calc(var(--feed) + 16px);width:36px;height:34px;
  border:1px solid #1b222c;border-radius:7px;background:rgba(4,6,9,.97);color:#9aa5ae;
  box-shadow:0 8px 28px rgba(0,0,0,.42);cursor:pointer;font-size:16px;
}
.theme-fab:hover{color:var(--green);border-color:#31553b}

/* Desktop: V2.2.3 davranışı; kapatılırsa kayarak çıkar. */
.filter-panel{transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s ease}
.filter-panel.closed{transform:translateX(calc(-100% - 28px));opacity:0;pointer-events:none}
.event-feed{transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.event-feed.closed{transform:translateX(100%)}

.mobile-feed-tab{display:none}
.drawer-backdrop{position:absolute;z-index:24;inset:0;background:rgba(0,0,0,.48);backdrop-filter:blur(1px)}

/* Yeni uyarı: şehir/bölge merkezi etrafında yalnız görsel radar halo. */
.war-marker{width:42px;height:42px}
.war-marker .radar-disc{
  position:absolute;width:42px;height:42px;border-radius:50%;
  background:rgba(var(--radar-rgb,255,48,48),var(--radar-opacity,0));
  filter:blur(7px);opacity:.46;pointer-events:none;
}
.war-marker .radar-ring{
  position:absolute;inset:6px;border:2px solid rgba(var(--radar-rgb,255,48,48),var(--radar-opacity,0));
  border-radius:50%;opacity:0;pointer-events:none;
}
.war-marker.radar-active .ring-a{animation:x1RadarPulse 2.5s ease-out infinite}
.war-marker.radar-active .ring-b{animation:x1RadarPulse 2.5s 1.25s ease-out infinite}
@keyframes x1RadarPulse{0%{transform:scale(.6);opacity:var(--radar-opacity)}75%{opacity:.08}100%{transform:scale(3.1);opacity:0}}
.verify-dot{
  position:absolute;z-index:5;right:0;top:0;width:15px;height:15px;border-radius:50%;display:grid;place-items:center;
  background:#17120a;border:1px solid #ffb020;color:#ffbf3d;font:800 10px/1 var(--mono);box-shadow:0 0 8px rgba(255,176,32,.35)
}
.verify-badge{
  display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;margin-left:1px;
  color:#ffbf3d;border:1px solid #8b651f;background:#17120a;font:800 10px/1 var(--mono)
}
.event-card.is-unverified{background:rgba(255,176,32,.025)}
.event-card.is-unverified:before{background:#ffb020}
.verify-note{margin:7px 0;padding:6px 7px;border:1px solid #6d5220;border-radius:5px;background:#17120a;color:#ffc14d;font-size:9px}
.popup .summary{margin-top:6px!important}.popup .raw{margin-top:6px!important;color:#798590!important;font-size:9px!important;line-height:1.45}
.popup .src a{color:#8ea4b7}
.message-excerpt{margin-top:5px!important;color:#697681!important;line-height:1.45}
.feed-more{display:block;width:calc(100% - 14px);margin:8px 7px 12px;padding:9px;border:1px solid #1b222c;border-radius:6px;background:#090c10;color:#8d99a5;cursor:pointer}
.feed-more:hover{color:var(--green);border-color:#31553b}

@media(max-width:720px){
  /* İlk açılışta iki drawer da kapalıdır. V2.2.3 harita / time-strip / stats görünümü korunur. */
  .filter-panel{
    top:100px;left:0;width:min(88vw,310px);max-height:calc(100dvh - 176px);border-radius:0 10px 10px 0;
    transform:translateX(calc(-100% - 18px));opacity:0;pointer-events:none;z-index:45;
  }
  .filter-panel.open{transform:translateX(0);opacity:1;pointer-events:auto}
  .filter-panel.closed{transform:translateX(calc(-100% - 18px));opacity:0;pointer-events:none}
  .filter-fab{
    top:100px;left:0;border-left:0;border-radius:0 7px 7px 0;padding:10px 11px;z-index:40;
    background:rgba(4,6,9,.97);box-shadow:0 8px 24px rgba(0,0,0,.45)
  }
  .event-feed{
    z-index:45;top:0;right:0;bottom:0;width:min(92vw,360px);border-left:1px solid #1b222c;
    transform:translateX(100%);opacity:0;pointer-events:none;box-shadow:-12px 0 32px #0009;
  }
  .event-feed.open{transform:translateX(0);opacity:1;pointer-events:auto}
  .event-feed.closed{transform:translateX(100%);opacity:0;pointer-events:none}
  .mobile-feed-tab{
    display:block;position:absolute;z-index:40;top:100px;right:0;border:1px solid #1b222c;border-right:0;
    border-radius:7px 0 0 7px;background:rgba(4,6,9,.97);color:#a9b3bd;padding:10px 9px 10px 11px;
    box-shadow:0 8px 24px rgba(0,0,0,.45);font:700 9px var(--mono);cursor:pointer
  }
  .mobile-feed-tab b{color:var(--green);margin-left:4px}
  .drawer-backdrop{z-index:44}
  .filter-panel,.event-feed{z-index:45}
  .theme-fab{top:12px;right:12px;width:34px;height:32px}
  .time-strip{top:55px}
  .map-stage{right:0!important}
}

@media(max-width:430px){
  .time-strip button{min-width:45px;font-size:9px}
  .time-strip .icon-only{min-width:36px}
}

/* V2.6 Patch 1 — source filters + greyer dark map + larger animated event markers */
.source-chips{display:flex;flex-wrap:wrap;gap:5px}
.source-chip{
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  border:1px solid #27313a;border-radius:4px;background:#0e141a;color:#7f8b96;
  padding:5px 7px;font-size:9px;cursor:pointer;transition:border-color .16s,color .16s,background .16s
}
.source-chip.active{border-color:#326843;background:rgba(0,255,65,.09);color:#b5c0c8}
.source-chip:hover{color:var(--green);border-color:#3d7250}
.feed-system,.system-pill,.approx-pill{
  display:inline-flex;align-items:center;border:1px solid #35404a;border-radius:999px;
  padding:1px 5px;color:#96a3ae;background:#11171d;font:700 8px/1.4 var(--mono);vertical-align:middle
}
.approx-pill{margin-left:4px;font-weight:500;color:#74818c}

/* Dark map should be charcoal/grey, not crushed black. Light stays exactly V2.2.3-like. */
html[data-map-theme="light"] #map .maplibregl-canvas{
  filter:grayscale(.82) brightness(.46) contrast(1.18) saturate(.55) !important;
}
html[data-map-theme="dark"] #map .maplibregl-canvas{
  filter:grayscale(.50) brightness(1.16) contrast(.92) saturate(.52) !important;
}
html[data-map-theme="dark"] .maplibregl-map{background:#252b31 !important}
html[data-map-theme="dark"] .maplibregl-ctrl-attrib{background:rgba(31,36,42,.90)!important;color:#8d98a3!important}
html[data-map-theme="dark"] .maplibregl-ctrl-group{background:rgba(34,39,45,.94)!important;border-color:#49515a!important}

/* Larger, always-lively symbols. The 15-minute halo uses the same hue as the event type. */
.war-marker{width:52px!important;height:52px!important}
.war-marker .glyph{
  width:31px!important;height:31px!important;
  filter:drop-shadow(0 0 7px var(--marker-color)) drop-shadow(0 0 12px rgba(0,0,0,.72))!important;
  animation:x1MarkerFloat 2.8s ease-in-out infinite
}
.war-marker .radar-disc{
  width:52px!important;height:52px!important;
  background:rgba(var(--radar-rgb),var(--radar-opacity))!important;
  filter:blur(9px)!important;opacity:.62!important
}
.war-marker .radar-ring{
  inset:7px!important;border:2px solid rgba(var(--radar-rgb),var(--radar-opacity))!important;
  box-shadow:0 0 10px rgba(var(--radar-rgb),calc(var(--radar-opacity) * .6))
}
.war-marker.radar-active .ring-a{animation:x1RadarPulseV26 2.8s ease-out infinite!important}
.war-marker.radar-active .ring-b{animation:x1RadarPulseV26 2.8s 1.4s ease-out infinite!important}
@keyframes x1RadarPulseV26{
  0%{transform:scale(.55);opacity:var(--radar-opacity)}
  62%{opacity:calc(var(--radar-opacity) * .24)}
  100%{transform:scale(3.9);opacity:0}
}
@keyframes x1MarkerFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.035)}}
@keyframes x1ShieldPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.11)}}
@keyframes x1SirenShake{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}
@keyframes x1BoatBob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(2px) rotate(1deg)}}
@keyframes x1PlaneFloat{0%,100%{transform:translate(-1px,1px) rotate(-2deg)}50%{transform:translate(2px,-2px) rotate(2deg)}}
@keyframes x1EvacPulse{0%,100%{transform:translateX(0)}50%{transform:translateX(2px)}}
.war-marker.air_defence .glyph{animation:x1ShieldPulse 1.5s ease-in-out infinite!important}
.war-marker.siren .glyph{animation:x1SirenShake 1.05s ease-in-out infinite!important}
.war-marker.bek .glyph{animation:x1BoatBob 2.2s ease-in-out infinite!important}
.war-marker.aviation .glyph{animation:x1PlaneFloat 2.4s ease-in-out infinite!important}
.war-marker.evacuation .glyph{animation:x1EvacPulse 1.7s ease-in-out infinite!important}
.war-marker.shelter .glyph{animation:x1ShieldPulse 2.4s ease-in-out infinite!important}
.war-marker.missile .glyph{animation:drift 1.8s ease-in-out infinite!important}
.war-marker.uav .glyph{animation:x1MarkerFloat 2.1s ease-in-out infinite!important}

@media(max-width:720px){
  .war-marker{width:50px!important;height:50px!important}
  .war-marker .glyph{width:30px!important;height:30px!important}
  .war-marker .radar-disc{width:50px!important;height:50px!important}
  .source-chip{font-size:8px;padding:5px 6px}
}

/* X1L3M V2.6 Patch 2 — stable markers, auth/admin, RU/TR, donation */
html[data-map-theme="dark"] #map .maplibregl-canvas{
  filter:grayscale(.62) brightness(1.42) contrast(.86) saturate(.34) !important;
}
html[data-map-theme="dark"] .maplibregl-map{background:#343a40!important}
html[data-map-theme="dark"] .maplibregl-ctrl-attrib{background:rgba(43,49,55,.94)!important;color:#a2adb7!important}
html[data-map-theme="dark"] .maplibregl-ctrl-group{background:rgba(46,52,58,.96)!important;border-color:#606a74!important}

/* Marker anchor is a zero-size geospatial point. Visual animation never touches MapLibre's transform. */
.x1-marker-anchor{
  width:0!important;height:0!important;overflow:visible!important;position:relative!important;
  pointer-events:auto!important;contain:layout style;
}
.x1-marker-anchor>.war-marker{
  position:absolute!important;left:0!important;top:0!important;
  transform:translate(-50%,-50%)!important;transform-origin:center center!important;
  margin:0!important;max-width:none!important;max-height:none!important;
}
.war-marker.clear .glyph{animation:none!important;color:var(--marker-color)!important;filter:drop-shadow(0 0 7px rgba(99,217,138,.72))!important}
.war-marker.clear .radar-disc,.war-marker.clear .radar-ring{display:none!important}
.event-card.is-clear{background:rgba(99,217,138,.025)}
.event-card.is-clear:before{background:#63D98A!important}
.event-summary{margin-top:4px!important;color:#7e8993!important;font-size:9px!important}

.utility-stack{
  position:absolute;z-index:33;top:14px;right:calc(var(--feed) + 58px);display:flex;gap:5px;
}
.utility-btn{
  min-width:34px;height:34px;padding:0 9px;border:1px solid #1b222c;border-radius:7px;
  background:rgba(4,6,9,.97);color:#98a4ae;box-shadow:0 8px 28px rgba(0,0,0,.42);cursor:pointer;
  font:700 9px var(--mono)
}
.utility-btn:hover{color:var(--green);border-color:#31553b}
.theme-fab{right:calc(var(--feed) + 16px)!important}

.auth-pending #app{opacity:.15;filter:blur(3px);pointer-events:none}
.auth-locked #app{filter:blur(5px) saturate(.55);pointer-events:none;user-select:none}
.auth-overlay{
  position:fixed;z-index:200;inset:0;display:grid;place-items:center;background:rgba(3,5,8,.82);overflow:hidden;
  backdrop-filter:blur(12px)
}
.auth-grid{position:absolute;inset:-20%;background-image:linear-gradient(rgba(0,255,65,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,65,.045) 1px,transparent 1px);background-size:38px 38px;transform:perspective(500px) rotateX(58deg) translateY(-8%);transform-origin:center 65%;mask-image:linear-gradient(to bottom,transparent,black 30%,black 75%,transparent)}
.auth-card{
  position:relative;width:min(92vw,430px);padding:30px 30px 26px;border:1px solid #24312a;border-radius:12px;
  background:linear-gradient(180deg,rgba(9,13,17,.98),rgba(4,7,10,.98));box-shadow:0 32px 100px rgba(0,0,0,.72),0 0 60px rgba(0,255,65,.05);overflow:hidden
}
.auth-card:before{content:"";position:absolute;inset:0;border-top:1px solid rgba(0,255,65,.22);pointer-events:none}
.auth-scan{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--green),transparent);box-shadow:0 0 16px var(--green);opacity:.35;animation:authScan 4.5s linear infinite}
@keyframes authScan{from{top:-2px}to{top:100%}}
.auth-logo{display:flex;align-items:center;gap:8px;color:#dfe7ec;font:800 18px var(--hud);letter-spacing:.13em}.auth-logo span{color:var(--green)}.auth-logo b{margin-left:auto;color:var(--green);font:700 8px var(--mono);border:1px solid #265438;padding:3px 6px;border-radius:3px;background:#06140b}
.auth-kicker{margin:14px 0 5px;color:#50605a;font-size:8px;letter-spacing:.18em}.auth-card h1{margin:0;color:#f0f5f3;font:800 22px var(--hud);letter-spacing:.08em}.auth-copy{margin:8px 0 20px;color:#77838d;font-size:10px}
.auth-card form{display:grid;gap:12px}.auth-card label,.admin-card label{display:grid;gap:6px;color:#798691;font-size:9px;letter-spacing:.08em}.auth-card input,.admin-card input,.admin-card textarea{
  width:100%;border:1px solid #27323a;border-radius:6px;background:#080d12;color:#e6edf3;outline:none;padding:10px 11px;font:12px var(--mono)
}.auth-card input:focus,.admin-card input:focus,.admin-card textarea:focus{border-color:#2a6a40;box-shadow:0 0 0 2px rgba(0,255,65,.06)}
.auth-submit{border:1px solid #24683a;border-radius:6px;background:linear-gradient(180deg,#0b3a1b,#082813);color:var(--green);padding:10px 13px;cursor:pointer;font:800 10px var(--hud);letter-spacing:.08em}.auth-submit:hover{background:#0a4420}.auth-submit i{float:right;font-style:normal}.auth-error{min-height:16px;color:#ff6868;font-size:9px}.auth-public-close{width:100%;margin-top:8px;border:0;background:transparent;color:#66737d;cursor:pointer;font-size:9px}.auth-public-close:hover{color:#b5c0c8}

.modal-shell{position:fixed;z-index:210;inset:0;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}.modal-card{position:relative;width:min(94vw,620px);max-height:88vh;overflow:auto;border:1px solid #27313a;border-radius:12px;background:#070a0e;color:#e6edf3;box-shadow:0 30px 100px #000c}.modal-card header{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-bottom:1px solid #ffffff0e}.modal-card header small{color:#52606b;font-size:8px;letter-spacing:.16em}.modal-card header h2{margin:3px 0 0;font:800 15px var(--hud);letter-spacing:.07em}.modal-card header>button{width:30px;height:30px;border:1px solid #27313a;border-radius:5px;background:#0b1015;color:#9aa5ae;cursor:pointer}
.admin-grid{padding:18px;display:grid;gap:17px}.admin-switch{grid-template-columns:1fr auto!important;align-items:center;padding:12px;border:1px solid #1f2930;border-radius:8px;background:#0a0f14}.admin-switch span{display:block}.admin-switch b{display:block;color:#cbd4da;font-size:11px}.admin-switch small{display:block;margin-top:3px;color:#65727c;font-size:9px}.admin-switch input{width:18px;height:18px;accent-color:var(--green)}.admin-section{display:grid;gap:10px}.admin-section h3{margin:0;color:var(--green);font:700 10px var(--hud);letter-spacing:.1em}.admin-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-check{margin:0!important;padding:0!important;border:0!important}.qr-upload img{margin-top:6px;width:120px;height:120px;object-fit:contain;border:1px solid #27313a;border-radius:8px;background:#fff;padding:5px}.admin-card footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 18px;border-top:1px solid #ffffff0e}.admin-card footer span{margin-right:auto;color:#63D98A;font-size:9px}
.donation-card{width:min(92vw,390px);padding-bottom:18px}.donation-card>p{padding:0 18px;color:#909ca6}.donation-meta{display:flex;gap:7px;padding:0 18px 12px}.donation-meta b,.donation-meta span{border:1px solid #28323a;border-radius:999px;padding:4px 8px;background:#0b1015;font-size:9px}.donation-card img{display:block;width:190px;height:190px;object-fit:contain;margin:0 auto 14px;background:#fff;border-radius:10px;padding:8px}.donation-card code{display:block;margin:0 18px 12px;padding:10px;border:1px solid #27313a;border-radius:6px;background:#05080b;color:#c8d2d9;word-break:break-all;font-size:10px}.donation-card>.auth-submit{display:block;margin:0 18px;width:calc(100% - 36px)}

@media(max-width:900px){.utility-stack{right:58px}.theme-fab{right:16px!important}}
@media(max-width:720px){
  .utility-stack{top:12px;right:54px;gap:4px}.utility-btn{height:32px;min-width:31px;padding:0 7px}.theme-fab{top:12px!important;right:14px!important;width:34px;height:32px}
  .admin-two{grid-template-columns:1fr}.auth-card{padding:25px 20px 22px}.modal-shell{padding:10px}.modal-card{max-height:92dvh}
  .x1-marker-anchor>.war-marker{transform:translate(-50%,-50%)!important}
}
