/* IranRelations v1.0.30.14 — shared profile panel and 12-slot status grid.
   Presentation is expressed only through the HUD tokens (--hud-accent, --hud-panel,
   --hud-line, --hud-text, --hud-muted, --hud-glow, --hud-mono), so every interface
   style and all twenty colors inherit this surface. Per-style blocks at the end adapt
   the shape to each architecture without duplicating any structure. */
.hud-profile-tab{position:fixed;right:0;top:50%;translate:0 -50%;z-index:499;display:grid;justify-items:center;gap:.5rem;padding:.9rem .4rem;border:1px solid var(--hud-line);border-right:0;border-radius:.7rem 0 0 .7rem;background:var(--hud-panel-strong);color:var(--hud-text);cursor:pointer;box-shadow:0 0 1.4rem var(--hud-glow),0 .8rem 2rem rgba(0,0,0,.4);transition:background .18s ease,box-shadow .18s ease,translate .18s ease}
.hud-profile-tab:hover,.hud-profile-tab:focus-visible{background:var(--hud-panel);box-shadow:0 0 2.2rem var(--hud-glow),0 .8rem 2rem rgba(0,0,0,.45);translate:-.15rem -50%}
.hud-profile-tab-label{writing-mode:vertical-rl;font:800 .6rem/1 var(--hud-mono);letter-spacing:.22em;color:var(--hud-accent)}
.hud-profile-tab-count{writing-mode:vertical-rl;font:700 .52rem/1 var(--hud-mono);letter-spacing:.12em;color:var(--hud-muted)}
.hud-profile-tab-mark{display:grid;gap:2px;width:.85rem}
.hud-profile-tab-mark i{height:2px;border-radius:2px;background:var(--hud-accent);opacity:.55;animation:hud-profile-mark 1.8s ease-in-out infinite}
.hud-profile-tab-mark i:nth-child(2){animation-delay:.2s;width:70%}
.hud-profile-tab-mark i:nth-child(3){animation-delay:.4s;width:45%}
@keyframes hud-profile-mark{50%{opacity:1;box-shadow:0 0 .5rem var(--hud-accent)}}
.hud-profile-panel{position:fixed;right:0;top:0;bottom:0;z-index:500;width:min(27rem,94vw);display:grid;grid-template-rows:auto auto auto auto auto 1fr;align-content:start;gap:.7rem;padding:.85rem .9rem calc(1rem + env(safe-area-inset-bottom));border-left:1px solid var(--hud-line);background:linear-gradient(var(--hud-panel-strong),var(--hud-panel-strong)),var(--hud-bg);box-shadow:-1.2rem 0 3rem rgba(0,0,0,.5),0 0 2.4rem var(--hud-glow);overflow-y:auto;overscroll-behavior:contain;translate:100% 0;visibility:hidden;transition:translate .26s cubic-bezier(.32,.72,0,1),visibility .26s}
.hud-profile-panel[data-open="true"]{translate:0 0;visibility:visible}
.hud-profile-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;position:sticky;top:0;z-index:2;margin:-.85rem -.9rem 0;padding:.7rem .9rem;border-bottom:1px solid var(--hud-line);background:var(--hud-panel-strong)}
.hud-profile-close{min-width:2.1rem;min-height:2.1rem;border:1px solid var(--hud-line);border-radius:.4rem;background:transparent;color:var(--hud-accent);font:700 .8rem/1 var(--hud-mono);cursor:pointer}
.hud-profile-close:hover,.hud-profile-close:focus-visible{background:var(--hud-glow)}
.hud-profile-identity{display:grid;grid-template-columns:4.6rem minmax(0,1fr);gap:.55rem .7rem;padding:.7rem;border:1px solid var(--hud-line);background:color-mix(in srgb,var(--hud-panel) 70%,transparent)}
.hud-profile-avatar{grid-row:span 2;display:grid;place-items:center;width:4.6rem;height:4.6rem;overflow:hidden;border:1px solid var(--hud-line);border-radius:50%;background:var(--hud-bg-2);color:var(--hud-accent);font:900 1rem/1 var(--hud-mono);letter-spacing:.1em}
.hud-profile-avatar[data-filled="true"]{border-color:var(--hud-accent);box-shadow:0 0 1rem var(--hud-glow)}
.hud-profile-avatar img{width:100%;height:100%;object-fit:cover}
.hud-profile-summary{align-self:center;display:grid;gap:.25rem;min-width:0}
.hud-profile-summary strong{font:800 .88rem/1.2 var(--hud-font,inherit);color:var(--hud-text);overflow-wrap:anywhere}
.hud-profile-summary>span{font-size:.72rem;line-height:1.45;color:var(--hud-muted);overflow-wrap:anywhere}
.hud-profile-tags{display:flex;flex-wrap:wrap;gap:.25rem}
.hud-profile-tags b{padding:.15rem .35rem;border:1px solid var(--hud-line);border-radius:.25rem;font:700 .55rem/1.2 var(--hud-mono);color:var(--hud-accent)}
.hud-profile-identity label,.hud-profile-editor label{grid-column:1/-1;display:grid;gap:.28rem;min-width:0}
.hud-profile-identity label>span,.hud-profile-editor label>span{font:700 .56rem/1 var(--hud-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--hud-muted)}
.hud-profile-panel :where(input[type=text]){width:100%;min-height:2.3rem;padding:.4rem .55rem;border:1px solid var(--hud-line);border-radius:.3rem;background:var(--hud-bg);color:var(--hud-text);font:600 .76rem/1.3 var(--hud-font,inherit)}
.hud-profile-panel :where(input[type=text]):focus-visible{outline:2px solid var(--hud-accent);outline-offset:1px}
.hud-profile-panel input[type=file]{width:100%;font:600 .64rem/1.3 var(--hud-mono);color:var(--hud-muted)}
.hud-profile-panel input[type=file]::file-selector-button{margin-right:.5rem;padding:.35rem .6rem;border:1px solid var(--hud-line);border-radius:.3rem;background:var(--hud-panel);color:var(--hud-accent);font:700 .6rem/1 var(--hud-mono);letter-spacing:.08em;cursor:pointer}
.hud-profile-grid-wrap,.hud-profile-editor{display:grid;gap:.55rem;padding:.7rem;border:1px solid var(--hud-line);background:color-mix(in srgb,var(--hud-panel) 70%,transparent)}
.hud-profile-grid-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.hud-profile-grid-head output{font:800 .68rem/1 var(--hud-mono);color:var(--hud-accent)}
.hud-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}
.hud-profile-slot{position:relative;aspect-ratio:1;display:grid;overflow:hidden;padding:0;border:1px solid var(--hud-line);border-radius:.35rem;background:var(--hud-bg-2);color:var(--hud-text);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,translate .16s ease}
.hud-profile-slot:hover,.hud-profile-slot:focus-visible{border-color:var(--hud-accent);box-shadow:0 0 .9rem var(--hud-glow);translate:0 -.1rem}
.hud-profile-slot[aria-expanded="true"]{border-color:var(--hud-accent);box-shadow:0 0 0 1px var(--hud-accent),0 0 1.1rem var(--hud-glow)}
.hud-profile-slot[data-filled="true"]{border-color:color-mix(in srgb,var(--hud-accent) 60%,var(--hud-line))}
.hud-profile-slot-index{position:absolute;left:.25rem;top:.2rem;z-index:3;font:800 .5rem/1 var(--hud-mono);letter-spacing:.08em;color:var(--hud-accent);text-shadow:0 0 .4rem #000,0 0 .4rem #000}
.hud-profile-slot-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hud-profile-slot-empty{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:3px}
.hud-profile-slot-empty i{width:38%;height:2px;border-radius:2px;background:var(--hud-line)}
.hud-profile-slot-empty i:nth-child(2){width:26%}
.hud-profile-slot-empty i:nth-child(3){width:14%}
.hud-profile-slot-body{position:absolute;inset:auto 0 0;z-index:2;display:grid;gap:.1rem;padding:.3rem .3rem .28rem;background:linear-gradient(180deg,transparent,rgba(0,0,0,.82) 55%);text-align:left}
.hud-profile-slot-body b{font:700 .56rem/1.25 var(--hud-font,inherit);color:var(--hud-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.hud-profile-slot-body i{font:700 .5rem/1.2 var(--hud-mono);font-style:normal;color:var(--hud-accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud-profile-slot[data-filled="false"] .hud-profile-slot-body b{color:var(--hud-muted)}
.hud-profile-editor-preview{display:grid;place-items:center;height:8.5rem;overflow:hidden;border:1px dashed var(--hud-line);border-radius:.35rem;background:var(--hud-bg);color:var(--hud-muted);font:700 .58rem/1 var(--hud-mono);letter-spacing:.14em}
.hud-profile-editor-preview[data-filled="true"]{border-style:solid;border-color:var(--hud-accent)}
.hud-profile-editor-preview img{width:100%;height:100%;object-fit:contain}
.hud-profile-editor-actions{display:flex;flex-wrap:wrap;gap:.4rem}
.hud-profile-editor-actions button{flex:1 1 6rem;min-height:2.4rem;font:700 .68rem/1 var(--hud-mono);letter-spacing:.06em;cursor:pointer}
.hud-profile-note{margin:0;min-height:1rem;font:700 .62rem/1.4 var(--hud-mono);color:var(--hud-accent-2)}
.hud-profile-note[data-tone="warn"]{color:var(--hud-danger)}
.hud-profile-note[data-tone="ok"]{color:var(--hud-accent-2)}
.hud-profile-privacy{margin:0;font-size:.64rem;line-height:1.5;color:var(--hud-muted)}

/* Deep Space Console — layered glass, soft rounding. */
body[data-hud-style="deep-space-console"] .hud-profile-panel{border-radius:1.4rem 0 0 1.4rem;background:color-mix(in srgb,var(--hud-panel) 76%,transparent);backdrop-filter:blur(22px)}
body[data-hud-style="deep-space-console"] :where(.hud-profile-identity,.hud-profile-grid-wrap,.hud-profile-editor){border-radius:1rem;backdrop-filter:blur(14px)}
body[data-hud-style="deep-space-console"] .hud-profile-slot{border-radius:.6rem}
body[data-hud-style="deep-space-console"] .hud-profile-tab{border-radius:1rem 0 0 1rem;backdrop-filter:blur(16px)}

/* Satellite Array — orbital rounding. */
body[data-hud-style="satellite-array"] .hud-profile-panel{border-radius:2.2rem 0 0 2.2rem}
body[data-hud-style="satellite-array"] :where(.hud-profile-identity,.hud-profile-grid-wrap,.hud-profile-editor){border-radius:1.6rem}
body[data-hud-style="satellite-array"] .hud-profile-slot{border-radius:1.1rem}
body[data-hud-style="satellite-array"] .hud-profile-tab{border-radius:1.8rem 0 0 1.8rem;padding:1.1rem .45rem}
body[data-hud-style="satellite-array"] .hud-profile-editor-preview{border-radius:1.2rem}

/* Biometric Monitor — curved asymmetric panels and the shared instrument glyph. */
body[data-hud-style="biometric-monitor"] .hud-profile-panel{border-radius:2.4rem 0 0 2.4rem}
body[data-hud-style="biometric-monitor"] :where(.hud-profile-identity,.hud-profile-grid-wrap,.hud-profile-editor){position:relative;border-radius:1.8rem .3rem 1.8rem .3rem}
body[data-hud-style="biometric-monitor"] .hud-profile-grid-wrap::after{content:"⌁╲╱⌁╲╱";position:absolute;right:.8rem;bottom:.18rem;color:var(--hud-accent);font:700 .48rem/1 var(--hud-mono);letter-spacing:.16em;opacity:.55}
body[data-hud-style="biometric-monitor"] .hud-profile-slot{border-radius:.9rem .18rem .9rem .18rem}
body[data-hud-style="biometric-monitor"] .hud-profile-tab{border-radius:1.6rem 0 0 1.6rem}
body[data-hud-style="biometric-monitor"] .hud-profile-avatar{border-radius:46% 54% 44% 56%}

/* Minimal Command — hairline, flat, no glow. */
/* This style deliberately has no glass blur, so the panel needs an opaque backstop or
   page text reads through it. The flat, glow-free look is preserved. */
body[data-hud-style="minimal-command"] .hud-profile-panel{border-radius:0;background:linear-gradient(var(--hud-panel-strong),var(--hud-panel-strong)),var(--hud-bg);box-shadow:-.8rem 0 2rem rgba(0,0,0,.28)}
body[data-hud-style="minimal-command"] :where(.hud-profile-identity,.hud-profile-grid-wrap,.hud-profile-editor){border-color:color-mix(in srgb,var(--hud-line) 48%,transparent);background:transparent}
body[data-hud-style="minimal-command"] .hud-profile-tab{border-radius:.3rem 0 0 .3rem;box-shadow:0 .4rem 1.2rem rgba(0,0,0,.24)}
body[data-hud-style="minimal-command"] .hud-profile-tab-mark i{animation:none;opacity:.8;box-shadow:none}
body[data-hud-style="minimal-command"] .hud-profile-slot{border-radius:.2rem}
body[data-hud-style="minimal-command"] .hud-profile-slot:hover,body[data-hud-style="minimal-command"] .hud-profile-slot:focus-visible{box-shadow:none;translate:none;border-color:var(--hud-accent)}
body[data-hud-style="minimal-command"] .hud-profile-grid-wrap::after{display:none}

/* Aurora Globe — the flagship surface: soft glow, breathing aurora wash, orbit ring. */
body[data-hud-style="aurora-globe"] .hud-profile-panel{border-radius:1.6rem 0 0 1.6rem;border-left-color:color-mix(in srgb,var(--hud-accent) 52%,var(--hud-line));background:radial-gradient(120% 60% at 100% 0,var(--hud-glow),transparent 62%),radial-gradient(100% 50% at 0 100%,color-mix(in srgb,var(--hud-accent-2) 16%,transparent),transparent 60%),color-mix(in srgb,var(--hud-panel) 84%,transparent);backdrop-filter:blur(20px) saturate(1.15);box-shadow:-1.2rem 0 3.4rem rgba(0,0,0,.52),0 0 3rem var(--hud-glow),inset 0 0 3rem color-mix(in srgb,var(--hud-glow) 60%,transparent)}
/* The head is sticky over scrolling content, so it stays fully opaque. */
body[data-hud-style="aurora-globe"] .hud-profile-head{background:var(--hud-panel-strong);backdrop-filter:blur(18px) saturate(1.1);box-shadow:0 .4rem 1.2rem color-mix(in srgb,var(--hud-glow) 45%,transparent);border-bottom-color:color-mix(in srgb,var(--hud-accent) 42%,var(--hud-line))}
body[data-hud-style="aurora-globe"] :where(.hud-profile-identity,.hud-profile-grid-wrap,.hud-profile-editor){position:relative;border-radius:1.1rem;border-color:color-mix(in srgb,var(--hud-accent) 34%,var(--hud-line));background:linear-gradient(180deg,color-mix(in srgb,var(--hud-glow) 55%,transparent),transparent 46%),color-mix(in srgb,var(--hud-panel) 62%,transparent);backdrop-filter:blur(12px)}
/* The sweep is drawn inside the section box and animated by background-position. An
   oversized rotating cone would need overflow:hidden, which clipped the bottom row of
   slots and stopped the panel from scrolling to them. */
body[data-hud-style="aurora-globe"] :where(.hud-profile-identity,.hud-profile-grid-wrap,.hud-profile-editor)::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 0 30%,color-mix(in srgb,var(--hud-accent) 18%,transparent) 44% 56%,transparent 70% 100%);background-size:280% 100%;background-repeat:no-repeat;animation:hud-profile-aurora 9s linear infinite;pointer-events:none;opacity:.7}
@keyframes hud-profile-aurora{to{background-position:280% 0}}
body[data-hud-style="aurora-globe"] .hud-profile-avatar{border-color:var(--hud-accent);box-shadow:0 0 1.2rem var(--hud-glow),inset 0 0 1rem color-mix(in srgb,var(--hud-accent) 30%,transparent)}
body[data-hud-style="aurora-globe"] .hud-profile-avatar::after{content:"";position:absolute;width:5.6rem;height:5.6rem;border:1px solid color-mix(in srgb,var(--hud-accent) 45%,transparent);border-radius:50%;rotate:22deg;scale:1 .38;animation:hud-profile-orbit 7s linear infinite;pointer-events:none}
body[data-hud-style="aurora-globe"] .hud-profile-avatar{position:relative;overflow:visible}
body[data-hud-style="aurora-globe"] .hud-profile-avatar img{border-radius:50%}
@keyframes hud-profile-orbit{to{rotate:382deg}}
body[data-hud-style="aurora-globe"] .hud-profile-slot{border-radius:.7rem;border-color:color-mix(in srgb,var(--hud-accent) 30%,var(--hud-line));background:radial-gradient(90% 90% at 50% 12%,color-mix(in srgb,var(--hud-glow) 70%,transparent),var(--hud-bg-2))}
body[data-hud-style="aurora-globe"] .hud-profile-slot:hover,body[data-hud-style="aurora-globe"] .hud-profile-slot:focus-visible{box-shadow:0 0 1.3rem var(--hud-glow),inset 0 0 1rem color-mix(in srgb,var(--hud-accent) 22%,transparent);translate:0 -.16rem}
body[data-hud-style="aurora-globe"] .hud-profile-tab{border-radius:1.2rem 0 0 1.2rem;border-color:color-mix(in srgb,var(--hud-accent) 55%,var(--hud-line));background:linear-gradient(180deg,color-mix(in srgb,var(--hud-glow) 80%,transparent),var(--hud-panel-strong));box-shadow:0 0 2rem var(--hud-glow),0 .8rem 2rem rgba(0,0,0,.42)}
body[data-hud-style="aurora-globe"] .hud-profile-tab-label{text-shadow:0 0 .7rem var(--hud-glow)}
body[data-hud-style="aurora-globe"] .hud-profile-editor-preview{border-color:color-mix(in srgb,var(--hud-accent) 40%,var(--hud-line));border-radius:.8rem}

@media(max-width:620px){
  .hud-profile-panel{width:100vw;border-left:0;border-radius:0!important;grid-template-rows:auto auto auto auto auto 1fr}
  .hud-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hud-profile-identity{grid-template-columns:3.6rem minmax(0,1fr)}
  .hud-profile-avatar{width:3.6rem;height:3.6rem;font-size:.8rem}
  /* At this width the status deck fills the upper screen and the zoom controls sit inside
     it, so a vertically centred tab would land on both. Park it above the back-to-top
     button instead, which keeps every fixed control separately reachable. */
  .hud-profile-tab{top:auto;bottom:6rem;translate:0 0;padding:.7rem .35rem}
  .hud-profile-tab:hover,.hud-profile-tab:focus-visible{translate:-.15rem 0}
  .hud-profile-tab-count{display:none}
  /* The full-width panel would otherwise sit under the fixed interface zoom controls. */
  body[data-profile-panel-state="open"] .hud-frame-controls{opacity:0;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){
  .hud-profile-panel{transition:none}
  .hud-profile-tab,.hud-profile-slot{transition:none}
  .hud-profile-tab-mark i,body[data-hud-style="aurora-globe"] :where(.hud-profile-identity,.hud-profile-grid-wrap,.hud-profile-editor)::before,body[data-hud-style="aurora-globe"] .hud-profile-avatar::after{animation:none}
}
@media print{.hud-profile-tab,.hud-profile-panel{display:none}}
