/* ==========================================================================
   SGO MASTER - ARQUIVO CENTRAL DE ESTILOS (FUNDAÇÃO GLOBAL UNIFICADA)
   ========================================================================== */

/* ==========================================================================
   1. VARIÁVEIS GLOBAIS DE COR E TEMA
   ========================================================================== */
:root {
    /* 1. TEMA ORIGINAL (DARK) - PADRÃO SGO MASTER */
    --primary: #00eaff; 
    --primary-dim: #00eaff33;
    --bg: #050505; 
    --card-bg: #111; 
    --border: #333;  
    --text: #eee; 
    --text-muted: #888; 
    --success: #00e676; 
    --warning: #ffea00; 
    --danger: #ff1744; 
    --sidebar-width: 260px;
    
    /* Variáveis do Card de Atividade em Andamento (Aba Habitação) */
    --ativ-mid-bg: rgba(255, 170, 0, 0.12);
    --ativ-mid-border: rgba(255, 170, 0, 0.4);
    
    /* Complementos exclusivos do Dashboard (index.html) */
    --bg-body: #121212; 
    --bg-chart: transparent; 
    --text-primary: #e0e0e0;
    --text-secondary: #b0b0b0; 
    --color-link: #2196f3; 
    --color-link-active: #64b5f6;
    --input-bg: #282828; 
    --input-border: #444; 
    --btn-primary-bg: #2196f3; 
    --btn-primary-hover: #1e88e5;

    /* PADRÃO MATRIZ DE PLANEJAMENTO (planejamento.html) */
    --p-bg-deep: #010409; 
    --p-bg-table: #0d1117; 
    --p-bg-cell: #161b22; 
    --p-border: #30363d;
    --p-text: #a1aab5; 
    --p-text-bold: #e6edf3; 
    --p-accent: #238636; 
    --p-accent-blue: #58a6ff;
    --p-accent-purple: #9333ea; 
    --p-header: #161b22; 
    --p-header-text: #a1aab5;
    --p-level1-bg: #1e4173; 
    --p-level2-bg: #21262d; 
    --p-month-bg: #0d1117;
    --p-date-bg: #1c273c; 
    --p-date-text: #ffffff; 
    --p-config-bg: #161b22;
    --p-status-zero-txt: #8b949e;
}

/* 2. TEMA CLARO (LIGHT) */
[data-theme="light"] {
    --bg: #f5f5f5;
    --card-bg: #ffffff;
    --border: #ddd;
    --text: #333;
    --text-muted: #666;
    --bg-body: #f0f2f5;
    --text-primary: #111;
    --text-secondary: #444;
    --input-bg: #fff;
    --input-border: #ccc;
    
    /* Variáveis do Card de Atividade em Andamento (Claro) */
    --ativ-mid-bg: rgba(245, 158, 11, 0.15); 
    --ativ-mid-border: rgba(245, 158, 11, 0.5);
    
    --p-bg-deep: #f0f2f5; 
    --p-bg-table: #ffffff; 
    --p-bg-cell: #f8f9fa; 
    --p-border: #cbd5e1;
    --p-text: #475569; 
    --p-text-bold: #0f172a; 
    --p-header: #334155; 
    --p-header-text: #ffffff;
    --p-level1-bg: #1e3a8a; 
    --p-level2-bg: #e2e8f0; 
    --p-month-bg: #e2e8f0;
    --p-date-bg: #1e293b; 
    --p-date-text: #ffffff; 
    --p-config-bg: #ffffff;
    --p-status-zero-txt: #94a3b8;
}

/* 3. TEMA CINZA (GRAY / MUTED) */
[data-theme="gray"] {
    --primary: #4fd1c5;
    --primary-dim: #4fd1c533;
    --bg: #2d3748;
    --card-bg: #4a5568;
    --border: #718096;
    --text: #f7fafc;
    --text-muted: #e2e8f0;
    --bg-body: #2d3748;
    --text-primary: #f7fafc;
    --text-secondary: #e2e8f0;
    --input-bg: #2d3748;
    --input-border: #a0aec0;
    
    /* Variáveis do Card de Atividade em Andamento (Cinza) */
    --ativ-mid-bg: rgba(234, 179, 8, 0.15);
    --ativ-mid-border: rgba(234, 179, 8, 0.5);
    
    --p-bg-deep: #2d3748; 
    --p-bg-table: #4a5568; 
    --p-bg-cell: #2d3748; 
    --p-border: #718096;
    --p-text: #e2e8f0; 
    --p-text-bold: #f7fafc; 
    --p-accent-blue: #63b3ed;
    --p-header: #1a202c; 
    --p-header-text: #e2e8f0;
    --p-level1-bg: #2c5282; 
    --p-level2-bg: #718096; 
    --p-month-bg: #2d3748;
    --p-date-bg: #1a202c; 
    --p-date-text: #e2e8f0; 
    --p-config-bg: #4a5568;
}

