/* Shared geometry for Printer's native pages and creator workspace. */
html.printer-ui {
  --control-radius: 8px;
  --control-height: 44px;
  --surface-radius: 12px;
}

html.printer-ui :is(button, input, textarea, select) { box-sizing: border-box; }
html.printer-ui :is(button, a):has(> svg) { align-items: center; }
html.printer-ui :is(button, a.button, a.primary, a.secondary) > svg {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
}
html.printer-ui body :is(.button, button.primary, a.primary, button.secondary, a.secondary, .btn-primary, .btn-secondary) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--control-height);
  padding: 10px 16px;
  border-radius: var(--control-radius) !important;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  text-decoration: none;
  box-shadow: none;
}
html.printer-ui body :is(button.primary, a.primary, .button.primary, .btn-primary) {
  border: 1px solid var(--ui-blue) !important;
  background: var(--ui-blue) !important;
  color: #fff !important;
}
html.printer-ui[data-theme=dark] body :is(button.primary, a.primary, .button.primary, .btn-primary) { color: #18212d !important; }
html.printer-ui body :is(button.secondary, a.secondary, .button.secondary, .button.quiet, .btn-secondary) {
  border: 1px solid var(--ui-line);
  background: var(--ui-panel);
  color: var(--ui-ink);
}
html.printer-ui :is(button, a.button, a.primary, a.secondary):focus-visible {
  outline: 2px solid var(--ui-blue-text) !important;
  outline-offset: 3px;
}
html.printer-ui :is(.topbar, #header, .printer-public-header) :is(button, a.button, a.primary, a.secondary) {
  flex-shrink: 0;
  min-height: 44px;
}
html.printer-ui body :is(.printer-season-nav, .profile-site-navigation) > a { gap: 12px !important; }
@media (min-width: 761px) {
  html.printer-ui body .printer-sidebar { padding: 16px 10px !important; }
  html.printer-ui body .printer-sidebar .printer-nav-label { display: block !important; }
}
html.printer-ui :is(.printer-nav-tree, .printer-season-nav) > a > :is(svg, img) {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  object-fit: contain;
}
html.printer-ui :is(.holder-subnav, .holder-primary-nav, .coming-soon-tabs) { gap: 24px; }
html.printer-ui :is(.holder-subnav, .holder-primary-nav, .coming-soon-tabs) > :is(a, button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 8px 0;
  line-height: 20px;
}
html.printer-ui #community-wallet-connect,
html.printer-ui #community-x-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 9px 14px;
  border: 1px solid var(--ui-line);
  border-radius: var(--control-radius);
  background: var(--ui-panel);
  color: var(--ui-ink);
  font: 600 13px/20px Geist, Arial, sans-serif;
}
html.printer-ui #community-wallet-connect {
  background: var(--ui-blue);
  border-color: var(--ui-blue);
  color: #fff;
}
html.printer-ui[data-theme=dark] #community-wallet-connect { color: #18212d; }
html.printer-ui .room-quick-token {
  border-radius: var(--control-radius);
  padding: 12px;
  gap: 8px;
}
html.printer-ui .room-quick-token .token-logo {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  object-fit: contain;
}

/* The coin editor has one main surface and a separate fee summary. */
html.printer-ui #app #main .single-coin-header { margin-block: 4px 12px; }
html.printer-ui #app #main .single-coin-header h1 { font-size: 27px; letter-spacing: -.8px; }
html.printer-ui #app #main .single-coin-header .creation-modes {
  max-inline-size: 470px;
  padding: 3px;
  gap: 3px;
  border-radius: 10px;
}
html.printer-ui #app #main .single-coin-header .creation-modes button {
  min-block-size: 36px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 550;
}
html.printer-ui #app #main .single-coin-grid { grid-template-columns: minmax(0, 1fr) 320px; gap: 14px; }
html.printer-ui #app #main .single-coin-main {
  padding: 14px;
  gap: 14px;
  border: 1px solid var(--ui-line);
  border-radius: var(--surface-radius);
  background: var(--ui-panel);
}
html.printer-ui #app #main .single-coin-main .panel {
  padding: 0 !important;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
