/* ── HUB / DASHBOARD ────────────────────────── */
#hub-screen{display:none;min-height:100vh;background:var(--bg);flex-direction:column}
#hub-screen.active{display:flex}

.hub-topbar{display:flex;align-items:center;height:48px;border-bottom:1px solid var(--border);padding:0 24px;background:var(--surface);flex-shrink:0;justify-content:space-between}
.hub-logo{display:flex;align-items:center;gap:10px}
.hub-logo img{filter:brightness(0) invert(1);width:28px}
[data-theme="light"] .hub-logo img{filter:none}
.hub-logo-text{font-family:'Syne',sans-serif;font-size:14px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.hub-logo-badge{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.12em;color:#FB0544;background:#FB054418;padding:3px 8px;border-radius:3px;text-transform:uppercase}
.hub-user{display:flex;align-items:center;gap:12px}
.hub-user-name{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2)}
.hub-user-avatar{width:28px;height:28px;border-radius:50%;background:#FB0544;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:11px;font-weight:800;color:#fff}
.hub-logout{background:none;border:1px solid var(--border2);color:var(--muted2);font-family:'DM Mono',monospace;font-size:9px;padding:5px 12px;cursor:pointer;transition:all .15s;letter-spacing:.08em;text-transform:uppercase}
.hub-logout:hover{color:var(--text);border-color:var(--muted2)}

/* MAIN AREA */
.hub-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px}
.hub-welcome{text-align:center;margin-bottom:48px}
.hub-welcome h1{font-family:'Syne',sans-serif;font-size:28px;font-weight:800;margin-bottom:8px}
.hub-welcome p{font-family:'DM Mono',monospace;font-size:12px;color:var(--muted2);max-width:480px;margin:0 auto;line-height:1.6}

/* MODULE GRID */
.hub-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:840px;width:100%}

