:root {
  --bg: #0a0e1a;
  --card: rgba(255,255,255,0.03);
  --card-solid: #0e1320;
  --primary: #6366f1;
  --primary-2: #818cf8;
  --primary-3: #a5b4fc;
  --primary-hover: #5457e8;
  --text: #eceef4;
  --muted: #8b93a7;
  --faint: #5b6478;
  --border: rgba(255,255,255,0.08);
  --border-2: rgba(255,255,255,0.12);
  --success: #34d399;
  --warn: #fbbf24;
  --danger: #fb7185;
  --radius: 16px;
}
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700;800&display=swap');
* { margin:0; padding:0; box-sizing:border-box; font-family:'JetBrains Mono', ui-monospace, 'Segoe UI', monospace; }
html, body { background:var(--bg); color:var(--text); width:100%; overflow-x:hidden; position:relative; height: 100%; }
body::before { content:''; position:fixed; top:-100px; right:-100px; width:360px; height:360px; background:radial-gradient(circle, rgba(99,102,241,0.15), transparent 70%); border-radius:50%; pointer-events:none; z-index:0; }
body::after { content:''; position:fixed; bottom:-120px; left:-80px; width:320px; height:320px; background:radial-gradient(circle, rgba(129,140,248,0.10), transparent 70%); border-radius:50%; pointer-events:none; z-index:0; }
.container { position:relative; z-index:1; }
body { display:flex; justify-content:center; padding:20px; padding-bottom:120px; }
.container { width:100%; max-width:1200px; margin:0 auto; }
.full-width { width:100%; } .mt-10 { margin-top:10px; } .spacer { height:15px; } .spacer-large { height:30px; }
.mobile-hint { display:none; } .full-height { height:100%; overflow-y:auto; }
.desktop-only { display:block; } .btn-hamburger { display:none; } .sidebar { display: none; }

/* NOTIFICAÇÕES */
#toast-container { position:fixed; top:20px; right:20px; z-index:4000; display:flex; flex-direction:column; gap:10px; }
.toast { background:var(--card); color:white; padding:15px 25px; border-radius:8px; border-left:5px solid var(--primary); box-shadow:0 5px 15px rgba(0,0,0,0.5); display:flex; align-items:center; gap:10px; animation:slideIn 0.3s ease; min-width:300px; }
.toast.success { border-color:var(--success); } .toast.error { border-color:var(--danger); }
@keyframes slideIn { from{transform:translateX(100%);opacity:0} to{transform:translateX(0);opacity:1} }

