:root{
  --ml-bg:
    radial-gradient(circle at top left, rgba(52,131,250,.10), transparent 26%),
    radial-gradient(circle at top right, rgba(255,230,0,.12), transparent 18%),
    linear-gradient(180deg, #f7faff 0%, #eef3f9 100%);
  --ml-surface:#ffffff;
  --ml-border:#d8e2ef;
  --ml-ink:#0f172a;
  --ml-text:#334155;
  --ml-muted:#64748b;
  --ml-blue:#2563eb;
  --ml-success:#16a34a;
  --ml-radius-xl:24px;
  --ml-shadow:0 22px 54px rgba(15,23,42,.08);
  --ml-shadow-soft:0 16px 32px rgba(15,23,42,.06);
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

html,
body{
  min-height:100%;
}

html.ml-shell-pending{
  background:var(--ml-bg);
}

html.ml-shell-pending::before{
  content:"";
  position:fixed;
  inset:0;
  background:var(--ml-bg);
  z-index:9999;
}

html.ml-shell-pending body{
  opacity:0;
}

body{
  margin:0;
  background:var(--ml-bg);
  color:var(--ml-text);
  font-family:"Manrope","Segoe UI",Tahoma,Geneva,Verdana,sans-serif;
}

body.ml-shell-ready{
  padding:0 !important;
}

a{
  color:inherit;
  text-decoration:none;
}

img{
  display:block;
  max-width:100%;
}

button,
input,
select,
textarea{
  font:inherit;
}

.page-wrap{
  padding:0;
}

.container,
.container-fluid,
.wrap,
.ka-shell,
.reputacao-shell,
.rent-container{
  width:min(100%, 1440px);
  max-width:1440px;
  margin:0 auto 24px;
}

.container,
.container-fluid,
.ka-shell,
.reputacao-shell,
.rent-container{
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94)),
    linear-gradient(135deg, rgba(52,131,250,.04), rgba(255,230,0,.05));
  border:1px solid var(--ml-border);
  border-radius:var(--ml-radius-xl);
  box-shadow:var(--ml-shadow);
  padding:28px;
}

.wrap{
  padding:0 24px;
}

body.ml-shell-ready .page-wrap{
  padding:0;
}

h1,
h2,
h3{
  margin:0;
  color:var(--ml-ink);
  letter-spacing:-.04em;
  line-height:1.02;
}

h1{
  font-size:clamp(2rem, 3.4vw, 3rem);
}

h2{
  font-size:clamp(1.4rem, 2vw, 2rem);
}

h3{
  font-size:1.05rem;
}

.subtitle,
.page-subtitle,
.small-muted,
.muted,
.text-muted{
  color:var(--ml-muted);
}

.page-top,
.page-hero,
.hero,
.hero-actions,
.toolbar,
.promo-toolbar,
.controls-line,
.selection-bar,
.actions,
.buttons-row,
.modal-controls,
.toolbar-left,
.toolbar-right,
.apply-toolbar__buttons,
.apply-toolbar__buttons--ops{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.page-top,
.page-hero,
.hero{
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom:20px;
}

.page-top__left,
.page-top__right,
.hero__main,
.hero__side{
  min-width:0;
}

.panel,
.painel,
.card,
.section-card,
.filter-card,
.toolbar,
.promo-toolbar{
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.95));
  border:1px solid var(--ml-border);
  border-radius:20px;
  box-shadow:var(--ml-shadow-soft);
}

.panel,
.painel,
.card,
.section-card{
  padding:18px;
}

button,
.btn,
.btn-primary,
.btn-secondary,
.btn-warning,
.btn-danger,
.btn-ghost,
.btn-dark,
.btn-outline-secondary,
.action-btn{
  min-height:42px;
  padding:0 16px;
  border-radius:14px;
  border:1px solid transparent;
  font-weight:800;
  letter-spacing:.01em;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .2s ease, opacity .2s ease, border-color .2s ease, background .2s ease;
}

button:hover,
.btn:hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-warning:hover,
.btn-danger:hover,
.btn-ghost:hover,
.btn-dark:hover,
.btn-outline-secondary:hover,
.action-btn:hover{
  transform:translateY(-1px);
}

button:disabled,
.btn:disabled{
  opacity:.6;
  cursor:default;
  transform:none;
  box-shadow:none;
}

