*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #1a3a5c;--primary-light: #2c5282;--accent: #e8a838;--bg: #f0f2f5;--card-bg: #ffffff;--text: #1a202c;--text-secondary: #718096;--green: #38a169;--green-bg: #f0fff4;--green-border: #c6f6d5;--red: #e53e3e;--red-bg: #fff5f5;--red-border: #fed7d7;--orange: #dd6b20;--orange-bg: #fffaf0;--orange-border: #feebc8;--blue-bg: #ebf8ff;--blue-border: #bee3f8;--purple-bg: #faf5ff;--purple-border: #e9d8fd;--border: #e2e8f0;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);--shadow-lg: 0 4px 14px rgba(0,0,0,.1);--sidebar-w: 180px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,#2d4a6f 100%)}.login-card{background:var(--card-bg);border-radius:12px;padding:48px 40px;width:400px;max-width:90vw;box-shadow:var(--shadow-lg);text-align:center}.login-card h1{font-size:28px;font-weight:700;color:var(--primary);margin-bottom:4px}.login-card .subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:32px}.login-card .logo-icon{width:64px;height:64px;background:var(--accent);border-radius:16px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff;font-weight:700}.form-group{text-align:left;margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-group input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:inherit;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--primary-light);box-shadow:0 0 0 3px #2c528226}.login-btn{width:100%;padding:12px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;margin-top:8px;transition:background .2s}.login-btn:hover{background:var(--primary-light)}.login-error{color:var(--red);font-size:13px;margin-top:12px}.dashboard{min-height:100vh;display:flex;flex-direction:column}.dashboard.client-mode{min-height:auto}.dashboard.client-mode .content{flex:0 0 auto}.topbar{background:var(--primary);color:#fff;padding:0 24px;height:48px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200;box-shadow:0 2px 8px #00000026}.topbar-left{display:flex;align-items:center;gap:10px}.topbar-logo{width:28px;height:28px;background:var(--accent);border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}.topbar h2{font-size:15px;font-weight:600}.topbar-right{display:flex;align-items:center;gap:12px;font-size:12px}.logout-btn{background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#fff;padding:4px 12px;border-radius:var(--radius);font-size:12px;font-family:inherit;cursor:pointer}.logout-btn:hover{background:#ffffff40}.tabs-bar{background:#fff;border-bottom:1px solid var(--border);padding:0 24px;display:flex;gap:0;position:sticky;top:48px;z-index:150;box-shadow:0 2px 6px #0000000f;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap}.tabs-bar::-webkit-scrollbar{height:4px}.tabs-bar::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:2px}.tab-btn{padding:10px 20px;font-size:13px;font-weight:500;font-family:inherit;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .2s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.main-layout{display:flex;flex:1}.filter-topbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:8px 20px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:88px;z-index:80;box-shadow:0 2px 6px #0000000a}.filter-topbar .filter-group{margin-bottom:0}.filter-topbar .multi-filter-btn{min-width:110px;font-size:12px;padding:5px 8px}.filter-topbar .multi-filter-dropdown{min-width:170px}.filter-topbar label{font-size:10px}.filter-topbar-meta{display:flex;align-items:center;gap:10px;margin-left:auto;white-space:nowrap}.filter-row-count{font-size:11px;color:var(--text-secondary);font-weight:500}.refresh-btn{padding:5px 14px;font-size:11px;font-weight:600;font-family:inherit;background:var(--primary);color:#fff;border:none;border-radius:5px;cursor:pointer;transition:background .2s}.refresh-btn:hover{background:var(--primary-light)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.last-refreshed{font-size:10px;color:var(--text-secondary)}.content{flex:1;padding:16px 20px;min-width:0}.section-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px;display:flex;align-items:center;gap:8px}.kpi-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin-bottom:16px}.kpi-card{background:var(--card-bg);border-radius:6px;padding:10px 12px;box-shadow:var(--shadow);border-left:3px solid var(--border);position:relative;overflow:hidden;min-width:0}.kpi-card.positive{border-left-color:var(--green);background:var(--green-bg)}.kpi-card.negative{border-left-color:var(--red);background:var(--red-bg)}.kpi-card .kpi-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);margin-bottom:2px}.kpi-card .kpi-value{font-size:16px;font-weight:700;color:var(--text);margin-bottom:2px;line-height:1.2}.kpi-card .kpi-comparison{display:flex;align-items:center;gap:4px;font-size:10px}.kpi-card .kpi-lytd{color:var(--text-secondary);font-size:10px}.kpi-card .kpi-change{font-weight:600;padding:1px 4px;border-radius:3px;font-size:10px}.kpi-change.up{color:var(--green);background:var(--green-bg)}.kpi-change.down{color:var(--red);background:var(--red-bg)}.kpi-sparkline{position:absolute;bottom:0;left:0;right:0;height:30px;opacity:.15}.donut-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:0}.donut-card{background:var(--card-bg);border-radius:6px;padding:10px;box-shadow:var(--shadow);text-align:center}.donut-card h4{font-size:11px;font-weight:600;color:var(--text);margin-bottom:2px}.table-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;overflow:hidden}.table-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.table-controls .filter-group select,.table-controls .filter-group input{min-width:130px}.data-table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th{background:var(--bg);padding:6px 8px;text-align:center;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);white-space:nowrap;border-bottom:2px solid var(--border);position:sticky;top:0}.data-table th:first-child{text-align:left}.data-table td{padding:5px 8px;text-align:center;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td:first-child{text-align:left;font-weight:500}.data-table tbody tr:hover{background:#f7fafc}.pct-positive{color:var(--green);font-weight:600}.pct-negative{color:var(--red);font-weight:600}.filter-group{display:flex;flex-direction:column;gap:3px}.filter-group label{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.filter-group select,.filter-group input[type=date],.filter-group input[type=month]{padding:5px 8px;border:1px solid var(--border);border-radius:5px;font-size:12px;font-family:inherit;background:#fff;min-width:120px}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:var(--primary-light)}.multi-filter{position:relative}.multi-filter-btn{padding:5px 8px;border:1px solid var(--border);border-radius:5px;font-size:12px;font-family:inherit;background:#fff;min-width:120px;cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:4px}.multi-filter-btn .arrow{font-size:9px;color:var(--text-secondary)}.multi-filter-dropdown{position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-lg);z-index:50;min-width:180px;max-height:220px;overflow-y:auto;margin-top:3px}.multi-filter-dropdown label{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400}.multi-filter-dropdown label:hover{background:var(--bg)}.multi-filter-dropdown input[type=checkbox]{min-width:auto}.insight-blocks{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0;margin:0;list-style:none}.insight-blocks.single-col{grid-template-columns:1fr}@media (max-width: 1200px){.insight-blocks{grid-template-columns:1fr}}.insight-block{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:8px;font-size:11.5px;line-height:1.55;color:#2d3748;border-left:4px solid transparent;transition:transform .15s,box-shadow .15s;box-shadow:0 1px 2px #0000000a}.insight-block:hover{transform:translate(2px);box-shadow:0 2px 6px #00000014}.insight-block.green{background:var(--green-bg);border-left-color:var(--green)}.insight-block.red{background:var(--red-bg);border-left-color:var(--red)}.insight-block.orange{background:var(--orange-bg);border-left-color:var(--orange)}.insight-block.blue{background:var(--blue-bg);border-left-color:var(--primary-light)}.insight-block.purple{background:var(--purple-bg);border-left-color:#805ad5}.insight-block .insight-emoji{font-size:14px;line-height:1;min-width:18px;text-align:center;margin-top:1px}.insight-block .insight-text{flex:1}.hl{font-weight:700}.hl-green{color:var(--green);font-weight:700}.hl-red{color:var(--red);font-weight:700}.hl-orange{color:var(--orange);font-weight:700}.hl-blue{color:var(--primary-light);font-weight:700}.hl-purple{color:#805ad5;font-weight:700}.exec-insights{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:16px;box-shadow:var(--shadow)}.exec-insights-title{font-size:13px;font-weight:700;color:var(--primary);margin-bottom:10px;display:flex;align-items:center;gap:6px}.donut-with-insights{display:grid;grid-template-columns:1fr 300px;gap:12px;margin-bottom:16px;align-items:start}@media (max-width: 1200px){.donut-with-insights{grid-template-columns:1fr}}.insights-panel{background:var(--card-bg);border-radius:8px;box-shadow:var(--shadow);padding:14px;overflow-y:auto;border:1px solid var(--border)}.insights-panel-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:6px}.insight-category{margin-bottom:10px}.insight-category:last-child{margin-bottom:0}.insight-cat-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px;padding:2px 6px;border-radius:3px;display:inline-block}.insight-cat-header.wins{background:#c6f6d5;color:#276749}.insight-cat-header.losses{background:#fed7d7;color:#9b2c2c}.insight-cat-header.strengths{background:#bee3f8;color:#2a4365}.insight-cat-header.weaknesses{background:#fefcbf;color:#975a16}.insight-cat-header.opportunities{background:#e9d8fd;color:#553c9a}.insight-category ul{list-style:none;padding:0;margin:0}.insight-category li{font-size:11px;line-height:1.45;padding:2px 0;color:#4a5568}.trend-grid-full{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}@media (max-width: 1000px){.trend-grid-full{grid-template-columns:1fr}}.trend-card{background:var(--card-bg);border-radius:6px;padding:12px;box-shadow:var(--shadow)}.trend-card h4{font-size:12px;font-weight:600;margin-bottom:6px;color:var(--text)}.forecast-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}@media (max-width: 1200px){.forecast-charts-row{grid-template-columns:1fr}}.budget-allocation-row{display:grid;grid-template-columns:1fr 320px;gap:12px;margin-bottom:16px;align-items:stretch}@media (max-width: 1200px){.budget-allocation-row{grid-template-columns:1fr}}.chatbot-toggle{position:fixed;bottom:20px;right:20px;width:48px;height:48px;border-radius:50%;background:var(--primary);color:#fff;border:none;cursor:pointer;font-size:22px;box-shadow:var(--shadow-lg);z-index:200;display:flex;align-items:center;justify-content:center;transition:transform .2s}.chatbot-toggle:hover{transform:scale(1.08)}.chatbot-panel{position:fixed;bottom:76px;right:20px;width:380px;max-height:520px;background:#fff;border-radius:12px;box-shadow:0 8px 30px #0000002e;z-index:200;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border)}.chatbot-header{background:var(--primary);color:#fff;padding:12px 16px;font-size:14px;font-weight:600;display:flex;justify-content:space-between;align-items:center}.chatbot-header button{background:none;border:none;color:#fff;font-size:18px;cursor:pointer}.chatbot-messages{flex:1;overflow-y:auto;padding:12px;max-height:380px}.chatbot-msg{margin-bottom:10px;font-size:12px;line-height:1.5}.chatbot-msg.bot{background:#f7fafc;padding:8px 12px;border-radius:8px 8px 8px 2px;color:#2d3748}.chatbot-msg.user{background:var(--primary);color:#fff;padding:8px 12px;border-radius:8px 8px 2px;margin-left:40px}.chatbot-input{display:flex;border-top:1px solid var(--border)}.chatbot-input input{flex:1;border:none;padding:10px 14px;font-size:13px;font-family:inherit;outline:none}.chatbot-input button{background:var(--primary);color:#fff;border:none;padding:10px 16px;font-size:13px;cursor:pointer;font-family:inherit}.content-full{margin-right:0}.sp-perf{display:flex;flex-direction:column;gap:16px}.sp-filter-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;background:var(--card-bg);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);border:1px solid var(--border);position:sticky;top:88px;z-index:80}.sp-filter-bar .filter-group{min-width:100px}.sp-filter-bar .multi-filter-btn{min-width:100px;font-size:12px;padding:5px 8px}.sp-date-group{display:flex;flex-direction:column;gap:3px}.sp-date-group label{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.sp-date-group input[type=date],.sp-date-group input[type=month]{padding:5px 8px;border:1px solid var(--border);border-radius:5px;font-size:12px;font-family:inherit;background:#fff;min-width:130px}.sp-date-group input[type=date]:focus,.sp-date-group input[type=month]:focus{outline:none;border-color:var(--primary-light)}.sp-row-count{font-size:10px;color:var(--text-secondary);align-self:center;margin-left:auto;white-space:nowrap}.sp-kpi-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.sp-kpi-card{background:var(--card-bg);border-radius:8px;padding:14px 16px;box-shadow:var(--shadow);border:2px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:6px}.sp-kpi-card.sp-kpi-good{border-color:var(--green)}.sp-kpi-card.sp-kpi-bad{border-color:var(--red)}.sp-kpi-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.sp-kpi-change{font-size:20px;font-weight:800;line-height:1.2}.sp-kpi-change.good{color:var(--green)}.sp-kpi-change.bad{color:var(--red)}.sp-kpi-change.neutral{color:var(--text-secondary)}.sp-kpi-values{display:flex;gap:16px;width:100%;justify-content:center}.sp-kpi-primary,.sp-kpi-comparison{display:flex;flex-direction:column;align-items:center;gap:1px}.sp-kpi-period{font-size:9px;text-transform:uppercase;color:var(--text-secondary);letter-spacing:.3px}.sp-kpi-val{font-size:13px;font-weight:600;color:var(--text)}.sp-chart-section{background:var(--card-bg);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.sp-chart-controls{display:flex;gap:12px;margin-bottom:10px}.sp-chart-controls select{padding:5px 8px;border:1px solid var(--border);border-radius:5px;font-size:12px;font-family:inherit;background:#fff}.placeholder-tab{text-align:center;padding:60px 20px;color:var(--text-secondary)}.placeholder-tab h3{font-size:18px;margin-bottom:8px;color:var(--text)}@media (max-width: 1000px){.kpi-grid{grid-template-columns:repeat(4,1fr)}.donut-grid{grid-template-columns:1fr 1fr}.sp-kpi-grid{grid-template-columns:repeat(4,1fr)}.filter-topbar{gap:8px}}@media (max-width: 700px){.sp-kpi-grid{grid-template-columns:repeat(2,1fr)}}
