/* ============================================================
   MAPA · Design System Altinovare
   Paleta da marca: ameixa #50164A · roxo #76206E · azul #0099FD · laranja #FF6B00
   ============================================================ */
:root{
  --ink:#2a1b30; --muted:#7c6f82; --paper:#f5f2f7; --surface:#ffffff; --line:#ece6ef;
  --plum:#50164A; --purple:#76206E; --blue:#0099fd; --orange:#ff6b00;
  --orange-soft:#ffe7d6; --orange-ink:#b24a05; --purple-soft:#f4e7f2; --blue-soft:#e3f3ff;
  --green:#2f8466; --green-soft:#e2f3ec; --red:#a3283a; --red-soft:#fbe4e7;
  --side-1:#50164A; --side-2:#320d2f; --side-text:#c2a6be;
  --shadow:0 8px 22px rgba(60,16,55,.08); --ring:rgba(118,32,110,.20);
  --radius:14px;
  font-family:Inter,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:inherit;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;
  display:grid;grid-template-columns:248px 1fr;min-height:100vh}
a{color:inherit}
button,input,select,textarea{font:inherit}
.skip-link{position:fixed;left:1rem;top:-4rem;z-index:30;padding:.7rem 1rem;background:var(--plum);color:#fff;border-radius:8px}
.skip-link:focus{top:1rem}

/* ===== SIDEBAR ===== */
.side{background:linear-gradient(178deg,var(--side-1),var(--side-2));color:var(--side-text);
  display:flex;flex-direction:column;padding:22px 16px;position:sticky;top:0;height:100vh}
.logo{display:flex;align-items:center;gap:11px;padding:6px 8px 20px}
.logo .mk{width:56px;height:56px;display:grid;place-items:center;flex:none;
  overflow:hidden}
.logo .mk img{width:100%;height:100%;object-fit:contain;display:block}
.logo .nm{color:#fff;font-weight:800;letter-spacing:.02em;font-size:1.12rem;line-height:1}
.logo .nm small{display:block;color:#b58fb0;font-weight:500;font-size:.6rem;letter-spacing:.01em;line-height:1.3;margin-top:4px}
.navlbl{font-size:.66rem;letter-spacing:.12em;color:#9a6f94;font-weight:700;margin:16px 10px 8px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--side-text);
  text-decoration:none;font-weight:600;font-size:.92rem;position:relative}
.nav a svg{width:19px;height:19px;flex:none;opacity:.82}
.nav a:hover{background:rgba(255,255,255,.06);color:#f0e4ee}
.nav a.active{background:rgba(255,255,255,.10);color:#fff}
.nav a.active::before{content:"";position:absolute;left:-16px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--orange)}
.nav a.active svg{opacity:1;color:var(--orange)}
.side .spacer{flex:1}
.userbox{display:flex;align-items:center;gap:11px;padding:11px 10px;border-radius:12px;background:rgba(255,255,255,.06);text-decoration:none}
.userbox .av{width:34px;height:34px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.9rem}
.userbox b{color:#fff;font-size:.86rem;display:block;line-height:1.2}
.userbox span{color:#b58fb0;font-size:.74rem}

/* ===== MAIN ===== */
.main{min-width:0;padding:26px 40px 44px;width:min(1180px,100%)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}
.crumb{color:var(--muted);font-size:.86rem;font-weight:600}
.crumb b{color:var(--ink)}
.crumb a{text-decoration:none;color:var(--muted)}
.crumb a:hover{color:var(--purple)}

/* stepper */
.stepper{display:flex;align-items:center;gap:8px}
.stp{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.82rem;font-weight:650}
.stp .n{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:.76rem;border:1.5px solid var(--line);background:#fff}
.stp.on{color:var(--ink)}
.stp.on .n{background:var(--purple);border-color:var(--purple);color:#fff}
.stp .seg{width:26px;height:1.5px;background:var(--line);margin:0 2px}

/* headings */
.page-head{margin-bottom:26px}
.eyebrow{color:var(--purple);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;margin-bottom:7px}
h1{font-size:1.8rem;letter-spacing:-.025em;line-height:1.1}
.page-head p{color:var(--muted);margin-top:7px;max-width:720px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:26px 0 14px}
h2{font-size:1.25rem;letter-spacing:-.01em}
.blocklbl{font-weight:750;font-size:1.02rem;margin-bottom:14px}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:9px;border:0;border-radius:12px;font-weight:800;cursor:pointer;
  padding:12px 20px;font-size:.95rem;text-decoration:none;transition:.15s}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 8px 18px rgba(255,107,0,.30)}
.btn-primary:hover{filter:brightness(1.04);transform:translateY(-1px)}
.btn-secondary{background:#fff;color:var(--purple);border:1.5px solid #e3cbe0}
.btn-secondary:hover{background:var(--purple-soft)}
.btn-ghost{background:none;color:var(--muted);font-weight:700}
.btn-ghost:hover{color:var(--ink)}
.btn-sm{padding:8px 14px;font-size:.85rem;border-radius:9px}

/* ===== CARDS / METRICS ===== */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.metric-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.metric{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 18px 16px;box-shadow:var(--shadow)}
.metric .lbl{color:var(--muted);font-size:.85rem;font-weight:650;display:flex;align-items:center;gap:8px}
.metric .lbl .mi{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--purple-soft);color:var(--purple)}
.metric .lbl .mi svg{width:17px;height:17px}
.metric .val{font-size:2rem;font-weight:800;margin:10px 0 2px;letter-spacing:-.02em}
.metric .foot{color:var(--muted);font-size:.8rem}

/* ===== TYPE LIST (escolha) ===== */
.typelist{display:flex;flex-direction:column;gap:10px}
.opt{display:flex;align-items:center;gap:16px;background:var(--surface);border:1.5px solid var(--line);
  border-radius:var(--radius);padding:14px 18px;cursor:pointer;box-shadow:var(--shadow);transition:.15s}
.opt:hover{border-color:#dcc9da}
.opt.sel{border-color:var(--purple);background:#fdf9fc;box-shadow:0 0 0 3px var(--ring),var(--shadow)}
.opt .ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:var(--purple-soft);color:var(--purple);flex:none}
.opt.sel .ic{background:var(--purple);color:#fff}
.opt .ic svg{width:22px;height:22px}
.opt .txt{flex:1}
.opt .txt h3{font-size:1.02rem;margin-bottom:2px;display:flex;align-items:center;gap:9px}
.opt .txt p{color:var(--muted);font-size:.86rem}
.opt .rad{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);flex:none;display:grid;place-items:center}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt input:checked ~ .rad,.opt.sel .rad{border-color:var(--purple)}
.opt input:checked ~ .rad::after,.opt.sel .rad::after{content:"";width:11px;height:11px;border-radius:50%;background:var(--purple)}

/* ===== TAGS / PILLS ===== */
.tag{font-size:.62rem;font-weight:800;color:var(--orange-ink);background:var(--orange-soft);border:1px solid #ffd3b0;
  padding:2px 8px;border-radius:999px;letter-spacing:.05em}
.tag.purple{color:var(--purple);background:var(--purple-soft);border-color:#e3cbe0}
.pill{display:inline-flex;align-items:center;padding:.32rem .65rem;border-radius:999px;font-size:.76rem;font-weight:700;
  color:var(--muted);background:#eee9f0}
.pill.green{color:var(--green);background:var(--green-soft)}
.pill.purple{color:var(--purple);background:var(--purple-soft)}
.pill.orange{color:var(--orange-ink);background:var(--orange-soft)}

/* ===== FORMS ===== */
.field{display:grid;gap:7px;margin-bottom:16px}
.field label{font-weight:700;font-size:.9rem}
.field input[type=text],.field input[type=number],.field input[type=search],.field select,.field textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:11px;font:inherit;color:var(--ink);background:#fff}
.field textarea{resize:vertical;min-height:96px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px var(--ring)}
.field .hint{font-size:.8rem;color:var(--muted)}
.field .hint.acc{color:var(--purple)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.chip{display:inline-flex;align-items:center;gap:9px;padding:11px 14px;border:1px solid var(--line);border-radius:11px;background:#fff;font-weight:650;font-size:.92rem}
.chip .src{width:20px;height:20px;border-radius:6px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}
.chip .src svg{width:12px;height:12px}

/* disclosure avancado */
.adv{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px dashed #d8c6d6;border-radius:12px;color:var(--purple);
  font-weight:700;background:#fdfafd;font-size:.92rem;cursor:pointer}
.adv svg{width:17px;height:17px}
.adv .muted{color:var(--muted);font-weight:500;font-size:.85rem}
.adv .chev{margin-left:auto;color:var(--muted)}
.adv[open] .chev svg{transform:rotate(90deg)}
.adv-body{padding:16px;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;background:#fff;color:var(--muted);font-size:.9rem}

/* ===== TABLES ===== */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse}
th,td{padding:.85rem 1.1rem;border-bottom:1px solid var(--line);text-align:left}
th{color:var(--muted);background:#faf7fb;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;font-weight:750;white-space:nowrap}
td{font-size:.92rem}
td small{display:block;margin-top:.15rem;color:var(--muted)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#fcfafd}
td a{color:var(--purple);font-weight:700;text-decoration:none}
td a:hover{text-decoration:underline}
.empty{padding:2.4rem;text-align:center;color:var(--muted)}
.linkbtn{border:0;background:none;color:var(--red);font-weight:700;cursor:pointer;padding:0;margin-left:.7rem}
.linkbtn:hover{text-decoration:underline}

/* filtros */
.filter-bar{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:14px}
.filter-bar input[type=search]{flex:1 1 260px;min-width:0;padding:.65rem .8rem;border:1.5px solid var(--line);border-radius:10px;background:#fff}
.filter-bar select{padding:.65rem .8rem;border:1.5px solid var(--line);border-radius:10px;background:#fff}

/* alerts */
.alert{padding:1rem 1.1rem;border-radius:12px;font-weight:650;margin-bottom:18px}
.alert.success{color:var(--green);background:var(--green-soft)}
.alert.error{color:var(--red);background:var(--red-soft)}

/* hero (dashboard) */
.hero{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:30px 32px;border-radius:20px;color:#fff;
  background:linear-gradient(120deg,var(--plum),var(--purple));box-shadow:var(--shadow);margin-bottom:26px}
.hero h1{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:.5rem;color:#fff}
.hero p{color:#e9d7e6;max-width:560px}
.hero .eyebrow{color:#f3b07f}

.actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px}
.mt{margin-top:22px}

/* ===== RESPONSIVE ===== */
@media (max-width:940px){
  body{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:row;align-items:center;gap:8px;overflow-x:auto;padding:12px 14px}
  .side .logo{padding:0 8px 0 0}
  .side .navlbl,.side .spacer,.side .userbox{display:none}
  .nav{flex-direction:row}
  .nav a.active::before{display:none}
  .metric-grid,.metric-grid.cols-3,.form-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .main{padding:18px}
  .metric-grid,.metric-grid.cols-3,.form-grid{grid-template-columns:1fr}
  .hero{flex-direction:column;align-items:flex-start;padding:22px}
}
