:root{--color-principal-lighter:#dbfbf8;--color-principal-light:#92f3ea;--color-principal-mid:#49ebdc;--color-principal-dark:#2c8d84;--color-principal-darker:#164742;--color-secondary-lighter:#d7e8ec;--color-secondary-light:#86bbc5;--color-secondary-mid:#368d9e;--color-secondary-dark:#20555f;--color-secondary-darker:#102b30;--color-tertiary-lighter:#d4e0e0;--color-tertiary-light:#7ea2a3;--color-tertiary-mid:#286465;--color-tertiary-dark:#183c3d;--color-tertiary-darker:#0c1e1e;--color-neutral-25:#fafafa;--color-neutral-40:#f9fafb;--color-neutral-45:#f3f4f6;--color-neutral-50:#f8fafc;--color-neutral-100:#f1f5f9;--color-neutral-200:#e5e7eb;--color-neutral-300:#dbe3ea;--color-neutral-350:#9ca3af;--color-neutral-400:#b7c8d4;--color-neutral-500:#a7b5c0;--color-neutral-600:#66737f;--color-neutral-650:#374151;--color-neutral-700:#52616f;--color-neutral-750:#1f2937;--color-neutral-800:#4b5966;--color-neutral-850:#111827;--color-neutral-900:#1a1a2e;--color-neutral-950:#17233c;--color-error-50:#fff1f1;--color-error-100:#fee2e2;--color-error-300:#fca5a5;--color-error-500:#f2b8b5;--color-error-700:#9f1d1d;--color-error-900:#991b1b;--color-warning-50:#fff7ed;--color-warning-300:#fed7aa;--color-warning-900:#9a3412;--color-success-50:#dcfce7;--color-success-500:#16a34a;--color-success-700:#166534;--color-danger-500:#dc2626;--color-accent-primary:#06f;--color-accent-light:#e0f2fe;--color-accent-blue:#0369a1;--color-media-50:#ede9fe;--color-media-700:#5b21b6;--color-text-warning:#92400e;--color-surface-primary:#fff;--color-surface-secondary:#f4f6f9;--color-surface-tint-principal:#edf7f6;--color-surface-tint-principal-light:#f4fbfa;--color-surface-tint-principal-user:#eaf8f6;--color-border-default:#dbe3ea;--color-border-light:#e5e7eb;--color-border-principal:#c9ece8;--color-border-principal-active:#b9ebe5}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-surface-secondary);color:var(--color-neutral-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Segoe UI,system-ui,-apple-system,sans-serif}#root{width:100%;min-height:100vh}.app-header{background:linear-gradient(135deg, var(--color-principal-mid), var(--color-secondary-mid));color:#fff;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;box-shadow:0 2px 8px #00000026}.header-left{align-items:center;gap:1rem;display:flex}.logo{border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.logo img{object-fit:contain;width:100%;height:100%}.app-header h1{margin:0;font-size:1.2rem;font-weight:700}.app-header p{opacity:.9;margin:.2rem 0 0;font-size:.78rem}.header-right{text-align:right;opacity:.85;font-size:.72rem}.cached-badge{opacity:.7;margin-top:.2rem}.sources-panel{flex-direction:column;flex:1;gap:.75rem;display:flex}.sources-title{color:var(--color-secondary-darker);border-bottom:1px solid var(--color-border-light);margin:0;padding:1rem 1rem .5rem;font-size:1rem;font-weight:700}.sources-list{flex-direction:column;flex:1;gap:.65rem;padding:1rem;display:flex;overflow:auto}.source-item{background:var(--color-surface-secondary,#f9fafb);border:1px solid var(--color-border-light,#e5e7eb);border-radius:6px;justify-content:space-between;align-items:center;padding:.5rem;display:flex}.source-info{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.source-icon{object-fit:contain;flex-shrink:0;width:24px;height:24px}.source-text{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.source-name{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:500;overflow:hidden}.source-meta{color:var(--color-text-secondary);font-size:.7rem}.source-actions{align-items:center;gap:.5rem;display:flex}.source-toggle{cursor:pointer;width:40px;height:22px;display:inline-block;position:relative}.source-toggle input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:#ccc;border-radius:22px;transition:all .3s;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:16px;height:16px;transition:all .3s;position:absolute;bottom:3px;left:3px}.source-toggle input:checked+.toggle-slider{background-color:var(--color-principal-mid,#49ebdc)}.source-toggle input:checked+.toggle-slider:before{transform:translate(18px)}.source-toggle input:disabled+.toggle-slider{opacity:.6;cursor:not-allowed}.btn-delete-source{color:#f87171;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:1.5rem;line-height:1;transition:background-color .15s;display:flex}.btn-delete-source:hover{background:#f871711a}.btn-upload-source{background:var(--color-principal-mid,#49ebdc);color:var(--color-principal-dark,#0a1b1a);cursor:pointer;border:none;border-radius:6px;margin:0 1rem 1rem;padding:.6rem .75rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:opacity .15s}.btn-upload-source:hover{opacity:.9}.chat-main{grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:1rem;width:100%;max-width:1400px;margin:0 auto;padding:1.25rem 2rem;display:grid}.chat-sidebar,.chat-panel{background:var(--color-surface-primary);border:1px solid var(--color-border-default);border-radius:8px;min-width:0}.chat-sidebar{flex-direction:column;max-height:calc(100vh - 180px);display:flex;overflow:hidden}.chat-sidebar-header,.chat-panel-header{border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem;display:flex}.chat-sidebar-header h2,.chat-panel-header h2{color:var(--color-secondary-darker);margin:0;font-size:1rem;line-height:1.2}.chat-panel-header .chat-subtitle{color:var(--color-neutral-600);margin:.3rem 0 0;font-size:.78rem;font-weight:400;line-height:1.3}.new-chat-btn,.conversations-btn{background:var(--color-surface-primary);border:1.5px solid var(--color-border-default);color:var(--color-neutral-700);cursor:pointer;white-space:nowrap;border-radius:6px;padding:.5rem .85rem;font-size:.84rem;font-weight:600;transition:all .15s}.new-chat-btn:hover:not(:disabled),.conversations-btn:hover:not(:disabled){background:var(--color-neutral-100);border-color:var(--color-neutral-500);color:var(--color-neutral-900)}.new-chat-btn:disabled,.conversations-btn:disabled{border-color:var(--color-neutral-300);color:var(--color-neutral-400);cursor:not-allowed;opacity:.6}.chat-header-actions{align-items:flex-start;gap:.5rem;display:flex}.conversations-menu-wrap{position:relative}.conversations-menu{background:var(--color-surface-primary);border:1px solid var(--color-border-default);z-index:20;border-radius:8px;flex-direction:column;width:300px;max-height:320px;display:flex;position:absolute;top:calc(100% + .35rem);right:0;overflow:auto;box-shadow:0 8px 20px #0000001f}.conversations-status{color:var(--color-neutral-600);text-align:center;padding:.75rem;font-size:.8rem}.conversations-status.error{color:var(--color-error-700)}.conversations-item{border-bottom:1px solid var(--color-border-light);align-items:center;gap:.25rem;display:flex}.conversations-item:last-child{border-bottom:0}.conversations-item:hover{background:var(--color-surface-tint-principal-light)}.conversations-item.active{background:var(--color-surface-tint-principal)}.conversations-item-open{cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;flex:1;gap:.15rem;min-width:0;padding:.6rem 0 .6rem .75rem;display:flex}.conversations-archive{color:var(--color-neutral-500);cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;margin-right:.4rem;padding:.25rem .35rem;font-size:.85rem}.conversations-archive:hover{background:var(--color-neutral-100)}.conversations-item-title{color:var(--color-neutral-950);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.84rem;font-weight:600;overflow:hidden}.conversations-item-meta{color:var(--color-neutral-600);font-size:.72rem}.chat-sidebar-header p,.chat-panel-header p{color:var(--color-neutral-600);margin:.3rem 0 0;font-size:.78rem}.file-count{background:var(--color-surface-tint-principal);border:1px solid var(--color-border-principal);color:var(--color-principal-dark);border-radius:999px;justify-content:center;align-items:center;min-width:1.7rem;height:1.7rem;padding:0 .45rem;font-size:.78rem;font-weight:700;display:inline-flex}.upload-zone{border:1.5px dashed var(--color-neutral-400);color:var(--color-neutral-600);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:.45rem;margin:1rem;padding:1rem;transition:border-color .15s,background .15s;display:flex}.upload-zone.drag-active{background:var(--color-surface-tint-principal);border-color:var(--color-principal-mid)}.file-input{display:none}.upload-button,.chat-input-row button{background:var(--color-principal-mid);color:var(--color-surface-primary);cursor:pointer;border:0;border-radius:6px;padding:.55rem .9rem;font-size:.84rem;font-weight:700;transition:background .15s}.upload-button:hover,.chat-input-row button:hover{background:var(--color-principal-dark)}.upload-button:disabled{background:var(--color-neutral-500);cursor:wait}.chat-input-row button:disabled{background:var(--color-neutral-500);cursor:not-allowed}.upload-zone span{font-size:.78rem}.chat-file-error{background:var(--color-error-100);border:1px solid var(--color-error-300);color:var(--color-error-900);border-radius:6px;margin:1rem;padding:.6rem .75rem;font-size:.78rem}.chat-error{background:var(--color-warning-50);border-top:1px solid var(--color-warning-300);color:var(--color-warning-900);padding:.65rem 1rem;font-size:.82rem}.file-list{flex-direction:column;flex:1;gap:.65rem;padding:0 1rem 1rem;display:flex;overflow:auto}.file-empty{border:1px solid var(--color-border-light);color:var(--color-neutral-600);text-align:center;border-radius:8px;padding:1rem;font-size:.82rem}.file-row{border:1px solid var(--color-border-light);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;padding:.75rem;display:grid}.file-row.selected{background:var(--color-surface-tint-principal-light);border-color:var(--color-principal-light)}.file-select{cursor:pointer;align-items:flex-start;gap:.55rem;min-width:0;display:flex}.file-select input{margin-top:.2rem}.file-text{flex-direction:column;gap:.2rem;min-width:0;display:flex}.file-name{color:var(--color-neutral-950);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:700;overflow:hidden}.file-meta{color:var(--color-neutral-600);overflow-wrap:anywhere;font-size:.72rem;line-height:1.25}.file-delete{background:var(--color-surface-primary);border:1px solid var(--color-error-500);color:var(--color-error-700);cursor:pointer;border-radius:6px;align-self:start;padding:.35rem .55rem;font-size:.74rem;font-weight:700}.file-delete:hover{background:var(--color-error-50)}.chat-panel{flex-direction:column;height:calc(100vh - 180px);display:flex}.chat-messages{background:var(--color-neutral-50);flex-direction:column;flex:1;gap:.8rem;padding:1rem;display:flex;overflow:auto}.chat-message{align-items:flex-start;gap:1rem;max-width:min(720px,90%);display:flex}.chat-message.user{flex-direction:row-reverse;align-self:flex-end}.chat-message.assistant{flex-direction:row;align-self:flex-start}.chat-message.pending{opacity:.75}.message-avatar{object-fit:contain;border:2px solid var(--color-border-default);border-radius:50%;flex-shrink:0;width:36px;height:36px;margin-top:-12px}.message-avatar-emoji{background:0 0;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.message-content{flex:1;min-width:0;position:relative;overflow:visible}.chat-message.user .message-content{background:var(--color-surface-tint-principal-user);border-radius:12px 0 12px 12px;padding:.75rem .85rem;position:relative;box-shadow:0 1px 2px #00000026}.chat-message.user .message-content:after{content:"";border-top:12px solid var(--color-surface-tint-principal-user);border-right:12px solid #0000;width:0;height:0;position:absolute;top:0;right:-10px}.chat-message.assistant .message-content{background:var(--color-surface-primary);border-radius:0 12px 12px;padding:.75rem .85rem;position:relative;box-shadow:0 1px 2px #00000026}.chat-message.assistant .message-content:after{content:"";border-top:12px solid var(--color-surface-primary);border-left:12px solid #0000;width:0;height:0;position:absolute;top:0;left:-10px}.message-meta{color:var(--color-neutral-600);justify-content:space-between;gap:.75rem;margin-bottom:.35rem;font-size:.7rem;font-weight:700;display:flex}.message-content p{color:var(--color-neutral-900);overflow-wrap:anywhere;margin:0;font-size:.9rem;line-height:1.45}.message-html{color:var(--color-neutral-900);overflow-wrap:anywhere;font-size:.9rem;line-height:1.45}.message-html>:first-child{margin-top:0}.message-html>:last-child{margin-bottom:0}.message-html p,.message-html ul,.message-html ol,.message-html blockquote,.message-html pre,.message-html table{margin:.55rem 0}.message-html h3,.message-html h4{color:var(--color-secondary-darker);margin:.7rem 0 .4rem;font-size:.98rem;line-height:1.25}.message-html ul,.message-html ol{padding-left:1.2rem}.message-html li+li{margin-top:.25rem}.message-html table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.message-html th,.message-html td{border:1px solid var(--color-border-default);text-align:left;vertical-align:top;padding:.45rem .55rem}.message-html th{background:var(--color-surface-tint-principal);color:var(--color-secondary-darker)}.message-html blockquote{border-left:3px solid var(--color-principal-mid);color:var(--color-neutral-800);padding-left:.8rem}.message-html code,.message-html pre{background:var(--color-neutral-100);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.message-html code{padding:.1rem .25rem}.message-html pre{padding:.7rem;overflow-x:auto}.message-html a{color:var(--color-principal-dark);text-decoration:underline;transition:color .15s}.message-html a:hover{color:var(--color-principal-darker)}.chat-input-row{border-top:1px solid var(--color-border-light);grid-template-columns:minmax(0,1fr) auto;gap:.7rem;padding:1rem;display:grid}.chat-input-row input{border:1.5px solid var(--color-border-default);color:var(--color-neutral-900);border-radius:6px;min-width:0;padding:.6rem .75rem;font-size:.9rem}.chat-input-row input:focus{border-color:var(--color-principal-mid);outline:none}.chat-input-row input:disabled{background:var(--color-neutral-100);color:var(--color-neutral-600)}@media (width<=920px){.chat-main{grid-template-columns:1fr;padding:1rem}.chat-sidebar,.chat-panel,.chat-panel{max-height:none}}@media (width<=560px){.file-row,.chat-input-row{grid-template-columns:1fr}.file-delete,.chat-input-row button{width:100%}}.chat-sidebar .sources-panel{flex-direction:column;flex:1;display:flex;overflow:hidden}.example-questions{grid-template-columns:repeat(2,1fr);place-self:center;gap:.75rem;width:100%;max-width:600px;padding:1rem;display:grid}.example-question-btn{background:var(--color-surface-primary);border:1.5px solid var(--color-border-default);color:var(--color-neutral-900);cursor:pointer;text-align:center;border-radius:8px;justify-content:center;align-items:center;min-height:80px;padding:1rem;font-size:.88rem;font-weight:500;transition:all .15s;display:flex}.example-question-btn:hover{background:var(--color-surface-tint-principal-light);border-color:var(--color-principal-mid);transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.example-question-btn:active{transform:translateY(0)}@media (width<=560px){.example-questions{grid-template-columns:1fr}}.loading-dots{gap:.15rem;margin-left:.3rem;display:inline-flex}.loading-dots span{animation:1.4s ease-in-out infinite dot-bounce;display:inline-block}.loading-dots span:first-child{animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-8px)}}.controls{background:var(--color-surface-primary);border-bottom:1px solid var(--color-border-light);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.85rem 2rem;display:flex}.controls label{color:var(--color-neutral-600);font-size:.82rem;font-weight:500}.btn-range{border:1.5px solid var(--color-border-light);background:var(--color-surface-primary);cursor:pointer;color:var(--color-neutral-900);border-radius:6px;padding:.35rem .85rem;font-size:.82rem;transition:all .15s}.btn-range:hover{border-color:var(--color-principal-mid);color:var(--color-principal-dark)}.btn-range.active{background:var(--color-principal-mid);border-color:var(--color-principal-mid);color:var(--color-surface-primary);font-weight:600}.custom-row{align-items:center;gap:.5rem;display:flex}.custom-row input{border:1.5px solid var(--color-border-light);border-radius:6px;padding:.35rem .6rem;font-size:.82rem;transition:border-color .2s}.custom-row input:focus{border-color:var(--color-principal-mid);outline:none}.custom-row span{color:var(--color-neutral-600)}.btn-apply{background:var(--color-principal-mid);color:var(--color-surface-primary);cursor:pointer;border:none;border-radius:6px;padding:.35rem .85rem;font-size:.82rem;font-weight:600;transition:background .2s}.btn-apply:hover{background:var(--color-principal-dark)}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.kpi{background:var(--color-surface-primary);border-left:4px solid var(--color-principal-mid);border-radius:12px;padding:1.1rem 1.4rem;box-shadow:0 1px 4px #00000012}.kpi-positive{border-left-color:var(--color-success-500)}.kpi-negative{border-left-color:var(--color-danger-500)}.kpi-blue{border-left-color:var(--color-secondary-mid)}.kpi-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-neutral-600);margin-bottom:.4rem;font-size:.7rem}.kpi-value{color:var(--color-neutral-900);font-size:1.9rem;font-weight:700;line-height:1}.kpi-subtitle{color:var(--color-neutral-600);margin-top:.3rem;font-size:.72rem}.up{color:var(--color-success-500)}.dn{color:var(--color-danger-500)}.platform-legend{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.platform-item{background:var(--color-neutral-40);border-radius:6px;align-items:center;gap:.75rem;padding:.5rem;transition:background .2s;display:flex}.platform-item:hover{background:var(--color-neutral-45)}.platform-name{color:var(--color-neutral-900);flex:1;font-size:.88rem;font-weight:500}.platform-count{color:var(--color-principal-dark);font-size:.88rem;font-weight:600}.volume-platform-section{display:block}.volume-platform-section .chart-card{background:var(--color-surface-primary);border-radius:12px;padding:1.1rem;box-shadow:0 1px 4px #00000012}.volume-platform-section .chart-card h3{color:var(--color-text-primary);margin:0 0 1rem;font-size:1rem;font-weight:600}.volume-platform-section .chart-container{margin-bottom:1.5rem;position:relative}.volume-platform-section .platform-subtitle{color:var(--color-text-primary);margin:0 0 .25rem;font-size:1rem;font-weight:600}.volume-platform-section .platform-note{color:var(--color-text-secondary);margin:0 0 .75rem;font-size:.78rem}.volume-platform-section .platform-legend{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:0;display:grid!important}@media (width<=860px){.volume-platform-section .platform-grid,.volume-platform-section .platform-legend{grid-template-columns:1fr}}.analysis-charts-section{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.analysis-charts-section .chart-card{background:var(--color-surface-primary);border-radius:12px;padding:1.1rem;box-shadow:0 1px 4px #00000012}.analysis-charts-section .chart-card h3{color:var(--color-text-primary);margin:0 0 1rem;font-size:1rem;font-weight:600}.analysis-charts-section .chart-container{position:relative}.analysis-charts-section .category-chart-legend{flex-direction:column;gap:.4rem;margin-top:1rem;font-size:.85rem;display:flex}.analysis-charts-section .category-legend-item{cursor:pointer;font-family:inherit;font-size:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:.5rem;width:100%;padding:.4rem;transition:background-color .15s;display:flex}.analysis-charts-section .category-legend-item:not(.is-static):hover{background:var(--color-surface-secondary,#f3f4f6)}.analysis-charts-section .category-legend-item.is-static{cursor:default}.analysis-charts-section .category-legend-item.is-hidden{opacity:.4}.analysis-charts-section .category-legend-item.is-hidden .category-legend-swatch{opacity:.5}.analysis-charts-section .category-legend-swatch{border-radius:3px;flex-shrink:0;width:14px;height:14px}.analysis-charts-section .category-legend-label{color:var(--color-text-primary);flex:1}.analysis-charts-section .category-legend-count{color:var(--color-text-secondary);font-weight:600}@media (width<=860px){.analysis-charts-section{grid-template-columns:1fr}}.mentions-card{background:var(--color-surface-primary);border-radius:12px;margin-bottom:1rem;padding:1.1rem;box-shadow:0 1px 4px #00000012}.mentions-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.mentions-header h3{color:var(--color-neutral-900);align-items:center;gap:.5rem;font-size:.88rem;font-weight:600;display:flex}.fx-label{background:var(--color-accent-light);color:var(--color-accent-blue);border-radius:4px;padding:.1rem .35rem;font-size:.65rem;font-weight:600}.mentions-header-right{align-items:center;gap:.5rem;display:flex}.page-info{color:var(--color-neutral-600);font-size:.75rem}.btn-page{border:1.5px solid var(--color-border-light);background:var(--color-surface-primary);cursor:pointer;color:var(--color-neutral-900);border-radius:6px;padding:.3rem .7rem;font-size:.78rem}.btn-page:hover:not(:disabled){border-color:var(--color-principal-mid);color:var(--color-principal-dark)}.btn-page:disabled{opacity:.4;cursor:not-allowed}.table-wrapper{overflow-x:auto}.mentions-table{border-collapse:collapse;width:100%;font-size:.8rem}.mentions-table th{text-align:left;border-bottom:2px solid var(--color-border-light);color:var(--color-neutral-600);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:.55rem .7rem;font-size:.7rem}.mentions-table td{border-bottom:1px solid var(--color-border-light);vertical-align:top;padding:.7rem}.mentions-table tr:last-child td{border-bottom:none}.mentions-table tbody tr:hover td{background:var(--color-neutral-25)}.date-cell{white-space:nowrap;font-size:.72rem}.platform-cell{text-align:center;padding:.5rem!important}.platform-content{flex-direction:column;align-items:center;gap:.3rem;display:flex}.platform-icon{object-fit:contain;width:32px;height:32px}.platform-name{color:var(--color-neutral-650);white-space:nowrap;font-size:.68rem;font-weight:500}.author-cell{max-width:150px;font-size:.74rem;overflow:hidden}.author-primary,.author-secondary{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.author-primary{color:var(--color-neutral-750);font-weight:600}.author-secondary{color:var(--color-neutral-600);margin-top:.1rem;font-size:.68rem}.badge{border-radius:999px;padding:.18rem .55rem;font-size:.7rem;font-weight:600;display:inline-block}.badge-positive{background:var(--color-success-50);color:var(--color-success-700)}.badge-negative{background:var(--color-error-100);color:var(--color-error-900)}.badge-neutral{background:var(--color-neutral-45);color:var(--color-neutral-650)}.badge-none{background:var(--color-neutral-45);color:var(--color-neutral-350)}.badge-media{background:var(--color-media-50);color:var(--color-media-700)}.badge-x{color:var(--color-surface-primary);background:#000}.category-badge{overflow-wrap:anywhere;border-radius:999px;max-width:150px;padding:.18rem .5rem;font-size:.68rem;font-weight:700;line-height:1.25;display:inline-block}.mention-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:360px;line-height:1.4;display:-webkit-box;overflow:hidden}.mention-link{color:var(--color-principal-dark);margin-top:.2rem;margin-right:.5rem;font-size:.7rem;text-decoration:none;display:inline-block}.mention-link:hover{text-decoration:underline}.filters-bar{background:var(--color-neutral-40);border:1px solid var(--color-border-light);border-radius:8px;margin-bottom:1rem;padding:.9rem}.filters-group{flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem;display:flex}.filter-select,.filter-input{border:1.5px solid var(--color-border-light);background:var(--color-surface-primary);color:var(--color-neutral-900);border-radius:6px;min-width:150px;padding:.45rem .7rem;font-size:.78rem;transition:border-color .2s}.filter-category{min-width:230px}.filter-input{flex:1;min-width:180px}.filter-select:focus,.filter-input:focus{border-color:var(--color-principal-mid);outline:none}.btn-clear-filters{border:1.5px solid var(--color-danger-500);background:var(--color-surface-primary);color:var(--color-danger-500);cursor:pointer;border-radius:6px;padding:.45rem .9rem;font-size:.78rem;font-weight:500;transition:all .2s}.btn-clear-filters:hover{background:var(--color-danger-500);color:var(--color-surface-primary)}.filter-results{color:var(--color-neutral-600);font-size:.72rem;font-weight:500}.filter-warning{color:var(--color-text-warning);margin-left:.5rem}.fx-badge{background:var(--color-accent-light);color:var(--color-accent-blue);border-radius:4px;margin-left:.3rem;padding:.1rem .35rem;font-size:.65rem;font-weight:600}.engagement{color:var(--color-neutral-600);flex-wrap:wrap;gap:.5rem;margin-top:.3rem;font-size:.7rem;display:flex}.engagement span{align-items:center;gap:.2rem;display:flex}.tag{background:var(--color-principal-lighter);color:var(--color-principal-darker);border-radius:999px;margin:.1rem;padding:.1rem .38rem;font-size:.66rem;display:inline-block}.none-text{color:var(--color-neutral-350);font-size:.72rem}.empty-state{text-align:center;color:var(--color-neutral-350);padding:2rem!important}.overlay{z-index:999;background:#ffffffeb;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:fixed;inset:0}.spinner{border:4px solid var(--color-accent-light);border-top-color:var(--color-accent-primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.overlay p{color:var(--color-accent-primary);font-weight:600}.app{background:var(--color-surface-secondary);flex-direction:column;min-height:100vh;display:flex}.app-tabs{background:var(--color-surface-primary);border-bottom:1px solid var(--color-border-default);gap:.35rem;padding:.6rem 2rem 0;display:flex}.app-tab{color:var(--color-neutral-700);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:.75rem 1rem .65rem;font-size:.88rem;font-weight:700;transition:color .15s,border-color .15s}.app-tab:hover{color:var(--color-secondary-dark)}.app-tab.active{border-bottom-color:var(--color-principal-mid);color:var(--color-secondary-darker)}.app-tab-external{background:0 0;border-radius:8px;align-items:center;gap:.5rem;min-height:40px;margin:.25rem 0;padding:.5rem 1rem;text-decoration:none;transition:all .3s;display:inline-flex}.app-tab-external:hover{color:#fff;background:#e30613;transform:translateY(-2px);box-shadow:0 4px 8px #e306134d}.app-tab-external:hover .tab-label{color:#fff}.app-tab-external:hover .tab-subtitle{color:#ffffffe6}.tab-icon{object-fit:cover;opacity:0;background:#fff;border-radius:50%;flex-shrink:0;width:0;height:0;padding:2px;transition:all .3s;overflow:hidden}.app-tab-external:hover .tab-icon{opacity:1;width:24px;height:24px;transform:scale(1)rotate(0)}.tab-text{flex-direction:column;justify-content:center;gap:.1rem;min-height:32px;display:flex}.tab-label{white-space:nowrap;font-size:.88rem;font-weight:700;line-height:1.2;transition:all .3s}.tab-subtitle{color:var(--color-neutral-600);opacity:0;white-space:nowrap;height:0;font-size:.7rem;font-weight:400;line-height:1.2;transition:all .3s;overflow:hidden}.app-tab-external:hover .tab-subtitle{opacity:1;color:#ffffffe6;height:auto}.app-view{flex:1;min-width:0}.dashboard-main{box-sizing:border-box;flex-direction:column;gap:1rem;width:100%;max-width:1400px;margin:0 auto;padding:1.25rem 2rem;display:flex}.error-box{background:var(--color-error-100);border:1px solid var(--color-error-300);color:var(--color-error-900);border-radius:8px;margin-bottom:1rem;padding:.65rem 1rem;font-size:.82rem}@media (width<=720px){.app-tabs{padding:.5rem 1rem 0}.app-tab{flex:1}.dashboard-main{padding:1rem}}
