*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:#f5f6fa;color:#2d3436}.app{max-width:1100px;margin:0 auto;padding:24px 16px}.app h1{font-size:1.4rem;margin-bottom:16px}.date-range-picker{margin-bottom:16px}.date-range-picker .presets{display:flex;gap:4px;flex-wrap:wrap}.date-range-picker .presets button{padding:5px 12px;border:1px solid #dfe6e9;background:#fff;border-radius:4px;cursor:pointer;font-size:.82rem;color:#636e72;transition:all .15s}.date-range-picker .presets button:hover{border-color:#0984e3;color:#0984e3}.date-range-picker .presets button.active{background:#0984e3;color:#fff;border-color:#0984e3}.date-range-picker .custom-dates{display:flex;gap:12px;margin-top:8px;align-items:center}.date-range-picker .custom-dates label{font-size:.82rem;color:#636e72;display:flex;align-items:center;gap:6px}.date-range-picker .custom-dates input[type=date]{padding:4px 8px;border:1px solid #dfe6e9;border-radius:4px;font-size:.82rem}.tabs{display:flex;gap:4px;border-bottom:2px solid #dfe6e9;margin-bottom:24px;flex-wrap:wrap}.tabs button{padding:8px 16px;border:none;background:transparent;cursor:pointer;font-size:.9rem;color:#636e72;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.tabs button:hover{color:#0984e3}.tabs button.active{color:#0984e3;border-bottom-color:#0984e3;font-weight:600}.panel{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #00000014}.panel h2{font-size:1.1rem;margin-bottom:8px}.panel .explanation{font-size:.85rem;color:#636e72;line-height:1.5;margin-bottom:16px}.ops-form{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}.ops-form label{font-size:.82rem;color:#636e72;display:flex;flex-direction:column;gap:4px}.ops-form input{padding:6px 10px;border:1px solid #dfe6e9;border-radius:4px;font-size:.85rem;width:140px}.ops-btn{padding:8px 18px;background:#0984e3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.88rem;margin-top:4px}.ops-btn:hover{background:#0770c2}.ops-btn:disabled{background:#b2bec3;cursor:not-allowed}.ops-result{margin-top:12px;padding:12px;background:#f5f6fa;border-radius:4px;font-size:.82rem;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:8px 12px;border-bottom:1px solid #dfe6e9}th{font-weight:600;color:#636e72}.sparkline{display:flex;align-items:flex-end;gap:3px;height:48px}.sparkline .bar{flex:1;background:#0984e3;border-radius:2px 2px 0 0;min-width:6px}.gauge-container{display:flex;align-items:center;gap:16px;margin-bottom:12px}.gauge-track{flex:1;height:18px;background:#dfe6e9;border-radius:9px;overflow:hidden}.gauge-fill{height:100%;border-radius:9px;transition:width .4s ease}.gauge-label{font-size:1.6rem;font-weight:700;min-width:70px;text-align:right}button.download-btn{margin-top:12px;padding:8px 16px;background:#0984e3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.88rem}button.download-btn:hover{background:#0770c2}.loading{color:#636e72;padding:32px 0;text-align:center}.error{color:#d63031;padding:32px 0;text-align:center}.chat-container{display:flex;flex-direction:column;height:520px}.chat-messages{flex:1;overflow-y:auto;padding:8px 0}.chat-turn{margin-bottom:12px}.chat-turn .role{font-weight:600;font-size:.82rem;text-transform:capitalize;margin-bottom:2px}.chat-turn .content{font-size:.9rem;line-height:1.45}.chat-turn .citations{font-size:.78rem;color:#636e72;margin-top:4px}.chat-input-row{display:flex;gap:8px;margin-top:8px}.chat-input-row input{flex:1;padding:8px 12px;border:1px solid #dfe6e9;border-radius:4px;font-size:.9rem}.chat-input-row button{padding:8px 16px;background:#0984e3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.demo-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.suggestion-btn{padding:6px 12px;border:1px solid #dfe6e9;background:#f5f6fa;border-radius:16px;cursor:pointer;font-size:.8rem;color:#2d3436;transition:all .15s}.suggestion-btn:hover{border-color:#0984e3;color:#0984e3;background:#fff}
