/* =============================================
   Banca Diária — Global Stylesheet v2.4.0
   ============================================= */
:root {
  --bg:        #0a0c0f;
  --bg2:       #111318;
  --bg3:       #181c22;
  --border:    #232830;
  --border2:   #2e3540;
  --text:      #e8ecf0;
  --text2:     #8a94a6;
  --text3:     #555f6e;
  --accent:    #f0b429;
  --accent2:   #d99a1b;
  --green:     #2dd4aa;
  --green2:    #1aac88;
  --red:       #f05c5c;
  --red2:      #c93f3f;
  --blue:      #5b8af0;
  --radius:    8px;
  --radius2:   14px;
  --shadow:    0 4px 24px rgba(0,0,0,.5);
  --font-main: 'DM Sans', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --font-disp: 'Bebas Neue', sans-serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; }
body { font-family: var(--font-main); background: var(--bg); color: var(--text); min-height: 100vh; line-height: 1.5; }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--bg2); }
::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }
h1,h2,h3,h4 { line-height: 1.2; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

/* LOGIN */
.login-page { display:flex; align-items:center; justify-content:center; min-height:100vh; position:relative; overflow:hidden; }
.login-bg { position:fixed; inset:0; z-index:0; background:var(--bg); }
.grid-overlay { position:absolute; inset:0; background-image: linear-gradient(rgba(240,180,41,.04) 1px,transparent 1px), linear-gradient(90deg,rgba(240,180,41,.04) 1px,transparent 1px); background-size:60px 60px; }
.glow-orb { position:absolute; border-radius:50%; filter:blur(120px); opacity:.18; }
.orb1 { width:500px; height:500px; top:-100px; left:-100px; background:var(--accent); }
.orb2 { width:400px; height:400px; bottom:-80px; right:-80px; background:var(--blue); }
.login-container { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:28px; padding:24px; width:100%; max-width:420px; }
.login-brand { text-align:center; }
.brand-icon { font-size:2.8rem; margin-bottom:8px; }
.brand-name { font-family:var(--font-disp); font-size:3.2rem; letter-spacing:4px; color:var(--accent); text-shadow:0 0 40px rgba(240,180,41,.4); }
.brand-tagline { color:var(--text2); font-size:.88rem; letter-spacing:2px; text-transform:uppercase; margin-top:4px; }
.version-badge { display:inline-block; margin-top:10px; font-family:var(--font-mono); font-size:.72rem; background:var(--bg3); border:1px solid var(--border2); color:var(--text3); padding:2px 10px; border-radius:20px; }
.login-card { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius2); padding:32px; width:100%; box-shadow:var(--shadow); }
.login-card h2 { font-size:1.1rem; font-weight:600; margin-bottom:22px; }
.login-footer { margin-top:18px; font-size:.8rem; color:var(--text3); text-align:center; }

/* FORMS */
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:.8rem; font-weight:500; color:var(--text2); margin-bottom:6px; letter-spacing:.5px; text-transform:uppercase; }
.form-group input, .form-group select, .form-group textarea { width:100%; background:var(--bg3); border:1px solid var(--border2); border-radius:var(--radius); color:var(--text); font-family:var(--font-main); font-size:.95rem; padding:10px 14px; outline:none; transition:border .2s; }
.form-group input:focus, .form-group select:focus { border-color:var(--accent); }
.form-group select option { background:var(--bg3); }

