:root{--bg:#f5f7fb;--card:#fff;--text:#142033;--muted:#718096;--line:#e7ebf2;--blue:#2157d5;--blue2:#1747b5;--green:#16845b;--red:#c43c3c;--amber:#a66a0a;--shadow:0 12px 30px rgba(30,55,90,.08)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--blue);text-decoration:none}.shell{min-height:100vh}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;font-weight:800}.mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#1f5be0,#173d96);display:grid;place-items:center;color:#fff;font-weight:900}.nav{display:flex;gap:6px;flex-wrap:wrap}.nav a{padding:9px 12px;border-radius:10px;color:#50607a;font-weight:650}.nav a.active,.nav a:hover{background:#eef3ff;color:var(--blue)}.main{max-width:1240px;margin:0 auto;padding:28px}.hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.hero h1{margin:0 0 6px;font-size:30px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:20px}.stat b{font-size:29px;display:block;margin-top:8px}.section{margin-top:18px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.section h2{margin:0;font-size:19px}.pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:750;background:#edf2fa;color:#53627a}.pill.ok{background:#e8f7f0;color:var(--green)}.pill.bad{background:#ffeded;color:var(--red)}.pill.warn{background:#fff5df;color:var(--amber)}label{display:block;font-size:13px;font-weight:700;margin:10px 0 6px}input,select{width:100%;padding:12px 13px;border:1px solid #dce2ec;border-radius:11px;background:#fff;color:var(--text);outline:none}input:focus,select:focus{border-color:#84a8ff;box-shadow:0 0 0 3px #e9f0ff}.btn,button{border:0;border-radius:11px;padding:11px 14px;font-weight:750;cursor:pointer;background:var(--blue);color:#fff}.btn:hover,button:hover{background:var(--blue2)}.btn.secondary{background:#edf2fa;color:#35445b}.btn.danger{background:#fff0f0;color:var(--red)}.actions{display:flex;gap:8px;flex-wrap:wrap}.notice{padding:14px 16px;border-radius:13px;margin:0 0 16px;border:1px solid}.notice.ok{background:#effaf5;border-color:#c8eddc;color:#126747}.notice.err{background:#fff3f3;border-color:#f0cccc;color:#9d3030}.notice.info{background:#f2f6ff;border-color:#d9e4ff;color:#36558c}.keybox{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#101827;color:#dce7ff;border-radius:12px;padding:14px;word-break:break-all;margin-top:10px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;background:#fff;min-width:760px}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{background:#f9fafc;color:#69768b;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.bar{height:8px;background:#edf0f5;border-radius:99px;overflow:hidden;min-width:100px}.bar span{display:block;height:100%;background:var(--blue);border-radius:99px}.login-wrap,.install-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:30px}.install-card{width:min(860px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:30px}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.check{padding:10px 12px;border-radius:10px;background:#f7f9fc;font-size:13px}.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}.small{font-size:12px}.code{font-family:ui-monospace,monospace;background:#f6f8fb;border:1px solid var(--line);border-radius:10px;padding:10px;word-break:break-all}@media(max-width:900px){.grid{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.topbar{height:auto;align-items:flex-start;gap:14px;flex-direction:column;padding:16px 20px}.nav{width:100%}.main{padding:20px}.hero{flex-direction:column}}@media(max-width:560px){.grid{grid-template-columns:1fr}.split,.checks{grid-template-columns:1fr}.main{padding:14px}.card{padding:16px}.hero h1{font-size:25px}}
.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:16px}.quick{display:flex;flex-direction:column;gap:5px;color:var(--text);transition:.18s ease}.quick:hover{transform:translateY(-2px);border-color:#cdd9f2}.quick span{color:var(--muted);font-size:13px}.slot-example{display:grid;grid-template-columns:1fr auto;gap:11px;padding:14px;background:#f8fafc;border:1px solid var(--line);border-radius:13px}.slot-example b{color:var(--blue)}.empty{display:flex;flex-direction:column;gap:6px;text-align:center;padding:38px}.server-toolbar{display:grid;grid-template-columns:1fr 280px;gap:12px}.searchbox{display:flex;align-items:center;border:1px solid #dce2ec;border-radius:11px;background:#fff;padding-left:12px}.searchbox span{font-size:20px;color:#8290a6}.searchbox input{border:0;box-shadow:none!important}.server-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.server-card{border:1px solid var(--line);border-radius:15px;padding:16px;background:#fff;transition:.18s ease}.server-card:hover{border-color:#c9d7f4;box-shadow:0 8px 24px rgba(30,55,90,.08);transform:translateY(-1px)}.server-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.flag{font-size:28px;line-height:1}.server-host{font-weight:700;margin-top:16px;word-break:break-all}.server-ip{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);font-size:12px;margin-top:4px}.server-use{display:inline-block;margin-top:14px;font-size:13px;font-weight:750}.date-stat{font-size:23px!important}.selected-server{display:flex;flex-direction:column;gap:3px;background:#f6f8fb;border:1px solid var(--line);border-radius:12px;padding:12px;margin:14px 0}.selected-server:empty{display:none}.selected-server span{color:var(--muted);font-size:12px}.checkline{display:flex;gap:9px;align-items:center}.checkline input{width:auto;margin:0}@media(max-width:1000px){.server-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.server-toolbar,.quick-links{grid-template-columns:1fr}.server-grid{grid-template-columns:1fr}}

/* v1.2 - acceso propio de clientes */
.credential-box{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;background:#fff;border:1px solid #cfe7d6;border-radius:14px;padding:14px}.credential-box>div{display:flex;flex-direction:column;gap:4px}.credential-box span{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.credential-box b{font-size:18px;word-break:break-all}.credential-box small{grid-column:1/-1;color:#64748b}.legacy-key{margin-top:10px}.legacy-key summary{cursor:pointer;color:#52637a;font-size:13px}.inline-login-form{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.inline-login-form input[name=login_username]{width:130px;min-width:110px;margin:0;padding:8px 10px}.mini-details{font-size:12px;color:#64748b}.mini-details summary{cursor:pointer}.mini-details>div{padding:8px;border:1px solid #e6eaf0;border-radius:10px;margin-top:6px}.flow-mini{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;align-items:center}.flow-mini b{color:#142033}.flow-mini span{color:#64748b;font-size:13px}.flow-mini i{grid-column:1/-1;color:#94a3b8;font-style:normal;padding-left:10px}.client-body{background:#f4f7fb;min-height:100vh}.client-shell{width:min(920px,calc(100% - 28px));margin:0 auto;padding:38px 0 60px}.client-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.client-brand>div:last-child{display:flex;flex-direction:column}.client-brand span{color:#718096;font-size:13px}.client-card{background:#fff;border:1px solid #e5eaf1;box-shadow:0 18px 50px rgba(29,45,75,.07);border-radius:22px;padding:28px}.client-card h1{font-size:30px;margin:7px 0}.client-card form{max-width:520px}.client-kicker{font-size:11px;font-weight:800;letter-spacing:.13em;color:#2563eb}.hidden{display:none!important}.client-account-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.client-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.client-stats>div{border:1px solid #e7ebf2;background:#f9fbfd;border-radius:15px;padding:15px;display:flex;flex-direction:column;gap:5px}.client-stats span{color:#64748b;font-size:12px}.client-stats b{font-size:20px}.client-server-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px;max-height:520px;overflow:auto}.client-server{display:flex;align-items:center;gap:11px;border:1px solid #e7ebf2;border-radius:14px;padding:12px}.client-server .flag{font-size:24px}.client-server>div{display:flex;flex:1;min-width:0;flex-direction:column}.client-server>div b,.client-server>div span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-server>div span{font-size:12px;color:#718096}.empty-inline{padding:24px;color:#718096;text-align:center;grid-column:1/-1}@media(max-width:700px){.credential-box,.client-stats,.client-server-list{grid-template-columns:1fr}.client-account-head{flex-direction:column}.client-card{padding:20px}.inline-login-form input[name=login_username]{width:100%}}

/* v1.3 - portal profesional de cliente */
.client-v13{background:#f6f8fb;color:#172033}.client-app{min-height:100vh;display:flex;flex-direction:column}.client-topbar{background:#fff;border-bottom:1px solid #e8edf4;position:sticky;top:0;z-index:30}.client-topbar-inner{max-width:1180px;margin:0 auto;height:74px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.client-logo{display:flex;align-items:center;gap:12px;color:#172033}.client-logo>span:last-child{display:flex;flex-direction:column}.client-logo b{font-size:15px;letter-spacing:-.01em}.client-logo small{font-size:12px;color:#7a879b;margin-top:2px}.client-logo-mark{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#1f56d8;color:#fff;box-shadow:0 10px 22px rgba(31,86,216,.22)}.client-logo-mark svg{width:23px;height:23px}.client-top-actions{display:flex;align-items:center;gap:12px}.connection-status{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:750;color:#267657;background:#eff9f4;border:1px solid #d6eee2;border-radius:999px;padding:7px 10px}.connection-status i,.server-online i{width:7px;height:7px;background:#25a06b;border-radius:50%;box-shadow:0 0 0 3px rgba(37,160,107,.12)}.client-ghost{background:#f4f6fa!important;color:#435066!important;border:1px solid #e3e8ef}.client-ghost:hover{background:#eceff5!important}.client-main{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:34px 0 54px;flex:1}.client-login-panel{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);gap:36px;align-items:center;min-height:calc(100vh - 165px)}.client-login-copy{padding:26px 10px}.client-login-copy h1{font-size:clamp(40px,6vw,64px);line-height:1.02;letter-spacing:-.045em;margin:10px 0 18px;max-width:680px}.client-login-copy>p{font-size:17px;line-height:1.65;color:#6b778c;max-width:650px}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:850;color:#2458c9}.login-feature-list{display:grid;gap:13px;margin-top:32px;max-width:590px}.login-feature-list>div{display:flex;align-items:center;gap:13px;padding:14px 0;border-top:1px solid #e8edf4}.feature-icon,.metric-icon,.device-icon{display:grid;place-items:center;flex:0 0 auto}.feature-icon{width:38px;height:38px;border:1px solid #dfe6f1;border-radius:11px;background:#fff}.feature-icon svg,.metric-icon svg,.device-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.login-feature-list span:last-child{display:flex;flex-direction:column;gap:2px}.login-feature-list b{font-size:14px}.login-feature-list small{font-size:12px;color:#7a879b}.client-login-card{background:#fff;border:1px solid #e4eaf2;border-radius:24px;padding:30px;box-shadow:0 22px 60px rgba(30,48,79,.09)}.client-login-card h2{font-size:27px;margin:12px 0 5px;letter-spacing:-.025em}.client-login-card>p{margin:0 0 20px;color:#7a879b;font-size:13px}.login-lock{width:46px;height:46px;border-radius:14px;background:#edf3ff;color:#1f56d8;display:grid;place-items:center}.login-lock svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.client-login-card input{height:48px;border-radius:12px}.password-field{position:relative}.password-field input{padding-right:72px}.pass-toggle{position:absolute;right:5px;top:5px;height:38px;background:transparent!important;color:#556379!important;padding:0 10px;font-size:12px}.client-primary{width:100%;height:49px;margin-top:18px;background:#1f56d8;border-radius:12px}.portal-form-error{margin-top:13px;padding:11px 12px;border:1px solid #f0d0d0;background:#fff4f4;color:#a13333;border-radius:11px;font-size:13px}.client-dashboard{display:flex;flex-direction:column;gap:18px}.account-hero{background:#fff;border:1px solid #e4eaf2;border-radius:22px;padding:25px 26px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 12px 36px rgba(29,49,83,.05)}.account-hero h1{font-size:31px;margin:5px 0 6px;letter-spacing:-.035em}.account-hero p{margin:0;color:#738096;font-size:13px}.dot-sep{padding:0 6px;color:#bdc6d2}.account-plan-badge{min-width:160px;background:#f5f8ff;border:1px solid #dfe8fb;border-radius:15px;padding:13px 16px;display:flex;flex-direction:column;gap:3px}.account-plan-badge span{font-size:11px;color:#718099;text-transform:uppercase;letter-spacing:.07em}.account-plan-badge b{font-size:18px;color:#1f56d8}.client-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.client-metrics article{background:#fff;border:1px solid #e4eaf2;border-radius:18px;padding:18px;display:flex;align-items:center;gap:14px}.metric-icon{width:44px;height:44px;border-radius:13px;background:#f2f5fa;color:#49617f}.client-metrics article>div{display:flex;flex-direction:column;min-width:0}.client-metrics small{font-size:11px;color:#7d899c;text-transform:uppercase;letter-spacing:.06em}.client-metrics b{font-size:21px;letter-spacing:-.02em;margin:2px 0}.client-metrics span:last-child{font-size:11px;color:#8a95a7}.client-tabs{display:flex;gap:6px;background:#fff;border:1px solid #e4eaf2;border-radius:14px;padding:5px;align-self:flex-start}.client-tab{background:transparent!important;color:#68758a!important;padding:9px 14px;font-size:13px;border-radius:9px}.client-tab.active{background:#edf3ff!important;color:#1f56d8!important}.client-tab-panel{background:#fff;border:1px solid #e4eaf2;border-radius:22px;padding:25px;box-shadow:0 12px 36px rgba(29,49,83,.04)}.portal-section-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.portal-section-head h2{font-size:25px;margin:5px 0 4px;letter-spacing:-.025em}.portal-section-head h3{margin:0 0 3px}.portal-section-head p{margin:0;color:#7b8799;font-size:13px}.portal-section-head.compact{margin-bottom:12px}.server-count,.device-limit-pill{font-size:12px;font-weight:800;color:#506079;background:#f4f6f9;border:1px solid #e6eaf0;border-radius:999px;padding:8px 11px;white-space:nowrap}.location-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 240px;gap:10px}.portal-search{height:46px;border:1px solid #dfe5ee;border-radius:12px;display:flex;align-items:center;gap:8px;padding:0 12px;background:#fff}.portal-search:focus-within{border-color:#8caef7;box-shadow:0 0 0 3px #edf3ff}.portal-search svg{width:19px;height:19px;fill:none;stroke:#8491a4;stroke-width:1.8}.portal-search input{border:0!important;box-shadow:none!important;padding:0;height:auto}.location-toolbar select{height:46px}.country-strip{display:flex;gap:8px;overflow:auto;padding:15px 1px 5px;scrollbar-width:thin}.country-chip{background:#fff!important;color:#4e5d72!important;border:1px solid #e2e7ef;border-radius:12px;display:flex;align-items:center;gap:8px;padding:8px 10px;white-space:nowrap;font-size:12px}.country-chip:hover,.country-chip.active{border-color:#b7c9ed;background:#f6f9ff!important;color:#214fae!important}.country-chip small{background:#eef2f7;border-radius:999px;padding:2px 6px;font-size:10px}.country-all-icon{width:24px;height:18px;display:grid;place-items:center}.country-all-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.real-flag{position:relative;display:inline-grid;place-items:center;overflow:hidden;background:#eef1f5;border:1px solid #dde3ea;box-shadow:0 2px 7px rgba(31,47,72,.08);flex:0 0 auto}.real-flag.lg{width:45px;height:31px;border-radius:8px}.real-flag.sm{width:28px;height:20px;border-radius:5px}.real-flag img{width:100%;height:100%;display:block;object-fit:cover}.real-flag b{position:absolute;inset:0;place-items:center;font-size:9px;letter-spacing:.04em;color:#617086}.portal-server-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:15px}.portal-server-card{border:1px solid #e2e7ef;border-radius:17px;padding:16px;background:#fff;transition:.18s ease}.portal-server-card:hover{border-color:#c5d4ef;box-shadow:0 10px 28px rgba(34,59,102,.08);transform:translateY(-1px)}.server-card-top{display:flex;align-items:center;gap:11px}.server-place{min-width:0;flex:1}.server-place h3{font-size:15px;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-place p{font-size:12px;color:#7b8798;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-online{display:flex;align-items:center;gap:6px;font-size:10px;color:#5f6e82}.server-card-meta{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.server-card-meta span{display:flex;align-items:center;gap:5px;font-size:10px;color:#758297;background:#f7f9fb;border-radius:8px;padding:6px 7px;min-width:0}.server-card-meta svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.server-download{width:100%;display:flex;justify-content:center;align-items:center;gap:8px;background:#1f56d8;border-radius:11px;font-size:12px;padding:10px 12px}.server-download svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.server-download:disabled{opacity:.55;cursor:not-allowed}.mini-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.server-more{display:flex;justify-content:center;padding-top:18px}.portal-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:44px;color:#7c899c}.portal-loading span{width:20px;height:20px;border:2px solid #d7dfeb;border-top-color:#1f56d8;border-radius:50%;animation:spin .8s linear infinite}.portal-loading p{margin:0}.portal-empty{grid-column:1/-1;padding:45px 20px;text-align:center;border:1px dashed #dfe5ed;border-radius:16px;background:#fafbfd;color:#7a8799}.portal-empty svg{width:30px;height:30px;fill:none;stroke:#8c98aa;stroke-width:1.6}.portal-empty h3{color:#344154;margin:9px 0 4px}.portal-empty p{margin:0;font-size:13px}.recent-downloads{margin-top:25px;border-top:1px solid #e8edf3;padding-top:20px}.text-button{background:transparent!important;color:#6b7890!important;padding:4px 0;font-size:12px}.recent-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.recent-item{display:flex;align-items:center;gap:10px;border:1px solid #e6ebf2;border-radius:12px;padding:10px}.recent-item>div{display:flex;flex-direction:column;min-width:0}.recent-item b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-item span{font-size:10px;color:#8490a3;margin-top:2px}.device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.device-card{display:flex;align-items:center;gap:12px;border:1px solid #e4e9f0;border-radius:15px;padding:15px}.device-icon{width:42px;height:42px;border-radius:12px;background:#f3f6fa;color:#5f708a}.device-card>div{min-width:0;flex:1}.device-card h3{font-size:14px;margin:0 0 4px}.device-card p,.device-card small{font-size:11px;color:#8290a4;margin:0}.current-device{color:#1f56d8}.device-state{font-size:10px;color:#267657;background:#eff9f4;border-radius:999px;padding:5px 8px}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.how-grid article{border:1px solid #e4e9f0;border-radius:16px;padding:18px}.how-grid article>b{font-size:11px;color:#1f56d8;letter-spacing:.08em}.how-grid h3{font-size:15px;margin:12px 0 6px}.how-grid p{font-size:12px;line-height:1.55;color:#7a879b;margin:0}.portal-note{display:flex;gap:12px;align-items:flex-start;margin-top:14px;background:#f7f9fc;border:1px solid #e5eaf1;border-radius:14px;padding:14px}.portal-note svg{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:#607089;stroke-width:1.8}.portal-note b{font-size:13px}.portal-note p{font-size:12px;line-height:1.55;color:#748196;margin:3px 0 0}.client-footer{max-width:1180px;width:calc(100% - 32px);margin:0 auto;padding:0 0 28px;display:flex;justify-content:space-between;gap:15px;color:#8a95a5;font-size:11px}.download-toast{position:fixed;right:22px;bottom:22px;background:#142033;color:#fff;border-radius:12px;padding:12px 15px;font-size:12px;font-weight:700;box-shadow:0 16px 40px rgba(17,29,48,.25);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s ease;z-index:100}.download-toast.show{opacity:1;transform:translateY(0)}.download-toast.bad{background:#9f3434}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:980px){.client-login-panel{grid-template-columns:1fr;min-height:auto}.client-login-copy{padding-bottom:0}.client-login-copy h1{font-size:46px}.client-login-card{max-width:640px}.portal-server-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.location-toolbar{grid-template-columns:1fr 1fr}.portal-search{grid-column:1/-1}.how-grid{grid-template-columns:1fr}.device-grid{grid-template-columns:1fr}}
@media(max-width:680px){.client-topbar-inner{height:auto;padding:12px 16px}.connection-status{display:none}.client-main{width:min(100% - 20px,1180px);padding-top:18px}.client-login-panel{gap:18px}.client-login-copy{padding:8px 4px}.client-login-copy h1{font-size:36px}.client-login-copy>p{font-size:14px}.login-feature-list{margin-top:22px}.client-login-card{padding:21px}.account-hero{align-items:flex-start;flex-direction:column;padding:20px}.account-plan-badge{min-width:0;width:100%}.client-metrics{grid-template-columns:1fr}.client-tabs{width:100%;overflow:auto}.client-tab{white-space:nowrap;flex:1}.client-tab-panel{padding:18px}.portal-section-head{flex-direction:column;gap:10px}.location-toolbar{grid-template-columns:1fr}.portal-search{grid-column:auto}.portal-server-grid{grid-template-columns:1fr}.recent-list{grid-template-columns:1fr}.client-footer{flex-direction:column}.download-toast{left:10px;right:10px;bottom:10px;text-align:center}}
/* v1.3 admin: banderas graficas, no emoji */
.flag.flag-image{width:42px;height:29px;border-radius:7px;border:1px solid #dfe4eb;overflow:hidden;background:#eef2f6;position:relative;display:grid;place-items:center;font-size:0}.flag.flag-image img{width:100%;height:100%;object-fit:cover;display:block}.flag.flag-image span{display:none;position:absolute;inset:0;place-items:center;font-size:9px;color:#617086;font-weight:800}.flag.flag-image img:not([src]),.flag.flag-image img[src=""]{display:none}.flag.flag-image img:not([src])+span,.flag.flag-image img[src=""]+span{display:grid}


/* VPN Reseller Pro v1.7 — banderas reales como micro-iconos */
.vpn-flag{display:inline-grid!important;place-items:center!important;position:relative!important;flex:0 0 auto!important;overflow:hidden!important;box-sizing:border-box!important;background:#eef2f6!important;border:1px solid #dfe4eb!important;box-shadow:0 1px 3px rgba(31,47,72,.08)!important;vertical-align:middle!important;line-height:1!important;padding:0!important;margin:0!important}
.vpn-flag-lg{width:24px!important;height:16px!important;min-width:24px!important;max-width:24px!important;min-height:16px!important;max-height:16px!important;border-radius:4px!important}
.vpn-flag-sm{width:18px!important;height:12px!important;min-width:18px!important;max-width:18px!important;min-height:12px!important;max-height:12px!important;border-radius:3px!important}
.vpn-flag img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;display:block!important;object-fit:cover!important;margin:0!important;padding:0!important;border:0!important}
.vpn-flag b{display:none;width:100%;height:100%;place-items:center;font-size:7px!important;letter-spacing:.02em!important;color:#5d6a7c!important;background:#f2f4f7}
.server-head .vpn-flag,.server-card-top .vpn-flag,.country-chip .vpn-flag,.recent-item .vpn-flag{position:relative!important;inset:auto!important;transform:none!important}
.password-admin-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.password-admin-field input{margin:0}.password-generate{white-space:nowrap;height:44px}.slot-helper{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;font-size:11px;color:#738096}.slot-helper b{color:#1f56d8}.inline-limit-form{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.inline-limit-form input[type=number]{width:64px;min-width:64px;margin:0;padding:8px 9px}.inline-login-form input[name=login_password]{width:150px;min-width:130px;margin:0;padding:8px 10px}
@media(max-width:700px){.vpn-flag-lg{width:22px!important;height:15px!important;min-width:22px!important;max-width:22px!important;min-height:15px!important;max-height:15px!important}.vpn-flag-sm{width:17px!important;height:11px!important;min-width:17px!important;max-width:17px!important;min-height:11px!important;max-height:11px!important}.password-admin-field{grid-template-columns:1fr}.password-generate{width:100%}.inline-login-form input[name=login_password]{width:100%}.inline-limit-form{width:100%}.inline-limit-form input[type=number]{width:80px}}

/* v1.9 WireGuard preflight */
.checks-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.checks-grid>div{border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fff}.checks-grid b{display:block;margin-bottom:5px}.checks-grid span{display:block;color:#64748b;font-size:12px;line-height:1.45}@media(max-width:900px){.checks-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.checks-grid{grid-template-columns:1fr}}


/* VPN Reseller Pro v2.1 — login cliente robusto */
.client-login-panel{
  align-items:center!important;
  min-height:max(620px,calc(100vh - 165px))!important;
}
.client-login-card.client-login-card-v21{
  display:block!important;
  position:relative!important;
  align-self:center!important;
  width:100%!important;
  max-width:505px!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding:30px!important;
  visibility:visible!important;
  opacity:1!important;
}
.client-login-card-v21 .client-login-fields,
.client-login-card-v21 .client-field,
.client-login-card-v21 label,
.client-login-card-v21 input,
.client-login-card-v21 .password-field,
.client-login-card-v21 .client-primary,
.client-login-card-v21 #loginMsg{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  max-height:none!important;
  overflow:visible!important;
}
.client-login-card-v21 .client-login-fields{margin-top:18px!important}
.client-login-card-v21 .client-field{margin:0 0 15px!important}
.client-login-card-v21 .client-field label{margin:0 0 7px!important;font-size:13px!important;font-weight:750!important;color:#26334a!important}
.client-login-card-v21 .client-field input{width:100%!important;height:50px!important;min-height:50px!important;margin:0!important;padding:0 14px!important;background:#fff!important;border:1px solid #d9e0eb!important;border-radius:12px!important;color:#172033!important;-webkit-text-fill-color:#172033!important}
.client-login-card-v21 .client-field input:focus{border-color:#7da4ff!important;box-shadow:0 0 0 3px #e9f0ff!important}
.client-login-card-v21 .password-field{position:relative!important}
.client-login-card-v21 .password-field input{padding-right:68px!important}
.client-login-card-v21 .pass-toggle{display:block!important;position:absolute!important;right:5px!important;top:6px!important;width:auto!important;height:38px!important;z-index:3!important}
.client-login-card-v21 .client-primary{width:100%!important;height:50px!important;min-height:50px!important;margin:4px 0 0!important;font-size:14px!important}
.client-device-note{display:flex!important;align-items:flex-start!important;gap:8px!important;margin-top:13px!important;padding:10px 11px!important;border:1px solid #e6ebf2!important;background:#f8fafc!important;border-radius:11px!important;color:#718096!important}
.client-device-note span{display:block!important;width:7px!important;height:7px!important;min-width:7px!important;border-radius:50%!important;background:#2d6cdf!important;margin-top:5px!important}
.client-device-note p{margin:0!important;font-size:11px!important;line-height:1.45!important}
.client-login-card-v21 .portal-form-error{display:block!important;margin-top:12px!important}
@media(max-width:980px){
  .client-login-panel{min-height:0!important;align-items:start!important}
  .client-login-card.client-login-card-v21{justify-self:center!important;margin:4px auto 26px!important}
}
@media(max-width:680px){
  .client-login-card.client-login-card-v21{padding:22px!important;border-radius:20px!important;max-width:100%!important}
  .client-login-card-v21 h2{font-size:24px!important}
}


/* v3.0 — WG Edge + demos */
.edge-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.edge-status-grid>div{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fafbfc}.edge-status-grid span{display:block;color:var(--muted);font-size:12px}.edge-status-grid b{display:block;margin-top:4px;font-size:14px}.secret-box{padding:12px;border-radius:12px;background:#0b1220;color:#e5eefb;overflow:auto}.secret-box code{white-space:nowrap}.check-line{display:flex!important;align-items:flex-start;gap:10px;margin:14px 0}.check-line input{width:auto!important;margin-top:3px}.edge-client-panel{min-height:150px}.edge-tunnel-card{display:flex;justify-content:space-between;gap:20px;align-items:center;border:1px solid #e5e7eb;border-radius:18px;padding:20px;background:#fff}.edge-tunnel-card h3{margin:10px 0 5px}.edge-tunnel-card p{margin:5px 0;color:var(--muted)}.edge-tunnel-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.edge-ok{background:#ecfdf5!important;color:#047857!important}.pill.warn{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.client-tab-panel code{font-size:.92em}.demo-countdown{font-variant-numeric:tabular-nums}
@media(max-width:760px){.edge-status-grid{grid-template-columns:1fr}.edge-tunnel-card{align-items:flex-start;flex-direction:column}.edge-tunnel-actions{width:100%}.edge-tunnel-actions .client-primary,.edge-tunnel-actions .btn{width:100%}}


/* v3.1 — banderas visibles + descarga cliente robusta */
.vpn-flag{background-image:none!important;background-color:#eef2f6!important}
.vpn-flag>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:100%!important;max-width:100%!important;min-height:100%!important;max-height:100%!important;display:block!important;object-fit:cover!important;margin:0!important;padding:0!important;border:0!important}
.vpn-flag>b{display:none;position:absolute;inset:0;width:100%;height:100%;place-items:center;font-size:7px!important;letter-spacing:.02em!important;color:#5d6a7c!important;background:#f2f4f7!important}
.vpn-flag.vpn-flag-fallback>b{display:grid!important}
.server-download:disabled{cursor:wait!important;opacity:.72!important}
