:root{
  --bg:#f4f6fb;
  --bg-soft:#eef2f8;
  --surface:#ffffff;
  --surface-2:#f7f9fd;
  --surface-3:#eef3fb;
  --text:#111827;
  --heading:#0b1220;
  --muted:#667085;
  --muted-2:#98a2b3;
  --line:#e5eaf3;
  --line-strong:#d7deea;
  --primary:#111827;
  --primary-2:#243044;
  --primary-soft:#eef2ff;
  --accent:#2563eb;
  --accent-2:#7c3aed;
  --danger:#b42318;
  --danger-bg:#fff1f2;
  --success:#087443;
  --success-bg:#ecfdf5;
  --warning:#a15c07;
  --warning-bg:#fff7ed;
  --radius:22px;
  --radius-sm:14px;
  --shadow:0 20px 50px rgba(15,23,42,.08);
  --shadow-lg:0 30px 90px rgba(15,23,42,.14);
  --sidebar:284px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.12), transparent 34rem),
    radial-gradient(circle at top right, rgba(124,58,237,.10), transparent 30rem),
    linear-gradient(180deg,#f7f9fd 0%,var(--bg) 44%,#f5f7fb 100%);
  color:var(--text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,Helvetica,sans-serif;
  min-width:320px;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:linear-gradient(rgba(15,23,42,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.028) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 72%);
}
a{color:var(--primary);text-decoration:none;font-weight:680}
a:hover{color:var(--accent)}
button,input,select,textarea{font-family:inherit}
::selection{background:#dbeafe;color:#0b1220}

/* Sidebar */
.sidebar{
  position:fixed;
  left:18px;
  top:18px;
  bottom:18px;
  width:calc(var(--sidebar) - 18px);
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:22px;
  color:#fff;
  background:
    radial-gradient(circle at 18% 0%,rgba(96,165,250,.28),transparent 28%),
    radial-gradient(circle at 95% 24%,rgba(167,139,250,.20),transparent 28%),
    linear-gradient(180deg,#0b1220 0%,#0e1728 54%,#111827 100%);
  border:1px solid rgba(255,255,255,.10);
  border-radius:28px;
  box-shadow:0 28px 80px rgba(15,23,42,.30);
  overflow:hidden;
  z-index:50;
}
.sidebar::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,0) 26%);
}
.sidebar .brand,.sidebar nav{position:relative;z-index:1}
.brand{display:flex;align-items:center;gap:13px;min-width:0}
.brand-mark{
  width:46px;
  height:46px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#fff 0%,#dfe9ff 100%);
  color:#0b1220;
  font-weight:900;
  letter-spacing:-.06em;
  box-shadow:inset 0 -1px 0 rgba(15,23,42,.10),0 16px 28px rgba(0,0,0,.22);
}
.brand strong{display:block;font-size:15px;letter-spacing:-.02em;line-height:1.1;color:#fff}.brand span{display:block;color:#aeb8cb;font-size:12px;margin-top:4px;font-weight:560}
.sidebar nav{display:grid;gap:7px;overflow:auto;padding-right:2px;margin-right:-4px}
.sidebar nav::-webkit-scrollbar{width:6px}.sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:999px}.sidebar nav::-webkit-scrollbar-track{background:transparent}
.sidebar nav a{
  position:relative;
  display:flex;
  align-items:center;
  min-height:44px;
  color:#d8e0ee;
  padding:11px 13px 11px 15px;
  border-radius:15px;
  font-size:14px;
  font-weight:660;
  letter-spacing:-.01em;
  transition:background .18s ease, color .18s ease, transform .18s ease, border-color .18s ease;
  border:1px solid transparent;
}
.sidebar nav a::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:99px;
  margin-right:10px;
  background:rgba(255,255,255,.28);
  box-shadow:0 0 0 0 rgba(255,255,255,0);
  transition:.18s ease;
}
.sidebar nav a:hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.08);transform:translateX(2px)}
.sidebar nav a:hover::before{background:#fff}
.sidebar nav a.active{
  color:#fff;
  background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.08));
  border-color:rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 14px 28px rgba(0,0,0,.18);
}
.sidebar nav a.active::before{background:#60a5fa;box-shadow:0 0 0 5px rgba(96,165,250,.16)}

.side-menu{align-content:start}
.menu-group{
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  background:rgba(255,255,255,.035);
  overflow:hidden;
}
.menu-group[open]{
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.028));
  border-color:rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.menu-group summary{
  list-style:none;
  cursor:pointer;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 13px 12px 15px;
  color:#fff;
  font-size:13px;
  font-weight:820;
  letter-spacing:.02em;
  text-transform:uppercase;
  user-select:none;
}
.menu-group summary::-webkit-details-marker{display:none}
.menu-group summary::after{
  content:"";
  width:9px;
  height:9px;
  border-right:2px solid rgba(255,255,255,.72);
  border-bottom:2px solid rgba(255,255,255,.72);
  transform:rotate(45deg) translateY(-2px);
  transition:transform .18s ease, border-color .18s ease;
  flex:0 0 auto;
}
.menu-group[open] summary::after{transform:rotate(225deg) translateY(-2px)}
.submenu{
  display:grid;
  gap:6px;
  padding:0 8px 9px;
}
.sidebar nav .submenu a{
  min-height:39px;
  border-radius:13px;
  padding:10px 12px;
  font-size:13px;
  color:#cdd7e7;
  background:rgba(255,255,255,.025);
}
.sidebar nav .submenu a::before{width:6px;height:6px;margin-right:9px;background:rgba(255,255,255,.22)}
.sidebar nav .submenu a.active{
  background:linear-gradient(135deg,rgba(96,165,250,.24),rgba(124,58,237,.14));
  border-color:rgba(96,165,250,.28);
}
.sidebar nav .logout-link{
  margin-top:8px;
  color:#fecaca;
  background:rgba(239,68,68,.08);
  border-color:rgba(248,113,113,.13);
}
.sidebar nav .logout-link::before{background:#f87171;box-shadow:0 0 0 5px rgba(248,113,113,.10)}
.sidebar nav .logout-link:hover{background:rgba(239,68,68,.14);color:#fff;border-color:rgba(248,113,113,.24)}


/* Main layout */
.main{
  position:relative;
  z-index:1;
  margin-left:calc(var(--sidebar) + 18px);
  padding:26px 28px 40px;
  max-width:1640px;
}
.topbar{
  position:sticky;
  top:14px;
  z-index:40;
  min-height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:24px;
  padding:14px 16px 14px 20px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(229,234,243,.80);
  border-radius:24px;
  box-shadow:0 14px 44px rgba(15,23,42,.07);
  backdrop-filter:blur(18px);
}
.topbar h1{margin:0 0 4px}
.topbar p{color:var(--muted);margin:0;font-size:13px;font-weight:560}
.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.user-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border:1px solid var(--line);
  border-radius:999px;
  background:linear-gradient(180deg,#fff,#f8fafc);
  color:#344054;
  padding:0 15px;
  font-weight:760;
  font-size:13px;
  box-shadow:0 8px 18px rgba(15,23,42,.04);
}

/* Type */
h1,h2,h3{color:var(--heading);letter-spacing:-.04em}h1{font-size:30px;line-height:1.08;margin:0 0 6px}h2{font-size:20px;line-height:1.18;margin:0 0 7px}h3{font-size:16px;margin:0 0 8px}p{line-height:1.58}.section-title p,.muted,small{color:var(--muted);margin:0}.section-title p{font-size:14px}.muted{font-weight:560}small{font-size:12px}

/* Cards and grids */
.card{
  position:relative;
  background:rgba(255,255,255,.90);
  border:1px solid rgba(229,234,243,.92);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:24px;
  margin-bottom:18px;
  backdrop-filter:blur(10px);
}
.card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.76),rgba(255,255,255,0) 140px);
  opacity:.65;
}
.card>*{position:relative;z-index:1}
.grid{display:grid;gap:16px}.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}.fields-2{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 2}
.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.section-title.inner{margin-top:28px}
.metric,.mini-card{border:1px solid var(--line);border-radius:18px;padding:18px;background:linear-gradient(180deg,#fff,#f7f9fd);box-shadow:0 10px 24px rgba(15,23,42,.04)}
.metric span,.mini-card span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.055em;font-weight:780}.metric strong,.mini-card strong{display:block;font-size:31px;line-height:1;margin:9px 0 7px;letter-spacing:-.06em;color:#101828}.metric p{color:var(--muted);margin:0;font-size:13px}.metric .small-metric{font-size:18px;letter-spacing:-.02em;line-height:1.25}

/* Buttons */
.btn,.icon-btn,.mini-action{appearance:none;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease,color .16s ease}.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  border:0;
  border-radius:14px;
  background:linear-gradient(135deg,#111827,#283548);
  color:#fff;
  padding:11px 16px;
  font-weight:780;
  cursor:pointer;
  font-size:14px;
  letter-spacing:-.01em;
  box-shadow:0 12px 24px rgba(17,24,39,.16);
}
.btn:hover{background:linear-gradient(135deg,#1f2937,#111827);color:#fff;transform:translateY(-1px);box-shadow:0 16px 30px rgba(17,24,39,.22)}
.btn.ghost{background:rgba(255,255,255,.74);color:var(--primary);border:1px solid var(--line);box-shadow:0 8px 18px rgba(15,23,42,.05)}
.btn.ghost:hover{background:#fff;border-color:var(--line-strong);color:#0b1220}.btn:active,.icon-btn:active,.mini-action:active{transform:translateY(0)}.btn:disabled,.icon-btn:disabled{opacity:.70;cursor:not-allowed;transform:none}
.icon-btn{border:1px solid var(--line);background:#fff;padding:8px 10px;border-radius:11px;cursor:pointer;font-weight:750;color:#344054;box-shadow:0 8px 16px rgba(15,23,42,.04)}.icon-btn:hover{border-color:var(--line-strong);background:#f8fafc}.icon-btn.danger{color:var(--danger);background:var(--danger-bg)}
.actions{display:flex;align-items:center;gap:12px;margin-top:20px}.actions.wrap{flex-wrap:wrap}.inline-actions{margin-top:0;flex-wrap:wrap}.inline-actions form{margin:0}

/* Forms */
.form label{display:grid;gap:8px;font-size:13px;font-weight:760;color:#344054;letter-spacing:-.01em}.form input,.form select,.form textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:15px;
  padding:12px 13px;
  background:rgba(255,255,255,.96);
  color:var(--text);
  font:inherit;
  font-weight:560;
  outline:none;
  min-height:44px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 7px 16px rgba(15,23,42,.025);
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.form textarea{resize:vertical;min-height:132px;line-height:1.5}.form input::placeholder,.form textarea::placeholder{color:#a3adbd}.form input:focus,.form select:focus,.form textarea:focus{border-color:#93b4f7;box-shadow:0 0 0 4px rgba(37,99,235,.10),0 10px 20px rgba(15,23,42,.04);background:#fff}.form small{font-weight:540;line-height:1.45}.form select[multiple]{min-height:126px;padding:8px}.form select[multiple] option{padding:9px 10px;border-radius:10px;margin:2px 0}.check-row{display:flex!important;align-items:center;gap:10px;align-self:end;border:1px solid var(--line);border-radius:15px;padding:12px 13px;background:linear-gradient(180deg,#fff,#f7f9fd)}.check-row input{width:auto;min-height:auto}.hidden{display:none!important}
.multi-select-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.mini-action{border:1px solid var(--line);background:#fff;color:var(--primary);border-radius:11px;padding:8px 11px;font-weight:780;cursor:pointer;font-size:12px}.mini-action:hover{background:#f8fafc;border-color:var(--line-strong)}

/* Tables */
.table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.04)}
.table-wrap::-webkit-scrollbar{height:10px;width:10px}.table-wrap::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;border:2px solid #fff}.table-wrap::-webkit-scrollbar-track{background:#f8fafc;border-radius:999px}
table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;min-width:760px}th,td{text-align:left;padding:14px 15px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}th{position:sticky;top:0;z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#667085;background:linear-gradient(180deg,#f9fbff,#f3f6fb);font-weight:850}tr:last-child td{border-bottom:0}tbody tr{transition:background .15s ease}tbody tr:hover{background:#fbfdff}.compact-table{margin-top:14px}.compact-table table{min-width:920px}.compact-table th,.compact-table td{font-size:13px;padding:11px 12px}.report-table table{min-width:1500px}.report-table td strong{display:block;margin-bottom:4px}.report-table td small{display:block;color:var(--muted);line-height:1.35}.report-table td:nth-child(1){min-width:260px}.report-table td:nth-child(13){min-width:220px}.report-table td:nth-child(14){min-width:150px}

/* Status and alerts */
.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:#eef2ff;color:#273276;font-weight:800;font-size:12px}.pill::before{content:"";width:6px;height:6px;border-radius:99px;background:currentColor;opacity:.55}.alert,.notice{border-radius:17px;padding:14px 16px;margin-bottom:18px;border:1px solid var(--line);background:#eef5ff;color:#334155;box-shadow:0 10px 22px rgba(15,23,42,.04)}.alert.success,.success-card{background:var(--success-bg);color:#065f46;border-color:#bbf7d0}.alert.warning,.warning,.warning-card{background:var(--warning-bg);color:#9a3412;border-color:#fed7aa}.alert.error,.error-card{background:var(--danger-bg);color:#9f1239;border-color:#fecdd3}.warning-card h3{margin:0 0 8px}.warning-card ul{margin:0;padding-left:18px;color:#9a3412}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.steps div{border:1px solid var(--line);border-radius:18px;padding:18px;background:linear-gradient(180deg,#fff,#f7f9fd);box-shadow:0 10px 22px rgba(15,23,42,.04)}.steps strong{width:36px;height:36px;border-radius:13px;background:linear-gradient(135deg,#111827,#2f3b52);color:white;display:grid;place-items:center;margin-bottom:12px;box-shadow:0 12px 20px rgba(17,24,39,.18)}.steps span{color:var(--muted);font-size:14px;line-height:1.45;display:block}

/* Model catalog */
details{margin-top:14px}summary{cursor:pointer;font-weight:780}pre{white-space:pre-wrap;word-break:break-word;background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;color:#30384b;max-height:360px;overflow:auto}
.model-card{border:1px solid var(--line);background:linear-gradient(180deg,#fff,#f9fbff);border-radius:20px;padding:18px;margin-bottom:14px;box-shadow:0 10px 24px rgba(15,23,42,.04)}.model-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:14px}.model-search-wrap{position:relative}.model-suggestions{position:absolute;left:0;right:0;top:78px;z-index:30;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);padding:8px;display:grid;gap:6px;max-height:320px;overflow:auto}.model-suggestions button{width:100%;border:0;background:#fff;text-align:left;padding:11px 12px;border-radius:13px;cursor:pointer;color:var(--text);transition:background .15s ease}.model-suggestions button:hover{background:#f5f8ff}.model-suggestions strong{display:block;font-size:14px}.model-suggestions small{display:block;margin-top:3px}.suggestion-empty{color:var(--muted)!important}.quick-catalog-card details{margin:0}.quick-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer}.quick-summary::-webkit-details-marker{display:none}.quick-summary span,.catalog-model-card summary span{display:grid;gap:4px}.quick-summary strong,.catalog-model-card summary strong{font-size:16px}.catalog-form{margin-top:18px}.model-list{display:grid;gap:12px}.catalog-model-card{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,#f9fbff);padding:15px;box-shadow:0 10px 22px rgba(15,23,42,.035)}.catalog-model-card summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer}.catalog-model-card summary form{margin:0}

/* Login */
.login-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:22px;
  background:
    radial-gradient(circle at 15% 15%,rgba(37,99,235,.20),transparent 32rem),
    radial-gradient(circle at 85% 10%,rgba(124,58,237,.18),transparent 30rem),
    linear-gradient(135deg,#0b1220 0%,#111827 44%,#eef2f8 44.2%,#f8fafc 100%);
}
.login-shell{width:min(470px,100%);position:relative;z-index:1}.login-card{background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.80);border-radius:30px;box-shadow:0 35px 110px rgba(15,23,42,.28);padding:30px;backdrop-filter:blur(18px)}.login-brand{margin-bottom:28px}.login-brand .brand-mark{background:linear-gradient(135deg,#0b1220,#26354a);color:#fff}.login-brand strong{color:#0b1220}.login-brand span{color:var(--muted)}.login-copy{margin-bottom:18px}.login-copy h1{font-size:31px;margin-bottom:8px}.login-copy p{margin:0;color:var(--muted)}.login-help{margin-top:18px;font-size:13px}.compact-notice{margin-top:16px;margin-bottom:0}

/* Loading overlay */
body.is-loading{overflow:hidden}.loading-overlay{position:fixed;inset:0;z-index:9999;background:rgba(11,18,32,.58);backdrop-filter:blur(10px);display:grid;place-items:center;padding:22px;animation:fadeIn .18s ease-out}.loading-modal{width:min(445px,100%);background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.82);border-radius:28px;box-shadow:0 35px 110px rgba(15,23,42,.30);padding:30px;text-align:center;animation:loadingPop .22s ease-out}.loading-spinner{width:76px;height:76px;border-radius:24px;margin:0 auto 18px;display:grid;place-items:center;background:linear-gradient(135deg,#f8fafc,#eef2ff);position:relative;box-shadow:inset 0 1px 0 #fff,0 14px 26px rgba(15,23,42,.08)}.loading-spinner:before{content:"";position:absolute;inset:8px;border-radius:20px;border:4px solid #dbe3f0;border-top-color:#111827;animation:spin .85s linear infinite}.loading-spinner span{width:10px;height:10px;border-radius:999px;background:#111827;box-shadow:18px 0 0 rgba(17,24,39,.5),-18px 0 0 rgba(17,24,39,.25);animation:dots 1s ease-in-out infinite}.loading-copy strong{display:block;font-size:20px;letter-spacing:-.03em;margin-bottom:8px}.loading-copy p{margin:0;color:var(--muted);font-size:14px}.loading-progress{height:8px;background:#edf1f8;border-radius:999px;overflow:hidden;margin:20px 0 12px}.loading-progress span{display:block;height:100%;width:48%;border-radius:999px;background:linear-gradient(90deg,#111827,#2563eb);animation:progressMove 1.25s ease-in-out infinite}.loading-modal small{display:block;min-height:18px;color:#475166;font-weight:680}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes loadingPop{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes progressMove{0%{transform:translateX(-120%)}50%{transform:translateX(70%)}100%{transform:translateX(230%)}}@keyframes dots{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.08)}}

/* Users */
.user-list{display:grid;gap:14px}.user-card h2{margin:0 0 5px}.user-card .check-row{align-self:start}.user-card .model-head{gap:16px}

/* Responsivo */
@media(max-width:1100px){
  :root{--sidebar:260px}
  .sidebar{left:12px;top:12px;bottom:12px;width:248px;border-radius:24px;padding:18px}.main{margin-left:272px;padding:18px 18px 32px}.topbar{top:12px}.cards-3{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  body{background:#f5f7fb}.sidebar{position:relative;left:auto;top:auto;bottom:auto;width:auto;margin:0;border-radius:0 0 26px 26px;box-shadow:0 20px 50px rgba(15,23,42,.22);max-height:none}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding-right:0;margin-right:0}.sidebar nav a{min-height:42px}.main{margin-left:0;padding:18px}.topbar{position:relative;top:auto;align-items:flex-start;flex-direction:column;padding:18px}.topbar-actions{width:100%;justify-content:stretch}.topbar-actions .btn,.user-pill{width:100%;justify-content:center}.cards-3,.fields-2,.steps{grid-template-columns:1fr}.span-2{grid-column:span 1}.section-title{flex-direction:column}.btn{width:100%}.actions{align-items:stretch;flex-direction:column}.inline-actions{width:100%;align-items:stretch;flex-direction:column}.inline-actions form,.inline-actions button{width:100%}.multi-select-actions{width:100%}.mini-action{flex:1}.model-suggestions{top:78px}.quick-summary,.catalog-model-card summary{align-items:flex-start;flex-direction:column}.catalog-model-card summary form,.catalog-model-card summary button{width:100%}.loading-modal{padding:24px;border-radius:22px}.loading-copy strong{font-size:18px}.login-card{padding:23px;border-radius:24px}.login-copy h1{font-size:26px}.user-card .model-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:520px){
  .sidebar nav{grid-template-columns:1fr}.brand-mark{width:42px;height:42px}.card{padding:18px;border-radius:20px}h1{font-size:26px}.metric strong,.mini-card strong{font-size:27px}th,td{padding:12px 13px}.login-page{background:linear-gradient(180deg,#0b1220 0,#111827 36%,#f8fafc 36.2%,#f8fafc 100%)}
}

/* Report filters premium layout */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:9px;
  color:#2563eb;
  font-size:11px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.eyebrow::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#2563eb;
  box-shadow:0 0 0 5px rgba(37,99,235,.10);
}
.report-filter-card{
  padding:0;
  overflow:hidden;
  border-color:rgba(217,226,241,.95);
  background:
    radial-gradient(circle at 8% 0%,rgba(37,99,235,.09),transparent 26rem),
    radial-gradient(circle at 96% 8%,rgba(124,58,237,.08),transparent 28rem),
    rgba(255,255,255,.92);
}
.report-filter-card::before{display:none}
.report-filter-title{
  margin:0;
  padding:26px 28px 20px;
  border-bottom:1px solid rgba(229,234,243,.82);
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.25));
}
.report-filter-title h2{font-size:23px;margin-bottom:8px}
.report-speed-badge{
  min-width:190px;
  padding:12px 14px;
  border:1px solid rgba(37,99,235,.16);
  border-radius:17px;
  background:linear-gradient(135deg,#eff6ff,#f8fbff);
  box-shadow:0 12px 26px rgba(37,99,235,.06);
}
.report-speed-badge strong{display:block;color:#1e3a8a;font-size:13px;margin-bottom:3px}
.report-speed-badge span{display:block;color:#64748b;font-size:12px;font-weight:620}
.report-form{padding:24px 28px 28px}
.report-builder{
  display:grid;
  grid-template-columns:minmax(250px,310px) minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.report-store-panel,.filter-block{
  border:1px solid rgba(229,234,243,.92);
  border-radius:22px;
  background:rgba(255,255,255,.82);
  box-shadow:0 14px 32px rgba(15,23,42,.045);
}
.report-store-panel{
  position:sticky;
  top:112px;
  padding:18px;
  background:
    linear-gradient(180deg,rgba(248,251,255,.96),rgba(255,255,255,.86));
}
.filter-block{padding:18px;margin-bottom:14px}
.filter-block:last-child{margin-bottom:0}
.filter-block-head{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:16px;
}
.filter-block-head.compact{margin-bottom:14px}
.filter-step{
  width:34px;
  height:34px;
  border-radius:13px;
  display:grid;
  place-items:center;
  flex:0 0 34px;
  color:#fff;
  font-size:12px;
  font-weight:900;
  background:linear-gradient(135deg,#111827,#334155);
  box-shadow:0 12px 20px rgba(15,23,42,.16);
}
.filter-block-head h3{font-size:15px;margin:0 0 3px;letter-spacing:-.03em}
.filter-block-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.45;font-weight:560}
.report-filter-stack{display:grid;gap:0}
.report-fields{gap:13px}
.fields-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.clean-label{gap:10px!important}
.store-picker{
  min-height:188px!important;
  border-radius:18px!important;
  background:
    linear-gradient(180deg,#ffffff,#f8fbff)!important;
  padding:10px!important;
}
.store-picker option{
  padding:11px 12px!important;
  border-radius:12px!important;
  margin:4px 0!important;
  color:#111827;
  font-weight:720;
}
.store-picker option:checked{
  background:linear-gradient(135deg,#111827,#2f3b52)!important;
  color:#fff!important;
}
.performance-block{
  background:
    radial-gradient(circle at right top,rgba(37,99,235,.07),transparent 20rem),
    rgba(255,255,255,.84);
}
.report-submit-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:18px;
  padding:16px;
  border:1px solid rgba(229,234,243,.94);
  border-radius:20px;
  background:linear-gradient(135deg,#f8fbff,#ffffff);
  box-shadow:0 16px 34px rgba(15,23,42,.045);
}
.report-submit-bar strong{display:block;color:#0f172a;font-size:14px;letter-spacing:-.02em;margin-bottom:4px}
.report-submit-bar small{display:block;font-size:12px;color:var(--muted);font-weight:560}
.report-submit-bar .btn{min-width:190px;min-height:46px}

@media(max-width:1180px){
  .report-builder{grid-template-columns:1fr}
  .report-store-panel{position:relative;top:auto}
  .fields-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .report-filter-title{padding:22px}
  .report-form{padding:20px}
  .report-speed-badge{width:100%}
  .fields-3{grid-template-columns:1fr}
  .report-submit-bar{align-items:stretch;flex-direction:column}
  .report-submit-bar .btn{width:100%}
}
@media(max-width:520px){
  .report-filter-title,.report-form{padding:18px}
  .filter-block,.report-store-panel{border-radius:18px;padding:15px}
  .filter-block-head{gap:10px}
  .filter-step{width:30px;height:30px;flex-basis:30px;border-radius:11px;font-size:11px}
}

/* Inventory summary module */
.inventory-hero .report-filter-title{
  background:radial-gradient(circle at right top,rgba(15,23,42,.08),transparent 22rem),linear-gradient(135deg,#ffffff,#f8fbff);
}
.inventory-builder{grid-template-columns:320px minmax(0,1fr)}
.copy-textarea{
  width:100%;
  min-height:420px;
  border:1px solid rgba(229,234,243,.95);
  border-radius:18px;
  padding:18px;
  background:linear-gradient(180deg,#0f172a,#111827);
  color:#f8fafc;
  font:600 14px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  resize:vertical;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 18px 40px rgba(15,23,42,.12);
}
.inventory-pill{display:inline-flex;margin:3px 4px 3px 0;background:#eef2ff;color:#1e293b;border:1px solid rgba(99,102,241,.16)}
.hidden{display:none!important}
@media(max-width:1180px){.inventory-builder{grid-template-columns:1fr}}


.batch-progress-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 12px;
  margin: 18px 0;
}

.mini-stat {
  border: 1px solid rgba(148, 163, 184, .22);
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,250,252,.78));
  border-radius: 18px;
  padding: 14px 16px;
  box-shadow: 0 14px 40px rgba(15, 23, 42, .06);
  min-height: 72px;
}

.mini-stat span {
  display: block;
  font-size: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 7px;
}

.mini-stat strong {
  display: block;
  font-size: 19px;
  line-height: 1.15;
  color: #0f172a;
  word-break: break-word;
}

.inline-product-form {
  display: inline-flex;
  align-items: end;
  gap: 10px;
  flex-wrap: wrap;
}

.compact-select {
  display: grid;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  color: #475569;
  min-width: 150px;
}

.compact-select select {
  min-height: 42px;
  padding: 0 38px 0 12px;
}

.purchase-review-card {
  border-color: rgba(16, 185, 129, .28);
}

@media (max-width: 960px) {
  .batch-progress-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .batch-progress-grid {
    grid-template-columns: 1fr;
  }

  .inline-product-form,
  .compact-select {
    width: 100%;
  }

  .inline-product-form .btn {
    width: 100%;
  }
}


/* v3.3 - Relatório turbo local */
.local-cache-card,
.report-source-card,
.comparison-card {
    position: relative;
    overflow: hidden;
}
.local-cache-card::before,
.report-source-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--brand), #22c55e);
    opacity: .9;
}
.cache-pill {
    min-width: 112px;
    border-radius: 999px;
    padding: 9px 13px;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    border: 1px solid rgba(148, 163, 184, .25);
    background: rgba(15, 23, 42, .06);
    color: var(--muted);
}
.cache-pill.ok {
    background: rgba(34, 197, 94, .12);
    color: #15803d;
    border-color: rgba(34, 197, 94, .28);
}
.cache-pill.empty {
    background: rgba(245, 158, 11, .12);
    color: #92400e;
    border-color: rgba(245, 158, 11, .28);
}
.mini-metrics > div {
    border: 1px solid var(--line);
    background: rgba(248, 250, 252, .8);
    border-radius: 16px;
    padding: 14px 15px;
}
.mini-metrics span {
    display: block;
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .045em;
    margin-bottom: 5px;
}
.mini-metrics strong {
    font-size: 22px;
    letter-spacing: -.04em;
}
.details-panel {
    margin-top: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255,255,255,.72);
    overflow: hidden;
}
.details-panel summary {
    cursor: pointer;
    padding: 14px 16px;
    font-weight: 700;
}
.details-panel .table-wrap {
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
}
.pill.danger {
    color: #991b1b;
    background: rgba(239, 68, 68, .12);
    border-color: rgba(239, 68, 68, .26);
}
.report-submit-bar .actions.wrap {
    justify-content: flex-end;
}
@media (max-width: 860px) {
    .report-submit-bar {
        align-items: stretch;
    }
    .report-submit-bar .actions.wrap {
        justify-content: stretch;
    }
    .report-submit-bar .actions.wrap .btn {
        width: 100%;
    }
}
