/* KOIREA Button Design System material owner.
 * data-button-role is the semantic source of truth, independent of element type.
 */
/* Current registration utility material. Public TOP keeps its approved palette. */
html body.page-signup:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) .post-a-nickname [data-button-role] {
  border: 1px solid #cbd2dd;
  border-radius: 10px;
  background: #fff;
  color: #17233a;
  box-shadow: none;
  transform: none;
}
html body.page-signup:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) .post-a-nickname [data-button-role]:hover { border-color: #94a3b8; color: #17233a; box-shadow: none; transform: none; }
html body.page-signup:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) .post-a-nickname [data-button-role]:focus-visible { outline: 3px solid rgba(217,54,93,.3); outline-offset: 3px; }

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role] {
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: var(--button-icon-gap);
  font-family: inherit;
  font-weight: var(--button-font-weight);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  white-space: nowrap;
  transition: var(--button-transition);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role]:not([data-button-geometry="preserve"]) {
  border-style: solid;
  border-width: 1px;
  border-radius: var(--button-radius-default);
  font-size: var(--button-font-size);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role][data-button-size="compact"]:not([data-button-geometry="preserve"]) {
  border-radius: var(--button-radius-default);
  font-size: 13px;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role].button {
  font-weight: 900;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role] :is(.koirea-ui-icon, svg),
html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role] > svg {
  width: var(--button-icon-size);
  height: var(--button-icon-size);
  flex: 0 0 var(--button-icon-size);
  color: inherit;
  fill: none;
  stroke: currentColor;
  color: inherit;
  stroke-width: 2;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role] .koirea-button__label {
  min-width: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-align: center;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role] .koirea-button__trailing {
  width: 18px;
  flex: 0 0 18px;
  margin-left: auto;
  color: inherit;
  font: 500 25px/1 system-ui, sans-serif;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="primary"],