.btn-primary,
.action-btn{
  background:linear-gradient(135deg, var(--ml-blue), #3483fa);
  color:#fff;
  border-color:rgba(37,99,235,.18);
  box-shadow:0 16px 28px rgba(37,99,235,.18);
}

.btn-secondary,
.btn-outline-secondary{
  background:linear-gradient(135deg, #eef2f7, #ffffff);
  color:#1f2937;
  border-color:#d7e0eb;
}

.btn-ghost{
  background:rgba(255,255,255,.78);
  color:#1f2937;
  border-color:#d7e0eb;
}

.btn-warning{
  background:linear-gradient(135deg, #f59e0b, #facc15);
  color:#1f2937;
  border-color:rgba(245,158,11,.18);
  box-shadow:0 16px 28px rgba(245,158,11,.16);
}

.btn-danger{
  background:linear-gradient(135deg, #dc2626, #ef4444);
  color:#fff;
  border-color:rgba(220,38,38,.18);
  box-shadow:0 16px 28px rgba(220,38,38,.14);
}

.btn-dark{
  background:linear-gradient(135deg, #111827, #334155);
  color:#fff;
  border-color:rgba(15,23,42,.16);
  box-shadow:0 16px 28px rgba(15,23,42,.16);
}

.input-group{
  display:flex;
  align-items:stretch;
  width:100%;
}

.input-group > .form-control{
  flex:1 1 auto;
  width:1%;
  min-width:0;
}

.input-group-text{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:48px;
  padding:0 14px;
  border:1px solid var(--ml-border);
  border-right:none;
  border-radius:14px 0 0 14px;
  background:rgba(255,255,255,.88);
  color:var(--ml-muted);
}

.input-group > .form-control{
  border-radius:0 14px 14px 0;
}

.table-responsive{
  width:100%;
  overflow:auto;
}

.page-brief{
  margin:0 0 18px;
  padding:20px 22px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,250,255,.94)),
    linear-gradient(135deg, rgba(52,131,250,.04), rgba(255,230,0,.05));
  box-shadow:0 16px 30px rgba(15,23,42,.05);
}

.page-brief--compact{
  padding:18px 20px;
}

.page-brief__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
  padding:7px 12px;
  border-radius:999px;
  background:#eaf2ff;
  border:1px solid #c8dafc;
  color:#1f5fd6;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.page-brief__title{
  margin:0;
  color:var(--ml-ink);
  font-size:1.15rem;
  letter-spacing:-.03em;
}

.page-brief__text{
  margin:8px 0 0;
  max-width:72ch;
  color:var(--ml-muted);
  line-height:1.65;
}

.page-brief__items{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  margin-top:18px;
}

.page-brief__item{
  padding:14px 16px;
  border:1px solid rgba(148,163,184,.14);
  border-radius:18px;
  background:rgba(255,255,255,.82);
  box-shadow:0 10px 24px rgba(15,23,42,.04);
}

.page-brief__item strong{
  display:block;
  color:var(--ml-ink);
  font-size:.95rem;
}

.page-brief__item span{
  display:block;
  margin-top:6px;
  color:var(--ml-muted);
  line-height:1.55;
  font-size:.92rem;
}

.empty-state-note{
  padding:14px 16px;
  border:1px dashed rgba(148,163,184,.28);
  border-radius:18px;
  background:rgba(248,250,252,.84);
  color:var(--ml-muted);
  line-height:1.6;
}

@media (max-width: 960px){
  .page-brief__items{
    grid-template-columns:1fr;
  }
}

.btn-sm{
  min-height:36px;
  padding:0 12px;
  border-radius:12px;
}

.btn-pill{
  border-radius:999px;
}

input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
input[type="date"],
select,
textarea,
.form-control,
.form-select{
  width:100%;
  min-height:44px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid #d3dce8;
  background:#fff;
  color:var(--ml-ink);
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

textarea{
  min-height:120px;
  resize:vertical;
}

input:focus,
select:focus,
textarea:focus,
.form-control:focus,
.form-select:focus{
  border-color:#93c5fd;
  box-shadow:0 0 0 4px rgba(59,130,246,.10);
}

label,
.block-label,
.label-sm{
  display:block;
  margin-bottom:8px;
  color:var(--ml-ink);
  font-weight:700;
}

.label-sm{
  font-size:.82rem;
  color:rgba(15,23,42,.72);
}

.badge,
.pill,
.chip,
.status,
.status-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 11px;
  border-radius:999px;
  border:1px solid #d7e4ff;
  background:#eef4ff;
  color:#1d4ed8;
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
}

.status.active,
.badge-success,
.badge-safe{
  background:#ebf9f0;
  border-color:#cfead9;
  color:#166534;
}

.status.warning,
.badge-warning,
.badge-accent{
  background:#fff4db;
  border-color:#f8ddb0;
  color:#9a6700;
}

.badge-neutral,
.pill-soft{
  background:#f4f7fb;
  border-color:#dbe5f0;
  color:#475569;
}

.table,
table{
  width:100%;
  border-radius:18px;
  overflow:hidden;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--ml-border);
  box-shadow:0 18px 34px rgba(15,23,42,.06);
  background:rgba(255,255,255,.94);
}

.table-wrap,
.table-wrapper,
.table-scroll{
  border-radius:18px;
  overflow:auto;
  border:1px solid var(--ml-border);
  box-shadow:0 18px 34px rgba(15,23,42,.06);
  background:rgba(255,255,255,.86);
}

.table th,
table th{
  background:#f3f8ff;
  color:var(--ml-ink);
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:11px;
}

.table th,
.table td,
table th,
table td{
  padding:11px 10px;
  border-bottom:1px solid #edf2f7;
  text-align:left;
  vertical-align:top;
}

.table-empty,
.empty-row,
.placeholder{
  color:var(--ml-muted);
  text-align:center;
}

.result,
.result-panel,
.result-area,
.hint,
.note{
  border-radius:18px;
  border:1px solid var(--ml-border);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.95));
  box-shadow:var(--ml-shadow-soft);
}

