/* ============================================================
   LUMYRA v2.4 — Royal Light (tema claro) + Dark Mode
   Sistema de temas por variáveis. Claro = padrão.
   html[data-theme="dark"] ativa a variante escura.
   ============================================================ */

:root{
  --bg:#eef1f7;
  --bg-grad:radial-gradient(1200px 600px at 80% -10%,#ffffff 0,#eef1f7 45%,#e7ebf3 100%);
  --surface:#ffffff;
  --surface-2:#f6f8fc;
  --sidebar:#ffffff;
  --border:rgba(23,35,66,.10);
  --border-strong:rgba(23,35,66,.18);
  --text:#1b2230;
  --muted:#5d667c;
  --heading:#2a3346;
  --gold:#b3832a;
  --gold-ink:#8a6418;
  --gold-soft:rgba(179,131,42,.12);
  --gold-line:rgba(179,131,42,.30);
  --blue:#3b5bdb;
  --blue-soft:rgba(59,91,219,.10);
  --green:#1f9d55;
  --green-soft:rgba(31,157,85,.12);
  --red:#e03131;
  --red-soft:rgba(224,49,49,.10);
  --shadow:0 12px 34px rgba(23,35,66,.09);
  --shadow-soft:0 6px 18px rgba(23,35,66,.06);
  --ring:0 0 0 3px rgba(59,91,219,.18);
}

html[data-theme="dark"]{
  --bg:#0a0e16;
  --bg-grad:radial-gradient(1200px 600px at 75% -10%,#15203a 0,#0a0e16 45%,#05070b 100%);
  --surface:#121925;
  --surface-2:#0d131e;
  --sidebar:#0a0f18;
  --border:rgba(214,170,67,.18);
  --border-strong:rgba(214,170,67,.34);
  --text:#f1ece0;
  --muted:#9aa3b4;
  --heading:#ecd9a6;
  --gold:#d6aa43;
  --gold-ink:#f0dca0;
  --gold-soft:rgba(214,170,67,.14);
  --gold-line:rgba(214,170,67,.30);
  --blue:#6f8bff;
  --blue-soft:rgba(111,139,255,.12);
  --green:#56d364;
  --green-soft:rgba(86,211,100,.14);
  --red:#ff7a7a;
  --red-soft:rgba(255,122,122,.12);
  --shadow:0 16px 44px rgba(0,0,0,.45);
  --shadow-soft:0 8px 24px rgba(0,0,0,.35);
  --ring:0 0 0 3px rgba(111,139,255,.25);
}

*{box-sizing:border-box}
html,body{background:var(--bg)}
body{margin:0;background:var(--bg-grad);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased;transition:background .25s ease,color .25s ease}

/* ---------------- Sidebar ---------------- */
.sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;background:var(--sidebar);border-right:1px solid var(--border);padding:20px;z-index:5;box-shadow:var(--shadow-soft)}
.brand{text-align:center;border-bottom:1px solid var(--border);padding-bottom:22px}
.brand img{width:140px;height:120px;object-fit:contain}
.brand strong{display:block;letter-spacing:9px;color:var(--gold);font-size:22px;font-weight:800}
.brand span{display:block;color:var(--muted);font-size:12px;margin-top:8px}
.sidebar nav{margin-top:24px;display:grid;gap:6px}
.sidebar a{color:var(--text);text-decoration:none;padding:13px 15px;border-radius:13px;border:1px solid transparent;display:flex;gap:12px;align-items:center;font-weight:500;transition:.18s ease}
.sidebar a:hover{background:var(--surface-2);border-color:var(--border)}
.sidebar a.active{border-color:var(--gold-line);background:var(--gold-soft);color:var(--gold-ink)}
.sidebar a span{color:var(--gold)}
.plan{border:1px solid var(--border);border-radius:16px;padding:18px;text-align:center;background:var(--surface-2)}
.plan b{color:var(--heading)}
.plan small{display:block;color:var(--muted);margin-top:6px}

/* ---------------- Main + Topbar ---------------- */
.main{margin-left:280px;min-height:100vh;padding:28px}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.top h1{margin:0;font-size:27px;color:var(--heading)}
.top p{margin:6px 0 0;color:var(--muted)}
.search{min-width:300px;border:1px solid var(--border);border-radius:13px;padding:12px 15px;color:var(--muted);background:var(--surface)}
.search kbd{float:right;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 7px;font-size:12px}
.profile{width:50px;height:50px;border:1px solid var(--gold-line);border-radius:50%;display:grid;place-items:center;color:var(--gold-ink);background:var(--gold-soft);font-weight:800}

/* Botão de tema (dark mode) */
.theme-toggle{width:48px;height:48px;border-radius:13px;border:1px solid var(--border);background:var(--surface);color:var(--gold-ink);display:inline-grid;place-items:center;cursor:pointer;transition:.18s ease}
.theme-toggle:hover{border-color:var(--gold-line);background:var(--gold-soft)}
.theme-toggle svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.9}
.theme-toggle .ic-sun{display:none}
.theme-toggle .ic-moon{display:block}
html[data-theme="dark"] .theme-toggle .ic-sun{display:block}
html[data-theme="dark"] .theme-toggle .ic-moon{display:none}