html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="elevated"] {
  border-color: var(--button-primary-border);
  background: linear-gradient(90deg, var(--button-primary-start) 0%, var(--button-primary-center) 52%, var(--button-primary-end) 100%);
  color: var(--button-primary-text);
  box-shadow: var(--button-shadow-primary);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="secondary"] {
  border-color: var(--button-secondary-border);
  background: var(--button-secondary-surface);
  color: var(--button-secondary-text);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .96), 0 5px 14px rgba(74, 33, 47, .06);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="secondary"]:not([data-button-geometry="preserve"]) {
  border-width: 1.5px;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="secondary"] .koirea-ui-icon {
  color: #df2f5d;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="tertiary"] {
  border-color: transparent;
  background: transparent;
  color: var(--button-tertiary-text);
  box-shadow: none;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="neutral"] {
  border-color: var(--button-neutral-border);
  background: linear-gradient(180deg, #fff 0%, var(--button-neutral-bg) 100%);
  color: var(--button-neutral-text);
  box-shadow: var(--button-shadow-neutral);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="emotional"] {
  border-color: var(--button-emotional-border);
  background: linear-gradient(180deg, #fff 0%, #fffafb 100%);
  color: #13243a;
  box-shadow: inset 0 1px 0 #fff, 0 5px 14px rgba(74, 33, 47, .06);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="emotional"] .koirea-ui-icon {
  width: 22px;
  height: 22px;
  flex-basis: 22px;
  color: #df2f5d;
  stroke-width: 2.25;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="danger"] {
  border-color: var(--button-danger-border);
  background: linear-gradient(180deg, #fff 0%, #fdf8f9 100%);
  color: var(--button-danger-text);
  box-shadow: inset 0 1px 0 #fff, 0 5px 14px rgba(117, 20, 36, .06);
}

/* Keep visited links on the role palette without grouping :visited into the
 * material-owner rules. Browsers can mask computed values for visited selector
 * groups, which previously exposed the user-agent blue during long audits. */
html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="primary"]:visited,
html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="elevated"]:visited {
  color: var(--button-primary-text);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="secondary"]:visited {
  color: var(--button-secondary-text);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="tertiary"]:visited {
  color: var(--button-tertiary-text);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="neutral"]:visited {
  color: var(--button-neutral-text);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="emotional"]:visited {
  color: #13243a;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="danger"]:visited {
  color: var(--button-danger-text);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role][data-button-surface="accent-soft"]:not([data-button-role="primary"]) {
  border-color: var(--button-secondary-border);
  border-width: 1.5px;
  background: var(--button-secondary-surface);
  color: var(--button-secondary-text);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .96), 0 5px 14px rgba(74, 33, 47, .06);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role][data-button-surface="accent-soft"]:not([data-button-role="primary"]) .koirea-ui-icon {
  color: #df2f5d;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="emotional"]:is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active),
html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role]:is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active)[data-button-selected="accent-soft"] {
  border-color: var(--button-emotional-selected-border);
  background: linear-gradient(180deg, #fff2f8 0%, #fdebf7 100%);
  color: var(--button-emotional-selected-text);
  box-shadow: inset 0 0 0 1px rgba(247, 133, 163, .12), inset 0 1px 0 #fff;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="neutral"][data-button-selected="primary"][aria-current="page"] {
  border-color: var(--button-primary-border);
  background: linear-gradient(90deg, var(--button-primary-start) 0%, var(--button-primary-center) 52%, var(--button-primary-end) 100%);
  color: var(--button-primary-text);
  box-shadow: var(--button-shadow-primary);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="emotional"]:is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active) .koirea-ui-icon {
  fill: currentColor;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role]:is([disabled], [aria-disabled="true"], .is-disabled) {
  border-color: var(--button-disabled-border);
  background: var(--button-disabled-bg);
  color: var(--button-disabled-text);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 1;
  transform: none;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role][aria-busy="true"] {
  cursor: progress;
  pointer-events: none;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role][aria-busy="true"]::before {
  content: "";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border: 2px dotted currentColor;
  border-radius: 50%;
  animation: koirea-button-spin .7s linear infinite;
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-elevated="true"],
html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="elevated"] {
  box-shadow: var(--button-shadow-elevated);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role]:focus-visible {
  outline: 3px solid var(--brand-primary-focus);
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="primary"]:hover,
  html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="elevated"]:hover {
    border-color: #f52966;
    background: linear-gradient(90deg, #fa3d74 0%, #f61d5b 52%, #fa507f 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), inset 0 -1px 0 rgba(137, 13, 52, .12), 0 12px 27px rgba(244, 43, 98, .27);
    transform: translateY(-1px);
  }

  html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="secondary"]:hover,
  html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="neutral"]:hover,
  html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role][data-button-surface="accent-soft"]:not([data-button-role="primary"]):hover {
    border-color: #f52966;
    background: #fff !important;
    color: #d82355;
    box-shadow: var(--button-shadow-subtle);
    transform: translateY(-1px);
  }

  html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="tertiary"]:hover {
    background: #fff0f5;
  }

  html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="danger"]:hover {
    border-color: var(--button-danger-hover);
    background: var(--button-danger);
    color: #fff;
    box-shadow: 0 8px 18px rgba(166, 27, 43, .16);
  }

  html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-elevated="true"]:hover {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 16px 34px rgba(244, 43, 98, .31);
  }
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="primary"]:active,
html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="elevated"]:active {
  border-color: #cf174d;
  background: linear-gradient(90deg, #dd2459 0%, #ca1649 52%, #df315f 100%);
  box-shadow: inset 0 3px 7px rgba(104, 7, 36, .24);
  transform: translateY(1px) scale(.99);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="secondary"]:active,
html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="neutral"]:active {
  background: #ffe5ed;
  box-shadow: inset 0 2px 5px rgba(173, 31, 70, .15);
  transform: translateY(1px);
}

html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role="danger"]:active {
  border-color: var(--button-danger-active);
  background: var(--button-danger-active);
  color: #fff;
  box-shadow: inset 0 3px 7px rgba(48, 2, 10, .24);
  transform: translateY(1px);
}

@media (prefers-reduced-motion: reduce) {
  html body:not(.is-admin-area):not(.is-staff-area):not(.is-logged-in):not(.koirea-app-body):not(.koirea-app-chat-body) [data-button-role] {
    transition-duration: .001ms;
  }
}

