:root{
  --primary:#EE4D2D; --primary-h:#D73211; --primary-text:#C8371A; --tint:#FDEEE8;
  --grad-a:#F53D2D; --grad-b:#FF6633;
  --navy:#0B1F3A; --screen:#F5F5F5; --card:#fff; --text:#212121; --muted:#757575; --border:#E8E8E8;
  --success:#047857; --info:#1D4ED8; --warning:#B45309; --error:#D93025; --star:#F5A524;
  --r-btn:10px; --r-card:16px;
}

/* ===== Responsive brand logo (Desktop/Tablet/Mobile) — only for text-based .logo in portals ===== */
.logo:not(.lp-logo){
  display:inline-block!important;
  overflow:hidden!important;
  text-indent:-9999px!important;
  background-repeat:no-repeat!important;
  background-position:left center!important;
  background-size:contain!important;
  height:48px!important;
  width:48px!important;
  vertical-align:middle!important;
  background-position:center!important;
  background-image:url('https://pub-84c3902526ad4c82b488275b43b39e3a.r2.dev/agent-assets/57813765-aa6e-4c0d-b03c-ebdab260764c/6a18ab41-180a-42a8-ba4e-90efcac40d23.png')!important;
}
@media (min-width:601px) and (max-width:1024px){
  .logo:not(.lp-logo){
    width:140px!important;height:44px!important;background-position:left center!important;
    background-image:url('https://pub-84c3902526ad4c82b488275b43b39e3a.r2.dev/agent-assets/57813765-aa6e-4c0d-b03c-ebdab260764c/abea88e7-9e70-4745-8083-4216d38fb726.png')!important;
  }
}
@media (min-width:1025px){
  .logo:not(.lp-logo){
    width:220px!important;height:46px!important;background-position:left center!important;
    background-image:url('https://pub-84c3902526ad4c82b488275b43b39e3a.r2.dev/agent-assets/57813765-aa6e-4c0d-b03c-ebdab260764c/fb11b10e-ea2d-443d-aeae-47b2e560095e.png')!important;
  }
}

/* ===== Responsive: Admin & Business portals — desktop full sidebar, tablet icon-rail, mobile drawer ===== */
/* Hamburger button (injected by JS into .topbar on portal pages) — hidden on desktop */
.portal-burger{display:none;font-size:24px;line-height:1;background:none;border:none;color:inherit;padding:4px 8px;margin-right:6px;cursor:pointer;flex-shrink:0}
.portal-scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:600}

/* Tablet + mobile (≤1024px): sidebar becomes an off-canvas drawer toggled by the hamburger.
   Desktop (>1024px) keeps the full persistent sidebar unchanged. */
