:root{
  --bg:#0d0f14;
  --bg2:#13161e;
  --bg3:#1a1e28;
  --bg4:#222637;
  --border:#2a2f42;
  --border2:#363c54;
  --accent:#4f8ef7;
  --accent2:#7c5cf5;
  --accent3:#00d4aa;
  --warn:#f7a24f;
  --danger:#f75f5f;
  --success:#4fc87a;
  --text:#e8eaf0;
  --text2:#9ba3bc;
  --text3:#5c6480;
  --sw:220px;
  --swc:64px;
  --r:10px;
}

*{box-sizing:border-box;margin:0;padding:0;}

html,body{
  background:var(--bg);
  color:var(--text);
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  height:100%;
}

::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:var(--bg2);}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px;}

button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,select{font-family:inherit;color:inherit;}
input:focus,select:focus{outline:none;}

.mono{font-family:'DM Mono',monospace;}

/* ===================== SIDEBAR ===================== */
.sidebar{
  position:fixed;left:0;top:0;bottom:0;
  width:var(--swc);
  background:var(--bg2);
  border-right:1px solid var(--border);
  z-index:100;
  transition:width .25s ease;
  display:flex;flex-direction:column;
  overflow:hidden;
  white-space:nowrap;
}
.sidebar:hover{width:var(--sw);}

.sidebar-top{padding:18px 0 10px 0;}
.brand{display:flex;align-items:center;gap:12px;padding:0 20px;}
.brand-mark{
  width:32px;height:32px;min-width:32px;border-radius:8px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  display:flex;align-items:center;justify-content:center;
  font-family:'DM Mono',monospace;font-weight:700;font-size:12px;color:#fff;
}
.brand-name{font-size:13px;font-weight:600;color:var(--text);opacity:0;transition:opacity .2s ease;}
.sidebar:hover .brand-name{opacity:1;}
.brand-name span{display:block;font-size:10px;font-weight:500;color:var(--text3);}

.nav{flex:1;padding:10px 10px;display:flex;flex-direction:column;gap:2px;}
.sidebar-bottom{padding:10px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:2px;}

.nav-item{
  display:flex;align-items:center;gap:14px;
  padding:10px 12px;border-radius:8px;
  color:var(--text2);font-size:12.5px;font-weight:500;
  position:relative;
  transition:background .15s ease,color .15s ease;
}
.nav-item:hover{background:var(--bg3);color:var(--text);}
.nav-item.active{background:var(--bg3);color:var(--text);}
.nav-item.active::before{
  content:'';position:absolute;left:-10px;top:6px;bottom:6px;width:3px;
  background:var(--accent);border-radius:0 3px 3px 0;
}
.nav-icon{width:16px;min-width:16px;text-align:center;font-size:14px;color:var(--accent);}
.nav-label{opacity:0;transition:opacity .2s ease;}
.sidebar:hover .nav-label{opacity:1;}

/* ===================== MAIN / TOPBAR ===================== */
.main{margin-left:var(--swc);transition:margin-left .25s ease;min-height:100vh;}
.topbar{
  height:60px;position:sticky;top:0;z-index:50;
  background:var(--bg2);border-bottom:1px solid var(--border);
  display:flex;flex-direction:column;justify-content:center;
  padding:0 24px;
}
.topbar-title{font-size:16px;font-weight:600;color:var(--text);}
.topbar-sub{font-size:11px;color:var(--text3);margin-top:1px;}

.content{padding:20px;max-width:1280px;}

.page{display:none;}
.page.active{display:block;animation:fadein .2s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}

/* ===================== CARDS ===================== */
.card{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--r);padding:18px;
}
.card-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:14px;}

.stat-card{
  position:relative;
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--r);padding:16px 18px;
  overflow:hidden;
}
.stat-card::after{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--accent);
}
.stat-card.blue::after{background:var(--accent);}
.stat-card.purple::after{background:var(--accent2);}
.stat-card.green::after{background:var(--success);}
.stat-card.orange::after{background:var(--warn);}
.stat-card.red::after{background:var(--danger);}
.stat-card.teal::after{background:var(--accent3);}
.stat-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text3);margin-bottom:6px;}
.stat-value{font-family:'DM Mono',monospace;font-size:21px;font-weight:700;color:var(--text);}
.stat-value.sm{font-size:15px;}
.stat-hint{font-size:10.5px;color:var(--text3);margin-top:4px;}

