:root{--blue:#5bb7f4;--mint:#6ed9c0;--orange:#ff9b62;--ink:#243747;--muted:#7c91a2;--bg:#f5fbff}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP",sans-serif;background:var(--bg);color:var(--ink)}[hidden]{display:none!important}button,input,select{font:inherit}.topbar{height:58px;background:#fff;border-bottom:1px solid #e7f0f6;display:flex;align-items:center;padding:0 16px;position:sticky;top:0;z-index:20}.brand{font-size:24px;font-weight:900;color:#55aee9}.ghost{margin-left:auto;border:0;background:#eef7fd;border-radius:18px;padding:8px 12px}.mode-switch{margin:auto;display:flex;background:#eef6fb;border-radius:18px;padding:3px}.mode-switch button{border:0;background:transparent;padding:6px 12px;border-radius:15px;font-size:11px;font-weight:800}.mode-switch .active{background:#fff;box-shadow:0 2px 8px #bdd3df}.auth-card,.phone,.admin{max-width:480px;margin:24px auto;padding:18px}.auth-card{background:#fff;border-radius:24px;box-shadow:0 12px 40px #dcecf5}.auth-card h1{color:#55aee9;font-size:38px;margin:0}.auth-tabs,.choice{display:flex;gap:8px;margin:18px 0}.auth-tabs button,.choice button{flex:1;border:0;padding:10px;border-radius:12px;background:#edf4f8}.auth-tabs .active,.choice .active{background:#dff4ff;color:#168bd0;font-weight:800}label{display:block;font-size:12px;font-weight:700;margin:12px 0}input,select{width:100%;border:1px solid #dbe8ef;border-radius:12px;padding:12px;margin-top:5px;background:#fff}.primary{border:0;background:linear-gradient(135deg,var(--blue),var(--mint));color:white;border-radius:14px;padding:12px 16px;font-weight:800}.secondary{border:0;background:#eef4f7;border-radius:14px;padding:12px 16px}.auth-card .primary{width:100%;margin-top:10px}.msg{font-size:12px;margin-top:12px;color:#d45b5b}.hero{display:flex;justify-content:space-between;align-items:center}.hero h2{margin:2px 0}.verified{font-size:10px;padding:7px 9px;border-radius:15px;background:#fff1df;color:#bd7428}.notice{background:#e9f8ff;border-radius:16px;padding:14px;margin:16px 0;display:flex;flex-direction:column}.notice span{font-size:11px;color:var(--muted);margin-top:3px}.members{display:grid;grid-template-columns:1fr 1fr;gap:12px}.members article{background:#fff;border-radius:18px;padding:10px;box-shadow:0 5px 20px #e0edf4;display:flex;flex-direction:column;gap:5px}.avatar{height:130px;border-radius:13px;background:linear-gradient(135deg,#d7f0ff,#e7fff7);display:grid;place-items:center;font-size:46px;font-weight:900;color:#74b6dc}.members span{font-size:11px;color:var(--muted)}.members button{border:0;background:#edf8ff;color:#168bd0;border-radius:10px;padding:8px;font-weight:800}.wallet-grid{display:grid;grid-template-columns:1fr;gap:10px}.wallet-grid>div{background:#fff;border-radius:18px;padding:14px;box-shadow:0 5px 20px #e0edf4}.wallet-grid small,.wallet-grid em{display:block;color:var(--muted);font-size:10px;font-style:normal}.wallet-grid strong{display:block;font-size:20px;margin:6px 0}.wallet-grid button{border:0;background:#e9f7ff;color:#168bd0;border-radius:10px;padding:7px;width:100%;font-size:11px;font-weight:800;margin-bottom:5px}.total{margin:10px 0 20px;background:#edf9f6;border-radius:14px;padding:12px;display:flex;justify-content:space-between;font-size:12px}.menu{background:#fff;border-radius:18px;overflow:hidden}.menu button{width:100%;border:0;border-bottom:1px solid #edf2f5;background:#fff;padding:15px;text-align:left;display:flex;justify-content:space-between}.rank{background:linear-gradient(135deg,#eef3f6,#fff);padding:16px;border-radius:18px;font-weight:900}.rank b,.rank span{display:block;font-size:11px}.online{margin:0;background:#e9fbf3;padding:8px;border-radius:15px}.online input{width:auto;margin:0}.offer-card{background:#fff;border-radius:18px;padding:15px}.offer-card span{display:block;color:var(--muted);margin:5px 0}.offer-card div{display:flex;gap:8px}.offer-card button{flex:1;border:0;border-radius:12px;padding:10px}.admin{max-width:800px}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-grid button{min-height:110px;border:0;background:#fff;border-radius:18px;font-size:26px}.admin-grid b{display:block;font-size:12px}.panel-head{display:flex;justify-content:space-between;align-items:center}.user-row{background:#fff;border-radius:14px;padding:12px;margin:8px 0;display:grid;grid-template-columns:1fr auto;gap:8px}.user-row small{display:block;color:var(--muted)}.user-row select{width:auto;padding:7px;margin:2px}.modal{position:fixed;inset:0;background:#18334680;display:grid;place-items:end center;z-index:50}.sheet{background:#fff;width:min(100%,480px);border-radius:24px 24px 0 0;padding:22px;position:relative;max-height:90vh;overflow:auto}.x{position:absolute;right:15px;top:15px;border:0;background:#eef4f7;border-radius:50%;width:32px;height:32px}.withdraw-box{background:#effaf6;border-radius:14px;padding:15px;margin:15px 0}.withdraw-box strong{display:block;font-size:24px}@media(max-width:520px){.auth-card,.phone{margin:0 auto;padding:16px}.admin-grid{grid-template-columns:1fr 1fr}}
.signup-note,.member-rule{background:#eef9ff;border-radius:14px;padding:12px;margin:10px 0;font-size:12px;line-height:1.6}
.member-rule{background:#fff7ec;color:#9b632c}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
textarea{width:100%;min-height:110px;border:1px solid #dbe8ef;border-radius:12px;padding:12px;margin-top:5px;resize:vertical;font:inherit}
.review-card{background:#f7fbfd;border:1px solid #e3eef4;border-radius:12px;padding:10px;margin-top:8px;font-size:11px}
.review-card b{display:inline-block;margin-right:6px}
.review-actions{display:flex;gap:6px;margin-top:8px}
.review-actions button{border:0;border-radius:10px;padding:7px 10px;font-size:11px;font-weight:800}
.approve{background:#e3f8ef;color:#18865c}
.reject{background:#fff0ed;color:#c25b49}
.member-age-warn{color:#c77b2f;font-weight:800}
.mode-switch button:disabled{opacity:.4;cursor:not-allowed}

.avatar img{width:100%;height:100%;object-fit:cover;border-radius:13px;display:block}

.broadcast-offer-btn{width:100%;border:0;border-radius:16px;padding:14px 16px;margin:12px 0;background:#eef8ff;font-weight:900;font-size:14px;text-align:left}
.broadcast-offer-btn span{float:right;color:#4b8ca8}
.broadcast-summary{background:#f7fbfd;border-radius:14px;padding:12px;margin:12px 0}
.broadcast-summary>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:12px;border-bottom:1px solid #e9f1f5}
.broadcast-summary>div:last-child{border-bottom:0}
.kyc-doc{margin-top:8px;max-width:180px}
.kyc-link{display:block;text-decoration:none;color:inherit}
.kyc-thumb{display:block;width:100%;max-height:130px;object-fit:cover;border-radius:10px;border:1px solid #dfeaf0;background:#f5f8fa}
.kyc-link span{display:block;margin-top:4px;font-size:11px;font-weight:800;color:#397d9c}
.kyc-loading,.kyc-no-doc,.kyc-error{margin-top:6px;font-size:11px;line-height:1.4}
.kyc-no-doc{color:#8c9aa3}
.kyc-error{color:#c45a4d;max-width:220px}

.admin-kyc-tabs{display:flex;gap:8px;overflow:auto;margin:10px 0 14px}
.admin-kyc-tabs button{white-space:nowrap;border:1px solid #dce9ef;background:#fff;border-radius:999px;padding:8px 12px;font-weight:800}
.admin-kyc-tabs button.active{background:#eaf8ff;border-color:#9fd9ee}
.admin-kyc-row{background:#fff;border:1px solid #e5edf1;border-radius:16px;padding:14px;margin:10px 0}
.admin-kyc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.admin-kyc-head small{display:block;color:#84939c;font-size:10px;margin-top:3px;word-break:break-all}
.admin-kyc-meta{font-size:12px;color:#63747e;margin:8px 0}
.admin-kyc-doc{max-width:320px}
.admin-kyc-doc .kyc-thumb{max-height:240px;object-fit:contain;background:#f7fafc}
.admin-kyc-actions{display:flex;gap:8px;margin-top:12px}
.admin-kyc-actions button{flex:1}
.kyc-status{font-size:11px;font-weight:900;padding:5px 8px;border-radius:999px;background:#eef3f5}
.kyc-status-pending{background:#fff5d9}
.kyc-status-verified{background:#e6f8eb}
.kyc-status-rejected{background:#fdeaea}
.empty-state{padding:22px;text-align:center;color:#7c8a92}

.point-settings-card{background:#fff;border:1px solid #e5edf1;border-radius:16px;padding:14px;margin:12px 0}
.point-settings-card h4{margin:0 0 10px}
.point-input{display:flex;align-items:center;gap:6px;border:1px solid #dce7ec;border-radius:10px;padding:0 10px;background:#fff}
.point-input input{border:0!important;box-shadow:none!important;padding:10px 4px!important;min-width:0}
.point-input span{font-size:12px;font-weight:800;color:#687b85}
.point-package-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.point-package-head button{border:1px solid #d9e7ed;background:#f6fbfd;border-radius:10px;padding:8px 10px;font-weight:800}
.point-package-edit-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;padding:10px 0;border-top:1px solid #edf2f4}
.point-package-edit-row:first-child{border-top:0}
.danger-lite{border:1px solid #f0d7d4;background:#fff5f3;border-radius:10px;padding:10px;color:#a85149}
.point-save{width:100%;margin-top:12px}
.point-package-list{display:grid;gap:10px;margin:12px 0}
.point-plan{width:100%;border:1px solid #e0eaee;background:#fff;border-radius:14px;padding:13px;text-align:left}
.point-plan>div{display:flex;justify-content:space-between;align-items:center;gap:12px}
.point-plan b{font-size:16px}
.point-plan span{font-size:18px;font-weight:900}
.point-plan em{display:block;margin-top:4px;font-size:11px;color:#4a9472;font-style:normal;font-weight:800}
.point-plan small{display:block;margin-top:6px;color:#6f818c;font-size:11px;font-weight:700}
.point-method-plan0357{display:grid;gap:8px;padding:12px;border:1px solid #dfeaf0;border-radius:16px;background:#f8fcfe}
.point-method-plan0357>strong{font-size:13px;color:#4f6470}
.point-method-plan0357 .point-plan{margin:0;background:#fff}
.point-method-plan0357 .point-plan.bank0357{border-color:#badfc9;background:#fbfffc}
.bond-fee-setting0356{display:block;margin:12px 0 16px;padding:14px;border:1px solid #cfe4ee;border-radius:14px;background:#f5fbfe;max-width:420px}
.bond-fee-setting0356>b{display:block;margin-bottom:8px}
.bond-fee-setting0356>.point-input{max-width:180px}
.bond-fee-setting0356>small{display:block;margin-top:7px;color:#687b85;font-size:11px;line-height:1.5}
.bond-fee-preview0356{grid-column:1/3;color:#1685bd;font-weight:800;font-size:11px}
.bond-package-row0357{grid-template-columns:repeat(3,minmax(0,1fr))}
.bond-package-row0357 .bond-fee-preview0356{grid-column:1/-1;line-height:1.6}
.bond-package-row0357 .danger-lite{grid-column:1/-1}
.bank-transfer-admin0358{margin-top:20px}
.bank-template-help0358{font-size:11px;color:#687b85;line-height:1.6;word-break:break-all}
.bank-transfer-admin0358>label{display:block;margin:13px 0;font-weight:800}
.bank-transfer-admin0358 textarea{display:block;width:100%;margin-top:6px;box-sizing:border-box;border:1px solid #dce7ec;border-radius:12px;padding:12px;line-height:1.6;resize:vertical;font:inherit;font-weight:500}
.bank-transfer-list-head0358{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:24px;border-top:1px solid #e3edf1;padding-top:16px}
.bank-transfer-list-head0358 h4{margin:0}
.bank-transfer-row0358{margin:12px 0;padding:14px;border:1px solid #dce8ed;border-radius:14px;background:#fff}
.bank-transfer-row0358.status-shortage{border-color:#efc673;background:#fffaf0}
.bank-transfer-row0358.status-completed{background:#f6fbf8;opacity:.82}
.bank-transfer-row-head0358{display:flex;align-items:center;justify-content:space-between;gap:10px}
.bank-transfer-row-head0358>span{border-radius:999px;padding:4px 9px;background:#eaf6fc;color:#237fae;font-size:11px;font-weight:900}
.bank-transfer-money0358{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}
.bank-transfer-money0358 span{padding:8px;border-radius:10px;background:#f4f8fa;font-size:11px;color:#647681}

/* v0.8.359 ADMIN銀行振込をポイント設定から分離 */
.admin-bank-transfer-panel0359{margin-top:22px}
.admin-bank-transfer-panel0359>.panel-head{margin-bottom:12px}
.admin-bank-transfer-panel0359>.panel-head h3{margin:0}
.admin-bank-transfer-panel0359>.panel-head button{border:0;background:#eef4f7;border-radius:14px;padding:10px 16px}
.admin-bank-transfer-panel0359 .bank-transfer-admin0358{margin-top:0}

/* v0.8.360 ADMINメール設定を独立 */
.admin-email-settings-panel0360{margin-top:22px}
.admin-email-settings-panel0360>.panel-head{margin-bottom:8px}
.admin-email-settings-panel0360>.panel-head h3{margin:0}
.admin-email-settings-panel0360>.panel-head button{border:0;background:#eef4f7;border-radius:14px;padding:10px 16px}
.admin-email-settings-note0360{margin:0 0 12px;color:#6f8190;font-size:12px}
.bank-email-settings-admin0360>label{display:block;margin:13px 0;font-weight:800}
.bank-email-settings-admin0360 textarea{display:block;width:100%;margin-top:6px;box-sizing:border-box;border:1px solid #dce7ec;border-radius:12px;padding:12px;line-height:1.6;resize:vertical;font:inherit;font-weight:500}
.admin-bank-transfer-panel0359 .bank-transfer-list-head0358{margin-top:0;border-top:0;padding-top:0}

/* v0.8.361 新規登録確認メール（認証部分固定） */
.signup-email-settings-admin0361>label{display:block;margin:13px 0;font-weight:800}
.signup-email-settings-admin0361 textarea{display:block;width:100%;margin-top:6px;box-sizing:border-box;border:1px solid #dce7ec;border-radius:12px;padding:12px;line-height:1.6;resize:vertical;font:inherit;font-weight:500}
.signup-auth-fixed-note0361{display:grid;gap:4px;margin:10px 0 14px;padding:12px 14px;border:1px solid #b9dff3;border-radius:13px;background:#eef9ff;color:#315f78}
.signup-auth-fixed-note0361 b{font-size:13px}
.signup-auth-fixed-note0361 span{font-size:11px;line-height:1.55}
.signup-auth-preview0361{display:grid;gap:7px;margin-top:12px;padding:14px;border:1px dashed #9fb8c6;border-radius:13px;background:#f7fafc;text-align:center}
.signup-auth-preview0361 small,.signup-auth-preview0361 span{color:#738795;font-size:10px}
.signup-auth-preview0361 strong{justify-self:center;padding:11px 18px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--mint));color:#fff;font-size:13px}
.admin-email-save-wrap0361{margin:14px 0 24px}
.bank-transfer-money0358 b{display:block;margin-top:3px;color:#263b4c;font-size:13px}
.bank-shortage0358{color:#b66b00;font-weight:900}
.bank-transfer-actions0358{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.bank-transfer-actions0358 button{border:1px solid #cfe0e8;background:#fff;border-radius:10px;padding:9px 11px;font-weight:800}
.bank-transfer-actions0358 button.primary{background:#1599d5;color:#fff;border-color:#1599d5}
@media(max-width:640px){
  .point-package-edit-row,.bond-package-row0357{grid-template-columns:1fr}
  .bond-fee-preview0356{grid-column:1/-1}
  .point-package-edit-row .danger-lite{grid-column:1/-1}
  .bank-transfer-money0358{grid-template-columns:1fr}
}

.signup-bonus-setting{display:block;margin-top:12px;max-width:320px}

.bonus-setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.bonus-setting-grid .signup-bonus-setting{margin-top:0;max-width:none}
@media(max-width:640px){.bonus-setting-grid{grid-template-columns:1fr}}

/* v0.6.8 PC hover / clickable feedback */
@media (hover:hover) and (pointer:fine){
  button:not(:disabled),
  a[href],
  [role="button"],
  .member-card,
  .point-plan,
  .admin-point-log,
  [data-admin-detail],
  [data-admin-save],
  [data-approve],
  [data-reject],
  [data-kyc-status],
  [data-remove-pkg]{
    cursor:pointer;
  }

  button:not(:disabled),
  a[href],
  .member-card,
  .point-plan,
  [role="button"]{
    transition:transform .14s ease, box-shadow .14s ease, filter .14s ease, background-color .14s ease, border-color .14s ease;
  }

  button:not(:disabled):hover,
  a[href]:hover,
  .member-card:hover,
  .point-plan:hover,
  [role="button"]:hover{
    transform:translateY(-1px);
    filter:brightness(.985);
  }

  button:not(:disabled):active,
  .member-card:active,
  .point-plan:active,
  [role="button"]:active{
    transform:translateY(0);
  }

  input[type="text"],
  input[type="number"],
  input[type="email"],
  input[type="password"],
  textarea,
  select{
    cursor:text;
  }

  select{cursor:pointer;}
  button:disabled,[aria-disabled="true"]{cursor:not-allowed!important;}
}

.admin-detail-sheet{max-width:760px}
.admin-user-summary{display:grid;gap:8px;padding:12px;border:1px solid #e4ecef;border-radius:14px;background:#fff}
.admin-user-summary>div:first-child{display:flex;flex-direction:column;gap:3px}
.admin-user-summary span{font-size:12px;color:#6c7d85}
.admin-status-line{display:flex;flex-wrap:wrap;gap:8px}
.admin-status-line span{background:#f4f8fa;border-radius:999px;padding:5px 8px}
.admin-balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.admin-balance-grid>div{padding:12px;border:1px solid #e6edef;border-radius:12px}
.admin-balance-grid span{display:block;font-size:12px;color:#71828a}
.admin-balance-grid b{font-size:22px}
.admin-adjust-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:10px}
.admin-point-history{display:grid;gap:8px}
.admin-point-log{border-top:1px solid #edf1f3;padding:10px 0}
.admin-point-log:first-child{border-top:0}
.admin-point-log>div{display:flex;justify-content:space-between;gap:10px}
.admin-point-log p{margin:3px 0}
.admin-point-log small{color:#73848c}
@media(max-width:640px){
  .admin-balance-grid,.admin-adjust-grid{grid-template-columns:1fr}
}

/* v0.6.9: 300pt font consistency */
.individualOfferFeeLabel{
  font:inherit;
  font-size:inherit;
  font-weight:inherit;
  line-height:inherit;
  letter-spacing:inherit;
  color:inherit;
}

/* Member offer price */
.member-offer-price-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:14px 0;
  padding:14px;
  border:1px solid #e2eaee;
  border-radius:16px;
  background:#fff;
}
.member-offer-price-card>div{display:grid;gap:3px}
.member-offer-price-card small{color:#71828a}
.member-offer-price-card strong{font-size:24px}
.member-offer-price-card span{font-size:12px;color:#71828a}
.member-offer-price-card button{white-space:nowrap}
.member-price-editor{display:grid;gap:12px}
.member-price-range{padding:10px;border-radius:10px;background:#f5f9fb;font-size:13px}

/* Admin rank offer settings */
.rank-offer-help{margin:0 0 10px;color:#6d7f87;font-size:13px}
.rank-offer-settings{display:grid;gap:8px}
.rank-offer-row{
  display:grid;
  grid-template-columns:110px 1fr auto 1fr;
  align-items:end;
  gap:8px;
  padding:9px 0;
  border-top:1px solid #edf2f4;
}
.rank-offer-row:first-child{border-top:0}
.rank-offer-row>b{align-self:center}
@media(max-width:640px){
  .member-offer-price-card{align-items:flex-start;flex-direction:column}
  .rank-offer-row{grid-template-columns:1fr 1fr}
  .rank-offer-row>b{grid-column:1/-1}
  .rank-offer-row>span{display:none}
}

/* v0.7.0 photo-first member discovery */
.member-discovery-section{margin:20px 0}
.member-discovery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:12px}
.member-discovery-head h2{margin:0}
.member-discovery-head p{margin:4px 0 0;color:#72828a;font-size:13px}
.member-filter-chips{display:flex;gap:7px;flex-wrap:wrap}
.member-filter-chip{border:1px solid #dce7eb;background:#fff;border-radius:999px;padding:8px 12px;font-weight:800}
.member-filter-chip.active{background:#eaf8f5;border-color:#b9ddd4}
.member-discovery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.discovery-member-card{min-width:0;border:1px solid #e2eaed;border-radius:16px;overflow:hidden;background:#fff}
.discovery-photo-wrap{position:relative;aspect-ratio:4/5;background:#edf2f4;overflow:hidden}
.discovery-photo{width:100%;height:100%;object-fit:cover;display:block}
.presence-badge{position:absolute;left:8px;bottom:8px;display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.94);border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900}
.presence-badge i{width:8px;height:8px;border-radius:50%;display:block;background:#9aa8ae}
.presence-badge.is-online i{background:#27b66d;box-shadow:0 0 0 2px rgba(39,182,109,.16)}
.available-badge{position:absolute;right:8px;top:8px;background:rgba(255,255,255,.94);border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;color:#21855b}
.discovery-body{padding:10px}
.discovery-name-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.discovery-name-row>div{display:flex;align-items:baseline;gap:6px}
.discovery-name-row b{font-size:17px}
.discovery-name-row span,.discovery-name-row em{font-size:12px;color:#6f8088;font-style:normal}
.discovery-meta{font-size:11px;color:#71828a;margin:3px 0 7px}
.discovery-tags{display:flex;gap:4px;flex-wrap:wrap}
.discovery-tags span{font-size:10px;padding:4px 6px;border-radius:999px;background:#f3f7f8;color:#61727a}
.discovery-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px}
.discovery-footer strong{font-size:14px}
.discovery-offer-btn{border:0;border-radius:9px;padding:7px 10px;font-weight:900}
.presence-note{font-size:11px;color:#7c8b92;margin-top:8px}
@media (hover:hover) and (pointer:fine){
  .discovery-member-card,.member-filter-chip,.discovery-offer-btn{cursor:pointer}
  .discovery-member-card{transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
  .discovery-member-card:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(20,45,55,.09);border-color:#cddce2}
}
@media(max-width:900px){.member-discovery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){
  .member-discovery-head{align-items:flex-start;flex-direction:column}
  .member-discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .discovery-body{padding:8px}
  .discovery-name-row b{font-size:15px}
}

/* v0.7.1 layout fix: discovery is inside USER app only */
#userApp .member-discovery-section{margin:18px 0}
#userApp .member-discovery-head{display:block}
#userApp .member-discovery-head h3{margin:0 0 3px}
#userApp .member-discovery-head p{margin:0 0 10px;color:#72828a;font-size:11px}
#userApp .member-filter-chips{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
  margin-bottom:10px
}
#userApp .member-filter-chip{
  width:100%;
  padding:7px 4px;
  font-size:10px;
  white-space:nowrap
}
#userApp .member-discovery-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px
}
#userApp .discovery-member-card{width:100%;min-width:0}
#userApp .discovery-photo-wrap{aspect-ratio:4/5}
#userApp .discovery-photo{width:100%;height:100%;object-fit:cover}
#userApp .presence-note{margin-top:7px;line-height:1.5}

@media(min-width:720px){
  #userApp.phone{max-width:900px}
  #userApp .member-discovery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  #userApp .member-filter-chips{display:flex}
  #userApp .member-filter-chip{width:auto;padding:8px 12px;font-size:11px}
}

/* Admin screen must never inherit/display member discovery */
#adminApp .member-discovery-section{display:none!important}

/* v0.7.2 member grid render fallback */
.member-grid-error{
  grid-column:1/-1;
  padding:18px;
  border:1px dashed #d8e3e7;
  border-radius:14px;
  background:#fff;
  color:#687a82;
  text-align:center;
  font-size:13px;
}

/* v0.7.3 public member detail */
.public-member-detail-sheet{padding-top:58px}
.public-member-detail-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;background:#eef7fb}
.public-member-detail-sheet h2{font-size:28px;margin:16px 0 4px}
.public-member-detail-meta{margin:0;color:var(--muted);font-size:13px}
.public-member-detail-rate{margin:16px 0 10px;padding:14px 16px;border-radius:14px;background:#eef9ff;font-size:24px;font-weight:900}
.public-member-detail-bio{white-space:pre-wrap;line-height:1.7;background:#f8fbfd;border-radius:14px;padding:14px;min-height:64px}
.public-member-offer-button{width:100%;font-size:16px;margin-top:6px}

/* v0.7.3 member duration/rank pricing */
.member-rate-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}
.member-rate-grid label,.rank-member-rate-row label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700}
.rank-member-rate-settings{display:flex;flex-direction:column;gap:10px}
.rank-member-rate-row{display:grid;grid-template-columns:90px repeat(4,minmax(110px,1fr));gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.rank-member-rate-row:last-child{border-bottom:0}
.rank-member-rate-row>b{align-self:center}
.public-member-duration-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 4px}
.public-member-duration-options button{padding:10px 6px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:inherit;cursor:pointer}
.public-member-duration-options button.active{border-color:currentColor;background:rgba(255,255,255,.14);font-weight:800}
@media(max-width:720px){.member-rate-grid{grid-template-columns:repeat(2,1fr)}.rank-member-rate-row{grid-template-columns:70px repeat(2,1fr)}.rank-member-rate-row>b{grid-row:span 2}.public-member-duration-options{grid-template-columns:repeat(2,1fr)}}

/* v0.7.7 logged-out welcome: approved visual only */
body.welcome-mode{background:#eef3f6;overflow-x:hidden}
body.welcome-mode .topbar{display:none!important}
body.welcome-mode main{padding:0;margin:0}
.welcome-screen{position:relative;width:min(100vw,430px);margin:0 auto;min-height:100svh;background:#071827;overflow:hidden}
.welcome-art{display:block;width:100%;height:100svh;object-fit:cover;object-position:center top;user-select:none;-webkit-user-drag:none}
.welcome-hotspot{position:absolute;left:8%;width:84%;border:0;background:transparent;cursor:pointer;z-index:3}
.welcome-hotspot-signup{top:75.5%;height:8%}
.welcome-hotspot-login{top:84.5%;height:8%}
@media(min-width:431px){.welcome-screen{box-shadow:0 0 32px rgba(16,38,55,.16);min-height:0}.welcome-art{height:auto;object-fit:contain;object-position:center top}}

/* v0.8.0 chat / offer workflow — existing TOP card styles are intentionally untouched */
.chat-open-note{margin:10px 0 12px;padding:10px 12px;border-radius:12px;background:#f4f8ff;color:#29466d;font-size:12px;line-height:1.6}.chat-open-note b{float:right;color:#1675e5}.bondy-chat-sheet{max-width:520px;max-height:92vh;display:flex;flex-direction:column}.bondy-chat-head{display:flex;justify-content:space-between;align-items:center;padding-right:36px}.bondy-chat-head h2{margin:2px 0 10px}.bondy-chat-head small{color:#6c7b8d;font-weight:800;letter-spacing:.12em}.bondy-chat-head>span{font-size:12px;color:#4c7ab7}.bondy-chat-messages{min-height:230px;max-height:38vh;overflow:auto;background:#f5f7fb;border-radius:16px;padding:12px;margin:6px 0 10px}.bondy-chat-empty{font-size:12px;color:#77859a;text-align:center;padding:24px 8px}.bondy-msg{display:flex;flex-direction:column;margin:8px 0;max-width:82%}.bondy-msg.mine{margin-left:auto;align-items:flex-end}.bondy-msg.theirs{margin-right:auto;align-items:flex-start}.bondy-msg>div{padding:9px 12px;border-radius:15px;background:#fff;border:1px solid #e5e9ef;white-space:pre-wrap;word-break:break-word}.bondy-msg.mine>div{background:#eaf4ff;border-color:#c7e2ff}.bondy-msg small{font-size:9px;color:#8b96a5;margin:3px 5px}.bondy-chat-compose{display:flex;gap:8px}.bondy-chat-compose input{flex:1;min-width:0;border:1px solid #dbe2ea;border-radius:12px;padding:11px 12px}.bondy-chat-compose button{border:0;border-radius:12px;padding:0 15px;background:#1e84ef;color:#fff;font-weight:800}.bondy-chat-offer{border-top:1px solid #edf0f4;margin-top:14px;padding-top:12px}.bondy-chat-offer h3{margin:0 0 8px}.bondy-chat-offer>small{display:block;color:#76859a;margin-top:8px;line-height:1.5}.bondy-chat-offer-list{margin-top:12px}.bondy-offer-item{border:1px solid #e4e9ef;border-radius:14px;padding:10px 12px;margin:8px 0;background:#fff}.bondy-offer-item>div:first-child{display:flex;justify-content:space-between;gap:10px}.bondy-offer-item>div:first-child span{font-size:12px;color:#52739b}.bondy-offer-item>small{display:block;color:#7b8797;margin-top:5px}.bondy-offer-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:8px}.bondy-offer-actions button{border:1px solid #d7dee7;background:#fff;border-radius:10px;padding:7px 11px}.bondy-offer-actions button.primary{background:#1684ef;color:#fff;border-color:#1684ef}.bondy-chat-sheet .public-member-duration-options{margin-bottom:10px}

/* v0.8.2: USER / MEMBER stay in mobile-width layout even on desktop.
   ADMIN keeps the existing desktop layout. */
#userApp.phone,
#memberApp.phone{
  width:100%;
  max-width:480px!important;
  margin:24px auto;
}

@media (min-width:521px){
  body:has(#userApp:not([hidden])) .topbar,
  body:has(#memberApp:not([hidden])) .topbar{
    width:100%;
    max-width:480px;
    margin-left:auto;
    margin-right:auto;
  }
}

/* v0.8.3: preserve the original mobile USER layout on desktop too.
   This intentionally overrides the old >=720px desktop discovery expansion only. */
#userApp.phone,
#memberApp.phone{
  width:min(100%,480px)!important;
  max-width:480px!important;
  margin:24px auto!important;
}

#userApp .member-discovery-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
#userApp .member-filter-chips{
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  gap:6px!important;
}
#userApp .member-filter-chip{
  width:100%!important;
  padding:7px 4px!important;
  font-size:10px!important;
}
#userApp .discovery-member-card{
  width:100%!important;
  min-width:0!important;
}

@media (min-width:521px){
  body:has(#userApp:not([hidden])) .topbar,
  body:has(#memberApp:not([hidden])) .topbar{
    width:min(100%,480px)!important;
    max-width:480px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* v0.8.13 admin full member editor */
.admin-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-profile-editor textarea{width:100%;border:1px solid #dbe8ef;border-radius:12px;padding:12px;margin-top:5px;background:#fff;font:inherit;resize:vertical}
.admin-doc-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.admin-doc-preview-grid>div{border:1px solid #e3edf2;border-radius:14px;padding:10px;background:#f9fcfe}
.admin-edit-preview{margin-top:8px;min-height:90px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}
.admin-edit-preview img{display:block;max-width:100%;max-height:220px;border-radius:10px;object-fit:contain}
.admin-edit-preview a{display:block;text-align:center;color:#168bd0;text-decoration:none;font-weight:800}
@media(max-width:620px){.admin-edit-grid,.admin-doc-preview-grid{grid-template-columns:1fr}}

/* v0.8.27 admin user/member management additions */
.admin-search-box{margin:10px 0 12px}.admin-search-box input{margin:0;background:#fff}.admin-user-email{font-size:12px;color:var(--muted);word-break:break-all}.admin-row-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.admin-row-actions button{white-space:nowrap}.admin-delete-button{border:0;background:#fff0f0;color:#d64242;border-radius:12px;padding:10px 14px;font-weight:800}.admin-delete-card{border:1px solid #ffd6d6}.admin-delete-card p{font-size:12px;color:var(--muted)}@media(max-width:620px){.admin-row-actions{justify-content:flex-start}.user-row{grid-template-columns:1fr}}


/* v0.8.32 reward rate + rank-up settings */
.rate-reward-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,.72fr);gap:6px}
.reward-rate-input span{white-space:nowrap}
.rank-up-row{display:grid;grid-template-columns:140px minmax(180px,360px);gap:14px;align-items:end;padding:12px 0;border-bottom:1px solid #e6eef2}
.rank-up-row:last-child{border-bottom:0}
.rank-up-row>b{align-self:center}
.rank-up-row label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700}
@media(max-width:720px){
  .rate-reward-pair{grid-template-columns:1fr}
  .rank-up-row{grid-template-columns:90px 1fr}
}

/* v0.8.33 MEMBER本人料金設定 */
.member-offer-price-card{display:flex;gap:14px;align-items:center;justify-content:space-between}
.member-price-open-btn{flex:0 0 auto}
.member-duration-price-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}
.member-duration-price-editor>label{display:flex;flex-direction:column;gap:6px;font-weight:800}
.member-duration-price-editor small{font-weight:500;color:#718694}
.member-admin-range{display:grid;grid-template-columns:minmax(95px,1fr) auto minmax(95px,1fr) minmax(90px,.7fr);gap:6px;align-items:center}
.rank-member-range-row>label{min-width:0}
@media(max-width:900px){
  .member-admin-range{grid-template-columns:1fr 1fr}
  .member-admin-range>span{display:none}
}
@media(max-width:620px){
  .member-offer-price-card{align-items:stretch;flex-direction:column}
  .member-duration-price-editor{grid-template-columns:1fr}
}


/* v0.8.34 simplified rank reward inputs */
.rank-offer-row-with-reward{grid-template-columns:150px minmax(170px,1fr) 28px minmax(170px,1fr) minmax(145px,.65fr)}
.member-admin-range-simple{display:grid;grid-template-columns:minmax(95px,1fr) auto minmax(95px,1fr);gap:6px;align-items:center}
.rank-common-reward{align-self:end;min-width:125px}
@media(max-width:1050px){
  .rank-offer-row-with-reward{grid-template-columns:120px 1fr 24px 1fr}
  .rank-offer-row-with-reward .rank-common-reward,
  .rank-offer-row-with-reward>label:last-child{grid-column:2 / -1}
}
@media(max-width:900px){
  .member-admin-range-simple{grid-template-columns:1fr 1fr}
  .member-admin-range-simple>span{display:none}
}


/* v0.8.35 ランク別メンバー料金の視認性改善 */
.rank-member-range-row{
  display:grid;
  grid-template-columns:120px repeat(4,minmax(210px,1fr)) 150px;
  gap:18px;
  align-items:end;
  padding:22px 0;
}
.rank-member-range-row>b{
  align-self:center;
  font-size:18px;
}
.rank-member-range-row>label{
  min-width:0;
}
.member-admin-range-simple{
  display:grid;
  grid-template-columns:minmax(88px,1fr) 20px minmax(88px,1fr);
  gap:8px;
  align-items:center;
}
.member-admin-range-simple .point-input{
  min-width:0;
}
.member-admin-range-simple .point-input input{
  min-width:0;
  width:100%;
}
.member-admin-range-simple .point-input span{
  white-space:nowrap;
  font-size:12px;
}
.member-admin-range-simple>span{
  text-align:center;
  font-weight:800;
}
.rank-common-reward{
  min-width:0;
}
.rank-common-reward .point-input{
  width:100%;
}
.rank-common-reward .point-input input{
  width:100%;
  min-width:0;
}

@media(max-width:1200px){
  .rank-member-range-row{
    grid-template-columns:110px repeat(2,minmax(220px,1fr));
  }
  .rank-member-range-row>.rank-common-reward{
    grid-column:2 / 4;
    max-width:260px;
  }
}
@media(max-width:760px){
  .rank-member-range-row{
    grid-template-columns:1fr;
    gap:12px;
  }
  .rank-member-range-row>b,
  .rank-member-range-row>.rank-common-reward{
    grid-column:auto;
  }
  .rank-member-range-row>.rank-common-reward{
    max-width:none;
  }
}


/* v0.8.36 数値入力の上下スピナーを非表示（手入力専用表示） */
input[type="number"]{
  -moz-appearance:textfield;
  appearance:textfield;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}


/* v0.8.37 ランク別メンバー料金：最低pt / 最高pt の文字を非表示 */
.rank-member-range-row .member-admin-range-simple .point-input span{
  display:none !important;
}
.rank-member-range-row .member-admin-range-simple{
  grid-template-columns:minmax(100px,1fr) 20px minmax(100px,1fr);
}


/* v0.8.46 chat image */
.bondy-chat-compose{display:flex;align-items:center;gap:8px}
.bondy-chat-image-send{
  flex:0 0 52px;
  width:52px;
  height:52px;
  border:1px solid #d8e4eb;
  border-radius:16px;
  background:#f4f9fc;
  font-size:22px;
  cursor:pointer;
}
.bondy-chat-image{
  display:block;
  border:0;
  padding:0;
  margin:8px 0 2px;
  background:transparent;
  cursor:pointer;
  max-width:260px;
  text-align:left;
}
.bondy-chat-image img{
  display:block;
  max-width:100%;
  max-height:300px;
  border-radius:16px;
  object-fit:cover;
}
.bondy-chat-image span{font-size:13px;color:#7b8f9d}
.bondy-chat-image-preview-sheet{max-width:900px}
.bondy-chat-image-preview-img{
  display:block;
  max-width:100%;
  max-height:80vh;
  margin:24px auto 0;
  border-radius:16px;
  object-fit:contain;
}


/* v0.8.49 LINE風 既読表示 */
.bondy-msg small{
  display:flex;
  align-items:center;
  gap:7px;
}
.bondy-msg.mine small{
  justify-content:flex-end;
}
.bondy-read-mark{
  font-size:11px;
  font-weight:700;
  color:#7a8d9b;
}


/* v0.8.51 Xライク全画面チャット + チラつき対策 */
.bondy-chat-fullscreen-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  padding:0 !important;
  background:#fff !important;
}
.bondy-chat-fullscreen-modal .bondy-chat-sheet{
  width:100%;
  max-width:none;
  height:100dvh;
  max-height:none;
  border-radius:0;
  margin:0;
  padding:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  background:#fff;
}
.bondy-chat-head{
  position:sticky;
  top:0;
  z-index:3;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:68px;
  padding:8px 14px;
  border-bottom:1px solid #edf1f4;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(16px);
}
.bondy-chat-back,
.bondy-chat-offer-toggle{
  border:0;
  background:transparent;
  color:#1f2f3d;
  font-weight:800;
}
.bondy-chat-back{
  font-size:28px;
  width:44px;
  height:44px;
}
.bondy-chat-person{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.bondy-chat-avatar{
  width:38px;
  height:38px;
  border-radius:50%;
  background:linear-gradient(135deg,#a6b8c6,#d9c98b);
  flex:0 0 38px;
}
.bondy-chat-person h2{
  margin:0;
  font-size:18px;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.bondy-chat-person small{
  display:block;
  margin-top:2px;
  color:#7f8c97;
  font-size:11px;
}
.bondy-chat-offer-toggle{
  color:#1684ef;
  font-size:14px;
  padding:8px 4px;
}
.bondy-chat-messages{
  min-height:0 !important;
  max-height:none !important;
  overflow-y:auto;
  overflow-x:hidden;
  margin:0 !important;
  padding:18px 16px 22px !important;
  border-radius:0 !important;
  background:#fff !important;
  scroll-behavior:smooth;
  overscroll-behavior:contain;
}
.bondy-msg{
  max-width:78%;
  margin:8px 0;
}
.bondy-msg>div{
  border:0 !important;
  background:#eff3f5 !important;
  border-radius:20px !important;
  padding:10px 14px !important;
  font-size:15px;
  line-height:1.45;
}
.bondy-msg.mine>div{
  background:#1d9bf0 !important;
  color:#fff;
}
.bondy-msg small{
  font-size:10px !important;
  color:#8b98a3 !important;
  margin:4px 7px 0 !important;
}
.bondy-read-mark{
  color:#8b98a3 !important;
}
.bondy-chat-image{
  max-width:280px;
  border-radius:18px;
  overflow:hidden;
}
.bondy-chat-image img{
  border-radius:18px !important;
}
.bondy-chat-compose{
  position:sticky;
  bottom:0;
  z-index:4;
  display:grid;
  grid-template-columns:46px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  border-top:1px solid #edf1f4;
  background:rgba(255,255,255,.98);
}
.bondy-chat-compose input{
  min-width:0;
  height:44px;
  border:1px solid #d9e2e8 !important;
  border-radius:22px !important;
  padding:0 16px !important;
  background:#fff;
}
.bondy-chat-compose #bondyChatSend{
  height:42px;
  border-radius:21px !important;
  padding:0 16px !important;
  background:#1d9bf0 !important;
}
.bondy-chat-image-send{
  width:44px !important;
  height:44px !important;
  flex:0 0 44px !important;
  border-radius:50% !important;
  background:#1d9bf0 !important;
  color:#fff;
  border:0 !important;
}
.bondy-chat-offer-panel{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:10;
  max-height:70dvh;
  overflow:auto;
  padding:18px 16px calc(18px + env(safe-area-inset-bottom));
  background:#fff;
  border-top:1px solid #e6edf2;
  border-radius:22px 22px 0 0;
  box-shadow:0 -16px 40px rgba(28,45,58,.16);
}
.bondy-chat-offer-panel[hidden]{display:none !important}
.bondy-chat-offer-panel .bondy-chat-offer{
  border-top:0;
  margin-top:0;
  padding-top:0;
}
body:has(#bondyChatModal:not([hidden])){
  overflow:hidden;
}

@media(min-width:800px){
  .bondy-chat-fullscreen-modal{
    background:#eef3f6 !important;
  }
  .bondy-chat-fullscreen-modal .bondy-chat-sheet{
    max-width:760px;
    margin:0 auto;
    box-shadow:0 0 28px rgba(30,45,55,.12);
  }
}


/* v0.8.53 管理画面チャット履歴 */
.admin-chat-room-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.admin-chat-room-main{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.admin-chat-room-main small{
  color:#758a98;
  word-break:break-all;
}
.admin-chat-room-card>button{
  flex:0 0 auto;
}
.admin-chat-readonly{
  font-size:12px;
  font-weight:800;
  color:#7d8b95;
  background:#eef3f6;
  border-radius:999px;
  padding:7px 10px;
}
.admin-chat-history-sheet{
  grid-template-rows:auto minmax(0,1fr) !important;
}
.admin-history-msg em{
  display:block;
  margin:0 8px 3px;
  color:#7f8c97;
  font-size:10px;
  font-style:normal;
  font-weight:700;
}
@media(max-width:620px){
  .admin-chat-room-card{
    align-items:stretch;
    flex-direction:column;
  }
  .admin-chat-room-card>button{
    width:100%;
  }
}


/* v0.8.56 ポイント設定 保存フィードバック */
#savePointSettings.saved{
  filter:brightness(.96);
  transform:scale(.995);
}
.bondy-admin-toast{
  position:fixed;
  left:50%;
  bottom:32px;
  z-index:20000;
  transform:translate(-50%,18px);
  opacity:0;
  min-width:260px;
  max-width:calc(100vw - 32px);
  padding:14px 20px;
  border-radius:14px;
  text-align:center;
  font-weight:800;
  box-shadow:0 10px 30px rgba(20,40,55,.18);
  transition:opacity .2s ease,transform .2s ease;
}
.bondy-admin-toast.show{
  opacity:1;
  transform:translate(-50%,0);
}
.bondy-admin-toast.success{
  background:#1f9d67;
  color:#fff;
}
.bondy-admin-toast.error{
  background:#d94b4b;
  color:#fff;
}


/* v0.8.57 管理画面 通知バッジ */
.admin-notify-tile{
  position:relative;
}
.admin-notification-badge{
  position:absolute;
  top:14px;
  right:14px;
  min-width:24px;
  height:24px;
  padding:0 7px;
  border-radius:999px;
  background:#ff3b30;
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:24px;
  text-align:center;
  box-shadow:0 0 0 3px #fff;
}
.admin-notification-badge[hidden]{
  display:none !important;
}


/* v0.8.58 チャット送信取消 */
.bondy-chat-unsend{
  border:0;
  background:transparent;
  padding:0 0 0 8px;
  color:#8294a4;
  font:inherit;
  font-size:11px;
  cursor:pointer;
}
.bondy-chat-unsend:hover{
  text-decoration:underline;
}


/* v0.8.59 管理履歴の送信取消表示 */
.admin-history-unsent{
  opacity:.82;
}
.admin-unsent-mark{
  margin-left:8px;
  padding:2px 7px;
  border-radius:999px;
  background:#fff0ee;
  color:#d25b4d;
  font-size:10px;
  font-weight:800;
}


/* v0.8.60 送信取消アクションを状態表示に見えないよう整理 */
.bondy-chat-unsend{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  height:18px;
  margin-left:6px;
  padding:0 3px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#8b98a3;
  font-size:12px;
  font-weight:900;
  letter-spacing:1px;
  line-height:1;
  cursor:pointer;
  vertical-align:middle;
}
.bondy-chat-unsend:hover{
  background:#eef3f6;
  text-decoration:none;
}


/* v0.8.61 管理チャット履歴：送信取消済みを赤枠で強調 */
#adminChatHistoryMessages .admin-history-unsent{
  position:relative;
  border:2px solid #ef5350;
  border-radius:18px;
  padding:8px;
  background:#fff8f7;
  opacity:1;
}
#adminChatHistoryMessages .admin-history-unsent::before{
  content:"送信取消済み";
  display:inline-block;
  margin:0 0 6px 4px;
  padding:3px 8px;
  border-radius:999px;
  background:#ef5350;
  color:#fff;
  font-size:10px;
  font-weight:900;
}
#adminChatHistoryMessages .admin-history-unsent .admin-unsent-mark{
  display:none;
}


/* v0.8.62 長押し送信取消 + 画像DL */
.bondy-chat-unsend{
  display:none !important;
}

.bondy-msg[data-own-msg="1"]{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}

.bondy-message-action-modal{
  align-items:flex-end !important;
  justify-content:center !important;
  padding:0 12px calc(12px + env(safe-area-inset-bottom)) !important;
  background:rgba(15,25,32,.28) !important;
}
.bondy-message-action-sheet{
  width:min(520px,100%);
  display:grid;
  gap:8px;
}
.bondy-message-action-sheet button{
  width:100%;
  min-height:54px;
  border:0;
  border-radius:16px;
  background:#fff;
  font-size:16px;
  font-weight:800;
  box-shadow:0 6px 24px rgba(20,35,45,.12);
}
.bondy-message-action-sheet button.danger{
  color:#e34242;
}
.bondy-chat-image-preview-actions{
  display:flex;
  justify-content:center;
  padding:16px 0 4px;
}
.bondy-chat-image-preview-actions .primary{
  min-width:220px;
  min-height:48px;
}


/* v0.8.63 管理履歴：送信取消済みを赤枠＋日時横バッジ */
#adminChatHistoryMessages .admin-history-unsent{
  position:relative;
  border:2px solid #ff4b5f !important;
  border-radius:18px !important;
  padding:8px !important;
  background:#fff !important;
  opacity:1 !important;
}
#adminChatHistoryMessages .admin-history-unsent::before{
  content:none !important;
  display:none !important;
}
#adminChatHistoryMessages .admin-history-unsent .admin-unsent-mark{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  margin-left:8px;
  padding:3px 8px;
  border-radius:999px;
  background:#fff0f1;
  color:#ef5350;
  font-size:10px;
  font-weight:900;
  line-height:1.2;
}
#adminChatHistoryMessages .admin-history-unsent small{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
}

/* v0.8.66 全画面チャットより前面 */
#bondyMessageActionModal,
#bondyChatImagePreviewModal{
  z-index:13000 !important;
}


/* v0.8.71 MEMBERプロフィール追加項目・限定写真 */
.member-extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;}
.member-extra-chip{background:#f6f7f9;border-radius:14px;padding:10px 12px;font-size:13px;}
.member-extra-chip b{display:block;font-size:11px;color:#8a919b;margin-bottom:3px;}
.member-private-section{margin:18px 0 6px;}
.member-private-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.member-private-head h3{margin:0;font-size:15px;}
.member-private-lock-note{font-size:11px;color:#8a919b;}
.member-private-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;}
.member-private-photo,.member-private-locked{width:100%;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:#eef0f3;border:0;padding:0;}
.member-private-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.member-private-locked{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#777;font-size:11px;}
.member-private-locked span{font-size:22px;margin-bottom:4px;}
.member-private-empty{font-size:12px;color:#8a919b;padding:8px 0;}
.member-private-editor{margin-top:12px;padding:12px;background:#f7f8fa;border-radius:14px;}
.member-private-editor small{display:block;color:#777;margin-top:6px;}
.member-private-editor-list{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px;}
.member-private-editor-item{position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:#eee;}
.member-private-editor-item img{width:100%;height:100%;object-fit:cover;}
.member-private-editor-item button{position:absolute;right:5px;top:5px;width:25px;height:25px;border:0;border-radius:50%;background:rgba(0,0,0,.68);color:#fff;font-weight:900;}

/* v0.8.73 ロック中の限定写真ティザー */
.member-private-locked{position:relative;isolation:isolate;background:#20242a !important;}
.member-private-locked.has-teaser img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:blur(10px) brightness(.52) saturate(.85);
  transform:scale(1.18);
}
.member-private-lock-overlay{
  position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  background:linear-gradient(to bottom,rgba(0,0,0,.10),rgba(0,0,0,.32));
  color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.55);
}
.member-private-lock-overlay span{font-size:24px;margin-bottom:3px;}
.member-private-lock-overlay b{font-size:12px;}
.member-private-lock-overlay small{font-size:9px;margin-top:3px;opacity:.92;}

/* v0.8.75 ティザー未生成でも黒塗りにしない */
.member-private-locked.locked-placeholder.has-teaser img{
  filter:blur(15px) brightness(.45) saturate(.7) !important;
  transform:scale(1.28) !important;
}


/* v0.8.78 限定写真ロック：白系・薄めティザー */
.member-private-locked{
  background:#eef1f4 !important;
}
.member-private-locked.has-teaser img{
  filter:blur(7px) brightness(1.22) saturate(.72) opacity(.82) !important;
  transform:scale(1.12) !important;
}
.member-private-locked.locked-placeholder.has-teaser img{
  filter:blur(9px) brightness(1.25) saturate(.68) opacity(.80) !important;
  transform:scale(1.16) !important;
}
.member-private-lock-overlay{
  background:rgba(255,255,255,.34) !important;
  color:#fff !important;
  text-shadow:0 1px 5px rgba(0,0,0,.62) !important;
}
.member-private-lock-overlay span{
  filter:none !important;
}
.member-private-lock-overlay b{
  color:#fff !important;
  font-weight:900 !important;
}
.member-private-lock-overlay small{
  color:#fff !important;
  opacity:.98 !important;
  font-weight:800 !important;
}

/* v0.8.79 各限定写真ごとのロックティザー */
.member-private-locked.has-teaser img{
  filter:blur(5px) brightness(1.12) saturate(.82) !important;
  transform:scale(1.10) !important;
  opacity:1 !important;
}
.member-private-lock-overlay{background:rgba(255,255,255,.42) !important;}
.member-private-locked.locked-placeholder{background:#eef1f4 !important;}

/* v0.8.80 限定写真：各元画像ティザー + 白フィルター */
.member-private-locked.has-teaser{
  overflow:hidden !important;
  background:#eef1f4 !important;
}
.member-private-locked.has-teaser img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
  filter:blur(6px) brightness(1.08) saturate(.82) !important;
  transform:scale(1.12) !important;
  opacity:1 !important;
}
.member-private-locked.has-teaser .member-private-lock-overlay{
  background:rgba(255,255,255,.38) !important;
}

/* v0.8.81 オファー承認フロー */
#memberIncomingOffers .offer-card:has([data-incoming-accept]){
  border:1px solid #d8e8ff;
  box-shadow:0 4px 14px rgba(37,120,255,.08);
}


/* v0.8.90 チャット内オファー履歴 */
.bondy-system-event{
  width:100%;
  max-width:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin:14px 0;
  padding:0 10px;
  box-sizing:border-box;
  text-align:center;
}
.bondy-system-event span{
  display:inline-block;
  padding:8px 12px;
  border-radius:999px;
  background:#eef2f6;
  color:#526170;
  font-size:12px;
  font-weight:800;
  line-height:1.45;
}
.bondy-system-event small{
  margin-top:4px;
  color:#98a2ad;
  font-size:9px;
}

/* v0.8.96 オファー相手名表示 */
.offer-sender-name{
  margin-top:4px;
  font-size:13px;
  font-weight:800;
  color:#27384a;
}


/* v0.8.98 USER利用開始承認 */
.bondy-start-approval{
  width:100%;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:12px;
  background:#eef6ff;
  box-sizing:border-box;
}
.bondy-start-approval span{
  flex:1;
  font-size:12px;
  font-weight:800;
  color:#27476b;
}


/* v0.8.100 成立後アクションをTOP表示 */
.active-offer-top{
  margin:12px 0 16px;
}
.active-offer-card{
  border:1px solid #d8e6f5;
  border-radius:18px;
  background:#fff;
  padding:14px;
  box-shadow:0 6px 18px rgba(25,65,105,.08);
}
.active-offer-card+.active-offer-card{
  margin-top:10px;
}
.active-offer-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.active-offer-card-head small{
  display:block;
  margin-bottom:2px;
  font-size:11px;
  font-weight:800;
  color:#4f7da8;
}
.active-offer-card-head strong{
  font-size:17px;
}
.active-offer-card-head>span{
  font-size:12px;
  font-weight:800;
  color:#3975ad;
  background:#eef6ff;
  padding:5px 9px;
  border-radius:999px;
}
.active-offer-card-info{
  display:flex;
  gap:8px;
  margin-top:10px;
}
.active-offer-card-info b{
  font-size:13px;
  background:#f5f7fa;
  border-radius:10px;
  padding:6px 9px;
}
.active-offer-card-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}
.active-offer-card-actions button{
  flex:1 1 auto;
  min-height:40px;
}

/* v0.8.101 延長合計 */
.active-offer-card-info small{
  align-self:center;
  font-size:11px;
  font-weight:800;
  color:#3975ad;
}

/* v0.8.104 利用時間 / クレーム受付カウントダウン */
.bondy-top-countdown{
  margin:10px 0 8px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(66,153,225,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.bondy-top-countdown small{
  font-size:12px;
  font-weight:800;
}
.bondy-top-countdown strong{
  font-size:24px;
  line-height:1;
  letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
}
.bondy-top-countdown.complaint{
  background:rgba(245,158,11,.09);
}
.bondy-top-countdown strong.is-ending{
  animation:bondyTimerPulse 1s ease-in-out infinite;
}
@keyframes bondyTimerPulse{
  0%,100%{opacity:1}
  50%{opacity:.55}
}

/* v0.8.105 ギフト */
.bondy-chat-head-actions{margin-left:auto;display:flex;align-items:center;gap:6px}
.bondy-chat-gift-toggle{
  border:1px solid #e9c85d;background:#fff9df;color:#735500;
  border-radius:999px;padding:8px 10px;font-weight:800;white-space:nowrap
}
.bondy-gift-sheet{max-width:430px}
.bondy-gift-amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 12px}
.bondy-gift-amounts button{
  min-height:76px;border:1px solid #eadfba;background:#fffaf0;border-radius:14px;
  display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:10px
}
.bondy-gift-amounts button span{font-size:22px}
.bondy-gift-amounts button b{font-size:18px}
.bondy-gift-amounts button small{width:100%;font-size:11px;opacity:.65}
.bondy-gift-note{display:block;line-height:1.6;opacity:.72}
.bondy-gift-event{display:flex;flex-direction:column;align-items:center;gap:4px;margin:10px auto;max-width:88%}
.bondy-gift-event-card{
  border:1px solid #eadfba;background:#fff9e8;border-radius:16px;padding:10px 14px;
  display:flex;align-items:center;gap:10px;box-shadow:0 2px 8px rgba(0,0,0,.04)
}
.bondy-gift-event-card .bondy-gift-icon{font-size:25px}
.bondy-gift-event-card div{display:flex;flex-direction:column;gap:2px}
.bondy-gift-event-card b{font-size:14px}
.bondy-gift-event-card small{font-size:11px;opacity:.72}
.bondy-gift-event>small{font-size:10px;opacity:.5}
.gift-admin-amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 18px}
.gift-admin-amount-row{display:flex;gap:6px;align-items:center}
.gift-admin-amount-row .point-input{flex:1}
.gift-rank-title{margin:12px 0 8px;font-size:14px}
.gift-reward-rates{display:grid;gap:8px}
.gift-rank-rate-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;align-items:center}
.gift-rank-rate-row label{display:flex;align-items:center;justify-content:space-between;gap:10px}
@media (max-width:520px){
  .bondy-chat-head-actions{gap:4px}
  .bondy-chat-gift-toggle,.bondy-chat-offer-toggle{padding:7px 8px;font-size:12px}
  .gift-admin-amounts{grid-template-columns:1fr}
}

/* v0.8.106 ギフトモーダルをフルスクリーンチャットより必ず前面へ */
#bondyGiftModal{
  z-index:2147483646 !important;
}
#bondyGiftModal .sheet{
  position:relative;
  z-index:2147483647 !important;
}
body:has(#bondyGiftModal:not([hidden])) #bondyChatModal{
  pointer-events:none;
}


/* v0.8.112 監査専用チャット */
.audit-top-list{margin:12px 0}
.bondy-audit-top-card{background:#fff8e8;border:1px solid #f0d99b;border-radius:18px;padding:14px;margin-bottom:10px}
.bondy-audit-top-card>div{display:flex;justify-content:space-between;gap:10px;align-items:center}
.bondy-audit-top-card span,.bondy-audit-top-card small{display:block;color:#667085;font-size:12px}
.bondy-audit-top-card button{margin-top:10px;width:100%}
.audit-party-line{margin:8px 0;color:#475467}
.audit-hearing-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.audit-hearing-actions button{min-width:160px}
#bondyAuditChatModal{z-index:2147483645!important}
.bondy-audit-sheet{width:min(760px,100%);height:min(92vh,900px);max-height:92vh;display:flex;flex-direction:column;padding:0!important;overflow:hidden}
.bondy-audit-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #e4e7ec}
.bondy-audit-head button{border:0;background:transparent;font-size:26px;padding:4px 8px}
.bondy-audit-head h2{margin:2px 0 0;font-size:18px}
.bondy-audit-head small{color:#667085}
.bondy-audit-case-info{padding:10px 16px;background:#f8fafc;border-bottom:1px solid #e4e7ec}
.bondy-audit-case-info span{display:block;font-size:13px;color:#475467;margin-top:3px}
.bondy-audit-messages{flex:1;overflow:auto;padding:16px;background:#f6f8fb}
.bondy-audit-msg{max-width:78%;padding:10px 12px;border-radius:16px;margin:8px 0;background:white;box-shadow:0 1px 3px rgba(16,24,40,.08)}
.bondy-audit-msg.mine{margin-left:auto;background:#dff4ff}
.bondy-audit-msg small{display:block;font-size:10px;color:#667085;margin-top:5px}
.bondy-audit-image{border:0;background:transparent;padding:0;display:block;max-width:260px}
.bondy-audit-image img{display:block;max-width:100%;max-height:320px;border-radius:12px}
.bondy-audit-compose{display:flex;gap:8px;padding:12px;border-top:1px solid #e4e7ec;background:white}
.bondy-audit-compose input[type=text],#bondyAuditInput{flex:1;min-width:0}
.bondy-audit-closed{padding:12px;text-align:center;background:#f2f4f7;color:#667085}
@media(max-width:600px){
  .bondy-audit-sheet{width:100%;height:100dvh;max-height:100dvh;border-radius:0!important}
  .audit-hearing-actions button{flex:1;min-width:0}
}

/* v0.8.113 クレーム調査中カード */
.active-offer-card.is-under-review{
  border:2px solid #e5484d!important;
  background:#fff7f7!important;
  box-shadow:0 0 0 3px rgba(229,72,77,.08)!important;
}
.active-offer-card.is-under-review .active-offer-card-head>span{
  background:#ffe1e2!important;
  color:#b42318!important;
  font-weight:800;
}
.bondy-top-review-notice{
  margin:12px 0;
  padding:14px 16px;
  border-radius:14px;
  background:#fff0f0;
  border:1px solid #f7b4b7;
}
.bondy-top-review-notice small{
  display:block;
  color:#b42318;
  font-weight:800;
  margin-bottom:4px;
}
.bondy-top-review-notice strong{display:block;color:#7a271a}
.active-offer-card.is-under-review .bondy-admin-chat-btn{
  background:#d92d20!important;
  color:#fff!important;
  border-color:#d92d20!important;
  font-weight:800;
}

/* v0.8.114 監査の按分裁定 */
.audit-resolution-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.audit-resolution-actions button{
  flex:1 1 180px;
}

/* v0.8.117 クレーム裁定後も双方が確認するまでカードを保持 */
.active-offer-card.is-audit-resolved{
  border:2px solid #e5484d!important;
  background:#fffafa!important;
}
.active-offer-card.is-audit-resolved .active-offer-card-head>span{
  background:#ffe1e2!important;
  color:#b42318!important;
}
.bondy-top-resolution-notice{
  margin:12px 0;
  padding:14px 16px;
  border-radius:14px;
  background:#fff0f0;
  border:1px solid #f7b4b7;
}
.bondy-top-resolution-notice small{
  display:block;color:#b42318;font-weight:800;margin-bottom:4px
}
.bondy-top-resolution-notice strong{display:block;color:#7a271a}
.bondy-top-resolution-notice span{display:block;color:#667085;font-size:12px;margin-top:5px}
.bondy-audit-dismiss-btn{
  background:#fff!important;
  color:#b42318!important;
  border:1px solid #e5484d!important;
  font-weight:800;
}


/* v0.8.118 監査履歴・管理通知バッジ */
.admin-audit-tabs{
  display:flex;
  gap:8px;
  margin:12px 0 18px;
}
.admin-audit-tabs button{
  min-width:120px;
  padding:10px 18px;
  border-radius:999px;
  border:1px solid #d0d5dd;
  background:#fff;
  font-weight:800;
}
.admin-audit-tabs button.active{
  background:#263746;
  color:#fff;
  border-color:#263746;
}
.audit-resolved-card{
  background:#f8fafc;
}
.audit-resolution-summary{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  background:#eef4f8;
}
.audit-resolution-summary b,.audit-resolution-summary span{
  display:block;
}
.audit-resolution-summary span{
  margin-top:4px;
  color:#475467;
}
.admin-notify-tile{
  position:relative;
}
.admin-notification-badge{
  position:absolute;
  top:8px;
  right:8px;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border-radius:999px;
  background:#e5484d;
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:22px;
  text-align:center;
  box-shadow:0 0 0 2px #fff;
}

/* v0.8.119 USER向け MEMBER詳細：メイン画像＋サムネイル＋写真スライダー */
.public-member-detail-sheet{padding-top:0!important;overflow:auto;max-height:96vh}
.public-member-detail-sheet>.x{position:sticky;top:10px;float:right;margin:10px 10px -54px 0;z-index:6;background:rgba(255,255,255,.88);backdrop-filter:blur(8px)}
.public-member-media{margin:0 -18px 14px;overflow:hidden;background:#f4f6f8}
.public-member-main-photo-btn{display:block;width:100%;padding:0;border:0;background:#eef2f5;cursor:zoom-in}
.public-member-detail-photo{display:block;width:100%;height:auto;aspect-ratio:1/1.12;object-fit:cover;border-radius:0!important;background:#eef2f5}
.public-member-thumbs{display:flex;gap:9px;overflow-x:auto;padding:10px 14px 12px;background:#fff;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.public-member-thumbs::-webkit-scrollbar{display:none}
.public-member-thumb{position:relative;flex:0 0 66px;width:66px;height:66px;padding:0;border:2px solid transparent;border-radius:9px;overflow:hidden;background:#edf0f3;cursor:pointer}
.public-member-thumb img{width:100%;height:100%;display:block;object-fit:cover}
.public-member-thumb.active{border-color:#ff8615}
.public-member-thumb.is-locked{cursor:default;background:#d8dce1}
.public-member-thumb.is-locked img{filter:blur(7px) saturate(.7);transform:scale(1.08);opacity:.76}
.public-member-thumb-lock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(20,29,38,.22);font-size:24px;text-shadow:0 1px 5px rgba(0,0,0,.35)}
.public-member-photo-note{min-height:0;margin:4px 0 10px;color:#8a919b;font-size:11px;text-align:right}
.public-member-photo-viewer-modal{z-index:14000!important;background:rgba(0,0,0,.94)!important}
.public-member-photo-viewer-sheet{position:relative;width:100vw;height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:pan-y;background:#000}
.public-member-photo-viewer-img{display:block;max-width:100vw;max-height:100svh;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}
.public-member-photo-viewer-close{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;z-index:3;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:27px;line-height:1;cursor:pointer}
.public-member-photo-viewer-nav{position:absolute;top:50%;z-index:3;transform:translateY(-50%);width:44px;height:58px;border:0;background:rgba(0,0,0,.35);color:#fff;font-size:42px;line-height:1;cursor:pointer}
.public-member-photo-viewer-nav.prev{left:0;border-radius:0 12px 12px 0}
.public-member-photo-viewer-nav.next{right:0;border-radius:12px 0 0 12px}
.public-member-photo-viewer-count{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:5px 11px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:700}
@media(max-width:520px){
  .public-member-detail-sheet{width:100%;max-width:none;min-height:100svh;max-height:100svh;border-radius:0!important;padding-left:18px;padding-right:18px}
  .public-member-media{margin-left:-18px;margin-right:-18px}
  .public-member-detail-photo{aspect-ratio:1/1.12}
  .public-member-thumb{flex-basis:72px;width:72px;height:72px}
}

/* v0.8.120 USER検索・お気に入り・閲覧履歴・ランキング */
.user-member-search{display:flex;align-items:center;gap:8px;background:#eef3f8;border-radius:14px;padding:4px 10px;margin:12px 0 8px}.user-member-search>span{font-size:27px;line-height:1}.user-member-search input{border:0;background:transparent;margin:0;padding:11px 4px;outline:0;font-weight:700}.user-member-search button{border:0;background:transparent;font-size:18px;color:#82919d;padding:8px}.user-member-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #e5ebef;margin:2px 0 10px}.user-member-tabs button{position:relative;border:0;background:#fff;padding:13px 2px 12px;color:#64788b;font-weight:800;font-size:12px;white-space:nowrap}.user-member-tabs button.active{color:#182a38}.user-member-tabs button.active:after{content:"";position:absolute;left:18%;right:18%;bottom:-1px;height:3px;border-radius:3px;background:#182a38}.user-member-list-title{font-size:17px;font-weight:900;margin:14px 0 -10px}.public-member-name-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.public-member-name-line h2{min-width:0}.public-member-favorite-btn{flex:0 0 auto;border:1px solid #d9e1e6;background:#fff;border-radius:999px;padding:8px 12px;display:flex;align-items:center;gap:5px;color:#7b8994;font-weight:800}.public-member-favorite-btn span{filter:grayscale(1);opacity:.55}.public-member-favorite-btn.is-favorite{border-color:#ff9b62;background:#fff4eb;color:#ef741f}.public-member-favorite-btn.is-favorite span{filter:none;opacity:1}.member-empty-state{grid-column:1/-1;text-align:center;padding:42px 10px;color:#82919d;font-weight:800}.discovery-rank-no{position:absolute;left:8px;top:8px;z-index:3;background:rgba(25,35,45,.82);color:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.discovery-photo-wrap{position:relative}

/* v0.8.124: USER active-offer board member name opens MEMBER detail */
.bondy-top-member-link{appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:0;margin:0;color:inherit;font:inherit;font-weight:800;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.bondy-top-member-link:active{opacity:.65}

/* v0.8.125: MEMBER active-offer board USER detail link */
.public-user-detail-sheet{max-width:520px}
.public-user-detail-label{font-weight:800;color:var(--muted)}
.public-user-detail-sheet h2{margin:8px 0 6px;font-size:28px}
.public-user-detail-id{margin:0;color:var(--muted);font-size:12px;word-break:break-all}

/* v0.8.128: chat Enter inserts a newline; only the send button submits */
.bondy-chat-compose textarea{flex:1;min-width:0;min-height:44px;max-height:120px;border:1px solid #dbe2ea;border-radius:12px;padding:11px 12px;margin:0;resize:vertical;font:inherit}

/* v0.8.129 Chat multiline input: Enter inserts a newline; send button sends the whole message. */
.bondy-chat-compose textarea#bondyChatInput{
  flex:1;
  min-width:0;
  min-height:46px;
  max-height:140px;
  resize:none;
  overflow-y:auto;
  border:1px solid #dbe2ea;
  border-radius:12px;
  padding:11px 12px;
  font:inherit;
  line-height:1.45;
  box-sizing:border-box;
}


/* v0.8.132: multiline chat composer, auto-grow up to 140px */
.bondy-chat-compose textarea#bondyChatInput{
  width:100%;
  height:auto;
  min-height:46px;
  max-height:140px;
  overflow-y:auto;
  white-space:pre-wrap;
  line-height:1.45;
}

/* v0.8.136: MEMBER detail direct offer button sits immediately below duration choices. */
.public-member-duration-options + .public-member-offer-button{margin-top:12px;margin-bottom:16px}


/* v0.8.138 active board status border colors (USER / MEMBER common) */
.active-offer-card.is-status-pending{border:2px solid #e5b51b;box-shadow:0 0 0 3px rgba(229,181,27,.08)}
.active-offer-card.is-status-pending .active-offer-card-head>span{background:#fff6cf;color:#8a6500}
.active-offer-card.is-status-approved{border:2px solid #35a864;box-shadow:0 0 0 3px rgba(53,168,100,.08)}
.active-offer-card.is-status-approved .active-offer-card-head>span{background:#e8f7ee;color:#247846}
.active-offer-card.is-status-in-use{border:2px solid #2498d1;box-shadow:0 0 0 3px rgba(36,152,209,.08)}
.active-offer-card.is-status-in-use .active-offer-card-head>span{background:#e4f4fc;color:#1675a5}
.active-offer-card.is-status-ended{border:2px solid #98a2ad;box-shadow:0 0 0 3px rgba(152,162,173,.07)}
.active-offer-card.is-status-ended .active-offer-card-head>span{background:#f0f2f4;color:#59636d}


/* v0.8.139 MEMBER "今すぐ会えるよ" large status button */
.member-available-now-btn{
  width:100%;
  border:1px solid #dbe3e8;
  background:#eef1f3;
  color:#7b8790;
  border-radius:16px;
  padding:14px 16px;
  margin:0 0 18px;
  font-weight:900;
  font-size:15px;
  box-shadow:0 3px 10px rgba(36,55,71,.05);
}
.member-available-now-btn.is-active{
  border-color:#75d3ae;
  background:linear-gradient(135deg,#dff8eb,#bff0db);
  color:#16865b;
  box-shadow:0 5px 16px rgba(34,160,108,.14);
}
.member-available-now-btn:disabled{opacity:.55}
.available-badge{font-size:10px}

/* v0.8.140: free chat + private photo unlock request */
.public-member-chat-free-button{width:100%;margin:12px 0 10px;border-radius:14px;padding:14px 16px;font-size:16px;font-weight:900}
.public-member-private-unlock-btn{width:100%;margin:10px 0 6px;border:1px solid #d9e1e6;background:#f5f7f9;color:#465764;border-radius:14px;padding:13px 14px;font-weight:900}
.public-member-private-unlock-btn.is-ready{background:#fff4f8;border-color:#f2b5ca;color:#c43d73}
.public-member-private-unlock-btn.is-pending{background:#fff8df;border-color:#edcf6a;color:#8b6a00}
.public-member-private-unlock-btn.is-approved{background:#eaf8ef;border-color:#8fd5aa;color:#197342}
.public-member-private-unlock-btn:disabled{opacity:.8;cursor:default}
.private-unlock-request-card{border:1px solid #dbe4ea;background:#fff;border-radius:14px;padding:12px 14px;margin:8px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}
.private-unlock-request-card .meta{min-width:0}.private-unlock-request-card .meta b{display:block}.private-unlock-request-card .meta small{color:#7b8b97}
.private-unlock-request-card .actions{display:flex;gap:7px;flex:0 0 auto}.private-unlock-request-card .actions button{border:0;border-radius:10px;padding:9px 11px;font-weight:900}
.private-unlock-request-card .approve{background:#daf4e3;color:#126c39}.private-unlock-request-card .decline{background:#f1f3f5;color:#62717c}

/* v0.8.144 MEMBER offer history + favorite USER */
#memberIncomingOffers,.member-offer-history,.member-favorite-users{display:grid;gap:10px}
.member-offer-history-toggle{width:100%;margin:12px 0 18px;border:0;background:#eef6fb;color:var(--ink);border-radius:14px;padding:13px 15px;font-weight:800;display:flex;align-items:center;justify-content:space-between}
.member-offer-history-toggle[aria-expanded="true"] span{transform:rotate(90deg)}
.member-offer-history-toggle span{transition:transform .18s ease}
.member-offer-history .offer-card{opacity:.88}
.offer-sender-name{font-weight:800;align-items:center}
.member-user-favorite-btn{flex:0 0 auto!important;background:#fff1f5!important;color:#c84c72!important;font-weight:800}
.member-user-favorite-btn.is-favorite{background:#ffe0ea!important;color:#b52e5c!important}
.member-favorite-user-card{background:#fff;border-radius:16px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 4px 16px #e5eef3}
.member-favorite-user-card strong{display:block}.member-favorite-user-card small{display:block;color:var(--muted);margin-top:3px}
.member-favorite-user-card button{border:0;background:#ffe7ef;color:#b52e5c;border-radius:12px;padding:9px 12px;font-weight:800;white-space:nowrap}

/* v0.8.145 MEMBER chat list: LINE-like unread priority + compact history */
.member-chat-heading{display:flex;align-items:center;gap:8px}
.member-chat-heading-badge,.member-chat-unread-badge{display:inline-flex!important;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#ff4d5e;color:#fff!important;font-size:11px!important;font-weight:900;line-height:1;box-shadow:0 2px 8px rgba(255,77,94,.22)}
.member-chat-room-card{margin:10px 0}
.member-chat-room-card.has-unread{border:2px solid #73cce9;box-shadow:0 5px 18px rgba(91,183,244,.12)}
.member-chat-room-head{display:flex!important;align-items:center;gap:8px!important}
.member-chat-room-head>b{font-size:16px}
.member-chat-room-head>span:last-child{margin-left:auto}
.member-chat-unread-badge{margin:0!important;min-width:24px;height:24px}
.member-chat-history-toggle{width:100%;border:0;background:#fff;border-radius:16px;padding:13px 15px;margin:10px 0 16px;display:flex;align-items:center;justify-content:space-between;color:var(--ink);font-weight:800;box-shadow:0 4px 16px rgba(36,55,71,.05)}
.member-chat-history-toggle[aria-expanded="true"] span{transform:rotate(90deg)}
.member-chat-history-toggle span{transition:transform .18s ease}
.member-chat-history .offer-card{opacity:.9}
/* v0.8.146 completed settlement card */
.bondy-top-completed-notice{margin:10px 0;padding:12px 14px;border-radius:14px;background:#eef9f2;display:flex;flex-direction:column;gap:3px}
.bondy-top-completed-notice small{font-weight:800;color:#47715a}
.bondy-top-completed-notice strong{font-size:20px;color:#173b29}
.bondy-top-completed-notice span{font-size:12px;color:#718078}
.bondy-history-move-btn{background:#eef1f4!important;color:#34424f!important}

/* v0.8.153 USER usage history */
.user-usage-history-sheet{max-height:86svh;overflow:auto}
.user-usage-history-list{display:grid;gap:10px;margin-top:14px}
.user-usage-history-card{background:#fff;border:1px solid #dfe7ed;border-radius:16px;padding:14px;box-shadow:0 3px 12px rgba(36,55,71,.04)}
.user-usage-history-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.user-usage-history-card-head button{border:0;background:none;padding:0;color:var(--ink);font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px;text-align:left}
.user-usage-history-card-head span{font-size:12px;font-weight:800;background:#eef1f4;border-radius:999px;padding:6px 9px;white-space:nowrap}
.user-usage-history-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.user-usage-history-meta b{background:#f5f7f9;border-radius:10px;padding:6px 9px}
.user-usage-history-card small{display:block;color:#7890a2;margin-top:5px}
.user-usage-history-card .history-note{margin:8px 0 0;font-weight:800;color:#315f4d}
.user-usage-history-card .history-chat-btn{width:100%;margin-top:10px}

/* v0.8.225 USER usage history: member TOP avatar */
.user-usage-history-counterparty{display:flex;align-items:center;gap:10px;min-width:0}
.user-usage-history-card-head .user-usage-history-avatar{flex:0 0 42px;width:42px;height:42px;border:1px solid #dce6ec;border-radius:50%;padding:0;background:#eef3f6 center/cover no-repeat;text-decoration:none;overflow:hidden;display:flex;align-items:center;justify-content:center}
.user-usage-history-card-head .user-usage-history-avatar span{display:block;line-height:1}
.user-usage-history-card-head .user-usage-history-avatar.has-photo span{display:none}
.user-usage-history-card-head .user-usage-history-name{min-width:0}

/* v0.8.154 USER cancellation request after offer acceptance */
.bondy-cancel-request-btn{background:#fff4f1!important;border-color:#e9a79a!important;color:#a84d3f!important}
.bondy-cancel-request-notice{margin:10px 0;padding:12px 14px;border-radius:14px;display:flex;flex-direction:column;gap:4px;font-size:12px}
.bondy-cancel-request-notice strong{font-size:15px}
.bondy-cancel-request-notice.is-pending{background:#fff8df;color:#765d00}
.bondy-cancel-request-notice.is-declined{background:#f3f4f6;color:#5f6871}
.bondy-cancel-request-notice.is-member{background:#fff2ed;color:#824739;border:1px solid #f0c1b5}
.bondy-cancel-request-notice.is-member>div{display:flex;gap:8px;margin-top:6px}
.bondy-cancel-request-notice.is-member button{flex:1;min-height:38px;border-radius:10px;border:1px solid #d9dde2;background:#fff;font-weight:800}
.bondy-cancel-request-notice.is-member button.primary{background:#2f9f62;color:#fff;border-color:#2f9f62}

/* v0.8.158 admin USER cancellation count */
.admin-cancel-count{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:14px 16px;border-radius:14px;background:#fff}
.admin-cancel-count span{font-size:13px!important;font-weight:800;color:var(--ink)!important}
.admin-cancel-count strong{font-size:24px;color:#d66b55;white-space:nowrap}

/* v0.8.159 admin USER booking history */
.admin-user-booking-history{display:grid;gap:10px;max-height:420px;overflow:auto}
.admin-booking-history-row{border:1px solid #dce8ed;border-radius:14px;padding:12px 14px;background:#fff;display:grid;gap:8px}
.admin-booking-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.admin-booking-history-head strong{font-size:15px;color:var(--ink)}
.admin-booking-history-head span{font-size:12px;font-weight:800;padding:5px 9px;border-radius:999px;background:#eef3f5;color:#647784;white-space:nowrap}
.admin-booking-history-head .status-cancelled{background:#fff0ec;color:#c65f4a}
.admin-booking-history-head .status-completed{background:#eaf8ef;color:#35785a}
.admin-booking-history-head .status-under_review{background:#fff0f0;color:#b94b4b}
.admin-booking-history-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-booking-history-meta b{font-size:13px;padding:5px 8px;border-radius:9px;background:#f4f7f8}
.admin-booking-history-meta small{margin-left:auto;color:#7c8d96}
.admin-booking-history-note{font-size:12px;font-weight:700;color:#6c7d85}

/* v0.8.163: USER保有ポイントの次回失効表示 */
.point-expiry-info{display:block;font-size:12px;line-height:1.45;margin-top:3px;opacity:.72;white-space:nowrap}


/* v0.8.164 Terms / prohibited activities */
.terms-consent{display:flex;align-items:flex-start;gap:8px;margin:12px 0;font-size:13px;line-height:1.5}.terms-consent input{width:auto;margin-top:3px}.inline-legal-link{border:0;background:none;padding:0;color:#111;text-decoration:underline;font:inherit;font-weight:700;cursor:pointer}.legal-sheet{max-width:680px;max-height:90svh;overflow:auto;padding-bottom:24px}.legal-sheet>h2{padding-right:38px}.legal-updated{font-size:12px;color:#777;margin-top:-4px}.legal-body{font-size:14px;line-height:1.75;color:#222}.legal-body h3{font-size:15px;margin:22px 0 6px}.legal-body p{margin:0 0 10px}.legal-body ul{padding-left:22px;margin:8px 0 14px}.legal-body li{margin:6px 0}.legal-note{margin-top:24px!important;padding:12px;border-radius:10px;background:#f5f5f5;color:#666;font-size:12px}.legal-close-btn{width:100%;margin-top:14px}

/* v0.8.165 事業者情報 */
.business-info-form{display:grid;gap:14px;margin-top:14px}.business-info-form label{display:grid;gap:7px;font-weight:700}.business-info-form input{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #d9dde6;border-radius:12px;background:#fff;font:inherit}.legal-operator-info{padding:12px 14px;border:1px solid #e5e7eb;border-radius:14px;background:#fafafa}.legal-operator-info p{margin:7px 0;word-break:break-word}

/* v0.8.166 legal pages */
.auth-legal-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:8px 0 2px}.auth-legal-links button{border:0;background:none;padding:0;color:#666;text-decoration:underline;font-size:11px;cursor:pointer}.legal-table>p{padding:10px 0;border-bottom:1px solid #eee}.legal-table>p:last-child{border-bottom:0}.legal-operator-info{padding:12px 14px;border-radius:12px;background:#f7f7f7}.legal-operator-info p{margin:5px 0}.contact-operator-info a{color:inherit;text-decoration:underline}.legal-contact-btn{width:100%;margin-top:14px}

/* v0.8.169 運営へのお問い合わせ */
.support-chat-sheet{max-width:560px}
.support-chat-avatar{display:flex;align-items:center;justify-content:center;background:#111827;color:#fff;font-weight:900;font-size:14px}
.support-chat-messages{min-height:320px;max-height:56vh}
.support-chat-compose textarea{flex:1;min-width:0;min-height:44px;max-height:120px;border:1px solid #dbe2ea;border-radius:12px;padding:11px 12px;margin:0;resize:none;font:inherit;line-height:1.45}
.support-chat-note{margin:8px 2px 0;color:#8490a0;font-size:11px;line-height:1.5}
.support-status-btn{margin-left:auto;border:1px solid #d5dce6;background:#fff;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:800;color:#536273}
.support-status-btn.is-closed{background:#ecf8ef;border-color:#b8dfc1;color:#26743a}
.legal-support-open{margin-top:10px;width:100%}
.admin-support-list{display:grid;gap:9px;margin-top:10px}
.admin-support-card{display:block;width:100%;text-align:left;border:1px solid #e1e6ed;background:#fff;border-radius:14px;padding:12px 14px;color:#263445}
.admin-support-card.has-unread{border-color:#ffb4b4;background:#fffafa;box-shadow:0 0 0 1px rgba(225,58,58,.06)}
.admin-support-card-head{display:flex;align-items:center;gap:7px}
.admin-support-card-head b{font-size:14px}
.admin-support-type{font-size:10px;font-weight:900;background:#eef4fb;color:#52708f;border-radius:999px;padding:3px 7px}
.admin-support-unread{margin-left:auto;min-width:22px;height:22px;border-radius:999px;background:#e53935;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;padding:0 6px}
.admin-support-card>small{display:block;margin-top:4px;color:#8793a2;font-size:11px}
.admin-support-card>p{margin:8px 0;color:#4d5d70;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-support-card-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;color:#8b96a4}
.admin-support-card-foot .open{color:#d27600;font-weight:900}.admin-support-card-foot .closed{color:#37844a;font-weight:900}

/* v0.8.171: support chat composer layout fix
   The shared chat composer uses a 3-column grid for image/text/send.
   Support chat has no image button, so explicitly stack textarea + send button. */
.support-chat-compose{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  grid-template-rows:auto auto !important;
  gap:8px !important;
  align-items:stretch !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.support-chat-compose #supportChatInput{
  grid-column:1 !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  min-height:48px !important;
  max-height:120px !important;
  overflow-y:auto !important;
  white-space:pre-wrap !important;
}
.support-chat-compose #supportChatSend{
  grid-column:1 !important;
  width:100% !important;
  min-height:44px !important;
  height:44px !important;
  padding:0 16px !important;
  border-radius:12px !important;
  box-sizing:border-box !important;
}

/* v0.8.172: support inbox - active on TOP, closed threads in history */
.admin-support-active>h4{margin:4px 0 10px;font-size:14px;color:#263445}
.admin-support-history{margin-top:14px;border-top:1px solid #e7edf3;padding-top:10px}
.admin-support-history>summary{cursor:pointer;font-weight:900;color:#5d6b7a;list-style:none;padding:10px 2px}
.admin-support-history>summary::-webkit-details-marker{display:none}
.admin-support-history>summary:after{content:"⌄";float:right;color:#8a96a3}
.admin-support-history[open]>summary:after{content:"⌃"}
.admin-support-history>summary span{font-size:11px;background:#eef2f6;border-radius:999px;padding:3px 7px;margin-left:5px}
.admin-support-history-list{display:grid;gap:9px;padding-top:6px}

/* v0.8.175 MEMBER 出金申請・口座管理 */
.withdraw-management-sheet{max-width:620px!important;max-height:92vh;overflow:auto}
.withdraw-balance-card{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:18px;background:#f7fbff;margin:10px 0 16px}
.withdraw-balance-card strong{font-size:28px}
.withdraw-balance-card span,.withdraw-note{font-size:12px;color:#667085}
.withdraw-section{padding:16px 0;border-top:1px solid #e8edf2}
.withdraw-section h3{margin:0 0 12px;font-size:18px}
.withdraw-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.withdraw-section-head h3{margin:0}
.bank-account-summary{padding:14px;border:1px solid #e4e8ee;border-radius:14px;background:#fff}
.bank-account-summary>div{display:flex;flex-direction:column;gap:5px}
.bank-account-summary span{font-size:13px;color:#596273}
.bank-account-empty,.withdraw-empty{padding:14px;border-radius:12px;background:#f7f8fa;color:#667085;font-size:13px}
.bank-account-form{display:grid;gap:10px;margin-top:12px}
.bank-account-form label{display:grid;gap:5px}
.bank-account-actions{display:flex;gap:8px}
.bank-account-actions button{flex:1}
.member-withdraw-history{display:grid;gap:10px}
.member-withdraw-row{display:grid;gap:4px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}
.member-withdraw-row>div{display:flex;justify-content:space-between;align-items:center;gap:10px}
.member-withdraw-row small{color:#667085}
.withdraw-status-chip{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;background:#fff4cc;color:#8a6300}
.withdraw-status-chip.paid{background:#e9f9ef;color:#18864b}
.withdraw-status-chip.rejected{background:#f2f4f7;color:#667085}
.withdraw-status-chip.pending{background:#fff4cc;color:#8a6300}

.withdraw-admin-section{margin:18px 0}
.withdraw-admin-section>h4{margin:0 0 10px}
.withdraw-admin-list{display:grid;gap:12px}
.admin-withdraw-card{display:grid;gap:10px;padding:14px;border:1px solid #e4e7ec;border-radius:16px;background:#fff}
.admin-withdraw-card.bank-change.new{border-color:#f0b429;background:#fffdf4}
.admin-withdraw-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.admin-withdraw-card-head>div{display:grid;gap:3px}
.admin-withdraw-card-head strong{font-size:20px;white-space:nowrap}
.admin-withdraw-card-head small{color:#667085}
.withdraw-bank-lines{display:grid;gap:3px;padding:10px 12px;border-radius:12px;background:#f7f8fa}
.withdraw-bank-lines span{font-size:13px;color:#596273}
.admin-withdraw-actions{display:flex;gap:8px}
.admin-withdraw-actions button{flex:1}
.bank-change-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bank-change-grid>div>small{display:block;margin-bottom:5px;color:#667085;font-weight:700}
@media (max-width:640px){.bank-change-grid{grid-template-columns:1fr}.admin-withdraw-actions{flex-direction:column}}

/* v0.8.177: normal USER/MEMBER chat composer visibility regression fix.
   Keep the composer inside the fixed fullscreen modal viewport on Safari/desktop,
   while preserving multiline input, image send, send button, and existing chat behavior. */
#bondyChatModal.bondy-chat-fullscreen-modal .bondy-chat-sheet{
  height:100% !important;
  max-height:100% !important;
  min-height:0 !important;
  grid-template-rows:auto minmax(0,1fr) auto !important;
}
#bondyChatModal .bondy-chat-messages{
  min-height:0 !important;
  overflow-y:auto !important;
}
#bondyChatModal .bondy-chat-compose{
  position:relative !important;
  bottom:auto !important;
  z-index:5 !important;
  display:grid !important;
  grid-template-columns:46px minmax(0,1fr) auto !important;
  width:100% !important;
  flex-shrink:0 !important;
  box-sizing:border-box !important;
}
#bondyChatModal .bondy-chat-compose #bondyChatInput{
  display:block !important;
  min-width:0 !important;
  width:100% !important;
  visibility:visible !important;
  opacity:1 !important;
}
#bondyChatModal .bondy-chat-compose #bondyChatSend,
#bondyChatModal .bondy-chat-compose #bondyChatImageBtn{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

/* v0.8.182 withdrawal fee settings */
.withdraw-settings-card{padding:16px;border:1px solid #e4e7ec;border-radius:16px;background:#fff}
.withdraw-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.withdraw-fee-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 12px}
.withdraw-fee-preview>div{padding:10px;border-radius:12px;background:#f7f8fa;display:grid;gap:3px}
.withdraw-fee-preview small{color:#667085;font-size:11px}.withdraw-fee-preview b{font-size:15px}
.withdraw-fee-preview .net{background:#eefaf6}.withdraw-fee-preview .blocked{background:#fff1f0;color:#b42318;grid-column:1/-1}
.withdraw-fee-lines{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:9px 10px;border-radius:12px;background:#f7f8fa;font-size:12px}
.withdraw-fee-lines span{display:grid;gap:2px}.withdraw-fee-lines small{color:#667085}
@media(max-width:640px){.withdraw-settings-grid,.withdraw-fee-preview,.withdraw-fee-lines{grid-template-columns:1fr}}

/* v0.8.185: MEMBERカードに最終ログイン表示。カード下部の料金/オファー導線は詳細画面へ集約。 */
.discovery-login{font-size:11px;color:#71828a;margin:3px 0 7px;font-weight:700}


/* v0.8.187: 9monsters-inspired compact USER discovery cards.
   TOP cards show only last-login time and distance under the photo. */
#userApp .discovery-body-compact{
  padding:7px 9px 8px;
  background:#fff;
}
#userApp .discovery-quick-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:24px;
  color:#536773;
  font-size:12px;
  font-weight:800;
  line-height:1.2;
}
#userApp .discovery-last-seen{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#userApp .discovery-distance{
  flex:0 0 auto;
  color:#344b58;
  font-weight:900;
}
#userApp .discovery-distance.is-empty{color:#9aa9b0}

/* v0.8.190 MEMBER -> USER favorite entry in chat header */
.bondy-chat-user-favorite{border:0;border-radius:999px;padding:9px 12px;background:#fff0f4;color:#d64f73;font-weight:800;white-space:nowrap}
.bondy-chat-user-favorite.is-favorite{background:#ffe4ec;color:#c93e65}

/* v0.8.191 MEMBER chat inbox (X-like compact list) */
.member-chat-list-open{
  width:100%; border:0; background:transparent; padding:18px 4px 14px;
  display:flex; align-items:center; justify-content:space-between;
  font:inherit; font-size:24px; font-weight:800; color:#23384a; cursor:pointer;
}
.member-chat-list-open>span:first-child{display:inline-flex;align-items:center;gap:8px}
.member-chat-list-chevron{font-size:32px;line-height:1;color:#23384a}
.member-chat-list-modal{z-index:10060;background:#fff;padding:0!important;align-items:stretch!important;justify-content:center!important}
.member-chat-list-sheet{width:min(100%,620px)!important;max-width:620px!important;height:100dvh!important;max-height:none!important;border-radius:0!important;margin:0 auto!important;padding:0!important;background:#fff;display:flex;flex-direction:column;overflow:hidden}
.member-chat-list-head{height:68px;min-height:68px;display:grid;grid-template-columns:52px 1fr 52px;align-items:center;border-bottom:1px solid #edf0f2;padding:0 10px;background:#fff}
.member-chat-list-head button{border:0;background:transparent;font-size:31px;line-height:1;padding:6px;cursor:pointer;color:#213445;text-align:left}
.member-chat-list-head h2{margin:0;text-align:center;font-size:23px;color:#111;font-weight:800}
.member-chat-list-search{margin:14px 18px 8px;background:#f1f3f5;border-radius:24px;height:48px;display:flex;align-items:center;padding:0 18px;gap:10px;color:#61717c}
.member-chat-list-search span{font-size:28px;line-height:1}
.member-chat-list-search input{border:0;outline:0;background:transparent;width:100%;font-size:18px;color:#182a38}
.member-chat-list-rows{flex:1;overflow-y:auto;background:#fff;padding-bottom:max(20px,env(safe-area-inset-bottom))}
.member-chat-inbox-row{width:100%;border:0;border-bottom:1px solid #f0f2f4;background:#fff;display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 18px;text-align:left;cursor:pointer;color:#182a38}
.member-chat-inbox-row:active{background:#f7f9fa}
.member-chat-inbox-avatar{width:56px;height:56px;border-radius:50%;background:#e4ebef;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:#566a76;overflow:hidden;flex:none}
.member-chat-inbox-main{min-width:0}
.member-chat-inbox-name-line{display:flex;align-items:center;gap:8px;min-width:0}
.member-chat-inbox-name{font-size:18px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-chat-inbox-preview{margin-top:4px;font-size:16px;color:#647681;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-chat-inbox-preview.no-message{color:#97a5ad}
.member-chat-inbox-meta{align-self:start;display:flex;flex-direction:column;align-items:flex-end;gap:7px;padding-top:2px;min-width:42px}
.member-chat-inbox-time{font-size:14px;color:#6f808a;white-space:nowrap}
.member-chat-inbox-badge{min-width:22px;height:22px;border-radius:11px;background:#ff4d64;color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 6px}
.member-chat-inbox-empty{padding:42px 24px;text-align:center;color:#82929b;font-size:16px}

/* v0.8.192 MEMBER成立カード：予定日時 + 本人専用メモ */
.bondy-member-schedule-head{margin-left:auto;display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.bondy-member-schedule-head b{font-size:13px;color:#34495e;white-space:nowrap}
.bondy-member-schedule-head button{border:0;background:#f3f6f8;color:#536779;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;cursor:pointer}
.active-offer-card-head>.bondy-member-schedule-head+span{margin-left:0}
@media(max-width:480px){.bondy-member-schedule-head{max-width:52%;}.bondy-member-schedule-head b{font-size:12px}.bondy-member-schedule-head button{padding:4px 7px}}


/* v0.8.193 MEMBER成立カード：メモをカード表面に表示 */
.bondy-member-schedule-memo{margin:8px 0 2px;padding:8px 11px;border-radius:10px;background:#f7f9fa;color:#536779;font-size:13px;font-weight:700;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* v0.8.194 USER private offer schedule/memo */
.bondy-user-schedule-head{margin-left:auto;display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.bondy-user-schedule-head b{font-size:13px;color:#34495e;white-space:nowrap}
.bondy-user-schedule-head button{border:0;background:#f3f6f8;color:#536779;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;cursor:pointer}
.active-offer-card-head>.bondy-user-schedule-head+span{margin-left:0}
.bondy-user-schedule-memo{margin:8px 0 2px;padding:8px 11px;border-radius:10px;background:#f7f9fa;color:#536779;font-size:13px;font-weight:700;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:480px){.bondy-user-schedule-head{max-width:52%;}.bondy-user-schedule-head b{font-size:12px}.bondy-user-schedule-head button{padding:4px 7px}}

/* v0.8.195 MEMBER profile photo sections */
.member-current-photo-block{margin:14px 0 12px}
.member-current-photo-block>b{display:block;margin-bottom:8px}
.member-current-photo-preview{width:150px;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:#f1f4f6;border:1px solid #dbe4ea;display:flex;align-items:center;justify-content:center;color:#8a98a5;font-size:13px}
.member-current-photo-preview img{width:100%;height:100%;object-fit:cover;display:block}
.member-public-editor{background:#f4fbff}

/* v0.8.199 限定写真の登録枚数・欠損メタデータ表示 */
.member-private-photo-count{font-weight:800;color:#405568;margin:8px 0 10px;}
.member-private-missing-photo{width:100%;aspect-ratio:1/1;border-radius:14px;background:#eef3f6;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#7d8b96;font-weight:700;padding:8px;box-sizing:border-box;}
.member-private-missing-photo small{font-weight:600;font-size:11px;}

/* v0.8.201 profile photo manager */
.member-profile-photo-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.member-profile-photo-head span{font-size:13px;color:#7b8b98;font-weight:800;white-space:nowrap}
.member-profile-photo-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin:8px 0 8px}
.member-profile-photo-empty{grid-column:1/-1;min-height:90px;border:1px dashed #cfdbe3;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#8a98a5;background:#f7fafb}
.member-profile-photo-item{position:relative;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:#eef2f4;border:1px solid #dbe4ea}
.member-profile-photo-item img{width:100%;height:100%;object-fit:cover;display:block}
.member-profile-photo-item .profile-photo-top-badge{position:absolute;left:6px;top:6px;border-radius:999px;padding:4px 7px;background:rgba(255,255,255,.92);font-size:11px;font-weight:900;color:#1e6c50;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.member-profile-photo-item .profile-photo-delete{position:absolute;right:6px;top:6px;width:27px;height:27px;border:0;border-radius:50%;background:rgba(0,0,0,.68);color:#fff;font-weight:900;line-height:27px;padding:0}
.member-profile-photo-item .profile-photo-order{position:absolute;left:6px;right:6px;bottom:6px;display:flex;justify-content:space-between;gap:6px}
.member-profile-photo-item .profile-photo-order button{flex:1;min-width:0;height:30px;border:0;border-radius:9px;background:rgba(255,255,255,.9);color:#253746;font-weight:900;padding:0}
.member-profile-photo-item .profile-photo-order button:disabled{opacity:.28}

/* v0.8.202 profile interests */
.profile-interest-editor{margin:18px 0;padding:16px;border-radius:20px;background:#f6fafc}.profile-interest-editor>b{display:block;font-size:18px;margin-bottom:3px}.profile-interest-editor>small{display:block;color:#7a8996;margin-bottom:14px}.profile-interest-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.profile-interest-btn{appearance:none;border:1px solid #dbe5eb;background:#fff;border-radius:18px;padding:10px 4px 9px;min-width:0;color:#536574;font-weight:800;cursor:pointer}.profile-interest-btn .interest-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 auto 5px;border-radius:50%;background:#eef2f4;font-size:27px;filter:grayscale(1);opacity:.65}.profile-interest-btn .interest-label{display:block;font-size:12px;white-space:nowrap}.profile-interest-btn.is-selected{border-color:#68d5c4;background:#ecfbf7;color:#153a35;box-shadow:0 0 0 2px rgba(104,213,196,.14)}.profile-interest-btn.is-selected .interest-icon{background:#dff8f1;filter:none;opacity:1;transform:scale(1.04)}.public-profile-interests{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.public-profile-interest{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:#f2f7f8;color:#334b56;font-size:13px;font-weight:800}.public-profile-interest span{font-size:17px}@media(max-width:420px){.profile-interest-grid{gap:7px}.profile-interest-btn{padding:8px 2px}.profile-interest-btn .interest-icon{width:42px;height:42px;font-size:24px}.profile-interest-btn .interest-label{font-size:11px}}

/* v0.8.204 USER profile photos */
.public-user-media{margin:0 0 16px}.public-user-main-photo-btn{display:block;width:100%;border:0;padding:0;background:#eef4f7;border-radius:22px;overflow:hidden;aspect-ratio:1/1;cursor:default}.public-user-detail-photo{width:100%;height:100%;object-fit:cover;display:block}.public-user-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:900;color:#7f93a2;background:linear-gradient(135deg,#edf3f6,#dce8ee)}.public-user-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto}.public-user-thumb{width:68px;height:68px;border:3px solid transparent;border-radius:14px;overflow:hidden;padding:0;background:#eef4f7;flex:0 0 68px}.public-user-thumb.active{border-color:#5cc9c0}.public-user-thumb img{width:100%;height:100%;object-fit:cover;display:block}.public-user-name-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.public-user-name-line h2{margin:2px 0 0}.bondy-chat-avatar{background-size:cover;background-position:center;cursor:pointer}.user-current-photo-block{margin-bottom:14px}
/* v0.8.205 USER限定写真 */
.public-user-private-thumb{position:relative}
.public-user-thumb-lock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:24px;background:rgba(24,31,39,.25);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.public-user-thumb-lock-only{position:static;width:100%;height:100%;background:linear-gradient(135deg,#dfe5e9,#b9c2c9)}
.user-private-empty{grid-column:1/-1;min-height:70px;display:flex;align-items:center;justify-content:center;color:#8393a0;border-radius:12px;background:#f3f7f9}
.private-unlock-empty{padding:14px;border-radius:12px;background:#f5f8fa;color:#7b8b98;font-weight:700;margin-top:10px}


/* v0.8.206 公開プロフィールの興味・趣味を編集画面と同じタイル表示に統一 */
.public-profile-interests{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 18px}.public-profile-interests[hidden]{display:none !important}.public-profile-interest-card{pointer-events:none;cursor:default;width:100%;box-sizing:border-box}.public-profile-interest-card .interest-label{font-size:12px}@media(max-width:420px){.public-profile-interests{gap:7px}}

/* v0.8.218: USER/MEMBER interest tiles - keep edit/public label alignment identical */
.profile-interest-btn,
.public-profile-interest-card{
  text-align:center;
}
.profile-interest-btn .interest-label,
.public-profile-interest-card .interest-label{
  text-align:center;
  width:100%;
}

/* v0.8.221 custom interest icons */
.profile-interest-btn .interest-icon svg{width:38px;height:38px;display:block}.profile-interest-btn.is-selected .interest-icon svg{filter:none}

/* v0.8.224 成立/進行カード：相手TOP画像の丸アイコン */
.bondy-active-counterparty{display:flex;align-items:center;gap:9px;min-width:0}
.bondy-active-counterparty-text{min-width:0}
.bondy-active-avatar{appearance:none;-webkit-appearance:none;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid #dce6ec;border-radius:50%;background:#eef3f6 center/cover no-repeat;color:#607583;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:16px;font-weight:900;cursor:pointer;box-shadow:0 1px 4px rgba(25,55,75,.08)}
.bondy-active-avatar span{display:block;line-height:1}
.bondy-active-avatar.has-photo span{display:none}
.bondy-active-avatar:active{transform:scale(.96);opacity:.82}
@media(max-width:480px){.bondy-active-avatar{flex-basis:42px;width:42px;height:42px}.bondy-active-counterparty{gap:8px}}

/* v0.8.226 MEMBER offer history: USER TOP avatar */
.member-offer-history .offer-sender-name.has-history-avatar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.member-offer-history .offer-card .member-offer-history-user-avatar{appearance:none;-webkit-appearance:none;flex:0 0 42px!important;width:42px!important;min-width:42px!important;max-width:42px!important;height:42px!important;min-height:42px!important;max-height:42px!important;border:1px solid #dce6ec!important;border-radius:50%!important;padding:0!important;margin:0!important;background-color:#eef3f6!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;overflow:hidden;display:inline-flex!important;align-items:center!important;justify-content:center!important;color:var(--ink)!important;font:inherit;font-weight:900;cursor:pointer}
.member-offer-history-user-avatar span{display:block;line-height:1}
.member-offer-history-user-avatar.has-photo span{display:none}


/* v0.8.232: pair-specific offer history inside public profiles */
.public-pair-history{margin:22px 0 8px}.public-pair-history-toggle{width:100%;border:0;border-radius:18px;background:#eef6fb;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;font-size:20px;font-weight:800;color:#24384a;text-align:left}.public-pair-history-toggle span{font-size:26px}.public-pair-history-list{padding-top:12px;display:grid;gap:10px}.public-pair-history-card{border:1px solid #dce7ee;border-radius:16px;background:#fff;padding:14px 16px}.public-pair-history-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.public-pair-history-card-head b{font-size:17px}.public-pair-history-card-head span{background:#f1f4f7;border-radius:999px;padding:5px 9px;font-size:13px;font-weight:700}.public-pair-history-card>small{display:block;margin-top:6px;color:#8295a5}.public-pair-history-schedule,.public-pair-history-memo{margin-top:8px;color:#40586a}.public-pair-history-memo{background:#f7fafc;border-radius:10px;padding:9px 11px;white-space:pre-wrap}

/* v0.8.233 self profile avatar */
.self-profile-heading{display:flex;align-items:center;gap:10px;min-width:0}.self-profile-heading>div{min-width:0}.self-profile-avatar{width:46px;height:46px;min-width:46px;border:1px solid #d8e5ed;border-radius:50%;padding:0;overflow:hidden;background:#f1f6f9 center/cover no-repeat;display:grid;place-items:center;color:#6f8798;font-weight:900;box-shadow:0 2px 7px #cbd9e2}.self-profile-avatar.has-photo span{display:none}


/* v0.8.235 USER discovery filter: 2 equal buttons */
#userApp .member-filter-chips{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
#userApp .member-filter-chip{
  width:100%!important;
}

/* v0.8.239: mode buttons must show press feedback independently of async loading. */
#modeSwitcher button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
#modeSwitcher button:active{background:#fff!important;box-shadow:0 2px 8px #bdd3df!important;transform:scale(.97);}
#modeSwitcher button.mode-pending-0239{background:#fff!important;box-shadow:0 2px 8px #bdd3df!important;}

/* v0.8.256 周辺一斉オファー */
.broadcast-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.broadcast-type-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:14px;border:1px solid #ddd;border-radius:14px;background:#fff}.broadcast-type-card.active{outline:2px solid currentColor}.broadcast-type-card span{font-size:12px;line-height:1.5;opacity:.75}.broadcast-cost-box{margin:14px 0;padding:12px;border-radius:14px;background:rgba(0,0,0,.04)}.broadcast-cost-box>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0}.broadcast-cost-box .total{border-top:1px solid rgba(0,0,0,.1);margin-top:4px;padding-top:10px}.broadcast-warning{font-size:12px;line-height:1.55;margin:10px 0;padding:10px;border-radius:10px;background:rgba(255,170,0,.12)}.broadcast-live-list{display:grid;gap:10px;margin:10px 0}.broadcast-live-card{border:1px solid rgba(0,0,0,.1);border-radius:14px;padding:12px;background:#fff}.broadcast-live-card header{display:flex;justify-content:space-between;gap:8px;align-items:center}.broadcast-live-card .meta{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.broadcast-live-card .meta span{font-size:12px;padding:4px 7px;border-radius:999px;background:rgba(0,0,0,.05)}.broadcast-live-card .actions{display:flex;gap:8px;flex-wrap:wrap}.broadcast-applicant-list{display:grid;gap:10px;margin:12px 0}.broadcast-applicant{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:10px}@media(max-width:640px){.broadcast-type-grid{grid-template-columns:1fr}}

/* v0.8.257 一斉オファー料金 */
.broadcast-admin-rate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:8px}
.broadcast-admin-rate-grid label{min-width:0}
@media(max-width:760px){.broadcast-admin-rate-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.broadcast-admin-rate-grid{grid-template-columns:1fr}}

/* v0.8.263: direct offer requires an explicit duration selection */
.public-member-offer-button:disabled{
  background:#d9dde3 !important;
  color:#8b929c !important;
  border-color:#d9dde3 !important;
  box-shadow:none !important;
  cursor:not-allowed;
  opacity:1;
}

/* v0.8.264 */
.broadcast-applicant-person{display:flex;align-items:center;gap:10px;min-width:0}
.broadcast-applicant-avatar{width:46px;height:46px;min-width:46px;border-radius:50%;background-size:cover;background-position:center;overflow:hidden}
.broadcast-applicant-name{display:flex;flex-direction:column;gap:3px;min-width:0}
.broadcast-applicant-name small{display:block}

/* v0.8.265: keep applicant list behind MEMBER profile, and soften the no-selection action */
#broadcastApplicantsModal{z-index:60}
#publicMemberDetailModal{z-index:80}
#broadcastCloseNoSelection{
  width:100%;
  margin-top:12px;
  border:1px solid #f3c7d6;
  background:linear-gradient(135deg,#fff4f7,#f7f1ff);
  color:#9b5a73;
  border-radius:999px;
  padding:13px 18px;
  font-weight:800;
  box-shadow:0 3px 10px rgba(155,90,115,.08);
}
#broadcastCloseNoSelection::before{content:"↩︎ ";font-weight:900}
#broadcastCloseNoSelection:active{transform:translateY(1px)}


/* v0.8.266: broadcast USER avatar replaces USER profile button */
.broadcast-user-person{display:flex;align-items:center;gap:10px;margin:10px 0;min-width:0}
.broadcast-user-person>b{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.broadcast-user-person>span{font-size:13px;opacity:.78;white-space:nowrap}
.broadcast-user-avatar{width:44px;height:44px;min-width:44px;border-radius:50%;border:2px solid rgba(75,190,220,.35);padding:0;background:#eef8fb center/cover no-repeat;display:grid;place-items:center;overflow:hidden;cursor:pointer}
.broadcast-user-avatar span{font-weight:900;color:#4aaec7}
.broadcast-user-avatar.has-photo span{display:none}

/* v0.8.267: make broadcast USER identity a full-width profile strip */
.broadcast-user-person-wide{width:100%;box-sizing:border-box;border:1px solid #d9e8ee;border-radius:16px;padding:10px 12px;background:#f8fcfe;justify-content:flex-start;text-align:left;cursor:pointer}
.broadcast-user-person-wide:hover{background:#f1fafd}
.broadcast-user-person-wide .broadcast-user-avatar{width:48px;height:48px;min-width:48px;pointer-events:none}
.broadcast-user-person-text{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.broadcast-user-person-text>b{font-size:16px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.broadcast-user-person-text>span{font-size:14px;opacity:.78;white-space:nowrap}
@media(max-width:600px){.broadcast-user-person-wide{padding:9px 10px}.broadcast-user-person-text{gap:7px;flex-wrap:wrap}.broadcast-user-person-text>b{font-size:15px}.broadcast-user-person-text>span{font-size:13px}}

/* v0.8.268: member broadcast apply button spans the card width */
.broadcast-live-card .broadcast-apply-actions{display:block;width:100%;margin-top:12px}
.broadcast-live-card .broadcast-apply-wide{display:block;width:100%;box-sizing:border-box}

/* v0.8.275: keep NEW indication until the broadcast disappears.
   Use a static card glow + blinking NEW badge so periodic list refreshes do not create
   a visible animation-position jump. */
.broadcast-live-card{position:relative;overflow:visible}
.broadcast-live-card.is-broadcast-new{
  border-color:rgba(91,188,241,.62);
  box-shadow:0 0 0 1px rgba(98,217,197,.18),0 0 18px rgba(91,188,241,.18)
}
.broadcast-edge-light{display:none!important}
.broadcast-live-card.is-broadcast-new::after{
  content:"";position:absolute;inset:-2px;border-radius:18px;
  border:2px solid rgba(91,188,241,.28);pointer-events:none;z-index:4
}
.broadcast-new-badge{
  display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;
  padding:0 9px;margin-left:auto;border-radius:999px;font-size:11px;font-weight:900;
  letter-spacing:.08em;color:#fff;background:linear-gradient(135deg,#5bbcf1,#62d9c5);
  box-shadow:0 0 0 3px rgba(91,188,241,.10),0 3px 10px rgba(56,169,199,.26);
  animation:bondyBroadcastNewBlink0275 1.05s ease-in-out infinite
}
@keyframes bondyBroadcastNewBlink0275{
  0%,100%{opacity:1;transform:scale(1);box-shadow:0 0 0 3px rgba(91,188,241,.10),0 3px 10px rgba(56,169,199,.26)}
  50%{opacity:.28;transform:scale(.96);box-shadow:0 0 0 7px rgba(98,217,197,.10),0 0 18px rgba(91,188,241,.42)}
}
@media (prefers-reduced-motion:reduce){.broadcast-new-badge{animation:none}}

/* v0.8.272: visual rank marks; legacy rank keys remain internal for DB/settings compatibility */
.self-profile-avatar-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex:0 0 auto}
.member-rank-mark-under-photo,.public-member-rank-mark,.discovery-card-rank-mark{font-weight:900;line-height:1;letter-spacing:-2px;white-space:nowrap}
.member-rank-mark-under-photo{font-size:16px;min-height:18px;text-align:left;width:100%}
.public-member-rank-mark{font-size:22px;margin:8px 0 5px;text-align:left;padding-left:4px}
.discovery-card-rank-mark{font-size:13px;text-align:left;margin:1px 0 5px;min-height:14px;padding-left:2px}

/* v0.8.276 USER + MEMBER unified directory */
#userApp .discovery-member-card.is-member{border:2px solid #4da3ff;box-shadow:0 0 0 1px rgba(77,163,255,.10)}
#userApp .discovery-member-card.is-user{border-color:#e2eaed}
.public-user-chat-btn-0276{width:100%;margin:8px 0 12px}

/* v0.8.277: unified USER/MEMBER cards restore visible profile name. */
#userApp .discovery-card-name{font-size:14px;font-weight:900;color:#263b47;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 2px;text-align:left}
.admin-location-settings0281{margin:22px 0;padding:18px;border:1px solid #dce7eb;border-radius:16px;background:#f8fbfc}
.admin-location-settings0281 h3{margin:0 0 14px;font-size:17px}
.admin-location-toggle0281{display:flex;align-items:center;gap:8px;font-weight:800;margin-bottom:14px}
.admin-location-toggle0281 input{width:20px;height:20px}
.admin-location-grid0281{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.admin-location-grid0281 label{display:grid;gap:6px;font-size:13px;font-weight:800}
.admin-location-grid0281 input{width:100%;box-sizing:border-box;padding:10px;border:1px solid #cfdde2;border-radius:10px;background:#fff}
.admin-location-note0281{margin:12px 0;color:#66777d;font-size:12px;line-height:1.6}
#locationSettingsMsg0281{margin-top:9px;min-height:18px}
@media(max-width:640px){.admin-location-grid0281{grid-template-columns:1fr}}
.admin-user-location0283{margin:14px 0;padding:16px;border:1px solid #dce8ed;border-radius:14px;background:#fff}
.admin-user-location0283 h3{margin:0 0 12px}
.admin-user-location-map0283{display:block;width:100%;height:260px;border:0;border-radius:12px;background:#eef3f5;margin-bottom:12px}
.admin-location-empty0283{padding:20px;border-radius:12px;background:#f4f7f8;color:#73838b;text-align:center;margin-bottom:12px}
.admin-location-coordinates0283{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.admin-location-coordinates0283 label{display:grid;gap:6px;font-size:13px;font-weight:800}
.admin-location-coordinates0283 input{width:100%;box-sizing:border-box;padding:11px;border:1px solid #cfdde2;border-radius:10px;background:#fff;font:inherit}
.admin-location-meta0283{display:flex;gap:16px;flex-wrap:wrap;margin:11px 0;color:#657780;font-size:12px}
.admin-location-lock0284{display:flex;align-items:center;gap:8px;margin:10px 0 14px;font-size:13px;font-weight:800}
.admin-location-lock0284 input{width:20px;height:20px}
.admin-location-actions0283{display:flex;gap:8px;flex-wrap:wrap}
.admin-location-actions0283 button{min-height:40px}
#adminUserLocationMsg0283{margin-top:8px;min-height:18px}
@media(max-width:640px){.admin-location-coordinates0283{grid-template-columns:1fr}.admin-user-location-map0283{height:220px}}

/* v0.8.289 USER location selector */
.user-location-modal0289{z-index:110}
.user-location-sheet0289{width:min(100%,620px);max-height:94vh}
.user-location-sheet0289 h2{margin:2px 42px 14px 0}
.user-location-status0289{padding:11px 13px;border-radius:12px;background:#eef8fd;color:#39718d;font-weight:900;margin-bottom:12px}
.user-location-status0289.is-manual{background:#eefaf6;color:#278366}
.user-location-status0289.is-admin-locked{background:#fff4ec;color:#ad6439}
.user-location-mode-picker0290{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 12px}.user-location-mode-picker0290 button{border:1px solid #dce7eb;border-radius:12px;background:#fff;padding:12px 6px;font-weight:900;color:#60747f}.user-location-mode-picker0290 button.active{border-color:#5bb7f4;background:linear-gradient(135deg,#eaf7ff,#edfff9);color:#248fbd;box-shadow:0 2px 8px rgba(91,183,244,.18)}
.user-location-mode-panel0290{margin:0 0 12px;padding:13px;border:1px solid #dce8ed;border-radius:13px;background:#f8fbfc}.user-location-mode-panel0290 p{margin:0 0 10px;font-size:12px;line-height:1.6;color:#637985}.user-location-mode-panel0290>.primary{width:100%;margin-top:10px}
.user-location-fake-range0290>div{display:flex;justify-content:space-between;font-weight:900;color:#405965}.user-location-fake-range0290 label{margin:8px 0;font-size:11px;color:#74858d}.user-location-fake-range0290 input[type="range"]{padding:0;border:0;accent-color:#5bb7f4}
.user-location-search0289{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-bottom:10px}
.user-location-search0289 input{margin:0;min-width:0}
.user-location-search0289 button{white-space:nowrap}
.user-location-candidates0289{display:grid;gap:6px;margin:0 0 12px;padding:8px;border:1px solid #dce8ed;border-radius:12px;background:#f8fbfc}
.user-location-candidates0289 button{border:0;border-radius:9px;background:#fff;padding:10px;text-align:left;font-size:12px;line-height:1.45;color:#334b59}
.user-location-search-credit0289{display:block;margin:-4px 0 10px;color:#80919a;font-size:10px}.user-location-search-credit0289 a{color:inherit}
.user-location-map0289{display:block;width:100%;height:250px;border:0;border-radius:13px;background:#eef3f5;margin-bottom:12px}
.user-location-map0289 .leaflet-control-container{font-size:11px}
.bondy-location-pin0290 span{display:block;width:28px;height:28px;border-radius:50% 50% 50% 0;background:#ef5350;border:3px solid #fff;box-shadow:0 3px 9px rgba(0,0,0,.35);transform:rotate(-45deg)}.bondy-location-pin0290 span::after{content:"";display:block;width:8px;height:8px;border-radius:50%;background:#fff;margin:7px}
.user-location-coordinates0289{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.user-location-coordinates0289 label{display:grid;gap:5px;margin:0;font-size:12px;font-weight:800}
.user-location-coordinates0289 input{margin:0}
.user-location-meta0289{margin:10px 0;color:#6c7f89;font-size:12px}
.user-location-help0289{font-size:12px;line-height:1.65;color:#607681;background:#f6f9fa;border-radius:11px;padding:10px 12px}
.user-location-actions0289{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.user-location-actions0289 button{min-height:44px}
.user-location-msg0289{min-height:18px}
.user-location-profile-entry0289{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;padding:12px;border:1px solid #dce8ed;border-radius:12px;background:#f8fbfc}
.user-location-profile-entry0289 button{width:auto;margin:0}
@media(max-width:520px){.user-location-search0289,.user-location-coordinates0289,.user-location-actions0289{grid-template-columns:1fr}.user-location-map0289{height:220px}.user-location-profile-entry0289{align-items:stretch;flex-direction:column}.user-location-profile-entry0289 button{width:100%}}

/* v0.8.303 ADMIN 会員詳細：USER共通登録画像編集 */
.admin-profile-photo-editor0303{margin-top:10px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:14px}
.admin-profile-photo-editor-title0303{font-weight:700;margin-bottom:8px}
.admin-profile-photo-list0303{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.admin-profile-photo-list0303 .member-profile-photo-item{width:104px;min-width:104px}
.admin-profile-photo-list0303 .member-profile-photo-item img{width:104px;height:104px;object-fit:cover;border-radius:12px}
.admin-profile-photo-add0303{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:10px;border:1px solid currentColor;cursor:pointer;font-weight:700}
.admin-profile-photo-msg0303{font-size:12px;margin-top:7px;opacity:.78}

/* v0.8.304 足跡 */
.footprint-panel0304{width:100%;background:#fff;border-radius:18px;overflow:hidden}
.footprint-tabs0304{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #e7edf2}
.footprint-tabs0304 button{appearance:none;border:0;background:#fff;padding:15px 8px 13px;font:inherit;font-weight:800;color:#536574;position:relative}
.footprint-tabs0304 button.active{color:#22323e}
.footprint-tabs0304 button.active:after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:3px;border-radius:3px;background:#35a7e0}
.footprint-period0304{padding:10px 16px 8px;color:#93a1ab;font-size:12px;font-weight:700;background:#fbfdff}
.footprint-list0304{width:100%}
.footprint-row0304{display:flex;align-items:center;gap:13px;padding:13px 16px;border-bottom:1px solid #edf1f4;cursor:pointer;min-height:92px}
.footprint-row0304:last-child{border-bottom:0}
.footprint-row0304>img{width:70px;height:70px;border-radius:16px;object-fit:cover;background:#eef3f6;flex:0 0 70px}
.footprint-info0304{min-width:0;display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:2px}
.footprint-info0304 b{font-size:18px;line-height:1.3;color:#1d2c36;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.footprint-info0304 span{font-size:14px;color:#41515c}
.footprint-info0304 small{font-size:13px;color:#8897a1}
.footprint-delete0304{appearance:none;border:0;background:transparent;color:#1d2c36;font-size:31px;line-height:1;width:44px;height:44px;border-radius:50%;flex:0 0 44px}
.footprint-delete0304:active{background:#edf3f6}
.footprint-loading0304{padding:28px 16px;text-align:center;color:#85949f}
@media(max-width:480px){.footprint-row0304{padding:12px}.footprint-row0304>img{width:66px;height:66px;flex-basis:66px}.footprint-info0304 b{font-size:17px}}

/* v0.8.305 足跡パネルをUSER一覧グリッドの全幅に固定 */
#userApp .member-discovery-grid > .footprint-panel0304,
#userApp .member-discovery-grid > .footprint-loading0304{
  grid-column:1 / -1 !important;
  width:100% !important;
  min-width:0;
}

/* v0.8.306: 足跡に現在位置基準の距離を表示 */
.footprint-info0304 .footprint-distance0306{font-weight:700;color:#3d91b6}

/* v0.8.315: quick gift button above distance on BUDDY discovery cards */
#userApp .discovery-meta-right0315{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-left:auto;flex:0 0 auto}
#userApp .discovery-gift-btn0315{border:1px solid #d7e4ef;background:#fff;border-radius:999px;padding:1px 7px;min-width:0;height:23px;line-height:19px;font-size:11px;font-weight:800;color:#55758f;white-space:nowrap;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.05)}
#userApp .discovery-gift-btn0315:active{transform:scale(.92)}

/* v0.8.316: BUDDY詳細 - お気に入りの上にギフト */
.public-member-side-actions0316{display:flex;flex-direction:column;align-items:stretch;gap:7px;flex:0 0 auto}
.public-member-gift-btn0316{border:1px solid #d9e1e6;background:#fff;border-radius:999px;padding:8px 12px;color:#607482;font-weight:800;white-space:nowrap}

/* v0.8.318 BUDDY feed */
#userApp [data-user-member-tab="feed"]{white-space:nowrap}
#memberDiscoveryGrid>.feed-post0318,#memberDiscoveryGrid>.feed-loading0318{grid-column:1/-1;width:100%}
.buddy-post-launch0318{display:flex;gap:10px;padding:12px 16px;margin:0 auto 12px;max-width:560px}.buddy-post-launch0318 button{flex:1;border:1px solid #b9dff5;background:#fff;border-radius:18px;padding:10px;font-weight:800;color:#168fd3}.buddy-post-launch0318 button:first-child{background:#eaf7ff}
.buddy-post-modal0318 textarea{width:100%;box-sizing:border-box;border:1px solid #d7e2ea;border-radius:12px;padding:12px;font:inherit;resize:vertical}.buddy-post-photo-pick0318{display:block;margin:12px 0;padding:12px;border:1px dashed #9ecfe9;border-radius:12px;text-align:center;font-weight:700;color:#168fd3}.buddy-post-preview0318{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.buddy-post-preview0318 img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.feed-post0318{background:#fff;border:1px solid #e2e9ee;border-radius:16px;overflow:hidden;margin:0 0 14px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.feed-post0318 header{display:flex;align-items:center;gap:10px;padding:12px;cursor:pointer}.feed-post0318 header>div:last-child{display:flex;flex-direction:column}.feed-post0318 header small{color:#8997a1;margin-top:2px}.feed-avatar0318{width:38px;height:38px;border-radius:50%;background:#eaf7ff;color:#168fd3;display:grid;place-items:center;font-weight:900}.feed-body0318{padding:0 12px 12px;line-height:1.55}.feed-images0318{display:grid;gap:2px}.feed-images0318.n1{grid-template-columns:1fr}.feed-images0318.n2,.feed-images0318.n3{grid-template-columns:repeat(2,1fr)}.feed-images0318 img{width:100%;aspect-ratio:1;object-fit:cover}.feed-images0318.n3 img:first-child{grid-row:span 2;height:100%}.feed-post0318 footer{display:flex;justify-content:space-between;padding:10px 12px}.feed-post0318 footer button{border:0;background:transparent;font-weight:800;font-size:15px}.feed-like0318.on{color:#e84b68}.feed-delete0318{color:#c34}.feed-loading0318,.buddy-my-posts0318 .member-empty-state{padding:28px;text-align:center;color:#7b8b96}

/* v0.8.322: BOND nav 5 items in one row / compact BUDDY top gap / post likers */
#userApp .user-member-tabs{grid-template-columns:repeat(5,minmax(0,1fr))!important}
#userApp .user-member-tabs button{padding-left:0!important;padding-right:0!important;font-size:11px!important;min-width:0!important}
#userApp [data-user-member-tab="home"]{font-size:22px!important;line-height:1!important}
#memberApp.phone{margin-top:0!important}
.post-likers-slot0322:empty{display:none}.post-likers-slot0322{padding:0 12px 4px}.post-likers0322{display:flex;align-items:center;gap:8px;min-width:0}.post-liker-avatars0322{display:flex;align-items:center;flex:0 0 auto}.post-liker-avatars0322 button{width:30px;height:30px;border-radius:50%;border:2px solid #fff;background:#eaf7ff;color:#168fd3;padding:0;overflow:hidden;display:grid;place-items:center;font-weight:900;margin-left:-7px}.post-liker-avatars0322 button:first-child{margin-left:0}.post-liker-avatars0322 img{width:100%;height:100%;object-fit:cover;display:block}.post-liker-text0322{border:0;background:transparent;padding:3px 0;color:#344a5a;font-weight:700;text-align:left;white-space:normal;min-width:0}

/* v0.8.324: BOND home icon size only */
#userApp [data-user-member-tab="home"]{font-size:30px!important;line-height:1!important}

/* v0.8.325: restore BUDDY content flow; undo v0.8.322 top-gap override that could place the post launcher under the header */
#memberApp.phone{margin:24px auto!important}
@media(max-width:520px){#memberApp.phone{margin:0 auto!important}}


/* v0.8.327: restore known-working self-post fetch / visible home icon / remove BOND top blank gap */
#userApp [data-user-member-tab="home"]{font-size:27px!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important}
@media(max-width:520px){
  #userApp.phone{padding-top:2px!important}
}

/* v0.8.328: compact BOND profile header spacing only */
#userApp.phone{margin-top:0!important}
#userApp .hero{margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}

/* v0.8.329: requested UI fixes only
   1) BOND detail opened from post liker must stay above My Posts modal.
   2) Home icon is about 2x larger.
   3) Remove only the spare vertical space around the BOND profile header. */
#publicUserDetailModal{z-index:80!important}
#userApp [data-user-member-tab="home"]{
  font-size:54px!important;
  line-height:.72!important;
  overflow:visible!important;
}
#userApp.phone{
  padding-top:4px!important;
}
#userApp .hero{
  margin-top:-2px!important;
  margin-bottom:-8px!important;
  padding-top:0!important;
  padding-bottom:0!important;
  min-height:0!important;
}


/* v0.8.330: home icon 2x again + canonical profile image in feed avatar */
#userApp [data-user-member-tab="home"]{font-size:108px!important;line-height:.36!important;overflow:visible!important}
.feed-avatar0318 img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}


/* v0.8.332: 投稿ヘッダーのBUDDYアイコンを左側プロフィールと同じ正円表示に固定 */
.feed-post0318 header>.feed-avatar0318{
  flex:0 0 38px!important;
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  aspect-ratio:1/1!important;
  border-radius:50%!important;
  overflow:hidden!important;
  padding:0!important;
}
.feed-post0318 header>.feed-avatar0318>img{
  display:block!important;
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  aspect-ratio:1/1!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:50%!important;
  margin:0!important;
  padding:0!important;
}

/* v0.8.333 block */
.bondy-block-btn0333{display:block;margin:18px auto 6px;padding:9px 18px;border:1px solid #d6d6d6;border-radius:999px;background:#fff;color:#777;font-weight:700}
.bondy-block-manage-btn0333{margin-left:8px}
.bondy-block-card0333{max-width:460px;width:calc(100% - 28px);max-height:75vh;overflow:auto;padding:18px}
.bondy-block-head0333{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:18px}.bondy-block-head0333 button{border:0;background:transparent;font-size:26px}
.bondy-block-row0333{display:flex;align-items:center;justify-content:space-between;padding:13px 2px;border-bottom:1px solid #eee}.bondy-block-row0333 button{border:1px solid #ddd;background:#fff;border-radius:999px;padding:6px 14px}


/* v0.8.336: block manager foreground card + chat profile avatars */
#bondyBlockManager0333{
  position:fixed!important;inset:0!important;z-index:10000!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  padding:18px!important;background:rgba(24,51,70,.58)!important;
}
#bondyBlockManager0333[hidden]{display:none!important}
#bondyBlockManager0333 .bondy-block-card0333{
  position:relative!important;z-index:10001!important;
  width:min(100%,460px)!important;max-height:75vh!important;overflow:auto!important;
  margin:0!important;padding:18px!important;background:#fff!important;
  border-radius:20px!important;box-shadow:0 18px 60px rgba(0,0,0,.22)!important;
}
.member-chat-inbox-avatar img{
  display:block!important;width:100%!important;height:100%!important;
  object-fit:cover!important;object-position:center!important;border-radius:50%!important;
}

/* v0.8.344: keep the existing heading and collapse only the white menu below it */
.bondy-mypage-toggle0344{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  cursor:pointer!important;user-select:none!important;
}
.bondy-mypage-arrow0344{margin-left:auto;font-size:14px;color:#1596e8}
.bondy-mypage-created-title0345{
  width:100%;box-sizing:border-box;margin:16px 0 8px;color:#263b4c;
  font-size:22px;font-weight:800;line-height:1.35;
}

/* v0.8.354: direct five-screen footer shown only in BOND/BUDDY mode */
.bondy-fixed-footer0354{
  position:fixed;left:50%;bottom:0;z-index:45;transform:translateX(-50%);
  width:min(100%,480px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  padding:8px 8px calc(7px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(199,209,217,.78);border-radius:24px 24px 0 0;
  background:rgba(255,255,255,.95);box-shadow:0 -8px 28px rgba(35,53,68,.10);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
}
.bondy-fixed-footer0354[hidden]{display:none!important}
.bondy-fixed-footer0354 button{min-width:0;border:0;background:transparent;color:#687887;padding:2px 1px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;font-weight:800;cursor:pointer}
.bondy-fixed-footer0354 button>span{width:29px;height:29px;display:grid;place-items:center}
.bondy-fixed-footer0354 svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.bondy-fixed-footer0354 small{font-size:10px;line-height:1.15}
.bondy-fixed-footer0354 button.active{color:#168fd3}
body.bondy-fixed-footer-visible0354 #userApp,body.bondy-fixed-footer-visible0354 #memberApp{padding-bottom:calc(92px + env(safe-area-inset-bottom))!important}

.bondy-footer-page0354{width:min(100%,480px);min-height:calc(100vh - 78px);margin:0 auto;padding:24px 16px calc(100px + env(safe-area-inset-bottom));box-sizing:border-box;background:#f4fbff;color:#263b4c}
.bondy-footer-page0354[hidden]{display:none!important}
.bondy-footer-page0354>h1{margin:0 0 18px;font-size:27px;line-height:1.25;font-weight:900}
#bondyFooterPageBody0354{display:flex;flex-direction:column;gap:14px}
body.bondy-footer-page-visible0354 #userApp,body.bondy-footer-page-visible0354 #memberApp{display:none!important}
.bondy-footer-empty0354{padding:22px;border-radius:18px;background:#eaf7fd;color:#8193a1;font-weight:700}
.bondy-offer-section0376{margin:0 0 18px;padding:15px;background:#fff;border:1px solid #e2ebf0;border-radius:18px;box-shadow:0 3px 12px rgba(31,75,98,.04)}
.bondy-offer-section0376>h2{margin:0 0 12px;font-size:18px;line-height:1.35;font-weight:900;color:#263b4c}
.bondy-offer-section0376 .active-offer-top{margin:0}
.bondy-offer-section0376 .member-offer-history-toggle{margin:0 0 10px}
.bondy-offer-section0376 .broadcast-offer-btn{margin:0 0 10px}
.bondy-offer-section0376 .broadcast-live-list{margin:10px 0 0}
.bondy-offer-section0376 .bondy-footer-empty0354{padding:16px}
.bondy-footer-page0354 [data-mypage-toggle0344]{display:none!important}
.bondy-footer-page0354 [data-mypage-collapse0344="1"]{display:block!important;width:100%;margin:0!important}
.bondy-footer-page0354 #memberChatListModal.bondy-footer-message-page0354{position:static!important;display:block!important;width:100%!important;height:auto!important;min-height:0!important;background:transparent!important;padding:0!important;inset:auto!important;z-index:auto!important}
.bondy-footer-page0354 #memberChatListModal.bondy-footer-message-page0354>*{width:100%!important;max-width:none!important;min-height:0!important;margin:0!important;box-sizing:border-box}
.bondy-footer-page0354 #memberChatListModal .member-chat-list-head{display:none!important}
.bondy-footer-page0354 #memberChatListModal .member-chat-list-search{margin-top:16px!important}

/* v0.8.368 ポイント購入：金額選択と決済方法を分離 */
.point-purchase-flow0368{display:grid;gap:18px;margin-top:12px}
.point-purchase-step0368{border:1px solid #dce9ef;border-radius:18px;background:#f9fcfe;overflow:hidden}
.point-purchase-step0368>h3{display:flex;align-items:center;gap:9px;margin:0;padding:13px 15px;background:#344653;color:#fff;font-size:15px}
.point-purchase-step0368>h3 span{padding:4px 8px;border-radius:999px;background:#fff;color:#344653;font-size:10px;letter-spacing:.04em}
.point-amount-list0368,.point-payment-list0368{display:grid;gap:9px;padding:12px}
.point-amount-option0368,.point-payment-option0368{position:relative;display:flex;align-items:center;gap:10px;margin:0;padding:13px;border:1.5px solid #dce7ec;border-radius:14px;background:#fff;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.point-amount-option0368.selected0368,.point-payment-option0368.selected0368{border-color:#55b7ef;background:#f0faff;box-shadow:0 0 0 2px #cdeeff inset}
.point-payment-option0368.bank0368.selected0368{border-color:#5bcba9;background:#f0fcf8;box-shadow:0 0 0 2px #d1f4e8 inset}
.point-amount-option0368 input,.point-payment-option0368 input{position:absolute;opacity:0;pointer-events:none}
.point-radio0368{width:20px;height:20px;flex:0 0 20px;border:2px solid #b8c8d1;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 4px #fff}
.selected0368>.point-radio0368{border-color:#279edb;background:#279edb}
.bank0368.selected0368>.point-radio0368{border-color:#35b78e;background:#35b78e}
.point-amount-copy0368,.point-payment-copy0368{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}
.point-amount-copy0368 b,.point-payment-copy0368 b{font-size:14px}
.point-amount-copy0368 small,.point-payment-copy0368 small{color:#6c818d;font-size:10px;line-height:1.45}
.point-amount-option0368>strong{display:flex;max-width:46%;color:#203542;font-size:13px;text-align:right;line-height:1.35;flex-direction:column;gap:3px}
.point-amount-option0368>strong span{display:block;white-space:nowrap}
.point-payment-icon0368{font-size:24px}
.point-purchase-summary0368{padding:15px;border:1px solid #dce9ef;border-radius:18px;background:#fff;box-shadow:0 7px 24px #dcecf577}
.point-purchase-summary0368 h3{margin:0 0 8px;font-size:16px}
.point-purchase-summary0368>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #edf2f4;font-size:12px}
.point-purchase-summary0368>div span{color:#6e818d}
.point-purchase-summary0368>div.total0368{margin-top:4px;border-bottom:0;font-size:14px}
.point-purchase-summary0368>div.points0368{border-bottom:0;color:#168ec7;font-size:14px}
.point-purchase-summary0368>div strong{font-size:19px}
#confirmPointPurchase0368{width:100%;margin-top:11px;padding:14px}
#confirmPointPurchase0368:disabled{background:#d9e3e8;color:#7c8e98}
@media(max-width:390px){
  .point-amount-option0368{align-items:flex-start;flex-wrap:wrap}
  .point-amount-option0368>strong{width:100%;max-width:none;padding-left:30px;text-align:left;font-size:11px}
}

/* v0.8.373: footer search uses the exact same member-card typography and gift UI as Home */
.bondy-footer-page0354 .discovery-body-compact{padding:7px 9px 8px;background:#fff}
.bondy-footer-page0354 .discovery-member-card.is-member{border:2px solid #4da3ff;box-shadow:0 0 0 1px rgba(77,163,255,.10)}
.bondy-footer-page0354 .discovery-member-card.is-user{border-color:#e2eaed}
.bondy-footer-page0354 .discovery-card-name{font-size:14px;font-weight:900;color:#263b47;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 2px;text-align:left}
.bondy-footer-page0354 .discovery-quick-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px;color:#536773;font-size:12px;font-weight:800;line-height:1.2}
.bondy-footer-page0354 .discovery-last-seen{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bondy-footer-page0354 .discovery-meta-right0315{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-left:auto;flex:0 0 auto}
.bondy-footer-page0354 .discovery-gift-btn0315{border:1px solid #d7e4ef;background:#fff;border-radius:999px;padding:1px 7px;min-width:0;height:23px;line-height:19px;font-size:11px;font-weight:800;color:#55758f;white-space:nowrap;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.bondy-footer-page0354 .discovery-gift-btn0315:active{transform:scale(.92)}
.bondy-footer-page0354 .discovery-distance{flex:0 0 auto;color:#344b58;font-weight:900}
.bondy-footer-page0354 .discovery-distance.is-empty{color:#9aa9b0}

/* v0.8.373: aligned bank-transfer confirmation (replaces browser confirm) */
.bank-confirm-overlay0373{position:fixed;inset:0;z-index:30000;display:grid;place-items:center;padding:20px;background:rgba(20,34,44,.62);box-sizing:border-box}
.bank-confirm-panel0373{width:min(100%,430px);box-sizing:border-box;padding:24px;border-radius:24px;background:#fff;color:#30495c;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.bank-confirm-panel0373 h2{margin:0 0 18px;font-size:21px;line-height:1.4}
.bank-confirm-details0373{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:22px;row-gap:10px;padding:16px;border-radius:16px;background:#f4faff}
.bank-confirm-details0373 span{font-size:15px;color:#5d7282}
.bank-confirm-details0373 strong{text-align:right;font-size:17px;color:#273f50;font-variant-numeric:tabular-nums;white-space:nowrap}
.bank-confirm-panel0373 p{margin:17px 0;color:#5d7282;font-size:14px;line-height:1.6}
.bank-confirm-actions0373{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.bank-confirm-actions0373 button{min-height:48px;border:1px solid #cfe0e9;border-radius:14px;background:#fff;color:#39718f;font:inherit;font-weight:800;cursor:pointer}
.bank-confirm-actions0373 .primary0373{border:0;background:linear-gradient(90deg,#49b1ed,#58d1b2);color:#fff}

/* v0.8.374: footer duplicates are hidden from the main BOND/BUDDY screens */
#userApp [data-user-member-tab="home"],
.bondy-footer-page0354 [data-user-member-tab="home"]{display:none!important}
#userApp .user-member-tabs,
.bondy-footer-page0354 .user-member-tabs{grid-template-columns:repeat(4,minmax(0,1fr))!important}
body.bondy-fixed-footer-visible0354 #userApp [data-mypage-toggle0344],
body.bondy-fixed-footer-visible0354 #memberApp [data-mypage-toggle0344]{display:none!important}

/* v0.8.376: offer controls live only in the dedicated footer page. */
body.bondy-fixed-footer-visible0354 #userApp #userActiveOfferTop,
body.bondy-fixed-footer-visible0354 #userApp #userOfferHistoryToggle,
body.bondy-fixed-footer-visible0354 #userApp #userOfferHistory,
body.bondy-fixed-footer-visible0354 #userApp #broadcastOfferBtn,
body.bondy-fixed-footer-visible0354 #userApp #userBroadcastOffers,
body.bondy-fixed-footer-visible0354 #memberApp #memberActiveOfferTop,
body.bondy-fixed-footer-visible0354 #memberApp #memberIncomingOffers,
body.bondy-fixed-footer-visible0354 #memberApp #memberOfferHistoryToggle,
body.bondy-fixed-footer-visible0354 #memberApp #memberOfferHistory,
body.bondy-fixed-footer-visible0354 #memberApp #memberBroadcastHeading,
body.bondy-fixed-footer-visible0354 #memberApp #memberBroadcastOffers{display:none!important}

/* v0.8.374: coordinates remain functional internally, but are not shown to BOND/BUDDY */
.user-location-modal0289 .user-location-coordinates0289{display:none!important}

/* v0.8.375: keep the Search directory identical on PC and mobile */
.bondy-footer-page0354 #memberDiscoveryGrid,
.bondy-footer-page0354 .member-discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}

/* v0.8.375: Location is a normal full page, not a centered/bottom popup */
.user-location-modal0289{
  position:fixed!important;inset:0!important;display:block!important;
  overflow-x:hidden!important;overflow-y:auto!important;padding:0!important;
  background:#f4fbff!important;z-index:110!important;
}
.user-location-modal0289[hidden]{display:none!important}
.user-location-modal0289 .user-location-sheet0289{
  width:min(100%,480px)!important;min-height:100dvh!important;max-height:none!important;
  margin:0 auto!important;padding:28px 18px calc(110px + env(safe-area-inset-bottom))!important;
  border-radius:0!important;overflow:visible!important;background:#f4fbff!important;
  box-shadow:none!important;box-sizing:border-box!important;
}
.user-location-modal0289 .user-location-sheet0289>h2{font-size:27px!important;margin-bottom:22px!important}

/* v0.8.377: Wallet is available only from the fixed footer. */
body.bondy-fixed-footer-visible0354 #userApp [data-wallet-heading0377="1"],
body.bondy-fixed-footer-visible0354 #memberApp [data-wallet-heading0377="1"],
body.bondy-fixed-footer-visible0354 #userApp .wallet-grid,
body.bondy-fixed-footer-visible0354 #memberApp .wallet-grid,
body.bondy-fixed-footer-visible0354 #userApp [data-wallet-total0377="1"],
body.bondy-fixed-footer-visible0354 #memberApp [data-wallet-total0377="1"]{display:none!important}

.bondy-footer-page0354[data-page="wallet"] .wallet-grid{display:grid!important;width:100%;gap:12px}
.bondy-footer-page0354[data-page="wallet"] .wallet-grid>div{box-shadow:0 5px 20px #dcecf5}
.bondy-footer-page0354[data-page="wallet"] [data-wallet-total0377="1"]{display:flex!important;width:100%;margin:0!important}

/* v0.8.377: Chat and system notices share one inbox without mixing content. */
.bondy-message-tabs0377{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border-radius:15px;background:#e8f2f8}
.bondy-message-tabs0377 button{min-height:44px;border:0;border-radius:12px;background:transparent;color:#637988;font:inherit;font-size:14px;font-weight:900;cursor:pointer}
.bondy-message-tabs0377 button.active{background:#fff;color:#168fd3;box-shadow:0 2px 8px rgba(42,85,108,.12)}
.bondy-message-panel0377{width:100%;min-width:0}
.bondy-message-panel0377[hidden]{display:none!important}
.bondy-message-panel0377 .bondy-footer-message-page0354{margin:0!important}
.bondy-notice-list0377{display:grid;gap:10px}
.bondy-notice-card0377{padding:15px;border:1px solid #dce9ef;border-left:5px solid #55b7ef;border-radius:15px;background:#fff;box-shadow:0 4px 14px rgba(31,75,98,.05)}
.bondy-notice-card0377>div{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.bondy-notice-card0377 b{font-size:14px;color:#263b4c}
.bondy-notice-card0377 time{flex:0 0 auto;color:#8698a4;font-size:10px}
.bondy-notice-card0377 p{margin:7px 0 0;color:#59707f;font-size:12px;line-height:1.65;white-space:pre-wrap}
.bondy-notice-card0377.success{border-left-color:#54c3a1}
.bondy-notice-card0377.pending{border-left-color:#f0b04e}
.bondy-notice-card0377.attention{border-left-color:#ef7777}

/* v0.8.379: keep every footer destination on the same canvas as BOND Home. */
html{scrollbar-gutter:stable}
.bondy-footer-page0354{
  width:min(100%,480px)!important;
  max-width:480px!important;
  margin:0 auto!important;
  padding:4px 18px calc(100px + env(safe-area-inset-bottom))!important;
}
@media(max-width:520px){
  .bondy-footer-page0354{
    padding:4px 16px calc(100px + env(safe-area-inset-bottom))!important;
  }
}

/* v0.8.380: Messages are opened from the footer, so remove the duplicate BUDDY Home row. */
body.bondy-fixed-footer-visible0354 #memberApp #memberChatListOpen,
body.bondy-fixed-footer-visible0354 #memberApp .member-chat-list-open{display:none!important}

/* v0.8.380: BUDDY composer and My Posts are normal full pages, not dimmed popups. */
.bondy-footer-page0354[data-page="buddy-post"],
.bondy-footer-page0354[data-page="my-buddy-posts"]{min-height:calc(100dvh - 58px)}
.bondy-footer-page0354 .bondy-post-page0380{
  position:static!important;
  inset:auto!important;
  z-index:auto!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  background:transparent!important;
}
.bondy-footer-page0354 .bondy-post-page0380>.modal-card{
  position:relative!important;
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:10px 0 20px!important;
  border-radius:0!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
}
.bondy-footer-page0354 .bondy-post-page0380>.modal-card>h2{display:none!important}
.bondy-footer-page0354 .bondy-post-page0380 .x{top:0!important;right:0!important;z-index:2}
.bondy-footer-page0354 .buddy-post-modal0318 textarea{min-height:180px;background:#fff}
.bondy-footer-page0354 .buddy-post-modal0318 #sendBuddyPost0318{width:100%;min-height:52px;margin-top:14px}
.bondy-footer-page0354 .buddy-my-posts0318 #myBuddyPostsRows0318{display:grid;gap:14px;padding-top:4px}

/* v0.8.381: conversation width matches Home on PC; gift activity is visible in the footer. */
#bondyChatModal.bondy-chat-fullscreen-modal .bondy-chat-sheet{
  width:min(100%,480px)!important;
  max-width:480px!important;
  margin:0 auto!important;
}
.bondy-fixed-footer0354 [data-footer0354="message"]{position:relative}
.bondy-footer-message-badge0381{
  position:absolute;top:-4px;left:calc(50% + 8px);z-index:2;
  display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;
  border:2px solid #fff;border-radius:999px;background:#ff405b;color:#fff;
  box-sizing:border-box;font-style:normal;font-size:9px;font-weight:900;line-height:1;
  box-shadow:0 2px 7px rgba(180,30,55,.28);
}
.bondy-footer-message-badge0381[hidden]{display:none!important}