/* ---------------- Grids / Cards ---------------- */
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.grid2{display:grid;grid-template-columns:1.4fr .8fr;gap:18px;margin-top:18px}
.card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:var(--shadow)}
.card.kpi{position:relative;overflow:hidden}
.card.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--gold),var(--blue))}
.kpi span,.panel h2{color:var(--gold-ink);text-transform:uppercase;font-size:12px;letter-spacing:.08em;font-weight:700}
.panel h2{margin:0 0 14px}
.kpi b{display:block;font-size:30px;margin:12px 0;color:var(--heading);font-weight:800}
.kpi small,.muted{color:var(--muted)}

/* Gráfico (placeholder elegante, claro/escuro) */
.fake-chart{height:260px;border-radius:14px;border:1px solid var(--border);position:relative;overflow:hidden;
  background:
    linear-gradient(180deg,var(--blue-soft),transparent 70%),
    repeating-linear-gradient(0deg,transparent 0 38px,var(--border) 39px 40px),
    var(--surface-2)}
.fake-chart:after{content:"";position:absolute;left:4%;right:4%;bottom:36%;height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--blue),var(--gold));
  box-shadow:80px -40px 0 -1px var(--blue),180px -22px 0 -1px var(--gold),280px -68px 0 -1px var(--blue),420px -54px 0 -1px var(--gold);
  transform:skewY(-7deg)}

/* ---------------- Tabelas ---------------- */
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:13px;border-bottom:1px solid var(--border)}
th{color:var(--gold-ink);font-size:13px;font-weight:700}
td{color:var(--text)}
.badge{display:inline-flex;padding:6px 11px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:12px;font-weight:600}

/* ---------------- Botões / Forms ---------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--gold-line);background:var(--gold-soft);color:var(--gold-ink);padding:11px 16px;border-radius:12px;text-decoration:none;cursor:pointer;font-weight:700;transition:.18s ease}
.btn:hover{border-color:var(--gold);box-shadow:var(--shadow-soft)}
.btn.red{color:var(--red);border-color:var(--red-soft);background:var(--red-soft)}
.btn.ghost{background:var(--surface);color:var(--text)}
input,select,textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:11px;color:var(--text);padding:12px;font-family:inherit;font-size:14px;transition:.15s ease}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:var(--ring)}
input::placeholder,textarea::placeholder{color:var(--muted)}
label{display:block;color:var(--gold-ink);margin:10px 0 7px;font-weight:600;font-size:13px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.flash{border:1px solid var(--green);background:var(--green-soft);color:var(--text);padding:14px;border-radius:13px;margin-bottom:16px}
.flash.err{border-color:var(--red);background:var(--red-soft)}

/* ---------------- Login ---------------- */
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.loginbox{width:min(440px,100%);text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:30px;box-shadow:var(--shadow)}
.loginbox img{width:150px}
.loginbox h1{letter-spacing:9px;color:var(--gold);margin:.2em 0}
.login-toggle{position:absolute;top:18px;right:18px}

