/* ============ RESET & TOKENS ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg: #0a0a0f;
  --bg-elevated: #121219;
  --bg-card: #16161f;
  --bg-hover: #1c1c27;
  --border: rgba(255,255,255,.08);
  --border-strong: rgba(255,255,255,.14);
  --text: #f4f4f6;
  --text-dim: #9999a8;
  --text-faint: #6b6b7b;
  --primary: #6366f1;
  --primary-dim: rgba(99,102,241,.15);
  --success: #10b981;
  --success-dim: rgba(16,185,129,.15);
  --danger: #f43f5e;
  --danger-dim: rgba(244,63,94,.15);
  --warning: #f59e0b;
  --radius: 14px;
  --radius-sm: 9px;
  --shadow-lg: 0 20px 50px -12px rgba(0,0,0,.6);
  --font: 'Inter', -apple-system, sans-serif;
  --mono: 'JetBrains Mono', monospace;
}
html,body{height:100%}
body{
  background: radial-gradient(ellipse 80% 50% at 50% -10%, rgba(99,102,241,.12), transparent),
              var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}

/* ============ LAYOUT ============ */
#app{display:flex; min-height:100vh}

.sidebar{
  width: 248px;
  flex-shrink: 0;
  background: var(--bg-elevated);
  border-right: 1px solid var(--border);
  display:flex;
  flex-direction:column;
  padding: 24px 16px;
  position: sticky; top:0; height:100vh;
}
.sidebar-logo{
  display:flex; align-items:center; gap:10px;
  padding: 0 8px 28px; font-weight:800; font-size:18px; letter-spacing:-.3px;
}
.logo-mark{
  width:32px;height:32px;border-radius:9px;
  background: linear-gradient(135deg,#6366f1,#8b5cf6);
  display:flex;align-items:center;justify-content:center;
  font-weight:800; font-size:16px; color:#fff;
}
.sidebar-nav{display:flex;flex-direction:column;gap:2px}
.nav-item{
  display:flex;align-items:center;gap:11px;
  padding:10px 12px; border-radius:var(--radius-sm);
  color:var(--text-dim); text-decoration:none;
  font-weight:500; font-size:13.5px;
  border-left:2px solid transparent;
  transition: all .15s ease;
}
.nav-item:hover{background:var(--bg-hover); color:var(--text)}
.nav-item.active{
  background: var(--primary-dim); color: #c7d2fe;
  border-left-color: var(--primary);
}
.sidebar-footer{margin-top:auto; padding-top:16px}
.mini-card{
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius-sm); padding:12px 14px;
  display:flex; flex-direction:column; gap:4px;
}
.mini-label{font-size:11px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.06em}

.main-content{flex:1; min-width:0; display:flex; flex-direction:column}
.topbar{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between;
  padding: 22px 36px;
  background: rgba(10,10,15,.75);
  backdrop-filter: blur(12px);
  border-bottom:1px solid var(--border);
}
.topbar h1{font-size:20px; font-weight:700; letter-spacing:-.3px}
.topbar-actions{display:flex; align-items:center; gap:10px}
.content-area{padding: 28px 36px 60px; flex:1}

/* ============ FORM ELEMENTS ============ */
.select-pill{
  background:var(--bg-card); color:var(--text);
  border:1px solid var(--border); border-radius:999px;
  padding:8px 16px; font-size:13px; font-family:var(--font);
  cursor:pointer; outline:none;
}
.select-pill:hover{border-color:var(--border-strong)}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 16px; border-radius:var(--radius-sm);
  font-weight:600; font-size:13px; font-family:var(--font);
  border:1px solid transparent; cursor:pointer;
  transition: all .15s ease;
}
.btn-primary{
  background: linear-gradient(135deg,#6366f1,#7c3aed); color:#fff;
  box-shadow: 0 6px 16px -4px rgba(99,102,241,.5);
}
.btn-primary:hover{filter:brightness(1.1); transform:translateY(-1px)}
.btn-ghost{background:transparent; border-color:var(--border); color:var(--text-dim)}
.btn-ghost:hover{background:var(--bg-hover); color:var(--text)}
.btn-danger-ghost{background:transparent; color:var(--danger); border-color:transparent}
.btn-danger-ghost:hover{background:var(--danger-dim)}
.btn-sm{padding:6px 12px; font-size:12px}

input[type=text],input[type=number],input[type=date],select,textarea{
  width:100%; background:var(--bg); color:var(--text);
  border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:10px 12px; font-size:13.5px; font-family:var(--font);
  outline:none; transition:border-color .15s;
}
input:focus,select:focus,textarea:focus{border-color:var(--primary)}
label{font-size:12.5px; font-weight:600; color:var(--text-dim); display:block; margin-bottom:6px}
.field{margin-bottom:16px}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.field-hint{font-size:11.5px; color:var(--text-faint); margin-top:6px; font-weight:400}

/* ============ KPI CARDS ============ */
.kpi-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:24px}
.kpi-card{
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:20px;
  position:relative; overflow:hidden;
}
.kpi-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background: var(--accent, var(--primary));
}
.kpi-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:14px}
.kpi-icon{
  width:34px;height:34px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  background: var(--accent-dim, var(--primary-dim)); color:var(--accent, var(--primary));
}
.kpi-label{color:var(--text-dim); font-size:12.5px; font-weight:500; margin-bottom:6px}
.kpi-value{font-size:26px; font-weight:800; letter-spacing:-.5px; font-family:var(--mono)}
.kpi-delta{display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:600; margin-top:8px}
.delta-up{color:var(--success)}
.delta-down{color:var(--danger)}

