/* ================================================================
   QUANTIS ONE DESIGN SYSTEM — VIAB
   Manrope + IBM Plex Mono | Teal accent #15616B
   ================================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --graphite:#1A1C1D;
  --graphite-soft:#54585B;
  --graphite-hairline:rgba(26,28,29,0.13);
  --graphite-hairline-soft:rgba(26,28,29,0.07);
  --accent:#15616B;
  --accent-light:#E6F2F3;
  --accent-bright:#5FC6CF;
  --accent-dark:#124e56;
  --bg:#F7F7F5;
  --paper:#FFFFFF;
  --green:#059669;
  --green-light:#ECFDF5;
  --amber:#D97706;
  --amber-light:#FFFBEB;
  --red:#DC2626;
  --red-light:#FEF2F2;
  --mono:'IBM Plex Mono',monospace;
  --sans:'Manrope',system-ui,sans-serif;
  --graphite-faint:#8A8E91;
  --hair-soft:rgba(26,28,29,0.07);
  --nav-h:72px;
  --wordmark:'Manrope','Helvetica Neue',Helvetica,Arial,sans-serif;
  --font:var(--wordmark);
  --radius-sm:4px;
  --radius:8px;
  --radius-lg:14px;
  --transition:200ms cubic-bezier(.16,1,.3,1);
  --ease:cubic-bezier(.16,1,.3,1);
  --hair:rgba(26,28,29,0.12);
  --card-shadow:0 1px 3px rgba(26,28,29,0.05);
  --card-shadow-hover:0 14px 34px -20px rgba(26,28,29,0.30);
}

html{scroll-behavior:smooth;scroll-padding-top:96px;}
body{
  font-family:var(--wordmark);
  background:var(--bg);
  color:var(--graphite);
  font-size:14px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--graphite-hairline);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--graphite-soft);}

/* ================================================================
   TERRENO — upload KMZ, mapa, dados cadastrais
   ================================================================ */
.terreno-dropzone{
  border:1.5px dashed var(--graphite-hairline);border-radius:var(--radius-lg);
  padding:28px 20px;text-align:center;cursor:pointer;
  transition:all var(--transition);background:var(--bg);
}
.terreno-dropzone:hover,.terreno-dropzone.dragover{
  border-color:var(--accent);background:var(--accent-light);
}
.terreno-dropzone .dz-icon{opacity:.35;margin-bottom:8px;}
.terreno-dropzone:hover .dz-icon,.terreno-dropzone.dragover .dz-icon{opacity:1;stroke:var(--accent);}
.terreno-dropzone .dz-title{font-size:13.5px;font-weight:600;color:var(--graphite);}
.terreno-dropzone .dz-sub{font-size:12px;color:var(--graphite-soft);margin-top:3px;}
.terreno-file-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--accent-light);border:1px solid rgba(21,97,107,.25);
  border-radius:var(--radius);padding:6px 12px;font-size:12.5px;font-weight:600;
  color:var(--accent);margin-top:12px;font-family:var(--mono);
}
.terreno-file-badge button{
  background:none;border:none;cursor:pointer;color:var(--accent);
  font-size:14px;line-height:1;padding:0 0 0 4px;opacity:.6;
}
.terreno-file-badge button:hover{opacity:1;}
#terrenoMap{
  height:440px;border-radius:var(--radius-lg);
  border:1px solid var(--graphite-hairline);
  background:var(--bg);z-index:1;
}
.terreno-map-empty{
  height:440px;border-radius:var(--radius-lg);
  border:1px solid var(--graphite-hairline);background:var(--bg);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;
  color:var(--graphite-soft);font-size:13px;
}
.cep-status{font-size:11px;margin-top:5px;font-family:var(--mono);}
.cep-status.loading{color:var(--graphite-soft);}
.cep-status.ok{color:var(--green);}
.cep-status.err{color:var(--red);}
.leaflet-container{font-family:var(--wordmark);font-size:12px;}

/* ================================================================
   NAVBAR
   ================================================================ */
.navbar{
  position:fixed;top:0;left:0;right:0;z-index:100;height:58px;
  background:var(--paper);
  border-bottom:1px solid var(--graphite-hairline);
  display:flex;align-items:center;
}
.navbar-inner{
  max-width:1240px;margin:0 auto;padding:0 40px;width:100%;
  display:flex;align-items:center;gap:40px;
}
.navbar-logo{
  display:flex;align-items:center;gap:7px;
  color:var(--graphite);font-size:15px;font-weight:700;
  letter-spacing:-0.02em;flex-shrink:0;text-decoration:none;
}
.navbar-logo .q-word{font-weight:700;letter-spacing:-0.03em;}
.navbar-logo .q-one{
  font-weight:500;letter-spacing:0.02em;
  color:var(--accent);
  margin-left:1px;
}
.navbar-logo .q-marker{
  display:inline-block;width:6px;height:6px;
  background:var(--accent);border-radius:50%;
  margin-bottom:1px;
  flex-shrink:0;
}
.navbar-links{display:flex;align-items:center;gap:2px;flex:1;}
.navbar-links a{
  color:var(--graphite-soft);text-decoration:none;font-size:13.5px;font-weight:400;
  padding:5px 12px;border-radius:var(--radius);transition:all var(--transition);
}
.navbar-links a:hover{color:var(--graphite);background:var(--graphite-hairline-soft);}
.navbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}

/* ================================================================
   APP LAYOUT
   ================================================================ */
.app{max-width:1240px;margin:0 auto;padding:0 40px 80px;}

/* ================================================================
   PAGE HEADER
   ================================================================ */
.page-header{
  padding-top:76px;padding-bottom:32px;
  border-bottom:1px solid var(--graphite-hairline);
  margin-bottom:0;
}
.page-header-eyebrow{
  font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--accent);margin-bottom:10px;
  display:flex;align-items:center;gap:8px;
}
.page-header-eyebrow::before{
  content:'';display:inline-block;
  width:20px;height:1.5px;background:var(--accent);
}
.page-header h1{
  font-size:clamp(26px,4vw,38px);font-weight:700;letter-spacing:-0.03em;
  line-height:1.1;color:var(--graphite);margin-bottom:10px;
}
.page-header p{font-size:14.5px;color:var(--graphite-soft);max-width:540px;line-height:1.6;}

/* ================================================================
   TABS
   ================================================================ */
.tabs{
  display:flex;flex-wrap:wrap;gap:0 2px;margin-bottom:0;background:transparent;padding:0;
  border-bottom:1px solid var(--graphite-hairline);border-radius:0;box-shadow:none;
}
.tabs::-webkit-scrollbar{display:none;}
.tab{
  flex:0 0 auto;padding:11px 16px;border:none;background:transparent;cursor:pointer;
  border-radius:0;
  font-size:13.5px;font-weight:400;color:var(--graphite-soft);
  transition:all var(--transition);white-space:nowrap;
  display:flex;align-items:center;gap:7px;
  position:relative;
  font-family:var(--wordmark);
}
.tab:hover{color:var(--graphite);background:var(--graphite-hairline-soft);}
.tab.active{
  color:var(--graphite);background:transparent;
  font-weight:600;
}
.tab.active::after{
  content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;
  background:var(--accent);border-radius:0;
}
.tab svg{opacity:.4;}.tab.active svg{opacity:1;stroke:var(--accent);}

/* ================================================================
   TAB CONTENT
   ================================================================ */
.tab-content{display:none;padding-top:24px;}
.tab-content.active{display:block;}

/* ================================================================
   CARDS
   ================================================================ */
.card{
  background:var(--paper);
  border:1px solid var(--hair);
  border-radius:var(--radius-lg);
  padding:26px 28px 28px;
  margin-bottom:16px;
  box-shadow:var(--card-shadow);
  transition:box-shadow var(--transition),border-color var(--transition),transform var(--transition);
}
.card:hover{border-color:var(--hair);box-shadow:var(--card-shadow-hover);}
.card-title{
  font-size:13.5px;font-weight:600;color:var(--graphite);
  margin-bottom:18px;padding-bottom:14px;
  border-bottom:1px solid var(--hair);
  display:flex;align-items:center;gap:9px;
  letter-spacing:-0.01em;border-radius:0;box-shadow:none;
}
.card-title svg{opacity:.45;color:var(--accent);}
.card-body.locked{pointer-events:none;opacity:.45;user-select:none;}