/* ---------------- Hambúrguer / overlay / colapso ---------------- */
.overlay{display:none;position:fixed;inset:0;background:rgba(15,20,35,.45);backdrop-filter:blur(3px);z-index:8}
.top-left{display:flex;align-items:center;gap:14px;min-width:0}
.hamburger{width:48px;height:48px;display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;border:1px solid var(--border);border-radius:13px;background:var(--surface);cursor:pointer;flex:0 0 auto;transition:.18s ease}
.hamburger:hover{border-color:var(--gold-line);background:var(--gold-soft)}
.hamburger span{width:22px;height:2px;border-radius:9px;background:var(--gold);transition:.22s ease}
.sidebar,.main{transition:.25s ease,background .25s ease}
.sidebar-collapsed .sidebar{width:92px;padding:18px 12px}
.sidebar-collapsed .main{margin-left:92px}
.sidebar-collapsed .brand img{width:54px;height:54px}
.sidebar-collapsed .brand strong,.sidebar-collapsed .brand span,.sidebar-collapsed .sidebar a:not(.active),.sidebar-collapsed .plan{font-size:0}
.sidebar-collapsed .sidebar nav{gap:10px}
.sidebar-collapsed .sidebar a{justify-content:center;padding:14px 10px}
.sidebar-collapsed .sidebar a span{font-size:18px}
.sidebar-collapsed .sidebar a.active{font-size:0}
.sidebar-collapsed .sidebar a.active span{font-size:18px}
.sidebar-collapsed .brand{padding-bottom:16px}
.sidebar-collapsed .brand strong{letter-spacing:0}
.sidebar-collapsed .brand:after{content:'L';display:inline-grid;place-items:center;width:38px;height:38px;margin-top:10px;border:1px solid var(--gold-line);border-radius:12px;color:var(--gold);font-weight:800}
.sidebar-open .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.sidebar-open .hamburger span:nth-child(2){opacity:0}
.sidebar-open .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:1000px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:min(310px,86vw);transform:translateX(-105%);z-index:9;overflow-y:auto}
  .sidebar-open .sidebar{transform:translateX(0)}
  .sidebar-open .overlay{display:block}
  .main{margin-left:0;padding:18px}
  .top{align-items:flex-start;flex-wrap:wrap}
  .top-left{width:100%}
  .top-left h1{font-size:24px}
  .search{order:3;min-width:100%}
  .profile{margin-left:auto}
  .brand img{width:120px;height:96px}
  .grid,.grid2,.form-grid{grid-template-columns:1fr}
  .hamburger{display:inline-flex}
  .sidebar-collapsed .sidebar{width:min(310px,86vw);padding:20px}
  .sidebar-collapsed .main{margin-left:0}
  .sidebar-collapsed .brand img{width:120px;height:96px}
  .sidebar-collapsed .brand strong,.sidebar-collapsed .brand span,.sidebar-collapsed .sidebar a,.sidebar-collapsed .plan{font-size:initial}
  .sidebar-collapsed .brand:after{display:none}
  .sidebar-collapsed .sidebar a{justify-content:flex-start;padding:13px 15px}
  .sidebar-collapsed .sidebar a span{font-size:initial}
}
@media(min-width:1001px){.hamburger{display:inline-flex}.overlay{display:none!important}}

/* ---------------- Dashboard: ação rápida + modal ---------------- */
.dashboard-actions{display:flex;align-items:center;gap:14px;margin:-4px 0 20px;flex-wrap:wrap}
.quick-btn{font-weight:800}
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(15,20,35,.55);backdrop-filter:blur(4px);z-index:50;padding:24px;overflow:auto}
.modal-backdrop.open{display:grid;place-items:center}
.modal-card{width:min(1120px,100%);background:var(--surface);border:1px solid var(--border-strong);border-radius:22px;padding:22px;box-shadow:var(--shadow)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:18px}
.modal-head h2{margin:0;color:var(--gold-ink)}
.modal-head p{margin:7px 0 0;color:var(--muted)}
.modal-close{width:42px;height:42px;border-radius:13px;border:1px solid var(--border);background:var(--surface-2);color:var(--gold-ink);font-size:24px;cursor:pointer}
.quick-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}
.plan-picker{display:grid;gap:10px;align-content:start;max-height:540px;overflow:auto;padding-right:4px}
.plan-choice{text-align:left;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:15px;padding:15px;cursor:pointer;transition:.16s ease}
.plan-choice strong{display:block;color:var(--heading);margin-bottom:6px}
.plan-choice small{color:var(--muted)}
.plan-choice:hover,.plan-choice.active{border-color:var(--gold-line);background:var(--gold-soft);box-shadow:var(--shadow-soft)}
.template-box textarea{min-height:390px;resize:vertical;line-height:1.45;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}
.empty-state{border:1px dashed var(--gold-line);border-radius:16px;padding:22px;background:var(--surface-2)}
.empty-state b{color:var(--gold-ink)}
@media(max-width:900px){.quick-layout{grid-template-columns:1fr}.modal-backdrop{padding:12px}.modal-card{padding:16px}.modal-actions{justify-content:stretch}.modal-actions .btn{width:100%}}

