@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700;12..96,800&family=Hanken+Grotesk:wght@400;500;600;700&display=swap');

/* ═══════════════════════════════════════════════════════════════════════
   CHORD · HALO — the app's MAIN theme
   ───────────────────────────────────────────────────────────────────────
   Floating glass-panel look layered over style.css (which stays as the
   base layout/token layer). Rules are scoped under `body.skin-halo`; the
   class is set statically on <body> in index.html — there is no toggle.
   Builds glass from --dark-bg + --brand (always solid colors) so all 11
   themes work — never color-mix(--sidebar-bg) (gradient in some themes).
   ═══════════════════════════════════════════════════════════════════════ */

body.skin-halo {
  --halo-glass:   color-mix(in srgb, var(--dark-bg) 70%, transparent);
  --halo-glass-2: color-mix(in srgb, var(--dark-bg) 80%, transparent);
  --halo-chat:    color-mix(in srgb, var(--dark-bg) 74%, transparent);
  --halo-bd:      color-mix(in srgb, #fff 11%, transparent);
  --halo-bd-soft: color-mix(in srgb, #fff 7%,  transparent);
  --halo-blur:    blur(22px) saturate(140%);
  --halo-hi:      inset 0 1px 0 color-mix(in srgb, #fff 9%, transparent);
  --halo-r-lg:    22px;
  --halo-r-md:    16px;
  --halo-r-sm:    12px;
  --halo-glow:    0 8px 30px color-mix(in srgb, var(--brand) 22%, transparent);

  font-family: 'Hanken Grotesk', 'Open Sans', system-ui, sans-serif;

  /* Ambient backdrop — deep base + two soft brand auras */
  background:
    radial-gradient(1150px 640px at 6% -10%,  color-mix(in srgb, var(--brand) 18%, transparent), transparent 60%),
    radial-gradient(1050px 600px at 108% 112%, color-mix(in srgb, var(--brand) 13%, transparent), transparent 55%),
    var(--dark-bg) !important;
}

/* Headings / identity → Bricolage; numerals lined */
body.skin-halo :is(#server-name, #chat-channel-name, .msg-author,
  .member-section-title, .channel-welcome h2, .friends-section-title,
  .modal h2, .modal h3, .ucp-name) {
  font-family: 'Bricolage Grotesque', 'Hanken Grotesk', sans-serif;
  letter-spacing: -0.01em;
}

/* ── Frame: padding + gaps turn stacked regions into floating panels ───── */
body.skin-halo #titlebar { background: transparent; }
body.skin-halo #app {
  background: transparent;
  /* preserve the app's 32px fixed-titlebar clearance, then add a 14px frame */
  padding: 46px 14px 14px;
  gap: 12px;
}
@media (max-width: 900px) {
  /* mobile uses a slide-in drawer; defer to the app's own layout */
  body.skin-halo #app { padding: 0; }
  /* keep the drawer at the classic width (no rail↔sidebar gap budget on mobile) */
  body.skin-halo #left-col { width: calc(var(--rail-w, 72px) + var(--sidebar-w, 240px)); }
}
/* #left-col's classic width is just rail+sidebar (no gap budget); the Halo
   rail↔sidebar gap (#left-top gap:12) overflows it and eats the sidebar↔chat
   gap. Add the 12px so the column fits its content → consistent 12px gaps,
   and the bottom dock spans the full sidebar width. (auto-tracks --rail-w /
   --sidebar-w for nav-expanded + sidebar-collapsed states.) */
body.skin-halo #left-col  { width: calc(var(--rail-w, 72px) + var(--sidebar-w, 240px) + 12px); gap: 12px; overflow: visible; }
body.skin-halo #left-top  { gap: 12px; overflow: visible; background: transparent; }
/* Chat header FUSES with the chat body into one card (gap:0); the member list
   floats as a separate full-height card → #main-col is the positioning context. */
body.skin-halo #main-col  { gap: 0; overflow: visible; position: relative; }
/* gap:0 — the member list is absolute (out of flow) and a 0-width #channel-info
   flex sibling + a 12px gap was shrinking #chat 12px narrower than the header
   (header looked like it overflowed right). With gap:0 the chat fills to the
   header's right edge; the member gutter is reserved via margin-right below. */
body.skin-halo #main-row  { gap: 0; overflow: visible; min-height: 0; }
/* if the channel-info / media panel opens (replaces members), give it its gap */
body.skin-halo #channel-info:not(.hidden) { margin-left: 12px; }

/* Shared glass panel recipe (#chat-header handled separately — it fuses w/ #chat) */
body.skin-halo :is(#server-rail, #sidebar, #chat, #member-list) {
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}

/* ── Server rail → floating pill ───────────────────────────────────────── */
body.skin-halo #server-rail {
  background: var(--halo-glass);
  border-radius: var(--halo-r-lg);
  padding: 12px 0 10px;
  gap: 8px;
  overflow-y: auto;
  overflow-x: hidden;
}
body.skin-halo .server-icon {
  box-shadow: inset 0 0 0 1px var(--halo-bd-soft);
  transition: border-radius .3s var(--ease-menu-open),
              transform .18s var(--ease-out),
              box-shadow .2s var(--ease), background .18s var(--ease);
}
body.skin-halo .server-icon:hover {
  transform: translateY(-1px);
  border-radius: 16px;
  box-shadow: inset 0 0 0 1px var(--halo-bd), 0 6px 16px rgba(0,0,0,.35);
}
body.skin-halo .server-icon.active {
  border-radius: 16px;
  box-shadow: 0 0 0 2px var(--brand), var(--halo-glow);
}
body.skin-halo .server-separator { background: var(--halo-bd); }

/* ── Sidebar card ──────────────────────────────────────────────────────── */
body.skin-halo #sidebar {
  background: var(--halo-glass);
  border-radius: var(--halo-r-lg);
  border-right: 1px solid var(--halo-bd);
  overflow: hidden;
}
body.skin-halo #sidebar-header {
  background-color: transparent;   /* was `background:` (shorthand) which wiped the banner image's size/position → black box */
  border-bottom: 1px solid var(--halo-bd-soft);
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 700;
}
body.skin-halo #sidebar-header:hover { background-color: var(--hover-bg); }
/* Banner servers (boost lvl 2+): keep the inline banner image, restore the
   cover/center fill the shorthand had reset, drop the divider line. The classic
   ::after legibility gradient + white text still apply (skin doesn't touch them). */
body.skin-halo #sidebar-header.has-banner {
  background-color: transparent;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-bottom: none;
}
body.skin-halo #sidebar-header.has-banner:hover { background-color: transparent; }

/* Category labels + channel items */
body.skin-halo .category-header {
  letter-spacing: .06em;
  font-weight: 700;
  opacity: .72;
}
body.skin-halo .channel-item {
  border-radius: var(--halo-r-sm);
  margin: 2px 8px;
  transition: background .15s var(--ease), color .15s var(--ease),
              padding-left .18s var(--ease-out);
}
body.skin-halo .channel-item:hover {
  background: color-mix(in srgb, #fff 5%, transparent);
  padding-left: 14px;
}
body.skin-halo .channel-item.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}
body.skin-halo .channel-item.active::before {
  content: '';
  position: absolute;
  left: -8px; top: 50%; transform: translateY(-50%);
  width: 4px; height: 18px; border-radius: 0 4px 4px 0;
  background: var(--ds-grad);
}
/* Halo draws its own brand bar via ::before above; suppress the classic
   (unscoped) .channel-item.active::after gradient bar so only ONE shows. */
body.skin-halo .channel-item.active::after { content: none; display: none; }

/* Boost gauge host glow (if present) */
body.skin-halo #boost-gauge-host:not(:empty) {
  margin: 4px 8px 2px;
}

/* ── Dock: floating user + voice bars under the sidebar ────────────────── */
body.skin-halo #left-dock {
  background: transparent;
  border-top: none;   /* kill the classic full-width seam line (the "old style" giveaway) */
  /* indent to the sidebar's left edge; flush right so the pill = sidebar width */
  padding: 0 0 0 calc(var(--rail-w, 72px) + 12px);
  gap: 8px;
}
body.skin-halo #user-panel {
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-1), var(--halo-hi);
  height: 56px;
}
body.skin-halo #voice-bar {
  margin: 0 !important;
  background: color-mix(in srgb, var(--green) 16%, var(--halo-glass-2));
  border: 1px solid color-mix(in srgb, var(--green) 34%, transparent);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-1), 0 0 22px color-mix(in srgb, var(--green) 16%, transparent);
}

/* ── Header → integrated TOP of the chat card (NOT a separate floating bar,
      NOT spanning over the member list). Confined to the chat width below. ─── */
body.skin-halo #chat-header {
  background: linear-gradient(165deg,
    color-mix(in srgb, var(--dark-bg) 66%, transparent),
    color-mix(in srgb, var(--dark-bg) 78%, transparent));
  border: 1px solid var(--halo-bd);
  border-bottom: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-lg) var(--halo-r-lg) 0 0;
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  height: 55px;
  padding: 0 18px;
  z-index: 1;
}
body.skin-halo #chat-channel-name { font-weight: 800; }
body.skin-halo .chat-header-divider { background: var(--halo-bd); }

/* Header action buttons → 32×32 soft squares, glass hover (target spec) */
body.skin-halo .chat-header-tools { gap: 3px; }
body.skin-halo .header-tool-btn {
  width: 32px; height: 32px;
  border-radius: 9px;
  color: var(--muted);
  transition: background .14s var(--ease), color .14s var(--ease);
}
body.skin-halo .header-tool-btn:hover {
  background: color-mix(in srgb, #fff 7%, transparent);
  color: var(--header);
}
body.skin-halo .header-tool-btn.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--brand);
}
body.skin-halo .header-tool-btn .ui-ico { width: 18px; height: 18px; }

/* Search → compact "🔍 Ara" glass pill that expands on focus (target spec).
   Collapsed: search icon (::before) + "Ara" label (::after); the real input's
   text/placeholder are transparent so the long dynamic placeholder never shows.
   Focus: pill widens, label hides, input text + placeholder return. */
body.skin-halo .header-search-bar {
  position: relative;
  width: 96px; height: 32px;
  margin-left: 6px;
  padding: 0 11px 0 32px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--dark-bg) 52%, transparent);
  border: 1px solid transparent;
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  transition: width .2s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease);
}
body.skin-halo .header-search-bar::before {
  content: ''; position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
  width: 15px; height: 15px; opacity: .6; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23a0a0a8' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4-4'/%3E%3C/svg%3E") center/contain no-repeat;
}
body.skin-halo .header-search-bar::after {
  content: 'Ara'; position: absolute; left: 32px; top: 50%; transform: translateY(-50%);
  font-size: 13px; color: var(--muted); pointer-events: none;
}
body.skin-halo .header-search-bar input { color: transparent; }
body.skin-halo .header-search-bar input::placeholder { color: transparent; }
body.skin-halo .header-search-bar:hover { border-color: var(--halo-bd); }
body.skin-halo .header-search-bar:focus-within {
  width: 300px;
  border-color: color-mix(in srgb, var(--brand) 55%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
body.skin-halo .header-search-bar:focus-within::after { display: none; }
body.skin-halo .header-search-bar:focus-within input { color: var(--text); }
body.skin-halo .header-search-bar:focus-within input::placeholder { color: var(--muted); }

/* ── Chat card body → fused with the header; 165° glass gradient (target
      --chatSurface) so it reads as one continuous card, not the flat old box ── */
body.skin-halo #chat {
  background: linear-gradient(165deg,
    color-mix(in srgb, var(--dark-bg) 64%, transparent) 0%,
    color-mix(in srgb, var(--dark-bg) 78%, transparent) 100%);
  border-top: none;
  border-radius: 0 0 var(--halo-r-lg) var(--halo-r-lg);
  overflow: hidden;
}
body.skin-halo #messages { padding-top: 8px; }
body.skin-halo .channel-welcome { padding: 28px 18px 12px; }

/* Message rows → hover lift with rounded highlight */
body.skin-halo .msg-group {
  border-radius: var(--halo-r-sm);
  margin: 1px 10px;
  padding-left: 12px; padding-right: 12px;
  transition: background .14s var(--ease);
}
body.skin-halo .msg-group:hover {
  background: color-mix(in srgb, #fff 4%, transparent);
}
/* Mention accent: the classic square gold ::before bar (left:0) poked out of
   Halo's rounded corners AND my brand inset bar doubled it. Use ONE gold inset
   bar (box-shadow follows the border-radius → clean rounded corners) + gold
   tint, and hide the classic ::before. No overflow:hidden (would clip the
   hover toolbar that floats above the row). */
body.skin-halo .msg-group.mentioned {
  background: color-mix(in srgb, #faa81a 10%, transparent);
  box-shadow: inset 3px 0 0 #faa81a;
}
body.skin-halo .msg-group.mentioned::before { display: none; }
body.skin-halo .msg-author { font-weight: 700; }
body.skin-halo .msg-avatar { border-radius: 32% !important; }
body.skin-halo .msg-toolbar {
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-sm);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
body.skin-halo .msg-img { border-radius: var(--halo-r-sm); }
body.skin-halo .msg-reply-quote { border-radius: 8px; }

/* ── Composer → single glass pill with focus glow (handoff spec) ────────── */
/* #input-area carries a classic rgba(255,255,255,.05) bg + shadow + border —
   the unwanted "layer behind the chatbox". Strip it so only the .input-wrapper
   pill sits on the chat surface. */
body.skin-halo #input-area { padding: 0 16px 16px; margin: 0; background: transparent; box-shadow: none; border: none; }
body.skin-halo .input-wrapper {
  background: color-mix(in srgb, var(--dark-bg) 52%, transparent);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: 17px;
  box-shadow: var(--raise, 0 6px 18px rgba(0,0,0,.3)), var(--halo-hi);
  transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
}
body.skin-halo .input-wrapper:focus-within {
  border-color: color-mix(in srgb, var(--brand) 55%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent), var(--halo-hi);
}
/* file-add button → 36×36 soft square; turns brand on hover */
body.skin-halo #attach-btn {
  border-radius: 11px;
  /* .input-wrapper align-items:flex-end olduğundan 36px'lik "+" satırın altına
     yapışıyordu; ilk satıra hizala + 4px üst boşlukla ((44-36)/2) boş composer'da
     dikeyde optik ortala, çok satırlıda ilk satırda sabit kalsın. */
  align-self: flex-start;
  margin-top: 4px;
  transition: background .15s var(--ease), color .15s var(--ease);
}
body.skin-halo #attach-btn:hover {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--brand);
}
body.skin-halo .send-btn {
  background: var(--ds-grad);
  color: #fff;
  border-radius: 10px;
}

/* ── User dock avatar → 34px squircle + 12px status dot w/ ring (spec) ───── */
body.skin-halo #user-panel .up-av-wrap { width: 34px; height: 34px; }
body.skin-halo #user-panel .up-av-wrap img,
body.skin-halo #user-panel .up-av-wrap canvas,
body.skin-halo #user-panel .up-av-wrap .avatar,
body.skin-halo #user-panel .up-av {
  width: 34px !important; height: 34px !important;
  border-radius: 30% !important;
}
body.skin-halo #user-panel .up-av-wrap .status-dot {
  width: 12px; height: 12px;
  border: 2.5px solid var(--input-bg, var(--sidebar-bg));
  right: -2px; bottom: -2px;
}

/* ── Member list → separate full-height card, top-aligned with the chat
      header (floats over the reserved right gutter, NOT under the header). ─── */
body.skin-halo #member-list {
  background: var(--halo-glass);
  border-radius: var(--halo-r-lg);
  padding: 10px;
}
@media (min-width: 901px) {
  /* Desktop-only: on mobile the member list is an m-sheet drawer — these rules
     were squeezing the chat by a phantom 252px gutter there. */
  body.skin-halo #member-list:not(.hidden) {
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: var(--member-w, 240px);
    min-width: var(--member-w, 240px);
    z-index: 2;
  }
  /* Reserve the right gutter for the floating member card — only when shown
     (:has collapses it the moment the member list is toggled off). */
  body.skin-halo #main-col:has(#member-list:not(.hidden)) #chat-header,
  body.skin-halo #main-col:has(#member-list:not(.hidden)) #main-row {
    margin-right: calc(var(--member-w, 240px) + 12px);
  }
}
body.skin-halo .member-section-title {
  letter-spacing: .05em;
  font-weight: 700;
  opacity: .74;
}
body.skin-halo .member-item {
  border-radius: var(--halo-r-sm);
  transition: background .14s var(--ease), transform .12s var(--ease-out);
}
body.skin-halo .member-item:hover {
  background: color-mix(in srgb, #fff 5%, transparent);
}

/* ── Floating surfaces: modals / tooltip / pickers / menus ─────────────── */
body.skin-halo .modal {
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-lg);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
body.skin-halo .modal-overlay {
  background: color-mix(in srgb, var(--dark-bg) 60%, transparent);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
body.skin-halo :is(.tooltip, .chord-picker, .emoji-picker, .server-dropdown) {
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}

/* ── Slim translucent scrollbars ───────────────────────────────────────── */
body.skin-halo ::-webkit-scrollbar { width: 9px; height: 9px; }
body.skin-halo ::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, #fff 12%, transparent);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
body.skin-halo ::-webkit-scrollbar-thumb:hover {
  background: color-mix(in srgb, #fff 20%, transparent);
  background-clip: padding-box;
}
body.skin-halo ::-webkit-scrollbar-track { background: transparent; }

/* ═══════════════════════════════════════════════════════════════════════
   HALO COVERAGE EXTENSION — rail squircles + settings + store + every menu
   The first pass skinned the main chat shell; this carries Halo into the
   surfaces it missed so the look is consistent everywhere the user goes.
   All still scoped under body.skin-halo → classic stays untouched.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Server rail icons → squircles. The app sets `border-radius:50%` INLINE on
   the avatar <img>, which beats the .server-icon container rules and kept the
   icons circular. Override the glyph + img so they read as squircles (the
   design target), while the active ring/scale from the first pass still show. */
body.skin-halo .server-icon .si-glyph        { border-radius: 28%; overflow: hidden; }
body.skin-halo .server-icon .si-glyph img    { border-radius: 28% !important; }
body.skin-halo .server-icon                  { border-radius: 16px; }
body.skin-halo .server-icon.home-icon .si-glyph,
body.skin-halo .server-icon.nav-btn .si-glyph { overflow: visible; }

/* ── Settings (full-modal) → floating glass panel ──────────────────────── */
body.skin-halo .full-modal {
  background: color-mix(in srgb, var(--dark-bg) 60%, transparent);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
body.skin-halo .fm-panel {
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-lg);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
body.skin-halo .fm-nav { background: transparent; }
body.skin-halo .fm-nav-item { border-radius: var(--halo-r-sm); }
body.skin-halo .fm-nav-item.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}
body.skin-halo :is(.full-modal h1, .full-modal h2, .full-modal h3) {
  font-family: 'Bricolage Grotesque', 'Hanken Grotesk', sans-serif;
  letter-spacing: -0.01em;
}
body.skin-halo :is(.fm-field input, .fm-field select, .fm-field textarea, .fm-field .csel-control) {
  border-radius: var(--halo-r-sm);
}

/* ── Store → glass cards ───────────────────────────────────────────────── */
/* Not: açılan Sunucu Takviyeleri görünümünün Halo stili artık dosyanın
   sonundaki "REV. 3" bölümünde (tasarım paketi Rev. 3 ile yenilendi). */
body.skin-halo .store-history-btn {
  border-radius: var(--halo-r-md);
  border: 1px solid var(--halo-bd-soft);
}

/* ── Every popover / menu / card → the same glass recipe ───────────────── */
body.skin-halo :is(.ctx-menu, .user-popup, .user-card, .user-card-v2,
  .pf-edit-popup, .reaction-picker-popup, .mention-dropdown, .csel-menu,
  .qs-box, .badge-tooltip) {
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
body.skin-halo .ctx-item   { border-radius: 8px; }
body.skin-halo .csel-opt   { border-radius: 8px; }
body.skin-halo .csel-control { border-radius: var(--halo-r-sm); }

/* ── Titlebar (Halo): breadcrumb on the left + palette on the right ─────────
   Hide the centered label but keep .tb-center as a flex:1 spacer so the palette
   + window controls stay pinned to the right edge. */
body.skin-halo .tb-ctx        { display: none; }
body.skin-halo .tb-breadcrumb { display: flex; gap: 8px; }
body.skin-halo .tb-palette-btn{ display: inline-flex; border-radius: 9px; }
body.skin-halo .tb-bread-ico img { border-radius: 7px !important; box-shadow: inset 0 0 0 1px var(--halo-bd-soft); }
body.skin-halo .tb-bread-name { font-family: 'Bricolage Grotesque', sans-serif; letter-spacing: -.01em; }
body.skin-halo .tb-bread-channel { opacity: .68; font-weight: 600; }
body.skin-halo .tb-bread-sep  { opacity: .5; }

/* ── Boost target → VERTICAL progress card (matches the Halo mockup):
      row 1  ⚡ Takviye Hedefi
      row 2  ▓▓▓▓▓▓░░░  (7px gradient progress bar, driven by --pct)
      row 3  19 / 30 Takviye   (sublabel)
   Pure CSS over the existing markup (tag · count · chev) — chev hidden, the
   classic absolute ::before fill is re-flowed into a real progress bar. ──── */
body.skin-halo #boost-gauge-host:not(:empty) { margin: 11px 11px 4px; }
body.skin-halo .boost-gauge { margin: 0; }
body.skin-halo .boost-pill {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  padding: 11px 13px;
  border-radius: var(--halo-r-sm);
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--brand) 18%, transparent),
    color-mix(in srgb, var(--brand) 5%, transparent));
  border: 1px solid color-mix(in srgb, var(--brand) 24%, transparent);
  box-shadow: var(--halo-hi);
  text-align: left;
  overflow: visible;
}
body.skin-halo .boost-pill:hover {
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--brand) 24%, transparent),
    color-mix(in srgb, var(--brand) 8%, transparent));
}
body.skin-halo .boost-pill-tag {
  order: 0;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 700;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--header);
}
/* the progress bar: classic fill (absolute, width:--pct) → static 7px track+fill */
body.skin-halo .boost-pill::before {
  content: '';
  display: block;
  order: 1;
  position: static;
  inset: auto;
  width: auto;
  height: 7px;
  border-radius: 4px;
  background:
    linear-gradient(90deg, var(--brand), #b58bff, var(--brand)) left center / var(--pct, 0%) 100% no-repeat,
    color-mix(in srgb, #fff 13%, transparent);
}
body.skin-halo .boost-pill-count {
  order: 2;
  font-size: 11px;
  font-weight: 600;
  opacity: .82;
  position: static;
}
body.skin-halo .boost-pill-chev { display: none; }

/* ── User panel: drop the base heavy box-shadow that fought the glass ──────── */
body.skin-halo #user-panel { box-shadow: var(--ds-shadow-1), var(--halo-hi); }

/* ── Member list: a touch more breathing room for rich presence ────────────── */
body.skin-halo .member-item { margin: 1px 4px; }

/* ════════════════════════════════════════════════════════════════════════════
   Halo DESKTOP layout: full-height server rail + user dock MERGED into the
   sidebar card (target Halo). The rail was clipped to #left-top (above the
   dock) → looked "half-finished"; the dock was a separate floating pill. Here
   the rail floats full-height and the sidebar + user dock become ONE card
   (dock = the card's bottom). Desktop-only — mobile keeps the slide-in drawer.
   (min-width wins over the non-media #server-rail/#sidebar/#user-panel rules
   above by source order, with no specificity change.)
   ════════════════════════════════════════════════════════════════════════════ */
@media (min-width: 901px) {
  body.skin-halo #left-col { position: relative; gap: 0; }
  /* rail → full-height floating column (absolute so it spans past the dock) */
  body.skin-halo #server-rail {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: var(--rail-w, 72px);
  }
  /* the sidebar (still in #left-top, flex:1) clears the now-absolute rail */
  body.skin-halo #left-top { padding-left: calc(var(--rail-w, 72px) + 12px); }
  /* sidebar = TOP of the merged card: round only the top, drop the bottom edge */
  body.skin-halo #sidebar {
    border-radius: var(--halo-r-lg) var(--halo-r-lg) 0 0;
    border-bottom: none;
  }
  /* dock is just the alignment container; the card continues on #user-panel */
  body.skin-halo #left-dock {
    background: transparent;
    border: none;
    padding: 0 0 0 calc(var(--rail-w, 72px) + 12px);
  }
  /* user panel = BOTTOM of the merged card (continues the sidebar glass) */
  body.skin-halo #user-panel {
    background: var(--halo-glass);
    border: 1px solid var(--halo-bd);
    border-top: 1px solid var(--halo-bd-soft);   /* divider from the channel list */
    border-radius: 0 0 var(--halo-r-lg) var(--halo-r-lg);
    box-shadow: var(--ds-shadow-2);
    -webkit-backdrop-filter: var(--halo-blur);
    backdrop-filter: var(--halo-blur);
    height: 54px;
  }
}