/* ================================================================
   LOCK BUTTON
   ================================================================ */
.lock-btn{
  background:var(--bg);border:1px solid var(--graphite-hairline);
  cursor:pointer;font-size:11px;font-weight:500;
  padding:3px 10px;border-radius:var(--radius-sm);
  color:var(--graphite-soft);
  transition:all var(--transition);pointer-events:all!important;opacity:1!important;
  margin-left:auto;font-family:var(--wordmark);
}
.lock-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light);}

/* ================================================================
   COLLAPSE / MINIMIZAR CARD
   ================================================================ */
.collapse-btn{
  background:transparent;border:1px solid transparent;
  cursor:pointer;padding:2px;border-radius:var(--radius-sm);
  color:var(--graphite-soft);display:inline-flex;align-items:center;justify-content:center;
  transition:all var(--transition);pointer-events:all!important;opacity:1!important;
  width:24px;height:24px;flex-shrink:0;
}
.collapse-btn:not(.has-lock-sibling){margin-left:auto;}
.collapse-btn:hover{color:var(--accent);background:var(--accent-light);}
.collapse-btn svg{transition:transform var(--transition);}
.card.collapsed .collapse-btn svg{transform:rotate(-90deg);}
.card.collapsed .card-body,
.card.collapsed > div:not(.card-title){display:none!important;}
.card.collapsed .card-title{margin-bottom:0;padding-bottom:0;border-bottom:none;}

/* ================================================================
   FORM
   ================================================================ */
.form-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:4px;}
.form-group{flex:1;min-width:160px;}
.form-group label{
  display:block;font-size:11px;font-weight:600;color:var(--graphite-soft);
  margin-bottom:6px;text-transform:uppercase;
  font-family:var(--mono);letter-spacing:.07em;
}
.form-group input,.form-group select{
  width:100%;padding:8px 12px;
  border:1px solid var(--graphite-hairline);
  border-radius:var(--radius);
  font-size:13.5px;color:var(--graphite);
  transition:border-color var(--transition),box-shadow var(--transition);
  background-color:var(--paper);
  font-family:var(--wordmark);
  -webkit-appearance:none;appearance:none;
}
.form-group input:focus,.form-group select:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(21,97,107,.1);
}
.form-group input::placeholder{color:var(--graphite-hairline);}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2354585B' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px;-webkit-appearance:none;appearance:none;}


/* ================================================================
   TABLES
   ================================================================ */
table{width:100%;border-collapse:collapse;}
th{
  background:var(--bg);
  padding:9px 12px;text-align:left;
  font-size:10.5px;font-weight:600;
  color:var(--graphite-soft);
  font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;
  border-bottom:1px solid var(--graphite-hairline);white-space:nowrap;
}
td{
  padding:10px 12px;border-bottom:1px solid var(--graphite-hairline-soft);
  vertical-align:middle;color:var(--graphite-soft);font-size:13.5px;
}
tbody tr:hover td{background:var(--bg);}
tbody tr:last-child td{border-bottom:none;}
tfoot td{border-top:1px solid var(--graphite-hairline);border-bottom:none;}

td input,td select{
  width:100%;padding:6px 9px;
  border:1px solid var(--graphite-hairline);border-radius:var(--radius-sm);
  font-size:13px;background-color:var(--paper);color:var(--graphite);
  transition:border-color var(--transition);font-family:var(--wordmark);
  -webkit-appearance:none;appearance:none;
}
td input:focus,td select:focus{outline:none;border-color:var(--accent);}
td input[type="number"]{text-align:right;font-variant-numeric:tabular-nums;}
td input[type="checkbox"]{
  width:16px;height:16px;cursor:pointer;accent-color:var(--accent);
  border:none;padding:0;background:transparent;border-radius:3px;
}

.overflow-x{overflow-x:auto;}
.overflow-xy{overflow-x:auto;overflow-y:auto;max-height:440px;}

.cf-table th{position:sticky;top:0;z-index:2;background:var(--bg);color:var(--graphite-soft);}
.cf-table th:first-child,.cf-table td:first-child{position:sticky;left:0;z-index:3;background:var(--paper);min-width:140px;}
.cf-table tbody td:first-child{background:var(--paper);}
.cf-table tfoot td{
  font-weight:600;background:var(--bg)!important;color:var(--graphite);
  position:sticky;bottom:0;z-index:2;border-top:1px solid var(--graphite-hairline);
}
.cf-table tfoot td:first-child{z-index:4;background:var(--bg)!important;}

/* ================================================================
   BUTTONS
   ================================================================ */
.btn{
  padding:9px 18px;border-radius:var(--radius);cursor:pointer;
  font-size:13.5px;font-weight:600;letter-spacing:-0.01em;transition:transform var(--transition),background var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition);
  display:inline-flex;align-items:center;gap:8px;font-family:var(--wordmark);line-height:1;
  border:1px solid transparent;
}
.btn:disabled{opacity:.4;cursor:not-allowed;}
.btn:active:not(:disabled){transform:translateY(1px);}
.btn .arw{display:inline-block;transition:transform .35s var(--ease);}
.btn:hover .arw{transform:translateX(4px);}

/* Primário = grafite sólido (CTA principal da marca) */
.btn-primary{
  background:var(--graphite);color:#fff;
}
.btn-primary:hover:not(:disabled){
  background:#000;
}

/* Secundário = ghost (contorno fino) */
.btn-secondary{
  background:transparent;color:var(--graphite);
  border:1px solid var(--hair);
}
.btn-secondary:hover:not(:disabled){
  border-color:var(--graphite);color:var(--graphite);
  background:transparent;
}

