[data-theme=dark]{--bg:#0f1117;--surface:#1a1d27;--surface2:#222632;--border:#2d3140;--text:#e4e6f0;--text-muted:#8b8fa3;--accent:#6366f1;--accent-light:#818cf8;--green:#22c55e;--blue:#3b82f6;--orange:#f59e0b;--red:#ef4444;--purple:#a855f7;--previsto-color:#818cf8;--realizado-color:#22c55e;--sem-dados:#3a3e4c;--hover-bg:#6366f10a;--today-bg:#6366f114;--previsto-header-bg:#6366f10f;--realizado-header-bg:#22c55e0f;--variacao-header-bg:#f59e0b0a}[data-theme=light]{--bg:#f5f6fa;--surface:#fff;--surface2:#f0f1f5;--border:#e2e4ea;--text:#1a1d27;--text-muted:#6b7084;--accent:#6366f1;--accent-light:#818cf8;--green:#16a34a;--blue:#2563eb;--orange:#d97706;--red:#dc2626;--purple:#9333ea;--previsto-color:#6366f1;--realizado-color:#16a34a;--sem-dados:#c4c7d0;--hover-bg:#6366f10a;--today-bg:#6366f10f;--previsto-header-bg:#6366f10d;--realizado-header-bg:#16a34a0d;--variacao-header-bg:#d977060a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;transition:background .25s,color .25s}#root{text-align:left;width:100%;max-width:100%;min-height:100vh;margin:0}.app{width:100%;margin:0 auto;padding:16px}.login-container{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-form{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;width:360px;padding:40px 32px}.login-icon{margin-bottom:12px;font-size:48px}.login-form h1{color:var(--text);margin-bottom:4px;font-size:24px;font-weight:600}.login-subtitle{color:var(--text-muted);margin-bottom:24px;font-size:14px}.login-form input{border:1px solid var(--border);background:var(--surface2);width:100%;color:var(--text);border-radius:8px;outline:none;margin-bottom:12px;padding:10px 14px;font-size:14px;transition:border-color .15s}.login-form input:focus{border-color:var(--accent)}.login-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:10px;font-size:14px;font-weight:600;transition:opacity .15s}.login-form button:hover{opacity:.9}.login-form button:disabled{opacity:.5;cursor:not-allowed}.login-error{color:var(--red);margin-bottom:12px;font-size:13px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.page-header h1{color:var(--text);align-items:center;gap:10px;font-size:20px;font-weight:600;display:flex}.page-header h1 .icon{background:linear-gradient(135deg, var(--accent), var(--purple));border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.page-header .subtitle{color:var(--text-muted);font-size:13px;font-weight:400}.controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.month-selector{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;display:flex;overflow:hidden}.month-selector button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:14px;transition:all .15s}.month-selector button:hover{background:var(--surface2);color:var(--text)}.month-selector .current-month{color:var(--text);border-left:1px solid var(--border);border-right:1px solid var(--border);text-align:center;min-width:160px;padding:8px 16px;font-size:14px;font-weight:600}.legend{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:16px;padding:6px 14px;font-size:12px;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.legend-dot.previsto{background:var(--previsto-color)}.legend-dot.realizado{background:var(--realizado-color)}.legend-dot.sem-dados{background:var(--sem-dados)}.theme-toggle,.btn-logout{background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--text-muted);border-radius:10px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;line-height:1;transition:all .15s;display:flex}.theme-toggle:hover,.btn-logout:hover{background:var(--surface2);border-color:var(--accent-light);color:var(--text)}.btn-logout{color:var(--red)}.btn-logout:hover{border-color:var(--red)}.theme-toggle .theme-icon{font-size:15px}.view-toggle{background:var(--surface);border:1px solid var(--border);border-radius:10px;display:flex;overflow:hidden}.view-toggle button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:12px;font-weight:500;transition:all .15s}.view-toggle button.active{background:var(--accent);color:#fff}.view-toggle button:hover:not(.active){background:var(--surface2)}.snapshot-selector{color:var(--text-muted);align-items:center;gap:10px;margin-bottom:16px;font-size:13px;display:flex}.snapshot-selector label{color:var(--text);white-space:nowrap;font-weight:600}.snapshot-selector select{border:1px solid var(--border);background:var(--surface);max-width:600px;color:var(--text);cursor:pointer;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:13px}.snapshot-selector select:focus{border-color:var(--accent)}.error-banner{border:1px solid var(--red);color:var(--red);background:#ef44441a;border-radius:8px;margin-bottom:16px;padding:8px 16px;font-size:13px}.loading-bar{background:linear-gradient(90deg, var(--accent), var(--purple), var(--accent));background-size:200% 100%;border-radius:2px;height:3px;margin-bottom:16px;animation:1.5s ease-in-out infinite loading}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.kpi-strip{grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:20px;display:grid}.kpi-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:10px;padding:14px 16px;transition:background .15s,border-color .15s}.kpi-card .kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11px}.kpi-card .kpi-values{justify-content:center;align-items:baseline;gap:8px;display:flex}.kpi-card .kpi-previsto{color:var(--previsto-color);font-size:18px;font-weight:700}.kpi-card .kpi-sep{color:var(--text-muted);font-size:12px}.kpi-card .kpi-realizado{color:var(--realizado-color);font-size:18px;font-weight:700}.kpi-card .kpi-diff{margin-top:4px;font-size:11px}.kpi-card .kpi-diff.positive{color:var(--green)}.kpi-card .kpi-diff.negative{color:var(--red)}.kpi-card .kpi-diff.neutral{color:var(--text-muted)}.kpi-card.sod-only{border-left:3px solid var(--realizado-color)}.metric-selector{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.metric-chip{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);-webkit-user-select:none;user-select:none;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .15s}.metric-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.metric-chip:hover:not(.active){border-color:var(--accent-light);color:var(--text)}.metric-chip.sod-chip{border-left:3px solid var(--realizado-color)}.metric-chip.sod-chip.active{border-left:3px solid #fff}.table-container{background:var(--surface);border:1px solid var(--border);border-radius:12px;transition:background .15s;overflow:hidden}.table-scroll{overflow-x:hidden}table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}thead tr.group-row th{background:var(--surface2);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.4px;text-align:center;text-overflow:ellipsis;white-space:nowrap;padding:4px 2px;font-size:10px;font-weight:600;overflow:hidden}thead tr.group-row th.col-previsto{color:var(--previsto-color);background:var(--previsto-header-bg)}thead tr.group-row th.col-realizado{color:var(--realizado-color);background:var(--realizado-header-bg)}thead tr.group-row th.col-variacao{color:var(--orange);background:var(--variacao-header-bg)}thead tr.metric-row th{background:var(--surface);border-bottom:2px solid var(--border);color:var(--text-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;padding:4px 2px 3px;font-size:10px;font-weight:500;overflow:hidden}thead tr.metric-row th.col-date{text-align:left;color:var(--text);padding-left:8px;font-weight:600}thead tr.total-row th{background:var(--surface2);border-bottom:2px solid var(--accent);text-align:center;padding:3px 2px 5px;font-size:11px;font-weight:700}thead tr.total-row th.total-previsto{color:var(--previsto-color)}thead tr.total-row th.total-realizado{color:var(--realizado-color)}thead tr.total-row th.positive{color:var(--green)}thead tr.total-row th.negative{color:var(--red)}thead tr.total-row th.neutral{color:var(--text-muted)}thead tr.total-row th.col-date,thead tr.total-row th.total-date{text-align:left;color:var(--text-muted);text-transform:uppercase;padding-left:8px;font-size:10px;font-weight:600}tbody tr{transition:background .1s}tbody tr:hover{background:var(--hover-bg)}tbody tr td{border-bottom:1px solid var(--border);text-align:center;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;padding:4px 2px;overflow:hidden}tbody tr td.col-date{text-align:left;color:var(--text);white-space:nowrap;width:60px;min-width:60px;padding-left:8px;font-weight:500}tbody tr td.col-date .weekday{color:var(--text-muted);margin-left:6px;font-size:10px;font-weight:400}tbody tr td.col-date.weekend{color:var(--orange)}tbody tr td.col-date.weekend .weekday{color:var(--orange);opacity:.7}tbody tr td.today{background:var(--today-bg)}tbody tr td.col-previsto{color:var(--previsto-color);font-weight:500}tbody tr td.col-realizado{color:var(--realizado-color);font-weight:500}tbody tr td.col-variacao{font-size:11px;font-weight:600}tbody tr td.col-variacao.positive{color:var(--green)}tbody tr td.col-variacao.negative{color:var(--red)}tbody tr td.col-variacao.neutral{color:var(--text-muted)}.sem-dados{font-size:11px;font-style:italic;color:var(--sem-dados)!important;font-weight:400!important}td.metric-sep,th.metric-sep{border-left:2px solid var(--border)!important}th.col-date,td.col-date{width:60px;min-width:60px}.footer-note{color:var(--text-muted);flex-wrap:wrap;gap:20px;margin-top:16px;font-size:11px;display:flex}.footer-note span:before{content:"•";color:var(--border);margin-right:6px}.text-muted{color:var(--text-muted)}@media (width<=768px){.app{padding:12px}.kpi-strip{grid-template-columns:repeat(3,1fr)}.page-header{flex-direction:column;align-items:flex-start}}