/* BUTTONS */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--font-main); font-size:.9rem; font-weight:600; padding:10px 20px; border-radius:var(--radius); border:none; cursor:pointer; transition:all .18s; text-decoration:none; }
.btn-full { width:100%; }
.btn-primary { background:var(--accent); color:#0a0c0f; }
.btn-primary:hover { background:var(--accent2); transform:translateY(-1px); }
.btn-secondary { background:var(--bg3); color:var(--text); border:1px solid var(--border2); }
.btn-secondary:hover { border-color:var(--accent); color:var(--accent); }
.btn-danger { background:var(--red); color:#fff; }
.btn-danger:hover { background:var(--red2); }
.btn-success { background:var(--green); color:#0a0c0f; }
.btn-success:hover { background:var(--green2); }
.btn-sm { padding:6px 14px; font-size:.82rem; }

/* ALERTS */
.alert { padding:10px 14px; border-radius:var(--radius); font-size:.88rem; margin-bottom:14px; }
.alert-error { background:rgba(240,92,92,.12); border:1px solid rgba(240,92,92,.3); color:var(--red); }
.alert-success { background:rgba(45,212,170,.1); border:1px solid rgba(45,212,170,.25); color:var(--green); }
.alert-info { background:rgba(91,138,240,.1); border:1px solid rgba(91,138,240,.25); color:var(--blue); }
.alert-warning { background:rgba(240,180,41,.1); border:1px solid rgba(240,180,41,.25); color:var(--accent); }
.hidden { display:none !important; }

/* APP LAYOUT */
.app-layout { display:grid; grid-template-columns:240px 1fr; min-height:100vh; }
.sidebar { background:var(--bg2); border-right:1px solid var(--border); display:flex; flex-direction:column; position:sticky; top:0; height:100vh; overflow-y:auto; }
.sidebar-header { padding:24px 20px 16px; border-bottom:1px solid var(--border); }
.sidebar-brand { font-family:var(--font-disp); font-size:1.8rem; letter-spacing:3px; color:var(--accent); }
.sidebar-version { font-size:.68rem; font-family:var(--font-mono); color:var(--text3); }
.sidebar-user { padding:14px 20px; border-bottom:1px solid var(--border); font-size:.82rem; color:var(--text2); }
.sidebar-user strong { color:var(--text); display:block; }
.sidebar-nav { padding:12px 0; flex:1; }
.nav-section { padding:8px 20px 4px; font-size:.68rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--text3); }
.nav-item { display:flex; align-items:center; gap:10px; padding:10px 20px; font-size:.9rem; color:var(--text2); cursor:pointer; transition:all .15s; border-left:3px solid transparent; text-decoration:none; }
.nav-item:hover { color:var(--text); background:rgba(255,255,255,.03); text-decoration:none; }
.nav-item.active { color:var(--accent); border-left-color:var(--accent); background:rgba(240,180,41,.06); }
.nav-icon { font-size:1rem; }
.sidebar-footer { padding:16px 20px; border-top:1px solid var(--border); }
.main-content { padding:32px; overflow-y:auto; }
.page-header { margin-bottom:28px; }
.page-title { font-family:var(--font-disp); font-size:2.2rem; letter-spacing:2px; color:var(--text); }
.page-subtitle { color:var(--text2); font-size:.9rem; margin-top:4px; }

/* CARDS */
.card { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius2); padding:24px; }
.card-title { font-size:.8rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--text3); margin-bottom:10px; }
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin-bottom:28px; }
.stat-card { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius2); padding:20px; position:relative; overflow:hidden; }
.stat-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; }
.stat-card.positive::before { background:var(--green); }
.stat-card.negative::before { background:var(--red); }
.stat-card.neutral::before { background:var(--accent); }
.stat-card.blue::before { background:var(--blue); }
.stat-label { font-size:.75rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--text3); margin-bottom:8px; }
.stat-value { font-family:var(--font-mono); font-size:1.6rem; font-weight:600; }
.stat-value.positive { color:var(--green); }
.stat-value.negative { color:var(--red); }
.stat-value.neutral { color:var(--accent); }
.stat-value.blue { color:var(--blue); }
.stat-sub { font-size:.78rem; color:var(--text3); margin-top:4px; }

/* TABLES */
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:.88rem; }
thead th { text-align:left; padding:10px 14px; font-size:.72rem; text-transform:uppercase; letter-spacing:1.2px; color:var(--text3); border-bottom:1px solid var(--border2); }
tbody td { padding:12px 14px; border-bottom:1px solid var(--border); }
tbody tr:last-child td { border-bottom:none; }
tbody tr:hover td { background:rgba(255,255,255,.02); }
.td-mono { font-family:var(--font-mono); }
.td-positive { color:var(--green); font-family:var(--font-mono); font-weight:600; }
.td-negative { color:var(--red); font-family:var(--font-mono); font-weight:600; }
.td-neutral { color:var(--text2); }

/* BADGES */
.badge { display:inline-block; padding:2px 10px; border-radius:20px; font-size:.72rem; font-weight:600; letter-spacing:.5px; }
.badge-green { background:rgba(45,212,170,.15); color:var(--green); }
.badge-red { background:rgba(240,92,92,.15); color:var(--red); }
.badge-yellow { background:rgba(240,180,41,.15); color:var(--accent); }
.badge-blue { background:rgba(91,138,240,.15); color:var(--blue); }