/* Acento = teal (destaque) */
.btn-accent{background:var(--accent);color:#fff;}
.btn-accent:hover:not(:disabled){background:var(--accent-dark);}

.btn-success{background:var(--green-light);color:var(--green);border:1px solid rgba(5,150,105,.2);}
.btn-success:hover:not(:disabled){background:#D1FAE5;}

.btn-danger{background:transparent;color:var(--graphite-soft);padding:4px 8px;font-size:13px;border-radius:var(--radius-sm);border:1px solid transparent;}
.btn-danger:hover{background:var(--red-light);color:var(--red);border-color:rgba(220,38,38,.15);}

.btn-info{background:var(--accent-light);color:var(--accent);border:1px solid rgba(21,97,107,.2);}
.btn-info:hover{background:#D6EBED;}

.btn-mode{
  padding:6px 14px;border-radius:var(--radius);cursor:pointer;
  font-size:13px;font-weight:500;background:var(--paper);
  color:var(--graphite-soft);border:1px solid var(--graphite-hairline);
  transition:all var(--transition);font-family:var(--wordmark);
}
.btn-mode.active{
  background:var(--accent-light);color:var(--accent);
  border-color:rgba(21,97,107,.3);font-weight:600;
}
.btn-mode:hover:not(.active){color:var(--graphite);border-color:var(--graphite-soft);}

/* ================================================================
   TOGGLE SWITCH
   ================================================================ */
.toggle-wrap{display:flex;align-items:center;gap:8px;justify-content:center;}
.toggle{position:relative;width:36px;height:20px;cursor:pointer;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;}
.toggle-slider{
  position:absolute;inset:0;
  background:var(--graphite-hairline);
  border-radius:10px;transition:background var(--transition);
}
.toggle-slider:before{
  content:'';position:absolute;width:14px;height:14px;
  left:3px;bottom:3px;
  background:#fff;border-radius:50%;
  box-shadow:0 1px 3px rgba(0,0,0,.15);
  transition:transform var(--transition);
}
.toggle input:checked+.toggle-slider{background:var(--accent);}
.toggle input:checked+.toggle-slider:before{transform:translateX(16px);}
.toggle-on{color:var(--accent);font-size:11px;font-weight:600;}
.toggle-off{color:var(--graphite-soft);font-size:11px;font-weight:600;}

/* ================================================================
   BADGES / PILLS
   ================================================================ */
.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.02em;}
.badge-mensal{background:var(--accent-light);color:var(--accent);}
.badge-semestral{background:var(--accent-light);color:var(--accent);}
.badge-anual{background:var(--amber-light);color:var(--amber);}
.badge-green{background:var(--green-light);color:var(--green);}

.tipo-tag{
  display:inline-block;padding:2px 8px;border-radius:20px;
  font-size:11px;font-weight:600;margin:1px;
}
.tag-sinal{background:var(--accent-light);color:var(--accent);}
.tag-mensal{background:var(--green-light);color:#047857;}
.tag-semestral{background:var(--accent-light);color:var(--accent);}
.tag-anual{background:var(--amber-light);color:#B45309;}
.tag-única{background:var(--red-light);color:#B91C1C;}
.tag-financiamento{background:#F3F4F6;color:#52525E;}
.tag-custom{background:#FEF3C7;color:#92400E;}

/* ================================================================
   STATUS / INDICATORS
   ================================================================ */
.percent-bar{height:3px;background:var(--graphite-hairline);border-radius:2px;margin-top:6px;overflow:hidden;}
.percent-fill{height:100%;border-radius:2px;transition:width .4s;background:var(--accent);}

.total-indicator{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 16px;border-radius:var(--radius);
  margin-top:14px;font-size:13px;font-weight:600;border:1px solid;
}
.total-ok{background:var(--green-light);border-color:rgba(5,150,105,.2);color:var(--green);}
.total-warn{background:var(--amber-light);border-color:rgba(217,119,6,.2);color:var(--amber);}
.total-error{background:var(--red-light);border-color:rgba(220,38,38,.2);color:var(--red);}

.readonly-cell{color:var(--graphite-soft);font-size:13px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.calc-cell{color:var(--graphite);font-size:13px;text-align:right;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;}
.font-mono{font-family:var(--mono);font-size:12px;}

.unid-totals td{background:var(--bg)!important;color:var(--graphite)!important;font-weight:700;border-top:1px solid var(--graphite-hairline);}
.banda-total-ok{color:var(--green);font-weight:700;}
.banda-total-warn{color:var(--amber);font-weight:700;}
.cf-total-col{background:var(--accent-light)!important;color:var(--accent)!important;font-weight:700;}

/* ================================================================
   ACTION BAR & MISC
   ================================================================ */
.action-bar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center;}
.info-text{font-size:12px;color:var(--graphite-soft);}
.empty-state{text-align:center;padding:48px;color:var(--graphite-soft);font-size:14px;}

/* ================================================================
   TIPOLOGIA TABS
   ================================================================ */
.tip-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;}
.tip-tab{
  padding:5px 14px;border-radius:20px;cursor:pointer;
  font-size:12.5px;font-weight:500;
  background:var(--paper);color:var(--graphite-soft);
  border:1px solid var(--graphite-hairline);
  transition:all var(--transition);font-family:var(--wordmark);
}
.tip-tab.active{background:var(--accent-light);color:var(--accent);border-color:rgba(21,97,107,.3);}
.tip-tab:hover:not(.active){border-color:var(--accent);color:var(--accent);}

/* ================================================================
   TABELA UNICA BAR
   ================================================================ */
.tabela-unica-bar{
  display:flex;align-items:center;gap:10px;margin-bottom:14px;
  padding:12px 16px;
  background:var(--bg);
  border-radius:var(--radius);border:1px solid var(--graphite-hairline);
}
.tabela-unica-bar label{
  font-size:13.5px;font-weight:500;color:var(--graphite-soft);cursor:pointer;
  display:flex;align-items:center;gap:8px;
}
.tabela-unica-bar input[type="checkbox"]{
  width:16px;height:16px;cursor:pointer;accent-color:var(--accent);
  border:none;padding:0;background:transparent;
}

/* ================================================================
   MODE GROUP
   ================================================================ */
.mode-group{
  display:inline-flex;gap:2px;
  background:var(--paper);
  border:1px solid var(--graphite-hairline);
  border-radius:var(--radius);padding:3px;
}

/* ================================================================
   AI ASSISTANT
   ================================================================ */
.ai-key-bar{
  display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px;
  padding:16px 20px;
  background:var(--bg);border-radius:var(--radius-lg);border:1px solid var(--graphite-hairline);
}
.ai-key-bar .form-group{margin:0;}
.ai-key-status{font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:20px;flex-shrink:0;}
.ai-key-ok{background:var(--green-light);color:var(--green);}
.ai-key-none{background:#F3F4F6;color:var(--graphite-soft);}

.ai-input-area{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
@media(max-width:700px){.ai-input-area{grid-template-columns:1fr;}}
.ai-textarea{
  width:100%;min-height:150px;padding:12px;
  border:1px solid var(--graphite-hairline);border-radius:var(--radius);
  font-size:13.5px;font-family:var(--wordmark);resize:vertical;
  transition:border-color var(--transition);
  background:var(--paper);color:var(--graphite);line-height:1.65;
}
.ai-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(21,97,107,.08);}
.ai-textarea::placeholder{color:var(--graphite-hairline);}
.ai-file-zone{
  border:2px dashed var(--graphite-hairline);border-radius:var(--radius-lg);
  background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;padding:24px;cursor:pointer;transition:all var(--transition);min-height:150px;
}
.ai-file-zone:hover{border-color:var(--accent);background:var(--accent-light);}
.ai-file-zone.has-files{border-color:var(--green);background:var(--green-light);}
.ai-file-list{width:100%;margin-top:8px;}
.ai-file-item{
  display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--graphite-soft);
  background:var(--paper);border-radius:var(--radius-sm);
  padding:6px 10px;margin-top:4px;
  border:1px solid var(--graphite-hairline);
}
.ai-file-item .fi-remove{margin-left:auto;cursor:pointer;color:var(--graphite-soft);font-size:14px;}
.ai-file-item .fi-remove:hover{color:var(--red);}

/* Compositor minimalista do assistente IA (anexo via clipe) */
.ai-composer{position:relative;border:1px solid var(--graphite-hairline);border-radius:var(--radius);background:var(--paper);transition:all var(--transition);margin-bottom:16px;}
.ai-composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(21,97,107,.08);}
.ai-composer.drag{border-color:var(--accent);border-style:dashed;background:var(--accent-light);}
.ai-composer .ai-textarea{border:none;box-shadow:none;background:transparent;min-height:130px;}
.ai-composer .ai-textarea:focus{box-shadow:none;border:none;}
.ai-composer-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-top:1px solid var(--graphite-hairline);}
.ai-clip-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border:1px solid var(--graphite-hairline);border-radius:var(--radius-sm);background:var(--paper);color:var(--graphite-soft);cursor:pointer;transition:all var(--transition);}
.ai-clip-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light);}
.ai-composer .ai-file-list{width:auto;margin:0;display:flex;flex-wrap:wrap;gap:6px;}
.ai-composer .ai-file-item{margin-top:0;padding:4px 8px;font-size:11.5px;}
.ai-composer .ai-file-item .fi-remove{margin-left:4px;}

.ai-run-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;}
.ai-loading{display:flex;align-items:center;gap:10px;color:var(--accent);font-size:13px;font-weight:500;}
.ai-spinner{
  width:16px;height:16px;
  border:2px solid rgba(21,97,107,.2);border-top-color:var(--accent);
  border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0;
}
@keyframes spin{to{transform:rotate(360deg);}}