/* 4. TEMA WINDOWS PROFISSIONAL (CORPORATE EXCEL STYLE) */
[data-theme="windows"] {
    --primary: #0078d4;
    --primary-dim: #0078d422;
    --bg: #f3f2f1;
    --card-bg: #ffffff;
    --border: #e1dfdd;
    --text: #323130;
    --text-muted: #605e5c;
    --bg-body: #faf9f8;
    --text-primary: #323130;
    --text-secondary: #605e5c;
    --input-bg: #ffffff;
    --input-border: #8a8886;
    --success: #107c10;
    --danger: #d13438;
    --warning: #ffb900;
    
    /* Variáveis do Card de Atividade em Andamento (Windows) */
    --ativ-mid-bg: rgba(255, 185, 0, 0.14);
    --ativ-mid-border: #ffb900;
    
    --p-bg-deep: #f3f2f1; 
    --p-bg-table: #ffffff; 
    --p-bg-cell: #ffffff; 
    --p-border: #d2d0ce;
    --p-text: #323130; 
    --p-text-bold: #201f1e; 
    --p-accent-blue: #0078d4;
    --p-header: #005a9e; 
    --p-header-text: #ffffff;
    --p-level1-bg: #eff6fc; 
    --p-level2-bg: #f3f2f1; 
    --p-month-bg: #faf9f8;
    --p-date-bg: #0078d4; 
    --p-date-text: #ffffff; 
    --p-config-bg: #ffffff;
}

/* ==========================================================================
   2. ISOLAMENTO DE BODYS E BARRAS DE ROLAGEM
   ========================================================================== */
body.locked .apto-input, body.locked .evol-input, body.locked .check-rapido { pointer-events: none; opacity: 0.5; filter: grayscale(1); }
body.viewer-mode .btn-admin-only { display: none !important; }

body.sgo-master ::-webkit-scrollbar, body.sgo-dashboard ::-webkit-scrollbar { width: 8px; height: 8px; } 
body.sgo-master ::-webkit-scrollbar-track, body.sgo-dashboard ::-webkit-scrollbar-track { background: var(--bg); } 
body.sgo-master ::-webkit-scrollbar-thumb, body.sgo-dashboard ::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; } 
body.sgo-master ::-webkit-scrollbar-thumb:hover, body.sgo-dashboard ::-webkit-scrollbar-thumb:hover { background: var(--primary); }

body.sgo-planejamento ::-webkit-scrollbar { width: 10px; height: 10px; }
body.sgo-planejamento ::-webkit-scrollbar-track { background: var(--p-bg-deep); }
body.sgo-planejamento ::-webkit-scrollbar-thumb { background: var(--p-border); border-radius: 5px; }

body.sgo-master { background: var(--bg); color: var(--text); font-family: 'Segoe UI', Roboto, sans-serif; margin: 0; display: flex; overflow-x: hidden; transition: background-color 0.3s, color 0.3s; }
body.sgo-dashboard { background-color: var(--bg-body); color: var(--text-primary); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; margin: 0; overflow-x: hidden; display: flex; transition: background-color 0.3s, color 0.3s; }
body.sgo-planejamento { background-color: var(--p-bg-deep); color: var(--p-text); font-family: Arial, sans-serif; margin: 0; padding: 10px; overflow: hidden; transition: background-color 0.3s; }
body.sgo-planejamento *, body.sgo-planejamento *::before, body.sgo-planejamento *::after { box-sizing: border-box; }

/* ==========================================================================
   3. MENU LATERAL E BARRA SUPERIOR
   ========================================================================== */