@keyframes koirea-button-spin {
  to { transform: rotate(360deg); }
}



/* Authenticated UI2 member material contract.
 * This is the only owner of member button color, border, shadow, typography,
 * radius and interaction states. Route/context CSS owns placement and layout.
 */
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role] {
  --member-button-surface: #fff;
  --member-button-ink: #17233a;
  box-sizing: border-box;
  min-height: 48px;
  padding-inline: var(--member-button-inline-padding, 18px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid transparent;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 10px;
  background-image: none;
  box-shadow: none;
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  white-space: nowrap;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role][data-button-size="compact"] {
  min-height: 44px;
  padding-inline: var(--member-button-inline-padding, 14px);
  border-radius: 10px;
  font-size: 13px;
  font-weight: 800;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role] :is(.koirea-ui-icon, svg),
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role] > svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  color: inherit;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="primary"],
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="elevated"] {
  border-color: #d9365d !important;
  --member-button-line: #d9365d;
  background: #d9365d;
  --member-button-surface: #d9365d;
  background-image: none;
  color: #fff;
  --member-button-ink: #fff;
  box-shadow: none;
}

/* Preserve the approved SVG. Its fixed dark paint follows the primary text,
 * while the P counter uses the solid button surface. */
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="primary"], [data-button-role="elevated"]) .koirea-ui-icon [stroke="#17233A"] { stroke: currentColor; }
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="primary"], [data-button-role="elevated"]) .koirea-ui-icon [fill="#17233A"] { fill: currentColor; }
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="primary"], [data-button-role="elevated"]) svg[data-koirea-ui-icon="points"]:not([data-koirea-icon-family="member-web"]) circle {
  stroke: currentColor;
}
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="primary"], [data-button-role="elevated"]) svg[data-koirea-ui-icon="points"]:not([data-koirea-icon-family="member-web"]) path:first-of-type {
  fill: currentColor;
  stroke: none;
}
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="primary"], [data-button-role="elevated"]) svg[data-koirea-ui-icon="points"]:not([data-koirea-icon-family="member-web"]) path:last-of-type {
  fill: #d9365d;
}
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="primary"]:hover svg[data-koirea-ui-icon="points"]:not([data-koirea-icon-family="member-web"]) path:last-of-type { fill: #c82d52; }
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="primary"]:active svg[data-koirea-ui-icon="points"]:not([data-koirea-icon-family="member-web"]) path:last-of-type { fill: #b72a4c; }

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="secondary"], [data-button-role="neutral"], [data-button-role="tertiary"]) {
  border-color: rgba(23, 35, 58, .26) !important;
  --member-button-line: rgba(23, 35, 58, .26);
  background: #fff;
  --member-button-surface: #fff;
  background-image: none;
  color: #17233a;
  --member-button-ink: #17233a;
  box-shadow: none;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="emotional"] {
  border-color: #d9365d !important;
  --member-button-line: #d9365d;
  background: #fff;
  --member-button-surface: #fff;
  background-image: none;
  color: #d9365d;
  --member-button-ink: #d9365d;
  box-shadow: none;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="danger"] {
  border-color: #a61b2b !important;
  --member-button-line: #a61b2b;
  background: #fff;
  --member-button-surface: #fff;
  background-image: none;
  color: #a61b2b;
  --member-button-ink: #a61b2b;
  box-shadow: none;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="primary"]:visited,
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="elevated"]:visited { color: #fff; }
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="secondary"], [data-button-role="neutral"], [data-button-role="tertiary"]):visited { color: #17233a; }
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="emotional"]:visited { color: #d9365d; }
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="danger"]:visited { color: #a61b2b; }

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="secondary"], [data-button-role="neutral"], [data-button-role="tertiary"]):not([data-button-selection="accent"]):is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active) {
  border-color: #17233a !important;
  --member-button-line: #17233a;
  background: #17233a;
  --member-button-surface: #17233a;
  background-image: none;
  color: #fff;
  --member-button-ink: #fff;
  box-shadow: none;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="emotional"]:is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active) {
  border-color: #d9365d !important;
  --member-button-line: #d9365d;
  background: #d9365d;
  --member-button-surface: #d9365d;
  background-image: none;
  color: #fff;
  --member-button-ink: #fff;
  box-shadow: none;
}

