/* KNQD 8.2.7.0 / 8270 - Hồ sơ công khai và Bạn bè hoàn chỉnh */
:root{--bg:#f6f8fb;--card:#fff;--text:#14213d;--muted:#63718a;--line:#e5e9f2;--brand:#1677ff;--brand2:#00a676;--danger:#e5484d;--warn:#f59e0b;--shadow:0 14px 36px rgba(20,33,61,.09);--r:20px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{max-width:720px;margin:0 auto;min-height:100vh;padding:12px 12px 110px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(246,248,251,.88);backdrop-filter:blur(16px);padding:10px 0}.brand{font-size:20px;font-weight:900;letter-spacing:-.02em}.subbrand{font-size:12px;color:var(--muted);margin-top:2px}.screen,.view,.form{display:none}.screen.active,.view.active,.form.active{display:block}.hero-card{background:linear-gradient(135deg,#1677ff,#00a676);color:#fff;border-radius:28px;padding:26px;box-shadow:var(--shadow);margin:8px 0 14px}.hero-card h1{margin:14px 0 8px;font-size:30px;line-height:1.05}.hero-card p{margin:0;color:rgba(255,255,255,.86)}.logo-dot{width:54px;height:54px;border-radius:18px;background:rgba(255,255,255,.18);display:grid;place-items:center;font-size:28px;font-weight:900;border:1px solid rgba(255,255,255,.25)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);margin:12px 0}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#eef3fb;border-radius:16px;padding:6px;margin-bottom:12px}.tab{border:0;border-radius:12px;padding:11px;background:transparent;color:var(--muted);font-weight:800}.tab.active{background:#fff;color:var(--brand);box-shadow:0 6px 20px rgba(20,33,61,.08)}label{display:block;margin:12px 0 6px;font-size:13px;font-weight:800;color:#33445f}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:13px 14px;outline:none;color:var(--text)}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(22,119,255,.12)}textarea{resize:vertical}.primary,.sendbar button,.inline-form button{width:100%;border:0;border-radius:15px;background:var(--brand);color:#fff;font-weight:900;padding:13px 15px;margin-top:14px;box-shadow:0 10px 22px rgba(22,119,255,.22)}.pill{border:1px solid var(--line);background:#fff;color:var(--brand);border-radius:999px;padding:9px 12px;font-size:13px;font-weight:900}.pill.ghost{color:var(--muted)}.pill.danger{color:var(--danger)}.muted{color:var(--muted);font-weight:500}.terms-box{max-height:150px;overflow:auto;border:1px solid var(--line);border-radius:16px;background:#f9fbff;padding:12px;margin-top:12px}.terms-box h3{margin:0 0 8px}.terms-box p{font-size:13px;color:#44546d}.checkline{display:flex;gap:10px;align-items:flex-start;font-weight:700;color:#30425c}.checkline input{width:auto;margin-top:2px}.quick-grid{position:sticky;top:62px;z-index:15;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;background:rgba(246,248,251,.9);backdrop-filter:blur(16px);padding:8px 0 12px}.quick{border:1px solid var(--line);background:#fff;border-radius:16px;padding:10px 4px;font-size:12px;font-weight:900;color:#53647c}.quick.active{background:var(--brand);color:#fff;border-color:var(--brand)}.quick.hide{display:none}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin:8px 0 12px}.section-head h2{margin:0;font-size:22px}.section-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.search{margin-bottom:12px}.list{display:grid;gap:10px}.item{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 8px 26px rgba(20,33,61,.05)}.item-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.item h3{margin:0;font-size:16px}.item p{margin:5px 0 0;color:var(--muted);font-size:13px}.item-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.mini{border:1px solid var(--line);background:#f8fbff;border-radius:12px;padding:9px 10px;font-size:13px;font-weight:800;color:#1d4ed8}.mini.green{color:#078552}.mini.red{color:#c7353a}.badge{display:inline-flex;align-items:center;border-radius:999px;background:#eef6ff;color:#1d4ed8;font-size:11px;font-weight:900;padding:5px 8px}.badge.green{background:#e9fbf2;color:#087d48}.badge.warn{background:#fff7df;color:#9a6300}.wallet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.wallet-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 8px 26px rgba(20,33,61,.05)}.wallet-card b{font-size:20px}.wallet-card span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.inline-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.inline-form button{width:auto;margin-top:0}.chat-panel{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(720px,100%);height:min(78vh,720px);z-index:40;background:#fff;border:1px solid var(--line);border-radius:26px 26px 0 0;box-shadow:0 -18px 50px rgba(20,33,61,.18);display:flex;flex-direction:column;overflow:hidden}.chat-panel.hide{display:none}.chat-head{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px}.chat-head small{display:block;color:var(--muted);font-size:12px}.messages{flex:1;overflow:auto;background:#f7f9fd;padding:14px;display:flex;flex-direction:column;gap:9px}.msg{max-width:82%;border-radius:17px;padding:10px 12px;background:#fff;border:1px solid var(--line);align-self:flex-start}.msg.me{background:#1677ff;color:#fff;border-color:#1677ff;align-self:flex-end}.msg small{display:block;opacity:.72;margin-top:4px;font-size:11px}.sendbar{display:grid;grid-template-columns:1fr auto;gap:8px;border-top:1px solid var(--line);padding:10px;background:#fff}.sendbar button{width:auto;margin:0}.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%) translateY(20px);background:#14213d;color:#fff;border-radius:999px;padding:11px 15px;z-index:80;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s;max-width:92%;font-size:13px}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.hide{display:none!important}.debug-dock{position:fixed;right:10px;bottom:10px;z-index:100;display:flex;flex-direction:column;gap:6px}.debug-dock button{border:0;border-radius:12px;background:#111827;color:#fff;font-size:11px;font-weight:800;padding:8px 10px;box-shadow:0 8px 24px rgba(0,0,0,.16)}.debug-panel{position:fixed;left:8px;right:8px;bottom:94px;z-index:99;max-height:55vh;overflow:auto;background:#0b1020;color:#d6e4ff;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:12px;font-size:11px;line-height:1.45;box-shadow:0 20px 48px rgba(0,0,0,.28);display:none;white-space:pre-wrap}.debug-panel.open{display:block}@media(max-width:520px){.app-shell{padding-left:10px;padding-right:10px}.hero-card h1{font-size:25px}.quick-grid{grid-template-columns:repeat(5,1fr);gap:6px}.quick{font-size:11px;padding:9px 2px}.wallet-grid{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.inline-form button{width:100%;margin-top:8px}.section-head{align-items:flex-start}.debug-dock{left:8px;right:8px;bottom:8px;display:grid;grid-template-columns:1fr 1.4fr 1fr}.debug-dock button{font-size:10px;padding:8px 4px}}

/* KNQD 8.0.18.1 - Cache deploy single-open patch */
.profile-status{margin-bottom:12px}
.status-stack{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;background:#eef2ff;color:#1e3a8a}
.badge.green{background:#dcfce7;color:#166534}
.badge.warn{background:#fef3c7;color:#92400e}
.progress{height:8px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin:10px 0}
.progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1677ff,#11a37f)}
.profile-hint{margin:-6px 0 8px 0}

.search-box{margin-top:10px}
.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}
.filter-grid label{margin:4px 0 0}
.filter-actions{display:flex;align-items:end;justify-content:flex-end}
.search-summary{font-size:13px;margin-top:10px}
.match-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.match-score{background:#eef6ff;color:#1759c9;border-radius:999px;font-size:12px;font-weight:900;padding:5px 8px}
.match-score.good{background:#e9fbf2;color:#087d48}
.match-score.warn{background:#fff7df;color:#9a6300}
.card-line{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}
@media(max-width:520px){.filter-grid{grid-template-columns:1fr}.filter-actions{justify-content:stretch}.filter-actions .pill{width:100%}}

.module-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.module-title h3{margin:0}.needs-form .filter-grid{margin-top:8px}.compact-card{box-shadow:none}.filter-actions{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.filter-actions .pill{min-width:110px}.status-stack{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.match-row{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.match-score{display:inline-flex;align-items:center;border-radius:999px;background:#eef6ff;color:#1d4ed8;font-size:11px;font-weight:900;padding:5px 8px}.match-score.good{background:#e9fbf2;color:#087d48}.match-score.warn{background:#fff7df;color:#9a6300}.search-summary{margin:8px 0 0}.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.filter-grid label{margin:0}.filter-grid input,.filter-grid select{margin-top:6px}@media(max-width:640px){.filter-grid{grid-template-columns:1fr}.filter-actions .pill{width:100%}}

.withdraw-form{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.withdraw-form .primary{grid-column:1/-1}.withdraw-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900}.withdraw-status.pending{background:#fff7df;color:#9a6300}.withdraw-status.approved{background:#eef6ff;color:#1d4ed8}.withdraw-status.paid{background:#e9fbf2;color:#087d48}.withdraw-status.rejected,.withdraw-status.cancelled{background:#fff0f0;color:#b4232c}.bank-detail{word-break:break-word}.mini.danger{color:var(--danger)}@media(max-width:520px){.withdraw-form{grid-template-columns:1fr}}

/* KNQD 8.0.10.1 - Ví gọn + nút quy đổi phản hồi rõ */
.badge.danger{background:#fff0f0;color:#b4232c}
.wallet-convert-card{padding:14px}
.wallet-rate{font-size:12px;margin:2px 0 10px}
.wallet-convert-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#eef3fb;border-radius:14px;padding:5px}
.wallet-convert-tab{border:0;border-radius:10px;background:transparent;color:#596b84;font-size:12px;font-weight:900;padding:9px 6px}
.wallet-convert-tab.active{background:#fff;color:var(--brand);box-shadow:0 5px 15px rgba(20,33,61,.08)}
.wallet-convert-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:6px}
.wallet-convert-form label{margin:0}
.wallet-convert-form input{margin-top:6px}
.wallet-convert-form .primary{width:auto;min-width:132px;margin:0;padding:13px 14px}
#btnWalletVerifyNow{margin-top:8px}
.verification-card{padding:14px}
.verification-card p{margin:6px 0 0}
.compact-primary{margin-top:10px;padding:11px 13px}
.compact-details{padding:0;overflow:hidden}
.compact-details summary{cursor:pointer;list-style:none;padding:14px 16px;font-weight:900}
.compact-details summary::-webkit-details-marker{display:none}
.compact-details summary::after{content:'Mở';float:right;color:var(--brand);font-size:12px}
.compact-details[open] summary::after{content:'Đóng'}
.compact-ledger{padding:0 12px 12px}
.compact-ledger-item{padding:11px 12px}
.compact-ledger-item h3{font-size:14px}
.compact-ledger-item p{font-size:12px;margin-top:3px}
@media(max-width:520px){
  #viewWallet .wallet-grid{grid-template-columns:repeat(3,1fr);gap:6px}
  #viewWallet .wallet-card{padding:10px 8px;border-radius:14px;text-align:center}
  #viewWallet .wallet-card b{font-size:16px}
  .wallet-convert-tabs{gap:4px}
  .wallet-convert-tab{font-size:11px;padding:8px 3px}
  .wallet-convert-form{grid-template-columns:1fr auto}
  .wallet-convert-form .primary{width:auto;min-width:112px;margin:0;font-size:12px;padding:13px 10px}
}

.wallet-convert-selection{margin-top:8px;font-size:13px;font-weight:900;color:var(--brand)}
.wallet-verify-callout{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:10px 12px;border:1px solid #f4d58d;border-radius:12px;background:#fff9e8;color:#7a5200;font-size:12px;font-weight:800}
.wallet-verify-callout .mini{flex:0 0 auto;margin:0}
.wallet-convert-message{min-height:20px;margin-top:8px;font-size:12px;font-weight:800;color:#667085}
.wallet-convert-message.info{color:#1759c9}
.wallet-convert-message.success{color:#087d48}
.wallet-convert-message.error{color:var(--danger)}
.wallet-convert-tab{transition:transform .12s ease,background .12s ease,box-shadow .12s ease,color .12s ease}
.wallet-convert-tab:active{transform:scale(.98)}
.wallet-convert-tab.active{outline:2px solid rgba(22,119,255,.18)}
.wallet-convert-form.hide{display:none!important}
.wallet-verify-callout.hide{display:none!important}
@media(max-width:520px){
  .wallet-verify-callout{align-items:flex-start;flex-direction:column}
  .wallet-verify-callout .mini{width:100%}
}

/* KNQD 8.0.10.1 - Tách bản chuẩn và bản debug */
[hidden]{display:none!important}
html:not(.knqd-debug-mode) .debug-dock,html:not(.knqd-debug-mode) .debug-panel{display:none!important}


/* KNQD 8.0.11.1 - Menu 3 gạch + thanh điều hướng chân màn hình */
body.menu-open{overflow:hidden}
.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}
.hamburger{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:14px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 10px;box-shadow:0 8px 26px rgba(20,33,61,.06);flex:0 0 auto}
.hamburger-line{display:block;height:2px;border-radius:999px;background:#33445f;width:100%}
.menu-overlay{position:fixed;inset:0;background:rgba(15,23,42,.34);z-index:44}
.side-menu{position:fixed;left:10px;top:10px;bottom:10px;width:min(320px,calc(100vw - 20px));background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:0 30px 80px rgba(20,33,61,.2);z-index:45;padding:16px;display:flex;flex-direction:column;gap:14px}
.side-menu-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.side-brand{font-size:18px}
.side-menu-links{display:flex;flex-direction:column;gap:10px}
.side-link{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px 15px;font-size:15px;font-weight:900;color:#25364e;box-shadow:0 8px 24px rgba(20,33,61,.05)}
.side-link.danger{color:var(--danger)}
#screenHome{padding-bottom:86px}
.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(720px,100%);display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(246,248,251,.96);backdrop-filter:blur(18px);border-top:1px solid rgba(229,233,242,.95);z-index:30}
.bottom-nav .quick{border:1px solid var(--line);background:#fff;border-radius:18px;padding:12px 6px;font-size:13px;font-weight:900;color:#53647c;box-shadow:0 8px 24px rgba(20,33,61,.05)}
.bottom-nav .quick.active{background:var(--brand);color:#fff;border-color:var(--brand)}
@media(max-width:520px){
  .bottom-nav{padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:6px}
  .bottom-nav .quick{font-size:12px;padding:11px 4px}
  .side-menu{left:8px;right:8px;top:8px;bottom:auto;width:auto;max-height:calc(100vh - 16px);overflow:auto}
}

/* KNQD 8.0.12.2 - Giao diện Tin nhắn, badge chưa đọc, tự cập nhật */
.messages-view{padding-top:2px}
.message-list{margin-top:2px}
.message-item{padding:13px 14px}
.message-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.message-main{min-width:0;flex:1}
.message-title-line{display:flex;align-items:center;gap:8px;justify-content:space-between}
.message-title-line h3{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.message-meta{font-size:12px;margin:4px 0 0;color:var(--muted)}
.message-last{font-size:13px;margin:4px 0 0;color:#41516a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.message-open{flex:0 0 auto;white-space:nowrap}
.message-unread,.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:950;padding:0 7px;line-height:1}
.message-item.has-unread{border-color:rgba(229,72,77,.28);box-shadow:0 10px 28px rgba(229,72,77,.08)}
.message-item.has-unread .message-last{font-weight:900;color:#1f2d45}
.nav-message-btn{position:relative;display:flex!important;align-items:center;justify-content:center;gap:6px}
.nav-badge{position:absolute;right:14px;top:5px;min-width:18px;height:18px;font-size:10px;padding:0 5px;border:2px solid #fff}
.message-empty{text-align:center;color:var(--muted)}
@media(max-width:520px){
  .message-row{align-items:flex-start}
  .message-open{padding:8px 9px;font-size:12px}
  .nav-badge{right:10px;top:4px}
}


/* KNQD 8.0.12.2 - Thẻ Tin nhắn gọn 1 dòng, bấm cả thẻ để mở */
.message-list{gap:7px;margin-top:0}
.message-item.message-one-line{width:100%;border:1px solid var(--line);background:#fff;text-align:left;display:grid;grid-template-columns:minmax(88px,1.05fr) minmax(72px,.9fr) minmax(0,2.1fr) auto auto;align-items:center;gap:8px;padding:10px 12px;border-radius:15px;box-shadow:0 7px 20px rgba(20,33,61,.045);min-height:46px;color:var(--text)}
.message-item.message-one-line:hover{border-color:rgba(22,119,255,.28);box-shadow:0 10px 26px rgba(20,33,61,.07)}
.message-item.message-one-line.has-unread{border-color:rgba(229,72,77,.28);box-shadow:0 10px 26px rgba(229,72,77,.08)}
.message-name,.message-place,.message-last,.message-time{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}
.message-name{font-size:14px;font-weight:950;color:var(--text)}
.message-place{font-size:12px;font-weight:750;color:var(--muted)}
.message-last{font-size:13px;font-weight:650;color:#41516a}
.message-item.has-unread .message-last,.message-item.has-unread .message-name{font-weight:950;color:#1f2d45}
.message-time{font-size:11px;color:var(--muted);justify-self:end}
.message-unread,.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:21px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:950;padding:0 7px;line-height:1;justify-self:end}
.message-open,.message-row,.message-title-line,.message-main{display:none!important}
@media(max-width:520px){.message-item.message-one-line{grid-template-columns:minmax(80px,1fr) minmax(0,1.9fr) auto;gap:7px;padding:9px 10px;min-height:42px}.message-place,.message-time{display:none}.message-name{font-size:13px}.message-last{font-size:12px}.message-unread{min-width:20px;height:20px;font-size:10px;padding:0 6px}}

/* 8.0.12.5 - Tin nhắn một dòng: thẻ là nút, không còn nút Mở chat trong danh sách */
#viewChat .item-actions,#viewChat .message-open{display:none!important}
#viewChat .item:not(.message-one-line):has([data-open-chat]){display:none!important}
.message-list{gap:6px;margin-top:0}
.message-item.message-one-line{width:100%;border:1px solid var(--line);background:#fff;text-align:left;display:grid;grid-template-columns:minmax(92px,1fr) minmax(70px,.8fr) minmax(0,2fr) auto auto;align-items:center;gap:8px;padding:8px 10px;border-radius:14px;box-shadow:0 5px 16px rgba(20,33,61,.04);min-height:40px;color:var(--text)}
.message-item.message-one-line:active{transform:scale(.995)}
.message-name,.message-place,.message-last,.message-time{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}
.message-name{font-size:13px;font-weight:950;color:var(--text)}
.message-place{font-size:11px;font-weight:750;color:var(--muted)}
.message-last{font-size:12px;font-weight:650;color:#41516a}
.message-time{font-size:10px;color:var(--muted);justify-self:end}
.message-unread,.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:950;padding:0 6px;line-height:1;justify-self:end}
.message-item.message-one-line.has-unread{border-color:rgba(229,72,77,.3);box-shadow:0 7px 20px rgba(229,72,77,.08)}
.message-item.message-one-line.has-unread .message-name,.message-item.message-one-line.has-unread .message-last{font-weight:950;color:#1f2d45}
@media(max-width:520px){.message-item.message-one-line{grid-template-columns:minmax(72px,.9fr) minmax(0,1.8fr) auto;gap:6px;padding:8px 9px;min-height:38px}.message-place,.message-time{display:none}.message-name{font-size:12px}.message-last{font-size:12px}.message-unread{min-width:19px;height:19px;font-size:10px;padding:0 6px}}



/* KNQD 8.0.12.5 - Mobile-first toàn hệ thống: máy tính hiển thị như điện thoại, nền xanh nhạt */
:root{
  --bg:#eaf7ff;
  --page-bg:#dff3ff;
  --card:#ffffff;
  --soft-card:#f8fcff;
  --line:#d8e8f7;
  --shadow:0 10px 28px rgba(30,85,140,.07);
}
html,body{
  background:linear-gradient(180deg,#dff3ff 0%,#eef9ff 52%,#eaf7ff 100%)!important;
}
body{min-height:100vh;}
.app-shell{
  width:min(100%,480px)!important;
  max-width:480px!important;
  margin:0 auto!important;
  min-height:100vh;
  background:rgba(246,252,255,.94)!important;
  box-shadow:0 0 0 1px rgba(216,232,247,.9),0 18px 60px rgba(31,85,140,.08);
  padding:10px 10px 96px!important;
}
.topbar{
  background:rgba(246,252,255,.93)!important;
  padding:8px 0!important;
}
.brand{font-size:17px!important;line-height:1.12;}
.subbrand{font-size:10px!important;line-height:1.2;}
.hamburger{width:34px!important;height:34px!important;border-radius:12px!important;box-shadow:0 4px 16px rgba(30,85,140,.08)!important;}
.card,.item,.wallet-card,.auth-card{
  background:rgba(255,255,255,.92)!important;
  border-color:var(--line)!important;
  box-shadow:0 6px 18px rgba(30,85,140,.055)!important;
}
#screenHome{padding-bottom:78px!important;}
.bottom-nav{
  width:min(100%,480px)!important;
  max-width:480px!important;
  padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important;
  gap:6px!important;
  background:rgba(246,252,255,.96)!important;
  border-top:1px solid rgba(216,232,247,.95)!important;
}
.bottom-nav .quick{
  border-radius:16px!important;
  font-size:12px!important;
  padding:11px 4px!important;
  box-shadow:0 6px 18px rgba(30,85,140,.055)!important;
}
.chat-panel{
  width:min(100%,480px)!important;
  max-width:480px!important;
  height:min(78vh,690px)!important;
  border-radius:22px 22px 0 0!important;
}
.messages{background:#eef8ff!important;}
.side-menu{
  left:50%!important;
  transform:translateX(-50%);
  width:min(94vw,440px)!important;
  max-width:440px!important;
  top:8px!important;
  bottom:auto!important;
  max-height:calc(100vh - 16px)!important;
  overflow:auto!important;
  background:#f8fcff!important;
  border-color:var(--line)!important;
}
.filter-grid{grid-template-columns:1fr!important;}
.filter-actions{justify-content:stretch!important;}
.filter-actions .pill{width:100%!important;}
.wallet-grid{grid-template-columns:1fr!important;}
.inline-form{grid-template-columns:1fr!important;}
.inline-form button{width:100%!important;margin-top:8px!important;}
.section-head{align-items:flex-start!important;}
.debug-panel{left:50%!important;right:auto!important;width:min(100% - 16px,480px)!important;transform:translateX(-50%)!important;}
.debug-dock{left:50%!important;right:auto!important;bottom:8px!important;width:min(100% - 16px,480px)!important;transform:translateX(-50%)!important;display:grid!important;grid-template-columns:1fr 1.4fr 1fr!important;}
.debug-dock button{font-size:10px!important;padding:8px 4px!important;}
/* Ép Tin nhắn một dòng giống điện thoại trên mọi màn hình */
.message-list{gap:6px!important;margin-top:0!important;}
.message-item.message-one-line{
  grid-template-columns:minmax(72px,.9fr) minmax(0,1.8fr) auto!important;
  gap:6px!important;
  padding:8px 9px!important;
  min-height:38px!important;
  border-radius:13px!important;
  background:#fff!important;
}
.message-place,.message-time{display:none!important;}
.message-name{font-size:12px!important;}
.message-last{font-size:12px!important;}
.message-unread{min-width:19px!important;height:19px!important;font-size:10px!important;padding:0 6px!important;}
#viewChat .item-actions,#viewChat .message-open{display:none!important;}
#viewChat .item:not(.message-one-line):has([data-open-chat]){display:none!important;}
@media(min-width:481px){
  body{display:block;}
  .app-shell{border-left:1px solid rgba(216,232,247,.7);border-right:1px solid rgba(216,232,247,.7);}
}


/* KNQD 8.0.12.6 - Desktop: app giữ khung điện thoại, Debug tách cột bên phải */
@media (min-width: 1050px){
  html.knqd-debug-mode body{
    padding-right:510px!important;
  }
  html.knqd-debug-mode .app-shell{
    width:min(100%,480px)!important;
    max-width:480px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  html.knqd-debug-mode .debug-panel{
    left:auto!important;
    right:16px!important;
    top:16px!important;
    bottom:58px!important;
    width:470px!important;
    max-width:calc(50vw - 28px)!important;
    max-height:none!important;
    height:auto!important;
    transform:none!important;
    border-radius:18px!important;
  }
  html.knqd-debug-mode .debug-dock{
    left:auto!important;
    right:16px!important;
    bottom:10px!important;
    width:470px!important;
    max-width:calc(50vw - 28px)!important;
    transform:none!important;
    display:grid!important;
    grid-template-columns:1fr 1.45fr 1fr!important;
  }
  html.knqd-debug-mode .debug-dock button{
    font-size:10px!important;
    padding:8px 6px!important;
  }
}
@media (max-width: 1049px){
  html.knqd-debug-mode body{padding-right:0!important;}
}


/* KNQD 8.0.18.1 - Thanh trên chỉ có menu và Ví cố định; tên hệ thống chỉ ở đầu menu */
.topbar{min-height:50px!important;}
.topbar>.hamburger{flex:0 0 auto;}
.top-wallet-summary{
  margin-left:auto;
  min-width:0;
  max-width:calc(100% - 48px);
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:#17345f;
  padding:8px 11px;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
  box-shadow:0 5px 16px rgba(30,85,140,.07);
}
.top-wallet-summary:hover{border-color:rgba(22,119,255,.32);}
.top-wallet-summary:active{transform:scale(.99);}
.top-wallet-sep{color:#a3b3c7;font-weight:700;}
.side-menu-head .side-brand{font-size:18px!important;line-height:1.2;}
@media(max-width:360px){
  .top-wallet-summary{gap:3px;padding:7px 8px;font-size:11px;}
}


/* KNQD 8.0.18.1 - Menu gọn bám cạnh trái khung app + Ví đầu trang hiển thị chắc chắn */
.top-wallet-summary[hidden]{display:none!important;}
.top-wallet-summary.is-visible{display:inline-flex!important;visibility:visible!important;opacity:1!important;}
.menu-overlay{
  opacity:0;
  transition:opacity .18s ease;
  background:rgba(15,23,42,.28)!important;
}
.menu-overlay.open{opacity:1;}
.side-menu{
  left:var(--menu-left,8px)!important;
  right:auto!important;
  top:8px!important;
  bottom:auto!important;
  width:var(--menu-width,270px)!important;
  max-width:calc(100vw - 16px)!important;
  min-height:0!important;
  max-height:calc(100vh - 16px)!important;
  padding:10px!important;
  gap:8px!important;
  border-radius:18px!important;
  background:#f8fcff!important;
  transform:translateX(-18px)!important;
  opacity:0;
  pointer-events:none;
  overflow:auto!important;
  box-shadow:0 18px 54px rgba(20,33,61,.22)!important;
  transition:transform .18s ease,opacity .18s ease!important;
}
.side-menu.open{
  transform:translateX(0)!important;
  opacity:1;
  pointer-events:auto;
}
.side-menu-head{
  align-items:center!important;
  min-height:38px;
  padding:1px 2px 5px!important;
  border-bottom:1px solid var(--line);
}
.side-menu-head .side-brand{
  font-size:16px!important;
  line-height:1.15!important;
  white-space:nowrap;
}
.side-menu-close{
  flex:0 0 32px;
  width:32px;
  height:32px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  color:#60708a;
  font-size:23px;
  line-height:1;
  font-weight:600;
  padding:0 0 2px;
  display:grid;
  place-items:center;
}
.side-menu-links{gap:6px!important;}
.side-link{
  min-height:42px!important;
  border-radius:12px!important;
  padding:10px 12px!important;
  font-size:14px!important;
  box-shadow:none!important;
}
@media(max-width:360px){
  .side-menu{top:6px!important;max-height:calc(100vh - 12px)!important;padding:8px!important;}
  .side-menu-head .side-brand{font-size:15px!important;}
  .side-link{min-height:40px!important;padding:9px 10px!important;}
}


/* KNQD 8.0.13.3 + 8.0.14.1 + 8.0.15.3 - thanh Ví rộng, nút cộng, Giới thiệu và Nạp tiền */
html,body{width:100%;}
body{display:flex!important;justify-content:center!important;align-items:stretch!important;}
.app-shell{flex:0 0 min(100%,480px)!important;}
.topbar{justify-content:flex-start!important;gap:8px!important;overflow:visible!important;}
.hamburger{background:var(--brand)!important;border-color:var(--brand)!important;box-shadow:0 8px 18px rgba(22,119,255,.24)!important;}
.hamburger-line{background:#fff!important;}
.top-wallet-shell{position:relative;display:flex;align-items:stretch;flex:1;min-width:0;height:38px;}
.top-wallet-shell[hidden]{display:none!important;}
.top-wallet-shell.is-visible{display:flex!important;}
.top-wallet-summary{flex:1;max-width:none!important;justify-content:space-around!important;margin:0!important;border-radius:14px 0 0 14px!important;padding:7px 10px!important;overflow:hidden;}
.top-wallet-summary>span:not(.top-wallet-sep){min-width:0;overflow:hidden;text-overflow:ellipsis;}
.earning-hub-button{flex:0 0 76px;border:1px solid #ff9b22;border-left:0;border-radius:0 14px 14px 0;background:linear-gradient(135deg,#ffb12e,#ff7a00);color:#fff;font-size:11px;font-weight:1000;line-height:1;letter-spacing:.1px;box-shadow:0 6px 16px rgba(255,133,0,.2);white-space:nowrap;}
.earning-hub-button:hover{filter:brightness(1.03);}
.earning-hub-button:active{transform:scale(.98);}
.earning-attention{animation:earningAttention 1.8s ease-in-out infinite;}
@keyframes earningAttention{0%,100%{box-shadow:0 4px 12px rgba(255,133,0,.18);filter:brightness(1)}50%{box-shadow:0 0 0 4px rgba(255,169,45,.16),0 7px 18px rgba(255,117,0,.34);filter:brightness(1.08)}}
@media (prefers-reduced-motion:reduce){.earning-attention{animation:none}}
.referral-code-card strong{display:block;font-size:21px;letter-spacing:.04em;margin:4px 0 8px;word-break:break-all;}
.referral-link{font-size:12px;color:var(--muted);background:#f3f8ff;border:1px solid var(--line);border-radius:12px;padding:10px;word-break:break-all;}
.referral-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.topup-bank-grid{display:grid;gap:8px;}
.topup-bank-grid>div{display:grid;grid-template-columns:95px 1fr auto;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:8px 0;}
.topup-bank-grid span{font-size:12px;color:var(--muted);}
.topup-bank-grid b{min-width:0;overflow-wrap:anywhere;}
.topup-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:900;background:#fff7df;color:#9a6300;white-space:nowrap;}
.topup-status.approved{background:#e9fbf2;color:#087d48;}
.topup-status.rejected,.topup-status.cancelled{background:#fff0f0;color:#b4232a;}
.admin-topup-settings{display:grid!important;grid-template-columns:1fr 1fr;gap:0 10px;}
.admin-topup-settings label:last-of-type,.admin-topup-settings .primary{grid-column:1/-1;}
#viewReferral .wallet-grid,#viewAdmin .wallet-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
@media(max-width:380px){
  .top-wallet-summary{font-size:10.5px!important;padding:7px 6px!important;gap:2px!important;}
  .earning-hub-button{flex-basis:68px;font-size:10px;}
  .topup-bank-grid>div{grid-template-columns:1fr;gap:3px;}
  .topup-bank-grid .mini{width:max-content;}
  .admin-topup-settings{grid-template-columns:1fr;}
  .admin-topup-settings label:last-of-type,.admin-topup-settings .primary{grid-column:auto;}
}


/* KNQD 8.0.18.1 - Lời giới thiệu gọn, link cố định và 4 nút một hàng */
#viewReferral .referral-invite-card{padding:14px!important;}
.referral-invite-preview{display:grid;gap:12px;}
.referral-invite-text{
  white-space:pre-line;
  background:#f7fbff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:13px;
  color:#203858;
  font-size:14px;
  line-height:1.55;
}
.referral-fixed-link-wrap{display:grid;gap:5px;}
.referral-fixed-link-wrap>span{font-size:11px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.referral-link-fixed{padding:9px 10px!important;font-size:11px!important;}
.referral-action-row{
  display:grid;
  grid-template-columns:.8fr .9fr 1.35fr var(--referral-edit-width);
  gap:5px;
  margin-top:12px;
  width:100%;
}
.referral-action-row .mini{
  min-width:0;
  width:100%;
  padding:9px 2px;
  border-radius:10px;
  font-size:10.8px;
  line-height:1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip;
}
.referral-invite-editor label{margin-top:0;}
.referral-invite-editor textarea{min-height:150px;line-height:1.5;}
.referral-fixed-note{font-size:12px;margin:7px 0 0;}
.referral-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
.referral-edit-actions .mini{width:100%;}
.referral-members-card{padding:14px!important;}
.referral-members-card .module-title{margin-bottom:8px;}
.referral-empty{padding:12px!important;}
#viewReferral #referralStats,#viewReferral #referralPolicyNote{display:none!important;}
@media(max-width:360px){
  .referral-action-row{gap:4px;grid-template-columns:.82fr .88fr 1.4fr var(--referral-edit-width);}
  .referral-action-row .mini{font-size:9.8px;padding:9px 1px;}
  .referral-invite-text{font-size:13px;padding:11px;}
}


/* KNQD 8.0.18.1 - Mã giới thiệu ở đầu khung, tạo khi đăng ký, hai nút Sửa căn đồng bộ */
#viewReferral .referral-invite-card{--referral-edit-width:58px;}
.referral-code-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) var(--referral-edit-width);
  gap:7px;
  align-items:center;
  margin-bottom:12px;
}
.referral-code-main{min-width:0;display:grid;gap:3px;}
.referral-code-main>span{font-size:13px;font-weight:800;color:var(--muted);}
.referral-code-main>strong{
  display:block;
  min-width:0;
  font-size:18px;
  line-height:1.2;
  letter-spacing:.025em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.referral-aligned-edit{width:var(--referral-edit-width)!important;min-width:var(--referral-edit-width)!important;justify-self:end;}
.referral-code-editor{margin-bottom:12px;padding:11px;border:1px solid var(--line);border-radius:14px;background:#f7fbff;}
.referral-code-editor label{margin-top:0;}
.referral-code-editor input{text-transform:uppercase;font-weight:800;letter-spacing:.025em;}
.referral-code-note{font-size:11px;margin:7px 0 0;line-height:1.4;}
.referral-code-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px;}
.referral-code-edit-actions .mini{width:100%;}
.referral-action-row{grid-template-columns:.8fr .9fr 1.35fr var(--referral-edit-width)!important;}
.referral-action-row #btnEditReferralInvite{width:var(--referral-edit-width);min-width:var(--referral-edit-width);}
@media(max-width:390px){
  #viewReferral .referral-invite-card{--referral-edit-width:52px;}
  .referral-code-main>strong{font-size:16px;}
  .referral-action-row .mini{font-size:9.3px;padding-left:1px;padding-right:1px;}
}


/* KNQD 8.0.18.1 - Thẻ Giới thiệu cố định trong Hồ sơ + toàn bộ thẻ Hồ sơ tông xanh */
#viewProfile > .card,
#viewProfile > form.card{
  background:linear-gradient(145deg,#edf7ff 0%,#dceeff 100%)!important;
  border-color:#9bcafa!important;
  box-shadow:0 10px 28px rgba(22,119,255,.12)!important;
}
#viewProfile > .card:hover,
#viewProfile > form.card:hover{border-color:#65aef5!important;}
#viewProfile .card input,
#viewProfile .card select,
#viewProfile .card textarea{background:rgba(255,255,255,.96)!important;border-color:#b8d8f7!important;}
#viewProfile .card .muted{color:#526d8d;}
#viewProfile .profile-referral-card{
  background:linear-gradient(135deg,#1677ff 0%,#0f63da 100%)!important;
  border-color:#0f63da!important;
  color:#fff!important;
  padding:10px 12px!important;
  position:relative;
  overflow:visible;
}
.profile-referral-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.profile-referral-title{
  border:0;background:transparent;color:#fff;padding:0;font-size:18px;font-weight:950;text-align:left;
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;
}
.profile-referral-title:hover{opacity:.9;}
.profile-referral-fixed{display:inline-flex;align-items:center;border-radius:999px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);padding:3px 7px;font-size:9px;font-weight:900;}
.profile-referral-link{
  background:rgba(255,255,255,.94);color:#17416f;border:1px solid rgba(255,255,255,.75);border-radius:10px;padding:7px 9px;
  font-size:10.5px;line-height:1.2;word-break:break-all;min-height:30px;
}
.profile-referral-actions{display:grid;grid-template-columns:1fr 1.25fr .7fr;gap:5px;margin-top:6px;}
.profile-referral-actions .mini{
  width:100%;min-width:0;background:#fff!important;border-color:rgba(255,255,255,.8)!important;color:#0f63da!important;
  padding:7px 3px;font-size:10.5px;white-space:nowrap;box-shadow:0 4px 12px rgba(10,45,95,.12);
}
.profile-referral-actions .mini:hover{background:#eaf4ff!important;}
#profileReferralCard[data-fixed-card="referral"]::after{content:"";display:none;}
@media(max-width:360px){
  .profile-referral-title{font-size:17px;}
  .profile-referral-actions{gap:4px;grid-template-columns:.95fr 1.3fr .62fr;}
  .profile-referral-actions .mini{font-size:9.8px;padding-left:2px;padding-right:2px;}
}


/* KNQD 8.0.18.1 - Chuẩn hóa thẻ Hồ sơ thành viên */
.member-profile-card{padding:16px!important;}
.member-profile-head{display:flex;align-items:center;gap:14px;}
.member-avatar-wrap{width:94px;min-width:94px;display:flex;flex-direction:column;align-items:center;position:relative;}
.member-avatar-button{width:88px;height:88px;border-radius:50%;padding:0;border:4px solid rgba(255,255,255,.96);background:#d9ecff;overflow:hidden;box-shadow:0 8px 20px rgba(22,119,255,.18);}
.member-avatar-button img,.public-avatar{width:100%;height:100%;object-fit:cover;display:block;}
.member-avatar-edit{margin-top:-12px;width:31px;height:31px;border-radius:50%;border:3px solid #fff;background:#1677ff;color:#fff;font-size:17px;font-weight:900;line-height:1;display:grid;place-items:center;box-shadow:0 5px 14px rgba(22,119,255,.24);}
.member-avatar-edit:disabled{opacity:.55;cursor:wait;}
.member-profile-summary{min-width:0;flex:1;}
.member-profile-summary h3{margin:0 0 5px;font-size:20px;line-height:1.15;overflow-wrap:anywhere;}
.member-profile-meta{color:#496987;font-size:13px;font-weight:800;}
.member-profile-badges{justify-content:flex-start;margin-top:8px;}
.member-profile-fields{display:grid;gap:8px;margin-top:14px;}
.member-profile-fields>div{background:rgba(255,255,255,.72);border:1px solid #b8d8f7;border-radius:13px;padding:9px 11px;}
.member-profile-fields span{display:block;color:#557493;font-size:11px;font-weight:900;margin-bottom:3px;}
.member-profile-fields strong{display:block;color:#173b63;font-size:13px;line-height:1.42;white-space:pre-wrap;overflow-wrap:anywhere;}
.member-profile-edit-button{margin-top:12px!important;padding:11px 14px!important;}
.member-profile-editor{scroll-margin-top:76px;}
.member-profile-editor .module-title{margin-bottom:12px;}
.member-profile-edit-grid{margin-top:8px;}
.profile-earning-settings{margin-top:14px;padding:12px;border-radius:15px;background:rgba(255,255,255,.55);border:1px solid #b8d8f7;}
.profile-earning-settings .module-title{margin-bottom:0;}
.profile-editor-actions{display:grid;grid-template-columns:1fr .55fr;gap:8px;align-items:end;}
.profile-editor-actions .primary,.profile-editor-actions .pill{width:100%;margin-top:14px;min-height:45px;}
.public-user-top{display:flex;align-items:flex-start;gap:10px;}
.public-user-avatar{width:54px;height:54px;min-width:54px;border-radius:50%;object-fit:cover;border:2px solid #d5e9ff;background:#eaf4ff;}
.public-user-main{min-width:0;flex:1;}
.public-profile-overlay{position:fixed;inset:0;z-index:120;background:rgba(11,25,47,.5);backdrop-filter:blur(5px);display:flex;align-items:flex-end;justify-content:center;padding:12px;}
.public-profile-overlay.hide{display:none!important;}
.public-profile-sheet{position:relative;width:min(480px,100%);max-height:min(86vh,760px);overflow:auto;background:#eef7ff;border:1px solid #8fc3f7;border-radius:24px 24px 16px 16px;padding:18px 14px 16px;box-shadow:0 -16px 52px rgba(9,45,88,.28);}
.public-profile-close{position:sticky;top:0;float:right;z-index:2;width:34px;height:34px;border-radius:50%;border:0;background:#fff;color:#1b4b7b;font-size:24px;font-weight:700;box-shadow:0 5px 16px rgba(20,65,110,.16);}
.public-profile-content{clear:both;padding-top:2px;}
.public-profile-card{background:linear-gradient(145deg,#edf7ff 0%,#dceeff 100%);border:1px solid #9bcafa;border-radius:19px;padding:14px;}
.public-avatar-wrap{width:86px;min-width:86px;}
.public-avatar{width:82px;height:82px;border-radius:50%;border:4px solid #fff;background:#d9ecff;box-shadow:0 8px 20px rgba(22,119,255,.18);}
.public-profile-fields{margin-top:14px;}
body.public-profile-open{overflow:hidden;}
@media(max-width:390px){
  .member-profile-head{align-items:flex-start;gap:10px;}
  .member-avatar-wrap{width:82px;min-width:82px;}
  .member-avatar-button{width:76px;height:76px;}
  .member-profile-summary h3{font-size:18px;}
  .profile-editor-actions{grid-template-columns:1fr .48fr;}
  .public-profile-overlay{padding:6px;}
  .public-profile-sheet{border-radius:22px 22px 12px 12px;padding:14px 10px;}
}


/* KNQD 8.0.18.1 - Hồ sơ thành viên gọn, địa chỉ 3 cấp, khóa năm sinh/giới tính */
#viewProfile{padding-top:1px;}
#viewProfile>.member-profile-card{margin-top:4px!important;}
.member-profile-card{padding:12px!important;}
.member-profile-head{gap:10px;}
.member-avatar-wrap{width:78px;min-width:78px;}
.member-avatar-button{width:72px;height:72px;border-width:3px;}
.member-avatar-edit{width:27px;height:27px;margin-top:-10px;font-size:15px;border-width:2px;}
.member-profile-summary h3{font-size:18px;margin-bottom:4px;}
.member-profile-meta{font-size:12px;}
.member-profile-fields-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:6px;}
.member-profile-fields-compact>div{padding:7px 9px;border-radius:11px;min-width:0;}
.member-profile-fields-compact .profile-field-wide{grid-column:1/-1;}
.member-profile-fields-compact span{font-size:10px;margin-bottom:2px;}
.member-profile-fields-compact strong{font-size:12px;line-height:1.32;}
.member-profile-edit-button{margin-top:8px!important;padding:9px 12px!important;}
.member-profile-editor{padding:12px!important;}
.member-profile-editor .module-title{margin-bottom:7px;}
.profile-compact-grid{display:grid;gap:6px;margin:0 0 7px;align-items:end;}
.profile-name-code-grid{grid-template-columns:1.35fr 1fr;}
.profile-basic-grid{grid-template-columns:.72fr .78fr 1.5fr;}
.profile-address-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.profile-compact-grid label,.profile-bio-label,.profile-chat-grid label{margin:0;font-size:10.5px;line-height:1.2;min-width:0;}
.profile-compact-grid input,.profile-compact-grid select,.profile-bio-label textarea,.profile-chat-grid input{margin-top:4px;padding:9px 7px;border-radius:10px;font-size:12px;min-width:0;}
.profile-name-code-grid input[readonly]{background:#eaf2fb!important;color:#4f6680;cursor:not-allowed;font-size:10.5px;}
.identity-lock-note{font-size:10px;line-height:1.3;color:#526d8d;margin:-1px 0 7px;padding:5px 7px;border-radius:8px;background:rgba(255,255,255,.55);}
.identity-locked{background:#e7edf5!important;color:#6d7c8e!important;cursor:not-allowed!important;}
.profile-bio-label{display:block;margin:0;}
.profile-bio-label textarea{min-height:72px;resize:vertical;}
.compact-chat-settings{margin-top:8px;padding:9px;}
.compact-chat-settings .module-title{margin-bottom:5px;}
.profile-chat-grid{display:grid;grid-template-columns:.9fr 1.35fr;gap:7px;align-items:end;}
.profile-earning-toggle{height:38px;margin:0!important;padding:7px 8px;border:1px solid #b8d8f7;border-radius:10px;background:rgba(255,255,255,.72);font-size:11px!important;align-items:center;}
.profile-earning-toggle input{width:auto!important;margin:0!important;padding:0!important;}
.profile-hint{font-size:10.5px;margin:5px 0 0;line-height:1.3;}
.profile-editor-actions{grid-template-columns:1fr .42fr;gap:6px;}
.profile-editor-actions .primary,.profile-editor-actions .pill{min-height:39px;margin-top:8px;padding:9px;}
.needs-form .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px;}
.needs-form .filter-grid label{font-size:11px;}
.needs-form .filter-grid input,.needs-form .filter-grid select{padding:10px 9px;border-radius:11px;font-size:12px;}
@media(max-width:390px){
  .profile-name-code-grid{grid-template-columns:1.25fr .95fr;}
  .profile-basic-grid{grid-template-columns:.72fr .78fr 1.35fr;}
  .profile-address-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .profile-compact-grid input,.profile-compact-grid select{font-size:11px;padding:8px 5px;}
  .profile-compact-grid label{font-size:9.5px;}
  .needs-form .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}


/* KNQD 8.0.18.1 - Thẻ bật kiếm tiền riêng cho Nữ, bố trí tối giản */
#viewProfile>.female-earning-card{
  padding:9px 11px!important;
  background:linear-gradient(135deg,#e7f4ff 0%,#d7ebff 100%)!important;
  border-color:#82bdf5!important;
}
.female-earning-form{margin:0;display:block;}
.female-earning-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.female-earning-copy{min-width:0;}
.female-earning-copy h3{margin:0;color:#173b63;font-size:15px;line-height:1.15;}
.female-earning-copy p{margin:2px 0 0;color:#526d8d;font-size:10.5px;line-height:1.25;}
.female-earning-switch{margin:0!important;display:flex;align-items:center;gap:5px;flex:0 0 auto;color:#174f86;font-size:10.5px;font-weight:900;cursor:pointer;}
.female-earning-switch input{position:absolute;opacity:0;width:1px!important;height:1px!important;pointer-events:none;}
.female-switch-track{width:34px;height:19px;border-radius:999px;background:#a8bdd2;position:relative;transition:.18s;box-shadow:inset 0 0 0 1px rgba(23,59,99,.1);}
.female-switch-track i{position:absolute;left:2px;top:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(20,60,100,.2);transition:.18s;}
.female-earning-switch input:checked+.female-switch-track{background:#1677ff;}
.female-earning-switch input:checked+.female-switch-track i{transform:translateX(15px);}
.female-earning-controls{display:grid;grid-template-columns:1fr 58px;gap:6px;align-items:end;margin-top:6px;}
.female-earning-fee{margin:0!important;display:grid;grid-template-columns:auto minmax(92px,132px);align-items:center;justify-content:space-between;gap:7px;font-size:10.5px;color:#334f70;}
.female-fee-input{display:grid;grid-template-columns:1fr 22px;align-items:center;border:1px solid #a9cfee;border-radius:9px;background:#fff;overflow:hidden;height:32px;}
#viewProfile .female-fee-input input{height:30px;margin:0!important;padding:5px 7px!important;border:0!important;border-radius:0!important;background:#fff!important;font-size:12px;text-align:right;box-shadow:none!important;}
.female-fee-input b{display:grid;place-items:center;height:100%;background:#eaf4ff;color:#1763a8;font-size:11px;border-left:1px solid #c6def4;}
#btnSaveFemaleEarning{width:100%;height:32px;margin:0!important;padding:5px 4px!important;border-radius:9px;font-size:11px;background:#fff!important;color:#0f63da!important;border-color:#8fc2f1!important;}
#btnSaveFemaleEarning:disabled{opacity:.55;cursor:wait;}
.female-earning-status{font-size:9.8px;color:#087d48;font-weight:800;line-height:1.2;margin-top:4px;}
.female-earning-status:empty{display:none;}
@media(max-width:360px){
  .female-earning-copy h3{font-size:14px;}
  .female-earning-copy p{font-size:9.8px;}
  .female-earning-controls{grid-template-columns:1fr 52px;gap:5px;}
  .female-earning-fee{font-size:9.8px;grid-template-columns:auto minmax(82px,116px);}
}


/* KNQD 8.0.18.1 - Thẻ nhu cầu 3 lớp + 3 cấp vị trí, đồng bộ tìm kiếm */
.needs-manager-card,.needs-search-card{padding:10px!important}
.needs-manager-card .module-title,.needs-search-card .module-title{margin-bottom:5px}
.needs-manager-card .search-summary,.needs-search-card .search-summary{margin:4px 0 7px}
.needs-cards-list{display:grid;gap:7px}
.need-empty{padding:10px;border:1px dashed #8bbce8;border-radius:11px;background:#f4faff;color:#496780;font-size:12px;text-align:center}
.need-summary-card{border:1px solid #8fc3ef;background:#f2f9ff;border-radius:12px;padding:8px;box-shadow:0 2px 7px rgba(32,91,145,.07)}
.need-summary-card.is-hidden{opacity:.72;background:#f5f7fa;border-style:dashed}
.need-summary-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.need-summary-head h4,.needs-editor-head h4{margin:0;color:#075fa8;font-size:14px}
.need-summary-head p{margin:2px 0 0;font-size:11px;line-height:1.35;color:#355d7d}
.need-location{margin:5px 0 0;font-size:11px;font-weight:800;color:#145f97}
.need-intro{margin:4px 0 0;font-size:12px;line-height:1.4;color:#2d4558;white-space:pre-wrap}
.need-card-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:6px}
.need-card-actions .mini{min-height:30px;padding:5px 7px;font-size:11px}
.need-card-actions .danger{border-color:#ef9a9a;color:#b42318;background:#fff7f7}
.needs-form{margin-top:8px;padding:8px;border:1px solid #8fc3ef;border-radius:12px;background:#edf7ff}
.needs-editor-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.needs-layer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:6px}
.needs-layer-grid label{margin:0;font-size:10px;font-weight:800;color:#275570;min-width:0}
.needs-layer-grid input,.needs-layer-grid select{width:100%;min-width:0;margin-top:3px;padding:8px 6px;border-radius:9px;font-size:11px;min-height:34px}
.needs-intro-label{display:block;margin-top:6px;font-size:11px;font-weight:800;color:#275570}
.needs-intro-label textarea{margin-top:3px;min-height:62px;padding:8px;border-radius:10px;font-size:12px}
.needs-editor-actions,.needs-search-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}
.needs-editor-actions button,.needs-search-actions button{min-height:34px;padding:7px 9px}
.needs-search-grid{margin-top:5px}
@media(max-width:390px){
  .needs-layer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .needs-layer-grid label:nth-child(3){grid-column:1/-1}
}

/* KNQD 8.0.18.1 - Thẻ Bạn bè mặc định sau Xác minh */
.default-friend-card{border-color:#7db8ff;background:linear-gradient(180deg,#eaf5ff,#dceeff);padding:10px 12px}.default-friend-card .module-title{margin-bottom:4px}.default-friend-content p{margin:3px 0}.default-friend-path{font-weight:800;color:#0b4ca3}.default-friend-card .mini{margin-top:5px;min-height:30px}.default-friend-card .need-location{font-size:12px}


/* KNQD 8.0.18.1 - Đăng ký/đăng nhập gọn, không menu trước đăng nhập */
.auth-only .app-shell{padding-top:8px!important;padding-bottom:24px!important;}
.auth-screen{max-width:480px;margin:0 auto;}
.auth-system-name{text-align:center;color:#0875d1;font-size:22px;font-weight:1000;letter-spacing:.035em;line-height:1.15;padding:8px 4px 11px;text-shadow:0 1px 0 #fff;}
.auth-system-name:after{content:"";display:block;width:88px;height:3px;border-radius:99px;background:linear-gradient(90deg,#42a5f5,#0875d1);margin:8px auto 0;}
.auth-card{margin:0!important;padding:12px!important;border-color:#b9d9ff!important;box-shadow:0 10px 28px rgba(8,117,209,.10)!important;}
.auth-screen-heading{text-align:center;margin:1px 0 8px;color:#17345f;font-size:18px;font-weight:950;}
.auth-switch-line{text-align:center;margin:10px 0 1px;color:#61738a;font-size:12px;font-weight:650;}
.auth-switch-btn{border:0;background:transparent;color:#0875d1;font-size:12px;font-weight:950;padding:3px 4px;cursor:pointer;}
.auth-switch-btn:hover{text-decoration:underline;}
.auth-card .tabs{margin-bottom:8px!important;padding:4px!important;}
.auth-card .tab{padding:9px 8px!important;}
.auth-grid{display:grid;gap:7px 8px;}
.auth-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));}
.auth-card label{margin:5px 0 0!important;font-size:11px!important;}
.auth-card input{margin-top:4px;padding:10px 11px!important;min-height:39px;border-radius:12px!important;font-size:13px;}
.auth-main-btn{margin-top:10px!important;padding:11px 13px!important;}
.auth-text-btn{border:0;background:transparent;color:#0b6dcc;font-weight:850;font-size:12px;padding:9px 7px;display:block;margin:2px auto 0;}
.auth-row-actions{display:flex;align-items:center;justify-content:center;gap:10px;}
.auth-form-title{text-align:center;margin:2px 0 4px;color:#17345f;}
.auth-help{text-align:center;margin:0 0 8px;font-size:12px;}
.terms-compact{margin-top:8px;border:1px solid #d8e8fa;border-radius:12px;background:#f8fbff;overflow:hidden;}
.terms-compact summary{cursor:pointer;padding:9px 11px;font-size:12px;font-weight:850;color:#24517d;}
.terms-compact .terms-box{border:0;border-top:1px solid #d8e8fa;border-radius:0;margin:0;max-height:125px;padding:9px;}
.terms-compact .terms-box p{margin:5px 0;font-size:11px;line-height:1.35;}
.auth-card .checkline{display:flex;margin-top:8px!important;font-size:11px!important;}
.auth-divider{display:flex;align-items:center;gap:9px;color:#7a8aa0;font-size:11px;margin:10px 0 8px;}
.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#dbe7f4;flex:1;}
.google-button-holder{min-height:40px;display:flex;justify-content:center;overflow:hidden;}
.google-referral-step{margin-top:9px;padding:10px;border:1px solid #b9d9ff;border-radius:13px;background:#f5faff;}
.google-referral-step p{margin:0 0 6px;color:#385574;font-size:11px;line-height:1.4;}
.google-referral-step label{margin-top:2px!important;}
.google-referral-continue{margin-top:8px!important;padding:10px 12px!important;}
.google-auth-status{text-align:center;font-size:11px;min-height:14px;margin-top:4px;}
@media(max-width:420px){.auth-grid.two{grid-template-columns:1fr 1fr}.auth-system-name{font-size:20px}.auth-card{padding:10px!important}.auth-card input{padding:9px!important;font-size:12px}.google-button-holder{transform:scale(.96);transform-origin:center top}}

.auth-provider-status{text-align:center;font-size:11px;min-height:14px;margin-top:6px;color:#9a6300;}

/* KNQD 8.0.19.1 - Chat Tools popup tam thoi, hẹn giờ nhãn trực tiếp, phí cài cực gọn */
.chat-tools-mount{position:relative;overflow:visible;background:#fff;border-top:1px solid var(--line)}
.chat-tools-toolbar{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 6px;background:#f8fbff;border-bottom:1px solid #dce8f7}
.chat-tools-bar{min-width:0;display:flex;align-items:center;gap:3px}
.chat-tools-bar button,.chat-fee-set-button{width:30px;height:30px;flex:0 0 30px;border:0;border-radius:9px;background:transparent;color:#24476f;padding:0;display:grid;place-items:center;font-size:16px;line-height:1;cursor:pointer}
.chat-tools-bar button:hover,.chat-fee-set-button:hover{background:#e6f1ff;color:var(--brand)}
.chat-tools-bar button.danger{color:#c4323f}.chat-tools-bar button.danger:hover{background:#fff0f1}
.chat-tools-bar .chat-timer-trigger{width:auto;min-width:34px;flex-basis:auto;padding:0 5px;font-size:11px;font-weight:950;color:#315579;border:1px solid #d3e2f2;background:#fff}
.chat-tools-bar .chat-timer-trigger.is-short{color:#0f63c7;border-color:#9bc8f4;background:#eef7ff}
.chat-fee-side{min-width:0;margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:4px}
.chat-fee-pay-label{max-width:90px;border:1px solid #b9d8fb;border-radius:999px;background:#eef7ff;color:#155b9b;padding:4px 7px;font-size:10px;font-weight:900;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-fee-pay-label.is-insufficient{border-color:#f4c98c;background:#fff4e5;color:#a45500}
.chat-fee-pay-label.hide,.chat-fee-set-button.hide{display:none!important}
.chat-fee-set-button{border:1px solid #86bcf5;background:#1677ff;color:#fff}.chat-fee-set-button:hover{background:#0f69e5;color:#fff}.chat-fee-set-button.is-private{box-shadow:0 0 0 2px rgba(22,119,255,.18)}
.chat-tools-sheet{position:absolute;z-index:8;bottom:calc(100% + 5px);left:6px;right:6px;max-height:48vh;overflow:auto;padding:9px;background:#fff;border:1px solid #cfdef0;border-radius:14px;box-shadow:0 14px 38px rgba(20,33,61,.22)}
.chat-tools-sheet[data-kind="gift"]{left:6px;right:6px}
.chat-tools-sheet[data-kind="report"]{right:auto;width:min(330px,calc(100% - 12px))}
.chat-tools-sheet[data-kind="timer"]{left:82px;right:auto;width:min(230px,calc(100% - 88px));padding:7px}
.chat-tools-sheet[data-kind="delete"]{left:104px;right:auto;width:min(230px,calc(100% - 110px));padding:10px}
.chat-tools-sheet[data-kind="fee"]{left:auto;right:6px;width:min(260px,calc(100% - 12px));padding:9px}
.chat-tools-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.chat-tools-sheet-head b{font-size:13px}
.chat-tools-sheet-head button,.chat-tools-wallet-line button,.chat-tools-sheet-actions button{border:1px solid var(--line);border-radius:9px;background:#f8fbff;color:var(--brand);font-weight:800;padding:6px 8px;font-size:11px}
.chat-tools-wallet-line{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#eef8ff;border:1px solid #d6eaff;border-radius:11px;padding:7px 9px;margin-bottom:8px;font-size:11px;color:#35516f}
.chat-tools-gifts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.chat-tools-gifts button{border:1px solid #d9e7f6;border-radius:13px;background:#fff;padding:10px 6px;display:grid;gap:4px;text-align:center;color:#203a5a}.chat-tools-gifts button:disabled{opacity:.4;cursor:not-allowed;background:#f2f4f7}.chat-tools-gifts .gift-icon{font-size:25px;line-height:1}.chat-tools-gifts small{display:block;margin-top:3px;color:var(--muted);font-size:9px;line-height:1.3}
.chat-tools-sheet-actions{display:flex;justify-content:flex-end;margin-top:8px}.chat-tools-note{margin:3px 0;color:var(--muted);font-size:11px;line-height:1.35}.chat-tools-note.danger-text{color:#b4232f;background:#fff1f2;border:1px solid #ffd2d6;border-radius:10px;padding:8px}
.chat-tools-primary,.chat-tools-secondary{border:0;border-radius:9px;font-weight:900;padding:8px 10px}.chat-tools-primary{background:var(--brand);color:#fff}.chat-tools-primary.danger{background:#d9363e}.chat-tools-secondary{background:#eef4fb;color:#24517d;border:1px solid #d4e2f0}
.chat-tools-form label{margin:6px 0 4px}.chat-tools-form select,.chat-tools-form textarea{padding:8px 9px;border-radius:9px}.chat-tools-form textarea{min-height:62px}.chat-tools-form .chat-tools-primary{width:100%;margin-top:7px}
.chat-fee-form-compact{display:grid;gap:8px}.chat-fee-form-compact label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;font-size:12px}.chat-fee-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0}.chat-fee-input-wrap input{width:92px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:9px;font-size:15px;font-weight:900;text-align:right}.chat-fee-input-wrap b{white-space:nowrap;color:#24517d;font-size:11px}.chat-fee-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.chat-fee-actions button{padding:8px 7px}
.chat-tools-timers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.chat-tools-timers button{border:1px solid #d8e5f3;border-radius:9px;background:#f7fbff;color:#315579;font-weight:900;padding:8px 3px;font-size:11px}.chat-tools-timers button.active{background:var(--brand);border-color:var(--brand);color:#fff}
.chat-delete-popup{display:grid;gap:9px;text-align:center}.chat-delete-popup>b{font-size:13px}.chat-delete-popup>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.msg.chat-tool-image-message{padding:5px;background:#fff;border-color:#dbe8f5;overflow:hidden}.msg.me.chat-tool-image-message{background:#fff;border-color:#b8d8ff}.chat-tool-image{display:block;max-width:min(260px,72vw);max-height:300px;border-radius:13px;object-fit:cover;background:#eef3f8}.msg.chat-tool-image-message small{color:#60738a;padding:0 5px 3px}
@media(max-width:420px){.chat-tools-toolbar{min-height:34px;padding:2px 5px}.chat-tools-bar{gap:2px}.chat-tools-bar button,.chat-fee-set-button{width:29px;height:29px;flex-basis:29px;font-size:15px}.chat-tools-bar .chat-timer-trigger{width:auto;min-width:33px;flex-basis:auto;font-size:10px}.chat-fee-pay-label{max-width:82px;padding:4px 6px;font-size:9px}.chat-tools-gifts{grid-template-columns:1fr}.chat-tools-gifts button{grid-template-columns:auto 1fr;text-align:left;align-items:center}.chat-tools-sheet[data-kind="timer"]{left:70px;width:min(220px,calc(100% - 76px))}.chat-tools-sheet[data-kind="delete"]{left:94px;width:min(220px,calc(100% - 100px))}}

/* KNQD 8.0.19.1 - Khung chat cao sát dưới Ví + tên mở hồ sơ, không sửa chat core */
.chat-panel{
  top:calc(env(safe-area-inset-top, 0px) + 58px)!important;
  bottom:0!important;
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  border-radius:18px 18px 0 0!important;
}
.chat-head{min-height:42px;padding:6px 10px!important;gap:9px!important;background:#fff;align-items:center}
.chat-head>.pill{flex:0 0 auto;padding:7px 10px!important;font-size:11px!important}
.chat-head>div{min-width:0;overflow:hidden}
#chatTitle.chat-profile-link{display:inline-flex;align-items:center;max-width:100%;gap:4px;color:#173f6f;cursor:pointer;outline:none;border-radius:8px;padding:2px 4px;margin-left:-4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#chatTitle.chat-profile-link::after{content:'›';flex:0 0 auto;color:#1677ff;font-size:18px;line-height:1;font-weight:900}
#chatTitle.chat-profile-link:hover,#chatTitle.chat-profile-link:focus-visible{background:#eaf4ff;color:#0f5ea9;box-shadow:0 0 0 2px rgba(22,119,255,.13)}
.chat-head #chatSub{display:none!important}.chat-head small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-height:560px){.chat-panel{top:calc(env(safe-area-inset-top, 0px) + 52px)!important}.chat-head{min-height:40px;padding:4px 8px!important}}

/* KNQD 8.0.19.1 - Admin nạp tay theo mã thành viên/mã giới thiệu */
.admin-manual-topup-card{border:1px solid rgba(20,112,190,.18);}
.admin-manual-topup-form{display:grid!important;gap:10px;}
.admin-code-lookup-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;}
.admin-code-lookup-row .mini{min-height:42px;margin-bottom:1px;}
.admin-member-preview{min-height:52px;border:1px dashed rgba(23,89,138,.28);border-radius:12px;background:rgba(240,249,255,.78);padding:10px 12px;display:flex;align-items:center;}
.admin-member-result{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.admin-member-result>div:first-child{min-width:0;display:flex;flex-direction:column;gap:3px;}
.admin-member-result b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.admin-member-result>div:first-child span{font-size:12px;color:#4b6272;font-weight:700;}
.admin-member-balances{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;}
.admin-member-balances span{font-size:12px;font-weight:800;background:#fff;border:1px solid rgba(20,112,190,.16);border-radius:999px;padding:4px 7px;white-space:nowrap;}
.admin-manual-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.admin-manual-choice-grid fieldset{margin:0;padding:9px 10px 10px;border:1px solid rgba(23,89,138,.2);border-radius:12px;display:grid;gap:7px;min-width:0;}
.admin-manual-choice-grid legend{padding:0 5px;font-size:12px;font-weight:800;color:#294c61;}
.admin-radio-choice{display:flex!important;align-items:center;gap:8px;margin:0!important;padding:7px 9px;border-radius:9px;background:rgba(245,250,253,.86);cursor:pointer;}
.admin-radio-choice input{width:auto!important;margin:0;accent-color:#1877c9;}
.admin-radio-choice span{font-weight:700;font-size:13px;}
#btnAdminManualTopup:disabled{opacity:.5;cursor:not-allowed;}
@media (max-width:520px){
  .admin-manual-choice-grid{grid-template-columns:1fr;}
  .admin-member-result{align-items:flex-start;flex-direction:column;}
  .admin-member-balances{justify-content:flex-start;}
}

/* KNQD 8.0.19.1 - Danh sách bạn bè gọn + nút mở rộng chat */
.friend-list-section{display:grid;gap:7px}
.friend-list-section+.friend-list-section{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.friend-list-title{display:flex;align-items:center;justify-content:space-between;color:#315579;font-size:12px;font-weight:950;padding:0 2px}
.friend-list-title span{min-width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:#eaf4ff;color:#1466c3;font-size:10px}
.friend-compact-row{display:grid;grid-template-columns:minmax(0,1fr) 32px auto;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:7px 8px;box-shadow:0 5px 16px rgba(20,33,61,.04)}
.friend-compact-profile,.friend-pending-profile{min-width:0;border:0;background:transparent;padding:0;text-align:left;color:var(--text);cursor:pointer;display:grid;gap:2px}
.friend-compact-profile b,.friend-pending-profile b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friend-compact-profile span,.friend-pending-profile span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friend-chat-button{width:30px;height:30px;border:0;border-radius:9px;background:#eef7ff;color:#1666bd;padding:0;display:grid;place-items:center;cursor:pointer}
.friend-chat-button:hover{background:#dceeff}
.friend-remove-button{height:28px;border:1px solid #ffd0d4;border-radius:9px;background:#fff5f6;color:#bd2c39;font-size:11px;font-weight:900;padding:0 8px;cursor:pointer}
.friend-remove-button:hover{background:#ffe9eb}
.friend-pending-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:8px 9px}
.friend-pending-profile{flex:1}
.friend-pending-actions{display:flex;align-items:center;gap:5px}
.friend-empty{padding:9px 10px}.friend-empty p{margin:0;font-size:12px}
.friend-remove-overlay{position:fixed;inset:0;z-index:90;background:rgba(23,40,65,.22);display:grid;place-items:center;padding:18px}
.friend-remove-overlay.hide{display:none}
.friend-remove-dialog{width:min(320px,100%);background:#fff;border:1px solid #d5e3f2;border-radius:15px;box-shadow:0 18px 50px rgba(20,33,61,.25);padding:14px;display:grid;gap:14px}
.friend-remove-dialog b{font-size:14px;color:#243f5f}
.friend-remove-actions{display:flex;justify-content:flex-end;gap:7px}
.chat-more-button{width:30px;height:30px;flex:0 0 30px;border:0;border-radius:9px;background:transparent;color:#24476f;padding:0;display:grid;place-items:center;font-size:20px;line-height:1;cursor:pointer;font-weight:700}
.chat-more-button:hover{background:#e6f1ff;color:var(--brand)}
.chat-tools-sheet[data-kind="more"]{left:auto;right:72px;width:min(190px,calc(100% - 84px));padding:7px}
.chat-more-menu{display:grid;gap:4px}
.chat-more-menu button{width:100%;border:0;border-radius:9px;background:#fff3f4;color:#b72f3b;font-weight:900;text-align:left;padding:9px 10px;cursor:pointer}
.chat-more-menu button:hover{background:#ffe5e8}
@media(max-width:420px){.friend-compact-row{grid-template-columns:minmax(0,1fr) 30px auto;padding:6px 7px}.friend-compact-profile b{font-size:12px}.friend-compact-profile span{font-size:10px}.chat-more-button{width:29px;height:29px;flex-basis:29px}.chat-tools-sheet[data-kind="more"]{right:66px;width:min(185px,calc(100% - 76px))}}


/* KNQD 8.0.19.1 - Module Bạn bè riêng ở thanh dưới */
.friends-hub-view{padding-top:2px}
.friends-hub-head{margin-bottom:8px}
.friend-hub-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:rgba(232,244,255,.9);border:1px solid var(--line);border-radius:15px;padding:5px;margin:6px 0 8px;position:sticky;top:52px;z-index:12;backdrop-filter:blur(12px)}
.friend-hub-tab{min-width:0;border:0;border-radius:11px;background:transparent;color:#52677e;font-size:12px;font-weight:950;padding:9px 5px;display:flex;align-items:center;justify-content:center;gap:5px}
.friend-hub-tab.active{background:#fff;color:var(--brand);box-shadow:0 5px 16px rgba(30,85,140,.09)}
.friend-hub-tab span{min-width:18px;height:18px;border-radius:999px;background:#e8f1fb;color:#5b6e84;display:inline-grid;place-items:center;padding:0 5px;font-size:10px;line-height:1}
.friend-hub-tab.active span{background:#e6f2ff;color:#1268c5}
.friend-hub-tab span.has-count{background:#e5484d;color:#fff}
.friend-hub-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:7px;align-items:end;margin:0 0 8px}
.friend-hub-toolbar.hide{display:none!important}
.friend-hub-toolbar label{margin:0;font-size:11px;color:#4c6178}
.friend-hub-toolbar input,.friend-hub-toolbar select{margin-top:4px;padding:10px 11px;border-radius:12px;font-size:12px;min-height:39px}
.friend-hub-list{display:grid;gap:7px}
.friend-hub-row,.friend-request-row,.friend-blocked-row{position:relative;display:grid;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:7px 8px;box-shadow:0 5px 16px rgba(20,33,61,.04)}
.friend-hub-row{grid-template-columns:minmax(0,1fr) 31px 30px}
.friend-request-row{grid-template-columns:minmax(0,1fr) auto}
.friend-blocked-row{grid-template-columns:minmax(0,1fr) auto}
.friend-hub-profile{min-width:0;border:0;background:transparent;padding:0;text-align:left;color:var(--text);cursor:pointer;display:grid;gap:2px}
.friend-hub-profile b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friend-hub-profile span{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friend-more-button{width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:#3b5876;font-size:20px;font-weight:900;display:grid;place-items:center;padding:0;line-height:1}
.friend-more-button:hover,.friend-more-button[aria-expanded="true"]{background:#eaf4ff;color:#1268c5}
.friend-row-menu{display:none;position:absolute;right:7px;top:39px;z-index:18;width:154px;background:#fff;border:1px solid #d6e4f2;border-radius:12px;box-shadow:0 16px 38px rgba(20,33,61,.18);padding:5px}
.friend-row-menu.open{display:grid;gap:3px}
.friend-row-menu button{border:0;background:#fff;color:#294b6f;text-align:left;border-radius:8px;padding:8px 9px;font-size:11px;font-weight:850}
.friend-row-menu button:hover{background:#eef7ff}
.friend-row-menu button.danger{color:#b82d39}
.friend-row-menu button.danger:hover{background:#fff0f1}
.friend-request-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}
.friend-request-actions .mini{font-size:10px;padding:6px 7px}
.friend-block-mini{color:#b72f3b!important;border-color:#ffd2d6!important;background:#fff5f6!important}
.friend-action-overlay{position:fixed;inset:0;z-index:95;background:rgba(23,40,65,.22);display:grid;place-items:center;padding:18px}
.friend-action-overlay.hide{display:none}
.friend-action-dialog{width:min(320px,100%);background:#fff;border:1px solid #d5e3f2;border-radius:15px;box-shadow:0 18px 50px rgba(20,33,61,.25);padding:14px;display:grid;gap:14px}
.friend-action-dialog b{font-size:14px;color:#243f5f}
.friend-action-actions{display:flex;justify-content:flex-end;gap:7px}
@media(max-width:420px){
  .bottom-nav .quick{font-size:11px!important;padding:10px 2px!important}
  .friend-hub-tabs{top:50px}
  .friend-hub-toolbar{grid-template-columns:minmax(0,1fr) 112px}
  .friend-hub-row,.friend-request-row,.friend-blocked-row{padding:6px 7px}
  .friend-hub-profile b{font-size:12px}
  .friend-hub-profile span{font-size:10px}
  .friend-request-row{grid-template-columns:1fr}
  .friend-request-actions{justify-content:flex-start}
}

.friend-hub-profile-static{cursor:default}

/* KNQD 8.0.19.2 - Kết nối tối giản: popup tìm phù hợp + danh sách gần quanh đây */
.connection-simple-view{gap:12px}
.connection-simple-view.active{display:grid}
.connection-simple-head{margin-bottom:0}
.connection-search-open{width:100%;border:0;border-radius:15px;background:linear-gradient(135deg,#1377d4,#075db8);color:#fff;font-weight:800;font-size:16px;padding:15px 18px;box-shadow:0 10px 24px rgba(19,119,212,.24);cursor:pointer}
.connection-search-open:active{transform:translateY(1px)}
.connection-nearby-section{display:grid;gap:10px}
.connection-nearby-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.connection-nearby-head h3{margin:0;font-size:17px;color:#183a5d}
.connection-nearby-head p{margin:3px 0 0;font-size:12px;color:#6b7f93}
.connection-quick-filter{margin:0}
.connection-search-overlay{position:fixed;inset:0;z-index:130;background:rgba(11,25,47,.48);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;padding:10px}
.connection-search-overlay.hide{display:none!important}
.connection-search-dialog{width:min(680px,100%);max-height:91vh;overflow:auto;background:#fff;border-radius:20px 20px 14px 14px;padding:16px;box-shadow:0 24px 70px rgba(10,30,55,.28);display:grid;gap:13px}
.connection-search-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:sticky;top:-16px;background:#fff;padding:2px 0 8px;z-index:2}
.connection-search-dialog-head h3{margin:0;color:#183a5d;font-size:19px}
.connection-search-dialog-head p{margin:4px 0 0;color:#6b7f93;font-size:12px}
.connection-search-close{width:36px;height:36px;border-radius:50%;border:1px solid #d8e5f1;background:#f6f9fc;color:#31506f;font-size:25px;line-height:1;cursor:pointer;flex:0 0 auto}
.connection-search-actions{position:sticky;bottom:-16px;background:#fff;padding:8px 0 2px;z-index:2}
.connection-match-list{padding-bottom:8px}
body.connection-search-opened{overflow:hidden}
@media(min-width:700px){.connection-search-overlay{align-items:center}.connection-search-dialog{border-radius:20px}}

/* 8.0.19.5: trạng thái quan hệ tại Kết nối */
.connection-state-button:disabled{opacity:.72;cursor:default;background:#eef4fb;color:#49627f;border-color:#d3e1f0;}


/* 8.0.19.5: AI cố định trước phần thiết lập và tìm nhu cầu */
.ai-needs-assistant{margin:12px 0;padding:12px;border:1px solid #9cc8ff;border-radius:14px;background:linear-gradient(180deg,#f4f9ff 0%,#edf6ff 100%);box-shadow:0 4px 14px rgba(28,111,210,.08)}
.ai-needs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
.ai-needs-head h4{margin:0 0 3px;color:#114d92;font-size:15px}
.ai-needs-head p{margin:0;color:#61758d;font-size:11px;line-height:1.4}
.ai-needs-assistant textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:72px;border:1px solid #b7d6fb;border-radius:11px;padding:10px;background:#fff;color:#18324f;font:inherit;line-height:1.45;outline:none}
.ai-needs-assistant textarea:focus{border-color:#1677ff;box-shadow:0 0 0 3px rgba(22,119,255,.12)}
.ai-needs-button{width:100%;margin-top:8px;border:0;border-radius:11px;padding:10px 12px;background:#146fd1;color:#fff;font-weight:800;cursor:pointer}
.ai-needs-button:disabled{opacity:.66;cursor:wait}
.ai-needs-status{margin-top:7px;min-height:16px;font-size:11px;line-height:1.4}
.ai-needs-result{margin-top:8px}
.ai-needs-result-card{padding:9px 10px;border:1px dashed #73b2f7;border-radius:10px;background:#fff}
.ai-needs-result-card p{margin:4px 0;font-size:11px;line-height:1.4}
.ai-needs-result-title{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#0f4d91}
.manual-filter-title{margin:11px 0 7px;font-size:12px;font-weight:800;color:#30597f;border-top:1px solid #d9e9fb;padding-top:10px}
@media(max-width:520px){.ai-needs-assistant{padding:10px}.ai-needs-head h4{font-size:14px}.ai-needs-assistant textarea{min-height:68px}}

/* KNQD 8.0.22.2 - Màn đầu chỉ đăng nhập; đăng ký chuyển riêng bằng liên kết hướng dẫn */


/* KNQD 8.0.22.2 - Cô lập view: Kết nối chỉ hiển thị khi tab Kết nối đang active */
.view.connection-simple-view:not(.active){display:none!important}


/* 8.0.22.2 - Trung tâm Kiếm tiền và ba module độc lập */
.earning-center-view.active,.earning-chat-view.active{display:grid;gap:12px;}
.earning-center-intro{display:grid;gap:3px;padding:12px 14px;border:1px solid #c8ddf5;border-radius:16px;background:linear-gradient(135deg,#f4f9ff,#fff8ed);color:#173b63;}
.earning-center-intro strong{font-size:15px;}
.earning-center-intro span{font-size:11px;color:#5b7190;}
.earning-module-grid{display:grid;gap:10px;}
.earning-module-card{width:100%;display:grid;grid-template-columns:44px 1fr 22px;align-items:center;gap:10px;padding:14px;border:1px solid #c5dcf5;border-radius:17px;background:#fff;text-align:left;color:#173b63;box-shadow:0 7px 18px rgba(31,88,145,.07);}
.earning-module-card:hover{border-color:#7bb7f5;background:#f8fbff;}
.earning-module-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eaf4ff;font-size:23px;}
.earning-module-copy{display:grid;gap:4px;min-width:0;}
.earning-module-copy b{font-size:14px;}
.earning-module-copy small{font-size:10.5px;line-height:1.35;color:#5b7190;}
.earning-module-arrow{font-size:28px;color:#1677ff;font-weight:700;}
.earning-status-card,.earning-guide-card,.earning-fee-guide,.module-guide-card{border-color:#c6dcf4;}
.earning-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0;}
.earning-status-grid>div,.referral-summary-grid>div{display:grid;gap:2px;padding:9px;border:1px solid #d8e8f8;border-radius:12px;background:#f8fbff;}
.earning-status-grid span,.referral-summary-grid span{font-size:9.5px;color:#6a7f9b;}
.earning-status-grid strong,.referral-summary-grid strong{font-size:12px;color:#183b63;}
.earning-steps{margin:8px 0 12px;padding-left:22px;color:#304f72;font-size:11px;line-height:1.55;}
.earning-steps.compact{margin-bottom:8px;}
.earning-steps li+li{margin-top:4px;}
.earning-guide-lead{margin:6px 0 12px;color:#3d5879;font-size:11px;line-height:1.45;}
.expert-application-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.expert-application-form label{position:relative;margin:0;}
.expert-application-form label:nth-child(4),.expert-application-form button,.expert-application-form .earning-inline-status{grid-column:1/-1;}
.field-suffix{position:absolute;right:9px;bottom:10px;font-size:9px;color:#6a7f9b;font-weight:800;}
.earning-inline-status{font-size:10px;line-height:1.35;}
.earning-fee-equation{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0;}
.earning-fee-equation>*{padding:9px;border-radius:11px;background:#f1f7ff;border:1px solid #d4e6f8;font-size:10.5px;color:#284d76;}
.earning-fee-equation b{background:#e8f7ef;border-color:#bfe8d1;color:#087d48;}
.referral-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px;}
@media(max-width:420px){.expert-application-form{grid-template-columns:1fr}.expert-application-form label:nth-child(4),.expert-application-form button,.expert-application-form .earning-inline-status{grid-column:auto}.earning-hub-button{flex-basis:68px}.earning-fee-equation{grid-template-columns:1fr}.referral-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.referral-summary-grid strong{font-size:11px}}


/* KNQD 8.0.22.2 - Đăng ký gọn trên điện thoại, điều khoản đầy đủ và khóa xác nhận đến khi đọc hết */
#formRegister .auth-grid label{font-size:10.5px;line-height:1.2;margin:8px 0 4px;}
#formRegister .auth-grid input{font-size:13.5px;padding:10px 11px;border-radius:11px;}
#formRegister .auth-grid input::placeholder{font-size:10.5px;color:#7b8799;opacity:1;}
.terms-compact{margin-top:8px;border:1px solid #cfe1f5;border-radius:12px;background:#f8fbff;overflow:hidden;}
.terms-compact summary{cursor:pointer;padding:9px 11px;font-size:11px;font-weight:850;color:#24517d;line-height:1.25;}
.terms-compact .registration-terms-box{border:0;border-top:1px solid #d8e8fa;border-radius:0;margin:0;max-height:205px;min-height:185px;padding:9px 10px;scroll-behavior:smooth;overscroll-behavior:contain;background:#fff;}
.registration-terms-box:focus{outline:2px solid rgba(22,119,255,.24);outline-offset:-2px;}
.terms-section{padding:0 0 8px;margin:0 0 8px;border-bottom:1px dashed #d9e6f4;}
.terms-section:last-of-type{border-bottom:0;}
.terms-section h4{margin:0 0 4px;font-size:11.5px;line-height:1.3;color:#173f6d;}
.terms-section p,.terms-section li{font-size:10.5px;line-height:1.42;color:#455a73;}
.terms-section p{margin:3px 0;}
.terms-section ul{margin:3px 0 0;padding-left:17px;}
.terms-section li+li{margin-top:3px;}
.terms-end-marker{text-align:center;padding:5px 0 2px;font-size:10px;font-weight:800;color:#1677ff;}
.terms-scroll-status{margin:6px 2px 4px;font-size:10px;line-height:1.35;color:#7a5a00;}
.terms-scroll-status.done{color:#087d48;font-weight:750;}
.terms-checkline{margin:4px 0 0!important;font-size:11px!important;line-height:1.3;transition:opacity .18s ease;}
.terms-checkline.locked{opacity:.5;cursor:not-allowed;}
.terms-checkline.unlocked{opacity:1;}
.terms-checkline input:disabled{cursor:not-allowed;}
#registerSubmit:disabled{opacity:.48;box-shadow:none;cursor:not-allowed;}
@media(max-width:520px){
  #formRegister .auth-grid{gap:0 7px;}
  #formRegister .auth-grid label{font-size:9.8px;margin-top:7px;}
  #formRegister .auth-grid input{font-size:13px;padding:9px 10px;}
  #formRegister .auth-grid input::placeholder{font-size:9.8px;}
  .terms-compact .registration-terms-box{max-height:190px;min-height:175px;}
  .terms-section h4{font-size:11px;}
  .terms-section p,.terms-section li{font-size:10px;line-height:1.4;}
}

/* KNQD 8.0.22.2 - Bật/tắt thẻ Bạn bè và thẻ Chuyên gia trong Hồ sơ */
.default-friend-toggle-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.default-friend-toggle-row>div{min-width:0;flex:1}
.need-card-switch{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:10px;font-weight:800;color:#315475;cursor:pointer;user-select:none}
.need-card-switch input{position:absolute;opacity:0;pointer-events:none}
.need-switch-track{position:relative;width:35px;height:20px;border-radius:999px;background:#cdd9e7;border:1px solid #b8c8da;transition:.18s ease;flex:0 0 auto}
.need-switch-track i{position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(25,53,80,.25);transition:.18s ease}
.need-card-switch input:checked+.need-switch-track{background:#16a56a;border-color:#0e945d}
.need-card-switch input:checked+.need-switch-track i{transform:translateX(15px)}
.need-card-switch input:disabled+.need-switch-track{opacity:.48}
.need-card-switch input:disabled~b{opacity:.55}
.expert-profile-card{border-color:#b8d8fb;background:linear-gradient(180deg,#f8fbff,#fff)}
.expert-profile-head{margin-bottom:7px}
.expert-profile-summary{display:grid;gap:4px;font-size:11px;line-height:1.42;color:#315475}
.expert-profile-summary p{margin:0}
.expert-profile-summary span{color:#6d8196}
.expert-card-path{color:#0d5cb7}
.expert-profile-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}
.expert-profile-form{display:grid;gap:8px;margin-top:11px;padding-top:11px;border-top:1px solid #d7e8fa}
.expert-profile-form label{margin:0;font-size:10px;font-weight:800;color:#315475}
.expert-profile-form input,.expert-profile-form select,.expert-profile-form textarea{margin-top:4px;font-size:12px;padding:9px 10px;border-radius:10px}
.expert-profile-form textarea{resize:vertical}
.expert-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.expert-location-grid{grid-template-columns:1fr 1fr 1fr}
.expert-setting-grid{align-items:end}
.expert-earning-check{display:flex;align-items:center;gap:7px;min-height:42px;border:1px solid #d5e6f8;border-radius:11px;padding:8px 10px;background:#f8fbff}
.expert-earning-check input{margin:0;width:17px;height:17px}
.expert-profile-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.expert-profile-status{font-size:10px;line-height:1.4}
.public-expert-card{margin-top:12px;padding:11px;border:1px solid #c7def7;border-radius:14px;background:#f6faff}
.public-expert-card p{margin:5px 0;font-size:11px;line-height:1.45;white-space:pre-line}
@media(max-width:520px){
  .default-friend-toggle-row{gap:7px}
  .need-card-switch{font-size:9.5px}
  .expert-form-grid,.expert-location-grid{grid-template-columns:1fr 1fr}
  .expert-location-grid label:last-child{grid-column:1/-1}
  .expert-profile-form input,.expert-profile-form select,.expert-profile-form textarea{font-size:11.5px}
}
/* Kiểu hiển thị AI cũ được giữ tương thích; giao diện AI đã tắt trong 8.0.22.2 */
.ai-needs-badges{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.ai-needs-result-card p b{color:#0f4d91}

/* KNQD 8.0.22.2 - Thẻ Bạn bè, Cung–Cầu và tìm kiếm dùng chung */
.match-kind-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0 12px;padding:4px;border:1px solid #cfe1f5;border-radius:13px;background:#eef6ff}
.match-kind-tab{border:0;border-radius:10px;padding:9px 10px;background:transparent;color:#315475;font-size:12px;font-weight:850;cursor:pointer}
.match-kind-tab.active{background:#1677ff;color:#fff;box-shadow:0 3px 10px rgba(22,119,255,.2)}
.match-filter-panel{display:grid;gap:8px}
.match-filter-note{margin:0 2px 8px;font-size:10px;line-height:1.4}
.friend-search-grid{grid-template-columns:1fr 1fr}
.service-mode-search{margin:8px 0}
.service-mode-search label{display:grid;gap:4px;font-size:10px;font-weight:800;color:#315475}
.service-mode-search select{font-size:12px;padding:9px 10px;border-radius:10px}
.need-editor-section{display:grid;gap:9px}
.friend-fixed-layer{display:flex;align-items:center;gap:9px;border:1px solid #cfe3f8;border-radius:11px;padding:9px 10px;background:#f5faff;color:#174b82}
.friend-fixed-layer span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;color:#6a829b}
.friend-fixed-layer b{font-size:12px}
.friend-editor-grid{grid-template-columns:1.15fr .85fr 1fr}
.friend-extra-row label{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800;color:#315475}
.friend-extra-row input{flex:1;margin:0;font-size:12px;padding:9px 10px;border-radius:10px}
.friend-extra-row span{font-size:10px;color:#6d8196}
.service-modes-wrap{border:1px solid #d3e5f7;border-radius:12px;padding:10px;background:#f8fbff}
.service-modes-title{font-size:11px;font-weight:850;color:#174b82;margin-bottom:7px}
.service-mode-all,.service-modes-list label{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:750;color:#315475}
.service-mode-all{padding-bottom:7px;margin-bottom:7px;border-bottom:1px dashed #cddff1}
.service-modes-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.service-modes-wrap input{width:16px;height:16px;margin:0;flex:0 0 auto}
.service-modes-wrap .muted{font-size:9.5px;margin:8px 0 0}
.friend-card-compact{display:grid;gap:6px}
.friend-card-compact.is-hidden{opacity:.65}
.default-friend-title{margin:0;color:#174b82;font-size:11px;font-weight:850}
.default-friend-path{margin:3px 0 0!important;color:#0d5cb7;font-size:12px!important;font-weight:850}
.need-interest,.need-service-modes{margin:0;font-size:10.5px;line-height:1.42;color:#315475}
.need-service-modes{color:#0d6a54;font-weight:750}
.default-friend-toggle-row .need-card-switch{flex-direction:row-reverse}
.needs-manager-card .module-title h3{font-size:13px}
@media(max-width:520px){
  .friend-editor-grid{grid-template-columns:1fr 1fr}
  .friend-editor-grid label:last-child{grid-column:1/-1}
  .service-modes-list{grid-template-columns:1fr}
  .friend-search-grid{grid-template-columns:1fr 1fr}
  .match-kind-tab{font-size:11px;padding:8px}
}

/* KNQD 8.0.22.2 - Admin Center gọn, mobile-first */
.admin-view{padding-bottom:86px}.admin-head{align-items:flex-start}.admin-layout{display:grid;grid-template-columns:1fr;gap:10px}.admin-nav{display:flex;gap:6px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:none;position:sticky;top:58px;z-index:8;background:var(--page,#eef7ff)}.admin-nav::-webkit-scrollbar{display:none}.admin-nav button{position:relative;white-space:nowrap;border:1px solid #cbdff1;background:#fff;border-radius:12px;padding:9px 12px;font-weight:700;color:#375269}.admin-nav button.active{background:#1677ff;color:#fff;border-color:#1677ff}.admin-nav-count{display:inline-flex;min-width:19px;height:19px;align-items:center;justify-content:center;margin-left:5px;border-radius:10px;background:#e53935;color:#fff;font-size:11px}.admin-content{min-width:0}.admin-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:4px 0 10px}.admin-stat{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:#fff;border:1px solid #d8e7f5;border-radius:14px;padding:12px;text-align:left;min-height:72px}.admin-stat b{font-size:20px;color:#12334e}.admin-stat span{font-size:12px;color:#678096}.admin-stat.warn{border-color:#f2cf7e;background:#fffaf0}.admin-stat.danger{border-color:#efb0b0;background:#fff4f4}.admin-stat.green{border-color:#a8dfc0;background:#f2fff7}.admin-toolbar{margin-bottom:10px}.admin-list{display:flex;flex-direction:column;gap:10px}.admin-loading,.admin-error,.admin-empty{background:#fff;border:1px dashed #c6d8e7;border-radius:14px;padding:18px;text-align:center;color:#6b8194}.admin-error{border-color:#efb0b0;color:#8a2e2e}.admin-error button{margin-top:8px}.admin-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.admin-section-title h3,.admin-section-title h4{margin:0}.admin-section-title p{margin:3px 0 0;color:#6b8194;font-size:13px}.admin-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-task{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;background:#fff;border:1px solid #d7e6f3;border-radius:14px;text-align:left}.admin-task b{font-size:24px;color:#1677ff}.admin-task span{font-weight:800;color:#243f55}.admin-task small{color:#72889a}.admin-two-col{display:grid;grid-template-columns:1fr;gap:10px}.admin-kpi-list{display:flex;flex-direction:column}.admin-kpi-list p{display:flex;justify-content:space-between;gap:10px;margin:0;padding:9px 0;border-bottom:1px solid #edf3f7}.admin-kpi-list p:last-child{border-bottom:0}.admin-kpi-list span{color:#678096}.admin-kpi-list b{text-align:right}.admin-table-list{display:flex;flex-direction:column;gap:2px}.admin-log-row{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:10px 0;border-bottom:1px solid #edf3f7}.admin-log-row:last-child{border-bottom:0}.admin-log-row span{color:#597287;font-size:13px}.admin-log-row small{grid-column:2;grid-row:1/3;color:#7c8e9c;text-align:right}.admin-log-row p{grid-column:1/-1;margin:3px 0 0;color:#6c7f8f;font-size:13px}.admin-filter-bar{display:grid;grid-template-columns:1fr;gap:7px;background:#fff;border:1px solid #d7e6f3;padding:10px;border-radius:14px}.admin-filter-bar input,.admin-filter-bar select,.admin-compact-form input,.admin-compact-form select{width:100%;min-width:0}.admin-member-list{display:flex;flex-direction:column;gap:7px}.admin-member-row{display:grid;grid-template-columns:1fr;gap:7px;width:100%;padding:12px;background:#fff;border:1px solid #d8e7f5;border-radius:14px;text-align:left}.admin-member-main{display:flex;justify-content:space-between;gap:10px}.admin-member-main span{color:#607b91;font-size:12px}.admin-member-flags{display:flex;gap:5px;flex-wrap:wrap}.admin-member-meta{display:flex;flex-wrap:wrap;gap:5px 12px;color:#647c90;font-size:12px}.admin-status{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:3px 8px;background:#eef3f7;color:#557087;font-size:11px;font-weight:800}.admin-status.green{background:#e7f8ee;color:#197444}.admin-status.warn{background:#fff1cc;color:#8a6000}.admin-status.danger{background:#ffe3e3;color:#9b2d2d}.admin-status.muted{background:#eef1f4;color:#6e7b86}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px}.admin-pagination button,.admin-detail-head button,.admin-card-row button,.admin-action-grid button,.admin-review-row button{border:1px solid #c7daea;background:#fff;border-radius:10px;padding:8px 10px;font-weight:700}.admin-detail-head{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #d7e6f3;border-radius:14px;padding:10px}.admin-detail-head>div{flex:1;min-width:0}.admin-detail-head h3,.admin-detail-head p{margin:0}.admin-detail-head p{color:#617c91;font-size:12px}.admin-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}.admin-action-grid .danger,.admin-review-row .danger{background:#fff0f0;border-color:#efb2b2;color:#a12e2e}.admin-action-grid .green,.admin-review-row .green{background:#ebfff3;border-color:#a9dfbf;color:#16723e}.admin-card-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start;padding:10px 0;border-bottom:1px solid #edf3f7}.admin-card-row>div{min-width:0}.admin-card-row span,.admin-card-row p{display:block;margin:3px 0 0;color:#667e91;font-size:12px}.admin-card-row button{grid-column:2}.admin-review-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 0;border-bottom:1px solid #edf3f7}.admin-review-row:last-child{border-bottom:0}.admin-review-row>div:first-child{min-width:0}.admin-review-row b,.admin-review-row span,.admin-review-row small{display:block}.admin-review-row span,.admin-review-row small{color:#647d90;font-size:12px}.admin-review-row p{margin:5px 0;color:#4f687b}.admin-review-row .item-actions{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}.admin-compact-form{display:grid;grid-template-columns:1fr;gap:8px}.admin-compact-form h4{margin:0 0 3px}.admin-member-preview{display:flex;flex-direction:column;gap:2px;padding:9px;border-radius:10px;background:#f2f8fd;color:#536f84;font-size:12px}.admin-chip-grid{display:flex;flex-wrap:wrap;gap:7px}.admin-chip-grid span{background:#eff7ff;border:1px solid #cfe2f4;border-radius:999px;padding:7px 10px;font-size:12px}.admin-category-grid{display:grid;grid-template-columns:1fr;gap:7px}.admin-category-grid>div{display:flex;flex-direction:column;gap:3px;border:1px solid #e0ebf4;border-radius:12px;padding:10px}.admin-category-grid span,.admin-category-grid small{color:#647d91;font-size:12px}.admin-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-health-grid .card{display:flex;flex-direction:column;gap:7px;margin:0}.admin-health-grid p{margin:0;color:#647d91;font-size:12px}
@media(min-width:760px){.admin-layout{grid-template-columns:190px minmax(0,1fr);align-items:start}.admin-nav{position:sticky;top:72px;display:flex;flex-direction:column;overflow:visible;padding:8px;background:#fff;border:1px solid #d8e7f5;border-radius:16px}.admin-nav button{text-align:left;width:100%}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-task-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-filter-bar{grid-template-columns:minmax(220px,1fr) 150px 150px auto}.admin-member-row{grid-template-columns:minmax(180px,1.2fr) minmax(180px,1fr) minmax(260px,1.3fr);align-items:center}.admin-member-meta{justify-content:flex-end}.admin-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-review-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.admin-review-row .item-actions{grid-column:auto}.admin-compact-form{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-compact-form h4,.admin-member-preview,.admin-compact-form .primary{grid-column:1/-1}}


/* KNQD 8.0.22.2 - Admin dễ đọc: menu thu gọn, biểu mẫu một cột, không cắt ô */
.admin-head{display:flex!important;align-items:flex-start!important;gap:10px!important}
.admin-head>div:first-child{min-width:0;flex:1}
.admin-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto}
.admin-nav-toggle{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap}
.admin-layout{display:block!important;min-width:0!important}
.admin-content{width:100%!important;min-width:0!important}
.admin-nav{
  display:none!important;
  position:fixed!important;
  z-index:91!important;
  top:calc(env(safe-area-inset-top,0px) + 62px)!important;
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  width:min(456px,calc(100vw - 24px))!important;
  max-height:calc(100vh - env(safe-area-inset-top,0px) - 82px)!important;
  overflow:auto!important;
  flex-direction:column!important;
  gap:6px!important;
  padding:10px!important;
  background:#fff!important;
  border:1px solid #c9dded!important;
  border-radius:16px!important;
  box-shadow:0 20px 55px rgba(18,53,81,.28)!important;
}
.admin-nav.open{display:flex!important}
.admin-nav-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 7px;border-bottom:1px solid #e4edf5}
.admin-nav-title b{font-size:14px;color:#244760}
.admin-nav-title button{width:34px!important;height:34px!important;padding:0!important;display:grid!important;place-items:center!important;border-radius:10px!important;font-size:23px!important;line-height:1!important}
.admin-nav>button[data-admin-tab]{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;min-height:44px!important;text-align:left!important;white-space:normal!important;line-height:1.25!important;padding:10px 12px!important}
.admin-nav-backdrop{display:none;position:fixed;z-index:90;inset:0;border:0;padding:0;background:rgba(12,34,52,.28)}
.admin-nav-backdrop.open{display:block}
body.admin-nav-open{overflow:hidden}
.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
.admin-stat{min-width:0!important;min-height:82px!important;padding:11px!important;overflow:visible!important}
.admin-stat b{display:block;width:100%;font-size:clamp(17px,5vw,22px)!important;line-height:1.15!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
.admin-stat span{font-size:12px!important;line-height:1.25!important;white-space:normal!important}
.admin-two-col,.admin-finance-stack,.admin-compact-form,.admin-form{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;width:100%!important;min-width:0!important}
.admin-finance-card{padding:14px!important;overflow:visible!important}
.admin-form-title{display:grid;gap:4px;margin-bottom:2px}
.admin-form-title h4{margin:0;font-size:16px;color:#183b55}
.admin-form-title p{margin:0;color:#637d90;font-size:12px;line-height:1.45}
.admin-field{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;margin:0!important;min-width:0!important;color:#27485f!important}
.admin-field>span{display:block;font-size:13px;font-weight:850;line-height:1.35}
.admin-field>small{display:block;color:#6a8294;font-size:11px;line-height:1.4}
.admin-field input,.admin-field select,.admin-field textarea{
  width:100%!important;
  min-width:0!important;
  min-height:44px!important;
  margin:0!important;
  padding:10px 11px!important;
  border:1px solid #c7dbea!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#17364d!important;
  font-size:14px!important;
  line-height:1.35!important;
  box-sizing:border-box!important;
}
.admin-field textarea{min-height:84px!important;resize:vertical!important}
.admin-field input::placeholder,.admin-field textarea::placeholder{color:#8a9ba8!important;opacity:1!important}
.admin-lookup-row{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;min-width:0!important}
.admin-lookup-row button{width:100%!important;min-height:42px!important;border:1px solid #a9cae5!important;border-radius:11px!important;background:#f2f8ff!important;color:#155e99!important;font-size:13px!important;font-weight:850!important;padding:9px 12px!important;white-space:normal!important}
.admin-member-preview{width:100%!important;min-width:0!important;min-height:64px!important;box-sizing:border-box!important;overflow:visible!important}
.admin-member-result{width:100%!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:start!important}
.admin-member-result b{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
.admin-member-balances{justify-content:flex-start!important}
.admin-primary-wide{width:100%!important;min-height:46px!important;padding:11px 14px!important;white-space:normal!important;line-height:1.3!important}
.admin-section-title{flex-wrap:wrap!important}
.admin-section-title h3,.admin-section-title h4,.admin-section-title p,.admin-kpi-list b,.admin-kpi-list span{overflow-wrap:anywhere!important;white-space:normal!important}
.admin-review-row,.admin-log-row,.admin-card-row,.admin-member-row{min-width:0!important;overflow:visible!important}
.admin-review-row span,.admin-review-row p,.admin-review-row small,.admin-log-row span,.admin-log-row p,.admin-card-row span,.admin-card-row p{overflow-wrap:anywhere!important;white-space:normal!important}
@media(min-width:430px){
  .admin-lookup-row{grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important}
  .admin-lookup-row button{width:auto!important;min-width:145px!important}
  .admin-member-result{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
  .admin-member-balances{justify-content:flex-end!important}
}
@media(max-width:390px){
  .admin-head{flex-direction:column!important}
  .admin-head-actions{width:100%;justify-content:space-between}
  .admin-head-actions .pill{flex:1;min-width:0;padding-left:8px!important;padding-right:8px!important}
  .admin-stats{grid-template-columns:1fr 1fr!important}
  .admin-stat b{font-size:17px!important}
}
/* Admin header luôn tách dòng trong khung điện thoại 480px để không ép tiêu đề */
.admin-head{flex-direction:column!important}
.admin-head-actions{width:100%!important;justify-content:space-between!important}
.admin-head-actions .pill{flex:1!important;min-width:0!important;white-space:normal!important}


/* KNQD 8.0.22.2 - Quyền vị trí và khoảng cách gần đúng */
.nearby-location-notice{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0;padding:10px 12px;border:1px solid #cfe0f7;border-radius:14px;background:#f3f8ff;color:#315477;font-size:13px;line-height:1.4}
.nearby-location-notice.location-ok{border-color:#bfe7ce;background:#f1fbf5;color:#17663b}
.nearby-location-notice .mini{flex:0 0 auto;white-space:nowrap}
.location-permission-overlay{position:fixed;inset:0;z-index:1600;display:grid;place-items:center;padding:18px;background:rgba(17,35,63,.5);backdrop-filter:blur(3px)}
.location-permission-overlay.hide{display:none}
.location-permission-card{width:min(100%,420px);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border:1px solid #dce8f6;border-radius:24px;box-shadow:0 24px 70px rgba(17,35,63,.28);padding:24px;text-align:center}
.location-permission-icon{font-size:42px;line-height:1;margin-bottom:8px}
.location-permission-card h2{margin:0 0 12px;font-size:22px;line-height:1.25;color:#16365c}
.location-permission-card>p{margin:0;color:#51677e;line-height:1.55}
.location-permission-help{margin-top:12px!important;padding:10px 12px;border-radius:12px;background:#fff4e8;color:#8a4d00!important;text-align:left;font-size:13px}
.location-permission-actions{display:grid;gap:10px;margin-top:20px}
.location-permission-actions button{width:100%;min-height:46px;font-size:15px}
.location-permission-privacy{margin-top:14px!important;font-size:12px;color:#71849a!important}
body.location-permission-open{overflow:hidden}
@media(max-width:480px){.location-permission-overlay{align-items:end;padding:10px}.location-permission-card{width:100%;border-radius:24px 24px 16px 16px;padding:22px 18px}.nearby-location-notice{align-items:flex-start;flex-direction:column}.nearby-location-notice .mini{align-self:stretch}}

/* KNQD 8.2.3.3 - Cài ứng dụng từ Menu, tách riêng Android và iPhone */
.app-install-view{padding-bottom:96px}
.app-install-head{align-items:flex-start}
.app-install-head h2{margin-bottom:5px}
.install-device-summary{margin:0 0 14px;padding:12px 14px;border-radius:14px;background:#eaf4ff;color:#244c73;line-height:1.45}
.install-installed-banner{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:14px;border:1px solid #a6ddb9;border-radius:16px;background:#effcf3;color:#185b2e}
.install-installed-banner>span{font-size:28px}.install-installed-banner p{margin:3px 0 0;color:#3d6d4c}
.install-platform-list{display:flex;flex-direction:column;gap:14px}
.install-platform-card{padding:16px;border-radius:20px;overflow:hidden}
.install-platform-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.install-platform-title h3{margin:0 0 4px;font-size:20px}.install-platform-title p{margin:0;color:#64788c;line-height:1.45}
.install-platform-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:15px;font-size:25px}
.android-icon{background:#e8f8ee}.iphone-icon{background:#f2f3f6}
.install-direct-area,.install-manual-area,.install-checking-area,.install-success-state{padding:13px;border-radius:15px;background:#f7faff}
.install-direct-area p,.install-manual-area p,.install-checking-area p{margin:0 0 11px;line-height:1.5}
.install-success-state{background:#effcf3;color:#17612f;font-weight:700}
.install-main-button,.install-guide-toggle{width:100%;min-height:46px;font-size:16px}
.install-checking-area{display:flex;align-items:center;gap:10px}.install-checking-area p{margin:0}
.install-spinner{width:20px;height:20px;border:3px solid #cfe3f7;border-top-color:#1677ff;border-radius:50%;animation:install-spin .8s linear infinite}
@keyframes install-spin{to{transform:rotate(360deg)}}
.install-guide-details{margin-top:13px;padding:15px;border:1px solid #d8e6f4;border-radius:17px;background:#fff}
.install-guide-details h4{margin:0 0 12px;font-size:17px;line-height:1.4}
.install-step-list{margin:0;padding-left:25px}.install-step-list li{padding:0 0 14px 4px;line-height:1.5}.install-step-list li:last-child{padding-bottom:0}
.install-step-list li>b{display:block;margin-bottom:4px;color:#173c60}.install-step-list p{margin:0;color:#536b82}
.install-url-box{display:flex;flex-direction:column;gap:9px;margin:9px 0;padding:11px;border:1px dashed #9cbcdf;border-radius:13px;background:#f3f8ff}
.install-url-box code{display:block;overflow-wrap:anywhere;font-size:13px;color:#164f87}.install-url-box button{align-self:flex-start}
.install-visual-row{display:flex;align-items:center;gap:10px;margin-top:9px;padding:9px 11px;border-radius:12px;background:#f5f7fa;color:#4e6275}
.chrome-icon-demo{position:relative;display:inline-block;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:conic-gradient(#db4437 0 33%,#f4b400 0 56%,#0f9d58 0 78%,#db4437 0)}
.chrome-icon-demo:after{content:"";position:absolute;inset:9px;border-radius:50%;background:#4285f4;border:2px solid #fff}
.safari-icon-demo{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#e7f3ff;font-size:24px}
.install-note-card{margin-top:14px;padding:15px}.install-note-card h3{margin:0 0 7px}.install-note-card p{margin:0;color:#5d7185;line-height:1.55}
@media (min-width:720px){.install-platform-card{padding:18px}.install-url-box{flex-direction:row;align-items:center;justify-content:space-between}.install-url-box button{align-self:auto;flex:0 0 auto}}

/* KNQD 8.2.3.3 - Kiểm soát cập nhật PWA, không cắt ngang thao tác */
.install-update-card{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-top:14px;padding:15px}
.install-update-card h3{margin:0 0 6px}.install-update-card p{margin:0;color:#5d7185;line-height:1.5}
.install-update-actions{display:flex;flex:0 0 auto;gap:8px}.install-update-actions button{min-height:40px}
.pwa-update-overlay{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(10,31,52,.58);backdrop-filter:blur(4px)}
.pwa-update-card{width:min(420px,100%);padding:24px;border-radius:22px;background:#fff;box-shadow:0 24px 80px rgba(7,31,55,.3);text-align:center}
.pwa-update-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 12px;border-radius:18px;background:#eaf4ff;color:#1677ff;font-size:34px;font-weight:800}
.pwa-update-card h2{margin:0 0 9px;font-size:22px;color:#173c60}.pwa-update-card>p{margin:0;color:#5d7185;line-height:1.55}
.pwa-update-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.pwa-update-actions button{min-height:46px;font-size:15px}
.pwa-update-note{margin-top:12px!important;font-size:12px;color:#7a8c9d!important}
body.pwa-update-open{overflow:hidden}
@media(max-width:560px){.install-update-card{flex-direction:column}.install-update-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.pwa-update-overlay{align-items:flex-end;padding:10px}.pwa-update-card{border-radius:24px 24px 16px 16px;padding:22px 18px}}

/* KNQD 8.2.3.3 - Nền đấu giá ghim thẻ trong Admin Tài chính */
.admin-auction-card{display:grid;gap:14px}
.admin-auction-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.admin-auction-kpis>div{display:grid;gap:3px;padding:11px;border:1px solid #d7e6f3;border-radius:12px;background:#f8fbff;min-width:0}
.admin-auction-kpis b{font-size:18px;color:#155e99;overflow-wrap:anywhere}
.admin-auction-kpis span{font-size:11px;line-height:1.35;color:#667f92}
.admin-auction-settings-form{padding:12px;border:1px solid #dce8f2;border-radius:14px;background:#fbfdff}
.admin-switch-field{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid #cfe1ef;border-radius:12px;background:#f3f9ff;color:#24465f}
.admin-switch-field input{width:20px;height:20px;margin:1px 0 0;flex:0 0 auto}
.admin-switch-field>span{display:grid;gap:3px;min-width:0}
.admin-switch-field b{font-size:13px}.admin-switch-field small{font-size:11px;line-height:1.4;color:#688196}
.admin-input-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
.admin-input-suffix>span{min-width:44px;text-align:center;font-size:12px;font-weight:800;color:#547087}
.admin-auction-rule{display:grid;gap:6px;padding:12px;border-left:4px solid #1677ff;border-radius:10px;background:#f2f8ff}
.admin-auction-rule b{color:#174e7c}.admin-auction-rule p{margin:0;font-size:12px;line-height:1.5;color:#526f86}
@media(min-width:620px){.admin-auction-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* KNQD 8.2.3.3 - Thành viên đấu giá ghim thẻ */
.auction-pin-button{border-color:#f2b84b!important;background:#fff8e8!important;color:#8a5b00!important;font-weight:700}
.auction-pin-button.auction-active{background:#fff0bd!important;border-color:#db9a12!important;color:#6f4700!important}
.auction-member-overlay{position:fixed;inset:0;z-index:1300;display:flex;align-items:flex-end;justify-content:center;padding:12px;background:rgba(15,34,53,.5)}
.auction-member-overlay.hide{display:none}
.auction-member-card{width:min(100%,520px);max-height:92vh;overflow:auto;display:grid;gap:12px;padding:16px;border-radius:20px 20px 12px 12px;background:#fff;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.auction-member-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.auction-member-head h3{margin:0;color:#174e7c}.auction-member-head p{margin:4px 0 0;color:#60798d;font-size:12px;line-height:1.45}
.auction-scope-box{display:grid;gap:4px;padding:11px;border:1px solid #dce9f3;border-radius:13px;background:#f7fbff}
.auction-scope-box b{color:#164f7e}.auction-scope-box p{margin:0;font-size:12px;line-height:1.45;color:#577186}
.auction-member-status{display:grid;gap:10px}.auction-message{padding:11px;border-radius:12px;border:1px solid #dce8f2;background:#f8fbff}
.auction-message b{display:block;margin-bottom:4px;color:#174e7c}.auction-message p{margin:0;font-size:12px;line-height:1.5;color:#557186}
.auction-message.warn{border-color:#f2d694;background:#fff9e9}.auction-message.warn b{color:#845d00}
.auction-message.success{border-color:#bfe2ca;background:#f0fbf4}.auction-message.success b{color:#17713a}
.auction-wallet-line{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;background:#f5f8fb;font-size:12px}
.auction-wallet-line b{font-size:14px;color:#164f7e}
.auction-rank-list{display:grid;gap:6px}.auction-rank-list>b{font-size:13px;color:#365d79}
.auction-rank-row{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #e1eaf1;border-radius:9px;font-size:12px}
.auction-rank-row.mine{border-color:#efb943;background:#fff8e6}.auction-rank-row strong{color:#174e7c}
.auction-bid-form{display:grid;gap:10px}.auction-bid-form.hide{display:none}.auction-bid-form .field{display:grid;gap:6px}
.auction-bid-form .field span,#auctionServiceModeField span{font-size:12px;font-weight:700;color:#3e617a}
.auction-bid-form input,#auctionServiceModeField select{width:100%;min-height:44px;padding:10px;border:1px solid #cddce8;border-radius:11px;background:#fff;font:inherit}
.auction-cancel-btn{width:100%;min-height:42px}.auction-cancel-btn.hide{display:none}
.auction-safety-note{margin:0;padding:10px;border-left:4px solid #1677ff;border-radius:8px;background:#f2f8ff;color:#526f86;font-size:11px;line-height:1.5}
@media(min-width:620px){.auction-member-overlay{align-items:center}.auction-member-card{border-radius:20px}}

/* KNQD 8.2.3.3 - Giá theo số vị trí và công tắc gia hạn */
.auction-price-required{display:grid;gap:3px;padding:11px;border:1px solid #bcd9ef;border-radius:12px;background:#eef8ff}
.auction-price-required span{font-size:12px;color:#47677f}.auction-price-required b{font-size:21px;color:#0e5e99}.auction-price-required small{font-size:11px;line-height:1.45;color:#5d7689}
.auction-renew-panel{padding:11px;border:1px solid #d8e5ef;border-radius:12px;background:#f8fbfd}.auction-renew-panel.hide{display:none}
.auction-renew-switch{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.auction-renew-switch input{width:20px;height:20px;margin-top:1px;accent-color:#1677ff}
.auction-renew-switch span{display:grid;gap:3px}.auction-renew-switch b{color:#174e7c;font-size:13px}.auction-renew-switch small{color:#587287;font-size:11px;line-height:1.45}

/* KNQD 8.2.3.3 - Hiển thị vị trí đấu giá của chính thành viên */
.auction-position-card{display:grid;gap:3px;padding:11px;border:1px solid #d6e3ed;border-radius:12px;background:#f7fafc}
.auction-position-card span{font-size:12px;color:#4d6b81}.auction-position-card b{font-size:16px;color:#174e7c}.auction-position-card small{font-size:11px;line-height:1.45;color:#60798c}
.auction-position-card.in-top{border-color:#a8d8b8;background:#effaf3}.auction-position-card.in-top b{color:#17713a}
.auction-position-card.out-top{border-color:#efd08b;background:#fff9e9}.auction-position-card.out-top b{color:#845d00}

/* KNQD 8.2.5.0 - Trung tâm thông báo + thiết lập tập trung trong Cài đặt */
.notification-bell{position:relative;flex:0 0 auto;width:38px;height:38px;border:1px solid #b9d8f4;border-radius:13px;background:#fff;display:grid;place-items:center;padding:0;font-size:18px;box-shadow:0 7px 18px rgba(30,85,140,.08)}
.notification-bell:active{transform:translateY(1px)}
.notification-unread-badge{position:absolute;right:-5px;top:-6px;min-width:20px;height:20px;border-radius:999px;padding:0 5px;display:flex;align-items:center;justify-content:center;background:#e5484d;color:#fff;border:2px solid #f6f8fb;font-size:10px;font-weight:900;line-height:1}
.notification-center-overlay,.notification-permission-overlay{position:fixed;inset:0;z-index:92;background:rgba(15,35,58,.44);display:flex;align-items:flex-end;justify-content:center;padding:0}
.notification-center-sheet{width:min(720px,100%);max-height:min(82vh,780px);background:#f4f9ff;border-radius:24px 24px 0 0;border:1px solid #bed9f1;box-shadow:0 -22px 60px rgba(18,53,81,.25);padding:14px 12px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden}
.notification-center-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:2px 2px 8px}
.notification-center-head h2{margin:0;font-size:22px;color:#173b5d}.notification-center-head p{margin:3px 0 0;color:#617d97;font-size:12px}
.notification-close{width:36px;height:36px;border:1px solid #c5dceb;border-radius:12px;background:#fff;color:#33526b;font-size:24px;line-height:1;display:grid;place-items:center;padding:0;flex:0 0 auto}
.notification-center-actions{display:flex;justify-content:flex-end;padding:0 2px 8px}.notification-center-actions .mini{padding:7px 10px}
.notification-category-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:5px;background:#e7f2fc;border-radius:14px;margin-bottom:9px;overflow:auto}
.notification-category-tabs button{min-width:0;border:0;border-radius:10px;background:transparent;color:#5d7892;font-size:11px;font-weight:850;padding:8px 4px;white-space:nowrap}
.notification-category-tabs button.active{background:#fff;color:#1677ff;box-shadow:0 5px 14px rgba(31,91,145,.09)}
.notification-list{display:flex;flex-direction:column;gap:7px;overflow:auto;padding:1px 1px 6px;min-height:180px}
.notification-item{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) 28px;gap:9px;align-items:flex-start;background:#fff;border:1px solid #d7e7f4;border-radius:15px;padding:11px 8px 11px 10px;box-shadow:0 6px 18px rgba(26,75,118,.04);cursor:pointer}
.notification-item.unread{border-color:#7bb9ef;background:#f8fcff}.notification-item.unread:before{content:"";position:absolute;left:0;top:15px;width:4px;height:22px;border-radius:0 4px 4px 0;background:#1677ff}
.notification-icon{width:38px;height:38px;border-radius:12px;background:#eaf5ff;display:grid;place-items:center;font-size:18px}.notification-main{min-width:0}
.notification-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.notification-title-row b{font-size:13px;color:#173b5d}.notification-title-row time{font-size:10px;color:#7990a4;white-space:nowrap}
.notification-main p{margin:4px 0 0;font-size:12px;line-height:1.4;color:#4f6a82}.notification-main small{display:block;margin-top:4px;color:#748b9f;font-size:10px}
.notification-delete{width:28px;height:28px;border:0;border-radius:9px;background:#f4f7fa;color:#7890a3;font-size:18px;padding:0;display:grid;place-items:center}
.notification-empty{border:1px dashed #c5d9ea;border-radius:14px;background:#fff;padding:24px;text-align:center;color:#70869a;font-size:13px}
.notification-permission-overlay{align-items:center;padding:18px}
.notification-permission-card{position:relative;width:min(430px,100%);background:#fff;border:1px solid #c9def0;border-radius:24px;padding:22px 18px 18px;text-align:center;box-shadow:0 25px 70px rgba(12,43,70,.27)}
.notification-permission-card>.notification-close{position:absolute;right:12px;top:12px}.notification-permission-icon{font-size:38px;margin-bottom:6px}.notification-permission-card h2{margin:0 0 7px;color:#173b5d}.notification-permission-card p{margin:6px 0;color:#526f88;line-height:1.45}.notification-permission-card .notification-privacy-hint{font-size:12px;color:#688298;background:#f1f7fd;border-radius:12px;padding:9px}
.notification-permission-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.notification-permission-actions .primary,.notification-permission-actions .pill{width:100%;margin:0;padding:12px}
.notification-permission-card small{display:block;margin-top:11px;color:#7a8fa2;line-height:1.4}
.notification-settings-card{border-color:#afd4f3!important}.notification-settings-card>.module-title{margin-bottom:4px}.notification-permission-button{width:100%;margin:8px 0 4px;padding:10px}
.notification-settings-form{display:grid;gap:9px;margin-top:10px}.notification-setting-section{border:1px solid #d8e7f4;border-radius:14px;background:#f9fcff;padding:10px}.notification-setting-section h4{margin:0 0 8px;font-size:13px;color:#2d506d}
.notification-switch-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0;padding:7px 0;border-bottom:1px solid #e8f0f6;color:#35536c;font-size:12px}.notification-switch-row:last-child{border-bottom:0}.notification-switch-row input{position:absolute;opacity:0;pointer-events:none}.notification-switch-row i{position:relative;display:block;width:40px;height:22px;border-radius:999px;background:#b7c8d7;flex:0 0 auto;transition:.18s}.notification-switch-row i:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.18s}.notification-switch-row input:checked+i{background:#1677ff}.notification-switch-row input:checked+i:after{transform:translateX(18px)}
.notification-check{display:flex;align-items:center;gap:8px;margin:7px 0;font-size:12px;color:#35536c;font-weight:700}.notification-check input{width:17px;height:17px;margin:0;flex:0 0 auto}.notification-setting-note{font-size:10.5px!important;margin:8px 0 0!important}
.notification-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.notification-time-grid label{margin:5px 0 0;font-size:11px}.notification-time-grid input{height:38px;padding:7px 9px;border-radius:10px;margin-top:3px}
body.notification-center-open,body.notification-permission-open{overflow:hidden}
@media(max-width:520px){.notification-bell{width:34px;height:34px;border-radius:12px;font-size:16px}.notification-category-tabs{grid-template-columns:repeat(5,74px)}.notification-permission-actions{grid-template-columns:1fr}.notification-center-sheet{max-height:86vh}.notification-item{grid-template-columns:34px minmax(0,1fr) 26px}.notification-icon{width:34px;height:34px}}


/* KNQD 8.2.5.0 - Menu chuẩn + Cài đặt theo danh mục */
.side-menu-title{font-size:17px;font-weight:950;color:#183b5c;line-height:1}
.side-menu-logout{border:0;background:transparent;color:#d13d45;font-size:12px;font-weight:900;padding:7px 5px;white-space:nowrap}
.side-link-admin{margin-top:4px;border-style:dashed!important;color:#315d82!important}
.view-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;padding:2px 2px}
.view-page-head h2{margin:0;color:#173b5d;font-size:21px}.view-page-head p{margin:4px 0 0;color:#70869a;font-size:12px}
.settings-page-head{align-items:center}.settings-back{white-space:nowrap}
.settings-category-list{display:grid;gap:8px}
.settings-category-item{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) 18px;align-items:center;gap:10px;text-align:left;border:1px solid #d3e4f2;background:#fff;border-radius:15px;padding:11px 10px;box-shadow:0 6px 18px rgba(26,75,118,.04);color:#244761}
.settings-category-item:active{transform:translateY(1px)}.settings-category-item>span:nth-child(2){min-width:0;display:grid;gap:3px}.settings-category-item b{font-size:13px}.settings-category-item small{font-size:10.5px;line-height:1.35;color:#71879a;font-weight:650}.settings-category-item>i{font-style:normal;font-size:23px;color:#7c9ab2;text-align:center}
.settings-category-icon{width:42px;height:42px;border-radius:13px;background:#eaf5ff;display:grid;place-items:center;font-size:19px}
.settings-detail-area,.settings-detail-panel{display:block}.settings-detail-panel>.notification-settings-card{margin:0}
.settings-info-card{margin:0}.settings-info-card h3{margin:0 0 7px;color:#234b6c}.settings-info-card p{margin:0 0 10px;line-height:1.5;color:#5f788d;font-size:12px}
.guide-category-list{gap:9px}.guide-card{margin:0}.guide-card b{display:block;color:#1e4c72;margin-bottom:5px}.guide-card p{margin:0;color:#60798d;font-size:12px;line-height:1.5}
.community-summary-card{margin-bottom:9px}.community-summary-card h3{margin:0 0 8px;color:#234b6c}.community-summary-card ul{margin:0;padding-left:19px}.community-summary-card li{margin:6px 0;color:#526f85;font-size:12px;line-height:1.45}.community-note{padding:0 3px}
@media(max-width:360px){.settings-category-item{grid-template-columns:38px minmax(0,1fr) 16px;padding:9px 8px}.settings-category-icon{width:38px;height:38px}.side-menu-logout{font-size:11px}}

/* KNQD 8.2.5.0 - Cài đặt tập trung có hiệu lực thật */
.central-settings-form{margin:0;display:grid;gap:10px}
.central-settings-form>.module-title{margin-bottom:2px}
.central-settings-form .notification-switch-row{margin:0;padding:10px 0}
.central-settings-form .notification-switch-row>span{display:grid;gap:3px;min-width:0}
.central-settings-form .notification-switch-row b{font-size:13px;color:#274b68}
.central-settings-form .notification-switch-row small{font-size:10.5px;color:#71879a;line-height:1.4;font-weight:600}
.settings-select-row{display:grid;gap:7px;margin:0;padding:8px 0;color:#31536d;font-size:12px;font-weight:850}
.settings-select-row>span{display:grid;gap:3px}.settings-select-row b{font-size:13px}.settings-select-row small{font-size:10.5px;color:#71879a;line-height:1.4;font-weight:600}
.settings-select-row select{margin:0;height:44px;padding:9px 11px;border-radius:12px}
.settings-live-status{min-height:18px;margin:0;font-size:11px;line-height:1.45}
.settings-live-status.success{color:#087d48}.settings-live-status.error{color:#c7353a}.settings-live-status.info{color:#1d4ed8}
.settings-password-form{display:grid;gap:8px}.settings-password-form label{margin:0}.settings-password-form input{margin-top:5px}
.settings-danger-separator{height:1px;background:#e4edf5;margin:3px 0}
.settings-action-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.settings-action-row>span{display:grid;gap:3px;min-width:0}.settings-action-row b{font-size:13px;color:#274b68}.settings-action-row small{font-size:10.5px;color:#71879a;line-height:1.4}.settings-action-row button{flex:0 0 auto}
.settings-button-stack{display:grid;gap:8px}.settings-button-stack button{width:100%;margin:0;min-height:42px}
.settings-help-note{font-size:11px!important;line-height:1.5;margin:0!important}
.settings-account-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.settings-account-grid>div{min-width:0;padding:10px;border:1px solid #d9e7f2;border-radius:12px;background:#f8fbfe;display:grid;gap:4px}
.settings-account-grid span{font-size:10px;color:#71879a}.settings-account-grid b{font-size:12px;color:#254a68;overflow-wrap:anywhere}
.settings-app-version{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:11px;border:1px solid #d9e7f2;border-radius:12px;background:#f8fbfe;font-size:12px}.settings-app-version span{color:#6c8295}.settings-app-version b{color:#244c6b}
.chat-image-manual-load{margin:0!important;background:#eef6ff!important}
html[data-font-scale="small"]{font-size:14px}html[data-font-scale="normal"]{font-size:16px}html[data-font-scale="large"]{font-size:18px}
body.knqd-compact-ui .card{padding:12px;margin:8px 0;border-radius:15px}
body.knqd-compact-ui .item{padding:10px;border-radius:14px}
body.knqd-compact-ui .settings-category-list{gap:5px}
body.knqd-compact-ui .settings-category-item{padding:8px}
html[data-theme="dark"]{--bg:#101923;--card:#182532;--text:#e6eef6;--muted:#9cb0c2;--line:#304252;--shadow:0 14px 36px rgba(0,0,0,.24)}
html[data-theme="dark"] body,html[data-theme="dark"] .app-shell{background:var(--bg);color:var(--text)}
html[data-theme="dark"] .topbar,html[data-theme="dark"] .bottom-nav{background:rgba(16,25,35,.94)}
html[data-theme="dark"] .card,html[data-theme="dark"] .item,html[data-theme="dark"] .side-menu,html[data-theme="dark"] .side-link,html[data-theme="dark"] .settings-category-item,html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .pill,html[data-theme="dark"] .notification-center-sheet,html[data-theme="dark"] .notification-item{background:#182532;color:var(--text);border-color:var(--line)}
html[data-theme="dark"] .settings-category-item b,html[data-theme="dark"] .view-page-head h2,html[data-theme="dark"] .module-title h3,html[data-theme="dark"] .central-settings-form .notification-switch-row b,html[data-theme="dark"] .settings-action-row b,html[data-theme="dark"] .settings-account-grid b{color:#e4edf5}
html[data-theme="dark"] .settings-category-item small,html[data-theme="dark"] .central-settings-form .notification-switch-row small,html[data-theme="dark"] .settings-action-row small,html[data-theme="dark"] .settings-help-note{color:#9cb0c2}
html[data-theme="dark"] .settings-account-grid>div,html[data-theme="dark"] .settings-app-version,html[data-theme="dark"] .notification-setting-section{background:#14212c;border-color:#304252}
html[data-theme="dark"] .settings-category-icon{background:#21394d}
html[data-theme="dark"] .notification-switch-row{border-color:#304252}
@media(max-width:520px){.settings-account-grid{grid-template-columns:1fr}.settings-action-row{align-items:flex-start;flex-direction:column}.settings-action-row button{width:100%}}
html[data-font-scale="small"] body{font-size:14px}
html[data-font-scale="normal"] body{font-size:16px}
html[data-font-scale="large"] body{font-size:18px}

/* KNQD 8.2.5.0 - Web Push/VAPID khi ứng dụng đóng */
.notification-push-status{margin-top:-4px;padding:8px 10px;border-radius:10px;background:rgba(37,99,235,.07);font-size:12px;line-height:1.4}
[data-theme="dark"] .notification-push-status{background:rgba(96,165,250,.12)}

/* KNQD 8.2.7.0 - Hồ sơ công khai + Bạn bè hoàn chỉnh */
.friend-hub-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.friend-directory-toolbar{grid-template-columns:minmax(0,1fr) 118px}
.friend-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.friend-search-row input{margin:4px 0 0!important}
.friend-search-row .mini{margin-top:4px;min-height:39px;padding:8px 12px}
#friendSearchHint{display:block;margin-top:4px;color:var(--muted);line-height:1.35}
#friendSearchHint.searching{color:var(--brand);font-weight:800}
.friend-hub-row{grid-template-columns:38px minmax(0,1fr) 31px 30px}
.friend-request-row,.friend-blocked-row{grid-template-columns:38px minmax(0,1fr) auto}
.friend-list-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#e6f2ff;border:1px solid #b9d8f5}
.friend-hub-profile small{font-size:9.5px;color:#6b7f95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friend-directory-results{display:grid;gap:7px}
.friend-directory-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:9px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:9px;box-shadow:0 5px 16px rgba(20,33,61,.04)}
.friend-directory-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;background:#e6f2ff;border:1px solid #b9d8f5}
.friend-directory-main{min-width:0;display:grid;gap:3px}
.friend-directory-name{border:0;background:transparent;padding:0;text-align:left;color:var(--text);font-size:13px}
.friend-directory-main>span,.friend-directory-main>small{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friend-directory-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}
.public-profile-actions{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 2px;padding:10px;background:rgba(255,255,255,.72);border:1px solid #b8d9f6;border-radius:14px}
.public-profile-actions button{flex:1 1 120px;min-height:38px}
.public-profile-actions .danger{border-color:#efb3b6;color:#a9282d;background:#fff4f4}
.public-member-code{font-size:11px;color:#54708e;margin-top:3px}
.public-needs-section{margin-top:13px}
.public-need-list{display:grid;gap:7px}
.public-need-card{display:grid;gap:4px;background:#fff;border:1px solid #b9d9f6;border-radius:13px;padding:9px}
.public-need-card>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.public-need-card b{font-size:12px}
.public-need-card small{color:var(--muted)}
.public-need-card p{margin:2px 0 0;font-size:11px;line-height:1.45}
@media(max-width:430px){
  .friend-hub-tab{font-size:10.5px;padding:8px 2px;gap:3px}
  .friend-directory-toolbar{grid-template-columns:1fr}
  .friend-hub-row{grid-template-columns:34px minmax(0,1fr) 30px 28px}
  .friend-request-row,.friend-blocked-row{grid-template-columns:34px minmax(0,1fr)}
  .friend-request-actions,.friend-blocked-row>.mini{grid-column:2}
  .friend-list-avatar{width:32px;height:32px}
  .friend-directory-card{grid-template-columns:42px minmax(0,1fr)}
  .friend-directory-avatar{width:40px;height:40px}
}

/* KNQD 8.2.7.0 - Báo cáo và an toàn cộng đồng */
.safety-report-overlay{position:fixed;inset:0;z-index:1700;background:rgba(9,25,45,.52);display:flex;align-items:flex-end;justify-content:center;padding:12px}
.safety-report-overlay.hide{display:none}
.safety-report-sheet{position:relative;width:min(100%,520px);max-height:88vh;overflow:auto;background:#fff;border-radius:22px 22px 16px 16px;padding:22px 18px 18px;box-shadow:0 20px 60px rgba(0,0,0,.28)}
.safety-report-form{display:grid;gap:14px}.safety-report-form label{display:grid;gap:7px;font-weight:700}.safety-report-form select,.safety-report-form textarea{width:100%;border:1px solid #c9d9ec;border-radius:13px;padding:11px 12px;background:#fff;color:#18324d;font:inherit}.safety-report-target{font-weight:800;color:#b54708;background:#fff3e8;border-radius:12px;padding:10px 12px}.safety-block-option{font-weight:600!important}.safety-my-reports{display:grid;gap:10px}.safety-my-report{border:1px solid #d7e5f4;border-radius:14px;padding:12px;background:#f8fbff}.safety-my-report>div{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.safety-my-report span,.safety-my-report small{color:#65768a;font-size:12px}.safety-my-report p{margin:8px 0 0}.admin-safety-report{border:1px solid #d7e4f2;border-radius:16px;padding:14px;margin-bottom:12px;background:#fff}.admin-safety-report.high{border-color:#f4b8a9;background:#fff9f7}.admin-safety-report-head{display:flex;justify-content:space-between;gap:12px}.admin-safety-meta{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.admin-safety-evidence{font-size:12px;color:#5b6b7b;background:#f5f8fc;border-radius:10px;padding:8px;white-space:pre-wrap}.admin-safety-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.admin-safety-actions button{min-height:40px}.admin-safety-actions .wide{grid-column:1/-1}@media(min-width:700px){.safety-report-overlay{align-items:center}.safety-report-sheet{border-radius:22px}.admin-safety-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* KNQD 8.2.10.2 - Tài chính, biên nhận và đối soát */
.finance-center-card{display:grid;gap:12px}
.finance-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.finance-summary-grid>div{display:flex;flex-direction:column;gap:3px;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--soft,#f6f9ff)}
.finance-summary-grid b{font-size:17px}.finance-summary-grid span{font-size:12px;color:var(--muted)}
.finance-pending-summary{display:grid;gap:6px;padding:10px;border:1px dashed var(--line);border-radius:12px}
.finance-pending-summary p{display:flex;justify-content:space-between;gap:10px;margin:0;font-size:12px}.finance-pending-summary b{text-align:right}
.finance-filter-row{display:flex;gap:6px;overflow:auto;padding-bottom:3px;scrollbar-width:thin}
.finance-filter-row button{flex:0 0 auto;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 10px;font-size:12px}
.finance-filter-row button.active{background:var(--primary);border-color:var(--primary);color:#fff}
.finance-transaction-list{display:grid;gap:7px}
.finance-transaction-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.finance-transaction-main,.finance-transaction-side{display:flex;flex-direction:column;gap:3px;min-width:0}
.finance-transaction-main b,.finance-transaction-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finance-transaction-main small,.finance-transaction-side small{font-size:11px;color:var(--muted)}
.finance-transaction-side{text-align:right}.finance-transaction-side b{font-size:13px;white-space:nowrap}
.finance-direction-in{color:var(--success,#138a43)}.finance-direction-out{color:var(--danger,#c73737)}.finance-direction-neutral{color:var(--muted)}
.finance-receipt-overlay{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:16px;background:rgba(9,24,48,.55)}
.finance-receipt-overlay.hide{display:none}
.finance-receipt-dialog{width:min(100%,430px);max-height:88vh;overflow:auto;background:var(--card);border-radius:18px;padding:16px;box-shadow:0 22px 60px rgba(0,0,0,.28);display:grid;gap:13px}
.finance-receipt-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.finance-receipt-head h3,.finance-receipt-head p{margin:0}.finance-receipt-head p{font-size:12px;color:var(--muted)}
.finance-receipt-head button{border:0;background:transparent;font-size:27px;line-height:1;padding:0 4px}
.finance-receipt-body{display:grid;gap:12px}.finance-receipt-code{display:flex;justify-content:space-between;gap:8px;padding:10px;border-radius:10px;background:var(--soft,#f6f9ff)}
.finance-receipt-code span{color:var(--muted)}.finance-receipt-amount{text-align:center;font-size:22px;font-weight:800;padding:10px}
.finance-receipt-lines{display:grid;gap:7px}.finance-receipt-lines p{display:flex;justify-content:space-between;gap:10px;margin:0;padding-bottom:7px;border-bottom:1px solid var(--line);font-size:12px}.finance-receipt-lines b{text-align:right;word-break:break-word}
.finance-receipt-note{padding:10px;border-radius:10px;background:var(--soft,#f6f9ff);font-size:13px}
.admin-reconcile-card{display:grid;gap:12px}.admin-reconcile-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-reconcile-kpis>div{padding:10px;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:3px}.admin-reconcile-kpis span{font-size:11px;color:var(--muted)}
@media(min-width:700px){.finance-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-reconcile-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* 8.2.10.2 - đấu giá ghim lên kết quả thật */
.auction-pinned-result{border:2px solid #f1b500;box-shadow:0 4px 14px rgba(117,83,0,.14);background:linear-gradient(180deg,#fffdf2,#fff)}
.auction-pinned-badge{background:#fff2b8;color:#624700;border:1px solid #e8bd31;font-weight:800}

/* KNQD 8.2.10.2 - ưu tiên chưa đọc + liên kết Push đúng tài khoản */
.notification-read-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 8px;padding:4px;background:#edf5fc;border:1px solid #d5e6f4;border-radius:13px}
.notification-read-tabs button{border:0;border-radius:9px;background:transparent;color:#58738b;font-size:11px;font-weight:850;padding:8px 10px}
.notification-read-tabs button.active{background:#fff;color:#0f6fd8;box-shadow:0 4px 12px rgba(27,83,132,.09)}
.notification-group-label{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;margin:1px 0 2px;border-radius:10px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.02em;backdrop-filter:blur(7px)}
.notification-group-label b{min-width:22px;height:22px;border-radius:999px;display:grid;place-items:center;font-size:10px}
.notification-group-label.unread-group{color:#075fb8;background:rgba(220,239,255,.96);border:1px solid #a9d4f8}
.notification-group-label.unread-group b{background:#1677ff;color:#fff}
.notification-group-label.read-group{color:#687d8f;background:rgba(240,244,247,.96);border:1px solid #d8e1e8}
.notification-group-label.read-group b{background:#dfe6ec;color:#54697b}
.notification-item.unread{border:2px solid #4ca3ed;background:linear-gradient(135deg,#eaf6ff 0%,#f8fcff 100%);box-shadow:0 8px 22px rgba(22,119,255,.13)}
.notification-item.read{border-color:#d8e1e8;background:#f7f8fa;box-shadow:none;opacity:.86}
.notification-item.read .notification-icon{background:#e9edf1;filter:grayscale(.25)}
.notification-item.read .notification-title-row b{font-weight:700;color:#587084}
.notification-item.read .notification-main p{color:#738797}
.notification-item.unread .notification-title-row b{font-weight:950;color:#0f426d}
.notification-state-row{display:flex;align-items:center;gap:5px;margin:0 0 3px}
.notification-state-dot{width:8px;height:8px;border-radius:50%;background:#9aabb8;flex:0 0 auto}
.notification-state-label{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#7a8c9a}
.notification-item.unread .notification-state-dot{background:#1677ff;box-shadow:0 0 0 4px rgba(22,119,255,.13)}
.notification-item.unread .notification-state-label{color:#0868c7}
.notification-push-account-status{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;margin:9px 0;padding:10px;border:1px solid #cfe1ef;border-radius:12px;background:#f7fbff;font-size:11px}
.notification-push-account-status span{color:#668096}
.notification-push-account-status b{color:#274d6b;text-align:right;max-width:190px;overflow-wrap:anywhere}
.notification-permission-button-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 4px}
.notification-permission-button-row .notification-permission-button{margin:0;width:100%}
.notification-test-button,.notification-refresh-button{width:100%;margin:0}
@media(max-width:520px){.notification-permission-button-row{grid-template-columns:1fr}.notification-push-account-status{grid-template-columns:1fr}.notification-push-account-status b{text-align:left;max-width:none}}
html[data-theme="dark"] .notification-read-tabs{background:#14212c;border-color:#304252}
html[data-theme="dark"] .notification-read-tabs button.active{background:#223344;color:#7bbcff}
html[data-theme="dark"] .notification-item.unread{background:#162d42;border-color:#2f91e8}
html[data-theme="dark"] .notification-item.read{background:#17222c;border-color:#30404d;opacity:.82}
html[data-theme="dark"] .notification-push-account-status{background:#14212c;border-color:#304252}
html[data-theme="dark"] .notification-push-account-status b{color:#dbe8f2}

/* KNQD 8.2.10.2 - làm mới Push theo tài khoản và vé thiết bị */
.notification-refresh-button{border-color:#7da8c7;background:#eef7ff;color:#245a80;font-weight:800}
html[data-theme="dark"] .notification-refresh-button{background:#193044;border-color:#416783;color:#cde8fb}

/* KNQD 8.2.10.5 - VietQR một cột gọn trên điện thoại */
.topup-qr-card[hidden]{display:none!important;}
.topup-qr-card{overflow:hidden;}
.topup-qr-title{margin-bottom:8px;}
.topup-qr-wrap{display:grid;grid-template-columns:1fr;gap:10px;align-items:center;justify-items:center;}
.topup-qr-image{display:block;width:min(58vw,206px);max-width:206px;aspect-ratio:1/1;object-fit:contain;margin:0 auto;border:1px solid var(--line);border-radius:15px;background:#fff;padding:7px;box-shadow:0 7px 20px rgba(25,85,135,.10);}
.topup-qr-summary{width:100%;display:grid;gap:8px;text-align:center;}
.topup-qr-amount{display:block;font-size:26px;line-height:1.05;color:var(--text);letter-spacing:-.02em;}
.topup-transfer-box{display:grid;gap:5px;padding:9px 10px;border:1px solid #cfe0ef;border-radius:12px;background:#f7fbff;text-align:left;}
.topup-transfer-box>span{font-size:11px;color:var(--muted);font-weight:700;}
.topup-transfer-box>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;}
.topup-transfer-box b{min-width:0;overflow-wrap:anywhere;font-size:13px;color:#154e7a;}
.topup-transfer-box .mini{white-space:nowrap;margin:0;}
.topup-bank-compact{display:grid;gap:2px;text-align:center;line-height:1.35;}
.topup-bank-compact b{font-size:14px;overflow-wrap:anywhere;}
.topup-bank-compact span{font-size:12px;color:var(--muted);font-weight:800;}
.topup-qr-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;}
.topup-qr-actions .mini{width:100%;margin:0;}
.topup-qr-note{margin:9px 0 0;color:var(--muted);font-size:11px;line-height:1.45;text-align:center;}
@media (min-width:700px){
  .topup-qr-image{width:214px;max-width:214px;}
  .topup-qr-summary{max-width:430px;}
  .topup-qr-actions{max-width:430px;margin:10px auto 0;}
}
html[data-theme="dark"] .topup-transfer-box{background:#142739;border-color:#334d62;}
html[data-theme="dark"] .topup-transfer-box b{color:#bfe0ff;}

/* KNQD 8.2.10.5 - hướng dẫn bật thông báo rõ ràng, ưu tiên điện thoại */
.notification-setup-summary{margin:8px 0;padding:12px 13px;border:1px solid #c9dff1;border-radius:14px;background:#f6fbff;color:#284c69;font-weight:700;line-height:1.45}
.notification-setup-summary.is-ready{border-color:#a9e5c1;background:#effdf4;color:#14743b}
.notification-setup-summary.is-warning{border-color:#f3d49c;background:#fff9ed;color:#8a5511}
.notification-setup-guide{margin:9px 0;padding:12px 13px;border:1px solid #cfe1ef;border-radius:14px;background:#fff}
.notification-setup-guide>b{display:block;margin-bottom:7px;color:#173f60;font-size:14px}
.notification-setup-guide ol{margin:0;padding-left:21px;color:#49677f;font-size:12px;line-height:1.55}
.notification-setup-guide li+li{margin-top:4px}
.notification-install-guide-button{width:100%;margin-top:10px;padding:10px;border-color:#90b8d8;background:#eef7ff;color:#165b8f;font-weight:800}
.notification-permission-button-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
.notification-permission-button-row .notification-permission-button{min-height:46px;padding:11px 14px;font-size:14px;font-weight:900}
.notification-test-button{min-height:46px;padding:10px 14px;white-space:nowrap}
.notification-technical-details{margin:10px 0 4px;border:1px solid #d4e4f1;border-radius:13px;background:#f8fbfe;overflow:hidden}
.notification-technical-details>summary{cursor:pointer;padding:11px 13px;color:#41657f;font-size:12px;font-weight:800;list-style:none}
.notification-technical-details>summary::-webkit-details-marker{display:none}
.notification-technical-details>summary::after{content:'›';float:right;font-size:18px;line-height:12px;transition:transform .2s ease}
.notification-technical-details[open]>summary::after{transform:rotate(90deg)}
.notification-technical-details .notification-push-account-status{margin:0 10px 10px}
.notification-technical-details .notification-refresh-button{width:calc(100% - 20px);margin:0 10px 10px;padding:10px}
@media(max-width:520px){
  .notification-permission-button-row{grid-template-columns:1fr}
  .notification-test-button{width:100%}
  .notification-setup-summary,.notification-setup-guide{font-size:13px}
}
html[data-theme="dark"] .notification-setup-summary{background:#152432;border-color:#314b60;color:#d7e8f6}
html[data-theme="dark"] .notification-setup-summary.is-ready{background:#153322;border-color:#2d6847;color:#bdf2d0}
html[data-theme="dark"] .notification-setup-summary.is-warning{background:#332817;border-color:#6e542d;color:#ffe0a4}
html[data-theme="dark"] .notification-setup-guide,html[data-theme="dark"] .notification-technical-details{background:#14212c;border-color:#304252}
html[data-theme="dark"] .notification-setup-guide>b{color:#dbe8f2}
html[data-theme="dark"] .notification-setup-guide ol,html[data-theme="dark"] .notification-technical-details>summary{color:#b5cadd}


/* KNQD 8.2.10.6 - quyền thông báo rõ ràng + chat iPhone sáng rõ + ảnh đúng tỷ lệ */
html,body{color-scheme:light only;}
.notification-permission-button-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch;}
.notification-permission-button-row.is-single{grid-template-columns:1fr;}
.notification-permission-button{margin:0!important;min-height:44px;}
.notification-permission-button.is-granted{background:#e9f9ef!important;color:#16713e!important;border:1px solid #a9dfbf!important;box-shadow:none!important;cursor:default;}
.notification-permission-button-row .notification-refresh-button{margin:0;min-height:44px;white-space:nowrap;color:#155b9b;background:#eef7ff;border-color:#a9cff1;}
.chat-panel,.chat-head,.messages,.sendbar,.msg,.sendbar input{color-scheme:light only;}
.messages{color:#14213d!important;-webkit-text-fill-color:#14213d;}
.msg:not(.me){background:#fff!important;color:#17263b!important;-webkit-text-fill-color:#17263b!important;border:1px solid #d8e5f0!important;box-shadow:0 3px 10px rgba(28,72,110,.05);}
.msg.me{background:#1677ff!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#1677ff!important;}
.msg:not(.me) small{color:#60738a!important;-webkit-text-fill-color:#60738a!important;opacity:1!important;}
.msg.me small{color:rgba(255,255,255,.82)!important;-webkit-text-fill-color:rgba(255,255,255,.82)!important;opacity:1!important;}
.sendbar{background:#fff!important;padding-bottom:max(10px,env(safe-area-inset-bottom))!important;}
.sendbar input,.sendbar textarea{appearance:none;-webkit-appearance:none;background:#fff!important;color:#14213d!important;-webkit-text-fill-color:#14213d!important;caret-color:#1677ff!important;border:1px solid #d8e5f0!important;box-shadow:none!important;opacity:1!important;}
.sendbar input::placeholder,.sendbar textarea::placeholder{color:#7b8798!important;-webkit-text-fill-color:#7b8798!important;opacity:1!important;}
.msg.chat-tool-image-message,.msg.me.chat-tool-image-message{padding:5px!important;background:#fff!important;border-color:#cfe0ef!important;overflow:visible!important;-webkit-text-fill-color:initial!important;}
.chat-tool-image-frame{position:relative;display:grid;place-items:center;width:min(260px,72vw);max-width:100%;min-width:min(190px,62vw);min-height:142px;aspect-ratio:4/3;padding:0;border:0;border-radius:13px;overflow:hidden;background:#edf5fb;cursor:zoom-in;}
.chat-tool-image-frame::before{content:'Đang tải ảnh…';position:absolute;color:#61758a;font-size:12px;font-weight:700;}
.chat-tool-image-frame.is-loaded::before{display:none;}
.chat-tool-image-frame.is-error::before{content:'Không tải được ảnh';color:#a33a3a;}
.chat-tool-image{position:relative;z-index:1;display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;background:#fff;border-radius:13px;}
.chat-tool-image-frame.is-loading .chat-tool-image,.chat-tool-image-frame.is-error .chat-tool-image{opacity:0;}
.msg.chat-tool-image-message small{color:#60738a!important;-webkit-text-fill-color:#60738a!important;padding:2px 5px 3px;}
.chat-image-viewer{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:max(54px,calc(env(safe-area-inset-top) + 42px)) 12px max(24px,env(safe-area-inset-bottom));background:rgba(4,13,24,.94);}
.chat-image-viewer.hide{display:none!important;}
.chat-image-viewer img{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;background:#fff;}
.chat-image-viewer-close{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:20px;font-weight:900;}
body.chat-image-viewer-open{overflow:hidden;}
@supports(-webkit-touch-callout:none){
  .chat-panel{background:#fff!important;}
  .messages{-webkit-overflow-scrolling:touch;}
  .msg{font-size:16px;line-height:1.32;}
  .sendbar input{font-size:16px!important;}
}
@media(max-width:520px){
  .notification-permission-button-row{grid-template-columns:1fr 1fr;}
  .notification-permission-button-row .notification-refresh-button{white-space:normal;padding:9px 7px;}
  .notification-permission-button-row .notification-refresh-button.hide{display:none!important;}
  .chat-tool-image-frame{width:min(72vw,280px);min-width:min(210px,64vw);min-height:150px;}
}

/* KNQD 8.2.10.7 - giữ màn hình kiểm tra phiên, không nháy ra đăng nhập khi F5 */
.boot-screen{min-height:calc(100vh - 36px);display:none;place-items:center;padding:24px 8px}
.boot-screen.active{display:grid}
.boot-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px 22px;text-align:center;box-shadow:var(--shadow)}
.boot-card h2{margin:14px 0 8px;font-size:20px;color:#17345f}
.boot-card p{margin:0;color:var(--muted);line-height:1.5}
.boot-card .primary{max-width:220px;margin:18px auto 0}
.boot-spinner{width:42px;height:42px;margin:0 auto;border-radius:50%;border:4px solid #dce9ff;border-top-color:var(--brand);animation:knqdBootSpin .8s linear infinite}
@keyframes knqdBootSpin{to{transform:rotate(360deg)}}
.notification-chat-count{margin-left:auto;border-radius:999px;background:#e8f2ff;color:#145fc5;padding:2px 7px;font-size:11px}

/* KNQD 8.2.10.9 - Điểm uy tín */
.reputation-card{padding:0;overflow:hidden}
.reputation-summary-button{width:100%;border:0;background:transparent;padding:16px;text-align:left;display:grid;gap:7px;color:inherit;cursor:pointer}
.reputation-summary-button>span:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}
.reputation-summary-button>span:first-child b{font-size:17px}.reputation-summary-button>span:first-child small{font-weight:700;color:var(--muted,#65758b)}
.reputation-response{font-size:14px;color:var(--text,#172033)}
.reputation-summary-button>i{font-style:normal;font-weight:800;color:var(--primary,#1677ff);font-size:14px}
.reputation-details{border-top:1px solid rgba(120,130,150,.18);padding:14px 16px 16px;background:rgba(245,248,252,.72)}
.reputation-breakdown{display:grid;gap:8px}.reputation-breakdown>div{display:flex;justify-content:space-between;gap:12px;padding:9px 10px;border-radius:10px;background:#fff}
.reputation-guide-head{margin-top:14px;display:grid;gap:3px}.reputation-guide-head small{color:var(--muted,#65758b)}
.reputation-guidance{display:grid;gap:8px;margin-top:10px}.reputation-guidance>div{line-height:1.45}.reputation-guidance b{color:var(--primary,#1677ff)}
.reputation-complete{font-weight:700;color:#118847}.reputation-rule-note{margin:14px 0 0;line-height:1.5}
.public-reputation-line{font-weight:700;color:#334155;margin:7px 0}
@media(max-width:520px){.reputation-summary-button>span:first-child{align-items:flex-start;flex-direction:column;gap:3px}.reputation-details{padding:12px}}

/* KNQD 8.2.10.18 - Chat ẩn + PIN 4 số, không chạm Chat Core */
.chat-search-toolbar{margin:0 0 10px;padding:10px;border:1px solid #cfe6dc;border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(19,72,54,.06)}
.chat-search-label{display:block;font-weight:800;margin-bottom:6px;color:#174d3b}
.chat-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.chat-search-row input{width:100%;min-width:0;border:1px solid #b9d7ca;border-radius:11px;padding:10px 11px;font-size:15px;background:#fff}
.chat-search-toolbar small{display:block;margin-top:6px;color:#668178;line-height:1.35}
.hidden-chat-panel{margin:0 0 10px;padding:8px;border:1px solid #d7c9ea;border-radius:14px;background:#fbf8ff}
.hidden-chat-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 3px 8px}
.hidden-chat-panel-head>div{display:flex;flex-direction:column;gap:2px}
.hidden-chat-panel-head b{color:#5b2f78}
.hidden-chat-panel-head small{color:#806b8f}
.hidden-chat-list{margin:0}
.hidden-chat-item{border-color:#d9ccea!important;background:#fff!important}
.hidden-chat-modal{position:fixed;inset:0;z-index:10030;display:flex;align-items:flex-end;justify-content:center;padding:12px;background:rgba(10,25,22,.48);backdrop-filter:blur(2px)}
.hidden-chat-modal.hide{display:none}
.hidden-chat-dialog{width:min(100%,460px);max-height:min(88vh,720px);overflow:auto;border-radius:18px 18px 14px 14px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:14px}
.hidden-chat-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.hidden-chat-dialog-head>div{display:flex;flex-direction:column;gap:4px}
.hidden-chat-dialog-head b{font-size:18px;color:#173f34}
.hidden-chat-dialog-head small{color:#687d76;line-height:1.35}
.hidden-chat-dialog-head>button{border:0;background:#edf5f2;border-radius:999px;width:34px;height:34px;font-size:18px;cursor:pointer}
.hidden-chat-form{display:grid;gap:10px}
.hidden-chat-form label{display:grid;gap:5px;font-weight:700;color:#2e4f45}
.hidden-chat-form input[type="password"]{width:100%;box-sizing:border-box;border:1px solid #b9d7ca;border-radius:11px;padding:11px 12px;font-size:17px;letter-spacing:.12em}
.hidden-chat-form button{width:100%}
.hidden-chat-form-status{min-height:20px;margin:0;color:#b12b2b;font-weight:700}
.hidden-chat-warning{margin:0;padding:9px 10px;border-radius:10px;background:#fff4e5;color:#84540a;line-height:1.4}
.hidden-chat-confirm-row{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:8px!important;font-weight:600!important;line-height:1.35}
.hidden-chat-confirm-row input{margin-top:3px}
.hidden-chat-modal-open{overflow:hidden}
.security-action-list{display:grid;gap:8px}
.security-action-list>button{display:grid;grid-template-columns:34px minmax(0,1fr) 20px;align-items:center;gap:8px;width:100%;padding:11px;border:1px solid #d5e8df;border-radius:12px;background:#fff;text-align:left;cursor:pointer}
.security-action-list>button>span:first-child{font-size:20px;text-align:center}
.security-action-list>button>span:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0}
.security-action-list>button b{color:#194b3b}
.security-action-list>button small{color:#6c817a;font-weight:500}
.security-action-list>button i{text-align:right;font-size:22px;color:#6c817a;font-style:normal}
.security-subpanel{margin-top:10px;padding-top:4px}
.security-subpanel h4{margin:0 0 10px;color:#194b3b}
#btnSecurityActionBack{margin-bottom:8px}
@media(min-width:700px){.hidden-chat-modal{align-items:center}.hidden-chat-dialog{border-radius:18px}}


/* KNQD 8.2.10.18 - Admin resource dashboard */
.admin-resource-note{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.45}
.admin-resource-list{display:grid;gap:12px}
.admin-resource-row{border:1px solid #dbe7f4;border-radius:14px;padding:12px;background:#fff}
.admin-resource-head,.admin-resource-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.admin-resource-head span{font-weight:700}.admin-resource-head b{font-size:13px;text-align:right}
.admin-resource-track{height:9px;border-radius:999px;background:#e8eef5;overflow:hidden;margin:9px 0 7px}
.admin-resource-track i{display:block;height:100%;background:#2f9e62;border-radius:999px;min-width:0;transition:width .25s ease}
.admin-resource-row.notice .admin-resource-track i{background:#d69e2e}.admin-resource-row.warn .admin-resource-track i{background:#e67e22}.admin-resource-row.danger .admin-resource-track i{background:#d64545}.admin-resource-row.muted .admin-resource-track i{background:#94a3b8}
.admin-resource-foot{font-size:12px;color:var(--muted)}.admin-resource-foot strong{font-size:12px}.admin-resource-row.green .admin-resource-foot strong{color:#18794e}.admin-resource-row.notice .admin-resource-foot strong,.admin-resource-row.warn .admin-resource-foot strong{color:#a05a00}.admin-resource-row.danger .admin-resource-foot strong{color:#b42318}.admin-resource-row small{display:block;margin-top:6px;color:var(--muted)}
.admin-resource-mini{margin-top:12px}
@media(max-width:560px){.admin-resource-head,.admin-resource-foot{align-items:flex-start;flex-direction:column}.admin-resource-head b{text-align:left}.admin-resource-foot{gap:3px}}

/* KNQD - giao diện phiên bản và cập nhật PWA */
.version-channel-banner{position:sticky;top:0;z-index:1200;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid rgba(0,0,0,.08);font-size:13px}
.version-channel-banner.hide{display:none!important}
.version-channel-banner.debug{background:#fff3cd;color:#664d03}
.version-channel-banner.release{background:#d1e7dd;color:#0f5132}
.version-channel-banner div{display:flex;flex-direction:column;gap:2px;min-width:0}
.version-channel-banner b{font-size:13px}.version-channel-banner span{font-size:11px;opacity:.88}
.version-channel-banner button{border:0;border-radius:999px;padding:7px 10px;background:#fff;color:inherit;font-weight:700;white-space:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.1)}
.managed-version-card small{display:block;margin-top:5px;color:var(--muted,#64748b);line-height:1.45}
.managed-update-overlay{position:fixed;inset:0;z-index:3200;background:rgba(15,23,42,.58);display:grid;place-items:center;padding:16px}
.managed-update-overlay.hide{display:none!important}
.managed-update-card{width:min(420px,100%);background:#fff;border-radius:20px;padding:22px;box-shadow:0 24px 70px rgba(15,23,42,.28);text-align:center}
.managed-update-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;background:#e8f1ff;color:#1677ff;font-size:26px;font-weight:900}
.managed-update-card h2{margin:0 0 8px}.managed-update-card p{margin:6px 0;color:#475569;line-height:1.5}
.managed-update-notes{margin:12px 0;padding:12px;border-radius:12px;background:#f8fafc;text-align:left;white-space:pre-line;color:#334155;line-height:1.5}
.managed-update-actions{display:flex;gap:10px;justify-content:center;margin-top:16px}.managed-update-actions button{flex:1}
.managed-update-note{font-size:12px!important;margin-top:12px!important}
body.managed-update-open{overflow:hidden}
.admin-version-hero{display:grid;gap:10px}
.admin-version-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-version-kpi{padding:12px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}
.admin-version-kpi span{display:block;font-size:12px;color:#64748b}.admin-version-kpi b{display:block;margin-top:4px;font-size:18px}
.admin-version-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-version-actions button{flex:1 1 145px}
.admin-version-form{display:grid;gap:10px}.admin-version-form textarea{min-height:100px;resize:vertical}
.admin-version-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf2f7}.admin-version-row:last-child{border-bottom:0}
.admin-version-row div{display:flex;flex-direction:column;gap:3px}.admin-version-row small{color:#64748b}
@media(max-width:420px){.admin-version-grid{grid-template-columns:1fr}.managed-update-actions{flex-direction:column}.version-channel-banner{align-items:flex-start}}

/* 8.2.13.0 - Danh mục nhu cầu 4 lớp */
.needs-four-layer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.needs-title-label,.needs-map-label{display:grid;gap:5px;margin-top:8px;font-weight:850;color:#234f6c}
.needs-title-label input,.needs-map-label input,.needs-distance-filter select{width:100%;border:1px solid #a9cbe8;border-radius:11px;background:#fff;padding:10px 11px;font:inherit;color:#18324d}
.needs-map-note{display:block;margin-top:4px;line-height:1.35}
.need-map-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:7px 0;color:#526b82;font-size:12px}
.need-map-line a{font-weight:850;color:#126bc5;text-decoration:none}.need-map-line small{color:#71869a}
.needs-distance-filter{display:grid;gap:5px;margin-top:9px;font-size:11px;font-weight:850;color:#275570}
.admin-toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}.admin-toolbar-actions button{min-height:38px;border:1px solid #a9cbe8;border-radius:10px;background:#fff;color:#1769aa;font-weight:850;padding:8px 10px}.admin-toolbar-actions button.primary{background:#1677ff;color:#fff;border-color:#1677ff}
@media(max-width:520px){.needs-four-layer-grid{grid-template-columns:1fr 1fr}.admin-toolbar-actions{width:100%}.admin-toolbar-actions button{flex:1 1 46%}}

/* KNQD 8.2.13.0 - Biểu mẫu nhu cầu gọn: Lớp 3/4 cùng dòng, khu vực 3 ô cùng dòng */
.needs-four-layer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.needs-four-layer-grid label:nth-child(3),.needs-four-layer-grid label:nth-child(4){grid-column:auto!important}
.needs-location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:7px}
.needs-location-grid label{min-width:0;margin:0;font-size:10px;font-weight:850;color:#275570}
.needs-location-grid input{width:100%;min-width:0;margin-top:3px;padding:8px 6px;border:1px solid #a9cbe8;border-radius:9px;background:#fff;font-size:11px;min-height:34px;color:#18324d}
@media(max-width:520px){
  .needs-four-layer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .needs-four-layer-grid label:nth-child(3),.needs-four-layer-grid label:nth-child(4){grid-column:auto!important}
  .needs-location-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .needs-location-grid label{font-size:9px}
  .needs-location-grid input{padding:8px 4px;font-size:10px}
}


/* KNQD 8.2.13.0 - Chat kín dấu PIN + Bạn bè gọn, tìm tức thì và tìm chính xác mã */
.friends-hub-view{padding-top:0}
.friend-hub-topbar{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:6px;align-items:center;margin:0 0 7px;position:sticky;top:52px;z-index:12}
.friend-hub-tabs{position:static;top:auto;z-index:auto;margin:0;padding:4px;gap:3px;border-radius:13px}
.friend-hub-tab{padding:8px 3px;font-size:11px;gap:3px;border-radius:9px}
.friend-hub-tab span{min-width:17px;height:17px;padding:0 4px;font-size:9px}
.friend-hub-refresh{width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#1d69b7;font-size:22px;font-weight:900;line-height:1;padding:0;display:grid;place-items:center;box-shadow:0 4px 13px rgba(20,33,61,.05);cursor:pointer}
.friend-hub-refresh:active{transform:rotate(22deg)}
.friend-hub-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 106px;gap:6px;align-items:center;margin:0 0 7px}
.friend-search-shell{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) 30px;align-items:center;gap:2px;margin:0!important;min-height:40px;border:1px solid #bad6ef;border-radius:999px;background:#fff;padding:0 5px 0 8px;box-shadow:0 3px 12px rgba(21,78,130,.05)}
.friend-search-icon{display:grid;place-items:center;color:#5d7892;font-size:19px;line-height:1;transform:rotate(-18deg)}
.friend-search-shell input{width:100%;min-width:0;margin:0!important;padding:9px 2px!important;min-height:38px!important;border:0!important;outline:0;background:transparent;font-size:13px!important;color:var(--text);box-shadow:none!important}
.friend-search-shell input::-webkit-search-cancel-button{display:none}
.friend-search-clear{width:28px;height:28px;border:0;border-radius:999px;background:#edf4fb;color:#55708a;font-size:20px;line-height:1;padding:0;display:grid;place-items:center;cursor:pointer}
.friend-sort-select{width:100%;min-height:40px;margin:0!important;padding:8px 25px 8px 9px!important;border:1px solid #c5d9eb;border-radius:12px;background:#fff;font-size:11px!important;color:#36536e}
.friend-search-hint{grid-column:1/-1;margin:-1px 8px 0;color:#657b90;font-size:10px;line-height:1.3}
.friend-search-hint.searching{color:#1768b6}
.friend-hub-row,.friend-request-row,.friend-blocked-row{padding:6px 7px;gap:5px}
.friend-hub-profile{gap:1px}
.friend-hub-profile b{font-size:12.5px}
.friend-hub-profile span{font-size:10px}
.friend-hub-profile small{font-size:9px}
.friend-directory-card{padding:7px 8px;gap:7px;border-radius:12px}
.friend-directory-main{gap:2px}
.friend-directory-actions{margin-top:3px}
.chat-search-toolbar{margin:0 0 8px;padding:6px 7px;border-radius:13px}
.chat-search-toolbar>.chat-search-label,.chat-search-toolbar>small{display:none!important}
.chat-search-row{grid-template-columns:24px minmax(0,1fr) auto;gap:5px;border:1px solid #b9d7ca;border-radius:999px;background:#fff;padding:3px 4px 3px 8px}
.chat-search-icon{display:grid;place-items:center;color:#668178;font-size:19px;line-height:1;transform:rotate(-18deg)}
.chat-search-row input{border:0!important;border-radius:0!important;padding:8px 2px!important;font-size:13px!important;outline:0;box-shadow:none!important;background:transparent!important}
.chat-search-row .mini{min-height:32px;border-radius:999px;padding:6px 12px}
@media(max-width:420px){
  .friend-hub-topbar{top:50px;grid-template-columns:minmax(0,1fr) 34px;gap:4px}
  .friend-hub-refresh{width:34px;height:34px;border-radius:10px}
  .friend-hub-tabs{gap:2px;padding:3px}
  .friend-hub-tab{font-size:9.5px;padding:7px 1px;gap:2px}
  .friend-hub-tab span{min-width:15px;height:15px;font-size:8px;padding:0 3px}
  .friend-hub-toolbar{grid-template-columns:minmax(0,1fr) 92px;gap:5px}
  .friend-search-shell{grid-template-columns:22px minmax(0,1fr) 28px;padding-left:7px}
  .friend-search-shell input{font-size:12px!important}
  .friend-sort-select{font-size:10px!important;padding-left:7px!important}
}

/* KNQD 8.2.13.0 - three optional R2 profile photos */
.profile-photo-section{margin-top:10px;padding-top:10px;border-top:1px solid rgba(92,150,205,.22)}
.profile-photo-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
.profile-photo-heading b{font-size:13px;color:#173d67}
.profile-photo-heading small{max-width:68%;text-align:right;color:#58738e;font-size:10px;line-height:1.35}
.profile-photo-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.profile-photo-slot{position:relative;aspect-ratio:4/5;min-width:0;border:1px dashed #8ebdeb;border-radius:13px;background:#f4faff;color:#2375c9;overflow:hidden}
.profile-photo-slot.empty{display:grid;place-items:center;align-content:center;gap:2px;font-weight:800}
.profile-photo-slot.empty b{font-size:24px;line-height:1}
.profile-photo-slot.empty span{font-size:10px}
.profile-photo-slot.has-photo{border-style:solid;background:#eaf4ff}
.profile-photo-main{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#eaf4ff;overflow:hidden}
.profile-photo-main img{display:block;width:100%;height:100%;object-fit:cover}
.profile-photo-main span{position:absolute;left:5px;right:5px;bottom:5px;padding:3px 5px;border-radius:8px;background:rgba(5,24,45,.68);color:#fff;font-size:9px;font-weight:800}
.profile-photo-delete{position:absolute;z-index:2;top:4px;right:4px;width:24px;height:24px;padding:0;border:2px solid #fff;border-radius:50%;background:#d92d3c;color:#fff;font-size:16px;line-height:18px;font-weight:900;box-shadow:0 3px 8px rgba(0,0,0,.18)}
.profile-photo-main:disabled,.profile-photo-slot:disabled{opacity:.55;cursor:wait}
.public-profile-photos{margin:10px 0;padding:10px;border:1px solid #cfe4f8;border-radius:14px;background:#f7fbff}
.public-profile-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.public-profile-photo-grid a{display:block;aspect-ratio:4/5;border-radius:11px;overflow:hidden;background:#eaf4ff;border:1px solid #c5ddf3}
.public-profile-photo-grid img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:420px){.profile-photo-heading{display:block}.profile-photo-heading small{display:block;max-width:none;text-align:left;margin-top:3px}.profile-photo-slots{gap:6px}}

/* KNQD 8.2.13.0 - TEST chuẩn chỉ giữ dải đỏ trên cùng; không có cột vàng phụ */
html:not(.knqd-debug-mode) .version-channel-banner{display:none!important;}

/* KNQD 8.2.13.0 - TEST chuẩn và TEST Debug tách giao diện; Debug mobile chỉ phủ, không ép lệch app */
html:not(.knqd-debug-mode) .debug-dock,
html:not(.knqd-debug-mode) .debug-panel{display:none!important;}
@media (max-width:1049px){
  html.knqd-debug-mode body{padding-left:0!important;padding-right:0!important;overflow-x:hidden!important;}
  html.knqd-debug-mode .app-shell{width:min(100%,480px)!important;max-width:480px!important;margin:0 auto!important;transform:none!important;}
  html.knqd-debug-mode .version-channel-banner{position:fixed!important;left:8px!important;right:8px!important;top:30px!important;width:auto!important;max-width:none!important;z-index:100002!important;}
  html.knqd-debug-mode .debug-panel{
    position:fixed!important;inset:30px 8px 58px 8px!important;
    width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;
    transform:none!important;border-radius:16px!important;z-index:100003!important;
  }
  html.knqd-debug-mode .debug-dock{
    position:fixed!important;left:8px!important;right:8px!important;bottom:8px!important;
    width:auto!important;max-width:none!important;transform:none!important;z-index:100004!important;
    display:grid!important;grid-template-columns:1fr 1.4fr 1fr!important;
  }
}

/* 8.2.13.0 - three optional R2 photos for each need card */
.need-photo-editor{margin-top:8px;padding:8px;border:1px solid #b7d8f5;border-radius:12px;background:#f7fbff}
.need-photo-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.need-photo-heading b{font-size:12px}.need-photo-heading small{font-size:9.5px;color:var(--muted);text-align:right}
.need-photo-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.need-photo-slot{position:relative;aspect-ratio:4/3;min-width:0;border:1px dashed #7fb6e7;border-radius:11px;background:#eef7ff;color:#2375c9;overflow:hidden}
.need-photo-slot.empty{display:grid;place-items:center;align-content:center;gap:1px;font-weight:800}
.need-photo-slot.empty b{font-size:21px;line-height:1}.need-photo-slot.empty span{font-size:9.5px}
.need-photo-slot.has-photo{border-style:solid;background:#e7f2fc}
.need-photo-main{width:100%;height:100%;padding:0;border:0;background:transparent;position:relative;display:block}
.need-photo-main img{width:100%;height:100%;object-fit:cover;display:block}
.need-photo-main span{position:absolute;left:4px;right:4px;bottom:4px;padding:3px 4px;border-radius:7px;background:rgba(16,48,78,.78);color:#fff;font-size:9px;font-weight:800}
.need-photo-delete{position:absolute;right:3px;top:3px;width:21px;height:21px;border:0;border-radius:50%;padding:0;background:#cf2d3a;color:#fff;font-weight:900;line-height:21px;z-index:2}
.need-photo-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:7px 0}
.need-photo-strip a{display:block;aspect-ratio:4/3;border-radius:9px;overflow:hidden;border:1px solid #b7d8f5;background:#eaf4ff}
.need-photo-strip img{display:block;width:100%;height:100%;object-fit:cover}
.match-need-photo{display:block;margin:7px 0;border-radius:11px;overflow:hidden;border:1px solid #b7d8f5;background:#eaf4ff;aspect-ratio:16/9}
.match-need-photo img{display:block;width:100%;height:100%;object-fit:cover}
.public-need-card .need-photo-strip{margin:4px 0 2px}
@media(max-width:420px){.need-photo-heading{display:block}.need-photo-heading small{display:block;text-align:left;margin-top:2px}.need-photo-slots{gap:5px}}

/* KNQD 8.3.6.0 - paid photo slots by day */
.media-slot-buy{grid-column:1/-1;border:1px solid #77aee2;border-radius:12px;background:#edf7ff;color:#1168b5;padding:10px 12px;font-weight:800;text-align:center}
.media-slot-buy:hover{background:#e1f1ff}
.media-slot-paid{position:absolute;left:5px;top:5px;z-index:2;max-width:calc(100% - 10px);padding:2px 5px;border-radius:999px;background:rgba(15,74,126,.86);color:#fff;font-size:8px;font-style:normal;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-photo-slot.paid,.need-photo-slot.paid{border-color:#e0a832;background:#fff9e8}
.profile-photo-slot.expired,.need-photo-slot.expired{border-style:dashed;border-color:#d28a8a;background:#fff1f1}
.profile-photo-slot.expired .profile-photo-main,.need-photo-slot.expired .need-photo-main{display:grid;place-items:center;align-content:center;gap:3px;width:100%;height:100%;border:0;background:transparent;color:#a33;font-weight:800}
.profile-photo-slot.expired b,.need-photo-slot.expired b{font-size:22px}
.profile-photo-slot.expired small,.need-photo-slot.expired small{font-size:9px;color:#8a3333}
.admin-check-row{display:flex;align-items:center;gap:9px;padding:9px 0;font-weight:800}
.admin-check-row input{width:18px;height:18px}

/* KNQD 8.3.6.0 - Kết nối dạng hồ sơ ảnh, lọc dọc bên phải */
.connection-deck-view{padding:0!important;gap:7px!important;overflow:visible}.connection-deck-view.active{display:grid!important}.connection-deck-shell{position:relative;width:100%;min-height:calc(100dvh - 162px);border-radius:18px;overflow:hidden;background:linear-gradient(160deg,#dfefff,#b8d9f6);box-shadow:0 12px 34px rgba(19,73,119,.17)}
.connection-card-host{position:absolute;inset:0}.connection-profile-card{position:absolute;inset:0;display:grid;grid-template-rows:minmax(0,1fr) 70px;background:#0c1b2c;transform-origin:50% 95%;transition:transform .2s ease,opacity .2s ease;touch-action:pan-y}.connection-profile-card.dragging{transition:none}.connection-profile-card.fly-left{transform:translateX(-130%) rotate(-18deg);opacity:0}.connection-profile-card.fly-right{transform:translateX(130%) rotate(18deg);opacity:0}
.connection-photo-stage{position:relative;min-height:0;overflow:hidden;background:#10263d}.connection-main-photo{width:100%;height:100%;display:block;object-fit:cover;object-position:center;user-select:none;-webkit-user-drag:none}.connection-card-gradient{position:absolute;inset:42% 0 0;background:linear-gradient(transparent,rgba(5,13,23,.35) 36%,rgba(5,13,23,.9))}.connection-card-info{position:absolute;left:18px;right:68px;bottom:17px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.5)}.connection-card-info h2{margin:0 0 5px;font-size:28px;line-height:1.05}.connection-card-info p{margin:0;font-size:14px}.connection-card-info small{display:block;margin-top:4px;color:rgba(255,255,255,.82);font-size:11px}.connection-card-need{display:inline-block;max-width:100%;margin-top:8px;padding:6px 9px;border-radius:999px;background:rgba(4,24,44,.65);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.connection-photo-arrow{position:absolute;top:45%;z-index:3;width:38px;height:52px;border:0;border-radius:12px;background:rgba(4,18,31,.36);color:#fff;font-size:34px;line-height:1;display:grid;place-items:center}.connection-photo-arrow.prev{left:8px}.connection-photo-arrow.next{right:55px}.connection-photo-dots{position:absolute;top:11px;left:12px;right:58px;z-index:3;display:flex;gap:4px}.connection-photo-dots span{height:3px;flex:1;border-radius:4px;background:rgba(255,255,255,.38)}.connection-photo-dots span.active{background:#fff}
.connection-decision-row{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:10px;padding:7px 13px 9px;background:#fff}.connection-decision{width:54px;height:54px;border-radius:50%;border:1px solid #d7e3ef;background:#fff;font-size:29px;font-weight:900;box-shadow:0 7px 18px rgba(29,72,110,.12)}.connection-decision.dismiss{color:#e34855}.connection-decision.accept{color:#168a57}.connection-decision.accept.pending{color:#7690a5;background:#eef3f7}.connection-swipe-hint{text-align:center;color:#74889b;font-size:10px;line-height:1.3}
.connection-filter-rail{position:absolute;z-index:8;right:8px;top:11px;display:grid;gap:7px;justify-items:end}.connection-filter-chip{min-width:43px;height:43px;border:1px solid rgba(255,255,255,.52);border-radius:14px;background:rgba(7,29,49,.64);backdrop-filter:blur(7px);color:#fff;font-weight:900;box-shadow:0 5px 14px rgba(0,0,0,.14);padding:0 9px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-filter-chip.distance{font-size:11px}.connection-filter-chip.gender{font-size:23px}.connection-filter-chip.need{font-size:10px}.connection-filter-chip.need.selected{background:rgba(19,119,212,.9);border-color:#b7ddff}.connection-filter-chip.reload{font-size:19px}
.connection-filter-sheet{position:absolute;z-index:12;right:59px;top:10px;width:min(280px,calc(100% - 74px));max-height:calc(100% - 20px);overflow:auto;border:1px solid rgba(255,255,255,.72);border-radius:17px;background:rgba(255,255,255,.96);box-shadow:0 15px 42px rgba(7,34,59,.28);padding:12px}.connection-filter-sheet.hide{display:none!important}.connection-filter-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;color:#173f60}.connection-filter-sheet-head button{width:31px;height:31px;border:0;border-radius:50%;background:#eaf2f8;color:#31506f;font-size:22px}.connection-filter-panel{display:grid;gap:10px}.connection-filter-panel.hide{display:none!important}.connection-distance-row{display:flex;justify-content:space-between;align-items:center;color:#637b90;font-size:11px}.connection-distance-row b{color:#1169b5;font-size:18px}.connection-filter-panel input[type=range]{width:100%;accent-color:#1677d2}.connection-nationwide-toggle{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important;font-size:12px!important}.connection-nationwide-toggle input{width:18px;height:18px}.connection-gender-option{display:grid;grid-template-columns:34px 1fr;align-items:center;text-align:left;border:1px solid #d4e2ee;border-radius:12px;background:#fff;padding:9px 12px;color:#24455f;font-weight:800}.connection-gender-option span{font-size:23px}.connection-gender-option.selected{border-color:#1680db;background:#edf7ff;color:#075da7}.connection-filter-panel label{display:grid;gap:5px;font-size:11px;font-weight:800;color:#536d83}.connection-filter-panel select{margin:0!important;width:100%;min-height:39px;border:1px solid #c9dbe9;border-radius:11px;background:#fff;padding:7px 9px;color:#173750}
.connection-loading-card,.connection-empty-card{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;padding:30px;color:#274d69;background:linear-gradient(160deg,#eff8ff,#cfe8fb)}.connection-loading-pulse{width:78px;height:78px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(17,117,204,.35);animation:connectionPulse 1.4s infinite}.connection-empty-card>div{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#16865a;font-size:32px}.connection-empty-card b{font-size:18px;margin-top:10px}.connection-empty-card p{margin:5px 0 12px;color:#647d91}@keyframes connectionPulse{70%{box-shadow:0 0 0 28px rgba(17,117,204,0)}100%{box-shadow:0 0 0 0 rgba(17,117,204,0)}}
.connection-location-gate{position:absolute;z-index:15;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;padding:34px;background:rgba(239,248,255,.97);color:#24455f}.connection-location-gate.hide{display:none!important}.connection-location-gate>div{font-size:44px}.connection-location-gate b{font-size:18px;margin-top:8px}.connection-location-gate p{max-width:340px;font-size:12px;line-height:1.5}.connection-location-gate button{max-width:270px}.connection-deck-summary{margin:0;padding:0 4px;color:#5c7488;font-size:11px;text-align:center}.connection-location-notice{margin:0!important;padding:7px 9px!important;font-size:10px!important}.connection-location-notice .mini{padding:5px 8px!important;font-size:10px!important}
@media(max-width:430px){.connection-deck-shell{min-height:calc(100dvh - 147px);border-radius:0;margin-left:-12px;width:calc(100% + 24px)}.connection-card-info h2{font-size:25px}.connection-filter-rail{right:7px}.connection-photo-arrow.next{right:54px}.connection-swipe-hint{font-size:9px}}
html[data-theme="dark"] .connection-filter-sheet{background:rgba(24,37,50,.97);border-color:#40556a}.connection-filter-sheet{color:#173750}

/* KNQD 8.3.6.0 - ghim Ví và điều hướng, Quan tâm 7 ngày, quay lại một hồ sơ */
html:not(.knqd-debug-mode) #mainTopbar:not(.hide){position:fixed!important;left:50%!important;top:0!important;transform:translateX(-50%)!important;width:min(100%,480px)!important;max-width:480px!important;z-index:120!important;padding:8px 10px!important;border-bottom:1px solid rgba(216,232,247,.95)!important;box-shadow:0 5px 18px rgba(24,71,111,.08)!important}
html:not(.knqd-debug-mode) #screenHome{height:100dvh!important;overflow-y:auto!important;overscroll-behavior:contain;padding-top:80px!important;padding-bottom:calc(84px + env(safe-area-inset-bottom))!important;scroll-padding-top:64px}
html:not(.knqd-debug-mode) .bottom-nav{position:fixed!important;bottom:0!important;left:50%!important;transform:translateX(-50%)!important;z-index:130!important}
.connection-decision-center{min-width:0;display:grid;gap:4px;justify-items:center;align-content:center}
.connection-back-button{border:0;border-radius:999px;background:#eaf4ff;color:#126bb5;padding:5px 9px;font-size:10px;font-weight:900;white-space:nowrap}
.connection-empty-back{margin-top:4px}
.friend-interest-countdown{color:#b25a00!important;font-weight:900!important}
@media(max-width:430px){html:not(.knqd-debug-mode) #mainTopbar:not(.hide){top:0!important}html:not(.knqd-debug-mode) #screenHome{padding-top:calc(var(--knqd-topbar-height) + 6px)!important}.connection-decision-row{grid-template-columns:52px minmax(0,1fr) 52px}.connection-decision{width:50px;height:50px}.connection-back-button{font-size:9px;padding:4px 7px}}

/* KNQD 8.3.6.0 - nền mô hình động, pháp lý và xóa tài khoản (TEST) */
.registration-legal-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.55;color:inherit;background:transparent;border:0;padding:0}
.google-legal-documents{display:flex;flex-wrap:wrap;gap:5px 9px;margin:9px 0;font-size:11px;line-height:1.4}.google-legal-documents a,.legal-public-links a{color:#126fbd;font-weight:800;text-decoration:none}.google-legal-agree{align-items:flex-start!important;margin:8px 0!important;font-size:11px!important}
.legal-account-card{display:grid;gap:12px}.legal-public-links{display:flex;flex-wrap:wrap;gap:8px 12px}.member-legal-documents{display:grid;gap:8px}.member-legal-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid #dbe7f1;border-radius:12px;background:#f8fbfe}.member-legal-row>div{display:grid;gap:3px}.member-legal-row small{color:#71879a}.account-deletion-status{padding:10px 12px;border-radius:12px;background:#fff6e8;color:#7d4b00;font-size:12px;line-height:1.5}.account-deletion-status.ok{background:#ecf8f1;color:#15663d}
.foundation-section{display:grid;gap:10px;margin-top:14px}.foundation-item{display:grid;gap:10px}.foundation-assets{display:grid;gap:10px}.foundation-current-value{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#eef7ff}.foundation-current-value span{font-size:11px;color:#668096}.foundation-current-value b{font-size:18px;color:#0b66ad;overflow-wrap:anywhere;text-align:right}.foundation-editor{padding:0!important;overflow:hidden}.foundation-editor>summary{cursor:pointer;padding:13px 14px;background:#f3f8fc}.foundation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:13px}.foundation-form label{display:grid;gap:5px;font-size:11px;font-weight:800;color:#536d83}.foundation-form label.wide,.foundation-form>button{grid-column:1/-1}.foundation-form input,.foundation-form select,.foundation-form textarea{width:100%;margin:0!important}.foundation-form textarea{resize:vertical;min-height:84px}.foundation-form .checkline{display:flex!important;align-items:center;gap:8px;padding-top:19px}.foundation-form .checkline input{width:18px;height:18px}.foundation-version-list{display:grid;gap:8px}.foundation-version-row{display:grid;gap:8px;padding:10px;border:1px solid #dce7ef;border-radius:12px;background:#fbfdff}.foundation-version-row>div:first-child{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.foundation-version-row small{display:block;width:100%;color:#75899b}.foundation-version-row code{display:block;padding:8px;border-radius:9px;background:#edf4f9;white-space:pre-wrap;overflow-wrap:anywhere}.foundation-version-row pre,.foundation-item pre{max-height:360px;overflow:auto;padding:10px;border-radius:10px;background:#f2f6f9;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.foundation-version-actions{display:flex;flex-wrap:wrap;gap:7px}.foundation-version-actions button{min-height:32px;padding:6px 9px;font-size:10px}.foundation-assets .admin-category-grid>div{display:grid;gap:3px}.foundation-assets small{color:#71879a}
@media(max-width:560px){.foundation-form{grid-template-columns:1fr}.foundation-form label.wide,.foundation-form>button{grid-column:auto}.foundation-form .checkline{padding-top:0}.member-legal-row{grid-template-columns:1fr}.member-legal-row button{width:100%}}
html[data-theme="dark"] .member-legal-row,html[data-theme="dark"] .foundation-version-row{background:#1d2c39;border-color:#405467}html[data-theme="dark"] .foundation-editor>summary,html[data-theme="dark"] .foundation-current-value,html[data-theme="dark"] .foundation-version-row code,html[data-theme="dark"] .foundation-version-row pre,html[data-theme="dark"] .foundation-item pre{background:#203445;color:#e7f2fb}
/* KNQD 8.3.6.0 - cấp độ, giá chat và đánh giá hồ sơ */
.policy-level-card{display:grid;gap:12px}.policy-price-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.policy-price-form label{margin:0}.policy-income-preview{font-weight:800;margin:0}.policy-rollout-status{border-top:1px dashed var(--line,#c8d7e8);padding-top:10px}.warn-text{color:#a05a00}.public-policy-line{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:6px}.public-policy-line span{font-size:12px}.public-profile-votes{display:flex;gap:8px;margin-top:8px}.public-profile-votes .selected{outline:2px solid currentColor;font-weight:800}.public-profile-votes.readonly span{padding:5px 9px;border:1px solid var(--line,#c8d7e8);border-radius:999px;font-weight:700}@media(max-width:520px){.policy-price-form{grid-template-columns:1fr}.policy-price-form button{width:100%}}

/* 8.3.6.0 — kiếm tiền đúng đối tượng + quà mã giới thiệu */
.earning-module-card.hide{display:none!important}
.earning-status-compact{display:grid;gap:8px}
.earning-status-compact-line,.earning-compact-line{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:12px;color:#415d7c}
.earning-compact-line strong{font-size:13px;color:#173b63}
.policy-level-compact{gap:9px}
.policy-level-compact .earning-status-grid{margin:2px 0 4px}
.compact-policy-note{margin:0;line-height:1.45}
.policy-level-compact .policy-income-preview{font-size:12px}

.referral-reward-card{display:grid;gap:9px}
.referral-reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.referral-reward-grid>div{display:grid;gap:3px;padding:10px;border:1px solid #cfe2f7;border-radius:13px;background:#f7fbff}
.referral-reward-grid span{font-size:10px;color:#6a7f9b}
.referral-reward-grid strong{font-size:15px;color:#0d7a48}
.referral-reward-grid small{font-size:9.5px;line-height:1.35;color:#657991}
.referral-reward-note,.referral-own-reward-status{margin:0;line-height:1.45}
.referral-promo-balance{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:11px;background:#edf8f2;color:#215f43;font-size:11px}
.referral-promo-balance strong{font-size:15px}
.referral-invite-compact{display:grid;gap:10px}
.referral-primary-actions{display:grid;grid-template-columns:1.6fr .9fr .75fr;gap:7px}
.referral-primary-actions button{min-width:0}
.referral-qr-panel{display:grid;justify-items:center;gap:8px;padding:12px;border:1px solid #cfe2f7;border-radius:14px;background:#fff}
.referral-qr-panel img{width:min(220px,75vw);height:auto;image-rendering:pixelated}
.referral-qr-panel p{margin:0;font-size:11px;color:#657991;text-align:center}
.referral-extra-details{border-top:1px dashed #cedded;padding-top:8px}
.referral-extra-details summary{cursor:pointer;font-weight:700;color:#315b85;font-size:11px}
.referral-secondary-actions{grid-template-columns:1fr 1.1fr 1fr!important;margin-top:8px}
.wallet-card small{display:block;color:var(--muted);font-size:10px;line-height:1.35;margin-top:5px}.policy-risk-list{display:grid;gap:10px;margin-top:12px}.policy-risk-row .item-actions{justify-content:flex-end}

@media(max-width:420px){
  .referral-reward-grid{grid-template-columns:1fr 1fr}
  .referral-primary-actions{grid-template-columns:1.35fr .85fr .65fr}
  .referral-primary-actions button{font-size:9.5px;padding-left:4px;padding-right:4px}
}
#viewWallet .wallet-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px}
.referral-primary-actions .primary,.referral-primary-actions .mini{width:100%;margin:0}
.policy-income-operations{display:grid;gap:12px}.policy-income-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.policy-income-filter{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:9px;align-items:end;padding:10px;border-radius:12px;background:#f2f8fc}.policy-income-filter label{display:grid;gap:5px;font-size:11px;font-weight:800;color:#526d82}.policy-income-filter input,.policy-income-filter select{width:100%;margin:0!important}.policy-income-filter button{min-height:42px}.policy-income-event-list{display:grid;gap:9px}.policy-income-event{display:grid;gap:9px}.policy-income-event .admin-kpi-list.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.policy-income-event .admin-kpi-list.compact p{padding:6px 8px}.policy-income-risk-note{margin:0;padding:8px 10px;border-radius:10px;background:#fff4dc;color:#8a5a00;font-size:11px}.policy-admin-action-list{display:grid;gap:7px;padding-top:9px}.policy-admin-action-list p{display:grid;gap:3px;margin:0;padding:8px 10px;border:1px solid #dce7ef;border-radius:10px;background:#fbfdff;font-size:11px}.policy-admin-action-list span{color:#6d8193}.policy-income-operations details>summary{cursor:pointer;font-weight:800}.policy-income-operations .item-actions:empty{display:none}
@media(max-width:560px){.policy-income-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.policy-income-filter{grid-template-columns:1fr}.policy-income-event .admin-kpi-list.compact{grid-template-columns:1fr}}
html[data-theme="dark"] .policy-income-filter{background:#203445}html[data-theme="dark"] .policy-admin-action-list p{background:#1d2c39;border-color:#405467}html[data-theme="dark"] .policy-income-risk-note{background:#4b3a19;color:#ffd98a}


/* KNQD 8.3.6.0 — distinct currency symbols and fixed system pricing */
.currency-badge{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-variant-numeric:tabular-nums;vertical-align:middle}
.currency-badge .currency-symbol{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;font-size:11px;font-weight:900;border:1px solid currentColor;background:rgba(255,255,255,.72)}
.currency-badge .currency-unit{font-size:.82em;font-weight:800}
.currency-dong{color:#9a4e13}.currency-bac{color:#52616f}.currency-vang{color:#9a6800}
.fixed-price-box{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid #d8e7f4;border-radius:12px;background:#f7fbff}
.fixed-price-note{font-size:12px;color:#526579;line-height:1.45}
.top-wallet-summary .currency-badge{gap:2px}.top-wallet-summary .currency-symbol{width:17px;height:17px;font-size:10px}.top-wallet-summary .currency-unit{display:none}


/* KNQD 8.3.9.1 - Phong chat mobile-first, khong co goi thoai/video */
.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding-left:7px;padding-right:7px}
.bottom-nav .quick{min-width:0;padding:9px 2px;font-size:11px;white-space:nowrap}
.room-hub-view{padding-bottom:86px}
.room-hub-head{display:flex;gap:7px;align-items:center;margin-bottom:8px}
.room-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;flex:1;background:#eaf2fc;border-radius:14px;padding:4px}
.room-tab{border:0;border-radius:10px;background:transparent;color:#53657e;font-size:10px;font-weight:900;padding:8px 2px;white-space:nowrap}
.room-tab.active{background:#fff;color:#1266d6;box-shadow:0 4px 12px rgba(20,33,61,.09)}
.room-tab span{display:inline-flex;min-width:17px;height:17px;align-items:center;justify-content:center;border-radius:999px;background:#edf3fb;font-size:9px;margin-left:1px}
.room-refresh{width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--brand);font-weight:900;font-size:18px}
.room-toolbar{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}
.room-search{height:42px;display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:0 10px}
.room-search input{border:0!important;padding:0!important;margin:0!important;background:transparent!important;outline:0;min-width:0}
.room-create{width:auto!important;margin:0!important;padding:11px 12px!important;white-space:nowrap}
.room-rotation-note{margin:7px 2px 9px;color:var(--muted);font-size:11px}
.room-list{display:grid;gap:7px}
.room-card{width:100%;border:1px solid var(--line);background:#fff;border-radius:15px;padding:11px;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;box-shadow:0 6px 18px rgba(20,33,61,.045);color:inherit}
.room-card-main{min-width:0;display:grid;gap:3px}.room-card-main b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-card-main small{font-size:12px;color:#53657e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-card-main em{font-style:normal;color:#8390a3;font-size:10px}
.room-card-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:4px}.room-card-side time{font-size:9px;color:#8995a6}.room-card-state{font-size:9px;font-weight:900;border-radius:999px;padding:4px 6px}.room-card-state.joined{background:#e8f7ef;color:#087d48}.room-card-state.pending{background:#fff4d6;color:#8b5a00}.room-unread{min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#1677ff;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:900}
.room-empty{padding:24px 14px;text-align:center;background:#fff;border:1px dashed #cbd8e8;border-radius:16px}.room-empty p{margin:5px 0 0;color:var(--muted);font-size:12px}
.room-chat-panel{position:fixed;z-index:45;left:50%;bottom:0;transform:translateX(-50%);width:min(720px,100%);height:min(82vh,760px);background:#fff;border:1px solid var(--line);border-radius:24px 24px 0 0;box-shadow:0 -18px 50px rgba(20,33,61,.2);display:flex;flex-direction:column;overflow:hidden}
.room-chat-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}.room-chat-head>div{min-width:0}.room-chat-head b,.room-chat-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-chat-head small{font-size:10px;color:var(--muted);margin-top:2px}
.room-chat-meta{padding:8px 11px;border-bottom:1px solid var(--line);background:#f8fbff}.room-chat-meta p{margin:0 0 6px;font-size:11px;color:#53657e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-chat-meta>div{display:flex;gap:5px;flex-wrap:wrap}
.room-messages{flex:1;overflow:auto;background:#f5f8fc;padding:11px;display:flex;flex-direction:column;gap:7px}.room-message{max-width:84%;align-self:flex-start;background:#fff;border:1px solid var(--line);border-radius:15px;padding:8px 10px}.room-message.me{align-self:flex-end;background:#1677ff;color:#fff;border-color:#1677ff}.room-message>div{display:flex;gap:5px;align-items:center}.room-message b{font-size:10px}.room-message span{font-size:8px;font-weight:900;border-radius:999px;background:rgba(22,119,255,.12);padding:2px 5px}.room-message.me span{background:rgba(255,255,255,.2)}.room-message p{margin:3px 0 0;font-size:13px;white-space:pre-wrap;word-break:break-word}.room-message small{display:block;margin-top:4px;font-size:8px;opacity:.65}.room-message-empty{margin:auto;color:var(--muted);font-size:12px}
.room-sendbar{display:grid;grid-template-columns:1fr auto;gap:7px;padding:9px;border-top:1px solid var(--line);background:#fff}.room-sendbar input{margin:0}.room-sendbar button{width:auto;margin:0}.room-send-gate{margin:0;padding:10px;text-align:center;background:#fff7df;color:#8b5a00;font-size:11px;font-weight:800;border-top:1px solid #f0dfaa}
.room-overlay{position:fixed;z-index:90;inset:0;background:rgba(13,24,43,.52);display:flex;align-items:flex-end;justify-content:center;padding:12px}.room-dialog{width:min(520px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:21px;padding:14px;box-shadow:0 22px 60px rgba(0,0,0,.24)}.room-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.room-dialog-head h3{margin:0}.room-dialog-head button{width:34px;height:34px;border:0;border-radius:10px;background:#eef3fa;font-size:20px}.room-editor-form{display:grid;gap:8px}.room-editor-form label{margin:0}.room-editor-form input,.room-editor-form select,.room-editor-form textarea{margin-top:4px}.room-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.room-members-list{display:grid;gap:7px}.room-member-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:9px;border:1px solid var(--line);border-radius:13px}.room-member-row b,.room-member-row small{display:block}.room-member-row small{font-size:10px;color:var(--muted);margin-top:3px}.room-member-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.room-member-actions button,.room-member-actions select{width:auto;margin:0;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:#f8fbff;font-size:10px;font-weight:800}
@media(max-width:390px){.bottom-nav .quick{font-size:10px}.room-tabs{gap:2px}.room-tab{font-size:9px}.room-form-grid{grid-template-columns:1fr}.room-toolbar{grid-template-columns:1fr auto}.room-create{font-size:11px;padding:11px 9px!important}}

/* KNQD 8.3.9.1 - sua nhay cong tac, modal Phong va thong bao rieng tung phong */
.female-earning-switch{position:relative!important;isolation:isolate}
.female-earning-switch input{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  opacity:0!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  z-index:3!important;
}
.female-earning-controls{grid-template-columns:1fr!important}
#btnSaveFemaleEarning{display:none!important}
body.room-panel-open .bottom-nav,
body.room-modal-open .bottom-nav{display:none!important}
body.room-panel-open #screenHome,
body.room-modal-open #screenHome{overflow:hidden!important}
.room-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:max-content}
.room-chat-panel{padding-bottom:env(safe-area-inset-bottom,0px)}
.room-sendbar{padding-bottom:calc(9px + env(safe-area-inset-bottom,0px))}
.room-overlay{
  z-index:180!important;
  padding:calc(10px + env(safe-area-inset-top,0px)) 10px calc(10px + env(safe-area-inset-bottom,0px))!important;
  align-items:flex-end!important;
}
.room-dialog{
  max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 20px)!important;
  padding:14px 14px calc(20px + env(safe-area-inset-bottom,0px))!important;
  overscroll-behavior:contain;
  scroll-padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));
}
.room-dialog .primary[type="submit"]{margin-bottom:2px!important}
.room-auto-toggle{display:grid!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:3px 8px!important}
.room-auto-toggle input{grid-row:1/3}
.room-auto-toggle small{display:block;color:var(--muted);font-size:10px;font-weight:600}
.room-notification-dialog{width:min(460px,100%)}
.room-dialog-head>div{min-width:0}
.room-dialog-head>div small{display:block;margin-top:2px;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-notification-form{display:grid;gap:9px}
.room-notification-form>label:first-child{margin:0;font-weight:800}
.room-notification-form select{margin-top:5px}
.room-notification-form .notification-switch-row{margin:0;padding:10px 0}
.room-notification-form .settings-live-status{margin:3px 0 0}
@media(max-width:390px){
  .room-chat-head{grid-template-columns:auto minmax(0,1fr) auto;gap:6px}
  .room-head-actions{gap:3px}
  .room-head-actions .mini{padding:7px 8px;font-size:10px}
  .room-dialog{border-radius:18px 18px 0 0!important;margin:0 -10px -10px;width:calc(100% + 20px)!important}
}

/* KNQD 8.3.11.0 - cai dat phong gon, bo huong dan thua, giu nghiep vu */
.room-chat-panel{top:calc(58px + env(safe-area-inset-top,0px));bottom:0;height:auto;max-height:none;border-radius:18px 18px 0 0}
.room-chat-head{padding:7px 8px;min-height:48px}
.room-title-button{min-width:0;border:0;background:transparent;text-align:left;padding:3px 2px;color:inherit;cursor:pointer}
.room-title-button b,.room-title-button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-title-button b{font-size:14px}.room-title-button small{font-size:10px;color:var(--muted);margin-top:2px}
.room-title-button.disabled{pointer-events:none}
.room-icon-button{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:11px;background:#f6f9fd;padding:0;font-size:16px;line-height:1}
.room-head-actions{gap:4px}
.room-pinned-bar{border:0;border-bottom:1px solid #efdca2;background:#fff8dc;color:#785300;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 10px;text-align:left;width:100%}
.room-pinned-bar b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-pinned-bar small{font-size:8px;color:#98752f;white-space:nowrap}
.room-fee-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);background:#f4f9ff;color:#34536f;font-size:10px;font-weight:800;min-height:34px}
.room-fee-bar>div{display:flex;align-items:center;gap:5px}.room-fee-bar .mini{margin:0;padding:6px 8px}
.room-messages{padding:8px 9px;gap:6px}
.room-message{padding:7px 9px}.room-message p{margin:2px 0 0}
.room-mention{border-radius:5px;background:#dbeaff;color:#0b5bbb;padding:0 2px;font-weight:800}
.room-message.me .room-mention{background:rgba(255,255,255,.24);color:#fff}
.room-mention-menu{position:absolute;z-index:70;left:8px;right:8px;bottom:calc(57px + env(safe-area-inset-bottom,0px));max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 16px 38px rgba(20,33,61,.22);padding:5px;display:grid;gap:3px}
.room-mention-menu button{border:0;background:#f7faff;border-radius:11px;padding:8px 10px;text-align:left;color:inherit}.room-mention-menu button:active{background:#e8f2ff}.room-mention-menu b,.room-mention-menu small{display:block}.room-mention-menu b{font-size:12px}.room-mention-menu small{font-size:9px;color:var(--muted);margin-top:2px}.room-mention-menu>p{margin:0;padding:12px;text-align:center;color:var(--muted);font-size:11px}
.room-settings-dialog{width:min(560px,100%)}
.room-settings-sections{display:grid;gap:10px}.room-setting-section{display:grid;gap:8px;padding:11px;border:1px solid var(--line);border-radius:15px;background:#fbfdff}.room-setting-section h4{margin:0 0 1px;color:#244967;font-size:13px}.room-setting-section label{margin:0}.room-setting-section .notification-switch-row{min-height:42px;padding:9px 0;margin:0}.room-setting-section .notification-switch-row+ .notification-switch-row{border-top:1px solid #edf2f7}.room-setting-section .notification-switch-row>span{display:flex;align-items:center;min-width:0}.room-setting-section .notification-switch-row b{font-size:12px;line-height:1.25;color:#263f59}.room-setting-section .notification-switch-row small{display:none}.room-money-settings{background:#fbfdff;border-color:var(--line)}.room-fee-preview{margin:0;padding:7px 8px;border-radius:9px;background:#f2f7fd;color:#49627b;font-size:9.5px;line-height:1.35}.room-setting-save-status:empty{display:none}.room-setting-save-status{margin:0;text-align:center}
.room-danger-zone{display:grid;gap:8px;margin-top:10px;padding:12px;border:1px solid #f0c7c7;border-radius:15px;background:#fff7f7}.room-danger-zone h4,.room-danger-zone p{margin:0}.room-danger-zone h4{color:#a32929}.room-danger-zone p{font-size:10px;color:#7a5555}.room-danger-zone .danger{width:100%;margin:0;border:0;border-radius:11px;background:#cf3030;color:#fff;padding:11px;font-weight:900}.room-danger-zone .danger:disabled{opacity:.55}
.room-info-dialog{width:min(560px,100%)}
.room-info-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;background:#eef4fb;border-radius:12px;margin-bottom:9px}.room-info-tabs button{border:0;border-radius:9px;background:transparent;padding:8px 3px;color:#5c6e82;font-size:10px;font-weight:900}.room-info-tabs button.active{background:#fff;color:#1266d6;box-shadow:0 3px 10px rgba(20,33,61,.08)}
.room-info-panel{min-height:180px}.room-info-empty{display:grid;place-items:center;min-height:170px;text-align:center;color:var(--muted);font-size:11px;border:1px dashed #cfdae8;border-radius:13px;padding:15px}
.room-media-list,.room-pins-list,.room-search-results{display:grid;gap:7px}.room-media-item,.room-pin-card,.room-search-results article{padding:10px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.room-media-item p,.room-search-results p{margin:4px 0;font-size:11px;white-space:pre-wrap}.room-media-item small,.room-pin-card small,.room-search-results small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.room-pin-card b{display:block;font-size:12px;white-space:pre-wrap}
.room-search-form{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:8px}.room-search-form input,.room-search-form button{margin:0}.room-search-form button{width:auto}
.room-pin-form{display:grid;gap:8px}.room-pin-form textarea{margin:0}.room-pin-actions{display:grid;grid-template-columns:auto 1fr;gap:7px}.room-pin-actions button{margin:0}.room-pin-actions .danger{border:0;border-radius:11px;background:#ffe8e8;color:#a52222;font-weight:900}
.room-member-row [data-room-profile-user]{cursor:pointer}
.room-card-main small{max-width:100%}
@media(max-width:430px){
  .room-chat-panel{top:calc(52px + env(safe-area-inset-top,0px));border-radius:12px 12px 0 0}
  .room-chat-head{grid-template-columns:auto minmax(0,1fr) auto;gap:5px;padding:6px}
  .room-chat-head .pill{padding:7px 8px;font-size:10px}.room-icon-button{width:31px;height:31px;font-size:14px}.room-head-actions{gap:2px}
  .room-pinned-bar{grid-template-columns:auto minmax(0,1fr);padding:6px 8px}.room-pinned-bar small{display:none}
  .room-fee-bar{padding:5px 8px;font-size:9px}.room-info-tabs button{font-size:9px}
  .room-setting-section{padding:9px}.room-pin-actions{grid-template-columns:1fr 1.3fr}
}

/* KNQD 8.3.11.0 - chống spam, báo cáo và quản trị nội dung phòng */
.room-message{position:relative}.room-message-head{display:flex!important;align-items:flex-start!important;justify-content:space-between;gap:8px}.room-message-head>div{display:flex;gap:5px;align-items:center}.room-message-more{width:26px;height:24px;border:0;border-radius:8px;background:transparent;color:inherit;font-size:18px;line-height:1;padding:0;opacity:.72}.room-message-menu{position:absolute;z-index:12;top:30px;right:7px;display:flex!important;gap:5px;padding:5px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(20,33,61,.18)}.room-message-menu.hide{display:none!important}.room-message-menu button{border:0;border-radius:8px;padding:7px 9px;background:#eef5ff;color:#174f94;font-size:10px;font-weight:900;white-space:nowrap}.room-message-menu button.danger{background:#fff0f0;color:#a32929}.room-message.me .room-message-menu{color:#17283b}.room-report-zone{margin-top:10px}.room-report-zone button{width:100%;border:1px solid #efc36e;border-radius:11px;background:#fffaf0;color:#8b5b00;padding:10px;font-weight:900}.room-info-tabs{grid-template-columns:repeat(auto-fit,minmax(64px,1fr))}.room-moderation-list{display:grid;gap:8px;margin-bottom:12px}.room-moderation-list>h4{margin:2px 0 0;font-size:12px}.room-moderation-card,.room-moderation-log{display:grid;gap:5px;padding:9px;border:1px solid var(--line);border-radius:12px;background:#fff}.room-moderation-card>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:center}.room-moderation-card b,.room-moderation-log b{font-size:11px}.room-moderation-card span,.room-moderation-log span{font-size:9px;color:var(--muted)}.room-moderation-card p{margin:0;padding:7px;border-radius:8px;background:#f4f7fb;font-size:11px;white-space:pre-wrap;word-break:break-word}.room-moderation-card small,.room-moderation-log small{font-size:9px;color:var(--muted)}.room-moderation-actions{display:flex;flex-wrap:wrap;gap:5px}.room-moderation-actions button{border:1px solid #bfd3ef;border-radius:8px;background:#f4f8ff;color:#18599f;padding:6px 8px;font-size:9px;font-weight:900}.room-moderation-actions button.danger{border-color:#efb6b6;background:#fff0f0;color:#a32929}

/* 8.3.11.0 - Trung tâm tiền và tỷ lệ */
.money-settings-form{display:grid;gap:12px;padding-bottom:74px}.money-group-card{padding:14px}.money-group-card>h3{margin:0 0 10px;font-size:16px}.money-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.money-setting-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:8px 0;border-bottom:1px solid rgba(15,23,42,.08)}.money-setting-row span{min-width:0;display:flex;flex-direction:column;gap:2px}.money-setting-row b{font-size:14px;line-height:1.25}.money-setting-row small{font-size:11px;color:#64748b}.money-setting-row input{width:118px;max-width:42%;height:38px;text-align:right;border:1px solid #cbd5e1;border-radius:10px;padding:0 10px;background:#fff}.money-setting-row input:disabled{background:#f1f5f9;color:#64748b}.money-save-bar{position:sticky;bottom:76px;z-index:5;display:flex;justify-content:flex-end;padding:8px 0;background:linear-gradient(transparent,#eef8ff 28%)}.money-save-bar button{min-width:150px}.money-sheet-card{padding:14px;margin-bottom:90px}.money-sheet-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.money-preview{margin-top:12px;padding:12px;border-radius:12px;background:#ecfdf5;border:1px solid #a7f3d0}.money-preview.error{background:#fff7ed;border-color:#fdba74}.money-preview p{display:flex;justify-content:space-between;gap:12px;margin:7px 0;font-size:13px}.money-preview p span{text-align:right}.money-preview button{margin-top:10px}.money-sheet-card .field{display:grid;gap:6px}.money-sheet-card .field input{width:100%}
@media(max-width:640px){.money-settings-grid{grid-template-columns:1fr}.money-setting-row input{width:108px}.money-save-bar{bottom:72px}.money-sheet-actions button{flex:1 1 calc(50% - 6px);min-width:130px}.money-preview p{display:block}.money-preview p span{display:block;text-align:left;margin-top:2px}}


/* KNQD 8.3.12.0 - Quẹt, Ví nhanh và Giới thiệu F1/F2 */
.wallet-primary-actions{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:8px;margin:10px 0 12px}
.wallet-primary-actions button{min-height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font-weight:900}
.wallet-primary-actions button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.referral-invite-visible{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.referral-invite-visible .module-title{margin:0}
.referral-action-row{grid-template-columns:1fr 1.25fr .65fr .8fr!important}
.referral-commission-card{display:grid;gap:10px}
.referral-commission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.referral-commission-grid>div{display:grid;gap:3px;padding:10px;border:1px solid #d8e8f8;border-radius:12px;background:#f8fbff}
.referral-commission-grid span{font-size:10px;color:var(--muted)}
.referral-commission-grid strong{font-size:15px;color:#183b63}
.referral-commission-row{align-items:center}
.referral-commission-amount{display:grid;text-align:right;gap:2px}
.referral-commission-amount b{color:#08783e}
.referral-commission-amount span{font-size:10px;color:var(--muted)}
.referral-f2-details{margin-top:10px}
.referral-template-admin .foundation-inline-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.referral-template-admin .foundation-inline-actions button{min-height:42px}
@media(max-width:420px){
  .wallet-primary-actions{grid-template-columns:1.1fr .9fr .9fr;gap:6px}
  .wallet-primary-actions button{font-size:12px;padding:8px 5px}
  .referral-commission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .referral-action-row{grid-template-columns:1fr 1.25fr .65fr .8fr!important;gap:4px}
  .referral-action-row .mini{font-size:9px;padding-left:1px;padding-right:1px}
}


/* KNQD 8.3.14.0 - Thanh trên bám đúng đỉnh viewport, không cộng lặp safe-area */
:root{--knqd-topbar-height:58px;--menu-top:58px}
#mainTopbar.topbar:not(.hide){
  position:fixed!important;
  top:0!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  width:min(100%,480px)!important;
  max-width:480px!important;
  height:var(--knqd-topbar-height)!important;
  min-height:var(--knqd-topbar-height)!important;
  z-index:120!important;
  margin:0!important;
  padding:6px 10px!important;
  box-sizing:border-box!important;
  border-radius:0!important;
  border-bottom:1px solid rgba(190,214,236,.98)!important;
  background:rgba(248,252,255,.99)!important;
  box-shadow:0 4px 14px rgba(24,71,111,.08)!important;
}
#mainTopbar .hamburger,#mainTopbar .notification-bell{margin:0!important}
#mainTopbar .top-wallet-shell{height:40px!important;margin:0!important}
#screenHome{padding-top:calc(var(--knqd-topbar-height) + 6px)!important}
.room-chat-panel{
  top:var(--knqd-topbar-height)!important;
  bottom:0!important;
  height:auto!important;
  max-height:none!important;
  border-radius:0!important;
}
.room-chat-head{position:relative;z-index:2;background:#fff}
.menu-overlay{top:var(--menu-top)!important;right:0!important;bottom:0!important;left:0!important;z-index:110!important}
.side-menu{
  left:var(--menu-left,8px)!important;
  top:var(--menu-top,58px)!important;
  right:auto!important;
  bottom:auto!important;
  width:var(--menu-width,276px)!important;
  max-width:calc(100vw - 12px)!important;
  max-height:calc(100dvh - var(--menu-top,58px) - 6px)!important;
  border-radius:0 0 16px 16px!important;
  padding:8px!important;
  gap:6px!important;
  z-index:121!important;
  overflow:auto!important;
  overscroll-behavior:contain;
  transform:translateY(-8px)!important;
}
.side-menu.open{transform:translateY(0)!important}
.side-menu-head{min-height:32px!important;padding:0 3px 5px!important}
.side-menu-links{gap:5px!important}
.side-link{min-height:39px!important;padding:8px 11px!important;font-size:13px!important;border-radius:11px!important}
@media(max-width:360px){
  :root{--knqd-topbar-height:54px}
  #mainTopbar.topbar:not(.hide){padding:5px 6px!important;gap:5px!important}
  #mainTopbar .notification-bell,#mainTopbar .hamburger{width:32px!important;height:32px!important}
  #mainTopbar .top-wallet-shell{height:38px!important}
  #mainTopbar .earning-hub-button{flex-basis:62px!important;font-size:9px!important}
  .side-menu{top:var(--menu-top,54px)!important;max-height:calc(100dvh - var(--menu-top,54px) - 4px)!important}
}

/* Admin: nút xác minh/thu hồi luôn nổi bật ngay trong hồ sơ thành viên */
.admin-verification-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin:8px 0 12px;padding:12px;border:1px solid #b8d9f4;border-radius:14px;background:#f2f9ff}
.admin-verification-control.verified{border-color:#f1b8b8;background:#fff7f7}
.admin-verification-control>div{display:grid;gap:2px;min-width:0}.admin-verification-control span{font-size:11px;color:var(--muted)}.admin-verification-control b{font-size:16px}.admin-verification-control small{font-size:10px;color:var(--muted)}
.admin-verification-control button{margin:0!important;min-width:124px;min-height:42px;border:0;border-radius:12px;padding:9px 12px;font-weight:950}.admin-verification-control button.green{background:#0a8b51;color:#fff}.admin-verification-control button.danger{background:#d63c43;color:#fff}
.admin-owned-rooms{display:grid;gap:6px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.admin-owned-rooms h4{margin:0;font-size:13px}.admin-owned-rooms p{display:flex;justify-content:space-between;gap:8px;margin:0;padding:7px 8px;border-radius:9px;background:#f6f9fc;font-size:11px}.admin-owned-rooms span{color:var(--muted)}
@media(max-width:420px){.admin-verification-control{grid-template-columns:1fr}.admin-verification-control button{width:100%}}


/* KNQD 8.3.13.5 - sửa đúng selector cũ có độ ưu tiên cao làm thanh Ví thấp 20-22px */
html:not(.knqd-debug-mode) body #mainTopbar.topbar:not(.hide),html.knqd-debug-mode body #mainTopbar.topbar:not(.hide){top:0!important;margin-top:0!important;inset-block-start:0!important}
html,body{padding-top:0!important}
.reputation-breakdown{display:grid;gap:8px}.reputation-breakdown-row{display:grid;gap:6px;padding:9px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.reputation-breakdown-row>div{display:flex;justify-content:space-between;gap:10px}.reputation-subdetails{display:grid;gap:3px;padding-top:5px;border-top:1px dashed var(--line)}.reputation-subdetails p{display:flex;justify-content:space-between;gap:8px;margin:0;padding:4px 2px;font-size:11px}.reputation-subdetails p.complete{color:#087d48}.reputation-subdetails p.missing{color:#8b5b00}.policy-level-ladder{display:grid;gap:6px;margin:10px 0}.policy-level-ladder>div{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#fbfdff}.policy-level-ladder>div.current{border-color:#67a9f4;background:#eef7ff}.policy-level-ladder span{display:grid;gap:2px}.policy-level-ladder small{font-size:9px;color:var(--muted)}.policy-level-ladder strong{font-size:11px;text-align:right;white-space:nowrap}.settings-live-status{min-height:20px}

/* KNQD 8.3.14.0 - Phiên bản ứng dụng, cấp độ rõ ràng và điều kiện kiếm tiền */
.version-module-primary{display:grid!important;gap:12px!important;align-items:stretch!important;border-color:#86bff0!important;background:linear-gradient(180deg,#f8fcff 0%,#eef7ff 100%)!important}
.managed-version-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.managed-version-head h3{margin:0 0 3px}.managed-version-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.4}
.managed-version-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.managed-version-grid>div{display:grid;gap:3px;min-width:0;padding:10px;border:1px solid #cfe3f5;border-radius:12px;background:#fff}
.managed-version-grid span{font-size:10px;color:var(--muted)}.managed-version-grid b{font-size:14px;color:#173b63;overflow-wrap:anywhere}
.managed-version-notes{display:grid;gap:5px;padding:10px;border:1px dashed #9ec7eb;border-radius:12px;background:#fff}
.managed-version-notes b{font-size:12px;color:#173b63}.managed-version-notes p{margin:0!important;white-space:pre-line;color:#455f79!important;font-size:11px;line-height:1.5}
.version-module-primary .install-update-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
.version-module-primary .install-update-actions button{min-width:0;margin:0;font-size:11px;padding:9px 6px}
.app-install-subhead{margin-top:18px!important;padding-top:14px;border-top:1px solid var(--line)}

.female-earning-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:7px}
.female-earning-summary>div{display:grid;gap:2px;padding:7px 8px;border:1px solid #acd1ef;border-radius:10px;background:rgba(255,255,255,.82)}
.female-earning-summary span{font-size:9px;color:#607994}.female-earning-summary b{font-size:11px;color:#173b63;line-height:1.25}
.female-earning-requirements,.earning-requirements{display:grid;gap:5px;margin-top:7px}
.female-earning-requirement,.earning-requirement{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px;align-items:start;padding:6px 7px;border-radius:9px;border:1px solid #d7e6f3;background:#fff;font-size:10px;line-height:1.35}
.female-earning-requirement.met,.earning-requirement.met{border-color:#b7e1cb;background:#f1fbf5;color:#087d48}
.female-earning-requirement.missing,.earning-requirement.missing{border-color:#f0d39b;background:#fff9ed;color:#8b5b00}
.female-earning-requirement b,.earning-requirement b{font-size:12px;line-height:1}
.female-earning-switch input:disabled{cursor:not-allowed!important}.female-earning-switch:has(input:disabled){opacity:.58;cursor:not-allowed}
.female-earning-status.error{color:#a32929}.female-earning-status.warning{color:#8b5b00}
.earning-compact-line{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.4}
.policy-level-ladder>div>span{min-width:0}.policy-level-ladder>div>strong{max-width:48%;white-space:normal;line-height:1.3}

@media(max-width:420px){
  .managed-version-grid{grid-template-columns:1fr}
  .version-module-primary .install-update-actions{grid-template-columns:1fr 1fr}
  .version-module-primary .install-update-actions button:first-child{grid-column:1/-1}
  .female-earning-summary{grid-template-columns:1fr 1fr}
}

/* KNQD 8.3.14.0 — hướng dẫn nâng cấp uy tín và layout Debug độc lập */
.policy-upgrade-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:12px 14px;border:1px solid #b9d7ff;border-radius:14px;background:#eef6ff;color:#075bb8;font-weight:800;text-align:left;cursor:pointer}
.policy-upgrade-button span{font-size:22px;line-height:1}
.policy-upgrade-guide{margin-top:10px;padding:12px;border:1px solid #d7e7fb;border-radius:16px;background:#f8fbff}
.policy-upgrade-head h4{margin:0 0 4px;font-size:15px}.policy-upgrade-head p{margin:0 0 10px;color:#58738e;font-size:12px;line-height:1.45}
.policy-upgrade-checks{display:grid;gap:7px}.policy-guide-check{width:100%;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:10px;border:1px solid #dce8f5;border-radius:12px;background:#fff;text-align:left;color:#183b59}.policy-guide-check b{font-size:17px}.policy-guide-check span{display:grid;gap:2px}.policy-guide-check strong{font-size:13px}.policy-guide-check small{font-size:11px;color:#6d8297}.policy-guide-check i{font-size:20px;font-style:normal}.policy-guide-check.met{border-color:#ccebd8;background:#f4fff8}.policy-guide-check.met>b{color:#15914b}.policy-guide-check.missing>b,.policy-guide-check.missing>i{color:#d67b00}.policy-guide-complete{padding:12px;border-radius:12px;background:#effaf3;color:#187342;font-weight:700}
.earning-requirement{width:100%;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:7px;border:0;background:transparent;padding:6px 0;text-align:left;color:inherit}.earning-requirement i{font-style:normal;font-size:18px}

@media (min-width:1050px){
  html.knqd-debug-mode{--knqd-debug-app-width:480px;--knqd-debug-panel-width:486px;--knqd-debug-gap:12px}
  html.knqd-debug-mode body{padding-right:0!important;overflow-x:hidden!important}
  html.knqd-debug-mode .app-shell{width:var(--knqd-debug-app-width)!important;max-width:var(--knqd-debug-app-width)!important;margin-left:calc(50% - (var(--knqd-debug-panel-width) + var(--knqd-debug-gap))/2 - var(--knqd-debug-app-width)/2)!important;margin-right:0!important}
  html.knqd-debug-mode #mainTopbar:not(.hide),html.knqd-debug-mode .bottom-nav,html.knqd-debug-mode .chat-panel{left:calc(50% - (var(--knqd-debug-panel-width) + var(--knqd-debug-gap))/2)!important;right:auto!important;transform:translateX(-50%)!important;width:var(--knqd-debug-app-width)!important;max-width:var(--knqd-debug-app-width)!important}
  html.knqd-debug-mode .debug-panel{left:calc(50% + (var(--knqd-debug-app-width) + var(--knqd-debug-gap))/2)!important;right:auto!important;width:var(--knqd-debug-panel-width)!important;max-width:var(--knqd-debug-panel-width)!important}
}


/* KNQD 8.3.14.0 — module Uy tín tổng thể */
.reputation-card-compact .reputation-summary-button{padding:13px 14px;gap:8px}
.reputation-summary-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.reputation-summary-main b{font-size:14px}.reputation-summary-main small{max-width:56%;text-align:right;font-size:11px;line-height:1.35}
.reputation-summary-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px}
.reputation-summary-meta>b{color:#8a5b00;text-align:right}
.reputation-card-compact .reputation-summary-button>i{display:flex;align-items:center;justify-content:space-between;color:#0867c7}
.reputation-center-view{padding-bottom:96px}
.reputation-page-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}
.reputation-page-head h2{margin:0}.reputation-page-head p{margin:2px 0 0}
.reputation-back-button{padding:8px 10px}
.reputation-loading-card{text-align:center;font-weight:700;color:#55718d}
.reputation-center-content{display:grid;gap:12px}
.reputation-overview-card{display:grid;grid-template-columns:106px 1fr;align-items:center;gap:14px;background:linear-gradient(145deg,#eaf5ff,#fff);border-color:#91c4f2}
.reputation-score-orb{width:94px;height:94px;border-radius:50%;display:grid;place-content:center;text-align:center;background:#fff;border:8px solid #d7ebff;box-shadow:inset 0 0 0 1px #8fc1ef}
.reputation-score-orb strong{font-size:30px;line-height:1;color:#075eb4}.reputation-score-orb span{font-size:10px;color:#637b92}
.reputation-overview-copy{display:grid;gap:4px}.reputation-overview-copy>span{font-size:11px;color:#667d92}.reputation-overview-copy h3{margin:0;font-size:18px}.reputation-overview-copy p{margin:0;font-size:12px;color:#3e607e}
.reputation-overview-status{margin-top:5px;padding:8px 10px;border-radius:10px;background:#fff4d9;color:#765000;font-size:11px;font-weight:800;line-height:1.4}
.reputation-section-card{padding:13px}
.reputation-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.reputation-section-head h3{margin:0 0 2px;font-size:15px}.reputation-section-head p{margin:0;color:#667d92;font-size:11px;line-height:1.4}.reputation-section-head>b{white-space:nowrap;color:#075eb4;font-size:13px}
.reputation-center-breakdown{display:grid;gap:9px}.reputation-score-row{padding:10px;border:1px solid #d9e6f2;border-radius:13px;background:#fff}.reputation-score-row.complete{border-color:#c5e8d3;background:#f8fffa}
.reputation-score-row-head{display:flex;justify-content:space-between;gap:10px}.reputation-score-row-head>div{display:grid;gap:3px}.reputation-score-row-head b{font-size:13px}.reputation-score-row-head span{font-size:10px;color:#667d92;line-height:1.4}.reputation-score-row-head>strong{white-space:nowrap;font-size:12px;color:#075eb4}
.reputation-score-progress{height:6px;margin-top:8px;border-radius:999px;background:#e7eef6;overflow:hidden}.reputation-score-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4ba4ee,#1373c9)}
.reputation-profile-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:9px;padding-top:8px;border-top:1px dashed #d5e1ec}.reputation-profile-detail-list>div{display:flex;justify-content:space-between;gap:6px;padding:6px 7px;border-radius:9px;background:#f4f7fa;font-size:10px}.reputation-profile-detail-list>div.complete{color:#087d48;background:#effaf4}.reputation-profile-detail-list>div.missing{color:#8a5b00;background:#fff8e8}.reputation-profile-detail-list b{white-space:nowrap}
.reputation-action-list{display:grid;gap:8px}.reputation-action-row{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;padding:10px;border:1px solid #d9e6f2;border-radius:12px;background:#fbfdff}.reputation-action-row>div{display:grid;gap:2px}.reputation-action-row b{font-size:12px}.reputation-action-row span{font-size:10px;color:#667d92;line-height:1.35}.reputation-action-row>strong{color:#0c7d43;font-size:12px}.reputation-action-row button{grid-column:1/-1;justify-self:start;border:0;border-radius:9px;padding:7px 10px;background:#e8f3ff;color:#075eb4;font-weight:800;font-size:11px}
.reputation-complete-box{padding:12px;border-radius:12px;background:#effaf4;color:#087d48;font-weight:800;font-size:12px}
.reputation-next-checks{display:grid;gap:7px}.reputation-next-check{width:100%;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:9px 10px;border:1px solid #dbe6f0;border-radius:12px;background:#fff;text-align:left;color:#173650}.reputation-next-check>b{font-size:17px}.reputation-next-check>span{display:grid;gap:2px}.reputation-next-check strong{font-size:12px}.reputation-next-check small{font-size:10px;color:#667d92}.reputation-next-check i{font-size:20px;font-style:normal}.reputation-next-check.met{border-color:#c5e8d3;background:#f6fff9}.reputation-next-check.met>b{color:#0b8a4c}.reputation-next-check.missing>b,.reputation-next-check.missing>i{color:#d77a00}
.reputation-center-ladder{display:grid;gap:7px}.reputation-ladder-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;border:1px solid #dbe6f0;border-radius:12px;background:#fbfdff}.reputation-ladder-row>div{display:grid;gap:2px}.reputation-ladder-row b{font-size:12px}.reputation-ladder-row span,.reputation-ladder-row small{font-size:10px;color:#667d92;line-height:1.35}.reputation-ladder-row>strong{font-size:10px;white-space:nowrap;color:#65798c}.reputation-ladder-row.current{border-color:#6eacf0;background:#eaf5ff}.reputation-ladder-row.current>strong{color:#075eb4}.reputation-ladder-row.achieved{border-color:#c5e8d3;background:#f7fff9}.reputation-ladder-row.achieved>strong{color:#087d48}.reputation-ladder-row.next{border-color:#f0cd87;background:#fffaf0}.reputation-ladder-row.next>strong{color:#946000}
.reputation-center-note{margin:0 4px;line-height:1.5;font-size:10px}
@media(max-width:430px){.reputation-overview-card{grid-template-columns:86px 1fr}.reputation-score-orb{width:76px;height:76px;border-width:6px}.reputation-score-orb strong{font-size:25px}.reputation-profile-detail-list{grid-template-columns:1fr}.reputation-summary-main{display:grid}.reputation-summary-main small{max-width:none;text-align:left}.reputation-summary-meta{align-items:flex-start;flex-direction:column;gap:3px}.reputation-summary-meta>b{text-align:left}}