.sidebar { width: var(--sidebar-width); height: 100vh; position: fixed; left: 0; top: 0; background: var(--bg); border-right: 1px solid var(--border); display: flex; flex-direction: column; z-index: 3000; overflow-y: auto; transition: transform 0.3s ease, background-color 0.3s;} 
.sidebar.collapsed { transform: translateX(-100%); }
.sidebar-logo { padding: 20px; font-weight: 800; color: var(--primary); font-size: 20px; letter-spacing: 1px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--border); margin-bottom: 10px; } 
.side-section { font-size: 10px; color: var(--text-muted); font-weight: 800; letter-spacing: 2px; padding: 20px 20px 10px; text-transform: uppercase; } 
.side-btn { background: transparent; color: var(--text-muted); border: none; width: 100%; text-align: left; padding: 12px 20px; font-size: 13px; font-weight: 600; cursor: pointer; transition: 0.2s; display: flex; justify-content: space-between; align-items: center; border-left: 3px solid transparent; } 
.side-btn:hover { background: var(--card-bg); color: var(--text); } 
.side-btn.active { background: var(--primary-dim); color: var(--text); border-left-color: var(--primary); } 
.side-btn.sub-btn { padding-left: 35px; font-size: 12px; font-weight: 500; } 
.side-perc { font-size: 10px; font-weight: bold; color: var(--primary); background: var(--bg); padding: 2px 6px; border-radius: 4px; border: 1px solid var(--border); min-width: 35px; text-align: center; }

.main-wrapper { margin-left: var(--sidebar-width); flex: 1; display: flex; flex-direction: column; min-height: 100vh; transition: margin-left 0.3s ease, max-width 0.3s ease; max-width: calc(100vw - var(--sidebar-width)); } 
.main-wrapper.expanded { margin-left: 0; max-width: 100vw; }

.top-bar { background: var(--card-bg); backdrop-filter: blur(10px); padding: 10px 20px; border-bottom: 1px solid var(--border); display: flex; align-items: center; position: sticky; top: 0; z-index: 2000; min-height: 65px; gap: 15px; flex-wrap: wrap;} 
.top-title { font-size: 14px; color: var(--text-muted); font-weight: bold; letter-spacing: 1px; text-transform: uppercase; display: flex; align-items: center; gap: 10px; }
.global-status { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-left: auto; } 
.btn-toggle-menu { background: transparent; border: 1px solid var(--border); color: var(--primary); font-size: 18px; padding: 4px 10px; border-radius: 4px; cursor: pointer; transition: 0.2s; display: flex; align-items: center; justify-content: center; height: 35px;} 
.btn-toggle-menu:hover { background: var(--card-bg); border-color: var(--primary);}

@media (max-width: 768px) { 
    body.sgo-master .sidebar, body.sgo-dashboard .sidebar { transform: translateX(-100%); }  
    body.sgo-master .sidebar.show-mobile, body.sgo-dashboard .sidebar.show-mobile { transform: translateX(0); box-shadow: 5px 0 15px rgba(0,0,0,0.8); } 
    body.sgo-master .main-wrapper, body.sgo-dashboard .main-wrapper { margin-left: 0; max-width: 100vw; } 
    body.sgo-master .top-title span, body.sgo-dashboard .top-title span { display: none; } 
    body.sgo-master .global-status { margin-left: 0; width: 100%; justify-content: flex-start;} 
    body.sgo-dashboard .top-bar { padding: 10px 15px; }
}

/* ==========================================================================
   4. MODULO DE PROGRAMAÇÃO OPERACIONAL (FUSÃO CIRÚRGICA)
   ========================================================================== */
.prog-container {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 24px;
    margin-top: 15px;
}
.table-lookahead {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px; 
    table-layout: fixed;
}
.table-lookahead th {
    background-color: var(--bg) !important;
    color: var(--primary) !important;
    font-weight: bold;
    text-align: center;
    padding: 12px 6px; 
    border: 1px solid var(--border) !important;
    font-size: 11px;
    text-transform: uppercase;
    vertical-align: middle;
}
.table-lookahead td {
    padding: 10px 6px; 
    border: 1px solid var(--border) !important;
    vertical-align: top; 
    color: var(--text);
    white-space: normal;
    word-break: break-word;
}
.table-lookahead td.td-meta-semana {
    background: var(--primary-dim) !important;
    color: var(--primary) !important;
    font-weight: bold;
    text-align: center;
}
.table-lookahead tr:nth-child(even) {
    background-color: var(--bg);
}
.text-atraso { color: var(--danger) !important; font-weight: bold; }
.form-control-prog {
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    color: var(--text);
    padding: 6px;
    border-radius: 4px;
    outline: none;
    font-size: 12px;
}
.form-control-prog:focus { border-color: var(--primary); }