html.printer-ui #app #main .single-coin-identity {
  padding-block-end: 12px !important;
  border-block-end: 1px solid var(--ui-line) !important;
}
html.printer-ui #app #main .single-identity-top { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; }
html.printer-ui #app #main .single-coin-setup .compact-upload {
  block-size: 104px;
  min-block-size: 104px;
  border-radius: 9px;
  background: var(--ui-soft);
}
html.printer-ui #app #main .single-coin-setup .compact-upload .cover-thumb { inline-size: 44px; }
html.printer-ui #app #main .single-coin-setup .field-grid { gap: 10px; }
html.printer-ui #app #main .single-coin-setup .field > span { font-size: 11px; font-weight: 550; }
html.printer-ui #app #main .single-coin-setup .field :is(input, textarea, select) {
  border-radius: 7px;
  border-color: var(--ui-line);
  background: var(--ui-bg);
  color: var(--ui-ink);
  font-size: 12px;
}
html.printer-ui #app #main .single-coin-setup .single-identity-fields .field input,
html.printer-ui #app #main .single-coin-setup .single-coin-links input {
  block-size: 36px;
  min-block-size: 36px;
  padding: 6px 10px;
}
html.printer-ui #app #main .single-coin-setup .single-identity-fields textarea { min-block-size: 36px; block-size: 36px; }
html.printer-ui #app #main .single-coin-links { margin-block-start: 8px; }
html.printer-ui #app #main .single-coin-markets { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 14px; }
html.printer-ui #app #main .single-coin-markets .first-step-options {
  padding-inline-start: 14px;
  border-inline-start: 1px solid var(--ui-line);
  gap: 12px;
}
html.printer-ui #app #main .single-coin-setup :is(.pairing-heading h2, .first-step-mode h2, .first-step-pair h3) {
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 650;
  letter-spacing: -.2px;
}
html.printer-ui #app #main .single-coin-setup .first-step-mode { padding-block-end: 10px; border-block-end: 1px solid var(--ui-line); }
@media (min-width: 1000px) {
  html.printer-ui #app #main .single-coin-setup .first-step-pair :is(.printer-liquidity-option, .custom-pair-catalog, .pair-native-browser) {
    block-size: auto;
    min-block-size: 0;
  }
  html.printer-ui #app #main .single-coin-setup .first-step-pair .printer-liquidity-option { block-size: 100%; }
  html.printer-ui #app #main .single-coin-setup .first-step-pair .pair-native-browser { overflow: auto; overscroll-behavior: contain; }
  html.printer-ui #app #main .single-coin-setup .first-step-pair .custom-pair-results { min-block-size: 44px; }
}
html.printer-ui #app #main .single-coin-setup .hook-choices { gap: 6px; }
html.printer-ui #app #main .single-coin-setup .hook-choice {
  display: flex;
  align-items: center;
  min-block-size: 44px;
  padding: 6px 8px;
  gap: 8px;
  border: 1px solid var(--ui-line);
  border-radius: 8px;
  background: transparent;
  font-size: 11px;
  line-height: 15px;
}
html.printer-ui #app #main .single-coin-setup .hook-choice-icon {
  display: grid;
  place-items: center;
  inline-size: 22px;
  block-size: 22px;
  flex: 0 0 22px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
html.printer-ui #app #main .single-coin-setup .hook-choice-icon svg { inline-size: 20px; block-size: 20px; }
html.printer-ui #app #main .single-coin-setup :is(.hook-choice, .recipient-choices label):has(input:checked) {
  border-color: var(--ui-blue-text) !important;
  background: var(--ui-blue-soft) !important;
  color: var(--ui-ink) !important;
}