/* ============ CARDS / CHARTS ============ */
.card{
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:22px;
}
.card-title{font-size:14.5px; font-weight:700; margin-bottom:4px}
.card-subtitle{font-size:12.5px; color:var(--text-faint); margin-bottom:18px}
.grid-2{display:grid; grid-template-columns:1.4fr 1fr; gap:16px; margin-bottom:16px}

/* ============ TABLE DRE ============ */
.dre-table{width:100%; border-collapse:collapse}
.dre-table tr{border-bottom:1px solid var(--border)}
.dre-table tr:last-child{border-bottom:none}
.dre-table td{padding:13px 10px; font-size:13.5px}
.dre-table .col-nome{display:flex; align-items:center; gap:8px}
.dre-table .valor{text-align:right; font-family:var(--mono); font-weight:600}
.dre-table .valor.pos{color:var(--success)}
.dre-table .valor.neg{color:var(--danger)}
.dre-row-total{background: var(--bg-hover)}
.dre-row-total td{font-weight:800; font-size:14px}
.dre-row-sub td{color:var(--text-dim); font-size:12.5px; padding-top:0; padding-bottom:10px}
.indent-1{padding-left:18px !important; color:var(--text-dim)}
.dre-bar{
  height:4px; border-radius:2px; background:var(--border); margin-top:6px; overflow:hidden;
}
.dre-bar-fill{height:100%; background:var(--primary); border-radius:2px}

/* ============ GENERIC TABLE (Lançamentos / Departamentos) ============ */
.table-wrap{background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden}
table.data-table{width:100%; border-collapse:collapse}
.data-table thead th{
  text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--text-faint); padding:14px 18px; border-bottom:1px solid var(--border);
}
.data-table tbody td{padding:14px 18px; border-bottom:1px solid var(--border); font-size:13.5px}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table tbody tr:hover{background:var(--bg-hover)}
.data-table .actions{display:flex; gap:6px; justify-content:flex-end}
.icon-btn{
  width:30px;height:30px; display:flex;align-items:center;justify-content:center;
  border-radius:8px; border:1px solid var(--border); background:transparent; color:var(--text-dim);
  cursor:pointer; transition:all .15s;
}
.icon-btn:hover{background:var(--bg-hover); color:var(--text)}

.badge{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 10px; border-radius:999px; font-size:12px; font-weight:600;
}
.badge-dot{width:7px;height:7px;border-radius:50%}