/* ===================== BUTTONS ===================== */
.btn-primary,.btn-ghost,.btn-success,.btn-danger,.btn-purple,.btn-orange{
  padding:7px 14px;border-radius:7px;font-size:13px;font-weight:600;
  display:inline-flex;align-items:center;gap:6px;
  transition:filter .15s ease,background .15s ease;
}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{filter:brightness(1.1);}
.btn-ghost{background:transparent;border:1px solid var(--border2);color:var(--text2);}
.btn-ghost:hover{background:var(--bg3);color:var(--text);}
.btn-success{background:var(--success);color:#fff;}
.btn-danger{background:var(--danger);color:#fff;}
.btn-purple{background:var(--accent2);color:#fff;}
.btn-orange{background:var(--warn);color:#fff;}
.btn-sm{font-size:11px;padding:4px 9px;border-radius:6px;}
button:disabled{opacity:.5;cursor:not-allowed;}

/* ===================== BADGES ===================== */
.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;font-size:10.5px;font-weight:600;}
.badge-green{background:rgba(79,200,122,.15);color:var(--success);}
.badge-blue{background:rgba(79,142,247,.15);color:var(--accent);}
.badge-orange{background:rgba(247,162,79,.15);color:var(--warn);}
.badge-red{background:rgba(247,95,95,.15);color:var(--danger);}
.badge-purple{background:rgba(124,92,245,.15);color:var(--accent2);}
.badge-teal{background:rgba(0,212,170,.15);color:var(--accent3);}
.badge-gray{background:rgba(155,163,188,.1);color:var(--text3);}

/* ===================== FORMS ===================== */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.form-group label{display:block;font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;}
.form-group label .opt{text-transform:none;font-weight:500;color:var(--text3);letter-spacing:0;}
.form-input{
  width:100%;background:var(--bg3);border:1px solid var(--border);
  border-radius:6px;padding:8px 11px;font-size:13px;color:var(--text);
}
.form-input:focus{border-color:var(--accent);}
.form-input:disabled{color:var(--text3);}
.form-actions{margin-top:6px;display:flex;justify-content:flex-end;}

.seg-control{display:flex;background:var(--bg3);border:1px solid var(--border);border-radius:7px;padding:3px;gap:3px;}
.seg-btn{flex:1;padding:7px 10px;border-radius:5px;font-size:12px;font-weight:600;color:var(--text2);text-align:center;}
.seg-btn.active{background:var(--accent);color:#fff;}

/* ===================== TABLES ===================== */
.table-wrap{overflow-x:auto;}
.table{width:100%;border-collapse:collapse;}
.table th{
  font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--text3);
  background:var(--bg3);padding:9px 11px;text-align:left;white-space:nowrap;
}
.table th:first-child{border-radius:6px 0 0 6px;}
.table th:last-child{border-radius:0 6px 6px 0;}
.table td{padding:9px 11px;border-bottom:1px solid var(--border);font-size:12.5px;color:var(--text2);white-space:nowrap;}
.table tr:hover td{background:rgba(255,255,255,.02);}
.table td.strong{color:var(--text);font-weight:600;font-family:'DM Mono',monospace;}

/* ===================== MODAL ===================== */
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:1000;}
.modal{
  display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
  z-index:1001;width:520px;max-width:92vw;max-height:92vh;overflow-y:auto;
  background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:24px;
}
.overlay.show,.modal.show{display:block;}
.modal-title{font-size:15px;font-weight:600;margin-bottom:16px;}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;}

/* ===================== TOAST ===================== */
.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;}
.toast{
  background:var(--bg3);border:1px solid var(--border);border-radius:8px;
  padding:12px 16px;font-size:12.5px;color:var(--text);min-width:220px;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
  animation:toastin .2s ease;border-left:3px solid var(--accent);
}
.toast.success{border-left-color:var(--success);}
.toast.error{border-left-color:var(--danger);}
@keyframes toastin{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* ===================== EMPTY STATE ===================== */
.empty-state{padding:50px 20px;text-align:center;}
.empty-icon{font-size:28px;color:var(--text3);margin-bottom:12px;}
.empty-title{font-size:14px;font-weight:600;color:var(--text2);margin-bottom:6px;}
.empty-text{font-size:12px;color:var(--text3);max-width:320px;margin:0 auto;line-height:1.6;}

/* ===================== SIMULADOR PAGE ===================== */
.sim-grid{display:grid;grid-template-columns:420px 1fr;gap:18px;align-items:start;}

.sim-results{min-height:200px;}
.result-credito{
  background:linear-gradient(135deg,var(--bg4),var(--bg3));
  border:1px solid var(--border2);border-radius:var(--r);
  padding:22px;text-align:center;margin-bottom:16px;
}
.result-credito-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text3);margin-bottom:8px;}
.result-credito-value{font-family:'DM Mono',monospace;font-size:32px;font-weight:700;color:var(--text);}