/* Token artwork occupies an identical frame in every picker. */
html.printer-ui #app #main .single-coin-setup .coin-icon {
  position: relative;
  display: grid;
  place-items: center;
  inline-size: 28px !important;
  min-inline-size: 28px !important;
  block-size: 28px !important;
  flex: 0 0 28px !important;
  margin: 0;
  overflow: hidden;
  border: 0;
  border-radius: 50%;
  background: var(--ui-soft);
}
html.printer-ui #app #main .single-coin-setup .coin-icon img {
  position: absolute;
  inset: 0;
  inline-size: 100% !important;
  min-inline-size: 0 !important;
  block-size: 100% !important;
  object-fit: contain !important;
  border-radius: inherit;
}
html.printer-ui #app #main .single-coin-setup .coin-fallback { font-size: 10px; line-height: 1; }
html.printer-ui #app #main .single-coin-setup :is(.quick-rewards, .pair-featured) { gap: 5px; margin: 0 0 8px; }
html.printer-ui #app #main .single-coin-setup :is(.quick-reward, .pair-featured .custom-pair-token) {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-block-size: 66px;
  padding: 7px 4px;
  gap: 5px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: var(--ui-bg);
}
html.printer-ui #app #main .single-coin-setup :is(.quick-reward-symbol, .pair-featured .reward-name strong) {
  font-size: 11px !important;
  line-height: 14px;
  font-weight: 600;
}
html.printer-ui #app #main .single-coin-setup :is(.quick-reward.chosen, .custom-pair-token[aria-pressed=true], .reward-choice.chosen) {
  border-color: var(--ui-blue-text) !important;
  background: var(--ui-blue-soft) !important;
  box-shadow: none !important;
}
html.printer-ui #app #main .single-coin-setup .reward-tick {
  position: absolute;
  top: 4px;
  right: 4px;
  display: grid;
  place-items: center;
  inline-size: 12px;
  block-size: 12px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--ui-blue-text);
  color: #fff;
  font-size: 9px;
  line-height: 1;
}
html.printer-ui #app #main .single-coin-setup .quick-reward:not(.chosen) .reward-tick { visibility: hidden; }
html.printer-ui #app #main .single-coin-setup :is(.reward-search, .pair-asset-search) {
  gap: 7px;
  block-size: 36px;
  min-block-size: 36px;
  border-radius: 7px;
  padding-inline: 9px;
  margin: 0 0 6px !important;
  background: var(--ui-bg);
}
html.printer-ui #app #main .single-coin-setup :is(.reward-search, .pair-asset-search) svg { width: 15px; height: 15px; flex: 0 0 15px; }
html.printer-ui #app #main .single-coin-setup :is(.reward-search, .pair-asset-search) input {
  min-block-size: 32px;
  padding-inline: 0;
  font-size: 11px !important;
  background: transparent !important;
}
html.printer-ui #app #main .single-coin-setup .community-tabs { gap: 2px; margin: 0 0 6px; }
html.printer-ui #app #main .single-coin-setup .community-tabs button {
  min-block-size: 28px;
  padding: 4px 5px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  font-size: 10px;
  line-height: 18px;
}
html.printer-ui #app #main .single-coin-setup .community-tabs button[aria-pressed=true] {
  background: var(--ui-soft) !important;
  color: var(--ui-ink) !important;
  font-weight: 650;
}
html.printer-ui #app #main .single-coin-setup :is(.launched-rewards, .custom-pair-results) { gap: 5px; }
html.printer-ui #app #main .single-coin-setup :is(.reward-choice, .custom-pair-results .custom-pair-token) {
  min-block-size: 54px;
  padding: 7px;
  gap: 8px;
  border: 1px solid var(--ui-line);
  border-radius: 8px;
  background: transparent;
}
html.printer-ui #app #main .single-coin-setup .reward-name { min-inline-size: 0; }
html.printer-ui #app #main .single-coin-setup .reward-name strong { font-size: 11px !important; line-height: 15px; }
html.printer-ui #app #main .single-coin-setup .reward-name small { font-size: 9px !important; line-height: 13px; }
html.printer-ui #app #main .single-coin-setup .single-first-buy {
  padding-block-start: 12px !important;
  border-block-start: 1px solid var(--ui-line) !important;
}
html.printer-ui #app #main .single-coin-setup .first-buy-presets button {
  min-block-size: 36px;
  border-radius: 7px;
  font-size: 11px;
}
html.printer-ui #app #main .single-coin-setup .first-buy-presets button[aria-pressed=true] {
  background: var(--ui-blue-soft) !important;
  border-color: var(--ui-blue-text) !important;
}