/* ============ DEPARTMENT CARDS ============ */
.page-hero{
  display:flex; align-items:center; gap:14px;
  margin-bottom:22px; padding:4px 0;
}
.page-hero-icon{
  width:46px; height:46px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#6366f1,#8b5cf6); color:#fff;
  box-shadow:0 8px 22px -6px rgba(99,102,241,.55);
}
.page-hero-text h2{font-size:22px; font-weight:800; letter-spacing:-.4px}
.page-hero-text p{font-size:13px; color:var(--text-faint); margin-top:2px}
.dept-toolbar{display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-bottom:18px}
.dept-search{
  position:relative; display:flex; align-items:center;
  width:0; opacity:0; overflow:hidden; transform:scaleX(0); transform-origin:right;
  transition: width .25s ease, opacity .2s ease, transform .25s ease;
}
.dept-search.open{
  width:280px; opacity:1; transform:scaleX(1); overflow:visible;
}
.dept-search.open:has(.orc-search-row){width:520px}
.dept-search input{
  width:100%; padding:10px 14px;
  background:var(--bg-card); color:var(--text);
  border:1px solid var(--border); border-radius:999px;
  font-size:13px; font-family:var(--font); outline:none;
  transition:border-color .15s;
}
.dept-search input:focus{border-color:var(--primary)}
.dept-search input::placeholder{color:var(--text-faint)}
.icon-search-dept{
  width:40px; height:40px; border-radius:999px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-card); border:1px solid var(--border); color:var(--text-dim);
  cursor:pointer; transition:all .15s;
}
.icon-search-dept:hover{border-color:var(--primary); color:#c7d2fe; background:var(--primary-dim)}
.icon-search-dept:active{transform:scale(.94)}
.icon-filter-btn{
  width:40px; height:40px; border-radius:999px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-card); border:1px solid var(--border); color:var(--text-dim);
  cursor:pointer; transition:all .15s; position:relative;
}
.icon-filter-btn:hover{border-color:var(--primary); color:#c7d2fe; background:var(--primary-dim)}
.icon-filter-btn:active{transform:scale(.94)}
.dept-filter{position:relative}
.dept-filter-menu{
  position:absolute; right:0; top:calc(100% + 8px); z-index:50;
  min-width:190px; padding:6px;
  background:var(--bg-elevated); border:1px solid var(--border-strong);
  border-radius:14px; box-shadow:var(--shadow-lg);
  opacity:0; pointer-events:none; transform:translateY(-6px) scale(.96);
  transform-origin:top right; transition:all .18s ease;
}
.dept-filter-menu.open{opacity:1; pointer-events:all; transform:translateY(0) scale(1)}
.dept-filter-opt{
  width:100%; display:flex; align-items:center; gap:10px;
  padding:9px 12px; border-radius:9px; border:none; background:transparent;
  color:var(--text-dim); font-size:13px; font-weight:500; font-family:var(--font);
  cursor:pointer; transition:all .13s; text-align:left;
}
.dept-filter-opt:hover{background:var(--bg-hover); color:var(--text)}
.dept-filter-opt.ativo{background:var(--primary-dim); color:#c7d2fe}
.dept-filter-dot{width:10px; height:10px; border-radius:50%; flex-shrink:0; box-shadow:0 0 8px currentColor}
.dept-filter-txt{flex:1}
.dept-filter-check{opacity:0; color:var(--primary); font-weight:700; transition:opacity .13s; font-size:14px}
.dept-filter-opt.ativo .dept-filter-check{opacity:1}
.icon-add-dept{
  width:40px; height:40px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#6366f1,#7c3aed); color:#fff;
  border:none; cursor:pointer; transition:all .15s;
  box-shadow:0 6px 16px -4px rgba(99,102,241,.5);
}
.icon-add-dept:hover{filter:brightness(1.1); transform:translateY(-1px)}
.icon-add-dept:active{transform:scale(.94)}
.dept-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px}
.dept-card{
  background:var(--bg-card); border:1px solid var(--border); border-radius:12px;
  padding:12px 14px; position:relative; transition: transform .15s, border-color .15s;
}
.dept-card:hover{transform:translateY(-2px); border-color:var(--border-strong)}
.dept-card-head{display:flex; align-items:center; gap:8px; min-width:0}
.dept-name{font-weight:700; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; min-width:0}
.dept-resp{font-size:11.5px; color:var(--text-faint); margin-top:4px; font-family:var(--mono)}
.dept-areas{display:flex; flex-wrap:wrap; gap:4px; margin-top:8px}
.dept-area-badge{font-size:10.5px; padding:2px 8px; gap:4px}
.badge-min{background:var(--bg-hover); color:var(--text-dim); border:1px solid var(--border)}
.dept-sem-area{color:var(--text-faint); font-size:11px}
.icon-btn-sm{width:24px; height:24px; font-size:11px; border-radius:6px}
.dept-stats{margin-top:16px; display:flex; justify-content:space-between}
.dept-stat-label{font-size:11px; color:var(--text-faint); text-transform:uppercase}
.dept-stat-value{font-family:var(--mono); font-weight:700; font-size:14px; margin-top:2px}

/* ============ ÁREAS MINISTERIAIS (chips das selecionadas) ============ */
.area-chips{display:flex; flex-wrap:wrap; gap:8px; min-height:40px; align-items:center}
.area-chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 6px 5px 12px; border-radius:999px;
  background:var(--primary-dim); border:1px solid var(--primary);
  color:#c7d2fe; font-size:13px; font-weight:600; font-family:var(--font);
  animation: chipIn .18s ease;
}
@keyframes chipIn{from{opacity:0; transform:scale(.85)} to{opacity:1; transform:scale(1)}}
.area-chip-remove{
  width:16px; height:16px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(99,102,241,.25); border:none; color:#c7d2fe;
  font-size:9px; cursor:pointer; transition:all .15s;
}
.area-chip-remove:hover{background:var(--danger); color:#fff}
.area-empty{color:var(--text-faint); font-size:13px; padding:8px 2px}
.icon-add-area{
  width:26px; height:26px; border-radius:999px; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent; border:1px dashed var(--border-strong); color:var(--text-dim);
  cursor:pointer; transition:all .15s;
}
.icon-add-area svg{width:13px; height:13px}
.icon-add-area:hover{border-color:var(--primary); color:#c7d2fe; background:var(--primary-dim)}
.icon-add-area:active{transform:scale(.94)}

/* Modal picker de áreas */
.picker-search{
  position:relative; display:flex; align-items:center; margin-bottom:12px;
}
.picker-search svg{position:absolute; left:12px; color:var(--text-faint); pointer-events:none}
.picker-search input{
  width:100%; padding:10px 12px 10px 36px;
  background:var(--bg); color:var(--text);
  border:1px solid var(--border); border-radius:var(--radius-sm);
  font-size:13.5px; font-family:var(--font); outline:none;
  transition:border-color .15s;
}
.picker-search input:focus{border-color:var(--primary)}
.picker-search input::placeholder{color:var(--text-faint)}
.area-picker-list{display:flex; flex-direction:column; gap:8px; max-height:50vh; overflow-y:auto; padding-right:4px}
.area-picker-list::-webkit-scrollbar{width:6px}
.area-picker-list::-webkit-scrollbar-thumb{background:var(--border-strong); border-radius:3px}
.area-opt{
  display:flex; align-items:center; gap:12px;
  padding:12px 14px; border-radius:var(--radius-sm);
  background:var(--bg); border:1px solid var(--border);
  cursor:pointer; transition:all .15s;
}
.area-opt:hover{border-color:var(--border-strong); background:var(--bg-hover)}
.area-opt.selected{border-color:var(--primary); background:var(--primary-dim)}
.area-opt-check{display:none}
.area-opt-box{
  width:20px; height:20px; border-radius:6px; flex-shrink:0;
  border:1.5px solid var(--border-strong); background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  transition:all .15s; position:relative;
}
.area-opt.selected .area-opt-box{background:var(--primary); border-color:var(--primary)}
.area-opt.selected .area-opt-box::after{
  content:''; width:10px; height:5px; position:absolute; top:4px;
  border-left:2px solid #fff; border-bottom:2px solid #fff;
  transform:rotate(-45deg);
}
.area-opt-info{display:flex; flex-direction:column; gap:2px; min-width:0}
.area-opt-nome{font-size:13.5px; font-weight:600; color:var(--text)}
.area-opt-resp{font-size:12px; color:var(--text-faint)}
.area-opt-inativa{opacity:.55}

/* Toggle Ativo/Inativo */
.switch{position:relative; display:inline-block; width:42px; height:22px; vertical-align:middle}
.switch input{opacity:0; width:0; height:0}
.slider{
  position:absolute; cursor:pointer; inset:0;
  background:var(--bg-hover); border:1px solid var(--border-strong);
  border-radius:999px; transition:.2s;
}
.slider::before{
  content:''; position:absolute; height:16px; width:16px; left:3px; top:2px;
  background:var(--text-faint); border-radius:50%; transition:.2s;
}
.switch input:checked + .slider{background:var(--success); border-color:var(--success)}
.switch input:checked + .slider::before{transform:translateX(20px); background:#fff}
.switch input:focus-visible + .slider{outline:2px solid var(--primary); outline-offset:2px}

/* ============ MODAL ============ */
.modal-overlay{
  position:fixed; inset:0; background:rgba(5,5,10,.7); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; z-index:100;
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.modal-overlay.open{opacity:1; pointer-events:all}
#modal-overlay-picker{z-index:150}
.modal{
  background:var(--bg-elevated); border:1px solid var(--border-strong);
  border-radius:16px; width:480px; max-width:92vw; max-height:88vh; overflow-y:auto;
  box-shadow:var(--shadow-lg);
  transform: scale(.94) translateY(8px); transition: transform .2s;
}
.modal-picker{width:560px}
.modal-overlay.open .modal{transform:scale(1) translateY(0)}
.modal-header{
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 22px; border-bottom:1px solid var(--border);
}
.modal-header h3{font-size:16px; font-weight:700}
.modal-body{padding:22px}
.modal-footer{display:flex; justify-content:flex-end; gap:10px; padding:16px 22px; border-top:1px solid var(--border)}
.close-btn{background:none; border:none; color:var(--text-dim); cursor:pointer; font-size:20px; line-height:1}

.color-swatches{display:flex; gap:8px; flex-wrap:wrap}
.swatch{width:28px;height:28px;border-radius:8px; cursor:pointer; border:2px solid transparent}
.swatch.selected{border-color:#fff}

/* ============ TOAST ============ */
.toast-container{position:fixed; bottom:24px; right:24px; display:flex; flex-direction:column; gap:10px; z-index:200}
.toast{
  background:var(--bg-elevated); border:1px solid var(--border-strong);
  padding:14px 18px; border-radius:11px; font-size:13.5px; font-weight:500;
  box-shadow:var(--shadow-lg); display:flex; align-items:center; gap:10px;
  animation: slideIn .25s ease;
  border-left:3px solid var(--primary);
}
.toast.success{border-left-color:var(--success)}
.toast.error{border-left-color:var(--danger)}
@keyframes slideIn{from{opacity:0; transform:translateX(30px)} to{opacity:1; transform:translateX(0)}}

/* ============ MISC ============ */
.loading-state{padding:80px; text-align:center; color:var(--text-faint)}
.empty-state{padding:60px 20px; text-align:center; color:var(--text-faint)}
.section-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px}
.section-head h2{font-size:16px; font-weight:700}

.valor-cell{text-align:right; font-family:var(--mono); font-weight:600}

.tot-conta-chip{
  background:var(--bg-hover); border:1px solid var(--border);
  border-radius:999px; padding:4px 10px; font-size:12px; font-family:var(--mono);
  cursor:pointer; transition:all .15s; color:var(--text-dim);
}
.tot-conta-chip:hover{background:var(--primary-dim); color:#c7d2fe; border-color:var(--primary)}

.dre-comp-table .valor-cell{white-space:nowrap}
.dre-comp-grupo td{font-weight:700; background:rgba(99,102,241,.06)}
.dre-comp-grupo td:first-child{text-transform:uppercase; letter-spacing:.02em}
.dre-comp-filho td{color:var(--text-dim)}
.dre-comp-filho td:first-child strong{color:var(--text)}
.dre-seta{
  display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; border-radius:4px; cursor:pointer;
  color:var(--primary); font-size:9px; background:var(--primary-dim);
  margin-right:6px; user-select:none;
}
.dre-seta:hover{background:var(--primary); color:#fff}

.spinner{
  width:14px; height:14px; border-radius:50%;
  border:2px solid rgba(255,255,255,.25); border-top-color:#fff;
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
#btn-sync.syncing, .btn-primary:disabled{opacity:.7; cursor:not-allowed; transform:none}

@media (max-width: 1100px){
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .grid-2{grid-template-columns:1fr}
}
/* ============ ORÇAMENTO (abas estilo navegador) ============ */
.orc-search-row{
  display:flex; align-items:center; width:100%; min-width:0;
  background:var(--bg-elevated); border:1px solid var(--border-strong);
  border-radius:999px; padding:3px; gap:0;
  box-shadow:0 4px 14px -6px rgba(0,0,0,.4);
  transition:border-color .15s, box-shadow .15s;
}
.orc-search-row:focus-within{border-color:var(--primary); box-shadow:0 0 0 3px rgba(99,102,241,.15)}
.orc-search-row select{
  appearance:none; -webkit-appearance:none;
  width:auto; min-width:110px; max-width:150px; flex-shrink:0;
  border:none; border-radius:999px;
  background:var(--primary-dim); color:#c7d2fe;
  padding:8px 28px 8px 14px;
  font-size:12px; font-family:var(--font); font-weight:700; letter-spacing:.02em;
  outline:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23a5b4fc' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
}
.orc-search-row select:hover{background-color:#4f46e5aa}
.orc-search-row select option{background:var(--bg-elevated); color:var(--text); font-weight:500}
.orc-search-row #orc-opcao-busca{flex:1; min-width:0; width:auto}
.orc-search-row .orc-search-sep{
  width:1px; height:20px; background:var(--border-strong); flex-shrink:0; margin:0 6px;
}
.orc-search-go{
  width:30px; height:30px; border-radius:999px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#6366f1,#7c3aed); color:#fff;
  border:none; cursor:pointer; transition:all .15s;
}
.orc-search-go:hover{filter:brightness(1.15)}
.orc-search-go:active{transform:scale(.92)}

.orc-filtros{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px}
.orc-filtro-btn{
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 14px; border-radius:999px;
  background:var(--bg-card); border:1px solid var(--border); color:var(--text-dim);
  font-size:12.5px; font-weight:600; cursor:pointer; transition:all .15s;
}
.orc-filtro-btn:hover{border-color:var(--border-strong); color:var(--text)}
.orc-filtro-btn.ativo{background:var(--primary-dim); border-color:var(--primary); color:#c7d2fe}
.orc-filtro-btn svg{color:inherit}
.orc-filtro-select{margin-left:auto}

.orc-tabs{
  display:flex; align-items:flex-end; gap:2px; flex-wrap:wrap;
  background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:10px 10px 0 0; padding:6px 8px 0;
}
.orc-tab{
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 12px 8px; border-radius:8px 8px 0 0;
  background:transparent; color:var(--text-dim);
  font-size:12.5px; font-weight:600; cursor:pointer;
  border:1px solid transparent; border-bottom:none;
  transition:all .15s; user-select:none; min-width:0;
}
.orc-tab:hover{background:var(--bg-hover); color:var(--text)}
.orc-tab.ativa{background:var(--bg-card); border-color:var(--border); color:var(--text)}
.orc-tab-dot{width:8px; height:8px; border-radius:50%; flex-shrink:0}
.orc-tab-nome{white-space:nowrap; max-width:160px; overflow:hidden; text-overflow:ellipsis}
.orc-tab-close{
  width:18px; height:18px; border-radius:50%; border:none; background:transparent;
  color:var(--text-faint); font-size:10px; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.orc-tab-close:hover{background:var(--danger); color:#fff}
.orc-tab-add{
  width:28px; height:28px; margin:0 4px 4px; border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  background:transparent; border:1px dashed var(--border-strong); color:var(--text-dim);
  font-size:16px; cursor:pointer; transition:all .15s;
}
.orc-tab-add:hover{border-color:var(--primary); color:#c7d2fe}

.orc-content{
  background:var(--bg-card); border:1px solid var(--border);
  border-top:none; border-radius:0 0 10px 10px;
  padding:20px; min-height:300px;
}
.orc-aba-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px}
.orc-aba-head h3{font-size:17px; font-weight:700}

.oc-item{display:flex; gap:8px; margin-bottom:8px; align-items:center}
.oc-item input[type=text]{flex:1}
.oc-item input[type=number]{width:130px}
.oc-total{
  display:flex; justify-content:flex-end; align-items:center; gap:6px;
  padding:10px 12px; margin-top:10px;
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-sm);
  font-size:14px; color:var(--text-dim);
}
.oc-total strong{font-family:var(--mono); font-weight:700; color:var(--text)}

/* Painel de projeção (fatos do ano base) */
.oc-projecao{
  margin-bottom:16px; padding:12px 14px;
  background:var(--primary-dim); border:1px solid var(--primary); border-radius:var(--radius-sm);
}
.oc-proj-titulo{font-size:11.5px; font-weight:700; color:#a5b4fc; text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px}
.oc-proj-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:10px}
.oc-proj-item{display:flex; flex-direction:column; gap:2px}
.oc-proj-item span{font-size:11px; color:var(--text-faint)}
.oc-proj-item strong{font-family:var(--mono); font-size:14.5px; font-weight:700; color:var(--text)}

.badge-ok{background:var(--success-dim); color:var(--success); border:1px solid transparent}
.badge-off{background:var(--danger-dim); color:var(--danger); border:1px solid transparent}

@media (max-width: 760px){
  .sidebar{display:none}
  .kpi-grid{grid-template-columns:1fr}
  .content-area{padding:20px}
  .orc-filtro-select{margin-left:0; width:100%}
  .orc-filtro-select select{width:100%}
  .orc-tabs{flex-wrap:wrap}
}