.result,
.hint,
.note,
.result-panel{
  padding:16px 18px;
}

.result.success{
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#166534;
}

.result.error{
  background:#fef2f2;
  border-color:#fecaca;
  color:#991b1b;
}

.result.info{
  background:#eff6ff;
  border-color:#bfdbfe;
  color:#1d4ed8;
}

.result.warning{
  background:#fffbeb;
  border-color:#fde68a;
  color:#92400e;
}

.modal{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.42);
  z-index:1200;
}

.modal.is-open{
  display:block;
}

.modal-content{
  width:min(92vw, 720px);
  margin:5% auto;
  border-radius:22px;
  border:1px solid var(--ml-border);
  background:#fff;
  box-shadow:0 24px 50px rgba(15,23,42,.16);
  overflow:hidden;
}

/* ===== SaaS refresh ===== */
body{
  background:
    radial-gradient(circle at top left, rgba(59,130,246,.12), transparent 24%),
    radial-gradient(circle at 85% 0%, rgba(255,214,10,.10), transparent 18%),
    linear-gradient(180deg, #f5f8fd 0%, #ecf2f9 100%);
}

.container,
.container-fluid,
.ka-shell,
.reputacao-shell,
.rent-container{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  border-color:rgba(148,163,184,.15);
  box-shadow:
    0 24px 54px rgba(15,23,42,.07),
    inset 0 1px 0 rgba(255,255,255,.7);
}

.container::before,
.container-fluid::before,
.ka-shell::before,
.reputacao-shell::before,
.rent-container::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at top right, rgba(59,130,246,.08), transparent 22%),
    linear-gradient(135deg, rgba(255,255,255,.35), rgba(255,255,255,0));
  opacity:.9;
}

.panel,
.painel,
.card,
.section-card,
.filter-card,
.toolbar,
.promo-toolbar{
  border-radius:24px;
  border-color:rgba(148,163,184,.15);
  box-shadow:
    0 18px 38px rgba(15,23,42,.06),
    inset 0 1px 0 rgba(255,255,255,.5);
}

button,
.btn,
.btn-primary,
.btn-secondary,
.btn-warning,
.btn-danger,
.btn-ghost,
.btn-dark,
.btn-outline-secondary,
.action-btn{
  min-height:44px;
  border-radius:16px;
  box-shadow:0 14px 30px rgba(15,23,42,.06);
}

.btn-secondary,
.btn-outline-secondary,
.btn-ghost{
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(243,247,252,.92));
}