/* A stable right column keeps fee choices and the launch action together. */
html.printer-ui #app #main .single-coin-setup .single-coin-summary {
  padding: 14px !important;
  border-radius: var(--surface-radius);
  background: var(--ui-panel);
}
html.printer-ui #app #main .single-coin-setup .single-recipient { padding-block-end: 12px; margin-block-end: 12px; }
html.printer-ui #app #main .single-coin-setup .single-recipient h2 { margin-bottom: 8px; font-size: 14px; }
html.printer-ui #app #main .single-coin-setup .recipient-choices label {
  display: flex;
  justify-content: center;
  align-items: center;
  min-block-size: 36px;
  padding: 6px 10px;
  gap: 7px;
  border-radius: 7px;
  font-size: 12px;
}
html.printer-ui #app #main .single-coin-setup .recipient-choices svg { inline-size: 17px; block-size: 17px; flex: 0 0 17px; }
html.printer-ui #app #main .single-coin-setup .single-fee-buttons { gap: 6px; }
html.printer-ui #app #main .single-coin-setup .single-fee-buttons > label { padding: 8px; gap: 4px; border-radius: 8px; }
html.printer-ui #app #main .single-coin-setup .single-fee-buttons input {
  position: absolute;
  opacity: 0;
  inline-size: 1px;
  block-size: 1px;
}
html.printer-ui #app #main .single-coin-setup .single-fee-buttons label:focus-within { outline: 2px solid var(--ui-blue-text); outline-offset: 2px; }
html.printer-ui #app #main .single-coin-setup .single-fee-buttons label:has(input:checked) {
  border-color: var(--ui-blue-text);
  background: var(--ui-blue-soft);
}
html.printer-ui #app #main .single-coin-setup .single-fee-buttons span { font-size: 10px; }
html.printer-ui #app #main .single-coin-setup .single-fee-buttons strong { font-size: 23px; line-height: 27px; letter-spacing: -.5px; }
html.printer-ui #app #main .single-coin-setup .single-fee-custom { min-block-size: 32px; gap: 8px; }
html.printer-ui #app #main .single-coin-setup .single-fee-custom input { accent-color: var(--ui-blue-text); }
html.printer-ui #app #main .single-coin-setup .compact-reserve { padding-block: 10px; }
html.printer-ui #app #main .single-coin-setup .wizard-footer { padding-top: 10px !important; gap: 7px; }
html.printer-ui #app #main .single-coin-setup .ca-options { display: flex; gap: 5px; }
html.printer-ui #app #main .single-coin-setup .ca-option { flex: 1; min-inline-size: 0; }
html.printer-ui #app #main .single-coin-setup .ca-option > span {
  display: flex;
  justify-content: center;
  align-items: center;
  min-block-size: 36px;
  padding: 6px 8px;
  gap: 6px;
  border-radius: 7px;
  font-size: 11px;
  line-height: 18px;
}
html.printer-ui #app #main .single-coin-setup .ca-option svg { inline-size: 15px; block-size: 15px; flex: 0 0 15px; }
html.printer-ui #app #main .single-coin-setup .wizard-actions button { min-block-size: 44px; gap: 8px; }
html.printer-ui #app #main .single-coin-setup .wizard-footer .launch-extras-link { min-block-size: 28px !important; line-height: 18px; }

