.presentation-mode{background:#f0f0f0;min-height:100vh;padding:2rem}.presentation-message{padding:1.5rem;margin:1rem 0;border-radius:.5rem;box-shadow:0 2px 4px rgba(0,0,0,.1)}.presentation-user{background:#e3f2fd}.presentation-assistant{background:white}.mermaid .error,.mermaid-error,.mermaid-parse-error,[class*=mermaid] .error,[class*=parse-error],[class*=syntax-error],[data-error*=mermaid],[data-error*=parse],[id*=error],[id*=mermaid] .error,div[style*="color: red"],div[style*="color: rgb(255, 0, 0)"],div[style*="color:#ff0000"],div[style*="color:red"]{display:none!important;visibility:hidden!important;opacity:0!important;height:0!important;width:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;left:-9999px!important;top:-9999px!important;z-index:-9999!important}.error img,.error svg,[alt*=error] img,[alt*=error] svg,[class*=error] img,[class*=error] svg,[title*=error] img,[title*=error] svg{display:none!important;visibility:hidden!important}[style*="color: red"] *,[style*="color:#ff0000"] *,[style*="color:red"] *{display:none!important}.markdown-content{line-height:1.6}.markdown-content p{margin:8px 0}.markdown-content h1{margin:16px 0;font-size:24px}.markdown-content h2{margin:14px 0;font-size:20px}.markdown-content h3{margin:12px 0;font-size:18px}.markdown-content ol,.markdown-content ul{margin:8px 0;padding-left:20px}.markdown-content li{margin:4px 0}.markdown-content code{background-color:#f0f0f0;padding:2px 4px;border-radius:4px;font-family:monospace}.markdown-content pre{background-color:#f0f0f0;padding:12px;border-radius:4px;overflow-x:auto}.markdown-content pre code{padding:0;background-color:transparent}.markdown-content blockquote{border-left:4px solid #ddd;padding-left:16px;margin:16px 0}.markdown-content a{color:#0366d6;text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content table{border-collapse:collapse;width:100%;margin:16px 0}.markdown-content td,.markdown-content th{border:1px solid #ddd;padding:8px;text-align:left}.markdown-content{text-align:left;line-height:1.5}.markdown-content strong{color:#2c5282;font-weight:600}.markdown-content ul{list-style-type:none;padding-left:20px;margin:8px 0}.markdown-content li{position:relative;padding:4px 0}.markdown-content li:before{content:"•";position:absolute;left:-15px;color:#4a5568}.button-base{padding:10px 20px;background-color:#ffffff;color:#000000;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.05);font-weight:500;display:flex;align-items:center;gap:5px}.button-base:hover{background-color:#f9fafb}.button-base:disabled{opacity:.6;cursor:not-allowed;background-color:#f3f4f6}.button-base svg{width:16px;height:16px}.chat-container{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;margin:0;padding:0}.chat-messages{flex-grow:1;overflow-y:auto;border:1px solid #ccc;padding:10px;background-color:#f9f9f9;margin-bottom:10px;height:90%}.chat-input-container{display:flex;flex-direction:column;padding:10px;border-top:1px solid #ccc;background-color:white;position:sticky;bottom:0}.chat-input-row{display:flex;align-items:flex-start;gap:10px}.chat-textarea{flex-grow:1;padding:10px;border:1px solid #ccc;border-radius:4px;margin-right:10px;font-size:16px;min-height:40px;resize:vertical;transition:border-color .3s ease}.chat-textarea.listening{border-color:#dc3545}.voice-button{padding:10px;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;transition:all .3s ease;position:relative}.voice-button.active{background-color:#dc3545;animation:pulse 2s infinite}.voice-button.inactive{background-color:#6c757d}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(220,53,69,.7)}70%{box-shadow:0 0 0 10px rgba(220,53,69,0)}to{box-shadow:0 0 0 0 rgba(220,53,69,0)}}.send-button{padding:10px 20px;background-color:#007BFF;color:white;border:none;border-radius:4px;cursor:pointer;font-size:16px;white-space:nowrap;height:40px;display:flex;align-items:center}.send-button:hover{background-color:#0056b3}.error-message{padding:10px;background-color:#fee2e2;border:1px solid #ef4444;border-radius:4px;margin:10px;color:#dc2626}.react-grid-item{transition-property:left,top}.react-grid-item.cssTransforms{transition-property:transform}.react-grid-item>.react-resizable-handle{background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSI2IiB2aWV3Qm94PSIwIDAgNiA2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIGZpbGw9IiM0NDQiIGZpbGwtb3BhY2l0eT0iLjciPgogICAgPHBhdGggZD0ibSA2LDYgTCA2LDQuNSBMIDQuNSw2IFoiLz4KICA8L2c+Cjwvc3ZnPg==");background-position:100% 100%;padding:0 3px 3px 0;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box}.react-grid-item.react-grid-placeholder{background:rgba(25,118,210,.1);border:2px dashed rgba(25,118,210,.3);border-radius:8px;opacity:.5;-moz-user-select:none}.drag-handle{cursor:move!important;padding:8px;border-radius:4px;background:transparent;transition:opacity .2s ease}.drag-handle:hover{opacity:.8}.dashboard-widget{height:100%;display:flex;flex-direction:column;background:white;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);overflow:hidden}.widget-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e0e0e0;background:#fafafa}.widget-content{flex:1;overflow:auto;padding:16px}.react-grid-item.react-draggable-dragging{box-shadow:0 8px 32px rgba(0,0,0,.2);transform:rotate(2deg)}.react-grid-item.react-draggable-dragging>*{pointer-events:none}.react-grid-layout.react-draggable-dragging{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width:768px){.drag-handle,.react-grid-item>.react-resizable-handle{display:none}}.grid-item{transition:all .2s ease;transition-property:left,top}.react-grid-layout.hydrating{visibility:hidden}.react-grid-layout.hydrated{visibility:visible}.MuiSvgIcon-root{display:inline-block;fill:currentColor;flex-shrink:0;transition:fill .2s cubic-bezier(.4,0,.2,1) 0s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1em;height:1em;font-size:1.5rem}[data-mui-component] svg{transition:none!important}.MuiFab-root{min-height:56px;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.MuiFab-sizeSmall{width:40px;height:40px;min-height:40px}.react-grid-item{background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1)}.react-grid-item .widget-header{cursor:grab;background:#f5f5f5;border-bottom:1px solid #eee;padding:8px 16px;display:flex;align-items:center;justify-content:space-between}.react-grid-item .widget-header:active{cursor:grabbing}.react-grid-item>.react-resizable-handle{bottom:0;right:0;background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSI2IiB2aWV3Qm94PSIwIDAgNiA2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZG90cyBmaWxsPSIjOTk5IiBkPSJtMTUgMTJhMyAzIDAgMSAwIDYgMGEzIDMgMCAxIDAtNiAwem0wIDZhMyAzIDAgMSAwIDYgMGEzIDMgMCAxIDAtNiAweiIvPgo8L3N2Zz4K") no-repeat;background-position:bottom 3px right 3px;cursor:se-resize}.react-grid-layout{background:#fafafa;min-height:100vh;padding:16px}.react-grid-placeholder{background:#f0f0f0;border:2px dashed #ccc;border-radius:8px;opacity:.6;transition:all .2s ease;z-index:2;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-grid-item{overflow:hidden}.react-grid-item>div{height:100%!important;overflow:hidden}.compact-scroll::-webkit-scrollbar{height:4px;width:4px}.compact-scroll::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:2px}.compact-scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3);border-radius:2px}.compact-scroll::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5)}.react-grid-layout{min-height:0!important}.react-resizable-handle{opacity:.7}.react-resizable-handle:hover{opacity:1}.MuiCard-root.compact-card{transition:all .2s ease}.MuiCard-root.compact-card:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.15)}.compact-text{font-size:.75rem!important;line-height:1.2!important}.compact-text.MuiTypography-h6{font-size:.9rem!important}.compact-text.MuiTypography-subtitle2{font-size:.8rem!important}.compact-text.MuiTypography-body2{font-size:.7rem!important}.MuiButton-root.compact-button{font-size:.7rem!important;padding:2px 8px!important;min-height:24px!important}.MuiChip-root.compact-chip{font-size:.65rem!important;height:18px!important}.MuiChip-root.compact-chip .MuiChip-icon{font-size:.75rem!important}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis-2{-webkit-line-clamp:2;line-clamp:2}.text-ellipsis-1,.text-ellipsis-2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.text-ellipsis-1{-webkit-line-clamp:1;line-clamp:1}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e,.react-grid-item>.react-resizable-handle.react-resizable-handle-w{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+");background-position:100% 100%;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}