input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
input[type="date"],
select,
textarea,
.form-control,
.form-select{
  min-height:46px;
  border-radius:16px;
  border-color:#d7e0eb;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,253,.92));
  box-shadow:inset 0 1px 2px rgba(15,23,42,.03);
}

input:focus,
select:focus,
textarea:focus,
.form-control:focus,
.form-select:focus{
  border-color:#93c5fd;
  box-shadow:
    0 0 0 4px rgba(59,130,246,.10),
    inset 0 1px 2px rgba(15,23,42,.02);
}

.table,
table,
.table-wrap,
.table-wrapper,
.table-scroll{
  border-radius:22px;
}

.modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 20px;
  background:linear-gradient(135deg, #0f2c62, #1f5fd6);
  color:#fff;
}

.modal-header.alt{
  background:linear-gradient(135deg, #0f2c62, #1f5fd6);
}

.modal-body{
  padding:18px;
}

.close{
  color:#fff;
  font-size:28px;
  font-weight:900;
  cursor:pointer;
  line-height:1;
}

.status-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
}

.stat-mini{
  padding:12px;
  border-radius:14px;
  background:#f8f9fa;
  border-left:3px solid var(--ml-blue);
  text-align:center;
}

.stat-mini h4{
  margin:0;
  color:var(--ml-ink);
  font-size:1.3rem;
}

.stat-mini p{
  margin:6px 0 0;
  color:var(--ml-muted);
}

.d-flex{ display:flex; }
.align-items-center{ align-items:center; }
.flex-wrap{ flex-wrap:wrap; }
.gap-2{ gap:.5rem; }
.d-none{ display:none !important; }
.small,
.small.text-muted{ font-size:.875rem; }

.form-text{
  color:var(--ml-muted);
  font-size:.875rem;
  line-height:1.5;
}

.ml-shell__redundant-title{
  display:none !important;
}

.alert{
  padding:14px 16px;
  border-radius:16px;
  border:1px solid transparent;
  font-weight:600;
  line-height:1.5;
}

.alert-danger{
  background:#fef2f2;
  border-color:#fecaca;
  color:#b91c1c;
}

.alert-success{
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#166534;
}

.mt-1{ margin-top:.25rem; }
.mt-2{ margin-top:.5rem; }
.mt-3{ margin-top:1rem; }
.mb-0{ margin-bottom:0; }

@media (max-width: 960px){
  .container,
  .container-fluid,
  .ka-shell,
  .reputacao-shell,
  .rent-container{
    padding:22px;
  }

  .wrap{
    padding:0 14px;
  }

  .page-top,
  .page-hero,
  .hero{
    flex-direction:column;
    align-items:stretch;
  }
}

/* ===== Microinteractions ===== */
.page-brief,
.card,
.section-card,
.filter-card,
.toolbar,
.panel,
.painel,
.table-wrap,
.table-wrapper,
.table-shell,
.metric-card,
.kpi,
.action-group,
.promo-tab,
.toggle-chip{
  transition:
    transform .16s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    background-color .22s ease;
}

.page-brief:hover,
.card:hover,
.section-card:hover,
.filter-card:hover,
.toolbar:hover,
.panel:hover,
.painel:hover,
.metric-card:hover,
.kpi:hover{
  transform:translateY(-2px);
}

button,
.btn,
.btn-primary,
.btn-secondary,
.btn-warning,
.btn-danger,
.btn-ghost,
.btn-dark,
.btn-outline-secondary,
.action-btn{
  transition:
    transform .14s ease,
    box-shadow .18s ease,
    border-color .18s ease,
    background .18s ease,
    color .18s ease;
}

button:hover,
.btn:hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-warning:hover,
.btn-danger:hover,
.btn-ghost:hover,
.btn-dark:hover,
.btn-outline-secondary:hover,
.action-btn:hover{
  transform:translateY(-1px);
}

button:active,
.btn:active,
.btn-primary:active,
.btn-secondary:active,
.btn-warning:active,
.btn-danger:active,
.btn-ghost:active,
.btn-dark:active,
.btn-outline-secondary:active,
.action-btn:active{
  transform:translateY(0);
}

input,
select,
textarea,
.form-control,
.form-select{
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    background-color .18s ease;
}

.toggle-chip:hover,
.promo-tab:hover{
  border-color:rgba(59,130,246,.26);
  box-shadow:0 14px 28px rgba(15,23,42,.08);
}