.hub-card{background:var(--surface);border:1px solid var(--border2);border-radius:12px;padding:32px 24px;cursor:pointer;transition:all .25s;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}
.hub-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--card-accent,#FB0544);opacity:0;transition:opacity .25s}
.hub-card:hover{border-color:var(--card-accent,#FB0544);transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.3)}
.hub-card:hover::before{opacity:1}

.hub-card-icon{width:64px;height:64px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;background:var(--card-accent,#FB0544)12;border:1px solid var(--card-accent,#FB0544)22}
.hub-card-icon svg{width:32px;height:32px;stroke:var(--card-accent,#FB0544);fill:none;stroke-width:1.5}

.hub-card h3{font-family:'Syne',sans-serif;font-size:16px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.hub-card p{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted2);line-height:1.6;max-width:220px}
.hub-card-tag{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.14em;text-transform:uppercase;padding:4px 12px;border-radius:20px;border:1px solid var(--border2);color:var(--muted2)}
.hub-card-tag.active{border-color:var(--card-accent,#FB0544);color:var(--card-accent,#FB0544);background:var(--card-accent,#FB0544)10}
.hub-card-tag.soon{border-color:var(--border);color:var(--muted)}

/* Card accent colors */
.hub-card.mod-planeja{--card-accent:#6cb87a}
.hub-card.mod-financeiro{--card-accent:#4fa3d1}
.hub-card.mod-contratos{--card-accent:#d4a853}

/* FOOTER */
.hub-footer{border-top:1px solid var(--border);padding:12px 24px;display:flex;justify-content:center;gap:24px;font-family:'DM Mono',monospace;font-size:9px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;flex-shrink:0}

/* MODULE BACK BUTTON */
.module-back{display:inline-flex;align-items:center;gap:6px;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2);background:none;border:1px solid var(--border2);padding:5px 12px;cursor:pointer;transition:all .15s;margin-right:12px}
.module-back:hover{color:var(--text);border-color:var(--muted2)}
.module-back svg{width:14px;height:14px}

/* RESPONSIVE */
@media(max-width:800px){
  .hub-modules{grid-template-columns:1fr;max-width:360px}
  .hub-welcome h1{font-size:22px}
  .hub-topbar{padding:0 16px}
}
@media(min-width:801px) and (max-width:1000px){
  .hub-modules{grid-template-columns:repeat(2,1fr);max-width:560px}
}

/* ══════════════════════════════════════════════════
   MODULE SCREENS — Shared Styles
   ══════════════════════════════════════════════════ */

/* MODULE TOPBAR */
.mod-topbar{display:flex;align-items:center;justify-content:space-between;height:48px;border-bottom:1px solid var(--border);padding:0 24px;background:var(--surface);flex-shrink:0}
.mod-topbar-left{display:flex;align-items:center;gap:12px}
.mod-topbar-right{display:flex;align-items:center;gap:12px}
.mod-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;letter-spacing:.08em}
.mod-content{flex:1;padding:24px;overflow-y:auto;max-height:calc(100vh - 48px)}

#mod-financeiro, #mod-contratos{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}

/* TABS */
.fin-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:24px}
.fin-tab{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted2);background:none;border:none;border-bottom:2px solid transparent;padding:12px 20px;cursor:pointer;transition:all .2s}
.fin-tab:hover{color:var(--text)}
.fin-tab.active{color:var(--text);border-bottom-color:#FB0544}

/* PANELS */
.fin-panel{display:none}
.fin-panel.active{display:block}

/* STATS GRID */
.fin-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}
.fin-stat-card{background:var(--surface);border:1px solid var(--border2);border-radius:10px;padding:20px;display:flex;align-items:center;gap:16px}
.fin-stat-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.fin-stat-info{display:flex;flex-direction:column;gap:2px}
.fin-stat-value{font-family:'Syne',sans-serif;font-size:22px;font-weight:800}
.fin-stat-label{font-family:'DM Mono',monospace;font-size:9px;color:var(--muted2);letter-spacing:.1em;text-transform:uppercase}

/* TABLE */
.fin-recent h3,.fin-panel-header h3{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;margin-bottom:16px}
.fin-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.fin-table-wrap{overflow-x:auto}
.fin-table{width:100%;border-collapse:collapse;font-family:'DM Mono',monospace;font-size:12px}
.fin-table th{text-align:left;padding:10px 14px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted2);border-bottom:1px solid var(--border);font-weight:500}
.fin-table td{padding:10px 14px;border-bottom:1px solid var(--border2);color:var(--text)}
.fin-table tr:hover td{background:var(--surface)}
.fin-empty{text-align:center;color:var(--muted);padding:40px 16px !important;font-size:12px}

/* STATUS BADGES */
.fin-status{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:12px;white-space:nowrap}
.fin-status-pending,.fin-status-awaiting_risk_analysis{background:#d4a85318;color:#d4a853;border:1px solid #d4a85330}
.fin-status-received,.fin-status-confirmed,.fin-status-received_in_cash{background:#6cb87a18;color:#6cb87a;border:1px solid #6cb87a30}
.fin-status-overdue{background:#e06b5c18;color:#e06b5c;border:1px solid #e06b5c30}
.fin-status-refunded,.fin-status-refund_requested,.fin-status-chargeback_requested,.fin-status-chargeback_dispute{background:#c47fbf18;color:#c47fbf;border:1px solid #c47fbf30}

/* FORMS */
.fin-field{margin-bottom:16px}
.fin-label{display:block;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted2);margin-bottom:6px}
.fin-input{width:100%;background:var(--bg);border:1px solid var(--border2);border-radius:6px;color:var(--text);font-family:'DM Mono',monospace;font-size:12px;padding:10px 14px;outline:none;transition:border-color .2s;box-sizing:border-box}
.fin-input:focus{border-color:#FB0544}
.fin-select{background:var(--bg);border:1px solid var(--border2);border-radius:6px;color:var(--text);font-family:'DM Mono',monospace;font-size:12px;padding:10px 14px;outline:none;cursor:pointer;appearance:auto}

/* BUTTONS */
.fin-btn-primary{background:#FB0544;color:#fff;border:none;border-radius:6px;font-family:'Syne',sans-serif;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:10px 20px;cursor:pointer;transition:background .2s}
.fin-btn-primary:hover{background:#d9043a}
.fin-btn-secondary{background:transparent;color:var(--text);border:1px solid var(--border2);border-radius:6px;font-family:'DM Mono',monospace;font-size:11px;padding:10px 20px;cursor:pointer;transition:all .2s}
.fin-btn-secondary:hover{border-color:var(--muted2);color:var(--text)}
.fin-btn-small{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--border2);background:transparent;color:var(--muted2);border-radius:4px;cursor:pointer;transition:all .15s;text-decoration:none;display:inline-block}
.fin-btn-small:hover{color:var(--text);border-color:var(--muted2)}
.fin-btn-small.danger{color:#e06b5c;border-color:#e06b5c30}
.fin-btn-small.danger:hover{background:#e06b5c18}

/* FILTERS */
.fin-filters{display:flex;gap:12px;margin-bottom:20px}
.fin-filters .fin-select{min-width:180px}

/* CONFIG BOX */
.fin-config-box{max-width:500px;background:var(--surface);border:1px solid var(--border2);border-radius:12px;padding:32px}
.fin-config-box h3{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;margin-bottom:8px}
.fin-config-desc{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted2);margin-bottom:24px;line-height:1.6}
.fin-config-status{font-family:'DM Mono',monospace;font-size:11px;margin-top:16px;padding:10px 14px;border-radius:6px}
.fin-config-status.success{background:#6cb87a18;color:#6cb87a;border:1px solid #6cb87a30}
.fin-config-status.error{background:#e06b5c18;color:#e06b5c;border:1px solid #e06b5c30}
.fin-config-status.loading{background:#4fa3d118;color:#4fa3d1;border:1px solid #4fa3d130}

/* ══════════════════════════════════════════════════
   CONTRATOS MODULE
   ══════════════════════════════════════════════════ */

/* EDITOR LAYOUT */
.ctr-editor{display:grid;grid-template-columns:320px 1fr;gap:24px;min-height:calc(100vh - 160px)}
.ctr-editor-sidebar{background:var(--surface);border:1px solid var(--border2);border-radius:10px;padding:24px;overflow-y:auto;max-height:calc(100vh - 160px)}
.ctr-editor-sidebar h3{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;margin-bottom:20px}
.ctr-editor-main{display:flex;flex-direction:column;gap:16px}

.ctr-preview-header{display:flex;align-items:center;justify-content:space-between}
.ctr-preview-header h3{font-family:'Syne',sans-serif;font-size:14px;font-weight:700}
.ctr-preview-actions{display:flex;gap:8px}

.ctr-preview{background:var(--surface);border:1px solid var(--border2);border-radius:10px;padding:40px;min-height:400px;font-family:'DM Mono',monospace;font-size:13px;line-height:1.8;color:var(--text);overflow-y:auto;max-height:calc(100vh - 220px)}
.ctr-preview h2{font-family:'Syne',sans-serif;font-size:18px;font-weight:800;margin-bottom:8px}
.ctr-preview h3{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;margin-top:24px;margin-bottom:8px;color:#FB0544}
.ctr-preview p{margin-bottom:10px}
.ctr-preview ul{margin:8px 0 16px 20px}
.ctr-preview li{margin-bottom:4px}
.ctr-placeholder{text-align:center;color:var(--muted);padding:80px 20px;font-size:13px}

/* TEMPLATES GRID */
.ctr-templates-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ctr-template-card{background:var(--surface);border:1px solid var(--border2);border-radius:12px;padding:28px;cursor:pointer;transition:all .25s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.ctr-template-card:hover{border-color:#d4a853;transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,0,0,.25)}
.ctr-template-icon{font-size:36px;margin-bottom:4px}
.ctr-template-card h4{font-family:'Syne',sans-serif;font-size:14px;font-weight:700}
.ctr-template-card p{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted2);line-height:1.6}

/* ══════════════════════════════════════════════════
   MODAL GLOBAL
   ══════════════════════════════════════════════════ */
.mod-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.mod-modal-box{background:var(--surface);border:1px solid var(--border2);border-radius:12px;max-width:560px;width:100%;max-height:85vh;overflow-y:auto}
.mod-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}
.mod-modal-header h3{font-family:'Syne',sans-serif;font-size:16px;font-weight:700}
.mod-modal-close{background:none;border:none;color:var(--muted2);font-size:24px;cursor:pointer;padding:0 4px;line-height:1}
.mod-modal-close:hover{color:var(--text)}
.mod-modal-body{padding:24px}
.mod-modal-body p{margin-bottom:10px;font-family:'DM Mono',monospace;font-size:12px;line-height:1.6}
.mod-modal-body code{background:var(--bg);padding:2px 6px;border-radius:3px;font-size:11px}
.mod-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--border)}

/* ══════════════════════════════════════════════════
   RESPONSIVE MODULES
   ══════════════════════════════════════════════════ */
@media(max-width:900px){
  .fin-stats-grid{grid-template-columns:repeat(2,1fr)}
  .ctr-editor{grid-template-columns:1fr}
  .ctr-editor-sidebar{max-height:none}
  .ctr-templates-grid{grid-template-columns:1fr}
  .fin-filters{flex-wrap:wrap}
  .fin-filters .fin-select{min-width:140px}
}
@media(max-width:600px){
  .fin-stats-grid{grid-template-columns:1fr}
  .mod-topbar{padding:0 12px}
  .mod-content{padding:16px}
  .fin-table{font-size:11px}
  .fin-table th,.fin-table td{padding:8px 10px}
}
