/* Shared interaction affordances; the existing consumer and operations brands remain separate. */
:root { --xchc-control-min:44px; --xchc-control-gap:8px; --xchc-help-border:#dfd6cf; }
/* Native disclosure keeps help reachable without replacing the current form. */
.client-help { margin:8px 0 12px; min-width:0; }
.client-help > summary { display:inline-flex; align-items:center; gap:8px; min-width:var(--xchc-control-min); min-height:var(--xchc-control-min); padding:6px 10px; border:1px solid var(--xchc-help-border); border-radius:8px; color:inherit; background:transparent; font:inherit; font-size:13px; cursor:pointer; list-style:none; }
.client-help > summary::-webkit-details-marker { display:none; }
.client-help > summary > span { display:inline-grid; place-items:center; width:1.6em; height:1.6em; border:1px solid currentColor; border-radius:50%; font-size:13px; line-height:1; flex:none; }
.client-help > summary:focus-visible { outline:3px solid #8e391d; outline-offset:3px; }
.client-help-content { margin-top:8px; border-left:3px solid var(--xchc-help-border); padding:8px 12px; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.inline-receipt:empty,#miniMerchantLoginCopy:empty { display:none; }
html[data-surface] .modal { max-height:calc(100dvh - 32px); overflow-y:auto; }
html[data-surface] .modal h3 { padding-right:40px; overflow-wrap:anywhere; }
html[data-surface] .login-row { display:flex; flex-wrap:wrap; margin-top:4px; }
html[data-surface] .login-row input { flex:1 1 10em; min-width:0; }
html[data-surface] .login-row .sms-btn { width:auto; flex:1 1 8em; white-space:normal; }
.field-label,.field-constraint { display:block; margin:8px 0; font-size:13px; line-height:1.6; }
.field-label { display:flex; align-items:center; min-height:var(--xchc-control-min); }
/* Target sizes are shared across controls, not dependent on button colors. */
html body :is(button,summary,input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea),
html[data-surface] body :is(button,summary,input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea),
html[data-surface="merchant"] .outing-actions .publish,
html[data-surface="merchant"] .outing-form-grid input,
html[data-surface="consumer"] .resource-feedback button { min-width:var(--xchc-control-min); min-height:var(--xchc-control-min); }
.site-footer a,.ganji-consumer-page footer a,.login-return,.row-link,.site-link { display:inline-flex; align-items:center; min-height:var(--xchc-control-min); min-width:var(--xchc-control-min); }
.site-footer .footer-record { gap:8px; }
.site-footer .footer-record > span { display:none; }
.ganji-consumer-page .brand { min-height:var(--xchc-control-min); }
.ganji-consumer-page .brand strong { overflow:visible; text-overflow:clip; white-space:normal; }
.activity-image-upload { position:relative; }
html[data-surface] .activity-image-upload input[type="file"] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
html[data-surface] .activity-image-upload:focus-within,.photo-upload-button:focus-within { outline:3px solid #8e391d; outline-offset:3px; }
html[data-surface="merchant"] .upload-tile > span { position:relative; min-height:128px; }
html[data-surface="merchant"] .upload-tile input { width:100%; height:100%; }
html[data-surface="merchant"] .upload-tile:focus-within { outline:3px solid #8e391d; outline-offset:3px; }
html[data-surface] .product-header .brand-name { overflow:visible; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; }
html[data-surface="merchant"] .merchant-account-avatar { flex:none; }
html[data-surface="merchant"] .merchant-account-copy b { max-width:none; overflow:visible; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; }
html[data-surface="merchant"] .merchant-account-chip { max-width:100%; }
html[data-surface="merchant"] .activity-consumer-preview b { max-height:none; overflow:visible; white-space:normal; -webkit-line-clamp:unset; overflow-wrap:anywhere; }
html body .xchc-media-gallery__title { overflow:visible; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; }
html body .xchc-media-gallery__header { grid-template-columns:minmax(0,1fr) auto; }
html body .xchc-media-gallery__counter { grid-row:2; }
html body .xchc-media-gallery__close { grid-column:2; grid-row:1 / 3; }
button[aria-busy="true"] { cursor:progress; opacity:.75; }
button:disabled { cursor:not-allowed; }
:where(button,a,input,select,textarea):focus-visible { outline:3px solid #8e391d; outline-offset:3px; }
.member-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; }
.member-login .row-link { display:inline-flex; min-height:44px; align-items:center; margin-inline:10px; }
.member-back,.member-brand,.button-primary,.detail-follow,.activity-claim,.detail-cover button { min-height:44px; }
.button-primary,.activity-claim { background:#bd431c; }
.activity-claim:disabled { background:#eee7e1; color:#66554b; }
.detail-title-row > div { min-width:0; }
.outing-box > div { display:grid; gap:4px; min-width:0; }
.detail-title-row h1,.detail-description,.activity-copy,.detail-feedback { overflow-wrap:anywhere; }
.detail-feedback { margin:0 0 14px; padding:16px; border:1px solid #a7d7c1; border-radius:14px; background:#f0faf5; color:#244c3c; }
.detail-feedback[hidden] { display:none; }
.detail-feedback.is-error { border-color:#e8c2ad; background:#fff5ee; color:#65341f; }
.detail-feedback p { margin:0; font-size:14px; line-height:1.7; }
.detail-feedback a { margin-top:12px; }
.member-error { padding:24px 20px; }
.member-error h1 { margin:0 0 10px; font-size:21px; }
.member-error p { color:var(--muted); line-height:1.7; }
.resource-feedback { padding:22px; overflow-wrap:anywhere; }
.resource-feedback h1,.resource-feedback h2 { margin:0 0 12px; font-size:21px; line-height:1.45; }
.resource-feedback p { margin:0 0 18px; color:#66564c; line-height:1.7; }
.resource-feedback button { min-height:44px; }
.ops-recovery { width:min(100% - 28px,620px); margin:40px auto; }
.ops-recovery .brand { margin-bottom:24px; }
.ops-recovery .brand small { color:#65707c; }
@media(max-width:760px) {
  html[data-surface] .product-header .brand-copy { min-width:0; }
  html[data-surface] .product-header .brand-name { white-space:normal; overflow-wrap:anywhere; }
  button,.member-back { min-height:44px; min-width:44px; }
  html[data-surface="merchant"] button[data-action],#opsRoot button,#opsOverlay button { min-height:44px; min-width:44px; }
  #opsSidebar nav a { min-height:44px; }
  #opsSidebar .brand { min-height:44px; }
  .action-table th:last-child,.action-table td:last-child { position:sticky; right:0; min-width:104px; background:#fff; box-shadow:-5px 0 8px rgba(32,39,49,.06); }
  .action-table th:last-child { background:#fafbfc; }
  html[data-surface="merchant"] #merchantQuickGrid .quick { min-height:82px; padding:12px 8px; }
  html[data-surface="merchant"] #merchantQuickGrid .qi { font-size:22px; }
  html[data-surface="merchant"] #merchantQuickGrid .qt { margin-top:4px; font-size:14px; }
  html[data-surface="merchant"] #merchantQuickGrid .qs { font-size:11px; }
  html[data-surface="merchant"] #merchantStats { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
  html[data-surface="merchant"] #merchantStats .stat { padding:10px 3px; }
  html[data-surface="merchant"] #merchantStats .stat b { font-size:22px; }
  html[data-surface="merchant"] #merchantStats .stat span { font-size:11px; }
  .member-brand { min-height:44px; }
  .member-topbar { gap:8px; }
  .detail-section { padding:16px; }
  .detail-follow,.activity-claim { font-size:13px; }
  .detail-title-row { gap:10px; }
  .nav-link { min-height:44px; }
  .pager button { min-width:44px; }
}
@media(max-width:360px) {
  .member-brand b { font-size:14px; }
  .member-brand { gap:6px; }
  .member-back { padding-inline:8px; }
  .activity-card { flex-wrap:wrap; }
  .activity-copy { flex-basis:100%; }
  .activity-claim { margin-top:2px; }
}
@media(max-width:480px) {
  html[data-surface] .product-header .brand-row { flex-wrap:wrap; align-items:center; gap:10px; }
  html[data-surface] .product-header .brand-copy { flex:1; min-width:0; }
  html[data-surface="merchant"] .merchant-account-wrap { flex:1 1 100%; margin-left:0; }
  html[data-surface="merchant"] .merchant-account-chip { width:100%; gap:10px; }
  html[data-surface="merchant"] .merchant-account-copy { flex:1; }
  html[data-surface="merchant"] .merchant-account-menu { width:min(100%,320px); }
  html[data-surface="consumer"] .toolbar { display:flex; flex-wrap:wrap; gap:var(--xchc-control-gap); }
  html[data-surface="consumer"] button.street-sel { width:100%; max-width:100%; flex:1 1 100%; height:auto; }
  html[data-surface="consumer"] button.street-sel span:first-child { white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
  html[data-surface="consumer"] .toolbar .search { flex:1 1 100%; width:100%; height:auto; }
  html[data-surface="consumer"] .mhead { display:grid; grid-template-columns:46px minmax(0,1fr); align-items:start; }
  html[data-surface="consumer"] .mhead > .btn-ghost { grid-column:2; justify-self:start; }
  html[data-surface="merchant"] .outing-form-grid { grid-template-columns:minmax(0,1fr); }
  html[data-surface="merchant"] .activity-meta-grid { grid-template-columns:minmax(0,1fr); }
  html[data-surface="merchant"] .merchant-identity { flex-wrap:wrap; }
  html[data-surface="merchant"] .merchant-identity > div:not(.avatar) { flex:1 1 calc(100% - 68px); min-width:0; }
  html[data-surface="merchant"] .merchant-guest-guide { padding:0; border:0; background:transparent; }
  html[data-surface="merchant"] #merchantQuickGrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  html[data-surface="merchant"] .strategy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  html[data-surface="merchant"] .upload-grid { grid-template-columns:minmax(0,1fr); }
  .member-topbar { flex-wrap:wrap; height:auto; }
  .member-brand { min-width:0; flex:1 1 100%; }
  .member-brand > span:last-child { min-width:0; }
  .member-brand b { white-space:normal; overflow-wrap:anywhere; }
  .member-back { margin-left:auto; }
  .ganji-consumer-page .brand strong { white-space:normal; }
  .ganji-consumer-page .location-grid { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) { .member-loading span { animation:none; } }