/* ════════════════════════════════════════════════════════════════════════════
   HALO COVERAGE COMPLETION — re-skin the 61 surfaces the audit found uncovered
   (voice/call, profile cards, popovers, settings content, onboarding, store/home,
   transient). All scoped under body.skin-halo; visual-only. Authored 2026-06-29.
   ════════════════════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════
   HALO · VOICE & VIDEO
   Glass shell for server voice stage, DM/GDM call, incoming-call
   banner, who's-in-voice hover card, and screen-share picker modal.
   Visual-only overrides; classic geometry untouched.
   ═══════════════════════════════════════════════════════════════ */

/* ── Server voice empty hero ───────────────────────────────── */
body.skin-halo .vc-hero-glyph {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  box-shadow: var(--halo-hi);
}
body.skin-halo .vc-hero-join {
  background: var(--ds-grad);
  border-radius: var(--halo-r-sm);
  box-shadow: var(--halo-glow);
}

/* ── Server participant cards ──────────────────────────────── */
body.skin-halo .vc-card {
  background:
    radial-gradient(120% 120% at 50% 0%, color-mix(in srgb, var(--brand) 12%, transparent) 0%, transparent 60%),
    var(--halo-glass);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-md);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}
body.skin-halo .vc-card:hover {
  border-color: var(--halo-bd);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
/* speaking ring → soft green glow */
body.skin-halo .vc-card.vc-speaking {
  border-color: transparent;
}
body.skin-halo .vc-card-avatar { z-index: 1; }
body.skin-halo .vc-card-footer {
  background: linear-gradient(transparent, color-mix(in srgb, #000 78%, transparent));
}
body.skin-halo .vc-card-stop-watch {
  background: color-mix(in srgb, #000 50%, transparent);
}
body.skin-halo .vc-card-stop-watch:hover { background: var(--red); }

/* zoomed card keeps glass frame */
body.skin-halo .vc-card.vc-card-zoomed {
  border: 1px solid color-mix(in srgb, var(--brand) 40%, transparent) !important;
  border-radius: var(--halo-r-lg) !important;
  background: var(--halo-glass-2) !important;
  box-shadow: var(--ds-shadow-3), var(--halo-glow) !important;
}

/* screen-share / stream overlay on a card */
body.skin-halo .vc-stream-overlay {
  background: color-mix(in srgb, var(--dark-bg) 60%, transparent);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: inherit;
}
body.skin-halo .vc-watch-btn {
  background: var(--ds-grad) !important;
  box-shadow: var(--halo-glow) !important;
}

/* ── Server voice control bar (floating glass pill) ────────── */
body.skin-halo .vc-controls {
  background: var(--halo-glass);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  border-top: 1px solid var(--halo-bd);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}
body.skin-halo .vc-ctrl-btn {
  background: color-mix(in srgb, #fff 7%, transparent);
  color: var(--text);
}
body.skin-halo .vc-ctrl-btn:hover {
  background: color-mix(in srgb, #fff 13%, transparent);
  color: var(--header);
  box-shadow: var(--ds-shadow-1);
}
/* swap classic blurple active → brand */
body.skin-halo .vc-ctrl-btn.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--brand);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}
body.skin-halo .vc-ctrl-btn.muted {
  background: color-mix(in srgb, var(--red) 18%, transparent);
  color: var(--red);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--red) 40%, transparent);
}
body.skin-halo .vc-ctrl-disconnect {
  background: var(--red);
  box-shadow: 0 4px 14px color-mix(in srgb, var(--red) 45%, transparent);
}
body.skin-halo .vc-ctrl-disconnect:hover {
  background: #c0392b;
  box-shadow: 0 6px 20px color-mix(in srgb, var(--red) 60%, transparent);
}
body.skin-halo .vc-ctrl-stop-stream {
  background: color-mix(in srgb, var(--red) 18%, transparent);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .vc-ctrl-stop-stream:hover { background: var(--red); color: #fff; }

/* view-action buttons */
body.skin-halo .vc-view-btn {
  background: color-mix(in srgb, #fff 6%, transparent);
  border-radius: var(--halo-r-sm);
  color: var(--text);
}
body.skin-halo .vc-view-btn:hover {
  background: color-mix(in srgb, #fff 12%, transparent);
  color: var(--header);
}
body.skin-halo .vc-view-btn.primary {
  background: var(--ds-grad);
  color: #fff;
  box-shadow: var(--halo-glow);
}
body.skin-halo .vc-view-btn.primary:hover { filter: brightness(1.06); }

/* ═══════════════════════════════════════════════════════════════
   DM / GDM CALL
   ═══════════════════════════════════════════════════════════════ */
body.skin-halo #dm-call-panel {
  background: var(--halo-glass);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-bottom: 1px solid var(--halo-bd);
}
body.skin-halo .call-grid { background: transparent; }

/* call cards */
body.skin-halo .call-card,
body.skin-halo .call-grid .call-card {
  background: var(--halo-glass);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-md);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}
body.skin-halo .call-card.call-card-zoomed {
  border: 1px solid color-mix(in srgb, var(--brand) 40%, transparent) !important;
  box-shadow: var(--ds-shadow-3), var(--halo-glow) !important;
}
body.skin-halo .call-card-footer {
  background: linear-gradient(transparent, color-mix(in srgb, #000 78%, transparent));
}
body.skin-halo .call-screen-card .call-stream-overlay {
  background: color-mix(in srgb, var(--dark-bg) 60%, transparent);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
}
body.skin-halo .call-watch-btn {
  background: var(--ds-grad);
  border-radius: var(--halo-r-sm);
  box-shadow: var(--halo-glow);
}
body.skin-halo .call-watch-btn:hover { filter: brightness(1.06); }
body.skin-halo .call-stop-watch {
  background: color-mix(in srgb, #000 50%, transparent);
}
body.skin-halo .call-stop-watch:hover { background: var(--red); }

/* call control bar (floating glass pill) */
body.skin-halo .call-controls {
  background: var(--halo-glass);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}
body.skin-halo .call-ctrl {
  background: color-mix(in srgb, #fff 7%, transparent);
  color: #fff;
}
body.skin-halo .call-ctrl:hover {
  background: color-mix(in srgb, #fff 13%, transparent);
  box-shadow: var(--ds-shadow-1);
}
body.skin-halo .call-ctrl.off { background: #fff; color: #000; }
/* swap classic blurple active → brand */
body.skin-halo .call-ctrl.active {
  background: color-mix(in srgb, var(--brand) 22%, transparent);
  color: #fff;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 30%, transparent);
}
body.skin-halo .call-ctrl.call-hangup { background: var(--red); }
body.skin-halo .call-ctrl.call-hangup:hover { background: #c0392b; }

/* ── Call preview grid (tiles sit ON the call panel glass) ─── */
body.skin-halo .cpv-tile {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .cpv-tile:hover { background: color-mix(in srgb, #fff 9%, transparent); }
body.skin-halo .cpv-watch {
  background: color-mix(in srgb, #fff 12%, transparent);
  border-radius: 10px;
}
body.skin-halo .cpv-btn { box-shadow: var(--ds-shadow-1); }
/* swap hardcoded #5865f2 / #23a55a */
body.skin-halo .cpv-video { background: var(--ds-grad); }
body.skin-halo .cpv-call  { background: #23A55A; }

/* ── Group-call ringing row ────────────────────────────────── */
body.skin-halo .call-ring-row {
  background: var(--halo-glass-2);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-bottom: 1px solid var(--halo-bd);
}
/* ringing ring uses hardcoded blurple rgba → brand */
body.skin-halo .crm-tile.ringing .crm-av {
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--brand) 55%, transparent);
}
body.skin-halo .crm-tile.ringing .crm-av::after {
  border-color: var(--brand);
}
body.skin-halo .crm-tile.joined .crm-av::after {
  border-color: #23A55A;
}

/* ═══════════════════════════════════════════════════════════════
   INCOMING CALL BANNER (glass)
   ═══════════════════════════════════════════════════════════════ */
body.skin-halo .incoming-call-banner {
  background: var(--halo-glass);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
body.skin-halo .incoming-call-banner .ic-accept { background: var(--green); }
body.skin-halo .incoming-call-banner .ic-decline { background: var(--red); }

/* ═══════════════════════════════════════════════════════════════
   SERVER "WHO'S IN VOICE" HOVER CARD (glass popover)
   ═══════════════════════════════════════════════════════════════ */
body.skin-halo #srv-voice-card {
  background: var(--halo-glass);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
body.skin-halo #srv-voice-card .svc-live {
  background: #ED4245;
}

/* ═══════════════════════════════════════════════════════════════
   SCREEN-SHARE PICKER MODAL (its own overlay/modal)
   ═══════════════════════════════════════════════════════════════ */
body.skin-halo .ssp-overlay {
  background: color-mix(in srgb, #000 55%, transparent);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
body.skin-halo .ssp-modal {
  background: var(--halo-glass-2);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-lg);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
/* tab underline → brand (already brand; keep) */
body.skin-halo .ssp-tab.active::after { background: var(--brand); }
/* source tiles sit ON the modal glass */
body.skin-halo .ssp-item {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 2px solid transparent;
  border-radius: var(--halo-r-sm);
}
body.skin-halo .ssp-item:hover {
  box-shadow: var(--ds-shadow-2);
}
/* swap hardcoded blurple selected ring → brand */
body.skin-halo .ssp-item.selected {
  border-color: color-mix(in srgb, var(--brand) 60%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent),
              0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
/* settings strip + footer translucent */
body.skin-halo .ssp-settings {
  background: color-mix(in srgb, var(--dark-bg) 45%, transparent);
  border-top: 1px solid var(--halo-bd-soft);
}
body.skin-halo .ssp-tabs,
body.skin-halo .ssp-foot {
  border-color: var(--halo-bd-soft);
}
/* quality pills (chips) */
body.skin-halo .ssp-pill {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: 10px;
}
body.skin-halo .ssp-pill:hover {
  background: color-mix(in srgb, #fff 8%, transparent);
}
body.skin-halo .ssp-pill.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  border-color: color-mix(in srgb, var(--brand) 26%, transparent);
  color: var(--header);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}
body.skin-halo .ssp-pill.active small { color: var(--muted); }
/* toggle switch track → brand when on */
body.skin-halo .ssp-switch .ssp-track {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
}
body.skin-halo .ssp-switch input:checked + .ssp-track { background: var(--brand); }


/* ═══════════════════════════════════════════════════════════════════════
   HALO · Profile & user cards
   Scoped under body.skin-halo — classic look untouched when skin is off.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Compact popout card root → glass (skin.css glass :is() omits it) ───── */
body.skin-halo .user-card-compact {
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
/* avatar ring + status ring: OPAK --dark-bg (yarı saydam cam banner'ı
   sızdırıp foto/çerçeve arasında boşluk izlenimi veriyordu) */
body.skin-halo .user-card-compact .ucc-avatar-wrap {
  box-shadow: 0 0 0 6px var(--dark-bg);
}
body.skin-halo .user-card-compact .ucc-avatar-wrap .m-status {
  border-color: var(--dark-bg);
}

/* compact card · action buttons */
body.skin-halo .ucc-btn { border-radius: 10px; }
body.skin-halo .ucc-btn.primary { background: var(--ds-grad); color: #fff; }
body.skin-halo .ucc-btn.primary:hover {
  background: var(--ds-grad); filter: brightness(1.06);
  box-shadow: 0 4px 14px color-mix(in srgb, var(--brand) 32%, transparent);
}
body.skin-halo .ucc-btn.icon {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  color: var(--muted);
}
body.skin-halo .ucc-btn.icon:hover {
  background: color-mix(in srgb, #fff 11%, transparent);
  color: var(--header);
}

/* compact card · bio + conn pills + "Profili Görüntüle" → translucent inner */
body.skin-halo .ucc-bio {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .ucc-conn-pill {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  color: var(--header);
}
body.skin-halo .ucc-conn-pill:hover {
  background: color-mix(in srgb, #fff 11%, transparent);
  border-color: color-mix(in srgb, var(--brand) 45%, transparent);
}
body.skin-halo .ucc-view-full {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
  color: var(--text);
}
body.skin-halo .ucc-view-full:hover {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  border-color: color-mix(in srgb, var(--brand) 26%, transparent);
  color: var(--header);
}

/* ── Full profile card V2 (root already glass) → inner blocks ──────────── */
/* tabs strip: drop the opaque chat-bg, soften the divider */
body.skin-halo .user-card-v2 .ucp-tabs {
  background: transparent;
  border-bottom: 1px solid var(--halo-bd-soft);
}
/* themed active underline already uses var(--ds-grad) in base skin; keep it */

/* secondary/icon button → glass chip; primary already var(--ds-grad) */
body.skin-halo .user-card-v2 .ucp-btn.icon {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  color: var(--muted);
}
body.skin-halo .user-card-v2 .ucp-btn.icon:hover {
  background: color-mix(in srgb, #fff 11%, transparent);
  color: var(--header);
}

/* bio + connection rows + date/since items → translucent inner cards */
body.skin-halo .user-card-v2 .ucp-bio,
body.skin-halo .ucp-conn-row,
body.skin-halo .ucp-since-row {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .ucp-conn-row:hover {
  background: color-mix(in srgb, #fff 11%, transparent);
  border-color: color-mix(in srgb, var(--brand) 45%, transparent);
}
/* "since" icon coin → brand tint stays, just match radius vibe */
body.skin-halo .ucp-since-icon {
  background: color-mix(in srgb, var(--brand) 18%, transparent);
}

/* ── DM profile side panel ─────────────────────────────────────────────── */
/* no-banner fallback (inline var(--input-bg)) — see inlineRefactors for the
   markup move; here we re-skin the avatar ring that reads off sidebar bg */
body.skin-halo .dpp-av-border {
  border-color: color-mix(in srgb, var(--dark-bg) 80%, transparent);
  background: color-mix(in srgb, var(--dark-bg) 80%, transparent);
}
body.skin-halo .dpp-section {
  border-top: 1px solid var(--halo-bd-soft);
}
body.skin-halo .dpp-add-btn {
  border-radius: var(--halo-r-sm);
  background: var(--ds-grad); color: #fff;
}
body.skin-halo .dpp-add-btn:hover {
  background: var(--ds-grad); filter: brightness(1.06);
}
body.skin-halo .dpp-view-full {
  background: color-mix(in srgb, #fff 4%, transparent);
  border-top: 1px solid var(--halo-bd-soft);
  color: var(--brand);
}
body.skin-halo .dpp-view-full:hover {
  background: color-mix(in srgb, #fff 9%, transparent);
}
/* DM-panel no-banner fallback class (added via inlineRefactors) */
body.skin-halo .dpp-banner.is-empty {
  background: color-mix(in srgb, var(--brand) 14%, transparent);
}

/* ── Connection chips (verified accounts) → glass chip ─────────────────── */
body.skin-halo .conn-chip {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  color: var(--text);
}
body.skin-halo .conn-chip:hover {
  background: color-mix(in srgb, #fff 11%, transparent);
}
/* keep semantic green verified mark as-is (#23A55A) */

/* ── Profile edit popup → soft brand-tint hover (compare .ctx-item) ─────── */
body.skin-halo .pf-edit-item { border-radius: 8px; }
body.skin-halo .pf-edit-item:hover {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--header);
}
body.skin-halo .pf-edit-item.danger:hover {
  background: color-mix(in srgb, var(--red) 18%, transparent);
  color: var(--red);
}

/* ── Activity cards (Spotify / game) inside profiles ───────────────────── */
body.skin-halo .user-activity {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
/* keep the semantic accent stripes (Spotify green / brand) */
body.skin-halo .user-activity--game { border-left-color: var(--brand); }
/* progress bar: subtle track on glass; Spotify green fill kept */
body.skin-halo .act-progress-bar {
  background: color-mix(in srgb, #fff 12%, transparent);
}
/* action buttons */
body.skin-halo .act-btn { border-radius: 10px; }
body.skin-halo .act-btn-listen {
  background: color-mix(in srgb, #fff 6%, transparent);
  border-color: var(--halo-bd-soft);
  color: var(--text);
}
body.skin-halo .act-btn-listen:hover {
  background: color-mix(in srgb, #fff 11%, transparent);
}
/* .act-btn-spotify stays brand-of-Spotify green */

/* ── Status popup (container .user-popup already glass) → soft rows ─────── */
body.skin-halo .up-popup-item { border-radius: 9px; }
body.skin-halo .up-popup-item:hover {
  background: color-mix(in srgb, #fff 8%, transparent);
}
body.skin-halo .up-popup-item.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
  color: var(--header);
}
body.skin-halo .up-popup-item.danger:hover {
  background: color-mix(in srgb, var(--red) 16%, transparent);
}
body.skin-halo .up-popup-sep {
  background: var(--halo-bd-soft);
}

/* ── Member role toggle popup rows (markup moved to .role-toggle-row by the
   inlineRefactors edit; here is the glass skin once inline bg is removed) ─ */
body.skin-halo .role-toggle-row {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .role-toggle-row:hover {
  background: color-mix(in srgb, #fff 11%, transparent) !important;
}
body.skin-halo .role-toggle-row.has-role {
  background: color-mix(in srgb, var(--brand) 16%, transparent) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}

/* ════════════════════════════════════════
   HALO — Popovers, menus & inline pickers
════════════════════════════════════════ */

/* ── Pins popover (ID root → glass :is() rule can't reach it) ── */
body.skin-halo #pins-pop {
  background: var(--halo-glass);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
  border-radius: var(--halo-r-lg);
}
body.skin-halo .pins-head { border-bottom: 1px solid var(--halo-bd-soft); }

/* Inner pin rows → soft translucent tiles on the glass */
body.skin-halo .pin-card {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .pin-card:hover {
  background: color-mix(in srgb, #fff 9%, transparent);
  border-color: color-mix(in srgb, var(--brand) 30%, transparent);
}

/* ── On-message reactions ── */
body.skin-halo .reaction-pill {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: 999px;
}
body.skin-halo .reaction-pill:hover {
  background: color-mix(in srgb, var(--brand) 14%, transparent);
  border-color: color-mix(in srgb, var(--brand) 26%, transparent);
}
body.skin-halo .reaction-pill.mine {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  border-color: transparent;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}

/* ── Quick switcher: hard solid brand block → soft brand-tint selection ── */
body.skin-halo .qs-item.sel {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  border-radius: var(--halo-r-sm);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}
body.skin-halo .qs-item.sel .qs-name { color: var(--text); }
body.skin-halo .qs-item.sel .qs-sub  { color: var(--muted); }

/* ── Reaction picker buttons (container already glass) → soft hover ── */
body.skin-halo .rp-btn { border-radius: var(--halo-r-sm); }
body.skin-halo .rp-btn:hover {
  background: color-mix(in srgb, #fff 8%, transparent);
}

/* ── Context menu inner: soften the hard separator line ── */
body.skin-halo .ctx-sep { background: var(--halo-bd-soft); }


/* ═══════════════════════════════════════════════════════════════════════
   CHORD · HALO SKIN — Settings & management modal CONTENT
   The .fm- and .modal shell is already glass; this re-skins the inner controls
   (role editor, channel perms, server settings, invite, create, report,
   new DM/GDM, badge manager, admin panel). Inner cards → translucent + soft
   radii; inputs → .fm-field recipe; toggles keep semantic green; classic chat apps
   blurple swapped to --brand.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Shared input/select/textarea recipe inside modals ── */
body.skin-halo :is(
  .modal-field input, .modal-field select,
  .ms-role-select,
  .invite-modal-search, .invite-field-wrap,
  .adp-input, .adp-select, .sv-sys-select,
  .kb-action,
  .adm-shop-grid input[type="text"], .adm-shop-grid input[type="number"],
  .adm-shop-grid select, .ase-wide textarea, .ase-wide input,
  .ase-feat-row select, .ase-feat-row input, .ase-row-2 input, .ase-row-2 select,
  .sv-disc-editor textarea, .sv-rule-inp
) {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-sm);
  box-shadow: none;
}
body.skin-halo :is(
  .modal-field input, .modal-field select,
  .ms-role-select,
  .adp-input, .adp-select, .sv-sys-select, .kb-action,
  .adm-shop-grid input, .adm-shop-grid select,
  .ase-wide textarea, .ase-wide input,
  .ase-feat-row select, .ase-feat-row input, .ase-row-2 input, .ase-row-2 select,
  .sv-disc-editor textarea, .sv-rule-inp
):focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
/* focus-within for wrapper fields that hold a bare input */
body.skin-halo :is(.invite-modal-search, .invite-field-wrap):focus-within {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
/* native <select> option panels read as solid dark on glass */
body.skin-halo :is(
  .modal-field select, .ms-role-select, .adp-select,
  .sv-sys-select) option { background-color: var(--dark-bg); }
body.skin-halo .sv-sys-select:hover { border-color: var(--halo-bd); }

/* ════════════════════════════ ROLE EDITOR ════════════════════════════ */
/* Tab bar */
body.skin-halo .re-tabs { border-bottom: 1px solid var(--halo-bd-soft); }
body.skin-halo .re-tab.active { color: var(--header); }
body.skin-halo .re-tab::after, body.skin-halo .ucp-tab::after { background: var(--brand); }
/* Member rows */
body.skin-halo .re-member-row { border-bottom: 1px solid var(--halo-bd-soft); }

/* Perm switches (keep green ON, soften OFF) */
body.skin-halo .re-toggle {
  background: color-mix(in srgb, #fff 14%, transparent);
}
body.skin-halo .re-toggle.on { background: #23A55A; }
body.skin-halo .re-toggle-row {
  border-top: 1px solid color-mix(in srgb, var(--halo-bd-soft) 80%, transparent);
}

/* Permission checkboxes */
body.skin-halo .perm-check-row { border-bottom: 1px solid var(--halo-bd-soft); }
body.skin-halo .perm-checkbox { border: 2px solid color-mix(in srgb, #fff 28%, transparent); }
body.skin-halo .perm-checkbox:checked { background: var(--brand); border-color: var(--brand); }

/* Role list rows → translucent tiles on glass */
body.skin-halo .role-item {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .role-item:hover { background: color-mix(in srgb, #fff 8%, transparent); }

/* ════════════ CHANNEL PERMISSION OVERWRITES ════════════ */
/* Split container + role list */
body.skin-halo .chp-split {
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-md);
}
body.skin-halo .chp-left { border-right: 1px solid var(--halo-bd-soft); }
body.skin-halo .chp-role-item { border-radius: 9px; }
body.skin-halo .chp-role-item:hover { background: color-mix(in srgb, #fff 6%, transparent); }
body.skin-halo .chp-role-item.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
  color: var(--header);
}
body.skin-halo .chp-perm-row { border-bottom: 1px solid var(--halo-bd-soft); }

/* allow/neutral/deny per-perm selector chips */
body.skin-halo .chp-tog-group {
  border: 1px solid var(--halo-bd);
  border-radius: 9px;
}
body.skin-halo .chp-tog {
  background: color-mix(in srgb, var(--dark-bg) 50%, transparent);
  border-right: 1px solid var(--halo-bd-soft);
}
body.skin-halo .chp-tog:hover { background: color-mix(in srgb, #fff 7%, transparent); }
body.skin-halo .chp-tog.allow.active {
  background: color-mix(in srgb, #23A55A 22%, transparent); color: #57f287;
}
body.skin-halo .chp-tog.neutral.active {
  background: color-mix(in srgb, #fff 12%, transparent); color: var(--muted);
}
body.skin-halo .chp-tog.deny.active {
  background: color-mix(in srgb, var(--red) 22%, transparent); color: var(--red);
}

/* ════════════════════════════ SERVER SETTINGS ════════════════════════════ */
/* Member rows */
body.skin-halo .ms-row {
  background: color-mix(in srgb, #fff 5%, transparent);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .ms-role-select { border-radius: 9px; }
body.skin-halo .ms-role-select:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent); }
body.skin-halo .ms-role-select option { background-color: var(--dark-bg); }
/* kick button — keep semantic red, soften */
body.skin-halo .ms-kick {
  background: color-mix(in srgb, var(--red) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--red) 30%, transparent);
  border-radius: 9px;
}
body.skin-halo .ms-kick:hover { background: var(--red); color: #fff; }
/* role tags + add-role pill (tag bg colors are role-driven inline → leave fill) */
body.skin-halo .ms-role-add {
  border: 1px dashed color-mix(in srgb, #fff 22%, transparent);
}
body.skin-halo .ms-role-add:hover { border-color: var(--brand); color: var(--brand); }

/* System-messages tab: switch (keep green ON) + native select */
body.skin-halo .sys-switch-track { background: color-mix(in srgb, #fff 14%, transparent); }
body.skin-halo .sys-msg-switch input:checked + .sys-switch-track { background: #23A55A; }
body.skin-halo .sys-msg-row { border-bottom: 1px solid var(--halo-bd-soft); }
body.skin-halo .sv-sys-select:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}

/* Community panels (.sv-*) */
body.skin-halo .sv-banner-preview {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
/* sv-perk-locked dashed card — purple kept as the boost/premium accent, softened */
body.skin-halo .sv-perk-locked {
  background: color-mix(in srgb, #8447D8 12%, transparent);
  border: 1px dashed color-mix(in srgb, #B675FF 34%, transparent);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .sv-perk-locked-ico {
  background: color-mix(in srgb, #B675FF 18%, transparent);
  border-radius: 9px;
}
/* Community wizard step dots / rules editor */
body.skin-halo .cw-dot.done, body.skin-halo .cw-dot.active { background: var(--brand); }
body.skin-halo .sv-rule-add {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .sv-rule-add:hover { background: color-mix(in srgb, var(--brand) 16%, transparent); }
body.skin-halo .sv-rule-del:hover {
  background: color-mix(in srgb, var(--red) 14%, transparent); color: var(--red);
}

/* ════════════════════════════ INVITE MODAL ════════════════════════════ */
/* search box */
body.skin-halo .invite-modal-search { padding: 7px 10px; }
/* friend pick rows (shared by new DM / new GDM / add-GDM-members) */
body.skin-halo .invite-friend-list { border-radius: var(--halo-r-sm); }
body.skin-halo .invite-friend-row { border-radius: 9px; }
body.skin-halo .invite-friend-row:hover { background: color-mix(in srgb, #fff 6%, transparent); }
/* send button — brand accent (was already brand) */
body.skin-halo .invite-send-btn { border-radius: 9px; }
body.skin-halo .invite-send-btn:hover { background: var(--brand); color: #fff; }
body.skin-halo .invite-send-btn.sent {
  background: color-mix(in srgb, #fff 7%, transparent);
  color: var(--muted); border-color: transparent;
}
body.skin-halo .invite-divider::before, body.skin-halo .invite-divider::after { background: var(--halo-bd-soft); }
/* copy fields (url / code) */
body.skin-halo .invite-field-wrap {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .invite-copy-icon-btn {
  background: color-mix(in srgb, #fff 6%, transparent);
  color: var(--text);
}
body.skin-halo .invite-copy-icon-btn:hover { background: var(--brand); color: #fff; }
body.skin-halo .invite-box {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
/* invite-embed preview card → glass tile */
body.skin-halo .invite-embed {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-md);
}
body.skin-halo .invite-embed-banner::after {
  background: linear-gradient(to bottom, transparent 55%, color-mix(in srgb, var(--dark-bg) 80%, transparent));
}
body.skin-halo .invite-embed-row.has-banner .invite-embed-icon {
  border: 6px solid color-mix(in srgb, var(--dark-bg) 80%, transparent);
  background: color-mix(in srgb, var(--dark-bg) 80%, transparent);
}
body.skin-halo .invite-embed-icon { background: var(--brand); }
body.skin-halo .ies-dot.online { background: #23A55A; }
/* embed join CTA — keep semantic green */
body.skin-halo .invite-embed-btn { background: #248046; border-radius: var(--halo-r-sm); }
body.skin-halo .invite-embed-btn:hover { background: #1a6334; }
body.skin-halo .invite-embed-btn.joined {
  background: color-mix(in srgb, #fff 7%, transparent); color: var(--text);
}
body.skin-halo .invite-embed-btn.joined:hover { background: color-mix(in srgb, #fff 12%, transparent); }
/* invite manager table rows */
body.skin-halo .inv-row:hover {
  background: color-mix(in srgb, #fff 5%, transparent);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .inv-revoke:hover { background: var(--red); color: #fff; }

/* ════════════════════════════ CREATE MODALS ════════════════════════════ */
/* channel-type cards + radio */
body.skin-halo .cc-type {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .cc-type:hover { background: color-mix(in srgb, #fff 8%, transparent); }
body.skin-halo .cc-type-radio { border: 2px solid color-mix(in srgb, #fff 28%, transparent); }
body.skin-halo .cc-type input:checked ~ .cc-type-radio { border-color: var(--brand); }
body.skin-halo .cc-type input:checked ~ .cc-type-radio::after { background: var(--brand); }
body.skin-halo .cc-type:has(input:checked) {
  border-color: color-mix(in srgb, var(--brand) 26%, transparent);
  background: color-mix(in srgb, var(--brand) 16%, transparent);
}
body.skin-halo .cc-private { border-top: 1px solid var(--halo-bd-soft); }
/* add-server big buttons */
body.skin-halo .asrv-big-btn {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .asrv-big-btn:hover {
  background: color-mix(in srgb, #fff 8%, transparent);
  border-color: color-mix(in srgb, var(--brand) 40%, transparent);
}

/* ════════════════════════════ ADMIN PANEL ════════════════════════════ */
body.skin-halo .adp-header { background: transparent; border-bottom: 1px solid var(--halo-bd-soft); }
body.skin-halo .adp-back-btn {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: 9px;
}
body.skin-halo .adp-back-btn:hover { background: color-mix(in srgb, #fff 12%, transparent); color: var(--header); }
/* section cards → translucent tiles */
body.skin-halo .adp-section {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .adp-msg {
  background: color-mix(in srgb, var(--dark-bg) 45%, transparent);
  border-radius: 10px;
  border: 1px solid transparent;
}
body.skin-halo .adp-msg.reported {
  border-color: color-mix(in srgb, var(--red) 50%, transparent);
  background: color-mix(in srgb, var(--red) 8%, transparent);
}
body.skin-halo .adp-msg-tag {
  background: color-mix(in srgb, var(--red) 20%, transparent); color: var(--red);
}
body.skin-halo .adp-input:focus, body.skin-halo .adp-select:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
body.skin-halo .adp-select option { background-color: var(--dark-bg); }

/* Admin shop CRUD cards + grid inputs */
body.skin-halo .adm-shop-card {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .adm-shop-card-body {
  border-top: 1px solid var(--halo-bd-soft);
  background: color-mix(in srgb, #000 12%, transparent);
}
body.skin-halo :is(
  .adm-shop-grid input[type="text"], .adm-shop-grid input[type="number"],
  .adm-shop-grid select, .ase-wide textarea, .ase-wide input,
  .ase-feat-row select, .ase-feat-row input, .ase-row-2 input, .ase-row-2 select
) { background: color-mix(in srgb, var(--dark-bg) 55%, transparent); }
body.skin-halo .ase-active-wrap input { accent-color: var(--brand); }
/* features sub-editor dashed card */
body.skin-halo .ase-features {
  background: color-mix(in srgb, #fff 4%, transparent);
  border: 1px dashed var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .ase-feat-del {
  background: color-mix(in srgb, var(--red) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--red) 30%, transparent);
  border-radius: 9px;
}
body.skin-halo .ase-actions { border-top: 1px solid var(--halo-bd-soft); }


/* ════════════════════════════════════════════════════════════════════════
   HALO · Onboarding / community / join flows
   Re-skins join flow, onboarding modals, rules/announce-follow gate bars,
   rules-gate modal, welcome screen, community wizard. Blurple → brand.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Announcement-follow bar + rules-gate bar (sit where glass composer is) ── */
body.skin-halo .announce-follow-bar {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
  box-shadow: var(--halo-hi);
}
body.skin-halo .afb-ico { color: var(--brand); }
body.skin-halo .afb-btn {
  background: var(--ds-grad);
  border: none;
  border-radius: var(--halo-r-sm);
  box-shadow: var(--halo-glow);
  color: #fff;
}
body.skin-halo .afb-btn:hover { filter: brightness(1.08); }

/* ── Community wizard (Faz 0): step dots + check icons ── */
body.skin-halo .cw-dot {
  background: color-mix(in srgb, #fff 12%, transparent);
}
body.skin-halo .cw-dot.done,
body.skin-halo .cw-dot.active { background: var(--brand); }
body.skin-halo .cw-li-ico { color: var(--brand); }

/* ── Rules-gate modal: rule rows + accept checkbox ── */
body.skin-halo .rg-wrap .rg-rules li { color: var(--text); }
body.skin-halo .rg-check input { accent-color: var(--brand); }

/* ── Onboarding member flow (Faz 3): option cards ── */
body.skin-halo .onb-opt {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1.5px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .onb-opt:hover {
  background: color-mix(in srgb, #fff 8%, transparent);
}
body.skin-halo .onb-opt.on {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  border-color: transparent;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}
body.skin-halo .onb-opt-check {
  border-color: color-mix(in srgb, #fff 18%, transparent);
}
body.skin-halo .onb-opt.on .onb-opt-check {
  border-color: var(--brand);
  background-color: var(--brand);
}

/* ── Onboarding editor (settings) ── */
body.skin-halo .onb-edit-q {
  background: color-mix(in srgb, #fff 4%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .onb-q-title-inp,
body.skin-halo .onb-opt-title-inp,
body.skin-halo .onb-opt-emoji-inp{
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .onb-q-title-inp:focus,
body.skin-halo .onb-opt-title-inp:focus,
body.skin-halo .onb-opt-emoji-inp:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
body.skin-halo .onb-mini input { accent-color: var(--brand); }
body.skin-halo .onb-add-opt,
body.skin-halo .onb-add-q {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
  color: var(--text);
}
body.skin-halo .onb-add-opt:hover,
body.skin-halo .onb-add-q:hover {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
}

/* ════════════════════════════════════════════════════════════════════════
   Server JOIN flow (full-screen, z 10050)
   ════════════════════════════════════════════════════════════════════════ */

/* Scrim → stronger glass blur */
body.skin-halo .jf-scrim {
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  backdrop-filter: blur(22px) saturate(120%);
}

/* Welcome-step server icon + hero gradient → brand grad */
body.skin-halo .jf-server-ico {
  background: var(--ds-grad);
}

/* Welcome quick-launch channel rows */
body.skin-halo .jf-wchannel {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .jf-wchannel:hover {
  background: color-mix(in srgb, #fff 10%, transparent);
  border-color: color-mix(in srgb, var(--brand) 40%, transparent);
}

/* Primary pill: hard #fff → brand gradient */
body.skin-halo .jf-primary {
  background: var(--ds-grad);
  color: #fff;
  box-shadow: var(--halo-glow);
}
body.skin-halo .jf-primary:hover:not(:disabled) {
  box-shadow: var(--halo-glow), 0 8px 24px color-mix(in srgb, var(--brand) 30%, transparent);
}

/* Question + rules card → Halo glass */
body.skin-halo .jf-card {
  background: var(--halo-glass);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-lg);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  box-shadow: var(--ds-shadow-3, var(--ds-shadow-2)), var(--halo-hi);
}
body.skin-halo .jf-req { color: #f0b232; }

/* Option tiles inside the glass card */
body.skin-halo .jf-opt {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1.5px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .jf-opt:hover {
  background: color-mix(in srgb, #fff 10%, transparent);
}
body.skin-halo .jf-opt.on {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  border-color: transparent;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}


/* ══════════════════════════════════════════════════════════════════════════
   HALO — Store / Discovery / Home pages
   Cards → glass recipe · inner rows/chips → translucent · active tabs → soft
   brand-tint · classic blurple accents → var(--brand). Visual-only.
   (Augments the partial .store-history-btn / .bv-* rules
   already in skin.css; appended later so these win on conflict.)
   ══════════════════════════════════════════════════════════════════════════ */

/* ── STORE: wallet pill — Kristal yükleme girişi (tıklanabilir) ───────────── */
body.skin-halo .wallet-pill {
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--brand) 16%, transparent),
    color-mix(in srgb, var(--brand) 6%, transparent));
  border: 1px solid var(--halo-bd-soft);
  box-shadow: var(--halo-hi);
  cursor: pointer;
  transition: border-color .15s var(--ease), transform .15s var(--ease), box-shadow .15s var(--ease);
}
body.skin-halo .wallet-pill:hover {
  border-color: color-mix(in srgb, var(--brand) 55%, transparent);
  transform: translateY(-1px);
  box-shadow: var(--halo-hi), 0 6px 16px color-mix(in srgb, var(--brand) 22%, transparent);
}

body.skin-halo .price-chip { border-radius: 9px; }


/* ── STORE: history button + table ───────────────────────────────────────── */
body.skin-halo .store-history-btn {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .store-history-btn:hover {
  background: color-mix(in srgb, #fff 8%, transparent);
  border-color: color-mix(in srgb, var(--brand) 40%, transparent);
}
body.skin-halo .store-history-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
body.skin-halo .store-history-table th,
body.skin-halo .store-history-table td {
  border-bottom: 1px solid var(--halo-bd-soft);
}

/* ── STORE: empty / loading states ───────────────────────────────────────── */
body.skin-halo :is(.store-empty, .store-loading) { color: var(--muted); }

/* ══════════════════════════════════════════════════════════════════════════
   DISCOVERY (Keşfet) + My-servers
   ══════════════════════════════════════════════════════════════════════════ */

/* page-view canvas inherits the chat glass elsewhere; head divider → hairline */
body.skin-halo .sp-head { border-bottom: 1px solid var(--halo-bd-soft); }

/* sp tabs: solid brand → soft brand-tint when active */
body.skin-halo .sp-tab { border-radius: var(--halo-r-sm); }
body.skin-halo .sp-tab:hover { background: color-mix(in srgb, #fff 6%, transparent); }
body.skin-halo .sp-tab.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--header);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}

/* sp search bar → input-on-glass field */
body.skin-halo .sp-search {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .sp-search:focus-within {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}

/* My-servers cards (flat sidebar fill → glass tile) */
body.skin-halo .msp-card {
  background: var(--halo-glass);
  border: 1px solid var(--halo-bd-soft);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-1), var(--halo-hi);
}
body.skin-halo .msp-card:hover {
  background: var(--halo-glass-2);
  border-color: var(--halo-bd);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}

/* Discovery server cards (flat var(--card-bg) → glass) */
body.skin-halo .disc-card {
  background: var(--halo-glass);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-lg);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}
body.skin-halo .disc-card:hover {
  box-shadow: var(--ds-shadow-3), var(--halo-glow), var(--halo-hi);
}
/* the avatar ring that punches through the banner → glass edge */
body.skin-halo .disc-card-icon {
  border-color: color-mix(in srgb, var(--dark-bg) 82%, transparent);
}
/* category tag on a card → soft brand chip (was rgba blurple) */
body.skin-halo .disc-card-cat {
  color: var(--brand);
  background: color-mix(in srgb, var(--brand) 16%, transparent);
}
/* join button keeps semantic green; "joined" → translucent inner */
body.skin-halo .disc-join { border-radius: var(--halo-r-sm); }
body.skin-halo .disc-join.joined {
  background: color-mix(in srgb, #fff 7%, transparent);
  color: var(--text);
}

/* category chips: flat card fill → translucent; active solid brand → soft */
body.skin-halo .disc-chip {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  color: var(--muted);
}
body.skin-halo .disc-chip:hover {
  background: color-mix(in srgb, #fff 9%, transparent);
  color: var(--text);
}
body.skin-halo .disc-chip.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--header);
  border-color: transparent;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}

/* community section card + enable/disable + editor inputs */
body.skin-halo .sv-comm-card {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-md);
}
body.skin-halo .sv-comm-card-ico {
  color: var(--brand);
  background: color-mix(in srgb, var(--brand) 16%, transparent);
}
body.skin-halo :is(.sv-disc-editor textarea, .sv-rule-inp) {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-sm);
}
body.skin-halo :is(.sv-disc-editor textarea:focus, .sv-rule-inp:focus) {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
body.skin-halo .sv-rule-add {
  background: color-mix(in srgb, #fff 6%, transparent);
  border-radius: var(--halo-r-sm);
}

/* ══════════════════════════════════════════════════════════════════════════
   HOME — friends, tabs, add-friend, notifications, bookmarks/reminders, games
   ══════════════════════════════════════════════════════════════════════════ */

/* friends list rows → translucent tile (was flat hover only) */
body.skin-halo .friend-item { border-radius: var(--halo-r-sm); }
body.skin-halo .friend-item:hover {
  background: color-mix(in srgb, #fff 6%, transparent);
  border-color: var(--halo-bd-soft);
}

/* friend-action round buttons: input fill → translucent; swap blurple DM hover */
body.skin-halo .fi-btn {
  background: color-mix(in srgb, #fff 6%, transparent);
}
body.skin-halo .fi-btn:hover {
  background: color-mix(in srgb, #fff 11%, transparent);
  color: var(--header);
}
body.skin-halo .fi-btn.accept:hover {
  background: color-mix(in srgb, var(--green) 22%, transparent);
  color: var(--green);
}
body.skin-halo .fi-btn.decline:hover {
  background: color-mix(in srgb, var(--red) 22%, transparent);
  color: var(--red);
}
body.skin-halo .fi-btn.dm-btn:hover {
  background: color-mix(in srgb, var(--brand) 22%, transparent);
  color: var(--brand);
}

/* home tabs → soft brand-tint active (green add-tab stays semantic) */
body.skin-halo .home-tab { border-radius: var(--halo-r-sm); }
body.skin-halo .home-tab:hover { background: color-mix(in srgb, #fff 6%, transparent); }
body.skin-halo .home-tab.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--header);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 24%, transparent);
}
body.skin-halo .home-tab-add:hover {
  background: color-mix(in srgb, var(--green) 16%, transparent);
}
body.skin-halo .home-tab-add.active {
  background: color-mix(in srgb, var(--green) 20%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--green) 24%, transparent);
}

/* add-friend form → field-on-glass shell */
body.skin-halo .add-friend-form {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .add-friend-form:focus-within {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
body.skin-halo .af-btn { border-radius: var(--halo-r-sm); }

/* ── Notifications inbox (.ntf-*) ─────────────────────────────────────────── */
body.skin-halo .ntf-clear {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .ntf-clear:hover {
  background: color-mix(in srgb, #fff 9%, transparent);
  border-color: var(--halo-bd);
}
/* tabs: solid --ds-grad active → soft brand-tint */
body.skin-halo .ntf-tab { border-radius: var(--halo-r-sm); }
body.skin-halo .ntf-tab:hover { background: color-mix(in srgb, #fff 6%, transparent); }
body.skin-halo .ntf-tab.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--header);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent);
}
/* rows → translucent tile; unread → soft brand wash */
body.skin-halo .ntf-row { border-radius: var(--halo-r-sm); }
body.skin-halo .ntf-row:hover { background: color-mix(in srgb, #fff 6%, transparent); }
body.skin-halo .ntf-row.unread {
  background: color-mix(in srgb, var(--brand) 12%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 20%, transparent);
}
body.skin-halo .ntf-row.unread:hover {
  background: color-mix(in srgb, var(--brand) 18%, transparent);
}
/* icon badge → translucent disc */
body.skin-halo .ntf-ico-badge {
  background: color-mix(in srgb, #fff 8%, transparent);
}

/* ── Bookmarks / reminders cards (.wl-card, reused by reminders) ──────────── */
body.skin-halo .wl-card {
  background: var(--halo-glass);
  border: 1px solid var(--halo-bd-soft);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-1), var(--halo-hi);
}
body.skin-halo .wl-card:hover {
  border-color: color-mix(in srgb, var(--brand) 40%, transparent);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}
body.skin-halo .wl-card-jump  { border-radius: 9px; background: var(--brand); }
body.skin-halo .wl-card-remove {
  border-radius: 9px;
  background: color-mix(in srgb, var(--red) 16%, transparent);
}

/* ── Games tab rows / activity tiles ─────────────────────────────────────── */
body.skin-halo :is(.games-row, .games-empty) {
  background: color-mix(in srgb, #fff 5%, transparent);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .games-row--current {
  background: color-mix(in srgb, var(--brand) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand) 30%, transparent);
}
body.skin-halo .games-icon {
  background: color-mix(in srgb, #fff 8%, transparent);
  border-radius: 9px;
}

/* ════════════════════════════════════════════════════════════════════
   HALO — TRANSIENT & MISC
   ════════════════════════════════════════════════════════════════════ */

/* ── In-app update banner: opaque blurple gradient → brand-tinted glass ── */
body.skin-halo .chord-update-banner {
  background: var(--halo-glass-2);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-2), var(--halo-glow), var(--halo-hi);
}
/* spinner badge → soft brand chip */
body.skin-halo .cub-icon {
  background: color-mix(in srgb, var(--brand) 22%, transparent);
  border: 1px solid var(--halo-bd-soft);
}
/* primary CTA was white pill w/ blurple text → brand gradient */
body.skin-halo .cub-btn-primary {
  background: var(--ds-grad);
  color: #fff;
}
body.skin-halo .cub-close {
  background: color-mix(in srgb, #fff 12%, transparent);
}
body.skin-halo .cub-close:hover {
  background: color-mix(in srgb, #fff 20%, transparent);
}

/* ── Image lightbox toolbar: solid pill → glass ── */
body.skin-halo .img-lb-bar {
  background: var(--halo-glass-2);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}
body.skin-halo .img-lb-btn:hover {
  background: color-mix(in srgb, #fff 14%, transparent);
}
/* close: flat translucent circle → glass circle */
body.skin-halo .img-lb-close {
  background: var(--halo-glass-2);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  box-shadow: var(--ds-shadow-1), var(--halo-hi);
}
body.skin-halo .img-lb-close:hover {
  background: color-mix(in srgb, #fff 18%, transparent);
}

/* ── Rail DM/mention bubble: round → squircle to match Halo rail icons ── */
body.skin-halo .dm-bubble {
  border-radius: var(--halo-r-md);
}
body.skin-halo .dm-bubble:hover {
  border-radius: var(--halo-r-md);
}
/* @ mention badge keeps brand fill; just match the rail bg ring */
body.skin-halo .dm-bubble--mention .dm-bubble-at {
  background: var(--brand);
  border-color: var(--rail-bg);
}

/* ── Reminder picker preset tiles: flat solid → translucent ── */
body.skin-halo .rem-preset {
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .rem-preset:hover {
  background: color-mix(in srgb, var(--brand) 14%, transparent);
  border-color: color-mix(in srgb, var(--brand) 40%, transparent);
}

/* ── Edit-history rows: flat solid → translucent ── */
body.skin-halo .edit-hist-row {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
/* current revision: hardcoded purple tint → brand accent (not a hard block) */
body.skin-halo .edit-hist-row.edit-hist-current {
  background: color-mix(in srgb, var(--brand) 14%, transparent);
  border-color: color-mix(in srgb, var(--brand) 30%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 24%, transparent);
}
body.skin-halo .edit-hist-row.edit-hist-current .edit-hist-head {
  color: color-mix(in srgb, var(--brand) 70%, #fff);
}
body.skin-halo .edit-hist-row.edit-hist-clickable:hover {
  background: color-mix(in srgb, #fff 8%, transparent);
  border-color: color-mix(in srgb, var(--brand) 40%, transparent);
}

/* ── User-note textarea: match the .fm-field glass input pattern ── */
body.skin-halo .ucp-note {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .ucp-note:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
/* ════════════════════════════════════════════════════════════════════════════
   HALO LAYOUT FIXES v2 — voice full-width, clean fullscreen, hidden-member
   collapse (home header align), quick-switcher focus ring.
   ════════════════════════════════════════════════════════════════════════════ */

/* #1 Voice view fills full width: in voice the member list is display:none (NOT
   .hidden class) so the :has() reserve still fired → 252px empty right gutter.
   Kill the reserve while in the voice stage. (!important beats the high-specificity
   :has() reserve rule.) */
body.skin-halo.in-vc-view :is(#chat-header, #main-row) { margin-right: 0 !important; }

/* #2 Fullscreen voice: classic hides rail/header/members, but the Halo glass on
   #chat (gradient + border + radius) stayed → a rounded bordered frame / "weird
   overlay". Reset it to plain dark + drop any reserve so the stage is edge-to-edge. */
body.skin-halo:is(.vc-fullscreen, .call-fullscreen) #chat {
  background: var(--dark-bg) !important;
  border: none !important;
  border-radius: 0 !important;
}
/* fullscreen voice/call fills full width — drop the member-list reserve gutter
   (member list is display:none in fullscreen but lacks the .hidden class, so the
   :has() reserve would otherwise leave an empty strip on the right). */
body.skin-halo:is(.vc-fullscreen, .call-fullscreen) :is(#chat-header, #main-row, #main-col) { margin-right: 0 !important; }

/* #3 Home pages header overflow: a HIDDEN member list wasn't fully collapsing —
   classic .hidden sets padding:0 but the Halo #member-list{padding:10px} (higher
   specificity) overrode it, leaving a 22px (padding+border) stub in #main-row that
   pushed #chat 22px narrower than #chat-header. Fully collapse it when hidden. */
body.skin-halo #member-list.hidden { width: 0 !important; min-width: 0 !important; padding: 0 !important; border: none !important; margin: 0 !important; overflow: hidden !important; }

/* #4 Quick switcher search: the focused input drew a brand-tinted ring
   (box-shadow) + the wrap an outline → looked like a stray blue border. Remove it. */
body.skin-halo #qs-input,
body.skin-halo #qs-input:focus,
body.skin-halo #qs-input:focus-visible { outline: none !important; box-shadow: none !important; }
body.skin-halo .qs-input-wrap,
body.skin-halo .qs-input-wrap:focus-within { outline: none !important; box-shadow: none !important; }

/* ── Store (Halo): glass product cards + chips (hero keeps its vibrant gradient) ── */
body.skin-halo .st-card {
  background: linear-gradient(165deg,
    color-mix(in srgb, var(--dark-bg) 64%, transparent),
    color-mix(in srgb, var(--dark-bg) 78%, transparent));
  border-color: var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}
body.skin-halo .st-cat { background: color-mix(in srgb, #fff 5%, transparent); }
body.skin-halo .st-cat:hover { background: color-mix(in srgb, #fff 9%, transparent); }
body.skin-halo .st-cat.active { background: var(--brand); }
body.skin-halo .st-status-pill {
  background: color-mix(in srgb, #fff 6%, transparent);
  border-color: var(--halo-bd-soft);
}

/* ═══════════════════════════════════════════════════════════════════════════
   REV. 3 — Eksik yüzeylerin tamamlanması (design_handoff Rev. 3, 2026-07-03)
   Birincil spec: "Chord - Mesajlaşma.dc.html" (inline stiller) + README §1-13.
   Kaynak-sıra kuralı: bu bölüm dosyanın SONUNDA olduğundan eşit öncelikli
   eski kurallara üstün gelir — yukarıdaki blokları taşımaya gerek yok.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Rev.3 hareket token'ları ─────────────────────────────────────────────── */
body.skin-halo { --ease-pop: cubic-bezier(.32,.72,.48,1.04); }
@keyframes haloPopIn  { from { scale: .97; } to { scale: 1; } }
/* README §13: veil .55 opaklıktan başlar — geç bağlanan backdrop-blur flicker'ı önlenir */
@keyframes haloVeilIn { from { opacity: .55; } to { opacity: 1; } }
@keyframes haloSpk    { 0%,100% { transform: scale(1); opacity: .55; } 50% { transform: scale(1.22); opacity: 0; } }
@keyframes halo-upfill { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ── Genel modal kabuğu + veil + buton spec'i (design 1478-1496) ──────────── */
body.skin-halo .modal { border-radius: 20px; }
body.skin-halo .modal-overlay {
  background: rgba(0, 0, 0, .6);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
  animation: haloVeilIn .3s var(--ease);
}
body.skin-halo .chord-confirm-modal h2 { font-size: 19px; }
body.skin-halo .modal-btn { border-radius: 11px; padding: 10px 18px; font-size: 13.5px; font-weight: 700; }
body.skin-halo .modal-btn.secondary {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
}
body.skin-halo .modal-btn.secondary:hover { background: color-mix(in srgb, #fff 7%, transparent); }
body.skin-halo .modal-btn.danger { background: var(--red); color: #fff; }
body.skin-halo .modal-btn.danger:hover { background: var(--red); filter: brightness(1.12); }

/* ── Tepki seçici → 6×2 emoji ızgarası (design 1467-1476) ─────────────────── */
body.skin-halo .reaction-picker-popup {
  display: grid;
  grid-template-columns: repeat(6, 38px);
  gap: 3px;
  padding: 9px;
}
body.skin-halo .rp-btn { width: 38px; height: 38px; border-radius: 10px; font-size: 21px; }
body.skin-halo .rp-btn:hover {
  background: color-mix(in srgb, #fff 5%, transparent);
  transform: scale(1.15);
}

/* ── Mesaj tepki çipleri (design 453-459) ─────────────────────────────────── */
body.skin-halo .msg-reactions { gap: 5px; margin-top: 5px; }
body.skin-halo .reaction-pill {
  gap: 6px;
  padding: 3px 9px;
  font-size: 13px;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: 9px;
}
body.skin-halo .reaction-pill:hover {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border-color: color-mix(in srgb, var(--brand) 60%, transparent);
}
body.skin-halo .reaction-pill.mine {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand) 55%, transparent);
  box-shadow: none;
}
body.skin-halo .reaction-pill .reaction-count { font-size: 12px; font-weight: 700; color: var(--muted); }
body.skin-halo .reaction-pill.mine .reaction-count { color: var(--brand); }

/* ── Hatırlat modalı: kutucuk ızgarası → tam satır seçenekler (design 1498-1517) ── */
body.skin-halo .rem-presets { grid-template-columns: 1fr; gap: 3px; }
body.skin-halo .rem-preset {
  display: flex; align-items: center; justify-content: space-between;
  padding: 11px 13px;
  background: transparent;
  border: none;
  border-radius: 11px;
  font-size: 14px;
  color: var(--text);
  text-align: left;
}
body.skin-halo .rem-preset::after { content: '›'; font-size: 16px; line-height: 1; color: var(--muted); }
body.skin-halo .rem-preset:hover {
  background: color-mix(in srgb, #fff 5%, transparent);
  border: none;
}

/* ── Bağlam menüsü (design 2026-2038) ─────────────────────────────────────── */
body.skin-halo .ctx-menu { border-radius: 14px; padding: 7px; animation-duration: .14s; }
body.skin-halo .ctx-item { gap: 11px; font-weight: 600; }
body.skin-halo .ctx-item-ico, body.skin-halo .ctx-item-ico svg { width: 16px; height: 16px; }
body.skin-halo .ctx-item.danger:hover {
  background: color-mix(in srgb, var(--red) 14%, transparent);
}
body.skin-halo .ctx-sep { margin: 5px 8px; }

/* ── Yanıt çubuğu → yüzen yumuşak çip satırı (design 484-491) ─────────────── */
body.skin-halo .reply-bar {
  margin: 0 16px 7px;
  padding: 8px 13px;
  gap: 9px;
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: var(--halo-r-sm);
}
body.skin-halo .reply-bar-content { flex-direction: row; align-items: center; gap: 7px; }
body.skin-halo .reply-bar-label { flex: none; font-size: 12.5px; color: var(--muted); }
body.skin-halo .reply-bar-label strong { color: var(--brand); font-weight: 700; }
body.skin-halo .reply-bar-preview { flex: 1; min-width: 0; font-size: 12.5px; }
body.skin-halo .reply-cancel-btn {
  width: 22px; height: 22px; padding: 0;
  display: grid; place-items: center;
  border-radius: 50%;
  font-size: 13px;
}
body.skin-halo .reply-cancel-btn:hover {
  background: color-mix(in srgb, var(--dark-bg) 60%, transparent);
  color: var(--text);
}

/* ── Alıntı satırı (design 413-419) ───────────────────────────────────────── */
body.skin-halo .msg-reply-quote { gap: 7px; margin-bottom: 3px; font-size: 12.5px; }
body.skin-halo .msg-reply-quote::before { border-color: var(--halo-bd-soft); }
body.skin-halo .msg-reply-quote:hover::before { border-color: var(--halo-bd); }
body.skin-halo .mrq-av .av-img, body.skin-halo .mrq-av .av-initials { border-radius: 6px !important; }
body.skin-halo .mrq-author { font-size: 12.5px; font-weight: 700; color: var(--text); }
body.skin-halo .mrq-preview { font-size: 12.5px; opacity: .8; }

/* ── Satır içi mesaj düzenleme (design 427-434) ───────────────────────────── */
body.skin-halo .inline-edit-textarea {
  padding: 10px 12px;
  border-radius: var(--halo-r-sm);
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border-color: color-mix(in srgb, var(--brand) 50%, transparent);
  font-size: 14.5px;
  line-height: 1.5;
}
body.skin-halo .inline-edit-hint { font-size: 11.5px; margin-top: 4px; }
body.skin-halo .inline-edit-hint kbd {
  background: transparent;
  padding: 0;
  color: var(--brand);
  font-weight: 700;
  font-size: 11.5px;
}
body.skin-halo .msg-edited { font-size: 10.5px; margin-left: 6px; }

/* ── Arama: öneri dropdown'u + sonuç paneli (design 1519-1553) ────────────── */
body.skin-halo .header-search-bar:hover { border-color: var(--halo-bd-soft); }
body.skin-halo #msg-search-dd {
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-md);
  box-shadow: var(--ds-shadow-3), var(--halo-hi);
}
body.skin-halo .msd-item { padding: 10px 11px; gap: 11px; border-radius: var(--halo-r-sm); }
body.skin-halo .msd-item:hover { background: color-mix(in srgb, #fff 5%, transparent); }
body.skin-halo .msd-text b { font-size: 13px; font-weight: 700; }
body.skin-halo #msg-search-panel {
  margin-left: 12px;
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  border-radius: 18px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .6);
}
body.skin-halo .msr-top { padding: 14px 14px 10px; border-bottom-color: var(--halo-bd-soft); }
body.skin-halo .msr-sort, body.skin-halo .msr-close {
  background: color-mix(in srgb, #fff 5%, transparent);
  border-radius: 8px;
  font-size: 11.5px; font-weight: 700; color: var(--muted);
}
body.skin-halo .msr-sort:hover, body.skin-halo .msr-close:hover {
  background: color-mix(in srgb, #fff 8%, transparent);
  color: var(--text);
}
body.skin-halo .msr-list { padding: 8px; }
body.skin-halo .msr-group { padding: 12px 11px 4px; }
body.skin-halo .msr-group-ch { color: var(--brand); font-size: 11px; }
body.skin-halo .msr-card {
  background: transparent;
  border-color: transparent;
  border-radius: var(--halo-r-sm);
  padding: 10px 11px;
  gap: 11px;
  margin-bottom: 0;
}
body.skin-halo .msr-card:hover { background: color-mix(in srgb, #fff 5%, transparent); border-color: transparent; }
body.skin-halo .msr-av :is(.av-img, .av-initials) { width: 30px !important; height: 30px !important; border-radius: 10px !important; }
body.skin-halo .msr-meta b { font-size: 13px; font-weight: 700; }
body.skin-halo .msr-ts { font-size: 10.5px; }
body.skin-halo .msr-text { font-size: 13px; }

/* ── Hızlı Geçiş (Ctrl+K) (design 1555-1584) ──────────────────────────────── */
body.skin-halo .qs-overlay {
  background: rgba(0, 0, 0, .6);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
  animation: haloVeilIn .25s var(--ease);
}
body.skin-halo .qs-box { border-radius: 20px; }
body.skin-halo .qs-input-wrap {
  margin: 16px 16px 12px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--brand) 40%, transparent);
  border-radius: 13px;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
}
body.skin-halo .qs-input-wrap input { font-size: 15.5px; }
body.skin-halo .qs-results { border-top: 1px solid var(--halo-bd-soft); }
body.skin-halo .qs-item { padding: 10px 12px; gap: 11px; border-radius: var(--halo-r-sm); }
body.skin-halo .qs-item:hover { background: color-mix(in srgb, #fff 5%, transparent); }
body.skin-halo .qs-ico { border-radius: 10px; }
body.skin-halo .qs-ico-glyph {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  box-shadow: inset 0 0 0 1px var(--halo-bd-soft);
  font-size: 15px;
  font-weight: 700;
}
body.skin-halo .qs-name { font-size: 14.5px; font-weight: 700; color: var(--header); }
body.skin-halo .qs-sub { font-size: 11.5px; }
body.skin-halo .qs-foot { padding: 10px 18px; font-size: 11.5px; border-top: 1px solid var(--halo-bd-soft); }
body.skin-halo .qs-foot kbd {
  background: transparent;
  border: 1px solid var(--halo-bd-soft);
  border-radius: 5px;
  padding: 1px 6px;
  font-size: 10.5px;
  font-weight: 700;
}

/* ── Dosya Ekle: buton + menü (design 509-523; menü DOM'u app.js Rev.3) ───── */
body.skin-halo #attach-btn { width: 36px; height: 36px; }
body.skin-halo #attach-btn:hover {
  background: color-mix(in srgb, #fff 6%, transparent);
  color: var(--brand);
}
body.skin-halo #input-area { position: relative; }
body.skin-halo .attach-menu {
  position: absolute;
  bottom: calc(100% - 4px);
  left: 16px;
  width: 236px;
  padding: 7px;
  border-radius: 14px;
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur);
  backdrop-filter: var(--halo-blur);
  box-shadow: 0 20px 50px rgba(0,0,0,.55), var(--halo-hi);
  animation: haloPopIn .16s var(--ease-pop);
  z-index: 40;
}
body.skin-halo .attach-menu-item {
  display: flex; align-items: center; gap: 11px;
  width: 100%; padding: 9px 10px;
  border-radius: 9px; border: none; background: transparent;
  font-size: 14px; font-weight: 600; color: var(--text);
  text-align: left; cursor: pointer;
}
body.skin-halo .attach-menu-item:hover { background: var(--brand); color: #fff; }

/* ── Yükleme önizleme şeridi (design 493-507) — #file-preview-bar'a özel ──── */
body.skin-halo #file-preview-bar {
  position: relative;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px dashed var(--halo-bd);
  border-radius: 14px;
  padding: 9px 10px;
  margin: 0 16px 7px;
  align-items: flex-start;
}
body.skin-halo #file-preview-bar .reply-bar-content {
  flex: none; width: 152px; padding: 8px; gap: 0;
  flex-direction: column; align-items: stretch;
  border-radius: 12px;
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
}
body.skin-halo #file-preview-bar img,
body.skin-halo #file-preview-bar video {
  width: 100% !important; height: 64px !important;
  object-fit: cover; border-radius: 8px !important; margin: 0 0 6px !important;
}
body.skin-halo #file-preview-bar .reply-bar-label   { font-size: 11px; font-weight: 700; color: var(--text); }
body.skin-halo #file-preview-bar .reply-bar-preview { font-size: 10px; color: var(--muted); }
body.skin-halo #file-preview-bar .reply-bar-content::after {
  content: ''; display: block; height: 4px; margin-top: 5px;
  border-radius: 2px; background: var(--green);
  transform-origin: left;
  animation: halo-upfill 1s cubic-bezier(.16,1,.3,1) both;
}
body.skin-halo #file-preview-bar .reply-cancel-btn {
  position: absolute; top: 2px; left: 151px;
  width: 22px; height: 22px; padding: 0;
  border-radius: 50%; background: var(--red); color: #fff;
  font-size: 12px; line-height: 22px; text-align: center;
  box-shadow: 0 3px 8px rgba(0,0,0,.4);
  transition: transform .15s var(--ease);
}
body.skin-halo #file-preview-bar .reply-cancel-btn:hover {
  background: var(--red); color: #fff; transform: scale(1.12);
}

/* ── Mesaj ekleri: görsel kartı + dosya satırı (design 436-452) ───────────── */
body.skin-halo .msg-attachment .msg-img {
  max-width: min(340px, 100%);
  border-radius: 14px;
  border: 1px solid var(--halo-bd-soft);
  transition: border-color .15s var(--ease), opacity .1s;
}
body.skin-halo .msg-attachment .msg-img:hover {
  border-color: color-mix(in srgb, var(--brand) 50%, transparent);
  opacity: 1;
}
body.skin-halo .msg-file-link {
  width: min(380px, 100%);
  gap: 11px; padding: 11px 13px;
  border-radius: 13px;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  font-size: 13.5px; font-weight: 700; color: var(--header);
  line-height: 1.3;
}
body.skin-halo .msg-file-link:hover {
  background: color-mix(in srgb, #fff 5%, transparent);
  border-color: var(--halo-bd);
  color: var(--header);
}

/* ── Lightbox (design 1629-1645) ──────────────────────────────────────────── */
body.skin-halo .img-lightbox {
  background: rgba(0,0,0,.78);
  -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px);
  padding: 34px;
  animation: haloVeilIn .25s var(--ease);
}
body.skin-halo .img-lb-img {
  border-radius: 20px;
  box-shadow: 0 40px 110px rgba(0,0,0,.6);
}
body.skin-halo .img-lb-close {
  width: 32px; height: 32px;
  border-radius: 10px;
  font-size: 15px;
}
body.skin-halo .img-lb-close:hover { background: rgba(255,255,255,.2); }
body.skin-halo .img-lb-bar { border-radius: 12px; padding: 4px; gap: 2px; }
body.skin-halo .img-lb-btn {
  height: 32px; min-width: 36px; padding: 0 10px;
  border-radius: 10px; font-size: 13px;
}
body.skin-halo .img-lb-btn:hover { background: rgba(255,255,255,.2); }

/* ── Davet modalı (design 1647-1690) ──────────────────────────────────────── */
body.skin-halo .invite-friend-row { padding: 9px 10px; border-radius: 12px; gap: 11px; }
body.skin-halo .invite-friend-row .m-av-wrap :is(img, canvas, .avatar) { border-radius: 12px !important; }
body.skin-halo .invite-send-btn {
  padding: 7px 15px; border-radius: 9px;
  font-size: 12.5px; font-weight: 700;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  color: var(--text);
}
body.skin-halo .invite-send-btn:hover { background: var(--green); border-color: var(--green); color: #fff; }
body.skin-halo .invite-send-btn.sent {
  background: color-mix(in srgb, var(--green) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--green) 40%, transparent);
  color: var(--green);
}
body.skin-halo .invite-divider { margin: 14px 0 8px; font-size: 11px; font-weight: 800; letter-spacing: .5px; }
body.skin-halo .invite-divider::before,
body.skin-halo .invite-divider::after { display: none; }
body.skin-halo .invite-field-wrap {
  align-items: center; gap: 8px;
  padding: 6px 6px 6px 14px;
  border-radius: 13px;
  border: 1px solid var(--halo-bd-soft);
}
body.skin-halo .invite-field-input { padding: 4px 0; font-size: 13.5px; }
body.skin-halo .invite-field-input.invite-code-input { font-size: 15px; letter-spacing: 2px; }
body.skin-halo .invite-copy-icon-btn {
  padding: 9px 14px; border-radius: 10px;
  background: var(--brand); color: #fff;
  font-size: 13px; font-weight: 700;
}
body.skin-halo .invite-copy-icon-btn:hover { background: var(--brand-hv, var(--brand)); color: #fff; }
body.skin-halo #invite-expiry-sel {
  border-radius: 9px; font-weight: 700;
  background-color: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
}

/* ── Durum menüsü (design 1692-1714) ──────────────────────────────────────── */
body.skin-halo #user-status-popup { width: 280px !important; }
body.skin-halo #user-status-popup .up-popup-item {
  padding: 9px 11px; border-radius: 10px; gap: 11px; font-weight: 600;
}
body.skin-halo #user-status-popup .up-popup-dot { width: 11px; height: 11px; }
body.skin-halo #user-status-popup .up-popup-sep {
  margin: 6px 8px;
  background: color-mix(in srgb, #fff 8%, transparent);
}
body.skin-halo #user-status-popup .up-popup-item.active {
  background: transparent; box-shadow: none; color: var(--text);
}
body.skin-halo #user-status-popup .up-popup-item.active:hover {
  background: color-mix(in srgb, #fff 8%, transparent);
}
body.skin-halo #user-status-popup .up-popup-item.active svg { color: var(--brand); }

/* ── Özel durum modalı (design 1716-1742) ─────────────────────────────────── */
body.skin-halo .modal:has(#cstatus-inp) { width: min(430px, 95vw); border-radius: 20px; }
body.skin-halo .modal:has(#cstatus-inp) h2 { font-size: 19px; }
body.skin-halo .modal:has(#cstatus-inp) .modal-field label {
  font-weight: 800; letter-spacing: .5px; margin-bottom: 8px;
}
body.skin-halo #cstatus-inp {
  border-radius: 13px;
  font-size: 14.5px;
  padding: 12px 14px;
}

/* ── Toast (design 2018-2024) ─────────────────────────────────────────────── */
body.skin-halo #toast-container { bottom: 26px; }
body.skin-halo .toast {
  padding: 11px 18px;
  border-radius: 14px;
  background: var(--halo-glass-2);
  -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  box-shadow: 0 20px 50px rgba(0,0,0,.6), var(--halo-hi);
  font-size: 13.5px; font-weight: 700; color: var(--header);
}

/* ── Kanal bilgi paneli (design 1886-1927) ────────────────────────────────── */
body.skin-halo #channel-info {
  background: var(--halo-glass-2);
  border: 1px solid var(--halo-bd);
  -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur);
  border-radius: var(--halo-r-lg);
  box-shadow: var(--ds-shadow-2), var(--halo-hi);
}
body.skin-halo #channel-info.hidden { border-width: 0; }
body.skin-halo .ci-head  { padding: 16px 18px 10px; }
body.skin-halo .ci-hash  { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:19px; }
body.skin-halo .ci-title { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:17px; }
body.skin-halo .ci-topic { padding: 0 18px 11px; font-size:12.5px; line-height:1.5; border-bottom:0; }
body.skin-halo .ci-tabs  { gap:4px; padding:4px 13px 11px; border-bottom:1px solid var(--halo-bd-soft); }
body.skin-halo .ci-tab   { flex:0 1 auto; padding:5px 11px; border-radius:8px; font-size:14px; }
body.skin-halo .ci-tab.active { background: color-mix(in srgb,#fff 6%,transparent); font-weight:700; }
body.skin-halo .ci-body  { padding:12px; }
body.skin-halo .ci-media-grid { gap:7px; }
body.skin-halo .ci-media-cell { border-radius:11px; }
body.skin-halo .ci-media-cell:hover :is(img,video) { opacity:1; transform:scale(1.04); }
body.skin-halo .ci-row      { gap:11px; padding:10px 11px; border-radius:var(--halo-r-sm); }
body.skin-halo .ci-row:hover{ background: color-mix(in srgb,#fff 6%,transparent); }
body.skin-halo .ci-row-ico  {
  width:34px; height:34px; display:grid; place-items:center;
  border-radius:10px; font-size:15px;
  background: color-mix(in srgb, var(--brand) 16%, transparent); color: var(--brand);
}
body.skin-halo .ci-row-txt  { font-weight:700; font-size:13px; color:var(--header); }

/* ── DM profil paneli (design 872-905) ────────────────────────────────────── */
body.skin-halo .dpp-banner  { height: 82px; }
body.skin-halo .dpp-av-wrap { padding: 0 18px; margin-top: -34px; }
body.skin-halo .dpp-body    { padding: 4px 18px 20px; }
body.skin-halo .dpp-display-name {
  font-family:'Bricolage Grotesque',sans-serif; font-size:19px; font-weight:800;
}
body.skin-halo .dpp-username { font-size:12.5px; }
body.skin-halo .dpp-section  { margin-top:15px; padding-top:0; border-top:0; }
body.skin-halo .dpp-section-title {
  font-size:10.5px; font-weight:800; letter-spacing:.5px;
  text-transform:uppercase; color:var(--muted); margin-bottom:5px;
}
body.skin-halo .dpp-bio     { font-size:13px; line-height:1.55; }
body.skin-halo .dpp-add-btn { height:38px; border-radius:11px; font-weight:700; font-size:13px; }
body.skin-halo .dpp-view-full {
  margin:12px 18px 16px; padding:0; height:38px; width:auto;
  border-radius:11px;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border:1px solid var(--halo-bd-soft);
  color:var(--text); font-weight:700; font-size:13px;
}
body.skin-halo .dpp-view-full:hover {
  background: color-mix(in srgb,#fff 6%,transparent);
  border-color: color-mix(in srgb, var(--brand) 50%, transparent);
}

/* ── Yeni DM / Grup modalı (design 1929-1954; .selected sınıfı app.js Rev.3) ── */
body.skin-halo #gdm-member-list {
  background: transparent !important;
  border-radius: var(--halo-r-sm);
}
body.skin-halo .gdm-member-row {
  gap: 11px !important;
  padding: 9px 10px !important;
  border-radius: var(--halo-r-sm) !important;
}
body.skin-halo .gdm-member-row:not(.selected):hover {
  background: color-mix(in srgb,#fff 6%,transparent);
}
body.skin-halo .gdm-member-row.selected {
  background: color-mix(in srgb, var(--brand) 14%, transparent) !important;
}
body.skin-halo .gdm-check-circle {
  width: 22px !important; height: 22px !important;
  border-radius: 7px !important;
}
body.skin-halo .gdm-member-row.selected .gdm-check-circle {
  background: var(--brand) !important;
  border-color: var(--brand) !important;
}

/* ── Kanal Oluştur (design 1956-1997) ─────────────────────────────────────── */
body.skin-halo .cc-section-label { font-weight:800; letter-spacing:.5px; }
body.skin-halo .cc-types { gap:7px; }
body.skin-halo .cc-type  { gap:12px; padding:13px 14px; border-radius:13px; }
body.skin-halo .cc-type:has(input:checked) {
  border-color: color-mix(in srgb, var(--brand) 55%, transparent);
  background:   color-mix(in srgb, var(--brand) 14%, transparent);
}
body.skin-halo .cc-type-name { font-weight:700; font-size:14px; }
body.skin-halo .cc-type-radio { width:22px; height:22px; border:0; }
body.skin-halo .cc-type input:checked ~ .cc-type-radio::after {
  content:'✓'; inset:0; border-radius:0; background:none;
  color:var(--brand); font-weight:800; font-size:15px;
  display:grid; place-items:center;
}
body.skin-halo .modal-field:has(> #ch-name) { position:relative; }
body.skin-halo .modal-field:has(> #ch-name)::after {
  content:'#'; position:absolute; left:13px; bottom:11px;
  font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:16px;
  color:var(--muted); pointer-events:none;
}
body.skin-halo .modal-field > #ch-name { padding-left:32px; }
body.skin-halo .cc-private-title { font-weight:700; font-size:14px; }

/* ── Sunucularım kartları (design 675-706) ────────────────────────────────── */
body.skin-halo .msp-grid { grid-template-columns: repeat(auto-fill,minmax(270px,1fr)); gap:14px; }
body.skin-halo .msp-card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--brand) 40%, transparent);
}
body.skin-halo .msp-ico { border-radius:15px; }
body.skin-halo .msp-ico-letter { font-family:'Bricolage Grotesque',sans-serif; }
body.skin-halo .msp-name { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:15.5px; }
body.skin-halo .msp-stats { gap:13px; font-size:11.5px; }

/* ── Satın alma geçmişi satırları (design 2224-2234) ──────────────────────── */
body.skin-halo .store-history-table { border-collapse: separate; border-spacing: 0 10px; }
body.skin-halo .store-history-table thead { display: none; }
body.skin-halo .store-history-table td {
  background: color-mix(in srgb, #fff 5%, transparent);
  border-top:    1px solid var(--halo-bd-soft);
  border-bottom: 1px solid var(--halo-bd-soft);
  padding: 14px 10px;
}
body.skin-halo .store-history-table td:first-child {
  border-left: 1px solid var(--halo-bd-soft);
  border-radius: 15px 0 0 15px;
  padding-left: 16px;
  font-weight: 700; font-size: 14.5px; color: var(--header);
}
body.skin-halo .store-history-table td:last-child {
  border-right: 1px solid var(--halo-bd-soft);
  border-radius: 0 15px 15px 0;
  padding-right: 16px;
}
body.skin-halo .store-history-table td:nth-child(3),
body.skin-halo .store-history-table td:nth-child(4) { color: var(--muted); font-size: 12px; }

/* ── Ekran paylaşım seçici (design 1744-1797) ─────────────────────────────── */
body.skin-halo .ssp-overlay {
  background: rgba(0,0,0,.6);
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  animation: haloVeilIn .3s var(--ease);
}
body.skin-halo .ssp-modal {
  width: min(700px, 95vw); max-height: 92vh;
  border-radius: 22px; border: 1px solid var(--halo-bd);
  box-shadow: 0 44px 110px rgba(0,0,0,.65), var(--halo-hi);
  animation: haloPopIn .25s var(--ease-pop);
}
body.skin-halo .ssp-head { padding: 22px 26px 10px; }
body.skin-halo .ssp-head h3 {
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 19px; font-weight: 800; letter-spacing: -.01em;
}
body.skin-halo .ssp-x { width: 32px; height: 32px; border-radius: 50%; }
body.skin-halo .ssp-tabs { gap: 20px; padding: 0 26px; border-bottom: 1px solid var(--halo-bd-soft); }
body.skin-halo .ssp-tab { margin-right: 0; padding: 9px 2px; font-size: 13.5px; font-weight: 700; }
body.skin-halo .ssp-tab.active::after { height: 2.5px; border-radius: 0; }
body.skin-halo .ssp-body { padding: 16px 26px 4px; }
body.skin-halo .ssp-grid { grid-template-columns: repeat(auto-fill, minmax(146px, 1fr)); gap: 11px; }
body.skin-halo .ssp-item {
  border: 1px solid var(--halo-bd-soft); border-radius: 13px;
  background: color-mix(in srgb, #fff 5%, transparent);
}
body.skin-halo .ssp-item.selected {
  border-color: transparent;
  box-shadow: 0 0 0 2.5px var(--brand);
}
body.skin-halo .ssp-name { font-size: 12px; font-weight: 700; color: var(--header); }
body.skin-halo .ssp-name-row { padding: 8px 10px; }
body.skin-halo .ssp-settings { background: transparent; border-top: 1px solid var(--halo-bd-soft); padding: 14px 26px 16px; }
body.skin-halo .ssp-set-label { font-weight: 800; letter-spacing: .6px; }
body.skin-halo #ssp-modes .ssp-pill {
  padding: 10px 16px; border-radius: 13px; gap: 2px;
  font-size: 13.5px; font-weight: 800; color: var(--header);
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
}
body.skin-halo #ssp-modes .ssp-pill small { font-size: 11px; font-weight: 500; }
body.skin-halo .ssp-pill.active {
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  border-color: color-mix(in srgb, var(--brand) 65%, transparent);
  color: var(--header); box-shadow: none;
}
body.skin-halo .ssp-custom {
  margin-top: 12px; padding: 12px 14px; border-radius: 13px;
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  animation: haloPopIn .18s var(--ease);
}
body.skin-halo .ssp-custom.hidden { display: none; }
body.skin-halo :is(#ssp-res, #ssp-fps) .ssp-pill {
  flex-direction: row; align-items: center;
  padding: 6px 12px; border-radius: 9px; font-size: 12px; font-weight: 700;
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft); color: var(--text);
}
body.skin-halo :is(#ssp-res, #ssp-fps) .ssp-pill.active {
  border-color: color-mix(in srgb, var(--brand) 60%, transparent);
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--header);
}
body.skin-halo .ssp-tlabel { font-size: 13.5px; font-weight: 700; color: var(--header); }
body.skin-halo .ssp-switch { width: 46px; height: 27px; }
body.skin-halo .ssp-switch .ssp-track { border-radius: 14px; background: color-mix(in srgb, #fff 14%, transparent); }
body.skin-halo .ssp-switch .ssp-track::before {
  width: 21px; height: 21px; left: 3px; top: 3px;
  box-shadow: 0 2px 5px rgba(0,0,0,.3);
  transition: transform .2s var(--ease-pop);
}
body.skin-halo .ssp-switch input:checked + .ssp-track::before { transform: translateX(19px); }
body.skin-halo .ssp-foot { padding: 14px 26px 18px; }
body.skin-halo .ssp-summary b { color: var(--header); }
body.skin-halo .ssp-btn { height: 42px; border-radius: 12px; font-weight: 700; font-size: 14px; }
body.skin-halo .ssp-btn.secondary {
  padding: 0 20px;
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft); color: var(--text);
}
body.skin-halo .ssp-btn.secondary:hover { background: color-mix(in srgb, #fff 10%, transparent); }
body.skin-halo .ssp-btn.primary { padding: 0 26px; }
body.skin-halo .ssp-btn.primary:hover:not(:disabled) { filter: brightness(1.1); }
body.skin-halo .ssp-btn.primary:disabled {
  opacity: 1; color: #fff;
  background: color-mix(in srgb, var(--brand) 40%, transparent);
}

/* ── Gelen arama afişi → üst-orta hap (design 1799-1813) ──────────────────── */
body.skin-halo .incoming-call-banner {
  top: 44px;
  left: 50%; right: auto; translate: -50% 0;
  width: auto; min-width: 300px; max-width: min(440px, calc(100vw - 32px));
  gap: 14px; padding: 13px 16px;
  border-radius: 20px;
  background: var(--halo-glass);
  -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  box-shadow: 0 30px 80px rgba(0,0,0,.7), var(--halo-hi);
  animation: haloPopIn .3s var(--ease-pop);
}
body.skin-halo .incoming-call-banner .ic-avatar { position: relative; }
body.skin-halo .incoming-call-banner .ic-avatar::after {
  content: ''; position: absolute; inset: -5px; border-radius: 50%;
  border: 2.5px solid var(--green); pointer-events: none;
  animation: haloSpk 1.1s var(--ease) infinite;
}
body.skin-halo .incoming-call-banner .ic-name {
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 15.5px; font-weight: 800;
}
body.skin-halo .incoming-call-banner .ic-sub { font-size: 12.5px; }
body.skin-halo .incoming-call-banner .ic-btn {
  width: 44px; height: 44px;
  transition: transform .15s var(--ease-pop), filter .12s;
}
body.skin-halo .incoming-call-banner .ic-btn:hover { transform: scale(1.08); }
body.skin-halo .incoming-call-banner .ic-decline { order: 1; }
body.skin-halo .incoming-call-banner .ic-accept  { order: 2; animation: none; }

/* ── PiP kabuğu (design 1815-1829) ────────────────────────────────────────── */
body.skin-halo #chord-pip {
  width: 250px; height: 141px;
  border-radius: 18px;
  border: 1px solid var(--halo-bd);
  box-shadow: 0 24px 60px rgba(0,0,0,.65);
  animation: haloPopIn .25s var(--ease-pop);
}
body.skin-halo #chord-pip .pip-top { padding: 8px 10px; background: none; }
body.skin-halo #chord-pip .pip-label {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 9px; border-radius: 999px;
  background: rgba(0,0,0,.45);
  font-size: 10.5px; font-weight: 700; font-variant-numeric: tabular-nums;
  text-shadow: none; max-width: 170px;
}
body.skin-halo #chord-pip .pip-label::before {
  content: ''; width: 7px; height: 7px; border-radius: 50%;
  background: var(--green); flex: none;
}
body.skin-halo #chord-pip .pip-btn { width: 28px; height: 28px; border-radius: 9px; background: rgba(0,0,0,.45); }
body.skin-halo #chord-pip .pip-btn:hover { background: var(--brand); transform: none; }
body.skin-halo #chord-pip .pip-btn-stop:hover { background: var(--red); }

/* ── DM/GDM arama sahnesi (design 721-762) ────────────────────────────────── */
body.skin-halo .call-grid {
  gap: 14px; padding: 44px 20px 16px;
  background: radial-gradient(circle at 50% 0%,
              color-mix(in srgb, var(--brand) 16%, transparent), transparent 72%);
}
body.skin-halo .call-card {
  width: auto; height: auto;
  flex: 1 1 240px; max-width: 420px; aspect-ratio: 16 / 10;
  border-radius: 18px !important;
  border: 2px solid color-mix(in srgb, #fff 8%, transparent);
  background:
    radial-gradient(circle at 50% 36%, color-mix(in srgb, var(--brand) 20%, transparent),
                    color-mix(in srgb, #000 40%, transparent)),
    var(--halo-glass);
  box-shadow: 0 6px 18px rgba(0,0,0,.30), var(--halo-hi);
  transition: border-color .25s var(--ease);
}
body.skin-halo .call-card.call-screen-card {
  flex: 2 1 340px; max-width: 640px; aspect-ratio: 16 / 9;
  border-color: var(--green);
  background: linear-gradient(135deg, #233a63, #0f1830);
  animation: haloPopIn .3s var(--ease-pop);
}
body.skin-halo .call-card.speaking { border-color: var(--green); animation: none; }
body.skin-halo .call-card.speaking .vc-card-avatar > * { box-shadow: 0 0 0 3px var(--green); }
body.skin-halo .call-card-footer {
  left: 10px; right: auto; bottom: 10px; width: auto; max-width: calc(100% - 20px);
  padding: 4px 11px; border-radius: 9px; gap: 7px;
  background: rgba(0,0,0,.5);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
body.skin-halo .call-card-name { font-size: 12px; font-weight: 700; }
body.skin-halo .call-screen-card::before {
  content: 'CANLI'; position: absolute; top: 10px; left: 10px; z-index: 4;
  padding: 4px 10px; border-radius: 8px;
  background: var(--red); color: #fff; font-size: 11px; font-weight: 800;
}
body.skin-halo .call-dur-badge {
  position: absolute; top: 12px; left: 16px; z-index: 5;
  display: inline-flex; align-items: center; gap: 7px;
  padding: 5px 12px; border-radius: 999px;
  background: rgba(0,0,0,.42);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  color: #fff; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums;
}
body.skin-halo .call-dur-badge::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--green); flex: none;
}
body.skin-halo:not(.call-fullscreen) .call-controls {
  background: transparent; border: none; box-shadow: none;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  margin: 0 auto; padding: 13px 16px 15px; gap: 10px; border-radius: 0;
}
body.skin-halo .call-ctrl { border-radius: 14px; background: color-mix(in srgb, #fff 7%, transparent); }
body.skin-halo .call-ctrl.off { background: var(--red); color: #fff; }
body.skin-halo #call-camera.active { background: var(--brand); color: #fff; box-shadow: none; }
body.skin-halo #call-screen.active { background: var(--green); color: #fff; box-shadow: none; }
body.skin-halo .call-ctrl.call-hangup { width: 60px; border-radius: 14px; }
body.skin-halo .call-ctrl.call-hangup:hover {
  background: var(--red); transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(237,66,69,.5);
}
body.skin-halo .call-fs-btn {
  top: 10px; right: 14px; bottom: auto;
  width: 32px; height: 32px; padding: 0; justify-content: center;
  border-radius: 9px; border: none;
  background: rgba(0,0,0,.42); color: #fff;
  -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none;
}
body.skin-halo .call-fs-btn:hover { background: rgba(0,0,0,.6); transform: none; }
body.skin-halo .call-fs-btn span { display: none; }
body.skin-halo .call-fs-btn svg { width: 16px; height: 16px; }
body.skin-halo.call-fullscreen .call-fs-btn { top: 10px; right: 14px; bottom: auto; }

/* ── Sunucu ses sahnesi (design 283-370, README §7) ───────────────────────── */
body.skin-halo .vc-view-top {
  display: flex; align-items: baseline; gap: 10px;
  text-align: left; padding: 12px 18px 2px;
}
body.skin-halo .vc-view-title {
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 15px; font-weight: 700; margin: 0;
}
body.skin-halo .vc-participants-grid { padding: 20px 26px; gap: 18px; align-content: center; }
body.skin-halo .vc-card {
  width: 280px; height: 184px;
  border-radius: 20px;
  border: 2px solid color-mix(in srgb, #fff 6%, transparent);
  background:
    radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--brand) 16%, transparent),
                    color-mix(in srgb, #000 35%, transparent)),
    var(--halo-glass);
  box-shadow: 0 6px 18px rgba(0,0,0,.30), var(--halo-hi);
  cursor: zoom-in;
  transition: border-color .25s var(--ease), transform .22s var(--ease-out), box-shadow .22s var(--ease);
  animation: haloPopIn .35s var(--ease-pop) both;
}
body.skin-halo .vc-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, #fff 6%, transparent); }
body.skin-halo .vc-card.vc-speaking { border-color: var(--green); animation: none; box-shadow: 0 6px 18px rgba(0,0,0,.30), var(--halo-hi); }
body.skin-halo .vc-card.vc-speaking .vc-card-avatar > * { box-shadow: 0 0 0 3px var(--green); }
body.skin-halo .vc-screen-card { border-color: var(--green); background: linear-gradient(135deg, #233a63, #0f1830); }
body.skin-halo .vc-screen-card::before {
  content: 'CANLI'; position: absolute; top: 10px; left: 10px; z-index: 4;
  padding: 3px 9px; border-radius: 7px;
  background: var(--red); color: #fff; font-size: 10.5px; font-weight: 800;
}
body.skin-halo .vc-card-footer {
  left: 12px; right: auto; bottom: 12px; width: auto; max-width: calc(100% - 24px);
  justify-content: flex-start; gap: 7px;
  padding: 5px 11px; border-radius: 10px;
  background: rgba(0,0,0,.5);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
body.skin-halo .vc-card-name { font-size: 13px; font-weight: 700; }
body.skin-halo .vc-participants-grid:has(.vc-card-zoomed) { gap: 11px; align-content: flex-start; }
body.skin-halo .vc-card.vc-card-zoomed {
  height: calc(100% - 99px) !important;
  border-radius: 20px !important;
  border: 2px solid color-mix(in srgb, #fff 6%, transparent) !important;
  background:
    radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--brand) 16%, transparent),
                    color-mix(in srgb, #000 40%, transparent)) !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.30) !important;
  cursor: zoom-out;
  animation: haloPopIn .3s var(--ease-pop);
}
body.skin-halo .vc-card.vc-card-zoomed.vc-speaking { border-color: var(--green) !important; }
body.skin-halo .vc-card.vc-card-zoomed.vc-screen-card { border-color: var(--green) !important; background: linear-gradient(135deg,#233a63,#0f1830) !important; }
body.skin-halo .vc-card.vc-card-zoomed .vc-card-avatar > * { width: 120px !important; height: 120px !important; }
body.skin-halo .vc-card.vc-card-zoomed .vc-card-footer { left: 14px; bottom: 13px; padding: 6px 13px; border-radius: 11px; }
body.skin-halo .vc-card.vc-card-zoomed .vc-card-name { font-size: 14px; }
body.skin-halo .vc-participants-grid:has(.vc-card-zoomed) .vc-card:not(.vc-card-zoomed) { width: 150px; height: 88px; border-radius: 14px; }
body.skin-halo .vc-participants-grid:has(.vc-card-zoomed) .vc-card:not(.vc-card-zoomed) .vc-card-footer { left: 7px; bottom: 6px; padding: 2px 8px; border-radius: 7px; }
body.skin-halo .vc-participants-grid:has(.vc-card-zoomed) .vc-card:not(.vc-card-zoomed) .vc-card-name { font-size: 10.5px; }
body.skin-halo:not(.vc-fullscreen) .vc-controls {
  background: transparent; border: none; box-shadow: none;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  border-top: 1px solid var(--halo-bd-soft); border-radius: 0;
  width: 100%; margin: 0; padding: 18px; justify-content: center; gap: 11px;
}
body.skin-halo .vc-controls > div[style*="flex"] { display: none; }
body.skin-halo .vc-ctrl-btn { width: 50px; height: 50px; border-radius: 16px; background: color-mix(in srgb, #fff 7%, transparent); }
body.skin-halo .vc-ctrl-btn.muted { background: var(--red); color: #fff; box-shadow: none; }
body.skin-halo #vcv-camera.active { background: var(--brand); color: #fff; box-shadow: none; }
body.skin-halo #vcv-screen.active { background: var(--green); color: #fff; box-shadow: none; }
body.skin-halo .vc-ctrl-stop-stream {
  height: 50px; padding: 0 16px; border-radius: 16px;
  background: rgba(237,66,69,.16); border: 1px solid rgba(237,66,69,.4);
  color: var(--red); font-weight: 700; font-size: 13.5px;
}
body.skin-halo .vc-ctrl-disconnect { width: 64px; height: 50px; border-radius: 16px; }
body.skin-halo .vc-ctrl-disconnect:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(237,66,69,.5); }
body.skin-halo .vc-fs-btn {
  top: 10px; right: 18px; bottom: auto;
  width: 32px; height: 32px; padding: 0; justify-content: center;
  border-radius: 9px; border: none;
  background: color-mix(in srgb, #fff 7%, transparent); color: var(--text);
  -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none;
}
body.skin-halo .vc-fs-btn:hover { background: color-mix(in srgb, #fff 13%, transparent); transform: none; }
body.skin-halo .vc-fs-btn span { display: none; }
body.skin-halo .vc-fs-btn svg { width: 16px; height: 16px; }
body.skin-halo.vc-fullscreen .vc-fs-btn { top: 12px; right: 16px; bottom: auto; }

/* ── README §13 — tam ekran ses/arama: Halo çerçevesi + cam blur kapatılır ── */
body.skin-halo:is(.vc-fullscreen, .call-fullscreen) #app { padding: 0 !important; gap: 0 !important; }
body.skin-halo:is(.vc-fullscreen, .call-fullscreen) #chat {
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  box-shadow: none !important;
}
body.skin-halo.call-fullscreen #dm-call-panel {
  background: var(--dark-bg);
  -webkit-backdrop-filter: none; backdrop-filter: none;
  border-bottom: none;
}

/* ── Katılım akışı + kurallar (design 1832-1884) ──────────────────────────── */
body.skin-halo .jf-bigtitle,
body.skin-halo .jf-card-title {
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  letter-spacing: -.3px;
}
body.skin-halo .jf-primary {
  border-radius: 13px; min-height: 44px; padding: 0 26px;
  font-size: 14.5px; font-weight: 700;
}
body.skin-halo .jf-primary:disabled {
  opacity: 1; color: #fff;
  background: color-mix(in srgb, var(--brand) 40%, transparent);
  box-shadow: none;
}
body.skin-halo #jf-complete.jf-primary {
  background: var(--green);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--green) 30%, transparent);
}
body.skin-halo #jf-complete.jf-primary:hover:not(:disabled) { filter: brightness(1.1); }
body.skin-halo :is(.jf-rules, .rg-wrap .rg-rules) { padding-left: 0; gap: 8px; }
body.skin-halo :is(.jf-rules, .rg-wrap .rg-rules) li {
  list-style: none; position: relative;
  padding: 11px 13px 11px 48px;
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft); border-radius: 12px;
  font-size: 13.5px; line-height: 1.5;
}
body.skin-halo :is(.jf-rules, .rg-wrap .rg-rules) li::before {
  content: counter(list-item);
  position: absolute; left: 13px; top: 10px;
  width: 24px; height: 24px; border-radius: 8px;
  display: grid; place-items: center;
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--brand); font-size: 12px; font-weight: 800;
}
body.skin-halo .rg-check {
  padding: 12px 13px; border-radius: 12px;
  background: color-mix(in srgb, #fff 6%, transparent);
  border: 1px solid var(--halo-bd-soft);
  font-weight: 700; color: var(--header); font-size: 13.5px;
  transition: border-color .15s var(--ease);
}
body.skin-halo .rg-check:hover { border-color: var(--brand); }
body.skin-halo .rg-check input { width: 22px; height: 22px; }
body.skin-halo .jf-opt { border-radius: 12px; font-weight: 700; }
body.skin-halo .jf-opt.on {
  background: color-mix(in srgb, var(--brand) 18%, transparent);
  border-color: color-mix(in srgb, var(--brand) 60%, transparent);
  box-shadow: none; color: var(--header);
}
body.skin-halo .onb-opt.on {
  background: color-mix(in srgb, var(--brand) 18%, transparent);
  border-color: color-mix(in srgb, var(--brand) 60%, transparent);
  box-shadow: none;
}

/* ══ SUNUCU TAKVİYELERİ — Rev.3 büyütülmüş modal (design 2280-2374, README §12)
      DOM: _openServerBoostView (app.js) Rev.3'te .bv-hero + .bv-body sarmalayıcı
      üretir; klasik style.css grid'i bu flex düzenle geçersiz kılınır. ═══════ */
body.skin-halo .boost-view-overlay {
  background: rgba(0,0,0,.6);
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  display: grid; place-items: center; padding: 28px;
  animation: haloVeilIn .3s var(--ease);
}
body.skin-halo .boost-view-panel {
  display: flex; flex-direction: column;
  width: min(1080px, 96vw); height: min(760px, 92vh);
  border-radius: 24px; overflow: hidden;
  background: var(--halo-glass-2);
  -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  box-shadow: 0 44px 120px rgba(0,0,0,.65);
  animation: haloPopIn .3s var(--ease-pop);
}
/* üst şerit: pembe→mor→mavi degrade */
body.skin-halo .bv-hero {
  position: relative; flex: none;
  padding: 20px 26px 18px;
  background: linear-gradient(135deg, #ff5fbc 0%, #a855f7 55%, #6b7cff 100%);
  overflow: hidden;
}
body.skin-halo .bv-hero::before {
  content: ''; position: absolute; right: -30px; top: -50px;
  width: 200px; height: 200px; border-radius: 50%;
  background: rgba(255,255,255,.14);
}
body.skin-halo .bv-hero-title {
  position: relative; display: flex; align-items: center; gap: 8px;
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 20px; font-weight: 800; color: #fff;
}
body.skin-halo .bv-hero-title svg { width: 18px; height: 18px; fill: #fff; color: #fff; }
body.skin-halo .bv-hero-lvl {
  margin-left: 10px; padding: 3px 11px; border-radius: 999px;
  background: rgba(0,0,0,.25); color: #fff;
  font-family: 'Hanken Grotesk', sans-serif;
  font-size: 12px; font-weight: 800;
}
body.skin-halo .bv-hero-progress {
  position: relative; display: flex; align-items: center; gap: 12px;
  margin-top: 14px;
}
body.skin-halo .bv-hero-track {
  flex: 1; height: 9px; border-radius: 999px;
  background: rgba(0,0,0,.32); overflow: hidden;
}
body.skin-halo .bv-hero-fill {
  height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, #fff, rgba(255,255,255,.82));
  box-shadow: 0 0 14px rgba(255,255,255,.55);
  transition: width .5s var(--ease);
}
body.skin-halo .bv-hero-count { flex: none; font-size: 13px; font-weight: 800; color: #fff; }
body.skin-halo .bv-hero-next { position: relative; margin-top: 7px; font-size: 12px; color: rgba(255,255,255,.88); }
body.skin-halo .bv-hero-next b { color: #fff; }
body.skin-halo .boost-view-close {
  top: 16px; right: 16px; width: 34px; height: 34px;
  border-radius: 50%; border: none;
  background: rgba(0,0,0,.25); color: #fff;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  z-index: 3;
}
body.skin-halo .boost-view-close:hover { background: rgba(0,0,0,.42); }
/* gövde: sol scroll sütunu + 296px sağ ray */
body.skin-halo .bv-body { flex: 1; min-height: 0; display: flex; }
body.skin-halo .boost-view-main {
  flex: 1; min-width: 0; overflow-y: auto;
  padding: 22px 24px 26px; background: transparent;
}
body.skin-halo .boost-view-side {
  flex: none; width: 296px; overflow-y: auto;
  padding: 22px 22px 26px;
  border-left: 1px solid var(--halo-bd-soft);
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
}
body.skin-halo .bv-h3 {
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 17px; font-weight: 800; color: var(--header);
}
body.skin-halo .bv-p { font-size: 12.5px; color: var(--muted); margin: 3px 0 14px; }
/* seviye kartları */
body.skin-halo .bv-level-grid { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
body.skin-halo .bv-level-card {
  flex: 1; min-width: 200px; padding: 18px;
  border-radius: 18px; position: relative; overflow: hidden;
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  box-shadow: none;
}
body.skin-halo .bv-level-card.current {
  border-color: rgba(255,95,188,.5);
  box-shadow: 0 0 0 1px rgba(255,95,188,.3), 0 16px 40px rgba(0,0,0,.3);
}
body.skin-halo .bv-level-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--halo-bd-soft);
}
body.skin-halo .bv-level-card.reached::before {
  background: linear-gradient(90deg, #ff5fbc, #a855f7, #6b7cff);
}
body.skin-halo .bv-level-track { display: none; }
body.skin-halo .bv-level-head { display: flex; align-items: center; gap: 10px; margin-bottom: 11px; }
body.skin-halo .bv-level-badge {
  width: 38px; height: 38px; border-radius: 12px;
  display: grid; place-items: center;
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 16px; font-weight: 800; color: #fff;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  opacity: .5; box-shadow: none;
}
body.skin-halo .bv-level-card.reached .bv-level-badge {
  background: linear-gradient(135deg, #ff5fbc, #a855f7);
  box-shadow: 0 6px 18px rgba(168,85,247,.45);
  opacity: 1;
}
body.skin-halo .bv-level-name {
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 15px; font-weight: 800; color: var(--header);
}
body.skin-halo .bv-level-sub { display: block; font-size: 11.5px; color: var(--muted); }
body.skin-halo .bv-perk-list { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.skin-halo .bv-perk-list li { position: relative; padding-left: 14px; font-size: 12.5px; color: var(--text); line-height: 1.4; }
body.skin-halo .bv-perk-list li::before {
  content: ''; position: absolute; left: 0; top: 6px;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--muted);
}
body.skin-halo .bv-level-card.reached .bv-perk-list li::before { background: #ff5fbc; }
body.skin-halo .bv-level-foot {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 13px; padding-top: 11px;
  border-top: 1px solid var(--halo-bd-soft);
}
body.skin-halo .bv-level-need {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 800; color: #c88bff;
}
body.skin-halo .bv-level-need svg { width: 12px; height: 12px; fill: currentColor; }
body.skin-halo .bv-pill-active {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 800; color: var(--green);
  border: 1px solid color-mix(in srgb, var(--green) 40%, transparent);
  background: color-mix(in srgb, var(--green) 10%, transparent);
}
body.skin-halo .bv-pill-locked {
  padding: 3px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 700; color: var(--muted);
  border: 1px solid var(--halo-bd-soft);
}
/* ek avantajlar */
body.skin-halo .bv-perk-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(185px, 1fr));
  gap: 12px; margin-bottom: 24px;
}
body.skin-halo .bv-perk-card {
  position: relative; display: flex; flex-direction: column;
  padding: 18px 16px 14px; border-radius: 16px; min-height: 0;
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  transition: border-color .2s var(--ease), transform .2s var(--ease);
}
body.skin-halo .bv-perk-card:hover { border-color: rgba(200,139,255,.5); transform: translateY(-2px); }
body.skin-halo .bv-perk-tag {
  position: absolute; top: 10px; right: 10px;
  padding: 2px 9px; border-radius: 999px;
  background: linear-gradient(135deg, #a855f7, #6b7cff);
  color: #fff; font-size: 9.5px; font-weight: 800; letter-spacing: .6px;
}
body.skin-halo .bv-perk-art {
  width: 52px; height: 52px; border-radius: 16px;
  display: grid; place-items: center;
  background: rgba(168,85,247,.14);
  border: 1px solid rgba(168,85,247,.3);
  color: #c88bff; margin-bottom: 12px;
}
body.skin-halo .bv-perk-art svg { width: 24px; height: 24px; }
body.skin-halo .bv-perk-title {
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 14.5px; font-weight: 800; color: var(--header); line-height: 1.25;
}
body.skin-halo .bv-perk-desc { font-size: 12px; color: var(--muted); line-height: 1.45; margin-top: 5px; flex: 1; }
body.skin-halo .bv-perk-need {
  display: inline-flex; align-items: center; gap: 4px;
  margin-top: 12px; font-size: 12px; font-weight: 800; color: #c88bff;
}
body.skin-halo .bv-perk-need svg { width: 12px; height: 12px; fill: currentColor; }
/* buradaki takviyelerim */
body.skin-halo .boost-my-row {
  display: flex; align-items: center; gap: 11px;
  padding: 11px 14px; border-radius: 13px;
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
}
body.skin-halo .bmr-ico {
  flex: none; width: 30px; height: 30px; border-radius: 10px;
  display: grid; place-items: center; font-size: 15px;
  background: rgba(255,95,188,.14);
}
body.skin-halo .bmr-ico.is-prem { background: rgba(107,124,255,.16); }
body.skin-halo .boost-my-row > span:first-of-type { font-weight: 700; font-size: 13.5px; color: var(--header); }
body.skin-halo .boost-transfer-btn {
  padding: 6px 13px; border-radius: 9px;
  font-size: 12px; font-weight: 700; color: #fff;
  background: #4f6ef7; border: none;
}
body.skin-halo .boost-transfer-btn:hover { background: #4f6ef7; filter: brightness(1.12); }
body.skin-halo .boost-remove-btn {
  padding: 6px 13px; border-radius: 9px;
  font-size: 12px; font-weight: 700; color: #fff;
  background: var(--red); border: none;
}
body.skin-halo .boost-remove-btn:hover { background: var(--red); filter: brightness(1.12); }
body.skin-halo .boost-locked-note {
  padding: 6px 13px; border-radius: 9px;
  font-size: 12px; font-weight: 700; color: var(--muted);
  border: 1px solid var(--halo-bd-soft); background: transparent;
}
/* sağ ray */
body.skin-halo .bv-side-card {
  padding: 18px; border-radius: 18px;
  background: color-mix(in srgb, #fff 4%, transparent);
  border: 1px solid var(--halo-bd-soft);
}
body.skin-halo .bv-side-card.bv-side-cta {
  background: linear-gradient(160deg, rgba(255,95,188,.13), rgba(107,124,255,.1));
  border: 1px solid rgba(255,95,188,.35);
}
body.skin-halo .bv-side-card:not(.bv-side-cta) { background: transparent; border: none; padding: 0; }
body.skin-halo .bv-cta-head {
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 15.5px; font-weight: 800; color: var(--header);
}
body.skin-halo .bv-cta-text { font-size: 12px; color: var(--muted); line-height: 1.5; margin-top: 5px; }
body.skin-halo .bv-cta-badge-card {
  display: flex; align-items: center; gap: 11px;
  margin: 13px 0; padding: 11px 12px; border-radius: 13px;
  background: color-mix(in srgb, var(--dark-bg) 60%, transparent);
  border: 1px solid var(--halo-bd-soft);
}
body.skin-halo .bv-cta-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; height: 42px; border-radius: 12px; border: none;
  font-size: 13.5px; font-weight: 800; color: #fff;
  background: linear-gradient(135deg, #ff5fbc, #a855f7);
  box-shadow: 0 8px 22px rgba(168,85,247,.45);
  transition: transform .15s var(--ease), filter .15s;
}
body.skin-halo .bv-cta-btn:hover { transform: translateY(-1px); filter: brightness(1.06); }
body.skin-halo .bv-cta-btn.is-free {
  background: var(--green);
  box-shadow: 0 8px 22px color-mix(in srgb, var(--green) 40%, transparent);
}
body.skin-halo .bv-cta-note { margin-top: 8px; font-size: 11px; color: var(--muted); text-align: center; }
body.skin-halo .bv-cta-note b { color: #ff5fbc; }
body.skin-halo .bv-side-h {
  font-size: 11px; font-weight: 800; letter-spacing: .6px;
  text-transform: uppercase; color: var(--muted);
  margin: 20px 0 10px;
}
body.skin-halo .bv-activity-list { display: flex; flex-direction: column; gap: 2px; }
body.skin-halo .bv-activity-row {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 9px; border-radius: 10px;
  font-size: 12.5px; color: var(--text);
}
body.skin-halo .bv-activity-row:hover { background: color-mix(in srgb, #fff 5%, transparent); }
body.skin-halo .bv-activity-row svg { width: 12px; height: 12px; fill: #c88bff; color: #c88bff; flex: none; }
body.skin-halo .bv-act-name { color: var(--header); font-weight: 700; }
body.skin-halo .bv-act-date { margin-left: auto; font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
  body.skin-halo .bv-body { flex-direction: column; }
  body.skin-halo .boost-view-side {
    width: auto; border-left: none;
    border-top: 1px solid var(--halo-bd-soft);
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   REV. 3 §14 — PROFİL YÜZEYLERİ (design 1010-1202 + README Rev.2 §2)
   1) Mini profil popover (.user-card-compact)   2) Tam profil (.user-card-v2)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1) Mini popover · kabuk (design 1013: 344px, r22, popIn, ağır gölge) ── */
body.skin-halo .user-card-compact {
  width: 344px;
  max-height: calc(100vh - 24px);
  border-radius: var(--halo-r-lg);
  box-shadow: 0 32px 80px rgba(0,0,0,.65), var(--halo-hi);
  animation: haloPopIn .25s var(--ease-pop);
}
/* banner 96px; bannersız fallback marka tonu (inline `background:var(--input-bg)`
   shorthand'ını yalnız renk kanalında ezer — gerçek banner görseli üstte kalır) */
body.skin-halo .user-card-compact .ucc-banner {
  height: 96px;
  background-color: color-mix(in srgb, var(--brand) 28%, var(--dark-bg)) !important;
}
/* avatar 84px squircle-26 + 5px OPAK halka (design 1016). Halka yarı saydam
   cam olunca banner içinden görünüp foto ile çerçeve arasında "boşluk" gibi
   duruyordu — düz --dark-bg kullanıyoruz. */
body.skin-halo .user-card-compact .ucc-avatar-wrap {
  width: 84px; height: 84px;
  margin: -42px 0 0 20px;
  border-radius: 26px;
  box-shadow: 0 0 0 5px var(--dark-bg);
}
body.skin-halo .user-card-compact .ucc-avatar-wrap .av-img,
body.skin-halo .user-card-compact .ucc-avatar-wrap .av-initials {
  width: 84px !important; height: 84px !important;
  border-radius: 26px !important;
  font-size: 34px !important;
}
/* gövde + kimlik tipografisi (design 1015-1026) */
body.skin-halo .user-card-compact .ucc-body {
  padding: 13px 20px 22px;
  display: flex; flex-direction: column;   /* bölüm sıralaması (order) için */
}
body.skin-halo .user-card-compact .ucc-name {
  font-family: 'Bricolage Grotesque', 'Hanken Grotesk', sans-serif;
  font-size: 23px; letter-spacing: -0.01em;
}
body.skin-halo .user-card-compact .ucc-handle-row { margin-top: 2px; }
body.skin-halo .user-card-compact .ucc-handle { font-size: 13.5px; }
body.skin-halo .user-card-compact .ucc-badges-inline .badge-row { gap: 5px; }

/* bölüm sırası → design: Roller → Bağlantılar → Aktivite → Hakkında → butonlar */
body.skin-halo .user-card-compact .ucc-name        { order: 1; }
body.skin-halo .user-card-compact .ucc-handle-row  { order: 2; }
body.skin-halo .user-card-compact .ucc-section     { order: 6; margin-top: 16px; } /* Hakkında */
body.skin-halo .user-card-compact .ucc-section.ucc-roles                { order: 3; }
body.skin-halo .user-card-compact .ucc-section:has(.ucc-conn-strip)     { order: 4; }
body.skin-halo .user-card-compact .ucc-section:has(.user-activity-slot) { order: 5; }
body.skin-halo .user-card-compact .ucc-actions     { order: 7; margin-top: 18px; }
body.skin-halo .user-card-compact .ucc-view-full   { order: 8; margin-top: 8px; }

/* bölüm başlıkları 11px / ls .5 (design 1028 vd.) */
body.skin-halo .user-card-compact .ucc-section-title {
  font-size: 11px; letter-spacing: .5px; margin-bottom: 7px;
}
/* Hakkında: kutusuz düz metin (design 1056) */
body.skin-halo .user-card-compact .ucc-bio {
  background: transparent; border: none; padding: 0;
  font-size: 14px;
}
/* bağlantı hapları (design 1035) */
body.skin-halo .user-card-compact .ucc-conn-strip { gap: 7px; }
body.skin-halo .user-card-compact .ucc-conn-pill {
  padding: 6px 11px; border-radius: 9px;
  font-size: 12.5px; color: var(--text);
}
body.skin-halo .user-card-compact .ucc-conn-icon,
body.skin-halo .user-card-compact .ucc-conn-icon svg { width: 18px; height: 18px; }
body.skin-halo .user-card-compact .ucc-conn-handle { max-width: 160px; }

/* aksiyonlar: 42px yükseklik, köşe 13 (design 1057-1060) */
body.skin-halo .user-card-compact .ucc-btn {
  height: 42px; border-radius: 13px;
  font-size: 14px; font-weight: 700;
}
body.skin-halo .user-card-compact .ucc-btn.icon { width: 42px; }
body.skin-halo .user-card-compact .ucc-btn svg { width: 17px; height: 17px; }
/* "Tam Profil" ikincil buton reçetesi (design 1059) */
body.skin-halo .user-card-compact .ucc-view-full {
  height: 42px; border-radius: 13px;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  font-size: 14px; font-weight: 700;
}
body.skin-halo .user-card-compact .ucc-view-full:hover {
  background: color-mix(in srgb, #fff 5%, transparent);
  border-color: color-mix(in srgb, var(--brand) 50%, transparent);
}

/* mini aktivite kartı (design 1040-1044): r13, 38px ikon-11, şeritsiz */
body.skin-halo .user-card-compact .user-activity {
  align-items: center; gap: 11px;
  padding: 11px 12px; border-radius: 13px;
  background: color-mix(in srgb, #fff 5%, transparent);
  border-left: 1px solid var(--halo-bd-soft);   /* sol aksan şeridi kalkar */
}
body.skin-halo .user-card-compact .user-activity .act-icon-wrap,
body.skin-halo .user-card-compact .user-activity .act-art,
body.skin-halo .user-card-compact .user-activity .act-art-fallback {
  width: 38px; height: 38px; border-radius: 11px;
}
body.skin-halo .user-card-compact .user-activity .act-icon-wrap {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
}
body.skin-halo .user-card-compact .user-activity .act-title {
  font-size: 13.5px; font-weight: 600; color: var(--text);
}
/* etiket: 10px/800/.7px + tür rengi (DİNLİYOR #1DB954 / OYNUYOR yeşil) */
body.skin-halo :is(.user-card-compact, .user-card-v2) .user-activity .act-kicker {
  font-size: 10px; font-weight: 800; letter-spacing: .7px;
}
body.skin-halo :is(.user-card-compact, .user-card-v2) .user-activity--spotify .act-kicker { color: #1DB954; }
body.skin-halo :is(.user-card-compact, .user-card-v2) .user-activity--game    .act-kicker { color: var(--green); }

/* ── 2) Tam profil · veil + kabuk (design 1068-1069) ── */
body.skin-halo #user-card-backdrop {
  background: rgba(0,0,0,.6);
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  animation: haloVeilIn .3s var(--ease);
}
body.skin-halo .user-card-v2 {
  width: min(1000px, 96vw);
  height: min(690px, 92vh);
  border-radius: 24px;
  box-shadow: 0 40px 110px rgba(0,0,0,.7), var(--halo-hi);
  animation: haloPopIn .3s var(--ease-pop);
}
/* sol kimlik sütunu: 360px, koyu cam iç ton (base %97 opak sidebar'ı ezer) */
body.skin-halo .user-card-v2 .ucp-left {
  width: 360px;
  padding: 189px 22px 24px;      /* banner 128 + avatar taşması + 15 */
  background: color-mix(in srgb, var(--dark-bg) 30%, transparent);
  border-right: 1px solid var(--halo-bd-soft);
}
body.skin-halo .user-card-v2 .ucp-right { background: transparent; }
/* banner 360×128 + radial parlama (design 1072-1074) */
body.skin-halo .user-card-v2 .ucp-banner {
  width: 360px; height: 128px;
  border-top-left-radius: 24px;
  background-color: color-mix(in srgb, var(--brand) 28%, var(--dark-bg)) !important;
}
body.skin-halo .user-card-v2 .ucp-banner::after {
  content: ''; position: absolute; inset: 0;
  border-top-left-radius: inherit;
  background: radial-gradient(120% 150% at 12% 0%, rgba(255,255,255,.28), transparent 55%);
}
/* avatar 92px squircle-28 + 5px OPAK halka (design 1076-1078) */
body.skin-halo .user-card-v2 .ucp-avatar-wrap {
  left: 22px; top: 82px;
  border-radius: 28px;
  box-shadow: 0 0 0 5px var(--dark-bg);
}
body.skin-halo .user-card-v2 .ucp-avatar-wrap .av-img,
body.skin-halo .user-card-v2 .ucp-avatar-wrap .av-initials {
  border-radius: 28px !important;
  font-size: 38px !important;
}
body.skin-halo .user-card-v2 .ucp-avatar-wrap .m-status { border-color: var(--dark-bg); }
/* isim + tag + rozetler (design 1080-1091) */
body.skin-halo .user-card-v2 .ucp-name { font-size: 25px; line-height: 1.08; }
body.skin-halo .user-card-v2 .ucp-handle-row { margin-top: 3px; }
body.skin-halo .user-card-v2 .ucp-handle { font-size: 14px; }
body.skin-halo .user-card-v2 .ucp-badges-inline .badge-icon-wrap { width: 18px; height: 18px; }
body.skin-halo .user-card-v2 .ucp-badges-inline .badge-icon-wrap img { max-width: 18px; max-height: 18px; }
body.skin-halo .user-card-v2 .ucp-badges-inline .badge-row { gap: 6px; }
/* aksiyonlar 40px / köşe 12 (design 1094-1101) */
body.skin-halo .user-card-v2 .ucp-actions { margin-top: 16px; }
body.skin-halo .user-card-v2 .ucp-btn { height: 40px; border-radius: 12px; font-size: 14px; font-weight: 700; }
body.skin-halo .user-card-v2 .ucp-btn.icon { width: 40px; }
/* bölümler */
body.skin-halo .user-card-v2 .ucp-section { margin-top: 20px; }
body.skin-halo .user-card-v2 .ucp-section-title { letter-spacing: .5px; margin-bottom: 9px; }
/* bağlantılar: 2 sütunlu grid, r11, koyu iç kart (design 1107-1109) */
body.skin-halo .user-card-v2 .ucp-conn-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
body.skin-halo .user-card-v2 .ucp-conn-row {
  min-width: 0; padding: 9px 10px; border-radius: 11px;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
}
body.skin-halo .user-card-v2 .ucp-conn-row:hover {
  background: color-mix(in srgb, #fff 5%, transparent);
  border-color: color-mix(in srgb, var(--brand) 50%, transparent);
}
body.skin-halo .user-card-v2 .ucp-conn-icon,
body.skin-halo .user-card-v2 .ucp-conn-icon svg { width: 22px; height: 22px; }
body.skin-halo .user-card-v2 .ucp-conn-handle { font-size: 13.5px; font-weight: 700; }
/* diğer bağlantılar + rol etiketleri (design 1114 / 1120, 1030) */
body.skin-halo .user-card-v2 .uc-social-link {
  padding: 6px 11px; border-radius: 9px;
  background: color-mix(in srgb, #fff 5%, transparent);
  border-color: var(--halo-bd-soft);
  font-size: 12.5px;
}
body.skin-halo .user-card-v2 .uc-server-roles { gap: 6px; }
body.skin-halo :is(.user-card-v2, .user-card-compact) .uc-role-tag {
  gap: 7px; padding: 5px 11px; border-radius: 9px; font-size: 12.5px;
}
/* üye tarihleri: hapsız sade satırlar (design 1124-1130) */
body.skin-halo .user-card-v2 .ucp-since-stack { gap: 11px; }
body.skin-halo .user-card-v2 .ucp-since-row { background: transparent; border: none; padding: 0; }
body.skin-halo .user-card-v2 .ucp-since-val { font-size: 13px; }
/* sekme barı (design 1135-1140) */
body.skin-halo .user-card-v2 .ucp-tabs { padding: 0 20px; gap: 22px; }
body.skin-halo .user-card-v2 .ucp-tab { padding: 16px 2px 14px; font-size: 14.5px; }
body.skin-halo .user-card-v2 .ucp-tab.active { font-weight: 700; }
body.skin-halo .user-card-v2 .ucp-tab::after { left: 2px; right: 2px; }
/* kapat: hayalet daire, barın içinde sağda (design 1140) */
body.skin-halo .user-card-v2 .ucp-close {
  top: 9px; right: 16px;
  width: 34px; height: 34px;
  background: transparent;
  border: 1.5px solid var(--halo-bd);
  color: var(--muted);
}
body.skin-halo .user-card-v2 .ucp-close:hover {
  background: transparent; transform: none;
  border-color: var(--text); color: var(--text);
}
/* sekme gövdesi + iç kartlar (design 1144-1156) */
body.skin-halo .user-card-v2 .ucp-tab-body { padding: 24px; }
body.skin-halo .user-card-v2 .ucp-bio {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: 14px; padding: 13px 15px;
  font-size: 14.5px; line-height: 1.55;
}
body.skin-halo .user-card-v2 .user-activity {
  align-items: center; gap: 13px;
  padding: 13px 14px; border-radius: 14px;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-left: 1px solid var(--halo-bd-soft);   /* şerit yok */
}
body.skin-halo .user-card-v2 .ucp-tab-body .user-activity .act-icon-wrap,
body.skin-halo .user-card-v2 .ucp-tab-body .user-activity .act-art,
body.skin-halo .user-card-v2 .ucp-tab-body .user-activity .act-art-fallback {
  width: 46px; height: 46px; border-radius: 13px;
}
body.skin-halo .user-card-v2 .ucp-tab-body .user-activity .act-icon-wrap {
  background: color-mix(in srgb, #fff 5%, transparent);
}
body.skin-halo .user-card-v2 .ucp-tab-body .user-activity .act-kicker { font-size: 10.5px; }
body.skin-halo .user-card-v2 .ucp-tab-body .user-activity .act-title {
  font-size: 14.5px; font-weight: 700; color: var(--header);
}
/* Etkinlik sekmesi: büyük kart (design 1175-1178) — tab-body kurallarından SONRA */
body.skin-halo .user-card-v2 .ucp-act-large .user-activity { gap: 15px; padding: 18px; border-radius: 16px; }
body.skin-halo .user-card-v2 .ucp-act-large .user-activity .act-icon-wrap,
body.skin-halo .user-card-v2 .ucp-act-large .user-activity .act-art,
body.skin-halo .user-card-v2 .ucp-act-large .user-activity .act-art-fallback {
  width: 58px; height: 58px; border-radius: 16px;
}
body.skin-halo .user-card-v2 .ucp-act-large .user-activity .act-title {
  font-family: 'Bricolage Grotesque', 'Hanken Grotesk', sans-serif;
  font-size: 17px; font-weight: 800;
}
body.skin-halo .user-card-v2 .ucp-act-large .user-activity .act-sub { font-size: 12.5px; }
/* boş durum: Pano'da kutulu (design 1159), Etkinlik'te tek-çocuk sade (1181) */
body.skin-halo .user-card-v2 .ucp-empty {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  border-radius: 14px; padding: 30px 20px;
  font-size: 14px;
}
body.skin-halo .user-card-v2 .ucp-tab-body > .ucp-empty:only-child {
  background: transparent; border: none; padding: 78px 20px;
}
/* not alanı köşe 14 (design 1166) */
body.skin-halo .user-card-v2 .ucp-note { border-radius: 14px; padding: 12px 14px; font-size: 14px; }
/* ortak sunucu / arkadaş satırları (design 1192-1196) */
body.skin-halo .user-card-v2 .ucp-list { gap: 8px; }
body.skin-halo .user-card-v2 .ucp-list-row {
  gap: 13px; padding: 12px 14px; border-radius: 14px;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
}
body.skin-halo .user-card-v2 .ucp-list-row:hover {
  background: color-mix(in srgb, #fff 5%, transparent);
  border-color: color-mix(in srgb, var(--brand) 50%, transparent);
}
body.skin-halo .user-card-v2 .ucp-list-name { font-size: 15px; font-weight: 700; }
body.skin-halo .user-card-v2 .ucp-list-sub  { font-size: 12.5px; }
body.skin-halo .user-card-v2 .ucp-server-icon {
  width: 44px; height: 44px; border-radius: 15px;
  font-family: 'Bricolage Grotesque', 'Hanken Grotesk', sans-serif;
  font-size: 19px; font-weight: 800;
}

/* ── Profil kaydırma çubukları: yalnızca kaydırırken görünür (auto-hide) ──────
   Track/gutter (9px) yerinde kaldığı için thumb saydamdan görünüre geçince
   içerik KAYMAZ. .sb-active sınıfı kaydırma boyunca JS ile eklenir (app.js
   global scroll dinleyicisi, ~700ms). Kapsam: tam profil sol sütun + sekme
   gövdesi, mini kart gövdesi, DM profil paneli. */
body.skin-halo :is(.user-card-v2 .ucp-left, .user-card-v2 .ucp-tab-body,
  .user-card-compact .ucc-body, .dm-profile-panel .dpp-scroll)::-webkit-scrollbar-thumb {
  background: transparent;
}
body.skin-halo :is(.user-card-v2 .ucp-left, .user-card-v2 .ucp-tab-body,
  .user-card-compact .ucc-body, .dm-profile-panel .dpp-scroll).sb-active::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, #fff 16%, transparent);
}
body.skin-halo :is(.user-card-v2 .ucp-left, .user-card-v2 .ucp-tab-body,
  .user-card-compact .ucc-body, .dm-profile-panel .dpp-scroll).sb-active::-webkit-scrollbar-thumb:hover {
  background: color-mix(in srgb, #fff 26%, transparent);
}

/* ═══ SÜRÜM NOTLARI — "Neler yeni?" ekranı (Admin ▸ Sürüm Notları yayınlar) ═══ */
body.skin-halo .chlog-overlay {
  position: fixed; inset: 0; z-index: 9800;
  display: grid; place-items: center; padding: 28px;
  background: rgba(0,0,0,.6);
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  animation: haloVeilIn .3s var(--ease);
}
body.skin-halo .chlog-panel {
  display: flex; flex-direction: column;
  width: min(520px, 95vw); max-height: min(640px, 92vh);
  border-radius: 24px; overflow: hidden;
  background: var(--halo-glass-2);
  -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur);
  border: 1px solid var(--halo-bd);
  box-shadow: 0 44px 120px rgba(0,0,0,.65);
  animation: haloPopIn .3s var(--ease-pop);
}
body.skin-halo .chlog-hero {
  position: relative; flex: none;
  padding: 24px 26px 20px;
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--brand) 85%, #fff) 0%, var(--brand) 55%, #9a6bff 100%);
  overflow: hidden;
}
body.skin-halo .chlog-hero::before {
  content: ''; position: absolute; right: -30px; top: -50px;
  width: 180px; height: 180px; border-radius: 50%;
  background: rgba(255,255,255,.14);
}
body.skin-halo .chlog-hero-eyebrow {
  position: relative;
  font-size: 11px; font-weight: 800; letter-spacing: .8px;
  color: rgba(255,255,255,.85);
}
body.skin-halo .chlog-hero-title {
  position: relative; margin-top: 4px;
  font-family: 'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  font-size: 22px; font-weight: 800; letter-spacing: -.2px; color: #fff;
}
body.skin-halo .chlog-hero-ver {
  position: relative; display: inline-block; margin-top: 8px;
  padding: 3px 11px; border-radius: 999px;
  background: rgba(0,0,0,.25); color: #fff;
  font-size: 12px; font-weight: 800;
}
body.skin-halo .chlog-body {
  flex: 1; min-height: 0; overflow-y: auto;
  display: flex; flex-direction: column; gap: 7px;
  padding: 18px 22px;
}
body.skin-halo .chlog-item {
  display: flex; align-items: flex-start; gap: 11px;
  padding: 11px 13px; border-radius: 13px;
  background: color-mix(in srgb, #fff 5%, transparent);
  border: 1px solid var(--halo-bd-soft);
  font-size: 13.5px; line-height: 1.5; color: var(--text);
}
body.skin-halo .chlog-item-ico {
  flex: none; width: 28px; height: 28px; margin-top: 1px;
  display: grid; place-items: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--brand) 16%, transparent);
  color: var(--brand);
}
body.skin-halo .chlog-foot {
  flex: none; padding: 14px 22px 18px;
  border-top: 1px solid var(--halo-bd-soft);
}
body.skin-halo .chlog-ok {
  width: 100%; height: 42px; border: none; border-radius: 12px;
  background: var(--ds-grad, linear-gradient(135deg, var(--brand), #9a6bff));
  color: #fff; font-size: 14px; font-weight: 800;
  font-family: inherit; cursor: pointer;
  transition: transform .15s var(--ease), filter .15s;
}
body.skin-halo .chlog-ok:hover { transform: translateY(-1px); filter: brightness(1.06); }

/* ═══ ADMIN PANELİ — kontroller Halo diline (butonlar, tikler, girdiler) ═══ */
body.skin-halo .fm-save-btn {
  border-radius: 11px;
  padding: 10px 18px;
  font-size: 13.5px; font-weight: 700;
}
body.skin-halo .fm-save-btn:hover { filter: brightness(1.08); }
body.skin-halo .fm-save-btn.secondary {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  color: var(--text);
}
body.skin-halo .fm-save-btn.secondary:hover {
  background: color-mix(in srgb, #fff 7%, transparent);
  filter: none;
}
/* çıplak onay kutuları → 20px squircle marka tiki (toggle/ssp anahtarlarının
   içindeki gizli input'lara ve kendi stili olan .perm-checkbox'a dokunma) */
body.skin-halo input[type="checkbox"]:not(.toggle-switch input):not(.ssp-switch input):not(.perm-checkbox) {
  appearance: none; -webkit-appearance: none;
  width: 20px; height: 20px; flex: none;
  margin: 0; vertical-align: middle;
  border-radius: 7px;
  border: 2px solid color-mix(in srgb, #fff 28%, transparent);
  background: transparent;
  cursor: pointer;
  transition: background .15s var(--ease), border-color .15s var(--ease);
}
body.skin-halo input[type="checkbox"]:not(.toggle-switch input):not(.ssp-switch input):not(.perm-checkbox):hover {
  border-color: color-mix(in srgb, #fff 45%, transparent);
}
body.skin-halo input[type="checkbox"]:not(.toggle-switch input):not(.ssp-switch input):not(.perm-checkbox):checked {
  background: var(--brand)
    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")
    center / 12px no-repeat;
  border-color: var(--brand);
}
/* admin sekmelerindeki çıplak girdi/seçim/metin alanları → cam reçete */
body.skin-halo #admin-fm-content :is(input[type="text"], input[type="number"], input[type="date"], select, textarea) {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd);
  border-radius: 11px;
  color: var(--text);
  padding: 9px 12px;
  font-family: inherit;
  transition: border-color .15s var(--ease), box-shadow .15s var(--ease);
}
body.skin-halo #admin-fm-content :is(input[type="text"], input[type="number"], input[type="date"], select, textarea):focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);
}
body.skin-halo #admin-fm-content select option { background: var(--dark-bg); }

/* ── Kristal paket penceresi (4×2 kart ızgarası) — giriş noktası cüzdan hapı ── */
body.skin-halo .modal:has(.tp-wrap) { max-width: 680px; }
body.skin-halo .tp-sub { font-size: 13px; color: var(--muted); margin: 4px 0 18px; }
body.skin-halo .tp-bal { color: var(--header); }
body.skin-halo .tp-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 12px 10px;
}
body.skin-halo .tp-card {
  position: relative;
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 17px 8px 10px;
  border-radius: 14px;
  background: color-mix(in srgb, #fff 4%, transparent);
  border: 1px solid var(--halo-bd-soft);
  cursor: pointer; font-family: inherit;
  transition: transform .15s var(--ease), border-color .15s var(--ease),
              background .15s var(--ease), box-shadow .15s var(--ease);
}
body.skin-halo .tp-card:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--brand) 45%, transparent);
}
body.skin-halo .tp-card.active {
  background: color-mix(in srgb, var(--brand) 13%, transparent);
  border-color: color-mix(in srgb, var(--brand) 65%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent),
              0 10px 26px color-mix(in srgb, var(--brand) 16%, transparent);
}
body.skin-halo .tp-ribbon {
  position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  padding: 2px 8px; border-radius: 999px; white-space: nowrap;
  background: var(--ds-grad, linear-gradient(135deg, var(--brand), #9a6bff));
  color: #fff; font-size: 9.5px; font-weight: 800; letter-spacing: .5px;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--brand) 35%, transparent);
}
body.skin-halo .tp-ribbon-best {
  background: linear-gradient(135deg, #fbbf24, #f97316);
  box-shadow: 0 4px 12px rgba(251, 191, 36, .3);
}
body.skin-halo .tp-coin { color: var(--brand); margin-bottom: 2px; }
body.skin-halo .tp-coin svg { width: 24px; height: 24px; }
body.skin-halo .tp-chars {
  font-family: 'Bricolage Grotesque', 'Hanken Grotesk', sans-serif;
  font-size: 22px; font-weight: 800; color: var(--header); line-height: 1;
}
body.skin-halo .tp-chars-lbl { font-size: 10.5px; color: var(--muted); letter-spacing: .4px; }
body.skin-halo .tp-bonus {
  margin-top: 4px; padding: 2px 8px; border-radius: 999px;
  background: color-mix(in srgb, var(--green) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--green) 35%, transparent);
  color: var(--green); font-size: 10.5px; font-weight: 800;
}
body.skin-halo .tp-bonus-none {
  background: transparent; border-color: transparent;
  color: var(--muted); font-weight: 600;
}
body.skin-halo .tp-price {
  margin-top: 8px; align-self: stretch;
  padding: 7px 0; border-radius: 9px; text-align: center;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd-soft);
  font-size: 13px; font-weight: 800; color: var(--text);
  transition: background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);
}
body.skin-halo .tp-card.active .tp-price { background: var(--brand); border-color: transparent; color: #fff; }
body.skin-halo .tp-foot { display: flex; align-items: center; gap: 14px; margin-top: 18px; }
body.skin-halo .tp-note { font-size: 11.5px; color: var(--muted); line-height: 1.5; }
body.skin-halo .tp-pay {
  margin-left: auto; flex: none;
  padding: 11px 22px; border-radius: 12px; border: none;
  background: var(--ds-grad, linear-gradient(135deg, var(--brand), #9a6bff));
  color: #fff; font-size: 13.5px; font-weight: 800; font-family: inherit;
  cursor: pointer;
  box-shadow: 0 6px 18px color-mix(in srgb, var(--brand) 30%, transparent);
  transition: transform .15s var(--ease), filter .15s;
}
body.skin-halo .tp-pay:hover { transform: translateY(-1px); filter: brightness(1.07); }
@media (max-width: 720px) {
  body.skin-halo .tp-grid { grid-template-columns: repeat(2, 1fr); }
  body.skin-halo .tp-foot { flex-direction: column; align-items: stretch; text-align: center; }
  body.skin-halo .tp-pay { margin-left: 0; }
}

/* ═══ MAĞAZA · ABONELİK — kart fiyat notu + plan seçme penceresi ═══ */
body.skin-halo .st-price-alt { margin: -10px 0 12px; font-size: 12px; color: var(--muted); }
body.skin-halo .st-price-alt-save { color: var(--green); font-weight: 700; }
body.skin-halo .sm-sub { font-size: 13px; color: var(--muted); margin: 4px 0 16px; line-height: 1.5; }
body.skin-halo .sm-plans { display: flex; flex-direction: column; gap: 8px; }
body.skin-halo .sm-plan {
  position: relative;
  display: flex; align-items: center; gap: 12px;
  padding: 13px 14px;
  border-radius: 13px;
  background: color-mix(in srgb, #fff 4%, transparent);
  border: 1px solid var(--halo-bd-soft);
  cursor: pointer; font-family: inherit; text-align: left;
  transition: border-color .15s var(--ease), background .15s var(--ease), box-shadow .15s var(--ease);
}
body.skin-halo .sm-plan:hover { border-color: color-mix(in srgb, var(--brand) 45%, transparent); }
body.skin-halo .sm-plan.active {
  background: color-mix(in srgb, var(--brand) 12%, transparent);
  border-color: color-mix(in srgb, var(--brand) 65%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 16%, transparent);
}
body.skin-halo .sm-radio {
  width: 18px; height: 18px; flex: none; border-radius: 50%;
  border: 2px solid color-mix(in srgb, #fff 30%, transparent);
  display: grid; place-items: center;
  transition: border-color .15s var(--ease);
}
body.skin-halo .sm-plan.active .sm-radio { border-color: var(--brand); }
body.skin-halo .sm-plan.active .sm-radio::after {
  content: ''; width: 9px; height: 9px; border-radius: 50%;
  background: var(--brand);
}
body.skin-halo .sm-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
body.skin-halo .sm-main b { font-size: 14px; color: var(--header); }
body.skin-halo .sm-price { font-size: 12.5px; color: var(--muted); }
body.skin-halo .sm-save {
  margin-left: auto; flex: none;
  padding: 3px 9px; border-radius: 999px;
  background: color-mix(in srgb, var(--green) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--green) 38%, transparent);
  color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .4px;
}
body.skin-halo .sm-note {
  margin-top: 12px; padding: 10px 12px; border-radius: 11px;
  background: color-mix(in srgb, var(--green) 9%, transparent);
  border: 1px solid color-mix(in srgb, var(--green) 26%, transparent);
  color: var(--green); font-size: 12px; line-height: 1.45;
}
body.skin-halo .sm-bal { margin-top: 12px; font-size: 12.5px; color: var(--muted); }
body.skin-halo .sm-bal b { color: var(--header); }

/* ═══ ADMIN · KREDİ PAKETLERİ editörü ═══ */
body.skin-halo .adm-pkg-row {
  display: grid;
  /* Dar admin panelinde taşmasın: rozet sütunu esner, kalanlar kompakt. */
  grid-template-columns: 68px 86px 56px minmax(92px, 1fr) 42px 52px auto;
  gap: 8px; align-items: center;
  padding: 8px 10px;
  border-radius: 12px;
  margin-bottom: 6px;
  background: color-mix(in srgb, #fff 3.5%, transparent);
  border: 1px solid var(--halo-bd-soft);
}
body.skin-halo .adm-pkg-row-head {
  background: transparent; border-color: transparent;
  padding-bottom: 2px; margin-bottom: 2px;
  font-size: 10.5px; font-weight: 800; letter-spacing: .5px; color: var(--muted);
}
body.skin-halo .adm-pkg-row input[type="number"],
body.skin-halo .adm-pkg-row select {
  width: 100%; padding: 7px 9px;
  border-radius: 9px;
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border: 1px solid var(--halo-bd);
  color: var(--text); font-family: inherit; font-size: 12.5px;
}
body.skin-halo .adm-pkg-row select option { background: var(--dark-bg); }
body.skin-halo .adm-pkg-row .apk-bonus { font-size: 12.5px; font-weight: 800; }
body.skin-halo .adm-pkg-row .apk-btns { display: flex; gap: 5px; justify-content: flex-end; }
body.skin-halo .adm-pkg-row .apk-btns .fm-save-btn { padding: 6px 10px; font-size: 11.5px; }
body.skin-halo .adm-pkg-row .apk-del {
  background: color-mix(in srgb, var(--red) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--red) 40%, transparent);
  color: var(--red);
}
body.skin-halo .adm-pkg-row .apk-del:hover { background: var(--red); color: #fff; }
@media (max-width: 900px) {
  body.skin-halo .adm-pkg-row { grid-template-columns: 62px 78px 50px 1fr 38px 46px auto; }
}
body.skin-halo .st-owned-warn { color: var(--yellow, #F0B232); }
body.skin-halo .st-buy.st-sub-cancel {
  background: color-mix(in srgb, var(--red) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--red) 40%, transparent);
  color: var(--red);
}
body.skin-halo .st-buy.st-sub-cancel:hover { background: var(--red); color: #fff; }
body.skin-halo .st-buy.st-sub-resume { background: var(--green); color: #fff; }
body.skin-halo .st-buy[disabled] { opacity: .45; cursor: not-allowed; }

/* ── Avatar dili: uygulama genelinde SQUIRCLE (~32%) ─────────────────────────
   Profil kartları (26/28px köşe) ve sohbet avatarı (32%) squircle'a geçtiği
   için üye listesi, DM satırları, arkadaş listesi, sabitlenenler, durum
   menüsü vb. TÜM avatarlar aynı dile çekilir. avatarEl inline
   border-radius:50% bastığından !important zorunlu. Daha spesifik squircle
   kuralları (.msg-avatar 32%, .ucc/.ucp 26/28px, .msr-av 10px, .mrq-av 6px,
   davet satırları 12px) kendi değerleriyle kazanmaya devam eder.
   İSTİSNA — tasarım gereği DAİRE kalanlar: ses/arama katılımcı avatarları
   (yeşil konuşma çemberi daireseldir) ve gelen arama afişi (pulse halkası). */
body.skin-halo .av-img,
body.skin-halo .av-initials { border-radius: 32% !important; }
body.skin-halo :is(.vc-card-avatar, .ic-avatar, .crm-av, .vc-hero-av, .cpv-av)
  :is(.av-img, .av-initials) { border-radius: 50% !important; }

/* Ayarlar ▸ Profilim önizlemesi: kart avatarı + hover katmanı + cam halka da
   squircle (84px → 26px, mini profil kartıyla aynı oran). Base style.css
   6107-6113'teki 50% !important kuralını daha yüksek öznitelikle ezer. */
body.skin-halo .pf-preview-avatar {
  border-radius: 26px;
  box-shadow: 0 0 0 5px var(--dark-bg);   /* opak halka — banner sızması yok */
}
body.skin-halo .pf-preview-avatar #pf-avatar-preview,
body.skin-halo .pf-preview-avatar #pf-avatar-preview img,
body.skin-halo .pf-preview-avatar .av-img,
body.skin-halo .pf-preview-avatar .av-initials {
  border-radius: 26px !important;
}
body.skin-halo .pf-avatar-wrap .pf-av-overlay { border-radius: 26px; }

/* Avatar kırpma aracı: dairesel maske → squircle %32. Kaydedilen kare veri
   değişmez; maske artık avatarın uygulamada gerçekte görüneceği şekli
   (32% squircle) birebir önizler. Dış karartma ::before'un dış gölgesiyle
   verilir (viewport overflow:hidden köşe taşmalarını kırpar). */
body.skin-halo .crop-viewport.round .crop-mask { background: none; }
body.skin-halo .crop-viewport.round .crop-mask::before {
  border-radius: 32%;
  box-shadow: 0 0 0 2px rgba(255,255,255,.85) inset,
              0 0 0 400px rgba(0,0,0,.62);
}

/* ═══ BOT rozeti + GELİŞTİRİCİ PORTALI (Halo) ═══ */
body.skin-halo .bot-tag {
  background: var(--ds-grad, linear-gradient(135deg, var(--brand), #9a6bff));
  box-shadow: 0 2px 8px color-mix(in srgb, var(--brand) 30%, transparent);
}
body.skin-halo .dev-app-card,
body.skin-halo .dev-token-val,
body.skin-halo .dev-srv-chip,
body.skin-halo .dev-srv-pick-row,
body.skin-halo .dev-code,
body.skin-halo .dev-docs code {
  background: color-mix(in srgb, var(--dark-bg) 55%, transparent);
  border-color: var(--halo-bd-soft);
}
body.skin-halo .dev-app-card { background: var(--halo-glass-2); border-color: var(--halo-bd); box-shadow: var(--halo-hi); }
body.skin-halo .dev-token-fresh {
  background: linear-gradient(135deg, color-mix(in srgb, var(--yellow, #F0B232) 14%, transparent), transparent);
  border-color: color-mix(in srgb, var(--yellow, #F0B232) 45%, transparent);
}
body.skin-halo .dev-srv-pick-row:hover { border-color: color-mix(in srgb, var(--brand) 55%, transparent); background: color-mix(in srgb, var(--brand) 10%, transparent); }

/* ── Bot yetki menüsü + managed rol (Halo) ── */
body.skin-halo .botperm-preset,
body.skin-halo .botperm-row { background: color-mix(in srgb, var(--dark-bg) 55%, transparent); border-color: var(--halo-bd-soft); }
body.skin-halo .botperm-preset:hover,
body.skin-halo .botperm-row.on { border-color: color-mix(in srgb, var(--brand) 55%, transparent); }
body.skin-halo .botperm-row.on .botperm-check { background: var(--brand); border-color: var(--brand); }

/* ── Bot embed + component (Halo) ── */
body.skin-halo .msg-embed,
body.skin-halo .msc-select { background: color-mix(in srgb, var(--dark-bg) 60%, transparent); border-color: var(--halo-bd-soft); }
body.skin-halo .msg-embed { -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur); }
body.skin-halo .msc-menu { background: var(--halo-glass-2); border-color: var(--halo-bd); -webkit-backdrop-filter: var(--halo-blur); backdrop-filter: var(--halo-blur); }
