:root{
  --bg:#f5f7f4;--card:#fff;--text:#17211b;--muted:#738079;--line:#e3e9e4;
  --primary:#14532d;--primary2:#166534;--primary-soft:#eaf4ed;--primary-faint:#f4faf5;
  --danger:#dc2626;--success:#16803f;--warning:#b7791f;--sidebar:#fff;
  --shadow:0 14px 35px rgba(22,54,35,.065);--radius:18px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.inline{display:inline}

/* Shell */
.app{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}
.sidebar{background:var(--sidebar);border-right:1px solid var(--line);padding:20px 13px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:30}
.brand{height:64px;display:flex;align-items:center;gap:11px;padding:0 8px 18px;border-bottom:1px solid #edf1ed;margin-bottom:13px}.brand>span:last-child,.auth-brand>span:last-child{display:flex;flex-direction:column;line-height:1.05}.brand b,.auth-brand b{font-size:18px;letter-spacing:-.5px}.brand small,.auth-brand small{margin-top:5px;font-size:9px;letter-spacing:1.5px;color:#8b9790;font-weight:800}.brand-mark{width:38px;height:38px;border-radius:13px;background:linear-gradient(145deg,#1d6a3d,#0f3f25);color:#fff;display:grid;place-items:center;font-weight:900;box-shadow:0 8px 18px rgba(20,83,45,.25);flex:0 0 auto}
.sidebar nav{flex:1;min-height:0;overflow:auto;padding-right:2px}.nav-group{margin-bottom:15px}.nav-section{padding:8px 11px 7px;color:#9aa5a0;font-size:9px;font-weight:900;letter-spacing:2px}.sidebar nav a{display:flex;align-items:center;gap:11px;color:#5f6b64;padding:10px 11px;border-radius:11px;margin:3px 0;font-weight:650;transition:.16s ease;position:relative}.sidebar nav a:hover{background:#f0f6f2;color:var(--primary)}.sidebar nav a.active{background:var(--primary-soft);color:var(--primary);box-shadow:inset 3px 0 var(--primary)}.nav-icon{width:20px;height:20px;display:grid;place-items:center;font-weight:900;font-size:16px;color:#7d8982}.sidebar nav a.active .nav-icon{color:var(--primary)}
.sidebar-footer{margin-top:auto;padding-top:12px;border-top:1px solid #edf1ed}.upgrade-btn{display:flex;align-items:center;justify-content:center;background:var(--primary);color:#fff!important;border-radius:11px;padding:11px 10px;font-weight:850;font-size:11px;letter-spacing:.5px;box-shadow:0 8px 20px rgba(20,83,45,.2)}.upgrade-btn:hover{background:var(--primary2)!important;color:#fff!important}.user-mini{display:grid;grid-template-columns:36px 1fr 26px;align-items:center;gap:9px;margin-top:10px;padding:9px 7px;border-radius:12px;background:#f7f9f7}.avatar{width:34px;height:34px;border-radius:11px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:900}.user-mini span:nth-child(2),.profile-pill>span:last-child{display:flex;flex-direction:column;min-width:0}.user-mini b,.profile-pill b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-mini small,.profile-pill small{font-size:9px;letter-spacing:1px;color:#89948d;margin-top:2px}.logout{color:#9aa5a0;font-size:18px;text-align:center}.logout:hover{color:var(--danger)}
.workspace{min-width:0}.topbar{height:74px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px;position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}.topbar-left,.top-actions,.breadcrumb,.profile-pill{display:flex;align-items:center}.breadcrumb{gap:9px;color:#a0aaa4;font-size:11px;font-weight:800;letter-spacing:.7px}.breadcrumb strong{color:#253129}.breadcrumb b{color:#c9d1cc}.top-actions{gap:10px}.balance-pill{padding:9px 13px;border:1px solid #dce7de;background:#f6faf7;border-radius:999px;color:#718078;font-size:12px}.balance-pill b{color:var(--primary)}.profile-pill{gap:8px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:5px 10px 5px 5px;max-width:210px}.profile-pill .avatar{width:30px;height:30px;border-radius:9px}.sidebar-toggle{display:none;border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 9px;color:var(--text);cursor:pointer}
.main{padding:27px;min-width:0}.content{width:min(1450px,100%);margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:0 0 22px}.page-heading h1{font-size:29px;line-height:1.15;margin:4px 0 5px;letter-spacing:-.9px}.page-heading p{margin:0;color:var(--muted)}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:900;color:#8fa098}.status-dot{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:11px;color:#66736b}.status-dot i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #dcfce7}

/* Components */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.stat{position:relative;overflow:hidden;min-height:126px}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--primary)}.stat:nth-child(2):before{background:#0f766e}.stat:nth-child(3):before{background:#16a34a}.stat:nth-child(4):before{background:#64748b}.stat .muted{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px}.stat strong{font-size:28px;display:block;margin-top:13px;letter-spacing:-.8px}.stat:after{content:"";position:absolute;width:72px;height:72px;border-radius:50%;right:-24px;bottom:-26px;background:var(--primary-soft)}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.section{margin-top:18px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.section-head h2,.card>h2{margin:0 0 14px;font-size:18px;letter-spacing:-.25px}.section-head h2{margin:0}.card h3{font-size:14px;margin:21px 0 11px;color:#344139}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:10px;background:var(--primary);color:#fff;padding:10px 14px;font-weight:750;cursor:pointer;transition:.15s ease;box-shadow:0 6px 14px rgba(20,83,45,.12)}.btn:hover{background:var(--primary2);transform:translateY(-1px)}.btn.secondary{background:var(--primary-soft);color:var(--primary);border-color:#d6e7da;box-shadow:none}.btn.secondary:hover{background:#dceee1}.btn.danger{background:var(--danger)}.btn.success{background:var(--primary)}.btn.small{padding:7px 10px;font-size:12px;border-radius:8px}.btn.ghost{background:#fff;color:var(--text);border-color:var(--line);box-shadow:none}.btn.ghost:hover{background:#f7faf8}
label{display:block;font-size:12px;font-weight:750;margin-bottom:14px;color:#344139}input,select,textarea{width:100%;margin-top:7px;border:1px solid #dce3de;border-radius:11px;padding:11px 12px;background:#f8faf8;color:var(--text);font:inherit;transition:.15s ease}textarea{min-height:116px;resize:vertical}input:hover,select:hover,textarea:hover{border-color:#c6d4ca}input:focus,select:focus,textarea:focus{outline:3px solid rgba(20,83,45,.1);border-color:#6b9b7a;background:#fff}input::placeholder,textarea::placeholder{color:#a3ada7}
.table-wrap{overflow:auto;border:1px solid #edf1ee;border-radius:13px}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;background:#fff}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid #edf1ee;vertical-align:middle}tr:last-child td{border-bottom:0}th{color:#88948d;font-size:10px;text-transform:uppercase;letter-spacing:.75px;background:#f7f9f7;font-weight:850}tbody tr:hover td{background:#fbfdfb}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800;background:#eef2ff;color:#3730a3}.badge.green{background:#dcfce7;color:#166534}.badge.red{background:#fee2e2;color:#991b1b}.badge.orange{background:#fff3df;color:#9a5b12}
.alert{padding:13px 15px;border-radius:12px;margin:0 0 15px;border:1px solid;font-size:13px}.alert.success{background:#eefbf2;border-color:#bfe7ca;color:#166534}.alert.danger{background:#fff2f2;border-color:#fecaca;color:#991b1b}.alert.warning{background:#fff9eb;border-color:#f3dfaa;color:#8b5c14}.notice{white-space:pre-wrap}.actions{display:flex;flex-wrap:wrap;gap:8px}.tabs{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 17px;padding:5px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 4px 16px rgba(22,54,35,.035)}.tabs a{padding:9px 12px;border-radius:9px;color:#77827c;font-weight:700}.tabs a:hover{background:#f3f7f4;color:var(--primary)}.tabs a.active{background:var(--primary-soft);color:var(--primary);box-shadow:inset 0 0 0 1px #cfe3d4}.plan{display:flex;flex-direction:column;gap:11px;position:relative;overflow:hidden}.plan:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--primary)}.plan .price{font-size:27px;font-weight:900;color:var(--primary)}.qr{max-width:320px;width:100%;border-radius:15px;border:1px solid var(--line);padding:7px;background:#fff}hr{border:0;border-top:1px solid var(--line);margin:21px 0}

/* Broadcast */
.paste-zone{margin:0 0 14px;border:2px dashed #9bbca5;border-radius:14px;padding:20px;text-align:center;background:var(--primary-faint);cursor:pointer;transition:.15s ease;outline:none}.paste-zone:hover,.paste-zone:focus,.paste-zone.dragging{border-color:var(--primary);background:var(--primary-soft)}.paste-zone>strong{display:block;font-size:15px;margin-bottom:5px}.paste-zone>span{display:block;color:var(--muted);font-size:12px}.paste-zone.has-image{border-style:solid}.broadcast-preview{margin-top:14px}.broadcast-preview img{display:block;max-width:100%;max-height:320px;margin:0 auto 10px;border-radius:12px;border:1px solid var(--line);object-fit:contain}.broadcast-error{color:#b42318;white-space:normal;word-break:break-word}

/* Auth */
.auth-body{background:#f7f7f4}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(390px,1fr) minmax(520px,2fr)}.auth-hero{position:relative;padding:42px;display:flex;flex-direction:column;background:linear-gradient(145deg,#fff 0%,#f4faf5 75%,#e9f4ec 100%);border-right:1px solid var(--line);overflow:hidden}.auth-hero:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;left:-210px;bottom:-220px;background:rgba(20,83,45,.07);filter:blur(2px)}.auth-brand{display:flex;align-items:center;gap:12px;z-index:1}.auth-copy{margin:auto 0;position:relative;z-index:1}.auth-copy h2{font-size:47px;line-height:.94;letter-spacing:-2.2px;margin:13px 0 21px;color:#142018}.auth-copy h2 em{font-style:normal;color:var(--primary)}.auth-copy p{max-width:390px;color:#647168;line-height:1.7}.auth-foot{font-size:9px;letter-spacing:2px;color:#a0aaa4;font-weight:800;z-index:1}.auth-panel{display:grid;place-items:center;padding:42px;background:radial-gradient(circle at 70% 42%,rgba(20,83,45,.055),transparent 42%),#f7f7f4}.auth-card-wrap{width:min(430px,100%)}.auth-mini-brand{display:none;align-items:center;gap:9px;margin-bottom:18px}.auth-mini-brand .brand-mark{width:34px;height:34px}.auth-card{width:100%;padding:30px;border-radius:22px;box-shadow:0 24px 60px rgba(31,45,36,.1)}.auth-card h1{font-size:28px;letter-spacing:-1px;margin:0 0 8px}.auth-card form{margin-top:20px}.auth-card .btn{min-height:42px}.auth-shell>.auth-card:only-child{width:min(760px,calc(100% - 40px));margin:auto;align-self:center;justify-self:center}

@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:1fr 1fr}.app{grid-template-columns:220px minmax(0,1fr)}.main{padding:22px}.topbar{padding:0 21px}}
@media(max-width:820px){.app{display:block}.sidebar{position:fixed;left:-270px;top:0;width:248px;transition:.2s ease;box-shadow:16px 0 40px rgba(15,35,23,.15)}body.nav-open .sidebar{left:0}.sidebar-toggle{display:inline-flex}.topbar{height:65px;padding:0 15px}.breadcrumb span,.breadcrumb b{display:none}.profile-pill{display:none}.main{padding:18px}.page-heading{align-items:flex-start}.status-dot{display:none}.grid.two,.grid.three{grid-template-columns:1fr}.auth-shell{grid-template-columns:1fr}.auth-hero{display:none}.auth-panel{padding:24px}.auth-mini-brand{display:flex}}
@media(max-width:560px){.cards{grid-template-columns:1fr}.page-heading h1{font-size:24px}.content{width:100%}.card{padding:16px;border-radius:15px}.tabs{flex-wrap:nowrap;overflow:auto}.tabs a{white-space:nowrap}.top-actions{gap:5px}.balance-pill{font-size:10px;padding:8px 10px}.table-wrap{border-radius:10px}.auth-panel{padding:18px}.auth-card{padding:23px}.actions input{width:100%!important}}

/* ========================================================================
   V9 FULL RESELLER PORTAL — seller operation UI. Scoped to avoid breaking
   classic/admin pages that remain available as a safe fallback.
   ======================================================================== */
.portal-body{
  --p-bg:#f6f7f3;--p-surface:#ffffff;--p-surface-2:#f8faf7;--p-text:#17221b;
  --p-muted:#7e8982;--p-line:#e4e9e4;--p-green:#125a32;--p-green-2:#0d4727;
  --p-green-3:#1f7a48;--p-soft:#eaf4ed;--p-soft-2:#f1f8f3;--p-orange:#df7c24;
  --p-blue:#2f81cc;--p-purple:#7367d8;--p-red:#d95858;--p-teal:#28a879;
  --p-shadow:0 12px 36px rgba(25,47,32,.055);--p-radius:18px;
  margin:0;background:var(--p-bg);color:var(--p-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:14px;line-height:1.45;
}
.portal-body *{box-sizing:border-box}
.portal-body a{text-decoration:none;color:var(--p-green)}
.portal-body button,.portal-body input,.portal-body select,.portal-body textarea{font:inherit}
.portal-body .portal-app{min-height:100vh;display:grid;grid-template-columns:228px minmax(0,1fr)}
.portal-body .portal-sidebar{height:100vh;position:sticky;top:0;z-index:70;background:#fff;border-right:1px solid var(--p-line);display:flex;flex-direction:column;padding:18px 11px 12px;overflow:hidden}
.portal-body .portal-brand{height:62px;display:flex;align-items:center;gap:10px;padding:0 7px 17px;border-bottom:1px solid #edf0ed;margin-bottom:10px;position:relative}
.portal-body .logo-shield,.portal-auth .logo-shield{width:39px;height:39px;border-radius:13px;background:linear-gradient(145deg,#1b7544,#0d4727);box-shadow:0 9px 22px rgba(18,90,50,.23);color:#fff;display:grid;place-items:center;font-weight:950;flex:none}
.portal-body .portal-brand>span:nth-child(2),.portal-auth .auth-logo>span:last-child{display:flex;align-items:baseline;line-height:1;flex-wrap:wrap;min-width:0}
.portal-body .portal-brand strong,.portal-auth .auth-logo strong{font-size:18px;letter-spacing:-.7px;color:#142019}
.portal-body .portal-brand em{font-style:normal;font-size:15px;font-weight:900;color:var(--p-green);margin-left:3px}
.portal-body .portal-brand small,.portal-auth .auth-logo small{display:block;width:100%;font-size:8px;letter-spacing:1.65px;color:#9ca69f;font-weight:850;margin-top:5px}
.portal-body .nav-close{display:none;position:absolute;right:0;top:7px;width:31px;height:31px;border:0;background:#f4f7f4;color:#657169;border-radius:9px;font-size:20px;cursor:pointer}
.portal-body .portal-sidebar nav{flex:1;overflow:auto;min-height:0;padding-right:2px;scrollbar-width:thin}
.portal-body .nav-label{font-size:9px;font-weight:900;letter-spacing:2.2px;color:#a2aaa5;padding:13px 12px 7px}
.portal-body .nav-item{display:flex;align-items:center;gap:11px;min-height:42px;margin:2px 0;padding:10px 11px;border-radius:10px;color:#606b64;font-weight:700;position:relative;transition:.16s ease}
.portal-body .nav-item svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.portal-body .nav-item:hover{background:#f2f7f3;color:var(--p-green)}
.portal-body .nav-item.active{background:var(--p-soft);color:var(--p-green);font-weight:850}
.portal-body .nav-item.active:before{content:"";position:absolute;left:-11px;top:9px;bottom:9px;width:3px;border-radius:0 4px 4px 0;background:var(--p-green)}
.portal-body .sidebar-bottom{border-top:1px solid #edf0ed;padding:12px 2px 0}
.portal-body .upgrade-green{height:35px;border-radius:11px;background:linear-gradient(135deg,var(--p-green),var(--p-green-2));color:#fff!important;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;letter-spacing:.8px;box-shadow:0 9px 19px rgba(18,90,50,.18)}
.portal-body .sidebar-user{display:grid;grid-template-columns:34px 1fr 25px;align-items:center;gap:8px;margin-top:9px;padding:7px;border-radius:11px;background:#f7f9f7}
.portal-body .avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--p-soft);color:var(--p-green);font-weight:900}
.portal-body .sidebar-user>span:nth-child(2){min-width:0;display:flex;flex-direction:column}
.portal-body .sidebar-user b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portal-body .sidebar-user small{font-size:8px;letter-spacing:1px;color:#94a097;margin-top:2px}
.portal-body .logout-link{font-size:18px;color:#91a097;text-align:center}
.portal-body .portal-main{min-width:0}
.portal-body .portal-topbar{height:73px;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--p-line);display:flex;align-items:center;justify-content:space-between;padding:0 27px}
.portal-body .top-left,.portal-body .top-right,.portal-body .crumb{display:flex;align-items:center}
.portal-body .crumb{gap:9px;font-size:11px;font-weight:850;letter-spacing:.6px}.portal-body .crumb span{color:#a0aaa4}.portal-body .crumb b{color:#c7cec9}.portal-body .crumb strong{color:#26322b}
.portal-body .top-right{gap:8px}.portal-body .bot-switch select{width:auto;max-width:210px;margin:0;padding:8px 28px 8px 11px;background:#f8faf8;border-radius:999px;font-size:11px}
.portal-body .account-pill,.portal-body .plan-pill,.portal-body .lang-pill,.portal-body .theme-dot{height:36px;border:1px solid var(--p-line);background:#fff;border-radius:999px;padding:0 12px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#6e7a72}
.portal-body .plan-pill{color:var(--p-green);font-weight:900;background:var(--p-soft);border-color:#d4e7da}.portal-body .lang-pill{font-weight:850;padding:0 11px}.portal-body .theme-dot{width:36px;padding:0;cursor:pointer;font-size:17px}
.portal-body .nav-open{display:none;width:36px;height:36px;border:1px solid var(--p-line);background:#fff;border-radius:10px;cursor:pointer;color:var(--p-green);font-weight:900}
.portal-body .portal-content{width:min(1370px,calc(100% - 48px));margin:0 auto;padding:31px 0 48px;min-width:0}
.portal-body .page-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 18px}
.portal-body .page-title-row h1{font-size:27px;line-height:1.12;letter-spacing:-.8px;margin:3px 0 4px}.portal-body .page-title-row p{margin:0;color:var(--p-muted)}
.portal-body .kicker{font-size:9px;letter-spacing:2px;font-weight:950;color:#8b9a91}.portal-body .live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#35c675;margin-right:5px;box-shadow:0 0 0 3px #def8e9}
.portal-body .head-actions{display:flex;gap:8px;flex-wrap:wrap}
.portal-body .readonly-banner{display:grid;grid-template-columns:38px 1fr auto;gap:13px;align-items:center;margin-bottom:18px;padding:14px 16px;border:1px solid #f0d8a8;border-radius:15px;background:#fff8e9;color:#775419}.portal-body .readonly-banner>span{width:36px;height:36px;border-radius:10px;background:#ffedd0;display:grid;place-items:center}.portal-body .readonly-banner b{display:block}.portal-body .readonly-banner p{margin:2px 0 0;color:#8c7350}.portal-body .readonly-banner a{background:var(--p-green);color:#fff;border-radius:9px;padding:8px 12px;font-weight:800}
.portal-body .alert{border:1px solid;border-radius:13px;padding:13px 15px;margin-bottom:15px}.portal-body .alert.success{background:#eefaf2;border-color:#bfe4ca;color:#146435}.portal-body .alert.danger{background:#fff1f1;border-color:#f2c1c1;color:#a33131}.portal-body .alert.warning{background:#fff8e9;border-color:#efd9a8;color:#865f1e}
.portal-body .btn{appearance:none;border:1px solid transparent;border-radius:10px;min-height:38px;padding:9px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font-weight:800;transition:.15s ease;white-space:nowrap;box-shadow:none}
.portal-body .btn.primary,.portal-body .btn:not(.light):not(.danger):not(.secondary){background:var(--p-green);color:#fff;border-color:var(--p-green)}
.portal-body .btn.primary:hover,.portal-body .btn:not(.light):not(.danger):not(.secondary):hover{background:var(--p-green-2);transform:translateY(-1px);box-shadow:0 7px 16px rgba(18,90,50,.16)}
.portal-body .btn.light{background:#fff;color:#526159;border-color:#dfe5e0}.portal-body .btn.light:hover{background:var(--p-soft);color:var(--p-green);border-color:#cce1d2}.portal-body .btn.danger{background:#fff0f0;color:#b23838;border-color:#f0c7c7}.portal-body .btn.tiny{min-height:30px;padding:6px 9px;border-radius:8px;font-size:11px}.portal-body .btn.wide{width:100%}.portal-body .btn.is-loading{opacity:.7;cursor:wait}
.portal-body .panel{background:var(--p-surface);border:1px solid var(--p-line);border-radius:var(--p-radius);padding:20px;box-shadow:var(--p-shadow);margin-bottom:16px;min-width:0}.portal-body .panel>h2{font-size:18px;margin:0 0 16px;letter-spacing:-.35px}
.portal-body .panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.portal-body .panel-head h2{font-size:18px;margin:0;letter-spacing:-.35px}.portal-body .panel-head h2 small{font-size:10px;font-weight:850;color:var(--p-orange);background:#fff1e4;padding:4px 7px;border-radius:999px}.portal-body .panel-head p{margin:3px 0 0;color:var(--p-muted)}
.portal-body .metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.portal-body .metric{min-height:108px;background:#fff;border:1px solid var(--p-line);border-left:3px solid var(--p-green);border-radius:15px;padding:18px;display:flex;flex-direction:column;box-shadow:var(--p-shadow);overflow:hidden;position:relative}.portal-body .metric:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;right:-28px;bottom:-29px;background:rgba(18,90,50,.055)}
.portal-body .metric span{font-size:10px;letter-spacing:.75px;color:#8c9790;font-weight:900}.portal-body .metric strong{font-size:25px;line-height:1.12;margin:11px 0 4px;letter-spacing:-.7px}.portal-body .metric small{font-size:11px;color:#9aa39d}.portal-body .metric.green{border-left-color:var(--p-green)}.portal-body .metric.blue{border-left-color:var(--p-blue)}.portal-body .metric.purple{border-left-color:var(--p-purple)}.portal-body .metric.orange{border-left-color:var(--p-orange)}.portal-body .metric.red{border-left-color:var(--p-red)}.portal-body .metric.teal{border-left-color:var(--p-teal)}.portal-body .metric.compact{min-height:94px}
.portal-body .chart-panel{min-height:225px}.portal-body .range-tabs{display:inline-flex;gap:5px;margin-left:12px}.portal-body .range-tabs span,.portal-body .range-tabs b{font-size:10px;padding:5px 8px;border-radius:999px;color:#929d96}.portal-body .range-tabs b{background:var(--p-soft);color:var(--p-green)}
.portal-body .line-chart{width:100%;height:172px;overflow:visible}.portal-body .line-chart line{stroke:#e8ede9;stroke-width:1}.portal-body .line-chart polyline{fill:none;stroke:var(--p-green);stroke-width:4;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 5px 5px rgba(18,90,50,.12))}.portal-body .line-chart text{font-size:10px;fill:#97a099}.portal-body .empty-chart{height:170px;border:1px dashed #dfe7e1;border-radius:13px;display:grid;place-items:center;color:#9ca59f;background:#fbfcfb}
.portal-body .dashboard-bottom{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:15px}.portal-body .dashboard-side{display:flex;flex-direction:column;gap:15px}.portal-body .mini-panel{background:#fff;border:1px solid var(--p-line);border-radius:15px;padding:17px;box-shadow:var(--p-shadow)}.portal-body .mini-panel h3{font-size:13px;margin:0 0 12px}.portal-body .mini-panel>strong{font-size:26px;color:var(--p-green)}.portal-body .top-customer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf0ed}.portal-body .top-customer:last-child{border-bottom:0}.portal-body .top-customer span{overflow:hidden;text-overflow:ellipsis}.portal-body .top-customer b{font-size:12px;color:var(--p-green);white-space:nowrap}
.portal-body .table-wrap{overflow:auto;border:1px solid #ebefec;border-radius:13px}.portal-body table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;min-width:680px}.portal-body th,.portal-body td{padding:12px 13px;border-bottom:1px solid #edf0ee;text-align:left;vertical-align:middle}.portal-body th{background:#f7f9f7;color:#8f9993;font-size:9px;text-transform:uppercase;letter-spacing:.8px;font-weight:900}.portal-body tr:last-child td{border-bottom:0}.portal-body tbody tr:hover td{background:#fcfdfc}.portal-body td>b{font-size:12px}.portal-body td small{display:block;color:#99a29c;font-size:10px;margin-top:3px;max-width:260px}.portal-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f1f5f2;padding:3px 6px;border-radius:6px;color:#365241;font-size:11px}
.portal-body .status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.45px;background:#eef1ef;color:#68736c}.portal-body .status-badge.success{background:#dcf7e6;color:#19703d}.portal-body .status-badge.info{background:#e7f3ff;color:#2772aa}.portal-body .status-badge.warning{background:#fff1d8;color:#94621b}.portal-body .status-badge.danger{background:#ffe5e5;color:#aa3434}
.portal-body label{display:block;color:#303b34;font-size:11px;font-weight:850;margin:0}.portal-body label>small{float:right;font-size:8px;letter-spacing:1.3px;color:#9aa39d}.portal-body input,.portal-body select,.portal-body textarea{width:100%;margin-top:7px;border:1px solid #dfe5e1;border-radius:11px;background:#f7f9f7;color:#1c2820;padding:11px 12px;outline:none;transition:.15s ease}.portal-body textarea{resize:vertical;min-height:100px}.portal-body input:focus,.portal-body select:focus,.portal-body textarea:focus{background:#fff;border-color:#6fa281;box-shadow:0 0 0 3px rgba(18,90,50,.09)}.portal-body input::placeholder,.portal-body textarea::placeholder{color:#aab2ad}.portal-body input[type=checkbox],.portal-body input[type=radio]{width:auto;margin:0;accent-color:var(--p-green)}
.portal-body .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.portal-body .span-2{grid-column:span 2}.portal-body .form-submit{display:flex;justify-content:flex-end;align-items:end}.portal-body .form-panel{padding:21px}.portal-body .form-section-title{display:flex;align-items:center;gap:12px;margin-bottom:20px}.portal-body .form-section-title>span{width:37px;height:37px;border-radius:11px;background:var(--p-soft);display:grid;place-items:center}.portal-body .form-section-title h2{font-size:17px;margin:0}.portal-body .form-section-title p{margin:3px 0 0;color:var(--p-muted);font-size:12px}.portal-body .switch-row{min-height:48px;border:1px solid #e2e7e3;border-radius:12px;background:#f8faf8;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px}.portal-body .switch-row input{order:2;width:38px;height:20px}.portal-body .switch-row span{font-size:12px}.portal-body .field-disabled{opacity:.43}.portal-body .inline-test{margin-top:12px;display:flex;justify-content:flex-end}.portal-body .collapsible[hidden]{display:none!important}
.portal-body .connection-strip{background:#fff;border:1px solid var(--p-line);border-radius:15px;padding:12px 14px;margin-bottom:12px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;box-shadow:var(--p-shadow)}.portal-body .connection-strip>span{font-size:11px;color:#8c9790}.portal-body .connection-strip>span b{color:#27332b;margin-left:4px}.portal-body .connection-strip>span.ok{color:#27a763}.portal-body .connection-strip>span.bad{color:#e06a6a}.portal-body .connection-strip>div{margin-left:auto;display:flex;gap:7px;flex-wrap:wrap}.portal-body .connection-strip form{margin:0}
.portal-body .config-tabs,.portal-body .product-tabs{display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border:1px solid var(--p-line);border-radius:14px;padding:4px;margin-bottom:15px}.portal-body .config-tabs a,.portal-body .product-tabs a{text-align:center;color:#8d9690;padding:9px;border-radius:10px;font-weight:800;font-size:11px}.portal-body .config-tabs a.active,.portal-body .product-tabs a.active{background:var(--p-soft);color:var(--p-green);box-shadow:inset 0 0 0 1px #cee1d4}.portal-body .product-tabs{width:max-content;grid-template-columns:repeat(2,120px)}
.portal-body .provider-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:21px}.portal-body .provider{border:1px solid #dfe4e0;background:#f8faf8;border-radius:12px;padding:13px}.portal-body .provider b{display:block;font-size:12px}.portal-body .provider small{font-size:10px;color:#98a199}.portal-body .provider.active{border-color:#69a47d;background:var(--p-soft)}.portal-body .provider.active b{color:var(--p-green)}.portal-body .provider.disabled{opacity:.55}
.portal-body .product-summary{display:flex;align-items:center;justify-content:space-between;gap:15px}.portal-body .product-summary h2{margin:0 0 5px;font-size:16px}.portal-body .product-summary p{margin:0;color:#87928a}.portal-body .filter-row,.portal-body .range-filter,.portal-body .actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.portal-body .filter-row input,.portal-body .filter-row select,.portal-body .range-filter input,.portal-body .actions input,.portal-body .actions select{width:auto;margin:0;min-width:130px}.portal-body .filter-row input:first-of-type{min-width:230px}.portal-body .quick-category{display:grid;grid-template-columns:1fr 46px;gap:8px}.portal-body .quick-category input{margin:0}.portal-body .quick-category .btn{height:42px}.portal-body .catalog-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid #dfe8e1;border-radius:18px;background:linear-gradient(135deg,#fff,#f0f7f2);margin-bottom:16px}.portal-body .catalog-hero>div:first-child>span,.portal-body .affiliate-hero>div:first-child>span{font-size:9px;color:var(--p-green);letter-spacing:2px;font-weight:950}.portal-body .catalog-hero h2{font-size:22px;margin:5px 0 3px}.portal-body .catalog-hero p{margin:0;color:var(--p-muted)}.portal-body .catalog-stats{display:flex;gap:9px}.portal-body .catalog-stats b{min-width:72px;border-radius:12px;padding:10px;background:#fff;border:1px solid #dbe6de;text-align:center;color:var(--p-green);font-size:21px}.portal-body .catalog-stats small{display:block;font-size:8px;letter-spacing:.7px;color:#9aa39d;margin-top:4px}.portal-body .category-list{display:grid;gap:8px}.portal-body .category-row{display:flex;align-items:center;justify-content:space-between;padding:13px;border:1px solid #e6ebe7;border-radius:12px;background:#fbfcfb}.portal-body .category-row b{display:block}.portal-body .category-row small{color:#929c95;font-size:10px}
.portal-body .source-chip{display:inline-flex;border-radius:999px;padding:4px 8px;background:#edf1ee;color:#617067;font-size:9px;text-transform:uppercase;font-weight:900}.portal-body .source-chip.local{background:#e7f4eb;color:#1b6a3b}.portal-body .source-chip.api{background:#e8f2fb;color:#2b6c9d}
.portal-body .empty-state{padding:24px;text-align:center;color:#9aa39d}.portal-body .empty-state.big{min-height:150px;display:grid;place-items:center;text-transform:uppercase;letter-spacing:1px;font-size:10px}.portal-body .welcome-empty{min-height:480px;background:#fff;border:1px solid var(--p-line);border-radius:20px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:35px}.portal-body .welcome-icon{width:75px;height:75px;border-radius:24px;background:var(--p-soft);display:grid;place-items:center;font-size:35px}.portal-body .welcome-empty h1{font-size:25px;margin:18px 0 8px}.portal-body .welcome-empty p{color:var(--p-muted);max-width:540px;margin:0 0 20px}
.portal-body .promo-list{margin-top:17px;display:grid;gap:8px}.portal-body .promo-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e7ebe8;border-radius:11px;padding:11px}.portal-body .promo-list b,.portal-body .promo-list small{display:block}.portal-body .promo-list small{color:#929c95;margin-top:3px}.portal-body .profile-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:16px}.portal-body .profile-tabs{display:grid;grid-template-columns:repeat(4,1fr);padding:4px;background:#f2f5f3;border-radius:11px;margin-bottom:18px;text-align:center}.portal-body .profile-tabs>*{padding:8px;color:#96a099;font-size:10px}.portal-body .profile-tabs b{background:#fff;border-radius:8px;color:#27332b;box-shadow:0 3px 10px rgba(0,0,0,.04)}.portal-body .profile-info{display:grid;grid-template-columns:180px 1fr;margin:0 0 19px}.portal-body .profile-info dt,.portal-body .profile-info dd{margin:0;padding:11px 0;border-bottom:1px solid #edf0ee}.portal-body .profile-info dt{color:#8a958e}.portal-body .profile-info dd{text-align:right;font-weight:750}.portal-body .profile-form{display:grid;grid-template-columns:1fr 1fr auto;gap:11px;align-items:end}.portal-body .referral-box{margin-top:18px;border:1px solid #d9e7dc;background:var(--p-soft-2);border-radius:13px;padding:13px;display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}.portal-body .referral-box span{grid-column:1/-1;font-size:8px;letter-spacing:1.3px;color:#7f8d84;font-weight:900}.portal-body .referral-box strong{font-size:17px;color:var(--p-green);letter-spacing:1px}.portal-body .referral-box button{border:1px solid #cfe0d3;background:#fff;color:var(--p-green);border-radius:8px;padding:7px 10px;font-weight:800;cursor:pointer}.portal-body .referral-box button.copied{background:var(--p-green);color:#fff}.portal-body .shop-profile dl{margin:0}.portal-body .shop-profile dt,.portal-body .shop-profile dd{padding:11px 0;border-bottom:1px solid #edf0ee;margin:0}.portal-body .shop-profile dt{float:left;color:#8b968f}.portal-body .shop-profile dd{text-align:right;font-weight:700}.portal-body .warranty-link{margin:16px 0;background:#f5f8f5;border:1px solid #e1e8e3;border-radius:12px;padding:12px}.portal-body .warranty-link span{display:block;font-size:8px;color:#8b968f;letter-spacing:1px;font-weight:900;margin-bottom:6px}.portal-body .warranty-link code{display:block;overflow:auto;white-space:nowrap}.portal-body .wallet-line{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0ee;padding:10px 0}.portal-body .wallet-line span,.portal-body .wallet-line small{display:block}.portal-body .wallet-line small{color:#9aa39d}.portal-body .positive{color:#168043}.portal-body .negative{color:#bd3f3f}
.portal-body .range-filter button{border:0;background:transparent;color:#8e9892;font-size:11px;font-weight:850;padding:8px 10px;border-radius:999px;cursor:pointer}.portal-body .range-filter button.active{background:var(--p-green);color:#fff}.portal-body .revenue-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px}.portal-body .timeline-profit{background:#fff;border:1px solid var(--p-line);border-radius:var(--p-radius);box-shadow:var(--p-shadow);padding:18px;height:max-content}.portal-body .timeline-profit h3{font-size:15px;margin:0 0 13px}.portal-body .timeline-profit>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.portal-body .timeline-profit span{background:#f6f8f6;border:1px solid #e6ebe7;border-radius:11px;padding:11px;font-size:8px;color:#8e9892;font-weight:900}.portal-body .timeline-profit b{display:block;color:#25332a;font-size:13px;margin-top:8px}.portal-body .chart-legend{display:flex;gap:12px;color:#89948d;font-size:10px}.portal-body .chart-legend b{color:var(--p-green)}
.portal-body .affiliate-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(130deg,#fff,#eef7f1);border:1px solid #dce8df;border-radius:20px;padding:25px;margin-bottom:16px}.portal-body .affiliate-hero h1{font-size:28px;margin:5px 0}.portal-body .affiliate-hero h3{color:var(--p-green);margin:0 0 7px}.portal-body .affiliate-hero p{color:var(--p-muted);margin:0}.portal-body .affiliate-hero>div:last-child{text-align:right}.portal-body .affiliate-hero>div:last-child small{display:block;color:#8e9892;font-size:9px;letter-spacing:1px}.portal-body .affiliate-hero>div:last-child strong{display:block;color:var(--p-green);font-size:27px;margin-top:6px}
.portal-body .broadcast-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:16px}.portal-body .send-mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:15px}.portal-body .send-mode-grid label{position:relative;min-height:86px;border:1px solid #e0e5e1;background:#f8faf8;border-radius:13px;padding:13px;cursor:pointer}.portal-body .send-mode-grid label.selected{background:var(--p-soft);border-color:#87b596}.portal-body .send-mode-grid input{position:absolute;opacity:0}.portal-body .send-mode-grid b,.portal-body .send-mode-grid small{display:block}.portal-body .send-mode-grid b{font-size:12px;margin-bottom:5px}.portal-body .send-mode-grid small{color:#939d96;font-size:10px}.portal-body .upload-zone{position:relative;min-height:105px;border:2px dashed #ccd9cf;border-radius:13px;background:#f8faf8;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#87928a;cursor:pointer;text-align:center;padding:15px;margin-top:7px}.portal-body .upload-zone.dragging,.portal-body .upload-zone.has-file{border-color:#5b9670;background:var(--p-soft)}.portal-body .upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}.portal-body .upload-preview{position:relative;z-index:2;margin-top:10px;pointer-events:none}.portal-body .upload-preview img{max-width:100%;max-height:220px;border-radius:10px;display:block;margin:auto}.portal-body .upload-preview span{display:block;font-size:10px;margin-top:5px}.portal-body .char-counter{display:block;text-align:right;color:#9aa39d;font-size:9px;margin-top:5px}.portal-body .campaign-list{display:grid;gap:10px;max-height:760px;overflow:auto;padding-right:3px}.portal-body .campaign-list article{border:1px solid #e5eae6;border-radius:12px;padding:13px;display:grid;grid-template-columns:1fr auto;gap:8px}.portal-body .campaign-list article>div:first-child b,.portal-body .campaign-list article>div:first-child small{display:block}.portal-body .campaign-list article>div:first-child small{color:#98a19b;font-size:9px}.portal-body .campaign-list article p{grid-column:1/-1;margin:2px 0;color:#657169}.portal-body .campaign-list article>.progress,.portal-body .campaign-list article>small,.portal-body .campaign-list article>form{grid-column:1/-1}.portal-body .progress{height:7px;border-radius:999px;background:#edf1ee;overflow:hidden}.portal-body .progress i{display:block;height:100%;background:linear-gradient(90deg,var(--p-green),#42a268);border-radius:inherit}.portal-body .campaign-list article>small{color:#8c9790}.portal-body .campaign-list article>form{text-align:right}
.portal-body .actions{min-width:410px}.portal-body .actions input{max-width:130px}.portal-body .actions input[name=note]{max-width:180px}
.portal-body .muted{color:var(--p-muted)}

/* Authentication rebuilt in the same seller-platform structure. */
.portal-auth{margin:0;background:#f7f8f4;color:#17221b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.portal-auth *{box-sizing:border-box}.portal-auth .auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(390px,.95fr) minmax(520px,1.8fr)}.portal-auth .auth-story{padding:42px;display:flex;flex-direction:column;border-right:1px solid #e4e9e4;background:linear-gradient(145deg,#fff,#f2f8f4);position:relative;overflow:hidden}.portal-auth .auth-story:after{content:"";position:absolute;width:430px;height:430px;border-radius:50%;left:-230px;bottom:-250px;background:rgba(18,90,50,.075)}.portal-auth .auth-logo{display:flex;align-items:center;gap:11px;position:relative;z-index:1}.portal-auth .auth-pitch{margin:auto 0;position:relative;z-index:1}.portal-auth .kicker{font-size:9px;color:#8c9890;letter-spacing:2px;font-weight:950}.portal-auth .auth-pitch h1{font-size:47px;line-height:.93;letter-spacing:-2.2px;margin:14px 0 22px}.portal-auth .auth-pitch em{font-style:normal;color:#125a32}.portal-auth .auth-pitch p{max-width:390px;line-height:1.7;color:#657169}.portal-auth .auth-copyright{position:relative;z-index:1;font-size:9px;color:#9ca59f;letter-spacing:2px;font-weight:850}.portal-auth .auth-form-side{display:grid;place-items:center;padding:35px;background:radial-gradient(circle at 67% 42%,rgba(18,90,50,.06),transparent 34%),#f7f8f4}.portal-auth .auth-box{width:min(385px,100%);background:#fff;border:1px solid #e1e7e2;border-radius:21px;padding:28px;box-shadow:0 25px 65px rgba(26,44,32,.1)}.portal-auth .auth-box h2{font-size:27px;letter-spacing:-1px;margin:6px 0}.portal-auth .auth-box>p{color:#707d74;margin:0 0 19px}.portal-auth label{display:block;font-size:9px;letter-spacing:.8px;font-weight:900;color:#89948d;margin:13px 0}.portal-auth label a{float:right;color:#125a32}.portal-auth input{width:100%;margin-top:8px;border:1px solid #dfe5e1;border-radius:11px;background:#f5f7f5;padding:12px;outline:none}.portal-auth input:focus{background:#fff;border-color:#6ea180;box-shadow:0 0 0 3px rgba(18,90,50,.09)}.portal-auth .btn{width:100%;min-height:43px;border:0;border-radius:11px;background:#125a32;color:#fff;font-weight:900;cursor:pointer}.portal-auth .auth-separator{height:1px;background:#e7ebe8;margin:19px 0}.portal-auth .auth-register{text-align:center!important;font-size:12px}.portal-auth .auth-register a{font-weight:900;color:#125a32}.portal-auth .alert{border-radius:11px;padding:11px;margin-bottom:12px}.portal-auth .alert.danger{background:#fff0f0;color:#a23b3b;border:1px solid #efc5c5}.portal-auth .alert.success{background:#ecf9f0;color:#18623a;border:1px solid #c5e6ce}

@media(max-width:1180px){.portal-body .portal-app{grid-template-columns:210px minmax(0,1fr)}.portal-body .portal-content{width:calc(100% - 34px)}.portal-body .metric-grid{grid-template-columns:repeat(2,1fr)}.portal-body .dashboard-bottom,.portal-body .broadcast-layout{grid-template-columns:1fr}.portal-body .dashboard-side{display:grid;grid-template-columns:1fr 1fr}.portal-body .profile-layout,.portal-body .revenue-layout{grid-template-columns:1fr}.portal-body .timeline-profit>div{grid-template-columns:repeat(4,1fr)}}
@media(max-width:880px){.portal-body .portal-app{display:block}.portal-body .portal-sidebar{position:fixed;left:-260px;top:0;width:228px;box-shadow:20px 0 50px rgba(22,42,29,.18);transition:left .2s ease}.portal-body.nav-open .portal-sidebar{left:0}.portal-body.nav-open:after{content:"";position:fixed;inset:0;background:rgba(20,32,24,.32);z-index:60}.portal-body .nav-close,.portal-body .nav-open{display:block}.portal-body .portal-topbar{height:64px;padding:0 15px}.portal-body .crumb span,.portal-body .crumb b,.portal-body .account-pill,.portal-body .lang-pill,.portal-body .theme-dot{display:none}.portal-body .portal-content{width:calc(100% - 26px);padding-top:21px}.portal-body .profile-form{grid-template-columns:1fr}.portal-body .form-grid{grid-template-columns:1fr}.portal-body .span-2{grid-column:span 1}.portal-body .form-submit{justify-content:stretch}.portal-body .form-submit .btn{width:100%}.portal-body .config-tabs{overflow:auto;display:flex}.portal-body .config-tabs a{min-width:125px}.portal-body .provider-cards{grid-template-columns:1fr 1fr}.portal-auth .auth-layout{grid-template-columns:1fr}.portal-auth .auth-story{display:none}.portal-auth .auth-form-side{padding:20px;min-height:100vh}}
@media(max-width:620px){.portal-body .metric-grid{grid-template-columns:1fr}.portal-body .dashboard-side{grid-template-columns:1fr}.portal-body .page-title-row{align-items:flex-start;flex-direction:column}.portal-body .page-title-row>.btn,.portal-body .page-title-row>form{width:100%}.portal-body .page-title-row>form .btn{width:100%}.portal-body .panel{padding:15px;border-radius:15px}.portal-body .portal-content{width:calc(100% - 20px)}.portal-body .bot-switch{display:none}.portal-body .plan-pill{max-width:90px;overflow:hidden;text-overflow:ellipsis}.portal-body .provider-cards{grid-template-columns:1fr}.portal-body .catalog-hero,.portal-body .affiliate-hero{align-items:flex-start;flex-direction:column}.portal-body .catalog-stats{width:100%}.portal-body .catalog-stats b{flex:1;min-width:0}.portal-body .send-mode-grid{grid-template-columns:1fr}.portal-body .timeline-profit>div{grid-template-columns:1fr 1fr}.portal-body .profile-tabs{overflow:auto;display:flex}.portal-body .profile-tabs>*{min-width:95px}.portal-body .profile-info{grid-template-columns:1fr}.portal-body .profile-info dd{text-align:left;padding-top:0}.portal-body .filter-row>*{width:100%!important}.portal-body .actions{min-width:260px;flex-direction:column;align-items:stretch}.portal-body .actions input,.portal-body .actions select{width:100%!important;max-width:none}.portal-auth .auth-form-side{padding:14px}.portal-auth .auth-box{padding:22px}}
.portal-body .row-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:wrap}.portal-body .row-actions form{margin:0}.portal-body .detail-row td{background:#f7faf8!important;padding:14px}.portal-body .detail-row .compact-form{padding:5px}.portal-body .compact-form{padding:14px;border-top:1px solid #e5ebe7}.portal-body .stock-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.portal-body .stock-form textarea{min-height:130px}.portal-body .category-card{border:1px solid #e6ebe7;border-radius:12px;overflow:hidden;background:#fbfcfb}.portal-body .category-card .category-row{border:0;border-radius:0}.portal-body .category-card .compact-form{background:#f5f9f6}.portal-body .category-list{gap:10px}
@media(max-width:620px){.portal-body .stock-form{grid-template-columns:1fr}.portal-body .row-actions{justify-content:flex-start}}
.portal-body .plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.portal-body .rental-plan{background:#fff;border:1px solid var(--p-line);border-radius:18px;padding:22px;box-shadow:var(--p-shadow);position:relative;overflow:hidden}.portal-body .rental-plan:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--p-green)}.portal-body .plan-tag{font-size:9px;letter-spacing:1.6px;color:var(--p-green);font-weight:950}.portal-body .rental-plan h2{font-size:27px;margin:12px 0 3px}.portal-body .rental-plan>p{color:#8a958e;margin:0 0 13px}.portal-body .plan-description{min-height:65px;color:#66736a;line-height:1.6;margin-bottom:14px}.portal-body .rental-list{display:grid;gap:9px}.portal-body .rental-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:12px;border:1px solid #e6ebe7;border-radius:12px;background:#fbfcfb}.portal-body .rental-list b,.portal-body .rental-list small{display:block}.portal-body .rental-list small{color:#929c95;margin-top:3px}.portal-body .security-note{margin-top:16px;padding:14px 16px;border:1px solid #d8e7dc;background:#eef7f1;border-radius:13px;color:#41604c}.portal-body .deposit-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(360px,1.15fr);gap:16px}.portal-body .wallet-balance{border:1px solid #d7e5da;background:#eef7f1;color:#748178;border-radius:13px;padding:10px 14px;font-size:9px;font-weight:900;letter-spacing:1px}.portal-body .wallet-balance b{display:block;color:var(--p-green);font-size:18px;letter-spacing:0;margin-top:3px}.portal-body .deposit-qr{text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column}.portal-body .deposit-qr img{width:min(330px,100%);border:1px solid #e1e7e2;border-radius:15px;padding:7px;background:#fff;margin:13px auto}.portal-body .deposit-qr p{max-width:540px;color:#68746c}.portal-body .bank-info{display:grid;grid-template-columns:130px 1fr;margin:0}.portal-body .bank-info dt,.portal-body .bank-info dd{padding:9px 0;border-bottom:1px solid #edf0ee;margin:0}.portal-body .bank-info dt{color:#8b968f}.portal-body .bank-info dd{text-align:right;font-weight:800}.portal-body .bot-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.portal-body .bot-card{background:#fff;border:1px solid var(--p-line);border-radius:18px;padding:20px;box-shadow:var(--p-shadow);position:relative}.portal-body .bot-avatar{width:45px;height:45px;border-radius:14px;background:var(--p-soft);display:grid;place-items:center;font-size:23px;margin-bottom:13px}.portal-body .bot-card-head{display:flex;justify-content:space-between;gap:12px}.portal-body .bot-card h2{margin:0;font-size:19px}.portal-body .bot-card p{margin:3px 0 0;color:#8d9790}.portal-body .bot-card dl{display:grid;grid-template-columns:110px 1fr;margin:15px 0}.portal-body .bot-card dt,.portal-body .bot-card dd{padding:8px 0;border-bottom:1px solid #edf0ee;margin:0}.portal-body .bot-card dt{color:#8b968f}.portal-body .bot-card dd{text-align:right;font-weight:700}.portal-body .bot-card-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.portal-body .bot-card-actions form{margin:0}
@media(max-width:1000px){.portal-body .plan-grid{grid-template-columns:1fr 1fr}.portal-body .deposit-layout{grid-template-columns:1fr}}
@media(max-width:680px){.portal-body .plan-grid,.portal-body .bot-card-grid{grid-template-columns:1fr}.portal-body .rental-list article{grid-template-columns:1fr auto}.portal-body .rental-list article form,.portal-body .rental-list article>a{grid-column:auto}.portal-body .bot-card-actions>*{flex:1}.portal-body .bot-card-actions form .btn{width:100%}}
.portal-body .deposit-live{width:100%;max-width:560px;display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center;margin-top:4px;padding:12px 14px;border:1px solid #dce8df;border-radius:12px;background:#f5faf6;text-align:left;color:#43604d}.portal-body .deposit-live .live-dot{grid-row:1/3}.portal-body .deposit-live b,.portal-body .deposit-live small{display:block}.portal-body .deposit-live small{margin-top:2px;color:#7b8980}.portal-body .deposit-live.is-success{background:#edf9f1;border-color:#bfe2c9;color:#17643a}.portal-body .deposit-live.is-error{background:#fff8e9;border-color:#edd7a7;color:#865f1e}.portal-body tr.product-is-hidden{opacity:.72}.portal-body tr.product-is-hidden td:first-child b{text-decoration:line-through;text-decoration-color:#aeb8b1}


/* V13: trạng thái đồng bộ và sản phẩm tự ẩn khi hết hàng. */
.sync-live{display:block;margin-top:7px;max-width:360px;font-size:12px;color:#64748b;line-height:1.45}
.sync-live.is-success{color:#15803d}
.sync-live.is-error{color:#b91c1c}
.product-is-hidden{opacity:.72}
.product-is-hidden:hover{opacity:1}