/* Only the Super Like heart uses blue; the approved heart shape and ordinary Like stay intact. */
@media (max-width: 430px) {
  html body.koirea-ui2-runtime.page-members.koirea-member-web .v103-member-list:is(.is-layout-grid2, .is-layout-grid3) .v639-member-actions .v916-super-like-button[data-button-role] {
    line-height: 1.2;
  }
}
html body .v916-super-like-button:not([disabled]):not([aria-disabled="true"]) svg[data-koirea-ui-icon="heart"] > g {
  stroke: var(--koirea-super-like-heart-blue, #1764b5) !important;
}
html body .v916-super-like-button:is([disabled], [aria-disabled="true"]) svg[data-koirea-ui-icon="heart"] > g {
  stroke: currentColor !important;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="emotional"]:is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active) .koirea-ui-icon {
  fill: currentColor;
}

/* The approved heart SVG draws on its inner group; keep it visible on solid selected buttons. */
html body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="secondary"], [data-button-role="emotional"]):is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active) svg[data-koirea-ui-icon="heart"] > g {
  stroke: currentColor;
}

/* Layout controls use the approved menu SVG, whose inner group has a fixed dark stroke. */
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="secondary"], [data-button-role="neutral"], [data-button-role="tertiary"]):is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active) svg[data-koirea-ui-icon="menu"] > g {
  stroke: currentColor;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role]:is([disabled], [aria-disabled="true"], .is-disabled) {
  border-color: #d5d9df !important;
  --member-button-line: #d5d9df;
  background: #eceff3;
  --member-button-surface: #eceff3;
  background-image: none;
  color: #697386;
  --member-button-ink: #697386;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 1;
  transform: none;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role][aria-busy="true"] {
  cursor: progress;
  pointer-events: none;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role][aria-busy="true"]::before {
  content: "";
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 2px dotted currentColor;
  border-radius: 50%;
  animation: koirea-button-spin .7s linear infinite;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role]:focus-visible {
  outline: 3px solid rgba(217, 54, 93, .28);
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="primary"], [data-button-role="elevated"]):not([disabled]):not([aria-disabled="true"]):hover {
    border-color: #c82d52 !important;
    --member-button-line: #c82d52;
    background: #c82d52 !important;
    --member-button-surface: #c82d52;
    color: #fff;
    --member-button-ink: #fff;
    box-shadow: none;
    transform: none;
  }
  html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="secondary"], [data-button-role="neutral"], [data-button-role="tertiary"]):not([disabled]):not([aria-disabled="true"]):not(.is-disabled):not(:is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active)):hover {
    border-color: rgba(23, 35, 58, .42) !important;
    --member-button-line: rgba(23, 35, 58, .42);
    background: #f7f8fa !important;
    --member-button-surface: #f7f8fa;
    color: #17233a;
    --member-button-ink: #17233a;
    box-shadow: none;
    transform: none;
  }
  html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="emotional"]:not([disabled]):not([aria-disabled="true"]):not(.is-disabled):not(:is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active)):hover {
    border-color: #c82d52 !important;
    --member-button-line: #c82d52;
    background: #fff;
    --member-button-surface: #fff;
    color: #c82d52;
    --member-button-ink: #c82d52;
    box-shadow: none;
    transform: none;
  }
  html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="danger"]:not([disabled]):not([aria-disabled="true"]):hover {
    border-color: #a61b2b !important;
    --member-button-line: #a61b2b;
    background: #a61b2b;
    --member-button-surface: #a61b2b;
    color: #fff;
    --member-button-ink: #fff;
    box-shadow: none;
    transform: none;
  }
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="primary"], [data-button-role="elevated"]):not([disabled]):not([aria-disabled="true"]):active {
  border-color: #b72a4c !important;
  --member-button-line: #b72a4c;
  background: #b72a4c;
  --member-button-surface: #b72a4c;
  color: #fff;
  --member-button-ink: #fff;
  box-shadow: none;
  transform: none;
}
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) :is([data-button-role="secondary"], [data-button-role="neutral"], [data-button-role="tertiary"]):not([disabled]):not([aria-disabled="true"]):not(.is-disabled):not(:is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active)):active {
  border-color: rgba(23, 35, 58, .48) !important;
  --member-button-line: rgba(23, 35, 58, .48);
  background: #eceff3;
  --member-button-surface: #eceff3;
  color: #17233a;
  --member-button-ink: #17233a;
  box-shadow: none;
  transform: none;
}
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="emotional"]:not([disabled]):not([aria-disabled="true"]):not(.is-disabled):not(:is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active)):active {
  border-color: #b72a4c !important;
  --member-button-line: #b72a4c;
  background: #b72a4c;
  --member-button-surface: #b72a4c;
  color: #fff;
  --member-button-ink: #fff;
  box-shadow: none;
  transform: none;
}
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="danger"]:not([disabled]):not([aria-disabled="true"]):active {
  border-color: #7f1320 !important;
  --member-button-line: #7f1320;
  background: #7f1320;
  --member-button-surface: #7f1320;
  color: #fff;
  --member-button-ink: #fff;
  box-shadow: none;
  transform: none;
}