/* INPUTS */
.input-wrapper { position:relative; margin-bottom:15px; }
input, select, textarea { width:100%; background:rgba(0,0,0,0.35); border:1px solid var(--border-2); color:var(--text); padding:17px 16px 17px 48px; border-radius:14px; outline:none; font-size:14px; transition:0.25s; font-family:inherit; }
textarea { padding:12px; resize:none; } .input-wrapper input { padding-left:45px; }
.icon-left { position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--primary); font-size:15px; }
.icon-right { position:absolute; right:15px; top:50%; transform:translateY(-50%); color:var(--muted); cursor:pointer; padding:8px; z-index:5; }
select option { background:#000; padding:10px; } input:focus, select:focus, textarea:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(99,102,241,0.15); }
.file-input { padding:10px; padding-left:10px; }

/* BOTÕES */
.btn-primary { width:100%; background:linear-gradient(135deg, var(--primary), var(--primary-hover)); color:#fff; padding:15px; border:none; border-radius:16px; font-weight:800; cursor:pointer; text-transform:uppercase; letter-spacing:2px; font-size:11px; transition:0.2s; box-shadow:0 10px 30px rgba(99,102,241,0.35); font-family:inherit; }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 14px 36px rgba(99,102,241,0.45); }
.btn-outline { background:transparent; border:1px solid var(--primary); color:var(--primary-2); padding:8px 18px; border-radius:12px; cursor:pointer; font-weight:700; transition:0.2s; font-family:inherit; }
.btn-outline:hover { background:var(--primary); color:white; }
.btn-sm { padding:9px 16px; font-size:11px; border-radius:11px; }
.btn-trial { background:rgba(52,211,153,0.12); color:var(--success); border:1px solid rgba(52,211,153,0.3); padding:13px 22px; border-radius:13px; font-weight:800; cursor:pointer; margin-right:10px; text-transform:uppercase; font-size:12px; font-family:inherit; transition:0.2s; }
.btn-trial:hover { background:var(--success); color:#04201a; }
.btn-tbl { width:36px; height:36px; border-radius:10px; font-size:13px; cursor:pointer; transition:0.2s; background:transparent; display:inline-flex; align-items:center; justify-content:center; }
.btn-tbl-edit { border:1px solid rgba(99,102,241,0.3); color:var(--primary-2); background:rgba(99,102,241,0.08); } .btn-tbl-edit:hover { background:var(--primary); color:#fff; }
.btn-tbl-danger { border:1px solid rgba(251,113,133,0.3); color:var(--danger); background:rgba(251,113,133,0.08); } .btn-tbl-danger:hover { background:var(--danger); color:#fff; }
.btn-tbl-success { border:1px solid var(--success); color:var(--success); } .btn-tbl-success:hover { background:var(--success); color:#04201a; }

/* SCREENS */
.screen { display:none; animation:fadeIn 0.4s; } .screen.active { display:block; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
#login-screen, #register-screen, #forgot-screen, #reset-screen { 
    max-width:400px; 
    margin:40px auto; 
    background:var(--card); 
    padding:44px 36px; 
    border-radius:26px; 
    border:1px solid var(--border); 
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    box-shadow:0 20px 60px rgba(0,0,0,0.4); 
}
.logo-area { text-align:center; margin-bottom:32px; display:flex; flex-direction:column; align-items:center; }
.logo-area h1 { font-size:21px; font-weight:800; color:#fff; letter-spacing:-0.5px; white-space:nowrap; }
.logo-area h1 .highlight { display:inline !important; margin:0 !important; color:var(--primary-2); }
.logo-area p { font-size:9px; color:var(--faint); text-transform:uppercase; letter-spacing:3px; margin-top:7px; font-weight:700; }
.highlight { color:var(--primary-2); }
.gp-badge { width:60px; height:60px; border-radius:18px; background:linear-gradient(135deg, var(--primary), var(--primary-2)); display:flex; align-items:center; justify-content:center; margin-bottom:16px; box-shadow:0 8px 28px rgba(99,102,241,0.45); position:relative; }
.gp-badge span { font-size:22px; font-weight:800; color:#fff; letter-spacing:-1px; }
.gp-badge::after { content:''; position:absolute; bottom:-4px; right:-4px; width:18px; height:18px; background:linear-gradient(135deg,#34d399,#10b981); border-radius:50%; border:3px solid var(--bg); }
.login-actions { margin-top:22px; display:flex; flex-direction:column; gap:20px; text-align:center; }
.login-actions .link-action:first-child { padding-top:20px; border-top:1px solid var(--border); order:2; font-size:12px; }
.login-actions .link-action:last-child { order:1; color:var(--faint); font-weight:400; }
.login-actions .link-action:last-child:hover { color:var(--muted); }
.link-action { color:var(--primary-2); cursor:pointer; font-weight:700; transition:0.2s; } .link-action:hover { color:#fff; } .link-danger { color:var(--danger); cursor:pointer; font-size:0.9em; }

/* DASHBOARD HEADER */
.dashboard { position:relative; z-index:1; }
.dashboard header { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--border); padding-bottom:18px; margin-bottom:24px; }
.dashboard header h3 { font-size:18px; font-weight:800; color:#fff; letter-spacing:-0.3px; }
.header-content { display:flex; width:100%; justify-content:space-between; align-items:center; }
.header-left { display:flex; align-items:center; gap:15px; }
.header-text { display:flex; flex-direction:column; }
.header-actions { display:flex; gap:10px; }
.user-greeting { font-size:0.9em; color:var(--muted); margin-top:2px; }

/* TABS */
.nav-tabs, .admin-nav { display:flex; gap:8px; margin-bottom:24px; flex-wrap:wrap; }
.tab-link, .adm-tab-btn { background:rgba(255,255,255,0.03); border:1px solid var(--border); color:var(--muted); padding:11px 20px; cursor:pointer; font-size:12px; font-weight:700; border-radius:12px; transition:0.25s; font-family:inherit; }
.tab-link:hover, .adm-tab-btn:hover { background:rgba(255,255,255,0.06); color:var(--text); }
.tab-link.active, .adm-tab-btn.active { color:#fff; background:linear-gradient(135deg, var(--primary), var(--primary-hover)); border-color:transparent; box-shadow:0 6px 18px rgba(99,102,241,0.3); }
.tab-content, .adm-content { display:none; } .tab-content.active, .adm-content.active { display:block; animation:fadeIn 0.3s; }

/* CARDS */
.systems-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:20px; }
.system-card { background:var(--card); border:1px solid var(--border); border-radius:18px; padding:28px 24px; text-align:center; cursor:pointer; transition:0.3s; position:relative; display:flex; flex-direction:column; align-items:center; backdrop-filter:blur(10px); }
.system-card:hover { border-color:var(--primary); transform:translateY(-5px); box-shadow:0 12px 30px rgba(99,102,241,0.2); }
.system-card.disabled { opacity:0.6; filter:grayscale(1); cursor:default; }
.system-card img { width:80px; height:80px; object-fit:contain; margin-bottom:15px; }
.system-card h3 { font-size:1.1em; margin-bottom:5px; color:white; }
.system-card p { color:var(--muted); font-size:0.9em; }
.card-select-overlay { position:absolute; top:10px; right:10px; z-index:10; }
.card-checkbox { width:20px; height:20px; accent-color:var(--primary); cursor:pointer; transform:scale(1.3); }
.system-card.selected { border:2px solid var(--primary); background:rgba(99,102,241,0.08); }
.owned-badge { display:inline-block; padding:5px 10px; border:1px solid var(--success); color:var(--success); border-radius:4px; font-size:0.8em; font-weight:bold; margin-top:10px; }

/* LICENÇAS E CONTATO */
/* .license-card removido — substituído por .lic-card */
.lic-header { display:flex; flex-direction:column; gap:5px; }
.lic-title { font-size:1.2em; font-weight:bold; color:white; }
.lic-details { color:var(--muted); font-size:0.9em; display:flex; gap:15px; }
.lic-key-container { background:rgba(0,0,0,0.4); border:1px dashed var(--muted); padding:8px 15px; border-radius:4px; font-family:monospace; cursor:pointer; }
.status-tag { padding:3px 8px; border-radius:10px; font-size:0.7em; font-weight:bold; text-transform:uppercase; border:1px solid currentColor; margin-left:10px; }
.contact-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:20px; }
.contact-card { background:var(--card); border:1px solid var(--border); padding:32px; text-align:center; border-radius:18px; transition:0.3s; backdrop-filter:blur(10px); }
.contact-card:hover { border-color:var(--primary); transform:translateY(-5px); box-shadow:0 12px 30px rgba(99,102,241,0.2); }
.contact-card i { font-size:2.5em; color:var(--primary); margin-bottom:15px; }
.contact-card h3 { margin-bottom:15px; }

/* CARRINHO */
.cart-bar {
    position:fixed; bottom:0; left:0; width:100%;
    background:rgba(10,14,26,0.82); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
    border-top:1px solid rgba(99,102,241,0.35);
    padding:16px 30px; display:flex; justify-content:center; align-items:center;
    z-index:100; box-shadow:0 -10px 40px rgba(0,0,0,0.55);
}
.cart-bar::before {
    content:''; position:absolute; top:0; left:0; right:0; height:1px;
    background:linear-gradient(90deg, transparent, rgba(129,140,248,0.7), transparent);
}
.cart-inner-box { width:100%; max-width:1200px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.cart-info { display:flex; gap:18px; align-items:center; }

.cart-cart-ico {
    width:46px; height:46px; border-radius:14px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center; font-size:18px; color:#fff;
    background:linear-gradient(135deg, var(--primary), #4f46e5);
    box-shadow:0 8px 20px rgba(99,102,241,0.4), inset 0 1px 0 rgba(255,255,255,0.25);
}
.cart-pills { display:flex; gap:10px; }
.cart-pill {
    display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border-radius:11px;
    background:rgba(255,255,255,0.04); border:1px solid var(--border); color:var(--muted);
    font-size:12.5px; font-weight:600;
}
.cart-pill i { font-size:11px; color:var(--primary-3); }
.cart-pill b { color:var(--text); font-weight:800; }
.cart-pill.disc i { color:var(--success); }
.cart-pill.disc b { color:var(--success); }

.cart-total-wrap { display:flex; flex-direction:column; padding-left:6px; }
.cart-total-label { font-size:10px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--faint); }
.cart-total-val { font-size:22px; font-weight:900; line-height:1.1; margin-top:2px; }
.cart-total-val b { color:#fff; font-weight:900;
    background:linear-gradient(120deg, var(--primary-2), var(--primary-3));
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

.btn-checkout {
    background:linear-gradient(135deg, var(--primary), var(--primary-hover)); color:#fff; border:none;
    padding:15px 36px; border-radius:14px; font-weight:800; text-transform:uppercase; letter-spacing:0.06em;
    cursor:pointer; font-size:13px; font-family:inherit; box-shadow:0 10px 28px rgba(99,102,241,0.4);
    transition:0.2s; display:inline-flex; align-items:center; gap:10px; white-space:nowrap;
}
.btn-checkout i { transition:transform 0.2s; }
.btn-checkout:hover { transform:translateY(-2px); box-shadow:0 16px 36px rgba(99,102,241,0.55); }
.btn-checkout:hover i { transform:translateX(4px); }

/* AQUI ESTÁ A MÁGICA PARA IGUALAR OS TAMANHOS */
.cart-row { 
    display:flex; 
    gap:20px; 
    color: #fff;           /* Texto Branco */
    font-size: 14px;
    font-weight: bold;     /* Negrito para destacar */
    align-items: center;
}

.total-label {
    color: #fff;
    font-size: 15px;
    font-weight: bold;
    display: flex;
    align-items: center;
}

/* Ajuste para o valor do Total ficar alinhado */
.total-label b { 
    color:var(--primary); 
    margin-left:8px; 
    font-size: 1em !important; /* Respeita o tamanho pai (1.5em) */
}

.btn-checkout { 
    background:linear-gradient(135deg, var(--primary), var(--primary-hover)); color:#fff; border:none; 
    padding:14px 38px; border-radius:14px; font-weight:800; text-transform:uppercase; letter-spacing:1px;
    cursor:pointer; font-size:12px; font-family:inherit; box-shadow:0 8px 24px rgba(99,102,241,0.35); transition:0.2s;
}
.btn-checkout:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(99,102,241,0.45); }

/* ADMIN */
.split-view { display:flex; gap:20px; flex-wrap:wrap; }
.form-panel { flex:2; background:var(--card); padding:28px; border-radius:18px; border:1px solid var(--border); min-width:300px; backdrop-filter:blur(20px); }
.form-panel h4, .list-panel h4 { font-size:11px; text-transform:uppercase; letter-spacing:2px; color:var(--primary-2); font-weight:800; margin-bottom:18px; }
.list-panel { flex:1; background:rgba(0,0,0,0.25); padding:24px; border-radius:18px; min-width:250px; border:1px solid var(--border); }
.price-grid { display:grid; grid-template-columns:repeat(5, 1fr); gap:10px; margin-bottom:15px; }
.price-grid span { font-size:0.8em; color:var(--muted); display:block; margin-bottom:3px; }
.highlight { color:var(--primary); margin-top:15px; display:block; font-weight:bold; }
.row { display:flex; gap:10px; }
.chips-container { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.chip { background:black; border:1px solid var(--border); padding:5px 10px; border-radius:15px; cursor:pointer; font-size:0.9em; user-select:none; }
.chip.active { background:var(--primary); color:white; border-color:var(--primary); }
.list-item { padding:16px 18px; border:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; background:var(--card); margin-bottom:10px; border-radius:14px; transition:0.2s; }
.list-item:hover { border-color:var(--border-2); }

/* TABELAS */
.table-box { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:16px; border:1px solid var(--border); background:var(--card); backdrop-filter:blur(20px); }
.data-table { width:100%; border-collapse:collapse; min-width:700px; }
.data-table th { text-align:left; padding:16px 18px; color:var(--primary-2); border-bottom:1px solid var(--border); background:rgba(0,0,0,0.25); white-space:nowrap; font-size:9px; text-transform:uppercase; letter-spacing:1.5px; font-weight:800; }
.data-table td { padding:16px 18px; border-bottom:1px solid var(--border); vertical-align:middle; font-size:13px; }
.data-table tbody tr { transition:0.2s; }
.data-table tbody tr:hover { background:rgba(99,102,241,0.05); }
.sys-tag { background:#000; color:var(--primary); border:1px solid var(--border); padding:3px 8px; border-radius:4px; font-size:0.85em; margin-right:5px; display:inline-block; margin-bottom:3px; }

/* MODAL */
.modal-overlay { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.9); z-index:3000; backdrop-filter:blur(5px); }
.modal-card { width:90%; max-width:880px; height:85vh; background:var(--card-solid); margin:4vh auto; border:1px solid var(--border); border-radius:24px; position:relative; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,0.6); }
.close-modal { position:absolute; right:18px; top:18px; width:40px; height:40px; border-radius:50%; background:rgba(0,0,0,0.5); backdrop-filter:blur(10px); font-size:22px; cursor:pointer; color:#fff; z-index:10; display:flex; align-items:center; justify-content:center; transition:0.2s; line-height:1; }
.close-modal:hover { background:var(--danger); }
.modal-split { display:flex; height:100%; }
.modal-img-area { flex:1; background:linear-gradient(135deg, rgba(99,102,241,0.12), rgba(10,14,26,0.9)); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:30px; position:relative; }
.modal-img-area img { max-width:100%; max-height:300px; object-fit:contain; }
.trial-badge { margin-top:18px; background:rgba(52,211,153,0.15); color:var(--success); border:1px solid rgba(52,211,153,0.3); padding:8px 18px; border-radius:30px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:0.5px; }
.modal-info-area { flex:1.5; padding:36px 32px; overflow-y:auto; display:flex; flex-direction:column; }
.modal-info-area h2 { font-size:24px; font-weight:800; color:#fff; letter-spacing:-0.5px; margin-bottom:12px; }
.modal-info-area > .modal-scroll-content > p, #mod-desc { color:var(--muted); font-size:13px; line-height:1.6; margin-bottom:20px; }
.gal-row { display:flex; gap:10px; overflow-x:auto; margin-top:10px; }
.gal-row img { width:64px; height:44px; border:1px solid var(--border); cursor:pointer; object-fit:cover; border-radius:10px; transition:0.2s; }
.gal-row img:hover { border-color:var(--primary); transform:scale(1.05); }
.mod-footer { margin-top:auto; padding-top:22px; display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--border); gap:16px; }
.mod-footer .btn-primary { width:auto; padding:13px 28px; }
.modal-buttons { display:flex; align-items:center; }
.price-show { font-size:28px; color:var(--primary-2); font-weight:800; letter-spacing:-1px; }
.modal-buttons { display:flex; gap:10px; }
.plan-area { margin-top:20px; background:rgba(0,0,0,0.25); padding:18px; border-radius:16px; border:1px solid var(--border); }
.plan-area label { display:block; font-size:9px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); font-weight:700; margin-bottom:8px; }
.plan-area select { margin-bottom:0; }

/* --- MOBILE ONLY (TRANSFORMAÇÃO) --- */
@media (max-width: 768px) {
    body { padding:0; padding-bottom:130px; }
    .container { padding:15px; }
    .desktop-only { display:none !important; }
    .btn-hamburger { display:block; background:none; border:none; color:white; font-size:1.5em; cursor:pointer; }
    .desktop-tabs { display:none; } 

    /* Estilo específico para os botões clonados no mobile */
    .mobile-tab-btn {
        display: flex;
        align-items: center;
        width: 100%;
        padding: 15px 20px;
        background: transparent; /* Fundo transparente para elegância */
        border: none;
        border-left: 4px solid transparent; /* Tarja lateral */
        color: #aaa;
        font-size: 1.1em;
        text-align: left;
        cursor: pointer;
        transition: all 0.2s ease; /* Animação suave */
        margin-bottom: 5px;
    }

    .mobile-tab-btn i {
        margin-right: 15px;
        width: 25px;
        text-align: center;
    }

    /* Estado Ativo (Selecionado) */
    .mobile-tab-btn.active {
        background: rgba(255, 149, 19, 0.1); /* Fundo laranja sutil */
        color: white;
        border-left-color: var(--primary); /* Tarja laranja */
        font-weight: bold;
    }

    /* Efeito ao passar o dedo/clicar (Feedback Visual) */
    .mobile-tab-btn:active {
        background: rgba(255, 255, 255, 0.1);
        transform: scale(0.98); /* Leve encolhimento ao tocar */
    }

    /* Sidebar */
    .sidebar { display:block; position:fixed; top:0; left:0; height:100%; width:280px; background:#0b1624; z-index:5000; transform:translateX(-100%); transition:0.3s; border-right:1px solid var(--primary); padding:20px; }
    .sidebar.active { transform:translateX(0); }
    .menu-overlay { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.8); z-index:4999; display:none; backdrop-filter:blur(3px); }
    .menu-overlay.active { display:block; }
    .sidebar-header { display:flex; justify-content:space-between; padding-bottom:15px; border-bottom:1px solid var(--border); margin-bottom:20px; }
    .btn-close-sidebar { background:none; border:none; color:#aaa; font-size:1.5em; }
    .sidebar-content button { display:block; width:100%; text-align:left; padding:15px; background:var(--card); border:1px solid var(--border); color:#ddd; border-radius:8px; margin-bottom:10px; }
    
    /* Cards e Grids Mobile */
    .systems-grid, .contact-grid { grid-template-columns:1fr; gap:15px; }
    .system-card { flex-direction:row; text-align:left; align-items:center; padding:15px; gap:15px; border-left:4px solid var(--border); }
    .system-card img { width:60px; height:60px; margin:0; }
    .card-select-overlay { position:static; margin-right:10px; }

    /* Modal Mobile */
    .modal-card { width:100%; height:100%; margin:0; border:none; border-radius:0; }
    .modal-split { flex-direction:column; overflow-y:auto; padding-bottom:80px; }
    .modal-img-area { flex:none; height:220px; padding:10px; }
    .modal-img-area img { max-height:160px; }
    .mod-footer { position:fixed; bottom:0; left:0; width:100%; background:var(--card); padding:15px; z-index:20; flex-direction:column; gap:10px; }
    .modal-buttons { width:100%; } .modal-buttons button { flex:1; }
    
    /* Cart Bar */
    .cart-inner-box { flex-direction:column; gap:10px; align-items:stretch; }
    .cart-info { width:100%; justify-content:space-between; }
    .cart-row { 
    display:flex; gap:15px;color: #fff; /* Texto branco para destacar */font-size: 1.3em; /* Tamanho igual ao do Total */font-weight: bold; /* Negrito para igualar o peso */}

    /* Tabelas */
    .data-table thead { display:none; }
    .data-table tr { display:block; background:var(--card); margin-bottom:15px; padding:15px; border:1px solid var(--border); border-radius:8px; }
    .data-table td { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid rgba(255,255,255,0.05); text-align:right; }
    .data-table td:last-child { border:none; justify-content:flex-end; gap:10px; }

    /* Admin */
    .split-view { flex-direction:column; } .form-panel, .list-panel { width:100%; min-width:auto; }
}
/* --- SKELETON LOADING (ANIMAÇÃO) --- */
.skeleton {
    background: #152540; /* Um pouco mais claro que o card normal */
    background-image: linear-gradient(to right, #152540 0%, #1f365c 20%, #152540 40%, #152540 100%);
    background-repeat: no-repeat;
    background-size: 800px 100%;
    animation: shimmer 1.5s infinite linear forwards;
    border-radius: 4px;
    opacity: 0.7;
}

@keyframes shimmer {
    0% { background-position: -468px 0; }
    100% { background-position: 468px 0; }
}

/* Formatos do Esqueleto */
.sk-card {
    height: 250px;
    width: 100%;
    border-radius: 10px;
    border: 1px solid var(--border);
    background-color: var(--card); /* Fundo base */
    display: flex;
    flex-direction: column;
    padding: 20px;
    gap: 15px;
}
.sk-img { width: 60px; height: 60px; border-radius: 50%; align-self: center; }
.sk-title { width: 70%; height: 20px; align-self: center; }
.sk-text { width: 90%; height: 15px; align-self: center; margin-top: 10px; }
.sk-price { width: 40%; height: 15px; align-self: center; margin-top: auto; }

/* Lista (para tabelas) */
.sk-row { width: 100%; height: 50px; margin-bottom: 10px; }

/* Labels dos campos (login refinado) */
.field-label { font-size:9px; color:rgba(255,255,255,0.4); text-transform:uppercase; letter-spacing:1px; font-weight:700; margin-bottom:6px; margin-left:2px; display:block; }
.icon-right { color:var(--faint); }
.icon-right:hover { color:var(--muted); }


/* Seções do formulário de registro */
.form-section { margin-bottom:8px; }
.form-section-title { font-size:9px; color:var(--primary-2); text-transform:uppercase; letter-spacing:2px; font-weight:800; margin:18px 0 12px 2px; display:flex; align-items:center; gap:8px; }
.form-section-title::after { content:''; flex:1; height:1px; background:var(--border); }
.form-section-title:first-of-type { margin-top:4px; }
.reg-badge { width:50px; height:50px; border-radius:15px; background:linear-gradient(135deg, var(--primary), var(--primary-2)); display:flex; align-items:center; justify-content:center; margin-bottom:14px; box-shadow:0 8px 22px rgba(99,102,241,0.4); }
.reg-badge span { font-size:18px; font-weight:800; color:#fff; letter-spacing:-0.5px; }
.pass-hint { color:var(--faint); font-size:10px; margin:-4px 0 4px 4px; line-height:1.5; }


/* Editor admin: labels e campos alinhados */
.form-panel label { display:block; font-size:9px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); font-weight:700; margin:14px 0 6px 2px; }
.form-panel label.highlight { color:var(--primary-2); margin-top:18px; }
.form-panel .file-input { background:rgba(0,0,0,0.25); border:1px dashed var(--border-2); padding:12px; border-radius:12px; font-size:12px; color:var(--muted); cursor:pointer; }
.form-panel .file-input::-webkit-file-upload-button { background:var(--primary); color:#fff; border:none; padding:8px 14px; border-radius:8px; font-family:inherit; font-weight:700; font-size:11px; cursor:pointer; margin-right:10px; }
.form-panel textarea { padding:14px 16px; border-radius:14px; }
.form-panel .row { display:flex; gap:10px; align-items:stretch; }
.form-panel .row select { flex:1.4; padding-left:14px; }
.form-panel .row input { flex:1; padding-left:14px; }
.form-panel .row select, .form-panel .row input { margin-bottom:0; }
.price-grid input { text-align:center; padding:14px 4px; font-size:12px; }
.price-grid input::placeholder { font-size:11px; }


/* Card de Combo (admin) */
.combo-card { display:flex; justify-content:space-between; align-items:center; background:var(--card); border:1px solid var(--border); border-radius:16px; padding:18px 20px; margin-bottom:12px; backdrop-filter:blur(10px); transition:0.2s; }
.combo-card:hover { border-color:var(--primary); transform:translateY(-2px); }
.combo-card-left { display:flex; align-items:center; gap:14px; }
.combo-icon { width:44px; height:44px; border-radius:12px; background:linear-gradient(135deg, var(--primary), var(--primary-2)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:18px; flex-shrink:0; }
.combo-info { display:flex; flex-direction:column; }
.combo-name { font-size:15px; font-weight:700; color:var(--text); }
.combo-desc { font-size:10px; color:var(--faint); margin-top:2px; }
.combo-badge { background:rgba(52,211,153,0.12); color:var(--success); font-size:13px; font-weight:800; padding:8px 14px; border-radius:10px; border:1px solid rgba(52,211,153,0.25); white-space:nowrap; }


/* Botão excluir combo */
.combo-card-right { display:flex; align-items:center; gap:12px; }
.combo-del-btn { width:38px; height:38px; border-radius:10px; background:rgba(251,113,133,0.1); border:1px solid rgba(251,113,133,0.25); color:var(--danger); cursor:pointer; font-size:14px; transition:0.2s; display:flex; align-items:center; justify-content:center; }
.combo-del-btn:hover { background:var(--danger); color:#fff; }


/* Campos de preço com label (alinhados) */
.price-field { display:flex; flex-direction:column; gap:5px; }
.price-field span { font-size:9px; text-transform:uppercase; letter-spacing:0.5px; color:var(--muted); font-weight:700; text-align:center; }
.price-field input { text-align:center; padding:13px 6px; margin-bottom:0; font-size:13px; }
.price-field input::placeholder { color:var(--faint); }


/* ===== LOJA: cards de produto premium ===== */
.systems-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:22px; }

.sys-product { background:var(--card); border:1px solid var(--border); border-radius:20px; overflow:hidden; transition:0.3s; backdrop-filter:blur(10px); display:flex; flex-direction:column; }
.sys-product:hover { border-color:var(--primary); transform:translateY(-4px); box-shadow:0 16px 40px rgba(99,102,241,0.18); }
.sys-product.in-cart { border-color:var(--primary); box-shadow:0 0 0 1px var(--primary); }

.sys-media { position:relative; height:150px; background:#0c1322; display:flex; align-items:center; justify-content:center; cursor:pointer; overflow:hidden; }
.sys-thumb { width:100%; height:100%; object-fit:cover; }
.sys-media.no-img::before { content:attr(data-letter); font-size:54px; font-weight:800; color:var(--primary-2); opacity:0.5; }
.sys-media.no-img { background:linear-gradient(135deg, rgba(99,102,241,0.12), rgba(129,140,248,0.05)); }

.sys-trial-badge { position:absolute; top:12px; left:12px; background:rgba(52,211,153,0.95); color:#04201a; font-size:10px; font-weight:800; padding:5px 10px; border-radius:8px; display:flex; align-items:center; gap:5px; text-transform:uppercase; letter-spacing:0.3px; }

.sys-body { padding:18px 18px 20px; display:flex; flex-direction:column; flex:1; }
.sys-title { font-size:16px; font-weight:800; color:#fff; margin-bottom:6px; cursor:pointer; letter-spacing:-0.3px; }
.sys-desc { font-size:12px; color:var(--muted); line-height:1.5; margin-bottom:16px; flex:1; }

.sys-footer { display:flex; justify-content:space-between; align-items:flex-end; }
.sys-price { display:flex; flex-direction:column; }
.sys-price-label { font-size:9px; color:var(--faint); text-transform:uppercase; letter-spacing:0.5px; font-weight:700; }
.sys-price-val { font-size:20px; font-weight:800; color:var(--primary-2); letter-spacing:-0.5px; }

.sys-add { cursor:pointer; }
.sys-add input { display:none; }
.sys-add span { width:42px; height:42px; border-radius:13px; background:rgba(99,102,241,0.12); border:1px solid rgba(99,102,241,0.3); color:var(--primary-2); display:flex; align-items:center; justify-content:center; font-size:15px; transition:0.2s; }
.sys-add:hover span { background:rgba(99,102,241,0.2); }
.sys-add.in-cart span { background:linear-gradient(135deg, var(--primary), var(--primary-hover)); color:#fff; border-color:transparent; box-shadow:0 6px 16px rgba(99,102,241,0.4); }

/* Card já contratado */
.owned-card { opacity:0.85; }
.owned-card .sys-media { filter:grayscale(0.3); }
.sys-status { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:800; padding:8px 14px; border-radius:10px; text-transform:uppercase; letter-spacing:0.3px; }
.sys-status.owned { background:rgba(52,211,153,0.12); color:var(--success); border:1px solid rgba(52,211,153,0.25); }
.sys-status.pending { background:rgba(251,191,36,0.12); color:var(--warn); border:1px solid rgba(251,191,36,0.25); }


/* ===== MEUS SOFTWARES: cards de licença ===== */
#licenses-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(340px, 1fr)); gap:20px; margin-top:8px; }
.lic-card { background:var(--card); border:1px solid var(--border); border-radius:18px; padding:20px; backdrop-filter:blur(10px); border-left:3px solid var(--primary); transition:0.25s; }
.lic-card.active { border-left-color:var(--success); }
.lic-card.pending { border-left-color:var(--warn); }
.lic-card:hover { transform:translateY(-3px); box-shadow:0 12px 30px rgba(0,0,0,0.3); }

.lic-card-head { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.lic-card-icon { width:46px; height:46px; border-radius:13px; background:linear-gradient(135deg, var(--primary), var(--primary-2)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; font-weight:800; flex-shrink:0; }
.lic-card-titlewrap { display:flex; flex-direction:column; gap:5px; }
.lic-card-name { font-size:16px; font-weight:800; color:#fff; letter-spacing:-0.3px; }
.lic-badge { display:inline-flex; align-items:center; font-size:9px; font-weight:800; padding:4px 9px; border-radius:7px; text-transform:uppercase; letter-spacing:0.4px; width:fit-content; }
.lic-badge.active { background:rgba(52,211,153,0.14); color:var(--success); }
.lic-badge.pending { background:rgba(251,191,36,0.14); color:var(--warn); }

.lic-card-meta { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.lic-meta-item { font-size:11px; color:var(--muted); display:flex; align-items:center; gap:6px; }
.lic-meta-item i { color:var(--primary-2); font-size:11px; }

.lic-key { background:rgba(0,0,0,0.3); border:1px dashed var(--border-2); border-radius:12px; padding:12px 14px; cursor:pointer; margin-bottom:12px; transition:0.2s; display:flex; flex-direction:column; gap:4px; }
.lic-key:hover { border-color:var(--primary); background:rgba(99,102,241,0.06); }
.lic-key-label { font-size:8px; text-transform:uppercase; letter-spacing:1px; color:var(--faint); font-weight:700; }
.lic-key-val { font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--text); display:flex; justify-content:space-between; align-items:center; font-weight:700; }
.lic-key-val i { color:var(--primary-2); font-size:12px; }

.lic-access-btn { display:flex; align-items:center; justify-content:center; gap:8px; background:linear-gradient(135deg, var(--success), #10b981); color:#04201a; font-weight:800; text-decoration:none; padding:13px; border-radius:13px; font-size:12px; text-transform:uppercase; letter-spacing:0.5px; transition:0.2s; }
.lic-access-btn:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(52,211,153,0.35); }
.lic-route-err { display:block; text-align:center; color:var(--danger); font-size:11px; margin-top:8px; }


/* Avatar de inicial (tabela equipe) */
.tbl-user { display:flex; align-items:center; gap:12px; }
.tbl-avatar { width:38px; height:38px; border-radius:11px; background:linear-gradient(135deg, var(--primary), var(--primary-2)); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:15px; flex-shrink:0; }
.contact-card h3 { color:#fff; font-size:15px; }


/* Ícones de contato coloridos */
.contact-card .fa-whatsapp { color:#25D366; }
.contact-card .fa-instagram { color:#E1306C; }
.contact-card .fa-globe { color:var(--primary-2); }
.contact-card { display:flex; flex-direction:column; align-items:center; }
.contact-card .btn-outline { margin-top:6px; }


/* Botão pendente (já paguei) */
.lic-pay-btn { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; background:rgba(99,102,241,0.12); color:var(--primary-2); border:1px solid rgba(99,102,241,0.3); padding:13px; border-radius:13px; font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:0.5px; cursor:pointer; font-family:inherit; transition:0.2s; }
.lic-pay-btn:hover { background:var(--primary); color:#fff; border-color:transparent; box-shadow:0 8px 22px rgba(99,102,241,0.35); }


/* Título de seção do cliente */
.content-wrapper > h2 { font-size:22px; font-weight:800; color:#fff; letter-spacing:-0.5px; margin-bottom:20px; }/* ===================================================================== */
/*  FIX LOJA — modal responsivo, galeria maior, lightbox e pagamento     */
/*  (cole no FINAL do style.css)                                          */
/* ===================================================================== */

/* 1) Footer do modal SEMPRE visível no desktop; conteúdo rola sozinho */
@media (min-width: 769px){
  .modal-info-area{ overflow:hidden; }
  .modal-scroll-content{ flex:1 1 auto; min-height:0; overflow-y:auto; padding-right:8px; }
  .mod-footer{ flex-shrink:0; margin-top:0; }
  .modal-img-area{ flex:0 0 42%; }
  .modal-img-area img{ max-height:62vh; }
}

/* 2) Imagem principal e miniaturas maiores + cursor de ampliar */
.modal-img-area img{ cursor:zoom-in; }
.gal-row{ gap:12px; padding-bottom:6px; }
.gal-row img{ width:104px; height:72px; border-radius:12px; }

/* 3) LIGHTBOX — abre a imagem em tela cheia */
.gp-lightbox{ position:fixed; inset:0; z-index:6000; background:rgba(3,6,14,.93); backdrop-filter:blur(6px); display:none; align-items:center; justify-content:center; }
.gp-lightbox.open{ display:flex; animation:fadeIn .2s; }
.gp-lightbox img{ max-width:92vw; max-height:86vh; border-radius:14px; box-shadow:0 30px 80px rgba(0,0,0,.7); object-fit:contain; }
.gp-lb-btn{ position:absolute; background:rgba(255,255,255,.08); border:1px solid var(--border-2); color:#fff; width:52px; height:52px; border-radius:50%; font-size:22px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.2s; }
.gp-lb-btn:hover{ background:var(--primary); }
.gp-lb-prev{ left:24px; top:50%; transform:translateY(-50%); }
.gp-lb-next{ right:24px; top:50%; transform:translateY(-50%); }
.gp-lb-close{ top:24px; right:24px; }
.gp-lb-count{ position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:#fff; background:rgba(0,0,0,.5); padding:6px 14px; border-radius:20px; font-size:13px; font-weight:700; }
@media (max-width:768px){ .gp-lb-btn{ width:44px; height:44px; font-size:18px; } .gp-lb-prev{ left:10px } .gp-lb-next{ right:10px } }

/* 4) Botão flutuante: RETOMAR PAGAMENTO pendente */
.pay-resume{ position:fixed; right:20px; bottom:96px; z-index:150; display:none; align-items:center; gap:10px; background:linear-gradient(135deg,#fbbf24,#f59e0b); color:#1a1205; font-weight:800; padding:13px 18px; border:none; border-radius:14px; cursor:pointer; box-shadow:0 12px 30px rgba(245,158,11,.4); font-family:inherit; font-size:13px; animation:payPulse 2s infinite; }
.pay-resume.show{ display:inline-flex; }
@keyframes payPulse{ 0%,100%{ box-shadow:0 12px 30px rgba(245,158,11,.4) } 50%{ box-shadow:0 12px 40px rgba(245,158,11,.75) } }
@media (max-width:768px){ .pay-resume{ bottom:140px; right:12px; } }

/* ===================================================================== */
/*  5) FIX SCROLL DA LOJA — última fileira ficava presa atrás do carrinho */
/*     (html,body height:100% travava a rolagem do conteúdo que sobra)    */
/* ===================================================================== */
html, body { height: auto !important; min-height: 100%; }
body { padding-bottom: 160px; }   /* respiro p/ a barra fixa do carrinho (75px) */

/* 6) Lightbox: indicador de carregando + fade suave da imagem */
.gp-lb-spin{ position:absolute; width:46px; height:46px; border:4px solid rgba(255,255,255,.2); border-top-color:#fff; border-radius:50%; animation:gpspin .8s linear infinite; display:none; }
@keyframes gpspin{ to{ transform:rotate(360deg) } }
.gp-lightbox img{ transition:opacity .2s ease; }

/* ===================================================================== */
/*  VISÃO GERAL PREMIUM v3 — cards, busca, filtros e animações          */
/* ===================================================================== */
.vg-toolbar { display:flex; gap:12px; margin-bottom:22px; flex-wrap:wrap; align-items:center; opacity:0; animation:vgFadeDown 0.5s ease 0.05s forwards; }
.vg-search { flex:1; min-width:240px; position:relative; }
.vg-search i { position:absolute; left:18px; top:50%; transform:translateY(-50%); color:var(--faint); font-size:14px; pointer-events:none; transition:color 0.2s; }
.vg-search input { width:100%; background:rgba(255,255,255,0.03); border:1px solid var(--border); color:var(--text); padding:14px 18px 14px 46px; border-radius:14px; outline:none; font-family:inherit; font-size:14px; transition:0.2s; }
.vg-search input:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(99,102,241,0.15); background:rgba(99,102,241,0.04); }
.vg-search input:focus + i { color:var(--primary-2); }
.vg-filters { display:flex; gap:8px; }
.vg-fbtn { background:rgba(255,255,255,0.03); border:1px solid var(--border); color:var(--muted); padding:13px 18px; border-radius:13px; font-family:inherit; font-size:12px; font-weight:700; cursor:pointer; transition:0.18s; white-space:nowrap; }
.vg-fbtn:hover { color:var(--text); border-color:var(--border-2); }
.vg-fbtn.active { background:linear-gradient(135deg, var(--primary), var(--primary-hover)); color:#fff; border-color:transparent; box-shadow:0 8px 20px rgba(99,102,241,0.35); }

.firm-stack { display:flex; flex-direction:column; gap:18px; }
.firm-empty, .vg-no-result { padding:50px; text-align:center; color:var(--muted); }
.vg-no-result i { font-size:32px; color:var(--faint); margin-bottom:14px; display:block; }

.firm-card {
  background:linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015));
  border:1px solid var(--border); border-radius:22px; overflow:hidden; backdrop-filter:blur(16px);
  box-shadow:0 18px 50px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.06);
  transition:border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  position:relative; opacity:0; animation:vgCardIn 0.5s cubic-bezier(0.16,1,0.3,1) forwards;
}
.firm-card::before { content:''; position:absolute; top:0; left:24px; right:24px; height:1px; background:linear-gradient(90deg, transparent, rgba(129,140,248,0.5), transparent); opacity:0; transition:opacity 0.3s; }
.firm-card:hover { border-color:rgba(99,102,241,0.3); transform:translateY(-3px); box-shadow:0 26px 60px rgba(0,0,0,0.45), 0 0 40px rgba(99,102,241,0.08); }
.firm-card:hover::before { opacity:1; }
@keyframes vgCardIn { from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:translateY(0); } }
@keyframes vgFadeDown { from{ opacity:0; transform:translateY(-10px); } to{ opacity:1; transform:translateY(0); } }

.firm-head { display:flex; align-items:center; gap:16px; padding:22px 24px; border-bottom:1px solid var(--border); }
.firm-head .ava { width:52px; height:52px; border-radius:15px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:19px; color:#fff; letter-spacing:-0.5px; box-shadow:0 10px 24px rgba(99,102,241,0.4), inset 0 1px 0 rgba(255,255,255,0.3), inset 0 -2px 8px rgba(0,0,0,0.2); background:linear-gradient(135deg, var(--primary), #4f46e5); position:relative; }
.firm-head .ava::after { content:''; position:absolute; inset:0; border-radius:15px; background:linear-gradient(135deg, rgba(255,255,255,0.25), transparent 50%); }
.firm-head .ava.g2 { background:linear-gradient(135deg, #0ea5e9, #2563eb); box-shadow:0 10px 24px rgba(14,165,233,0.35), inset 0 1px 0 rgba(255,255,255,0.3); }
.firm-head .ava.g3 { background:linear-gradient(135deg, #8b5cf6, #6366f1); box-shadow:0 10px 24px rgba(139,92,246,0.35), inset 0 1px 0 rgba(255,255,255,0.3); }
.firm-head .ava.g4 { background:linear-gradient(135deg, #ec4899, #be185d); box-shadow:0 10px 24px rgba(236,72,153,0.35), inset 0 1px 0 rgba(255,255,255,0.3); }
.firm-id { flex:1; min-width:0; }
.firm-id .nm { font-weight:800; font-size:17px; letter-spacing:-0.01em; color:#fff; }
.firm-id .ow { font-size:12.5px; color:var(--muted); margin-top:3px; display:flex; align-items:center; gap:7px; }
.firm-id .ow i { font-size:10px; color:var(--faint); }
.firm-sum { display:flex; gap:8px; align-items:center; flex-shrink:0; flex-wrap:wrap; justify-content:flex-end; }
.chip { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:0.04em; }
.chip.on { background:rgba(52,211,153,0.12); color:var(--success); border:1px solid rgba(52,211,153,0.28); }
.chip.pend { background:rgba(251,191,36,0.12); color:var(--warn); border:1px solid rgba(251,191,36,0.28); }
.chip .pulse { width:6px; height:6px; border-radius:50%; background:currentColor; }
.chip.on .pulse { animation:vgpulse 2s infinite; }
@keyframes vgpulse { 0%{box-shadow:0 0 0 0 rgba(52,211,153,0.5);} 70%{box-shadow:0 0 0 6px rgba(52,211,153,0);} 100%{box-shadow:0 0 0 0 rgba(52,211,153,0);} }

.lic { display:grid; grid-template-columns:1.4fr 1fr auto; gap:16px; align-items:center; padding:15px 24px; border-bottom:1px solid rgba(255,255,255,0.04); transition:background 0.16s; }
.lic:last-child { border-bottom:none; }
.lic:hover { background:rgba(99,102,241,0.05); }
.lic-id .ped { font-size:12.5px; font-weight:700; color:var(--primary-3); }
.lic-id .meta { font-size:11px; color:var(--muted); margin-top:5px; display:flex; gap:9px; align-items:center; flex-wrap:wrap; }
.lic-id .meta .dot { width:3px; height:3px; border-radius:50%; background:var(--faint); }
.venc-ok { color:var(--muted); } .venc-soon { color:var(--warn); font-weight:600; } .venc-exp { color:var(--danger); font-weight:600; }
.lic-st { display:flex; flex-direction:column; gap:8px; }
.lic-st .badge { display:inline-flex; align-items:center; gap:7px; padding:6px 13px; border-radius:999px; font-size:10.5px; font-weight:800; letter-spacing:0.05em; text-transform:uppercase; width:fit-content; }
.lic-st .badge .pulse { width:6px; height:6px; border-radius:50%; }
.lic-st .badge.b-on { background:rgba(52,211,153,0.12); color:var(--success); border:1px solid rgba(52,211,153,0.3); }
.lic-st .badge.b-on .pulse { background:var(--success); animation:vgpulse 2s infinite; }
.lic-st .badge.b-pend { background:rgba(251,191,36,0.12); color:var(--warn); border:1px solid rgba(251,191,36,0.3); }
.lic-st .badge.b-pend .pulse { background:var(--warn); }
.lic-st .badge.b-exp { background:rgba(244,63,94,0.12); color:var(--danger); border:1px solid rgba(244,63,94,0.3); }
.lic-st .badge.b-exp .pulse { background:var(--danger); }
.lic-st .val { font-size:14px; font-weight:800; color:#fff; }
.lic-st .val.free { color:var(--faint); font-weight:600; font-size:12.5px; }
.lic-act { display:flex; gap:8px; justify-content:flex-end; align-items:center; }
.lic-act .ico-btn { width:38px; height:38px; border-radius:11px; border:1px solid var(--border-2); background:rgba(255,255,255,0.03); color:var(--primary-3); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:13px; transition:0.18s; }
.lic-act .ico-btn:hover { background:var(--primary); color:#fff; border-color:var(--primary); transform:translateY(-2px); box-shadow:0 8px 18px rgba(99,102,241,0.4); }
.lic-act .lib-btn { border:none; cursor:pointer; font-family:inherit; font-weight:800; font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; padding:10px 16px; border-radius:11px; color:#04201a; background:linear-gradient(135deg, var(--success), #10b981); box-shadow:0 8px 22px rgba(52,211,153,0.35); transition:0.18s; display:flex; align-items:center; gap:7px; }
.lic-act .lib-btn:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(52,211,153,0.5); }
.lic-act .ok-tag { display:flex; align-items:center; gap:7px; color:var(--success); font-size:12px; font-weight:700; }
.lic-act .ok-tag i { font-size:14px; }

@media (max-width:720px){
  .lic { grid-template-columns:1fr; gap:12px; }
  .lic-act { justify-content:flex-start; }
  .firm-head { flex-wrap:wrap; }
  .vg-toolbar { flex-direction:column; align-items:stretch; }
  .vg-filters { overflow-x:auto; }
}

/* Cartões de resumo (Ativos / Pendentes / Expirados / Testes) */
.vg-stats { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-bottom:22px; opacity:0; animation:vgFadeDown 0.5s ease forwards; }
.vg-stat { background:linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015)); border:1px solid var(--border); border-radius:18px; padding:18px 20px; backdrop-filter:blur(12px); position:relative; overflow:hidden; transition:transform 0.2s, border-color 0.2s; }
.vg-stat:hover { transform:translateY(-2px); border-color:var(--border-2); }
.vg-stat::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; opacity:0.7; }
.vg-stat.ok::before { background:linear-gradient(90deg, transparent, var(--success), transparent); }
.vg-stat.pend::before { background:linear-gradient(90deg, transparent, var(--warn), transparent); }
.vg-stat.exp::before { background:linear-gradient(90deg, transparent, var(--danger), transparent); }
.vg-stat.trial::before { background:linear-gradient(90deg, transparent, var(--primary-2), transparent); }
.vg-stat .vg-n { font-family:'JetBrains Mono',monospace; font-size:28px; font-weight:800; line-height:1; }
.vg-stat .vg-l { font-size:10px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); margin-top:8px; }
.vg-stat.ok .vg-n { color:var(--success); }
.vg-stat.pend .vg-n { color:var(--warn); }
.vg-stat.exp .vg-n { color:var(--danger); }
.vg-stat.trial .vg-n { color:var(--primary-2); }
@media (max-width:720px){ .vg-stats { grid-template-columns:repeat(2, 1fr); } }

/* ===================================================================== */
/*  BASE COMPLETA PREMIUM — diretório de clientes em cards              */
/* ===================================================================== */
.bc-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:22px; opacity:0; animation:vgFadeDown 0.5s ease forwards; }
.bc-stat { background:linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015)); border:1px solid var(--border); border-radius:18px; padding:18px 20px; position:relative; overflow:hidden; transition:transform 0.2s, border-color 0.2s; }
.bc-stat:hover { transform:translateY(-2px); border-color:var(--border-2); }
.bc-stat::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; opacity:0.7; background:linear-gradient(90deg, transparent, var(--primary-2), transparent); }
.bc-stat.ok::before { background:linear-gradient(90deg, transparent, var(--success), transparent); }
.bc-stat.bl::before { background:linear-gradient(90deg, transparent, var(--danger), transparent); }
.bc-stat .bc-n { font-family:'JetBrains Mono',monospace; font-size:28px; font-weight:800; line-height:1; }
.bc-stat .bc-l { font-size:10px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); margin-top:8px; }
.bc-stat.ok .bc-n { color:var(--success); }
.bc-stat.bl .bc-n { color:var(--danger); }

.bc-toolbar { margin-bottom:22px; opacity:0; animation:vgFadeDown 0.5s ease 0.05s forwards; }
.bc-search { position:relative; }
.bc-search i { position:absolute; left:18px; top:50%; transform:translateY(-50%); color:var(--faint); font-size:14px; pointer-events:none; }
.bc-search input { width:100%; background:rgba(255,255,255,0.03); border:1px solid var(--border); color:var(--text); padding:14px 18px 14px 46px; border-radius:14px; outline:none; font-family:inherit; font-size:14px; transition:0.2s; }
.bc-search input:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(99,102,241,0.15); }

.bc-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.ucard { background:linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015)); border:1px solid var(--border); border-radius:20px; padding:20px; backdrop-filter:blur(16px); box-shadow:0 14px 40px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.06); transition:transform 0.2s, border-color 0.2s, box-shadow 0.2s; position:relative; overflow:hidden; opacity:0; animation:vgCardIn 0.5s cubic-bezier(0.16,1,0.3,1) forwards; }
.ucard:hover { transform:translateY(-3px); border-color:rgba(99,102,241,0.3); box-shadow:0 22px 50px rgba(0,0,0,0.4), 0 0 36px rgba(99,102,241,0.08); }

.uc-top { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.uc-top .ava { width:50px; height:50px; border-radius:14px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:18px; color:#fff; letter-spacing:-0.5px; box-shadow:0 8px 20px rgba(99,102,241,0.4), inset 0 1px 0 rgba(255,255,255,0.3); background:linear-gradient(135deg, var(--primary), #4f46e5); position:relative; }
.uc-top .ava::after { content:''; position:absolute; inset:0; border-radius:14px; background:linear-gradient(135deg, rgba(255,255,255,0.25), transparent 50%); }
.uc-top .ava.g2 { background:linear-gradient(135deg, #0ea5e9, #2563eb); }
.uc-top .ava.g3 { background:linear-gradient(135deg, #8b5cf6, #6366f1); }
.uc-top .ava.g4 { background:linear-gradient(135deg, #ec4899, #be185d); }
.uc-id { flex:1; min-width:0; }
.uc-id .nm { font-weight:800; font-size:16px; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.uc-id .pe { font-size:12px; color:var(--muted); margin-top:2px; }
.st-badge { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:999px; font-size:10px; font-weight:800; letter-spacing:0.05em; text-transform:uppercase; flex-shrink:0; }
.st-badge .pulse { width:6px; height:6px; border-radius:50%; }
.st-badge.on { background:rgba(52,211,153,0.12); color:var(--success); border:1px solid rgba(52,211,153,0.3); }
.st-badge.on .pulse { background:var(--success); animation:vgpulse 2s infinite; }
.st-badge.off { background:rgba(251,113,133,0.12); color:var(--danger); border:1px solid rgba(251,113,133,0.3); }
.st-badge.off .pulse { background:var(--danger); }

.uc-info { display:flex; flex-direction:column; gap:9px; padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin-bottom:14px; }
.uc-row { display:flex; align-items:center; gap:10px; font-size:13px; }
.uc-row .ic { width:30px; height:30px; border-radius:9px; background:rgba(255,255,255,0.04); display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--primary-3); flex-shrink:0; }
.uc-row a, .uc-row > span { color:var(--text); text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:color 0.16s; min-width:0; }
.uc-row a:hover { color:var(--primary-2); }
.uc-row.wa .ic { color:var(--success); background:rgba(52,211,153,0.08); }
.uc-row .lic-badge { margin-left:auto; font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; color:var(--primary-3); background:rgba(99,102,241,0.1); border:1px solid rgba(99,102,241,0.2); padding:3px 10px; border-radius:8px; flex-shrink:0; }
.uc-acts { display:flex; gap:8px; }
.uc-acts .act { flex:1; height:40px; border-radius:11px; border:1px solid var(--border-2); background:rgba(255,255,255,0.03); color:var(--muted); cursor:pointer; display:flex; align-items:center; justify-content:center; gap:7px; font-size:12px; font-weight:700; font-family:inherit; transition:0.18s; }
.uc-acts .act:hover { transform:translateY(-2px); }
.uc-acts .act.edit:hover { background:var(--primary); color:#fff; border-color:var(--primary); box-shadow:0 8px 18px rgba(99,102,241,0.4); }
.uc-acts .act.lock:hover { background:var(--warn); color:#1a1206; border-color:var(--warn); box-shadow:0 8px 18px rgba(251,191,36,0.4); }
.uc-acts .act.del { flex:0 0 44px; }
.uc-acts .act.del:hover { background:var(--danger); color:#fff; border-color:var(--danger); box-shadow:0 8px 18px rgba(251,113,133,0.4); }

.bc-no-result { padding:50px; text-align:center; color:var(--muted); grid-column:1 / -1; }
.bc-no-result i { font-size:32px; color:var(--faint); margin-bottom:14px; display:block; }

@media (max-width:760px){ .bc-grid { grid-template-columns:1fr; } .bc-stats { grid-template-columns:repeat(3,1fr); } }

/* Linha de equipe dentro do card */
.uc-row.team { color:var(--text); }
.uc-row.team .ic { color:var(--primary-2); background:rgba(99,102,241,0.08); }
.uc-row.team .team-btn { margin-left:auto; background:rgba(99,102,241,0.1); border:1px solid rgba(99,102,241,0.25); color:var(--primary-2); font-family:inherit; font-size:11px; font-weight:700; padding:5px 12px; border-radius:9px; cursor:pointer; transition:0.16s; }
.uc-row.team .team-btn:hover { background:var(--primary); color:#fff; border-color:var(--primary); }

/* Modal de equipe */
.eq-overlay { position:fixed; inset:0; background:rgba(5,8,16,0.7); backdrop-filter:blur(6px); z-index:9999; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity 0.2s; }
.eq-overlay.show { opacity:1; pointer-events:auto; }
.eq-modal { background:linear-gradient(180deg, #11162a, #0c1020); border:1px solid var(--border-2); border-radius:22px; width:100%; max-width:480px; max-height:80vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,0.6); transform:translateY(14px); transition:transform 0.25s cubic-bezier(0.16,1,0.3,1); }
.eq-overlay.show .eq-modal { transform:translateY(0); }
.eq-head { display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--border); }
.eq-title { font-size:17px; font-weight:800; color:#fff; }
.eq-sub { font-size:12px; color:var(--muted); margin-top:3px; }
.eq-close { width:38px; height:38px; border-radius:11px; border:1px solid var(--border-2); background:rgba(255,255,255,0.03); color:var(--muted); cursor:pointer; font-size:15px; transition:0.16s; }
.eq-close:hover { background:var(--danger); color:#fff; border-color:var(--danger); }
.eq-body { padding:14px 24px 24px; overflow-y:auto; }
.eq-row { display:flex; align-items:center; gap:13px; padding:13px 0; border-bottom:1px solid var(--border); }
.eq-row:last-child { border-bottom:none; }
.eq-ava { width:40px; height:40px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; color:#fff; background:linear-gradient(135deg, var(--primary-2), var(--primary)); box-shadow:inset 0 1px 0 rgba(255,255,255,0.25); }
.eq-id { flex:1; min-width:0; }
.eq-nm { font-weight:700; font-size:14px; color:#fff; }
.eq-ct { font-size:12px; margin-top:3px; }
.eq-ct a { color:var(--primary-3); text-decoration:none; } .eq-ct a:hover { color:var(--primary-2); }
.eq-empty { text-align:center; color:var(--muted); padding:30px; }

/* ===================================================================== */
/*  GUIA DO CLIENTE — modal animado                                      */
/* ===================================================================== */
.help-overlay { position:fixed; inset:0; background:rgba(5,8,16,0.72); backdrop-filter:blur(8px); z-index:9999; display:none; align-items:center; justify-content:center; padding:20px; }
.help-overlay.show { display:flex; }
.help-modal { background:linear-gradient(180deg, #11162a, #0c1020); border:1px solid var(--border-2); border-radius:24px; width:100%; max-width:580px; max-height:90vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 36px 90px rgba(0,0,0,0.65); position:relative; animation:vgCardIn 0.4s cubic-bezier(0.16,1,0.3,1); }
.help-body { flex:1 1 auto; min-height:0; overflow-y:auto; }
.help-nav { flex-shrink:0; }
.help-head { padding:26px 28px 0; position:relative; }
.help-eyebrow { font-size:11px; font-weight:800; letter-spacing:0.22em; text-transform:uppercase; color:var(--primary-3); }
.help-title { font-size:23px; font-weight:900; letter-spacing:-0.02em; margin-top:8px; color:#fff; }
.help-close { position:absolute; top:0; right:28px; width:38px; height:38px; border-radius:11px; border:1px solid var(--border-2); background:rgba(255,255,255,0.03); color:var(--muted); cursor:pointer; font-size:15px; }
.help-close:hover { background:var(--danger); color:#fff; border-color:var(--danger); }
.help-tabs { display:flex; gap:8px; padding:20px 28px 0; }
.htab { flex:1; padding:13px; border-radius:13px; border:1px solid var(--border); background:rgba(255,255,255,0.02); color:var(--muted); cursor:pointer; font-family:inherit; font-size:13px; font-weight:700; transition:0.18s; display:flex; align-items:center; justify-content:center; gap:8px; }
.htab.active { background:linear-gradient(135deg, var(--primary), var(--primary-hover)); color:#fff; border-color:transparent; box-shadow:0 8px 20px rgba(99,102,241,0.35); }
.help-body { padding:8px 28px 20px; }
.stage { background:radial-gradient(circle at 50% 30%, rgba(99,102,241,0.1), transparent 70%); border:1px solid var(--border); border-radius:18px; height:200px; display:flex; align-items:center; justify-content:center; margin:14px 0; overflow:hidden; position:relative; flex-shrink:0; }
.step-info { text-align:center; min-height:88px; }
.step-kicker { font-size:12px; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; color:var(--primary-2); }
.step-title { font-size:19px; font-weight:800; color:#fff; margin-top:8px; }
.step-desc { font-size:14px; color:var(--muted); margin-top:8px; line-height:1.55; max-width:440px; margin:8px auto 0; }
.step-desc b { color:var(--primary-3); }
.help-nav { display:flex; align-items:center; justify-content:space-between; padding:16px 28px 24px; border-top:1px solid var(--border); }
.dots { display:flex; gap:8px; }
.dot { width:8px; height:8px; border-radius:50%; background:var(--border-2); transition:0.2s; cursor:pointer; }
.dot.active { background:var(--primary-2); width:24px; border-radius:4px; }
.nav-btn { border:none; cursor:pointer; font-family:inherit; font-weight:800; font-size:13px; padding:11px 20px; border-radius:12px; transition:0.18s; display:flex; align-items:center; gap:8px; }
.nav-prev { background:rgba(255,255,255,0.04); border:1px solid var(--border-2); color:var(--muted); }
.nav-prev:hover { color:var(--text); }
.nav-prev:disabled { opacity:0.3; cursor:default; }
.nav-next { background:linear-gradient(135deg, var(--primary), var(--primary-hover)); color:#fff; box-shadow:0 8px 20px rgba(99,102,241,0.35); }
.fadein { animation:vgCardIn 0.4s ease; }
.mini-card { background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02)); border:1px solid var(--border-2); border-radius:14px; padding:14px; width:170px; box-shadow:0 12px 30px rgba(0,0,0,0.3); }
.mini-ico { width:44px; height:44px; border-radius:12px; background:linear-gradient(135deg, var(--primary), #4f46e5); display:flex; align-items:center; justify-content:center; color:#fff; font-size:18px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.25); }
.mini-line { height:7px; border-radius:4px; background:rgba(255,255,255,0.1); margin-top:10px; }
.mini-btn { margin-top:12px; height:30px; border-radius:9px; background:linear-gradient(135deg, var(--primary), var(--primary-hover)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:11px; font-weight:800; }
.mini-btn.green { background:linear-gradient(135deg, var(--success), #10b981); color:#04201a; }
.float { animation:gfloat 3s ease-in-out infinite; }
@keyframes gfloat { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-8px); } }
.tap { position:absolute; width:32px; height:32px; border:3px solid var(--primary-2); border-radius:50%; animation:gtap 2s ease-in-out infinite; }
@keyframes gtap { 0%{ transform:scale(0.6); opacity:0; } 40%{ transform:scale(1); opacity:1; } 70%{ transform:scale(1.4); opacity:0; } 100%{ opacity:0; } }
.pulse-btn { animation:gpulseBtn 1.8s ease-in-out infinite; }
@keyframes gpulseBtn { 0%,100%{ box-shadow:0 0 0 0 rgba(99,102,241,0.5); } 50%{ box-shadow:0 0 0 10px rgba(99,102,241,0); } }
.check-pop { animation:gcheckPop 0.6s cubic-bezier(0.16,1,0.3,1); }
@keyframes gcheckPop { 0%{ transform:scale(0); } 60%{ transform:scale(1.2); } 100%{ transform:scale(1); } }
.coin { animation:gcoin 2.5s ease-in-out infinite; }
@keyframes gcoin { 0%{ transform:translateY(-30px); opacity:0; } 30%{ opacity:1; } 100%{ transform:translateY(8px); opacity:1; } }
@keyframes gspin { from{ transform:rotate(0); } to{ transform:rotate(360deg); } }

/* ===== Promoção no editor admin ===== */
.promo-box { background:rgba(251,113,133,0.05); border:1px solid rgba(251,113,133,0.25); border-radius:14px; padding:16px; margin-top:14px; }
.promo-box-head { display:flex; align-items:center; justify-content:space-between; }
.promo-switch { position:relative; display:inline-block; width:46px; height:26px; }
.promo-switch input { opacity:0; width:0; height:0; }
.promo-slider { position:absolute; cursor:pointer; inset:0; background:rgba(255,255,255,0.1); border:1px solid var(--border-2); border-radius:999px; transition:0.2s; }
.promo-slider::before { content:''; position:absolute; height:18px; width:18px; left:3px; bottom:3px; background:#fff; border-radius:50%; transition:0.2s; }
.promo-switch input:checked + .promo-slider { background:linear-gradient(135deg,#fb7185,#e11d48); border-color:transparent; }
.promo-switch input:checked + .promo-slider::before { transform:translateX(20px); }
#promo-fields label { display:block; margin-top:12px; margin-bottom:5px; font-size:12px; color:var(--muted); }
.promo-planos { display:flex; flex-wrap:wrap; gap:8px; }
.promo-chk { display:inline-flex !important; align-items:center; gap:6px; margin:0 !important; background:rgba(255,255,255,0.04); border:1px solid var(--border); padding:8px 12px; border-radius:10px; font-size:12px; color:var(--text); cursor:pointer; }
.promo-chk input { width:auto; }

/* ===== Destaque de promoção na loja ===== */
.sys-product.has-promo { border-color:rgba(251,113,133,0.35); box-shadow:0 14px 40px rgba(0,0,0,0.3), 0 0 30px rgba(251,113,133,0.08); }
.sys-product.has-promo:hover { box-shadow:0 22px 50px rgba(0,0,0,0.4), 0 0 40px rgba(251,113,133,0.15); }
.sys-promo-badge {
    position:absolute; top:12px; right:12px;
    background:linear-gradient(135deg, #fb7185, #e11d48); color:#fff;
    font-size:11px; font-weight:900; padding:6px 12px; border-radius:10px;
    display:flex; align-items:center; gap:6px; text-transform:uppercase; letter-spacing:0.4px;
    box-shadow:0 8px 20px rgba(244,63,94,0.45); z-index:3;
    animation:promoPulse 1.8s ease-in-out infinite;
}
.sys-promo-badge.gratis { background:linear-gradient(135deg, #34d399, #059669); box-shadow:0 8px 20px rgba(52,211,153,0.45); }
@keyframes promoPulse { 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.06); } }
.sys-promo-timer {
    display:inline-flex; align-items:center; gap:6px; margin:6px 0 2px;
    font-size:11px; font-weight:700; color:#fb7185;
    background:rgba(251,113,133,0.1); border:1px solid rgba(251,113,133,0.25);
    padding:4px 10px; border-radius:8px; width:fit-content;
}
.sys-price-val.promo { color:#fb7185 !important; }
.sys-price-label s { color:var(--faint); }

/* Pulso destacado em volta do card em promoção */
.sys-product.has-promo {
    border-color:rgba(251,113,133,0.45);
    animation:promoCardGlow 2.2s ease-in-out infinite;
}
@keyframes promoCardGlow {
    0%,100% { box-shadow:0 14px 40px rgba(0,0,0,0.3), 0 0 0 0 rgba(251,113,133,0.35); }
    50%     { box-shadow:0 18px 46px rgba(0,0,0,0.35), 0 0 22px 4px rgba(251,113,133,0.28); }
}
.sys-product.has-promo:hover { animation:none; box-shadow:0 22px 50px rgba(0,0,0,0.4), 0 0 40px rgba(251,113,133,0.25); }

/* Selo da ocasião (Black Friday etc) */
.sys-promo-occasion {
    display:inline-flex; align-items:center; gap:6px; margin:8px 0 2px;
    font-size:11px; font-weight:800; letter-spacing:0.04em; text-transform:uppercase;
    color:#fff; background:linear-gradient(135deg, #fb7185, #be123c);
    padding:5px 12px; border-radius:8px; width:fit-content;
    box-shadow:0 6px 16px rgba(244,63,94,0.35);
}
.sys-promo-occasion i { font-size:10px; }

/* Contador regressivo urgente */
.sys-promo-timer.urgente {
    color:#fff;
    background:linear-gradient(135deg, #fb7185, #e11d48);
    border-color:transparent;
    box-shadow:0 6px 16px rgba(244,63,94,0.4);
    animation:promoUrgentPulse 1s ease-in-out infinite;
}
.sys-promo-timer.urgente .promo-cd {
    font-family:'JetBrains Mono', monospace;
    font-weight:800; letter-spacing:0.04em;
}
@keyframes promoUrgentPulse {
    0%,100% { box-shadow:0 6px 16px rgba(244,63,94,0.4); }
    50%     { box-shadow:0 6px 22px rgba(244,63,94,0.7); }
}
.sys-promo-timer.urgente.zerado { animation:none; opacity:0.7; }
/* ===== Pop-up premium de bloqueio ===== */
.blk-ov { position:fixed; inset:0; background:rgba(5,8,16,0.78); backdrop-filter:blur(10px); z-index:10000; display:none; align-items:center; justify-content:center; padding:20px; }
.blk-ov.show { display:flex; }
.blk { position:relative; width:100%; max-width:440px; background:linear-gradient(180deg, #121829, #0b0f1d); border:1px solid var(--border-2); border-radius:26px; overflow:hidden; box-shadow:0 40px 100px rgba(0,0,0,0.7), inset 0 1px 0 rgba(255,255,255,0.06); animation:blkIn 0.5s cubic-bezier(0.16,1,0.3,1); }
@keyframes blkIn { from{ opacity:0; transform:translateY(20px) scale(0.96); } to{ opacity:1; transform:translateY(0) scale(1); } }
.blk-topbar { position:absolute; top:0; left:0; right:0; height:3px; }
.blk-glow { position:absolute; top:-60px; left:50%; transform:translateX(-50%); width:240px; height:240px; pointer-events:none; }
.blk-inner { position:relative; padding:38px 34px 30px; text-align:center; }
.blk-icon-wrap { position:relative; width:96px; height:96px; margin:0 auto 22px; display:flex; align-items:center; justify-content:center; }
.blk-ring { position:absolute; border-radius:50%; border:1.5px solid rgba(251,191,36,0.4); width:96px; height:96px; animation:blkRing 2.6s ease-out infinite; }
.blk-ring.r2 { animation-delay:1.3s; }
@keyframes blkRing { 0%{ transform:scale(0.7); opacity:0.8; } 100%{ transform:scale(1.5); opacity:0; } }
.blk-icon { width:74px; height:74px; border-radius:22px; position:relative; z-index:1; display:flex; align-items:center; justify-content:center; }
.blk-icon i { font-size:34px; }
.blk-eyebrow { font-size:11px; font-weight:800; letter-spacing:0.24em; text-transform:uppercase; color:var(--warn); margin-bottom:10px; }
.blk-title { font-size:24px; font-weight:900; letter-spacing:-0.02em; color:#fff; margin-bottom:14px; line-height:1.2; }
.blk-msg { font-size:14.5px; color:var(--muted); line-height:1.65; margin-bottom:26px; }
.blk-msg b { color:var(--primary-3); font-weight:700; }
.blk-contact { background:rgba(99,102,241,0.06); border:1px solid rgba(99,102,241,0.2); border-radius:16px; padding:16px; margin-bottom:22px; display:flex; align-items:center; gap:14px; text-align:left; }
.blk-contact .ic { width:44px; height:44px; border-radius:13px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:18px; color:#fff; background:linear-gradient(135deg, var(--primary), #4f46e5); box-shadow:0 8px 18px rgba(99,102,241,0.4); }
.blk-contact .txt { flex:1; }
.blk-contact .txt .lbl { font-size:11px; color:var(--faint); font-weight:700; text-transform:uppercase; letter-spacing:0.08em; }
.blk-contact .txt .val { font-size:14px; color:#fff; font-weight:700; margin-top:2px; }
.blk-btn { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; text-decoration:none; cursor:pointer; font-family:inherit; padding:15px; border-radius:15px; border:none; font-size:14px; font-weight:800; letter-spacing:0.02em; background:linear-gradient(135deg, var(--primary), var(--primary-hover)); color:#fff; box-shadow:0 12px 30px rgba(99,102,241,0.45); transition:0.2s; margin-bottom:10px; }
.blk-btn i { transition:transform 0.2s; }
.blk-btn:hover { transform:translateY(-2px); box-shadow:0 16px 38px rgba(99,102,241,0.6); }
.blk-btn:hover i { transform:translateX(4px); }
.blk-close { width:100%; background:transparent; border:1px solid var(--border-2); color:var(--muted); padding:13px; border-radius:14px; cursor:pointer; font-family:inherit; font-size:13px; font-weight:700; transition:0.18s; }
.blk-close:hover { color:var(--text); border-color:var(--border); background:rgba(255,255,255,0.02); }

/* ===== Tela de escolha de empresa (premium, escalável) ===== */
#modal-company-select .cs-card {
    position:relative; width:100%; max-width:460px;
    background:linear-gradient(180deg, #121829, #0b0f1d);
    border:1px solid var(--border-2); border-radius:28px; overflow:hidden;
    box-shadow:0 40px 100px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.05);
    animation:csIn 0.55s cubic-bezier(0.16,1,0.3,1);
    display:flex; flex-direction:column; max-height:88vh;
}
@keyframes csIn { from{ opacity:0; transform:translateY(24px) scale(0.96); } to{ opacity:1; transform:none; } }
#modal-company-select .cs-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg, transparent, var(--primary), var(--primary-2), var(--primary), transparent); z-index:2; }

.cs-head { padding:34px 32px 18px; text-align:center; position:relative; flex-shrink:0; }
.cs-glow { position:absolute; top:-40px; left:50%; transform:translateX(-50%); width:200px; height:200px; background:radial-gradient(circle, rgba(99,102,241,0.18), transparent 70%); pointer-events:none; }
.cs-icon { width:64px; height:64px; border-radius:18px; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, var(--primary), #4f46e5); box-shadow:0 14px 32px rgba(99,102,241,0.45), inset 0 2px 0 rgba(255,255,255,0.3); position:relative; z-index:1; }
.cs-icon i { font-size:26px; color:#fff; }
.cs-title { font-size:22px; font-weight:900; letter-spacing:-0.02em; color:#fff; margin-bottom:8px; }
.cs-sub { font-size:13.5px; color:var(--muted); line-height:1.5; }

.cs-search { display:flex; align-items:center; gap:10px; margin:0 22px 6px; padding:11px 14px; background:rgba(255,255,255,0.03); border:1px solid var(--border-2); border-radius:13px; flex-shrink:0; }
.cs-search i { color:var(--faint); font-size:13px; }
.cs-search input { flex:1; background:transparent; border:none; outline:none; color:var(--text); font-family:inherit; font-size:13.5px; }
.cs-search input::placeholder { color:var(--faint); }

.cs-list { padding:6px 22px 10px; display:flex; flex-direction:column; gap:11px; overflow-y:auto; flex:1 1 auto; min-height:0; }
.cs-list::-webkit-scrollbar { width:7px; }
.cs-list::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.12); border-radius:10px; }
.cs-list::-webkit-scrollbar-track { background:transparent; }

.cs-item { display:flex; align-items:center; gap:14px; width:100%; cursor:pointer; text-align:left; background:rgba(255,255,255,0.025); border:1px solid var(--border); border-radius:16px; padding:15px 16px; transition:0.22s cubic-bezier(0.16,1,0.3,1); position:relative; overflow:hidden; animation:itemIn 0.5s both; font-family:inherit; flex-shrink:0; }
@keyframes itemIn { from{ opacity:0; transform:translateX(-12px); } to{ opacity:1; transform:none; } }
.cs-item:hover { background:rgba(99,102,241,0.08); border-color:rgba(99,102,241,0.4); transform:translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,0.3); }
.cs-item:hover .cs-go { background:var(--primary); color:#fff; transform:translateX(3px); }
.cs-item:hover .cs-ava { transform:scale(1.05); }

.cs-ava { width:48px; height:48px; border-radius:14px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:800; color:#fff; transition:0.22s; box-shadow:0 8px 20px rgba(0,0,0,0.3); }
.cs-ava.g1 { background:linear-gradient(135deg, #6366f1, #4338ca); }
.cs-ava.g2 { background:linear-gradient(135deg, #0ea5e9, #2563eb); }
.cs-ava.g3 { background:linear-gradient(135deg, #8b5cf6, #6d28d9); }
.cs-ava.g4 { background:linear-gradient(135deg, #f59e0b, #d97706); }

.cs-info { flex:1; min-width:0; }
.cs-name { font-size:15px; font-weight:800; color:#fff; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cs-role { font-size:11.5px; color:var(--muted); display:flex; align-items:center; gap:6px; }
.cs-role .tag { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:999px; font-weight:700; font-size:10px; letter-spacing:0.02em; }
.cs-role .tag.owner { background:rgba(52,211,153,0.12); color:var(--success); border:1px solid rgba(52,211,153,0.25); }
.cs-role .tag.emp { background:rgba(129,140,248,0.12); color:var(--primary-2); border:1px solid rgba(129,140,248,0.25); }

.cs-go { width:34px; height:34px; border-radius:10px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.05); color:var(--muted); font-size:13px; transition:0.22s; }

.cs-no-result { text-align:center; color:var(--muted); font-size:13px; padding:10px 22px 4px; }
.cs-no-result i { margin-right:6px; color:var(--faint); }

.cs-foot { padding:12px 22px 24px; text-align:center; flex-shrink:0; }
.cs-foot p { font-size:11.5px; color:var(--faint); }
.cs-foot i { margin-right:4px; }

/* ===== ACESSO POR SOFTWARE (modal da equipe) ===== */
.team-sec-label{color:var(--primary);font-weight:bold;display:block;margin:6px 0 10px;}
.sw-all-row{display:flex;align-items:center;justify-content:space-between;background:rgba(99,102,241,.10);border:1px dashed var(--primary);border-radius:10px;padding:10px 14px;margin-bottom:12px;}
.sw-all-row label{color:var(--primary);font-weight:700;display:flex;align-items:center;gap:8px;cursor:pointer;margin:0;}
.sw-all-row input{width:18px;height:18px;accent-color:var(--primary);}
.sw-access-list{display:flex;flex-direction:column;gap:8px;max-height:190px;overflow-y:auto;margin-bottom:18px;padding-right:4px;}
.sw-access-item{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.03);border:1px solid var(--border-2);border-radius:10px;padding:11px 14px;cursor:pointer;transition:.2s;margin:0;}
.sw-access-item:hover{border-color:var(--primary);background:rgba(99,102,241,.08);}
.sw-access-item input{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0;}
.sw-access-item .sw-ic{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--primary),#818cf8);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;flex-shrink:0;}
.sw-access-item span.nm{color:#fff;font-weight:600;}

/* modal da equipe rola inteiro quando passa da tela */
#modal-team .modal-card{max-height:90vh;overflow-y:auto;}
.sw-access-list{max-height:none;overflow:visible;}
/* contador de sistemas na aba admin */
.sys-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 8px;margin-left:8px;border-radius:999px;background:rgba(99,102,241,.18);border:1px solid rgba(99,102,241,.45);color:#818cf8;font-size:.7em;font-weight:800;vertical-align:middle;}

.rep-filter{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:18px;}
.rep-presets{display:flex;gap:8px;flex-wrap:wrap;}
.rep-pbtn{background:rgba(255,255,255,.04);border:1px solid var(--border-2,#2a3550);color:#cbd5e1;padding:8px 14px;border-radius:10px;cursor:pointer;font-weight:600;font-size:.85em;transition:.2s;}
.rep-pbtn:hover{border-color:var(--primary,#6366f1);}
.rep-pbtn.active{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1);color:#fff;}
.rep-range{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:.85em;}
.rep-range input{background:rgba(255,255,255,.04);border:1px solid var(--border-2,#2a3550);color:#fff;padding:8px 10px;border-radius:10px;color-scheme:dark;}
.rep-apply{background:var(--primary,#6366f1);border:none;color:#fff;padding:8px 16px;border-radius:10px;cursor:pointer;font-weight:700;}
.rep-periodo{color:#94a3b8;font-size:.85em;margin-bottom:14px;}
.rep-periodo b{color:#e2e8f0;}
.rep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px;}
.rep-kpi{display:flex;align-items:center;gap:14px;background:linear-gradient(160deg,#1a2236,#141a2b);border:1px solid rgba(129,140,248,.14);border-radius:16px;padding:18px;}
.rep-k-ico{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;background:linear-gradient(135deg,#6366f1,#818cf8);flex-shrink:0;}
.rep-kpi.money .rep-k-ico{background:linear-gradient(135deg,#16b884,#10b981);}
.rep-kpi.mrr .rep-k-ico{background:linear-gradient(135deg,#0ea5e9,#2563eb);}
.rep-kpi.tick .rep-k-ico{background:linear-gradient(135deg,#f59e0b,#fbbf24);}
.rep-kpi.conv .rep-k-ico{background:linear-gradient(135deg,#ec4899,#f472b6);}
.rep-k-val{font-size:1.5em;font-weight:800;color:#f1f5f9;line-height:1.1;}
.rep-k-lbl{font-size:.78em;color:#94a3b8;margin-top:3px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;}
.rep-sub{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px;}
.rep-subcard{background:rgba(255,255,255,.03);border:1px solid var(--border-2,#2a3550);border-radius:14px;padding:16px;text-align:center;}
.rs-n{font-size:1.8em;font-weight:800;color:#818cf8;}
.rs-l{font-size:.8em;color:#94a3b8;margin-top:4px;}
.rep-note{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.3);color:#fbbf24;border-radius:10px;padding:10px 14px;font-size:.82em;margin-bottom:14px;}
.rep-section{background:linear-gradient(160deg,#1a2236,#141a2b);border:1px solid rgba(129,140,248,.12);border-radius:16px;padding:18px;margin-bottom:14px;}
.rep-sec-head{font-weight:700;color:#e2e8f0;margin-bottom:14px;display:flex;align-items:center;gap:8px;}
.rep-sec-head i{color:#818cf8;}
.rep-pill{margin-left:auto;background:rgba(99,102,241,.18);border:1px solid rgba(99,102,241,.4);color:#818cf8;padding:2px 10px;border-radius:999px;font-size:.75em;font-weight:800;}
.rep-empty{color:#64748b;font-size:.9em;padding:8px 2px;}
.rep-renov{display:flex;flex-direction:column;gap:8px;}
.rep-rrow{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.03);border:1px solid var(--border-2,#2a3550);border-radius:11px;padding:11px 14px;}
.rep-rrow.urg{border-color:rgba(245,158,11,.5);background:rgba(245,158,11,.07);}
.rr-info{flex:1;}
.rr-nome{font-weight:700;color:#f1f5f9;}
.rr-sys{font-size:.8em;color:#94a3b8;}
.rr-dias{font-size:.82em;font-weight:700;color:#fbbf24;}
.rr-zap{width:38px;height:38px;border-radius:10px;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:16px;}
.rr-zap.off{background:#334155;color:#64748b;}
.rep-rank{display:flex;flex-direction:column;gap:12px;}
.rk-top{display:flex;justify-content:space-between;margin-bottom:6px;font-size:.9em;}
.rk-nome{color:#e2e8f0;font-weight:600;}
.rk-val{color:#94a3b8;}
.rk-bar{height:8px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden;}
.rk-fill{height:100%;background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:999px;}
.rep-export{display:flex;gap:12px;flex-wrap:wrap;}
.rep-export button{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.04);border:1px solid var(--border-2,#2a3550);color:#e2e8f0;padding:12px 18px;border-radius:12px;cursor:pointer;font-weight:600;transition:.2s;}
.rep-export button:hover{border-color:var(--primary,#6366f1);background:rgba(99,102,241,.08);}
@media(max-width:760px){.rep-grid,.rep-sub{grid-template-columns:1fr;}}

/* ===== CONTROLE DE PONTO · funcionários por empresa ===== */
.lp-loading,.lp-empty{padding:40px;text-align:center;color:var(--muted);}
.lp-empty i{color:var(--primary-2);margin-right:6px;}
.lp-head{font-weight:700;color:#e2e8f0;margin-bottom:16px;display:flex;align-items:center;gap:9px;font-size:1.05em;}
.lp-head i{color:var(--primary-2);}
.lp-list{display:flex;flex-direction:column;gap:12px;}
.lp-card{display:flex;align-items:center;gap:16px;background:linear-gradient(160deg,#1a2236,#141a2b);border:1px solid rgba(129,140,248,.14);border-radius:16px;padding:16px 18px;}
.lp-ava{width:46px;height:46px;border-radius:13px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;color:#fff;background:linear-gradient(135deg,var(--primary),#4f46e5);}
.lp-ava.g2{background:linear-gradient(135deg,#0ea5e9,#2563eb);}
.lp-ava.g3{background:linear-gradient(135deg,#8b5cf6,#6366f1);}
.lp-ava.g4{background:linear-gradient(135deg,#ec4899,#be185d);}
.lp-info{flex:1;min-width:0;}
.lp-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap;}
.lp-nome{font-weight:800;color:#fff;font-size:15px;}
.lp-plano{font-size:11px;color:#94a3b8;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.3);padding:3px 9px;border-radius:999px;font-weight:700;}
.lp-ajustado{font-size:11px;color:var(--warn);background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.35);padding:3px 9px;border-radius:999px;font-weight:700;}
.lp-barwrap{display:flex;align-items:center;gap:12px;}
.lp-bar{flex:1;height:9px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;}
.lp-fill{height:100%;border-radius:999px;transition:width .4s;}
.lp-fill.ok{background:linear-gradient(90deg,#34d399,#10b981);}
.lp-fill.warn{background:linear-gradient(90deg,#fbbf24,#f59e0b);}
.lp-fill.full{background:linear-gradient(90deg,#fb7185,#e11d48);}
.lp-count{font-size:13px;font-weight:800;color:#e2e8f0;white-space:nowrap;}
.lp-count small{color:#64748b;font-weight:600;}
.lp-count.full{color:#fb7185;}
.lp-btn{flex-shrink:0;display:flex;align-items:center;gap:7px;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.35);color:var(--primary-3);padding:10px 16px;border-radius:11px;cursor:pointer;font-weight:700;font-size:12.5px;font-family:inherit;transition:.2s;}
.lp-btn:hover{background:var(--primary);color:#fff;}
.lp-note{margin-top:16px;font-size:12.5px;color:#94a3b8;background:rgba(99,102,241,.06);border:1px solid rgba(99,102,241,.2);border-radius:10px;padding:11px 14px;}
@media(max-width:680px){.lp-card{flex-wrap:wrap;}.lp-btn{width:100%;justify-content:center;}}

.ponto-exc-banner{display:flex;align-items:center;gap:10px;margin-top:10px;padding:11px 14px;border-radius:10px;background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.35);color:#fbbf24;font-size:12.5px;font-weight:600;line-height:1.4;animation:pontoExcPulse 2s ease-in-out infinite;}
.ponto-exc-banner i{font-size:14px;flex-shrink:0;animation:pontoExcShake 2s ease-in-out infinite;transform-origin:center;}
.ponto-exc-banner b{color:#fff;}
@keyframes pontoExcPulse{
    0%,100%{border-color:rgba(251,191,36,.35);box-shadow:0 0 0 0 rgba(251,191,36,0);}
    50%{border-color:rgba(251,191,36,.85);box-shadow:0 0 18px 2px rgba(251,191,36,.35);}
}
@keyframes pontoExcShake{
    0%,90%,100%{transform:scale(1) rotate(0);}
    93%{transform:scale(1.15) rotate(-8deg);}
    96%{transform:scale(1.15) rotate(8deg);}
}