html { overflow-x: clip; overflow-y: visible; height: auto; }
body { overflow-x: clip; overflow-y: visible; }


.oasis-bottombar {
  display: flex;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 1000;
  justify-content: space-around;
  align-items: center;
  gap: 4px;
  background: #1F1F1F;
  border-top: 1px solid #333;
  padding: 8px 6px calc(8px + env(safe-area-inset-bottom, 0px));
}
.oasis-bottombar .bb-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  flex: 1 1 0;
  min-width: 0;
  padding: 2px 0;
  text-decoration: none;
}
.oasis-bottombar .bb-ico { font-size: 18px; line-height: 1; color: #FFD700; }
.oasis-bottombar .bb-lbl { font-size: 9px; color: #FFD700; white-space: nowrap; }
.oasis-bottombar .bb-badge {
  position: absolute;
  top: -4px;
  left: calc(50% + 6px);
  min-width: 15px; height: 15px;
  padding: 0 3px;
  border-radius: 8px;
  background: #FFD700;
  color: #121212;
  font-size: 9px; font-weight: bold;
  display: flex; align-items: center; justify-content: center;
}

body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }

/* topbar FIJA arriba: [logo] [Personal] [Community] [avatar]; el hive scrollea por debajo */
.oasis-mobile-topbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px;
  background: #121212;
  border-bottom: 1px solid #333;
}
body { padding-top: 84px; background: #121212; }

.oasis-mobile-topbar .omt-logo, .oasis-mobile-topbar .omt-avatar { flex: 0 0 auto; }
.oasis-mobile-topbar .omt-logo img,
.oasis-mobile-topbar .omt-avatar img {
  width: 42px; height: 42px;
  border-radius: 50%;
  border: 2px solid #FFD700;
  object-fit: cover; display: block;
}

.oasis-mobile-topbar .omt-menus {
  flex: 1 1 auto; min-width: 0;
  display: flex; justify-content: center; gap: 8px;
}
.oasis-mobile-topbar .omt-menus .oasis-menu-btn {
  display: flex; align-items: center; justify-content: center;
  padding: 7px 14px;
  border: 1px solid #FFD700; border-radius: 8px;
  background: #161616; color: #FFD700;
  font-weight: 600; letter-spacing: .5px; text-decoration: none;
  font-size: 13px; white-space: nowrap; cursor: pointer;
}
.oasis-mobile-topbar .omt-menus .oasis-menu-btn.active {
  background: #FFD700; color: #121212; border-color: #FFD700;
}
.oasis-mobile-topbar .omt-menus .oasis-menu-btn span { text-decoration: none; }

/* ANULAR el "card" global de style.css `div{background:#222;border-radius:10px;box-shadow;padding:20px;margin-bottom:20px}`
   en nuestro chrome móvil propio: era el 2º color (caja mas clara) detras de los botones,
   la caja redondeada de la topbar y el fondo #222 detras de los hexagonos. */
.header, .hive-nav, .hive-grid, .hive-cats, .hive-row,
.oasis-mobile-topbar, .oasis-mobile-topbar .omt-menus {
  background-color: transparent; box-shadow: none; border-radius: 0;
}
.oasis-mobile-topbar { background-color: #121212; }        /* fija: fondo opaco (el contenido scrollea por debajo) */
.oasis-mobile-topbar .omt-menus { padding: 0; margin: 0; } /* sin caja ni relleno detras de los botones */

.header .top-bar-left > a.logo-icon { display: none; }

.oasis-mobile-menus { display: flex; gap: 8px; padding: 0 10px 6px; }
.oasis-mobile-menus .oasis-menu-ico { display: none; }
.oasis-mobile-menus .oasis-menu-btn {
  flex: 1 1 0;
  display: flex; align-items: center; justify-content: center;
  padding: 10px 12px;
  border: 1px solid #FFD700; border-radius: 8px;
  background: #161616; color: #FFD700;
  font-weight: 600; letter-spacing: 1px; text-decoration: none; cursor: pointer;
}
.oasis-mobile-menus .oasis-menu-btn span { text-decoration: none; }

.oasis-mobile-menus .oasis-menu-btn.active {
  background: #FFD700; color: #121212; border-color: #FFD700;
}

:root {
  --space-1: 4px; --space-2: 8px; --space-3: 16px; --space-4: 24px; --space-5: 32px;
  --fs-caption: 12px; --fs-body: 14px; --fs-body-lg: 16px; --fs-title: 20px;
  --lh-body: 1.5; --measure: 66ch;
  --c-muted: #8c8c8c; --radius-md: 12px;
}

.oasis-bottombar .bb-fab .bb-ico {
  width: 46px; height: 46px;
  margin-top: -22px;
  border-radius: 50%;
  background: #FFD700; color: #121212;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.oasis-bottombar .bb-fab .bb-lbl { color: #FFD700; font-weight: bold; }

.main-column, .main-column p, .main-column li, .main-column a,
.main-column span, .main-column td, .main-column h1, .main-column h2, .main-column h3 {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.main-column { padding: var(--space-3); }
.main-column p { line-height: var(--lh-body); }

.main-column > * + * { margin-top: var(--space-3); }

.main-column img, .main-column video, .main-column table, .main-column pre, .main-column iframe {
  max-width: 100%; height: auto;
}
.main-column pre { white-space: pre-wrap; }

.oasis-nav-group {
  list-style: none;
  background: #1c1c1c;
  border: 1px solid #333;
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: var(--space-2);
}
.oasis-nav-header {
  display: flex; align-items: center; gap: var(--space-2);
  min-height: 48px; padding: 0 var(--space-3);
  cursor: pointer;
  color: #FFD700; font-weight: bold;
  text-transform: uppercase; letter-spacing: .04em;
  font-size: var(--fs-caption);
}
.oasis-nav-header .nav-text { flex: 1 1 auto; }
.oasis-nav-header .oasis-nav-arrow { color: var(--c-muted); transition: transform 150ms ease; }
.oasis-nav-toggle:checked + .oasis-nav-header .oasis-nav-arrow { transform: rotate(180deg); }
.oasis-nav-header:active { background: #262626; }
.oasis-nav-list { list-style: none; padding: 0; margin: 0; }
.oasis-nav-list li a {
  display: flex; align-items: center; gap: var(--space-3);
  min-height: 48px; padding: 0 var(--space-3);
  color: #FFD700; text-decoration: none;
  border-top: 1px solid #262626;
}
.oasis-nav-list li a .emoji { flex: 0 0 auto; width: 22px; text-align: center; color: #FFD700; }
.oasis-nav-list li a .nav-text { font-size: var(--fs-body); }
.oasis-nav-list li a:active { background: #262626; }
.oasis-nav-list li a.current { color: #FFD700; font-weight: bold; }

.main-column h1 { font-size: var(--fs-title); font-weight: 700; line-height: 1.25; margin: 0 0 var(--space-2); }
.main-column h2 { font-size: 18px; font-weight: 700; line-height: 1.3; margin: 0 0 var(--space-2); }
.main-column h3 { font-size: var(--fs-body-lg); font-weight: 600; margin: 0 0 var(--space-1); }
.main-column p { font-size: var(--fs-body-lg); }
.main-column .created-at, .main-column .small, .main-column .time,
.main-column .meta, .main-column .author-meta, .main-column .subtitle {
  color: var(--c-muted); font-size: var(--fs-caption);
}

.main-column article,
.main-column [class*="-card"] {
  background: #1c1c1c;
  border: 1px solid #333;
  border-radius: var(--radius-md);
  padding: var(--space-3);
}
.main-column article:active,
.main-column [class*="-card"]:active { background: #202020; }

.btn, button, input[type="submit"], input[type="button"], .submit-button,
.filter-btn, .create-button, .edit-btn, .delete-btn, .join-btn, .leave-btn, .buy-btn {
  min-height: 48px;
}
button:active, input[type="submit"]:active, .submit-button:active,
.filter-btn:active, .create-button:active, .edit-btn:active,
.delete-btn:active, .join-btn:active, .leave-btn:active, .buy-btn:active {
  filter: brightness(.85);
}
.main-column a:active { opacity: .6; }

* { -webkit-tap-highlight-color: transparent; }
a, button, label, .tap, .oasis-menu-btn, .bb-item, .oasis-nav-header, .oasis-nav-list li a {
  touch-action: manipulation;
}
body { overscroll-behavior: none; }

.main-content, .main-column, .header { overflow: visible; }

/* === Usabilidad 0.9.1: Personal/Community filtran el hive server-side (enlaces ?hive=) + desplegable FILTER === */

/* desplegable FILTER de la ristra de filtros de Activity (oculto por defecto) */
.activity-filter-toggle { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; margin: 0; }
.activity-filter-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; min-height: 44px; margin: 4px 0 8px; padding: 10px 12px;
  border: 1.5px solid #333; border-radius: 10px;
  background: #121212; color: #FFD700;
  font-weight: bold; letter-spacing: 1px; text-transform: uppercase; cursor: pointer;
}
.activity-filter-caret { transition: transform 150ms ease; }
#activity-filter-toggle:checked ~ .activity-filter-btn { background: #FFD700; color: #121212; border-color: #FFD700; }
#activity-filter-toggle:checked ~ .activity-filter-btn .activity-filter-caret { transform: rotate(180deg); }
.activity-filter-panel { display: none; }
#activity-filter-toggle:checked ~ .activity-filter-panel { display: block; }
.activity-filter-panel .activity-filter-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 8px; }
.activity-filter-panel .activity-filter-col { display: contents; }
.activity-filter-panel form { margin: 0; }

.bb-manage { margin: 8px 0 16px; }
.bb-manage h3, .bb-manage-add h3 {
  font-size: 13px; text-transform: uppercase; letter-spacing: .05em;
  color: #FFD700; margin: 14px 0 8px;
}
.bb-manage-list { display: flex; flex-direction: column; gap: 8px; }
.bb-manage-form { margin: 0; width: 100%; }
.bb-manage-btn {
  width: 100%;
  display: flex; align-items: center; gap: 12px;
  min-height: 52px; padding: 0 14px;
  background: #1c1c1c; border: 1px solid #333; border-radius: 10px;
  color: #FFD700; cursor: pointer; text-align: left;
}
.bb-manage-ico { font-size: 20px; color: #FFD700; width: 26px; text-align: center; }
.bb-manage-lbl { flex: 1 1 auto; font-size: 15px; }
.bb-manage-x { font-size: 16px; color: #FFD700; font-weight: bold; }
.bb-manage-empty, .bb-manage-full { color: #999; font-size: 14px; padding: 8px 2px; }
.bb-manage-done {
  display: block; text-align: center;
  margin-top: 16px; min-height: 48px; line-height: 48px;
}

.hive-nav { --hx: min(64px, calc((100vw - 40px) / 4)); --hxm: min(58px, calc((100vw - 36px) / 5)); margin: 8px 0 16px; overflow: visible; background: transparent; padding: 0; border: 0; box-shadow: none; }
.hive-radio { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.hive-grid { display: flex; flex-direction: column; align-items: center; overflow: visible; background: transparent; padding: 0; margin: 0; box-shadow: none; }
.hive-row { display: flex; justify-content: center; gap: 3px; overflow: visible; background: transparent; padding: 0; margin: 0; box-shadow: none; }
.hive-cats .hive-row + .hive-row { margin-top: calc(var(--hx) * -0.30); }
.hex-cat, .hex-mod {
  position: relative;
  -webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  text-decoration: none; cursor: pointer; box-sizing: border-box;
  background: #FFD700;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.6));
}
.hex-cat::before, .hex-mod::before {
  content: ''; position: absolute; inset: 1.5px; z-index: 0;
  -webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  background: #161616;
}
.hex-cat { width: var(--hx); height: calc(var(--hx) * 1.15); }
.hex-mod { width: var(--hxm); height: calc(var(--hxm) * 1.15); }
.hex-cat .hx-ico, .hex-mod .hx-ico { color: #FFD700; line-height: 1; position: relative; z-index: 1; }
.hex-cat .hx-ico { font-size: 17px; }
.hex-mod .hx-ico { font-size: 16px; }
.hex-cat .hx-lbl, .hex-mod .hx-lbl { color: #FFD700; text-align: center; line-height: 1; font-weight: bold; overflow: hidden; position: relative; z-index: 1; }
.hex-cat .hx-lbl { font-size: 8px; max-width: 88%; }
.hex-mod .hx-lbl { font-size: 8px; max-width: 92%; }
.hex-cat:active::before, .hex-mod:active::before { background: #242424; }
#hive-personal:checked ~ .hive-grid .hex-cat[for="hive-personal"],
#hive-governance:checked ~ .hive-grid .hex-cat[for="hive-governance"],
#hive-office:checked ~ .hive-grid .hex-cat[for="hive-office"],
#hive-economy:checked ~ .hive-grid .hex-cat[for="hive-economy"],
#hive-tools:checked ~ .hive-grid .hex-cat[for="hive-tools"],
#hive-network:checked ~ .hive-grid .hex-cat[for="hive-network"],
#hive-blogs:checked ~ .hive-grid .hex-cat[for="hive-blogs"],
#hive-creative:checked ~ .hive-grid .hex-cat[for="hive-creative"],
#hive-media:checked ~ .hive-grid .hex-cat[for="hive-media"],
#hive-fediverse:checked ~ .hive-grid .hex-cat[for="hive-fediverse"] { background: #FFD700; }
#hive-personal:checked ~ .hive-grid .hex-cat[for="hive-personal"]::before,
#hive-governance:checked ~ .hive-grid .hex-cat[for="hive-governance"]::before,
#hive-office:checked ~ .hive-grid .hex-cat[for="hive-office"]::before,
#hive-economy:checked ~ .hive-grid .hex-cat[for="hive-economy"]::before,
#hive-tools:checked ~ .hive-grid .hex-cat[for="hive-tools"]::before,
#hive-network:checked ~ .hive-grid .hex-cat[for="hive-network"]::before,
#hive-blogs:checked ~ .hive-grid .hex-cat[for="hive-blogs"]::before,
#hive-creative:checked ~ .hive-grid .hex-cat[for="hive-creative"]::before,
#hive-media:checked ~ .hive-grid .hex-cat[for="hive-media"]::before,
#hive-fediverse:checked ~ .hive-grid .hex-cat[for="hive-fediverse"]::before { background: #FFD700; }
#hive-personal:checked ~ .hive-grid .hex-cat[for="hive-personal"] :is(.hx-ico,.hx-lbl),
#hive-governance:checked ~ .hive-grid .hex-cat[for="hive-governance"] :is(.hx-ico,.hx-lbl),
#hive-office:checked ~ .hive-grid .hex-cat[for="hive-office"] :is(.hx-ico,.hx-lbl),
#hive-economy:checked ~ .hive-grid .hex-cat[for="hive-economy"] :is(.hx-ico,.hx-lbl),
#hive-tools:checked ~ .hive-grid .hex-cat[for="hive-tools"] :is(.hx-ico,.hx-lbl),
#hive-network:checked ~ .hive-grid .hex-cat[for="hive-network"] :is(.hx-ico,.hx-lbl),
#hive-blogs:checked ~ .hive-grid .hex-cat[for="hive-blogs"] :is(.hx-ico,.hx-lbl),
#hive-creative:checked ~ .hive-grid .hex-cat[for="hive-creative"] :is(.hx-ico,.hx-lbl),
#hive-media:checked ~ .hive-grid .hex-cat[for="hive-media"] :is(.hx-ico,.hx-lbl),
#hive-fediverse:checked ~ .hive-grid .hex-cat[for="hive-fediverse"] :is(.hx-ico,.hx-lbl) { color: #121212; }
.hive-panel { display: none; margin: 12px auto 0; max-width: 340px; background: #101010; border: 1px solid #242424; border-radius: 16px; padding: 12px 8px; overflow: visible; box-shadow: none; }
#hive-personal:checked ~ #hive-panel-personal,
#hive-governance:checked ~ #hive-panel-governance,
#hive-office:checked ~ #hive-panel-office,
#hive-economy:checked ~ #hive-panel-economy,
#hive-tools:checked ~ #hive-panel-tools,
#hive-network:checked ~ #hive-panel-network,
#hive-blogs:checked ~ #hive-panel-blogs,
#hive-creative:checked ~ #hive-panel-creative,
#hive-media:checked ~ #hive-panel-media,
#hive-fediverse:checked ~ #hive-panel-fediverse { display: block; }
.hive-mods { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; margin: 0; padding: 0; background: transparent; overflow: visible; }

.header .top-bar-left nav,
.header .top-bar-right nav { display: none; }

.oasis-mobile-topbar { padding-top: calc(env(safe-area-inset-top, 0px) + 10px); }

.oasis-bottombar .bb-pair {
  display: flex; align-items: center;
  flex: 0 0 auto;
  gap: 2px; padding: 3px;
  background: #262626;
  border: 1px solid #3a3a3a;
  border-radius: 999px;
}
.oasis-bottombar .bb-pair .bb-item { flex: 0 0 auto; padding: 2px 8px; }
.oasis-bottombar .bb-pair .bb-lbl { font-size: 8px; }

.oasis-bottombar a.bb-item.current .bb-ico {
  background: #FFD700; color: #121212;
  border-radius: 999px; padding: 4px 12px;
}
.oasis-bottombar a.bb-item.current .bb-lbl { color: #FFD700; font-weight: bold; }
.oasis-bottombar a.bb-item.current .bb-badge { background: #121212; color: #FFD700; }

.main-column, .main-column p, .main-column li, .main-column a,
.main-column span, .main-column td, .main-column th, .main-column label,
.main-column h1, .main-column h2, .main-column h3, .main-column h4,
.main-column strong, .main-column em, .main-column small,
.created-at, .post-meta, .feed-post-meta,
.feed-row .small, .feed-row .time, .feed-row .created-at,
.profile-sensors-box > *,
.card-field .card-value, .card-field .card-label {
  overflow-wrap: break-word;
  word-break: normal;
  -webkit-hyphens: none;
  hyphens: none;
}

.main-column pre, .main-column code, kbd, samp,
.peer-key, .user-link.peer-key, .oasis-id-copy, .search-oasis-id,
.pm-sent-key-value, .kpi__value,
.block-info-table td .peer-key, .block-info-table td .user-link,
.pm-info-table td .user-link,
.main-column a[href*="ed25519"], .main-column a[href^="ssb:"],
.main-column a[href^="/author/"] {
  overflow-wrap: anywhere;
  word-break: break-all;
}

button, input[type="submit"], input[type="button"],
.filter-btn, a.filter-btn, .create-button, .edit-btn, .delete-btn,
.join-btn, .leave-btn, .buy-btn, .submit-button, .btn,
.conn-actions button, .peers-conn-actions button,
.mode-buttons button, .mode-buttons .filter-btn,
.filter-group button, .filter-group .filter-btn,
.main-column button, .main-column input[type="submit"] {
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
  -webkit-hyphens: none;
  hyphens: none;
}

.conn-actions, .peers-conn-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
.conn-actions > form, .peers-conn-actions > form {
  flex: 0 1 auto;
  width: auto;
  min-width: 0;
  margin: 0;
  display: flex;
}

.pm-info-table, .pm-info-table tbody,
.block-info-table, .block-info-table tbody {
  display: block;
  width: 100%;
  max-width: 100%;
  border: 0;
  background: transparent;
  box-shadow: none;
  table-layout: auto;
}
.pm-info-table thead, .block-info-table thead { display: none; }
.pm-info-table tr, .block-info-table tr {
  display: block;
  width: 100%;
  box-sizing: border-box;
  border: 0;
  border-bottom: 1px solid rgba(255,215,0,0.18);
  border-radius: 0;
  margin: 0 0 8px 0;
  padding: 6px 0;
  background: transparent;
}
.pm-info-table td, .block-info-table td {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 0;
  background: transparent;
  padding: 1px 0;
  text-align: left;
  overflow-wrap: break-word;
  word-break: normal;
}

.pm-info-table td.card-label, .block-info-table td.card-label {
  color: var(--c-muted, #8c8c8c);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  margin-bottom: 2px;
  padding-bottom: 0;
}
.pm-info-table td.card-value, .block-info-table td.card-value {
  font-size: 15px;
  line-height: 1.5;
  margin-bottom: 6px;
}

.block-info-table tr:first-child:has(> td.card-label) { display: none; }
.block-info-table td[data-label]:not([data-label=""])::before {
  content: attr(data-label);
  display: block;
  color: var(--c-muted, #8c8c8c);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  margin-bottom: 1px;
  white-space: nowrap;
  word-break: normal;
}
.block-info-table td[data-label=""]::before { content: none; }

.peers-list .block-info-table td,
.peers-technical-block .block-info-table td,
.gov-overview tbody td {
  word-break: normal;
  overflow-wrap: break-word;
}

.pm-info-table td .user-link, .pm-info-table td .peer-key, .pm-info-table td a[href],
.block-info-table td .peer-key, .block-info-table td .user-link, .block-info-table td a[href] {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-all;
}

.pm-info-table td form, .block-info-table td form,
.pm-info-table td button, .block-info-table td button {
  width: 100%;
  margin: 0;
}

.main-content { width: 100%; max-width: 100%; }
.main-column {
  width: 100%; max-width: 100%;
  padding: 16px; box-sizing: border-box;
}
.main-column .card-field {
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
}
.main-column .card-field .card-value {
  width: 100%; max-width: 100%; font-size: 15px;
}
.main-column .card-field .card-label {
  color: var(--c-muted, #8c8c8c); font-size: 11px;
}
.main-column img, .main-column video, .main-column iframe, .main-column canvas {
  max-width: 100%; height: auto;
}
.main-column hr {
  width: 100%; border: 0;
  border-top: 1px solid #333; margin: 16px 0;
}

.activity-filter-acc { width: 100%; margin-bottom: 8px; }

.activity-quick-modes {
  display: flex; flex-wrap: nowrap; gap: 6px; margin-bottom: 8px;
}
.activity-quick-modes form { flex: 1 1 0; min-width: 0; margin: 0; display: flex; }
.activity-quick-modes .filter-btn {
  flex: 1 1 0; width: 100%; min-height: 44px;
  white-space: nowrap; word-break: keep-all; overflow-wrap: normal;
  padding-left: 6px; padding-right: 6px; font-size: 14px;
}

.activity-groups { list-style: none; padding: 0; margin: 0; }

.activity-groups .oasis-nav-header .emoji { display: none; }
.activity-groups .oasis-nav-header .nav-text { flex: 1 1 auto; }
.activity-groups .act-count {
  flex: 0 0 auto; min-width: 20px; text-align: center;
  font-size: 11px; font-weight: 700; color: #121212;
  background: #FFD700; border-radius: 999px; padding: 1px 7px;
  margin: 0 8px 0 0;
}

.activity-groups .oasis-nav-list li { list-style: none; margin: 0; padding: 0; }
.activity-groups .oasis-nav-list form { margin: 0; display: block; width: 100%; }
.activity-groups .oasis-nav-list .filter-btn {
  display: block; width: 100%; text-align: left;
  min-height: 44px; margin: 2px 0; box-sizing: border-box;
}
.activity-groups .oasis-nav-list .filter-btn.active {
  outline: 2px solid #FFD700; outline-offset: -2px;
}

.message-list { display: flex; flex-direction: column; gap: 4px; width: 100%; }
.message-list .pm-thread { display: flex; flex-direction: column; width: 100%; align-self: stretch; }
.pm-thread-replies { display: flex; flex-direction: column; gap: 4px; }

.pm-card.pm-bubble {
  max-width: 82%; width: fit-content; min-width: 0;
  box-sizing: border-box; padding: 8px 12px; margin: 2px 0;
  border-radius: 16px; border: 1px solid #333;
  background: #1e1e1e; box-shadow: none; cursor: default;
}

.pm-card.pm-bubble.pm-recv {
  align-self: flex-start; margin-left: 0; margin-right: auto;
  border-bottom-left-radius: 4px; background: #1e1e1e; border-color: #343434;
}

.pm-card.pm-bubble.pm-sent {
  align-self: flex-end; margin-left: auto; margin-right: 0;
  border-bottom-right-radius: 4px; background: #2a2413; border-color: #5c4c1f;
}

.pm-bubble .pm-bubble-sender { font-size: 11px; font-weight: 700; color: #FFD700; margin-bottom: 3px; }
.pm-bubble .pm-bubble-sender a { color: #FFD700; }

.pm-bubble .message-text { font-size: 15px; line-height: 1.42; color: #FFD700; margin: 0; }
.pm-bubble .message-text a { color: #FFD700; }

.pm-bubble .pm-bubble-meta {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 6px; margin-top: 4px; font-size: 10px; color: var(--c-muted, #8c8c8c);
}
.pm-card.pm-sent .pm-bubble-meta { justify-content: flex-end; }
.pm-card.pm-recv .pm-bubble-meta { justify-content: flex-start; }
.pm-bubble .pm-bubble-subject { font-style: italic; opacity: .75; max-width: 50%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-bubble .pm-bubble-lock { opacity: .85; }
.pm-bubble .pm-bubble-eco { font-size: 9px; opacity: .9; }
.pm-bubble .pm-bubble-eco * { font-size: 9px; }

.pm-bubble .pm-actions { margin-top: 6px; display: flex; gap: 6px; }
.pm-card.pm-sent .pm-actions { justify-content: flex-end; }
.pm-bubble .pm-actions .pm-btn { font-size: 10px; padding: 3px 8px; min-height: 28px; }
.pm-bubble .pm-actions form { margin: 0; }

.pm-bubble .pm-info-table { display: none; }

.pm-thread .pm-thread-details { width: 100%; }
.pm-thread .pm-thread-toggle { font-size: 12px; color: var(--c-muted, #8c8c8c); padding: 4px 0; cursor: pointer; }

.main-column h1, .main-column h2, .main-column h3, .main-column h4,
.tags-header h2, .tags-header h3, .title-with-chip h2, .pm-title, h2.pm-title,
.cn-name, h1.cn-name, .cn-section, h2.cn-section, .profile-side-name, h2.profile-side-name {
  text-wrap: balance;
  overflow-wrap: break-word;
  word-break: keep-all;
  -webkit-hyphens: none; hyphens: none;
  text-align: left;
}
.main-column h1, .tags-header h2, .cn-name {
  font-size: var(--fs-title, 20px); font-weight: 700;
  line-height: 1.22; letter-spacing: -0.01em;
  margin: 0 0 var(--space-2, 8px);
}
.main-column h2, .pm-title, .title-with-chip h2, .cn-section {
  font-size: 18px; font-weight: 700;
  line-height: 1.28; margin: var(--space-1, 4px) 0 var(--space-2, 8px);
}
.main-column h3 {
  font-size: var(--fs-body-lg, 16px); font-weight: 600;
  line-height: 1.35; margin: var(--space-1, 4px) 0;
}
.main-column h1, .main-column h2, .main-column h3,
.tags-header h2, .pm-title, .cn-name, .cn-section {
  max-width: 40ch; width: auto; min-width: 0;
}

.main-column h1 code, .main-column h2 code, .main-column h3 code,
.tags-header h2 code, .pm-title code,
.main-column h1 a[href*="ed25519"], .main-column h2 a[href*="ed25519"],
.main-column h1 a[href^="ssb:"], .main-column h2 a[href^="ssb:"] {
  word-break: break-all; overflow-wrap: anywhere;
}

.main-column .tags-header {
  display: flex; flex-direction: column; align-items: flex-start;
  gap: var(--space-1, 4px); width: 100%; max-width: 100%;
  margin: 0 0 var(--space-2, 8px);
}
.main-column .tags-header h2 { margin: 0; }

.main-column .title-with-chip {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: var(--space-2, 8px); width: 100%; max-width: 100%;
}
.main-column .title-with-chip h2 { flex: 1 1 auto; min-width: 0; margin: 0; max-width: none; }
.main-column .title-with-chip > :not(h2) { flex: 0 0 auto; }

.main-column p, .main-column li,
.tags-header p, .tags-header .prefs-help, .indexing-note, .indexing-percent,
.error-page-message, .welcome-text, .message-text, .pm-bubble .message-text {
  text-wrap: pretty;
  line-height: 1.55;
  max-width: min(66ch, 100%);
  overflow-wrap: anywhere;
  word-break: normal;
  min-width: 0;
  -webkit-hyphens: none; hyphens: none;
}
.main-column p + p { margin-top: var(--space-3, 16px); }
.tags-header p, .tags-header .prefs-help, .indexing-note { line-height: 1.5; margin: 4px 0 0 0; }
.pm-bubble .message-text { line-height: 1.45; max-width: 100%; }

[style*="auto-fill"],
[style*="minmax(240px"], [style*="minmax(280px"], [style*="minmax(300px"],
[style*="minmax( 240px"], [style*="minmax( 280px"], [style*="minmax( 300px"],
.trending-container, .cn-hub-grid, .cn-products {
  display: grid !important; grid-template-columns: 1fr !important; gap: 12px !important;
  width: 100% !important; max-width: 100% !important;
}
.trending-container > *, .games-grid > *, .market-grid > *, .tribe-grid > *,
.feed-container, .feed-card, .trending-card,
.main-column article, .main-column [class*="-card"], .main-column [class*="-item"],
.main-column [class*="-entry"], .main-column .card {
  width: 100%; max-width: 100%; min-width: 0;
  box-sizing: border-box; margin-left: 0; margin-right: 0;
}
.feed-card .feed-text, .trending-card .feed-text,
.main-column article p, .main-column [class*="-card"] p { max-width: var(--measure, 66ch); }
.main-column form, .comment-form, .comment-form-wrapper, .market-form,
.new-message-form, .project-control-form, .filter-box {
  display: block; width: 100%; max-width: 100%;
  min-width: 0; box-sizing: border-box;
}
.main-column input:not([type="checkbox"]):not([type="radio"]):not(.oasis-nav-toggle):not(.oasis-nav-side-toggle),
.main-column textarea, .main-column select {
  width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box;
}
.main-column form > button:only-of-type, .main-column form > .create-button,
.comment-form button[type="submit"], .market-form button[type="submit"],
.new-message-form button[type="submit"] {
  display: block; width: 100%; max-width: 100%;
  box-sizing: border-box; margin-top: 8px;
}
[style*="width:33%"], [style*="width: 33%"], [style*="width:25%"], [style*="width: 25%"],
[style*="width:60%"], [style*="width: 60%"], [style*="width:40%"], [style*="width: 40%"] {
  width: 100% !important; max-width: 100% !important;
}
.main-column [style*="max-width: 800px"], .main-column [style*="max-width:800px"],
.ai-response, .ai-train-bar {
  max-width: 100% !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important;
}
.message-list, .pm-thread, .pm-thread-replies { width: 100%; max-width: 100%; box-sizing: border-box; }

.main-column p .user-link, .main-column p a[href^="/author/"],
.main-column li .user-link, .main-column span .user-link,
.main-column .message-text .user-link, .main-column .message-text a[href^="/author/"],
.pm-bubble .message-text .user-link, .pm-bubble .message-text a[href^="/author/"],
.pm-quote a[href^="/author/"] {
  display: inline; white-space: normal;
  overflow-wrap: anywhere; word-break: keep-all;
  -webkit-hyphens: none; hyphens: none;
}

.peer-key, .user-link.peer-key, .block-info-table td .peer-key, .pm-info-table td .peer-key,
.pm-info-table td .user-link, .block-info-table td .user-link,
.search-oasis-id, .pm-sent-key-value, .kpi__value {
  display: inline-block; max-width: 100%;
  overflow-wrap: anywhere; word-break: break-all;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-variant-numeric: tabular-nums; line-height: 1.45;
}

.oasis-id-copy {
  display: block; width: 100%; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.invites-list .user-link.peer-key, .peers-list .block-info-table td .peer-key {
  display: block; max-width: 100%; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; word-break: normal;
}

.main-column .message-text a[href^="http"], .main-column p a[href^="http"],
.pm-bubble .message-text a[href^="http"], .main-column .message-text a.oasis-path-link,
.main-column .message-text a.job-link, .main-column .message-text a.project-link,
.main-column .message-text a.market-link {
  overflow-wrap: anywhere; word-break: keep-all;
  -webkit-hyphens: none; hyphens: none;
}
.main-column code:not(pre code), .pm-bubble .message-text code {
  display: inline; max-width: 100%;
  overflow-wrap: anywhere; word-break: break-word; white-space: pre-wrap;
}

.main-column .tags-header { margin-bottom: 6px; gap: 2px; }
.main-column .tags-header h2, .tags-header h2 {
  font-size: 17px; line-height: 1.2; letter-spacing: 0;
}
.main-column .tags-header p { font-size: 13px; line-height: 1.35; margin: 0; }

.main-column { padding: 10px 12px 16px 12px; }
.activity-filter-acc { margin-bottom: 4px; }

.empty-state {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; text-align: center;
  padding: 40px 16px; gap: 8px; width: 100%; box-sizing: border-box;
}
.empty-state-icon { font-size: 44px; line-height: 1; opacity: 0.55; }
.empty-state-title { font-size: 16px; font-weight: 700; margin: 4px 0 0 0; color: #FFD700; }
.empty-state-text { color: var(--c-muted, #8c8c8c); font-size: 14px; line-height: 1.4; max-width: 40ch; margin: 0; }
.empty-state-cta { margin-top: 10px; min-height: 48px; display: inline-flex; align-items: center; }

.activity-filter-collapsed {
  display: flex; align-items: center; gap: 10px;
  flex-wrap: wrap; margin-bottom: 8px; width: 100%;
}
.activity-back {
  display: inline-flex; align-items: center; gap: 4px;
  min-height: 44px; padding: 6px 14px 6px 10px; flex: 0 0 auto;
}
.activity-back-arrow { font-size: 22px; line-height: 1; font-weight: bold; }
.activity-active-filter {
  font-weight: 700; color: #FFD700; text-transform: uppercase;
  font-size: 13px; letter-spacing: .03em;
}

.oasis-bottombar .bb-item { min-height: 48px; }
.oasis-bottombar .bb-pair .bb-item { min-height: 44px; padding: 4px 10px; }
.oasis-mobile-menus .oasis-menu-btn { min-height: 48px; }
.pm-bubble .pm-actions .pm-btn { min-height: 40px; padding: 6px 12px; }
.score-btn, .vote-btn, .feed-action-btn {
  min-height: 44px; min-width: 44px;
  display: inline-flex; align-items: center; justify-content: center;
}
.score-btn:active, .vote-btn:active, .feed-action-btn:active { filter: brightness(.85); }

.oasis-bottombar .bb-add .bb-ico {
  background: #FFD700; color: #121212; border-radius: 999px;
  width: 30px; height: 30px; display: inline-flex;
  align-items: center; justify-content: center;
  font-weight: bold; font-size: 20px; line-height: 1;
}
.bb-pick-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 8px; width: 100%; margin-top: 8px;
}
.bb-pick-form { margin: 0; display: block; }
.bb-pick-btn {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 6px; width: 100%;
  min-height: 76px; padding: 10px 6px; box-sizing: border-box;
  background: #1c1c1c; border: 1px solid #333; border-radius: 12px; color: #FFD700;
}
.bb-pick-btn.active { border-color: #FFD700; background: #2a2412; }
.bb-pick-ico { font-size: 26px; color: #FFD700; line-height: 1; }
.bb-pick-lbl { font-size: 11px; text-align: center; line-height: 1.2; }


/* Ocultar los checkboxes nativos del drawer (nav-left/right-toggle) — si no, salen 2 cuadrados blancos arriba */
.oasis-nav-side-toggle {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  margin: 0;
}

/* ==========================================================================
   Usabilidad 0.9.1 — Chats estilo Signal + widgets compactos + foros con hilos
   Todo en NUESTRO tema (carga tras mobile.css → gana por cascada, sin !important)
   ========================================================================== */

/* --- Chats: burbujas tipo Signal (los hooks .chat-message-self/-author ya existen) --- */
.chat-messages-list { display: flex; flex-direction: column; gap: 4px; width: 100%; }
.chat-message {
  max-width: 82%; width: fit-content; min-width: 0; box-sizing: border-box;
  padding: 8px 12px; margin: 2px 0;
  border: 1px solid #343434; background: #1e1e1e;
  border-radius: 16px; border-bottom-left-radius: 4px;
  align-self: flex-start;
}
.chat-message.chat-message-self {
  align-self: flex-end; margin-left: auto; margin-right: 0;
  background: #2a2413; border-color: #5c4c1f;
  border-bottom-left-radius: 16px; border-bottom-right-radius: 4px;
}
.chat-message-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 3px; font-size: 10px; color: var(--c-muted, #8c8c8c); }
.chat-message.chat-message-self .chat-message-meta { justify-content: flex-end; }
.chat-message-sender, .chat-message-sender a { font-size: 11px; font-weight: 700; color: #FFD700; }
.chat-message-date { opacity: .8; }
.chat-message-text {
  display: block; font-size: 15px; line-height: 1.42; color: #FFD700; margin: 0;
  word-break: break-word; overflow-wrap: anywhere;
}
.chat-message-text a { color: #FFD700; }
.chat-message-image-wrap { margin-top: 6px; }
.chat-message-image { max-width: 100%; border-radius: 10px; }

/* --- Compose de chat: caja redondeada + enviar como pill (no bloque naranja de ancho completo) --- */
.chat-message-form textarea {
  width: 100%; box-sizing: border-box; border-radius: 14px;
  padding: 10px 14px; resize: vertical; font-size: 15px;
}
.chat-message-form .filter-btn {
  width: 46px !important; height: 46px !important; min-width: 46px !important; min-height: 46px !important;
  padding: 0 !important; border-radius: 50% !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  font-size: 0 !important; line-height: 0 !important;
}
.chat-message-form .filter-btn::before { content: "\27A4"; font-size: 18px; line-height: 1; color: #121212; }
.chat-message-form input[type="file"] { font-size: 12px; }

/* --- Reply a mensaje en chats (server-side ?replyTo=, sin JS) --- */
.chat-message-meta .chat-reply-btn { margin-left: auto; padding: 0 4px; color: #FFD700; text-decoration: none; font-size: 15px; opacity: .85; }
.chat-message-self .chat-message-meta .chat-reply-btn { margin-left: 8px; }
.chat-quote {
  display: block; border-left: 3px solid #FFD700; padding: 3px 8px; margin: 0 0 5px;
  background: rgba(255,215,0,.08); border-radius: 6px; font-size: 12px; line-height: 1.3;
}
.chat-quote-author, .chat-quote-author a { color: #FFD700; font-weight: 700; margin-right: 6px; }
.chat-quote-text { color: #FFDD44; }
.chat-replying-to {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  border-left: 3px solid #FFD700; background: rgba(255,215,0,.10);
  padding: 6px 10px; margin-bottom: 8px; border-radius: 8px; font-size: 12px;
}
.chat-replying-label { color: #FFD700; font-weight: 700; }
.chat-reply-cancel { margin-left: auto; color: #FFD700; text-decoration: none; font-weight: 700; font-size: 14px; }

/* --- Switcher de chats: tira horizontal para saltar entre conversaciones --- */
.chat-switcher {
  display: flex; gap: 6px; overflow-x: auto; padding: 6px 0; margin: 4px 0 8px;
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.chat-switcher::-webkit-scrollbar { display: none; }
.chat-switch-chip {
  flex: 0 0 auto; max-width: 140px; padding: 6px 12px; border-radius: 999px;
  background: #1c1c1c; border: 1px solid #333; color: #FFD700; text-decoration: none;
  font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.chat-switch-chip.active { background: #FFD700; color: #121212; border-color: #FFD700; font-weight: 700; }

/* --- Subtopics de foro: tira de pestañas (topics con nombre) + input de topic en el compose --- */
.forum-topics {
  display: flex; gap: 6px; overflow-x: auto; padding: 6px 0; margin: 4px 0 8px;
  scrollbar-width: none;
}
.forum-topics::-webkit-scrollbar { display: none; }
.forum-topic-chip {
  flex: 0 0 auto; max-width: 160px; padding: 6px 14px; border-radius: 999px;
  background: #1c1c1c; border: 1px solid #333; color: #FFD700; text-decoration: none;
  font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.forum-topic-chip.active { background: #FFD700; color: #121212; border-color: #FFD700; font-weight: 700; }
.new-message-form { flex-wrap: wrap; }
.forum-topic-input {
  flex: 1 0 100%; box-sizing: border-box; border-radius: 12px;
  padding: 8px 12px; font-size: 13px; margin: 0 0 6px;
}

/* --- #3: al desplegar una categoría, sus módulos son BOTONES CUADRADOS redondeados (no hexágonos),
       en rejilla 2×2 (2 y 2) y grandes: cada cuadrado llena su columna --- */
.hive-mods {
  display: grid; grid-template-columns: repeat(2, 1fr);
  justify-items: stretch; align-content: center;
  gap: 12px; padding: 8px 4px;
}
.hex-mod {
  clip-path: none; -webkit-clip-path: none;
  width: 100%; height: auto; aspect-ratio: 1 / 1; min-height: 120px;
  border-radius: 18px; padding: 8px; gap: 7px;
}
.hex-mod::before { clip-path: none; -webkit-clip-path: none; inset: 2px; border-radius: 16px; }
.hex-mod .hx-ico { font-size: 36px; }
.hex-mod .hx-lbl { font-size: 12.5px; max-width: 94%; }
/* si el nº de módulos es IMPAR, el último (solo en su fila) se CENTRA en vez de pegarse a la izquierda;
   abarca las 2 columnas pero conserva el ancho de una sola (gap 12 → mitad 6) */
.hex-mod:last-child:nth-child(odd) {
  grid-column: 1 / -1; justify-self: center; width: calc(50% - 6px);
}

/* --- #2: el hexágono "Personal" muestra tu avatar (diferencia del filtro "Personal" del header) --- */
.hex-cat .hx-avatar {
  width: 58%; height: 58%; border-radius: 50%; object-fit: cover;
  position: relative; z-index: 1; border: 1px solid rgba(255,215,0,.6);
}

/* --- #1: chat estilo Signal — compose ABAJO + mensajes arriba (el reply deja de "saltar") --- */
.tribe-main.chat-full-width { display: flex; flex-direction: column-reverse; }
#chatbox { scroll-margin-top: 8px; scroll-margin-bottom: 8px; }

/* --- Botón spread → pill compacto (vence button{min-height:48px}/ancho completo) --- */
.card-spread-centered, .card-spread-left, .spread-row { margin: 6px 0; }
.card-spread-centered .spread-btn, .card-spread-left .spread-btn,
.spread-row .spread-btn, .card-chips-row .spread-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: auto; min-width: 0; min-height: 30px; height: 30px;
  padding: 2px 14px; font-size: 13px; line-height: 1;
  border-radius: 999px; border: 1px solid #555; background: #1a1a1a; color: #FFD700;
}
.card-spread-centered .spread-btn.spread-btn-on,
.card-spread-left .spread-btn.spread-btn-on { background: #FFD700; color: #1a1a1a; border-color: #FFD700; }

/* --- Caja de votos (▲ n ▼): compacta y HORIZONTAL.
   El problema era una cadena de flex-stretch (comment-vote-col flex → estiraba la caja a 135px).
   Rompemos el estiramiento con height:auto + inline-flex en toda la cadena, con !important
   para vencer el min-height:44px de .score-btn (762) y el !important de epsylon en mobile.css. --- */
.comment-vote-col { display: block; height: auto; min-height: 0; width: auto; }
.forum-score-box {
  display: inline-flex; height: auto; min-height: 0;
  min-width: 0; width: auto;
  padding: 4px 8px; border-radius: 10px;
  flex-direction: row; flex-wrap: nowrap; gap: 12px; align-items: center;
}
.forum-score-box .forum-score-form {
  display: inline-flex; height: auto; width: auto;
  flex-direction: row; flex-wrap: nowrap; gap: 12px; align-items: center;
}
.score-btn {
  flex: 0 0 auto !important;
  width: 30px !important; height: 30px !important; min-width: 30px !important; min-height: 30px !important;
  font-size: 0.95em !important; border-radius: 8px !important; padding: 0 !important;
}
.score-total { flex: 0 0 auto; font-size: 1.15em; min-height: 0; height: auto; margin: 0; white-space: nowrap; }
.comment-votes .votes-count { font-size: 11px; }

/* Aplanar el comentario: quitar las cajas/recuadros internos para que sea UN bloque limpio
   (cada sección salía como una tarjeta con padding enorme → mucho hueco muerto) */
.forum-comment .comment-header,
.forum-comment .comment-body-row,
.forum-comment .comment-vote-col,
.forum-comment .comment-text-col,
.forum-comment .new-reply {
  background: transparent; border: none; box-shadow: none;
  padding: 0; margin: 6px 0 0; border-radius: 0;
}
.forum-comment .comment-header { margin-top: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; }
/* la barra de votos de abajo ya muestra el score → ocultar el ▲:0 ▼:0 redundante de la cabecera */
.forum-comment .comment-header .comment-votes { display: none; }
.forum-comment .comment-text-col p { margin: 4px 0; }
.forum-comment .comment-text-col > div { background: transparent; border: none; padding: 0; }
.forum-comment { padding: 10px 12px; margin-bottom: 8px; }
/* barra de votos alineada a la izquierda, no centrada, para que ocupe poco.
   `display:flex !important` es DE PELEA: vence a mobile.css:164 `.comment-body-row{display:block!important}` */
.forum-comment .comment-body-row { display: flex !important; flex-direction: column; align-items: flex-start; }

/* --- Reply/compose del foro estilo Signal: fila [textarea que crece] + [botón REDONDO con icono ↩] --- */
/* especificidad extra (.main-column …) para ganar a nuestra propia regla `.main-column form{display:block}` sin !important */
.main-column .new-reply .comment-form,
.main-column .new-message-form { display: flex; flex-direction: row; align-items: flex-end; gap: 8px; margin: 6px 0 0; }
.main-column .new-message-form br { display: none; }
.main-column .comment-textarea, .main-column .new-message-form textarea {
  flex: 1 1 auto; box-sizing: border-box; border-radius: 14px;
  padding: 9px 14px; min-height: 42px; resize: none; font-size: 14px; margin: 0;
}
.forum-send-btn {
  flex: 0 0 auto !important;
  width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important;
  padding: 0 !important; margin: 0 !important; border-radius: 50% !important;
  font-size: 0 !important; line-height: 0 !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
}
.forum-send-btn::before { content: "\21A9"; font-size: 20px; line-height: 1; color: #121212; }
.new-reply { margin-top: 6px; }

/* --- Fase 2: hilos anidados. mobile.css fuerza margin-left:0 !important → necesitamos !important para ganar --- */
.forum-comment.level-1 { margin-left: 10px; border-left: 2px solid #333; }
.forum-comment.level-2 { margin-left: 20px; border-left: 2px solid #3a3a3a; }
.forum-comment.level-3 { margin-left: 28px; border-left: 2px solid #404040; }
.forum-comment.level-4 { margin-left: 34px; border-left: 2px solid #454545; }
/* comentario destacado: acento sutil a la izquierda en vez del marco naranja enorme */
.forum-comment.highlighted-reply { border: 1px solid #3a3a3a; border-left: 3px solid #FFD700; background: #1b1a16; }

/* --- Reply del foro SIN tocar la vista de epsylon: la cajita se agranda al enfocarla;
   el botón redondo ↩ está SIEMPRE visible (el usuario pidió icono de reply, no gesto/JS). --- */
.new-reply .comment-textarea { min-height: 42px; }
.new-reply:focus-within .comment-textarea { min-height: 64px; }

/* ==========================================================================
   Mejoras UI 0.9.1: fuente única + barra de búsqueda en topbar + hive global + bottombar fija
   ========================================================================== */

/* --- fuente única en todo el UI móvil (quitar el lío monospace/sans) --- */
.oasis-mobile-topbar, .oasis-mobile-menus, .hive-nav, .oasis-bottombar, .main-column,
.oasis-mobile-topbar input, .main-column input, .main-column textarea, .main-column select, button {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* (topbar sin barra de búsqueda: vuelve el título "OASIS" — CSS .omt-title más arriba) */

/* --- hive ahora global en el header (debajo de los 2 botones) --- */
.header .hive-nav { margin: 34px auto 10px; }

/* holgura bajo la topbar fija (el hive va en el header, solo en la home) */
body { padding-top: 84px; }

/* ==========================================================================
   FORK_IA_UX · Módulo KARVAN (mensajes temporales + WebRTC) — chat estilo burbujas
   ========================================================================== */
.karvan-intro h2 { color: #FFD700; margin: 0 0 6px; }
.karvan-sub { color: #FFDD44; font-size: 13px; }
.karvan-create input[type="text"] { width: 100%; box-sizing: border-box; padding: 10px 12px;
  background: #161616; border: 1px solid #333; border-radius: 10px; color: #FFD700; }
.karvan-ttl { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 10px 0; }
.karvan-ttl-lbl { color: #FFDD44; font-size: 13px; }
.karvan-ttl-opt { display: inline-flex; align-items: center; gap: 4px; color: #FFD700; font-size: 13px; }
.karvan-create button, .karvan-compose button { padding: 10px 16px; border: 1px solid #FFD700;
  border-radius: 10px; background: #FFD700; color: #121212; font-weight: 700; cursor: pointer; }
.karvan-rooms { list-style: none; margin: 8px 0 0; padding: 0; }
.karvan-rooms li { margin: 0 0 8px; }
.karvan-room-item { display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 12px 14px; background: #161616; border: 1px solid #333; border-radius: 12px;
  color: #FFD700; text-decoration: none; min-height: 48px; box-sizing: border-box; }
.karvan-room-item .kr-title { font-weight: 600; }
.karvan-room-item .kr-meta { color: #FFDD44; font-size: 12px; white-space: nowrap; }
.karvan-empty { color: #FFDD44; }

/* sala */
.karvan-room-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.karvan-back { color: #FFD700; text-decoration: none; font-weight: 600; }
.karvan-room-title { flex: 1 1 auto; color: #FFD700; font-weight: 700; text-align: center;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.karvan-expire { color: #FFDD44; font-size: 12px; white-space: nowrap; }
.karvan-live { display: inline-flex; align-items: center; gap: 6px; color: #FFDD44; font-size: 12px; margin-bottom: 8px; }
.karvan-live .kl-dot { width: 8px; height: 8px; border-radius: 50%; background: #777; }
.karvan-live.on .kl-dot { background: #35d07f; }
.karvan-live.on .kl-txt { color: #35d07f; }
.karvan-msgs { list-style: none; margin: 0; padding: 6px 0; display: flex; flex-direction: column; gap: 6px;
  max-height: 58vh; overflow-y: auto; }
.karvan-msg { max-width: 82%; align-self: flex-start; background: #1c1c1c; border: 1px solid #333;
  border-radius: 14px; padding: 7px 11px; box-sizing: border-box; }
.karvan-msg-self { align-self: flex-end; background: #2a2412; border-color: #FFD700; }
.karvan-msg-live { border-left: 2px solid #35d07f; } /* recibido al instante por WebRTC (P2P) */
.karvan-msg .km-from { display: block; font-size: 10px; color: #FFDD44; margin-bottom: 2px; }
.karvan-msg .km-text { color: #FFD700; word-break: break-word; }
.karvan-compose { display: flex; gap: 8px; margin-top: 10px; }
.karvan-compose input[type="text"] { flex: 1 1 auto; min-width: 0; padding: 10px 12px;
  background: #161616; border: 1px solid #333; border-radius: 10px; color: #FFD700; }
/* Fase 2: invitar a un contacto por feed id */
.karvan-invite { display: flex; gap: 8px; margin-top: 8px; }
.karvan-invite input[type="text"] { flex: 1 1 auto; min-width: 0; padding: 9px 12px;
  background: #161616; border: 1px solid #333; border-radius: 10px; color: #FFD700; font-family: monospace; font-size: 12px; }
.karvan-invite button { flex: 0 0 auto; padding: 9px 14px; border: 1px solid #FFD700; background: #161616; color: #FFD700; border-radius: 10px; cursor: pointer; }
.karvan-invite-msg { font-size: 12px; margin: 6px 0 0; }
.karvan-invite-msg.ok { color: #35d07f; }
.karvan-invite-msg.err { color: #ff8a8a; }

/* --- Karvan videollamada (Fase 1): media P2P sobre el mismo WebRTC del chat --- */
.karvan-call, .karvan-videos, .karvan-call-bar, .kc-status {
  background-color: transparent; box-shadow: none; border-radius: 0; padding: 0; margin: 0; /* anular div{#222} */
}
.karvan-call { margin: 10px 0; }
.karvan-videos { display: none; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 6px; margin-bottom: 8px; }
.karvan-call.active .karvan-videos { display: grid; }
.kc-video { width: 100%; aspect-ratio: 4 / 3; background: #000; border-radius: 10px; border: 1px solid #333; object-fit: cover; display: block; }
.kc-local { transform: scaleX(-1); }        /* espejo, como cámara frontal */
.kc-remote { display: contents; }           /* los vídeos remotos entran en la misma rejilla */
.karvan-call-bar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.kc-btn { min-height: 44px; min-width: 44px; padding: 8px 12px; border-radius: 999px;
  border: 1px solid #333; background: #161616; color: #FFD700; line-height: 1; cursor: pointer; }
.kc-btn.on { background: #FFD700; color: #121212; border-color: #FFD700; }
.kc-btn-start { font-weight: 600; }
.kc-btn-stop { background: #241414; border-color: #5a2a2a; }
.kc-status { font-size: 12px; color: #FFDD44; margin-top: 6px; min-height: 14px; }