.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;}

.lances-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);margin:20px 0 12px 0;}
.lances-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.lance-card{
  background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);
  padding:16px;position:relative;overflow:hidden;
}
.lance-card.fidelidade{border-color:rgba(0,212,170,.35);}
.lance-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.lance-name{font-size:12.5px;font-weight:700;color:var(--text);}
.lance-pill{
  background:var(--accent);color:#fff;font-size:11px;font-weight:700;
  padding:5px 10px;border-radius:100px;
}
.lance-row{display:flex;justify-content:space-between;font-size:12px;color:var(--text2);padding:4px 0;}
.lance-row b{color:var(--text);font-family:'DM Mono',monospace;font-weight:600;}
.lance-divider{height:1px;background:var(--border);margin:10px 0;}
.lance-nova-parcela{font-family:'DM Mono',monospace;font-size:18px;font-weight:700;color:var(--accent3);}
.lance-concorrencia{
  margin-top:10px;background:rgba(0,212,170,.1);border:1px solid rgba(0,212,170,.3);
  border-radius:7px;padding:8px 10px;font-size:11px;color:var(--accent3);font-weight:600;
  display:flex;align-items:center;gap:6px;
}

.result-footer{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
.result-footer p{font-size:10.5px;color:var(--text3);line-height:1.7;}
.result-footer .foot-strong{color:var(--text2);font-weight:600;}
.result-footer-legal{font-size:9.5px !important;line-height:1.5 !important;}
.result-signature{margin-top:14px;text-align:right;}
.result-signature-name{font-size:12.5px;font-weight:700;color:var(--text);}
.result-signature-company{font-size:10.5px;color:var(--text3);}
.result-actions{display:flex;gap:10px;margin-top:16px;}

/* ===================== HISTORICO ===================== */
.hist-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.hist-controls{display:flex;align-items:center;gap:8px;}
.hist-sort-label{font-size:11px;color:var(--text3);margin-right:4px;}
.btn-ghost.active{background:var(--accent);color:#fff;border-color:var(--accent);}

/* ===================== AJUSTES ===================== */
.ajustes-grid{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start;}
.adm-list{display:flex;flex-direction:column;gap:8px;}
.adm-item{
  background:var(--bg3);border:1px solid var(--border);border-radius:8px;
  padding:12px 14px;cursor:pointer;transition:border-color .15s ease;
}
.adm-item:hover{border-color:var(--border2);}
.adm-item.active{border-color:var(--accent);}
.adm-item-name{font-size:12.5px;font-weight:600;color:var(--text);}
.adm-item-sub{font-size:10.5px;color:var(--text3);margin-top:3px;font-family:'DM Mono',monospace;}

.adm-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.lance-config-item{
  background:var(--bg3);border:1px solid var(--border);border-radius:8px;
  padding:12px 14px;margin-bottom:10px;
}
.lance-config-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.lance-config-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;font-size:11px;color:var(--text3);}
.lance-config-grid b{display:block;color:var(--text2);font-family:'DM Mono',monospace;font-size:12.5px;margin-top:2px;}

/* ===================== RESPONSIVE ===================== */
@media(max-width:768px){
  .sim-grid,.ajustes-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .stats-grid{grid-template-columns:1fr 1fr;}
  .lances-grid{grid-template-columns:1fr;}
  .content{padding:14px;}
}
