/* ==========================================================================
   UniController · Procurações e Consultas
   Design system no mesmo padrão do Tomelin Gestão Financeira:
   azul-marinho + dourado + verde, Inter, cartões arredondados, menu lateral
   no computador e barra inferior com botão "Novo" no celular.

   Organização:
     1. Fonte e cores (claro e escuro)
     2. Compatibilidade com as telas antigas (variáveis e regras de modo escuro)
     3. Estrutura: menu lateral, topo, conteúdo, barra inferior
     4. Componentes: botões, cartões, KPIs, tabelas, formulários, selos
     5. Painel: cartão de destaque e atalhos coloridos
     6. Folhas (Novo / Mais), busca, avisos
     7. Login
     8. Portal do lojista (classes loj-*)
     9. Responsivo
   ========================================================================== */

/* ── 1. Fonte e cores ─────────────────────────────────────────────────── */
@font-face{font-family:"Inter";src:url("/ui/fonts/inter-latin.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);

  /* marca */
  --brand:#0f2d4a;     /* azul-marinho da marca: fundos (igual nos dois temas) */
  --navy:#0f2d4a; --navy-2:#163e64; --navy-soft:#334155; --blue-ink:#0369a1;
  --gold:#f59e0b; --gold-2:#d97706; --gold-soft:#fcd34d;
  --teal:#059669; --green:#10b981;  --green-2:#15803D; --green-deep:#14532D;
  --red:#ef4444;  --red-soft:#FEF2F2;
  --amber:#D97706;--amber-soft:#FFFBEB;
  --purple:#7C3AED;--purple-soft:#F5F3FF;
  --blue:#0284C7; --blue-soft:#EFF6FF;

  /* superfícies e texto */
  --bg:#F1F5F9; --bg-2:#F8FAFC; --card:#FFFFFF;
  --line:#E2E8F0; --line-2:#F1F5F9;
  --ink:#0F172A; --ink-2:#475569; --ink-3:#94A3B8;
  --title:#0f2d4a;               /* cor de títulos: navy no claro, clara no escuro */

  --shadow-sm:0 1px 2px rgba(15,45,74,.06);
  --shadow:0 6px 22px rgba(15,45,74,.08);
  --shadow-lg:0 18px 50px rgba(15,45,74,.16);
  --r:14px; --r-lg:20px; --r-sm:10px;
  --sidebar:248px; --sidebar-mini:68px; --topbar:58px;
  --font:"Inter","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --mola:cubic-bezier(.34,1.56,.64,1); --suave:cubic-bezier(.4,0,.2,1);

  /* ── nomes antigos (telas que ainda usam var(--muted), var(--border)...) ── */
  --muted:var(--ink-3); --border:var(--line); --text:var(--ink); --txt:var(--ink);
  --hover:var(--bg-2); --input-bg:var(--card); --topbar-bg:var(--card); --white:var(--card);
  --az:#0284c7; --az2:#0369a1; --az3:#075985; --azl:#e0f2fe; --azl2:#bae6fd; --azul-vivo:#0284c7;
  --cy:#06b6d4; --orange:#f59e0b;
  --sidebar-w:var(--sidebar); --topbar-h:var(--topbar);
}

html.dark{
  --bg:#0f172a; --bg-2:#162133; --card:#1e293b;
  --line:#334155; --line-2:#273449;
  --ink:#e2e8f0; --ink-2:#cbd5e1; --ink-3:#94a3b8;
  --title:#e2e8f0;
  --navy:#e2e8f0;      /* no escuro, texto que era marinho fica claro */
  --gold:#fbbf24; --gold-2:#fcd34d; --gold-soft:#92400e;
  --teal:#10b981; --green:#10b981; --green-2:#34d399; --green-deep:#6ee7b7;
  --red:#f87171;  --red-soft:#3A221D;
  --amber:#fbbf24;--amber-soft:#3A2F16;
  --purple:#A78BFA;--purple-soft:#2A2145;
  --blue:#5AB0E0; --blue-soft:#13314D;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow:0 8px 26px rgba(0,0,0,.42);
  --shadow-lg:0 20px 54px rgba(0,0,0,.55);
  --az:#38bdf8; --az2:#0ea5e9; --azl:#0c2d48; --azl2:#123a5c;
  /* fundos e textos de status das telas antigas (no claro valem as cores originais) */
  --tx:var(--ink); --tx2:var(--ink-2);
  --sb-blue:#13314D; --sb-green:#0F3B2E; --sb-red:#3A1616; --sb-amber:#3A2F16; --sb-purple:#2A2145;
  --st-blue:#93C5FD; --st-green:#6EE7B7; --st-red:#FCA5A5; --st-amber:#FCD34D; --st-purple:#C4B5FD;
  color-scheme:dark;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%;overflow-x:hidden}
body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;
  -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:14px;color:inherit}
svg{flex-shrink:0}
.hidden{display:none !important}
.grow{flex:1}
.mono-num{font-variant-numeric:tabular-nums;letter-spacing:-.02em}
::selection{background:rgba(2,132,199,.25)}

/* fundo com textura leve, como no Financeiro */
body.ui-app{background:
  radial-gradient(1200px 600px at 100% -10%,rgba(5,150,105,.06),transparent 60%),
  radial-gradient(900px 500px at -10% 110%,rgba(245,158,11,.06),transparent 60%),
  var(--bg)}

/* ── 2. Compatibilidade com as telas antigas ──────────────────────────── */
/* Estes nomes de classe são usados em ~200 telas; aqui ganham o visual novo. */
.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.page-title{font-size:21px;font-weight:800;color:var(--title);letter-spacing:-.02em;display:flex;align-items:center;gap:10px;line-height:1.2}
.page-title svg{width:20px;height:20px}
.page-sub{font-size:13px;color:var(--ink-3);margin-top:3px}
.eyebrow{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--az)}

.form-group{margin-bottom:14px}
.form-label{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:6px}
.form-control{width:100%;padding:11px 14px;border:1.5px solid var(--line);border-radius:11px;background:var(--bg-2);
  color:var(--ink);font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}
.form-control:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,45,74,.10);background:var(--card)}
html.dark .form-control:focus{border-color:var(--az);box-shadow:0 0 0 3px rgba(74,144,201,.18)}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.two-col{display:grid;grid-template-columns:1fr 2fr;gap:16px;align-items:start}

.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700;letter-spacing:.01em}
.flash-ok{background:rgba(5,150,105,.1);color:var(--teal);border:1px solid rgba(5,150,105,.3);border-radius:12px;padding:11px 14px;margin-bottom:14px;font-size:13px;font-weight:600}
.flash-err{background:var(--red-soft);color:var(--red);border:1px solid rgba(220,38,38,.3);border-radius:12px;padding:11px 14px;margin-bottom:14px;font-size:13px;font-weight:600}
.hide-mobile{}
.show-mob{display:none !important}
.no-print{}

/* Campos sem classe dentro do conteúdo ganham o padrão (estilo inline da tela continua valendo). */
.content :where(input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=file]):not([type=color]):not([type=range]):not([type=hidden]), select, textarea){
  border:1.5px solid var(--line);border-radius:11px;background:var(--bg-2);color:var(--ink);padding:10px 13px;font-size:14px;
  transition:border-color .15s,box-shadow .15s}
.content :where(input, select, textarea):focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,45,74,.10)}
html.dark .content :where(input, select, textarea):focus{border-color:var(--az);box-shadow:0 0 0 3px rgba(74,144,201,.18)}
.content :where(input[type=checkbox], input[type=radio]){accent-color:var(--teal);width:16px;height:16px}

/* Modo escuro das telas antigas: fundos e textos escritos direto no HTML (style="...").
   Mesmas regras do sistema anterior, para nada ficar ilegível. */
html.dark :where(.content) :is(h1,h2,h3,h4,h5,h6,p,span,label,li,td,div,strong,b,small,a):not(:where(.ui,.ui *,.btn,.btn *,.tag,.chip,.badge,.status-badge,.atalho,.atalho *,[class*=placa],[class*=placa] *,[class*=plate],[class*=plate] *)){color:inherit}
html.dark th{background:var(--bg-2) !important;color:var(--ink-3) !important;border-color:var(--line) !important}
html.dark td{border-color:var(--line) !important}
html.dark :is(table,thead,tbody,tr){background:transparent !important}
html.dark :is(input:not([type=submit]):not([type=button]):not([type=reset]):not([type=checkbox]):not([type=radio]),select,textarea){
  background:var(--bg-2) !important;color:var(--ink) !important;border-color:var(--line) !important}