/* ---------------- Telas internas / Testes ---------------- */
.inline-form{display:grid;gap:8px}
.action-row{display:flex;gap:8px;margin:8px 0;align-items:center}
.action-row select{max-width:110px}
.panel table textarea{min-width:220px}
.panel table input[type="datetime-local"]{min-width:190px}
@media(max-width:1100px){table,tr,td,th{font-size:13px}.panel{overflow:auto}.panel table{min-width:980px}}

.tests-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}
.eyebrow{display:inline-block;color:var(--gold-ink);letter-spacing:.14em;text-transform:uppercase;font-weight:800;font-size:11px;margin-bottom:6px}
.tests-kpis{margin:0 0 16px 0}
.tests-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.search-lite{display:flex;align-items:center;gap:10px;flex:1;min-width:240px;background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:0 14px}
.search-lite input{width:100%;background:transparent;border:0;color:var(--text);outline:0;padding:14px 0;font-size:14px}
.chip-row{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--border);background:var(--surface);color:var(--gold-ink);border-radius:999px;padding:10px 14px;cursor:pointer;font-weight:700}
.chip.active,.chip:hover{background:var(--gold-soft);border-color:var(--gold-line);color:var(--gold-ink)}
.empty-icon{width:72px;height:72px;margin:0 auto 14px;border:1px solid var(--gold-line);border-radius:24px;display:grid;place-items:center;font-size:32px;background:var(--gold-soft)}
.test-card-list{display:flex;flex-direction:column;gap:16px}
.test-card{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;padding:16px;border:1px solid var(--border);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-soft)}
.test-card-main{min-width:0}
.test-title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}
.test-title-row h3{margin:0 0 4px 0;color:var(--heading);font-size:20px}
.status-pill{white-space:nowrap;border-radius:999px;padding:8px 12px;font-weight:900;font-size:12px;border:1px solid var(--border)}
.status-good{background:var(--green-soft);color:var(--green);border-color:var(--green)}
.status-warn{background:rgba(186,117,23,.12);color:#a9701a;border-color:var(--gold-line)}
.status-bad{background:var(--red-soft);color:var(--red);border-color:var(--red)}
.test-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.info-box{border:1px solid var(--border);background:var(--surface-2);border-radius:15px;padding:12px;min-width:0}
.info-box small,.credentials-grid small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.info-box b{display:block;color:var(--gold-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.info-box span{display:block;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.credentials-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;margin-bottom:12px}
.credentials-grid>div{border:1px solid var(--blue-soft);background:var(--blue-soft);border-radius:15px;padding:12px;min-width:0}
.credentials-grid code{display:block;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:transparent;padding:0}
.test-details{border:1px solid var(--border);border-radius:15px;padding:12px;margin-bottom:12px;background:var(--surface-2)}
.test-details summary{cursor:pointer;color:var(--gold-ink);font-weight:800}
.link-stack{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.link-stack label{color:var(--muted);font-size:12px}
.link-stack textarea{width:100%;resize:vertical;min-height:46px}
.quick-actions{display:flex;gap:8px;flex-wrap:wrap}
.test-card-actions{border-left:1px solid var(--border);padding-left:16px;display:flex;flex-direction:column;gap:12px}
.edit-box,.renew-box{display:flex;flex-direction:column;gap:8px}
.edit-box label,.renew-box label{color:var(--gold-ink);font-weight:800;font-size:12px}
.edit-box input,.edit-box select,.renew-box select{width:100%}
.renew-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.full{width:100%}
.bad{color:var(--red)}.warn{color:#a9701a}.good{color:var(--green)}
@media(max-width:980px){.tests-hero,.tests-toolbar{align-items:stretch;flex-direction:column}.test-card{grid-template-columns:1fr}.test-card-actions{border-left:0;border-top:1px solid var(--border);padding-left:0;padding-top:14px}.test-info-grid,.credentials-grid{grid-template-columns:1fr}.quick-actions .btn{flex:1 1 100%}.renew-row{grid-template-columns:1fr}.renew-row .btn{width:100%}}

/* ---------------- Topbar ações + logout ---------------- */
.top-actions{display:flex;align-items:center;gap:12px;margin-left:auto}
.logout-top{height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;border-radius:13px;border:1px solid var(--red-soft);background:var(--red-soft);color:var(--red);text-decoration:none;font-weight:800;letter-spacing:.02em}
.logout-top:hover{border-color:var(--red);box-shadow:var(--shadow-soft)}
.sidebar-bottom{display:flex;flex-direction:column;gap:12px}
.logout-side{color:var(--red)!important;border-color:var(--red-soft)!important;background:var(--red-soft)!important;font-weight:800}
.logout-side:hover{border-color:var(--red)!important}
@media(max-width:1000px){
  .top-actions{width:100%;display:grid;grid-template-columns:1fr 50px 50px auto;gap:10px}
  .top-actions .search{min-width:0;order:0}
  .logout-top{height:50px;padding:0 14px}
}

/* ---------------- Estrutura sidebar (flex, evita sobreposição) ---------------- */
.sidebar{display:flex!important;flex-direction:column!important;overflow:hidden!important}
.sidebar .brand{flex:0 0 auto!important}
.sidebar nav{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;padding-right:4px!important;margin-bottom:14px!important;padding-bottom:8px!important}
.sidebar nav::-webkit-scrollbar{width:5px}
.sidebar nav::-webkit-scrollbar-thumb{background:var(--gold-line);border-radius:99px}
.sidebar-bottom{position:static!important;flex:0 0 auto!important;display:flex!important;flex-direction:column!important;gap:10px!important;margin-top:auto!important;padding-top:12px!important;border-top:1px solid var(--border)!important;background:var(--sidebar)!important}
.sidebar-bottom .plan{position:static!important;margin:0!important;padding:14px!important}
.logout-side{min-height:44px!important;margin:0!important;justify-content:flex-start!important}
@media(max-height:760px) and (min-width:1001px){
  .sidebar{padding:14px!important}
  .brand{padding-bottom:12px!important}
  .brand img{width:104px!important;height:80px!important}
  .brand strong{font-size:18px!important;letter-spacing:7px!important}
  .brand span{font-size:11px!important;margin-top:4px!important}
  .sidebar nav{margin-top:14px!important;gap:5px!important}
  .sidebar a{padding:11px 14px!important;border-radius:12px!important}
  .sidebar-bottom{gap:8px!important;padding-top:9px!important}
  .sidebar-bottom .plan{padding:12px!important;border-radius:14px!important}
}
.sidebar-collapsed .sidebar-bottom{position:static!important;margin-top:auto!important;padding-top:10px!important}
.sidebar-collapsed .logout-side{justify-content:center!important;font-size:0}
.sidebar-collapsed .logout-side span{font-size:18px}
.sidebar-collapsed .sidebar-bottom .plan{display:none}
@media(max-width:1000px){
  .sidebar{overflow-y:auto!important;display:flex!important}
  .sidebar nav{overflow:visible!important;display:grid!important;margin-bottom:12px!important;padding-bottom:0!important}
  .sidebar-bottom{position:static!important;margin-top:18px!important}
  .sidebar-collapsed .logout-side{justify-content:flex-start!important;font-size:initial}
  .sidebar-collapsed .sidebar-bottom .plan{display:block}
}

/* ============================================================
   Novix v2.7 — Clientes (cards estilo painel)
   ============================================================ */
.cli-kpis{margin-bottom:18px}
.cli-new{margin-bottom:18px;padding:16px 20px}
.cli-new>summary{cursor:pointer;font-size:15px;color:var(--heading);font-weight:700;list-style:none}
.cli-new>summary::-webkit-details-marker{display:none}
.cli-filter{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.cli-filter .cli-search{flex:1 1 240px}
.cli-filter select{width:auto;min-width:150px}
.cli-count{margin:0 0 14px;font-size:13px}
.cli-pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:18px}
.btn.mini{padding:7px 11px;font-size:12px;border-radius:9px;font-weight:700}
.cli-list{display:flex;flex-direction:column;gap:12px}
.client-card{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;justify-content:space-between;padding:16px 18px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-soft)}
.cc-main{min-width:0;flex:1 1 320px}
.cc-user{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cc-username{font-size:18px;font-weight:800;color:var(--heading);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;border:1px solid transparent;white-space:nowrap}
.pill-ok{background:var(--green-soft);color:var(--green);border-color:var(--green)}
.pill-warn{background:var(--gold-soft);color:#a9701a;border-color:var(--gold-line)}
.pill-danger{background:var(--red-soft);color:var(--red);border-color:var(--red)}
.cc-name{font-size:13px;color:var(--muted);margin-top:5px}
.cc-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:11px;font-size:13px;color:var(--text)}
.cc-meta-item{display:inline-flex;align-items:center;gap:6px;min-width:0}
.cc-meta-item strong{color:var(--heading)}
.cc-pass{cursor:pointer;border-bottom:1px dashed var(--gold-line);font-family:ui-monospace,Menlo,monospace}
.cc-countdown{margin-top:11px;font-size:12px;font-weight:700;display:inline-block;padding:4px 11px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}
.cc-cd-ok{color:var(--green)}.cc-cd-warn{color:#a9701a}.cc-cd-bad{color:var(--red)}
.cc-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.cc-actions .inl{display:inline-flex;margin:0}
.btn-ic{width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--text);cursor:pointer;font-size:16px;line-height:1;text-decoration:none;transition:.15s ease;padding:0}
.btn-ic:hover{border-color:var(--gold-line);background:var(--gold-soft);transform:translateY(-1px)}
.btn-ic-renew{background:var(--blue-soft);color:var(--blue);border-color:var(--blue-soft)}
.btn-ic-edit{background:var(--gold-soft);color:var(--gold-ink);border-color:var(--gold-line)}
.btn-ic-block{background:var(--gold-soft)}
.btn-ic-ok{background:var(--green-soft);color:var(--green);border-color:var(--green)}
.btn-ic-del{background:var(--red-soft);color:var(--red);border-color:var(--red-soft)}
.renew-wrap{position:relative}
.renew-menu{display:none;position:absolute;top:44px;right:0;z-index:30;min-width:170px;background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow);padding:6px}
.renew-menu.open{display:block}
.renew-menu form{margin:0}
.renew-menu button{width:100%;text-align:left;background:transparent;border:0;color:var(--text);padding:9px 12px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}
.renew-menu button:hover{background:var(--gold-soft);color:var(--gold-ink)}
.cc-edit{flex-basis:100%;display:none;margin-top:4px;border-top:1px dashed var(--border);padding-top:14px}
.cc-edit.open{display:block}
.cli-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cli-edit-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--gold-ink);font-weight:600;margin:0}
.cli-edit-grid input,.cli-edit-grid select{font-size:13px;padding:9px 11px}
.cli-edit-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.pill-test{background:rgba(139,92,246,.14);color:#7c5cd6;border-color:rgba(139,92,246,.45)}
.btn-ic-promote{background:rgba(139,92,246,.14);color:#7c5cd6;border-color:rgba(139,92,246,.4)}
.cli-share{margin-bottom:18px;padding:16px 20px}
.cli-share>summary{cursor:pointer;font-size:15px;color:var(--heading);font-weight:700;list-style:none}
.cli-share>summary::-webkit-details-marker{display:none}
.cli-share .share-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px}
.cli-share input.share-url{flex:1 1 280px;font-family:ui-monospace,Menlo,monospace;font-size:13px}
.renew-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.renew-grid form{margin:0}
.renew-opt{width:100%;justify-content:center}
@media(max-width:760px){
  .client-card{flex-direction:column}
  .cc-actions{width:100%}
  .cli-edit-grid{grid-template-columns:1fr}
  .renew-menu{right:auto;left:0}
}

/* ============================================================
   Novix v2.8 — Dashboard: KPI com ícone, gráfico real, status 1 linha
   ============================================================ */
.card.kpi{padding-right:72px}
.kpi-ic{position:absolute;top:16px;right:16px;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:var(--gold-soft);border:1px solid var(--gold-line)}
.nchart{display:flex;align-items:flex-end;gap:5px;height:232px;padding:6px 0}
.nbar{flex:1;display:flex;align-items:flex-end;height:100%;min-width:0}
.nbar span{display:block;width:100%;border-radius:5px 5px 0 0;background:linear-gradient(180deg,var(--gold),var(--blue));min-height:3px;transition:filter .15s}
.nbar:hover span{filter:brightness(1.12)}
.nchart-foot{margin-top:10px;font-size:12px}
.srv-line{display:flex;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--border);font-size:14px}
.srv-line:last-child{border-bottom:0}
.srv-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.srv-dot.on{background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.srv-dot.off{background:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.srv-name{font-weight:600;color:var(--heading);flex:0 0 auto}
.srv-type{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.srv-up{font-weight:700;color:var(--green);flex:0 0 auto}