/* ==========================================================================
   5. ELEMENTOS DO SGO MASTER (VALOR AGREGADO)
   ========================================================================== */
.time-machine { display: flex; align-items: center; gap: 10px; background: var(--card-bg); padding: 5px 10px; border-radius: 6px; border: 1px solid var(--border); } 
.time-machine select { background: var(--bg); color: var(--text); border: 1px solid var(--border); padding: 5px 10px; border-radius: 4px; font-size: 12px; font-weight: bold; outline: none; cursor: pointer;} 
.time-machine select:focus { border-color: var(--primary); } 
.btn-publish { background: var(--success); color: #000; border: 1px solid var(--success); padding: 6px 15px; font-size: 11px; font-weight: bold; cursor: pointer; border-radius: 4px; display: flex; align-items: center; gap: 8px; text-transform: uppercase; transition: all 0.2s; height: 32px; } 

.content-section { display: none; padding: 25px 30px; animation: fadeIn 0.4s ease; padding-bottom: 80px;} 
.content-section.active { display: block; } 
@style @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.dash-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 30px; } 
.kpi-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 12px; padding: 25px; position: relative; overflow: hidden; } 
.kpi-card::before { content:''; position: absolute; top:0; left:0; width: 4px; height: 100%; background: var(--primary); } 
.kpi-card.money::before { background: var(--success); } .kpi-card.alert::before { background: var(--warning); } 
.kpi-title { font-size: 11px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; font-weight: bold; } 
.kpi-value { font-size: 28px; font-weight: 700; color: var(--text); letter-spacing: -1px; }

.dashboard-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } 
.chart-main { grid-column: span 2; background: var(--card-bg); border: 1px solid var(--border); border-radius: 12px; padding: 30px; display: flex; align-items: center; justify-content: center; position: relative; } 
.chart-sectors { grid-column: span 2; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 15px; } 
.chart-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 12px; padding: 15px; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 200px; }

.gauge-svg { width: 200px; height: 120px; }  
.gauge-bg { fill: none; stroke: var(--border); stroke-width: 12; stroke-linecap: round; } 
.gauge-fill { fill: none; stroke: var(--primary); stroke-width: 12; stroke-linecap: round; transition: stroke-dasharray 1s ease; } 
.gauge-text { fill: var(--text); font-family: sans-serif; font-weight: bold; font-size: 22px; text-anchor: middle; } 
.gauge-label { fill: var(--text-muted); font-size: 11px; text-anchor: middle; text-transform: uppercase; font-weight: 600; letter-spacing: 1px; }

.aba-header { background: var(--card-bg); padding: 15px 20px; border-radius: 8px; margin-bottom: 15px; border: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 20px; } 
.aba-header h3 { margin: 0; font-size: 16px; color: var(--text); letter-spacing: 1px; }

.planilha-container { background: var(--card-bg); border-radius: 8px; border: 1px solid var(--border); overflow-x: auto; } 
.planilha-container table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 1000px; } 
.planilha-container th { background: var(--bg); color: var(--primary); padding: 10px 15px; border-bottom: 1px solid var(--border); text-align: left; text-transform: uppercase; font-size: 11px; letter-spacing: 1px; position: sticky; top: 0; z-index: 10; } 
.planilha-container td { border-bottom: 1px solid var(--border); padding: 8px 15px; color: var(--text); vertical-align: middle; background: transparent; } 

.row-nivel-1 { background: var(--primary-dim) !important; box-shadow: inset 4px 0 0 var(--primary); } 
.row-nivel-1 td { border-bottom: 1px solid var(--primary-dim); padding-top: 16px; padding-bottom: 16px; font-size: 14px; color: var(--text); font-weight: 800; letter-spacing: 0.5px; } 
.row-nivel-2 { background: rgba(128, 128, 128, 0.1) !important; box-shadow: inset 4px 0 0 #555; } 
.row-nivel-2 td { font-weight: 700; color: var(--text); padding-top: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }

.evol-input { background: var(--bg); border: 1px solid var(--border); color: var(--text); padding: 6px; width: 60px; text-align: center; border-radius: 4px; font-weight: bold; cursor: pointer; } 
.evol-input::-webkit-outer-spin-button, .evol-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } 
.evol-input[type=number] { -moz-appearance: textfield; } 
.evol-input:focus { border-color: var(--primary); outline: none; background: var(--card-bg); }
.evol-locked { background: transparent; border: none; color: var(--text-muted); font-weight: bold; width: 60px; text-align: center; cursor: default; } 
.evol-locked.has-val { color: var(--primary); }