html.printer-ui[data-theme=dark] #app #main .single-coin-setup :is(.quick-reward, .custom-pair-token) {
  background: var(--ui-bg) !important;
  border-color: var(--ui-line) !important;
}
html.printer-ui[data-theme=dark] #app #main .single-coin-setup :is(.quick-reward.chosen, .custom-pair-token[aria-pressed=true], .reward-choice.chosen, .hook-choice:has(input:checked), .recipient-choices label:has(input:checked)) {
  background: var(--ui-blue-soft) !important;
  border-color: var(--ui-blue-text) !important;
}
html.printer-ui[data-theme=dark] #app #main .single-coin-setup :is(.reward-search, .pair-asset-search) input {
  background: transparent !important;
  border: 0 !important;
}
html.printer-ui[data-theme=dark] #app #main .single-coin-setup .community-tabs button {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--ui-muted) !important;
}
html.printer-ui[data-theme=dark] #app #main .single-coin-setup .community-tabs button[aria-pressed=true] {
  background: var(--ui-soft) !important;
  color: var(--ui-ink) !important;
}
html.printer-ui[data-theme=dark] #app #main .single-coin-header .creation-modes button[aria-pressed=true] {
  background: var(--ui-soft) !important;
  color: var(--ui-ink) !important;
}

@media (hover: hover) {
  html.printer-ui :is(button.secondary, a.secondary, .button.quiet):hover { border-color: var(--ui-strong); background: var(--ui-soft); }
  html.printer-ui #app #main .single-coin-setup :is(.quick-reward, .custom-pair-token, .reward-choice, .hook-choice):hover { border-color: var(--ui-strong); }
}
@media (min-width: 1000px) and (max-height: 800px) {
  html.printer-ui #app #main .single-coin-header { margin-block: 2px 8px; }
  html.printer-ui #app #main .single-coin-main { padding: 10px; gap: 10px; }
  html.printer-ui #app #main .single-coin-identity { padding-block-end: 8px !important; }
  html.printer-ui #app #main .single-coin-setup .compact-upload { block-size: 96px; min-block-size: 96px; }
  html.printer-ui #app #main .single-coin-setup .single-identity-fields .field input,
  html.printer-ui #app #main .single-coin-setup .single-coin-links input { block-size: 32px; min-block-size: 32px; }
  html.printer-ui #app #main .single-coin-setup .single-identity-fields textarea { block-size: 32px; min-block-size: 32px; }
  html.printer-ui #app #main .single-coin-setup :is(.quick-reward, .pair-featured .custom-pair-token) { min-block-size: 58px; gap: 3px; padding-block: 4px; }
  html.printer-ui #app #main .single-coin-setup .single-first-buy { padding-block-start: 8px !important; }
  html.printer-ui #app #main .single-coin-setup .single-coin-summary { padding: 12px !important; }
  html.printer-ui #app #main .single-coin-setup .single-recipient { margin-block-end: 8px; padding-block-end: 8px; }
  html.printer-ui #app #main .single-coin-markets .first-step-options { gap: 4px; }
  html.printer-ui #app #main .single-coin-setup .first-step-mode { padding-block-end: 6px !important; }
  html.printer-ui #app #main .single-coin-setup .first-step-mode h2 { font-size: 12px; line-height: 16px; margin-bottom: 5px; }
  html.printer-ui #app #main .single-coin-setup .hook-choice { min-block-size: 34px; padding: 4px; gap: 5px; font-size: 10px; }
  html.printer-ui #app #main .single-coin-setup .hook-choices { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); }
  html.printer-ui #app #main .single-coin-setup .hook-choice-icon { flex-basis: 18px; inline-size: 18px; block-size: 18px; }
  html.printer-ui #app #main .single-coin-setup .community-tabs { gap: 0; }
  html.printer-ui #app #main .single-coin-setup .community-tabs button { min-block-size: 24px; padding: 3px; font-size: 9px; }
  html.printer-ui #app #main .single-coin-setup .pair-featured .custom-pair-token { min-block-size: 44px; gap: 2px; padding-block: 3px; }
  html.printer-ui #app #main .single-coin-setup .pair-featured .coin-icon { inline-size: 24px !important; min-inline-size: 24px !important; block-size: 24px !important; flex-basis: 24px !important; }
  html.printer-ui #app #main .single-coin-setup .pair-asset-search { block-size: 32px; min-block-size: 32px; }
  html.printer-ui #app #main .single-coin-setup .pair-asset-search input { min-block-size: 28px; }
  html.printer-ui #app #main .single-coin-setup .pair-show-more { min-block-size: 20px; line-height: 16px; padding-block: 2px; }
}
@media (max-width: 999px) {
  html.printer-ui #app #main .single-coin-header .creation-modes { max-inline-size: none; }
  html.printer-ui #app #main .single-coin-main { display: block; padding: 14px; }
  html.printer-ui #app #main .single-coin-main .panel { margin-block-end: 18px; }
  html.printer-ui #app #main .single-identity-top { grid-template-columns: 80px minmax(0, 1fr); gap: 10px; }
  html.printer-ui #app #main .single-identity-fields { display: contents; }
  html.printer-ui #app #main .single-identity-fields > .field-grid { grid-column: 2; }
  html.printer-ui #app #main .single-identity-fields > .field { grid-column: 1 / -1; }
  html.printer-ui #app #main .single-coin-setup .compact-upload strong { font-size: 10px; white-space: nowrap; }
  html.printer-ui #app #main .single-coin-markets .first-step-options { padding: 0; border: 0; }
  html.printer-ui #app #main .single-coin-setup .single-first-buy { margin-block-end: 0; }
  html.printer-ui #app #main .single-coin-setup .single-coin-summary { margin-block-start: 12px; }
  html.printer-ui #app #main .single-coin-setup .single-coin-grid { padding-block-end: 210px; }
  html.printer-ui #app #main .single-coin-setup .wizard-footer {
    padding: 10px 16px max(10px, env(safe-area-inset-bottom)) !important;
    border-top: 1px solid var(--ui-line);
    background: var(--ui-panel) !important;
  }
  html.printer-ui #app #main .single-coin-setup .ca-option > span { min-block-size: 44px; font-size: 12px; }
  html.printer-ui #app #main .single-coin-setup .ca-short-label { display: none; }
  html.printer-ui #app #main .single-coin-setup .single-identity-fields .field input,
  html.printer-ui #app #main .single-coin-setup .single-coin-links input { min-block-size: 40px; block-size: 40px; font-size: 16px; }
  html.printer-ui #app #main .single-coin-setup .single-identity-fields textarea { min-block-size: 48px; block-size: 48px; font-size: 16px; }
  html.printer-ui #app #main .single-coin-setup .field > span { font-size: 12px; line-height: 16px; }
  html.printer-ui #app #main .single-coin-setup :is(.quick-rewards, .pair-featured) { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
  html.printer-ui #app #main .single-coin-setup :is(.reward-catalog, .custom-pair-catalog, .printer-liquidity-option, .pair-native-browser) { margin: 0; padding: 0; border: 0; }
  html.printer-ui #app #main .single-coin-setup :is(.reward-search, .pair-asset-search) { block-size: 44px; min-block-size: 44px; }
  html.printer-ui #app #main .single-coin-setup :is(.reward-search, .pair-asset-search) input { font-size: 16px !important; }
  html.printer-ui #app #main .single-coin-setup :is(#pairing-results, .custom-pair-results) { max-block-size: 230px; overflow: auto; overscroll-behavior: contain; }
  html.printer-ui #app #main .single-coin-setup .community-tabs button { min-block-size: 40px; padding: 5px 7px; font-size: 11px; }
  html.printer-ui #app #main .single-coin-setup .first-buy-presets button { min-block-size: 40px; }
  html.printer-ui :is(.holder-subnav, .holder-primary-nav, .coming-soon-tabs) { gap: 20px; }
  html.printer-ui body :is(.button, button.primary, a.primary, button.secondary, a.secondary) { min-height: 44px; }
}
