
:root{
  --sb:#110228;--sbw:220px;
  --pu:#9333ea;--pul:#c084fc;--pup:#f3e8ff;--pud:#6b21a8;
  --pk:#ec4899;--pkl:#f9a8d4;--pkp:#fdf2f8;--pkd:#be185d;
  --bg:#faf4ff;--ca:#fff;--bo:#ead8f7;--bol:#f3e8ff;
  --t1:#1a0533;--t2:#6b4e8e;--t3:#a78bbd;
  --gr:#10b981;--am:#f59e0b;--re:#ef4444;--bl:#3b82f6;
  --sh:0 2px 18px rgba(147,51,234,.09);--shm:0 4px 28px rgba(147,51,234,.16);
  --r:10px;--rl:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Outfit",system-ui,sans-serif;background:var(--bg);color:var(--t1);font-size:14px;min-height:100vh;overflow-x:hidden}
body.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.app{display:flex;min-height:100vh}
.ov{display:none;position:fixed;inset:0;background:rgba(17,2,40,.6);z-index:40;backdrop-filter:blur(2px)}
.ov.show{display:block}

/* Sidebar */
.sidebar{width:var(--sbw);min-width:var(--sbw);background:var(--sb);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:50;overflow-y:auto;transition:transform .28s cubic-bezier(.4,0,.2,1)}
.sidebar::-webkit-scrollbar{width:3px}
.sidebar::-webkit-scrollbar-thumb{background:#3d1063;border-radius:2px}
.sb-logo{padding:16px 14px 12px;border-bottom:1px solid rgba(255,255,255,.06)}
.logo-row{display:flex;align-items:center;gap:8px}
.logo-ico{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--pk),var(--pu));display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.logo-name{font-size:13px;font-weight:700;background:linear-gradient(90deg,#f9a8d4,#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.logo-sub{font-size:9px;color:rgba(255,255,255,.28);margin-top:1px}
.agency-chip{margin:10px 14px;padding:9px 11px;background:rgba(255,255,255,.06);border-radius:9px;border:1px solid rgba(255,255,255,.08)}
.ac-name{font-size:12px;font-weight:700;color:rgba(255,255,255,.85)}
.ac-meta{display:flex;gap:6px;margin-top:3px;flex-wrap:wrap}
.ac-plan,.ac-site{font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.5)}
.ns{font-size:9px;font-weight:700;color:rgba(255,255,255,.22);letter-spacing:.09em;text-transform:uppercase;padding:11px 14px 3px}
.ni{display:flex;align-items:center;gap:8px;padding:7px 14px;cursor:pointer;color:rgba(255,255,255,.5);font-size:12px;transition:all .14s;border-left:2px solid transparent;text-decoration:none}
.ni:hover{background:rgba(255,255,255,.07);color:rgba(255,255,255,.88)}
.ni.active{background:rgba(255,255,255,.11);color:#fff;border-left-color:var(--pk);font-weight:600}
.ni.active .nic{opacity:1}
.nic{width:14px;height:14px;flex-shrink:0;opacity:.65}
.ni.active .nic{opacity:1}
.ni-b{margin-left:auto;background:var(--pk);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;min-width:16px;text-align:center}
.sb-foot{margin-top:auto;padding:12px 14px;border-top:1px solid rgba(255,255,255,.06)}
.urow{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow:hidden}
.uav{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--pk),var(--pu));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}
.uname{font-size:11px;font-weight:500;color:rgba(255,255,255,.7)}
.urole{font-size:9px;color:rgba(255,255,255,.3)}
.ulogout{display:flex;align-items:center;gap:5px;font-size:11px;color:rgba(255,255,255,.28);cursor:pointer;text-decoration:none;transition:color .14s;background:none;border:none;padding:0}
.ulogout:hover{color:rgba(255,255,255,.6)}
/* Site switcher */
.ss-wrap{position:relative;flex-shrink:0}
.ss-btn{display:flex;align-items:center;gap:7px;padding:5px 10px;background:linear-gradient(135deg,var(--pkp),var(--pup));border:1.5px solid var(--pul);border-radius:9px;cursor:pointer;transition:all .14s;user-select:none;max-width:200px}
.ss-btn:hover{box-shadow:0 2px 10px rgba(147,51,234,.2)}
.ss-dot{width:7px;height:7px;border-radius:50%;background:var(--gr);flex-shrink:0}
.ss-dot.maint{background:var(--am)}.ss-dot.draft{background:var(--t3)}
.ss-name{font-size:11px;font-weight:600;color:var(--pud);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.ss-arr{font-size:9px;color:var(--pul);transition:transform .2s;flex-shrink:0}
.ss-arr.open{transform:rotate(180deg)}
.ss-dd{position:absolute;top:calc(100% + 6px);left:0;background:var(--ca);border:1px solid var(--bol);border-radius:12px;box-shadow:var(--shm);min-width:240px;padding:6px;z-index:200;display:none}
.ss-dd.show{display:block}
.ss-dh{font-size:9px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;padding:5px 10px 3px}
.ss-it{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:all .12s}
.ss-it:hover{background:var(--pup)}
.ss-it.ac{background:linear-gradient(135deg,var(--pkp),var(--pup))}
.ss-it-n{font-size:12px;color:var(--t1)}
.ss-it-m{font-size:10px;color:var(--t3)}
.ss-sep{height:1px;background:var(--bol);margin:4px 6px}
.site-pill{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--pup);border-radius:8px;font-size:11px;font-weight:600;color:var(--pud)}
.site-dot{width:6px;height:6px;border-radius:50%;background:var(--gr)}
/* Main area */
.main{flex:1;margin-left:var(--sbw);display:flex;flex-direction:column;min-height:100vh}
.topbar{position:sticky;top:0;z-index:30;background:rgba(250,244,255,.96);backdrop-filter:blur(16px);border-bottom:1px solid var(--bol);height:52px;display:flex;align-items:center;gap:8px;padding:0 18px;flex-shrink:0}
.hbg{display:none;background:none;border:none;cursor:pointer;padding:5px;color:var(--t2);border-radius:6px;flex-shrink:0;align-items:center}
.hbg:hover{background:var(--pup)}
.tb-title{font-size:14px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.tb-r{display:flex;align-items:center;gap:8px;flex-shrink:0}
.add-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:linear-gradient(135deg,var(--pk),var(--pu));color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;text-decoration:none;transition:opacity .13s}
.add-btn:hover{opacity:.9}
.content{padding:18px 20px;flex:1;display:flex;flex-direction:column;gap:16px}
/* Profile cards */
.prof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.pcard{background:var(--ca);border:1px solid var(--bol);border-radius:var(--rl);overflow:hidden;box-shadow:var(--sh);transition:box-shadow .14s}
.pcard:hover{box-shadow:var(--shm)}
.p-thumb{height:160px;background:linear-gradient(135deg,var(--pkp),var(--pup));display:flex;align-items:center;justify-content:center;font-size:48px;position:relative;overflow:hidden}
.p-ft{position:absolute;top:8px;right:8px;background:linear-gradient(135deg,var(--pk),var(--pu));color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px}
.p-body{padding:12px}
.p-name{font-size:13px;font-weight:700;color:var(--t1)}
.p-meta{font-size:10px;color:var(--t3);margin-top:2px}
.p-stats{display:flex;gap:10px;margin:8px 0;flex-wrap:wrap}
.p-stat{font-size:10px;color:var(--t2)}
.p-badges{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}
.p-acts{display:flex;gap:4px;flex-wrap:nowrap;overflow:hidden}
.p-acts .btn{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;padding:4px 8px}
.p-add-card{background:var(--ca);border:2px dashed var(--bo);border-radius:var(--rl);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:200px;cursor:pointer;transition:all .14s;text-decoration:none}
.p-add-card:hover{border-color:var(--pul);background:var(--pup)}
/* Auth styles */
.auth-bg{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.auth-bg-blob{position:absolute;border-radius:50%;filter:blur(80px)}
.auth-bg-blob.b1{width:500px;height:500px;background:linear-gradient(135deg,var(--pk),var(--pkl));opacity:.25;top:-150px;right:-100px;animation:fl1 9s ease-in-out infinite}
.auth-bg-blob.b2{width:400px;height:400px;background:linear-gradient(135deg,var(--pu),var(--pul));opacity:.2;bottom:-120px;left:-80px;animation:fl2 11s ease-in-out infinite}
.auth-bg-dots{position:absolute;inset:0;background-image:radial-gradient(var(--pup) 1.5px,transparent 1.5px);background-size:28px 28px;opacity:.7}
@keyframes fl1{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(25px) rotate(4deg)}}
@keyframes fl2{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(-3deg)}}
.auth-wrap{position:relative;z-index:1;width:100%;max-width:440px}
.auth-panel{background:rgba(255,255,255,.9);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:0 4px 32px rgba(147,51,234,.14);padding:38px 34px 32px}
.auth-panel-wide{max-width:520px}
.auth-logo{text-align:center;margin-bottom:24px}
.auth-logo-ico{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--pk),var(--pu));display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 10px;box-shadow:0 4px 14px rgba(236,72,153,.28)}
.auth-logo-name{font-size:16px;font-weight:700;background:linear-gradient(90deg,var(--pk),var(--pu));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.auth-logo-sub{font-size:11px;color:var(--t3);margin-top:2px}
.auth-title{font-size:20px;font-weight:700;color:var(--t1);margin-bottom:4px;text-align:center}
.auth-sub{font-size:13px;color:var(--t3);text-align:center;margin-bottom:22px}
.auth-social-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px;border:1.5px solid var(--bo);border-radius:10px;background:var(--ca);font-family:inherit;font-size:13px;font-weight:500;color:var(--t2);cursor:pointer;margin-bottom:14px;transition:all .13s}
.auth-social-btn:hover{border-color:var(--pul);background:var(--pup)}
.auth-divider{text-align:center;color:var(--t3);font-size:11px;margin-bottom:14px;position:relative}
.auth-divider::before,.auth-divider::after{content:"";position:absolute;top:50%;height:1px;background:var(--bol);width:40%}
.auth-divider::before{left:0}.auth-divider::after{right:0}
.fg{margin-bottom:14px}
.fl{display:block;font-size:11px;font-weight:600;color:var(--t2);margin-bottom:5px}
.rq{color:var(--pk)}
.fi{font-family:inherit;font-size:13px;color:var(--t1);background:var(--ca);border:1.5px solid var(--bo);border-radius:9px;padding:10px 13px;width:100%;outline:none;transition:border .13s;-webkit-appearance:none}
.fi:focus{border-color:var(--pul);box-shadow:0 0 0 3px rgba(192,132,252,.13)}
.fi::placeholder{color:var(--t3)}
.fi-sm{padding:6px 9px;font-size:11px;border-radius:7px}
select.fi{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24'%3E%3Cpath fill='%23a78bbd' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:26px}
.help-block{font-size:11px;color:var(--re);margin-top:3px}
.auth-remember-row{display:flex;align-items:center;gap:8px;margin-bottom:18px}
.auth-check-row{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:12px;color:var(--t2)}
.auth-chk{accent-color:var(--pk);cursor:pointer;width:14px;height:14px}
.auth-check-label{font-size:12px;color:var(--t2)}
.auth-ghost-btn{margin-left:auto;background:none;border:none;font-family:inherit;font-size:12px;font-weight:600;color:var(--pu);cursor:pointer}
.auth-ghost-btn:hover{color:var(--pkd);text-decoration:underline}
.auth-btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:linear-gradient(135deg,var(--pk),var(--pu));color:#fff;border:none;border-radius:10px;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(236,72,153,.25);transition:all .15s;text-decoration:none;margin-bottom:10px}
.auth-btn-primary:hover{opacity:.92;transform:translateY(-1px)}
.auth-btn-secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px;background:transparent;border:1.5px solid var(--bo);color:var(--t2);border-radius:10px;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .13s;margin-bottom:10px}
.auth-btn-secondary:hover{border-color:var(--pul);color:var(--pu)}
.auth-switch{text-align:center;font-size:12px;color:var(--t3);margin-top:12px}
.auth-switch a{color:var(--pu);font-weight:600;text-decoration:none}
.auth-switch a:hover{text-decoration:underline}
/* Register steps */
.auth-steps{display:flex;align-items:center;margin-bottom:24px}
.auth-step-item{display:flex;align-items:center;gap:6px;flex-shrink:0}
.auth-step-num{width:24px;height:24px;border-radius:50%;background:var(--bol);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--t3);transition:all .2s}
.auth-step-num.active{background:linear-gradient(135deg,var(--pk),var(--pu));color:#fff}
.auth-step-num.done{background:var(--gr);color:#fff}
.auth-step-lbl{font-size:10px;color:var(--t3)}
.auth-step-line{flex:1;height:1px;background:var(--bol);margin:0 6px;transition:background .2s}
.auth-step-line.done{background:var(--gr)}
.auth-step-content{display:block}
/* Plan selector */
.auth-plan-row{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.auth-plan-opt{display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px solid var(--bol);border-radius:12px;cursor:pointer;transition:all .13s}
.auth-plan-opt:hover{border-color:var(--pul)}
.auth-plan-opt.selected{border-color:var(--pk);background:var(--pkp)}
.auth-plan-radio{width:16px;height:16px;border-radius:50%;border:2px solid var(--t3);transition:all .13s;flex-shrink:0}
.auth-plan-opt.selected .auth-plan-radio{border-color:var(--pk);background:var(--pk)}
.auth-plan-name{font-size:13px;font-weight:700;color:var(--t1);display:flex;align-items:center;gap:6px}
.auth-plan-badge{font-size:9px;background:linear-gradient(135deg,var(--pk),var(--pu));color:#fff;padding:2px 8px;border-radius:20px;font-weight:700}
.auth-plan-desc{font-size:11px;color:var(--t3);margin-top:2px}
.auth-plan-price{margin-left:auto;font-size:16px;font-weight:700;color:var(--t1);white-space:nowrap}
.auth-trial-notice{background:linear-gradient(135deg,var(--pkp),var(--pup));border-radius:10px;padding:10px 14px;font-size:12px;color:var(--pud);text-align:center;margin-bottom:16px}
/* Language bar (auth pages) */
.auth-lang-bar{display:flex;justify-content:center;margin-top:14px}
.auth-lang-pills{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.auth-lang-pill{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:20px;border:1.5px solid var(--bol);background:rgba(255,255,255,.7);backdrop-filter:blur(8px);font-size:12px;font-weight:600;color:var(--t2);text-decoration:none;transition:all .13s;white-space:nowrap}
.auth-lang-pill:hover{border-color:var(--pul);color:var(--pu);background:rgba(255,255,255,.95)}
.auth-lang-pill.active{border-color:var(--pk);background:linear-gradient(135deg,var(--pkp),var(--pup));color:var(--pud);pointer-events:none}
/* Language dropdown (for 5+ langs) */
.auth-lang-dd{position:relative}
.auth-lang-dd-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;border:1.5px solid var(--bol);background:rgba(255,255,255,.7);backdrop-filter:blur(8px);font-size:12px;font-weight:600;color:var(--t2);cursor:pointer;transition:all .13s}
.auth-lang-dd-btn:hover{border-color:var(--pul);color:var(--pu)}
.auth-lang-dd-menu{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--ca);border:1px solid var(--bol);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:6px;min-width:120px;display:none;z-index:100}
.auth-lang-dd-menu.open{display:block}
.auth-lang-dd-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:500;color:var(--t2);text-decoration:none;transition:background .1s}
.auth-lang-dd-item:hover{background:var(--cb)}
.auth-lang-dd-item.active{font-weight:700;color:var(--pu)}
.auth-success{text-align:center;padding:10px 0}
.auth-success-ico{font-size:52px;margin-bottom:12px}
.auth-success-title{font-size:22px;font-weight:700;color:var(--t1);margin-bottom:8px}
.auth-success-text{font-size:13px;color:var(--t3);line-height:1.6}
/* Password strength */
.pwd-bars{display:flex;gap:3px;margin-top:5px}
.pwd-bar{height:4px;flex:1;border-radius:2px;background:var(--bol);transition:background .2s}
.pwd-bar.weak{background:var(--re)}
.pwd-bar.ok{background:var(--am)}
.pwd-bar.good{background:var(--bl)}
.pwd-bar.strong{background:var(--gr)}
.pwd-lbl{font-size:10px;color:var(--t3);margin-top:3px}
/* Common components */
.ph{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ptitle{font-size:19px;font-weight:700;color:var(--t1)}
.psub{font-size:11px;color:var(--t3);margin-top:2px}
.bg{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:8px;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:all .13s;border:1px solid var(--bo);background:var(--ca);color:var(--t2);white-space:nowrap;text-decoration:none}
.btn:hover{border-color:var(--pul);color:var(--pu)}
.btn:active{transform:scale(.97)}
.btn.pr{background:linear-gradient(135deg,var(--pk),var(--pu));color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(236,72,153,.2)}
.btn.pr:hover{opacity:.9;transform:translateY(-1px)}
.btn.ou{background:transparent;border-color:var(--pul);color:var(--pu)}
.btn.ou:hover{background:var(--pup)}
.btn.sm{padding:5px 10px;font-size:11px}
.btn.xs{padding:3px 8px;font-size:10px}
.btn.dn{background:#fff;border-color:#fecdd3;color:var(--re)}
.btn.dn:hover{background:#fff1f2}
.btn.full{width:100%;justify-content:center}
.card{background:var(--ca);border:1px solid var(--bol);border-radius:var(--rl);padding:18px;box-shadow:var(--sh)}
.ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px;flex-wrap:wrap}
.ct{font-size:13px;font-weight:600;color:var(--t1)}
.cs{font-size:11px;color:var(--t3);margin-top:1px}
.mg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.mc{background:var(--ca);border:1px solid var(--bol);border-radius:var(--rl);padding:14px;box-shadow:var(--sh);position:relative;overflow:hidden}
.mc::before{content:"";position:absolute;top:0;left:0;right:0;height:3px}
.mc.pk::before{background:linear-gradient(90deg,var(--pk),var(--pkl))}
.mc.pu::before{background:linear-gradient(90deg,var(--pu),var(--pul))}
.mc.gr::before{background:var(--gr)}.mc.am::before{background:var(--am)}
.ml{font-size:10px;color:var(--t3);font-weight:500;margin-bottom:4px}
.mv{font-size:21px;font-weight:700;color:var(--t1);line-height:1}
.md{font-size:10px;color:var(--t3);margin-top:4px}
.md.up{color:var(--gr)}.md.wn{color:var(--am)}
.mico{position:absolute;right:11px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:13px}
.mico.pk{background:var(--pkp)}.mico.pu{background:var(--pup)}.mico.gr{background:#d1fae5}.mico.am{background:#fef3c7}
.tw{display:grid;grid-template-columns:1.6fr 1fr;gap:14px}
.tw-eq{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tw-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cst{display:flex;flex-direction:column;gap:12px}
.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:600;white-space:nowrap}
.badge::before{content:"";width:4px;height:4px;border-radius:50%;flex-shrink:0}
.bg-gr{background:#d1fae5;color:#065f46}.bg-gr::before{background:#10b981}
.bg-am{background:#fef3c7;color:#92400e}.bg-am::before{background:#f59e0b}
.bg-re{background:#fee2e2;color:#991b1b}.bg-re::before{background:#ef4444}
.bg-bl{background:#dbeafe;color:#1e40af}.bg-bl::before{background:#3b82f6}
.bg-pu{background:var(--pup);color:var(--pud)}.bg-pu::before{background:var(--pu)}
.bg-pk{background:var(--pkp);color:var(--pkd)}.bg-pk::before{background:var(--pk)}
.bg-gy{background:#f3f4f6;color:#6b7280}.bg-gy::before{background:#9ca3af}
.nd::before{display:none}
.fr{display:grid;gap:12px}
.fr.c2{grid-template-columns:1fr 1fr}.fr.c3{grid-template-columns:1fr 1fr 1fr}.fr.c4{grid-template-columns:1fr 1fr 1fr 1fr}
.fh{font-size:10px;color:var(--t3);line-height:1.4;margin-top:2px}
.notice{border-radius:9px;padding:9px 12px;font-size:11px;display:flex;align-items:flex-start;gap:7px;line-height:1.5}
.notice.info{background:linear-gradient(135deg,var(--pkp),var(--pup));color:var(--pud)}
.notice.warn{background:#fef3c7;color:#92400e}
.notice.ok{background:#d1fae5;color:#065f46}
.prog{height:5px;background:var(--bol);border-radius:3px;overflow:hidden}
.pf{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--pk),var(--pu))}
.pf.g{background:var(--gr)}.pf.a{background:var(--am)}.pf.full{background:var(--re)}
.tscr{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tscr table{width:100%;border-collapse:collapse;min-width:340px}
.tscr thead th{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;padding:9px 12px;border-bottom:1px solid var(--bol);background:var(--bg);text-align:left;white-space:nowrap}
.tscr tbody td{font-size:12px;color:var(--t1);padding:10px 12px;border-bottom:1px solid var(--bol);vertical-align:middle}
.tscr tbody tr:last-child td{border-bottom:none}
.tscr tbody tr:hover{background:#fdf4ff}
.tb{font-weight:600}.tm{color:var(--t3);font-size:11px}
.dt-modal-bg{display:none;position:fixed;inset:0;background:rgba(17,2,40,.56);z-index:100;align-items:flex-start;justify-content:center;padding:20px 16px 40px;backdrop-filter:blur(4px);overflow-y:auto}
.dt-modal-bg.show{display:flex}
.dt-modal-box{background:var(--ca);border-radius:20px;padding:26px;width:100%;max-width:500px;box-shadow:0 20px 60px rgba(17,2,40,.25);position:relative;margin:auto}
.dt-modal-box.wide{max-width:680px}.dt-modal-box.xl{max-width:820px}.dt-modal-box.slim{max-width:380px}
.modal-close{position:absolute;top:14px;right:14px;background:var(--bg);border:1px solid var(--bol);border-radius:50%;cursor:pointer;color:var(--t3);font-size:16px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:all .13s}
.modal-close:hover{background:var(--pkp);color:var(--pkd);border-color:var(--pkl)}
.modal-hd{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--bol)}
.modal-hd-title{font-size:15px;font-weight:700;color:var(--t1)}
.modal-hd-sub{font-size:11px;color:var(--t3);margin-top:2px}
.modal-ico{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 14px}
.modal-ico.danger{background:#fee2e2}.modal-ico.info{background:var(--pup)}.modal-ico.ok{background:#d1fae5}
.modal-title{font-size:16px;font-weight:700;color:var(--t1);text-align:center;margin-bottom:6px}
.modal-text{font-size:12px;color:var(--t3);text-align:center;line-height:1.6;margin-bottom:18px}
.modal-btns{display:flex;gap:8px;margin-top:16px}
.modal-btns .btn{flex:1;justify-content:center;padding:9px}
.tog{display:flex;align-items:center;gap:7px;cursor:pointer}
.ttr{width:36px;height:20px;border-radius:10px;background:#e5e7eb;position:relative;transition:background .16s;flex-shrink:0}
.ttr.on{background:linear-gradient(135deg,var(--pk),var(--pu))}
.tth{width:16px;height:16px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .16s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.ttr.on .tth{transform:translateX(16px)}
.tl{font-size:12px;color:var(--t2)}
.tabs{display:flex;gap:2px;background:var(--bol);padding:3px;border-radius:9px;width:fit-content;overflow-x:auto;overflow-y:hidden;max-width:100%}
.tab{padding:6px 13px;border-radius:7px;font-size:12px;font-weight:500;cursor:pointer;color:var(--t2);transition:all .13s;white-space:nowrap}
.tab.active{background:var(--ca);color:var(--t1);box-shadow:0 1px 4px rgba(0,0,0,.07)}
.stabs{display:flex;gap:2px;background:var(--bol);padding:3px;border-radius:9px;overflow-x:auto;overflow-y:hidden;max-width:100%;margin-bottom:16px;flex-wrap:wrap}
.stab{padding:6px 14px;border-radius:7px;font-size:12px;font-weight:500;cursor:pointer;color:var(--t2);transition:all .13s;white-space:nowrap;user-select:none}
.stab.active{background:var(--ca);color:var(--t1);box-shadow:0 1px 4px rgba(0,0,0,.07)}
.lang-bar{display:flex;align-items:center;gap:5px;margin-bottom:12px;padding:8px 12px;background:var(--bg);border-radius:9px;border:1px solid var(--bol);flex-wrap:wrap}
.lbl-lbl{font-size:9px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em}
.ltab{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:7px;font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid var(--bo);background:var(--ca);color:var(--t2);transition:all .13s;user-select:none}
.ltab:hover{border-color:var(--pul);color:var(--pu)}
.ltab.active{background:linear-gradient(135deg,var(--pk),var(--pu));color:#fff;border-color:transparent}
.ltab .ldot{width:5px;height:5px;border-radius:50%;background:var(--gr)}
.ltab.empty .ldot{background:var(--am)}
.ladd{padding:4px 9px;border-radius:7px;font-size:11px;cursor:pointer;border:1.5px dashed var(--bo);background:transparent;color:var(--t3);font-family:inherit}
.ladd:hover{border-color:var(--pul);color:var(--pu)}
.lpanel{display:none}.lpanel.active{display:block}
.lnotice{display:flex;align-items:center;gap:7px;padding:7px 10px;background:var(--pup);border-radius:7px;font-size:11px;color:var(--pud);margin-bottom:10px}
.fsep{font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--bol)}
@media(max-width:900px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0!important}
  .hbg{display:flex!important}
  .content{padding:12px 10px}
  .topbar{padding:0 10px;height:50px}
  .mg{grid-template-columns:1fr 1fr}
  .tw{grid-template-columns:1fr}
  .tw-eq{grid-template-columns:1fr}
  .tw-3{grid-template-columns:1fr 1fr}
  .fr.c2,.fr.c3,.fr.c4{grid-template-columns:1fr}
  .ph{flex-direction:column;gap:8px}
  .mico{display:none}
  .dt-modal-box{padding:20px 14px}
  .dt-modal-box.wide,.dt-modal-box.xl{max-width:100%}
  .modal-btns{flex-direction:column}
  .prof-grid{grid-template-columns:1fr 1fr}
  .stats-cards-grid{grid-template-columns:1fr 1fr}
  .p-acts{flex-wrap:nowrap}
  .tscr table{min-width:480px}
  .ss-dd{min-width:200px}
  .ai-tool-card{padding:14px}
  .ai-tool-ghost{font-size:60px}
}
@media(max-width:480px){
  .mg{grid-template-columns:1fr}
  .prof-grid{grid-template-columns:1fr}
  .tw-3{grid-template-columns:1fr}
  .stats-cards-grid{grid-template-columns:1fr 1fr}
  :root{--sbw:100vw}
}
@media(max-width:360px){
  .stats-cards-grid{grid-template-columns:1fr}
}

/* Berry form validation */
.has-error .fi{
  border-color:var(--re)!important;
  box-shadow:0 0 0 3px rgba(239,68,68,.14)!important;
}
.help-block{
  display:block;
}
[data-berry-loading="1"],
[data-berry-form][data-berry-submitting="1"] button[type="submit"]{
  opacity:.65;
  cursor:wait;
  pointer-events:none;
}

/* Berry toast fixes */
.toast-rtl{
  position:fixed;
  top:16px;
  right:16px;
  z-index:20000;
}
.toast-container[data-berry-toast="cuba"]{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.toast-container[data-berry-toast="cuba"] .toast{
  display:block;
  min-width:280px;
  max-width:420px;
  border:1px solid var(--bol);
  border-radius:12px;
  background:#fff;
  color:var(--t1);
  box-shadow:var(--shm);
  overflow:hidden;
}
.toast-container[data-berry-toast="cuba"] .toast-header{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-bottom:1px solid var(--bol);
  background:linear-gradient(135deg,var(--pkp),var(--pup));
}
.toast-container[data-berry-toast="cuba"] .toast-body{
  padding:10px 12px;
  background:#fff;
  color:var(--t1);
}
.toast-container[data-berry-toast="cuba"] .toast-icons{
  width:16px;
  height:16px;
}
.toast-container[data-berry-toast="cuba"] .toast-success{color:var(--gr)}
.toast-container[data-berry-toast="cuba"] .toast-warning{color:var(--am)}
.toast-container[data-berry-toast="cuba"] .toast-danger{color:var(--re)}
.toast-container[data-berry-toast="cuba"] .toast-primary{color:var(--pu)}
.toast-container[data-berry-toast="cuba"] .btn-close{
  margin-left:auto;
  width:20px;
  height:20px;
  border:0;
  background:transparent;
  color:var(--t3);
  opacity:.8;
}
.toast-container[data-berry-toast="cuba"] .toast,
.toast-container[data-berry-toast="cuba"] .toast-header,
.toast-container[data-berry-toast="cuba"] .toast-body,
.toast-container[data-berry-toast="cuba"] .toast-body.toast-dark{
  background:#fff !important;
  color:var(--t1) !important;
  opacity:1 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Dating UI Kit — Toast, Confirm Modal overrides
   ═══════════════════════════════════════════════════════════════════════════ */

#dating-toast-wrap {
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
  max-width: 340px;
  width: calc(100vw - 32px);
}
.dt {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 11px 12px 11px 14px;
  border-radius: 12px;
  border: 1px solid var(--bol);
  background: #fff;
  box-shadow: 0 4px 24px rgba(17,2,40,.14);
  pointer-events: all;
  opacity: 0;
  transform: translateX(24px);
  transition: opacity .25s ease, transform .25s ease;
  min-width: 0;
  max-width: 340px;
}
.dt.dt-in  { opacity: 1; transform: translateX(0) translateY(0); transition:all .28s cubic-bezier(.2,.8,.4,1); }
.dt.dt-out { opacity: 0; transform: translateX(8px) translateY(-4px); transition:all .28s ease-in; }
.dt-ico { flex-shrink: 0; width: 20px; height: 20px; margin-top: 1px; }
.dt-success .dt-ico { color: var(--gr, #16a34a); }
.dt-error   .dt-ico { color: var(--re, #ef4444); }
.dt-warning .dt-ico { color: var(--am, #f59e0b); }
.dt-info    .dt-ico { color: var(--pu, #7c3aed); }
.dt-body { flex: 1; min-width: 0; }
.dt-title { font-size: 12px; font-weight: 700; color: var(--t1); line-height: 1.3; }
.dt-msg { font-size: 11px; color: var(--t2); margin-top: 2px; line-height: 1.4; word-break: break-word; }
.dt-success .dt-title { color: var(--gr, #16a34a); }
.dt-error   .dt-title { color: var(--re, #ef4444); }
.dt-warning .dt-title { color: var(--am, #f59e0b); }
.dt-x { flex-shrink:0; background:none; border:none; color:var(--t3); cursor:pointer; font-size:16px; line-height:1; padding:0 2px; margin-top:-2px; opacity:.6; transition:opacity .15s; }
.dt-x:hover { opacity: 1; }

#_dcfm .dt-modal-box { max-width: 400px !important; width: 100% !important; margin: auto !important; text-align: center; }
.dt-modal-bg { align-items: flex-start; padding: 20px 16px 40px; overflow-y: auto; }
.dt-modal-bg > .dt-modal-box { margin: auto; }
.dt-modal-box.slim { max-width: 400px; }

.toast-container[data-berry-toast] {
  position: fixed !important; top: 16px !important; right: 16px !important;
  left: auto !important; z-index: 99998 !important;
  width: auto !important; max-width: 340px !important;
}
.toast-container[data-berry-toast] .toast { max-width: 340px !important; min-width: 260px !important; width: auto !important; }

@media (max-width: 480px) {
  #dating-toast-wrap { top: 8px; right: 8px; max-width: calc(100vw - 16px); }
  .dt { max-width: 100%; }
  .dt-modal-box.slim, #_dcfm .dt-modal-box { max-width: calc(100vw - 32px) !important; }
}

/* Confirm modal — sits above other modals, below toasts */
#_dcfm { z-index: 9999 !important; }

/* ── Confirm dialog icon (no external image) ── */
.dt-cfm-ico{width:52px;height:52px;border-radius:50%;background:#fee2e2;display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 14px;color:#ef4444}

/* ── Field validation errors ── */
.dt-err{border-color:#ef4444 !important;box-shadow:0 0 0 3px rgba(239,68,68,.15) !important}
.dt-err-wrap .fi{border-color:#ef4444 !important;box-shadow:0 0 0 3px rgba(239,68,68,.1) !important}
.dt-field-error{color:#ef4444;font-size:11px;margin-top:3px;padding-left:2px;display:flex;align-items:center;gap:3px}

/* ── Spinner for loading states ── */
@keyframes _dtSpin{to{transform:rotate(360deg)}}
.dt-spin{width:28px;height:28px;border:3px solid var(--bol);border-top-color:var(--pk);border-radius:50%;animation:_dtSpin .7s linear infinite;margin:0 auto}
.dt-btn-spin{animation:_dtSpin .7s linear infinite;vertical-align:middle}

/* ─── Pagination (Yii2 LinkPager) ──────────────────────────────────────────── */
.pagination{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.pagination li,.pagination li.prev,.pagination li.next,.pagination li.first,.pagination li.last{
  border:none!important;background:none!important;padding:0!important;margin:0!important;
}
.pagination li a,
.pagination li span{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 8px;border-radius:8px;font-size:12px;font-weight:500;text-decoration:none;color:var(--t2);border:1px solid var(--bol);background:var(--ca);transition:all .13s;cursor:pointer}
.pagination li.active span{background:var(--pk);color:#fff;border-color:var(--pk);font-weight:700}
.pagination li.disabled span,.pagination li.disabled a{opacity:.4;cursor:not-allowed;pointer-events:none}
.pagination li a:hover{background:var(--pkp);color:var(--pkd);border-color:var(--pkl)}

/* ─── Searchable Select (dt-s2) ─────────────────────────────────────────────── */
.dt-s2-wrap{position:relative;display:block}
.dt-s2-inp{width:100%;cursor:pointer}
.dt-s2-dd{
  display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:900;
  background:var(--ca);border:1px solid var(--bol);border-radius:10px;
  box-shadow:0 8px 24px rgba(17,2,40,.16);
  max-height:220px;overflow-y:auto;
  animation:_dtS2In .15s ease both;
}
.dt-s2-dd.open{display:block}
@keyframes _dtS2In{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.dt-s2-opt{
  padding:8px 12px;font-size:12px;color:var(--t1);cursor:pointer;
  transition:background .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dt-s2-opt:hover,.dt-s2-opt.active{background:var(--pkp);color:var(--pkd)}
.dt-s2-opt.empty{color:var(--t3);cursor:default;font-style:italic}

/* Language segment control (sidebar) */
.lang-seg{display:flex;gap:3px;margin-bottom:10px;background:rgba(255,255,255,.06);border-radius:9px;padding:3px}
.ls-item{flex:1;text-align:center;text-decoration:none;font-size:10px;font-weight:600;color:rgba(255,255,255,.45);padding:5px 0;border-radius:7px;transition:all .18s;letter-spacing:.04em}
.ls-item:hover{color:rgba(255,255,255,.75);background:rgba(255,255,255,.06)}
.ls-item.active{background:linear-gradient(135deg,var(--pk),var(--pu));color:#fff;box-shadow:0 2px 8px rgba(236,72,153,.35)}

/* AI tool cards */
.ai-tool-card{position:relative;border:1px solid rgba(0,0,0,.06);border-radius:var(--rl);padding:18px;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;gap:0;transition:box-shadow .16s,transform .16s;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.ai-tool-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.12);transform:translateY(-2px)}
.ai-tool-ghost{position:absolute;right:-10px;bottom:-14px;font-size:80px;opacity:.07;pointer-events:none;line-height:1;user-select:none}
.ai-tool-ico{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:12px;flex-shrink:0}

/* Stats cards responsive grid */
.stats-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}

/* Photo drag-sort */
.drag-ov{outline:2px dashed var(--pk);outline-offset:2px;opacity:.7}

/* Upload zone */
.upload-zone{border:2px dashed var(--bo);border-radius:12px;padding:28px 20px;text-align:center;cursor:pointer;transition:all .16s;background:var(--bg);position:relative}
.upload-zone:hover,.upload-zone.over{border-color:var(--pk);background:var(--pkp)}
.upload-zone-ico{font-size:30px;margin-bottom:8px;line-height:1}
.upload-zone-title{font-size:13px;font-weight:500;color:var(--t2);margin-bottom:4px}
.upload-zone-link{color:var(--pk);cursor:pointer;font-weight:700;text-decoration:underline}
.upload-zone-hint{font-size:10px;color:var(--t3)}
.upload-prev{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.upload-prev-item{position:relative;width:70px;height:82px;flex-shrink:0}
.upload-prev-item img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1.5px solid var(--bol);display:block}
.upload-prev-rm{position:absolute;top:-5px;right:-5px;background:var(--re);color:#fff;border:none;border-radius:50%;width:17px;height:17px;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.upload-action-row{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}

/* ─── Stats page ─────────────────────────────────────────────────────────── */
.stat-card{background:var(--ca);border:1px solid var(--bol);border-radius:var(--rl);padding:16px;box-shadow:0 2px 16px rgba(0,0,0,.06);position:relative;overflow:hidden;transition:box-shadow .15s,transform .15s}
.stat-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.1);transform:translateY(-1px)}
.stat-card-bg-ico{position:absolute;right:-10px;bottom:-10px;pointer-events:none;user-select:none}
.stat-card-bar{height:4px;border-radius:3px;overflow:hidden;min-width:0}

/* Stat card v2 (new gradient design) */
.stat-card-v2{border:1px solid;border-radius:var(--rl);padding:16px 16px 14px;position:relative;overflow:hidden;transition:box-shadow .15s,transform .15s;box-shadow:0 2px 12px rgba(0,0,0,.05)}
.stat-card-v2:hover{box-shadow:0 6px 24px rgba(0,0,0,.1);transform:translateY(-2px)}
.stat-card-v2-ico{position:absolute;right:-8px;bottom:-8px;pointer-events:none;user-select:none;opacity:.22}
.stat-card-v2-body{position:relative;z-index:1}
.stat-card-v2-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px;opacity:.8}
.stat-card-v2-num{font-size:28px;font-weight:800;line-height:1;margin-bottom:10px}
.stat-card-v2-bar-wrap{height:4px;border-radius:3px;overflow:hidden}
.stat-card-v2-bar{height:100%;border-radius:3px;transition:width .6s ease}
.stat-card-v2-dot{width:60px;height:60px;border-radius:50%;border:1px solid;position:absolute;top:-20px;left:-20px;pointer-events:none}

/* Stat card period badge */
.stat-card-v2-period{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.65;margin-top:8px;display:flex;align-items:center;gap:3px}
/* Improved stat number with sub-label */
.stat-card-v2-sub{font-size:10px;opacity:.55;margin-bottom:6px;font-weight:500}

/* Decorative arc inside card */
.card-deco-arc{position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;border:28px solid currentColor;opacity:.04;pointer-events:none}

/* ─── Billing plan cards ─────────────────────────────────────────────────── */
.billing-plan-card{background:var(--ca);border:1.5px solid var(--bol);border-radius:var(--rl);padding:18px;position:relative;overflow:hidden;transition:box-shadow .15s,transform .15s,border-color .15s;box-shadow:0 2px 12px rgba(0,0,0,.05)}
.billing-plan-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.1);transform:translateY(-2px)}
.billing-plan-card--active{border-color:var(--pu);background:linear-gradient(135deg,#fdf4ff,#f3e8ff)}
.billing-plan-card--active:hover{border-color:var(--pud)}
.billing-plan-bg-deco{position:absolute;bottom:-16px;right:-16px;pointer-events:none;user-select:none;transition:opacity .2s}
.billing-plan-card:hover .billing-plan-bg-deco{opacity:.7}

/* ─── Profile cards enhanced shadow ─────────────────────────────────────── */
.pcard{box-shadow:0 2px 16px rgba(147,51,234,.1),0 1px 4px rgba(0,0,0,.05)!important}
.pcard:hover{box-shadow:0 8px 32px rgba(147,51,234,.18),0 2px 8px rgba(0,0,0,.07)!important}

/* ─── Notification items ─────────────────────────────────────────────────── */
.notify-item{display:flex;align-items:center;gap:10px;cursor:pointer;padding:10px 14px;background:var(--bg);border-radius:10px;border:1.5px solid var(--bol);font-size:12px;transition:border-color .13s,background .13s}
.notify-item:has(input:checked){background:linear-gradient(135deg,var(--pkp),var(--pup));border-color:var(--pul)}
.notify-item-ico{width:32px;height:32px;border-radius:9px;background:var(--ca);border:1px solid var(--bol);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 1px 4px rgba(0,0,0,.06)}

/* ═══════════════════════════════════════════════════════════════════════════
   READABILITY & UX IMPROVEMENTS  (agency)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Root: better contrast for muted text ────────────────────────────────── */
:root {
  --t3: #8b6aaa;          /* was #a78bbd — improved contrast */
}

body { line-height: 1.5; }

/* ── Page header ─────────────────────────────────────────────────────────── */
.ptitle { font-size: 20px; }
.psub   { font-size: 12px; margin-top: 3px; }

/* ── Sidebar nav ─────────────────────────────────────────────────────────── */
.ns      { font-size: 10px; padding: 13px 14px 4px; }
.ni      { font-size: 13px; padding: 8px 14px; gap: 9px; }
.logo-sub{ font-size: 10px; }
.ac-name { font-size: 13px; }
.ac-plan,
.ac-site { font-size: 10px; padding: 2px 7px; }
.uname   { font-size: 12px; }
.urole   { font-size: 10px; }

/* ── Topbar ──────────────────────────────────────────────────────────────── */
.tb-title { font-size: 15px; }

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.btn    { font-size: 13px; padding: 8px 14px; }
.btn.sm { font-size: 12px; padding: 6px 11px; }
.btn.xs { font-size: 11px; padding: 5px 10px; }

/* ── Profile card buttons (previously tiny) ──────────────────────────────── */
.p-acts .btn { font-size: 11px; padding: 5px 9px; }
.p-name      { font-size: 14px; }
.p-meta      { font-size: 11px; }
.p-stat      { font-size: 11px; }
.p-body      { padding: 14px; }

/* ── Form fields ─────────────────────────────────────────────────────────── */
.fl    { font-size: 12px; margin-bottom: 5px; }
.fi    { font-size: 13px; padding: 10px 13px; }
.fi-sm { font-size: 12px; padding: 7px 10px; }
.fh    { font-size: 11px; margin-top: 3px; }
.fg    { margin-bottom: 16px; }

/* ── Metric cards ─────────────────────────────────────────────────────────── */
.mc   { padding: 16px 14px; }
.ml   { font-size: 11px; margin-bottom: 5px; }
.mv   { font-size: 24px; }
.md   { font-size: 11px; margin-top: 5px; }

/* ── Stat cards v2 ────────────────────────────────────────────────────────── */
.stat-card-v2-lbl    { font-size: 11px; letter-spacing: .04em; }
.stat-card-v2-num    { font-size: 30px; }
.stat-card-v2-sub    { font-size: 11px; }
.stat-card-v2-period { font-size: 10px; }

/* ── Tables ───────────────────────────────────────────────────────────────── */
.tscr thead th  { font-size: 11px; padding: 10px 13px; color: var(--t2); }
.tscr tbody td  { font-size: 13px; padding: 11px 13px; }
.tscr tbody tr:hover { background: #f7eeff; }
.tb  { font-size: 13px; }
.tm  { font-size: 12px; color: var(--t2); }

/* ── Badges ───────────────────────────────────────────────────────────────── */
.badge { font-size: 11px; padding: 3px 9px; gap: 4px; }
.badge::before { width: 5px; height: 5px; }

/* ── Notice ───────────────────────────────────────────────────────────────── */
.notice { font-size: 12px; padding: 11px 14px; border-radius: 10px; }

/* ── Cards ────────────────────────────────────────────────────────────────── */
.card { padding: 20px; }
.ct   { font-size: 14px; }
.cs   { font-size: 12px; }

/* ── Tabs ─────────────────────────────────────────────────────────────────── */
.tab   { font-size: 13px; padding: 7px 15px; }
.stab  { font-size: 13px; padding: 7px 15px; }

/* ── Lang bar ─────────────────────────────────────────────────────────────── */
.lbl-lbl { font-size: 10px; }
.ltab    { font-size: 12px; padding: 5px 12px; }

/* ── Toggle ───────────────────────────────────────────────────────────────── */
.tl { font-size: 13px; }

/* ── Pagination ───────────────────────────────────────────────────────────── */
.pagination li a,
.pagination li span {
  min-width: 34px;
  height: 34px;
  font-size: 13px;
  padding: 0 10px;
  border-radius: 9px;
}

/* ── Modals ───────────────────────────────────────────────────────────────── */
.modal-hd-title  { font-size: 17px; }
.modal-hd-sub    { font-size: 12px; }
.modal-title     { font-size: 17px; }
.modal-text      { font-size: 13px; }
.modal-btns .btn { padding: 10px; font-size: 13px; }

/* ── Upload zone ──────────────────────────────────────────────────────────── */
.upload-zone-title { font-size: 14px; }
.upload-zone-hint  { font-size: 11px; }

/* ── Notification items ───────────────────────────────────────────────────── */
.notify-item { font-size: 13px; padding: 11px 14px; }

/* ── dt-s2 dropdown ───────────────────────────────────────────────────────── */
.dt-s2-opt { font-size: 13px; padding: 9px 13px; }

/* ── Site switcher ────────────────────────────────────────────────────────── */
.ss-it-n { font-size: 13px; }
.ss-it-m { font-size: 11px; }
.ss-name { font-size: 12px; }

/* ── Lang segment in sidebar ──────────────────────────────────────────────── */
.ls-item { font-size: 11px; padding: 6px 0; }

/* ── Help block ───────────────────────────────────────────────────────────── */
.help-block { font-size: 12px; }

/* ══════════════════════════════════════════════════════════════════════════
   MOBILE (≤ 900px) — widened from 768px: a phone rotated to landscape (e.g.
   Samsung A55, ~780-800px logical width in landscape) sat just above 768px,
   so it fell into the "desktop" bucket instead — hamburger hidden, sidebar
   forced open at a fixed 220px, content never given the mobile layout at all.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  /* Prevent iOS zoom on inputs */
  .fi, input, select, textarea { font-size: 16px !important; }
  .fi-sm { font-size: 14px !important; }

  /* Buttons */
  .btn    { padding: 10px 16px; font-size: 14px; }
  .btn.sm { padding: 8px 13px; font-size: 13px; }
  .btn.xs { padding: 7px 11px; font-size: 12px; }

  /* Profile card buttons */
  .p-acts { flex-wrap: wrap; gap: 5px; }
  .p-acts .btn { font-size: 12px; padding: 7px 10px; }
  .p-name { font-size: 15px; }

  /* Tables */
  .tscr tbody td { padding: 12px 10px; font-size: 13px; }

  /* Badges */
  .badge { font-size: 12px; padding: 4px 10px; }

  /* Pagination */
  .pagination li a,
  .pagination li span { min-width: 38px; height: 38px; font-size: 14px; }

  /* Modals */
  .dt-modal-box { padding: 20px 16px; border-radius: 16px; }
  .modal-hd-title { font-size: 16px; }
  .modal-btns { flex-direction: column; gap: 8px; }
  .modal-btns .btn { padding: 12px; font-size: 14px; }

  /* Forms */
  .fl { font-size: 13px; }
  .fg { margin-bottom: 18px; }

  /* Content */
  .content { gap: 12px; }

  /* Stats cards: 2 col on tablet */
  .stats-cards-grid { grid-template-columns: 1fr 1fr; }
  .mg { grid-template-columns: 1fr 1fr; gap: 10px; }

  /* Profile grid: 2 col */
  .prof-grid { grid-template-columns: 1fr 1fr; }

  /* Upload zone bigger text */
  .upload-zone { padding: 24px 16px; }
  .upload-zone-title { font-size: 15px; }
}

@media (max-width: 480px) {
  .mg { grid-template-columns: 1fr; }
  .stats-cards-grid { grid-template-columns: 1fr 1fr; }
  .prof-grid { grid-template-columns: 1fr; }

  .ptitle { font-size: 18px; }
  .ph { gap: 10px; }

  .dt-modal-bg { padding: 12px 8px 24px; }
  .dt-modal-box { border-radius: 14px; }
}

@media (max-width: 360px) {
  .stats-cards-grid { grid-template-columns: 1fr; }
}