.apto-input { background: var(--bg); border: 1px solid var(--border); height: 38px; width: 100%; border-radius: 2px; font-size: 12px; color: var(--text-muted); text-align: center; transition: all 0.2s; cursor: pointer; border: none; } 
.apto-input::-webkit-outer-spin-button, .apto-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } 
.apto-input[type=number] { -moz-appearance: textfield; } 
.apto-input:focus { outline: 1px solid var(--primary); background: var(--card-bg); color: var(--text); } 
.apto-input.has-value { color: var(--text); font-weight: bold; }
.input-done { background: var(--success) !important; color: #000 !important; border-color: var(--success) !important; } 
.input-mid { background: var(--warning) !important; color: #000 !important; border-color: var(--warning) !important; }

.grid-blocos { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 15px; } 
.bloco-card { background: var(--bg); border: 1px solid var(--border); border-radius: 8px; overflow: hidden; } 
.bloco-header { background: var(--card-bg); padding: 10px 15px; display: flex; justify-content: space-between; font-size: 12px; font-weight: bold; color: var(--text); border-bottom: 1px solid var(--border); align-items: center;} 
.andar-row { display: grid; grid-template-columns: repeat(var(--cols, 4), 1fr); gap: 2px; padding: 8px; background: var(--bg); }

/* BLINDAGEM MULTI-CLASSE PARA OS CARDS DE ATIVIDADES EM ANDAMENTO */
.ativ-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 6px; padding: 10px 12px; cursor: pointer; display: flex; flex-direction: column; align-items: flex-start; transition: all 0.2s; min-height: 48px; gap: 8px; position: relative; } 
.ativ-card:hover { border-color: var(--text-muted); } 

.ativ-card.status-mid, 
.ativ-card.input-mid, 
.ativ-card.em-andamento, 
.ativ-card.has-val, 
.ativ-card.has-value { 
    background: var(--ativ-mid-bg) !important; 
    border-color: var(--ativ-mid-border) !important; 
}
.ativ-card.status-mid .ativ-card-cod,
.ativ-card.input-mid .ativ-card-cod,
.ativ-card.em-andamento .ativ-card-cod,
.ativ-card.has-val .ativ-card-cod,
.ativ-card.has-value .ativ-card-cod { 
    border-color: var(--ativ-mid-border); 
}

.ativ-card.active { background: var(--primary-dim) !important; border-color: var(--primary) !important; box-shadow: 0 0 10px var(--primary-dim); }
.ativ-card-top { position: absolute; top: 8px; left: 10px; right: 10px; display: flex; justify-content: space-between; align-items: center; gap: 8px; } 
.ativ-card-cod { font-size: 10px; color: var(--text-muted); font-weight: bold; background: var(--bg); padding: 2px 5px; border-radius: 4px; border: 1px solid var(--border); white-space: nowrap; } 
.ativ-card-perc { font-size: 10px; color: var(--text-muted); font-weight: bold; letter-spacing: 0.5px; } 
.ativ-card-nome { font-size: 11px; color: var(--text); font-weight: 600; flex: 1; line-height: 1.3; margin-top: 16px; width: 100%; }

/* ==========================================================================
   6. ELEMENTOS DO DASHBOARD GLOBAL & PLANEJAMENTO EXCEL
   ========================================================================== */
.login-container { display: flex; justify-content: center; align-items: center; height: 100vh; width: 100vw; background: var(--bg); }
.login-card { background-color: var(--card-bg); border: 1px solid var(--border); border-radius: 8px; padding: 2rem; width: 100%; max-width: 400px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); }
.dashboard-container { display: none; width: 100%; }
.main-content-wrapper { padding: 20px; }
.card-custom { background-color: var(--card-bg); border: 1px solid var(--border); border-radius: 8px; margin-bottom: 20px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }
.card-body-chart { background-color: var(--bg-chart); }
.chart-container { position: relative; height: 400px; }
.form-control, .form-select { background-color: var(--input-bg); color: var(--text-primary); border: 1px solid var(--input-border); }
.form-control:focus, .form-select:focus { background-color: var(--input-bg); color: var(--text-primary); border-color: var(--color-link); box-shadow: 0 0 0 0.25rem rgba(33, 150, 243, 0.25); }