/* Selected state is resolved after pointer states so a hovered current item
 * keeps its explicit selected material in both Web and App shells. */
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="secondary"]:not([data-button-selection="accent"]):not([disabled]):not([aria-disabled="true"]):not(.is-disabled):is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active) {
  border-color: #17233a !important;
  --member-button-line: #17233a;
  background: #17233a;
  --member-button-surface: #17233a;
  background-image: none;
  color: #fff;
  --member-button-ink: #fff;
  box-shadow: none;
}

html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)), body.koirea-app-body, body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="emotional"]:not([disabled]):not([aria-disabled="true"]):not(.is-disabled):is([aria-pressed="true"], [aria-current="page"], .is-selected, .is-active) {
  border-color: #d9365d !important;
  --member-button-line: #d9365d;
  background: #d9365d;
  --member-button-surface: #d9365d;
  background-image: none;
  color: #fff;
  --member-button-ink: #fff;
  box-shadow: none;
}

/* Approved administrative controls; authentication and maintenance behavior stay owned by PHP. */
html body.is-admin-area :is(.v918-admin-login,.v807-admin-tweet-card) button.button.primary {
  background:#d9365d; background-image:none; border:1px solid #d9365d; border-radius:10px; color:#fff; box-shadow:none; transform:none;
}
html body.is-admin-area :is(.v918-admin-login,.v807-admin-tweet-card) button.button.primary:hover { background:#c82d52; border-color:#c82d52; color:#fff; box-shadow:none; }
html body.is-admin-area :is(.v918-admin-login,.v807-admin-tweet-card) button.button.primary:focus-visible { outline:3px solid #d9365d; outline-offset:3px; }
html body.is-admin-area .v00003-admin-menu-toggle { min-height:44px; min-width:44px; border:1px solid #cbd2dd; border-radius:10px; background:#fff; background-image:none; color:#17233a; box-shadow:none; }
html body.is-admin-area .v00003-admin-menu-toggle:hover { background:#f7f8fa; color:#17233a; }
html :is(body.is-logged-in.koirea-member-web:where(:not(.koirea-member-web)),body.koirea-app-body,body.koirea-app-chat-body):not(.is-admin-area):not(.is-staff-area) [data-button-role="primary"]:is([disabled],[aria-disabled="true"]) svg[data-koirea-ui-icon="points"]:not([data-koirea-icon-family="member-web"]) path:last-of-type { fill:#eceff3; }

/* Web member material. Legacy paint excludes these semantic controls at
 * its source; this owner needs no important declarations or stronger patches. */
:where(body.is-logged-in.koirea-member-web:not(.is-admin-area):not(.is-staff-area) [data-button-role]) {
  --member-button-surface: #fff;
  --member-button-ink: #17233a;
  --member-button-line: rgba(23,35,58,.26);
}
body.is-logged-in.koirea-member-web:not(.is-admin-area):not(.is-staff-area) [data-button-role] {
  --member-button-radius: 10px;
  --member-button-shadow: none;
  box-sizing: border-box;
  min-height: 44px;
  min-width: 44px;
  border: var(--member-button-border-width, 1px) solid var(--member-button-line);
  border-radius: var(--member-button-radius);
  background: var(--member-button-surface);
  background-image: none;
  color: var(--member-button-ink);
  box-shadow: var(--member-button-shadow);
  text-shadow: none;
  transform: none;
  opacity: 1;
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  white-space: var(--member-button-white-space, nowrap);
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
  transition-property: var(--member-button-transition-properties, background-color, border-color, color);
}
body.koirea-member-web [data-button-role]:not([hidden]):not([data-button-geometry="preserve"]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding-inline: var(--member-button-inline-padding, 18px);
}
body.koirea-member-web [data-button-role][data-button-size="compact"]:not([data-button-geometry="preserve"]) {
  min-height: 44px;
  padding-inline: var(--member-button-inline-padding, 14px);
  font-size: 13px;
}
body.koirea-member-web [data-button-role][data-member-control="Icon-only"]:not([data-button-geometry="preserve"]) {
  --member-button-inline-padding: 0px;
}
body.koirea-member-web [data-button-role="primary"] {
  --member-button-surface: #d9365d;
  --member-button-line: #d9365d;
  --member-button-ink: #fff;
}
body.koirea-member-web [data-button-role="emotional"] {
  --member-button-line: #d9365d;
  --member-button-ink: #d9365d;
}
body.koirea-member-web [data-button-role="danger"] {
  --member-button-line: #a61b2b;
  --member-button-ink: #a61b2b;
}
@media (hover: hover) and (pointer: fine) {
  body.koirea-member-web [data-button-role="primary"]:not(:disabled):not([aria-disabled="true"]):hover { --member-button-surface:#c82d52; --member-button-line:#c82d52; }
  body.koirea-member-web [data-button-role="secondary"]:not(:disabled):not([aria-disabled="true"]):not(:is([aria-pressed="true"],[aria-current="page"],.is-selected,.is-active,:has(input:checked))):hover { --member-button-surface:#f7f8fa; --member-button-line:rgba(23,35,58,.42); }
  body.koirea-member-web [data-button-role="emotional"]:not(:disabled):not([aria-disabled="true"]):not(:is([aria-pressed="true"],[aria-current="page"],.is-selected,.is-active,:has(input:checked))):hover { --member-button-line:#c82d52; --member-button-ink:#c82d52; }
  body.koirea-member-web [data-button-role="danger"]:not(:disabled):not([aria-disabled="true"]):hover { --member-button-surface:#a61b2b; --member-button-ink:#fff; }
}
body.koirea-member-web [data-button-role="primary"]:not(:disabled):not([aria-disabled="true"]):active { --member-button-surface:#b72a4c; --member-button-line:#b72a4c; }
body.koirea-member-web [data-button-role="secondary"]:not(:disabled):not([aria-disabled="true"]):not(:is([aria-pressed="true"],[aria-current="page"],.is-selected,.is-active,:has(input:checked))):active { --member-button-surface:#eceff3; --member-button-line:rgba(23,35,58,.48); }
body.koirea-member-web [data-button-role="emotional"]:not(:disabled):not([aria-disabled="true"]):not(:is([aria-pressed="true"],[aria-current="page"],.is-selected,.is-active,:has(input:checked))):active { --member-button-surface:#b72a4c; --member-button-line:#b72a4c; --member-button-ink:#fff; }
body.koirea-member-web [data-button-role="danger"]:not(:disabled):not([aria-disabled="true"]):active { --member-button-surface:#7f1320; --member-button-line:#7f1320; --member-button-ink:#fff; }
body.koirea-member-web [data-button-role="secondary"]:is([aria-pressed="true"],[aria-current="page"],.is-selected,.is-active) { --member-button-surface:#17233a; --member-button-line:#17233a; --member-button-ink:#fff; }
body.koirea-member-web :is([data-button-role="emotional"],[data-button-selection="accent"]):is([aria-pressed="true"],[aria-current="page"],.is-selected,.is-active) { --member-button-surface:#d9365d; --member-button-line:#d9365d; --member-button-ink:#fff; }
body.koirea-member-web [data-button-role]:is(:disabled,[aria-disabled="true"],.is-disabled) { --member-button-surface:#eceff3; --member-button-line:#d5d9df; --member-button-ink:#697386; cursor:not-allowed; }
body.koirea-member-web [data-button-role][aria-busy="true"] { cursor:progress; pointer-events:none; }
body.koirea-member-web [data-button-role][aria-busy="true"]::before { content:""; width:18px; height:18px; flex:0 0 18px; border:2px dotted currentColor; border-radius:50%; animation:koirea-button-spin .7s linear infinite; }
/* Labels and their explanatory copy share the semantic control's state ink. */
body.is-logged-in.koirea-member-web:not(.is-admin-area):not(.is-staff-area) [data-button-role] :is(span,strong,small,b):not(.v48-nav-badge,.v48-tab-badge) { color:var(--member-content-ink, inherit); }
body.koirea-member-web :is([data-button-role],[data-member-control]):focus-visible { outline:3px solid #d9365d; outline-offset:3px; }
body.koirea-member-web [data-member-control]:is(a,label,summary) { box-sizing:border-box; min-height:44px; min-width:44px; }
body.koirea-member-web a[data-member-control="Text-link"] { display:inline-flex; align-items:center; max-width:100%; }
body.koirea-member-web label[data-member-control="Secondary"] { --member-button-white-space:normal; }
body.koirea-member-web [data-button-role][data-button-wrap="allow"] { --member-button-white-space:normal; height:auto; min-height:44px; padding-block:6px; }
body.koirea-member-web label[data-button-role]:not([aria-disabled="true"]):has(input:checked) { --member-button-surface:#17233a; --member-button-line:#17233a; --member-button-ink:#fff; }
body.koirea-member-web label[data-button-role][data-member-file-focus="true"],
body.koirea-member-web label[data-button-role]:has(input:focus-visible) { outline:3px solid #d9365d; outline-offset:3px; }
body.koirea-member-web [data-button-role] :is(svg,.koirea-ui-icon) { width:20px; height:20px; flex:0 0 20px; color:inherit; fill:none; stroke:currentColor; stroke-width:2; }
/* The approved blue heart must also remain visible on a solid selected state. */
body.koirea-member-web .v916-super-like-button:is([aria-pressed="true"],.is-selected,.is-active,:active) { --koirea-super-like-heart-blue:currentColor; }
/* A single direction box serves trailing actions, card links and icon buttons. */
body.koirea-member-web { --member-direction-size:20px; --member-disclosure-shrink:0; --member-disclosure-white-space:nowrap; }
body.koirea-member-web svg[data-koirea-ui-icon^="chevron_"] { width:var(--member-direction-size); height:var(--member-direction-size); flex:0 0 var(--member-direction-size); vertical-align:middle; }
body.koirea-member-web svg[data-member-direction="up"] { transform:rotate(-90deg); }
body.koirea-member-web :is(.koirea-button__trailing,b):has(> svg[data-koirea-ui-icon^="chevron_"]) { display:grid; place-items:center; min-width:var(--member-direction-size); line-height:1; }
body.koirea-member-web :is([data-button-role="secondary"],[data-button-role="emotional"]):is([aria-pressed="true"],.is-selected,.is-active) svg[data-koirea-ui-icon="heart"] > g { stroke:currentColor; }
body.koirea-member-web.page-messages .v878-simple-pin-button[aria-pressed="true"] svg[data-koirea-ui-icon="location"] > g { stroke:currentColor; }
/* Fixed dark paint follows each semantic control's ink, including selected
 * layout and save controls. Colored brand details remain unchanged. */
body.koirea-member-web [data-button-role] .koirea-ui-icon [stroke="#17233A" i] { stroke:currentColor; }
body.koirea-member-web [data-button-role] .koirea-ui-icon [fill="#17233A" i] { fill:currentColor; }
body.koirea-member-web [data-button-role="primary"]:visited { color:var(--member-button-ink); }
