/* TG MobSoft — CSS Principal v3 — Inter font, nítido, dark/light, responsivo */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
:root{--ac:#e63946;--ac2:#c1121f;--bg:#f4f4f4;--bg2:#fff;--bg3:#f7f7f7;--nav:#1a1a1a;--hdr:#111;--border:#dde1e7;--border2:#eee;--text:#111;--text2:#3a3a3a;--text3:#777;--text4:#aaa;--success:#2e7d32;--warn:#e65100;--inp:#fff;--shadow:0 3px 12px rgba(0,0,0,.09);--r:6px;--rl:10px;--fs:16px;--fsm:15px;--fsx:14px;--fsxx:13px;--max-w:1200px}
html.dark{--bg:#0e0e0e;--bg2:#1c1c1c;--bg3:#242424;--border:#2e2e2e;--border2:#222;--text:#efefef;--text2:#ccc;--text3:#888;--text4:#555;--inp:#242424;--shadow:0 2px 8px rgba(0,0,0,.35)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:var(--fs);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;font-size:var(--fs);line-height:1.65;background:var(--bg);color:var(--text);transition:background .25s,color .25s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:var(--ac);text-decoration:none}
a:hover{text-decoration:underline;opacity:.85}
img{max-width:100%}
button,input,select,textarea{font-family:inherit}

/* TOPBAR */
.topbar{background:var(--hdr);padding:6px 18px;display:flex;justify-content:space-between;align-items:center;font-size:var(--fsxx);color:#888;flex-wrap:wrap;gap:4px;border-bottom:1px solid #222}
.topbar a{color:#ccc}
.tb-l{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.tb-r{display:flex;gap:10px;align-items:center}
.status-ok{color:#2e7d32!important;font-weight:600}
.th-tog{display:flex;align-items:center;gap:7px;background:#1d1d1d;border:1px solid #333;border-radius:20px;padding:4px 12px;cursor:pointer;font-size:var(--fsx);color:#aaa}
.th-tog:hover{border-color:var(--ac)}
.sw-tr{width:34px;height:18px;background:#444;border-radius:10px;position:relative;transition:background .2s;flex-shrink:0}
.sw-tr.on{background:var(--ac)}
.sw-th{width:14px;height:14px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.sw-tr.on .sw-th{left:18px}
.topbar-btn{background:var(--ac);color:#fff;padding:4px 12px;border-radius:var(--r);font-size:var(--fsxx);font-weight:700}

/* HEADER */
.header{background:var(--hdr);padding:12px 20px;display:flex;align-items:center;gap:16px;border-bottom:3px solid var(--ac);flex-wrap:wrap}
.logo-a{display:flex;align-items:center;gap:11px;min-width:180px;text-decoration:none}
.logo-sq{width:42px;height:42px;background:var(--ac);border-radius:var(--rl);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-sq i{font-size:23px;color:#fff}
.logo-nm{font-size:19px;font-weight:700;color:#fff;line-height:1.1}
.logo-nm em{color:var(--ac);font-style:normal}
.logo-tg{font-size:11px;color:#666;letter-spacing:2px;text-transform:uppercase;margin-top:3px}
.hdr-srch{flex:1;display:flex;min-width:200px;max-width:560px}
.hdr-srch input{flex:1;background:#1a1a1a;border:1px solid #333;border-right:none;color:#eee;padding:8px 13px;font-size:var(--fsm);outline:none;border-radius:var(--r) 0 0 var(--r)}
.hdr-srch input::placeholder{color:#555}
.hdr-srch input:focus{border-color:var(--ac)}
.hdr-srch button{background:var(--ac);border:none;color:#fff;padding:11px 18px;font-size:18px;cursor:pointer;border-radius:0 var(--r) var(--r) 0}
.hdr-act{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.btn-ln{background:none;border:1px solid #444;color:#bbb;padding:9px 18px;font-size:var(--fsx);border-radius:var(--r);cursor:pointer}
.btn-ln:hover{border-color:var(--ac);color:#fff}
.btn-rg{background:var(--ac);border:none;color:#fff;padding:9px 18px;font-size:var(--fsx);border-radius:var(--r);cursor:pointer;font-weight:700}
.btn-rg:hover{background:var(--ac2)}
.btn-dash,.btn-admin{background:#222;border:1px solid #333;color:#ccc;padding:9px 16px;font-size:var(--fsx);border-radius:var(--r);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.btn-dash:hover,.btn-admin:hover{background:#333;color:#fff;text-decoration:none}
.bal-display{color:var(--success);font-weight:700;font-size:var(--fsm)}

/* NAV */
.nav{background:var(--nav);display:flex;align-items:stretch;border-bottom:1px solid #2a2a2a;overflow-x:auto}
.nav::-webkit-scrollbar{height:2px}
.nav::-webkit-scrollbar-thumb{background:var(--ac)}
.nav-it{color:#aaa;font-size:var(--fsx);padding:11px 16px;cursor:pointer;display:flex;align-items:center;gap:7px;border-bottom:3px solid transparent;white-space:nowrap;transition:color .15s,background .15s;text-decoration:none}
.nav-it:hover{color:#fff;background:rgba(255,255,255,.06);text-decoration:none}
.nav-it.act{color:#fff;border-bottom-color:var(--ac);font-weight:700}
.nav-end{margin-left:auto;display:flex;align-items:center}
.nav-hot{background:var(--ac)!important;color:#fff!important;font-weight:700;border-bottom:3px solid var(--ac2)!important}
.nav-hb{display:none;background:none;border:1px solid #444;color:#999;padding:8px 12px;cursor:pointer;border-radius:var(--r);font-size:20px;margin:5px 12px}

/* TICKER */
.ticker{background:var(--ac);padding:6px 18px;font-size:var(--fsx);color:#fff;display:flex;align-items:center;gap:10px;overflow:hidden}
.ticker-tag{background:#fff;color:var(--ac);font-weight:700;font-size:10px;padding:2px 8px;border-radius:2px;flex-shrink:0}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg2);border-bottom:1px solid var(--border)}
.stat{padding:14px 16px;text-align:center;border-right:1px solid var(--border2)}
.stat:last-child{border-right:none}
.stat-n{font-size:22px;font-weight:700;color:var(--ac)}
.stat-l{font-size:var(--fsx);color:var(--text3);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}

/* FLASH */
.flash{padding:12px 18px;display:flex;align-items:center;gap:10px;font-size:var(--fsm);border-bottom:1px solid transparent}
.flash-success{background:#e8f5e9;color:#1b5e20;border-color:#c8e6c9}
.flash-error{background:#ffebee;color:#b71c1c;border-color:#ffcdd2}
.flash-info{background:#e3f2fd;color:#0d47a1;border-color:#bbdefb}
.flash-close{background:none;border:none;cursor:pointer;margin-left:auto;color:inherit;font-size:18px;line-height:1}

/* PAGE WRAP */
html,body{overflow-x:hidden;max-width:100%}
.page-wrap{min-height:65vh;overflow-x:hidden}
.layout{display:grid;grid-template-columns:240px 1fr;min-height:600px}
.layout>*{min-width:0}
.main-content{background:var(--bg);padding:16px;min-width:0;overflow-x:hidden}
.inner-wrap{padding:16px 20px;max-width:var(--max-w);margin:0 auto;width:100%}

/* Alinha TODAS as barras e o conteúdo à mesma largura centrada */
.topbar,.header,.nav,.stats,.layout,.cs-strip,.footer,.footer-bot{
  max-width:var(--max-w);margin-left:auto;margin-right:auto;width:100%
}

/* Limita largura máxima de secções específicas para melhor leitura */
.auth-box{max-width:520px}
.form-narrow{max-width:680px;margin:0 auto}

/* SIDEBAR */
.sb{background:var(--bg2);border-right:1px solid var(--border)}
.sb-sec{border-bottom:1px solid var(--border)}
.sb-hd{background:var(--bg3);padding:8px 14px;font-size:var(--fsxx);font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.7px;border-bottom:1px solid var(--border);border-left:3px solid var(--ac);display:flex;align-items:center;gap:6px}
.sb-hd i{color:var(--ac);font-size:14px}
.sb-ul{list-style:none}
.sb-ul li a{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;color:var(--text2);font-size:var(--fsx);border-bottom:1px solid var(--border2);transition:background .1s;text-decoration:none}
.sb-ul li a:hover,.sb-ul li a.on{background:var(--bg3);color:var(--ac);text-decoration:none;border-left:3px solid var(--ac);padding-left:11px}
.sb-ul li a.on{font-weight:700}
.cnt{background:var(--bg3);color:var(--text3);font-size:10px;padding:1px 7px;border-radius:10px;border:1px solid var(--border)}
.lbl-f{background:#e8f5e9;color:#2e7d32;font-size:10px;padding:1px 6px;border-radius:2px;font-weight:700}
.lbl-p{background:#fff3e0;color:#e65100;font-size:10px;padding:1px 6px;border-radius:2px;font-weight:700}
.lbl-h{background:#ffebee;color:var(--ac);font-size:10px;padding:1px 6px;border-radius:2px;font-weight:700}

/* CRUMB */
.crumb{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:7px 12px;font-size:var(--fsx);color:var(--text3);margin-bottom:12px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.crumb a{color:var(--ac)}

/* CARDS */
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);margin-bottom:16px;overflow:hidden;box-shadow:var(--shadow)}
.card-head{background:var(--bg3);border-bottom:1px solid var(--border);padding:11px 16px;font-size:var(--fsm);font-weight:700;color:var(--text);display:flex;align-items:center;justify-content:space-between}
.card-head i{color:var(--ac);margin-right:7px}
.card-body{padding:16px}

/* BAL BAR */
.bal-bar{background:#111;border-radius:var(--rl);padding:12px 16px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.bal-l{display:flex;align-items:center;gap:12px}
.bal-ic{width:40px;height:40px;background:var(--ac);border-radius:var(--rl);display:flex;align-items:center;justify-content:center}
.bal-ic i{color:#fff;font-size:20px}
.bal-lbl{font-size:var(--fsxx);color:#777;text-transform:uppercase;letter-spacing:.5px}
.bal-amt{font-size:24px;font-weight:700;color:#fff;line-height:1.1}
.bal-r{display:flex;gap:8px}
.bal-btn{font-size:var(--fsx);padding:7px 14px;border-radius:var(--r);cursor:pointer;border:none;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.bal-add{background:var(--ac);color:#fff}
.bal-add:hover{background:var(--ac2);color:#fff;text-decoration:none}
.bal-his{background:#222;color:#aaa;border:1px solid #333}

/* PAY BAR */
.pay-bar{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:10px 14px;margin-bottom:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pay-lbl{font-size:var(--fsx);font-weight:700;color:var(--text);white-space:nowrap}
.pay-chip{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:5px 12px;font-size:var(--fsx);color:var(--text2);font-weight:700;display:flex;align-items:center;gap:5px}

/* FILTER */
.filter-row{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:10px 14px;margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fl{font-size:var(--fsx);color:var(--text3);font-weight:700;white-space:nowrap}
.fb{font-size:var(--fsx);padding:5px 13px;border-radius:var(--r);cursor:pointer;border:1px solid var(--border);background:var(--bg3);color:var(--text3);transition:all .15s}
.fb:hover,.fb.on{background:var(--ac);color:#fff;border-color:var(--ac)}
.fsrch input{background:var(--bg3);border:1px solid var(--border);padding:6px 12px;font-size:var(--fsx);border-radius:var(--r);outline:none;width:180px;color:var(--text)}
.fsrch input:focus{border-color:var(--ac)}

/* SERVICE GROUPS */
.grp{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);margin-bottom:12px;overflow:hidden;box-shadow:var(--shadow)}
.grp-hd{padding:11px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;background:var(--bg3);border-bottom:1px solid var(--border);user-select:none}
.grp-hd:hover{background:var(--bg2)}
.grp-l{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.grp-n{background:var(--text);color:var(--bg2);font-size:var(--fsx);font-weight:700;padding:3px 10px;border-radius:4px;min-width:28px;text-align:center}
.grp-title{font-size:16px;font-weight:700;color:var(--text)}
.grp-cnt{font-size:var(--fsxx);color:var(--text3);margin-left:3px}
.grp-r{display:flex;align-items:center;gap:8px;flex-shrink:0}

/* TABLE */
.tbl{width:100%;border-collapse:collapse;font-size:var(--fsx)}
.tbl thead tr{background:var(--bg3)}
.tbl th{padding:9px 12px;color:var(--text3);font-size:var(--fsx);font-weight:700;text-transform:uppercase;letter-spacing:.4px;text-align:left;border-bottom:2px solid var(--border);white-space:nowrap}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--border2);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:var(--bg3)}
.sn{font-weight:700;color:var(--text);font-size:var(--fsm);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sn i{font-size:15px;color:var(--ac);flex-shrink:0}
.ss{font-size:var(--fsx);color:var(--text3);margin-top:4px;line-height:1.4}
.star{color:#f0a500;font-size:12px}
.p-col{font-weight:700;color:var(--success);font-size:var(--fsm);white-space:nowrap}
.t-col{color:var(--text3);font-size:var(--fsx);white-space:nowrap}
.on-dot{color:var(--success);font-size:var(--fsx);font-weight:700;white-space:nowrap}

/* BADGES */
.b-hot{background:#ffebee;color:#c62828;font-size:10px;padding:2px 6px;border-radius:2px;font-weight:700;flex-shrink:0}
.b-new{background:#e8f5e9;color:#2e7d32;font-size:10px;padding:2px 6px;border-radius:2px;font-weight:700;flex-shrink:0}
.b-fast{background:#e3f2fd;color:#1565c0;font-size:10px;padding:2px 6px;border-radius:2px;font-weight:700;flex-shrink:0}
.b-instant,.b-ins{background:#f3e5f5;color:#6a1b9a;font-size:10px;padding:2px 6px;border-radius:2px;font-weight:700;flex-shrink:0}
.ord-btn{background:var(--ac);border:none;color:#fff;padding:8px 18px;font-size:var(--fsx);font-weight:700;border-radius:var(--r);cursor:pointer;white-space:nowrap;transition:background .15s}
.ord-btn:hover{background:var(--ac2)}

/* FILES */
.file-row{display:grid;grid-template-columns:70px 1fr auto;gap:14px;padding:18px 22px;border-bottom:1px solid var(--border2);align-items:center}
.file-row:last-child{border-bottom:none}
.file-row:hover{background:var(--bg3)}
.ft{width:60px;height:44px;background:var(--text);border-radius:var(--r);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;flex-shrink:0}
.fb2{font-size:10px;font-weight:700;text-transform:uppercase}
.fc{font-size:9px;color:#888}
.ftit{font-size:var(--fsx);color:var(--text);font-weight:700;line-height:1.35;margin-bottom:3px;cursor:pointer}
.ftit:hover{color:var(--ac)}
.fmeta{font-size:var(--fsxx);color:var(--text3);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ftags{margin-top:4px;display:flex;gap:4px;flex-wrap:wrap}
.tag{font-size:10px;padding:1px 6px;border-radius:2px;border:1px solid;font-weight:600}
.t-r{color:#c62828;border-color:#ffcdd2;background:#ffebee}
.t-b{color:#1565c0;border-color:#bbdefb;background:#e3f2fd}
.t-g{color:#2e7d32;border-color:#c8e6c9;background:#e8f5e9}
.t-gr{color:#666;border-color:#e0e0e0;background:#f5f5f5}
.t-o{color:#e65100;border-color:#ffe0b2;background:#fff3e0}
.fa2{display:flex;flex-direction:column;gap:5px;align-items:flex-end;flex-shrink:0}
.fsz{font-size:var(--fsxx);color:var(--text3);white-space:nowrap}
.dl-f{background:#e8f5e9;border:1px solid #c8e6c9;color:#2e7d32;padding:5px 12px;font-size:var(--fsxx);cursor:pointer;border-radius:var(--r);font-weight:700;white-space:nowrap}
.dl-f:hover{background:#2e7d32;color:#fff}
.dl-p{background:#fff3e0;border:1px solid #ffe0b2;color:#e65100;padding:5px 12px;font-size:var(--fsxx);cursor:pointer;border-radius:var(--r);font-weight:700;white-space:nowrap}
.dl-p:hover{background:#e65100;color:#fff}

/* SOFTWARES */
.soft-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:16px}
.soft-c{background:var(--bg3);border:1px solid var(--border);border-radius:var(--rl);padding:16px;display:flex;gap:14px;align-items:flex-start}
.si{width:48px;height:48px;border-radius:var(--rl);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.si i{font-size:24px}
.sn2{font-size:var(--fsm);color:var(--text);font-weight:700;margin-bottom:3px}
.sv{font-size:var(--fsx);color:var(--text3);margin-bottom:8px}
.sd{font-size:var(--fsx);padding:6px 12px;border-radius:var(--r);cursor:pointer;border:none;font-weight:700}
.sd-f{background:#e8f5e9;color:#2e7d32}
.sd-p{background:#fff3e0;color:#e65100}

/* PLANS */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:18px}
.plan{border:1px solid var(--border);border-radius:var(--rl);padding:22px;background:var(--bg3)}
.plan.feat{border-color:var(--ac);border-width:2px;background:var(--bg2);box-shadow:0 4px 16px rgba(230,57,70,.12)}
.plan-badge{background:var(--ac);color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:12px;display:inline-block;margin-bottom:8px}
.plan-nm{font-size:18px;font-weight:700;color:var(--text);margin-bottom:6px}
.plan-pr{font-size:34px;font-weight:700;color:var(--ac);margin-bottom:2px;line-height:1}
.plan-pe{font-size:var(--fsx);color:var(--text3);margin-bottom:16px}
.plan-fl{list-style:none;margin-bottom:16px}
.plan-fl li{font-size:var(--fsm);color:var(--text2);padding:6px 0;border-bottom:1px solid var(--border2);display:flex;align-items:center;gap:7px}
.plan-fl li.no{color:var(--text3)}
.plan-fl li i{font-size:14px}
.plan-btn{width:100%;background:var(--bg2);border:1px solid var(--border);color:var(--text3);padding:11px;font-size:var(--fsm);cursor:pointer;border-radius:var(--r);font-weight:700;transition:all .15s}
.plan-btn:hover{background:var(--ac);color:#fff;border-color:var(--ac)}
.plan.feat .plan-btn{background:var(--ac);border:none;color:#fff}

/* FORMS */
.form-group{margin-bottom:20px}
.form-group label{display:block;font-size:var(--fsx);font-weight:700;color:var(--text2);margin-bottom:7px}
.form-group input,.form-group select,.form-group textarea{width:100%;background:var(--inp);border:1px solid var(--border);color:var(--text);padding:10px 13px;font-size:var(--fsm);border-radius:var(--r);outline:none;transition:border-color .15s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(230,57,70,.1)}
.form-group small{font-size:var(--fsxx);color:var(--text3);margin-top:5px;display:block}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:42px}
.pw-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text3);cursor:pointer;font-size:17px;padding:4px}
.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:var(--fsx);color:var(--text2)}
.checkbox-label input[type=checkbox]{width:auto;accent-color:var(--ac)}
.btn-submit{width:100%;background:var(--ac);border:none;color:#fff;padding:12px;font-size:var(--fsm);font-weight:700;cursor:pointer;border-radius:var(--r);display:flex;align-items:center;justify-content:center;gap:8px;transition:background .15s}
.btn-submit:hover{background:var(--ac2)}
.btn-submit:disabled{opacity:.6;cursor:not-allowed}
.btn-cancel{background:var(--bg3);border:1px solid var(--border);color:var(--text2);padding:12px;font-size:var(--fsx);cursor:pointer;border-radius:var(--r)}
.btn-secondary{background:none;border:1px solid var(--ac);color:var(--ac);padding:8px 16px;font-size:var(--fsx);border-radius:var(--r);cursor:pointer;font-weight:700}
.btn-secondary:hover{background:var(--ac);color:#fff}

/* ALERTS */
.alert-errors{background:#ffebee;border:1px solid #ffcdd2;border-radius:var(--r);padding:12px 14px;margin-bottom:16px;color:#b71c1c;font-size:var(--fsx)}
.alert-errors div{display:flex;align-items:flex-start;gap:6px;padding:3px 0;line-height:1.4}
.alert-success{background:#e8f5e9;border:1px solid #c8e6c9;border-radius:var(--r);padding:14px;color:#1b5e20;font-size:var(--fsx);display:flex;align-items:flex-start;gap:8px}
.notice-box{background:#fff3e0;border:1px solid #ffe0b2;border-radius:var(--r);padding:10px 12px;font-size:var(--fsx);color:#e65100;display:flex;align-items:flex-start;gap:7px;margin-top:10px;line-height:1.5}
.login-notice{background:#e3f2fd;border:1px solid #bbdefb;border-radius:var(--r);padding:12px 16px;font-size:var(--fsx);color:#1565c0;margin-bottom:12px}
.info-box{background:#e3f2fd;border:1px solid #bbdefb;border-radius:var(--r);padding:12px 14px;font-size:var(--fsx);color:#1565c0;margin-bottom:12px;display:flex;align-items:flex-start;gap:8px}

/* AUTH */
.auth-wrap{display:flex;justify-content:center;align-items:flex-start;padding:30px 16px;min-height:72vh}
.auth-box{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:40px;width:100%;max-width:520px;box-shadow:var(--shadow)}
.auth-logo{display:flex;align-items:center;gap:14px;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.auth-links{text-align:center;margin-top:18px;font-size:var(--fsx);color:var(--text3)}
.link-small{font-size:var(--fsx);color:var(--ac)}
.page-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:18px;display:flex;align-items:center;gap:8px}
.page-title i{color:var(--ac)}

/* MODAL */
.modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;z-index:9999;padding:16px;backdrop-filter:blur(2px)}
.modal-ov.show{display:flex}
.modal-box{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:22px;width:100%;max-width:460px;max-height:92vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.modal-hd h3{font-size:var(--fsm);font-weight:700;color:var(--text)}
.modal-cl{background:none;border:none;cursor:pointer;color:var(--text3);font-size:20px;line-height:1;padding:2px}
.modal-cl:hover{color:var(--ac)}

/* IMEI TOOL */
.imei-box{padding:14px}
.imei-box label{font-size:var(--fsxx);color:var(--text3);font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:4px;margin-top:10px}
.imei-box label:first-child{margin-top:0}
.imei-box input,.imei-box select{width:100%;background:var(--inp);border:1px solid var(--border);color:var(--text);padding:9px 12px;font-size:var(--fsm);outline:none;border-radius:var(--r)}
.imei-box input[type=text]{font-family:monospace;letter-spacing:1.5px}
.imei-btn{width:100%;background:var(--ac);border:none;color:#fff;padding:10px;font-size:var(--fsm);font-weight:700;cursor:pointer;border-radius:var(--r);margin-top:10px;display:flex;align-items:center;justify-content:center;gap:8px}
.imei-btn:hover{background:var(--ac2)}
.res-box{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:10px;margin-top:10px}
.res-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border2);font-size:var(--fsx)}
.res-row:last-child{border-bottom:none}
.res-k{color:var(--text3)}
.res-v{font-weight:700;color:var(--text)}
.res-ok{color:var(--success)}
.res-bad{color:var(--ac)}
.res-warn{color:var(--warn)}

/* WALLET/ORDERS */
.wal-bal{background:#111;border-radius:var(--rl);padding:14px;text-align:center;margin-bottom:10px}
.wal-amt{font-size:28px;font-weight:700;color:#fff;line-height:1.1}
.wal-lbl{font-size:var(--fsxx);color:#666;margin-top:3px;text-transform:uppercase;letter-spacing:.5px}
.pay-g{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:8px}
.pay-o{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:8px;text-align:center;font-size:var(--fsx);color:var(--text3)}
.pay-o i{font-size:16px;display:block;color:var(--ac);margin-bottom:3px}
.pay-o span{font-size:10px;color:var(--text4);display:block;margin-top:1px}
.wal-btn{width:100%;background:var(--ac);border:none;color:#fff;padding:9px;font-size:var(--fsx);font-weight:700;cursor:pointer;border-radius:var(--r)}
.wal-btn:hover{background:var(--ac2)}
.ord-item{padding:9px 12px;border-bottom:1px solid var(--border2);font-size:var(--fsx)}
.ord-item:last-child{border-bottom:none}
.ord-item:hover{background:var(--bg3)}
.ord-top{display:flex;justify-content:space-between;margin-bottom:3px}
.ord-nm{color:var(--text);font-weight:700}
.ord-pr{color:var(--success);font-weight:700}
.ord-bot{display:flex;gap:7px;align-items:center}
.od{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.d-done{background:#2e7d32}.d-proc{background:#1565c0}.d-wait{background:#e65100}
.ord-tm{color:var(--text4);font-size:var(--fsxx)}
.ol-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dotted var(--border2);font-size:var(--fsx)}
.ol-row:last-child{border-bottom:none}
.ol-k{color:var(--text3)}
.ol-v{font-weight:700;color:var(--text)}

/* BOX WIDGET */
.box{background:var(--bg2);border:1px solid var(--border);margin-bottom:10px;border-radius:var(--rl);overflow:hidden;box-shadow:var(--shadow)}
.box-hd{background:var(--bg3);border-bottom:1px solid var(--border);padding:9px 12px;display:flex;align-items:center;justify-content:space-between;font-size:var(--fsx);font-weight:700;color:var(--text)}
.box-hd i{color:var(--ac);font-size:15px;margin-right:6px}
.box-hd a{font-size:var(--fsxx);font-weight:400;color:var(--ac)}
.sec-lbl{background:var(--bg3);border:1px solid var(--border);border-bottom:none;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;font-size:var(--fsx);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text);border-radius:var(--r) var(--r) 0 0;margin-top:12px}
.sec-lbl i{color:var(--ac);font-size:15px;margin-right:6px}
.sec-lbl a{font-size:var(--fsxx);font-weight:400;text-transform:none;color:var(--ac)}

/* PAY INSTRUCTIONS */
.pay-instructions{margin-bottom:12px}
.pay-method-info{padding:8px 0;border-bottom:1px solid var(--border2);font-size:var(--fsm);color:var(--text2);display:flex;align-items:flex-start;gap:8px}
.pay-method-info:last-child{border-bottom:none}
.pay-method-info strong{font-weight:700;white-space:nowrap}

/* ADMIN */
.admin-wrap{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.admin-sb{background:#111;border-right:1px solid #222;padding-top:10px}
.admin-sb-logo{padding:16px;border-bottom:1px solid #222;margin-bottom:8px}
.admin-sb-it{display:flex;align-items:center;gap:8px;padding:10px 16px;color:#888;font-size:var(--fsx);transition:all .15s;border-left:3px solid transparent;text-decoration:none}
.admin-sb-it:hover,.admin-sb-it.on{background:#1a1a1a;color:#fff;border-left-color:var(--ac);text-decoration:none}
.admin-sb-it i{font-size:15px;flex-shrink:0}
.admin-sb-sep{border-top:1px solid #222;margin:8px 0}
.admin-content{padding:20px;background:var(--bg)}
.admin-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:18px;display:flex;align-items:center;gap:10px}
.admin-title i{color:var(--ac)}
.admin-tbl{width:100%;border-collapse:collapse;font-size:var(--fsx);background:var(--bg2);border-radius:var(--rl);overflow:hidden;box-shadow:var(--shadow)}
.admin-tbl th{background:var(--bg3);padding:10px 12px;text-align:left;font-size:var(--fsxx);font-weight:700;color:var(--text2);border-bottom:2px solid var(--border);text-transform:uppercase;letter-spacing:.3px}
.admin-tbl td{padding:10px 12px;border-bottom:1px solid var(--border2);color:var(--text);vertical-align:middle}
.admin-tbl tr:hover td{background:var(--bg3)}
.btn-approve{background:#e8f5e9;border:1px solid #c8e6c9;color:#2e7d32;padding:5px 12px;font-size:var(--fsxx);cursor:pointer;border-radius:var(--r);font-weight:700}
.btn-approve:hover{background:#2e7d32;color:#fff}
.btn-reject{background:#ffebee;border:1px solid #ffcdd2;color:#c62828;padding:5px 12px;font-size:var(--fsxx);cursor:pointer;border-radius:var(--r);font-weight:700}
.btn-reject:hover{background:#c62828;color:#fff}
.tab-bar{display:flex;gap:5px;margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:8px}
.tab{padding:6px 16px;font-size:var(--fsx);border-radius:var(--r) var(--r) 0 0;color:var(--text3);border:1px solid var(--border);background:var(--bg3);cursor:pointer;text-decoration:none}
.tab:hover,.tab.active{background:var(--ac);color:#fff;border-color:var(--ac);text-decoration:none}
.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}
.stat-card-ic{width:44px;height:44px;border-radius:var(--rl);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stat-card-n{font-size:22px;font-weight:700;color:var(--text);line-height:1}
.stat-card-l{font-size:var(--fsxx);color:var(--text3);margin-top:2px}
.empty-state{text-align:center;padding:50px;color:var(--text3)}
.empty-state i{font-size:48px;display:block;margin-bottom:12px;opacity:.4}
.badge-pend{background:#fff3e0;color:#e65100;font-size:var(--fsxx);padding:2px 8px;border-radius:10px;font-weight:700}
.badge-ok{background:#e8f5e9;color:#2e7d32;font-size:var(--fsxx);padding:2px 8px;border-radius:10px;font-weight:700}
.badge-fail{background:#ffebee;color:#c62828;font-size:var(--fsxx);padding:2px 8px;border-radius:10px;font-weight:700}

/* DASHBOARD */
.dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
.dash-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:16px;box-shadow:var(--shadow)}
.dash-card-title{font-size:var(--fsxx);color:var(--text3);text-transform:uppercase;letter-spacing:.7px;margin-bottom:6px}
.dash-card-val{font-size:24px;font-weight:700;color:var(--text)}
.dash-card-sub{font-size:var(--fsxx);color:var(--text3);margin-top:3px}

/* CONTACT STRIP & FOOTER */
.cs-strip{background:var(--hdr);padding:10px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #222}
.cs-i{display:flex;align-items:center;gap:6px;font-size:var(--fsx);color:#888}
.cs-i i{color:var(--ac);font-size:14px}
.cs-i a{color:#aaa}
.cs-i a:hover{color:var(--ac)}
.footer{background:#1a1a1a;padding:38px 42px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px;border-top:3px solid var(--ac)}
.f-nm{font-size:19px;font-weight:700;color:#fff;margin-bottom:5px}
.f-nm em{color:var(--ac);font-style:normal}
.f-desc{font-size:var(--fsx);color:#555;line-height:1.85;margin-bottom:10px}
.f-ci{display:flex;gap:6px;align-items:center;font-size:var(--fsx);color:#555;margin-bottom:5px}
.f-ci i{color:var(--ac);font-size:13px;flex-shrink:0}
.f-ci a{color:#777}
.f-ci a:hover{color:var(--ac)}
.f-col-t{font-size:var(--fsxx);font-weight:700;color:var(--ac);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #2a2a2a}
.f-col a{display:block;color:#555;font-size:var(--fsx);padding:4px 0}
.f-col a:hover{color:var(--ac);text-decoration:none}
.footer-bot{background:#111;padding:8px 24px;display:flex;justify-content:space-between;font-size:var(--fsxx);color:#444;flex-wrap:wrap;gap:5px}
.footer-bot a{color:var(--ac)}

/* RESPONSIVE */
@media(max-width:1024px){.footer{grid-template-columns:1fr 1fr}.stat-cards{grid-template-columns:repeat(2,1fr)}.soft-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.layout{grid-template-columns:1fr}.sb{border-right:none;border-bottom:1px solid var(--border)}.stats{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr 1fr}.plan-grid{grid-template-columns:1fr}.admin-wrap{grid-template-columns:1fr}.admin-sb{display:none}}
@media(max-width:680px){.header{flex-wrap:wrap}.hdr-srch{min-width:100%;order:3}.hdr-act{display:none}.nav-hb{display:block}.form-row-2{grid-template-columns:1fr}.tbl th:nth-child(2),.tbl td:nth-child(2){display:none}.tb-l span:nth-child(n+3){display:none}.footer{grid-template-columns:1fr}}
@media(max-width:480px){.stats{grid-template-columns:1fr 1fr}.soft-grid{grid-template-columns:1fr}.dash-grid{grid-template-columns:1fr}.pay-bar{flex-direction:column;align-items:flex-start}.cs-strip{flex-direction:column;align-items:flex-start}.file-row{grid-template-columns:50px 1fr}.fa2{display:none}}

/* ============================================================
   MiFirm-style — Hero de firmware, grelha de marcas, filtros de região
   ============================================================ */
.fw-hero{background:linear-gradient(135deg,#161616 0%,#1f1416 100%);border:1px solid var(--border);border-radius:var(--rl);padding:34px 26px;margin-bottom:16px;text-align:center;position:relative;overflow:hidden}
.fw-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 18%,rgba(230,57,70,.20),transparent 46%);pointer-events:none}
.fw-hero h2{font-size:26px;font-weight:900;color:#fff;letter-spacing:-.4px;line-height:1.2}
.fw-hero h2 em{color:var(--ac);font-style:normal}
.fw-hero p{color:#9a9a9a;font-size:14px;margin-top:7px}
.fw-hero-srch{max-width:600px;margin:20px auto 0;display:flex;background:#fff;border-radius:30px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.35);position:relative;z-index:2}
.fw-hero-srch input{flex:1;border:none;padding:14px 22px;font-size:15px;outline:none;color:#111;background:#fff}
.fw-hero-srch button{background:var(--ac);border:none;color:#fff;padding:0 26px;font-weight:700;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:6px}
.fw-hero-srch button:hover{background:var(--ac2)}
.fw-hero-stats{display:flex;justify-content:center;gap:32px;margin-top:22px;position:relative;z-index:2;flex-wrap:wrap}
.fw-hs b{font-size:23px;font-weight:900;color:var(--ac);display:block;line-height:1}
.fw-hs span{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.5px}

.brand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-bottom:6px}
.brand{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:10px 6px;text-align:center;transition:.15s;cursor:pointer;text-decoration:none;color:var(--text);display:block}
.brand:hover{border-color:var(--ac);transform:translateY(-3px);box-shadow:0 8px 18px rgba(0,0,0,.14);text-decoration:none}
.brand-ic{width:34px;height:34px;border-radius:9px;margin:0 auto 6px;display:flex;align-items:center;justify-content:center}
.brand-ic img{width:20px;height:20px;object-fit:contain}
.brand-ic i{font-size:18px;color:#fff}
.brand-nm{font-size:12px;font-weight:700;line-height:1.2}
.brand-c{font-size:10px;color:var(--text3);margin-top:1px}

.region-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.rp{padding:6px 14px;border:1px solid var(--border);border-radius:20px;font-size:12px;font-weight:600;background:var(--bg2);color:var(--text2);cursor:pointer;transition:.15s}
.rp:hover{border-color:var(--ac);color:var(--ac)}
.rp.on{background:var(--ac);color:#fff;border-color:var(--ac)}
@media(max-width:600px){
  .fw-hero{padding:22px 14px}
  .fw-hero h2{font-size:19px}
  .fw-hero p{font-size:12px}
  .fw-hero-srch{margin-top:14px}
  .fw-hero-srch input{padding:11px 14px;font-size:13px;min-width:0}
  .fw-hero-srch button{padding:0 14px;font-size:13px}
  .fw-hero-srch button .srch-txt{display:none}
  .brand-grid{grid-template-columns:repeat(4,1fr);gap:6px}
  .brand{padding:8px 4px}
  .region-row{gap:6px}.rp{padding:5px 11px;font-size:11px}
}

/* ============================================================
   RESPONSIVIDADE REFORÇADA — telemóvel (sobrepõe as regras acima)
   ============================================================ */
@media(max-width:768px){
  :root{--fs:14px;--fsm:14px;--fsx:13px;--fsxx:12px}
  body{font-size:14px}
  /* topbar e header compactos */
  .topbar{padding:8px 12px;font-size:11px;gap:6px}
  .header{padding:14px 14px;gap:12px}
  .logo-a{min-width:0;gap:10px}
  .logo-sq{width:46px;height:46px}
  .logo-sq i{font-size:24px}
  .logo-nm{font-size:20px}
  /* navegação */
  .nav-it{padding:13px 15px;font-size:13px}
  /* barra lateral escondida no telemóvel (a navegação está no menu) */
  .layout{grid-template-columns:1fr}
  .sb{display:none}
  /* conteúdo sem margens largas */
  .inner-wrap{padding:16px 12px}
  .main-content{padding:12px}
  .auth-box{padding:24px 18px}
  .card-body{padding:18px}
  /* estatísticas em 2 colunas */
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:14px 10px;border-right:none;border-bottom:1px solid var(--border2)}
  .stat-n{font-size:22px}
  /* tabelas → deslizam na horizontal em vez de cortar */
  .grp-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tbl{min-width:540px}
  .card-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .admin-tbl{min-width:480px}
  /* rodapé numa coluna */
  .footer{grid-template-columns:1fr;padding:24px 18px;gap:18px}
  .cs-strip{padding:10px 12px;gap:8px}
  /* modais ocupam quase todo o ecrã */
  .modal-box{max-width:96vw}
  /* planos e grelhas */
  .plan-grid{grid-template-columns:1fr;padding:12px}
  .soft-grid{grid-template-columns:1fr}
  .dash-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  :root{--fs:13px}
  .logo-tg{display:none}
  .logo-nm{font-size:18px}
  .stats{grid-template-columns:1fr 1fr}
  .bal-bar{flex-direction:column;align-items:flex-start}
  .bal-r{width:100%}
  .bal-btn{flex:1;justify-content:center}
  .page-title{font-size:18px}
  .footer-bot{flex-direction:column;align-items:flex-start;gap:3px}
  .topbar .tb-r a[href^="tel"]{display:none}
}