.ai-preview-section{
  background:var(--paper);border-radius:var(--radius-lg);
  border:1px solid var(--graphite-hairline);overflow:hidden;margin-bottom:10px;
}
.ai-preview-header{
  display:flex;align-items:center;gap:10px;padding:14px 18px;
  background:var(--bg);border-bottom:1px solid var(--graphite-hairline);cursor:pointer;
}
.ai-preview-header input[type="checkbox"]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;border-radius:3px;}
.ai-preview-header .aph-title{font-size:13.5px;font-weight:600;color:var(--graphite);flex:1;}
.ai-preview-header .aph-badge{
  font-size:11px;padding:2px 8px;border-radius:20px;
  background:var(--accent-light);color:var(--accent);font-weight:600;
}
.ai-preview-body{padding:16px 18px;font-size:13.5px;}
.ai-preview-body table{font-size:13px;}
.ai-preview-body table td{padding:6px 8px;}
.ai-preview-body table th{padding:7px 8px;}

.ai-apply-bar{
  display:flex;gap:10px;align-items:center;padding:14px 0 0;
  border-top:1px solid var(--graphite-hairline);margin-top:4px;
}
.ai-error-box{
  background:var(--red-light);border:1px solid rgba(220,38,38,.2);
  color:var(--red);border-radius:var(--radius);padding:14px 16px;
  font-size:13.5px;white-space:pre-wrap;word-break:break-word;margin-bottom:12px;
}
.ai-raw-box{
  background:var(--bg);border:1px solid var(--graphite-hairline);
  border-radius:var(--radius);padding:10px 14px;
  font-size:11.5px;font-family:var(--mono);white-space:pre-wrap;max-height:200px;overflow:auto;
  color:var(--graphite-soft);margin-top:8px;
}

/* ================================================================
   STATS ROW
   ================================================================ */
.stat-chip{
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;
  font-size:12.5px;font-weight:500;
  background:var(--accent-light);border:1px solid rgba(21,97,107,.15);color:var(--accent);
}
.stat-chip strong{font-weight:700;}

/* ================================================================
   SALES CURVE FOOT
   ================================================================ */
.sales-curve-foot td{background:var(--bg)!important;color:var(--graphite)!important;font-weight:700;border-top:1px solid var(--graphite-hairline);}

/* ================================================================
   FOCUS
   ================================================================ */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media(max-width:768px){
  .app{padding:0 20px 60px;}
  .navbar-inner{padding:0 20px;gap:20px;}
  .page-header h1{font-size:24px;}
  .form-row{flex-direction:column;}
  .form-group{min-width:100%;}
  .card{padding:18px 20px;}
  .tabs{gap:0;}
  .tab{padding:10px 12px;font-size:13px;}
}
/* ================================================================
   LOGIN SCREEN
   ================================================================ */
#login-screen{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg);
  padding:24px;
}
.login-wrap{
  width:100%;
  max-width:380px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
}
.login-logo{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:32px;
  text-decoration:none;
}
.login-logo .ll-word{
  font-family:var(--wordmark);
  font-size:20px;
  font-weight:700;
  letter-spacing:-0.03em;
  color:var(--graphite);
}
.login-logo .ll-one{
  font-family:var(--wordmark);
  font-size:20px;
  font-weight:500;
  letter-spacing:0.01em;
  color:var(--graphite-soft);
}
.login-logo .ll-dot{
  width:7px;
  height:7px;
  background:var(--accent);
  border-radius:2px;
  margin-bottom:1px;
}
.login-card{
  width:100%;
  background:var(--paper);
  border:1px solid var(--graphite-hairline);
  border-radius:var(--radius-lg);
  padding:32px 36px;
}
.login-eyebrow{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:6px;
}
.login-title{
  font-size:22px;
  font-weight:700;
  letter-spacing:-0.025em;
  color:var(--graphite);
  margin-bottom:24px;
  line-height:1.1;
}
.login-form{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.login-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.login-field label{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:0.07em;
  text-transform:uppercase;
  color:var(--graphite-soft);
  font-weight:500;
}
.login-field input{
  width:100%;
  padding:10px 13px;
  border:1px solid var(--graphite-hairline);
  border-radius:var(--radius);
  font-size:14px;
  font-family:var(--wordmark);
  color:var(--graphite);
  background:var(--paper);
  transition:border-color var(--transition),box-shadow var(--transition);
  -webkit-appearance:none;
  appearance:none;
}
.login-field input:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(21,97,107,.1);
}
.login-field input::placeholder{color:var(--graphite-hairline);}
.login-field .input-hint{
  font-size:11.5px;
  color:var(--graphite-soft);
  margin-top:2px;
}
.login-btn{
  width:100%;
  padding:11px;
  background:var(--accent);
  color:#fff;
  border:none;
  border-radius:var(--radius);
  font-size:14px;
  font-weight:600;
  font-family:var(--wordmark);
  cursor:pointer;
  transition:background var(--transition),transform var(--transition);
  margin-top:4px;
  letter-spacing:0.01em;
}
.login-btn:hover{background:#124F57;transform:translateY(-1px);}
.login-btn:active{transform:translateY(0);}
.login-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:4px 0;
}
.login-divider::before,
.login-divider::after{
  content:'';
  flex:1;
  height:1px;
  background:var(--graphite-hairline);
}
.login-divider span{
  font-size:11px;
  color:var(--graphite-soft);
  font-family:var(--mono);
  white-space:nowrap;
}
.login-footer{
  width:100%;
  text-align:center;
  margin-top:18px;
  font-size:13px;
  color:var(--graphite-soft);
}
.login-footer a{
  color:var(--accent);
  text-decoration:none;
  font-weight:500;
}
.login-footer a:hover{text-decoration:underline;}
.login-error{
  background:var(--red-light);
  border:1px solid rgba(220,38,38,.2);
  color:var(--red);
  border-radius:var(--radius-sm);
  padding:10px 13px;
  font-size:12.5px;
  display:none;
  margin-bottom:4px;
}
.login-error.show{display:block;}
.login-brandbar{
  width:100%;
  text-align:center;
  margin-top:28px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--graphite-soft);
}

/* ================================================================
   APP (login removido — sempre visivel)
   ================================================================ */
#app-shell{display:block;}

@media(max-width:640px){
  .login-card{padding:24px 20px;}
  .login-wrap{max-width:100%;}
}
@media(max-width:768px){
  .page-header{padding-top:70px;padding-bottom:28px;}
  .navbar-links{display:none;}
}

/* KPI / RESUMO */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;}
.kpi{background:var(--bg);border:1px solid var(--graphite-hairline);border-radius:var(--radius-lg);padding:12px 14px;}
.kpi-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite-soft);margin-bottom:5px;}
.kpi-val{font-size:17px;font-weight:700;letter-spacing:-0.02em;color:var(--graphite);font-variant-numeric:tabular-nums;line-height:1.15;}
.kpi-sub{font-size:11px;color:var(--graphite-soft);margin-top:2px;}
.kpi.good .kpi-val{color:var(--green);} .kpi.bad .kpi-val{color:var(--red);} .kpi.accent .kpi-val{color:var(--accent);}
.diag-list{display:flex;flex-direction:column;gap:6px;}
.diag-item{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--graphite-soft);}
.diag-ico{width:15px;height:15px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;margin-top:1px;}
.diag-ok .diag-ico{background:var(--green);} .diag-warn .diag-ico{background:var(--amber);} .diag-err .diag-ico{background:var(--red);}
.diag-ok{color:var(--graphite);} .diag-warn{color:var(--graphite);} .diag-err{color:var(--graphite);}
/* ================================================================
   TIMELINE / FASES
   ================================================================ */
