@font-face {
  font-family: "ForkMesh Favorit";
  src: url("/assets/fonts/ABCFavorit-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "ForkMesh Lato";
  src: url("/assets/fonts/Lato-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "ForkMesh Lato";
  src: url("/assets/fonts/Lato-Semibold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "ForkMesh Mono";
  src: url("/assets/fonts/DejaVuSansMono.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  color-scheme: dark;
  /* GitHub dark primitives: every overlay, drawer, kiosk, and HUD panel
     inherits one coherent border/background/action system. */
  --world-ink: #0d1117;
  --world-ink-soft: #161b22;
  --world-panel: rgb(22 27 34 / 0.96);
  --world-panel-solid: #161b22;
  --world-panel-light: rgb(240 246 252 / 0.98);
  --world-line: rgb(48 54 61 / 0.82);
  --world-line-strong: #30363d;
  --world-copy: #f0f6fc;
  --world-muted: #8c959f;
  --world-mint: #58a6ff;
  --world-mint-deep: #2f81f7;
  --world-sun: #d29922;
  --world-sky: #79c0ff;
  --world-danger: #f85149;
  --world-violet: #a371f7;
  --primer-canvas-default: #0d1117;
  --primer-canvas-subtle: #161b22;
  --primer-control-bg: #21262d;
  --primer-control-hover: #30363d;
  --primer-border-default: #30363d;
  --primer-border-muted: #21262d;
  --primer-fg-default: #e6edf3;
  --primer-fg-muted: #8d96a0;
  --primer-accent-fg: #4493f8;
  --primer-accent-muted: rgb(56 139 253 / 0.4);
  --primer-accent-subtle: rgb(56 139 253 / 0.15);
  --safe-top: max(14px, env(safe-area-inset-top));
  --safe-right: max(14px, env(safe-area-inset-right));
  --safe-bottom: max(14px, env(safe-area-inset-bottom));
  --safe-left: max(14px, env(safe-area-inset-left));
  --world-diagnostics-height: 28px;
  font-family: "ForkMesh Lato", system-ui, sans-serif;
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
  margin: 0;
  background: var(--world-ink);
}

html:has(body.world-active) {
  width: 100%;
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

body.world-active {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: none;
  color: var(--world-copy);
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

a {
  color: inherit;
}

forkmesh-world {
  display: block;
  min-height: 100svh;
  position: relative;
}

.world-skip-link {
  position: fixed;
  z-index: 1000;
  top: 8px;
  left: 8px;
  transform: translateY(-150%);
  border: 1px solid var(--world-mint);
  background: var(--world-ink);
  color: var(--world-copy);
  padding: 10px 14px;
  text-decoration: none;
}

.world-skip-link:focus {
  transform: translateY(0);
}

.world-load-error {
  min-height: 100svh;
  display: grid;
  place-content: center;
  justify-items: start;
  gap: 18px;
  max-width: 760px;
  padding: 48px clamp(24px, 7vw, 96px);
  color: var(--world-copy);
  background:
    radial-gradient(circle at 75% 10%, rgb(57 199 131 / 0.2), transparent 32%),
    linear-gradient(145deg, #07110f, #0b2019);
}

.world-load-error[hidden] {
  display: none;
}

.world-load-error-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--world-copy);
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 1.2rem;
  text-decoration: none;
}

.world-load-error-brand img {
  width: 36px;
  height: 42px;
  object-fit: contain;
}

.world-load-error p {
  max-width: 640px;
  margin: 0;
  color: var(--world-muted);
  font-size: 1.05rem;
  line-height: 1.65;
}

.world-load-error .world-load-error-kicker {
  color: var(--world-mint);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.world-load-error nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.world-load-error nav a {
  border-bottom: 1px solid var(--world-mint);
  padding: 8px 0;
  margin-right: 16px;
  color: var(--world-copy);
  text-decoration: none;
}

.world-eyebrow,
.world-mono {
  font-family: "ForkMesh Mono", monospace;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.world-information-anchor {
  position: fixed;
  z-index: 999;
  top: 58px;
  left: var(--safe-left);
  max-width: min(440px, calc(100vw - 28px));
  border: 1px solid var(--world-mint);
  border-radius: 12px;
  padding: 12px;
  background: var(--world-ink);
  color: var(--world-copy);
  transform: translateY(-220%);
}

.world-information-anchor:focus,
.world-information-anchor:focus-within {
  transform: translateY(0);
}

.world-information-anchor p {
  margin: 0 0 8px;
}

.world-noscript {
  position: fixed;
  z-index: 100;
  inset-inline: 16px;
  bottom: 16px;
  border: 1px solid var(--world-line-strong);
  background: var(--world-panel-solid);
  padding: 12px 16px;
  color: var(--world-copy);
}

.fm-world {
  --accent: var(--world-mint);
  /* Detail panel geometry. The grip on the panel's left edge writes
     --world-detail-user-width; the per-panel base width is the floor, so a
     dragged-narrow panel never shrinks a naturally wider one. */
  --world-detail-base-width: 420px;
  --world-detail-user-width: 0px;
  --world-detail-max-width: calc(
    100vw - var(--safe-left) - var(--safe-right) - 28px
  );
  --world-detail-width: min(
    max(var(--world-detail-user-width), var(--world-detail-base-width)),
    var(--world-detail-max-width)
  );
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100svh;
  height: var(--world-viewport-height, 100dvh);
  min-height: 0;
  overflow: hidden;
  overscroll-behavior: none;
  isolation: isolate;
  background: #081510;
  color: var(--world-copy);
}

.fm-world::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgb(0 0 0 / 0.35), transparent 18%, transparent 75%, rgb(0 0 0 / 0.27)),
    linear-gradient(180deg, rgb(5 13 11 / 0.25), transparent 26%, rgb(5 13 11 / 0.42));
}

.world-canvas-wrap,
.world-canvas,
.world-webgl-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.world-canvas-wrap {
  z-index: 0;
  overscroll-behavior: none;
  touch-action: none;
}

.world-loading-curtain {
  position: absolute;
  z-index: 80;
  top: 50%;
  left: 50%;
  width: min(360px, calc(100% - 32px));
  min-height: 218px;
  padding: 24px 26px 20px;
  border: 1px solid rgb(158 247 198 / 0.45);
  border-radius: 22px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 8px;
  background:
    radial-gradient(circle at 50% 35%, rgb(34 94 72 / 0.5), transparent 45%),
    rgb(8 21 16 / 0.86);
  box-shadow: 0 22px 80px rgb(0 0 0 / 0.48);
  backdrop-filter: blur(9px);
  color: var(--world-copy);
  text-align: center;
  opacity: 1;
  transform: translate(-50%, -50%);
  transition: opacity 280ms ease, transform 280ms ease;
}

.world-loading-curtain[data-ready="true"] {
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -48%) scale(0.96);
}

.world-loading-curtain img {
  width: 44px;
  height: 52px;
  object-fit: contain;
  animation: world-loader-dash 900ms cubic-bezier(.45,.05,.22,1) infinite;
}

.world-loading-curtain strong {
  font: 800 16px/1.2 "ForkMesh Favorit", system-ui, sans-serif;
}

.world-loading-curtain span {
  color: var(--world-muted);
  font: 600 11px/1.4 "ForkMesh Mono", ui-monospace, monospace;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.world-loading-curtain small {
  color: #9ef7c6;
  font: 800 10px/1 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.08em;
}

.world-loading-track {
  display: block;
  width: 250px;
  max-width: 100%;
  height: 7px;
  margin-top: 5px;
  overflow: hidden;
  border: 1px solid rgb(158 247 198 / 0.3);
  border-radius: 999px;
  background: rgb(0 0 0 / 0.42);
}

.world-loading-track > span {
  display: block;
  width: 8%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #42d983, #9ef7c6, #77d9ff);
  box-shadow: 0 0 18px rgb(158 247 198 / 0.7);
  transition: width 220ms cubic-bezier(.2,.8,.2,1);
  animation: world-loader-shimmer 700ms linear infinite;
}

/*
  Opening ledger: one row per startup step with a live seconds counter, so a
  slow open names the step it is waiting on. Rows are painted from
  WORLD_BOOT_STEPS and keep their order whether or not they overlap.
*/
.world-loading-steps {
  width: 100%;
  max-height: min(46vh, 260px);
  margin: 4px 0 0;
  padding: 8px 0 0;
  overflow-y: auto;
  border-top: 1px solid rgb(158 247 198 / 0.18);
  list-style: none;
  text-align: left;
}

.world-loading-steps li {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 0 8px;
  padding: 2px 0;
}

.world-loading-curtain .world-loading-step-mark {
  color: var(--world-muted);
  font: 700 10px/1.4 "ForkMesh Mono", ui-monospace, monospace;
  text-align: center;
}

.world-loading-steps li[data-state="waiting"] .world-loading-step-mark::before {
  content: "○";
}

.world-loading-steps li[data-state="running"] .world-loading-step-mark::before {
  content: "▸";
}

.world-loading-steps li[data-state="done"] .world-loading-step-mark::before {
  content: "✓";
}

.world-loading-steps li[data-state="failed"] .world-loading-step-mark::before {
  content: "✕";
}

.world-loading-steps li[data-state="skipped"] .world-loading-step-mark::before {
  content: "–";
}

.world-loading-step-body {
  display: grid;
  min-width: 0;
}

.world-loading-curtain .world-loading-step-label,
.world-loading-curtain .world-loading-step-time {
  color: var(--world-muted);
  font: 600 10px/1.5 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.06em;
  text-transform: none;
}

.world-loading-curtain .world-loading-step-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* A note only appears once a step has something to report. */
.world-loading-curtain .world-loading-step-note {
  overflow: hidden;
  color: rgb(158 247 198 / 0.55);
  font: 500 9px/1.4 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.04em;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

.world-loading-curtain .world-loading-step-note:empty {
  display: none;
}

/* Counters redraw ten times a second: fixed digit cells keep them steady. */
.world-loading-curtain .world-loading-step-time {
  min-width: 42px;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.world-loading-steps li[data-state="waiting"],
.world-loading-steps li[data-state="skipped"] {
  opacity: 0.5;
}

.world-loading-steps li[data-state="running"] .world-loading-step-mark,
.world-loading-steps li[data-state="running"] .world-loading-step-label,
.world-loading-steps li[data-state="running"] .world-loading-step-time {
  color: #9ef7c6;
}

.world-loading-steps li[data-state="running"] .world-loading-step-mark {
  animation: world-loader-shimmer 700ms linear infinite;
}

.world-loading-steps li[data-state="done"] .world-loading-step-mark,
.world-loading-steps li[data-state="done"] .world-loading-step-time {
  color: #42d983;
}

.world-loading-steps li[data-state="failed"] .world-loading-step-mark,
.world-loading-steps li[data-state="failed"] .world-loading-step-label,
.world-loading-steps li[data-state="failed"] .world-loading-step-time {
  color: #ff9b9b;
}

.world-loading-curtain .world-loading-total {
  color: var(--world-muted);
  font: 600 9px/1 "ForkMesh Mono", ui-monospace, monospace;
  font-variant-numeric: tabular-nums;
}

@keyframes world-loader-dash {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  45% { transform: translateY(-7px) rotate(3deg); }
}

@keyframes world-loader-shimmer {
  from { filter: brightness(0.9); }
  50% { filter: brightness(1.35); }
  to { filter: brightness(0.9); }
}

@media (prefers-reduced-motion: reduce) {
  .world-loading-curtain img,
  .world-loading-track > span,
  .world-loading-steps li[data-state="running"] .world-loading-step-mark {
    animation: none;
  }
}

/* Wearable jetpack and World Gym controls. */
.world-avatar-actions [data-world-jetpack-toggle][data-active="true"] {
  border-color: #79c0ff;
  background:
    radial-gradient(circle at 50% 82%, rgb(255 158 74 / 0.72), transparent 38%),
    linear-gradient(145deg, rgb(31 111 235 / 0.78), rgb(88 166 255 / 0.32));
  box-shadow:
    0 0 0 3px rgb(88 166 255 / 0.14),
    0 8px 28px rgb(31 111 235 / 0.46);
}

.world-jetpack-controls {
  position: fixed;
  z-index: 60;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(max(18px, env(safe-area-inset-bottom)) + 70px);
  display: grid;
  grid-template-rows: 42px auto 42px;
  gap: 6px;
  place-items: center;
  border: 1px solid rgb(88 166 255 / 0.38);
  border-radius: 18px;
  background: rgb(9 14 21 / 0.92);
  padding: 8px;
  box-shadow: 0 16px 38px rgb(0 0 0 / 0.32);
}

.world-jetpack-controls[hidden] {
  display: none;
}

.world-jetpack-controls button {
  width: 42px;
  height: 42px;
  border: 1px solid #36516b;
  border-radius: 13px;
  background: linear-gradient(145deg, #172331, #101820);
  color: #79c0ff;
  cursor: pointer;
  font-size: 0.9rem;
  box-shadow: inset 0 1px rgb(255 255 255 / 0.05);
  touch-action: none;
  user-select: none;
}

.world-jetpack-controls button:is(:hover, :focus-visible, :active) {
  border-color: #79c0ff;
  background: rgb(31 111 235 / 0.34);
  outline: 0;
}

.world-jetpack-controls span {
  min-width: 40px;
  color: #9dd6ff;
  font: 750 0.58rem/1 "ForkMesh Mono", ui-monospace, monospace;
  text-align: center;
}

.world-gym-console {
  position: fixed;
  z-index: 63;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(max(16px, env(safe-area-inset-bottom)) + 64px);
  width: min(470px, calc(100vw - 32px));
  overflow: hidden;
  border: 1px solid rgb(255 123 84 / 0.46);
  border-radius: 20px;
  background:
    radial-gradient(circle at 90% -10%, rgb(255 123 84 / 0.2), transparent 34%),
    linear-gradient(145deg, rgb(20 25 33 / 0.97), rgb(8 13 19 / 0.98));
  padding: 16px;
  color: #f0f6fc;
  box-shadow:
    0 24px 65px rgb(0 0 0 / 0.48),
    inset 0 1px rgb(255 255 255 / 0.05);
  backdrop-filter: blur(20px) saturate(1.2);
}

.world-gym-console[hidden] {
  display: none;
}

.world-gym-console > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.world-gym-console h2 {
  margin: 3px 0 0;
  font: 780 1.5rem/1 "ForkMesh Favorit", system-ui, sans-serif;
  letter-spacing: -0.04em;
}

.world-gym-console > header > button {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid #3c4652;
  border-radius: 10px;
  background: rgb(255 255 255 / 0.04);
  color: #9aa6b2;
  cursor: pointer;
  font-size: 1.1rem;
}

.world-gym-weight {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 100px;
  align-items: end;
  gap: 10px;
  margin-top: 17px;
}

.world-gym-weight label {
  display: grid;
  gap: 7px;
  color: #8b98a7;
  font: 750 0.58rem/1 "ForkMesh Mono", monospace;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.world-gym-weight label:last-child {
  grid-template-columns: 1fr auto;
  align-items: center;
  min-height: 40px;
  border: 1px solid #3a4653;
  border-radius: 11px;
  background: #0b1118;
  padding: 0 10px;
}

.world-gym-weight input[type="range"] {
  width: 100%;
  accent-color: #ff7b54;
}

.world-gym-weight input[type="number"] {
  width: 100%;
  border: 0;
  background: transparent;
  color: #f0f6fc;
  font: 750 0.86rem/1 system-ui, sans-serif;
  outline: 0;
}

.world-gym-lift-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 14px;
}

.world-gym-lift-stats > div {
  display: grid;
  gap: 4px;
  border: 1px solid rgb(255 123 84 / 0.2);
  border-radius: 12px;
  background: linear-gradient(145deg, rgb(255 123 84 / 0.1), rgb(255 255 255 / 0.018));
  padding: 10px;
}

.world-gym-lift-stats strong {
  color: #ffad8f;
  font: 780 1rem/1 system-ui, sans-serif;
}

.world-gym-lift-stats span {
  color: #788594;
  font: 700 0.52rem/1 "ForkMesh Mono", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.world-gym-console > p {
  margin: 12px 0;
  border: 1px solid #34404d;
  border-radius: 11px;
  background: rgb(255 255 255 / 0.025);
  color: #9aa7b4;
  padding: 9px 10px;
  font-size: 0.66rem;
  line-height: 1.45;
}

.world-gym-console > p[data-heavy="true"] {
  border-color: rgb(255 123 84 / 0.45);
  background: rgb(255 123 84 / 0.11);
  color: #ffc1aa;
  box-shadow: inset 3px 0 #ff7b54;
}

.world-gym-actions {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 8px;
}

.world-gym-actions button {
  min-height: 42px;
  border: 1px solid rgb(255 123 84 / 0.5);
  border-radius: 12px;
  background: linear-gradient(180deg, #db5d3d, #9e3826);
  color: white;
  padding: 8px 11px;
  cursor: pointer;
  font-size: 0.7rem;
  font-weight: 780;
  box-shadow: 0 8px 22px rgb(158 56 38 / 0.22);
}

.world-gym-actions button:last-child {
  border-color: #3c4b5c;
  background: #16202b;
  color: #9dd6ff;
  box-shadow: none;
}

.world-gym-actions button[aria-pressed="true"] {
  border-color: #79c0ff;
  background: linear-gradient(180deg, #1f6feb, #164b91);
  color: white;
  box-shadow: 0 8px 24px rgb(31 111 235 / 0.3);
}

.world-gym-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.52;
}

.world-gym-console > footer {
  margin-top: 11px;
  color: #677482;
  font-size: 0.59rem;
  line-height: 1.45;
}

@media (max-width: 620px) {
  .world-gym-console {
    right: 10px;
    bottom: calc(max(10px, env(safe-area-inset-bottom)) + 58px);
    width: calc(100vw - 20px);
    border-radius: 15px;
    padding: 12px;
  }

  .world-gym-weight,
  .world-gym-actions {
    grid-template-columns: 1fr;
  }

  .world-jetpack-controls {
    right: 10px;
  }
}

.world-update-notice {
  position: absolute;
  z-index: 42;
  top: calc(var(--safe-top) + 64px);
  left: 50%;
  display: flex;
  width: min(620px, calc(100% - 28px));
  transform: translateX(-50%);
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--world-mint);
  border-radius: 10px;
  background: rgb(5 24 18 / 0.96);
  padding: 10px 12px;
  box-shadow: 0 14px 42px rgb(0 0 0 / 0.36);
  color: var(--world-copy);
  font-size: 12px;
}

.world-update-activity {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 2px solid rgb(158 247 198 / 0.25);
  border-top-color: var(--world-mint);
  border-radius: 50%;
  animation: world-deploy-spin 650ms linear infinite;
}

.world-update-notice:not([data-state="deploying"]) .world-update-activity {
  display: none;
}

.world-update-notice[data-state="ready"] {
  border-color: #a8f7c8;
}

.world-update-notice[data-state="failed"] {
  border-color: #ffb37c;
}

@keyframes world-deploy-spin {
  to { transform: rotate(360deg); }
}

.world-update-notice[hidden] {
  display: none;
}

.world-update-notice button {
  flex: 0 0 auto;
  border: 1px solid var(--world-mint);
  border-radius: 7px;
  background: var(--world-mint);
  padding: 7px 10px;
  color: #062017;
  font-weight: 800;
  cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
  .world-update-activity {
    animation-duration: 1.8s;
  }
}

.world-canvas {
  display: block;
  touch-action: none;
  cursor: grab;
}

.world-canvas[data-dragging="true"] {
  cursor: grabbing;
}

.world-webgl-fallback {
  display: grid;
  place-content: center;
  padding: 32px;
  background:
    radial-gradient(circle at 50% 52%, rgb(158 247 198 / 0.2), transparent 18%),
    repeating-linear-gradient(0deg, transparent 0 31px, rgb(158 247 198 / 0.08) 32px),
    repeating-linear-gradient(90deg, transparent 0 31px, rgb(158 247 198 / 0.08) 32px),
    #091814;
  text-align: center;
}

.world-webgl-fallback strong {
  display: block;
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: clamp(2rem, 6vw, 4rem);
}

.world-webgl-fallback p {
  max-width: 560px;
  color: var(--world-muted);
  line-height: 1.6;
}

.world-renderer-recovery {
  position: absolute;
  z-index: 4;
  inset: 50% auto auto 50%;
  display: grid;
  width: min(390px, calc(100% - 32px));
  transform: translate(-50%, -50%);
  gap: 7px;
  border: 1px solid var(--world-line-strong);
  background: rgb(5 18 14 / 0.94);
  padding: 14px;
  box-shadow: 0 18px 50px rgb(0 0 0 / 0.38);
  color: var(--world-muted);
  text-align: center;
}

.world-renderer-recovery[hidden] {
  display: none;
}

.world-renderer-recovery strong {
  color: var(--world-copy);
}

.world-renderer-recovery button {
  justify-self: center;
  border: 1px solid var(--world-mint);
  background: var(--world-mint);
  padding: 7px 12px;
  color: var(--world-ink);
  cursor: pointer;
}

.world-hud {
  position: absolute;
  z-index: 5;
  inset: 0;
  pointer-events: none;
}

.world-hud button,
.world-hud a,
.world-hud input,
.world-hud select,
.world-hud [tabindex] {
  pointer-events: auto;
}

.world-topbar {
  position: absolute;
  top: var(--safe-top);
  left: var(--safe-left);
  right: var(--safe-right);
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: start;
  gap: 16px;
}

.world-brand {
  position: relative;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgb(7 17 15 / 0.92);
  padding: 4px;
  overflow: hidden;
}

.world-brand img {
  width: 44px;
  height: 44px;
  /* The mark asset is portrait, so cover cropped its top and bottom inside
     the status ring. Preserve the complete logo instead. */
  object-fit: contain;
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
}

.world-connection-ring {
  position: absolute;
  inset: 0;
  border: 2px solid var(--world-mint);
  border-radius: 50%;
  box-shadow: 0 0 12px rgb(158 247 198 / 0.42);
  pointer-events: none;
}

.world-connection-ring[data-state="connecting"] {
  border-color: var(--world-sun);
  border-top-color: transparent;
  box-shadow: 0 0 12px rgb(247 201 107 / 0.5);
  animation: world-connection-spin 780ms linear infinite;
}

.world-connection-ring[data-state="offline"] {
  border-color: #7c9187;
  box-shadow: none;
}

.world-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Shared GitHub-style panel chrome; a final cascade pass below catches
   feature-specific surfaces declared later in this file. */
.fm-world :is(
  .world-detail,
  .world-map,
  .world-office-lobby,
  .world-office-room,
  .world-office-task-panel,
  .world-office-chat,
  .world-settings,
  .world-account,
  .world-feature-card,
  .world-notice
) {
  border-color: var(--world-line-strong);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgb(1 4 9 / 0.36);
}

.fm-world :is(button, input, select, textarea) {
  border-radius: 6px;
}

@keyframes world-connection-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .world-connection-ring[data-state="connecting"] {
    animation: none;
  }

  .world-office-task[data-status="active"] .world-office-task-state {
    animation: none;
  }
}

.world-top-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 0;
  transform-origin: top right;
  transition:
    gap 220ms ease,
    filter 220ms ease;
}

.world-icon-button,
.world-top-link {
  display: inline-grid;
  width: 40px;
  min-width: 40px;
  min-height: 40px;
  place-items: center;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  background: var(--primer-control-bg);
  color: var(--primer-fg-default);
  padding: 0;
  cursor: pointer;
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.04) inset;
  transition:
    width 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
    min-width 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
    opacity 140ms ease,
    transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
    border-color 160ms ease,
    background-color 160ms ease,
    visibility 0s linear 220ms;
}

.world-icon-button {
  display: inline-grid;
  place-items: center;
  min-width: 40px;
  padding: 0;
}

.world-icon-button:hover,
.world-top-link:hover {
  border-color: #8b949e;
  background: var(--primer-control-hover);
  color: var(--primer-fg-default);
}

.world-icon-button:focus-visible,
.world-top-link:focus-visible {
  border-color: #8b949e;
  background: var(--primer-control-hover);
  box-shadow: 0 0 0 3px var(--primer-accent-subtle);
  outline: none;
}

.world-top-link {
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 600;
  width: 0;
  min-width: 0;
  min-height: 40px;
  overflow: hidden;
  border-width: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateX(18px) scale(0.84);
  visibility: hidden;
}

.world-top-link-label {
  display: block;
  max-width: 0;
  height: 0;
  overflow: hidden;
  opacity: 0;
  color: var(--primer-fg-muted);
  font: 700 0.42rem/1 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.015em;
  text-align: center;
  text-transform: uppercase;
  transform: translateY(-3px);
  transition:
    max-width 180ms ease,
    height 180ms ease,
    opacity 140ms ease,
    transform 180ms ease;
  white-space: nowrap;
}

/* The avatar is the launcher.  Revealed controls retain their compact 40px
   square footprint and simply slide out to its left. */
.world-hud[data-hud-expanded="true"] .world-top-actions {
  gap: 6px;
  filter: drop-shadow(0 10px 18px rgb(1 4 9 / 0.34));
}

.world-hud[data-hud-expanded="true"] .world-top-link {
  grid-template-rows: 17px 8px;
  width: 40px;
  min-width: 40px;
  height: 40px;
  min-height: 40px;
  align-content: center;
  gap: 2px;
  overflow: visible;
  border-width: 1px;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0) scale(1);
  transition-delay: 0s;
  visibility: visible;
}

.world-hud[data-hud-expanded="true"] .world-top-link-label {
  max-width: 38px;
  height: 8px;
  opacity: 1;
  transform: translateY(0);
}

.world-top-link[aria-pressed="true"] {
  border-color: #8b949e;
  background: var(--primer-control-hover);
  color: var(--primer-fg-default);
}

.world-tasks-button {
  position: relative;
}

.world-tasks-button [data-world-task-count] {
  position: absolute;
  top: -7px;
  right: -7px;
  display: grid;
  min-width: 18px;
  height: 18px;
  place-items: center;
  border: 2px solid var(--primer-canvas-default);
  border-radius: 999px;
  background: var(--primer-accent-emphasis);
  padding: 0 4px;
  color: #fff;
  font: 700 10px/1 "ForkMesh Mono", ui-monospace, monospace;
}

.world-tasks-button [data-world-task-count][hidden] {
  display: none;
}

/* The hand mirrors the gesture the avatar plays in the scene. */
.world-wave-button span[aria-hidden="true"] {
  display: inline-block;
  transform-origin: 70% 80%;
}

.world-wave-button:hover span[aria-hidden="true"],
.world-wave-button:focus-visible span[aria-hidden="true"] {
  animation: world-wave-hand 900ms ease-in-out infinite;
}

@keyframes world-wave-hand {
  0%,
  100% {
    transform: rotate(0deg);
  }

  25% {
    transform: rotate(16deg);
  }

  75% {
    transform: rotate(-16deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .world-wave-button:hover span[aria-hidden="true"],
  .world-wave-button:focus-visible span[aria-hidden="true"] {
    animation: none;
  }
}

[data-world-sound-toggle] {
  /* Sound consent must remain reachable while a landmark detail is open.
     Only this explicit media control rises above the dismissing backdrop. */
  position: relative;
  z-index: 21;
}

.world-notification-button {
  position: relative;
}

.world-notification-button [data-world-notification-count],
.world-admin-errors-button [data-world-admin-error-count] {
  position: absolute;
  top: -7px;
  right: -7px;
  display: grid;
  min-width: 19px;
  height: 19px;
  place-items: center;
  border: 1px solid #0a1c16;
  border-radius: 999px;
  background: var(--world-sun);
  padding: 0 5px;
  color: #10251c;
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.5rem;
  font-weight: 700;
  line-height: 1;
}

.world-notification-button [data-world-notification-count][hidden],
.world-admin-errors-button [data-world-admin-error-count][hidden] {
  display: none;
}

.world-admin-errors-button {
  position: relative;
}

.world-admin-errors-button[hidden] {
  display: none;
}

.world-admin-errors-button.has-new-errors {
  border-color: #f85149;
  color: #ff7b72;
}

.world-admin-errors-button [data-world-admin-error-count] {
  border-color: #2d1117;
  background: #da3633;
  color: #ffffff;
}

.world-admin-status-light {
  display: grid;
  width: 24px;
  height: 24px;
  margin-inline: 4px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #ff7b72;
  text-decoration: none;
}

.world-admin-status-light[hidden] {
  display: none;
}

.world-admin-status-light:hover,
.world-admin-status-light:focus-visible {
  color: #ffa198;
  outline: none;
}

.world-admin-status-light-orb {
  display: block;
  width: 13px;
  height: 13px;
  border: 2px solid transparent;
  border-radius: 50%;
  background:
    linear-gradient(#da3633, #da3633) padding-box,
    conic-gradient(from 0deg, #ff7b72, transparent 38%, #ff7b72) border-box;
  box-shadow: 0 0 0 2px rgb(248 81 73 / 0.18), 0 0 12px rgb(248 81 73 / 0.8);
  animation: world-admin-status-spin 900ms linear infinite;
}

@keyframes world-admin-status-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .world-admin-status-light-orb {
    animation: none;
  }
}

forkmesh-world.world-admin-error-arrival::after {
  position: fixed;
  z-index: 80;
  inset: 0;
  border: 3px solid rgb(248 81 73 / 0.72);
  box-shadow: inset 0 0 54px rgb(248 81 73 / 0.22);
  content: "";
  pointer-events: none;
  animation: world-admin-error-arrival 1.5s ease-out both;
}

@keyframes world-admin-error-arrival {
  0% {
    opacity: 0;
  }

  18% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  forkmesh-world.world-admin-error-arrival::after {
    animation: none;
    opacity: 0;
  }
}

.world-eyebrow {
  margin: 0;
  color: var(--world-mint);
  font-size: 0.61rem;
}

.world-arrival-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
}

.world-primary-action,
.world-secondary-action {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0 12px;
  cursor: pointer;
  text-decoration: none;
  font-size: 0.72rem;
  font-weight: 700;
}

.world-primary-action {
  background: var(--world-mint);
  color: #07110f;
}

.world-primary-action:hover,
.world-primary-action:focus-visible {
  background: #c9ffdf;
  outline: none;
}

.world-secondary-action {
  border-color: var(--world-line);
  background: transparent;
  color: var(--world-copy);
}

.world-secondary-action:hover,
.world-secondary-action:focus-visible {
  border-color: var(--world-mint);
  color: var(--world-mint);
  outline: none;
}

.world-right-rail {
  position: absolute;
  top: calc(var(--safe-top) + 68px);
  right: var(--safe-right);
  display: grid;
  gap: 10px;
  width: min(264px, calc(100vw - 28px));
  max-height: calc(
    var(--world-viewport-height, 100dvh) - var(--safe-top) - 84px
  );
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--world-line-strong) transparent;
  transform-origin: top right;
  transition:
    width 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
    gap 220ms ease,
    opacity 140ms ease,
    transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
    filter 220ms ease,
    visibility 0s linear 220ms;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.world-right-rail[data-expanded="false"] {
  width: 0;
  gap: 0;
  overflow: visible;
  opacity: 0;
  pointer-events: none;
  transform: translateX(22px) scale(0.92);
  visibility: hidden;
}

.world-right-rail[data-expanded="true"] {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-2px);
  filter: drop-shadow(0 12px 22px rgb(1 4 9 / 0.38));
  transition-delay: 0s;
  visibility: visible;
}

.world-map {
  overflow: hidden;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  background: var(--primer-canvas-default);
  box-shadow: 0 8px 24px rgb(1 4 9 / 0.42);
  transition: width 180ms ease;
}

.world-saved-views {
  justify-self: end;
  width: 204px;
  overflow: hidden;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  background: var(--primer-canvas-default);
  box-shadow: 0 8px 24px rgb(1 4 9 / 0.34);
}

.world-right-rail[data-expanded="false"] .world-saved-views,
.world-right-rail[data-expanded="false"] .world-share-view-button {
  width: 44px;
}

.world-right-rail[data-expanded="false"] .world-share-view-button {
  min-height: 40px;
  justify-content: center;
  padding: 0;
}

.world-right-rail[data-expanded="false"]
  .world-share-view-button
  span:not([aria-hidden="true"]),
.world-right-rail[data-expanded="false"]
  .world-saved-views-heading
  > button:last-child
  span:last-child,
.world-right-rail[data-expanded="false"] .world-community-placement,
.world-right-rail[data-expanded="false"] .world-fediverse-activity {
  display: none;
}

.world-right-rail[data-expanded="false"] .world-saved-views-heading {
  min-height: 40px;
  justify-content: center;
  border-bottom: 0;
  padding: 0;
}

.world-right-rail[data-expanded="false"] .world-saved-views-title {
  display: none;
}

.world-right-rail[data-expanded="false"]
  .world-saved-views-heading
  > button:last-child {
  display: grid;
  width: 100%;
  min-height: 40px;
  place-items: center;
  grid-template-columns: 1fr;
  border: 0;
  padding: 0;
}

.world-right-rail[data-expanded="false"] .world-saved-view-list {
  grid-template-columns: 1fr;
  gap: 3px;
  padding: 3px;
}

.world-right-rail[data-expanded="false"] .world-saved-view img,
.world-right-rail[data-expanded="false"] .world-saved-view-placeholder {
  height: 34px;
}

.world-right-rail[data-expanded="false"] .world-saved-view-edit {
  display: none;
}

.world-share-view-button {
  justify-self: end;
  display: flex;
  min-height: 34px;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  background: var(--primer-control-bg);
  padding: 7px 10px;
  color: var(--primer-fg-default);
  font: 600 0.72rem/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  cursor: pointer;
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.04) inset;
}

.world-share-view-button:hover,
.world-share-view-button:focus-visible {
  border-color: #8b949e;
  background: var(--primer-control-hover);
  color: var(--primer-fg-default);
  outline: none;
}

.world-saved-views-heading {
  display: flex;
  min-height: 30px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid var(--primer-border-muted);
  padding: 4px 7px 4px 9px;
  color: var(--primer-fg-muted);
  font: 600 0.68rem/1 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-saved-views-heading > button:last-child {
  display: grid;
  grid-template-columns: auto auto;
  min-height: 23px;
  align-items: center;
  gap: 3px;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  background: var(--primer-control-bg);
  padding: 3px 5px;
  color: var(--primer-fg-default);
  font: 600 0.61rem/1 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-transform: uppercase;
  cursor: pointer;
}

.world-saved-views-title {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 4px;
  padding: 5px 0;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.world-saved-view-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  padding: 6px;
}

.world-saved-view-empty {
  grid-column: 1 / -1;
  padding: 4px 2px;
  color: var(--world-muted);
  font-size: 0.58rem;
  line-height: 1.3;
}

.world-saved-view {
  position: relative;
  min-width: 0;
}

.world-saved-view > button:first-child {
  display: grid;
  width: 100%;
  gap: 3px;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  background: var(--primer-canvas-subtle);
  padding: 2px;
  color: var(--world-copy);
  cursor: pointer;
}

.world-saved-view img,
.world-saved-view-placeholder {
  display: block;
  width: 100%;
  height: 42px;
  object-fit: cover;
  border-radius: 4px;
  background: linear-gradient(
    145deg,
    var(--primer-control-hover),
    var(--primer-canvas-default)
  );
}

.world-saved-view-placeholder {
  display: grid;
  place-items: center;
  color: var(--primer-accent-fg);
}

.world-saved-view-edit {
  position: absolute;
  top: 3px;
  right: 3px;
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  background: var(--primer-control-bg);
  color: var(--primer-fg-default);
  cursor: pointer;
  font-size: 0.58rem;
}

.world-saved-view button:hover,
.world-saved-view button:focus-visible,
.world-saved-views-heading > button:hover,
.world-saved-views-heading > button:focus-visible {
  border-color: #8b949e;
  background-color: var(--primer-control-hover);
  outline: none;
}

.world-map-toggle {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--primer-fg-muted);
  cursor: pointer;
  font: 700 0.76rem/1 "ForkMesh Mono", monospace;
}

.world-map-toggle:hover,
.world-map-toggle:focus-visible {
  border-color: var(--primer-border-default);
  background: var(--primer-control-bg);
  color: var(--primer-fg-default);
  outline: none;
}

.world-map:not(.is-expanded) {
  width: 44px;
  justify-self: end;
}

.world-map:not(.is-expanded) .world-panel-heading {
  min-height: 40px;
  justify-content: center;
  padding: 0;
}

.world-map:not(.is-expanded) .world-panel-heading h2,
.world-map:not(.is-expanded) .world-panel-heading > span,
.world-map:not(.is-expanded) .world-map-label-copy,
.world-map:not(.is-expanded) .world-map-distance {
  display: none;
}

.world-map:not(.is-expanded) .world-map-list {
  overflow: hidden;
  padding: 2px;
}

.world-map:not(.is-expanded) .world-map-button {
  grid-template-columns: 1fr;
  min-height: 40px;
  padding: 0;
  text-align: center;
}

.world-panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 38px;
  border-bottom: 1px solid var(--primer-border-muted);
  background: var(--primer-canvas-subtle);
  padding: 0 12px;
}

.world-panel-heading h2 {
  margin: 0;
  color: var(--primer-fg-default);
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: normal;
}

.world-panel-heading span {
  color: var(--primer-fg-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.55rem;
}

.world-map-list {
  display: grid;
  max-height: min(34vh, 340px);
  overflow-y: auto;
  margin: 0;
  padding: 5px;
  list-style: none;
}

.world-community-placement {
  display: grid;
  gap: 6px;
  border: 1px solid rgb(213 182 255 / 0.34);
  background: rgb(19 13 29 / 0.9);
  padding: 10px 12px;
  backdrop-filter: blur(18px);
}

.world-community-placement[hidden] {
  display: none;
}

.world-community-placement-label,
.world-community-placement p,
.world-community-placement small {
  margin: 0;
}

.world-community-placement-label {
  color: var(--world-violet);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.52rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.world-community-placement strong {
  color: var(--world-copy);
  font-size: 0.72rem;
}

.world-community-placement p,
.world-community-placement small {
  color: var(--world-muted);
  font-size: 0.62rem;
  line-height: 1.4;
}

.world-community-placement a {
  width: fit-content;
  color: var(--world-violet);
  font-size: 0.65rem;
  text-decoration: none;
}

.world-community-placement a:hover,
.world-community-placement a:focus-visible {
  text-decoration: underline;
  outline: none;
}

.world-fediverse-activity {
  overflow: hidden;
  border: 1px solid var(--world-line);
  background: var(--world-panel);
  backdrop-filter: blur(18px);
}

.world-fediverse-activity[hidden] {
  display: none;
}

.world-fediverse-activity > [data-world-fediverse-items] {
  display: grid;
  max-height: 185px;
  overflow-y: auto;
}

.world-fediverse-activity-item {
  display: grid;
  gap: 5px;
  border-bottom: 1px solid var(--world-line);
  padding: 8px 10px;
}

.world-fediverse-activity-item:last-child {
  border-bottom: 0;
}

.world-fediverse-activity-item > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.world-fediverse-activity-item span {
  color: var(--world-violet);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.49rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-fediverse-activity-item strong {
  min-width: 0;
  overflow: hidden;
  color: var(--world-copy);
  font-size: 0.61rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-fediverse-activity-item p,
.world-rail-empty {
  margin: 0;
  color: var(--world-muted);
  font-size: 0.6rem;
  line-height: 1.38;
}

.world-rail-empty {
  padding: 10px 12px;
}

.world-fediverse-activity-item button,
.world-fediverse-activity-item a {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--world-mint);
  cursor: pointer;
  font-size: 0.58rem;
  text-decoration: none;
}

.world-fediverse-activity-item button:hover,
.world-fediverse-activity-item button:focus-visible,
.world-fediverse-activity-item a:hover,
.world-fediverse-activity-item a:focus-visible {
  text-decoration: underline;
  outline: none;
}

.world-fediverse-review-card {
  display: grid;
  gap: 12px;
}

.world-fediverse-review-card > p {
  margin: 0;
  color: var(--world-muted);
  font-size: 0.7rem;
}

.world-fediverse-review-card textarea {
  min-height: 180px;
  resize: vertical;
}

.fm-world:has(.world-detail[data-open="true"]) .world-right-rail {
  visibility: hidden;
  pointer-events: none;
}

.world-map-button {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 35px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--primer-fg-muted);
  padding: 0 8px;
  cursor: pointer;
  text-align: left;
  font-size: 0.76rem;
  font-weight: 500;
}

.world-map-button:hover,
.world-map-button:focus-visible {
  border-color: var(--primer-border-default);
  background: var(--primer-control-bg);
  color: var(--primer-fg-default);
  outline: none;
}

.world-map-button[aria-current="true"] {
  border-color: #8b949e;
  background: var(--primer-control-hover);
  color: var(--primer-fg-default);
  box-shadow: inset 2px 0 var(--primer-fg-muted);
}

.world-map-icon {
  display: grid;
  place-items: center;
  color: var(--primer-fg-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.66rem;
}

.world-map-label-copy,
.world-status-row {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}

.world-map-label-copy > span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-construction-mark {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: 1.35em;
  height: 1.35em;
  border: 1px solid rgb(247 201 107 / 0.68);
  background: rgb(43 31 8 / 0.9);
  color: #ffd56f;
  font-size: 0.72rem;
  line-height: 1;
  vertical-align: middle;
}

.world-construction-mark[hidden] {
  display: none;
}

.world-construction-mark-map {
  font-size: 0.62rem;
}

.world-construction-mark-panel {
  margin-top: 18px;
  font-size: 0.84rem;
}

.world-map-distance {
  color: #71887c;
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.52rem;
}

.world-activity {
  overflow: hidden;
  border-left: 1px solid var(--world-line);
  background: rgb(7 17 15 / 0.92);
  padding: 10px 12px;
}

.world-activity-line {
  display: flex;
  gap: 8px;
  color: var(--world-muted);
  font-size: 0.69rem;
  line-height: 1.45;
}

.world-activity-line::before {
  content: "↳";
  color: var(--world-mint);
  font-family: "ForkMesh Mono", monospace;
}

.world-shirt-badge {
  position: relative;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--primer-border-default);
  border-radius: 50%;
  background: var(--primer-control-bg);
  padding: 3px;
  color: white;
  cursor: pointer;
  isolation: isolate;
  transition:
    transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
    border-color 160ms ease,
    box-shadow 220ms ease;
}

.world-shirt-badge:hover,
.world-shirt-badge:focus-visible {
  border-color: #8b949e;
  background: var(--primer-control-hover);
  outline: none;
}

.world-shirt-badge:focus-visible {
  box-shadow: 0 0 0 3px var(--primer-accent-subtle);
}

.world-hud[data-hud-expanded="true"] .world-shirt-badge {
  transform: translateY(1px) scale(1.1);
  border-color: var(--world-mint);
  box-shadow:
    0 0 0 3px rgb(158 247 198 / 0.14),
    0 10px 24px rgb(1 4 9 / 0.45);
}

.world-shirt-avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.world-diagnostics {
  position: absolute;
  z-index: 45;
  right: auto;
  bottom: 0;
  left: 0;
  width: min(1180px, calc(100% - min(440px, calc(100vw - 24px))));
  max-width: 100vw;
  border-top: 1px solid var(--world-line-strong);
  border-left: 1px solid var(--world-line);
  background: rgb(5 13 11 / 0.94);
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.48rem;
  line-height: 1.22;
  pointer-events: auto;
}

.world-diagnostics summary {
  display: flex;
  min-height: var(--world-diagnostics-height);
  align-items: center;
  gap: 5px;
  overflow: hidden;
  padding:
    3px max(7px, env(safe-area-inset-right))
    max(3px, env(safe-area-inset-bottom)) 7px;
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}

.world-diagnostics summary::-webkit-details-marker {
  display: none;
}

.world-diagnostics summary:focus-visible {
  outline: 1px solid var(--world-mint);
  outline-offset: -2px;
}

.world-diagnostics summary strong {
  flex: 0 0 auto;
  color: var(--world-mint);
  font-size: 0.46rem;
  letter-spacing: 0.1em;
}

.world-diagnostics summary [data-world-chat-terminal-last] {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.world-diagnostics-compact {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: center;
  gap: 1px 6px;
  overflow: hidden;
  white-space: nowrap;
}

.world-diagnostics-compact > span {
  flex: 0 0 auto;
}

.world-diagnostics-light {
  width: 5px;
  height: 5px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--world-danger);
  box-shadow: 0 0 7px rgb(255 142 120 / 0.7);
}

.world-diagnostics-light[data-state="online"] {
  background: var(--world-mint);
  box-shadow: 0 0 7px rgb(158 247 198 / 0.72);
}

.world-diagnostics-light[data-state="connecting"] {
  background: var(--world-sun);
  box-shadow: 0 0 7px rgb(247 201 107 / 0.72);
}

.world-diagnostics-toggle {
  margin-left: auto;
  flex: 0 0 auto;
  color: var(--world-copy);
  transition: transform 140ms ease;
}

.world-diagnostics[open] .world-diagnostics-toggle {
  transform: rotate(180deg);
}

.world-diagnostics-details {
  max-height: min(46vh, 330px);
  overflow: auto;
  border-top: 1px solid var(--world-line);
  padding: 7px max(9px, env(safe-area-inset-right)) 8px 9px;
}

.world-diagnostics-details > p {
  margin: 0 0 8px;
  color: #80978b;
  line-height: 1.5;
}

.world-diagnostics-triangle-control {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
}

.world-diagnostics-triangle-control button {
  min-height: 32px;
  padding: 5px 10px;
  border: 1px solid #58a6ff;
  background: rgb(31 111 235 / 0.18);
  color: #b9dcff;
  font: 750 11px/1.2 "ForkMesh Mono", ui-monospace, monospace;
  white-space: nowrap;
}

.world-diagnostics-triangle-control button[aria-pressed="true"] {
  border-color: var(--world-mint);
  background: rgb(46 160 67 / 0.2);
  color: var(--world-mint);
}

.world-diagnostics-triangle-control span {
  color: #80978b;
  font-size: 11px;
}

.world-diagnostics dl {
  display: grid;
  gap: 3px;
  margin: 0;
}

.world-diagnostics dl > div {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 6px;
}

.world-diagnostics dt {
  color: var(--world-mint);
}

.world-diagnostics dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--world-copy);
}

/* Graded readings: green is healthy, orange is worth watching, red is too
   high. Only the number is tinted so the surrounding text stays readable. */
.world-diagnostics-value {
  color: var(--world-copy);
}

.world-diagnostics-value[data-level="good"] {
  color: var(--world-mint);
}

.world-diagnostics-value[data-level="caution"] {
  color: var(--world-sun);
}

.world-diagnostics-value[data-level="high"] {
  color: var(--world-danger);
  font-weight: 600;
}

@media (prefers-contrast: more) {
  .world-diagnostics-value[data-level="caution"],
  .world-diagnostics-value[data-level="high"] {
    text-decoration: underline;
    text-underline-offset: 2px;
  }
}

/* DEBUG owns the lower-left; chat owns the lower-right all the way down. */
.world-chat-terminal {
  right: 0;
  bottom: 0;
  left: auto;
  z-index: 46;
  width: min(440px, calc(100vw - 24px));
  border-left: 1px solid var(--world-line);
  border-right: 0;
}

.world-chat-terminal-body {
  height: min(64vh, 520px);
  border-top: 1px solid var(--world-line);
}

.world-chat-terminal.world-chat-terminal--debug-hidden {
  bottom: 0;
}

.world-chat-terminal[open] > summary {
  min-height: 24px;
  padding-block: 2px;
}

.world-chat-terminal[open] [data-world-chat-terminal-last] {
  display: none;
}

.world-chat-terminal-channel {
  color: #f0f6fc;
  font-weight: 700;
}

.world-chat-terminal-lock,
.world-chat-terminal-connection {
  color: #8c959f;
}

.world-chat-terminal-connection::before {
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-right: 4px;
  border-radius: 50%;
  background: #3fb950;
  content: "";
  vertical-align: 1px;
}

.world-chat-terminal:not([open]) .world-chat-terminal-channel,
.world-chat-terminal:not([open]) .world-chat-terminal-lock,
.world-chat-terminal:not([open]) .world-chat-terminal-connection {
  display: none;
}

/* Unread count on the collapsed CHAT bar. Opening the panel zeroes it, so it
   is only ever visible while the bar is closed. */
.world-chat-terminal-unread {
  flex: 0 0 auto;
  min-width: 14px;
  border-radius: 999px;
  background: var(--world-mint);
  padding: 0 4px;
  color: #06130d;
  font-size: 0.42rem;
  font-weight: 700;
  line-height: 14px;
  text-align: center;
}

.world-chat-terminal-unread[hidden] {
  display: none;
}

.world-chat-terminal[open] .world-diagnostics-toggle {
  margin-left: auto;
}

.world-chat-terminal-frame {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #081510;
}

.world-toast {
  position: absolute;
  z-index: 30;
  left: 50%;
  bottom: calc(var(--safe-bottom) + 80px);
  max-width: min(500px, calc(100vw - 28px));
  transform: translate(-50%, 12px);
  border: 1px solid var(--world-line-strong);
  background: var(--world-panel-solid);
  padding: 10px 14px;
  opacity: 0;
  visibility: hidden;
  color: var(--world-copy);
  font-size: 0.75rem;
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
}

.world-toast[data-open="true"] {
  transform: translate(-50%, 0);
  opacity: 1;
  visibility: visible;
}

.world-qa-failure-overlay {
  position: absolute;
  z-index: 82;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgb(1 4 9 / 0.72);
  padding: 18px;
  pointer-events: auto;
  backdrop-filter: blur(4px);
}

/* A saved QA verdict should read as a real outcome, not just a changed count.
   The effect stays local to the reviewer and never blocks the World controls. */
.world-qa-result-effect {
  position: absolute;
  z-index: 81;
  inset: 0;
  display: grid;
  place-items: start center;
  overflow: hidden;
  padding: max(76px, calc(var(--safe-top) + 62px)) 18px 18px;
  pointer-events: none;
}

.world-qa-result-notice {
  display: grid;
  gap: 4px;
  width: min(480px, calc(100vw - 36px));
  border: 2px solid #3fb950;
  border-radius: 8px;
  background: rgb(8 22 16 / 0.96);
  box-shadow: 0 12px 42px rgb(0 0 0 / 0.52);
  padding: 12px 18px;
  color: #eafff0;
  text-align: center;
}

.world-qa-result-notice strong {
  color: #7ee787;
  font: 900 0.9rem "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.1em;
}

.world-qa-result-notice span {
  overflow: hidden;
  color: #c8e8d4;
  font-size: 0.75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-qa-result-effect--failed {
  border: 9px solid #ff3f46;
  box-shadow: inset 0 0 0 3px rgb(255 232 232 / 0.92), inset 0 0 42px rgb(154 0 11 / 0.64);
}

.world-qa-result-effect--failed .world-qa-result-notice {
  border-color: #ff5a61;
  background: rgb(43 11 15 / 0.97);
}

.world-qa-result-effect--failed .world-qa-result-notice strong {
  color: #ff9b9f;
}

.world-qa-pass-confetti {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.world-qa-pass-confetti i {
  position: absolute;
  top: 18%;
  left: var(--x);
  width: 7px;
  height: 12px;
  border-radius: 2px;
  background: hsl(var(--hue) 90% 62%);
  opacity: 0;
  transform: translateY(-18px) rotate(0deg);
  animation: world-qa-confetti 1.65s var(--delay) ease-out both;
}

@keyframes world-qa-confetti {
  10% { opacity: 1; }
  100% {
    opacity: 0;
    transform: translateY(280px) rotate(540deg);
  }
}

.world-qa-failure-dialog {
  display: grid;
  width: min(520px, 100%);
  max-height: calc(100dvh - 36px);
  gap: 14px;
  overflow-y: auto;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  background: var(--primer-canvas-default);
  padding: 18px;
  box-shadow: 0 16px 48px rgb(1 4 9 / 0.72);
  color: var(--primer-fg-default);
}

.world-qa-failure-dialog header,
.world-qa-failure-dialog footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.world-qa-failure-dialog header > div,
.world-qa-failure-dialog label {
  display: grid;
  gap: 6px;
}

.world-qa-failure-dialog header span,
.world-qa-failure-dialog small {
  color: var(--primer-fg-muted);
  font-size: 0.72rem;
}

.world-qa-failure-dialog p {
  margin: 0;
  color: var(--primer-fg-muted);
  font-size: 0.82rem;
}

.world-qa-failure-dialog textarea,
.world-qa-failure-dialog input[type="file"] {
  width: 100%;
  border: 1px solid var(--primer-border-default);
  background: var(--primer-canvas-subtle);
  padding: 8px;
  color: var(--primer-fg-default);
}

.world-qa-failure-dialog textarea:focus,
.world-qa-failure-dialog input[type="file"]:focus-visible {
  border-color: #8b949e;
  box-shadow: 0 0 0 3px var(--primer-accent-subtle);
  outline: none;
}

.world-qa-failure-dialog button {
  min-height: 32px;
  border: 1px solid var(--primer-border-default);
  background: var(--primer-control-bg);
  padding: 0 12px;
  color: var(--primer-fg-default);
  cursor: pointer;
}

.world-qa-failure-dialog button:hover,
.world-qa-failure-dialog button:focus-visible {
  border-color: #8b949e;
  background: var(--primer-control-hover);
  outline: none;
}

.world-qa-failure-dialog button[type="submit"] {
  border-color: #2ea043;
  background: #238636;
  color: #fff;
}

.world-qa-failure-preview {
  display: grid;
  gap: 7px;
}

.world-qa-failure-preview[hidden] {
  display: none;
}

.world-qa-failure-preview img {
  width: 100%;
  max-height: 220px;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  object-fit: contain;
  background: var(--primer-canvas-subtle);
}

.world-swing-panel {
  position: absolute;
  z-index: 30;
  left: 50%;
  bottom: calc(var(--safe-bottom) + 132px);
  transform: translateX(-50%);
  display: grid;
  gap: 8px;
  width: min(300px, calc(100vw - 28px));
  border: 1px solid var(--world-line-strong);
  background: var(--world-panel-solid);
  padding: 10px 14px;
  color: var(--world-muted);
  font-size: 0.7rem;
}

.world-swing-panel[hidden] {
  display: none;
}

.world-swing-panel > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.world-swing-panel strong,
.world-swing-panel output {
  color: var(--world-copy);
  font-family: "ForkMesh Mono", monospace;
}

.world-swing-panel input {
  width: 100%;
  accent-color: var(--world-mint-deep);
  cursor: pointer;
}

.world-swing-dismount {
  justify-self: end;
  border: 1px solid var(--world-line-strong);
  background: transparent;
  color: var(--world-copy);
  font: inherit;
  padding: 5px 12px;
  cursor: pointer;
}

.world-swing-dismount:hover {
  border-color: var(--world-mint-deep);
}

.world-hud .world-detail-backdrop {
  position: absolute;
  z-index: 19;
  inset: 0;
  border: 0;
  background: transparent;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 220ms ease, visibility 220ms ease;
  pointer-events: none;
}

.world-detail-backdrop[data-open="true"] {
  /* Desktop details are deliberately non-modal. The canvas remains bright and
     interactive everywhere the floating panel does not cover it. */
  opacity: 0;
  visibility: hidden;
}

.world-detail {
  --detail-color: var(--world-mint);
  position: absolute;
  z-index: 20;
  top: calc(var(--safe-top) + 58px);
  right: var(--safe-right);
  bottom: calc(var(--safe-bottom) + var(--world-diagnostics-height) + 12px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: var(--world-detail-width);
  overflow: hidden;
  border: 1px solid var(--world-line-strong);
  background: #081511;
  opacity: 0;
  visibility: hidden;
  transform: translateX(calc(100% + var(--safe-right) + 20px));
  transition:
    opacity 180ms ease,
    transform 280ms cubic-bezier(0.22, 1, 0.36, 1),
    visibility 280ms ease;
  pointer-events: none;
  box-shadow: -16px 18px 54px rgb(0 0 0 / 0.34);
  contain: layout paint;
}

.world-detail[data-open="true"] {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
  pointer-events: auto;
}

.fm-world:has(.world-detail[data-repository-review="true"]) {
  --world-detail-base-width: 1040px;
}

.fm-world:has(.world-detail[data-issue-workbench="true"]) {
  --world-detail-base-width: 920px;
}

.world-issue-workbench-header h2 {
  font-size: clamp(1.55rem, 3vw, 2.45rem);
  letter-spacing: -0.035em;
}

.world-issue-workbench-actions {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}

.world-issue-workbench-actions > a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--world-line);
  padding: 0 12px;
  color: var(--world-copy);
  font: 700 0.72rem/1 "ForkMesh Mono", ui-monospace, monospace;
  text-decoration: none;
  white-space: nowrap;
}

.world-issue-workbench-actions > a:hover,
.world-issue-workbench-actions > a:focus-visible {
  border-color: var(--world-mint);
  color: var(--world-mint);
  outline: none;
}

.world-detail-scroll.world-issue-workbench {
  min-height: 0;
  overflow: hidden;
  padding: 0;
  background: #fff;
}

.world-issue-workbench iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
}

/* Drag grip on the panel's left edge. It lives outside the panel because
   every detail renderer replaces the panel's innerHTML wholesale. */
.world-detail-resize {
  position: absolute;
  z-index: 21;
  top: calc(var(--safe-top) + 58px);
  right: calc(var(--safe-right) + var(--world-detail-width) - 7px);
  bottom: calc(var(--safe-bottom) + var(--world-diagnostics-height) + 12px);
  width: 14px;
  border: 0;
  background: transparent;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 180ms ease, visibility 180ms ease;
  cursor: ew-resize;
  touch-action: none;
  pointer-events: none;
}

.world-detail[data-open="true"] ~ .world-detail-resize {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.world-detail-resize::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 3px;
  height: 44px;
  transform: translate(-50%, -50%);
  background: var(--world-line-strong);
}

.world-detail-resize:hover::after,
.world-detail-resize:focus-visible::after,
.world-detail-resize[data-dragging="true"]::after {
  background: var(--world-mint);
  box-shadow: 0 0 18px var(--world-mint);
}

.world-detail-resize:focus-visible {
  outline: 1px solid var(--world-mint);
  outline-offset: 2px;
}

.world-detail-header {
  position: relative;
  display: grid;
  /* minmax(0, …) so a long unbreakable title cannot widen the header past the
     panel: an overflowing header pushes the close button out of view, and
     focusing it scrolls the whole panel sideways into blank space. */
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  border-bottom: 1px solid var(--world-line);
  padding: max(24px, var(--safe-top)) 24px 22px;
}

.world-detail-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 120px;
  height: 3px;
  background: var(--detail-color);
  box-shadow: 0 0 24px var(--detail-color);
}

.world-detail-header h2 {
  margin: 8px 0 0;
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: clamp(2.2rem, 7vw, 3.75rem);
  line-height: 0.9;
  letter-spacing: -0.055em;
  /* Table and repository names are single unbreakable tokens. */
  overflow-wrap: anywhere;
}

.world-detail[data-open-landmark="events"] .world-detail-header h2 {
  font-size: clamp(2.2rem, 5vw, 2.65rem);
  letter-spacing: -0.04em;
}

.world-detail-close {
  align-self: start;
  width: 38px;
  height: 38px;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: transparent;
  color: var(--world-copy);
  cursor: pointer;
}

.world-detail-close:hover,
.world-detail-close:focus-visible {
  border-color: var(--detail-color);
  color: var(--detail-color);
  outline: none;
}

.world-detail-scroll {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 24px 24px max(32px, var(--safe-bottom));
}

/* Database table browser: opened by clicking a bar on the System Capacity
   platform. The header row stays put while the counts scroll underneath. */
.world-capacity-tables {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
  overflow: hidden;
}

.world-capacity-summary {
  margin: 0;
  border-bottom: 1px solid var(--world-line);
  padding: 0 24px 14px;
  color: var(--world-muted);
  font-size: 0.8rem;
  line-height: 1.5;
}

.world-capacity-scroll {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0 24px max(24px, var(--safe-bottom));
}

.world-capacity-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.world-capacity-table th,
.world-capacity-table td {
  border-bottom: 1px solid var(--world-line);
  padding: 8px 6px;
  text-align: left;
  font-weight: 400;
}

.world-capacity-table .is-numeric {
  text-align: right;
  font-family: "ForkMesh Mono", ui-monospace, monospace;
}

.world-capacity-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  border-bottom: 1px solid var(--world-line-strong);
  background: #081511;
  padding: 0;
}

.world-capacity-table thead button {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 10px 6px;
  color: var(--world-muted);
  font: inherit;
  letter-spacing: 0.08em;
  text-align: inherit;
  text-transform: uppercase;
  cursor: pointer;
}

.world-capacity-table thead button:hover,
.world-capacity-table thead button:focus-visible {
  color: var(--detail-color);
  outline: none;
}

.world-capacity-table tbody th {
  word-break: break-all;
}

.world-capacity-table tbody tr[data-current="true"] {
  color: var(--detail-color);
}

/* Mastodon mini app: fixed profile summary with independently scrollable
   toots underneath, matching the kiosk beside the ForkMesh Office. */
.world-mastodon-app {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-height: 0;
  overflow: hidden;
}

.world-mastodon-profile {
  overflow-y: auto;
  overscroll-behavior: contain;
  max-height: 52%;
  border-bottom: 1px solid var(--world-line);
  padding: 0 24px 18px;
}

.world-mastodon-header {
  display: block;
  width: calc(100% + 48px);
  margin: 0 -24px;
  max-height: 110px;
  object-fit: cover;
}

.world-mastodon-identity {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
}

.world-mastodon-identity img {
  width: 52px;
  height: 52px;
  border: 1px solid var(--world-line-strong);
  object-fit: cover;
}

.world-mastodon-identity strong {
  display: block;
  font-size: 1.15rem;
}

.world-mastodon-identity span {
  color: var(--world-muted);
  font-size: 0.82rem;
  word-break: break-all;
}

.world-mastodon-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0 0;
}

.world-mastodon-stats div {
  border: 1px solid var(--world-line);
  padding: 8px 10px;
}

.world-mastodon-stats dt {
  color: var(--world-muted);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.world-mastodon-stats dd {
  margin: 4px 0 0;
  font-family: "ForkMesh Mono", ui-monospace, monospace;
  font-size: 1.05rem;
}

.world-mastodon-note {
  margin: 14px 0 0;
  color: var(--world-copy);
  font-size: 0.88rem;
  line-height: 1.5;
  white-space: pre-line;
}

.world-mastodon-fields {
  display: grid;
  gap: 8px;
  margin: 14px 0 0;
}

.world-mastodon-fields div {
  display: grid;
  grid-template-columns: minmax(72px, auto) 1fr;
  gap: 10px;
  border: 1px solid var(--world-line);
  padding: 8px 10px;
  font-size: 0.82rem;
}

.world-mastodon-fields div[data-verified="true"] {
  border-color: rgb(122 214 160 / 0.6);
}

.world-mastodon-fields dt {
  color: var(--world-muted);
}

.world-mastodon-fields dd {
  margin: 0;
  word-break: break-word;
}

.world-mastodon-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 16px;
}

.world-mastodon-links a {
  color: var(--detail-color);
}

.world-mastodon-links button {
  border: 1px solid var(--world-line);
  background: transparent;
  color: var(--world-copy);
  padding: 6px 12px;
  cursor: pointer;
}

.world-mastodon-links button:hover,
.world-mastodon-links button:focus-visible {
  border-color: var(--detail-color);
  color: var(--detail-color);
  outline: none;
}

.world-mastodon-toots {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
}

.world-mastodon-toots h3 {
  margin: 0;
  padding: 14px 24px 10px;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--world-muted);
}

.world-mastodon-toot-list {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0 24px max(28px, var(--safe-bottom));
  display: grid;
  gap: 14px;
  align-content: start;
}

.world-mastodon-toot {
  border: 1px solid var(--world-line);
  padding: 12px 14px;
}

.world-mastodon-toot header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
}

.world-mastodon-toot header img {
  width: 34px;
  height: 34px;
  object-fit: cover;
  border: 1px solid var(--world-line);
}

.world-mastodon-toot header strong {
  display: block;
  font-size: 0.88rem;
}

.world-mastodon-toot header span {
  color: var(--world-muted);
  font-size: 0.74rem;
  word-break: break-all;
}

.world-mastodon-toot time {
  color: var(--world-muted);
  font-size: 0.72rem;
  white-space: nowrap;
}

.world-mastodon-marker {
  margin: 10px 0 0;
  color: var(--world-muted);
  font-size: 0.76rem;
}

.world-mastodon-text {
  margin: 10px 0 0;
  font-size: 0.86rem;
  line-height: 1.5;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

.world-mastodon-media {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.world-mastodon-media img {
  width: 100%;
  max-height: 180px;
  object-fit: cover;
  border: 1px solid var(--world-line);
}

.world-mastodon-toot footer {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 12px;
  color: var(--world-muted);
  font-size: 0.76rem;
}

.world-mastodon-toot footer a {
  margin-left: auto;
  color: var(--detail-color);
}

.world-mastodon-replies {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
  border-top: 1px solid var(--world-line);
}

.world-mastodon-replies h3 {
  margin: 0;
  padding: 14px 24px 10px;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--world-muted);
}

.world-mastodon-reply-list {
  overflow-y: auto;
  overscroll-behavior: contain;
  max-height: 34vh;
  padding: 0 24px max(28px, var(--safe-bottom));
  display: grid;
  gap: 12px;
  align-content: start;
}

.world-mastodon-reply {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  border: 1px solid var(--world-line);
  padding: 10px 12px;
}

.world-mastodon-reply img,
.world-mastodon-reply-icon {
  width: 34px;
  height: 34px;
  object-fit: cover;
  border: 1px solid var(--world-line);
  display: grid;
  place-items: center;
  color: var(--world-muted);
}

.world-mastodon-reply header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}

.world-mastodon-reply header strong {
  font-size: 0.86rem;
}

.world-mastodon-reply header span,
.world-mastodon-reply time {
  color: var(--world-muted);
  font-size: 0.72rem;
  overflow-wrap: anywhere;
}

.world-mastodon-reply a {
  color: var(--detail-color);
  font-size: 0.76rem;
}

.world-mastodon-status {
  margin: 16px 0 0;
  color: var(--world-muted);
  font-size: 0.86rem;
}

.world-mastodon-profile .world-mastodon-status {
  margin-top: 18px;
}

.world-chat-backdrop {
  position: absolute;
  z-index: 31;
  inset: 0;
  border: 0;
  background: rgb(0 0 0 / 0.62);
  opacity: 0;
  visibility: hidden;
  transition: opacity 180ms ease, visibility 180ms ease;
  pointer-events: none;
}

.world-chat-backdrop[data-open="true"] {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.world-chat {
  position: absolute;
  z-index: 32;
  top: max(18px, var(--safe-top));
  /*
   * Keep the modal above the always-visible CHAT / DEBUG terminal strip.
   * This is especially important on short mobile visual viewports: otherwise
   * the iframe composer remains in the layout but is covered by the higher
   * z-index terminal summaries at the bottom of the World.
   */
  bottom: calc(
    var(--safe-bottom) + var(--world-diagnostics-height) + 8px
  );
  left: 50%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(960px, calc(100vw - 36px));
  overflow: hidden;
  border: 1px solid var(--world-line-strong);
  background: #081511;
  box-shadow: 0 30px 100px rgb(0 0 0 / 0.55);
  transform: translate(-50%, 18px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
  pointer-events: none;
}

.world-chat[data-open="true"] {
  transform: translate(-50%, 0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.world-chat-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--world-line);
  padding: 14px 18px;
}

.world-chat-heading h2 {
  margin: 3px 0 0;
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 1.65rem;
  letter-spacing: -0.04em;
}

.world-chat-heading span {
  display: block;
  margin-top: 3px;
  color: var(--world-muted);
  font-size: 0.64rem;
}

.world-chat-heading button {
  width: 38px;
  height: 38px;
  border: 1px solid var(--world-line);
  background: transparent;
  color: var(--world-copy);
  cursor: pointer;
  font-size: 1.1rem;
}

.world-chat-heading button:hover,
.world-chat-heading button:focus-visible {
  border-color: var(--world-mint);
  color: var(--world-mint);
  outline: none;
}

.world-chat-frame {
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
  background: #081511;
}

.world-office-chat {
  position: absolute;
  z-index: 32;
  top: max(68px, calc(var(--safe-top) + 54px));
  right: 0;
  bottom: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(420px, calc(100vw - 24px));
  min-width: 0;
  overflow: hidden;
  border-top: 1px solid var(--world-line-strong);
  border-left: 1px solid var(--world-line-strong);
  background: #081511;
  box-shadow: -22px 0 70px rgb(0 0 0 / 0.42);
  transform: translateX(100%);
  opacity: 0;
  visibility: hidden;
  transition: opacity 180ms ease, transform 220ms ease, visibility 220ms ease;
  pointer-events: none;
}

.world-office-chat[data-open="true"] {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.world-office-chat__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-width: 0;
  border-bottom: 1px solid var(--world-line);
  padding: 14px 18px;
}

.world-office-chat__heading > div {
  min-width: 0;
}

.world-office-chat__heading h2 {
  margin: 3px 0 0;
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 1.35rem;
  letter-spacing: -0.04em;
}

.world-office-chat__heading button {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border: 1px solid var(--world-line);
  background: transparent;
  color: var(--world-copy);
  cursor: pointer;
  font-size: 1.1rem;
}

.world-office-chat__heading button:hover,
.world-office-chat__heading button:focus-visible {
  border-color: var(--world-mint);
  outline: 2px solid var(--world-mint);
  outline-offset: 2px;
}

.world-office-chat__loading {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  margin: 0;
  color: var(--world-muted);
  transform: translate(-50%, -50%);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.68rem;
  text-align: center;
}

.world-office-chat__loading[hidden] {
  display: none;
}

.world-office-chat__frame {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  border: 0;
  background: #081511;
}

.world-account-backdrop {
  position: absolute;
  z-index: 33;
  inset: 0;
  border: 0;
  background: rgb(0 0 0 / 0.68);
  opacity: 0;
  visibility: hidden;
  transition: opacity 180ms ease, visibility 180ms ease;
  pointer-events: none;
}

.world-office-lobby,
.world-office-room,
.world-office-task-panel {
  position: absolute;
  z-index: 60;
  top: max(84px, calc(var(--safe-top) + 66px));
  left: 50%;
  display: grid;
  width: min(620px, calc(100vw - var(--safe-left) - var(--safe-right) - 32px));
  max-height: calc(100svh - var(--safe-top) - var(--safe-bottom) - 118px);
  min-width: 0;
  overflow: auto;
  border: 1px solid var(--world-line-strong);
  background: rgb(7 20 16 / 0.96);
  box-shadow: 0 28px 90px rgb(0 0 0 / 0.48);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 14px);
  transition: opacity 180ms ease, transform 220ms ease, visibility 220ms ease;
  pointer-events: none;
}

.world-office-task-panel {
  right: max(20px, var(--safe-right));
  left: auto;
  width: min(560px, calc(100vw - var(--safe-left) - var(--safe-right) - 40px));
  transform: translateY(14px);
}

.world-office-room {
  right: max(20px, var(--safe-right));
  left: auto;
  width: min(720px, calc(100vw - var(--safe-left) - var(--safe-right) - 40px));
  transform: translateY(14px);
}

.world-office-lobby[data-open="true"],
.world-office-room[data-open="true"],
.world-office-task-panel[data-open="true"] {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
  pointer-events: auto;
}

.world-office-room[data-open="true"],
.world-office-task-panel[data-open="true"] {
  transform: translateY(0);
}

.fm-world:has(.world-office-task-panel[data-open="true"])
  :is(.world-office-lobby, .world-office-room) {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.world-office-panel-heading {
  position: sticky;
  z-index: 3;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--world-line);
  background: rgb(7 20 16 / 0.98);
  padding: 18px 20px;
}

.world-office-panel-heading > div {
  min-width: 0;
}

.world-office-panel-heading h2 {
  margin: 3px 0 0;
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: clamp(1.45rem, 3vw, 2rem);
  letter-spacing: -0.045em;
}

.world-office-panel-heading > button {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border: 1px solid var(--world-line);
  background: transparent;
  color: var(--world-copy);
  cursor: pointer;
  font-size: 1.1rem;
}

.world-office-panel-intro {
  margin: 0;
  border-bottom: 1px solid var(--world-line);
  color: var(--world-muted);
  padding: 16px 20px;
  line-height: 1.5;
}

.world-office-room-board {
  display: grid;
  gap: 8px;
  padding: 12px;
}

.world-office-room-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-width: 0;
  border: 1px solid var(--world-line);
  background: rgb(255 255 255 / 0.025);
  color: var(--world-copy);
  padding: 14px 16px;
  cursor: pointer;
  text-align: left;
}

.world-office-room-card > span:first-child {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.world-office-room-card strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-office-room-card small {
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.world-office-room-card > span:last-child {
  border: 1px solid var(--world-mint);
  color: var(--world-mint);
  padding: 7px 10px;
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.66rem;
  text-transform: uppercase;
}

.world-office-room-card:hover,
.world-office-room-card:focus-visible,
.world-office-panel-heading button:focus-visible,
.world-office-seats button:focus-visible,
.world-office-panel-actions button:focus-visible,
.world-office-stand:focus-visible {
  border-color: var(--world-mint);
  outline: 2px solid var(--world-mint);
  outline-offset: 2px;
}

.world-office-room-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.8fr);
  min-width: 0;
}

.world-office-seat-panel,
.world-office-participant-panel {
  min-width: 0;
  padding: 18px 20px;
}

.world-office-participant-panel {
  border-left: 1px solid var(--world-line);
}

.world-office-seat-panel h3,
.world-office-participant-panel h3 {
  margin: 0 0 12px;
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.world-office-seats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.world-office-seats button,
.world-office-stand {
  min-height: 46px;
  border: 1px solid var(--world-line);
  background: rgb(255 255 255 / 0.035);
  color: var(--world-copy);
  cursor: pointer;
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.66rem;
}

.world-office-seats button[data-occupied="true"] {
  border-color: rgb(158 247 198 / 0.52);
  background: rgb(158 247 198 / 0.08);
}

.world-office-seats button[aria-pressed="true"] {
  border-color: var(--world-mint);
  background: var(--world-mint);
  color: var(--world-ink);
}

.world-office-seats button:disabled {
  cursor: not-allowed;
  opacity: 0.42;
}

.world-office-stand {
  width: 100%;
  margin-top: 8px;
  border-color: var(--world-mint);
  color: var(--world-mint);
}

.world-office-stand[hidden] {
  display: none;
}

.world-office-participants {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.world-office-participants li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid var(--world-line);
  padding: 8px 0;
}

.world-office-participants li > span:first-child {
  color: var(--world-mint);
}

.world-office-participants li > span:last-child {
  display: grid;
  min-width: 0;
}

.world-office-participants strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.84rem;
}

.world-office-participants small {
  color: var(--world-muted);
  font-size: 0.7rem;
}

.world-office-conversation {
  min-width: 0;
  border-top: 1px solid var(--world-line);
}

.world-office-conversation-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 20px;
}

.world-office-conversation-heading h3 {
  margin: 0;
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.world-office-conversation-heading span {
  color: var(--world-mint);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.58rem;
  text-transform: uppercase;
}

.world-office-transcript {
  display: grid;
  gap: 8px;
  max-height: min(22svh, 190px);
  min-height: 74px;
  margin: 0;
  overflow: auto;
  border-top: 1px solid var(--world-line);
  border-bottom: 1px solid var(--world-line);
  padding: 10px 20px;
  list-style: none;
}

.world-office-transcript li {
  display: grid;
  grid-template-columns: minmax(96px, 0.28fr) minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.world-office-transcript-meta {
  display: grid;
  min-width: 0;
}

.world-office-transcript-meta strong {
  overflow: hidden;
  color: var(--world-mint);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.72rem;
}

.world-office-transcript-meta time {
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.56rem;
}

.world-office-transcript-body {
  min-width: 0;
  color: var(--world-copy);
  font-size: 0.8rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.world-office-transcript-image {
  display: block;
  width: auto;
  max-width: min(220px, 100%);
  max-height: 130px;
  margin-top: 6px;
  border: 1px solid var(--world-line-strong);
  object-fit: contain;
}

.world-office-transcript-file {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  margin-top: 6px;
  border: 1px solid var(--world-line);
  color: var(--world-copy);
  padding: 7px 9px;
  text-decoration: none;
}

.world-office-transcript-file span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-office-composer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  min-width: 0;
  padding: 10px 12px 4px;
}

.world-office-attach,
.world-office-composer > button {
  display: grid;
  place-items: center;
  min-width: 42px;
  height: 42px;
  border: 1px solid var(--world-line);
  background: transparent;
  color: var(--world-copy);
  cursor: pointer;
}

.world-office-attach input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
}

.world-office-composer textarea {
  width: 100%;
  min-height: 42px;
  max-height: 112px;
  resize: vertical;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: rgb(255 255 255 / 0.035);
  color: var(--world-copy);
  padding: 10px 11px;
  font: inherit;
  line-height: 1.35;
}

.world-office-composer > button {
  border-color: var(--world-mint);
  background: var(--world-mint);
  color: var(--world-ink);
  padding: 0 13px;
  font-weight: 700;
}

.world-office-composer :disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.world-office-attachment-feedback {
  min-height: 17px;
  margin: 0;
  color: var(--world-muted);
  padding: 0 12px 7px 62px;
  font-size: 0.65rem;
}

.world-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.world-office-panel-status {
  min-height: 20px;
  margin: 0;
  border-top: 1px solid var(--world-line);
  color: var(--world-muted);
  padding: 10px 20px;
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.64rem;
}

.world-office-panel-status[data-tone="error"] {
  color: #ffb9a9;
}

.world-office-task-manager {
  border-bottom: 1px solid var(--world-line);
  padding: 16px 20px;
}

.world-office-task-manager[hidden] {
  display: none;
}

.world-office-task-manager h3 {
  margin: 0 0 10px;
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.world-office-task-manager form {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(140px, 0.8fr) auto;
  align-items: end;
  gap: 8px;
}

.world-office-task-manager label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--world-muted);
  font-size: 0.68rem;
}

.world-office-task-manager input,
.world-office-task-manager select,
.world-office-task-manager button,
.world-office-task-controls button,
.world-office-task-checkin button {
  min-height: 40px;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: rgb(255 255 255 / 0.035);
  color: var(--world-copy);
  padding: 0 10px;
  font: inherit;
}

.world-office-task-manager input,
.world-office-task-manager select {
  width: 100%;
  min-width: 0;
}

.world-office-task-manager select {
  color-scheme: dark;
  background: #071713;
  color: #effff8;
}

.world-office-task-manager select option {
  background: #071713;
  color: #effff8;
}

.world-office-task-manager button,
.world-office-task-controls button,
.world-office-task-checkin button {
  cursor: pointer;
}

.world-office-task-manager button,
.world-office-task-controls button {
  border-color: var(--world-mint);
  color: var(--world-mint);
}

.world-office-task-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 12px;
  list-style: none;
}

.world-office-task {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 14px;
  min-width: 0;
  border: 1px solid var(--world-line);
  background: rgb(255 255 255 / 0.025);
  padding: 12px;
}

.world-office-task[data-status="active"] {
  border-color: rgb(158 247 198 / 0.5);
  background: rgb(158 247 198 / 0.055);
}

.world-office-task[data-status="done"] {
  border-color: rgb(158 247 198 / 0.3);
  opacity: 0.74;
}

.world-office-task[data-status="done"] strong {
  text-decoration: none;
}

.world-office-task[data-kind="bid"] {
  border-color: rgb(210 153 34 / 0.48);
  background: rgb(210 153 34 / 0.06);
}

.world-office-task-bid-badge {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  margin-right: 7px;
  border: 1px solid rgb(210 153 34 / 0.7);
  border-radius: 999px;
  background: rgb(210 153 34 / 0.13);
  color: #e3b341;
  padding: 0 7px;
  font: 700 0.58rem/1 "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-office-task-priority {
  display: inline-flex;
  margin-left: 8px;
  padding: 2px 6px;
  border: 1px solid var(--borderColor-accent-emphasis, #1f6feb);
  border-radius: 999px;
  color: var(--fgColor-link, #58a6ff);
  font: 700 0.66rem/1.2 "ForkMesh Mono", ui-monospace, monospace;
  white-space: nowrap;
}

.world-office-task-details {
  margin: 0;
  color: var(--world-copy);
  font-size: 0.76rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.world-office-task-copy {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  min-width: 0;
}

.world-office-task-copy > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.world-office-task-copy strong {
  color: var(--world-copy);
  font-size: 0.9rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
  white-space: normal;
}

.world-office-task-copy small {
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.64rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

/* "How this ran" line under a bot-assigned task: which bot started and
   finished it, and the model, mode, and strength it used. Set back from the
   routing line above it so the run detail reads as a footnote, not a second
   heading. */
.world-office-task-copy small.world-office-task-agent-run {
  color: var(--world-muted);
  opacity: 0.82;
  font-size: 0.6rem;
}

.world-office-task-state {
  width: 8px;
  height: 8px;
  margin-top: 5px;
  border: 1px solid var(--world-muted);
  border-radius: 50%;
}

.world-office-task[data-status="active"] .world-office-task-state {
  border-color: var(--world-mint);
  border-width: 2px;
  border-top-color: transparent;
  background: transparent;
  box-shadow: 0 0 12px rgb(158 247 198 / 0.72);
  animation: world-office-task-spin 720ms linear infinite;
}

.world-office-task[data-status="done"] .world-office-task-state {
  border-color: var(--world-mint);
  background: var(--world-mint);
}

.world-office-task-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.world-office-task-progress-label {
  width: fit-content;
  border: 1px solid rgb(158 247 198 / 0.32);
  border-radius: 999px;
  background: rgb(158 247 198 / 0.08);
  color: var(--world-mint);
  padding: 3px 7px;
  font: 700 0.58rem/1 "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-office-task-completion,
.world-office-task-completion-editor {
  display: grid;
  gap: 6px;
  margin-top: 6px;
  border-left: 2px solid rgb(119 217 255 / 0.52);
  background: rgb(119 217 255 / 0.055);
  padding: 9px 10px;
}

.world-office-task-completion > span,
.world-office-task-completion-editor > span {
  color: #77d9ff;
  font: 700 0.58rem/1.3 "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-office-task-completion p {
  margin: 0;
  color: var(--world-copy);
  font-size: 0.75rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.world-office-task-completion-editor textarea {
  width: 100%;
  min-height: 72px;
  resize: vertical;
  border: 1px solid var(--world-line-strong);
  border-radius: 6px;
  background: #07120f;
  color: var(--world-copy);
  padding: 8px 9px;
  font: 0.74rem/1.45 "ForkMesh Favorit", sans-serif;
}

.world-office-task-completion-editor textarea:focus-visible {
  border-color: #77d9ff;
  box-shadow: 0 0 0 3px rgb(119 217 255 / 0.14);
  outline: none;
}

@keyframes world-office-task-spin {
  to {
    transform: rotate(360deg);
  }
}

.world-office-task-qa-actions {
  display: inline-flex;
  gap: 4px;
  padding: 2px;
  border: 1px solid var(--world-line);
  border-radius: 6px;
  background: rgb(255 255 255 / 0.025);
}

.world-office-task-qa-actions button {
  min-height: 28px;
  padding: 0 7px;
  border-color: transparent;
  font-size: 0.64rem;
}

.world-office-task-qa-pass[aria-pressed="true"] {
  border-color: rgb(46 160 67 / 0.7);
  background: rgb(46 160 67 / 0.18);
  color: #7ee787;
}

.world-office-task-qa-fail[aria-pressed="true"] {
  border-color: rgb(248 81 73 / 0.7);
  background: rgb(248 81 73 / 0.18);
  color: #ff7b72;
}

.world-office-task-qa-unsure[aria-pressed="true"] {
  border-color: rgb(210 153 34 / 0.7);
  background: rgb(210 153 34 / 0.18);
  color: #e3b341;
}

.world-office-task-controls time {
  min-width: 68px;
  color: var(--world-mint);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.76rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.world-office-task-controls button:disabled {
  cursor: wait;
  opacity: 0.45;
}

.world-office-task-controls .world-office-task-delete {
  border-color: #ff8f78;
  color: #ffb2a1;
}

.world-office-task-controls .world-office-task-return {
  border-color: var(--world-mint);
  color: var(--world-mint);
}

.world-office-task-empty {
  border: 1px dashed var(--world-line);
  color: var(--world-muted);
  padding: 22px;
  text-align: center;
}

.world-office-task-checkin {
  position: absolute;
  z-index: 64;
  right: max(20px, var(--safe-right));
  bottom: max(20px, var(--safe-bottom));
  display: grid;
  width: min(390px, calc(100vw - var(--safe-left) - var(--safe-right) - 32px));
  gap: 8px;
  border: 1px solid var(--world-mint);
  background: rgb(7 20 16 / 0.98);
  box-shadow: 0 24px 72px rgb(0 0 0 / 0.5);
  padding: 18px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 160ms ease, transform 180ms ease, visibility 180ms ease;
  pointer-events: none;
}

.world-office-task-checkin[data-open="true"] {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.world-office-task-checkin h2,
.world-office-task-checkin p {
  margin: 0;
}

.world-office-task-checkin h2 {
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 1.35rem;
}

.world-office-task-checkin > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 6px;
}

.world-office-task-checkin button:first-child {
  border-color: var(--world-mint);
  color: var(--world-mint);
}

.world-office-task-manager input:focus-visible,
.world-office-task-manager select:focus-visible,
.world-office-task-manager button:focus-visible,
.world-office-task-controls button:focus-visible,
.world-office-task-checkin button:focus-visible {
  border-color: var(--world-mint);
  outline: 2px solid var(--world-mint);
  outline-offset: 2px;
}

.world-office-panel-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  border-top: 1px solid var(--world-line);
  padding: 12px 20px;
}

.world-office-panel-actions button {
  min-height: 40px;
  border: 1px solid var(--world-line);
  background: transparent;
  color: var(--world-copy);
  padding: 0 12px;
  cursor: pointer;
}

.world-office-panel-actions button:last-child {
  border-color: var(--world-mint);
  color: var(--world-mint);
}

.world-office-bubble {
  position: absolute;
  z-index: 24;
  width: max-content;
  max-width: min(260px, calc(100vw - 32px));
  border: 1px solid rgb(158 247 198 / 0.62);
  border-radius: 12px 12px 12px 3px;
  background: rgb(7 20 16 / 0.96);
  box-shadow: 0 12px 36px rgb(0 0 0 / 0.32);
  color: var(--world-copy);
  padding: 9px 11px;
  transform: translate(-50%, -100%);
  font-size: 0.78rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
  pointer-events: none;
}

.fm-world:has(.world-office-lobby[data-open="true"]) .world-quick-dock,
.fm-world:has(.world-office-room[data-open="true"]) .world-quick-dock,
.fm-world:has(.world-office-task-panel[data-open="true"]) .world-quick-dock,
.fm-world:has(.world-office-chat[data-open="true"]) .world-quick-dock {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

forkmesh-world.world-office-active .world-quick-dock {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.world-detail-summary {
  margin: 0;
  color: var(--world-copy);
  font-size: 1rem;
  line-height: 1.55;
}

.world-account-backdrop[data-open="true"] {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.world-account {
  position: absolute;
  z-index: 34;
  top: max(18px, var(--safe-top));
  bottom: max(18px, var(--safe-bottom));
  left: 50%;
  width: min(520px, calc(100vw - 36px));
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--world-line-strong);
  background: #081511;
  padding: 18px;
  box-shadow: 0 30px 100px rgb(0 0 0 / 0.62);
  transform: translate(-50%, 18px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
  pointer-events: none;
}

.world-account[data-open="true"] {
  transform: translate(-50%, 0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.world-account-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--world-line);
  padding-bottom: 14px;
}

.world-account-heading h2 {
  margin: 3px 0 0;
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 1.8rem;
  letter-spacing: -0.04em;
}

.world-account-heading span {
  display: block;
  max-width: 420px;
  margin-top: 5px;
  color: var(--world-muted);
  font-size: 0.64rem;
  line-height: 1.45;
}

.world-account-heading > button {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border: 1px solid var(--world-line);
  background: transparent;
  color: var(--world-copy);
  cursor: pointer;
  font-size: 1.1rem;
}

.world-account-heading > button:hover,
.world-account-heading > button:focus-visible {
  border-color: var(--world-mint);
  color: var(--world-mint);
  outline: none;
}

.world-account-tabs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 16px;
  border: 1px solid var(--world-line);
}

.world-account-tabs button {
  min-height: 40px;
  border: 0;
  background: #0a1915;
  color: var(--world-muted);
  cursor: pointer;
  font: 0.66rem "ForkMesh Mono", monospace;
}

.world-account-tabs button + button {
  border-left: 1px solid var(--world-line);
}

.world-account-tabs button[aria-selected="true"],
.world-account-tabs button:hover,
.world-account-tabs button:focus-visible {
  background: #12332a;
  color: var(--world-mint);
  outline: none;
}

.world-account-form {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.world-account-form[hidden] {
  display: none;
}

.world-account-form > label:not(.world-account-consent) {
  display: grid;
  gap: 6px;
}

.world-account-form label > span {
  color: var(--world-muted);
  font: 0.6rem "ForkMesh Mono", monospace;
}

.world-account-form label small {
  color: #6f8c7e;
  font: inherit;
}

.world-account-form input[type="email"],
.world-account-form input[type="password"],
.world-account-form input[type="text"] {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: #0b1c17;
  padding: 0 11px;
  color: var(--world-copy);
  font: 0.76rem "ForkMesh Mono", monospace;
}

.world-account-form input:focus-visible {
  border-color: var(--world-mint);
  outline: 1px solid var(--world-mint);
}

.world-account-consent {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  line-height: 1.5;
}

.world-account-consent input {
  margin-top: 2px;
  accent-color: var(--world-mint-deep);
}

.world-account-consent a {
  color: var(--world-mint);
}

.world-account-form > button,
.world-account-signed-in > button {
  min-height: 42px;
  border: 1px solid var(--world-mint);
  border-radius: 0;
  background: #174d3b;
  color: #e8fff5;
  cursor: pointer;
  font: 0.68rem "ForkMesh Mono", monospace;
}

.world-account-form > button:disabled {
  cursor: wait;
  opacity: 0.6;
}

.world-account-status {
  min-height: 1.25em;
  margin: 12px 0 0;
  color: var(--world-muted);
  font-size: 0.68rem;
  line-height: 1.45;
}

.world-account-status[data-state="error"] {
  color: #ffb1aa;
}

.world-account-status[data-state="success"] {
  color: var(--world-mint);
}

.world-account-verification,
.world-account-signed-in {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  border: 1px solid var(--world-line);
  background: #0b1c17;
  padding: 16px;
}

.world-account-verification[hidden] {
  display: none;
}

.world-account-verification strong,
.world-account-signed-in strong {
  color: var(--world-mint);
  font: 1.1rem "ForkMesh Favorit", sans-serif;
}

.world-account-verification p,
.world-account-signed-in p,
.world-account-signed-in span,
.world-account-privacy {
  margin: 0;
  color: var(--world-muted);
  font-size: 0.68rem;
  line-height: 1.55;
}

.world-account-verification span {
  color: var(--world-copy);
  font-family: "ForkMesh Mono", monospace;
}

.world-account-privacy {
  margin-top: 16px;
  border-top: 1px solid var(--world-line);
  padding-top: 12px;
}

.world-detail-summary {
  margin: 0;
  color: var(--world-copy);
  font-size: 1rem;
  line-height: 1.55;
}

.world-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 18px;
  border: 1px solid var(--world-line);
  padding: 6px 9px;
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-status-row {
  flex-wrap: wrap;
  width: fit-content;
}

.world-status-pill::before {
  content: "";
  width: 7px;
  height: 7px;
  background: var(--detail-color);
}

.world-status-pill-danger {
  border-color: #ff6b6b;
  color: #ff8f8f;
}

.world-status-pill-danger::before {
  background: #ff4d4d;
}

.world-truth-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  margin-top: 24px;
  background: var(--world-line);
  border: 1px solid var(--world-line);
}

.world-truth-block {
  background: #0a1815;
  padding: 15px;
}

.world-truth-block h3 {
  margin: 0 0 7px;
  color: var(--detail-color);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.58rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.world-truth-block p {
  margin: 0;
  color: var(--world-muted);
  font-size: 0.78rem;
  line-height: 1.55;
}

.world-detail-list {
  display: grid;
  gap: 11px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.world-detail-list li {
  display: grid;
  grid-template-columns: 12px 1fr;
  gap: 10px;
  color: var(--world-muted);
  font-size: 0.78rem;
  line-height: 1.5;
}

.world-detail-list li::before {
  content: "↳";
  color: var(--detail-color);
  font-family: "ForkMesh Mono", monospace;
}

.world-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 24px;
}

.world-detail .world-primary-action {
  background: var(--detail-color);
}

.world-danger-zone {
  margin-top: 22px;
  border: 1px solid #ff745f;
  background: #28120f;
  padding: 14px;
}

.world-danger-zone h3 {
  margin: 0 0 6px;
  color: #ff9a89;
  font-size: 0.9rem;
}

.world-danger-zone p,
.world-danger-zone label,
.world-danger-zone [data-world-admin-delete-status] {
  color: #dca79f;
  font-size: 0.72rem;
  line-height: 1.5;
}

.world-danger-zone form,
.world-danger-zone label {
  display: grid;
  gap: 8px;
}

.world-danger-zone form {
  margin-top: 12px;
}

.world-danger-zone input {
  border: 1px solid #965347;
  background: #0d1110;
  padding: 8px 10px;
  color: var(--world-copy);
  font: 0.72rem "ForkMesh Mono", monospace;
}

.world-node-delete-progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin: 4px 0;
  padding: 0;
  list-style: none;
}

.world-node-delete-progress li {
  display: grid;
  justify-items: center;
  gap: 4px;
  border-top: 2px solid #59332d;
  padding-top: 7px;
  color: #8f7773;
  font: 0.62rem "ForkMesh Mono", monospace;
  text-align: center;
}

.world-node-delete-progress b {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.world-node-delete-progress li[data-state="active"] {
  border-color: #ff9a89;
  color: #ffb0a3;
}

.world-node-delete-progress li[data-state="complete"] {
  border-color: #55c68b;
  color: #75d9a5;
}

.world-node-delete-progress li[data-state="error"] {
  border-color: #ff4f4f;
  color: #ff7777;
}

.world-danger-action {
  min-height: 36px;
  border: 1px solid #ff745f;
  background: #8e2d22;
  padding: 0 12px;
  color: #fff;
  cursor: pointer;
  font-weight: 700;
}

.world-danger-action:hover,
.world-danger-action:focus-visible {
  background: #b3392b;
  outline: 2px solid #ff9a89;
  outline-offset: 2px;
}

.world-repositories-panel {
  margin-top: 20px;
  border-top: 1px solid var(--world-line);
}

.world-repo-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  border-bottom: 1px solid var(--world-line);
  padding: 12px 0;
  color: inherit;
  text-decoration: none;
}

.world-repo-row strong,
.world-repo-row span {
  display: block;
}

.world-repo-row strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.78rem;
}

.world-repo-row span {
  margin-top: 4px;
  color: var(--world-muted);
  font-size: 0.66rem;
}

.world-repo-state {
  align-self: center;
  border: 1px solid var(--world-line);
  padding: 4px 6px;
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.5rem;
  text-transform: uppercase;
}

.world-repo-actions {
  grid-column: 1 / -1;
  display: flex !important;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 0 !important;
}

.world-repo-actions button,
.world-repo-actions a,
.world-repo-explorer header button,
.world-home-card button {
  min-height: 30px;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: #0d211b;
  padding: 0 9px;
  color: var(--world-copy);
  cursor: pointer;
  font-size: 0.62rem;
  text-decoration: none;
}

.world-repo-actions a {
  display: inline-flex;
  align-items: center;
}

.world-repo-actions button:hover,
.world-repo-actions a:hover,
.world-repo-actions button:focus-visible,
.world-repo-actions a:focus-visible,
.world-repo-explorer header button:hover,
.world-repo-explorer header button:focus-visible,
.world-home-card button:hover,
.world-home-card button:focus-visible {
  border-color: var(--detail-color);
  color: var(--detail-color);
  outline: none;
}

.world-feature-card,
.world-repo-explorer {
  margin-top: 20px;
  border: 1px solid var(--world-line);
  background: #091a15;
  padding: 14px;
}

.world-feature-card > h3,
.world-workshop-results h3 {
  margin: 0 0 12px;
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 1.02rem;
}

.world-orientation-list {
  display: grid;
  gap: 1px;
  margin: 0;
  padding: 0;
  background: var(--world-line);
  list-style: none;
  counter-reset: orientation;
}

.world-orientation-list li {
  counter-increment: orientation;
  display: grid;
  grid-template-columns: 27px 1fr;
  gap: 3px 9px;
  background: #0c211a;
  padding: 10px;
}

.world-orientation-list li::before {
  content: counter(orientation, decimal-leading-zero);
  grid-row: 1 / 3;
  color: var(--detail-color);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.55rem;
}

.world-orientation-list strong,
.world-orientation-list span {
  font-size: 0.7rem;
}

.world-orientation-list span {
  color: var(--world-muted);
  line-height: 1.4;
}

.world-notice {
  display: grid;
  gap: 5px;
  margin-top: 14px;
  border-left: 2px solid var(--world-sun);
  background: rgb(247 201 107 / 0.08);
  padding: 11px 12px;
}

.world-notice-safe {
  border-left-color: var(--world-mint);
  background: rgb(158 247 198 / 0.07);
}

.world-notice strong {
  color: var(--world-copy);
  font-size: 0.72rem;
}

.world-notice span {
  color: var(--world-muted);
  font-size: 0.68rem;
  line-height: 1.48;
}

.world-finance-grid,
.world-repo-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--world-line);
}

.world-finance-grid > div,
.world-repo-summary > span,
.world-repo-summary > button {
  display: grid;
  align-content: start;
  gap: 4px;
  min-width: 0;
  background: #0c211a;
  padding: 10px;
}

.world-finance-grid span,
.world-repo-summary {
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.5rem;
  text-transform: uppercase;
}

.world-repo-summary > button {
  border: 0;
  color: var(--world-muted);
  cursor: pointer;
  font: inherit;
  text-align: left;
  text-transform: uppercase;
}

.world-repo-summary > button:hover,
.world-repo-summary > button:focus-visible {
  position: relative;
  z-index: 1;
  background: #12332a;
  color: var(--detail-color);
  outline: 1px solid var(--detail-color);
}

.world-finance-grid strong,
.world-repo-summary strong {
  overflow: hidden;
  color: var(--world-copy);
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 0.78rem;
  text-overflow: ellipsis;
}

.world-technical-list {
  display: grid;
  gap: 0;
  margin: 14px 0 0;
}

.world-technical-list > div {
  display: grid;
  grid-template-columns: minmax(104px, 0.34fr) 1fr;
  gap: 10px;
  border-top: 1px solid var(--world-line);
  padding: 9px 0;
}

.world-technical-list dt,
.world-technical-list dd {
  margin: 0;
  font-size: 0.65rem;
  line-height: 1.45;
}

.world-technical-list dt {
  color: var(--detail-color);
  font-family: "ForkMesh Mono", monospace;
  text-transform: uppercase;
}

.world-technical-list dd {
  color: var(--world-muted);
}

.world-reward-form,
.world-contribution-intent,
.world-pending-rewards,
.world-pending-rewards article {
  display: grid;
  gap: 9px;
}

.world-reward-form {
  grid-template-columns: minmax(110px, 0.7fr) minmax(190px, 1.3fr);
  margin-bottom: 14px;
}

.world-reward-form label,
.world-contribution-intent label,
.world-pending-rewards label {
  display: grid;
  gap: 5px;
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.55rem;
  text-transform: uppercase;
}

.world-reward-form input,
.world-reward-form select,
.world-contribution-intent input,
.world-pending-rewards input {
  min-width: 0;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: #071611;
  padding: 9px;
  color: var(--world-copy);
  font: 0.68rem "ForkMesh Mono", monospace;
}

.world-reward-form button,
.world-contribution-intent button,
.world-pending-rewards button,
.world-contribution-intent .world-primary-action {
  min-height: 34px;
  border: 1px solid var(--detail-color);
  border-radius: 0;
  background: #0d211b;
  padding: 8px 10px;
  color: var(--detail-color);
  cursor: pointer;
  font-size: 0.64rem;
  text-align: center;
  text-decoration: none;
}

.world-reward-form > button {
  grid-column: 1 / -1;
}

.world-reward-form button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.world-contribution-intent,
.world-pending-rewards article {
  border: 1px solid var(--world-line);
  background: #0c211a;
  padding: 11px;
}

.world-contribution-intent > span,
.world-contribution-intent > small,
.world-pending-rewards article > span {
  color: var(--world-muted);
  font-size: 0.61rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.world-technical-list a,
.world-event-list a {
  color: var(--detail-color);
}

.world-break {
  overflow-wrap: anywhere;
}

.world-empty-state,
.world-panel-footnote {
  margin: 12px 0 0;
  color: var(--world-muted);
  font-size: 0.66rem;
  line-height: 1.5;
}

.world-building-grid,
.world-social-grid,
.world-region-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.world-building-card,
.world-social-grid article,
.world-region-grid article {
  border: 1px solid var(--world-line);
  background: #0c211a;
  padding: 10px;
}

.world-building-card {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 9px;
}

.world-building-logo {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  background: var(--detail-color);
  color: #07110f !important;
  font-family: "ForkMesh Favorit", sans-serif;
}

.world-building-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: var(--panel);
}

.world-building-card strong,
.world-building-card span,
.world-social-grid strong,
.world-social-grid span,
.world-region-grid strong,
.world-region-grid span {
  display: block;
  font-size: 0.7rem;
}

.world-building-card div > span,
.world-social-grid article > span,
.world-region-grid article > span {
  margin-top: 3px;
  color: var(--detail-color);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.5rem;
  text-transform: uppercase;
}

.world-building-card ul {
  grid-column: 1 / -1;
  margin: 5px 0 0;
  padding: 0;
  list-style: none;
}

.world-building-card li {
  display: flex;
  justify-content: space-between;
  gap: 7px;
  border-top: 1px solid var(--world-line);
  padding: 6px 0;
}

.world-building-card li span,
.world-building-card li em {
  color: var(--world-muted);
  font-size: 0.56rem;
  font-style: normal;
}

.world-social-grid article > span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin: 0 0 8px;
  border-radius: 50%;
  background: var(--detail-color);
  color: #07110f;
}

.world-social-grid p,
.world-region-grid p {
  margin: 6px 0 0;
  color: var(--world-muted);
  font-size: 0.6rem;
  line-height: 1.45;
}

.world-instance-list {
  display: grid;
  gap: 7px;
}

.world-instance-list article {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 9px;
  border: 1px solid var(--world-line);
  padding: 9px;
}

.world-instance-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  overflow: hidden;
  border-radius: 50%;
  background: var(--detail-color);
  color: #07110f;
  font-family: "ForkMesh Favorit", sans-serif;
}

.world-instance-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.world-instance-list strong,
.world-instance-list span,
.world-instance-list small {
  display: block;
  font-size: 0.66rem;
}

.world-instance-list div > span {
  margin-top: 2px;
  color: var(--detail-color);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.48rem;
}

.world-instance-list p {
  margin: 5px 0 0;
  color: var(--world-muted);
  font-size: 0.58rem;
}

.world-instance-list small {
  margin-top: 4px;
  color: #71887c;
  font-size: 0.5rem;
}

.world-instance-list a {
  grid-column: 2;
  color: var(--detail-color);
  font-size: 0.58rem;
}

.world-clipboard {
  border-top: 4px solid var(--detail-color);
  background: #e5f3eb;
  color: #102119;
}

.world-clipboard .world-technical-list > div {
  border-color: rgb(10 35 25 / 0.16);
}

.world-clipboard .world-technical-list dd,
.world-clipboard .world-panel-footnote {
  color: #476155;
}

.world-clipboard .world-notice {
  background: rgb(255 142 120 / 0.13);
}

.world-clipboard .world-notice strong {
  color: #102119;
}

.world-clipboard .world-notice span {
  color: #476155;
}

.world-clipboard-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.world-clipboard-head > div {
  display: grid;
  gap: 4px;
  border: 1px solid rgb(10 35 25 / 0.16);
  padding: 9px;
}

.world-clipboard-head span {
  color: #476155;
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.5rem;
}

.world-clipboard-head strong {
  overflow: hidden;
  font-size: 0.7rem;
  text-overflow: ellipsis;
}

.world-event-list {
  display: grid;
  gap: 7px;
  margin-top: 12px;
}

.world-event-list article,
.world-event-list > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 8px;
  border: 1px solid var(--world-line);
  background: #0c211a;
  padding: 10px;
}

.world-event-list article > span,
.world-event-list article > em {
  color: var(--detail-color);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.5rem;
  font-style: normal;
  text-transform: uppercase;
}

.world-event-list article strong {
  grid-column: 1 / -1;
  font-size: 0.72rem;
}

.world-event-list time,
.world-event-list > div span {
  color: var(--world-muted);
  font-size: 0.58rem;
}

.world-notification-list article[data-unread="true"] {
  border-color: var(--world-sun);
  box-shadow: inset 3px 0 0 var(--world-sun);
}

.world-event-list article p {
  grid-column: 1 / -1;
  margin: 2px 0;
  color: var(--world-copy);
  font-size: 0.65rem;
  line-height: 1.45;
}

.world-notification-unread {
  color: var(--world-sun) !important;
}

.world-home-card {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: 10px;
}

.world-home-door {
  position: relative;
  width: 42px;
  height: 54px;
  border: 3px solid #516b5e;
  background: #213b30;
}

.world-home-door::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 5px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--detail-color);
}

.world-home-door[data-state="open"] {
  transform: perspective(80px) rotateY(-32deg);
  transform-origin: left;
}

.world-home-door[data-state="closed"] {
  filter: grayscale(1);
}

.world-home-card strong,
.world-home-card span {
  display: block;
  font-size: 0.7rem;
}

.world-home-card span {
  margin-top: 4px;
  color: var(--world-muted);
  font-size: 0.6rem;
}

.world-neighbor-list {
  display: grid;
  gap: 7px;
}

.world-neighbor-list article {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 9px;
  border: 1px solid var(--world-line);
  background: rgb(7 21 16 / 0.72);
  padding: 8px;
}

.world-neighbor-list article > span {
  color: var(--detail-color);
  font-size: 1.1rem;
}

.world-neighbor-list strong,
.world-neighbor-list small {
  display: block;
}

.world-neighbor-list strong {
  font-size: 0.65rem;
}

.world-neighbor-list small {
  margin-top: 2px;
  color: var(--world-muted);
  font-size: 0.52rem;
}

.world-neighbor-list button,
.world-neighbor-list a,
.world-region-grid button {
  border: 1px solid var(--world-line);
  background: #102b22;
  padding: 6px 8px;
  color: var(--world-copy);
  font: 600 0.52rem "ForkMesh Mono", monospace;
  text-decoration: none;
}

.world-neighbor-list button:disabled {
  opacity: 0.48;
}

.world-office-card {
  display: grid;
  gap: 3px;
  border-top: 1px solid var(--world-line);
  margin-top: 9px;
  padding-top: 9px;
}

.world-office-card small {
  color: var(--world-muted);
  font-size: 0.52rem;
}

.world-follower-orbit {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 7px;
}

.world-follower-orbit > span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--detail-color);
  border-radius: 50%;
  background: #102b22;
  color: var(--world-copy);
  font-size: 0.55rem;
}

.world-follower-orbit img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.world-workshop-form,
.world-filter-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.world-workshop-form label,
.world-filter-grid label,
.world-field {
  display: grid;
  gap: 5px;
}

.world-workshop-form label span,
.world-filter-grid label span,
.world-field span {
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.52rem;
  text-transform: uppercase;
}

.world-workshop-form select,
.world-workshop-form input,
.world-filter-grid select,
.world-filter-grid input,
.world-field select,
.world-field input {
  width: 100%;
  min-height: 36px;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: #0d211b;
  padding: 0 8px;
  color: var(--world-copy);
  font-size: 0.65rem;
}

.world-workshop-form .world-primary-action {
  grid-column: 1 / -1;
}

.world-workshop-results {
  margin-top: 14px;
  border-top: 1px solid var(--world-line);
  padding-top: 14px;
}

.world-workshop-session,
.world-model-use-sites {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}

.world-model-use-sites article {
  display: grid;
  gap: 5px;
  border: 1px solid var(--world-line);
  background: #0c211a;
  padding: 9px;
  color: var(--world-muted);
  font-size: 0.58rem;
}

.world-model-use-sites article > strong {
  color: var(--detail-color);
  font-size: 0.68rem;
}

.world-model-use-sites ul {
  margin: 2px 0 0;
  padding-left: 18px;
}

.world-security-triage {
  margin-top: 14px;
  border-top: 1px solid var(--world-line);
  padding-top: 12px;
}

.world-model-graph {
  position: relative;
  display: flex;
  min-height: 128px;
  flex-wrap: wrap;
  align-content: center;
  justify-content: center;
  gap: 5px;
  overflow: hidden;
  border: 1px solid var(--world-line);
  background:
    radial-gradient(circle at center, rgb(115 240 173 / 0.15), transparent 56%),
    #071510;
  padding: 16px;
}

.world-model-graph::before,
.world-model-graph::after {
  content: "";
  position: absolute;
  width: 80%;
  height: 1px;
  background: rgb(115 240 173 / 0.25);
  transform: rotate(16deg);
}

.world-model-graph::after {
  transform: rotate(-18deg);
}

.world-model-graph span {
  position: relative;
  z-index: 1;
  border: 1px solid var(--detail-color);
  background: #0d211b;
  padding: 5px;
  color: var(--world-copy);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.48rem;
}

.world-model-graph span strong,
.world-model-graph span small {
  display: block;
}

.world-model-graph span small {
  margin-top: 3px;
  color: var(--world-muted);
  font-size: 0.42rem;
  text-transform: uppercase;
}

.world-file-reference-list {
  color: var(--world-muted);
  font-size: 0.62rem;
}

.world-repo-explorer {
  padding: 0;
}

.world-repo-explorer > header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--world-line);
  padding: 11px;
}

.world-repo-explorer header span,
.world-repo-explorer header strong {
  display: block;
}

.world-repo-explorer header span {
  color: var(--detail-color);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.5rem;
}

.world-repo-explorer header strong {
  margin-top: 4px;
  overflow: hidden;
  font-size: 0.72rem;
  text-overflow: ellipsis;
}

.world-repo-map-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 6px;
}

.world-repo-map-actions .world-repo-star {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.world-repo-map-actions .world-repo-star[aria-pressed="true"] {
  border-color: var(--world-sun);
  color: var(--world-sun);
}

.world-repo-map-actions .world-repo-star strong {
  min-width: 1.4em;
  margin: 0;
  color: currentcolor;
  text-align: center;
}

.world-repo-map-actions .world-repo-star:disabled {
  cursor: wait;
  opacity: 0.65;
}

.world-repo-summary {
  grid-template-columns: repeat(5, 1fr);
}

.world-pull-list-panel,
.world-pull-review {
  min-width: 0;
}

.world-pull-panel-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--world-line);
  padding: 11px;
}

.world-pull-panel-heading > button {
  min-height: 32px;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: #0d211b;
  padding: 0 10px;
  color: var(--world-copy);
  cursor: pointer;
  font: 0.58rem "ForkMesh Mono", monospace;
}

.world-pull-panel-heading > button:hover,
.world-pull-panel-heading > button:focus-visible {
  border-color: var(--detail-color);
  color: var(--detail-color);
  outline: none;
}

.world-pull-panel-heading span,
.world-pull-panel-heading h3,
.world-pull-panel-heading small {
  display: block;
  min-width: 0;
}

.world-pull-panel-heading span {
  color: var(--detail-color);
  font: 600 0.5rem "ForkMesh Mono", monospace;
}

.world-pull-panel-heading h3 {
  margin: 3px 0;
  overflow: hidden;
  font: 0.82rem "ForkMesh Favorit", sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-pull-panel-heading small {
  color: var(--world-muted);
  font: 0.5rem "ForkMesh Mono", monospace;
}

.world-pull-pin {
  margin: 0;
  border-bottom: 1px solid var(--world-line);
  background: rgb(119 217 255 / 0.05);
  padding: 9px 11px;
  color: var(--world-muted);
  font: 0.52rem/1.5 "ForkMesh Mono", monospace;
  overflow-wrap: anywhere;
}

.world-pull-pin code {
  color: var(--detail-color);
}

.world-pull-records {
  display: grid;
  gap: 7px;
  padding: 11px;
}

.world-pull-records > button,
.world-pull-record-unavailable {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: #0c211a;
  padding: 10px;
  color: var(--world-copy);
  cursor: pointer;
  text-align: left;
}

.world-pull-record-unavailable {
  opacity: 0.72;
}

.world-pull-records > button:hover,
.world-pull-records > button:focus-visible {
  border-color: var(--detail-color);
  background: #12332a;
  outline: none;
}

.world-pull-records strong,
.world-pull-records small {
  display: block;
}

.world-pull-records strong {
  overflow: hidden;
  font-size: 0.66rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-pull-records small {
  margin-top: 4px;
  color: var(--world-muted);
  font: 0.49rem "ForkMesh Mono", monospace;
}

.world-pull-records em {
  border: 1px solid var(--world-line);
  padding: 4px 6px;
  color: var(--world-muted);
  font: normal 0.48rem "ForkMesh Mono", monospace;
  text-transform: uppercase;
}

.world-pull-records em[data-pull-state="open"] {
  border-color: rgb(158 247 198 / 0.45);
  color: var(--world-mint);
}

.world-pull-records em[data-pull-state="merged"] {
  border-color: rgb(213 182 255 / 0.45);
  color: #d5b6ff;
}

.world-pull-review-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  border-bottom: 1px solid var(--world-line);
  padding: 12px;
}

.world-pull-review-summary > div:first-child strong,
.world-pull-review-summary > div:first-child span {
  display: block;
}

.world-pull-review-summary > div:first-child strong {
  font-size: 0.78rem;
}

.world-pull-review-summary > div:first-child span {
  margin-top: 4px;
  color: var(--world-muted);
  font: 0.52rem "ForkMesh Mono", monospace;
}

.world-pull-review-summary > div:last-child {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

.world-pull-review-summary > div:last-child > span {
  border: 1px solid var(--world-line);
  background: #0c211a;
  padding: 5px 7px;
  color: var(--world-muted);
  font: 0.48rem "ForkMesh Mono", monospace;
}

.world-pull-review-summary > div:last-child strong {
  color: var(--world-copy);
}

.world-pull-description {
  max-height: 110px;
  margin: 0;
  overflow: auto;
  border-bottom: 1px solid var(--world-line);
  padding: 10px 12px;
  color: var(--world-muted);
  font-size: 0.62rem;
  line-height: 1.5;
  white-space: pre-wrap;
}

.world-pull-review-layout {
  display: grid;
  grid-template-columns: minmax(190px, 0.26fr) minmax(0, 1fr);
  height: min(62vh, 700px);
  min-height: 340px;
  border-top: 1px solid var(--world-line);
  border-bottom: 1px solid var(--world-line);
}

.world-pull-file-tree,
.world-pull-diff {
  min-width: 0;
  overflow: auto;
  overscroll-behavior: contain;
}

.world-pull-file-tree {
  border-right: 1px solid var(--world-line);
  background: #071510;
  padding: 7px 0;
}

.world-pull-file-tree ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.world-pull-tree-directory > span {
  display: block;
  padding: 6px 8px 3px
    calc(8px + var(--pull-tree-depth, 0) * 10px);
  color: var(--world-muted);
  font: 0.5rem "ForkMesh Mono", monospace;
}

.world-pull-file-tree button {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto 14px;
  align-items: center;
  gap: 5px;
  width: 100%;
  border: 0;
  border-left: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  padding: 6px 7px 6px
    calc(8px + var(--pull-tree-depth, 0) * 10px);
  color: var(--world-copy);
  cursor: pointer;
  text-align: left;
}

.world-pull-file-tree button:hover,
.world-pull-file-tree button:focus-visible {
  border-left-color: var(--detail-color);
  background: #12332a;
  outline: none;
}

.world-pull-file-tree button[data-viewed="true"] {
  color: var(--world-muted);
}

.world-pull-file-tree button > span {
  color: var(--detail-color);
}

.world-pull-file-tree button strong {
  overflow: hidden;
  font: 0.51rem "ForkMesh Mono", monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-pull-file-tree button small,
.world-pull-file-tree button em {
  color: var(--world-muted);
  font: normal 0.43rem "ForkMesh Mono", monospace;
  white-space: nowrap;
}

.world-pull-file-tree button[data-viewed="true"] em {
  color: var(--world-mint);
}

.world-pull-diff {
  position: relative;
  background: #06110e;
}

.world-pull-diff:focus-visible {
  outline: 1px solid var(--detail-color);
  outline-offset: -1px;
}

.world-pull-diff-file {
  position: relative;
  min-width: 620px;
  border-bottom: 1px solid var(--world-line-strong);
  scroll-margin-top: 38px;
}

.world-pull-diff-file:focus {
  outline: 1px solid var(--detail-color);
  outline-offset: -1px;
}

.world-pull-diff-file[data-viewed="true"] > header::after {
  color: var(--world-mint);
  content: "VIEWED ✓";
  font: 0.45rem "ForkMesh Mono", monospace;
}

.world-pull-diff-file > header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--world-line);
  background: #0b211a;
  padding: 8px 10px;
}

.world-pull-diff-file > header strong {
  overflow: hidden;
  font: 0.54rem "ForkMesh Mono", monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-pull-diff-file > header span {
  color: var(--world-muted);
  font: 0.45rem "ForkMesh Mono", monospace;
  white-space: nowrap;
}

.world-pull-diff-table {
  min-width: max-content;
}

.world-pull-diff-row {
  display: grid;
  grid-template-columns: 48px 48px minmax(520px, 1fr);
  min-height: 20px;
  color: #c7d8d0;
  font: 0.5rem/1.45 "ForkMesh Mono", monospace;
}

.world-pull-diff-row > span {
  border-right: 1px solid rgb(82 125 109 / 0.18);
  padding: 3px 6px;
  color: #6f9384;
  text-align: right;
  user-select: none;
}

.world-pull-diff-row code {
  padding: 3px 8px;
  color: inherit;
  font: inherit;
  white-space: pre;
}

.world-pull-diff-row code b {
  display: inline-block;
  width: 12px;
  color: currentColor;
  font-weight: 400;
  user-select: none;
}

.world-pull-diff-row.is-add {
  background: rgb(61 160 105 / 0.12);
  color: #b9f5d2;
}

.world-pull-diff-row.is-delete {
  background: rgb(203 89 89 / 0.12);
  color: #f4b2b2;
}

.world-pull-diff-row.is-hunk {
  background: rgb(119 217 255 / 0.1);
  color: #9edfff;
}

.world-pull-binary {
  margin: 0;
  padding: 22px 12px;
  color: var(--world-muted);
  font: 0.52rem "ForkMesh Mono", monospace;
}

.world-pull-file-end {
  display: block;
  width: 1px;
  height: 1px;
}

.world-pull-merge-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid rgb(158 247 198 / 0.42);
  background: rgb(35 107 77 / 0.18);
  padding: 11px;
}

.world-pull-merge-panel > div,
.world-pull-merge-panel span,
.world-pull-merge-panel strong,
.world-pull-merge-panel small {
  display: block;
  min-width: 0;
}

.world-pull-merge-panel span {
  color: var(--world-mint);
  font: 600 0.48rem "ForkMesh Mono", monospace;
}

.world-pull-merge-panel strong {
  margin-top: 3px;
  font-size: 0.68rem;
}

.world-pull-merge-panel small {
  margin-top: 4px;
  color: var(--world-muted);
  font: 0.5rem/1.45 "ForkMesh Mono", monospace;
}

.world-pull-merge-panel > button {
  min-height: 40px;
  border: 1px solid var(--world-mint);
  border-radius: 0;
  background: #173c2e;
  padding: 7px 11px;
  color: var(--world-mint);
  cursor: pointer;
  font: 600 0.54rem "ForkMesh Mono", monospace;
}

.world-pull-merge-panel > button:hover,
.world-pull-merge-panel > button:focus-visible {
  background: #22533f;
  outline: 2px solid var(--detail-color);
  outline-offset: 2px;
}

.world-pull-merge-panel > button:disabled {
  cursor: wait;
  opacity: 0.7;
}

.world-pull-merge-panel[data-world-pull-merge-state="conflict"],
.world-pull-merge-panel[data-world-pull-merge-state="stale"],
.world-pull-merge-panel[data-world-pull-merge-state="forbidden"],
.world-pull-merge-panel[data-world-pull-merge-state="unauthenticated"],
.world-pull-merge-panel[data-world-pull-merge-state="failed"] {
  border-color: rgb(255 190 118 / 0.5);
  background: rgb(107 66 35 / 0.2);
}

.world-pull-review > .world-panel-footnote,
.world-pull-list-panel > .world-panel-footnote {
  padding: 0 11px 11px;
}

.world-repo-entities {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  border-bottom: 1px solid var(--world-line);
  padding: 9px;
}

.world-repo-entities > span,
.world-repo-entities > button {
  display: grid;
  min-width: 118px;
  gap: 2px;
  border: 1px solid rgb(119 217 255 / 0.32);
  background: #091e1a;
  color: inherit;
  text-align: left;
  padding: 7px;
}

.world-repo-entities > button {
  cursor: pointer;
}

.world-repo-entities > button:hover,
.world-repo-entities > button[aria-selected="true"] {
  border-color: var(--detail-color);
  background: #12332a;
}

.world-repo-entities small,
.world-repo-entities strong,
.world-repo-entities em {
  display: block;
}

.world-repo-entities small {
  color: var(--detail-color);
  font: 600 0.45rem "ForkMesh Mono", monospace;
  text-transform: uppercase;
}

.world-repo-entities strong {
  font-size: 0.56rem;
}

.world-repo-entities em {
  color: var(--world-muted);
  font-size: 0.48rem;
  font-style: normal;
}

.world-filter-panel {
  border-bottom: 1px solid var(--world-line);
  padding: 10px;
}

.world-filter-panel summary {
  color: var(--world-muted);
  cursor: pointer;
  font-size: 0.65rem;
}

.world-filter-grid {
  margin-top: 10px;
}

.world-filter-grid select:disabled {
  opacity: 0.5;
}

.world-code-map {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-height: 320px;
  gap: 8px;
  overflow: hidden;
  background:
    radial-gradient(ellipse at center, transparent 0 23%, rgb(119 217 255 / 0.15) 24% 24.5%, transparent 25% 43%, rgb(119 217 255 / 0.12) 44% 44.5%, transparent 45%),
    #071510;
  padding: 22px 12px;
  perspective: 580px;
}

.world-code-map::before {
  position: absolute;
  inset: 8%;
  border: 1px solid rgb(119 217 255 / 0.12);
  border-radius: 50%;
  background:
    repeating-conic-gradient(
      from 15deg,
      transparent 0deg 21deg,
      rgb(119 217 255 / 0.11) 22deg 22.6deg
    );
  content: "";
  pointer-events: none;
  transform: perspective(540px) rotateX(58deg);
}

.world-code-node {
  position: relative;
  z-index: 1;
  display: grid;
  min-width: 0;
  min-height: 68px;
  place-content: center;
  place-items: center;
  align-self: center;
  border: 1px solid rgb(119 217 255 / 0.38);
  border-radius: 0;
  background: rgb(9 30 29 / 0.88);
  padding: 7px;
  color: var(--world-copy);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transform:
    rotateY(calc((var(--node-depth) - 2) * 4deg))
    translateZ(calc(var(--node-depth) * 4px))
    scale(var(--node-scale));
  transform-origin: center;
}

.world-code-node:hover,
.world-code-node:focus-visible {
  z-index: 3;
  border-color: var(--detail-color);
  outline: none;
  transform: translateZ(24px) scale(calc(var(--node-scale) * 1.04));
}

.world-code-node.is-active {
  animation: world-code-activity 1.8s ease-in-out infinite;
}

.world-code-node.is-redundant {
  box-shadow: inset 0 0 0 2px rgb(247 201 107 / 0.46);
}

.world-code-node.is-sensitive {
  border-style: dashed;
  filter: saturate(0.72);
}

.world-code-node--database-model > span {
  color: #d5b6ff;
}

.world-code-node--service > span,
.world-code-node--api > span {
  color: #9ef7c6;
}

.world-code-node--package > span {
  color: #f7c96b;
}

@keyframes world-code-activity {
  50% {
    box-shadow: 0 0 18px rgb(119 217 255 / 0.32);
  }
}

.world-code-node[hidden] {
  display: none;
}

.world-code-node > span {
  color: var(--detail-color);
  font-size: 1rem;
}

.world-code-node strong,
.world-code-node small {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.world-code-node strong {
  font-size: 0.54rem;
  white-space: nowrap;
}

.world-code-node small {
  margin-top: 3px;
  color: var(--world-muted);
  font-size: 0.43rem;
}

.world-repo-explorer > .world-panel-footnote {
  padding: 0 11px 11px;
}

.world-media-room {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  border-top: 1px solid var(--world-line);
  padding-top: 14px;
}

.world-media-add {
  display: grid;
  grid-template-columns: 1fr 1.5fr auto;
  gap: 7px;
}

.world-media-add input {
  min-width: 0;
  min-height: 36px;
  border: 1px solid var(--world-line);
  background: #0d211b;
  padding: 0 8px;
  color: var(--world-copy);
  font-size: 0.6rem;
}

.world-media-add button,
.world-media-queue button {
  border: 1px solid var(--world-line);
  background: #102b22;
  color: var(--world-copy);
  font: 600 0.52rem "ForkMesh Mono", monospace;
}

.world-media-queue {
  display: grid;
  gap: 6px;
}

.world-media-queue article {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--world-line);
  padding: 8px;
}

.world-media-queue strong,
.world-media-queue small {
  display: block;
}

.world-media-queue small {
  margin-top: 2px;
  color: var(--world-muted);
  font-size: 0.5rem;
}

.world-media-queue a {
  color: var(--detail-color);
  font-size: 0.53rem;
}

.world-field {
  margin-bottom: 9px;
}

.world-settings {
  position: absolute;
  z-index: 21;
  top: var(--safe-top);
  right: var(--safe-right);
  width: min(
    var(--world-settings-user-width, 360px),
    calc(100vw - var(--safe-left) - var(--safe-right) - 28px)
  );
  max-height: calc(100svh - var(--safe-top) - var(--safe-bottom));
  overflow-y: auto;
  border: 1px solid var(--world-line-strong);
  background: #081511;
  padding: 18px;
  transform: translateY(-12px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
  pointer-events: auto;
}

.world-settings[data-open="true"] {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

.world-settings-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
}

.world-settings h2 {
  margin: 4px 0 0;
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 1.8rem;
  letter-spacing: -0.04em;
}

.world-settings-close {
  border: 0;
  background: transparent;
  color: var(--world-muted);
  cursor: pointer;
  font-size: 1.1rem;
}

.world-account-access {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 18px;
  border: 1px solid var(--world-line);
  background: rgb(255 255 255 / 0.035);
  padding: 12px;
}

.world-account-access div {
  display: grid;
  gap: 4px;
}

.world-account-access strong {
  color: var(--world-copy);
  font-size: 0.8rem;
}

.world-account-access span {
  color: var(--world-muted);
  font-size: 0.68rem;
}

.world-account-access button {
  flex: 0 0 auto;
  border: 1px solid var(--world-mint);
  background: transparent;
  color: var(--world-mint);
  padding: 8px 10px;
  cursor: pointer;
  font: 700 0.62rem/1 "ForkMesh Mono", monospace;
  text-transform: uppercase;
}

.world-settings-tabs {
  display: grid;
  /* Five tabs for administrators, four for everyone else: let the strip
     decide its own column count and wrap instead of hard-coding three. */
  grid-template-columns: repeat(auto-fit, minmax(84px, 1fr));
  margin-top: 16px;
  border: 1px solid var(--world-line);
}

.world-settings-tabs button {
  min-height: 38px;
  border: 0;
  background: #0a1915;
  color: var(--world-muted);
  cursor: pointer;
  font: 0.62rem "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-settings-tabs button + button {
  border-left: 1px solid var(--world-line);
}

.world-settings-tabs button[aria-selected="true"],
.world-settings-tabs button:hover,
.world-settings-tabs button:focus-visible {
  background: #12332a;
  color: var(--world-mint);
  outline: none;
}

.world-settings-pane[hidden] {
  display: none;
}

/* Debug tab: the same graded one-second readouts as the floating pill, laid
   out with room to read, plus ranked improvement suggestions. */
.world-debug-live {
  display: grid;
  gap: 6px;
  margin: 10px 0 0;
  font-size: 0.72rem;
}

.world-debug-live > div {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 8px;
  border-top: 1px solid var(--world-line);
  padding-top: 6px;
}

.world-debug-live dt {
  color: var(--world-mint);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.world-debug-live dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--world-copy);
}

.world-debug-suggestions {
  display: grid;
  gap: 8px;
  margin: 8px 0 0;
  padding: 0 0 0 18px;
  font-size: 0.74rem;
  line-height: 1.5;
  color: var(--world-copy);
}

.world-debug-suggestions li::marker {
  color: var(--world-muted);
}

.world-debug-suggestions li[data-level="good"] {
  color: var(--world-mint);
}

.world-debug-suggestions li[data-level="caution"] {
  color: var(--world-sun);
}

.world-debug-suggestions li[data-level="high"] {
  color: var(--world-danger);
}

/* The frame-history sparkline is plain text so it survives screenshots and
   copy/paste; block glyphs need the mono face and a little tracking. */
.world-debug-live .world-debug-sparkline {
  display: inline-block;
  vertical-align: bottom;
  font-family: "ForkMesh Mono", monospace;
  letter-spacing: 1px;
  color: var(--world-mint);
}

.world-debug-actions {
  margin-top: 10px;
}

.world-debug-actions button {
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid var(--world-line);
  background: #0a1915;
  color: var(--world-copy);
  cursor: pointer;
  font: 0.62rem "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-debug-actions button:hover,
.world-debug-actions button:focus-visible {
  background: #12332a;
  color: var(--world-mint);
  outline: none;
}

/* Store tab: one card per purchasable element, showing its price and declared
   network reads before purchase and its parameter form once owned. */
.world-store-list {
  display: grid;
  gap: 10px;
  margin: 10px 0;
}

.world-store-card {
  display: grid;
  gap: 6px;
  padding: 10px;
  border: 1px solid var(--world-line);
  background: #0a1915;
}

.world-store-card header {
  display: flex;
  align-items: baseline;
  gap: 8px;
  justify-content: space-between;
}

.world-store-card[data-owned="true"] {
  border-color: var(--world-mint);
}

.world-store-card button {
  min-height: 34px;
  border: 1px solid var(--world-line);
  background: #0d241d;
  color: var(--world-copy);
  cursor: pointer;
  font: 0.62rem "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-store-card button:hover,
.world-store-card button:focus-visible {
  background: #12332a;
  color: var(--world-mint);
  outline: none;
}

.world-store-params {
  display: grid;
  gap: 6px;
}

.world-store-buy {
  display: grid;
  gap: 6px;
}

.world-store-address code {
  display: block;
  padding: 6px;
  border: 1px solid var(--world-line);
  background: #061310;
  font: 0.6rem "ForkMesh Mono", monospace;
  word-break: break-all;
}

.world-store-param {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 8px;
  font: 0.62rem "ForkMesh Mono", monospace;
  letter-spacing: 0.04em;
}

.world-store-param input[type="text"],
.world-store-param input[type="number"],
.world-store-param select {
  min-height: 30px;
  border: 1px solid var(--world-line);
  background: #061310;
  color: var(--world-copy);
  font: inherit;
  padding: 0 6px;
}

/* Elements tab: one single-line row per registered world element, in a flat
   table sorted by clicking its column headers. */
.world-element-master {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 10px 0;
}

.world-element-master button {
  min-height: 34px;
  border: 1px solid var(--world-line);
  background: #0a1915;
  color: var(--world-copy);
  cursor: pointer;
  font: 0.62rem "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-element-master button:hover,
.world-element-master button:focus-visible {
  background: #12332a;
  color: var(--world-mint);
  outline: none;
}

/* A fieldset sizes itself to min-content by default, which lets the table push
   the whole panel sideways instead of scrolling inside it. */
.world-settings-pane[data-world-settings-pane="elements"] .world-setting-group {
  min-width: 0;
}

.world-element-table {
  margin-top: 10px;
  /* Names carry the tree once rows open into their pieces, so a narrow panel
     scrolls sideways rather than squeezing every label down to nothing. */
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
}

.world-element-head,
.world-element-row,
.world-element-subhead,
.world-element-part {
  display: grid;
  grid-template-columns: 22px minmax(140px, 1fr) 96px 50px 54px 44px;
  align-items: center;
  gap: 8px;
  min-width: max-content;
}

.world-element-head {
  border-bottom: 1px solid var(--world-line);
}

.world-element-head button {
  padding: 4px 0;
  border: 0;
  background: none;
  color: var(--world-muted);
  cursor: pointer;
  text-align: left;
  font: 700 0.6rem "ForkMesh Mono", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.world-element-head button:hover,
.world-element-head button:focus-visible {
  color: var(--world-mint);
  outline: none;
}

.world-element-head button[aria-sort="ascending"],
.world-element-head button[aria-sort="descending"] {
  color: var(--world-copy);
}

.world-element-row {
  min-height: 26px;
  border-top: 1px solid var(--world-line);
  padding: 2px 0;
}

.world-element-row:first-of-type {
  border-top: 0;
}

.world-element-row input {
  width: 16px;
  height: 16px;
  accent-color: var(--world-mint);
  cursor: pointer;
}

/* The name is the drill-down control: the checkbox switches the element off,
   clicking the name opens what is inside it. */
.world-element-name {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  overflow: hidden;
  margin: 0;
  padding: 2px 0 2px calc(var(--world-part-depth, 0) * 12px);
  border: 0;
  background: none;
  text-align: left;
}

button.world-element-name {
  cursor: pointer;
}

button.world-element-name:hover strong,
button.world-element-name:focus-visible strong {
  color: var(--world-mint);
}

button.world-element-name:focus-visible {
  outline: 1px solid var(--world-mint);
  outline-offset: 1px;
}

.world-element-twisty {
  flex: 0 0 auto;
  width: 9px;
  color: var(--world-muted);
  font-size: 0.6rem;
  line-height: 1;
}

button.world-element-name:hover .world-element-twisty {
  color: var(--world-mint);
}

.world-element-row strong,
.world-element-part strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--world-copy);
  font-size: 0.74rem;
  font-weight: 600;
}

.world-element-group {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--world-muted);
  font-size: 0.62rem;
}

.world-element-count,
.world-element-head button:nth-of-type(n + 3) {
  text-align: right;
}

.world-element-count {
  color: var(--world-muted);
  font: 0.62rem "ForkMesh Mono", monospace;
  white-space: nowrap;
}

.world-element-row[data-enabled="false"] strong {
  color: var(--world-muted);
  text-decoration: line-through;
}

.world-element-row[data-enabled="true"][data-expanded="true"] strong {
  color: var(--world-mint);
}

/* Everything below an opened element: its own sortable header, then one row
   per piece, tinted and indented so the tree reads at a glance. */
.world-element-subhead,
.world-element-part {
  border-top: 1px solid var(--world-line);
  background: rgba(10, 25, 21, 0.55);
}

.world-element-subhead {
  min-height: 22px;
}

.world-element-subhead button {
  padding: 3px 0;
  border: 0;
  background: none;
  color: var(--world-muted);
  cursor: pointer;
  text-align: left;
  font: 700 0.54rem "ForkMesh Mono", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.world-element-subhead button:first-of-type {
  padding-left: calc(var(--world-part-depth, 0) * 12px);
}

.world-element-subhead button:nth-of-type(n + 3) {
  text-align: right;
}

.world-element-subhead button:hover,
.world-element-subhead button:focus-visible {
  color: var(--world-mint);
  outline: none;
}

.world-element-subhead button[aria-sort="ascending"],
.world-element-subhead button[aria-sort="descending"] {
  color: var(--world-copy);
}

.world-element-part {
  min-height: 22px;
  padding: 1px 0;
}

.world-element-part strong {
  font-size: 0.68rem;
  font-weight: 500;
}

.world-element-part[data-visible="false"] strong {
  color: var(--world-muted);
  font-style: italic;
}

.world-element-part-note {
  margin: 0;
  padding: 3px 0 3px calc(var(--world-part-depth, 0) * 12px + 30px);
  border-top: 1px solid var(--world-line);
  background: rgba(10, 25, 21, 0.55);
  color: var(--world-muted);
  font-size: 0.6rem;
}

/* Right-click delete menu. It is positioned over the canvas at the pointer,
   above the label layer and below the HUD panels, and is only ever built for
   an administrator or a visitor running the debug panel. */
.world-object-menu {
  position: absolute;
  z-index: 7;
  min-width: 210px;
  max-width: min(320px, 80vw);
  padding: 6px;
  border: 1px solid var(--world-line);
  background: var(--world-panel-solid);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.5);
}

.world-object-menu[hidden] {
  display: none;
}

.world-object-menu-head {
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 4px 6px 6px;
  border-bottom: 1px solid var(--world-line);
}

.world-object-menu-head strong {
  font-size: 0.72rem;
}

.world-object-menu-head span {
  color: var(--world-muted);
  font: 0.58rem "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-object-menu button {
  display: grid;
  gap: 1px;
  width: 100%;
  padding: 6px;
  border: 0;
  background: none;
  color: var(--world-copy);
  cursor: pointer;
  text-align: left;
  font: inherit;
}

.world-object-menu button small {
  color: var(--world-muted);
  font: 0.58rem "ForkMesh Mono", monospace;
}

.world-object-menu button:hover,
.world-object-menu button:focus-visible {
  background: #12332a;
  color: var(--world-mint);
  outline: none;
}

.world-object-menu-note {
  margin: 0;
  padding: 4px 6px;
  color: var(--world-muted);
  font-size: 0.58rem;
}

/* Restore list for everything deleted so far, in the Elements tab. */
.world-deleted-list {
  display: grid;
  gap: 2px;
  max-height: 200px;
  margin-top: 8px;
  overflow-y: auto;
}

.world-deleted-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 3px 0;
  border-top: 1px solid var(--world-line);
}

.world-deleted-name {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.world-deleted-name strong {
  overflow: hidden;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-deleted-name small {
  color: var(--world-muted);
  font: 0.56rem "ForkMesh Mono", monospace;
}

.world-deleted-row button {
  min-height: 26px;
  padding: 0 10px;
  border: 1px solid var(--world-line);
  background: #0a1915;
  color: var(--world-copy);
  cursor: pointer;
  font: 0.58rem "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-deleted-row button:hover,
.world-deleted-row button:focus-visible {
  background: #12332a;
  color: var(--world-mint);
  outline: none;
}

.world-object-table {
  margin-top: 10px;
  max-height: 320px;
  /* Object names are the point of this table, so a narrow panel scrolls
     sideways rather than crushing every label down to an ellipsis. */
  overflow: auto;
}

.world-object-head,
.world-object-row {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) 96px 62px 54px 44px;
  align-items: center;
  gap: 8px;
}

.world-object-head {
  position: sticky;
  top: 0;
  z-index: 1;
  border-bottom: 1px solid var(--world-line);
  background: var(--world-panel-solid);
}

.world-object-head button {
  padding: 4px 0;
  border: 0;
  background: none;
  color: var(--world-muted);
  cursor: pointer;
  text-align: left;
  font: 700 0.6rem "ForkMesh Mono", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.world-object-head button:hover,
.world-object-head button:focus-visible {
  color: var(--world-mint);
  outline: none;
}

.world-object-head button[aria-sort="ascending"],
.world-object-head button[aria-sort="descending"] {
  color: var(--world-copy);
}

.world-object-head button:nth-of-type(n + 4) {
  text-align: right;
}

.world-object-row {
  min-height: 24px;
  border-top: 1px solid var(--world-line);
  padding: 2px 0;
}

.world-object-row:first-of-type {
  border-top: 0;
}

.world-object-row strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--world-copy);
  font-size: 0.72rem;
  font-weight: 600;
}

.world-object-group {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--world-muted);
  font-size: 0.62rem;
}

.world-object-row[data-visible="false"] strong {
  color: var(--world-muted);
  font-style: italic;
}

.world-work-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 10px;
}

.world-work-quick-entry {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(160px, 1fr) minmax(130px, 0.8fr);
  gap: 8px;
  margin: 0 0 14px;
  padding: 12px;
  border: 1px solid var(--world-line);
  border-radius: 6px;
  background: #0d1117;
}

.world-work-quick-entry[hidden] {
  display: none;
}

.world-work-quick-entry label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--world-muted);
  font: 700 0.56rem/1.25 "ForkMesh Mono", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-work-quick-entry input,
.world-work-quick-entry select,
.world-work-quick-entry button {
  min-width: 0;
  min-height: 34px;
  border: 1px solid #30363d;
  border-radius: 6px;
  background: #0d1117;
  color: #f0f6fc;
  padding: 7px 10px;
  font: 600 0.72rem/1.2 system-ui, sans-serif;
}

.world-work-quick-entry input:focus,
.world-work-quick-entry select:focus {
  border-color: #58a6ff;
  box-shadow: 0 0 0 3px rgb(88 166 255 / 0.2);
  outline: none;
}

.world-work-quick-entry button {
  align-self: end;
  border-color: rgb(46 160 67 / 0.75);
  background: #238636;
  cursor: pointer;
}

.world-work-quick-title,
.world-work-quick-repository {
  grid-column: span 2;
}

.world-work-quick-entry p {
  grid-column: 1 / -1;
  min-height: 1em;
  margin: 0;
  color: var(--world-muted);
  font-size: 0.7rem;
}

@media (max-width: 720px) {
  .world-work-quick-entry {
    grid-template-columns: 1fr;
  }

  .world-work-quick-title,
  .world-work-quick-repository {
    grid-column: auto;
  }
}

.world-work-stats div {
  display: grid;
  gap: 2px;
  border: 1px solid var(--world-line);
  background: rgb(255 255 255 / 0.025);
  padding: 10px;
}

.world-work-stats strong {
  color: var(--world-mint);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.95rem;
  font-variant-numeric: tabular-nums;
}

.world-work-stats span {
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.55rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.world-settings-pane .world-office-task-list {
  padding: 0;
}

.world-work-issue-heading {
  margin: 18px 0 8px;
  color: var(--world-muted);
  font: 700 0.58rem/1.35 "ForkMesh Mono", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.world-work-issue[data-status="issue"] {
  border-color: rgb(119 217 255 / 0.28);
}

.world-work-issue[data-status="issue"] .world-office-task-state {
  background: #77d9ff;
  box-shadow: 0 0 10px rgb(119 217 255 / 0.45);
}

.world-work-issue-link {
  flex: 0 0 auto;
  border: 1px solid var(--world-line-strong);
  color: var(--world-mint);
  padding: 8px 10px;
  font: 700 0.58rem/1 "ForkMesh Mono", monospace;
  text-decoration: none;
  text-transform: uppercase;
}

.world-work-issue-link:hover,
.world-work-issue-link:focus-visible {
  border-color: var(--world-mint);
  outline: none;
}

.world-session-list {
  display: grid;
  gap: 8px;
  margin: 0 0 10px;
  padding: 0;
  list-style: none;
}

.world-session {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--world-line);
  background: rgb(255 255 255 / 0.025);
  padding: 12px;
}

.world-session[data-current="true"] {
  border-color: rgb(158 247 198 / 0.5);
  background: rgb(158 247 198 / 0.055);
}

.world-session-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.world-session-copy strong {
  overflow: hidden;
  color: var(--world-copy);
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-session-copy small {
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.6rem;
  word-break: break-all;
}

.world-session button,
.world-session-actions button {
  border: 1px solid var(--world-line-strong);
  background: transparent;
  color: var(--world-copy);
  padding: 8px 10px;
  cursor: pointer;
  font: 700 0.58rem/1 "ForkMesh Mono", monospace;
  text-transform: uppercase;
}

.world-session button:hover,
.world-session-actions button:hover {
  border-color: var(--world-mint);
  color: var(--world-mint);
}

.world-session-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

.world-session-actions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.world-session-empty {
  border: 1px dashed var(--world-line);
  color: var(--world-muted);
  padding: 20px;
  text-align: center;
}

.world-setting-group {
  margin: 20px 0 0;
  padding: 0;
  border: 0;
}

.world-setting-group legend {
  margin-bottom: 10px;
  color: var(--world-muted);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.58rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.world-theme-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}

.world-theme-option {
  min-height: 36px;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: #0b1c17;
  color: var(--world-muted);
  cursor: pointer;
  font-size: 0.7rem;
}

.world-theme-option:hover,
.world-theme-option:focus-visible,
.world-theme-option[aria-pressed="true"] {
  border-color: var(--world-mint);
  color: var(--world-copy);
  outline: none;
}

.world-daylight-control {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--world-line);
  color: var(--world-muted);
  font-size: 0.7rem;
}

.world-daylight-control > strong {
  color: var(--world-copy);
  font-family: "ForkMesh Mono", monospace;
}

.world-daylight-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}

.world-daylight-options button {
  display: grid;
  min-height: 44px;
  place-items: center;
  gap: 2px;
  border: 1px solid var(--world-line);
  background: #0b1c17;
  color: var(--world-muted);
  cursor: pointer;
  font: 700 0.62rem/1.15 "ForkMesh Mono", monospace;
}

.world-daylight-options button span {
  color: var(--world-copy);
  font-size: 1.05rem;
}

.world-daylight-options button:hover,
.world-daylight-options button:focus-visible,
.world-daylight-options button[aria-pressed="true"] {
  border-color: var(--world-mint);
  background: rgb(158 247 198 / 0.1);
  color: var(--world-copy);
  outline: none;
}

.world-daylight-control small {
  color: #80978b;
  line-height: 1.45;
}

.world-outfit-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}

.world-outfit-option {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: #0b1c17;
  color: var(--world-muted);
  cursor: pointer;
  font-size: 0.7rem;
}

.world-outfit-option::before {
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--outfit-color, var(--world-line));
  flex: none;
}

.world-outfit-option:hover,
.world-outfit-option:focus-visible,
.world-outfit-option[aria-pressed="true"] {
  border-color: var(--world-mint);
  color: var(--world-copy);
  outline: none;
}

.world-outfit-option:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.world-upgrade-link {
  color: #f2793a;
}

.world-light-control {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--world-line);
  color: var(--world-muted);
  font-size: 0.7rem;
}

.world-light-control > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.world-light-control strong,
.world-light-control output {
  color: var(--world-copy);
  font-family: "ForkMesh Mono", monospace;
}

.world-light-control input {
  width: 100%;
  accent-color: var(--world-mint-deep);
  cursor: pointer;
}

.world-light-control small {
  color: #80978b;
  line-height: 1.45;
}

.world-status-editor {
  display: grid;
  gap: 9px;
  margin: 12px 0;
  border: 1px solid var(--world-line);
  background: rgb(13 33 27 / 0.52);
  padding: 10px;
}

.world-status-fields {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: 8px;
}

.world-status-fields .world-field {
  margin: 0;
}

.world-status-fields .world-field small {
  color: #80978b;
  font-size: 0.46rem;
}

.world-emoji-picker {
  border-top: 1px solid var(--world-line);
  padding-top: 8px;
}

.world-emoji-picker summary {
  color: var(--world-mint);
  cursor: pointer;
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.6rem;
}

.world-emoji-category {
  margin: 9px 0 7px;
}

.world-emoji-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(34px, 1fr));
  max-height: 176px;
  overflow-y: auto;
  overscroll-behavior: contain;
  gap: 4px;
}

.world-emoji-grid[hidden] {
  display: none;
}

.world-emoji-grid button {
  display: grid;
  min-width: 0;
  min-height: 38px;
  place-items: center;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: #0b1c17;
  color: var(--world-copy);
  cursor: pointer;
  font-size: 1.15rem;
}

.world-emoji-grid button:hover,
.world-emoji-grid button:focus-visible {
  border-color: var(--world-mint);
  background: #153a2d;
  outline: none;
}

.world-status-preview {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 8px;
  color: #80978b;
  font-size: 0.58rem;
}

.world-status-preview strong {
  color: var(--world-copy);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.68rem;
}

.world-status-preview button {
  min-height: 30px;
  border: 1px solid var(--world-line);
  border-radius: 0;
  background: transparent;
  padding: 0 9px;
  color: var(--world-muted);
  cursor: pointer;
  font-size: 0.58rem;
}

.world-status-preview button:disabled {
  cursor: default;
  opacity: 0.42;
}

.world-status-editor > small {
  color: #80978b;
  font-size: 0.58rem;
  line-height: 1.45;
}

.world-privacy-option {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  min-height: 40px;
  border-top: 1px solid var(--world-line);
  color: var(--world-muted);
  font-size: 0.72rem;
}

.world-privacy-option input {
  width: 16px;
  height: 16px;
  accent-color: var(--world-mint-deep);
}

.world-avatar-upload {
  display: grid;
  gap: 7px;
  margin-top: 10px;
  color: var(--world-muted);
  font-size: 0.7rem;
}

.world-avatar-upload input {
  width: 100%;
  border: 1px dashed var(--world-line);
  background: #0b1c17;
  padding: 8px;
  color: var(--world-copy);
  font: 600 0.62rem/1.3 "ForkMesh Mono", monospace;
}

.world-avatar-upload input:disabled {
  opacity: 0.45;
}

.world-setting-note {
  margin: 14px 0 0;
  color: #80978b;
  font-size: 0.65rem;
  line-height: 1.5;
}

.world-touch-controls {
  position: absolute;
  z-index: 8;
  left: calc(var(--safe-left) + 12px);
  bottom: calc(
    var(--safe-bottom) + var(--world-diagnostics-height) + 12px
  );
  display: none;
  width: 94px;
  height: 94px;
  pointer-events: none;
}

.world-touch-thumbstick {
  --thumb-x: 0px;
  --thumb-y: 0px;
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 1px solid var(--world-line-strong);
  border-radius: 50%;
  background:
    radial-gradient(circle, transparent 0 34%, rgb(158 247 198 / 0.09) 35% 36%, transparent 37%),
    linear-gradient(90deg, transparent 49%, rgb(158 247 198 / 0.14) 50% 51%, transparent 52%),
    linear-gradient(transparent 49%, rgb(158 247 198 / 0.14) 50% 51%, transparent 52%),
    rgb(7 17 15 / 0.85);
  touch-action: none;
  pointer-events: auto;
  cursor: grab;
  user-select: none;
}

.world-touch-thumbstick:focus-visible {
  border-color: var(--world-mint);
  outline: 2px solid rgb(158 247 198 / 0.4);
  outline-offset: 2px;
}

.world-touch-thumbstick[data-active="true"] {
  cursor: grabbing;
}

.world-touch-thumbstick-handle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 38px;
  height: 38px;
  transform:
    translate(-50%, -50%)
    translate(var(--thumb-x), var(--thumb-y));
  border: 1px solid rgb(158 247 198 / 0.72);
  border-radius: 50%;
  background:
    radial-gradient(circle at 38% 32%, rgb(255 255 255 / 0.2), transparent 28%),
    rgb(26 67 51 / 0.92);
  box-shadow:
    0 4px 16px rgb(0 0 0 / 0.38),
    inset 0 0 12px rgb(158 247 198 / 0.13);
  transition:
    transform 70ms linear,
    box-shadow 120ms ease;
  pointer-events: none;
}

.world-touch-thumbstick[data-active="true"] .world-touch-thumbstick-handle {
  box-shadow:
    0 5px 18px rgb(0 0 0 / 0.42),
    0 0 16px rgb(158 247 198 / 0.34),
    inset 0 0 12px rgb(158 247 198 / 0.18);
  transition: box-shadow 120ms ease;
}

.world-tour {
  position: absolute;
  z-index: 25;
  left: 50%;
  bottom: calc(var(--safe-bottom) + 82px);
  width: min(520px, calc(100vw - 28px));
  transform: translate(-50%, 18px);
  border-top: 2px solid var(--world-mint);
  background: var(--world-panel-solid);
  padding: 16px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease;
  pointer-events: auto;
}

.world-tour[data-open="true"] {
  transform: translate(-50%, 0);
  opacity: 1;
  visibility: visible;
}

.world-tour-progress {
  display: flex;
  gap: 4px;
}

.world-tour-progress span {
  flex: 1;
  height: 2px;
  background: var(--world-line);
}

.world-tour-progress span[data-complete="true"] {
  background: var(--world-mint);
}

.world-tour h2 {
  margin: 13px 0 6px;
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 1.25rem;
}

.world-tour p {
  margin: 0;
  color: var(--world-muted);
  font-size: 0.75rem;
  line-height: 1.5;
}

.world-tour-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}

.world-tour-skip {
  border: 0;
  background: transparent;
  color: var(--world-muted);
  cursor: pointer;
  font-size: 0.7rem;
}

.world-tour-next {
  min-height: 34px;
  border: 0;
  border-radius: 0;
  background: var(--world-mint);
  padding: 0 14px;
  color: #07110f;
  cursor: pointer;
  font-size: 0.7rem;
  font-weight: 700;
}

.world-label-layer {
  position: absolute;
  z-index: 3;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.world-player-label {
  position: absolute;
  display: grid;
  justify-items: center;
  gap: 2px;
  transform: translate(-50%, -100%);
  border-bottom: 1px solid var(--world-mint);
  background: rgb(7 17 15 / 0.74);
  padding: 3px 6px;
  color: var(--world-copy);
  font-family: "ForkMesh Mono", monospace;
  font-size: 0.5rem;
  white-space: nowrap;
}

.world-player-label[hidden] {
  display: none;
}

.world-player-label-status {
  color: var(--world-mint);
  font-size: 0.58rem;
  text-transform: none;
}

.world-aquarium-control-panel {
  position: absolute;
  z-index: 18;
  width: min(190px, calc(100vw - 28px));
  transform: translate(calc(-100% - 8px), 8px);
  border: 1px solid rgb(113 239 255 / 0.74);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgb(9 35 40 / 0.96), rgb(4 17 21 / 0.98));
  box-shadow:
    0 12px 30px rgb(0 8 12 / 0.4),
    inset 0 1px rgb(214 253 255 / 0.16);
  color: #e3fcff;
  font: 750 0.58rem/1 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.025em;
  pointer-events: auto;
  backdrop-filter: blur(10px);
}

.world-aquarium-control-panel::before {
  position: absolute;
  top: -9px;
  right: 11px;
  width: 28px;
  height: 9px;
  border: 1px solid rgb(113 239 255 / 0.68);
  border-bottom: 0;
  border-radius: 4px 4px 0 0;
  background: rgb(6 25 29 / 0.98);
  box-shadow: inset 0 1px rgb(214 253 255 / 0.14);
  content: "";
}

.world-aquarium-control-panel[hidden] {
  display: none;
}

.world-aquarium-control-toggle {
  display: flex;
  width: 100%;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  padding: 9px 11px;
  color: #87eaf5;
  cursor: pointer;
  font: inherit;
  font-size: 0.56rem;
  letter-spacing: 0.12em;
  text-align: left;
}

.world-aquarium-control-toggle::after {
  content: "+";
  color: var(--world-mint);
  font-size: 0.9rem;
  line-height: 1;
}

.world-aquarium-control-toggle[aria-expanded="true"]::after {
  content: "−";
}

.world-aquarium-control-toggle:hover,
.world-aquarium-control-toggle:focus-visible {
  background: rgb(15 51 55 / 0.98);
}

.world-aquarium-control-toggle:focus-visible {
  outline: 2px solid var(--world-mint);
  outline-offset: 2px;
}

.world-aquarium-control-actions {
  position: absolute;
  right: -1px;
  bottom: calc(100% + 7px);
  display: grid;
  width: min(340px, calc(100vw - 28px));
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  border: 1px solid rgb(113 239 255 / 0.74);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgb(9 35 40 / 0.97), rgb(4 17 21 / 0.99));
  box-shadow:
    0 12px 30px rgb(0 8 12 / 0.4),
    inset 0 1px rgb(214 253 255 / 0.16);
  padding: 7px;
  backdrop-filter: blur(10px);
}

.world-aquarium-control-actions[hidden] {
  display: none;
}

.world-aquarium-school-status {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  gap: 6px;
  border: 1px solid rgb(113 239 255 / 0.2);
  border-radius: 4px;
  background: rgb(5 22 25 / 0.7);
  padding: 5px 7px;
  color: rgb(197 222 224 / 0.84);
  font-size: 0.5rem;
  letter-spacing: 0.08em;
}

.world-aquarium-school-status::before {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: #657679;
  box-shadow: 0 0 0 2px rgb(101 118 121 / 0.16);
  content: "";
}

.world-aquarium-school-status[data-active="true"] {
  border-color: rgb(158 247 198 / 0.42);
  color: #cffff0;
}

.world-aquarium-school-status[data-active="true"]::before {
  background: #72f1b8;
  box-shadow:
    0 0 0 2px rgb(114 241 184 / 0.18),
    0 0 8px rgb(114 241 184 / 0.72);
  animation: world-aquarium-school-pulse 1.4s ease-in-out infinite;
}

@keyframes world-aquarium-school-pulse {
  50% {
    opacity: 0.58;
    transform: scale(0.82);
  }
}

@media (prefers-reduced-motion: reduce) {
  .world-aquarium-school-status[data-active="true"]::before {
    animation: none;
  }
}

.world-aquarium-control-button {
  min-height: 32px;
  border: 1px solid rgb(113 239 255 / 0.38);
  border-radius: 4px;
  background: rgb(8 30 34 / 0.94);
  padding: 6px 7px;
  color: #dffcff;
  cursor: pointer;
  font: inherit;
  line-height: 1.2;
  white-space: nowrap;
  transition:
    border-color 140ms ease,
    background-color 140ms ease,
    color 140ms ease,
    transform 140ms ease;
}

.world-aquarium-control-button:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: #b8fbff;
  background: rgb(15 51 55 / 0.98);
}

.world-aquarium-control-button:focus-visible {
  outline: 2px solid var(--world-mint);
  outline-offset: 2px;
}

.world-aquarium-control-button[data-enabled="true"],
.world-aquarium-control-button[data-feeding="true"] {
  border-color: rgb(158 247 198 / 0.62);
  background: rgb(15 48 40 / 0.96);
  color: #cffff0;
}

.world-aquarium-control-button:disabled {
  opacity: 0.78;
  cursor: default;
}

.world-profile-social {
  display: grid;
  gap: 14px;
  margin-top: 16px;
  border-top: 1px solid var(--world-panel-border, #30363d);
  padding-top: 16px;
}

.world-profile-followers,
.world-profile-publisher {
  display: grid;
  gap: 10px;
  margin: 0;
  border: 1px solid var(--world-panel-border, #30363d);
  border-radius: 6px;
  background: rgb(13 17 23 / 0.76);
  padding: 12px;
}

.world-profile-social-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.world-profile-social-heading h4 {
  margin: 0;
}

.world-profile-social-heading span {
  border-radius: 2em;
  background: #21262d;
  padding: 2px 8px;
  color: #c9d1d9;
  font: 700 0.7rem/1.5 "ForkMesh Mono", ui-monospace, monospace;
}

.world-profile-follower-strip {
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 7px;
  overflow-x: auto;
  padding: 2px 1px 6px;
  scrollbar-width: thin;
}

.world-profile-follower {
  display: grid;
  width: 38px;
  min-width: 38px;
  height: 38px;
  place-items: center;
  overflow: hidden;
  border: 2px solid #30363d;
  border-radius: 50%;
  background: #161b22;
  color: #79c0ff;
  font: 800 0.84rem/1 "ForkMesh Mono", ui-monospace, monospace;
  text-decoration: none;
}

.world-profile-follower:hover,
.world-profile-follower:focus-visible {
  border-color: #58a6ff;
  outline: none;
}

.world-profile-follower img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.world-profile-publisher > label,
.world-profile-selfie-preview label {
  color: #f0f6fc;
  font-weight: 650;
}

.world-profile-publisher textarea {
  min-height: 76px;
  resize: vertical;
}

.world-profile-selfie-actions,
.world-profile-selfie-preview {
  display: grid;
  gap: 8px;
}

.world-profile-selfie-actions {
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: center;
}

.world-profile-selfie-preview[hidden] {
  display: none;
}

.world-profile-selfie-preview img {
  width: 100%;
  max-height: 220px;
  border: 1px solid #30363d;
  border-radius: 6px;
  background: #010409;
  object-fit: contain;
}

.world-profile-selfie-actions span,
.world-profile-publisher [data-world-profile-publish-status] {
  color: #8c959f;
  font-size: 0.76rem;
}

.world-dashboard-embed {
  min-height: calc(100svh - 3.5rem);
}

html[data-dashboard-theme] .world-dashboard-embed .world-topbar {
  top: 12px;
}

@media (max-width: 980px) {
  .world-topbar {
    grid-template-columns: 1fr auto;
  }

  .world-right-rail {
    top: auto;
    bottom: calc(var(--safe-bottom) + 68px);
  }

  .world-community-placement,
  .world-fediverse-activity {
    display: none;
  }

  .world-activity {
    width: 230px;
  }

}

@media (max-width: 720px) {
  .world-map-label-copy {
    gap: 4px;
  }

  .world-construction-mark-map {
    width: 1.2em;
    height: 1.2em;
    font-size: 0.56rem;
  }

  .world-status-row {
    max-width: 100%;
  }

  .world-office-lobby,
  .world-office-room,
  .world-office-task-panel {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: min(72svh, 620px);
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    padding-bottom: var(--safe-bottom);
    transform: translateY(100%);
  }

  .world-office-lobby[data-open="true"],
  .world-office-room[data-open="true"],
  .world-office-task-panel[data-open="true"] {
    transform: translateY(0);
  }

  .world-office-panel-heading,
  .world-office-seat-panel,
  .world-office-participant-panel {
    padding: 12px;
  }

  .world-office-room-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .world-office-participant-panel {
    border-top: 1px solid var(--world-line);
    border-left: 0;
  }

  .world-office-seats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .world-office-panel-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    padding: 10px 12px;
  }

  .world-office-panel-actions button {
    width: 100%;
    min-width: 0;
  }

  .world-office-task-manager form {
    grid-template-columns: minmax(0, 1fr);
  }

  .world-office-task {
    grid-template-columns: minmax(0, 1fr);
  }

  .world-office-task-controls {
    justify-content: space-between;
  }

  .world-office-task-checkin {
    right: max(12px, var(--safe-right));
    bottom: calc(var(--safe-bottom) + 12px);
    left: max(12px, var(--safe-left));
    width: auto;
  }

  .world-office-chat {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: min(58svh, 560px);
    padding-bottom: env(safe-area-inset-bottom);
    border-top: 1px solid var(--world-line-strong);
    border-left: 0;
    transform: translateY(100%);
  }

  .world-office-chat[data-open="true"] {
    transform: translateY(0);
  }

  .world-office-chat__heading {
    padding: 10px 12px;
  }

  .world-topbar {
    gap: 8px;
  }

  .world-brand {
    min-height: 38px;
  }

  .world-brand img {
    width: 22px;
    height: 22px;
  }

  .world-brand-name {
    display: none;
  }

  .world-live span {
    display: none;
  }

  .world-top-link {
    width: 0;
    min-width: 0;
    min-height: 38px;
    padding: 0;
    justify-content: center;
  }

  .world-hud[data-hud-expanded="true"] .world-top-actions {
    max-width: calc(100vw - 62px);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .world-hud[data-hud-expanded="true"] .world-top-link {
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
    grid-template-rows: 16px 7px;
  }

  .world-hud[data-hud-expanded="true"] .world-top-link-label {
    max-width: 36px;
    height: 7px;
    font-size: 0.38rem;
  }

  .world-top-actions {
    /* Compact mode exposes only the circular account launcher. */
    gap: 0;
  }

  .world-shirt-badge {
    width: 38px;
    height: 38px;
  }

  .world-icon-button {
    min-width: 38px;
    min-height: 38px;
  }

  .world-arrival-actions {
    margin-top: 10px;
  }

  .world-right-rail {
    top: calc(var(--safe-top) + 54px);
    right: var(--safe-right);
    bottom: auto;
    display: grid;
    width: min(264px, calc(100vw - 28px));
    max-height: calc(
      var(--world-viewport-height, 100dvh) - var(--safe-top) - 118px
    );
    overflow: visible;
  }

  .world-right-rail[data-expanded="false"] {
    width: 0;
  }

  .world-right-rail .world-map {
    pointer-events: auto;
  }

  .world-saved-views {
    width: 116px;
  }

  .world-saved-views-heading {
    min-height: 28px;
    padding-left: 7px;
  }

  .world-saved-view-list {
    grid-template-columns: 1fr;
    max-height: 190px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .world-shirt-badge {
    width: 42px;
    height: 42px;
  }

  .world-detail {
    top: auto;
    right: 0;
    bottom: 0;
    width: 100%;
    height: min(76dvh, 720px);
    max-height: calc(
      var(--world-viewport-height, 100dvh) - var(--safe-top)
    );
    border-top: 1px solid var(--world-line-strong);
    border-left: 0;
    transform: translateY(102%);
  }

  /* The panel is a full-width bottom sheet here, so there is no left edge to
     drag. */
  .world-detail-resize {
    display: none;
  }

  .world-detail-backdrop[data-open="true"] {
    background: rgb(0 0 0 / 0.42);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .world-detail[data-open="true"] {
    transform: translateY(0);
  }

  .world-detail-header {
    padding-top: 20px;
  }

  .world-detail-header h2 {
    font-size: 2.35rem;
  }

  .world-finance-grid,
  .world-repo-summary {
    grid-template-columns: repeat(2, 1fr);
  }

  .world-repo-explorer > header {
    grid-template-columns: 1fr;
  }

  .world-repo-map-actions {
    justify-content: start;
  }

  .world-pull-review-summary {
    grid-template-columns: 1fr;
  }

  .world-pull-review-summary > div:last-child {
    justify-content: flex-start;
  }

  .world-pull-review-layout {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(90px, 0.32fr) minmax(240px, 1fr);
    height: min(58vh, 620px);
    min-height: 360px;
  }

  .world-pull-file-tree {
    border-right: 0;
    border-bottom: 1px solid var(--world-line);
  }

  .world-pull-panel-heading {
    align-items: start;
  }

  .world-pull-merge-panel {
    grid-template-columns: 1fr;
  }

  .world-pull-merge-panel > button {
    width: 100%;
    min-height: 44px;
  }

  .world-building-grid,
  .world-social-grid,
  .world-region-grid,
  .world-workshop-form,
  .world-filter-grid {
    grid-template-columns: 1fr;
  }

  .world-code-map {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .world-code-node {
    transform:
      rotateY(calc((var(--node-depth) - 2) * 2deg))
      translateZ(calc(var(--node-depth) * 2px))
      scale(min(var(--node-scale), 1.12));
  }

  .world-tour {
    bottom: calc(var(--safe-bottom) + 122px);
  }
}

@media (max-width: 375px) {
  .world-top-actions > .world-wave-button {
    /* The narrowest phones have no room left in the tool row. Alerts, sound
       consent, and settings keep their slots; the wave is the one control
       here that has no consequence when it is out of reach. */
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .world-office-chat,
  .world-office-lobby,
  .world-office-room,
  .world-office-task-panel,
  .world-office-task-checkin {
    transition: none;
  }
}

/* Touch capability, not viewport width, determines whether the compact analog
   thumbstick is needed. */
@media (pointer: coarse), (hover: none) {
  .world-touch-controls {
    display: grid;
  }
}

@media (max-height: 520px) and (orientation: landscape) {
  .world-touch-controls {
    left: calc(var(--safe-left) + 8px);
    bottom: calc(
      var(--safe-bottom) + var(--world-diagnostics-height) + 8px
    );
    width: 82px;
    height: 82px;
  }

  .world-detail,
  .world-detail-resize {
    height: calc(
      var(--world-viewport-height, 100dvh) - var(--safe-top)
    );
  }

}

@media (max-width: 480px) {
  :root {
    --world-diagnostics-height: 38px;
  }

  .world-diagnostics {
    font-size: 0.4rem;
  }

  .world-diagnostics:not(.world-chat-terminal) {
    width: calc(100% - 58px);
  }

  .world-diagnostics:not(.world-chat-terminal):has(
      + .world-chat-terminal[open]
    ) {
    width: 0;
    overflow: hidden;
    border: 0;
  }

  .world-diagnostics:not(.world-chat-terminal) > summary {
    min-height: var(--world-diagnostics-height);
    align-items: flex-start;
    gap: 3px;
    padding-block: 2px;
    padding-left: 64px;
  }

  .world-diagnostics summary strong {
    display: none;
  }

  .world-chat-terminal:not([open]) {
    width: 58px;
  }

  /* The collapsed bar shrinks to the word CHAT here; give the unread pill room
     rather than letting it clip. */
  .world-chat-terminal:not([open]):has(
      .world-chat-terminal-unread:not([hidden])
    ) {
    width: 86px;
  }

  .world-chat-terminal:not([open]) > summary {
    justify-content: center;
    padding-inline: 4px;
  }

  .world-chat-terminal:not([open]) > summary strong {
    display: block;
  }

  .world-chat-terminal:not([open])
    [data-world-chat-terminal-last],
  .world-chat-terminal:not([open])
    .world-diagnostics-toggle {
    display: none;
  }

  .world-diagnostics-compact {
    max-height: calc(var(--world-diagnostics-height) - 4px);
    align-content: center;
    gap: 0 4px;
    line-height: 1.08;
  }

  .world-diagnostics:not(.world-chat-terminal)
    .world-diagnostics-toggle {
    display: none;
  }

  .world-diagnostics-details {
    max-height: min(52vh, 300px);
    padding-left: max(10px, env(safe-area-inset-left));
  }

  .world-diagnostics dl > div {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .world-status-fields {
    grid-template-columns: 1fr;
  }

  .world-emoji-grid {
    grid-template-columns: repeat(5, minmax(34px, 1fr));
  }

  .world-arrival-actions .world-secondary-action {
    display: none;
  }

  .world-touch-controls {
    width: 86px;
    height: 86px;
  }

  .world-detail-scroll {
    padding-inline: 16px;
  }

  .world-technical-list > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .world-code-map {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .world-home-card {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  .world-hud {
    forced-color-adjust: none;
  }
}

/* Screenshot capture and annotation */
.world-shot-overlay {
  position: fixed;
  inset: 0;
  z-index: 60;
  cursor: crosshair;
  background: rgb(4 10 8 / 0.28);
  touch-action: none;
}

.world-shot-hint {
  position: absolute;
  top: calc(var(--safe-top) + 52px);
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  border: 1px solid var(--world-line-strong);
  background: var(--world-panel);
  color: var(--world-copy);
  padding: 8px 14px;
  font-size: 0.78rem;
  pointer-events: none;
}

.world-shot-marquee {
  position: fixed;
  border: 2px solid var(--world-mint);
  background: rgb(158 247 198 / 0.12);
  pointer-events: none;
}

.world-shot-annotator {
  position: fixed;
  inset: 0;
  z-index: 61;
  display: grid;
  place-items: center;
  padding: max(14px, var(--safe-top)) var(--safe-right) var(--safe-bottom)
    var(--safe-left);
  background: rgb(4 10 8 / 0.62);
}

.world-shot-dialog {
  display: grid;
  gap: 12px;
  width: min(860px, 100%);
  max-height: 100%;
  overflow: auto;
  border: 1px solid var(--world-line-strong);
  background: var(--world-panel-solid);
  padding: 16px;
}

.world-shot-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.world-shot-header strong {
  font-family: "ForkMesh Favorit", sans-serif;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
}

.world-shot-close {
  border: 0;
  background: transparent;
  color: var(--world-muted);
  cursor: pointer;
  font-size: 1.2rem;
}

.world-shot-close:hover,
.world-shot-close:focus-visible {
  color: var(--world-mint);
  outline: none;
}

.world-shot-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.world-shot-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.world-shot-tools button,
.world-shot-undo {
  border: 1px solid var(--world-line);
  background: rgb(255 255 255 / 0.035);
  color: var(--world-copy);
  padding: 6px 11px;
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
}

.world-shot-tools button:hover,
.world-shot-tools button:focus-visible,
.world-shot-undo:hover,
.world-shot-undo:focus-visible {
  border-color: var(--world-mint);
  color: var(--world-mint);
  outline: none;
}

.world-shot-tools button[aria-pressed="true"] {
  border-color: var(--world-mint);
  background: rgb(158 247 198 / 0.16);
  color: var(--world-mint);
}

.world-shot-colors {
  display: flex;
  gap: 6px;
}

.world-shot-colors button {
  width: 22px;
  height: 22px;
  border: 2px solid var(--world-line);
  border-radius: 50%;
  background: var(--shot-swatch);
  cursor: pointer;
  padding: 0;
}

.world-shot-colors button[aria-pressed="true"] {
  border-color: var(--world-mint);
  box-shadow: 0 0 0 2px rgb(158 247 198 / 0.35);
}

.world-shot-undo {
  margin-left: auto;
}

.world-shot-stage {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 120px;
  border: 1px solid var(--world-line);
  background: var(--world-ink);
  overflow: hidden;
}

.world-shot-canvas {
  display: block;
  max-width: 100%;
  max-height: min(58vh, 560px);
  cursor: crosshair;
  touch-action: none;
}

.world-shot-text-input {
  position: absolute;
  min-width: 160px;
  min-height: 72px;
  border: 1px dashed var(--world-mint);
  background: rgb(7 17 15 / 0.86);
  padding: 4px 8px;
  box-sizing: border-box;
  resize: both;
  overflow: auto;
  line-height: 1.2;
  font-size: 0.85rem;
  font-weight: 600;
  color: inherit;
}

.world-shot-text-input:focus {
  outline: none;
}

.world-shot-alt {
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr);
  align-items: center;
  gap: 10px;
  color: var(--world-muted);
  font-size: 0.72rem;
  font-weight: 700;
}

.world-shot-alt input {
  min-height: 38px;
  border: 1px solid var(--world-line);
  background: #0d1117;
  color: var(--world-copy);
  padding: 7px 10px;
}

.world-shot-alt input:focus-visible {
  border-color: var(--world-mint);
  outline: 2px solid rgb(158 247 198 / 0.18);
}

.world-shot-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.world-shot-share {
  display: flex;
  gap: 6px;
}

.world-shot-share button {
  border: 1px solid var(--world-line);
  background: transparent;
  color: var(--world-muted);
  padding: 9px 12px;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
}

.world-shot-share button:hover,
.world-shot-share button:focus-visible {
  border-color: var(--world-mint);
  color: var(--world-mint);
  outline: none;
}

.world-shot-ghost {
  border: 1px solid var(--world-line);
  background: transparent;
  color: var(--world-muted);
  padding: 9px 14px;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
}

.world-shot-ghost:hover,
.world-shot-ghost:focus-visible {
  border-color: var(--world-mint);
  color: var(--world-mint);
  outline: none;
}

.world-shot-primary {
  border: 0;
  background: var(--world-mint);
  color: #071611;
  padding: 9px 16px;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

.world-shot-primary:hover,
.world-shot-primary:focus-visible {
  background: var(--world-mint-deep);
  outline: none;
}

.world-shot-primary:disabled {
  cursor: wait;
  opacity: 0.55;
}
.world-agent-prompt-form {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.9rem;
  padding: 0.9rem;
  border: 1px solid color-mix(in srgb, var(--detail-color, #80e8ff) 35%, transparent);
  border-radius: 0.75rem;
  background: rgba(4, 18, 14, 0.68);
}

.world-agent-prompt-form label {
  display: grid;
  gap: 0.45rem;
  color: #dff9e8;
  font-size: 0.78rem;
  font-weight: 700;
}

.world-agent-prompt-form textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 5rem;
  resize: vertical;
  border: 1px solid #315747;
  border-radius: 0.55rem;
  background: #06130f;
  color: #f1fff6;
  padding: 0.7rem;
  font: 0.78rem/1.5 var(--world-mono, ui-monospace, monospace);
}

.world-agent-prompt-form [data-world-agent-form-status] {
  min-height: 1.2rem;
  color: #9ef7c6;
  font-size: 0.72rem;
}

.world-agent-session-list {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}

.world-agent-session {
  border: 1px solid #29483c;
  border-radius: 0.7rem;
  background: rgba(4, 17, 13, 0.74);
  overflow: hidden;
}

.world-agent-session > summary {
  display: grid;
  gap: 0.25rem;
  cursor: pointer;
  padding: 0.8rem 0.9rem;
  color: #effff5;
}

.world-agent-session > summary span {
  color: #86cba7;
  font: 0.68rem/1.4 var(--world-mono, ui-monospace, monospace);
  text-transform: uppercase;
}

.world-agent-session > :not(summary) {
  margin-inline: 0.8rem;
}

.world-agent-transcript {
  max-height: 22rem;
  overflow: auto;
  margin-top: 0.8rem;
  border: 1px solid #243f35;
  border-radius: 0.55rem;
  background: #04100d;
}

.world-agent-transcript article {
  padding: 0.7rem;
  border-top: 1px solid #1c352b;
}

.world-agent-transcript article:first-child {
  border-top: 0;
}

.world-agent-transcript header {
  display: flex;
  gap: 0.4rem;
  color: #77d9ff;
  font: 0.66rem/1.4 var(--world-mono, ui-monospace, monospace);
  text-transform: uppercase;
}

.world-agent-transcript header span {
  margin-left: auto;
  color: #91a39a;
}

.world-agent-transcript p {
  margin: 0.35rem 0 0;
  color: #dff9e8;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 0.75rem/1.55 var(--world-mono, ui-monospace, monospace);
}

/* Final shared chrome pass: feature-specific rules may control layout, but
   every user-facing surface finishes with the same GitHub dark primitives. */
.fm-world :is(
  dialog,
  aside:not(.world-right-rail),
  [class*="world-panel"],
  [class*="world-drawer"],
  [class*="world-dialog"],
  [class*="world-card"],
  [class*="world-terminal"],
  [class*="world-popover"]
) {
  border-color: var(--world-line-strong);
  border-radius: 6px;
  background-color: var(--world-panel-solid);
  color: var(--world-copy);
  box-shadow: 0 8px 24px rgb(1 4 9 / 0.36);
}

.fm-world :is(button, input, select, textarea) {
  border-color: var(--world-line-strong);
  border-radius: 6px;
}

.fm-world :is(button, input, select, textarea):focus-visible {
  outline: 2px solid var(--world-mint);
  outline-offset: 2px;
}

/* Compact HUD. Debug stays a readable live-performance pill while chat stays
   logo-sized. Both expand on hover, keyboard focus, or an explicit open. */
.world-diagnostics,
.world-diagnostics:not(.world-chat-terminal) {
  position: absolute;
  right: auto;
  bottom: max(12px, env(safe-area-inset-bottom));
  left: max(12px, env(safe-area-inset-left));
  width: min(310px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  border: 1px solid rgb(139 148 158 / 0.55);
  border-radius: 28px;
  background: rgb(13 17 23 / 0.92);
  box-shadow: 0 8px 30px rgb(1 4 9 / 0.5);
  overflow: visible;
  transition:
    width 170ms ease,
    border-radius 170ms ease,
    background-color 170ms ease;
}

.world-diagnostics > summary,
.world-diagnostics:not(.world-chat-terminal) > summary {
  box-sizing: border-box;
  width: 100%;
  height: 56px;
  min-height: 56px;
  align-items: center;
  justify-content: flex-start;
  gap: 7px;
  padding: 7px 9px;
  border-radius: 28px;
  overflow: visible;
}

/* The collapsed debug pill is as tall as its chart grid needs rather than one
   logo-height row, so all nine dot traces are readable without opening it. The
   chat orb shares the rule above and stays a fixed 56px circle. */
.world-diagnostics:not(.world-chat-terminal) > summary {
  height: auto;
}

.world-diagnostics
  > summary
  > :not(.world-diagnostics-orb):not(.world-diagnostics-chart),
.world-diagnostics:not(.world-chat-terminal)
  > summary
  > :not(.world-diagnostics-orb):not(.world-diagnostics-chart) {
  display: none;
}

.world-diagnostics:is([open], :hover, :focus-within),
.world-diagnostics:not(.world-chat-terminal):is([open], :hover, :focus-within) {
  width: min(720px, calc(100vw - 24px));
  border-radius: 12px;
  background: rgb(13 17 23 / 0.88);
}

.world-diagnostics:is([open], :hover, :focus-within) > summary,
.world-diagnostics:not(.world-chat-terminal):is([open], :hover, :focus-within)
  > summary {
  width: 100%;
  height: auto;
  min-height: 44px;
  justify-content: flex-start;
  padding: 7px 10px;
  border-radius: 12px 12px 0 0;
}

.world-diagnostics:is([open], :hover, :focus-within)
  > summary
  > :not(.world-diagnostics-orb):not(.world-diagnostics-chart),
.world-diagnostics:not(.world-chat-terminal):is([open], :hover, :focus-within)
  > summary
  > :not(.world-diagnostics-orb):not(.world-diagnostics-chart) {
  display: flex;
}

.world-diagnostics:is(:hover, :focus-within) > .world-diagnostics-details {
  display: block;
}

.world-diagnostics-orb {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  align-self: center;
  grid-template-columns: repeat(3, 1fr);
  place-items: center;
  border: 1px solid rgb(139 148 158 / 0.42);
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 28%, rgb(88 166 255 / 0.2), transparent 48%),
    #0d1117;
}

.world-diagnostics-orb > span {
  --world-diagnostics-refresh-progress: 0;
  position: relative;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #3fb950;
  box-shadow: 0 0 5px currentColor;
}

.world-diagnostics-orb > span::before {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  pointer-events: none;
  background:
    conic-gradient(
      from -90deg,
      currentColor calc(var(--world-diagnostics-refresh-progress) * 1turn),
      transparent calc(
        var(--world-diagnostics-refresh-progress) * 1turn
      ) 1turn
    );
  mask: radial-gradient(
    farthest-side,
    transparent calc(50% - 2px),
    #000 calc(50% - 2px)
  );
  -webkit-mask: radial-gradient(
    farthest-side,
    transparent calc(50% - 2px),
    #000 calc(50% - 2px)
  );
}

.world-diagnostics-orb > span[data-level="caution"] {
  color: #d29922;
  background: #d29922;
}

.world-diagnostics-orb > span[data-level="high"] {
  color: #f85149;
  background: #f85149;
}

.world-diagnostics-orb > span[data-level="good"] {
  color: #3fb950;
  background: #3fb950;
}

/* Nine traces for the nine health dots, three across so the first three rows
   read in the same order as the 3x3 orb beside them, then two rows of renderer
   detail no dot owns, with the memory trace spanning the last row. Each cell is
   short enough that all sixteen still fit the collapsed pill's width without a
   second breakpoint. */
.world-diagnostics-chart {
  display: grid;
  min-width: 0;
  flex: 1 1 auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3px;
  font: 700 0.43rem/1 "ForkMesh Mono", ui-monospace, monospace;
}

.world-diagnostics-chart-metric {
  display: grid;
  min-width: 0;
  grid-template-rows: auto 12px;
  gap: 2px;
  padding: 3px 4px;
  border: 1px solid rgb(139 148 158 / 0.18);
  border-radius: 5px;
  background: rgb(1 4 9 / 0.38);
}

.world-diagnostics-chart-metric[data-world-diagnostics-chart-metric="memory"] {
  grid-column: 1 / -1;
}

.world-diagnostics-chart-metric > span {
  display: flex;
  min-width: 0;
  align-items: baseline;
  justify-content: space-between;
  gap: 3px;
  color: #8c959f;
}

.world-diagnostics-chart-metric b {
  overflow: hidden;
  font: inherit;
  letter-spacing: 0.03em;
  text-overflow: ellipsis;
}

.world-diagnostics-chart-metric output {
  overflow: hidden;
  flex: 0 1 auto;
  color: #f0f6fc;
  font: inherit;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.world-diagnostics-chart-metric svg {
  display: block;
  width: 100%;
  height: 12px;
  overflow: hidden;
  border-radius: 2px;
  background:
    linear-gradient(to bottom, transparent 48%, rgb(139 148 158 / 0.12) 50%, transparent 52%),
    rgb(13 17 23 / 0.42);
}

.world-diagnostics-chart-metric polyline {
  fill: none;
  stroke: #3fb950;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.world-diagnostics-chart-metric[data-level="caution"] polyline {
  stroke: #d29922;
}

.world-diagnostics-chart-metric[data-level="high"] polyline {
  stroke: #f85149;
}

.world-diagnostics-chart-metric[data-level="unavailable"] {
  opacity: 0.55;
}

.world-diagnostics:is([open], :hover, :focus-within)
  .world-diagnostics-chart {
  flex: 0 1 250px;
}

@media (max-width: 480px) {
  /* Leave a full touch-target gap before the CHAT launcher on narrow phones.
     Opening DEBUG still takes the full available width because CHAT closes. */
  .world-diagnostics:not(.world-chat-terminal) {
    width: min(310px, calc(100vw - 92px));
  }

  /* Two extra rows of traces would take a phone's whole lower screen, so the
     closed pill keeps the nine dot traces plus memory here; opening DEBUG
     brings the renderer detail traces back. */
  .world-diagnostics:not([open])
    .world-diagnostics-chart-metric[data-world-diagnostics-chart-detail] {
    display: none;
  }
}

.world-chat-terminal,
.world-chat-terminal.world-chat-terminal--debug-hidden {
  right: max(12px, env(safe-area-inset-right));
  bottom: max(12px, env(safe-area-inset-bottom));
  left: auto;
  width: 56px;
  border: 0 !important;
  outline: 0;
  border-radius: 28px;
  background: transparent !important;
  box-shadow: none;
  backdrop-filter: none;
  transition:
    width 260ms cubic-bezier(0.2, 0.8, 0.2, 1),
    border-radius 260ms ease,
    background 260ms ease;
}

.world-chat-terminal > summary {
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.world-diagnostics.world-chat-terminal
  > summary
  > .world-chat-terminal-avatar {
  display: grid;
}

.world-diagnostics.world-chat-terminal
  > summary
  > .world-chat-terminal-unread:not([hidden]) {
  display: block;
}

.world-chat-terminal > summary > :not(.world-chat-terminal-avatar):not(.world-chat-terminal-unread) {
  display: none;
}

.world-chat-terminal:is([open], :hover, :focus-within) {
  width: min(460px, calc(100vw - 24px));
  border-radius: 18px;
  background: transparent !important;
}

.world-chat-terminal:is([open], :hover, :focus-within) > summary {
  justify-content: center;
}

.world-chat-terminal:is([open], :hover, :focus-within)
  > summary
  > :not(.world-chat-terminal-avatar):not(.world-chat-terminal-unread) {
  display: none;
}

.world-chat-terminal[open] > summary {
  display: none;
}

.world-chat-terminal:is(:hover, :focus-within) > .world-chat-terminal-body {
  display: block;
}

.world-chat-terminal-avatar {
  position: relative;
  display: grid;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  place-items: center;
  overflow: hidden;
  border: 2px solid #58a6ff;
  border-radius: 50%;
  background: linear-gradient(145deg, #1f6feb, #163b67);
  color: #fff;
  font: 800 0.8rem/1 "ForkMesh Mono", monospace;
  box-shadow: 0 0 0 2px rgb(13 17 23 / 0.8);
}

.world-chat-terminal-avatar::after {
  position: absolute;
  right: 1px;
  bottom: 2px;
  width: 8px;
  height: 8px;
  border: 2px solid #0d1117;
  border-radius: 50%;
  background: #3fb950;
  box-shadow: 0 0 8px rgb(63 185 80 / 0.8);
  content: "";
}

.world-chat-terminal-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.world-chat-terminal-avatar img[hidden] {
  display: none;
}

.world-chat-terminal-unread {
  position: absolute;
  top: -3px;
  right: -3px;
  z-index: 2;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border: 2px solid #0d1117;
  background: #f85149;
  color: #fff;
  line-height: 14px;
}

.world-chat-terminal:is([open], :hover, :focus-within)
  .world-chat-terminal-unread {
  position: static;
  border-width: 0;
}

.world-chat-terminal-body {
  height: min(70vh, 620px);
  overflow: hidden;
  border-radius: 0 0 18px 18px;
  background: transparent;
  transform-origin: 100% 100%;
  animation: world-chat-unfurl 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.world-chat-terminal[open] .world-chat-terminal-body {
  border: 0;
  border-radius: 0;
}

.world-chat-terminal-frame {
  background: transparent;
}

@keyframes world-chat-unfurl {
  from {
    opacity: 0;
    transform: scale(0.72);
    clip-path: circle(24px at calc(100% - 28px) calc(100% - 28px));
  }
  to {
    opacity: 1;
    transform: scale(1);
    clip-path: circle(150% at calc(100% - 28px) calc(100% - 28px));
  }
}

/* Native World chat: each surface floats independently over the scene. */
.world-chat-terminal[open] {
  top: auto;
  bottom: max(12px, env(safe-area-inset-bottom));
  width: min(600px, calc(100vw - 24px));
  height: min(58dvh, 680px);
  max-height: calc(
    var(--world-viewport-height, 100dvh) -
      max(12px, env(safe-area-inset-bottom))
  );
  box-sizing: border-box;
  overflow: hidden;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.world-chat-terminal[open] .world-chat-terminal-body {
  position: absolute;
  inset: 0;
  display: grid !important;
  height: auto;
  min-height: 0;
  max-height: none;
  overflow: hidden;
  animation: world-chat-panel-rise 300ms cubic-bezier(0.16, 1, 0.3, 1);
}

.world-native-chat {
  position: relative;
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 0;
  grid-template-areas:
    "transcript"
    "context"
    "emotes"
    "composer";
  grid-template-rows: minmax(0, 1fr) auto auto auto;
  gap: 8px;
  overflow: hidden;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.world-native-chat [data-dashboard-chat-context-rail],
.world-native-chat [data-dashboard-chat-emotes] {
  display: flex;
  min-width: 0;
  gap: 6px;
  padding-inline: 8px 52px;
}

.world-native-chat [data-dashboard-chat-context-rail] {
  flex-wrap: wrap;
}

.world-native-chat button,
.world-native-chat select,
.world-native-chat textarea {
  box-sizing: border-box;
  border: 1px solid rgb(139 148 158 / 0.55);
  border-radius: 999px;
  background: rgb(13 17 23 / 0.85);
  color: #f0f6fc;
  font: 600 0.7rem/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.world-native-chat button,
.world-native-chat select {
  min-height: 32px;
  padding: 5px 10px;
}

.world-native-chat [data-dashboard-chat-emotes] button {
  width: 42px;
  min-height: 42px;
  padding: 0;
  font-size: 1.1rem;
}

.world-native-chat #fullChatMessages {
  grid-area: transcript;
  display: flex;
  min-height: 0;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  padding: 8px 64px 8px 8px;
  scrollbar-width: none;
  overscroll-behavior: contain;
  contain: layout paint;
}

.world-native-chat #fullChatMessages::-webkit-scrollbar {
  display: none;
}

.world-native-chat .chat-message-row[hidden] {
  display: none !important;
}

.world-native-chat .chat-history-indicator {
  position: sticky;
  top: 2px;
  z-index: 4;
  align-self: center;
  min-height: 28px;
  margin: 0 auto 4px;
  border-color: rgb(88 166 255 / 0.38);
  background: rgb(13 17 23 / 0.72);
  padding: 4px 12px;
  color: #b6d7ff;
  font-size: 0.62rem;
  box-shadow: 0 8px 22px rgb(1 4 9 / 0.2);
}

.world-native-chat .chat-history-indicator[data-complete="true"] {
  border-color: rgb(139 148 158 / 0.26);
  color: #8c959f;
  opacity: 0.82;
}

.world-native-chat .chat-message-row {
  display: grid;
  width: 100%;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  margin: 0 !important;
  padding: 0;
}

.world-native-chat .chat-message-avatar {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgb(139 148 158 / 0.6);
  border-radius: 50%;
  background: rgb(13 17 23 / 0.62);
}

.world-native-chat .chat-message-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.world-native-chat .chat-message-bubble {
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid rgb(139 148 158 / 0.45);
  border-radius: 16px 16px 16px 5px;
  background: rgb(13 17 23 / 0.85);
  padding: 10px 12px;
  box-shadow: 0 10px 28px rgb(1 4 9 / 0.16);
  color: #f0f6fc;
}

.world-native-chat .chat-message-row--self .chat-message-bubble {
  border-color: rgb(88 166 255 / 0.6);
  background: rgb(31 111 235 / 0.28);
}

.world-native-chat .chat-message-bubble > div:first-child {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 3px;
}

.world-native-chat .chat-message-bubble p {
  margin: 0;
  color: #c9d1d9;
  font: 400 0.78rem/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-wrap: anywhere;
}

.world-native-chat .chat-attachment-wrapper,
.world-native-chat .chat-attachment-preview {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.world-native-chat .chat-attachment-preview {
  position: relative;
  border-radius: 10px;
}

.world-native-chat .chat-attachment-image {
  display: block;
  width: 100%;
  height: auto;
  min-width: 0 !important;
  max-width: 100%;
  max-height: min(18rem, 35vh);
  object-fit: contain;
}

.world-native-chat .chat-attachment-card {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.world-native-chat .chat-attachment-download {
  position: absolute;
  right: 8px;
  bottom: 8px;
}

.world-native-chat .chat-message-actions,
.world-native-chat .chat-reactions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.world-native-chat .chat-message-actions {
  justify-content: flex-end;
  margin-top: 7px;
}

.world-native-chat .chat-message-actions button {
  min-height: 25px;
  padding: 3px 7px;
  font-size: 0.6rem;
}

.world-native-chat .chat-message-actions button:first-child {
  width: 30px;
  min-height: 30px;
  padding: 0;
  border-color: rgb(139 148 158 / 0.4);
  background: transparent;
  font-size: 1.05rem;
  line-height: 1;
}

/* The per-message "turn this into an issue" form. Its title field is the only
   <input> the in-world chat renders, so it is not covered by the shared
   button/select/textarea control rule above and gets the glass treatment here. */
.world-native-chat .chat-issue-form {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 7px;
}

.world-native-chat .chat-issue-form input {
  box-sizing: border-box;
  border: 1px solid rgb(139 148 158 / 0.55);
  border-radius: 12px;
  background: rgb(13 17 23 / 0.58);
  padding: 6px 10px;
  color: #f0f6fc;
  font: 600 0.7rem/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  backdrop-filter: blur(18px) saturate(1.25);
}

.world-native-chat .chat-issue-form select {
  border-radius: 12px;
}

.world-native-chat .chat-system-bubble {
  align-self: stretch;
  margin: 0 0 0 40px;
  border: 1px solid rgb(139 148 158 / 0.38);
  border-radius: 14px;
  background: rgb(22 27 34 / 0.85);
  padding: 9px 12px;
  color: #c9d1d9;
  font: 500 0.72rem/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.world-native-chat [data-dashboard-chat-scroll-rail] {
  position: relative;
  z-index: 5;
  grid-area: transcript;
  align-self: stretch;
  justify-self: end;
  display: grid;
  width: 38px;
  height: 100%;
  grid-template-rows: auto 1fr auto;
  gap: 5px;
  place-items: center;
  padding-block: 8px;
}

.world-native-chat [data-dashboard-chat-scroll-rail] button {
  width: 34px;
  min-height: 34px;
  padding: 0;
}

.world-native-chat [data-dashboard-chat-scroll-track] {
  position: relative;
  width: 8px;
  height: 100%;
  min-height: 50px;
  border: 1px solid rgb(139 148 158 / 0.45);
  border-radius: 999px;
  background: rgb(13 17 23 / 0.85);
}

.world-native-chat [data-dashboard-chat-scroll-thumb] {
  position: absolute;
  top: calc((100% - 28px) * var(--chat-scroll-progress, 1));
  left: 1px;
  width: 4px;
  height: 28px;
  border-radius: 999px;
  background: #58a6ff;
  box-shadow: 0 0 10px rgb(88 166 255 / 0.8);
}

.world-native-chat [data-dashboard-chat-composer] {
  z-index: 6;
  grid-area: composer;
  max-height: min(48dvh, 360px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0;
  background: transparent;
  transform-origin: 50% 100%;
  align-self: end;
}

.chat-image-preview-dialog {
  box-sizing: border-box;
  width: min(900px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  max-height: calc(100dvh - 24px);
  overflow: auto;
}

.chat-image-preview-full {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100dvh - 48px);
  object-fit: contain;
}

.world-chat-terminal[open]
  .world-native-chat
  [data-dashboard-chat-composer] {
  animation: world-chat-composer-rise 360ms 70ms
    cubic-bezier(0.16, 1, 0.3, 1) backwards;
}

.world-native-chat [data-dashboard-chat-context-rail] {
  grid-area: context;
}

.world-chat-terminal[open]
  .world-native-chat
  [data-dashboard-chat-context-rail] {
  animation: world-chat-controls-rise 300ms 35ms
    cubic-bezier(0.16, 1, 0.3, 1) backwards;
}

.world-native-chat [data-dashboard-chat-emotes] {
  grid-area: emotes;
}

.world-chat-terminal[open]
  .world-native-chat
  [data-dashboard-chat-emotes] {
  animation: world-chat-controls-rise 320ms 50ms
    cubic-bezier(0.16, 1, 0.3, 1) backwards;
}

.world-native-chat [data-dashboard-chat-composer] > div {
  display: grid;
  gap: 7px;
}

.world-native-chat [data-dashboard-chat-composer-toolbar],
.world-native-chat [data-dashboard-chat-compose-row],
.world-native-chat [data-dashboard-chat-composer] footer {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 6px;
  border: 1px solid rgb(139 148 158 / 0.48);
  border-radius: 16px;
  background: rgb(13 17 23 / 0.88);
  padding: 7px;
  box-shadow: 0 12px 28px rgb(1 4 9 / 0.18);
}

.world-native-chat [data-dashboard-chat-composer-toolbar] select {
  min-width: 0;
  flex: 1 1 130px;
}

.world-native-chat [data-dashboard-task-routing] {
  display: contents;
}

.world-native-chat [data-dashboard-task-routing][hidden] {
  display: none;
}

.world-native-chat [data-dashboard-chat-compose-row] {
  align-items: flex-end;
}

.world-native-chat #fullChatInput {
  min-width: 0;
  min-height: 58px;
  flex: 1 1 280px;
  resize: none;
  border-radius: 12px;
  padding: 10px 12px;
  outline: 0;
}

.world-native-chat #fullChatInput:focus {
  border-color: #58a6ff;
  box-shadow: 0 0 0 3px rgb(88 166 255 / 0.18);
}

.world-native-chat #fullChatSend {
  border-color: #2ea043;
  background: rgb(35 134 54 / 0.88);
}

.world-native-chat #fullChatTaskSend {
  border-color: #58a6ff;
  background: rgb(31 111 235 / 0.78);
}

.world-native-chat [data-dashboard-chat-composer] footer {
  justify-content: space-between;
  padding: 5px 10px;
  color: #8c959f;
  font: 500 0.6rem/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.world-native-chat [data-dashboard-chat-attachments] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
}

.world-office-task-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 7px 0 0;
  padding: 0;
  list-style: none;
}

.world-office-task-attachments li {
  border: 1px solid var(--world-line);
  border-radius: 999px;
  background: rgb(88 166 255 / 0.1);
  padding: 3px 8px;
  color: var(--world-ink);
  font-size: 0.65rem;
}

.world-office-task-attachments .world-office-task-image {
  padding: 0;
  overflow: hidden;
  border-radius: 6px;
}

.world-office-task-image a {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  max-width: 180px;
  color: inherit;
  text-decoration: none;
}

.world-office-task-image img {
  width: 42px;
  height: 34px;
  object-fit: cover;
  background: var(--world-panel);
}

.world-office-task-image span {
  overflow: hidden;
  padding-right: 7px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@keyframes world-chat-panel-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes world-chat-controls-rise {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes world-chat-composer-rise {
  from {
    opacity: 0;
    transform: translateY(calc(100% + 18px)) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 620px) {
  .world-chat-terminal[open] {
    top: auto;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    width: calc(100vw - 16px);
    height: min(60dvh, 560px);
    max-height: calc(
      var(--world-viewport-height, 100dvh) -
        max(8px, env(safe-area-inset-bottom))
    );
  }

  .world-native-chat {
    height: 100%;
    min-height: 0;
    grid-template-rows: minmax(0, 1fr) auto auto auto;
  }

  .world-native-chat [data-dashboard-chat-context-rail],
  .world-native-chat [data-dashboard-chat-emotes] {
    padding-inline: 4px 46px;
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .world-native-chat #fullChatMessages {
    padding-right: 48px;
  }

  .world-native-chat [data-dashboard-chat-scroll-rail] {
    right: 2px;
  }
}

@media (max-height: 600px) {
  .world-native-chat [data-dashboard-chat-context-rail],
  .world-native-chat [data-dashboard-chat-emotes],
  .world-native-chat [data-dashboard-chat-composer] footer {
    display: none;
  }

  .world-native-chat {
    grid-template-areas:
      "transcript"
      "composer";
    grid-template-rows: minmax(0, 1fr) auto;
  }
}

@media (max-height: 360px) {
  .world-native-chat [data-dashboard-chat-composer-toolbar],
  .world-native-chat #fullChatTaskSend {
    display: none;
  }

  .world-native-chat [data-dashboard-chat-composer] {
    max-height: none;
    overflow: visible;
  }

  .world-native-chat [data-dashboard-chat-compose-row] {
    flex-wrap: nowrap;
  }

  .world-native-chat #fullChatInput {
    min-height: 48px;
    flex: 1 1 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .world-chat-terminal[open] .world-chat-terminal-body,
  .world-native-chat [data-dashboard-chat-context-rail],
  .world-native-chat [data-dashboard-chat-emotes],
  .world-native-chat [data-dashboard-chat-composer] {
    animation: none;
  }
}

.world-activity-stream {
  position: absolute;
  z-index: 44;
  right: max(12px, env(safe-area-inset-right));
  bottom: calc(max(12px, env(safe-area-inset-bottom)) + 66px);
  display: flex;
  width: min(440px, calc(100vw - 24px));
  max-height: min(52vh, 440px);
  flex-direction: column-reverse;
  gap: 8px;
  overflow: hidden;
  pointer-events: none;
}

.world-activity-stream article {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  border: 1px solid rgb(139 148 158 / 0.45);
  border-radius: 16px 16px 16px 5px;
  background: rgb(13 17 23 / 0.88);
  padding: 8px 10px;
  color: #f0f6fc;
  box-shadow:
    0 8px 24px rgb(1 4 9 / 0.2),
    inset 0 1px 0 rgb(255 255 255 / 0.05);
  font: 0.72rem/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  opacity: 0;
  transform: translateY(8px);
  animation:
    world-activity-in 180ms ease forwards,
    world-activity-out 420ms ease 9.55s forwards;
}

.world-activity-stream article[data-kind="chat"] {
  border-color: rgb(88 166 255 / 0.55);
}

.world-activity-stream article[data-kind="error"] {
  border-color: rgb(248 81 73 / 0.7);
}

.world-activity-stream article[data-kind="success"] {
  border-color: rgb(63 185 80 / 0.65);
}

.world-activity-stream article[data-actionable="true"] {
  pointer-events: auto;
  cursor: pointer;
}

.world-activity-stream article[data-actionable="true"]:focus-visible {
  outline: 2px solid #58a6ff;
  outline-offset: 2px;
}

.world-activity-icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: #21262d;
  color: #fff;
  font-weight: 800;
}

.world-activity-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.world-activity-copy {
  min-width: 0;
}

.world-activity-copy strong {
  display: block;
  color: #f0f6fc;
  font-size: 0.76rem;
}

.world-activity-stream p {
  margin: 0;
  overflow-wrap: anywhere;
}

.world-activity-copy strong + p {
  margin-top: 3px;
}

.world-activity-details {
  display: grid;
  gap: 2px;
  margin: 5px 0 0;
  padding: 0;
  color: #8b98a7;
  font: 0.65rem/1.35 "ForkMesh Mono", ui-monospace, monospace;
  list-style: none;
}

.world-activity-details li {
  overflow-wrap: anywhere;
}

@keyframes world-activity-in {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes world-activity-out {
  to {
    opacity: 0;
    transform: translateY(-8px);
  }
}

@media (max-width: 680px) {
  .world-diagnostics,
  .world-diagnostics:not(.world-chat-terminal),
  .world-chat-terminal:not([open]),
  .world-chat-terminal.world-chat-terminal--debug-hidden:not([open]) {
    bottom: calc(max(10px, env(safe-area-inset-bottom)) + 58px);
  }

  .world-chat-terminal:not([open]) .world-chat-terminal-body {
    height: min(68dvh, 560px);
  }

  .world-activity-stream {
    bottom: calc(max(10px, env(safe-area-inset-bottom)) + 124px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .world-diagnostics,
  .world-activity-stream article {
    transition: none;
    animation-duration: 1ms;
  }
}

/* -------------------------------------------------------------------------
   Primer product UI

   The World is intentionally framework-free, so these are the functional
   Primer primitives and component recipes used by the HUD rather than a
   second component runtime. Feature CSS above still owns placement and
   animation; this layer owns the shared visual language.
   ------------------------------------------------------------------------- */
:root {
  --bgColor-default: #0d1117;
  --bgColor-muted: #161b22;
  --bgColor-inset: #010409;
  --bgColor-emphasis: #6e7681;
  --fgColor-default: #e6edf3;
  --fgColor-muted: #8d96a0;
  --fgColor-disabled: #6e7681;
  --fgColor-link: #4493f8;
  --fgColor-accent: #4493f8;
  --fgColor-success: #3fb950;
  --fgColor-attention: #d29922;
  --fgColor-danger: #f85149;
  --fgColor-onEmphasis: #ffffff;
  --borderColor-default: #30363d;
  --borderColor-muted: #21262d;
  --borderColor-emphasis: #8b949e;
  --borderColor-accent-emphasis: #1f6feb;
  --borderColor-success-emphasis: #238636;
  --borderColor-danger-emphasis: #da3633;
  --control-bgColor-rest: #21262d;
  --control-bgColor-hover: #30363d;
  --control-bgColor-active: #282e33;
  --control-borderColor-rest: rgb(240 246 252 / 0.1);
  --control-borderColor-emphasis: #8b949e;
  --button-primary-bgColor-rest: #238636;
  --button-primary-bgColor-hover: #2ea043;
  --button-primary-bgColor-active: #238636;
  --button-danger-bgColor-hover: #da3633;
  --button-danger-fgColor-rest: #f85149;
  --focus-outlineColor: #1f6feb;
  --overlay-bgColor: #161b22;
  --overlay-borderColor: #30363d;
  --overlay-shadow: 0 8px 24px rgb(1 4 9 / 0.48);
  --base-size-4: 4px;
  --base-size-8: 8px;
  --base-size-12: 12px;
  --base-size-16: 16px;
  --base-size-24: 24px;
  --base-size-32: 32px;
  --borderRadius-small: 3px;
  --borderRadius-medium: 6px;
  --borderRadius-large: 12px;
  --base-text-weight-normal: 400;
  --base-text-weight-medium: 500;
  --base-text-weight-semibold: 600;

  /* Keep the existing World API stable while every HUD feature moves through
     the same Primer functional tokens. */
  --world-ink: var(--bgColor-default);
  --world-ink-soft: var(--bgColor-muted);
  --world-panel: rgb(22 27 34 / 0.96);
  --world-panel-solid: var(--overlay-bgColor);
  --world-line: var(--borderColor-default);
  --world-line-strong: var(--borderColor-default);
  --world-copy: var(--fgColor-default);
  --world-muted: var(--fgColor-muted);
  --world-mint: var(--fgColor-accent);
  --world-mint-deep: var(--focus-outlineColor);
  --world-sun: var(--fgColor-attention);
  --world-sky: #79c0ff;
  --world-danger: var(--fgColor-danger);
  --primer-accent-emphasis: var(--focus-outlineColor);
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica,
    Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
}

.fm-world,
.world-hud {
  color: var(--fgColor-default);
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica,
    Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  font-size: 14px;
  line-height: 1.5;
}

.world-hud :is(h1, h2, h3, h4, strong) {
  font-family: inherit;
}

.world-hud :is(.world-eyebrow, .world-mono) {
  color: var(--fgColor-muted);
  font-family:
    ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
    monospace;
  font-weight: var(--base-text-weight-semibold);
  letter-spacing: 0.04em;
}

/* Overlay, Box, Dialog, and card surfaces. */
.world-hud :is(
  .world-detail,
  .world-settings,
  .world-account,
  .world-office-lobby,
  .world-office-room,
  .world-office-task-panel,
  .world-office-task-checkin,
  .world-office-chat,
  .world-map,
  .world-saved-views,
  .world-shot-dialog,
  .world-chat-terminal,
  .world-notice,
  .world-tour-card
) {
  border: 1px solid var(--overlay-borderColor);
  border-radius: var(--borderRadius-medium);
  background: var(--overlay-bgColor);
  color: var(--fgColor-default);
  box-shadow: var(--overlay-shadow);
}

.world-hud :is(
  .world-detail-header,
  .world-office-panel-heading,
  .world-account-heading
) {
  border-bottom-color: var(--borderColor-default);
  background: var(--bgColor-muted);
}

.world-detail-header {
  padding: var(--base-size-16) var(--base-size-24);
}

.world-detail-header::before {
  display: none;
}

.world-detail-header h2 {
  margin-top: var(--base-size-4);
  font-size: clamp(1.5rem, 4vw, 2rem);
  line-height: 1.25;
  letter-spacing: -0.02em;
}

.world-detail-scroll {
  padding: var(--base-size-24);
}

/* Primer Button: secondary is the default; primary and danger are explicit. */
.world-hud :is(
  .world-primary-action,
  .world-secondary-action,
  .world-link-action,
  .world-share-view-button,
  .world-detail-close,
  .world-settings-close,
  .world-office-panel-heading > button,
  .world-office-panel-actions button,
  .world-office-task-manager button,
  .world-office-task-controls button,
  .world-office-task-checkin button,
  .world-account-access button,
  .world-session-actions button,
  .world-account-form > button,
  .world-account-signed-in > button,
  .world-daylight-options button,
  .world-shot-tools button,
  .world-shot-undo,
  .world-shot-ghost,
  .world-shot-share button
) {
  min-height: 32px;
  border: 1px solid var(--control-borderColor-rest);
  border-radius: var(--borderRadius-medium);
  background: var(--control-bgColor-rest);
  color: var(--fgColor-default);
  padding: 5px 12px;
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.04) inset;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: var(--base-text-weight-semibold);
  line-height: 20px;
  text-transform: none;
}

.world-hud :is(
  .world-secondary-action,
  .world-share-view-button,
  .world-detail-close,
  .world-settings-close,
  .world-office-panel-heading > button,
  .world-office-panel-actions button,
  .world-office-task-manager button,
  .world-office-task-controls button,
  .world-office-task-checkin button,
  .world-account-access button,
  .world-session-actions button,
  .world-daylight-options button,
  .world-shot-tools button,
  .world-shot-undo,
  .world-shot-ghost,
  .world-shot-share button
):hover {
  border-color: var(--control-borderColor-emphasis);
  background: var(--control-bgColor-hover);
  color: var(--fgColor-default);
}

.world-hud :is(
  .world-primary-action,
  .world-account-form > button,
  .world-office-composer > button,
  .world-shot-primary
) {
  border-color: rgb(240 246 252 / 0.1);
  background: var(--button-primary-bgColor-rest);
  color: var(--fgColor-onEmphasis);
}

.world-hud :is(
  .world-primary-action,
  .world-account-form > button,
  .world-office-composer > button,
  .world-shot-primary
):hover {
  background: var(--button-primary-bgColor-hover);
  color: var(--fgColor-onEmphasis);
}

.world-hud :is(
  .world-danger-action,
  .world-office-task-delete,
  [data-world-session-revoke="all"]
) {
  border-color: var(--borderColor-danger-emphasis);
  background: var(--control-bgColor-rest);
  color: var(--button-danger-fgColor-rest);
}

.world-hud :is(
  .world-danger-action,
  .world-office-task-delete,
  [data-world-session-revoke="all"]
):hover {
  border-color: var(--button-danger-bgColor-hover);
  background: var(--button-danger-bgColor-hover);
  color: var(--fgColor-onEmphasis);
}

.world-hud :is(button, a, input, select, textarea):focus-visible {
  border-color: var(--focus-outlineColor);
  outline: 2px solid var(--focus-outlineColor);
  outline-offset: -1px;
  box-shadow: 0 0 0 3px rgb(31 111 235 / 0.3);
}

.world-hud :is(button, input, select, textarea):disabled {
  border-color: var(--borderColor-muted);
  background: var(--control-bgColor-rest);
  color: var(--fgColor-disabled);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.7;
}

/* Primer FormControl. */
.world-hud :is(
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="url"],
  input[type="number"],
  select,
  textarea
) {
  border: 1px solid var(--borderColor-default);
  border-radius: var(--borderRadius-medium);
  background: var(--bgColor-default);
  color: var(--fgColor-default);
  box-shadow: 0 0 transparent;
  font-family: inherit;
  font-size: 0.875rem;
}

.world-hud :is(input, textarea)::placeholder {
  color: var(--fgColor-muted);
  opacity: 1;
}

.world-hud :is(input[type="checkbox"], input[type="radio"]) {
  accent-color: var(--focus-outlineColor);
}

/* UnderlineNav treatment for settings and account tabs. */
.world-settings-tabs,
.world-account-tabs {
  display: flex;
  gap: var(--base-size-16);
  margin-top: var(--base-size-16);
  overflow-x: auto;
  border: 0;
  border-bottom: 1px solid var(--borderColor-default);
}

.world-settings-tabs button,
.world-account-tabs button {
  position: relative;
  min-height: 40px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--fgColor-muted);
  padding: 8px 4px;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: var(--base-text-weight-semibold);
  letter-spacing: 0;
  text-transform: none;
}

.world-settings-tabs button + button,
.world-account-tabs button + button {
  border-left: 0;
}

.world-settings-tabs button:hover,
.world-account-tabs button:hover,
.world-settings-tabs button:focus-visible,
.world-account-tabs button:focus-visible {
  background: transparent;
  color: var(--fgColor-default);
}

.world-settings-tabs button[aria-selected="true"],
.world-account-tabs button[aria-selected="true"] {
  background: transparent;
  color: var(--fgColor-default);
}

.world-settings-tabs button[aria-selected="true"]::after,
.world-account-tabs button[aria-selected="true"]::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  border-radius: 2px 2px 0 0;
  background: #f78166;
  content: "";
}

/* Preferences are composed from Primer Box and FormControl patterns. */
.world-settings {
  padding: var(--base-size-24);
}

.world-settings h2 {
  margin-top: 0;
  font-size: 1.5rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

.world-settings-close,
.world-detail-close {
  display: inline-grid;
  width: 32px;
  height: 32px;
  min-height: 32px;
  place-items: center;
  padding: 0;
  color: var(--fgColor-muted);
}

/* HUD popout chrome stays reachable while the panel body scrolls. The
   translucent header also keeps underlying copy from showing through the
   close control without turning the popout back into an opaque slab. */
.world-detail-header,
.world-settings-heading,
.world-account-heading,
.world-chat-heading,
.world-office-panel-heading,
.world-office-chat__heading {
  position: sticky;
  top: 0;
  z-index: 12;
  background: rgb(13 17 23 / 0.72);
  box-shadow: 0 1px 0 rgb(139 148 158 / 0.34);
  backdrop-filter: blur(18px) saturate(1.2);
}

.world-detail-close,
.world-settings-close,
.world-account-heading > button,
.world-chat-heading > button,
.world-office-panel-heading > button,
.world-office-chat__heading > button {
  position: sticky;
  top: 12px;
  z-index: 13;
  flex: 0 0 auto;
}

.world-account-access {
  margin-top: var(--base-size-16);
  border: 1px solid var(--borderColor-default);
  border-radius: var(--borderRadius-medium);
  background: var(--bgColor-muted);
  padding: var(--base-size-16);
}

.world-account-access strong {
  font-size: 0.875rem;
}

.world-account-access span {
  color: var(--fgColor-muted);
  font-size: 0.75rem;
}

.world-setting-group {
  margin-top: var(--base-size-24);
  border: 0;
  padding: 0;
}

.world-setting-group legend,
.world-work-issue-heading {
  margin-bottom: var(--base-size-8);
  color: var(--fgColor-muted);
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: var(--base-text-weight-semibold);
  letter-spacing: 0;
  text-transform: none;
}

.world-setting-group > small {
  display: block;
  margin-top: var(--base-size-8);
  color: var(--fgColor-muted);
  font-size: 0.75rem;
  line-height: 1.5;
}

.world-theme-option,
.world-daylight-control,
.world-light-control,
.world-privacy-option,
.world-status-editor,
.world-session {
  border-color: var(--borderColor-default);
  border-radius: var(--borderRadius-medium);
  background: var(--bgColor-muted);
}

/* Primer Counter + Box patterns for assigned work. */
.world-work-stats {
  gap: var(--base-size-8);
  margin-bottom: var(--base-size-16);
}

.world-work-stats div {
  gap: var(--base-size-4);
  border: 1px solid var(--borderColor-default);
  border-radius: var(--borderRadius-medium);
  background: var(--bgColor-muted);
  padding: var(--base-size-12) var(--base-size-16);
}

.world-work-stats strong {
  color: var(--fgColor-default);
  font-family: inherit;
  font-size: 1.25rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.25;
}

.world-work-stats span {
  color: var(--fgColor-muted);
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: var(--base-text-weight-medium);
  letter-spacing: 0;
  text-transform: none;
}

.world-office-task-list {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--borderColor-default);
  border-radius: var(--borderRadius-medium);
  background: var(--bgColor-default);
  padding: 0;
}

.world-office-task {
  gap: var(--base-size-16);
  border: 0;
  border-bottom: 1px solid var(--borderColor-muted);
  border-radius: 0;
  background: var(--bgColor-default);
  padding: var(--base-size-16);
}

.world-office-task:last-child {
  border-bottom: 0;
}

.world-office-task:hover {
  background: var(--bgColor-muted);
}

.world-office-task[data-status="active"] {
  border-color: var(--borderColor-muted);
  background: rgb(31 111 235 / 0.08);
}

.world-office-task[data-status="done"] {
  border-color: var(--borderColor-muted);
  background: var(--bgColor-default);
  opacity: 1;
}

.world-office-task[data-status="done"] .world-office-task-copy {
  opacity: 0.72;
}

.world-office-task[data-kind="bid"] {
  border-color: var(--borderColor-muted);
  background: rgb(210 153 34 / 0.06);
}

.world-office-task-copy {
  gap: var(--base-size-8);
}

.world-office-task-copy > div {
  gap: var(--base-size-4);
}

.world-office-task-copy strong {
  color: var(--fgColor-default);
  font-size: 0.875rem;
  font-weight: var(--base-text-weight-semibold);
  line-height: 1.4;
}

.world-office-task-copy small,
.world-office-task-details,
.world-office-task-copy small.world-office-task-agent-run {
  color: var(--fgColor-muted);
  font-family: inherit;
  font-size: 0.75rem;
  line-height: 1.5;
}

.world-office-task-state {
  width: 14px;
  height: 14px;
  margin-top: 3px;
  border-color: var(--fgColor-muted);
}

.world-office-task[data-status="active"] .world-office-task-state {
  border-color: var(--fgColor-accent);
  border-top-color: transparent;
  box-shadow: none;
}

.world-office-task[data-status="done"] .world-office-task-state {
  border-color: var(--fgColor-accent);
  background: var(--fgColor-accent);
}

.world-work-issue[data-status="issue"] .world-office-task-state {
  background: var(--fgColor-accent);
  box-shadow: none;
}

.world-office-task-controls {
  gap: var(--base-size-8);
}

.world-office-task-controls time {
  min-width: 52px;
  color: var(--fgColor-muted);
  font-family:
    ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
    monospace;
  font-size: 0.75rem;
}

.world-office-task-controls .world-office-task-return {
  border-color: var(--control-borderColor-rest);
  color: var(--fgColor-default);
}

.world-office-task-progress-label,
.world-office-task-bid-badge {
  min-height: 20px;
  border-color: rgb(56 139 253 / 0.4);
  border-radius: 2em;
  background: rgb(56 139 253 / 0.15);
  color: var(--fgColor-accent);
  padding: 0 7px;
  font-family: inherit;
  font-size: 0.6875rem;
  font-weight: var(--base-text-weight-medium);
  letter-spacing: 0;
  line-height: 18px;
  text-transform: none;
}

.world-office-task-bid-badge {
  border-color: rgb(210 153 34 / 0.4);
  background: rgb(210 153 34 / 0.15);
  color: #e3b341;
}

.world-office-task-completion,
.world-office-task-completion-editor {
  margin-top: var(--base-size-8);
  border: 1px solid var(--borderColor-muted);
  border-left: 3px solid var(--borderColor-accent-emphasis);
  border-radius: var(--borderRadius-medium);
  background: var(--bgColor-muted);
  padding: var(--base-size-12);
}

.world-office-task-completion > span,
.world-office-task-completion-editor > span {
  color: var(--fgColor-accent);
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: var(--base-text-weight-semibold);
  letter-spacing: 0;
  text-transform: none;
}

.world-office-task-completion p {
  color: var(--fgColor-default);
  font-size: 0.8125rem;
}

.world-office-task-completion-editor textarea {
  background: var(--bgColor-default);
  font-family: inherit;
}

.world-office-task-empty,
.world-session-empty {
  border: 0;
  background: var(--bgColor-default);
  color: var(--fgColor-muted);
  padding: var(--base-size-32) var(--base-size-16);
}

.world-office-panel-status:empty {
  display: none;
}

.world-office-panel-status {
  border-color: var(--borderColor-muted);
  color: var(--fgColor-muted);
  font-family: inherit;
}

.world-work-issue-link {
  border-color: var(--control-borderColor-rest);
  border-radius: var(--borderRadius-medium);
  background: var(--control-bgColor-rest);
  color: var(--fgColor-default);
  font-family: inherit;
  font-size: 0.75rem;
  letter-spacing: 0;
  text-transform: none;
}

/* Compact HUD launchers and notices use the same controls and neutral glass. */
.world-brand {
  border: 1px solid var(--borderColor-default);
  background: rgb(13 17 23 / 0.88);
  box-shadow: var(--overlay-shadow);
}

.world-connection-ring {
  border-color: var(--fgColor-success);
  box-shadow: none;
}

.world-icon-button,
.world-top-link,
.world-share-view-button {
  border-color: var(--control-borderColor-rest);
  background: rgb(33 38 45 / 0.92);
  color: var(--fgColor-default);
}

.world-icon-button:hover,
.world-top-link:hover,
.world-share-view-button:hover {
  border-color: var(--control-borderColor-emphasis);
  background: var(--control-bgColor-hover);
}

.world-top-link[aria-pressed="true"] {
  border-color: var(--borderColor-accent-emphasis);
  background: var(--control-bgColor-active);
  color: var(--fgColor-accent);
}

.world-notification-button [data-world-notification-count],
.world-admin-errors-button [data-world-admin-error-count],
.world-tasks-button [data-world-task-count] {
  border-color: var(--bgColor-default);
  color: var(--fgColor-onEmphasis);
  font-family: inherit;
}

.world-notification-button [data-world-notification-count] {
  background: var(--fgColor-attention);
  color: var(--bgColor-default);
}

.world-admin-errors-button [data-world-admin-error-count] {
  background: var(--fgColor-danger);
}

.world-tasks-button [data-world-task-count] {
  background: var(--fgColor-accent);
}

/* In compact mode the actionable counters live in their own list beside the
   avatar. They remain the real notification/error/task controls, so clicking
   one opens its destination. Expanding the HUD restores each counter to the
   corner of its respective icon. */
.world-hud[data-hud-expanded="false"]
  .world-top-link:has(> .world-tool-count:not([hidden])) {
  display: inline-grid;
  width: auto;
  min-width: 24px;
  height: 24px;
  min-height: 24px;
  margin-inline: 2px;
  place-items: center;
  overflow: visible;
  border: 0;
  background: transparent;
  padding: 0;
  opacity: 1;
  pointer-events: auto;
  transform: none;
  visibility: visible;
}

.world-hud[data-hud-expanded="false"]
  .world-top-link:has(> .world-tool-count:not([hidden]))
  > :not(.world-tool-count) {
  display: none;
}

.world-hud[data-hud-expanded="false"] .world-tool-count {
  position: static;
  display: grid;
  min-width: 22px;
  height: 22px;
  place-items: center;
  border: 2px solid var(--bgColor-default);
  border-radius: 2em;
  padding: 0 5px;
  box-shadow: 0 2px 8px rgb(1 4 9 / 0.48);
  font-size: 0.6875rem;
  font-weight: var(--base-text-weight-semibold);
  line-height: 1;
  transition:
    transform 160ms ease,
    box-shadow 160ms ease;
}

.world-hud[data-hud-expanded="false"]
  .world-top-link:has(> .world-tool-count:not([hidden])):is(:hover, :focus-visible)
  .world-tool-count {
  transform: translateY(-1px);
  box-shadow:
    0 0 0 2px var(--bgColor-default),
    0 0 0 4px var(--focus-outlineColor);
}

.world-hud[data-hud-expanded="false"]
  .world-top-link[data-world-tooltip]:has(> .world-tool-count:not([hidden]))::after {
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  z-index: 20;
  width: max-content;
  max-width: 180px;
  transform: translateX(-50%) translateY(-2px);
  border: 1px solid var(--borderColor-default);
  border-radius: var(--borderRadius-medium);
  background: var(--bgColor-muted);
  color: var(--fgColor-default);
  padding: 5px 8px;
  box-shadow: var(--overlay-shadow);
  content: attr(data-world-tooltip);
  font-size: 0.75rem;
  font-weight: var(--base-text-weight-semibold);
  line-height: 1.25;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 120ms ease,
    transform 120ms ease;
  white-space: nowrap;
}

.world-hud[data-hud-expanded="false"]
  .world-top-link[data-world-tooltip]:has(> .world-tool-count:not([hidden])):is(:hover, :focus-visible)::after {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}

.world-activity-stream article {
  border-color: var(--borderColor-default);
  border-radius: var(--borderRadius-medium);
  background: rgb(22 27 34 / 0.96);
  color: var(--fgColor-default);
  font-family: inherit;
}

@media (max-width: 720px) {
  .world-settings {
    padding: var(--base-size-16);
  }

  .world-settings-tabs,
  .world-account-tabs {
    gap: var(--base-size-12);
  }

  .world-work-stats {
    grid-template-columns: 1fr;
  }

  .world-office-task {
    grid-template-columns: minmax(0, 1fr);
  }

  .world-office-task-controls {
    justify-content: flex-start;
    padding-left: 22px;
  }

  .world-office-task-controls time {
    margin-right: auto;
    text-align: left;
  }
}

/* Fixed launcher geometry. The account avatar reveals these controls, but
   every revealed shortcut keeps the same square footprint. */
.fm-world .world-shirt-badge {
  width: 56px;
  height: 56px;
  border-radius: 50%;
}

.world-shirt-avatar {
  border-radius: 50%;
  clip-path: circle(50%);
}

.world-hud-icon {
  display: grid;
  width: 17px;
  height: 17px;
  place-items: center;
}

.world-hud-icon svg {
  display: block;
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentcolor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.world-right-rail,
.world-right-rail[data-expanded="true"] {
  width: 48px;
  gap: 6px;
  overflow: visible;
}

.world-map,
.world-saved-views {
  width: 48px;
  justify-self: end;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.world-map-list {
  display: grid;
  gap: 6px;
  max-height: none;
  overflow: visible;
  padding: 0;
}

.world-map-list li,
.world-saved-view {
  width: 48px;
  height: 48px;
}

.world-map-button,
.world-share-view-button,
.world-remember-view {
  display: grid;
  width: 48px;
  min-width: 48px;
  height: 48px;
  min-height: 48px;
  grid-template-columns: 1fr;
  grid-template-rows: 19px 8px;
  place-content: center;
  place-items: center;
  gap: 3px;
  border: 1px solid var(--primer-border-default);
  border-radius: 6px;
  background: var(--primer-control-bg);
  padding: 0;
  color: var(--primer-fg-default);
  cursor: pointer;
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.04) inset;
  text-align: center;
}

.world-map-button:hover,
.world-map-button:focus-visible,
.world-share-view-button:hover,
.world-share-view-button:focus-visible,
.world-remember-view:hover,
.world-remember-view:focus-visible {
  border-color: #8b949e;
  background: var(--primer-control-hover);
  color: var(--primer-fg-default);
  outline: none;
}

.world-map-button[aria-current="true"] {
  border-color: #8b949e;
  background: var(--primer-control-hover);
  box-shadow: inset 0 -2px var(--primer-fg-muted);
}

.world-map-icon,
.world-share-view-button > span:first-child,
.world-remember-view > span:first-child {
  display: grid;
  place-items: center;
  color: inherit;
  font-size: 0.8rem;
  line-height: 1;
}

.world-map-label-copy,
.world-share-view-button > span:last-child,
.world-remember-view > span:last-child {
  display: block;
  width: 44px;
  overflow: hidden;
  color: var(--primer-fg-muted);
  font: 700 0.4rem/1 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: -0.01em;
  text-align: center;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.world-saved-views {
  display: grid;
  gap: 6px;
}

.world-saved-view-list {
  display: grid;
  grid-template-columns: 48px;
  gap: 6px;
  max-height: min(270px, 40vh);
  overflow-x: visible;
  overflow-y: auto;
  padding: 0;
  scrollbar-width: none;
}

.world-saved-view-list:empty {
  display: none;
}

.world-saved-view > button:first-child {
  width: 48px;
  height: 48px;
  gap: 0;
  padding: 2px;
}

.world-saved-view img,
.world-saved-view-placeholder {
  width: 42px;
  height: 42px;
  border-radius: 4px;
}

.world-saved-view-edit {
  top: 2px;
  right: 2px;
  width: 16px;
  height: 16px;
  padding: 0;
  font-size: 0.48rem;
}

@media (max-width: 680px) {
  .world-right-rail,
  .world-right-rail[data-expanded="true"] {
    width: 48px;
  }

  .world-saved-views {
    width: 48px;
  }
}

/* On-demand Discord bridge. This deliberately lives outside the render loop:
 * no animation, polling, or automatic message relay is attached to the World. */
.world-discord-trigger {
  position: fixed;
  right: max(12px, env(safe-area-inset-right));
  bottom: calc(max(12px, env(safe-area-inset-bottom)) + 54px);
  z-index: 62;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--primer-border-default, #30363d);
  border-radius: 6px;
  background: var(--primer-canvas-default, #0d1117);
  color: var(--primer-fg-default, #f0f6fc);
  font: 600 12px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  box-shadow: 0 8px 24px rgb(1 4 9 / 0.48);
}

.world-discord-trigger:hover,
.world-discord-trigger:focus-visible {
  border-color: var(--primer-accent-emphasis, #1f6feb);
  outline: none;
}

[data-world-discord-root] {
  position: fixed;
  z-index: 63;
  right: max(10px, env(safe-area-inset-right));
  top: max(58px, env(safe-area-inset-top));
  width: min(380px, calc(100vw - 20px));
  max-height: min(76dvh, 700px);
}

.world-discord-panel {
  display: grid;
  gap: 10px;
  overflow: auto;
  max-height: inherit;
  padding: 12px;
  border: 1px solid var(--primer-border-default, #30363d);
  border-radius: 8px;
  background: var(--primer-canvas-default, #0d1117);
  color: var(--primer-fg-default, #f0f6fc);
  box-shadow: 0 16px 32px rgb(1 4 9 / 0.58);
  font: 13px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.world-discord-panel button,
.world-discord-panel input,
.world-discord-panel select,
.world-discord-panel textarea {
  box-sizing: border-box;
  min-height: 32px;
  border: 1px solid var(--primer-border-default, #30363d);
  border-radius: 6px;
  background: var(--primer-canvas-inset, #010409);
  color: inherit;
  font: inherit;
}

.world-discord-panel button {
  padding: 0 10px;
  cursor: pointer;
}

.world-discord-panel button:hover,
.world-discord-panel button:focus-visible {
  border-color: var(--primer-accent-emphasis, #1f6feb);
  outline: none;
}

.world-discord-panel input,
.world-discord-panel select,
.world-discord-panel textarea {
  width: 100%;
  padding: 6px 8px;
}

.world-discord-panel textarea {
  min-height: 72px;
  resize: vertical;
}

.world-discord-title,
.world-discord-tools,
.world-discord-connect,
.world-discord-compose {
  display: flex;
  align-items: center;
  gap: 8px;
}

.world-discord-title {
  justify-content: space-between;
  color: var(--primer-fg-default, #f0f6fc);
  font-weight: 700;
}

.world-discord-close {
  width: 32px;
  padding: 0 !important;
}

.world-discord-connect,
.world-discord-compose {
  align-items: stretch;
  flex-wrap: wrap;
}

.world-discord-connect input,
.world-discord-compose textarea {
  flex: 1 1 180px;
}

.world-discord-setup,
.world-discord-channel-chooser,
.world-discord-messages article {
  padding: 9px;
  border: 1px solid var(--primer-border-default, #30363d);
  border-radius: 6px;
  background: var(--primer-canvas-subtle, #161b22);
}

.world-discord-setup ol {
  margin: 6px 0 0;
  padding-left: 20px;
}

.world-discord-setup p,
.world-discord-panel p {
  margin: 0;
  color: var(--primer-fg-muted, #8b949e);
}

.world-discord-state,
.world-discord-notice {
  color: var(--primer-accent-fg, #58a6ff) !important;
}

.world-discord-channel-chooser {
  display: grid;
  gap: 6px;
}

.world-discord-channel-chooser label {
  display: flex;
  gap: 6px;
  align-items: center;
}

.world-discord-channel-chooser input[type="checkbox"] {
  width: auto;
  min-height: auto;
}

.world-discord-messages {
  display: grid;
  gap: 6px;
  max-height: 220px;
  overflow: auto;
}

.world-discord-messages article {
  overflow-wrap: anywhere;
}

.world-discord-messages strong {
  color: var(--primer-fg-default, #f0f6fc);
}

@media (max-width: 680px) {
  [data-world-discord-root] {
    top: max(50px, env(safe-area-inset-top));
    max-height: 70dvh;
  }
}

/* Persistent, centered World controls. Avatar actions are gameplay controls,
   not chat controls, so they remain reachable even when the chat transcript is
   closed. The three activity totals similarly have one home at the top center
   instead of duplicating badges inside the avatar launcher. */
.world-avatar-actions {
  position: fixed;
  z-index: 58;
  bottom: max(12px, env(safe-area-inset-bottom));
  left: 50%;
  display: flex;
  max-width: calc(100vw - 160px);
  gap: 7px;
  overflow-x: auto;
  padding: 4px;
  scrollbar-width: none;
  transform: translateX(-50%);
}

.world-avatar-actions::-webkit-scrollbar {
  display: none;
}

.world-avatar-actions button {
  display: grid;
  width: 42px;
  min-width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgb(139 148 158 / 0.55);
  border-radius: 50%;
  background: rgb(13 17 23 / 0.72);
  color: #f0f6fc;
  font-size: 1.05rem;
  box-shadow: 0 8px 24px rgb(1 4 9 / 0.35);
  cursor: pointer;
  backdrop-filter: blur(16px) saturate(1.2);
}

.world-avatar-actions button:hover,
.world-avatar-actions button:focus-visible {
  border-color: #58a6ff;
  background: rgb(31 111 235 / 0.4);
  outline: none;
}

.world-status-actions {
  position: fixed;
  z-index: 59;
  top: max(10px, env(safe-area-inset-top));
  left: 50%;
  display: flex;
  align-items: center;
  gap: 7px;
  transform: translateX(-50%);
}

.world-status-actions button {
  display: inline-flex;
  min-width: 44px;
  height: 28px;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border: 1px solid rgb(139 148 158 / 0.55);
  border-radius: 999px;
  background: rgb(13 17 23 / 0.78);
  padding: 0 7px;
  color: #f0f6fc;
  box-shadow: 0 6px 18px rgb(1 4 9 / 0.32);
  cursor: pointer;
  backdrop-filter: blur(14px);
}

.world-status-actions button[hidden] {
  display: none;
}

.world-status-actions .world-prompt-button {
  min-width: 72px;
  padding-inline: 9px;
}

.world-prompt-icon {
  display: inline-flex;
  width: 13px;
  height: 13px;
}

.world-prompt-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentcolor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.world-prompt-label {
  font: 700 0.66rem/1 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.01em;
}

.world-status-actions button:disabled {
  cursor: wait;
  opacity: 0.68;
}

.world-status-action-icon {
  font-size: 0.64rem;
  line-height: 1;
}

.world-hud .world-status-actions .world-tool-count {
  position: static;
  display: inline !important;
  min-width: 0;
  height: auto;
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  font: 700 0.68rem/1 "ForkMesh Mono", ui-monospace, monospace;
  box-shadow: none;
}

.world-hud .world-status-actions .world-tool-count[hidden] {
  display: none !important;
}

/* Who-is-online pill. The roster drops down on hover or keyboard focus, and
   the click pins it open so touch — which never hovers — sees the same list. */
.world-online-menu {
  position: relative;
  display: inline-flex;
}

.world-online-dropdown {
  position: absolute;
  z-index: 1;
  top: calc(100% + 8px);
  left: 0;
  width: 244px;
  max-width: calc(100vw - 24px);
  max-height: min(52vh, 340px);
  overflow-y: auto;
  border: 1px solid rgb(139 148 158 / 0.55);
  border-radius: 12px;
  background: rgb(13 17 23 / 0.94);
  padding: 8px;
  box-shadow: 0 14px 34px rgb(1 4 9 / 0.5);
  backdrop-filter: blur(14px);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
  transition:
    opacity 120ms ease,
    transform 120ms ease;
}

/* Bridges the gap under the pill so the pointer can reach the panel. */
.world-online-dropdown::before {
  position: absolute;
  top: -8px;
  right: 0;
  left: 0;
  height: 8px;
  content: "";
}

.world-online-menu:hover .world-online-dropdown,
.world-online-menu:focus-within .world-online-dropdown,
.world-online-menu[data-open="true"] .world-online-dropdown {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.world-online-heading {
  margin: 0 0 6px;
  padding: 0 6px;
  color: #8b949e;
  font: 700 0.58rem/1.4 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-online-people {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 2px;
  list-style: none;
}

.world-status-actions .world-online-people button {
  display: grid;
  width: 100%;
  min-width: 0;
  height: auto;
  align-items: center;
  justify-content: stretch;
  border: 0;
  border-radius: 8px;
  background: transparent;
  padding: 5px 6px;
  gap: 0 8px;
  grid-template-areas:
    "flag name"
    "flag activity";
  grid-template-columns: 18px minmax(0, 1fr);
  box-shadow: none;
  text-align: left;
}

.world-status-actions .world-online-people button:hover,
.world-status-actions .world-online-people button:focus-visible {
  background: rgb(56 139 253 / 0.22);
  outline: none;
}

.world-online-flag {
  grid-area: flag;
  font-size: 0.85rem;
  line-height: 1;
}

.world-online-name {
  overflow: hidden;
  grid-area: name;
  color: #f0f6fc;
  font: 700 0.72rem/1.3 "ForkMesh Lato", system-ui, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-online-activity {
  overflow: hidden;
  grid-area: activity;
  color: #8b949e;
  font: 500 0.6rem/1.3 "ForkMesh Mono", ui-monospace, monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-online-more {
  margin: 6px 0 0;
  padding: 0 6px;
  color: #8b949e;
  font: 500 0.58rem/1.4 "ForkMesh Mono", ui-monospace, monospace;
}

/* The HUD logo is a menu button, not a reload button: it drops a switcher
   listing every dashboard page so the console is reachable without first
   backing out of the 3D city. The panel has to live on a wrapper because
   .world-brand clips itself to a circle. */
.world-brand-menu {
  position: relative;
  z-index: 3;
  display: inline-grid;
  justify-self: start;
}

.world-brand-menu > .world-brand {
  cursor: pointer;
  font: inherit;
  color: inherit;
}

/* Small caret badge so the logo reads as something that opens. */
.world-brand-menu::after {
  position: absolute;
  right: -2px;
  bottom: -2px;
  display: grid;
  width: 17px;
  height: 17px;
  border: 1px solid rgb(139 148 158 / 0.55);
  border-radius: 50%;
  background: rgb(13 17 23 / 0.94);
  color: #8b949e;
  content: "▾";
  font-size: 9px;
  line-height: 1;
  place-items: center;
  pointer-events: none;
  transition:
    transform 130ms ease,
    color 130ms ease;
}

.world-brand-menu:hover::after,
.world-brand-menu:focus-within::after {
  color: #f0f6fc;
}

.world-brand-menu[data-open="true"]::after {
  color: #f0f6fc;
  transform: rotate(180deg);
}

.world-brand-nav {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  width: 276px;
  max-width: calc(100vw - 24px);
  max-height: min(78vh, 520px);
  overflow-y: auto;
  border: 1px solid rgb(139 148 158 / 0.55);
  border-radius: 14px;
  background: rgb(13 17 23 / 0.94);
  padding: 9px;
  box-shadow: 0 18px 40px rgb(1 4 9 / 0.55);
  backdrop-filter: blur(14px);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
  /* Closed keeps the destinations out of the tab order, not merely faded.
     Visibility is stepped rather than transitioned in both directions: a
     transitioned visibility still reads "hidden" on the transition's first
     frame, and the open handler focuses the first link synchronously — a
     focus() on a hidden element is a silent no-op. */
  visibility: hidden;
  transition:
    opacity 130ms ease,
    transform 130ms ease,
    visibility 0s linear 130ms;
}

.world-brand-menu[data-open="true"] .world-brand-nav {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible;
  /* Opening drops the closing delay so the panel is focusable immediately;
     the fade still plays through opacity and transform. */
  transition:
    opacity 130ms ease,
    transform 130ms ease,
    visibility 0s;
}

.world-brand-nav-heading {
  margin: 0 0 6px;
  padding: 0 6px;
  color: #8b949e;
  font: 700 0.58rem/1.4 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-brand-nav-heading + .world-brand-nav-pages,
.world-brand-nav-heading + .world-brand-nav-chips {
  margin-bottom: 10px;
}

.world-brand-nav-pages {
  display: grid;
  gap: 2px;
}

.world-hud .world-brand-nav-link {
  display: grid;
  align-items: center;
  border-radius: 9px;
  padding: 6px 8px;
  gap: 0 10px;
  grid-template-areas:
    "icon label"
    "icon copy";
  grid-template-columns: 18px minmax(0, 1fr);
  color: inherit;
  text-decoration: none;
}

.world-hud .world-brand-nav-link:hover,
.world-hud .world-brand-nav-link:focus-visible {
  background: rgb(56 139 253 / 0.22);
  outline: none;
}

.world-brand-nav-link .world-hud-icon {
  grid-area: icon;
  color: #8b949e;
}

.world-hud .world-brand-nav-link:hover .world-hud-icon,
.world-hud .world-brand-nav-link:focus-visible .world-hud-icon {
  color: #f0f6fc;
}

.world-brand-nav-label {
  grid-area: label;
  color: #f0f6fc;
  font: 700 0.74rem/1.25 "ForkMesh Lato", system-ui, sans-serif;
}

.world-brand-nav-copy {
  overflow: hidden;
  grid-area: copy;
  color: #8b949e;
  font: 500 0.6rem/1.25 "ForkMesh Mono", ui-monospace, monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-brand-nav-chips {
  display: flex;
  padding: 0 4px;
  gap: 6px;
  flex-wrap: wrap;
}

.world-hud .world-brand-nav-chip {
  border: 1px solid rgb(139 148 158 / 0.4);
  border-radius: 999px;
  padding: 4px 10px;
  color: #c9d1d9;
  font: 600 0.62rem/1.3 "ForkMesh Mono", ui-monospace, monospace;
  text-decoration: none;
}

.world-hud .world-brand-nav-chip:hover,
.world-hud .world-brand-nav-chip:focus-visible {
  border-color: rgb(56 139 253 / 0.75);
  background: rgb(56 139 253 / 0.22);
  color: #f0f6fc;
  outline: none;
}

/* Reloading the world used to be the logo's only job, so it keeps a home
   here rather than disappearing behind the new menu. */
.world-hud .world-brand-nav-reload {
  display: flex;
  width: 100%;
  height: auto;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  border: 1px solid rgb(139 148 158 / 0.4);
  border-radius: 9px;
  background: transparent;
  padding: 7px 8px;
  gap: 8px;
  color: #c9d1d9;
  font: 600 0.64rem/1.3 "ForkMesh Mono", ui-monospace, monospace;
  cursor: pointer;
  box-shadow: none;
}

.world-hud .world-brand-nav-reload:hover,
.world-hud .world-brand-nav-reload:focus-visible {
  border-color: rgb(56 139 253 / 0.75);
  background: rgb(56 139 253 / 0.22);
  color: #f0f6fc;
  outline: none;
}

@media (prefers-reduced-motion: reduce) {
  .world-online-dropdown,
  .world-brand-nav,
  .world-brand-menu[data-open="true"] .world-brand-nav,
  .world-brand-menu::after {
    transition: none;
  }
}

/* Newest messages are inserted first by the controller. */
.world-native-chat #fullChatMessages {
  align-content: start;
}

.world-native-chat .chat-attachment-wrapper,
.world-native-chat .chat-attachment-preview,
.world-native-chat .chat-attachment-card {
  width: min(180px, 100%);
}

.world-native-chat .chat-attachment-image {
  width: auto;
  max-width: min(180px, 100%);
  max-height: 120px;
}

/* The chat launcher no longer carries a second online/live dot, and the debug
   glyph is just the nine health pixels without an inner circular ring. */
.world-chat-terminal-avatar::after {
  display: none;
  content: none;
}

.world-diagnostics-orb {
  border: 0;
  background: transparent;
}

@media (max-width: 680px) {
  .world-avatar-actions {
    max-width: calc(100vw - 24px);
  }

  .world-avatar-actions button {
    width: 38px;
    min-width: 38px;
    height: 38px;
  }
}

/* Sortable activity boards: Tasks, Notifications, and Errors share one
   energetic, information-dense card language while keeping every row readable. */
.world-settings[data-active-tab="work"] {
  width: min(
    var(--world-settings-user-width, 1180px),
    calc(100vw - var(--safe-left) - var(--safe-right) - 28px)
  );
}

.world-settings-resize {
  position: absolute;
  z-index: 5;
  inset: 0 auto 0 -7px;
  width: 14px;
  cursor: ew-resize;
  touch-action: none;
}

.world-settings-resize::after {
  position: absolute;
  top: 44%;
  left: 5px;
  width: 3px;
  height: 52px;
  border-radius: 3px;
  background: rgb(88 166 255 / 0.45);
  content: "";
}

.world-work-quick-entry {
  position: sticky;
  z-index: 3;
  top: -18px;
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 16px;
  border: 1px solid rgb(88 166 255 / 0.38);
  border-radius: 15px;
  background:
    linear-gradient(105deg, rgb(35 134 54 / 0.18), transparent 28%),
    linear-gradient(135deg, #111a24, #0c1118);
  padding: 9px;
  box-shadow:
    0 12px 30px rgb(0 0 0 / 0.24),
    inset 0 1px rgb(255 255 255 / 0.04);
}

.world-work-quick-icon {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 11px;
  background: linear-gradient(145deg, #2ea043, #238636);
  color: white;
  font-size: 1.25rem;
  box-shadow: 0 5px 18px rgb(46 160 67 / 0.28);
}

.world-work-quick-entry label {
  display: block;
  flex: 0 1 150px;
}

.world-work-quick-entry .world-work-quick-title {
  flex: 1 1 300px;
}

.world-work-quick-entry .world-work-quick-repository {
  flex: 0 1 180px;
}

.world-work-quick-entry :is(input, select, button) {
  width: 100%;
  min-height: 36px;
  border: 1px solid #303b48;
  border-radius: 10px;
  background: rgb(6 12 18 / 0.76);
  color: #f0f6fc;
  padding: 7px 10px;
  font: 650 0.72rem/1.2 system-ui, sans-serif;
}

.world-work-quick-entry :is(input, select):focus {
  border-color: #58a6ff;
  outline: 0;
  box-shadow: 0 0 0 3px rgb(88 166 255 / 0.18);
}

.world-work-quick-entry button {
  flex: 0 0 78px;
  width: auto;
  border-color: #39d353;
  background: linear-gradient(180deg, #2ea043, #238636);
  cursor: pointer;
  box-shadow: 0 7px 20px rgb(35 134 54 / 0.2);
}

.world-work-quick-entry > p {
  position: absolute;
  top: calc(100% + 2px);
  left: 12px;
  margin: 0;
}

.world-task-board,
.world-activity-board {
  border: 1px solid #273444;
  border-radius: 18px;
  background:
    radial-gradient(circle at 88% -10%, rgb(88 166 255 / 0.11), transparent 30%),
    linear-gradient(145deg, #0c131b, #090e14);
  padding: 14px;
  box-shadow:
    0 24px 60px rgb(0 0 0 / 0.26),
    inset 0 1px rgb(255 255 255 / 0.035);
}

.world-task-board-heading,
.world-activity-board-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
}

.world-task-board-heading h3,
.world-activity-board-heading h3 {
  margin: 2px 0 0;
  color: #f0f6fc;
  font: 750 clamp(1.25rem, 2vw, 1.7rem)/1.05 "ForkMesh Favorit", system-ui,
    sans-serif;
  letter-spacing: -0.035em;
}

.world-activity-board-heading > div:first-child > span {
  display: block;
  margin-top: 5px;
  color: #8b98a7;
  font-size: 0.68rem;
}

.world-task-board-tools,
.world-activity-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.world-task-board-tools :is(input, select, button),
.world-activity-tools :is(input, select, button) {
  min-height: 34px;
  border: 1px solid #303b48;
  border-radius: 10px;
  background: #101821;
  color: #c9d1d9;
  padding: 6px 9px;
  font: 650 0.68rem/1.2 system-ui, sans-serif;
}

.world-task-board-tools input,
.world-activity-tools input {
  width: clamp(140px, 18vw, 225px);
}

.world-task-board-tools button,
.world-activity-tools button {
  min-width: 34px;
  cursor: pointer;
  color: #79c0ff;
  font-size: 1rem;
}

.world-task-board-tools button.is-loading {
  animation: world-activity-spin 700ms linear infinite;
}

.world-task-quick-filters {
  display: inline-flex;
  gap: 4px;
}

/* One page of task rows at a time; the pager only appears once the filtered
   catalog is longer than a page. */
.world-task-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 8px 0 2px;
  color: #8b98a7;
  font-size: 0.68rem;
}

.world-task-pager button {
  border: 1px solid #2c3644;
  border-radius: 6px;
  background: rgb(22 27 34 / 0.9);
  padding: 4px 10px;
  color: #c9d1d9;
  font: inherit;
  cursor: pointer;
}

.world-task-pager button:hover:not(:disabled) {
  border-color: #58a6ff;
  color: #c8e1ff;
}

.world-task-pager button:disabled {
  opacity: 0.45;
  cursor: default;
}

.world-task-board-tools .world-task-quick-filters button {
  width: auto;
  min-width: 62px;
  color: #aeb8c4;
  font-size: 0.68rem;
}

.world-task-board-tools .world-task-quick-filters button[aria-pressed="true"] {
  border-color: #58a6ff;
  background: rgb(88 166 255 / 0.15);
  color: #c8e1ff;
}

.world-task-board-tools .world-task-batch-size {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #8b98a7;
  font-size: 0.65rem;
  white-space: nowrap;
}

.world-task-board-tools .world-task-batch-size input {
  width: 58px;
}

.world-task-board-tools [data-world-task-batch-send] {
  width: auto;
  min-width: 92px;
  color: #d2a8ff;
  font-size: 0.68rem;
}

.world-task-board-tools :is(input, select, button):focus-visible,
.world-activity-tools :is(input, select, button):focus-visible {
  border-color: #58a6ff;
  outline: 0;
  box-shadow: 0 0 0 3px rgb(88 166 255 / 0.16);
}

.world-task-board .world-work-stats,
.world-activity-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 12px;
}

.world-task-board .world-work-stats div,
.world-activity-stats div {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-height: 49px;
  border: 1px solid rgb(88 166 255 / 0.2);
  border-radius: 13px;
  background: linear-gradient(135deg, rgb(88 166 255 / 0.11), rgb(255 255 255 / 0.018));
  padding: 10px 13px;
}

.world-task-board .world-work-stats div::after,
.world-activity-stats div::after {
  content: "";
  position: absolute;
  right: -8px;
  bottom: -24px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.07;
}

.world-activity-stats div[data-tone="danger"] {
  color: #ff7b8a;
  border-color: rgb(248 81 73 / 0.28);
  background: linear-gradient(135deg, rgb(248 81 73 / 0.14), transparent);
}

.world-activity-stats div[data-tone="warning"] {
  color: #e3b341;
  border-color: rgb(210 153 34 / 0.28);
  background: linear-gradient(135deg, rgb(210 153 34 / 0.13), transparent);
}

.world-activity-stats div[data-tone="success"] {
  color: #56d364;
  border-color: rgb(46 160 67 / 0.28);
  background: linear-gradient(135deg, rgb(46 160 67 / 0.13), transparent);
}

.world-activity-stats div[data-tone="accent"] {
  color: #d2a8ff;
  border-color: rgb(163 113 247 / 0.3);
  background: linear-gradient(135deg, rgb(163 113 247 / 0.14), transparent);
}

.world-activity-stats div[data-tone="cool"] {
  color: #79c0ff;
}

.world-task-board .world-work-stats strong,
.world-activity-stats strong {
  color: currentColor;
  font: 750 1.28rem/1 "ForkMesh Favorit", system-ui, sans-serif;
}

.world-task-board .world-work-stats span,
.world-activity-stats span {
  color: #8b98a7;
  font: 700 0.58rem/1 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.world-task-table,
.world-activity-table {
  display: grid;
  gap: 10px;
  overflow: visible;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  list-style: none;
}

.world-task-row,
.world-activity-row {
  position: relative;
  overflow: hidden;
  border: 1px solid #283545 !important;
  border-left: 4px solid #58a6ff !important;
  border-radius: 17px !important;
  background:
    linear-gradient(110deg, rgb(88 166 255 / 0.07), transparent 28%),
    #101720 !important;
  padding: 14px !important;
  opacity: 1 !important;
  box-shadow: 0 8px 25px rgb(0 0 0 / 0.16);
  transition:
    transform 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease;
}

.world-task-row:hover,
.world-activity-row:hover {
  transform: translateY(-2px);
  border-color: #416180 !important;
  box-shadow: 0 15px 34px rgb(0 0 0 / 0.25);
}

.world-task-row[data-status="active"] {
  border-left-color: #d2a8ff !important;
  background:
    linear-gradient(110deg, rgb(163 113 247 / 0.12), transparent 30%),
    #111720 !important;
}

.world-task-row[data-status="done"] {
  border-left-color: #56d364 !important;
  background:
    linear-gradient(110deg, rgb(46 160 67 / 0.1), transparent 30%),
    #0f171a !important;
}

.world-task-row[data-kind="bid"] {
  border-left-color: #e3b341 !important;
}

.world-activity-board--notifications,
.world-activity-board--errors {
  overflow-x: auto;
}

/* The later generic .world-activity-row rule (46px avatar + copy grid) must
   never win over the tabular layout, or every cell stacks vertically. */
.world-notification-table-header,
.world-notification-row {
  display: grid !important;
  min-width: 1220px;
  gap: 0 !important;
  grid-template-columns:
    108px minmax(160px, 1.1fr) minmax(220px, 1.7fr) 74px
    minmax(130px, 1fr) minmax(120px, 0.9fr) 142px 118px 96px !important;
  align-items: center;
}

.world-notification-table-header,
.world-error-table-header,
.world-error-group-header {
  min-height: 36px;
  border: 1px solid #324152;
  background: #111923;
  color: #8593a2;
  font: 800 0.62rem/36px "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.world-notification-table-header > *,
.world-notification-row > *,
.world-error-table-header > *,
.world-error-row > *,
.world-error-group-header > *,
.world-error-group-row > * {
  overflow: hidden;
  min-width: 0;
  padding: 0 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-notification-table {
  display: block;
  min-width: 1220px;
}

.world-notification-table .world-notification-row {
  min-height: 34px;
  border: 0 !important;
  border-bottom: 1px solid rgb(139 148 158 / 0.16) !important;
  border-left: 3px solid #58a6ff !important;
  border-radius: 0 !important;
  background: #0e151d !important;
  padding: 0 !important;
  color: #b8c2cc;
  font: 650 0.68rem/1 "ForkMesh Mono", ui-monospace, monospace;
  box-shadow: none;
}

.world-notification-table .world-notification-row:hover {
  transform: none;
  background: #14202b !important;
  box-shadow: none;
}

.world-notification-row[data-world-notification-open] {
  cursor: pointer;
}

.world-notification-row[data-world-notification-open]:hover {
  background: #17293b !important;
}

.world-notification-row[data-world-notification-open]:focus-visible {
  outline: 2px solid #58a6ff;
  outline-offset: -2px;
}

.world-notification-kind {
  display: flex;
  align-items: center;
  gap: 6px;
}

.world-notification-kind i {
  display: inline-grid;
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  place-items: center;
  border-radius: 7px;
  background: #182638;
  font-size: 0.7rem;
  font-style: normal;
}

.world-activity-row-actions {
  display: flex;
  gap: 5px;
  align-items: center;
}

.world-activity-row-actions :is(a, button),
.world-error-row button {
  min-height: 27px;
  border: 1px solid #3b4a5a;
  border-radius: 6px;
  background: #141d27;
  color: #c8e1ff;
  padding: 0 8px;
  font: 700 0.62rem/1 system-ui, sans-serif;
  text-decoration: none;
  cursor: pointer;
}

.world-activity-detail {
  margin: 0 0 14px;
  border: 1px solid #3b4a5a;
  border-left: 4px solid #58a6ff;
  border-radius: 12px;
  background: #0d141d;
  padding: 13px;
}

.world-activity-detail--error {
  border-left-color: #f85149;
  background: linear-gradient(110deg, rgb(248 81 73 / 0.08), transparent 36%), #151217;
}

.world-activity-detail > header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.world-activity-detail .world-eyebrow {
  margin: 0 0 3px;
}

.world-activity-detail h4 {
  margin: 0;
  color: #f0f6fc;
  font-size: 0.88rem;
}

.world-activity-detail > p {
  margin: 10px 0 0;
  color: #c8d1da;
  font-size: 0.74rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.world-activity-detail-path code,
.world-activity-detail pre {
  display: block;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.world-activity-detail pre {
  margin: 10px 0 0;
  border: 1px solid rgb(139 148 158 / 0.24);
  border-radius: 8px;
  background: rgb(1 4 9 / 0.42);
  padding: 9px;
  color: #ffa198;
  font: 0.68rem/1.45 "ForkMesh Mono", ui-monospace, monospace;
}

.world-activity-detail dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 14px;
  margin: 12px 0 0;
}

.world-activity-detail dl > div {
  min-width: 0;
}

.world-activity-detail dt {
  color: #8593a2;
  font: 700 0.57rem/1.25 "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.world-activity-detail dd {
  margin: 3px 0 0;
  color: #dbe8f5;
  font-size: 0.68rem;
  overflow-wrap: anywhere;
}

.world-activity-detail :is(a, button) {
  color: #79c0ff;
}

.world-activity-detail > header > button,
.world-activity-detail-actions button {
  min-height: 28px;
  border: 1px solid #3b4a5a;
  border-radius: 6px;
  background: #141d27;
  padding: 0 8px;
  font: 700 0.62rem/1 system-ui, sans-serif;
  cursor: pointer;
}

.world-activity-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}

.world-error-groups {
  margin: 14px 0 18px;
}

.world-error-analytics {
  margin: 0 0 16px;
}

.world-error-analytics h4 {
  margin: 0 0 8px;
  color: #dbe8f5;
  font-size: 0.76rem;
}

.world-error-chart {
  display: grid;
  height: 150px;
  grid-template-columns: repeat(24, minmax(8px, 1fr));
  align-items: end;
  gap: 4px;
  border-bottom: 1px solid #324152;
  padding-top: 12px;
}

.world-error-chart > span {
  display: block;
  min-height: 2px;
  border-radius: 3px 3px 0 0;
  background: #58a6ff;
}

.world-error-chart > span[data-empty="true"] {
  background: #273444;
}

.world-error-chart > span:focus-visible,
.world-error-sparkline:focus-visible {
  outline: 2px solid #79c0ff;
  outline-offset: 2px;
}

.world-error-hours {
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
  color: #8593a2;
  font: 650 0.62rem/1 "ForkMesh Mono", ui-monospace, monospace;
}

.world-error-groups h4,
.world-error-raw-title {
  margin: 0 0 8px;
  color: #dbe8f5;
  font-size: 0.76rem;
}

.world-error-group-table {
  min-width: 1840px;
}

.world-error-group-header,
.world-error-group-row {
  display: grid;
  grid-template-columns:
    62px 185px 92px 70px 82px minmax(220px, 1.2fr)
    minmax(300px, 1.8fr) 170px 100px 100px 160px;
  align-items: center;
}

.world-error-group-row {
  min-height: 42px;
  border-right: 1px solid #273444;
  border-bottom: 1px solid #273444;
  border-left: 3px solid #d29922;
  background: #0e151d;
  color: #b8c2cc;
  font: 650 0.67rem/1 "ForkMesh Mono", ui-monospace, monospace;
}

.world-error-actor-stack {
  display: flex;
  align-items: center;
  padding-left: 12px;
}

.world-error-source {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  border: 1px solid #3b4a5a;
  border-radius: 999px;
  padding: 3px 7px;
  color: #79c0ff;
  font: 700 0.57rem/1 system-ui, sans-serif;
  white-space: nowrap;
}

.world-error-source--javascript {
  border-color: rgb(163 113 247 / 0.6);
  color: #d2a8ff;
}

.world-error-source--desktop {
  border-color: rgb(63 185 80 / 0.6);
  color: #56d364;
}

.world-error-sparkline {
  display: grid !important;
  width: 180px;
  height: 34px;
  grid-template-columns: repeat(24, 1fr);
  align-items: end;
  gap: 2px;
  overflow: visible !important;
  border-bottom: 1px solid #324152;
  padding: 2px 0 !important;
}

.world-error-sparkline i {
  display: block;
  min-height: 2px;
  border-radius: 2px 2px 0 0;
  background: #58a6ff;
}

.world-error-sparkline i[data-empty="true"] {
  background: #273444;
}

.world-error-message {
  display: flex !important;
  align-items: center;
  gap: 6px;
  overflow: visible !important;
}

.world-error-message > span {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-error-message button {
  min-height: 24px;
  flex: 0 0 auto;
  border: 1px solid #3b4a5a;
  border-radius: 6px;
  background: #141d27;
  color: #c8e1ff;
  padding: 0 7px;
  font: 700 0.58rem/1 system-ui, sans-serif;
  cursor: pointer;
}

.world-error-actor-stack i,
.world-error-single-actor {
  display: inline-grid;
  width: 25px;
  height: 25px;
  place-items: center;
  margin-left: -6px;
  border: 2px solid #0e151d;
  border-radius: 50%;
  background: linear-gradient(145deg, #57606a, #30363d);
  color: #fff;
  font: 800 0.62rem/1 system-ui, sans-serif;
  font-style: normal;
}

.world-error-actor-stack i:first-child {
  margin-left: 0;
}

.world-error-table-header,
.world-error-row {
  display: grid !important;
  min-width: 1735px;
  grid-template-columns:
    65px 160px 92px 72px 82px minmax(260px, 1.35fr)
    minmax(330px, 1.8fr) 70px minmax(170px, 0.9fr) 132px;
  align-items: center;
}

.world-error-table {
  display: block;
  min-width: 1735px;
}

.world-error-table .world-error-row {
  min-height: 40px;
  border: 0 !important;
  border-bottom: 1px solid rgb(139 148 158 / 0.16) !important;
  border-left: 3px solid #ff7b8a !important;
  border-radius: 0 !important;
  background: #0e151d !important;
  padding: 0 !important;
  color: #b8c2cc;
  font: 650 0.67rem/1 "ForkMesh Mono", ui-monospace, monospace;
  box-shadow: none;
}

.world-error-table .world-error-row:hover {
  transform: none;
  background: #14202b !important;
  box-shadow: none;
}

.world-error-row-actions {
  display: flex;
  gap: 5px;
  align-items: center;
  overflow: visible !important;
  white-space: normal !important;
}

.world-task-row--mine::after {
  content: "YOURS";
  position: absolute;
  top: 0;
  right: 0;
  border-radius: 0 13px 0 10px;
  background: rgb(88 166 255 / 0.13);
  color: #79c0ff;
  padding: 4px 8px;
  font: 800 0.48rem/1 "ForkMesh Mono", monospace;
  letter-spacing: 0.1em;
}

.world-task-row-heading {
  display: grid;
  grid-template-columns: 42px minmax(180px, 1fr) auto;
  align-items: start;
  gap: 11px;
}

.world-task-avatar,
.world-activity-avatar {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  overflow: hidden;
  border: 2px solid rgb(255 255 255 / 0.22);
  border-radius: 13px;
  background: linear-gradient(
    145deg,
    hsl(var(--task-avatar-hue, 210) 70% 55%),
    hsl(var(--task-avatar-hue, 210) 62% 32%)
  );
  color: white;
  font: 800 0.92rem/1 system-ui, sans-serif;
  box-shadow: 0 6px 18px rgb(0 0 0 / 0.26);
}

.world-task-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.world-task-avatar[data-kind="agent"] {
  background: linear-gradient(145deg, #8957e5, #4c2889);
}

.world-task-avatar[data-kind="unassigned"] {
  background: linear-gradient(145deg, #57606a, #30363d);
}

.world-task-row-title {
  min-width: 0;
}

.world-task-row-title > strong {
  display: block;
  padding-right: 42px;
  color: #f0f6fc;
  font: 720 0.92rem/1.35 system-ui, sans-serif;
}

.world-task-row-badges,
.world-activity-badges {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.world-task-row-badges span,
.world-activity-badges em {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 21px;
  border: 1px solid #394654;
  border-radius: 999px;
  background: rgb(139 148 158 / 0.08);
  color: #aeb8c4;
  padding: 2px 7px;
  font: 700 0.55rem/1.2 "ForkMesh Mono", ui-monospace, monospace;
  font-style: normal;
  letter-spacing: 0.02em;
}

.world-task-row-badges [data-tone="priority"],
.world-task-row-badges [data-tone="bid"] {
  border-color: rgb(210 153 34 / 0.4);
  background: rgb(210 153 34 / 0.12);
  color: #e3b341;
}

.world-task-row-badges [data-tone="active"],
.world-activity-badges [data-tone="accent"] {
  border-color: rgb(163 113 247 / 0.4);
  background: rgb(163 113 247 / 0.13);
  color: #d2a8ff;
}

.world-task-row-badges [data-tone="done"],
.world-activity-badges [data-tone="success"] {
  border-color: rgb(46 160 67 / 0.4);
  background: rgb(46 160 67 / 0.13);
  color: #56d364;
}

.world-task-row-badges [data-tone="department"],
.world-activity-badges [data-tone="cool"] {
  border-color: rgb(88 166 255 / 0.38);
  background: rgb(88 166 255 / 0.12);
  color: #79c0ff;
}

.world-activity-badges [data-tone="danger"] {
  border-color: rgb(248 81 73 / 0.42);
  background: rgb(248 81 73 / 0.13);
  color: #ff7b8a;
}

.world-activity-badges [data-tone="warning"] {
  border-color: rgb(210 153 34 / 0.42);
  background: rgb(210 153 34 / 0.13);
  color: #e3b341;
}

.world-task-row-controls {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.world-task-row-controls :is(button, time) {
  min-height: 30px;
  border-radius: 9px;
}

.world-task-row-controls button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.world-task-row-controls .world-task-done-button {
  border-color: rgb(46 160 67 / 0.55);
  background: rgb(46 160 67 / 0.13);
  color: #56d364;
}

.world-task-row-controls .world-office-task-delete {
  width: 30px;
  min-width: 30px;
  padding: 0;
  border-color: rgb(248 81 73 / 0.32);
  color: #ff7b8a;
}

.world-task-row-description {
  margin: 11px 0 10px 53px;
  color: #b8c2cc;
  font-size: 0.73rem;
  line-height: 1.55;
  white-space: pre-wrap;
}

.world-task-row-description--empty {
  color: #667381;
  font-style: italic;
}

.world-task-row-metadata,
.world-activity-copy dl {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
  margin: 0 0 0 53px;
}

.world-task-row-metadata > div,
.world-activity-copy dl > div {
  min-width: 0;
  border: 1px solid rgb(139 148 158 / 0.13);
  border-radius: 9px;
  background: rgb(0 0 0 / 0.12);
  padding: 6px 8px;
}

.world-task-row-metadata dt,
.world-activity-copy dt {
  color: #6e7b89;
  font: 750 0.48rem/1.1 "ForkMesh Mono", monospace;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.world-task-row-metadata dd,
.world-activity-copy dd {
  overflow: hidden;
  margin: 3px 0 0;
  color: #c9d1d9;
  font-size: 0.63rem;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-task-row .world-office-task-attachments {
  margin: 9px 0 0 53px;
}

.world-task-agent-run {
  margin: 9px 0 0 53px;
  border: 1px solid rgb(163 113 247 / 0.24);
  border-radius: 9px;
  background: rgb(163 113 247 / 0.08);
  color: #d2a8ff;
  padding: 7px 9px;
  font-size: 0.65rem;
}

.world-task-agent-run span {
  margin-right: 6px;
}

.world-task-row :is(.world-office-task-completion, .world-task-row-completion) {
  margin: 9px 0 0 53px;
}

.world-task-row-completion > summary {
  color: #79c0ff;
  cursor: pointer;
  font-size: 0.65rem;
}

/* Dense organization task catalog. Closed rows are spreadsheet-thin; opening
   one reveals the rich task record as a private chat-style bubble underneath. */
.world-task-table {
  --world-task-columns:
    minmax(280px, 2.4fr)
    minmax(84px, 0.62fr)
    52px
    minmax(100px, 0.75fr)
    minmax(90px, 0.65fr)
    minmax(118px, 0.9fr)
    minmax(72px, 0.55fr)
    minmax(170px, 1.25fr)
    minmax(100px, 0.78fr)
    68px
    68px
    minmax(310px, auto);
  display: block;
  overflow-x: auto;
  overflow-y: visible;
  border: 1px solid #273444;
  border-radius: 11px;
  background: #0a1118;
  scrollbar-color: #34465a #0a1118;
}

.world-task-table-header,
.world-task-table .world-task-row-summary {
  display: grid;
  grid-template-columns: var(--world-task-columns);
  align-items: center;
  min-width: 1580px;
}

/* Walk-in instance booth. This is deliberately a flat, non-modal work surface:
   walking and the rest of the World remain available behind it. */
.world-instance-launcher {
  position: absolute;
  z-index: 62;
  top: max(72px, calc(var(--safe-top) + 58px));
  right: max(14px, var(--safe-right));
  bottom: max(18px, calc(var(--safe-bottom) + 14px));
  display: grid;
  width: min(760px, calc(100vw - var(--safe-left) - var(--safe-right) - 28px));
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid #3d566d;
  border-radius: 0;
  background: #0b1118;
  box-shadow: 0 22px 64px rgb(0 0 0 / 0.48);
  opacity: 0;
  visibility: hidden;
  transform: translateX(24px);
  transition: opacity 160ms ease, transform 200ms ease, visibility 200ms ease;
  pointer-events: none;
}

.world-instance-launcher[data-open="true"] {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
  pointer-events: auto;
}

.world-instance-launcher__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #2d3e50;
  background: #101923;
  padding: 15px 17px;
}

.world-instance-launcher__header h2 {
  margin: 2px 0 3px;
  color: #f0f6fc;
  font: 760 clamp(1.25rem, 2.4vw, 1.75rem)/1.05 "ForkMesh Favorit", sans-serif;
  letter-spacing: -0.035em;
}

.world-instance-launcher__header p:last-child {
  max-width: 620px;
  margin: 0;
  color: #8b9aaa;
  font-size: 0.66rem;
  line-height: 1.45;
}

.world-instance-launcher__header > button {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border: 1px solid #3d566d;
  border-radius: 0;
  background: #0b1118;
  color: #c9d1d9;
  cursor: pointer;
  font-size: 1.25rem;
}

.world-instance-launcher__form {
  overflow: auto;
  scrollbar-color: #3d566d #0b1118;
}

.world-instance-launcher__section {
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr);
  gap: 13px;
  border-bottom: 1px solid #273747;
  padding: 13px 16px;
}

.world-instance-launcher__section-title {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-content: start;
  gap: 8px;
}

.world-instance-launcher__section-title > span {
  color: #58a6ff;
  font: 800 0.62rem/1.3 "ForkMesh Mono", monospace;
}

.world-instance-launcher__section-title h3 {
  margin: 0 0 3px;
  color: #e6edf3;
  font-size: 0.76rem;
}

.world-instance-launcher__section-title p {
  margin: 0;
  color: #768594;
  font-size: 0.58rem;
  line-height: 1.4;
}

.world-instance-launcher__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 10px;
}

.world-instance-launcher__grid--mirror {
  grid-template-columns: minmax(0, 1.35fr) minmax(110px, 0.8fr) 80px minmax(130px, 1fr);
}

.world-instance-launcher label {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: 4px;
  color: #b8c4d0;
  font: 720 0.59rem/1.25 "ForkMesh Mono", monospace;
}

.world-instance-launcher label span i {
  color: #667789;
  font-style: normal;
  font-weight: 500;
}

.world-instance-launcher :is(input, select) {
  width: 100%;
  min-width: 0;
  height: 34px;
  border: 1px solid #34495d;
  border-radius: 0;
  background: #080d13;
  color: #e6edf3;
  padding: 0 8px;
  font: 620 0.65rem/1 "ForkMesh Mono", monospace;
}

.world-instance-launcher input[readonly] {
  color: #91a0af;
  background: #0e151e;
}

.world-instance-launcher :is(input, select):focus-visible {
  border-color: #58a6ff;
  outline: 1px solid #58a6ff;
  outline-offset: 1px;
}

.world-instance-launcher label small {
  color: #657687;
  font: 500 0.54rem/1.35 system-ui, sans-serif;
}

.world-instance-launcher__secret,
.world-instance-launcher__scopes {
  grid-column: 2;
}

.world-instance-launcher__secret {
  margin-top: 9px;
  border-left: 2px solid #d29922;
  background: #17140b;
  padding: 8px 9px;
}

.world-instance-launcher__secret[hidden] {
  display: none;
}

.world-instance-launcher__scopes {
  margin-top: 9px;
  border: 1px solid #34495d;
  background: #0e151e;
  color: #91a0af;
  padding: 8px 10px;
  font-size: 0.58rem;
}

.world-instance-launcher__scopes summary {
  color: #79c0ff;
  cursor: pointer;
  font: 750 0.6rem "ForkMesh Mono", monospace;
}

.world-instance-launcher__scopes ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 18px;
  margin: 8px 0;
  padding-left: 18px;
}

.world-instance-launcher__scopes p {
  margin: 7px 0;
  line-height: 1.45;
}

.world-instance-launcher__scopes a {
  color: #79c0ff;
}

.world-instance-launcher__actions {
  position: sticky;
  z-index: 2;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid #3d566d;
  background: #101923;
  padding: 11px 16px;
}

.world-instance-launcher__actions p {
  max-width: 430px;
  margin: 0;
  color: #8b9aaa;
  font-size: 0.6rem;
  line-height: 1.4;
}

.world-instance-launcher__actions p[data-state="error"] {
  color: #ff7b8a;
}

.world-instance-launcher__actions p[data-state="ready"] {
  color: #7ee787;
}

.world-instance-launcher__actions > div {
  display: flex;
  flex: 0 0 auto;
  gap: 7px;
}

.world-instance-launcher__actions button {
  min-height: 34px;
  border: 1px solid #3d566d;
  border-radius: 0;
  background: #182431;
  color: #c9d1d9;
  padding: 0 10px;
  cursor: pointer;
  font: 720 0.58rem "ForkMesh Mono", monospace;
}

.world-instance-launcher__actions [data-world-instance-launch] {
  border-color: #2f81f7;
  background: #1f6feb;
  color: #fff;
}

@media (max-width: 760px) {
  .world-instance-launcher {
    top: max(62px, calc(var(--safe-top) + 54px));
    right: max(8px, var(--safe-right));
    bottom: max(8px, var(--safe-bottom));
    width: calc(100vw - var(--safe-left) - var(--safe-right) - 16px);
  }

  .world-instance-launcher__section {
    grid-template-columns: 1fr;
  }

  .world-instance-launcher__secret,
  .world-instance-launcher__scopes {
    grid-column: 1;
  }

  .world-instance-launcher__grid,
  .world-instance-launcher__grid--mirror {
    grid-template-columns: 1fr;
  }

  .world-instance-launcher__scopes ul {
    grid-template-columns: 1fr;
  }

  .world-instance-launcher__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .world-instance-launcher__actions > div {
    display: grid;
    grid-template-columns: 1fr;
  }
}

.world-instance-celebration {
  position: absolute;
  z-index: 75;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.world-instance-fireworks {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.world-instance-fireworks i {
  position: absolute;
  top: var(--y);
  left: var(--x);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: hsl(var(--hue) 100% 68%);
  box-shadow:
    0 -34px 0 hsl(var(--hue) 100% 68%),
    24px -24px 0 hsl(calc(var(--hue) + 22) 100% 68%),
    34px 0 0 hsl(calc(var(--hue) + 44) 100% 68%),
    24px 24px 0 hsl(calc(var(--hue) + 66) 100% 68%),
    0 34px 0 hsl(calc(var(--hue) + 88) 100% 68%),
    -24px 24px 0 hsl(calc(var(--hue) + 110) 100% 68%),
    -34px 0 0 hsl(calc(var(--hue) + 132) 100% 68%),
    -24px -24px 0 hsl(calc(var(--hue) + 154) 100% 68%);
  opacity: 0;
  animation: world-instance-firework var(--duration) var(--delay) ease-out infinite;
}

@keyframes world-instance-firework {
  0%,
  68% {
    opacity: 0;
    transform: scale(0.05);
  }

  72% {
    opacity: 1;
  }

  92% {
    opacity: 0.85;
    transform: scale(1);
  }

  100% {
    opacity: 0;
    transform: scale(1.25) translateY(14px);
  }
}

.world-instance-announcement {
  position: absolute;
  top: max(76px, calc(var(--safe-top) + 62px));
  left: 50%;
  display: grid;
  width: min(720px, calc(100vw - var(--safe-left) - var(--safe-right) - 30px));
  border: 2px solid #79c0ff;
  background: rgb(8 13 19 / 0.96);
  box-shadow:
    0 0 0 5px rgb(31 111 235 / 0.22),
    0 20px 70px rgb(0 0 0 / 0.62);
  padding: 14px 18px;
  transform: translateX(-50%);
  text-align: center;
  pointer-events: auto;
}

.world-instance-announcement p {
  margin: 0 0 4px;
  color: #79c0ff;
  font: 850 0.6rem "ForkMesh Mono", monospace;
  letter-spacing: 0.1em;
}

.world-instance-announcement strong {
  overflow: hidden;
  color: #f0f6fc;
  font-size: clamp(1.25rem, 3vw, 2rem);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-instance-announcement span {
  margin-top: 4px;
  color: #9baab9;
  font-size: 0.68rem;
}

.world-instance-announcement a {
  width: fit-content;
  margin: 9px auto 0;
  border-bottom: 1px solid #58a6ff;
  color: #79c0ff;
  font: 750 0.66rem "ForkMesh Mono", monospace;
  text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
  .world-instance-fireworks {
    display: none;
  }

  .world-qa-pass-confetti {
    display: none;
  }
}

.world-task-table-header {
  position: sticky;
  top: 0;
  z-index: 3;
  min-height: 36px;
  border-bottom: 1px solid #324152;
  background: #111923;
  box-shadow: 0 2px 7px rgb(0 0 0 / 0.22);
}

.world-task-table-header > :is(button, span) {
  overflow: hidden;
  min-width: 0;
  height: 36px;
  border: 0;
  border-right: 1px solid rgb(139 148 158 / 0.12);
  border-radius: 0;
  background: transparent;
  color: #7f8c9a;
  padding: 0 7px;
  font: 800 0.62rem/36px "ForkMesh Mono", ui-monospace, monospace;
  letter-spacing: 0.055em;
  text-align: left;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.world-task-table-header > button {
  cursor: pointer;
}

.world-task-table-header > button:hover,
.world-task-table-header > button[aria-pressed="true"] {
  background: rgb(88 166 255 / 0.09);
  color: #79c0ff;
}

.world-task-table-header > button span {
  margin-left: 4px;
  color: #58a6ff;
}

.world-task-table .world-task-row {
  position: relative;
  display: block;
  overflow: visible;
  min-width: 1580px;
  border: 0 !important;
  border-bottom: 1px solid rgb(139 148 158 / 0.13) !important;
  border-left: 3px solid #58a6ff !important;
  border-radius: 0 !important;
  background: #0e151d !important;
  padding: 0 !important;
  box-shadow: none;
  transition: background 120ms ease;
}

.world-task-table .world-task-row:nth-of-type(odd) {
  background: #101821 !important;
}

.world-task-table .world-task-row:last-child {
  border-bottom: 0 !important;
}

.world-task-table .world-task-row:hover,
.world-task-table .world-task-row[open] {
  transform: none;
  border-color: #58a6ff !important;
  background: #14202b !important;
  box-shadow: none;
}

.world-task-table .world-task-row[data-status="active"] {
  border-left-color: #d2a8ff !important;
}

.world-task-table .world-task-row[data-status="done"] {
  border-left-color: #56d364 !important;
}

.world-task-table .world-task-row[data-kind="bid"] {
  border-left-color: #e3b341 !important;
}

.world-task-table .world-task-row--mine::after {
  content: none;
}

.world-task-row-summary {
  min-height: 42px;
  cursor: pointer;
  list-style: none;
}

.world-task-row-summary::-webkit-details-marker {
  display: none;
}

.world-task-row-summary > :is(span, time) {
  display: flex;
  min-width: 0;
  height: 42px;
  align-items: center;
  overflow: hidden;
  border-right: 1px solid rgb(139 148 158 / 0.085);
  color: #aeb8c4;
  padding: 0 7px;
  font: 650 0.68rem/1 "ForkMesh Mono", ui-monospace, monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-task-row-summary .world-task-cell-title {
  gap: 7px;
  color: #e6edf3;
  font-family: system-ui, sans-serif;
}

.world-task-cell-title > strong,
.world-task-cell-route,
.world-task-cell-owner {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-task-cell-title > i {
  flex: 0 0 auto;
  color: #8b98a7;
  font-size: 0.62rem;
  font-style: normal;
}

.world-task-row-summary .world-task-avatar {
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  border-width: 1px;
  border-radius: 7px;
  font-size: 0.65rem;
  box-shadow: none;
}

.world-task-row-summary .world-task-cell-status,
.world-task-row-summary .world-task-cell-priority,
.world-task-row-summary .world-task-cell-time,
.world-task-row-summary .world-task-cell-qa {
  justify-content: center;
  text-align: center;
}

.world-task-cell-status[data-tone="active"] {
  color: #d2a8ff;
}

.world-task-cell-status[data-tone="done"],
.world-task-cell-qa[data-verdict="pass"] {
  color: #56d364;
}

.world-task-cell-status[data-tone="ready"],
.world-task-cell-qa[data-verdict="ready"] {
  color: #79c0ff;
}

.world-task-cell-priority {
  color: #e3b341 !important;
}

.world-task-cell-qa[data-verdict="fail"] {
  color: #ff7b8a;
}

.world-task-cell-qa[data-verdict="unsure"] {
  color: #e3b341;
}

.world-task-row-summary .world-task-cell-actions {
  gap: 3px;
  justify-content: flex-end;
  overflow: visible;
  padding: 0 5px;
}

.world-task-table .world-task-row-controls {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 3px;
  justify-content: flex-end;
  flex-wrap: nowrap;
}

.world-task-table .world-task-row-controls :is(button, time) {
  display: inline-grid;
  width: auto;
  min-width: 46px;
  min-height: 27px;
  height: 27px;
  place-items: center;
  border: 1px solid #344252;
  border-radius: 6px;
  background: #131c26;
  padding: 0 7px;
  color: #b8c2cc;
  font-size: 0.62rem;
  line-height: 1;
}

.world-task-table .world-office-task-qa-actions {
  display: inline-flex;
  gap: 2px;
}

.world-task-attachment-thumbnail {
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  border: 1px solid #45586d;
  border-radius: 6px;
  background: #081018;
  object-fit: cover;
}

.world-task-table .world-task-detail-chevron {
  display: inline-grid;
  width: 17px;
  flex: 0 0 17px;
  place-items: center;
  color: #6e7b89;
  font-size: 1rem;
  transition: transform 120ms ease;
}

.world-task-table .world-task-row[open] .world-task-detail-chevron {
  transform: rotate(90deg);
  color: #79c0ff;
}

.world-task-chat-bubble {
  position: relative;
  margin: 9px 12px 12px 38px;
  border: 1px solid #34495e;
  border-radius: 5px 14px 14px;
  background:
    linear-gradient(125deg, rgb(88 166 255 / 0.075), transparent 26%),
    #111a24;
  padding: 12px;
  box-shadow: 0 10px 26px rgb(0 0 0 / 0.24);
}

.world-task-chat-bubble::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -12px;
  border-width: 0 12px 12px 0;
  border-style: solid;
  border-color: transparent #34495e transparent transparent;
}

.world-task-chat-bubble::after {
  content: "";
  position: absolute;
  top: 0;
  left: -9px;
  border-width: 0 10px 10px 0;
  border-style: solid;
  border-color: transparent #14202b transparent transparent;
}

.world-task-chat-bubble .world-task-row-heading {
  grid-template-columns: 40px minmax(180px, 1fr);
}

.world-task-chat-bubble .world-task-row-description {
  margin-top: 10px;
}

.world-task-board-issues {
  margin-top: 12px;
  border-top: 1px solid #263240;
  padding-top: 10px;
}

.world-task-board-issues > summary {
  color: #8b98a7;
  cursor: pointer;
  font-size: 0.68rem;
}

.world-task-board-issues .world-office-task-list {
  margin-top: 9px;
}

.world-task-board > footer,
.world-activity-board > footer {
  margin-top: 12px;
  color: #677482;
  font-size: 0.61rem;
  line-height: 1.45;
}

.world-task-button-spinner,
.world-task-inline-spinner,
.world-activity-loading i {
  display: inline-block;
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: world-activity-spin 700ms linear infinite;
}

.world-task-inline-spinner {
  width: 9px;
  height: 9px;
  flex-basis: 9px;
  border-width: 1.5px;
}

.world-task-status-icon {
  display: inline-grid;
  width: 13px;
  height: 13px;
  place-items: center;
  margin-right: 3px;
  border-radius: 50%;
  font-style: normal;
  font-weight: 800;
}

.world-task-status-icon[data-icon="done"] {
  background: #238636;
  color: white;
}

.world-task-status-icon[data-icon="queued"] {
  color: #d2a8ff;
}

.world-task-status-icon[data-icon="ready"] {
  color: #79c0ff;
}

.world-task-inline-editor {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  border: 1px solid #34404d;
  border-radius: 999px;
  background: #121a24;
  padding: 1px 6px;
  color: #c9d1d9;
}

.world-task-inline-editor :is(input, select) {
  width: auto;
  max-width: 130px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
}

.world-task-inline-editor input {
  width: 2.6em;
}

@media (max-width: 680px) {
  .world-settings-resize {
    display: none;
  }
}

@keyframes world-activity-spin {
  to {
    transform: rotate(360deg);
  }
}

.fm-world:has(.world-detail[data-open-landmark="events"]),
.fm-world:has(.world-detail[data-open-landmark="admin-errors"]) {
  --world-detail-base-width: 1000px;
}

.world-detail[data-open-landmark="events"] .world-truth-grid,
.world-detail[data-open-landmark="events"] .world-detail-list,
.world-detail[data-open-landmark="events"] .world-detail-summary,
.world-detail[data-open-landmark="events"] > .world-detail-scroll > .world-status-row {
  display: none;
}

.world-detail[data-open-landmark="events"] .world-detail-scroll,
.world-detail[data-open-landmark="admin-errors"] .world-detail-scroll {
  padding-top: 14px;
}

.world-activity-board--errors {
  background:
    radial-gradient(circle at 88% -10%, rgb(248 81 73 / 0.13), transparent 30%),
    linear-gradient(145deg, #151117, #090e14);
}

.world-activity-row {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 11px;
}

.world-activity-row[data-tone="danger"] {
  border-left-color: #f85149 !important;
  background:
    linear-gradient(110deg, rgb(248 81 73 / 0.1), transparent 30%),
    #14161d !important;
}

.world-activity-row[data-tone="warning"] {
  border-left-color: #d29922 !important;
  background:
    linear-gradient(110deg, rgb(210 153 34 / 0.09), transparent 30%),
    #14161d !important;
}

.world-activity-row[data-tone="success"] {
  border-left-color: #2ea043 !important;
  background:
    linear-gradient(110deg, rgb(46 160 67 / 0.09), transparent 30%),
    #10171a !important;
}

.world-activity-row[data-tone="accent"] {
  border-left-color: #a371f7 !important;
  background:
    linear-gradient(110deg, rgb(163 113 247 / 0.11), transparent 30%),
    #131620 !important;
}

.world-activity-row[data-unread="true"] {
  box-shadow:
    0 8px 25px rgb(0 0 0 / 0.16),
    inset 0 0 30px rgb(163 113 247 / 0.035);
}

.world-activity-avatar {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: linear-gradient(145deg, #388bfd, #1f4e8c);
  font-size: 1rem;
}

.world-activity-avatar[data-tone="danger"] {
  background: linear-gradient(145deg, #f85149, #8e2927);
}

.world-activity-avatar[data-tone="warning"] {
  background: linear-gradient(145deg, #d29922, #76520d);
}

.world-activity-avatar[data-tone="success"] {
  background: linear-gradient(145deg, #2ea043, #175c27);
}

.world-activity-avatar[data-tone="accent"] {
  background: linear-gradient(145deg, #a371f7, #5b36a8);
}

.world-activity-copy {
  min-width: 0;
}

.world-activity-copy > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.world-activity-copy > header strong {
  display: block;
  color: #f0f6fc;
  font-size: 0.86rem;
  line-height: 1.35;
}

.world-activity-copy > header time {
  flex: 0 0 auto;
  color: #7d8996;
  font: 600 0.58rem/1.4 "ForkMesh Mono", monospace;
}

.world-activity-copy > p {
  margin: 9px 0;
  color: #b8c2cc;
  font-size: 0.72rem;
  line-height: 1.5;
  white-space: pre-wrap;
}

.world-activity-copy > p code {
  color: #ffa198;
  overflow-wrap: anywhere;
}

.world-activity-copy dl {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-left: 0;
}

.world-activity-open {
  display: inline-flex;
  margin-top: 9px;
  color: #79c0ff;
  font-size: 0.66rem;
  font-weight: 700;
  text-decoration: none;
}

.world-activity-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 11px;
}

.world-activity-actions button {
  min-height: 32px;
  border: 1px solid #344252;
  border-radius: 9px;
  background: #131c26;
  color: #b8c2cc;
  padding: 6px 10px;
  cursor: pointer;
  font-size: 0.65rem;
  font-weight: 700;
}

.world-activity-loading,
.world-activity-empty,
.world-task-loading {
  display: flex;
  min-height: 150px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px dashed #344252;
  border-radius: 17px;
  color: #8b98a7;
  font-size: 0.74rem;
}

.world-task-loading {
  flex-direction: column;
}

.world-task-loading small {
  color: #677482;
  font-size: 0.62rem;
}

.world-activity-loading i,
.world-task-loading-spinner {
  width: 24px;
  height: 24px;
  flex-basis: 24px;
  color: #79c0ff;
}

.world-task-loading-spinner {
  display: inline-block;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: world-activity-spin 700ms linear infinite;
}

.world-activity-empty > span {
  display: grid;
  width: 35px;
  height: 35px;
  place-items: center;
  border-radius: 50%;
  background: rgb(46 160 67 / 0.12);
  color: #56d364;
}

@media (max-width: 900px) {
  .world-work-quick-entry {
    position: static;
    flex-wrap: wrap;
  }

  .world-work-quick-entry label,
  .world-work-quick-entry .world-work-quick-repository {
    flex: 1 1 160px;
  }

  .world-task-board-heading,
  .world-activity-board-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .world-task-board-tools,
  .world-activity-tools {
    justify-content: flex-start;
  }

  .world-task-row-metadata {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .world-task-board,
  .world-activity-board {
    border-radius: 12px;
    padding: 9px;
  }

  .world-task-board-tools > label,
  .world-activity-tools > label {
    flex: 1 1 120px;
  }

  .world-task-board-tools :is(input, select),
  .world-activity-tools :is(input, select) {
    width: 100%;
  }

  .world-task-row,
  .world-activity-row {
    border-radius: 12px !important;
    padding: 11px !important;
  }

  .world-task-row-heading {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .world-task-avatar {
    width: 36px;
    height: 36px;
  }

  .world-task-row-controls {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .world-task-row-description,
  .world-task-row-metadata,
  .world-task-row .world-office-task-attachments,
  .world-task-agent-run,
  .world-task-row :is(.world-office-task-completion, .world-task-row-completion) {
    margin-left: 0;
  }

  .world-task-row-metadata,
  .world-activity-copy dl,
  .world-activity-detail dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .world-activity-row {
    grid-template-columns: 36px minmax(0, 1fr);
  }

  .world-activity-avatar {
    width: 34px;
    height: 34px;
    border-radius: 11px;
  }

  .world-activity-copy > header {
    flex-direction: column;
    gap: 4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .world-task-button-spinner,
  .world-task-inline-spinner,
  .world-activity-loading i,
  .world-task-loading-spinner,
  .world-task-board-tools button.is-loading {
    animation-duration: 1.6s;
  }

  .world-task-row,
  .world-activity-row {
    transition: none;
  }
}

/* Quick composer: a quiet orb that unfolds independently from chat history. */
.world-chat-terminal:not([open]),
.world-chat-terminal.world-chat-terminal--debug-hidden:not([open]) {
  width: 56px !important;
  height: 56px;
  overflow: visible;
  border-radius: 50%;
}

.world-chat-terminal:not([open]) > summary {
  width: 56px;
  height: 56px;
  min-height: 56px;
  box-sizing: border-box;
  padding: 4px;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: none !important;
}

.world-chat-terminal:not([open]) .world-chat-terminal-body {
  display: none !important;
}

.world-chat-terminal-avatar {
  border: 2px solid rgb(126 231 135 / 0.88);
  background: radial-gradient(circle at 35% 28%, #1f6feb, #071611 72%);
  box-shadow:
    0 0 0 1px rgb(126 231 135 / 0.28),
    0 0 18px rgb(63 185 80 / 0.42);
}

.world-chat-terminal-avatar::after {
  display: none;
}

.world-chat-terminal-prompt-icon {
  display: none;
  width: 27px;
  height: 27px;
  overflow: visible;
  fill: rgb(88 166 255 / 0.12);
  stroke: #b9ffd0;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
  filter: drop-shadow(0 0 5px rgb(88 255 177 / 0.7));
}

.world-chat-terminal--idle .world-chat-terminal-avatar img,
.world-chat-terminal--idle .world-chat-terminal-avatar
  [data-world-chat-terminal-avatar-initial] {
  display: none;
}

.world-chat-terminal--idle .world-chat-terminal-prompt-icon {
  display: block;
  animation: world-quick-icon-breathe 2.8s ease-in-out infinite;
}

.world-chat-terminal[open] {
  --world-chat-dock-clearance: max(
    76px,
    calc(env(safe-area-inset-bottom) + 64px)
  );
  right: max(12px, env(safe-area-inset-right));
  bottom: calc(
    var(--world-chat-covered-bottom, 0px) +
      var(--world-chat-dock-clearance)
  );
  width: min(760px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  height: min(
    55dvh,
    620px,
    calc(var(--world-chat-viewport-height, 100dvh) - 124px)
  );
  min-height: min(
    240px,
    calc(var(--world-chat-viewport-height, 100dvh) - 124px)
  );
  max-height: calc(var(--world-chat-viewport-height, 100dvh) - 124px);
  overflow: visible;
}

.world-chat-terminal[open][data-show-feed="true"] {
  height: min(
    55dvh,
    620px,
    calc(var(--world-chat-viewport-height, 100dvh) - 124px)
  );
}

.world-chat-terminal[open] .world-chat-terminal-body {
  position: absolute;
  inset: 0;
  display: grid !important;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid rgb(126 231 135 / 0.42);
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgb(13 17 23 / 0.94), rgb(7 18 14 / 0.96))
    !important;
  padding: 10px;
  box-shadow:
    inset 0 0 28px rgb(63 185 80 / 0.06),
    0 20px 54px rgb(0 0 0 / 0.42);
}

.world-chat-terminal[open][data-show-feed="true"]
  .world-chat-terminal-body {
  position: absolute;
  inset: 0;
  height: 100%;
  min-height: 0;
  max-height: none;
  overflow: hidden;
}

.world-native-chat {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "header"
    "feed"
    "composer";
  grid-template-rows: auto minmax(80px, 1fr) auto;
  gap: 8px;
}

.world-quick-chat-header {
  display: grid;
  min-width: 0;
  max-width: 100%;
  grid-area: header;
  grid-template-columns: minmax(0, 1fr) 40px;
  align-items: center;
  gap: 8px;
}

.world-quick-chat-close {
  display: grid;
  width: 40px;
  min-width: 40px;
  min-height: 40px !important;
  place-items: center;
  border-color: rgb(139 148 158 / 0.48) !important;
  background: rgb(22 27 34 / 0.88) !important;
  padding: 0 !important;
  color: #c9d1d9 !important;
  font-size: 1.25rem !important;
  line-height: 1 !important;
}

.world-quick-chat-close:is(:hover, :focus-visible) {
  border-color: #f85149 !important;
  background: rgb(248 81 73 / 0.18) !important;
  color: #fff !important;
}

.world-quick-chat-feed {
  position: relative;
  display: none;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  min-width: 0;
  grid-area: feed;
  overflow: hidden;
  border: 1px solid rgb(139 148 158 / 0.3);
  border-radius: 14px;
  background: rgb(1 4 9 / 0.28);
}

.world-chat-terminal[data-show-feed="true"] .world-quick-chat-feed {
  display: block;
  animation: world-quick-feed-reveal 240ms cubic-bezier(0.16, 1, 0.3, 1);
}

.world-quick-chat-feed #fullChatMessages {
  width: 100%;
  height: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow-x: hidden;
}

.world-quick-chat-feed [data-dashboard-chat-scroll-rail] {
  position: absolute;
  inset: 0 0 0 auto;
}

.world-quick-channels {
  display: flex;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  flex-wrap: nowrap;
  justify-content: flex-start;
  justify-self: stretch;
  gap: 7px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 3px 4px 1px;
  text-align: left;
  scrollbar-width: none;
  scroll-padding-inline: 4px;
  overscroll-behavior-inline: contain;
}

.world-quick-channels::-webkit-scrollbar {
  display: none;
}

.world-quick-channels button {
  display: inline-flex;
  min-height: 34px;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  border-color: rgb(126 231 135 / 0.24);
  background: rgb(7 22 17 / 0.72);
  color: #a9b9af;
  box-shadow: inset 0 0 12px rgb(63 185 80 / 0.04);
}

.world-quick-channels button > span {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  background: rgb(126 231 135 / 0.1);
  color: #7ee787;
}

.world-quick-channels output {
  min-width: 18px;
  margin-left: 2px;
  border-radius: 999px;
  background: rgb(126 231 135 / 0.14);
  padding: 2px 5px;
  color: #d8ffe4;
  font: 800 0.58rem/1 "ForkMesh Mono", monospace;
  text-align: center;
}

.world-quick-channels button[aria-pressed="true"] {
  border-color: #7ee787;
  background: linear-gradient(
    135deg,
    rgb(35 134 54 / 0.72),
    rgb(13 48 31 / 0.82)
  );
  color: #f0fff5;
  box-shadow:
    inset 0 0 18px rgb(126 231 135 / 0.12),
    0 0 14px rgb(63 185 80 / 0.25);
}

.world-native-chat [data-dashboard-chat-context-rail] {
  grid-area: context;
  padding: 0 76px;
}

.world-native-chat [data-dashboard-chat-context-rail] button {
  min-height: 26px;
  border-color: rgb(88 166 255 / 0.24);
  background: rgb(7 18 14 / 0.54);
  color: #b9ffd0;
  font-size: 0.61rem;
}

.world-native-chat [data-dashboard-chat-composer] {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  grid-area: composer;
  max-height: none;
  overflow: visible;
  padding: 0;
}

.world-native-chat [data-dashboard-chat-composer] > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.world-native-chat [data-dashboard-chat-composer-toolbar] {
  display: none !important;
}

.world-native-chat [data-dashboard-chat-compose-row] {
  position: relative;
  display: grid;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 76px;
  box-sizing: border-box;
  grid-template-columns: 54px minmax(0, 1fr) 112px;
  align-items: center;
  gap: 8px;
  overflow: visible;
  border: 1px solid rgb(126 231 135 / 0.46);
  border-radius: 22px;
  background:
    radial-gradient(circle at 8% 50%, rgb(31 111 235 / 0.2), transparent 25%),
    rgb(7 18 14 / 0.78);
  padding: 6px;
  box-shadow:
    inset 0 0 26px rgb(63 185 80 / 0.08),
    0 12px 32px rgb(0 0 0 / 0.26);
}

.world-native-chat
  [data-dashboard-chat-compose-row]
  > [data-dashboard-chat-attachments] {
  position: static;
  z-index: 8;
  display: flex;
  width: 100%;
  min-width: 0;
  grid-column: 1 / -1;
  grid-row: 2;
  box-sizing: border-box;
  max-height: 84px;
  overflow: auto;
  border: 1px solid rgb(139 148 158 / 0.42);
  border-radius: 12px;
  background: rgb(13 17 23 / 0.96);
  padding: 6px;
  box-shadow: 0 12px 28px rgb(0 0 0 / 0.34);
}

.world-native-chat
  [data-dashboard-chat-compose-row]
  > [data-dashboard-chat-attachments]:empty {
  display: none;
}

.world-quick-composer-avatar {
  z-index: 2;
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  overflow: hidden;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #fff;
  font: 900 1rem/1 "ForkMesh Mono", monospace;
  grid-column: 1;
  grid-row: 1;
  box-shadow: none;
}

.world-quick-composer-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.world-quick-composer-avatar img:not([hidden])
  + [data-world-quick-composer-avatar-initial] {
  display: none;
}

.world-quick-input-shell {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  grid-column: 2;
  grid-row: 1;
}

.world-native-chat #fullChatInput {
  width: 100%;
  min-width: 0;
  height: 62px;
  min-height: 62px;
  max-height: 96px;
  border: 0;
  border-radius: 16px;
  background: rgb(13 17 23 / 0.72);
  padding: 11px 12px 27px 40px;
  font-size: 0.82rem;
  line-height: 1.4;
  overflow-y: auto;
  box-shadow: inset 0 0 0 1px rgb(139 148 158 / 0.34);
}

.world-native-chat #fullChatInput:focus {
  border: 0;
  box-shadow:
    inset 0 0 0 1px #58a6ff,
    0 0 0 3px rgb(88 166 255 / 0.14);
}

.world-quick-attachment-slot {
  position: absolute;
  z-index: 4;
  bottom: 5px;
  left: 8px;
  display: flex;
}

.world-quick-attachment-slot button {
  width: 28px;
  min-height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #8c959f;
}

.world-quick-actions {
  display: grid;
  width: 112px;
  height: 56px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: 1fr;
  grid-column: 3;
  grid-row: 1;
  align-self: center;
  overflow: hidden;
  border: 1px solid rgb(126 231 135 / 0.58);
  border-radius: 18px;
  background: rgb(7 22 17 / 0.9);
  box-shadow:
    inset 0 0 20px rgb(63 185 80 / 0.12),
    0 0 18px rgb(63 185 80 / 0.2);
}

.world-quick-actions button,
.world-native-chat #fullChatSend,
.world-native-chat #fullChatTaskSend {
  min-width: 0;
  min-height: 54px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  color: #c5d1c8;
  font: 800 0.72rem/1 "ForkMesh Mono", monospace;
  letter-spacing: 0.01em;
  transition:
    background 150ms ease,
    color 150ms ease,
    box-shadow 150ms ease;
}

.world-quick-actions button:first-child {
  border-right: 1px solid rgb(126 231 135 / 0.25);
}

.world-quick-actions button[aria-pressed="true"] {
  background: linear-gradient(
    135deg,
    rgb(35 134 54 / 0.96),
    rgb(22 89 49 / 0.96)
  );
  color: #fff;
  text-shadow: 0 0 8px rgb(255 255 255 / 0.48);
}

.world-quick-actions button:not([aria-pressed="true"]):hover {
  background: rgb(63 185 80 / 0.16);
  color: #f0fff5;
}

.world-quick-actions button:focus-visible {
  position: relative;
  z-index: 1;
  outline: 2px solid #7ee787;
  outline-offset: -3px;
}

.world-quick-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.world-quick-composer-status {
  position: static;
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 18px;
  box-sizing: border-box;
  overflow: hidden;
  padding: 2px 12px 0;
  clip-path: none;
  color: #8c959f;
  font: 600 0.62rem/1.35 "ForkMesh Mono", monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-quick-composer-status.text-destructive {
  color: #ff7b72;
}

.world-quick-composer-status.text-primary {
  color: #7ee787;
}

.world-native-chat [data-dashboard-chat-composer][data-submitting]
  [data-dashboard-chat-compose-row] {
  animation: world-quick-border-send 720ms ease-out;
}

.world-native-chat [data-dashboard-chat-composer][data-just-sent="task"]
  [data-dashboard-chat-compose-row],
.world-native-chat [data-dashboard-chat-composer][data-just-sent="agent"]
  [data-dashboard-chat-compose-row] {
  animation: world-quick-task-launch 720ms cubic-bezier(0.16, 1, 0.3, 1);
}

.world-native-chat .chat-message-source {
  border-color: rgb(126 231 135 / 0.55) !important;
  background: rgb(35 134 54 / 0.2);
  color: #b9ffd0 !important;
  font-size: 0.62rem !important;
}

@keyframes world-quick-icon-breathe {
  50% {
    transform: scale(1.08);
    filter: drop-shadow(0 0 9px rgb(88 255 177 / 0.95));
  }
}

@keyframes world-quick-border-send {
  0% {
    box-shadow:
      inset 0 0 18px rgb(88 166 255 / 0.12),
      0 0 0 0 rgb(88 166 255 / 0.65);
  }
  65% {
    border-color: #79c0ff;
    box-shadow:
      inset 0 0 32px rgb(88 166 255 / 0.28),
      0 0 0 9px rgb(88 166 255 / 0);
  }
}

@keyframes world-quick-task-launch {
  35% {
    border-color: #d8b4fe;
    box-shadow:
      inset 0 0 34px rgb(168 85 247 / 0.28),
      0 0 28px rgb(168 85 247 / 0.42);
    transform: scale(1.018);
  }
}

@keyframes world-quick-feed-reveal {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
}

@media (max-width: 620px) {
  .world-chat-terminal[open] {
    --world-chat-dock-clearance: max(
      76px,
      calc(env(safe-area-inset-bottom) + 64px)
    );
    right: 8px;
    bottom: calc(
      var(--world-chat-covered-bottom, 0px) +
        var(--world-chat-dock-clearance)
    );
    width: calc(100vw - 16px);
    max-width: calc(100vw - 16px);
    height: min(
      70dvh,
      700px,
      calc(var(--world-chat-viewport-height, 100dvh) - 124px)
    );
    min-height: min(
      240px,
      calc(var(--world-chat-viewport-height, 100dvh) - 124px)
    );
    max-height: calc(var(--world-chat-viewport-height, 100dvh) - 124px);
  }

  .world-chat-terminal[open][data-show-feed="true"] {
    height: min(
      70dvh,
      700px,
      calc(var(--world-chat-viewport-height, 100dvh) - 124px)
    );
  }

  .world-chat-terminal[open] .world-chat-terminal-body {
    border-radius: 18px;
    padding: 8px;
  }

  .world-quick-chat-header {
    grid-template-columns: minmax(0, 1fr) 44px;
    gap: 6px;
  }

  .world-quick-chat-close,
  .world-quick-channels button {
    min-height: 44px !important;
  }

  .world-native-chat [data-dashboard-chat-compose-row] {
    grid-template-columns: 48px minmax(0, 1fr) 104px;
    border-radius: 20px;
  }

  .world-quick-composer-avatar {
    width: 44px;
    height: 44px;
  }

  .world-quick-actions {
    width: 104px;
    height: 56px;
  }
}

@media (max-width: 480px) {
  .world-native-chat [data-dashboard-chat-compose-row] {
    grid-template-columns: minmax(0, 1fr) 104px;
  }

  .world-quick-input-shell {
    grid-column: 1;
  }

  .world-quick-actions {
    grid-column: 2;
  }

  .world-quick-composer-avatar {
    display: none;
  }

  .world-quick-chat-feed [data-dashboard-chat-scroll-rail] {
    display: none;
  }

  .world-quick-chat-feed #fullChatMessages {
    padding-right: 8px;
  }
}

forkmesh-world[data-world-chat-compact="true"]
  :is(
    .world-chat-terminal[open],
    .world-chat-terminal[open][data-show-feed="true"]
  ) {
  --world-chat-dock-clearance: max(
    8px,
    env(safe-area-inset-bottom)
  );
  z-index: 60;
  bottom: calc(
    var(--world-chat-covered-bottom, 0px) +
      var(--world-chat-dock-clearance)
  );
  height: calc(
    var(--world-chat-viewport-height, 100dvh) -
      var(--world-chat-dock-clearance) -
      8px
  );
  min-height: calc(
    var(--world-chat-viewport-height, 100dvh) -
      var(--world-chat-dock-clearance) -
      8px
  );
  max-height: calc(
    var(--world-chat-viewport-height, 100dvh) -
      var(--world-chat-dock-clearance) -
      8px
  );
}

forkmesh-world[data-world-chat-compact="true"]
  .world-chat-terminal[open]
  .world-chat-terminal-body {
  grid-template-rows: auto minmax(56px, 1fr) auto;
  gap: 5px;
  border-radius: 16px;
  padding: 6px;
}

forkmesh-world[data-world-chat-compact="true"] .world-quick-chat-header {
  grid-template-columns: minmax(0, 1fr) 40px;
}

forkmesh-world[data-world-chat-compact="true"] .world-quick-chat-close,
forkmesh-world[data-world-chat-compact="true"]
  .world-quick-channels
  button {
  min-height: 40px !important;
}

forkmesh-world[data-world-chat-compact="true"]
  .world-native-chat
  [data-dashboard-chat-compose-row] {
  min-height: 60px;
  grid-template-columns: minmax(0, 1fr) 52px;
  gap: 6px;
  border-radius: 16px;
  padding: 4px;
}

forkmesh-world[data-world-chat-compact="true"]
  .world-native-chat
  [data-dashboard-chat-compose-row]
  > [data-dashboard-chat-attachments] {
  position: absolute;
  right: 0;
  bottom: calc(100% + 4px);
  left: 0;
  grid-column: auto;
  grid-row: auto;
  max-height: 56px;
}

forkmesh-world[data-world-chat-compact="true"] .world-quick-input-shell {
  grid-column: 1;
}

forkmesh-world[data-world-chat-compact="true"] .world-quick-actions {
  grid-column: 2;
}

forkmesh-world[data-world-chat-compact="true"]
  :is(.world-quick-composer-avatar, .world-native-chat #fullChatTaskSend) {
  display: none !important;
}

forkmesh-world[data-world-chat-compact="true"]
  .world-native-chat
  #fullChatInput {
  height: 52px !important;
  min-height: 52px;
  max-height: 52px;
  border-radius: 13px;
  padding-block: 8px 24px;
}

forkmesh-world[data-world-chat-compact="true"] .world-quick-actions {
  width: 52px;
  height: 52px;
  grid-template-columns: 1fr;
}

forkmesh-world[data-world-chat-compact="true"] .world-quick-actions button,
forkmesh-world[data-world-chat-compact="true"]
  .world-native-chat
  #fullChatSend {
  min-height: 50px;
}

forkmesh-world[data-world-chat-compact="true"]
  .world-quick-actions
  button:first-child {
  border-right: 0;
}

forkmesh-world[data-world-chat-compact="true"]
  .world-quick-composer-status {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  overflow: hidden;
  padding: 0;
  clip-path: inset(50%);
  white-space: nowrap;
}

forkmesh-world[data-world-chat-micro="true"]
  .world-chat-terminal[open]
  .world-chat-terminal-body {
  grid-template-rows: auto minmax(32px, 1fr) auto;
  gap: 4px;
  padding: 4px;
}

forkmesh-world[data-world-chat-micro="true"] .world-quick-chat-header {
  grid-template-columns: minmax(0, 1fr) 36px;
  gap: 4px;
}

forkmesh-world[data-world-chat-micro="true"] .world-quick-channels {
  gap: 4px;
  padding: 0 2px;
}

forkmesh-world[data-world-chat-micro="true"] .world-quick-chat-close {
  width: 36px;
  min-width: 36px;
}

forkmesh-world[data-world-chat-micro="true"] .world-quick-chat-close,
forkmesh-world[data-world-chat-micro="true"]
  .world-quick-channels
  button {
  min-height: 36px !important;
}

forkmesh-world[data-world-chat-micro="true"]
  .world-native-chat
  [data-dashboard-chat-compose-row] {
  min-height: 52px;
  grid-template-columns: minmax(0, 1fr) 46px;
  gap: 4px;
  padding: 3px;
}

forkmesh-world[data-world-chat-micro="true"]
  .world-native-chat
  #fullChatInput {
  height: 46px !important;
  min-height: 46px;
  max-height: 46px;
  padding-block: 6px 21px;
}

forkmesh-world[data-world-chat-micro="true"] .world-quick-actions {
  width: 46px;
  height: 46px;
}

forkmesh-world[data-world-chat-micro="true"] .world-quick-actions button,
forkmesh-world[data-world-chat-micro="true"]
  .world-native-chat
  #fullChatSend {
  min-height: 44px;
}

forkmesh-world[data-world-chat-micro="true"]
  .world-native-chat
  [data-dashboard-chat-compose-row]
  > [data-dashboard-chat-attachments] {
  max-height: 40px;
}

@media (prefers-reduced-motion: reduce) {
  .world-chat-terminal--idle .world-chat-terminal-prompt-icon,
  .world-native-chat [data-dashboard-chat-composer][data-submitting]
    [data-dashboard-chat-compose-row],
  .world-native-chat [data-dashboard-chat-composer][data-just-sent]
    [data-dashboard-chat-compose-row],
  .world-chat-terminal[data-show-feed="true"] .world-quick-chat-feed {
    animation: none;
  }
}

/* Touch movement owns the bottom-left corner. Keep the DEBUG pill immediately
   above it; this late compact-HUD pass intentionally wins over the generic
   mobile terminal positioning declared earlier in the stylesheet. */
@media (pointer: coarse), (hover: none) {
  .fm-world {
    --world-touch-control-size: 94px;
  }

  .world-touch-controls {
    bottom: var(--safe-bottom);
  }

  .world-diagnostics:not(.world-chat-terminal) {
    bottom: calc(
      var(--safe-bottom) + var(--world-touch-control-size) + 12px
    );
  }
}

@media (pointer: coarse) and (max-height: 520px) and (orientation: landscape),
  (hover: none) and (max-height: 520px) and (orientation: landscape) {
  .fm-world {
    --world-touch-control-size: 82px;
  }
}

@media (pointer: coarse) and (max-width: 480px),
  (hover: none) and (max-width: 480px) {
  .fm-world {
    --world-touch-control-size: 86px;
  }
}