/* MODAL */
.modal-backdrop { position:fixed; inset:0; z-index:100; background:rgba(0,0,0,.7); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; padding:20px; }
.modal-backdrop.hidden { display:none; }
.modal { background:var(--bg2); border:1px solid var(--border2); border-radius:var(--radius2); padding:28px; width:100%; max-width:480px; box-shadow:var(--shadow); animation:modalIn .18s ease; }
@keyframes modalIn { from{transform:scale(.95);opacity:0} to{transform:scale(1);opacity:1} }
.modal-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.modal-title { font-size:1.1rem; font-weight:600; }
.modal-close { background:none; border:none; color:var(--text3); cursor:pointer; font-size:1.3rem; padding:4px; }
.modal-close:hover { color:var(--text); }
.modal-footer { display:flex; gap:10px; justify-content:flex-end; margin-top:22px; }

/* DAY BANNER */
.day-banner { border-radius:var(--radius2); padding:18px 24px; display:flex; align-items:center; gap:16px; margin-bottom:24px; }
.day-banner.open { background:rgba(45,212,170,.08); border:1px solid rgba(45,212,170,.2); }
.day-banner.closed { background:rgba(240,180,41,.06); border:1px solid rgba(240,180,41,.15); }
.day-banner.noday { background:var(--bg3); border:1px solid var(--border); }
.day-banner-icon { font-size:1.8rem; }
.day-banner-info { flex:1; }
.day-banner-title { font-weight:600; }
.day-banner-sub { font-size:.82rem; color:var(--text2); margin-top:2px; }

/* CHART */
.chart-container { position:relative; height:280px; }

/* HELPERS */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
.flex { display:flex; }
.flex-between { display:flex; justify-content:space-between; align-items:center; }
.flex-end { display:flex; justify-content:flex-end; gap:10px; }
.gap-2{gap:8px} .gap-3{gap:12px} .gap-4{gap:16px}
.mt-1{margin-top:4px} .mt-2{margin-top:8px} .mt-3{margin-top:12px} .mt-4{margin-top:16px}
.mb-4{margin-bottom:16px} .mb-6{margin-bottom:24px}
.text-right{text-align:right} .text-center{text-align:center}
.mono{font-family:var(--font-mono)}
.text-green{color:var(--green)} .text-red{color:var(--red)} .text-accent{color:var(--accent)} .text-muted{color:var(--text2)}
.text-xs{font-size:.78rem} .text-sm{font-size:.88rem} .fw-600{font-weight:600}
.divider{height:1px;background:var(--border);margin:20px 0}
.menu-toggle { display:none; background:none; border:1px solid var(--border2); color:var(--text); padding:8px 12px; border-radius:var(--radius); cursor:pointer; font-size:1.1rem; }

/* RESPONSIVE */
@media (max-width:768px) {
  .app-layout { grid-template-columns:1fr; }
  .sidebar { position:fixed; z-index:50; transform:translateX(-100%); transition:transform .25s; width:240px; }
  .sidebar.open { transform:translateX(0); }
  .main-content { padding:16px; }
  .grid-2, .grid-3 { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; }
  .stat-card { padding:14px 12px; }
  .stat-value { font-size:1.1rem; word-break:break-word; }
  .stat-label { font-size:.68rem; letter-spacing:1px; margin-bottom:5px; }
  .stat-sub { font-size:.7rem; }
  .page-header { margin-bottom:16px; }
  .page-title { font-size:1.6rem; }
  .page-header.flex-between { flex-direction:column; align-items:flex-start; gap:10px; }
  .card { padding:16px; }
  .day-banner { padding:14px 16px; gap:10px; flex-wrap:wrap; }
  .day-banner .btn { width:100%; text-align:center; }
  table { font-size:.78rem; }
  thead th { padding:8px 10px; font-size:.65rem; }
  tbody td { padding:10px; }
  .modal { padding:20px; }
  .chart-container { height:200px; }
  .menu-toggle { display:inline-flex; margin-bottom:12px; }
}
@media (max-width:380px) {
  .stats-grid { grid-template-columns:1fr; }
  .stat-value { font-size:1rem; }
}