html.dark :is(input,textarea)::placeholder{color:var(--ink-3) !important}
html.dark :is(.card,.ds-card,.panel,.box,.widget,.modal-box,.wiz-header,.sel-card,.tipo-card){background:var(--card) !important;border-color:var(--line) !important;color:var(--ink)}
html.dark :is([style*="background:#fff"],[style*="background: #fff"],[style*="background:#ffffff"],[style*="background: #ffffff"],[style*="background:white"],[style*="background: white"],[style*="background-color:#fff"],[style*="background-color: #fff"],[style*="background-color:#ffffff"],[style*="background-color:white"]){background:var(--card) !important}
html.dark :is([style*="background:#f8fafc"],[style*="background: #f8fafc"],[style*="background:#f1f5f9"],[style*="background: #f1f5f9"],[style*="background:#fafafa"],[style*="background:#f9fafb"],[style*="background:#f5f5f5"],[style*="background:#f3f4f6"],[style*="background:#f0f0f0"],[style*="background:#eee"],[style*="background:#eeeeee"],[style*="background:#E4E9F2"],[style*="background:#e4e9f2"],[style*="background:#ccc"],[style*="background:#ddd"],[style*="background:#e5e7eb"],[style*="background:#e2e8f0"]){background:var(--bg-2) !important}
html.dark :is([style*="color:#000"],[style*="color: #000"],[style*="color:black"],[style*="color:#111"],[style*="color:#222"],[style*="color:#333"],[style*="color:#444"],[style*="color:#212529"],[style*="color:#1a1a1a"],[style*="color:#1e293b"],[style*="color: #1e293b"],[style*="color:#1a202c"],[style*="color:#0f172a"],[style*="color:#0f2d4a"],[style*="color:#050B33"],[style*="color:#050b33"],[style*="color:#1f2937"],[style*="color:#111827"],[style*="color:#2d3748"],[style*="color:var(--navy)"],[style*="color: var(--navy)"],[style*="color:var(--text)"],[style*="color:#0f2d4a"],[style*="color: #0f2d4a"],[style*="color:#163e64"],[style*="color: #163e64"]){color:var(--ink) !important}
html.dark :is([style*="color:#334155"],[style*="color:#374151"],[style*="color:#475569"],[style*="color:#4b5563"],[style*="color:#64748b"],[style*="color:#6b7280"],[style*="color:#6B7280"],[style*="color:#4B5563"],[style*="color:#8892A4"],[style*="color:#8892a4"],[style*="color:#9CA3AF"],[style*="color:#9ca3af"],[style*="color:#94a3b8"],[style*="color:var(--muted)"]){color:var(--ink-2) !important}
html.dark :is([style*="color:#059669"],[style*="color:#10b981"],[style*="color:#10B981"],[style*="color:#16a34a"],[style*="color:#15803d"],[style*="color:#065F46"],[style*="color:#065f46"],[style*="color:#166534"]){color:#6EE7B7 !important}
html.dark :is([style*="color:#dc2626"],[style*="color:#ef4444"],[style*="color:#EF4444"],[style*="color:#e11d48"],[style*="color:#991b1b"],[style*="color:#991B1B"],[style*="color:#b91c1c"]){color:#FCA5A5 !important}
html.dark :is([style*="color:#f59e0b"],[style*="color:#F59E0B"],[style*="color:#d97706"],[style*="color:#92400E"],[style*="color:#92400e"]){color:#FCD34D !important}
html.dark :is([style*="color:#0284c7"],[style*="color:#0369a1"],[style*="color:#0084c7"],[style*="color:#0084C7"],[style*="color:#1d4ed8"],[style*="color:#1D4ED8"],[style*="color:#155e75"],[style*="color:#0e7490"],[style*="color:var(--az)"],[style*="color:#1D5C8E"],[style*="color: #1D5C8E"]){color:#7DD3FC !important}
html.dark :is([style*="background:#D1FAE5"],[style*="background:#d1fae5"],[style*="background:#F0FDF4"],[style*="background:#f0fdf4"],[style*="background:#ECFDF5"],[style*="background:#ecfdf5"],[style*="background:#dcfce7"]){background:#0F3B2E !important}
html.dark :is([style*="background:#FEF2F2"],[style*="background:#fef2f2"],[style*="background:#FEE2E2"],[style*="background:#fee2e2"],[style*="background:#fecaca"]){background:#3A1616 !important}
html.dark :is([style*="background:#FEF3C7"],[style*="background:#fef3c7"],[style*="background:#fffbeb"],[style*="background:#fef9c3"]){background:#3A2F16 !important}
html.dark :is([style*="background:#eff6ff"],[style*="background:#EFF6FF"],[style*="background:#f0f9ff"],[style*="background:#e0f2fe"],[style*="background:#dbeafe"],[style*="background:#DBEAFE"],[style*="background:#ecfeff"]){background:#13314D !important}
html.dark :is([style*="background:#f0fdff"],[style*="background:#cffafe"]){background:#123E4D !important}
html.dark :is([style*="background:#050B33"],[style*="background:#050b33"],[style*="background:var(--brand)"],[style*="background:#0f2d4a"]){background:var(--navy-2) !important}
html.dark :is([style*="border:1px solid #e2e8f0"],[style*="border:1px solid #e5e7eb"],[style*="border:1px solid #eee"],[style*="border: 1px solid #e2e8f0"],[style*="border:1px solid #E4E9F2"],[style*="border-color:#e2e8f0"],[style*="border:2px solid #E4E9F2"]){border-color:var(--line) !important}

/* logotipo original: UNICONTROLLER. (UNI e ponto em azul) */
.uc-logo{display:inline-block;font-weight:900;font-size:17px;letter-spacing:-.03em;line-height:1.05;color:var(--title);white-space:nowrap}
.uc-logo .a{color:#0284c7}
.uc-logo.escuro{color:#fff}
.uc-logo.escuro .a{color:#38bdf8}
html.dark .uc-logo .a{color:#38bdf8}
.uc-logo-sub{display:block;font-size:9.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin-top:4px}
.uc-logo-sub.escuro{color:rgba(255,255,255,.45)}
.uc-logo-mini{display:none;font-weight:900;font-size:20px;color:#fff;letter-spacing:-.03em}
.uc-logo-mini .a{color:#38bdf8}

/* ── 3. Estrutura ─────────────────────────────────────────────────────── */
.app{display:flex;min-height:100dvh}

.sidebar{width:var(--sidebar);flex-shrink:0;position:fixed;inset:0 auto 0 0;z-index:40;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#0a2038 0%,#0f2d4a 40%,#143a5e 100%);color:#CFE0F0;transition:width .2s ease,transform .25s ease}
.sb-brand{display:flex;align-items:center;gap:11px;padding:calc(20px + var(--safe-top)) 20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}
.sb-logo{width:42px;height:42px;border-radius:12px;background:#fff;display:grid;place-items:center;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.sb-brand .t{font-weight:800;font-size:15.5px;color:#fff;letter-spacing:-.01em;line-height:1.15}
.sb-brand .s{font-size:11px;color:#38bdf8;font-weight:700}
.sb-brand .v{font-size:10px;color:rgba(255,255,255,.35);font-weight:600;letter-spacing:.06em;margin-top:2px}
.sb-nav{flex:1;overflow-y:auto;padding:12px 12px 16px;display:flex;flex-direction:column;gap:2px;scrollbar-width:none}
.sb-nav::-webkit-scrollbar{display:none}
.sb-sec{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#6D87A3;padding:14px 12px 6px;font-weight:700}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:#B9CDE0;font-weight:500;font-size:13.5px;
  position:relative;transition:background .15s,color .15s}
.nav-item svg{width:19px;height:19px;stroke-width:1.7}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item.on{background:linear-gradient(90deg,rgba(2,132,199,.22),rgba(2,132,199,.05));color:#fff;font-weight:600}
.nav-item.on::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:#0284c7}
.nav-badge{font-style:normal;margin-left:auto;background:var(--red);color:#fff;font-size:11px;font-weight:700;padding:1px 7px;border-radius:20px;line-height:1.5}
html.dark .nav-badge{background:#DC2626}
.sb-foot{padding:14px 16px calc(14px + var(--safe-bottom));border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:11px}
.sb-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#0284c7,#059669);display:grid;place-items:center;color:#fff;font-weight:800;font-size:13px;flex-shrink:0;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.sb-foot .nm{font-size:13px;font-weight:700;color:#fff;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-foot .em{font-size:11px;color:#7F9AB5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-foot form{margin-left:auto}
.sb-foot button{color:#8FA8C1;padding:7px;border-radius:9px;display:grid;place-items:center}
.sb-foot button:hover{background:rgba(255,255,255,.08);color:#fff}
.sb-foot button svg{width:18px;height:18px}

.main{flex:1;margin-left:var(--sidebar);min-width:0;display:flex;flex-direction:column;transition:margin-left .2s}
.topbar{position:sticky;top:0;z-index:30;height:calc(var(--topbar) + var(--safe-top));padding:var(--safe-top) 24px 0;
  display:flex;align-items:center;gap:12px;background:rgba(248,250,252,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)}
html.dark .topbar{background:rgba(15,23,42,.86)}
.tb-title{font-size:15px;font-weight:800;color:var(--title);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;letter-spacing:-.01em}
.tb-mark{display:none}
.menu-btn{display:none;color:var(--title);padding:6px;border-radius:10px}
.menu-btn svg{width:22px;height:22px}
.content{padding:22px 28px calc(48px + var(--safe-bottom));width:100%;min-width:0;flex:1}
.content > .ui-page{max-width:1500px;margin:0 auto}
.backdrop{display:none}

/* ── 4. Componentes ───────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 18px;border-radius:12px;font-weight:700;font-size:13.5px;
  line-height:1.2;cursor:pointer;border:1.5px solid transparent;transition:all .15s var(--suave);position:relative;overflow:hidden;
  letter-spacing:.01em;user-select:none;text-decoration:none;font-family:inherit;white-space:nowrap}
.btn svg{width:16px;height:16px;stroke-width:2;transition:transform .2s}
.btn:hover svg{transform:scale(1.12)}
.btn:active{transform:scale(.97)}
.btn:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.btn .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.35);transform:scale(0);animation:ripple .5s linear;pointer-events:none}
@keyframes ripple{to{transform:scale(4);opacity:0}}
.btn-primary{background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 45%,#0369a1 100%);color:#fff;border-color:transparent;
  box-shadow:0 2px 10px rgba(2,132,199,.32),inset 0 1px 0 rgba(255,255,255,.18)}
.btn-primary:hover{background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);box-shadow:0 6px 22px rgba(2,132,199,.38);transform:translateY(-1px);color:#fff}
html.dark .btn-primary{background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 100%)}
.btn-gold{background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);color:#2A1F00;box-shadow:0 2px 10px rgba(245,158,11,.4),inset 0 1px 0 rgba(255,255,255,.22)}
.btn-gold:hover{box-shadow:0 6px 22px rgba(245,158,11,.45);transform:translateY(-1px)}
.btn-green,.btn-success{background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#fff;box-shadow:0 2px 10px rgba(5,150,105,.35)}
.btn-green:hover,.btn-success:hover{box-shadow:0 6px 22px rgba(5,150,105,.4);transform:translateY(-1px);color:#fff}
.btn-ghost{background:var(--card);color:var(--title);border-color:var(--line)}
.btn-ghost:hover{background:var(--bg);border-color:var(--navy)}
.btn-ghost.active{border-color:var(--navy);background:var(--bg)}
html.dark .btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
html.dark .btn-ghost:hover{background:var(--card);border-color:var(--blue-ink)}
.btn-danger,.btn-red{background:rgba(220,38,38,.08);color:var(--red);border-color:rgba(220,38,38,.25)}
.btn-danger:hover,.btn-red:hover{background:rgba(220,38,38,.15);border-color:var(--red)}
.btn-sm{padding:6px 12px;font-size:12.5px;border-radius:9px;gap:5px}
.btn-sm svg{width:14px;height:14px}
.btn-lg{padding:13px 26px;font-size:15px;border-radius:14px;gap:9px}
.btn-full{width:100%}
.btn-icon{width:38px;height:38px;padding:0;border-radius:11px;display:inline-grid;place-items:center;background:transparent;border:1.5px solid var(--line);
  color:var(--ink-2);transition:all .15s}
.btn-icon svg{width:18px;height:18px}
.btn-icon:hover{background:var(--card);border-color:var(--navy);color:var(--title);transform:scale(1.06)}
.btn-icon:active{transform:scale(.93)}
.btn-icon.gira svg{animation:gira .6s var(--suave)}
@keyframes gira{to{transform:rotate(360deg)}}
/* button_to do Rails envolve o botão num <form>: não quebrar a linha */
form.button_to{display:inline}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:20px;margin-bottom:16px;
  transition:box-shadow .2s,border-color .2s}
.card.card-flush{padding:0}
.card-pad{padding:20px}
.card-h{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.card-h h3{font-size:15px;font-weight:800;color:var(--title);letter-spacing:-.01em}
.card-h .sub{font-size:12px;color:var(--ink-3);margin-top:1px}
.card-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex-shrink:0}
.card-ico svg{width:19px;height:19px}
.i-navy{background:rgba(15,45,74,.10);color:var(--navy)}
.i-green{background:rgba(5,150,105,.12);color:var(--teal)}
.i-teal{background:rgba(5,150,105,.12);color:var(--teal)}
.i-gold{background:rgba(245,158,11,.16);color:var(--gold-2)}
.i-red{background:rgba(220,38,38,.10);color:var(--red)}
.i-amber{background:rgba(217,119,6,.12);color:var(--amber)}
.i-purple{background:rgba(124,58,237,.10);color:var(--purple)}
.i-blue{background:rgba(2,132,199,.10);color:var(--blue)}
html.dark .i-navy{background:rgba(148,163,184,.14);color:#cbd5e1}

.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px}
.kpi{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow-sm);
  transition:transform .2s var(--suave),box-shadow .2s}
a.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.kpi::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;opacity:.07;background:var(--brand)}
.kpi .lab{font-size:12.5px;color:var(--ink-3);font-weight:700;display:flex;align-items:center;gap:9px}
.kpi .lab .card-ico{width:32px;height:32px;border-radius:9px}
.kpi .lab .card-ico svg{width:16px;height:16px}
.kpi .val{font-size:27px;font-weight:800;margin-top:12px;letter-spacing:-.03em;color:var(--title);font-variant-numeric:tabular-nums;line-height:1.1}
.kpi .meta{font-size:12px;color:var(--ink-3);margin-top:5px}
.kpi .meta.alerta{color:var(--amber);font-weight:700}
.kpi.green::after{background:var(--teal)} .kpi.gold::after{background:var(--gold)} .kpi.red::after{background:var(--red)} .kpi.purple::after{background:var(--purple)}

/* tabelas */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:800;padding:11px 14px;
  border-bottom:1.5px solid var(--line);white-space:nowrap;background:transparent}
td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}
tbody tr{transition:background .12s}
tbody tr:hover{background:var(--bg-2)}
tr:last-child td{border-bottom:none}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}

/* selos de situação */
.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700;white-space:nowrap}
.tag.ok{background:rgba(5,150,105,.12);color:#047857}
.tag.pendente{background:rgba(245,158,11,.16);color:#b45309}
.tag.erro{background:rgba(220,38,38,.10);color:var(--red)}
.tag.info{background:rgba(15,45,74,.08);color:var(--navy)}
.tag.roxo{background:rgba(124,58,237,.10);color:var(--purple)}
html.dark .tag.ok{color:var(--green-deep)}
html.dark .tag.pendente{color:var(--gold-2)}
html.dark .tag.info{color:var(--ink-2);background:rgba(148,163,184,.14)}

/* barra de filtros */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}
.seg{display:inline-flex;background:var(--card);border:1.5px solid var(--line);border-radius:11px;padding:3px;gap:2px}
.seg a,.seg button{padding:7px 14px;border-radius:8px;font-size:13px;font-weight:700;color:var(--ink-2)}
.seg .on{background:var(--brand);color:#fff}

/* lista de itens (atividades, filas) */
.lista-item{display:flex;align-items:center;gap:12px;padding:12px 8px;margin:0 -8px;border-radius:12px;border-bottom:1px solid var(--line-2);transition:background .15s}
.lista-item:last-child{border-bottom:none}
a.lista-item:hover{background:var(--bg-2)}
.lista-item .card-ico{width:38px;height:38px;border-radius:12px}
.lista-item .d{flex:1;min-width:0}
.lista-item .n{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lista-item .w{font-size:12px;color:var(--ink-3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lista-item .r{text-align:right;flex-shrink:0;font-size:12px;color:var(--ink-3)}
.placa-txt{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-weight:800;letter-spacing:.04em;color:var(--title)}

.empty{text-align:center;padding:34px 16px;color:var(--ink-3)}
.empty svg{width:44px;height:44px;margin:0 auto 10px;color:var(--line);stroke-width:1.5;display:block}
.empty p{font-size:13.5px}

/* ── 5. Painel: cartão de destaque e atalhos ──────────────────────────── */
.hero{position:relative;overflow:hidden;border-radius:18px;padding:18px 20px 0;margin-bottom:14px;color:#fff;
  background:linear-gradient(135deg,#0b2440 0%,#0f2d4a 45%,#163e64 100%);box-shadow:var(--shadow)}
.hero-circle-1,.hero-circle-2{position:absolute;border-radius:50%;pointer-events:none}
.hero-circle-1{width:220px;height:220px;background:rgba(245,158,11,.07);right:-60px;top:-70px;animation:heroFloat 6s ease-in-out infinite}
.hero-circle-2{width:130px;height:130px;background:rgba(5,150,105,.10);left:32%;bottom:-50px;animation:heroFloat 8s ease-in-out infinite reverse}
@keyframes heroFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-12px) scale(1.04)}}
.hero-spark{position:absolute;right:0;bottom:0;width:55%;height:70%;pointer-events:none;opacity:.85}
@media(max-width:640px){.hero-spark{width:70%;height:42%;opacity:.45}}
.hero-spark .hs-linha{stroke-dasharray:3000;stroke-dashoffset:3000;animation:desenha 2s .3s var(--suave) forwards;filter:drop-shadow(0 0 3px rgba(226,196,110,.6))}
.hero-spark .hs-area{opacity:0;animation:aparece 1.2s 1.2s ease forwards}
@keyframes desenha{to{stroke-dashoffset:0}}
@keyframes aparece{to{opacity:1}}
.hero-top{display:flex;align-items:center;gap:11px;margin-bottom:12px;position:relative}
.hero-per{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.22),rgba(255,255,255,.06));box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);color:#7dd3fc}
.hero-per svg{width:20px;height:20px}
.hero-ola{font-size:15px;font-weight:800;color:#fff}
.hero-data{font-size:11.5px;color:rgba(255,255,255,.55)}
.hero-lab{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.5);position:relative}
.hero-num{font-size:clamp(28px,4vw,40px);font-weight:900;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums;position:relative}
.hero-num small{font-size:.45em;font-weight:700;color:rgba(255,255,255,.6);margin-left:6px;letter-spacing:0}
.hero-sub{font-size:12.5px;color:#6ee7b7;margin-top:3px;position:relative;display:flex;align-items:center;gap:5px}
.hero-sub.alerta{color:#fcd34d}
.hero-sub svg{width:13px;height:13px}
.hero-minis{display:flex;border-top:1px solid rgba(255,255,255,.1);margin:14px -20px 0;position:relative}
.hero-mini{flex:1;min-width:0;padding:11px 12px;border-right:1px solid rgba(255,255,255,.08);transition:background .15s;display:block;color:inherit}
.hero-mini:last-child{border-right:none}
a.hero-mini:hover{background:rgba(255,255,255,.06)}
.hero-mini .l{font-size:9.5px;color:rgba(255,255,255,.45);font-weight:800;text-transform:uppercase;letter-spacing:.07em;margin-bottom:2px;white-space:nowrap}
.hero-mini .v{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}

.atalhos{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:10px;margin-bottom:16px}
@media(max-width:1280px){.atalhos{grid-template-columns:repeat(min(var(--n,5),5),minmax(0,1fr))}}
.atalho{position:relative;overflow:hidden;border:none;cursor:pointer;border-radius:18px;padding:14px 6px 12px;display:flex;flex-direction:column;
  align-items:center;gap:8px;color:#fff;text-align:center;
  background:radial-gradient(120% 100% at 100% 0%,rgba(255,255,255,.28),transparent 55%),linear-gradient(135deg,var(--c1),var(--c2));
  box-shadow:0 10px 22px -12px var(--c1),inset 0 0 0 1px rgba(255,255,255,.12);
  transition:transform .2s var(--mola),box-shadow .2s;animation:telaEntra .45s var(--suave) backwards;animation-delay:calc(var(--i,0) * 35ms)}
.atalho::after{content:"";position:absolute;width:70px;height:70px;right:-24px;bottom:-30px;border-radius:50%;background:rgba(255,255,255,.1)}
.atalho:hover{transform:translateY(-3px);box-shadow:0 16px 26px -12px var(--c1);color:#fff}
.atalho:active{transform:scale(.93)}
.atalho-ic{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.2);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);transition:transform .3s var(--mola);position:relative;z-index:1}
.atalho:hover .atalho-ic{transform:rotate(-8deg) scale(1.08)}
.atalho-ic svg{width:20px;height:20px;stroke-width:2}
.atalho-rot{font-size:12px;font-weight:800;letter-spacing:.01em;position:relative;z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.2)}
@keyframes telaEntra{from{opacity:0;transform:translateY(8px)}}

.aviso{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;margin-bottom:16px;border:1.5px solid}
.aviso .aviso-ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex-shrink:0;color:#fff}
.aviso .aviso-ic svg{width:22px;height:22px;stroke-width:2.2}
.aviso .t{font-weight:800;font-size:13.5px}
.aviso .s{font-size:12px;opacity:.85}
.aviso > svg{width:16px;height:16px;margin-left:auto}
.aviso.vermelho{background:linear-gradient(135deg,#FEF2F2,#FEE2E2);border-color:#FCA5A5;color:#B91C1C}
.aviso.vermelho .aviso-ic{background:linear-gradient(135deg,#DC2626,#991B1B);box-shadow:0 4px 12px rgba(220,38,38,.3)}
.aviso.amarelo{background:linear-gradient(135deg,#FFFBEB,#FEF3C7);border-color:#FCD34D;color:#92400E}
.aviso.amarelo .aviso-ic{background:linear-gradient(135deg,#D97706,#B45309);box-shadow:0 4px 12px rgba(217,119,6,.3)}
html.dark .aviso.vermelho{background:linear-gradient(135deg,#3A1616,#2C1212);border-color:#7F1D1D;color:#FCA5A5}
html.dark .aviso.amarelo{background:linear-gradient(135deg,#3A2F16,#2C2410);border-color:#78590F;color:#FCD34D}

.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.dash-col{min-width:0;display:flex;flex-direction:column}

/* ── 6. Folhas (Novo / Mais), busca e avisos rápidos ──────────────────── */
.overlay{position:fixed;inset:0;z-index:900;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:16px;
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:ovIn .18s ease}
.overlay[hidden]{display:none}
@keyframes ovIn{from{opacity:0}}
.folha{background:var(--card);border-radius:22px;width:100%;max-width:440px;max-height:88dvh;overflow:auto;border:1px solid var(--line);
  box-shadow:0 24px 64px rgba(15,23,42,.24);animation:folhaPop .22s var(--suave);position:relative}
.folha::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--brand),var(--az),var(--teal));border-radius:22px 22px 0 0}
@keyframes folhaPop{from{transform:translateY(16px) scale(.97);opacity:0}}
.folha-h{display:flex;align-items:center;gap:12px;padding:16px 20px 12px}
.folha-h h3{font-size:16px;font-weight:800;color:var(--title);flex:1}
.folha-x{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:1.5px solid var(--line);color:var(--ink-3);transition:all .15s}
.folha-x:hover{background:#FEE2E2;color:#DC2626;border-color:#FECACA;transform:rotate(90deg)}
.folha-x svg{width:15px;height:15px}
.folha-b{padding:4px 16px 18px}
.folha-grade{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.folha-op{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:13px;border:1.5px solid var(--line);background:var(--bg-2);
  font-size:13px;font-weight:700;color:var(--ink);text-align:left;transition:all .15s;min-width:0}
.folha-op span:last-child{overflow:hidden;text-overflow:ellipsis}
.folha-op:hover{border-color:var(--navy);background:var(--card)}
.folha-op.on{border-color:var(--teal);background:rgba(5,150,105,.06)}
.folha-op .card-ico{width:32px;height:32px;border-radius:9px}
.folha-op .card-ico svg{width:16px;height:16px}
.folha-sec{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);margin:12px 4px 7px}
.folha-sec:first-child{margin-top:2px}
.folha-lista{display:flex;flex-direction:column;gap:8px}
.folha-acao{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:15px;border:1.5px solid var(--line);background:var(--card);transition:all .15s}
.folha-acao:hover{border-color:var(--navy);transform:translateX(2px)}
.folha-acao .atalho-ic{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff;box-shadow:0 6px 14px -6px var(--c1)}
.folha-acao .t{font-size:14px;font-weight:800;color:var(--title)}
.folha-acao .s{font-size:12px;color:var(--ink-3)}
.folha-acao > svg{width:18px;height:18px;color:var(--ink-3);margin-left:auto}
.folha-rodape{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3)}

/* busca do topo: procura telas e ações do menu */
.busca{position:relative;flex:0 1 380px;min-width:0}
.busca > svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ink-3);pointer-events:none}
.busca input{width:100%;padding:9px 12px 9px 36px;border:1.5px solid var(--line);border-radius:11px;background:var(--card);font-size:13.5px;color:var(--ink);transition:all .15s}
.busca input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,45,74,.08)}
.busca kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:600 11px var(--font);color:var(--ink-3);border:1px solid var(--line);border-radius:6px;padding:1px 6px;background:var(--bg-2)}
.busca-box{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);
  padding:6px;max-height:60dvh;overflow:auto;z-index:60}
.busca-box[hidden]{display:none}
.busca-res{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--ink)}
.busca-res .card-ico{width:30px;height:30px;border-radius:9px}
.busca-res .card-ico svg{width:15px;height:15px}
.busca-res .sec{margin-left:auto;font-size:11px;color:var(--ink-3);font-weight:600}
.busca-res.sel,.busca-res:hover{background:var(--bg)}
.busca-vazio{padding:14px;text-align:center;color:var(--ink-3);font-size:13px}

/* avisos rápidos (flash) */
.toast-wrap{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;max-width:400px;pointer-events:none}
.toast-item{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:13px 16px 15px;border-radius:14px;min-width:240px;
  box-shadow:0 10px 28px rgba(0,0,0,.2);font-size:13.5px;font-weight:600;line-height:1.4;color:#fff;position:relative;overflow:hidden;
  animation:toastIn .25s var(--suave);cursor:pointer;transition:opacity .2s,transform .2s}
.toast-item svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}
.toast-item.ok{background:#059669}
.toast-item.err{background:#B4503E}
.toast-item.info{background:var(--brand)}
.toast-item .barra{position:absolute;left:0;bottom:0;height:3px;background:rgba(255,255,255,.45);animation:toastBarra var(--dur,4s) linear forwards}
@keyframes toastIn{from{transform:translateX(40px);opacity:0}}
@keyframes toastBarra{from{width:100%}to{width:0}}

/* barra inferior (celular) */
.btab{display:none}

/* leque do "+" (igual ao Financeiro): botões redondos em arco */
.leque{position:fixed;inset:0;z-index:9500;pointer-events:none}
.leque-fundo{position:absolute;inset:0;pointer-events:auto;background:rgba(15,23,42,0);transition:background .25s,backdrop-filter .25s}
.leque.aberto .leque-fundo{background:rgba(15,23,42,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.leque-bt{position:absolute;left:50%;bottom:calc(74px + var(--safe-bottom));pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:6px;
  transform:translate(-50%,0) scale(.3);opacity:0;transition:transform .45s cubic-bezier(.2,1.4,.4,1),opacity .25s;transition-delay:calc(var(--i) * 35ms)}
.leque.aberto .leque-bt{transform:translate(calc(-50% + var(--dx)),var(--dy)) scale(1);opacity:1}
.leque.fechando .leque-bt{transition-delay:0s;transition-duration:.2s}
.leque-ic{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 30% 25%,color-mix(in srgb,var(--c) 55%,#fff),var(--c) 60%);
  box-shadow:0 10px 22px -6px var(--c),inset 0 0 0 2px rgba(255,255,255,.25);transition:transform .2s var(--mola)}
.leque-ic svg{width:24px;height:24px;stroke-width:2}
.leque-bt:hover .leque-ic,.leque-bt:active .leque-ic{transform:scale(1.12)}
.leque-rot{font-size:12px;font-weight:800;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6);white-space:nowrap}
.btab-fab{position:relative;z-index:9600}
body.leque-on .btab{z-index:9600}
.btab-fab-inner{transition:transform .35s var(--mola),background .25s}
.btab-fab.aberto .btab-fab-inner{transform:rotate(135deg);background:linear-gradient(135deg,#A2412F,#E07A5F) !important}

/* ── 7. Login ─────────────────────────────────────────────────────────── */
body.ui-login{background:#0f2d4a}
.login-app{min-height:100dvh;display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden;
  background:linear-gradient(160deg,#05203A 0%,#163e64 50%,#0f2d4a 100%);padding:var(--safe-top) 0 var(--safe-bottom)}
.login-cena{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.login-cena i{position:absolute;border-radius:50%;filter:blur(2px)}
.login-cena i:nth-child(1){width:360px;height:360px;right:-120px;top:-120px;background:rgba(245,158,11,.08);animation:heroFloat 9s ease-in-out infinite}
.login-cena i:nth-child(2){width:260px;height:260px;left:-90px;bottom:18%;background:rgba(5,150,105,.12);animation:heroFloat 11s ease-in-out infinite reverse}
.login-cena i:nth-child(3){width:120px;height:120px;left:58%;top:22%;background:rgba(255,255,255,.04);animation:heroFloat 7s ease-in-out infinite}
.login-app-top{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px 32px;text-align:center;position:relative}
.login-app-logo-wrap{margin-bottom:6px}
.login-app-logo-wrap .uc-logo{font-size:34px}
.login-app-logo-wrap .uc-logo-sub{font-size:11px;margin-top:8px}
.login-app-brand{font-size:32px;font-weight:900;color:#fff;letter-spacing:-.02em;line-height:1;margin-bottom:6px}
.login-app-sub{font-size:14px;color:rgba(255,255,255,.6);font-weight:500}
.login-app-card{width:100%;max-width:480px;background:var(--card);border-radius:28px 28px 0 0;padding:30px 26px 26px;box-shadow:0 -8px 40px rgba(0,0,0,.15);position:relative}
.login-app-titulo{font-size:22px;font-weight:800;color:var(--title);margin:0 0 4px}
.login-app-desc{font-size:13px;color:var(--ink-3);margin-bottom:20px}
.login-form{display:flex;flex-direction:column;gap:14px}
.login-campo{display:flex;flex-direction:column;gap:7px}
.login-label{font-size:12px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.login-input-wrap{position:relative}
.login-input-ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none;display:grid}
.login-input-ic svg{width:18px;height:18px}
.login-input{width:100%;padding:14px 14px 14px 44px;border:1.5px solid var(--line);border-radius:14px;background:var(--bg-2);font-size:15px;color:var(--ink);transition:all .15s}
.login-input:focus{outline:none;border-color:var(--navy);background:var(--card);box-shadow:0 0 0 4px rgba(15,45,74,.08)}
.btn-ver-senha{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:8px;border-radius:9px;color:var(--ink-3)}
.btn-ver-senha:hover{color:var(--title);background:var(--bg)}
.btn-ver-senha svg{width:18px;height:18px}
.login-linha{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--ink-2)}
.login-linha label{display:flex;align-items:center;gap:8px;cursor:pointer}
.login-linha input{accent-color:var(--teal);width:16px;height:16px}
.login-linha a{color:var(--az);font-weight:700}
.btn-login{width:100%;padding:15px;font-size:16px;font-weight:800;border-radius:14px;margin-top:4px;gap:10px;box-shadow:0 6px 20px rgba(15,45,74,.3)}
.btn-login svg{width:20px;height:20px}
.login-erro{font-size:13px;color:var(--red);background:rgba(220,38,38,.08);border:1px solid rgba(220,38,38,.2);padding:10px 14px;border-radius:10px}
.login-ok{font-size:13px;color:#047857;background:rgba(5,150,105,.1);border:1px solid rgba(5,150,105,.25);padding:10px 14px;border-radius:10px}
.login-alt{text-align:center;font-size:13.5px;color:var(--ink-2);margin-top:18px}
.login-alt a{color:var(--az);font-weight:800}
.login-app-footer{padding:16px;text-align:center;font-size:11.5px;color:rgba(255,255,255,.45);position:relative}
.login-app-footer b{color:rgba(255,255,255,.7)}
.login-grade{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(min-width:768px){
  .login-app{justify-content:center}
  .login-app-top{flex:none;padding:36px 24px 22px}
  .login-app-logo-wrap .uc-logo{font-size:30px}
  .login-app-brand{font-size:27px}
  .login-app-card{border-radius:24px;max-width:420px;box-shadow:0 24px 64px rgba(0,0,0,.25);margin-bottom:20px}
  .login-app-card.largo{max-width:560px}
}
@media(max-width:480px){.login-grade{grid-template-columns:1fr}}

/* ── 8. Portal do lojista (classes loj-* das telas existentes) ────────── */
.loj-content{max-width:720px;margin:0 auto}
.loj-card{background:var(--card);border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--shadow-sm);margin-bottom:14px;overflow:hidden}
.loj-card-header{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}
.loj-card-title{font-size:14px;font-weight:800;color:var(--title)}
.loj-card-body{padding:16px 18px}
.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:99px;font-size:11.5px;font-weight:700;white-space:nowrap}
.chip-pendente{background:rgba(245,158,11,.16);color:#b45309}
.chip-atendimento{background:rgba(2,132,199,.12);color:#0B5C8C}
.chip-assinatura{background:rgba(124,58,237,.12);color:#5B21B6;animation:pulseChip 2s infinite}
.chip-concluido{background:rgba(5,150,105,.13);color:#047857}
.chip-cancelado{background:rgba(220,38,38,.1);color:#B91C1C}
html.dark .chip-pendente{color:var(--gold-2)} html.dark .chip-atendimento{color:#7DD3FC} html.dark .chip-assinatura{color:#C4B5FD}
html.dark .chip-concluido{color:var(--green-deep)} html.dark .chip-cancelado{color:#FCA5A5}
@keyframes pulseChip{0%,100%{opacity:1}50%{opacity:.6}}
.sol-item{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s,border-color .15s}
.sol-item:hover{border-color:var(--navy-soft);box-shadow:var(--shadow);transform:translateY(-1px)}
.sol-placa{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:16px;font-weight:900;color:var(--title);letter-spacing:.04em}
.sol-sub{font-size:12px;color:var(--ink-3);margin-top:3px}
.sol-arrow{color:var(--ink-3);font-size:18px;flex-shrink:0}
.loj-form-group{margin-bottom:16px}
.loj-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:6px;display:block}
.loj-input{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;font-size:15px;background:var(--bg-2);color:var(--ink);transition:all .15s}
.loj-input:focus{outline:none;border-color:var(--navy);background:var(--card);box-shadow:0 0 0 3px rgba(15,45,74,.1)}
.loj-textarea{height:90px;resize:none}
.loj-btn{width:100%;padding:15px;border-radius:14px;border:none;font-size:15px;font-weight:800;cursor:pointer;transition:all .2s;text-align:center;display:block}
.loj-btn-primary{background:linear-gradient(135deg,#163e64,#0f2d4a);color:#fff;box-shadow:0 4px 14px rgba(15,45,74,.3)}
.loj-btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,45,74,.35)}
.loj-btn-ghost{background:var(--bg);color:var(--title);border:1.5px solid var(--line)}
.loj-btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}
.loj-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.loj-stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center;box-shadow:var(--shadow-sm)}
.loj-stat-n{font-size:28px;font-weight:900;color:var(--title);font-variant-numeric:tabular-nums}
.loj-stat-l{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-top:2px}
.loj-empty{text-align:center;padding:48px 24px}
.loj-empty-icon{font-size:48px;margin-bottom:12px}
.loj-empty-title{font-size:16px;font-weight:800;color:var(--title);margin-bottom:8px}
.loj-empty-sub{font-size:13px;color:var(--ink-3)}
.loj-flash{padding:12px 16px;border-radius:12px;font-size:13px;font-weight:600;margin-bottom:12px}
.loj-flash-ok{background:rgba(5,150,105,.12);color:#047857}
.loj-flash-err{background:var(--red-soft);color:var(--red)}

/* ── 9. Responsivo ────────────────────────────────────────────────────── */
@media(max-width:1100px){.dash-grid{grid-template-columns:1fr}}

/* menu lateral compacto (só ícones) entre 821 e 1280px */
@media(min-width:821px) and (max-width:1280px){
  :root{--sidebar:var(--sidebar-mini)}
  .sidebar{width:var(--sidebar-mini)}
  .sb-brand{padding:calc(14px + var(--safe-top)) 12px 14px;justify-content:center}
  .sb-brand .uc-logo,.sb-brand .uc-logo-sub,.sb-brand .v{display:none}
  .sb-brand .uc-logo-mini{display:block}
  .sb-nav{padding:10px 10px}
  .sb-sec{display:none}
  .nav-item{padding:11px;justify-content:center;gap:0}
  .nav-item span{display:none}
  .nav-item svg{width:21px;height:21px}
  .nav-badge{position:absolute;top:3px;right:3px;padding:0;min-width:17px;height:17px;display:grid;place-items:center;font-size:9.5px}
  .nav-item::after{content:attr(data-nome);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#163e64;color:#fff;
    font-size:12px;font-weight:600;padding:5px 10px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:100;
    box-shadow:0 4px 16px rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.1)}
  .nav-item:hover::after{opacity:1}
  .sb-foot{flex-direction:column;padding:10px 8px calc(10px + var(--safe-bottom));gap:6px}
  .sb-foot .sb-quem{display:none}
  .sb-foot form{margin-left:0}
  .sb-nav{overflow:visible}
  .sidebar{overflow:visible}
}

@media(max-width:820px){
  .sidebar{display:none}
  .main{margin-left:0}
  .topbar{padding:var(--safe-top) 14px 0;gap:10px}
  .tb-mark{display:block;flex-shrink:0}
  .tb-title{display:none}
  .busca{display:none}
  .busca.aberta{display:block;position:fixed;left:12px;right:12px;top:calc(var(--safe-top) + 10px);z-index:70;flex:none}
  .busca.aberta input{padding:13px 12px 13px 38px;font-size:16px;box-shadow:var(--shadow-lg)}
  .busca.aberta kbd{display:none}
  .so-pc{display:none !important}
  .show-mob{display:inline-grid !important}
  .hide-mobile{display:none !important}
  .content{padding:16px 14px calc(88px + var(--safe-bottom))}
  .grid-2,.grid-3,.two-col{grid-template-columns:1fr !important}
  .page-title{font-size:19px}
  .card{padding:16px}
  .toast-wrap{left:12px;right:12px;bottom:calc(76px + var(--safe-bottom));max-width:none}
  .toast-item{min-width:0}
  .overlay.folha-baixo{align-items:flex-end;padding:0}
  .overlay.folha-baixo .folha{max-width:none;border-radius:24px 24px 0 0;padding-bottom:var(--safe-bottom);animation:folhaSobe .26s var(--suave)}
  .overlay.folha-baixo .folha::before{border-radius:24px 24px 0 0}
  @keyframes folhaSobe{from{transform:translateY(40%)}}

  .btab{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;height:calc(64px + var(--safe-bottom));padding-bottom:var(--safe-bottom);
    background:var(--card);border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(15,23,42,.10);align-items:stretch}
  .btab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-3);font-size:10.5px;font-weight:700;
    letter-spacing:.01em;position:relative;transition:color .15s;min-width:0}
  .btab-item svg{width:23px;height:23px;stroke-width:1.8;transition:transform .15s}
  .btab-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 2px}
  .btab-item.on{color:var(--title)}
  .btab-item.on svg{transform:scale(1.1)}
  .btab-item:active svg{transform:scale(.9)}
  .btab-item::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 4px 4px;background:transparent;transition:background .2s}
  .btab-item.on::before{background:var(--brand)}
  html.dark .btab-item.on::before{background:#38bdf8}
  .btab-fab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink-3);font-size:10.5px;font-weight:700}
  .btab-fab-inner{width:50px;height:50px;border-radius:17px;margin-top:-18px;background:linear-gradient(135deg,#163e64,#0f2d4a);display:grid;place-items:center;
    box-shadow:0 6px 16px rgba(15,45,74,.4),0 0 0 4px var(--card);transition:transform .15s}
  html.dark .btab-fab-inner{background:linear-gradient(135deg,#0284c7,#0369a1)}
  .btab-fab:active .btab-fab-inner{transform:scale(.92)}
  .btab-fab-inner svg{width:24px;height:24px;color:#fff;stroke-width:2.2}
  .btab-badge{font-style:normal;position:absolute;top:5px;right:calc(50% - 20px);background:#DC2626;color:#fff;font-size:9.5px;font-weight:800;min-width:17px;height:17px;
    border-radius:10px;display:grid;place-items:center;padding:0 4px;border:2px solid var(--card)}
}
@media(max-width:640px){
  .atalhos{grid-template-columns:none;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:calc(25% - 8px);
    overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:none;margin-left:-2px;margin-right:-2px}
  .atalhos::-webkit-scrollbar{display:none}
  .atalho{scroll-snap-align:start;padding:12px 4px 10px;border-radius:16px}
  .atalhos.poucos{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:repeat(var(--n),minmax(0,1fr));overflow:visible}
  .atalho-ic{width:36px;height:36px;border-radius:12px}
  .atalho-rot{font-size:11px}
  .hero{padding:16px 16px 0}
  .hero-minis{margin:12px -16px 0}
  .hero-mini .v{font-size:14px}
  .kpi-grid{grid-template-columns:1fr 1fr;gap:10px}
  .kpi{padding:14px}
  .kpi .val{font-size:22px}
  .page-header{margin-bottom:14px}
  table{font-size:12.5px}
  th,td{padding:9px 10px}
}

/* ── 10. Melhorias gerais de layout (todas as telas) ──────────────────── */
/* campo de anexo no padrão do sistema */
.content input[type=file]{font-size:13px;color:var(--ink-2);max-width:100%}
.content input[type=file]::file-selector-button{font:700 12.5px var(--font);color:var(--title);background:var(--card);border:1.5px solid var(--line);
  border-radius:10px;padding:8px 14px;margin-right:10px;cursor:pointer;transition:all .15s}
.content input[type=file]::file-selector-button:hover{border-color:var(--az);color:var(--az)}

/* seta de voltar do topo (só celular, telas internas) */
.tb-voltar{display:none}

/* faixa de filtros que desliza para o lado (marcada pelo app.js) */
.faixa-rolavel{flex-wrap:nowrap !important;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px;
  margin-left:-2px;margin-right:-14px;padding-right:14px;scroll-snap-type:x proximity}
.faixa-rolavel::-webkit-scrollbar{display:none}
.faixa-rolavel > *{flex-shrink:0;scroll-snap-align:start}

@media(max-width:820px){
  .tb-voltar{display:inline-grid;margin-left:-4px}
  /* cabeçalho de página: título em cima, ações ocupam a linha */
  .page-header{align-items:flex-start}
  .page-header > div:first-child{flex:1 1 100%;min-width:0}
  .page-header > :not(:first-child){display:flex;gap:8px;flex-wrap:wrap}
  .page-title{font-size:20px}
}

/* tabelas viram cartões no celular (marcadas pelo app.js) */
@media(max-width:640px){
  table.tbl-cards,table.tbl-cards tbody{display:block;width:100%;white-space:normal}
  table.tbl-cards thead{display:none}
  table.tbl-cards tr{display:block;padding:12px 14px;border-bottom:1px solid var(--line);background:transparent}
  table.tbl-cards tr:last-child{border-bottom:none}
  table.tbl-cards tr:hover{background:transparent}
  table.tbl-cards td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 0 !important;border:none !important;
    font-size:13.5px;text-align:right;min-height:0;white-space:normal !important;background:transparent !important}
  table.tbl-cards td::before{content:attr(data-label);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
    color:var(--ink-3);text-align:left;flex-shrink:0;max-width:45%}
  table.tbl-cards td.td-titulo{display:block;text-align:left;font-size:15px;font-weight:800;color:var(--title);padding:0 0 6px !important}
  table.tbl-cards td.td-titulo::before{display:none}
  table.tbl-cards td.td-acoes{justify-content:flex-start;flex-wrap:wrap;padding-top:10px !important}
  table.tbl-cards td.td-acoes::before{display:none}
  table.tbl-cards td.td-vazio{display:none}
  table.tbl-cards td[colspan]{display:block;text-align:center}
  table.tbl-cards td[colspan]::before{display:none}
  /* o contêiner da tabela não precisa mais rolar para o lado */
  .tbl-cards-wrap{overflow:visible !important}
}

@media(prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}

/* impressão: só o conteúdo */
@media print{
  /* imprime sempre com as cores claras, mesmo com o tema escuro ligado */
  html.dark{--bg:#fff;--bg-2:#F8FAFC;--card:#fff;--line:#E2E8F0;--line-2:#F1F5F9;--ink:#0F172A;--ink-2:#475569;--ink-3:#94A3B8;--title:#0f2d4a;color-scheme:light}
  .sidebar,.topbar,.btab,.toast-wrap,.overlay,.no-print{display:none !important}
  .main{margin:0}
  .content{padding:0}
  body{background:#fff}
}

/* ── Janela de confirmação (excluir, cancelar...) ─────────────────────────── */
.confirma-fundo{position:fixed;inset:0;z-index:5000;background:rgba(15,23,42,.45);display:flex;align-items:flex-end;justify-content:center;padding:16px;animation:confFundo .15s ease}
@media (min-width:640px){.confirma-fundo{align-items:center}}
.confirma-caixa{background:var(--card,#fff);color:var(--title,#0f172a);width:100%;max-width:400px;border-radius:18px;padding:22px 20px 18px;box-shadow:0 24px 60px rgba(0,0,0,.3);text-align:center;animation:confSobe .2s ease}
.confirma-ico{width:48px;height:48px;border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;background:var(--sb-blue,#e0f2fe);color:var(--st-blue,#0369a1)}
.confirma-ico.perigo{background:var(--sb-red,#fee2e2);color:var(--st-red,#dc2626)}
.confirma-msg{font-size:15px;font-weight:700;line-height:1.4;margin-bottom:18px}
.confirma-acoes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.confirma-acoes .btn{justify-content:center;width:100%;padding:12px}
@keyframes confFundo{from{opacity:0}to{opacity:1}}
@keyframes confSobe{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ── Sininho de avisos (topo) e lista de avisos ──────────────────────────── */
.tb-sino{position:relative;text-decoration:none;color:inherit}
.tb-sino-n{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:#dc2626;color:#fff;font-size:10.5px;font-weight:800;display:grid;place-items:center;border:2px solid var(--bg,#fff);line-height:1}
.tb-sino-n[hidden]{display:none}
.tb-sino.pulsa svg{animation:sinoBalanca .6s ease 2}
@keyframes sinoBalanca{0%,100%{transform:rotate(0)}25%{transform:rotate(14deg)}75%{transform:rotate(-14deg)}}
.aviso-item{display:flex;gap:12px;align-items:flex-start;padding:14px 4px;border-bottom:1px solid var(--line-2,#eef2f7);text-decoration:none;color:inherit}
.aviso-item:last-child{border-bottom:none}
.aviso-item .ai-ico{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;background:var(--sb-blue,#e0f2fe);color:var(--st-blue,#0369a1)}
.aviso-item .ai-ico svg{width:18px;height:18px}
.aviso-item.ok .ai-ico{background:var(--sb-green,#dcfce7);color:var(--st-green,#15803d)}
.aviso-item.alerta .ai-ico{background:var(--sb-amber,#fef3c7);color:var(--st-amber,#b45309)}
.aviso-item .ai-t{font-size:14px;font-weight:800;color:var(--title)}
.aviso-item .ai-c{font-size:13px;color:var(--ink-2);margin-top:2px;line-height:1.4}
.aviso-item .ai-d{font-size:11.5px;color:var(--ink-3);margin-top:4px}
.aviso-item.novo .ai-t::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#0284c7;margin-left:8px;vertical-align:middle}
.aviso-item.lido{opacity:.72}

/* ── Paginação e busca de listas ─────────────────────────────────────────── */
.paginacao{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:16px 0 8px;font-size:13px;color:var(--ink-3)}
.paginacao .pg-botoes{display:flex;align-items:center;gap:8px}
.paginacao .pg-atual{font-weight:700;color:var(--ink-2)}
.busca-lista{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}
.busca-lista .bl-campo{flex:1;min-width:200px;position:relative}
.busca-lista .bl-campo svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--ink-3)}
.busca-lista .bl-campo input{padding-left:38px}

/* ── Primeiros passos da loja ─────────────────────────────────────────────── */
.passos-barra{height:6px;border-radius:99px;background:#e2e8f0;margin:4px 0 10px;overflow:hidden}
.passos-barra i{display:block;height:100%;background:linear-gradient(90deg,#0284c7,#0f2d4a);border-radius:99px;transition:width .4s}
.passo .passo-ok{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#e0f2fe;color:#0284c7}
.passo .passo-ok svg{width:18px;height:18px}
.passo.feito .passo-ok{background:#d1fae5;color:#059669}
.passo.feito .n{text-decoration:line-through;color:var(--muted,#64748b)}

/* ==========================================================================
   11. Visual 2.0 — "Faixa Mercosul"
   Mesmo azul-marinho e azul da marca, mais moderno. A faixa azul da placa
   Mercosul é a assinatura visual (cartão principal, login, cabeçalhos).
   Títulos e números em Bricolage Grotesque; textos e campos em Inter.
   Rótulos em minúsculas (sem CAIXA ALTA), cartões mais limpos, menu lateral
   flutuante no computador e barra inferior flutuante no celular.
   ========================================================================== */
:root{
  --display:"Bricolage Grotesque","Inter",system-ui,sans-serif;
  --placa:#003399;
  --bg:#F4F7FA; --bg-2:#F8FAFC; --line:#E3E9F0; --line-2:#EEF2F6;
  --ink:#0D1B2A; --ink-2:#4A5A6E; --ink-3:#8494A7;
  --shadow-sm:0 1px 0 rgba(13,27,42,.04);
  --shadow:0 10px 30px -12px rgba(13,27,42,.18);
  --shadow-lg:0 24px 60px -18px rgba(13,27,42,.30);
  --r:18px; --r-lg:24px; --r-sm:12px;
  --gutter:12px;
}
html.dark{--bg:#0B1624;--bg-2:#112133;--card:#13263A;--line:#1F3650;--line-2:#182D44;--ink:#E6EDF5;--ink-2:#B4C2D3;--ink-3:#7F93AA}

body.ui-app{background:var(--bg)}
.page-title,.card-h h3,.kpi .val,.hero-num,.hero-ola,.login-app-titulo,.login-app-brand,.loj-stat-n,.tb-title,.folha-h h3,.loj-card-title{font-family:var(--display);letter-spacing:-.02em}
.page-title{font-size:26px;font-weight:700}
.page-title svg{width:22px;height:22px;color:var(--az)}
.page-sub{font-size:13.5px;color:var(--ink-2)}
.uc-logo{font-family:var(--display);font-weight:800;letter-spacing:-.035em}

/* rótulos: frase normal, sem caixa alta */
.form-label,.loj-label,.login-label,.eyebrow,.sb-sec,.hero-lab,.hero-mini .l,.folha-sec,.loj-stat-l,th,table.tbl-cards td::before{
  text-transform:none;letter-spacing:0}
.form-label,.loj-label,.login-label{font-size:13px;font-weight:600;color:var(--ink-2)}
th{font-size:12.5px;font-weight:600;color:var(--ink-3);border-bottom:1px solid var(--line)}
.sb-sec{font-size:12px;font-weight:600;color:#7E99B6;padding:16px 12px 6px}
.folha-sec{font-size:12.5px;font-weight:600}
.loj-stat-l{font-size:12px;font-weight:600}
table.tbl-cards td::before{font-size:12px;font-weight:600}

/* campos */
.form-control,.loj-input,.login-input,.content :where(input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=file]):not([type=color]):not([type=range]):not([type=hidden]), select, textarea){
  border:1px solid var(--line);background:var(--card);border-radius:12px;box-shadow:inset 0 1px 2px rgba(13,27,42,.04)}
.form-control:focus,.loj-input:focus,.login-input:focus,.content :where(input, select, textarea):focus{
  border-color:var(--az);box-shadow:0 0 0 4px rgba(2,132,199,.14)}

/* botões: cor sólida, sem brilho */
.btn{border-radius:12px;font-weight:650;letter-spacing:0}
.btn:hover svg{transform:none}
.btn-primary{background:var(--az);box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 6px 16px -8px rgba(2,132,199,.7)}
.btn-primary:hover{background:#0370a8;transform:none;box-shadow:0 8px 20px -8px rgba(2,132,199,.8)}
html.dark .btn-primary{background:#0284c7}
.btn-ghost{border-width:1px}
.btn-ghost:hover{border-color:var(--ink-3)}
.btn-green,.btn-success{background:#059669}
.btn-gold{background:#f59e0b}
.btn-icon{border:1px solid var(--line);background:var(--card);border-radius:12px}
.btn-icon:hover{transform:none;border-color:var(--ink-3)}
.loj-btn-primary{background:var(--brand);box-shadow:0 8px 20px -10px rgba(15,45,74,.8)}
.loj-btn-primary:hover{background:#163e64}

/* cartões */
.card,.loj-card,.kpi,.sol-item,.loj-stat{border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:var(--r)}
.card{padding:22px}
.card-h h3{font-size:17px;font-weight:700}
.card-ico{border-radius:12px}
.kpi::after{display:none}
.kpi{padding:18px 18px 16px}
.kpi .val{font-size:32px;font-weight:700;margin-top:14px}
a.kpi:hover,.sol-item:hover{transform:none;box-shadow:var(--shadow);border-color:#C9D5E3}
html.dark a.kpi:hover,html.dark .sol-item:hover{border-color:var(--line)}
tbody tr:hover{background:var(--bg)}
.lista-item{border-bottom-color:var(--line-2)}
.lista-item .n{font-weight:650}

/* placa em texto: chip com a faixa azul em cima, como a placa de verdade */
.placa-txt,.sol-placa{display:inline-block;font-family:var(--display);font-weight:700;letter-spacing:.06em;color:#0D1B2A;
  background:#fff;border:1.5px solid #0D1B2A;border-top:4px solid var(--placa);border-radius:6px;padding:1px 7px 0;line-height:1.35;font-size:.95em}
html.dark .placa-txt,html.dark .sol-placa{background:#F4F7FA;color:#0D1B2A;border-color:#0D1B2A;border-top-color:#2D5BFF}
.sol-placa{font-size:15px}

/* ── estrutura: menu lateral flutuante (computador) ── */
@media(min-width:821px){
  .sidebar{inset:var(--gutter) auto var(--gutter) var(--gutter);border-radius:24px;overflow:hidden;
    background:linear-gradient(180deg,#0B2238 0%,#0F2D4A 55%,#123659 100%);box-shadow:0 20px 50px -24px rgba(10,28,46,.7)}
  .main{margin-left:calc(var(--sidebar) + var(--gutter))}
  .topbar{background:transparent;border-bottom:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:var(--safe-top) 28px 0;height:calc(70px + var(--safe-top))}
  .topbar.rolou{background:rgba(244,247,250,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
  html.dark .topbar.rolou{background:rgba(11,22,36,.85)}
  .tb-title{font-size:15px;font-weight:600;color:var(--ink-2)}
  .busca input{border:1px solid var(--line);border-radius:12px;padding:10px 12px 10px 38px}
  .content{padding:6px 32px calc(48px + var(--safe-bottom))}
}
.sb-brand{border-bottom:none;padding-bottom:10px}
.sb-brand::after{content:"";position:absolute}
.nav-item{border-radius:12px;font-weight:500;color:#AFC4DA;padding:10px 12px}
.nav-item.on{background:rgba(255,255,255,.10);color:#fff;font-weight:600;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.nav-item.on::before{left:-12px;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:#38bdf8}
.nav-item.on svg{color:#7dd3fc}
.sb-foot{border-top:1px solid rgba(255,255,255,.07);margin:0 10px;padding-left:6px;padding-right:6px}
@media(min-width:821px) and (max-width:1280px){
  .sidebar{border-radius:20px}
  .nav-item.on::before{left:-10px}
}

/* ── cartão principal: faixa Mercosul ── */
.hero{border-radius:24px;padding:26px 24px 0;background:#0F2D4A;box-shadow:0 24px 50px -28px rgba(10,28,46,.9)}
.hero::before{content:"BRASIL";position:absolute;left:0;right:0;top:0;height:20px;background:var(--placa);
  font:700 10px/20px var(--font);letter-spacing:.3em;color:rgba(255,255,255,.85);text-align:center;z-index:1}
.hero::after{content:"";position:absolute;right:14px;top:5px;width:16px;height:10px;border-radius:2px;z-index:2;
  background:radial-gradient(circle at 50% 50%,#002776 0 2px,transparent 2.5px),linear-gradient(135deg,transparent 30%,#FEDF00 30% 70%,transparent 70%),#009B3A}
.hero-circle-1,.hero-circle-2{display:none}
.hero-top{margin-top:8px}
.hero-ola{font-size:19px;font-weight:700}
.hero-lab{font-size:13px;font-weight:500;color:rgba(255,255,255,.6)}
.hero-num{font-size:clamp(40px,5vw,56px);font-weight:700}
.hero-minis{border-top:1px solid rgba(255,255,255,.09);margin:18px -24px 0;background:rgba(0,0,0,.12)}
.hero-mini{padding:13px 16px}
.hero-mini .l{font-size:12px;font-weight:500;color:rgba(255,255,255,.55)}
.hero-mini .v{font-family:var(--display);font-size:20px;font-weight:700}

/* ── atalhos: cartão claro com ícone na cor da ação ── */
.atalho{background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:18px;padding:16px 8px 14px;gap:10px;animation:none}
.atalho::after{display:none}
.atalho:hover{transform:translateY(-2px);color:var(--ink);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--c1) 40%,var(--line))}
.atalho-ic{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff;box-shadow:0 8px 16px -8px var(--c1)}
.atalho:hover .atalho-ic{transform:none}
.atalho-rot{font-size:12.5px;font-weight:600;text-shadow:none;color:var(--ink)}

/* avisos */
.aviso{border-width:1px;border-radius:18px}
.aviso.amarelo{background:#FFF8E6}
.aviso.vermelho{background:#FFF1F1}

/* folhas, toasts */
.folha{border-radius:24px}
.folha::before{height:6px;background:var(--placa)}
.toast-item{border-radius:14px}
.toast-item.err{background:#C2410C}

/* ── celular: barra inferior flutuante ── */
@media(max-width:820px){
  .topbar{background:rgba(244,247,250,.9);border-bottom:none}
  html.dark .topbar{background:rgba(11,22,36,.9)}
  .content{padding:10px 14px calc(104px + var(--safe-bottom))}
  .page-title{font-size:23px}
  .btab{left:10px;right:10px;bottom:calc(10px + var(--safe-bottom));height:66px;padding-bottom:0;border-radius:22px;border:1px solid var(--line);
    background:rgba(255,255,255,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 18px 40px -16px rgba(13,27,42,.45)}
  html.dark .btab{background:rgba(19,38,58,.92)}
  .btab-item{font-weight:600;font-size:10.5px}
  .btab-item::before{display:none}
  .btab-item.on{color:var(--az)}
  .btab-item.on svg{transform:none}
  .btab-fab-inner{width:52px;height:52px;border-radius:50%;margin-top:-26px;background:var(--brand);box-shadow:0 10px 22px -8px rgba(15,45,74,.9),0 0 0 5px var(--bg)}
  .btab-badge{border-color:var(--card)}
  .toast-wrap{bottom:calc(88px + var(--safe-bottom))}
  .card{padding:18px}
  .hero{padding:24px 18px 0}
  .hero-minis{margin:16px -18px 0}
}
@media(max-width:640px){
  .atalho{padding:12px 4px 11px;border-radius:16px}
  .atalho-ic{width:40px;height:40px;border-radius:12px}
  .atalho-rot{font-size:11.5px}
  .kpi .val{font-size:26px}
}

/* ── login: painel da marca ao lado no computador ── */
.login-app{background:#0F2D4A}
.login-cena{display:none}
.login-app-top{position:relative}
.login-app-brand{font-size:40px;font-weight:700}
.login-app-card{border-radius:28px 28px 0 0}
.login-app-card::before{content:"";position:absolute;left:24px;right:24px;top:0;height:5px;border-radius:0 0 5px 5px;background:var(--placa)}
.login-input{padding-top:13px;padding-bottom:13px}
.btn-login{background:var(--az);box-shadow:0 10px 24px -10px rgba(2,132,199,.9)}
@media(min-width:900px){
  .login-app{flex-direction:row;align-items:stretch;justify-content:stretch;background:var(--bg)}
  .login-app-top{flex:1.1;align-items:flex-start;justify-content:flex-end;text-align:left;padding:56px;margin:14px;border-radius:30px;color:#fff;
    background:#0F2D4A;overflow:hidden}
  .login-app-top::before{content:"BRASIL";position:absolute;left:0;right:0;top:0;height:34px;background:var(--placa);color:rgba(255,255,255,.9);
    font:700 13px/34px var(--font);letter-spacing:.5em;text-align:center}
  .login-app-logo-wrap .uc-logo{font-size:52px}
  .login-app-brand{font-size:56px;line-height:1}
  .login-app-sub{font-size:16px;max-width:30ch}
  .login-app-top{flex:1 1 52%;max-width:760px}
  .login-app-card{flex:1 1 48%;max-width:none;margin:0;border-radius:0;box-shadow:none;background:transparent;display:flex;flex-direction:column;justify-content:center;
    padding:56px 48px}
  .login-app-card > *{width:100%;max-width:400px;margin-left:auto;margin-right:auto}
  .login-app-card::before{display:none}
  .login-app-card.largo{max-width:none}
  .login-app-footer{position:absolute;left:70px;bottom:28px;padding:0;text-align:left}
}
html.dark .hero{background:#17395E}
@media(min-width:1100px){.loj-content{max-width:1040px}}
/* número grande e legenda bem separados (evita ler "3" + "3 hoje" como "33") */
.hero-num small{margin-left:12px;font-family:var(--font);font-size:15px;font-weight:600;letter-spacing:0;color:rgba(255,255,255,.6)}
.hero-hoje{position:relative;display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:13px;color:rgba(255,255,255,.8);
  background:rgba(255,255,255,.08);border-radius:99px;padding:4px 12px}
.hero-hoje b{font-family:var(--display);font-size:15px;color:#fff}

/* ── Usuários (novo/editar) ───────────────────────────────────────────────── */
.us-wrap{max-width:1080px;margin:0 auto}
.us-grade{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}
.us-col{display:flex;flex-direction:column;min-width:0}
.us-card h3{font-family:var(--display);font-size:17px;font-weight:700;color:var(--title);margin-bottom:14px;letter-spacing:-.01em}
.us-nota{font-size:13px;color:var(--ink-2);margin:-6px 0 14px}
.us-ajuda{font-size:12.5px;color:var(--ink-3);margin-top:6px}
.us-ajuda a{color:var(--az);font-weight:600}
.us-tipos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.us-tipo,.us-perfil{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;cursor:pointer;
  background:var(--card);transition:border-color .15s,box-shadow .15s,background .15s}
.us-tipo input,.us-perfil input{position:absolute;opacity:0;pointer-events:none}
.us-tipo .ic,.us-perfil .ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--bg);color:var(--ink-2);flex-shrink:0}
.us-tipo .ic svg,.us-perfil .ic svg{width:19px;height:19px}
.us-tipo b,.us-perfil b{display:block;font-size:14px;font-weight:650;color:var(--title)}
.us-tipo small,.us-perfil small{display:block;font-size:12px;color:var(--ink-3);line-height:1.35}
.us-tipo:hover,.us-perfil:hover{border-color:#B9C8D9}
.us-tipo:has(input:checked),.us-perfil:has(input:checked){border-color:var(--az);box-shadow:0 0 0 3px rgba(2,132,199,.16);background:color-mix(in srgb,var(--az) 5%,var(--card))}
.us-tipo:has(input:checked) .ic,.us-perfil:has(input:checked) .ic{background:var(--az);color:#fff}
.us-tipo:has(input:focus-visible),.us-perfil:has(input:focus-visible){outline:2px solid var(--az);outline-offset:2px}
.us-perfis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.us-mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.us-mod{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;font-size:13.5px;color:var(--ink);transition:border-color .15s,background .15s}
.us-mod:has(input:checked){border-color:var(--az);background:color-mix(in srgb,var(--az) 6%,var(--card))}
.us-mod input{accent-color:var(--az);width:16px;height:16px}
.us-mods-acoes{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.us-barra{position:sticky;bottom:12px;z-index:5;display:flex;justify-content:flex-end;gap:10px;margin-top:6px;padding:12px;border-radius:18px;
  background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:var(--shadow)}
[hidden]{display:none !important}
@media(max-width:980px){.us-grade{grid-template-columns:1fr}}
@media(max-width:640px){.us-tipos,.us-perfis{grid-template-columns:1fr}.us-barra{bottom:calc(86px + var(--safe-bottom))}.us-barra .btn{flex:1}}

/* Rede de segurança: ícone SVG sem tamanho nunca estoura a tela (prioridade zero,
   qualquer regra de tela que defina o tamanho continua valendo) */
:where(svg:not([width]):not([height])){width:1.25em;height:1.25em}
:where(svg[viewBox]){max-width:100%}

/* Histórico de alterações (abre/fecha) */
.historico summary::-webkit-details-marker{display:none}
.historico summary > svg:last-child{width:18px;height:18px;color:var(--ink-3);transition:transform .2s}
.historico[open] summary > svg:last-child{transform:rotate(90deg)}

/* ── Cartão principal no estilo da placa Mercosul ───────────────────────────
   Faixa azul com emblema do Mercosul, "BRASIL" e bandeira; selo QR no canto;
   moldura interna como o friso da placa. */
.hero{box-shadow:0 24px 50px -28px rgba(10,28,46,.9),inset 0 0 0 1px rgba(255,255,255,.06);padding-top:44px}
.hero::before{content:"BRASIL";height:30px;line-height:30px;font:800 13px/30px var(--display);letter-spacing:.42em;text-indent:.42em;color:#fff;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 28'%3E%3Cg fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M4 20c6-9 20-13 32-10'/%3E%3Cpath d='M6 24c7-7 19-10 30-8'/%3E%3Cpath d='M9 27c6-4 15-6 25-5'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Ccircle cx='14' cy='7' r='1.6'/%3E%3Ccircle cx='20' cy='3.5' r='1.6'/%3E%3Ccircle cx='25' cy='8' r='1.6'/%3E%3Ccircle cx='19' cy='12' r='1.2'/%3E%3C/g%3E%3C/svg%3E") left 14px center/34px 24px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 20'%3E%3Crect width='28' height='20' rx='2' fill='%23009B3A'/%3E%3Cpath d='M14 2.5 25.5 10 14 17.5 2.5 10z' fill='%23FEDF00'/%3E%3Ccircle cx='14' cy='10' r='4.6' fill='%23002776'/%3E%3Cpath d='M9.6 9.2c3-.9 6.2-.6 8.9.8' stroke='%23fff' stroke-width='1' fill='none'/%3E%3C/svg%3E") right 14px center/26px 18px no-repeat,
    linear-gradient(180deg,#0B3FB0 0%,#003399 55%,#002A80 100%);
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.18),0 1px 0 rgba(0,0,0,.25);text-shadow:0 1px 0 rgba(0,0,0,.25)}
.hero::after{left:auto;right:18px;top:44px;width:46px;height:46px;border-radius:4px;opacity:.85;z-index:1;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21' shape-rendering='crispEdges'%3E%3Cg fill='%23fff'%3E%3Crect x='8' y='0' width='1' height='1'/%3E%3Crect x='9' y='0' width='1' height='1'/%3E%3Crect x='11' y='0' width='1' height='1'/%3E%3Crect x='8' y='1' width='1' height='1'/%3E%3Crect x='9' y='1' width='1' height='1'/%3E%3Crect x='11' y='1' width='1' height='1'/%3E%3Crect x='12' y='1' width='1' height='1'/%3E%3Crect x='8' y='2' width='1' height='1'/%3E%3Crect x='9' y='2' width='1' height='1'/%3E%3Crect x='10' y='2' width='1' height='1'/%3E%3Crect x='12' y='2' width='1' height='1'/%3E%3Crect x='8' y='3' width='1' height='1'/%3E%3Crect x='12' y='3' width='1' height='1'/%3E%3Crect x='9' y='4' width='1' height='1'/%3E%3Crect x='11' y='4' width='1' height='1'/%3E%3Crect x='12' y='4' width='1' height='1'/%3E%3Crect x='8' y='5' width='1' height='1'/%3E%3Crect x='9' y='5' width='1' height='1'/%3E%3Crect x='11' y='5' width='1' height='1'/%3E%3Crect x='9' y='6' width='1' height='1'/%3E%3Crect x='11' y='6' width='1' height='1'/%3E%3Crect x='12' y='6' width='1' height='1'/%3E%3Crect x='8' y='7' width='1' height='1'/%3E%3Crect x='10' y='7' width='1' height='1'/%3E%3Crect x='11' y='7' width='1' height='1'/%3E%3Crect x='0' y='8' width='1' height='1'/%3E%3Crect x='1' y='8' width='1' height='1'/%3E%3Crect x='4' y='8' width='1' height='1'/%3E%3Crect x='9' y='8' width='1' height='1'/%3E%3Crect x='11' y='8' width='1' height='1'/%3E%3Crect x='12' y='8' width='1' height='1'/%3E%3Crect x='14' y='8' width='1' height='1'/%3E%3Crect x='16' y='8' width='1' height='1'/%3E%3Crect x='0' y='9' width='1' height='1'/%3E%3Crect x='4' y='9' width='1' height='1'/%3E%3Crect x='7' y='9' width='1' height='1'/%3E%3Crect x='9' y='9' width='1' height='1'/%3E%3Crect x='14' y='9' width='1' height='1'/%3E%3Crect x='15' y='9' width='1' height='1'/%3E%3Crect x='17' y='9' width='1' height='1'/%3E%3Crect x='18' y='9' width='1' height='1'/%3E%3Crect x='19' y='9' width='1' height='1'/%3E%3Crect x='20' y='9' width='1' height='1'/%3E%3Crect x='0' y='10' width='1' height='1'/%3E%3Crect x='2' y='10' width='1' height='1'/%3E%3Crect x='3' y='10' width='1' height='1'/%3E%3Crect x='4' y='10' width='1' height='1'/%3E%3Crect x='6' y='10' width='1' height='1'/%3E%3Crect x='7' y='10' width='1' height='1'/%3E%3Crect x='12' y='10' width='1' height='1'/%3E%3Crect x='13' y='10' width='1' height='1'/%3E%3Crect x='14' y='10' width='1' height='1'/%3E%3Crect x='17' y='10' width='1' height='1'/%3E%3Crect x='18' y='10' width='1' height='1'/%3E%3Crect x='19' y='10' width='1' height='1'/%3E%3Crect x='20' y='10' width='1' height='1'/%3E%3Crect x='2' y='11' width='1' height='1'/%3E%3Crect x='3' y='11' width='1' height='1'/%3E%3Crect x='4' y='11' width='1' height='1'/%3E%3Crect x='5' y='11' width='1' height='1'/%3E%3Crect x='12' y='11' width='1' height='1'/%3E%3Crect x='17' y='11' width='1' height='1'/%3E%3Crect x='18' y='11' width='1' height='1'/%3E%3Crect x='19' y='11' width='1' height='1'/%3E%3Crect x='0' y='12' width='1' height='1'/%3E%3Crect x='1' y='12' width='1' height='1'/%3E%3Crect x='2' y='12' width='1' height='1'/%3E%3Crect x='3' y='12' width='1' height='1'/%3E%3Crect x='4' y='12' width='1' height='1'/%3E%3Crect x='5' y='12' width='1' height='1'/%3E%3Crect x='6' y='12' width='1' height='1'/%3E%3Crect x='7' y='12' width='1' height='1'/%3E%3Crect x='8' y='12' width='1' height='1'/%3E%3Crect x='9' y='12' width='1' height='1'/%3E%3Crect x='10' y='12' width='1' height='1'/%3E%3Crect x='13' y='12' width='1' height='1'/%3E%3Crect x='14' y='12' width='1' height='1'/%3E%3Crect x='15' y='12' width='1' height='1'/%3E%3Crect x='16' y='12' width='1' height='1'/%3E%3Crect x='17' y='12' width='1' height='1'/%3E%3Crect x='20' y='12' width='1' height='1'/%3E%3Crect x='9' y='13' width='1' height='1'/%3E%3Crect x='10' y='13' width='1' height='1'/%3E%3Crect x='11' y='13' width='1' height='1'/%3E%3Crect x='12' y='13' width='1' height='1'/%3E%3Crect x='14' y='13' width='1' height='1'/%3E%3Crect x='15' y='13' width='1' height='1'/%3E%3Crect x='18' y='13' width='1' height='1'/%3E%3Crect x='20' y='13' width='1' height='1'/%3E%3Crect x='12' y='14' width='1' height='1'/%3E%3Crect x='13' y='14' width='1' height='1'/%3E%3Crect x='14' y='14' width='1' height='1'/%3E%3Crect x='18' y='14' width='1' height='1'/%3E%3Crect x='19' y='14' width='1' height='1'/%3E%3Crect x='13' y='15' width='1' height='1'/%3E%3Crect x='15' y='15' width='1' height='1'/%3E%3Crect x='16' y='15' width='1' height='1'/%3E%3Crect x='17' y='15' width='1' height='1'/%3E%3Crect x='18' y='15' width='1' height='1'/%3E%3Crect x='19' y='15' width='1' height='1'/%3E%3Crect x='9' y='16' width='1' height='1'/%3E%3Crect x='13' y='16' width='1' height='1'/%3E%3Crect x='14' y='16' width='1' height='1'/%3E%3Crect x='15' y='16' width='1' height='1'/%3E%3Crect x='16' y='16' width='1' height='1'/%3E%3Crect x='17' y='16' width='1' height='1'/%3E%3Crect x='8' y='17' width='1' height='1'/%3E%3Crect x='11' y='17' width='1' height='1'/%3E%3Crect x='16' y='17' width='1' height='1'/%3E%3Crect x='17' y='17' width='1' height='1'/%3E%3Crect x='19' y='17' width='1' height='1'/%3E%3Crect x='9' y='18' width='1' height='1'/%3E%3Crect x='10' y='18' width='1' height='1'/%3E%3Crect x='13' y='18' width='1' height='1'/%3E%3Crect x='14' y='18' width='1' height='1'/%3E%3Crect x='15' y='18' width='1' height='1'/%3E%3Crect x='18' y='18' width='1' height='1'/%3E%3Crect x='9' y='19' width='1' height='1'/%3E%3Crect x='11' y='19' width='1' height='1'/%3E%3Crect x='12' y='19' width='1' height='1'/%3E%3Crect x='17' y='19' width='1' height='1'/%3E%3Crect x='20' y='19' width='1' height='1'/%3E%3Crect x='8' y='20' width='1' height='1'/%3E%3Crect x='9' y='20' width='1' height='1'/%3E%3Crect x='10' y='20' width='1' height='1'/%3E%3Crect x='12' y='20' width='1' height='1'/%3E%3Crect x='13' y='20' width='1' height='1'/%3E%3Crect x='14' y='20' width='1' height='1'/%3E%3Crect x='16' y='20' width='1' height='1'/%3E%3Crect x='17' y='20' width='1' height='1'/%3E%3Crect x='20' y='20' width='1' height='1'/%3E%3C/g%3E%3Crect x='0' y='0' width='7' height='7' fill='%23fff'/%3E%3Crect x='1' y='1' width='5' height='5' fill='%230F2D4A'/%3E%3Crect x='2' y='2' width='3' height='3' fill='%23fff'/%3E%3Crect x='14' y='0' width='7' height='7' fill='%23fff'/%3E%3Crect x='15' y='1' width='5' height='5' fill='%230F2D4A'/%3E%3Crect x='16' y='2' width='3' height='3' fill='%23fff'/%3E%3Crect x='0' y='14' width='7' height='7' fill='%23fff'/%3E%3Crect x='1' y='15' width='5' height='5' fill='%230F2D4A'/%3E%3Crect x='2' y='16' width='3' height='3' fill='%23fff'/%3E%3C/svg%3E") center/38px 38px no-repeat,#0F2D4A;box-shadow:0 0 0 1px rgba(255,255,255,.22)}
html.dark .hero::after{background-color:#17395E}
.hero-top{margin-top:0;padding-right:58px}
/* friso interno, como a borda em relevo da placa */
.hero-minis{background:rgba(0,0,0,.16)}
.hero > .hero-circle-1{display:block;position:absolute;inset:36px 8px 8px 8px;width:auto;height:auto;border-radius:18px;background:none;
  border:1px solid rgba(255,255,255,.07);animation:none;pointer-events:none}
@media(max-width:640px){
  .hero{padding-top:42px}
  .hero::before{font-size:12px;letter-spacing:.34em;background-size:30px 21px,22px 16px,auto;background-position:left 10px center,right 10px center,0 0}
  .hero::after{width:40px;height:40px;top:42px;right:14px;background-size:32px 32px,auto}
}


/* ── Campo de busca: um só padrão em todo o sistema ─────────────────────────
   Vale para qualquer campo de busca dentro das telas (inclusive os antigos com
   estilo escrito direto no HTML). A lupa vem do próprio campo; a lupa antiga
   ao lado some para não duplicar. */
.content :is(input[type=search],input[placeholder^="Buscar" i],input[placeholder^="Pesquisar" i],input[placeholder^="Filtrar" i]):not(.sem-padrao){
  height:48px !important;padding:0 16px 0 46px !important;border:1px solid var(--line) !important;border-radius:14px !important;
  background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238494A7' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 16px center/18px 18px !important;color:var(--ink) !important;font-size:14.5px !important;
  box-shadow:0 1px 2px rgba(13,27,42,.05) !important;width:100%;max-width:none;transition:border-color .15s,box-shadow .15s !important}
.content :is(input[type=search],input[placeholder^="Buscar" i],input[placeholder^="Pesquisar" i],input[placeholder^="Filtrar" i]):not(.sem-padrao)::placeholder{color:var(--ink-3);opacity:1}
.content :is(input[type=search],input[placeholder^="Buscar" i],input[placeholder^="Pesquisar" i],input[placeholder^="Filtrar" i]):not(.sem-padrao):focus{outline:none;border-color:var(--az) !important;box-shadow:0 0 0 4px rgba(2,132,199,.14) !important}
.content :is(input[type=search],input[placeholder^="Buscar" i],input[placeholder^="Pesquisar" i],input[placeholder^="Filtrar" i])::-webkit-search-cancel-button{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;cursor:pointer;
  background:#CBD5E1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='%23fff' stroke-width='3'%3E%3Cpath d='M7 7l10 10M17 7 7 17'/%3E%3C/svg%3E") center/10px no-repeat}
.content :is(div,label,span,form):has(> :is(input[type=search],input[placeholder^="Buscar" i],input[placeholder^="Pesquisar" i],input[placeholder^="Filtrar" i]):not(.sem-padrao)) > svg{display:none !important}
html.dark .content :is(input[type=search],input[placeholder^="Buscar" i],input[placeholder^="Pesquisar" i],input[placeholder^="Filtrar" i]):not(.sem-padrao){background-color:var(--bg-2) !important}

/* busca das listas: campo largo + botão colado */
.busca-lista{gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:8px;margin-bottom:16px}
.busca-lista .bl-campo{min-width:220px}
.busca-lista .bl-campo input{border-color:transparent !important;box-shadow:none !important;background-color:var(--bg) !important}
.busca-lista .bl-campo input:focus{background-color:var(--card) !important;border-color:var(--az) !important}
.busca-lista > .btn{height:48px;border-radius:14px;padding:0 22px}
.busca-lista select{height:48px;border-radius:14px !important}
@media(max-width:640px){.busca-lista{padding:6px}.busca-lista .bl-campo{flex:1 1 100%}.busca-lista > .btn{flex:1}}

/* filtros em pílulas (rolam para o lado no celular) */
.pilulas{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pilula{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:99px;border:1px solid var(--line);background:var(--card);
  color:var(--ink-2);font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s}
.pilula:hover{border-color:#B9C8D9;color:var(--ink)}
.pilula .n{min-width:22px;height:22px;padding:0 7px;border-radius:99px;background:var(--bg);color:var(--ink-2);font-size:12px;font-weight:700;display:grid;place-items:center}
.pilula.on{background:var(--brand);border-color:var(--brand);color:#fff}
.pilula.on .n{background:rgba(255,255,255,.18);color:#fff}
html.dark .pilula.on{background:#0284c7;border-color:#0284c7}
@media(max-width:640px){.pilulas{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-14px;padding-right:14px}.pilulas::-webkit-scrollbar{display:none}}


/* ── Placa desenhada (helper ui_placa) ───────────────────────────────────── */
.uplaca{display:inline-flex;flex-direction:column;border:2px solid #111;border-radius:7px;overflow:hidden;background:#fff;vertical-align:middle;
  box-shadow:0 2px 6px -2px rgba(0,0,0,.35);flex-shrink:0;line-height:1;user-select:all}
.uplaca .pl-faixa{display:flex;align-items:center;justify-content:space-between;gap:4px;color:#fff;font-family:var(--font);font-weight:800;letter-spacing:.2em;
  background:linear-gradient(#0B3FB0,#002A80);padding:0 4px}
.uplaca .pl-faixa span:only-child{margin:0 auto}
.uplaca .pl-merc{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 28'%3E%3Cg fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M4 20c6-9 20-13 32-10'/%3E%3Cpath d='M7 25c7-7 19-10 29-8'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Ccircle cx='14' cy='7' r='2.4'/%3E%3Ccircle cx='21' cy='3.5' r='2.4'/%3E%3Ccircle cx='26' cy='9' r='2.2'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.uplaca .pl-flag{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 20'%3E%3Crect width='28' height='20' rx='2' fill='%23009B3A'/%3E%3Cpath d='M14 2.5 25.5 10 14 17.5 2.5 10z' fill='%23FEDF00'/%3E%3Ccircle cx='14' cy='10' r='4.6' fill='%23002776'/%3E%3C/svg%3E") center/contain no-repeat}
.uplaca .pl-num{font-family:"Arial Black","Arial",sans-serif;font-weight:900;color:#111;text-align:center;letter-spacing:.06em;white-space:nowrap}
.uplaca.cinza{border-color:#2b2b2b}
.uplaca.cinza .pl-faixa{background:linear-gradient(#3a3a3a,#1f1f1f)}
.uplaca.cinza .pl-num{background:linear-gradient(#E6E6E6,#CFCFCF)}
.uplaca.p{width:92px} .uplaca.p .pl-faixa{height:9px;font-size:5.5px} .uplaca.p .pl-merc{width:11px;height:7px} .uplaca.p .pl-flag{width:9px;height:6px} .uplaca.p .pl-num{font-size:15px;padding:3px 2px 3px}
.uplaca.m{width:124px} .uplaca.m .pl-faixa{height:12px;font-size:7px} .uplaca.m .pl-merc{width:14px;height:10px} .uplaca.m .pl-flag{width:12px;height:8px} .uplaca.m .pl-num{font-size:21px;padding:4px 2px 5px}
.uplaca.g{width:176px;border-width:3px;border-radius:10px} .uplaca.g .pl-faixa{height:17px;font-size:9px} .uplaca.g .pl-merc{width:20px;height:14px} .uplaca.g .pl-flag{width:17px;height:12px} .uplaca.g .pl-num{font-size:30px;padding:6px 2px 7px}

/* bolinha de cor do veículo */
.cor-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--cor);box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);vertical-align:-1px;flex-shrink:0}

/* avatar com iniciais (helper ui_avatar) */
.avatar{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;flex-shrink:0;color:#fff;font-family:var(--display);font-weight:700;font-size:16px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--av) 80%,#fff),var(--av));box-shadow:0 8px 16px -10px var(--av)}

/* ── Fichas das listas (procurações, veículos, pessoas) ──────────────────── */
.fichas{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,440px),1fr));gap:14px;margin-bottom:16px}
.ficha{position:relative;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px 18px 14px;display:flex;flex-direction:column;gap:12px;
  overflow:hidden;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.ficha::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--cor,var(--az))}
.ficha:hover{border-color:color-mix(in srgb,var(--cor,var(--az)) 45%,var(--line));box-shadow:0 14px 30px -18px color-mix(in srgb,var(--cor,var(--az)) 70%,transparent)}
.ficha-topo{display:flex;align-items:center;gap:12px;min-width:0}
.ficha-ico{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;flex-shrink:0;color:#fff;
  background:linear-gradient(135deg,color-mix(in srgb,var(--cor) 75%,#fff),var(--cor));box-shadow:0 8px 16px -10px var(--cor)}
.ficha-ico svg{width:22px;height:22px}
.ficha-tit{flex:1;min-width:0}
.ficha-nome{font-family:var(--display);font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--title);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ficha-sub{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px}
.ficha-tipo{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;padding:3px 10px;border-radius:99px;
  color:color-mix(in srgb,var(--cor) 85%,#000);background:color-mix(in srgb,var(--cor) 13%,var(--card))}
html.dark .ficha-tipo{color:color-mix(in srgb,var(--cor) 55%,#fff)}
.ficha-ref{font-size:12px;font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums}
.ficha-data{font-size:12px;color:var(--ink-3);text-align:right;white-space:nowrap;align-self:flex-start}
.ficha-data b{display:block;font-size:13px;color:var(--ink-2);font-weight:650}
.ficha-veic{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--bg);min-width:0}
.ficha-veic .mod{min-width:0}
.ficha-veic .mod b{display:block;font-size:13.5px;font-weight:650;color:var(--title);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ficha-veic .mod small{font-size:12px;color:var(--ink-3)}
.ficha-dados{display:flex;flex-wrap:wrap;gap:6px 16px}
.ficha-dado{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);min-width:0}
.ficha-dado svg{width:15px;height:15px;color:var(--ink-3);flex-shrink:0}
.ficha-dado b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.ficha-acoes{display:flex;gap:8px;align-items:center;padding-top:12px;border-top:1px solid var(--line-2);margin-top:auto}
.ficha-acoes .btn{height:36px}
.ficha-acoes .direita{margin-left:auto}
.ficha-acoes form{display:inline-flex}
@media(max-width:640px){
  .ficha{padding:16px 14px 12px 18px}
  .ficha-acoes .btn{flex:1;justify-content:center;padding:0 8px}
  .ficha-acoes .direita{margin-left:0}
  .ficha-acoes form{flex:1} .ficha-acoes form .btn{width:100%}
}

/* Listas: um cartão por linha (sem cartões lado a lado) */
.fichas{grid-template-columns:1fr}

/* ── Lojas (admin) ───────────────────────────────────────────────────────── */
.lj-wrap{max-width:1000px;margin:0 auto}
.lj-form{max-width:860px}
.lj-sec h3{font-family:var(--display);font-size:18px;font-weight:700;color:var(--title);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.lj-sec h3 .n{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--brand);color:#fff;font-size:13px}
.lj-sec .card-h h3{margin:0;font-size:17px}
.lj-receita{border:1px solid var(--line);border-radius:16px;padding:14px;margin:4px 0 16px;background:var(--bg)}
.lj-rec-topo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-2)}
.lj-rec-ativ{font-weight:650;color:var(--title);margin-top:8px;font-size:14px}
.lj-receita .muted,.lj-rec-topo .muted{color:var(--ink-3);font-size:12.5px}
.lj-socios{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.lj-socios .pilula{height:32px;font-size:12.5px}
.lj-end{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 14px}
.lj-end > :nth-child(1){grid-column:span 3}.lj-end > :nth-child(2){grid-column:span 7}.lj-end > :nth-child(3){grid-column:span 2}
.lj-end > :nth-child(4){grid-column:span 3}.lj-end > :nth-child(5){grid-column:span 4}.lj-end > :nth-child(6){grid-column:span 3}.lj-end > :nth-child(7){grid-column:span 2}
@media(max-width:640px){.lj-end{grid-template-columns:1fr 1fr}.lj-end > *{grid-column:span 1 !important}.lj-end > :nth-child(2){grid-column:1/-1 !important}}
/* linhas rótulo/valor (fichas de detalhe) */
.pg-linha{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:13.5px}
.pg-linha:last-child{border-bottom:none}
.pg-linha .l{color:var(--ink-3);flex-shrink:0}
.pg-linha .v{font-weight:600;color:var(--title);text-align:right;min-width:0;overflow-wrap:anywhere}
.lj-cobranca{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.lj-topo{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:20px;margin:6px 0 16px;
  position:relative;overflow:hidden}
.lj-topo::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--placa)}
.lj-av{width:64px;height:64px;border-radius:20px;font-size:22px}
.lj-av-p{width:38px;height:38px;border-radius:12px;font-size:13px}
.lj-tit{flex:1;min-width:220px}
.lj-nome{font-family:var(--display);font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--title);line-height:1.1}
.lj-sub{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;margin-top:8px;font-size:13px;color:var(--ink-2)}
.lj-acoes{display:flex;gap:8px;flex-wrap:wrap}
.lj-acoes form{display:inline-flex}
.btn.lj-wa{background:#16a34a;color:#fff;border-color:#16a34a}
.btn.lj-wa:hover{background:#15803d;color:#fff}
.btn.lj-wa.grupo{background:#e8f8ee;color:#15803d;border-color:#bbf0cc}
html.dark .btn.lj-wa.grupo{background:#0F3B2E;color:#6EE7B7;border-color:#14532D}
.lj-linhas .pg-linha .v{max-width:70%}
.lj-sec-ativ summary{display:flex;justify-content:space-between;width:100%;cursor:pointer;list-style:none}
.lj-sec-ativ summary::-webkit-details-marker{display:none}
.lj-sec-ativ{display:block}
.lj-sec-ativ ul{margin:8px 0 0 18px;font-size:13px;color:var(--ink-2)}
.lj-cob{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.lj-cob > div{background:var(--bg);border-radius:14px;padding:12px 14px}
.lj-cob .l{display:block;font-size:12.5px;color:var(--ink-3)}
.lj-cob b{font-family:var(--display);font-size:17px;color:var(--title)}
@media(max-width:640px){.lj-cob{grid-template-columns:1fr}.lj-nome{font-size:22px}.lj-acoes{width:100%}.lj-acoes .btn,.lj-acoes form{flex:1 1 auto;justify-content:center}.lj-acoes form .btn{width:100%}}
.lj-proc-form{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-2)}
.lj-proc-busca{display:flex;gap:8px;margin-bottom:14px}
.lj-proc-busca input{max-width:260px}

/* Atalhos: no computador viram uma faixa compacta de "Acesso rápido" (o menu
   lateral já mostra tudo); no celular continuam os botões grandes. */
.atalhos-tit{display:none}
@media(min-width:821px){
  .atalhos-tit{display:block;font-size:13px;font-weight:600;color:var(--ink-3);margin:2px 0 8px}
  .atalhos,.atalhos.poucos{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
  .atalho{flex-direction:row;gap:8px;padding:6px 14px 6px 6px;border-radius:99px;min-height:0}
  .atalho:hover{transform:none}
  .atalho-ic{width:30px;height:30px;border-radius:50%;box-shadow:none}
  .atalho-ic svg{width:16px;height:16px}
  .atalho-rot{font-size:13px}
  .atalhos .atalho:nth-child(n+7){display:none}
}
/* aviso que repete o que o cartão principal já mostra: só no celular */
@media(min-width:821px){.so-celular{display:none !important}}