.table-custom { color: var(--text-secondary); }
.table-custom thead th { background-color: var(--card-bg); color: var(--text-primary); border-color: var(--border); }
.table-custom tbody tr { border-color: var(--border); }
.table-responsive { max-height: 500px; overflow-y: auto; }

#loadingScreen { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--p-bg-deep); z-index: 9999; display: flex; flex-direction: column; justify-content: center; align-items: center; color: var(--p-accent-blue); font-family: 'Consolas', monospace; font-size: 20px; font-weight: bold; letter-spacing: 2px; }
.spinner { width: 50px; height: 50px; border: 5px solid var(--p-border); border-top-color: var(--p-accent-blue); border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 20px; }

#sidebarMenu { position: fixed; top: 0; left: -320px; width: 300px; height: 100%; background: var(--p-bg-table); border-right: 2px solid var(--p-accent-blue); z-index: 3000; padding: 20px; transition: left 0.3s ease; box-shadow: 5px 0 15px rgba(0,0,0,0.5); overflow-y: auto; display: flex; flex-direction: column; gap: 8px; }
#sidebarMenu.open { left: 0; }
.sidebar-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--p-border); padding-bottom: 10px; margin-bottom: 15px; }
.sidebar-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 2999; display: none; opacity: 0; transition: opacity 0.3s; backdrop-filter: blur(2px); }
.sidebar-overlay.show { display: block; opacity: 1; }

.controls { margin-bottom: 10px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; background: var(--p-bg-table); padding: 10px; border-radius: 8px; border: 1px solid var(--p-border); }
button.action-btn { background-color: var(--p-bg-cell); color: var(--p-text-bold); border: 1px solid var(--p-border); padding: 8px 12px; border-radius: 6px; cursor: pointer; font-size: 11px; font-weight: bold; transition: 0.2s; display: flex; align-items: center; gap: 5px; }
button.action-btn:hover { background-color: var(--p-border); border-color: var(--p-accent-blue); }

.excel-viewport { width: 100%; height: calc(100vh - 85px); overflow: auto; border: 1px solid var(--p-border); background-color: var(--p-bg-table); border-radius: 8px; }
body.sgo-planejamento table { border-collapse: collapse; table-layout: fixed; width: max-content; }

#monthRow th { background-color: var(--p-month-bg); color: var(--p-accent-blue); font-size: 13px; font-weight: 900; text-transform: uppercase; letter-spacing: 2px; border: 1px solid var(--p-border); border-bottom: 3px solid var(--p-accent-blue) !important; position: sticky; top: 0; z-index: 16; height: 35px; vertical-align: middle; }
#headerRow th { background-color: var(--p-header); color: var(--p-header-text); font-size: 11px; font-weight: bold; border: 1px solid var(--p-border); position: sticky; top: 35px; z-index: 10; height: 110px; vertical-align: bottom; padding-bottom: 12px; text-align: center; }
#headerRow th.w-date { background-color: var(--p-date-bg) !important; border-bottom: 3px solid var(--p-accent-blue) !important; color: var(--p-date-text); }

.rotated-text { transform: rotate(-90deg); display: inline-block; width: 25px; text-align: left; white-space: nowrap; margin-bottom: 15px; font-size: 14px; font-weight: 900; font-family: 'Consolas', monospace; letter-spacing: 1.5px; }

body.sgo-planejamento td { border: 1px solid var(--p-border); padding: 8px 10px; background-color: var(--p-bg-table); height: 35px; font-size: 12px; color: var(--p-text-bold); text-align: center; vertical-align: middle; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.sgo-planejamento .w-desc { text-align: left; white-space: normal; }

body.sgo-planejamento tbody tr:hover td { background-color: rgba(88, 166, 255, 0.1) !important; cursor: default; }
body.sgo-planejamento tbody tr.level-1 td { background-color: var(--p-level1-bg) !important; border-top: 2px solid var(--p-accent-blue) !important; color: #fff; font-weight: bold; }
body.sgo-planejamento tbody tr.level-2 td { background-color: var(--p-level2-bg) !important; font-weight: bold; }

.w-eap { width: 80px; } .w-ip { width: 50px; } .w-desc { width: 400px; } .w-valor { width: 105px; text-align: right; } .w-unid { width: 50px; } .w-qtd { width: 85px; } .w-soma { width: 80px; } 
.w-date { width: 65px; }
.sticky-col { position: sticky !important; z-index: 5; }