@media (max-width:1024px){
  table{display:block!important;width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .portal{display:block!important}
  .portal-burger{display:inline-block}
  .sidebar{position:fixed!important;top:0;left:0;height:100vh!important;width:260px!important;z-index:700;
    transform:translateX(-100%);transition:transform .22s ease;box-shadow:2px 0 16px rgba(0,0,0,.2)}
  .sidebar.open{transform:translateX(0)}
  .portal.drawer-open .portal-scrim{display:block}
  .main{width:100%!important}
  .content{padding:20px!important}
}
@media (max-width:768px){
  .topbar{padding:12px 14px!important}
  .topbar h2{font-size:16px}
  .content{padding:14px!important}
  .stat-cards{grid-template-columns:1fr 1fr!important}
  /* keep big money figures inside their cards — no horizontal overflow */
  .stat-cards{min-width:0}
  .stat-cards>.card{min-width:0;overflow:hidden}
  .stat-cards>.card>[style*="font-size:24px"],.stat-cards>.card .money{font-size:16px!important;word-break:break-word;overflow-wrap:anywhere}
  .stat-tile .v{font-size:17px!important;overflow-wrap:anywhere}
}
@media (max-width:640px){
  .lp-grid-2,.lp-grid-3,.lp-grid-4{grid-template-columns:1fr!important}
  .grid{grid-template-columns:1fr!important}
  .card{padding:12px!important}
  h1{font-size:19px!important}
  .lp-stat-strip{grid-template-columns:repeat(2,1fr)!important}
  .stat-cards{grid-template-columns:1fr 1fr!important}
  .filters{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:10px!important;padding:12px!important}
  .filters .field{min-width:0!important;width:100%!important}
  .filters .field:first-child{grid-column:span 2!important}
  .filters #f-go{grid-column:span 2!important;width:100%!important}
  .grid-fill-260{grid-template-columns:1fr!important}
  .pub-content-container,.topbar{padding-left:16px!important;padding-right:16px!important}
  .btn{font-size:14px}
  th,td{padding:9px 10px!important}
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{font-family:var(--font-body,'Be Vietnam Pro',system-ui,sans-serif);background:var(--screen);color:var(--text);-webkit-font-smoothing:antialiased}
body{font-size:14px;line-height:1.45}
h1,h2,h3,.hero-navy h1,.hero-navy h2,.koc-recruit-hero h1,.koc-recruit-hero h2,.lp-hero h1{font-family:var(--font-display,'Lora',ui-serif,serif);font-style:normal}
.boot{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--muted)}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
img{display:block;max-width:100%}
.app-icon{display:inline-block;flex:0 0 auto;width:1.4em;height:1.4em;object-fit:contain;vertical-align:-.3em}
input,select,textarea{font-family:inherit;font-size:14px;width:100%;padding:12px;border:1px solid var(--border);border-radius:var(--r-btn);background:#fff;color:var(--text);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--primary)}
label{display:block;font-weight:500;margin-bottom:6px;font-size:13px}
.field{margin-bottom:14px}
.hint{color:var(--muted);font-size:12px;margin-top:4px}
.err{color:var(--error);font-size:12px;margin-top:4px}

.btn{height:48px;border-radius:var(--r-btn);font-weight:600;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 18px;width:100%;transition:.15s}
.btn.nv-lift{transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s ease,background .15s ease}
.btn.nv-lift:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 18px rgba(11,31,58,.12)}
.btn.primary{background:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary-h)}
.btn.secondary{background:#e2e8f0;color:#0f172a;border:1px solid #cbd5e1}
.btn.secondary:hover{background:#cbd5e1}
.btn.grad{background:linear-gradient(90deg,var(--grad-a),var(--grad-b));color:#fff}
.btn.navy{background:var(--navy);color:#fff}
.btn.ghost{background:#fff;color:var(--text);border:1px solid var(--border)}
.btn.sm{height:38px;font-size:13px;width:auto;padding:0 14px}
.btn.danger{background:var(--error);color:#fff}
.btn.ok{background:var(--success);color:#fff}
.btn:disabled{opacity:.5;pointer-events:none}

.card{background:var(--card);border-radius:var(--r-card);border:1px solid var(--border);padding:16px}
.chip{display:inline-flex;align-items:center;gap:4px;border-radius:9999px;padding:3px 10px;font-size:12px;font-weight:500;background:var(--tint);color:var(--primary-text)}
.chip.g{background:#ECFDF5;color:var(--success)}
.chip.b{background:#EFF6FF;color:var(--info)}
.chip.w{background:#FFFBEB;color:var(--warning)}
.chip.r{background:#FEF2F2;color:var(--error)}
.chip.n{background:#EEF2F7;color:var(--navy)}
.chip.on-dark{background:hsla(0,0%,100%,.15);color:#fff}
.money{color:var(--primary);font-weight:700}
.stars{color:var(--star);font-size:13px}
.rating-picker{display:flex;align-items:center;gap:3px;min-height:54px;padding:9px 13px;border:1px solid var(--border);border-radius:12px;background:#fff}.rating-star{width:34px;height:34px;color:#d7dbe0;font-size:29px;line-height:1;transition:color .12s,transform .12s}.rating-star:hover,.rating-star:focus-visible{transform:scale(1.12);outline:none}.rating-star.active{color:var(--star)}
.campaign-pricing{display:grid;gap:10px;margin:16px 0;padding:15px;border:1px solid #f3d2ca;border-radius:14px;background:linear-gradient(135deg,#fff9f7,var(--tint))}.campaign-pricing>div{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px}.campaign-pricing span{color:var(--muted)}.campaign-pricing span small{display:block;margin-top:2px;font-size:10px}.campaign-pricing b{color:var(--navy);white-space:nowrap}.campaign-pricing-total{padding-top:10px;border-top:1px solid #efc8bf}.campaign-pricing-total strong{color:var(--primary);font-size:18px}.campaign-pricing>p{color:var(--muted);font-size:10px;line-height:1.5}.campaign-allocation-list{display:grid;gap:7px;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fafafa}.campaign-allocation-list>div{display:grid;grid-template-columns:minmax(140px,1fr) auto auto;align-items:center;gap:10px;padding-bottom:7px;border-bottom:1px solid var(--border)}.campaign-allocation-list span small{display:block;color:var(--muted);font-size:10px}.campaign-candidate{gap:12px}.campaign-allocation-input{width:150px}.campaign-allocation-input span{display:block;color:var(--muted);font-size:10px}.campaign-allocation-input input{padding:8px;font-size:12px}
.campaign-business-allocation{display:grid;gap:6px;min-width:235px;padding:8px 0;border-bottom:1px solid var(--border)}.campaign-business-allocation:last-child{border-bottom:0}.campaign-business-allocation small{display:block;max-width:260px;color:var(--muted);font-size:10px}.campaign-allocation-head{display:flex;align-items:center;gap:6px;white-space:nowrap}.campaign-allocation-head b{overflow:hidden;max-width:145px;text-overflow:ellipsis}.campaign-allocation-head strong{color:var(--primary);font-size:12px}.campaign-allocation-head .chip{padding:4px 7px;font-size:9px}.campaign-allocation-controls{display:flex;align-items:center;justify-content:space-between;gap:8px}.campaign-allocation-controls>a,.campaign-submission-link{color:var(--info);font-size:11px;font-weight:700;white-space:nowrap}.campaign-allocation-review{display:flex;gap:5px;margin-left:auto}.campaign-allocation-review .btn{min-height:30px;padding:5px 9px;font-size:10px;border-radius:8px}.campaign-koc-list{display:grid;gap:12px}.campaign-koc-card{display:grid;gap:10px}.campaign-koc-money{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:12px;background:var(--tint)}.campaign-koc-money span{color:var(--muted);font-size:12px}.campaign-koc-money strong{color:var(--primary);font-size:18px}.campaign-koc-actions{margin-top:4px;gap:8px}.campaign-submit-form{padding-top:10px;border-top:1px solid var(--border)}
.campaign-detail-summary{display:grid;gap:8px;margin-top:16px;padding:14px;border:1px solid #f3d2ca;border-radius:14px;background:var(--tint)}.campaign-detail-summary>div{display:flex;align-items:center;justify-content:space-between}.campaign-detail-summary span,.campaign-detail-meta span{color:var(--muted);font-size:12px}.campaign-detail-summary .total{padding-top:9px;border-top:1px solid #efc8bf}.campaign-detail-summary .total strong{color:var(--primary);font-size:20px}.campaign-detail-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.campaign-detail-meta>div{display:grid;gap:4px;padding:10px;border:1px solid var(--border);border-radius:10px}.campaign-detail-allocations{display:grid;gap:8px;margin-top:10px}.campaign-detail-allocations>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px;border:1px solid var(--border);border-radius:11px}.campaign-detail-allocations small,.campaign-detail-allocations a{display:block;margin-top:5px}.campaign-detail-allocations a{color:var(--info);font-size:12px;font-weight:700}
.campaign-table-wrap{border:1px solid #e7e9ee;border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(15,35,64,.05)}.campaign-table{min-width:1080px;border-collapse:separate;border-spacing:0}.campaign-table thead th{padding:16px 18px;background:#fafbfc;color:#6f7580;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid #e7e9ee}.campaign-table tbody td{padding:20px 18px;vertical-align:middle;border-bottom:1px solid #edf0f3}.campaign-table tbody tr:last-child td{border-bottom:0}.campaign-table tbody tr{transition:background .18s ease}.campaign-table tbody tr:hover{background:#fffaf8}.campaign-date{color:var(--muted);font-size:13px;white-space:nowrap}.campaign-budget{display:grid;gap:2px;min-width:128px}.campaign-budget strong{color:var(--primary);font-size:16px}.campaign-budget span{color:var(--muted);font-size:11px}.campaign-quote-note{max-width:190px;margin-top:7px;padding:6px 8px;border-radius:8px;background:var(--tint);color:#72574f;font-size:11px}.campaign-qty{display:inline-grid;place-items:center;min-width:32px;height:32px;border-radius:10px;background:#f4f6f9;color:var(--navy);font-weight:800}.campaign-status-cell{max-width:180px}.campaign-status-cell .chip{display:inline-flex;max-width:170px;line-height:1.35}.campaign-unassigned{display:inline-flex;padding:7px 10px;border-radius:999px;background:#f5f6f8;color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.campaign-actions{display:grid;gap:8px;min-width:190px}.campaign-action-primary{width:100%;min-height:42px;justify-content:center;box-shadow:0 8px 18px rgba(244,74,47,.18)}.campaign-action-secondary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.campaign-action-secondary .btn{min-height:38px;justify-content:center}.campaign-cancel-button{color:#b42318;border-color:#f0c5c0;background:#fffafa}.campaign-cancel-button:hover{background:#fff0ed;border-color:#e99d94}
@media(max-width:900px){.campaign-table-wrap{border-radius:14px}.campaign-table tbody td,.campaign-table thead th{padding-left:13px;padding-right:13px}.campaign-detail-meta{grid-template-columns:1fr}.campaign-detail-allocations>div{align-items:flex-start}}
.campaign-koc-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.campaign-koc-count{display:grid;min-width:90px;padding:10px 14px;border:1px solid rgba(255,255,255,.22);border-radius:14px;text-align:center;background:rgba(255,255,255,.09)}.campaign-koc-count strong{font-size:20px}.campaign-koc-count span{font-size:10px;opacity:.8;text-transform:uppercase;letter-spacing:.06em}.campaign-koc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;align-items:stretch}.campaign-koc-card{position:relative;display:flex;flex-direction:column;gap:13px;min-height:350px;padding:0;overflow:hidden;border:1px solid #e4e8ef;border-radius:18px;box-shadow:0 9px 26px rgba(15,35,64,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.campaign-koc-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#f4a261}.campaign-koc-card--accepted:before,.campaign-koc-card--approved:before{background:#2563eb}.campaign-koc-card--settled:before{background:#0a8a68}.campaign-koc-card--declined:before{background:#dc3a31}.campaign-koc-card:hover{transform:translateY(-2px);border-color:#d8dde7;box-shadow:0 14px 34px rgba(15,35,64,.1)}.campaign-koc-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:18px 18px 0 22px}.campaign-koc-company span,.campaign-koc-meta span,.campaign-koc-brief>span{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.campaign-koc-company h3{margin-top:3px;font-size:17px;color:var(--navy)}.campaign-koc-card>.campaign-koc-money,.campaign-koc-card>.campaign-koc-meta,.campaign-koc-card>.campaign-koc-brief,.campaign-koc-card>.campaign-koc-feedback,.campaign-koc-card>.campaign-submission-link,.campaign-koc-card>.campaign-koc-card-footer{margin-left:22px;margin-right:18px}.campaign-koc-card>.campaign-koc-money{padding:13px 14px;border:1px solid #f4d8d1;background:linear-gradient(135deg,#fff9f7,#fff1ed)}.campaign-koc-card>.campaign-koc-money strong{font-size:20px}.campaign-koc-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.campaign-koc-meta>div{display:grid;align-content:start;gap:5px;padding:10px;border:1px solid #e8ebf0;border-radius:11px;background:#fafbfc}.campaign-koc-meta b{font-size:12px;line-height:1.35}.campaign-koc-brief,.campaign-koc-feedback{padding:11px 12px;border-radius:11px;background:#f6f8fb}.campaign-koc-brief p,.campaign-koc-feedback p{display:-webkit-box;overflow:hidden;margin-top:4px;font-size:12px;line-height:1.5;-webkit-line-clamp:2;-webkit-box-orient:vertical}.campaign-koc-feedback{border:1px solid #f1d3cb;background:#fff7f4}.campaign-koc-feedback b{font-size:11px;color:#9b3f2f}.campaign-koc-card-footer{margin-top:auto!important;padding:2px 0 18px}.campaign-koc-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:8px}.campaign-koc-actions .btn{width:100%;justify-content:center;min-height:40px}.campaign-koc-waiting{padding:11px;border-radius:11px;background:#f3f6fa;color:#536174;font-size:12px;font-weight:700;text-align:center}.campaign-submit-form{display:grid;gap:8px}.campaign-submit-form .field{margin:0}.campaign-submit-form input,.campaign-submit-form textarea{padding:10px;font-size:12px}.campaign-submit-form .btn{width:100%;justify-content:center}.campaign-koc-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:20px}.campaign-koc-pager span{color:var(--muted);font-size:12px}.campaign-koc-pager .btn{width:auto;min-width:92px;justify-content:center}
@media(min-width:1450px){.campaign-koc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.campaign-koc-heading{align-items:flex-end}.campaign-koc-grid{grid-template-columns:1fr}.campaign-koc-meta{grid-template-columns:1fr 1fr}.campaign-koc-card{min-height:0}.campaign-koc-count{min-width:74px;padding:8px}}
.settlement-koc-group{display:flex;align-items:center;gap:8px;white-space:nowrap}.settlement-koc-detail{padding:0;border:0;background:transparent;color:var(--info);font-size:10px;font-weight:800;cursor:pointer}.settlement-koc-detail:hover{text-decoration:underline}.settlement-koc-detail-list{display:grid;gap:8px;margin-top:16px}.settlement-koc-detail-list>div{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:#fafbfc}.settlement-koc-detail-list>div>span{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--navy);color:#fff;font-size:11px;font-weight:800}.settlement-koc-detail-list b{font-size:13px}
.campaign-table th:last-child,.campaign-table td:last-child{width:180px;min-width:180px;padding-right:18px}.campaign-actions{width:100%;min-width:0;max-width:180px}.campaign-action-primary{min-width:0;padding-left:10px;padding-right:10px}.campaign-action-secondary{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;width:100%}.campaign-action-secondary .btn{width:100%;min-width:0;padding-left:8px;padding-right:8px}
.muted{color:var(--muted)}
.row{display:flex;gap:10px;align-items:center}
.between{display:flex;justify-content:space-between;align-items:center;gap:10px}
.grid{display:grid;gap:12px}
h1{font-size:22px;font-weight:800}h2{font-size:18px;font-weight:700}h3{font-size:15px;font-weight:600}
.tint-box{background:var(--tint);border-radius:12px;padding:14px}
.tint-box.on-dark{background:hsla(0,0%,100%,.14);color:#fff}

/* Toast */
#toast-wrap{position:relative;z-index:9999}
.toast{background:var(--navy);color:#fff;padding:11px 18px;border-radius:10px;font-size:13px;font-weight:500;max-width:90%;box-shadow:0 6px 20px rgba(0,0,0,.2);animation:pop .2s}
.toast.err{background:var(--error)}.toast.ok{background:var(--success)}
@keyframes pop{from{transform:translateY(-10px);opacity:0}}

/* Modal */
#modal-root:empty{display:none}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;z-index:9000;padding:0}
.modal{background:#fff;border-radius:18px 18px 0 0;width:100%;max-width:600px;max-height:90vh;overflow:auto;padding:20px}
@media(min-width:700px){.modal-bg{align-items:center;padding:20px}.modal{border-radius:18px}}
.modal h2{margin-bottom:12px}
.decision-backdrop{background:rgba(8,25,48,.58);backdrop-filter:blur(5px);padding:18px;align-items:center}.decision-modal{position:relative;width:min(440px,100%);padding:30px;border:1px solid rgba(255,255,255,.7);border-radius:22px;overflow:visible;text-align:center;box-shadow:0 28px 80px rgba(8,25,48,.28);animation:pop .18s ease-out}.decision-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:1px solid var(--border);border-radius:50%;background:#fff;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}.decision-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 16px;border-radius:15px;background:var(--tint);color:var(--primary);font-size:22px;font-weight:800}.decision-modal h2{margin:0;color:var(--navy);font-size:21px}.decision-modal>p{margin:10px 0 22px;color:var(--muted);font-size:13px;line-height:1.6}.decision-input{width:100%;min-height:104px;margin:-5px 0 6px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;resize:vertical;font:inherit;outline:none}.decision-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(238,77,45,.1)}.decision-error{display:block;margin-bottom:10px;color:var(--error);text-align:left}.decision-error[hidden]{display:none}.decision-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.decision-actions .btn{min-height:44px;border-radius:11px}

/* AUTH */
.auth{min-height:100vh;background:linear-gradient(160deg,var(--grad-a),var(--grad-b));display:flex;align-items:center;justify-content:center;padding:20px}
.auth-card{background:#fff;border-radius:20px;padding:28px;width:100%;max-width:400px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.logo{font-weight:800;font-size:26px;color:var(--primary)}
.logo span{color:var(--navy)}
/* Login-screen logo: always centered horizontally regardless of breakpoint background-position */
.auth-card .logo{display:block!important;width:190px!important;height:62px!important;max-width:72%!important;margin:0 auto 16px!important;background-position:center!important;background-size:contain!important}
.demo-acc{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.demo-acc-role{display:flex;align-items:center;gap:8px}
.demo-acc-logo{width:24px;height:24px;object-fit:contain;flex:0 0 24px}
.demo-acc:hover{background:var(--tint)}

/* Login page — landing-page inspired layout; existing logo and imagery stay untouched. */
.auth-login{position:relative;height:100vh;min-height:0;overflow:hidden;background:#fff;padding:32px}
.auth-login::before,.auth-login::after{content:"";position:absolute;border-radius:999px;pointer-events:none}.auth-login::before{width:420px;height:420px;right:-170px;top:-190px;background:rgba(238,77,45,.08)}.auth-login::after{width:280px;height:280px;left:-150px;bottom:-150px;border:52px solid rgba(238,77,45,.07)}
.auth-login-shell{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,460px);align-items:center;width:min(1120px,100%);height:100%;max-height:720px;min-height:0;margin:auto;border:1px solid #f0e8e5;border-radius:28px;background:#fff;box-shadow:0 28px 80px rgba(11,31,58,.12);overflow:hidden}
.auth-intro{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:72px clamp(42px,6vw,86px);color:#fff;background:linear-gradient(145deg,var(--navy) 0%,#132f54 72%,#1a3b65 100%);position:relative;overflow:hidden}.auth-intro::before{content:"";position:absolute;width:310px;height:310px;right:-140px;bottom:-150px;border:46px solid rgba(255,255,255,.06);border-radius:50%}.auth-intro>*{position:relative;z-index:1}
.auth-eyebrow{align-self:flex-start;margin-bottom:22px;padding:7px 12px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.09);font-size:11px;font-weight:700;letter-spacing:.1em}.auth-intro h1{font-size:clamp(34px,4vw,52px);line-height:1.16;letter-spacing:-.035em;margin:0 0 20px;color:#fff}.auth-intro h1 span{color:#ff765b}.auth-intro>p{max-width:520px;color:rgba(255,255,255,.75);font-size:15px;line-height:1.75}
.auth-benefits{display:grid;gap:18px;margin-top:40px}.auth-benefits>div{display:flex;align-items:flex-start;gap:13px}.auth-benefits>div>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:rgba(255,118,91,.18);color:#ff947f;font-weight:800}.auth-benefits p{display:grid;gap:3px}.auth-benefits b{font-size:13px}.auth-benefits small{color:rgba(255,255,255,.58);font-size:12px}
.auth-login .auth-card{position:relative;max-width:none;padding:30px clamp(28px,3.5vw,46px);border-radius:0;box-shadow:none;background:linear-gradient(180deg,#fff 0%,#fff 78%,#fffaf8 100%)}.auth-home-link{position:absolute;z-index:3;top:20px;left:22px;display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.1);color:#fff;font-size:11px;font-weight:700;line-height:1;backdrop-filter:blur(8px);transition:.2s}.auth-home-link svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-home-link:hover{transform:translateY(-1px);background:rgba(255,255,255,.18);color:#fff}
.auth-card-heading{text-align:center;margin:10px 0 18px}.auth-card-heading>span{display:inline-flex;padding:5px 10px;border-radius:999px;background:var(--tint);color:var(--primary);font-size:9px;font-weight:800;letter-spacing:.14em;margin-bottom:8px}.auth-card-heading h2{color:var(--navy);font-size:25px;line-height:1.25;letter-spacing:-.02em}.auth-card-heading p{margin-top:5px;color:var(--muted);font-size:12px}.auth-login .field{margin-bottom:13px}.auth-login .field label{color:var(--navy);font-size:12px;font-weight:700}.auth-login input{height:48px;padding:0 15px;border:1px solid #e5e1df;border-radius:12px;background:#fff;transition:.2s}.auth-login input:hover{border-color:#cfc7c3}.auth-login input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(238,77,45,.1)}.auth-label-row{display:flex;align-items:center;justify-content:space-between}.auth-label-row a{margin-bottom:6px;color:var(--primary-text);font-size:11px;font-weight:700}.auth-login #li-btn{height:48px;margin-top:3px;border-radius:12px;background:linear-gradient(90deg,var(--grad-a),var(--grad-b));box-shadow:0 10px 24px rgba(238,77,45,.2)}.auth-login #li-btn span{font-size:18px;transition:transform .2s}.auth-login #li-btn:hover span{transform:translateX(3px)}
.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0 11px;color:#a39b97;font-size:10px;white-space:nowrap}.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:#eee8e5}.auth-demo-list{display:grid;gap:7px}.auth-login .demo-acc{width:100%;min-height:43px;margin:0;padding:8px 12px;border:1px solid #ece6e3;border-radius:12px;background:#fff;font-size:11px;transition:.2s}.auth-login .demo-acc-role{font-weight:700;color:var(--navy)}.auth-login .demo-acc-logo{width:22px;height:22px;flex-basis:22px}.auth-login .demo-acc:hover{transform:translateY(-1px);border-color:#f3b4a7;background:var(--tint);box-shadow:0 6px 16px rgba(11,31,58,.06)}
.auth-quick-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.auth-quick-links .btn{min-width:0;min-height:38px;padding-inline:10px;border-radius:11px;white-space:nowrap;font-size:11px}.auth-business-register{grid-column:1/-1;background:var(--navy)!important;border-color:var(--navy)!important;color:#fff!important;font-size:11px!important}.auth-business-register:hover{background:#17375f!important;border-color:#17375f!important;color:#fff!important}
@media(max-width:820px){.auth-login{height:100vh;min-height:0;padding:18px;background:#f7f5f4}.auth-login-shell{display:block;height:100%;min-height:0;max-width:540px;max-height:none;border-radius:24px}.auth-intro{display:none}.auth-login .auth-card{height:100%;padding:26px 36px;overflow:hidden}.auth-home-link{color:var(--navy);border-color:var(--border);background:#fff;backdrop-filter:none}.auth-home-link:hover{border-color:#f3b4a7;background:var(--tint);color:var(--primary-text)}}
@media(max-width:480px){.auth-login{padding:0}.auth-login-shell{width:100%;min-height:100vh;border:0;border-radius:0;box-shadow:none}.auth-login .auth-card{padding:24px 20px}.auth-login .auth-card .logo{width:164px!important;height:52px!important;margin-bottom:12px!important}.auth-home-link{top:14px;left:14px;padding:7px}.auth-home-link span{display:none}.auth-card-heading h2{font-size:22px}.auth-login .demo-acc>span:last-child{font-size:10px}.auth-quick-links .btn{font-size:10px}}

/* ===== KOC mobile ===== */
.mobile{max-width:480px;margin:0 auto;min-height:100vh;background:var(--screen);padding-bottom:76px;position:relative}
.m-head{background:linear-gradient(120deg,var(--grad-a),var(--grad-b));color:#fff;padding:18px 16px 20px}
.m-head.koc-page-heading{position:relative;width:calc(100% - 24px);margin:12px 12px 0;padding:18px;border:1px solid rgba(255,255,255,.2);border-radius:16px;overflow:hidden;box-shadow:0 8px 22px rgba(244,72,48,.14)}
.m-head.koc-page-heading::before{content:"";position:absolute;right:-24px;top:-42px;width:112px;height:112px;border:18px solid rgba(255,255,255,.08);border-radius:50%;pointer-events:none}
.m-head.koc-page-heading>*,.m-head.koc-page-heading h2,.m-head.koc-page-heading p{position:relative;z-index:1}
.m-head.koc-page-heading h2{margin:0;font-size:21px;line-height:1.3}
.m-head.koc-page-heading p{line-height:1.45}
.m-head.koc-page-heading .tint-box{border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.14)}
@media (max-width:1024px){
  .koc-dashboard-heading>.between{flex-wrap:wrap;gap:14px}
  .koc-dashboard-heading .koc-home-actions{display:grid!important;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .koc-dashboard-heading .koc-home-actions .chip{display:flex;min-width:0;min-height:42px;padding:8px 7px;align-items:center;justify-content:center;gap:4px;border:1px solid rgba(255,255,255,.24);border-radius:12px;background:rgba(255,255,255,.14);box-shadow:0 4px 12px rgba(118,31,18,.1);color:#fff;font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;backdrop-filter:blur(6px)}
  .koc-dashboard-heading .koc-home-actions .chip:hover,.koc-dashboard-heading .koc-home-actions .chip:active{background:rgba(255,255,255,.24);transform:translateY(-1px)}
  .koc-dashboard-heading .koc-home-actions .notification-count{display:inline-grid;min-width:17px;height:17px;padding:0 4px;place-items:center;border-radius:999px;background:#fff;color:var(--primary);font-size:9px;font-weight:800}
  .koc-dashboard-heading .koc-home-actions .notification-count[hidden]{display:none}
}
.m-body{padding:14px 16px}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;background:#fff;border-top:1px solid var(--border);display:flex;z-index:500}
.bottom-nav a{flex:1;text-align:center;padding:8px 1px 10px;font-size:10px;color:var(--muted);font-weight:500;position:relative}
.bottom-nav a.active{color:var(--primary)}
.bottom-nav .ico{font-size:20px;display:flex;height:24px;align-items:center;justify-content:center;line-height:1.2}
.bottom-nav .nav-icon{width:24px;height:24px}
.bottom-nav .badge-num{position:absolute;top:4px;left:calc(50% + 8px)}
.koc-desktop-topbar,.koc-desktop-brand,.koc-desktop-account{display:none}
.icon-heading{display:flex;align-items:center;gap:8px}
.icon-heading .teaser-icon{width:30px;height:30px}
.stat-tile{background:#fff;border-radius:14px;padding:14px;flex:1;border:1px solid var(--border)}
.stat-tile .v{font-size:20px;font-weight:800;color:var(--primary)}
.stat-tile .l{font-size:12px;color:var(--muted)}

/* KOC portal tablet: use the available canvas without switching to the
   desktop sidebar, which remains reserved for screens wider than 1024px. */
@media (min-width:600px) and (max-width:1024px){
  .mobile.koc-portal{width:100%;max-width:none;margin:0;padding-bottom:84px;background:var(--screen)}
  .koc-portal #koc-view{width:100%;min-width:0}
  .koc-portal .m-head.koc-page-heading{width:calc(100% - 40px);max-width:920px;margin:20px auto 0;padding:22px 24px;border-radius:18px}
  .koc-portal .m-head.koc-page-heading h2{font-size:23px}
  .koc-portal .m-body{width:calc(100% - 40px);max-width:920px;margin:0 auto;padding:20px 0 30px}
  .koc-portal .bottom-nav{width:100%;max-width:none;padding:5px max(12px,env(safe-area-inset-left)) max(7px,env(safe-area-inset-bottom));box-shadow:0 -6px 20px rgba(11,31,58,.08)}
  .koc-portal .bottom-nav a{min-width:0;padding:7px 3px 8px;font-size:10px}
  .koc-portal .bottom-nav .ico{height:27px}
  .koc-portal .bottom-nav .nav-icon{width:23px;height:23px}
  .koc-portal .koc-dashboard-heading .koc-home-actions{max-width:430px}
  .koc-portal .m-body>.row{align-items:stretch}
  .koc-portal .stat-tile{min-height:110px;padding:18px}
  .koc-portal .stat-tile .v{font-size:24px}
  .koc-portal .booking-type-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}
  .koc-portal .booking-type-tabs button:first-child{grid-column:auto}
  .koc-portal #bk-list,.koc-portal .m-body.koc-content-grid,.koc-portal .m-body.koc-affiliate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
  .koc-portal #bk-list>.booking-grid-card,.koc-portal .koc-content-grid>.koc-content-card,.koc-portal .koc-affiliate-grid>.koc-affiliate-card{display:flex;min-width:0;height:100%;margin:0;padding:16px;flex-direction:column;border-radius:16px;box-shadow:0 5px 16px rgba(11,31,58,.045)}
  .koc-portal #bk-list>.booking-grid-card [data-video],.koc-portal .koc-content-grid>.koc-content-card>[data-open]{margin-top:auto!important}
  .koc-portal #bk-list>.empty,.koc-portal .koc-content-grid>.empty,.koc-portal .koc-affiliate-grid>.empty{grid-column:1/-1}
  .koc-portal .m-body.koc-aiclone-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
  .koc-portal .koc-aiclone-body>.card:first-child,.koc-portal .koc-aiclone-body>.between,.koc-portal .koc-aiclone-body>.empty{grid-column:1/-1}
  .koc-portal .koc-aiclone-body>.card:first-child{margin-bottom:2px!important;padding:22px}
  .koc-portal .koc-aiclone-body>.between{margin:10px 0 0!important}
  .koc-portal .koc-aiclone-body>.list-item{display:flex;min-width:0;height:100%;margin:0;padding:16px;flex-direction:column;border-radius:16px;box-shadow:0 5px 16px rgba(11,31,58,.045)}
  .koc-portal .koc-aiclone-body>.list-item>.tint-box{margin-top:14px!important}
  .koc-portal .koc-aiclone-body>.list-item>.btn:last-child{margin-top:auto!important}
  .koc-portal .koc-profile-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
  .koc-portal .koc-profile-body>.profile-hero{grid-column:1/-1;margin-bottom:2px}
  .koc-portal .koc-profile-body>.profile-hero .profile-cover{width:100%;height:clamp(210px,32vw,300px);max-height:none;aspect-ratio:auto}
  .koc-portal .koc-profile-body>.tier-benefit-card,.koc-portal .koc-profile-body>.profile-section{height:100%;margin-bottom:0}
  .koc-portal .koc-profile-body>#pf-edit-bottom{grid-column:1/-1;justify-self:end;width:auto;min-width:210px}
  .koc-portal .koc-profile-edit-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-items:start}
  .koc-portal .koc-profile-edit-body>.image-editor,.koc-portal .koc-profile-edit-body>.tier-benefit-card,.koc-portal .koc-profile-edit-body>#pf-prices,.koc-portal .koc-profile-edit-body>h3,.koc-portal .koc-profile-edit-body>.password-change-section,.koc-portal .koc-profile-edit-body>#pf-save{grid-column:1/-1}
  .koc-portal .koc-profile-edit-body .cover-upload-preview{max-height:280px}
  .koc-portal .koc-profile-edit-body>#pf-save{justify-self:end;width:auto;min-width:210px}
  .koc-portal .m-head.koc-wallet-heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:14px;align-items:stretch}
  .koc-portal .m-head.koc-wallet-heading .tint-box{margin-top:0!important}
  .koc-portal .m-head.koc-wallet-heading>div:last-child{display:grid!important;margin-top:0!important;align-content:center}
  .koc-portal .commission-summary{gap:12px}
  .koc-portal .commission-state{min-width:0}
  .koc-portal .modal{width:min(720px,calc(100vw - 40px));border-radius:20px}
}

/* KOC portal: keep the existing mobile UI below 1024px, expand it into a
   conventional sidebar + workspace layout on desktop. Visual tokens, icons,
   imagery and colors intentionally remain unchanged. */
@media (min-width:1025px){
  .mobile.koc-portal{max-width:none;width:100%;margin:0;min-height:100vh;padding:0 0 0 240px;background:var(--screen)}
  .koc-portal .bottom-nav{position:fixed;top:0;right:auto;bottom:0;left:0;width:240px;max-width:none;height:auto;min-height:100vh;min-height:100dvh;margin:0;padding:18px 0;display:flex;flex-direction:column;align-items:stretch;background:var(--navy);border:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;z-index:500}
  .koc-portal .koc-desktop-brand{display:flex;padding:2px 22px 24px;align-items:center;gap:11px;color:#fff;font-size:21px;font-weight:800}
  .koc-portal .koc-desktop-brand img{width:42px;height:42px;flex:0 0 42px;object-fit:contain}
  .koc-portal .bottom-nav a{flex:0 0 auto;display:flex;width:calc(100% - 24px);min-height:46px;margin:2px 12px;padding:10px 13px;align-items:center;gap:12px;border:0;border-radius:10px;text-align:left;font-size:14px;line-height:1.3;color:#cdd6e4;transition:background .18s ease,color .18s ease,transform .18s ease}
  .koc-portal .bottom-nav a:hover{background:rgba(255,255,255,.06);color:#fff;transform:translateX(1px)}
  .koc-portal .bottom-nav a.active{color:#fff;background:rgba(255,255,255,.1);box-shadow:inset 3px 0 0 var(--grad-b)}
  .koc-portal .bottom-nav a.active .ico{filter:drop-shadow(0 2px 5px rgba(0,0,0,.18))}
  .koc-portal .bottom-nav .ico{width:26px;height:26px;flex:0 0 26px;font-size:20px}
  .koc-portal .bottom-nav .nav-icon{width:24px;height:24px}
  .koc-portal .bottom-nav .badge-num{top:9px;left:auto;right:18px}
  .koc-portal .bottom-nav>a[href="#/notifications"]{display:none}
  .koc-portal .bottom-nav .koc-desktop-account{display:block;width:calc(100% - 32px);margin:auto 16px 0;padding:12px 16px;border:1px solid rgba(255,255,255,.22);border-radius:10px;color:#fff;font-size:13px;font-weight:700;text-align:center;background:rgba(255,255,255,.06)}
  .koc-portal .bottom-nav .koc-desktop-account:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.38)}
  .koc-portal .koc-desktop-topbar{display:flex;position:sticky;top:0;z-index:400;min-height:72px;padding:10px 28px;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 2px 10px rgba(11,31,58,.035)}
  .koc-portal .koc-desktop-eyebrow{color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
  .koc-portal .koc-desktop-topbar h2{font-size:19px;color:var(--navy)}
  .koc-portal .koc-desktop-actions{display:flex;align-items:center;gap:10px}
  .koc-portal .koc-top-icon{position:relative;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--border);border-radius:12px;background:#fff}
  .koc-portal .koc-top-icon:hover{background:var(--tint);border-color:#ffcfc4}
  .koc-portal .koc-top-icon .nav-icon{width:22px;height:22px}
  .koc-portal .koc-top-icon .badge-num{position:absolute;top:-6px;right:-5px;left:auto}
  .koc-portal .koc-top-profile{display:flex;align-items:center;gap:9px;padding:4px 11px 4px 5px;border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:13px;font-weight:700;background:#fff}
  .koc-portal .koc-top-profile:hover{background:var(--tint)}
  .koc-portal .koc-top-profile img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--tint)}
  .koc-portal #koc-view{width:100%;min-width:0}
  .koc-portal .m-head{padding:24px 30px;border-radius:0}
  .koc-portal .m-head.koc-page-heading{display:block;position:relative;width:calc(100% - 60px);max-width:1380px;margin:24px auto 0;padding:24px 28px;border:1px solid rgba(255,255,255,.24);border-radius:18px;overflow:hidden;box-shadow:0 10px 28px rgba(244,72,48,.14)}
  .koc-portal .m-head.koc-page-heading::before{content:"";position:absolute;right:58px;top:-54px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.09)}
  .koc-portal .m-head.koc-page-heading::after{content:"";position:absolute;right:-28px;bottom:-68px;width:170px;height:170px;border:24px solid rgba(255,255,255,.08);border-radius:50%}
  .koc-portal .m-head.koc-page-heading h2,.koc-portal .m-head.koc-page-heading p{position:relative;z-index:1}
  .koc-portal .m-head.koc-page-heading h2{margin:0;font-size:24px;line-height:1.25;letter-spacing:-.02em}
  .koc-portal .m-head.koc-page-heading p{margin-top:6px;font-size:13px!important;line-height:1.5;opacity:.88!important}
  .koc-portal .m-head.koc-dashboard-heading,.koc-portal .m-head.koc-wallet-heading{padding:26px 28px}
  .koc-portal .m-head.koc-dashboard-heading>.between,.koc-portal .m-head.koc-dashboard-heading>.tint-box,.koc-portal .m-head.koc-wallet-heading>.tint-box,.koc-portal .m-head.koc-wallet-heading>div:last-child{position:relative;z-index:1}
  .koc-portal .m-head.koc-dashboard-heading>.between{align-items:center}
  .koc-portal .m-head.koc-dashboard-heading>.between>div:first-child>div:first-child{font-size:12px!important;font-weight:600;letter-spacing:.02em}
  .koc-portal .m-head.koc-dashboard-heading>.between>div:first-child>div:last-child{margin-top:3px;font-size:25px!important;line-height:1.2}
  .koc-portal .m-head.koc-dashboard-heading .tint-box,.koc-portal .m-head.koc-wallet-heading .tint-box{margin-top:18px!important;padding:18px 20px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(255,255,255,.14);box-shadow:inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(6px)}
  .koc-portal .m-head.koc-wallet-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:16px;align-items:stretch}
  .koc-portal .m-head.koc-wallet-heading .tint-box{margin-top:0!important}
  .koc-portal .m-head.koc-wallet-heading>div:last-child{margin-top:0!important;display:grid!important;grid-template-columns:1fr;align-content:center}
  .koc-portal .m-head.koc-wallet-heading .btn{min-height:48px;border-radius:12px}
  .koc-portal .koc-home-actions{display:none}
  .koc-portal .m-body{width:100%;max-width:1440px;margin:0 auto;padding:24px 30px 36px}
  .koc-portal .m-body>.row{align-items:stretch}
  .koc-portal .stat-tile{min-height:112px;padding:20px}
  .koc-portal .stat-tile .v{font-size:26px}
  .koc-portal .booking-type-tabs{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}
  .koc-portal .booking-type-tabs button:first-child{grid-column:auto}
  .koc-portal #bk-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;align-items:stretch}
  .koc-portal #bk-list>.booking-grid-card{display:flex;aspect-ratio:1/1;min-width:0;margin:0;padding:18px;flex-direction:column;border-radius:16px;box-shadow:0 5px 18px rgba(11,31,58,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
  .koc-portal #bk-list>.booking-grid-card:hover{transform:translateY(-3px);border-color:#ffc5b8;box-shadow:0 12px 28px rgba(11,31,58,.09)}
  .koc-portal #bk-list>.booking-grid-card>.between:nth-last-of-type(1){margin-top:auto!important;padding-top:14px;gap:10px;align-items:flex-end}
  .koc-portal #bk-list>.booking-grid-card [data-video]{margin-top:auto!important}
  .koc-portal #bk-list>.empty{grid-column:1/-1}
  .koc-portal .m-body.koc-content-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;align-items:stretch}
  .koc-portal .koc-content-grid>.koc-content-card{display:flex;aspect-ratio:1/1;min-width:0;margin:0;padding:18px;flex-direction:column;border-radius:16px;box-shadow:0 5px 18px rgba(11,31,58,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
  .koc-portal .koc-content-grid>.koc-content-card:hover,.koc-portal .koc-affiliate-grid>.koc-affiliate-card:hover{transform:translateY(-3px);border-color:#ffc5b8;box-shadow:0 12px 28px rgba(11,31,58,.09)}
  .koc-portal .koc-content-grid>.koc-content-card .copybox{margin-top:14px!important}
  .koc-portal .koc-content-grid>.koc-content-card>[data-open]{margin-top:auto!important}
  .koc-portal .m-body.koc-affiliate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px;align-items:start}
  .koc-portal .koc-affiliate-grid>.koc-affiliate-card{min-width:0;margin:0;padding:18px;border-radius:16px;box-shadow:0 5px 18px rgba(11,31,58,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
  .koc-portal .koc-content-grid>.empty,.koc-portal .koc-affiliate-grid>.empty{grid-column:1/-1}
  .koc-portal .m-body.koc-profile-body,.koc-portal .m-body.koc-profile-edit-body{max-width:1100px}
  .koc-portal .koc-profile-body .profile-cover{width:100%;height:clamp(260px,24vw,360px);max-height:none;aspect-ratio:auto}
}

/* ===== KOC recruit landing: desktop / tablet / mobile ===== */
.koc-recruit{min-height:100vh;background:#fff;color:var(--text)}
.koc-recruit-container{width:min(1200px,calc(100% - 48px));margin:0 auto}
.koc-recruit-header{position:sticky;top:0;z-index:450;background:rgba(255,255,255,.96);border-bottom:1px solid var(--border);backdrop-filter:blur(12px)}
.koc-recruit-header-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.koc-recruit-header-actions{display:flex;align-items:center;gap:20px}
.koc-recruit-back{display:inline-flex;align-items:center;gap:8px;color:var(--navy);font-weight:600;font-size:13px}
.koc-recruit-back:hover{color:var(--primary)}
.koc-recruit-back span:first-child{font-size:18px}
.koc-recruit-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#081a32 0%,#0d2748 66%,#12345d 100%);color:#fff}
.koc-recruit-hero::before{content:"";position:absolute;width:480px;height:480px;border-radius:50%;right:-160px;top:-260px;background:rgba(238,77,45,.18);filter:blur(2px)}
.koc-recruit-hero::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;left:-140px;bottom:-180px;background:rgba(255,255,255,.06)}
.koc-recruit-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);align-items:center;gap:72px;padding-top:76px;padding-bottom:76px}
.koc-recruit-eyebrow,.koc-recruit-section-head>span,.koc-recruit-final-box>div>span{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.12em;color:#ff9b85}
.koc-recruit-hero h1{font-size:clamp(38px,4vw,58px);line-height:1.12;letter-spacing:-.035em;max-width:700px;margin:16px 0 20px;color:#fff}
.koc-recruit-hero-copy>p{max-width:650px;font-size:17px;line-height:1.75;color:#d5deea}
.koc-recruit-hero-actions{display:flex;align-items:center;gap:24px;margin-top:30px}
.koc-recruit-hero-actions .btn{width:auto;min-width:250px}
.koc-recruit-text-link{font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:3px}
.koc-recruit-text-link:hover{color:#ff9b85;border-color:#ff9b85}
.koc-recruit-trust{display:flex;flex-wrap:wrap;gap:18px;margin-top:28px;color:#b9c7d9;font-size:12px}
.koc-recruit-preview{position:relative;border:1px solid rgba(255,255,255,.16);border-radius:24px;padding:24px;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.06));box-shadow:0 30px 70px rgba(0,0,0,.28);backdrop-filter:blur(12px)}
.koc-recruit-preview::before{content:"";position:absolute;inset:10px -10px -10px 10px;border:1px solid rgba(255,255,255,.08);border-radius:24px;z-index:-1}
.koc-recruit-preview-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;color:#c9d5e4}
.koc-recruit-preview-badge{padding:6px 10px;border-radius:999px;background:rgba(238,77,45,.22);color:#ffad9b;font-weight:700}
.koc-recruit-live{display:flex;align-items:center;gap:6px}.koc-recruit-live i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.15)}
.koc-recruit-earning{margin:28px 0 24px;padding:22px;border-radius:18px;background:#fff;color:var(--navy)}
.koc-recruit-earning span,.koc-recruit-earning small{display:block;color:var(--muted);font-size:11px}
.koc-recruit-earning strong{display:block;font-size:26px;margin:7px 0 4px}
.koc-recruit-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.koc-recruit-mini-grid>div{padding:14px;border-radius:14px;background:rgba(255,255,255,.09);min-width:0}
.koc-recruit-mini-grid span,.koc-recruit-mini-grid b{display:block}.koc-recruit-mini-grid span{font-size:10px;color:#aebdd0;margin-bottom:5px}.koc-recruit-mini-grid b{font-size:12px;color:#fff}
.koc-recruit-benefits{padding:84px 0;background:#fff}
.koc-recruit-section-head{max-width:680px;margin:0 auto 38px;text-align:center}
.koc-recruit-section-head h2{font-size:34px;line-height:1.2;letter-spacing:-.025em;color:var(--navy);margin:10px 0 12px}
.koc-recruit-section-head p{font-size:15px;line-height:1.7;color:var(--muted)}
.koc-recruit-benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.koc-recruit-benefit-card{position:relative;min-height:220px;padding:28px 24px;border:1px solid var(--border);border-radius:20px;background:#fff;transition:.2s}
.koc-recruit-benefit-card:hover{transform:translateY(-4px);border-color:#ffc6b9;box-shadow:0 18px 40px rgba(11,31,58,.09)}
.koc-recruit-card-number{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--tint);color:var(--primary);font-weight:800;font-size:12px}
.koc-recruit-benefit-card h3{font-size:17px;color:var(--navy);margin:26px 0 10px}.koc-recruit-benefit-card p{color:var(--muted);line-height:1.7;font-size:13px}
.koc-recruit-steps{padding:78px 0;background:#0b1f3a;color:#fff}
.koc-recruit-section-head.light h2{color:#fff}.koc-recruit-step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.koc-recruit-step-grid article{display:flex;gap:18px;padding:24px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1)}
.koc-recruit-step-grid article>b{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--grad-a),var(--grad-b));font-size:15px}
.koc-recruit-step-grid h3{font-size:16px;color:#fff;margin-bottom:8px}.koc-recruit-step-grid p{font-size:12px;line-height:1.7;color:#b9c7d9}
.koc-recruit-final{padding:70px 0;background:#f6f8fb}
.koc-recruit-final-box{display:flex;justify-content:space-between;align-items:center;gap:40px;padding:42px 48px;border-radius:24px;background:#fff;border:1px solid var(--border);box-shadow:0 18px 50px rgba(11,31,58,.07)}
.koc-recruit-final-box h2{font-size:30px;color:var(--navy);margin:8px 0}.koc-recruit-final-box p{color:var(--muted)}
.koc-recruit-final-box>.btn{width:auto;min-width:250px;flex-shrink:0}

/* Subtle motion reinforces hierarchy without slowing the registration flow. */
.koc-recruit-hero-copy{animation:kocRecruitEnterLeft .65s cubic-bezier(.22,1,.36,1) both}
.koc-recruit-preview{animation:kocRecruitEnterRight .7s .08s cubic-bezier(.22,1,.36,1) both,kocRecruitFloat 5s 1s ease-in-out infinite}
.koc-recruit-live i{animation:kocRecruitPulse 2s ease-out infinite}
.koc-recruit-hero-actions .btn span,.koc-recruit-final-box>.btn span{display:inline-block;transition:transform .2s ease}
.koc-recruit-hero-actions .btn:hover span,.koc-recruit-final-box>.btn:hover span{transform:translateX(4px)}
.koc-recruit-reveal{opacity:0;transform:translateY(24px);transition:opacity .55s ease var(--reveal-delay,0ms),transform .55s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}
.koc-recruit-reveal.is-visible{opacity:1;transform:translateY(0)}
@keyframes kocRecruitEnterLeft{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:translateX(0)}}
@keyframes kocRecruitEnterRight{from{opacity:0;transform:translateX(28px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes kocRecruitFloat{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes kocRecruitPulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.4)}70%,100%{box-shadow:0 0 0 8px rgba(74,222,128,0)}}

@media(max-width:1024px){
  .koc-recruit-container{width:min(920px,calc(100% - 40px))}
  .koc-recruit-hero-grid{grid-template-columns:1fr 1fr;gap:36px;padding-top:60px;padding-bottom:60px}
  .koc-recruit-hero h1{font-size:40px}
  .koc-recruit-hero-copy>p{font-size:15px}
  .koc-recruit-hero-actions{align-items:flex-start;flex-direction:column;gap:14px}
  .koc-recruit-benefits{padding:68px 0}.koc-recruit-benefit-grid{grid-template-columns:1fr 1fr}
  .koc-recruit-benefit-card{min-height:190px}
  .koc-recruit-step-grid{grid-template-columns:1fr}.koc-recruit-step-grid article{align-items:flex-start}
  .koc-recruit-final-box{padding:36px}.koc-recruit-final-box h2{font-size:26px}
}
@media(max-width:700px){
  .koc-recruit-container{width:calc(100% - 32px)}
  .koc-recruit-header-inner{height:64px}.koc-recruit-header .logo{width:48px!important;height:42px!important}
  .koc-recruit-header-actions{gap:10px}.koc-recruit-back span:last-child{display:none}.koc-recruit-back{width:38px;height:38px;justify-content:center;border:1px solid var(--border);border-radius:10px}
  .koc-recruit-hero-grid{grid-template-columns:1fr;gap:36px;padding-top:48px;padding-bottom:48px}
  .koc-recruit-hero h1{font-size:34px!important}.koc-recruit-hero-copy>p{font-size:14px;line-height:1.65}
  .koc-recruit-hero-actions{margin-top:24px}.koc-recruit-hero-actions .btn{width:100%;min-width:0}.koc-recruit-text-link{align-self:center}
  .koc-recruit-trust{gap:10px 16px;margin-top:22px}.koc-recruit-preview{padding:16px;border-radius:18px}.koc-recruit-preview-top{align-items:flex-start;flex-direction:column}
  .koc-recruit-earning{margin:18px 0;padding:18px}.koc-recruit-earning strong{font-size:21px}
  .koc-recruit-mini-grid{grid-template-columns:1fr 1fr}.koc-recruit-mini-grid>div{padding:12px}
  .koc-recruit-benefits,.koc-recruit-steps,.koc-recruit-final{padding:52px 0}
  .koc-recruit-section-head{text-align:left;margin-bottom:26px}.koc-recruit-section-head h2{font-size:27px}
  .koc-recruit-benefit-grid{grid-template-columns:1fr;gap:12px}.koc-recruit-benefit-card{min-height:0;padding:22px}.koc-recruit-benefit-card h3{margin:18px 0 8px}
  .koc-recruit-step-grid article{padding:20px}.koc-recruit-final-box{align-items:stretch;flex-direction:column;padding:28px 22px;gap:24px}.koc-recruit-final-box h2{font-size:25px}.koc-recruit-final-box>.btn{width:100%;min-width:0}
}
@media(prefers-reduced-motion:reduce){
  .koc-recruit-hero-copy,.koc-recruit-preview,.koc-recruit-live i{animation:none!important}
  .koc-recruit-reveal{opacity:1;transform:none;transition:none}
  .koc-recruit-benefit-card,.koc-recruit-hero-actions .btn span,.koc-recruit-final-box>.btn span{transition:none}
}

/* ===== Desktop portal ===== */
.portal{display:flex;min-height:100vh}
.sidebar{width:240px;background:var(--navy);color:#fff;flex-shrink:0;padding:18px 0;position:sticky;top:0;height:100vh;overflow:auto}
.sidebar .brand{padding:0 20px 18px;font-weight:800;font-size:19px;display:flex;align-items:center;gap:9px}
.sidebar .brand span{color:var(--grad-b)}
.sidebar .brand .brand-name{color:#fff}
.sidebar .brand .brand-icon{width:32px;height:32px}
.sidebar .brand img.brand-icon{object-fit:contain;flex:0 0 32px}
.sidebar a{display:flex;align-items:center;gap:10px;padding:12px 20px;color:#cdd6e4;font-weight:500;font-size:14px;border-left:3px solid transparent}
.sidebar a .sidebar-icon{width:24px;height:24px}
.sidebar a:hover{background:rgba(255,255,255,.06)}
.sidebar a.active{color:#fff;background:rgba(255,255,255,.1);border-left-color:var(--grad-b)}
.main{flex:1;min-width:0;background:var(--screen)}
.topbar{background:#fff;border-bottom:1px solid var(--border);padding:14px 24px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}
.content{padding:24px}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.grid-fit-200{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.grid-fill-260{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px}
.grid-fill-150{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:10px}

/* ===== Business & Admin portal layout refresh =====
   Structural rules only: brand assets and the existing color tokens stay unchanged. */
.business-portal,.admin-portal{min-height:100vh;min-height:100dvh;align-items:stretch}
.business-portal .sidebar,.admin-portal .sidebar{
  width:272px;padding:24px 14px 18px;display:flex;flex-direction:column;gap:12px
}
.business-portal .sidebar .brand,.admin-portal .sidebar .brand{
  min-height:52px;padding:0 12px 18px;margin-bottom:2px;border-bottom:1px solid rgba(255,255,255,.1)
}
.business-portal .portal-nav,.admin-portal .portal-nav{
  display:flex;min-height:0;flex:1;flex-direction:column;gap:4px;padding:4px 0 12px;
  overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.24) transparent
}
.business-portal .portal-nav::-webkit-scrollbar,.admin-portal .portal-nav::-webkit-scrollbar{width:6px}
.business-portal .portal-nav::-webkit-scrollbar-track,.admin-portal .portal-nav::-webkit-scrollbar-track{background:transparent}
.business-portal .portal-nav::-webkit-scrollbar-thumb,.admin-portal .portal-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.24);border-radius:999px}
@media (min-width:1025px){
  .koc-portal .bottom-nav .koc-desktop-account,.sidebar .btn.ghost.portal-sidebar-logout{display:flex;width:calc(100% - 32px);height:44px;flex:0 0 auto;margin:auto 16px 0;padding:0 12px;align-items:center;justify-content:center;background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:10px;font-size:13px;font-weight:700;transition:border-color .18s ease,color .18s ease,background .18s ease}
  .koc-portal .bottom-nav .koc-desktop-account:hover,.koc-portal .bottom-nav .koc-desktop-account:focus-visible,.sidebar .btn.ghost.portal-sidebar-logout:hover,.sidebar .btn.ghost.portal-sidebar-logout:focus-visible{background:rgba(255,255,255,.06);color:var(--primary);border-color:var(--primary)}
  .koc-portal .bottom-nav .koc-desktop-account:focus-visible,.portal-sidebar-logout:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
}
.business-portal .sidebar a,.admin-portal .sidebar a{
  min-height:46px;padding:10px 13px;border-left:0;border-radius:10px;line-height:1.3
}
.business-portal .sidebar a.active,.admin-portal .sidebar a.active{
  border-left:0;box-shadow:inset 3px 0 0 var(--grad-b)
}
.business-portal .main,.admin-portal .main{display:flex;min-height:100vh;min-height:100dvh;flex-direction:column}
.business-portal .topbar,.admin-portal .topbar{
  min-height:72px;padding:12px clamp(20px,3vw,40px);gap:20px
}
.business-portal .topbar>.row,.admin-portal .topbar>.row{margin-left:auto;gap:12px}
.portal-topbar{isolation:isolate}
.portal-context{display:flex;min-width:0;flex-direction:column;gap:1px}
.portal-context-label{font-size:10px;font-weight:700;line-height:1.2;letter-spacing:.11em;text-transform:uppercase;opacity:.68}
.portal-context h2{font-family:var(--font-body,'Be Vietnam Pro',system-ui,sans-serif);font-size:17px;line-height:1.35;white-space:nowrap}
.portal-account{display:flex;min-width:0;align-items:center;gap:10px;margin-left:auto}
.portal-account-identity{display:flex;min-width:0;align-items:center;gap:10px;border-radius:10px;cursor:pointer}
.portal-account-identity:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.portal-account-avatar{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border:2px solid var(--card);border-radius:50%;box-shadow:0 0 0 2px var(--primary);font-size:13px;font-weight:800;opacity:.9}
.portal-account-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:cover}
.portal-account-meta{display:flex;min-width:0;flex-direction:column;line-height:1.25}
.portal-account-meta strong{max-width:180px;overflow:hidden;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.portal-account-meta span{font-size:11px;opacity:.68}
.portal-logout{height:36px;margin-left:8px;padding:0 13px;font-size:12px;white-space:nowrap}
.admin-portal .portal-account{padding-left:18px;border-left:1px solid rgba(255,255,255,.16)}
.business-portal .portal-account{padding-left:18px;border-left:1px solid var(--border)}
.business-portal .content,.admin-portal .content{
  width:100%;max-width:1600px;margin:0 auto;padding:clamp(22px,3vw,40px);flex:1
}
.business-portal .content>h1,.admin-portal .content>h1,
.business-portal .content>.between:first-child,.admin-portal .content>.between:first-child{margin-bottom:20px}
.business-portal .content>h1+.muted,.admin-portal .content>h1+.muted{margin-top:-14px;margin-bottom:22px}
.business-portal .content>.between:first-child{align-items:flex-start}
.admin-portal .content>.between:first-child{align-items:flex-start}
.business-portal .stat-cards,.admin-portal .stat-cards{gap:18px}
.business-portal .stat-cards>.card,.admin-portal .stat-cards>.card{min-height:112px;padding:20px}
.business-portal .card,.admin-portal .card{box-shadow:0 1px 2px rgba(11,31,58,.04)}
.business-portal .grid,.admin-portal .grid{gap:18px}
.business-portal .filters,.admin-portal .filters{
  gap:14px 16px;margin:18px 0 20px;padding:18px;border-radius:var(--r-card)
}
.business-portal .filters .field,.admin-portal .filters .field{min-width:160px}
.business-portal .filters .field:first-child,.admin-portal .filters .field:first-child{flex-grow:2}
.business-portal .table-wrap,.admin-portal .table-wrap{overflow:auto}
.business-portal table,.admin-portal table{min-width:760px}
.business-portal th,.admin-portal th{height:48px;padding:12px 16px;white-space:nowrap}
.business-portal td,.admin-portal td{padding:14px 16px}
.business-portal tbody tr:last-child td,.admin-portal tbody tr:last-child td{border-bottom:0}
.business-portal .pager,.admin-portal .pager{justify-content:flex-end;margin-top:18px}
.settle-tabs{display:flex;gap:6px;margin:18px 0 12px;padding:5px;border:1px solid var(--border);border-radius:12px;background:var(--card);overflow-x:auto}
.settle-tabs button{min-height:38px;padding:8px 14px;border-radius:8px;color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}
.settle-tabs button:hover{color:var(--text)}
.settle-tabs button.active{background:var(--navy);color:#fff}
.settle-panel{margin:0!important}.settlement-status{min-width:132px;white-space:nowrap}.settlement-status .chip{min-height:32px;padding:6px 12px;justify-content:center;white-space:nowrap;font-size:11px;font-weight:700;line-height:1}
.settle-panel[hidden]{display:none!important}
.audit-heading{align-items:flex-start;gap:20px}
.audit-heading p{max-width:720px;margin-top:4px}
.audit-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) 240px;gap:12px;margin:18px 0 12px}
.audit-list{border:1px solid var(--border);border-radius:14px;overflow:hidden}
.audit-item{display:grid;grid-template-columns:10px minmax(260px,1.7fr) minmax(150px,.8fr) minmax(130px,.65fr) 90px;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}
.audit-item:last-child{border-bottom:0}
.audit-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}
.audit-dot.booking{background:var(--info)}.audit-dot.aiclone{background:var(--primary)}.audit-dot.payment{background:var(--success)}.audit-dot.account{background:var(--warning)}
.audit-main{min-width:0}.audit-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.audit-title strong{font-size:13px}.audit-title code{color:var(--muted);font-size:10px}
.audit-detail{margin-top:4px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.audit-actor,.audit-ref{display:flex;min-width:0;flex-direction:column}.audit-actor strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.audit-actor span,.audit-ref span{color:var(--muted);font-size:10px}.audit-ref code{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.audit-item time{color:var(--muted);font-size:11px;white-space:nowrap}

@media (min-width:1025px) and (max-width:1280px){
  .business-portal .sidebar,.admin-portal .sidebar{width:244px}
  .business-portal .main,.admin-portal .main{margin-left:244px}
  .business-portal .content,.admin-portal .content{padding:28px}
}
@media (min-width:1025px){
  .business-portal,.admin-portal{background:linear-gradient(to right,var(--navy) 0 272px,var(--screen) 272px)}
  .business-portal .sidebar,.admin-portal .sidebar{position:fixed;top:0;right:auto;bottom:0;left:0;height:auto;min-height:100vh;min-height:100dvh;overflow:hidden;z-index:200}
  .business-portal .main,.admin-portal .main{width:calc(100% - 272px);margin-left:272px}
}
@media (min-width:1025px) and (max-width:1280px){
  .business-portal,.admin-portal{background:linear-gradient(to right,var(--navy) 0 244px,var(--screen) 244px)}
  .business-portal .main,.admin-portal .main{width:calc(100% - 244px);margin-left:244px}
}
@media (max-width:1024px){
  .business-portal .sidebar,.admin-portal .sidebar{padding:20px 14px 16px}
  .business-portal .topbar,.admin-portal .topbar{min-height:64px}
  .business-portal .content>.between,.admin-portal .content>.between{flex-wrap:wrap}
}
@media (max-width:640px){
  .business-portal .topbar,.admin-portal .topbar{gap:8px}
  .business-portal .topbar>.row,.admin-portal .topbar>.row{gap:8px;min-width:0}
  .business-portal .topbar>.row>.muted,.admin-portal .topbar>.row>span:first-child{display:none}
  .portal-context-label,.portal-account-meta{display:none}
  .portal-account{gap:6px;padding-left:0!important;border-left:0!important}
  .portal-account-avatar{width:34px;height:34px;flex-basis:34px}
  .business-portal .content>h1,.admin-portal .content>h1,
  .business-portal .content>.between:first-child,.admin-portal .content>.between:first-child{margin-bottom:16px}
  .business-portal .stat-cards,.admin-portal .stat-cards{gap:10px}
  .business-portal .stat-cards>.card,.admin-portal .stat-cards>.card{min-height:92px}
  .business-portal .filters,.admin-portal .filters{margin:14px 0 16px}
  .business-portal .pager,.admin-portal .pager{justify-content:center}
  .audit-heading>.chip{display:none}.audit-toolbar{grid-template-columns:1fr}.audit-item{grid-template-columns:10px 1fr 72px;gap:10px}.audit-actor,.audit-ref{display:none}.audit-item time{text-align:right}
}

/* table */
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;padding:10px 12px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border);font-size:12px;text-transform:uppercase;letter-spacing:.02em}
td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
tr:hover td{background:#fafafa}
.table-wrap{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden}

.pager{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:16px}
.pager button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:7px 12px;font-size:13px}
.pager button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pager button:disabled{opacity:.4}

.filters{display:flex;flex-wrap:wrap;gap:10px 12px;margin-bottom:20px;align-items:flex-end;background:#f8fafc;border:1px solid var(--border);border-radius:12px;padding:14px}
.filters .field{margin:0;flex:1 1 140px;min-width:120px}
.filters .field label{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px;display:block}
.filters input,.filters select{height:38px;padding:0 10px;border-radius:8px;font-size:13px}
.filters #f-go{height:38px;padding:0 20px;font-weight:600;flex:0 0 auto}
.avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--tint)}
.avatar.lg{width:80px;height:80px}
.koc-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;display:flex;flex-direction:column;justify-content:space-between}
.koc-card:hover{border-color:var(--primary);box-shadow:0 6px 18px rgba(238,77,45,.12);transform:translateY(-2px)}
.tier-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:9999px}
.tier-Nano{background:#EEF2F7;color:var(--navy)}
.tier-Micro{background:#EFF6FF;color:var(--info)}
.tier-Mid{background:#FFFBEB;color:var(--warning)}
.tier-Macro{background:var(--tint);color:var(--primary-text)}
.empty{text-align:center;padding:40px 16px;color:var(--muted)}
.empty .ico{font-size:40px}
.spin{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:sp .7s linear infinite;margin:30px auto}
@keyframes sp{to{transform:rotate(360deg)}}
.hero-navy{background:var(--navy);color:#fff;border-radius:16px;padding:22px}
.progress{height:8px;background:var(--border);border-radius:9999px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--primary)}
.tab-row{display:flex;gap:8px;overflow:auto;padding-bottom:4px;margin-bottom:12px}
.tab-row button{white-space:nowrap;padding:8px 14px;border-radius:9999px;background:#fff;border:1px solid var(--border);font-size:13px;font-weight:500}
.tab-row button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.list-item{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:10px}
.badge-num{background:var(--error);color:#fff;border-radius:9999px;font-size:10px;padding:1px 6px;font-weight:700}
.scroll-terms{height:180px;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:12px;font-size:12.5px;color:#444;background:#fafafa;margin-bottom:10px}
.otp-in{letter-spacing:8px;text-align:center;font-size:20px;font-weight:700}
.step-dots{display:flex;gap:6px;margin:14px 0}
.step-dots i{flex:1;height:5px;border-radius:9999px;background:var(--border)}
.step-dots i.on{background:var(--primary)}

/* KOC onboarding */
.onboard-page{height:100vh;min-height:0;overflow:hidden;display:grid;grid-template-columns:minmax(310px,420px) minmax(560px,720px);justify-content:center;background:linear-gradient(135deg,#f8f4f2 0%,#fff 52%,#f5f7fa 100%);padding:32px}.onboard-aside{position:relative;align-self:stretch;height:100%;min-height:0;padding:40px 50px 64px;border-radius:26px 0 0 26px;overflow:hidden;background:linear-gradient(145deg,var(--navy),#15385f);color:#fff}.onboard-aside::after{content:"";position:absolute;width:280px;height:280px;left:-125px;bottom:-145px;border:42px solid rgba(255,255,255,.055);border-radius:50%}.onboard-aside>*{position:relative;z-index:1}
.onboard-aside-top{display:flex;align-items:center;gap:10px;white-space:nowrap}.onboard-kicker{display:inline-block;padding:8px 12px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);font-size:10px;font-weight:800;letter-spacing:.1em}.onboard-return{display:inline-flex;align-items:center;justify-content:center;width:auto;padding:9px 13px;border-radius:999px;font-size:11px;font-weight:700;line-height:1;transition:.2s}.onboard-return-desktop{position:static;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.09);color:#fff}.onboard-return-desktop:hover{background:rgba(255,255,255,.17)}.onboard-return-mobile{display:none}
.onboard-aside h2{margin-top:26px;font-size:36px;line-height:1.2;color:#fff}.onboard-aside h2 span{color:#ff765b}.onboard-aside>p{margin-top:16px;color:rgba(255,255,255,.68);font-size:13px;line-height:1.7}.onboard-aside-progress{display:flex;align-items:baseline;margin-top:36px}.onboard-aside-progress b{font-family:var(--font-display);font-size:42px;color:#ff765b}.onboard-aside-progress>span{color:rgba(255,255,255,.45);font-size:16px}.onboard-aside-steps{display:grid;gap:15px;margin-top:25px}.onboard-aside-steps>div{display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.42);font-size:12px}.onboard-aside-steps i{display:grid;place-items:center;width:25px;height:25px;border:1px solid rgba(255,255,255,.18);border-radius:50%;font-style:normal;font-size:10px}.onboard-aside-steps .current{color:#fff;font-weight:700}.onboard-aside-steps .current i{border-color:#ff765b;background:#ff765b}.onboard-aside-steps .done{color:rgba(255,255,255,.72)}.onboard-aside-steps .done i{background:rgba(255,118,91,.18);color:#ff8b74}
.onboard-panel{position:relative;height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:34px clamp(32px,4vw,58px) 44px;border:1px solid #eee7e4;border-left:0;border-radius:0 26px 26px 0;background:#fff;box-shadow:24px 24px 70px rgba(11,31,58,.09);scrollbar-width:thin;scrollbar-color:#d8d8d8 transparent}.onboard-panel::-webkit-scrollbar{width:6px}.onboard-panel::-webkit-scrollbar-thumb{background:#d8d8d8;border-radius:999px}.onboard-close{position:absolute;top:27px;right:28px;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:#fff;color:var(--muted);font-size:15px}.onboard-header{min-height:46px}.onboard-step-count{color:var(--primary-text);font-size:12px;font-weight:700}.onboard-panel .step-dots{gap:8px;margin:20px 0 28px}.onboard-panel .step-dots i{height:4px;background:#ececec}.onboard-panel .step-dots i.on{background:linear-gradient(90deg,var(--grad-a),var(--grad-b))}.onboard-title{margin-bottom:24px}.onboard-title>span{display:block;margin-bottom:7px;color:var(--primary);font-size:10px;font-weight:800;letter-spacing:.13em}.onboard-title h1{font-size:28px;color:var(--navy)}.onboard-panel input:focus,.onboard-panel select:focus,.onboard-panel textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(238,77,45,.09)}.onboard-panel .btn.primary{background:linear-gradient(90deg,var(--grad-a),var(--grad-b));box-shadow:0 8px 20px rgba(238,77,45,.16)}
@media(max-width:980px){.onboard-page{display:block;padding:20px}.onboard-aside{display:none}.onboard-panel{width:min(680px,100%);height:100%;min-height:0;margin:auto;border:1px solid #eee7e4;border-radius:24px;padding-top:30px}.onboard-return-mobile{display:inline-flex;position:absolute;top:28px;left:28px;border:1px solid var(--border);background:#fff;color:var(--navy)}}
@media(max-width:600px){.onboard-page{padding:0;background:#fff}.onboard-panel{width:100%;height:100vh;border:0;border-radius:0;box-shadow:none;padding:22px 18px 34px}.onboard-close{top:19px;right:18px}.onboard-return-mobile{top:20px;left:18px}.onboard-header{padding-right:42px!important;padding-left:82px}.onboard-header .logo{width:48px!important}.onboard-title h1{font-size:24px}}
.copybox{display:flex;gap:8px;align-items:center;background:#fafafa;border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:12px;word-break:break-all}
.affiliate-link-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:46px;padding:6px 7px 6px 12px;word-break:normal}.affiliate-link-copy>span{display:block;min-width:0;overflow:hidden;color:var(--navy);font-size:12px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.affiliate-link-copy>.btn{width:auto;min-width:88px;min-height:34px;padding:7px 12px;border-radius:9px;white-space:nowrap}
.stream-frame{position:relative;width:100%;padding-top:56.25%;overflow:hidden;border-radius:12px;background:#081a36}
.stream-frame iframe,.stream-frame video{position:absolute;inset:0;width:100%;height:100%;border:0}
.stream-frame video{object-fit:contain}
.video-upload-box{padding:14px;border:1px dashed #9eb8dd;border-radius:12px;background:#f7faff}
.upload-progress{margin-bottom:12px;font-size:12px}
.upload-progress .progress{margin-top:7px}
.video-review-note{margin:10px 0}
.video-review-note p{margin-top:5px;white-space:pre-wrap}

/* ===== KOC QC flows ===== */
.booking-type-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}
.booking-type-tabs button{border:1px solid var(--border);background:#fff;border-radius:10px;padding:9px 10px;text-align:left;font-size:12px;font-weight:600;color:var(--navy)}
.booking-type-tabs button:first-child{grid-column:1/-1}
.booking-type-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff}
.booking-type-tabs button span{float:right;background:rgba(127,127,127,.15);padding:1px 6px;border-radius:999px}
.booking-kind{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700}
.booking-kind.review{background:#eef6ff;color:#175cd3}
.booking-kind.advertising{background:#fff1eb;color:#c4320a}
.booking-kind.affiliate{background:#ecfdf3;color:#067647}
.booking-kind.combo{background:#f4f3ff;color:#5925dc}
.booking-kind.aiclone{background:#fdf2fa;color:#c11574}

.commission-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.commission-state{background:#fff;border:1px solid var(--border);border-radius:12px;padding:11px 8px;text-align:center}
.commission-state span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;margin:0 auto 7px;font-weight:800}
.commission-state b{display:block;font-size:13px;white-space:nowrap}
.commission-state small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.commission-state.expected span{background:#fffaeb;color:#b54708}
.commission-state.reconciled span{background:#eff8ff;color:#175cd3}
.commission-state.paid span{background:#ecfdf3;color:#067647}
.wallet-transaction{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}
.wallet-transaction>div:last-child{text-align:right;font-size:13px;font-weight:700}
.wallet-transaction.reversed{opacity:.76}
.amount-reversed{color:var(--error);font-size:11px;font-weight:700;text-decoration:line-through}

.affiliate-orders{margin-top:12px;padding:10px;background:#f8fafc;border:1px solid var(--border);border-radius:10px}
.affiliate-orders>.between{font-size:12px}
.affiliate-order{display:grid;grid-template-columns:1fr auto;gap:6px;padding:9px 0;border-bottom:1px solid var(--border);font-size:12px}
.affiliate-order:last-child{border-bottom:0}
.affiliate-order.reversed{background:#fff6f4;margin:0 -6px;padding:9px 6px}
.affiliate-order .order-actions{grid-column:1/-1;display:flex;gap:6px;justify-content:flex-end}

/* Business product catalog */
.product-page-heading{align-items:flex-start;flex-wrap:wrap;gap:14px}
.product-page-heading>div{min-width:0}
.product-page-heading .muted{margin-top:5px;max-width:720px}
.product-stats{margin:16px 0}
.product-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:10px;margin-bottom:16px;padding:12px}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;align-items:start}
.product-grid>.empty,.product-grid>.spinner{grid-column:1/-1}
.product-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;padding:14px;overflow:hidden}
.product-card-media{display:grid;width:112px;height:112px;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--screen)}
.product-card-media img{width:100%;height:100%;object-fit:cover}
.product-card-media .teaser-icon{width:44px;height:44px;opacity:.72}
.product-card-body{min-width:0}
.product-card-title{align-items:flex-start}
.product-card-title>div{min-width:0}
.product-card-title h3{font-size:16px;line-height:1.35;overflow-wrap:anywhere}
.product-card-title>.money{flex:0 0 auto;white-space:nowrap}
.product-meta{margin-top:7px;flex-wrap:wrap;gap:5px}
.product-link{display:block;margin-top:10px;color:var(--info);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.product-link:hover{text-decoration:underline}
.product-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px;color:var(--muted);font-size:11px}
.product-details span{min-width:0;overflow-wrap:anywhere}
.product-notes{margin-top:10px;padding:9px 10px;border-radius:9px;background:var(--screen);font-size:12px;white-space:pre-wrap}
.product-affiliate-ready{justify-content:space-between;flex-wrap:wrap;margin-top:12px}
.product-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.product-actions .btn{width:auto;flex:0 0 auto}
.product-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
.product-affiliate-check{display:flex;min-height:48px;align-items:center;gap:8px;margin:0 0 14px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-btn);font-size:13px}
.product-affiliate-check input{width:auto;flex:0 0 auto}
@media(max-width:720px){
  .product-toolbar{grid-template-columns:1fr}
  .product-grid{grid-template-columns:1fr}
  .product-card{grid-template-columns:82px minmax(0,1fr);gap:11px}
  .product-card-media{width:82px;height:82px}
  .product-card-title{display:block}
  .product-card-title>.money{display:block;margin-top:6px}
  .product-details{grid-template-columns:1fr}
  .product-affiliate-ready{align-items:flex-start}
  .product-affiliate-ready .btn{width:100%}
  .product-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .product-actions .btn{width:100%}
  .product-form-grid{grid-template-columns:1fr}
}

.profile-hero{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:14px}
.profile-cover{aspect-ratio:8/3;background:linear-gradient(135deg,var(--navy),var(--primary));display:grid;place-items:center;color:rgba(255,255,255,.72);font-weight:700}
.profile-cover img{width:100%;height:100%;object-fit:cover}
.profile-identity{display:flex;gap:12px;align-items:center;min-height:68px;padding:12px 14px 10px 110px;margin-top:0;position:relative;background:#fff}
.profile-identity h2{margin-bottom:5px}
.profile-avatar{position:absolute;left:14px;bottom:8px;width:82px;height:82px;object-fit:cover;border-radius:50%;border:4px solid #fff;background:var(--tint);box-shadow:0 4px 12px rgba(11,31,58,.12)}
.profile-bio{padding:14px;color:#475467;font-size:13px;line-height:1.55}
.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border)}
.profile-stats span{text-align:center;padding:11px 4px;color:var(--muted);font-size:10px}
.profile-stats b{display:block;color:var(--navy);font-size:15px;margin-bottom:2px}
.profile-section{margin-bottom:12px}
.profile-section h3{margin-bottom:9px}
.profile-price{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}
.profile-price:last-child{border-bottom:0}
.tier-benefit-card{background:linear-gradient(145deg,#fff8f3,#fff);border:1px solid #ffd5c7;border-radius:14px;padding:14px;margin-bottom:14px}
.tier-benefit-card .eyebrow{font-size:9px;letter-spacing:.08em;color:var(--primary);font-weight:800}
.tier-benefit-card h3{margin-top:3px}
.tier-shield{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--primary);color:#fff;font-size:20px}
.tier-price-range{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:9px;padding:9px;margin-top:10px;font-size:11px}
.tier-price-range b{color:var(--primary);font-size:12px}
.tier-requirement{font-size:10px;color:var(--muted);margin-top:7px}
.tier-benefit-card ul{list-style:none;margin-top:10px;display:grid;gap:5px;font-size:12px;color:#344054}
.image-editor{background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px;margin-bottom:14px}
.cover-upload-preview{aspect-ratio:8/3;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,var(--navy),var(--primary));display:grid;place-items:center;color:#fff;font-size:12px}
.cover-upload-preview img{width:100%;height:100%;object-fit:cover}
.avatar-upload-row{display:flex;align-items:center;gap:12px;margin:-24px 8px 6px;position:relative}
.avatar-upload-row>div:last-child{padding-top:28px}
.avatar-upload-row small{display:block;color:var(--muted);font-size:10px;margin:2px 0 6px}
.avatar-upload-preview{width:82px;height:82px;flex:0 0 82px;border-radius:50%;border:4px solid #fff;background:var(--tint);display:grid;place-items:center;font-size:30px;overflow:hidden}
.avatar-upload-preview img{width:100%;height:100%;object-fit:cover}
.upload-label{display:inline-flex!important;width:auto!important;cursor:pointer}
.profile-upload-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.profile-upload-actions .upload-label{min-height:38px;justify-content:center;white-space:nowrap}
.cover-button{margin-left:0}
.password-change-section{margin:16px 0 4px;padding:18px;border-color:#dbe4f0;background:linear-gradient(145deg,#fff,#f8fbff)}
.password-change-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.password-change-heading h3{margin:0 0 3px}
.password-change-heading p{font-size:11px;line-height:1.45}
.password-security-mark{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#e9f8f1;color:#087a55;font-size:10px;font-weight:800}
.password-change-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.password-change-fields .field{margin-bottom:12px}
.password-change-section>#pf-change-password{width:auto;min-width:190px}
@media(max-width:760px){
  .password-change-fields{grid-template-columns:1fr}
  .password-change-fields .field{margin-bottom:0}
  .password-change-section>#pf-change-password{width:100%;margin-top:14px}
}
.profile-category-picker{display:flex;flex-wrap:wrap;gap:8px}
.profile-category-picker .chip{cursor:pointer;padding:8px 14px}
.profile-category-picker .chip.selected{background:var(--primary);color:#fff}

.notification-item{width:100%;display:grid;grid-template-columns:42px 1fr 8px;gap:10px;align-items:start;text-align:left;background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:9px;color:inherit}
.notification-item.unread{background:#fff8f5;border-color:#ffc9b8}
.notification-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--tint);font-size:20px}
.notification-item b,.notification-item small,.notification-item time{display:block}
.notification-item small{color:#475467;font-size:12px;line-height:1.4;margin-top:3px}
.notification-item time{color:var(--muted);font-size:10px;margin-top:5px}
.notification-item i{width:7px;height:7px;border-radius:50%;background:var(--primary);margin-top:6px}