.tl-wrap{border:1px solid var(--graphite-hairline);border-radius:var(--radius-lg);padding:16px 18px;background:var(--bg);}
.tl-title{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite-soft);margin-bottom:14px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.tl-title span{color:var(--accent);font-weight:600;}
.tl-bar{display:flex;width:100%;min-height:36px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--graphite-hairline);}
.tl-seg{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10.5px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;padding:3px 4px;line-height:1.25;text-shadow:0 1px 1px rgba(0,0,0,.15);}
.tl-seg small{font-weight:500;opacity:.85;font-size:9.5px;}
.tl-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;}
.tl-leg{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--graphite-soft);}
.tl-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0;}
.fase-prelanc{background:#94A3B8;}
.fase-lanc{background:#15616B;}
.fase-obra{background:#D97706;}
.fase-final{background:#6366F1;}
.fase-repasse{background:#059669;}
/* ================================================================
   AUTH SCREENS + DASHBOARD
   ================================================================ */
/* ---- telas de auth ---- */
.auth-screen{display:none;position:fixed;inset:0;background:var(--bg);z-index:900;overflow-y:auto;align-items:center;justify-content:center;flex-direction:column;}
.auth-screen.active{display:flex;}
.auth-wrap{width:100%;max-width:440px;padding:32px 24px;}
.auth-logo{display:flex;align-items:baseline;gap:4px;margin-bottom:28px;text-decoration:none;}
.auth-logo .ll-word{font-size:22px;font-weight:700;color:var(--graphite);letter-spacing:-.5px;}
.auth-logo .ll-one{font-size:22px;font-weight:500;color:var(--graphite-soft);}
.auth-logo .ll-dot{width:7px;height:7px;border-radius:2px;background:var(--accent);margin-left:3px;align-self:center;}
.auth-card{background:var(--paper);border:1px solid var(--hair);border-radius:var(--radius-lg);padding:34px 38px;box-shadow:0 30px 70px -46px rgba(26,28,29,0.34);}
.auth-eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--graphite-soft);margin-bottom:8px;}
.auth-title{font-size:22px;font-weight:700;color:var(--graphite);margin-bottom:20px;letter-spacing:-.3px;}
.auth-field{margin-bottom:14px;}
.auth-field label{display:block;font-size:12px;font-weight:600;color:var(--graphite-soft);margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em;}
.auth-field input,.auth-field select{width:100%;padding:10px 13px;border:1px solid var(--graphite-hairline);border-radius:var(--radius);font-size:13.5px;background-color:var(--bg);color:var(--graphite);transition:border-color var(--transition);}
.auth-field input:focus,.auth-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(21,97,107,.08);}
.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:480px){.auth-row{grid-template-columns:1fr;}}
.auth-btn{width:100%;padding:13px;background:var(--graphite);color:#fff;border:1px solid transparent;border-radius:var(--radius);font-size:14.5px;font-weight:600;letter-spacing:-0.01em;cursor:pointer;transition:background var(--transition),transform var(--transition);margin-top:4px;}
.auth-btn:hover{background:#000;}
.auth-btn:active{transform:translateY(1px);}
.auth-btn:disabled{opacity:.5;cursor:not-allowed;}
.auth-divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--graphite-soft);font-size:12px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--graphite-hairline);}
.auth-btn-google{width:100%;padding:10px;background:var(--paper);border:1px solid var(--graphite-hairline);border-radius:var(--radius);font-size:13.5px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--graphite);transition:all var(--transition);}
.auth-btn-google:hover{border-color:var(--accent);background:var(--accent-light);}
.auth-check{display:flex;align-items:center;gap:8px;margin:14px 0 2px;font-size:13px;color:var(--graphite);cursor:pointer;user-select:none;}
.auth-check input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;margin:0;}
.auth-hint{margin:8px 0 0;font-size:11.5px;line-height:1.5;color:var(--graphite-soft);}
.auth-footer{text-align:center;margin-top:20px;font-size:13px;color:var(--graphite-soft);}
.auth-footer a{color:var(--accent);text-decoration:none;font-weight:500;}
.auth-msg{border-radius:var(--radius);padding:10px 14px;font-size:13px;margin-bottom:14px;display:none;}
.auth-msg.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;display:block;}
.auth-msg.success{background:var(--green-light);border:1px solid rgba(5,150,105,.2);color:var(--green);display:block;}
.auth-brandbar{text-align:center;font-size:11px;color:var(--graphite-soft);margin-top:24px;font-family:var(--mono);letter-spacing:.05em;}
.admin-corner{position:absolute;bottom:14px;right:18px;background:none;border:none;cursor:pointer;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--graphite-soft);opacity:.35;transition:opacity var(--transition);}
.admin-corner:hover{opacity:.9;}

.pass-wrap{position:relative;display:flex;align-items:center;}
.pass-wrap input{flex:1;padding-right:38px!important;}
.eye-btn{position:absolute;right:8px;background:none;border:none;cursor:pointer;font-size:15px;color:var(--graphite-soft);padding:0;line-height:1;opacity:.6;}
.eye-btn:hover{opacity:1;}
/* ---- dashboard ---- */
.dash-screen{display:none;min-height:100vh;background:var(--bg);}
.dash-screen.active{display:block;}
.dash-nav{background:rgba(247,247,245,0.85);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--hair);padding:0 32px;display:flex;align-items:center;height:56px;gap:16px;position:sticky;top:0;z-index:800;}
.dash-nav-logo{display:flex;align-items:baseline;gap:4px;text-decoration:none;}
.dash-nav-logo .ll-word{font-size:18px;font-weight:700;color:var(--graphite);letter-spacing:-.4px;}
.dash-nav-logo .ll-one{font-size:18px;font-weight:500;color:var(--graphite-soft);}
.dash-nav-logo .ll-dot{width:6px;height:6px;border-radius:2px;background:var(--accent);margin-left:3px;align-self:center;}
.dash-user{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px;color:var(--graphite-soft);}
.dash-user strong{color:var(--graphite);}
.dash-body{max-width:1100px;margin:0 auto;padding:40px 32px;}
.dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;flex-wrap:wrap;gap:12px;}
.dash-header h1{font-size:26px;font-weight:700;color:var(--graphite);letter-spacing:-.4px;}
.dash-header p{font-size:13.5px;color:var(--graphite-soft);margin-top:4px;}
.dash-search{padding:9px 13px;border:1px solid var(--graphite-hairline);border-radius:var(--radius);font-size:13px;width:260px;background:var(--paper);}
.dash-search:focus{outline:none;border-color:var(--accent);}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
.dash-card{background:var(--paper);border:1px solid var(--graphite-hairline);border-radius:var(--radius-lg);padding:22px;cursor:pointer;transition:all var(--transition);position:relative;}
.dash-card:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(21,97,107,.08);}
.dash-card.new-card{border-style:dashed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:140px;text-align:center;}
.dash-card.new-card:hover{background:var(--accent-light);}
.dash-card-icon{width:40px;height:40px;background:var(--accent-light);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin-bottom:8px;}
.dash-card-title{font-size:15px;font-weight:600;color:var(--graphite);margin-bottom:4px;padding-right:64px;}
.dash-card-meta{font-size:12px;color:var(--graphite-soft);line-height:1.6;}
.dash-card-actions{position:absolute;top:16px;right:16px;display:flex;gap:6px;}
.dca-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--graphite-hairline);background:var(--paper);color:var(--graphite-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);font-size:11px;}
.dca-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light);}
.dca-btn.danger:hover{border-color:var(--red);color:var(--red);background:#fef2f2;}
.dash-empty{text-align:center;padding:60px 20px;color:var(--graphite-soft);}
.dash-empty svg{opacity:.25;margin-bottom:16px;}
.dash-empty h3{font-size:18px;font-weight:600;color:var(--graphite);margin-bottom:8px;}
.study-toast{position:fixed;bottom:24px;right:24px;background:var(--graphite);color:#fff;border-radius:var(--radius);padding:12px 18px;font-size:13.5px;font-weight:500;z-index:9999;transform:translateY(80px);opacity:0;transition:all .35s cubic-bezier(.4,0,.2,1);}
.study-toast.show{transform:translateY(0);opacity:1;}
.viab-bar{background:rgba(247,247,245,0.85);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--hair);padding:0 24px;display:flex;align-items:center;gap:12px;height:48px;}
.viab-bar-name{font-size:14px;font-weight:600;color:var(--graphite);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.viab-bar input[type=text]{border:none;background:transparent;font-size:14px;font-weight:600;color:var(--graphite);width:320px;padding:4px 8px;border-radius:4px;}
.viab-bar input[type=text]:focus{outline:none;background:var(--bg);}
.save-badge{font-size:11px;font-family:var(--mono);color:var(--graphite-soft);}
.modal-overlay{position:fixed;inset:0;background:rgba(20,25,30,.45);z-index:9000;display:none;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow-y:auto;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--paper);border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.25);max-width:860px;width:100%;padding:26px 30px;}
.modal-box h2{font-size:17px;margin:0 0 4px;color:var(--graphite);}
.modal-box .modal-sub{font-size:12.5px;color:var(--graphite-soft);margin-bottom:18px;}
.modal-close{float:right;background:none;border:none;font-size:20px;cursor:pointer;color:var(--graphite-soft);}
.papel-badge{font-size:10.5px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:10px;background:var(--bg);border:1px solid var(--graphite-hairline);}
.papel-admin{color:#fff;background:var(--accent);border-color:var(--accent);}
.papel-gestor{color:var(--accent);border-color:var(--accent);}
.dash-sec-title{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--graphite-soft);margin:26px 0 12px;}
.dash-lock{position:absolute;top:12px;right:12px;font-size:14px;opacity:.7;}
.viab-bar{position:sticky;top:0;z-index:800;box-shadow:0 1px 8px rgba(0,0,0,.06);}
#app-shell .navbar{display:none !important;}
.page-header{padding-top:34px !important;}
.hero-estudo{text-align:right;min-width:220px;}
.hero-estudo .he-nome{font-size:22px;font-weight:700;color:var(--accent);letter-spacing:-.3px;line-height:1.2;}
.hero-estudo .he-end{font-size:11.5px;color:var(--graphite-soft);margin-top:4px;}
.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.readonly-pill{font-size:11px;font-family:var(--mono);color:#fff;background:var(--amber);padding:3px 10px;border-radius:10px;}
.pdf-export .btn,.pdf-export .lock-btn,.pdf-export .collapse-btn,.pdf-export .dca-btn{display:none !important;}
.pdf-export .overflow-x,.pdf-export .overflow-xy{max-height:none !important;overflow:visible !important;}
.pdf-export{font-family:'Inter',system-ui,sans-serif;color:#1c2126;}
.pdf-capa{height:1400px;display:flex;flex-direction:column;justify-content:space-between;padding:90px 70px;background:linear-gradient(160deg,#0e444c 0%,#15616B 55%,#1d7a86 100%);color:#fff;border-radius:0;page-break-after:always;}
.pdf-capa .pc-logo{font-size:30px;font-weight:700;letter-spacing:-.5px;}
.pdf-capa .pc-logo span{font-weight:300;opacity:.85;}
.pdf-capa h1{font-size:46px;line-height:1.15;margin:0;font-weight:700;}
.pdf-capa .pc-sub{font-size:16px;opacity:.85;margin-top:14px;}
.pdf-capa .pc-kpis{display:flex;gap:38px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.3);padding-top:26px;}
.pdf-capa .pc-kpis div{min-width:150px;}
.pdf-capa .pc-kpis .k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.75;}
.pdf-capa .pc-kpis .v{font-size:22px;font-weight:700;margin-top:4px;}
.pdf-sec{page-break-inside:avoid;margin:26px 40px;}
.pdf-sec h2{font-size:16px;color:#15616B;border-left:4px solid #15616B;padding-left:10px;margin:0 0 12px;}
.pdf-break{page-break-before:always;}
.crm-badge{font-size:10.5px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:10px;color:#fff;}
.crm-dates{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:12px;}
.crm-dates label{font-size:10.5px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--graphite-soft);display:block;margin-bottom:3px;}
.crm-chip{cursor:pointer;font-size:12px;padding:5px 12px;border-radius:14px;border:1px solid var(--graphite-hairline);background:var(--paper);}
.crm-chip.active{background:var(--accent);color:#fff;border-color:var(--accent);}
.iachat-box{border:1px solid var(--graphite-hairline);border-radius:10px;background:var(--bg);height:420px;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;}
.iachat-msg{max-width:78%;padding:10px 14px;border-radius:12px;font-size:13.5px;line-height:1.55;white-space:pre-wrap;word-wrap:break-word;}
.iachat-user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:3px;}
.iachat-ia{align-self:flex-start;background:var(--paper);border:1px solid var(--graphite-hairline);color:var(--graphite);border-bottom-left-radius:3px;}
.iachat-meta{font-size:10px;opacity:.6;margin-top:4px;}
.iachat-input{display:flex;gap:10px;margin-top:12px;align-items:flex-end;}
.iachat-input textarea{flex:1;resize:none;height:64px;padding:10px 12px;border:1px solid var(--graphite-hairline);border-radius:10px;font-size:13.5px;font-family:inherit;}
.iachat-input textarea:focus{outline:none;border-color:var(--accent);}
.save-badge.saving{color:var(--amber);}
.save-badge.saved{color:var(--green);}

/* ================================================================
   LANDING PAGE — Quantis One site (escopo #screen-landing)
   ================================================================ */
#screen-landing{display:none;background:var(--bg);color:var(--graphite);font-family:var(--sans);}
#screen-landing a{color:var(--accent);text-decoration:none;transition:color .3s var(--ease);}
#screen-landing a:hover{color:var(--graphite);}
#screen-landing .wrap{max-width:1200px;margin:0 auto;padding:0 40px;}
#screen-landing .mono{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--graphite-soft);}
#screen-landing .sec-label{display:flex;align-items:baseline;gap:14px;margin-bottom:30px;}
#screen-landing .sec-label .n{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;color:var(--accent);}
#screen-landing .sec-label .t{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--graphite);}
#screen-landing .wm{font-family:var(--sans);font-weight:600;letter-spacing:-0.022em;color:var(--graphite);white-space:nowrap;line-height:1;}
#screen-landing .wm .tag{font-weight:500;font-size:0.42em;letter-spacing:0.02em;margin-left:0.30em;color:var(--graphite-soft);}
#screen-landing .wm .mk{display:inline-block;width:0.14em;height:0.14em;background:var(--accent);border-radius:2px;margin-left:0.20em;vertical-align:baseline;}
#screen-landing .nav{position:fixed;top:0;left:0;right:0;z-index:60;height:var(--nav-h);display:flex;align-items:center;transition:background .4s var(--ease),border-color .4s var(--ease),height .4s var(--ease);border-bottom:1px solid transparent;}
#screen-landing.ld-anim .nav{transform:translateY(-100%);}
#screen-landing .nav.ready{transform:translateY(0);transition:transform .9s var(--ease);}
#screen-landing .nav.scrolled{background:rgba(247,247,245,0.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom-color:var(--hair);height:60px;}
#screen-landing .nav-inner{width:100%;max-width:1200px;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
#screen-landing .nav .wm{font-size:23px;}
#screen-landing .nav-links{display:flex;gap:34px;align-items:center;}
#screen-landing .nav-links a{font-size:14.5px;font-weight:500;color:var(--graphite);letter-spacing:-0.01em;position:relative;}
#screen-landing .nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1.5px;background:var(--accent);transition:right .4s var(--ease);}
#screen-landing .nav-links a:hover::after{right:0;}
#screen-landing .nav-cta{display:flex;gap:10px;align-items:center;}
#screen-landing .btn{font-family:var(--sans);font-weight:600;font-size:14px;letter-spacing:-0.01em;border-radius:8px;padding:11px 20px;cursor:pointer;border:1px solid transparent;transition:transform .3s var(--ease),background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);white-space:nowrap;display:inline-flex;align-items:center;gap:9px;}
#screen-landing .btn:active{transform:translateY(1px);}
#screen-landing .btn-solid{background:var(--graphite);color:#fff;}
#screen-landing .btn-solid:hover{background:#000;}
#screen-landing .btn-ghost{background:transparent;color:var(--graphite);border-color:var(--hair);}
#screen-landing .btn-ghost:hover{border-color:var(--graphite);}
#screen-landing .btn-accent{background:var(--accent);color:#fff;}
#screen-landing .btn-accent:hover{background:#124e56;}
#screen-landing .btn .arw{display:inline-block;transition:transform .35s var(--ease);}
#screen-landing .btn:hover .arw{transform:translateX(4px);}
#screen-landing .btn-lg{padding:15px 26px;font-size:15.5px;border-radius:9px;}
#screen-landing .hero{padding:calc(var(--nav-h) + 78px) 0 96px;}
#screen-landing .hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:64px;align-items:center;}
#screen-landing .hero .kicker{margin-bottom:26px;}
#screen-landing .hero h1{font-weight:600;font-size:60px;line-height:1.04;letter-spacing:-0.03em;margin:0;color:var(--graphite);}
#screen-landing .hero h1 .accentword{color:var(--accent);}
#screen-landing .hero .lead{margin:30px 0 0;max-width:520px;font-size:19px;line-height:1.58;color:var(--graphite-soft);font-weight:400;text-wrap:pretty;}
#screen-landing .hero-cta{display:flex;gap:14px;margin-top:38px;flex-wrap:wrap;}
#screen-landing .hero .trust{display:flex;gap:22px;margin-top:44px;align-items:center;flex-wrap:wrap;}
#screen-landing .hero .trust .dot{width:4px;height:4px;border-radius:50%;background:var(--graphite-faint);}
#screen-landing .mask{overflow:hidden;display:block;}
#screen-landing .mask>span{display:block;transition:transform 1s var(--ease);}
#screen-landing.ld-anim .mask>span{transform:translateY(112%);}
#screen-landing .mask.in>span{transform:none;}
#screen-landing .reveal{transition:opacity .95s var(--ease),transform .95s var(--ease);}
#screen-landing.ld-anim .reveal{opacity:0;transform:translateY(24px);}
#screen-landing .reveal.in{opacity:1;transform:none;}
#screen-landing .btn:focus-visible,#screen-landing a:focus-visible,#screen-landing .toggle button:focus-visible,#screen-landing .burger:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
#screen-landing .panel{background:var(--paper);border:1px solid var(--hair);border-radius:14px;padding:26px 26px 30px;box-shadow:0 30px 70px -40px rgba(26,28,29,0.35);position:relative;}
#screen-landing .panel.float{animation:ldFloaty 7s ease-in-out infinite;}
@keyframes ldFloaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
#screen-landing .panel-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid var(--hair-soft);}
#screen-landing .panel-head .live{display:flex;align-items:center;gap:8px;}
#screen-landing .panel-head .pulse{width:7px;height:7px;border-radius:2px;background:var(--accent);}
#screen-landing .panel-head .pulse.on{animation:ldPulse 2.4s ease-in-out infinite;}
@keyframes ldPulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(21,97,107,0.35);}50%{opacity:.55;box-shadow:0 0 0 6px rgba(21,97,107,0);}}
#screen-landing .panel-metrics{display:grid;grid-template-columns:1fr 1fr;gap:2px 26px;padding:22px 0 6px;}
#screen-landing .metric .k{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--graphite-faint);}
#screen-landing .metric .v{font-weight:600;font-size:29px;letter-spacing:-0.02em;margin-top:5px;font-variant-numeric:tabular-nums;}
#screen-landing .metric{padding:14px 0;border-bottom:1px solid var(--hair-soft);}
#screen-landing .panel-chart{margin-top:20px;}
#screen-landing .panel-chart svg{display:block;width:100%;height:96px;overflow:visible;}
#screen-landing .chart-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 1.9s var(--ease);}
#screen-landing .panel.in .chart-line{stroke-dashoffset:0;}
#screen-landing .chart-area{fill:url(#qgrad);opacity:0;transition:opacity 1.4s var(--ease) .5s;}
#screen-landing .panel.in .chart-area{opacity:1;}
#screen-landing .chart-dot{fill:var(--accent);opacity:0;transition:opacity .5s var(--ease) 1.6s;}
#screen-landing .panel.in .chart-dot{opacity:1;}
#screen-landing .panel-bars{margin-top:22px;display:flex;flex-direction:column;gap:13px;}
#screen-landing .bar-row{display:grid;grid-template-columns:70px 1fr 52px;gap:14px;align-items:center;}
#screen-landing .bar-row .bl{font-family:var(--mono);font-size:10px;letter-spacing:0.1em;color:var(--graphite-soft);text-transform:uppercase;}
#screen-landing .bar-track{height:6px;border-radius:6px;background:var(--hair-soft);overflow:hidden;}
#screen-landing .bar-fill{height:100%;border-radius:6px;background:var(--graphite);width:0;transition:width 1.3s var(--ease);}
#screen-landing .bar-fill.acc{background:var(--accent);}
#screen-landing .bar-row .bv{font-family:var(--mono);font-size:11px;color:var(--graphite);text-align:right;font-variant-numeric:tabular-nums;}
#screen-landing .stats{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}
#screen-landing .stats .wrap{display:grid;grid-template-columns:repeat(3,1fr);}
#screen-landing .stat{padding:52px 0;text-align:left;border-left:1px solid var(--hair);padding-left:34px;}
#screen-landing .stat:first-child{border-left:0;padding-left:0;}
#screen-landing .stat .v{font-weight:600;font-size:44px;letter-spacing:-0.03em;line-height:1;font-variant-numeric:tabular-nums;}
#screen-landing .stat .l{margin-top:12px;font-size:14.5px;color:var(--graphite-soft);max-width:220px;}
#screen-landing .stat .v .u{color:var(--accent);}
#screen-landing .product{padding:110px 0 30px;}
#screen-landing .product h2,#screen-landing .pricing h2,#screen-landing .final h2{font-weight:600;letter-spacing:-0.028em;margin:0;color:var(--graphite);}
#screen-landing .product h2{font-size:40px;line-height:1.08;max-width:620px;}
#screen-landing .product .sub{margin:22px 0 0;font-size:18px;color:var(--graphite-soft);max-width:520px;line-height:1.55;}
#screen-landing .feat-grid{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:12px;overflow:hidden;}
#screen-landing .feat{background:var(--paper);padding:36px 30px 40px;transition:background .4s var(--ease);}
#screen-landing .feat:hover{background:#fcfcfb;}
#screen-landing .feat .idx{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;color:var(--accent);}
#screen-landing .feat .mk{display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--accent);margin-left:2px;vertical-align:1px;}
#screen-landing .feat h3{font-weight:600;font-size:20px;letter-spacing:-0.015em;margin:20px 0 12px;color:var(--graphite);}
#screen-landing .feat p{margin:0;font-size:15px;line-height:1.6;color:var(--graphite-soft);text-wrap:pretty;}
#screen-landing .pricing{padding:120px 0 40px;}
#screen-landing .pricing .head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;}
#screen-landing .pricing h2{font-size:40px;}
#screen-landing .pricing .head p{margin:16px 0 0;color:var(--graphite-soft);font-size:17px;max-width:420px;line-height:1.55;}
#screen-landing .toggle{position:relative;display:inline-flex;align-items:center;gap:0;background:var(--paper);border:1px solid var(--hair);border-radius:10px;padding:4px;font-family:var(--sans);}
#screen-landing .toggle button{width:88px;border:0;background:transparent;font-family:var(--sans);font-weight:600;font-size:13.5px;color:var(--graphite-soft);padding:9px 0;border-radius:7px;cursor:pointer;transition:color .3s var(--ease);position:relative;z-index:1;text-align:center;}
#screen-landing .toggle button.act{color:#fff;}
#screen-landing .toggle .knob{position:absolute;top:4px;bottom:4px;left:4px;width:88px;border-radius:7px;background:var(--graphite);transition:transform .45s var(--ease);z-index:0;}
#screen-landing .toggle.anual .knob{transform:translateX(100%);}
#screen-landing .toggle-wrap{position:relative;display:inline-flex;}
#screen-landing .lp-save-badge{margin-left:12px;font-family:var(--mono);font-size:10px;letter-spacing:0.12em;color:var(--accent);text-transform:uppercase;}
#screen-landing .plans{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start;}
#screen-landing .plan{background:var(--paper);border:1px solid var(--hair);border-radius:14px;padding:34px 30px 34px;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);position:relative;}
#screen-landing .plan:hover{transform:translateY(-6px);box-shadow:0 30px 60px -42px rgba(26,28,29,0.4);}
#screen-landing .plan.feat-plan{border-color:var(--graphite);box-shadow:0 30px 60px -42px rgba(26,28,29,0.45);}
#screen-landing .plan.feat-plan::before{content:"";position:absolute;top:0;left:24px;right:24px;height:3px;background:var(--accent);border-radius:0 0 3px 3px;transform:scaleX(0);transform-origin:center;transition:transform 1s var(--ease) .2s;}
#screen-landing .plan.feat-plan.in::before{transform:scaleX(1);}
#screen-landing .plan .badge{position:absolute;top:-11px;right:24px;background:var(--accent);color:#fff;font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;padding:5px 11px;border-radius:6px;}
#screen-landing .plan .pname{font-weight:600;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--graphite);}
#screen-landing .plan .pdesc{margin:10px 0 24px;font-size:14px;line-height:1.55;color:var(--graphite-soft);min-height:62px;}
#screen-landing .plan .price{display:flex;align-items:baseline;gap:3px;}
#screen-landing .plan .price .cur{font-weight:600;font-size:20px;color:var(--graphite);align-self:flex-start;margin-top:6px;}
#screen-landing .plan .price .amt{font-weight:600;font-size:50px;letter-spacing:-0.03em;line-height:1;font-variant-numeric:tabular-nums;transition:opacity .35s var(--ease),transform .35s var(--ease);}
#screen-landing .plan .price .per{font-size:14px;color:var(--graphite-faint);align-self:flex-end;margin-bottom:9px;}
#screen-landing .plan .billed{margin-top:9px;font-family:var(--mono);font-size:10.5px;letter-spacing:0.06em;color:var(--graphite-faint);min-height:15px;}
#screen-landing .plan .btn{width:100%;justify-content:center;margin-top:24px;}
#screen-landing .plan ul{list-style:none;margin:26px 0 0;padding:24px 0 0;border-top:1px solid var(--hair-soft);display:flex;flex-direction:column;gap:13px;}
#screen-landing .plan li{display:flex;gap:11px;font-size:14.5px;color:var(--graphite);line-height:1.4;}
#screen-landing .plan li .ck{flex:none;width:16px;height:16px;margin-top:1px;color:var(--accent);}
#screen-landing .price .amt.swap{opacity:0;transform:translateY(6px);}
#screen-landing .final{padding:120px 0;}
#screen-landing .final .box{background:var(--graphite);border-radius:18px;padding:80px 64px;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;position:relative;overflow:hidden;}
#screen-landing .final .box::after{content:"";position:absolute;right:-60px;bottom:-60px;width:280px;height:280px;background:radial-gradient(circle at center,rgba(95,198,207,0.16),transparent 70%);pointer-events:none;}
#screen-landing .final h2{color:#fff;font-size:38px;line-height:1.1;max-width:560px;}
#screen-landing .final p{color:rgba(255,255,255,0.66);margin:16px 0 0;font-size:17px;max-width:460px;line-height:1.5;}
#screen-landing .final .box .r{position:relative;z-index:1;}
#screen-landing footer{border-top:1px solid var(--hair);padding:64px 0 48px;}
#screen-landing .foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;}
#screen-landing footer .wm{font-size:30px;}
#screen-landing footer .fcol h4{font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--graphite-faint);margin:0 0 16px;font-weight:400;}
#screen-landing footer .fcol a{display:block;color:var(--graphite);font-size:14.5px;margin-bottom:11px;font-weight:500;}
#screen-landing footer .fcol a:hover{color:var(--accent);}
#screen-landing footer .tagline{margin:20px 0 0;color:var(--graphite-soft);font-size:14px;max-width:260px;line-height:1.55;}
#screen-landing .foot-bottom{display:flex;justify-content:space-between;margin-top:56px;padding-top:26px;border-top:1px solid var(--hair-soft);flex-wrap:wrap;gap:10px;}
#screen-landing .burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;}
#screen-landing .burger span{width:22px;height:2px;background:var(--graphite);border-radius:2px;transition:transform .4s var(--ease),opacity .3s var(--ease);}
#screen-landing .nav.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
#screen-landing .nav.menu-open .burger span:nth-child(2){opacity:0;}
#screen-landing .nav.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
#screen-landing .mobile-menu{position:fixed;top:60px;left:0;right:0;z-index:55;background:var(--paper);border-bottom:1px solid var(--hair);padding:16px 40px 26px;display:none;flex-direction:column;gap:4px;transform:translateY(-8px);opacity:0;transition:transform .4s var(--ease),opacity .4s var(--ease);}
#screen-landing .mobile-menu.open{display:flex;transform:none;opacity:1;}
#screen-landing .mobile-menu a{padding:13px 0;font-size:16px;font-weight:600;color:var(--graphite);border-bottom:1px solid var(--hair-soft);}
#screen-landing .mobile-menu .btn{margin-top:14px;justify-content:center;}
@media(max-width:960px){
  #screen-landing .hero-grid{grid-template-columns:1fr;gap:48px;}
  #screen-landing .hero h1{font-size:48px;}
  #screen-landing .feat-grid{grid-template-columns:repeat(2,1fr);}
  #screen-landing .plans{grid-template-columns:1fr;max-width:440px;margin-left:auto;margin-right:auto;}
  #screen-landing .plan:hover{transform:none;}
  #screen-landing .foot-grid{grid-template-columns:1fr 1fr;gap:32px;}
  #screen-landing .nav-links,#screen-landing .nav-cta{display:none;}
  #screen-landing .burger{display:flex;}
  #screen-landing .stats .wrap{grid-template-columns:1fr;}
  #screen-landing .stat{border-left:0;padding-left:0;border-top:1px solid var(--hair);}
  #screen-landing .stat:first-child{border-top:0;}
}
@media(max-width:560px){
  #screen-landing .wrap,#screen-landing .nav-inner{padding:0 22px;}
  #screen-landing .hero h1{font-size:38px;}
  #screen-landing .feat-grid{grid-template-columns:1fr;}
  #screen-landing .product h2,#screen-landing .pricing h2,#screen-landing .final h2{font-size:30px;}
  #screen-landing .final .box{padding:48px 28px;}
  #screen-landing .panel-metrics{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){
  #screen-landing .reveal,#screen-landing .mask>span,#screen-landing .chart-line,#screen-landing .chart-area,#screen-landing .chart-dot,#screen-landing .plan.feat-plan::before{transition:none!important;}
  #screen-landing .reveal{opacity:1;transform:none;}
  #screen-landing .mask>span{transform:none;}
  #screen-landing .chart-line{stroke-dashoffset:0;}
  #screen-landing .chart-area,#screen-landing .chart-dot{opacity:1;}
  #screen-landing .panel.float{animation:none;}
  #screen-landing .panel-head .pulse.on{animation:none;}
}


/* ================================================================
   SELECT: SETA E ESPACO PARA ELA
   As regras de contexto acima (.form-group, td, .auth-field) definem o
   padding no atalho, e o atalho apaga o padding-right que a regra 'select'
   pede para a seta caber. Empatam em especificidade com o que vem aqui, e
   em empate vence a ultima regra do arquivo: por isso este bloco fica no fim.
   Mexer nele de lugar faz a seta voltar a ficar por cima do texto.
   ================================================================ */
.form-group select{padding-right:32px;}
.auth-field select{padding-right:32px;-webkit-appearance:none;appearance:none;}
td select{padding-right:26px;background-position:right 8px center;}
