:root{color-scheme:light;--bg: #f5f1ea;--bg-accent: #ebe6de;--surface: rgba(255, 255, 255, .82);--surface-solid: #fffdfa;--surface-strong: #f1eee7;--line: rgba(19, 56, 92, .11);--text: #16344d;--muted: #667c8f;--brand: #0d74c6;--brand-deep: #0d4d85;--brand-soft: rgba(13, 116, 198, .12);--cyan-soft: rgba(64, 169, 221, .16);--positive: #2d8f72;--negative: #b5594f;--warning: #c78e2f;--shadow: 0 18px 50px rgba(29, 50, 71, .08);--shadow-soft: 0 10px 22px rgba(29, 50, 71, .06);--radius-xl: 30px;--radius-lg: 22px;--radius-md: 16px;--radius-sm: 12px;--font-display: "Aptos Display", "Segoe UI Variable Display", "Segoe UI", sans-serif;--font-body: "Aptos", "Segoe UI Variable Text", "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--text);font-family:var(--font-body);background:radial-gradient(circle at top left,rgba(64,169,221,.18),transparent 28%),radial-gradient(circle at top right,rgba(13,116,198,.12),transparent 24%),linear-gradient(180deg,#f7f4ee,#f1ece4)}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}#root{min-height:100vh}.app-shell{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:100vh}.brand-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:30px 24px;background:linear-gradient(180deg,#f4f9ffcc,#f8f3ebf0),var(--surface-solid);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-lockup{display:flex;align-items:center;gap:18px;padding:10px 10px 18px}.brand-logo{width:138px;height:auto}.brand-lockup h1,.hero-copy h2,.section-head h3{margin:0;font-family:var(--font-display);letter-spacing:-.03em}.brand-lockup h1{font-size:1.65rem}.eyebrow{margin:0 0 8px;color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.sidebar-nav{display:grid;gap:8px;padding:12px 0 0}.sidebar-link{display:block;padding:14px 16px;text-decoration:none;color:var(--text);border:1px solid transparent;border-radius:var(--radius-md);transition:background-color .18s ease,border-color .18s ease,transform .18s ease}.sidebar-link:hover{background:#0d74c614;border-color:#0d74c624;transform:translate(2px)}.sidebar-footnote{padding:18px 14px 6px;border-top:1px solid var(--line)}.sidebar-footnote p{margin:12px 0 0;color:var(--muted);line-height:1.55}.status-pill,.muted-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;font-size:.78rem;font-weight:700}.status-pill-live{color:var(--brand-deep);background:var(--brand-soft)}.muted-chip{color:var(--brand-deep);background:#0d74c614}.content-shell{padding:24px 26px 40px}.top-bar{position:sticky;top:0;z-index:10;padding-bottom:16px;background:linear-gradient(180deg,rgba(245,241,234,.95),rgba(245,241,234,.8),transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.filters-grid{display:grid;grid-template-columns:1.3fr repeat(2,minmax(0,.8fr)) minmax(260px,1fr);gap:14px;padding:16px;background:#ffffffb3;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.filters-grid-wide{grid-template-columns:1.1fr repeat(3,minmax(0,.85fr)) minmax(240px,1fr)}.filter-field{display:grid;gap:8px}.filter-field span,.filter-status span{font-size:.82rem;color:var(--muted);font-weight:700}.filter-field input,.filter-field select{width:100%;padding:13px 14px;color:var(--text);background:#ffffffeb;border:1px solid var(--line);border-radius:var(--radius-sm);outline:none}.filter-field input:focus,.filter-field select:focus{border-color:#0d74c673;box-shadow:0 0 0 4px #0d74c614}.filter-status{display:flex;flex-direction:column;justify-content:center;padding:0 8px}.filter-status strong{font-size:1rem;font-family:var(--font-display)}.filter-status small{color:var(--muted);margin-top:4px}.page-body{display:grid;gap:20px}.error-banner{padding:14px 16px;border-radius:var(--radius-md);color:var(--negative);background:#b5594f1a;border:1px solid rgba(181,89,79,.18)}.hero-section{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.95fr);gap:22px;padding:34px;border-radius:var(--radius-xl);background:linear-gradient(135deg,#ffffffe0,#f0f7ffb8),linear-gradient(180deg,#0d74c60f,#40a9dd0a);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.55)}.hero-copy h2{font-size:clamp(2.2rem,4vw,3.4rem);line-height:.96;max-width:12ch}.hero-text{max-width:68ch;margin:18px 0 0;color:var(--muted);font-size:1rem;line-height:1.75}.context-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.context-chip{display:inline-flex;align-items:center;padding:10px 14px;border-radius:999px;background:#0d74c61f;color:var(--brand-deep);font-size:.88rem;font-weight:700}.context-chip-muted{background:#16344d0f;color:var(--muted)}.hero-meta{display:grid;gap:14px}.hero-badge{padding:18px 18px 20px;border-radius:var(--radius-lg);background:#fafdffeb;border:1px solid rgba(13,116,198,.12)}.hero-badge span{display:block;color:var(--muted);font-size:.82rem;margin-bottom:8px}.hero-badge strong{font-family:var(--font-display);font-size:1.15rem}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi-card{padding:18px 20px 20px;background:var(--surface);border:1px solid rgba(255,255,255,.5);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.kpi-card span{display:block;margin-bottom:10px;color:var(--muted);font-size:.82rem;font-weight:700}.kpi-card strong{font-size:clamp(2rem,3vw,2.7rem);font-family:var(--font-display);letter-spacing:-.05em}.kpi-primary strong{color:var(--brand-deep)}.kpi-neutral strong{color:#3d6580}.kpi-warning strong{color:var(--warning)}.kpi-positive strong{color:var(--positive)}.kpi-negative strong{color:var(--negative)}.content-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.section-card-full{grid-column:1 / -1}.section-card{grid-column:span 4;padding:22px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid rgba(255,255,255,.45);box-shadow:var(--shadow-soft)}.section-card-wide{grid-column:span 8}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.section-head h3{font-size:1.36rem}.section-head-tight{margin-bottom:14px}.section-actions{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.secondary-action{padding:10px 14px;border:1px solid rgba(13,116,198,.14);border-radius:999px;background:#0d74c614;color:var(--brand-deep);font-weight:700}.sentiment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sentiment-tile{padding:18px;border-radius:var(--radius-md);background:#ffffffb8;border:1px solid rgba(13,116,198,.08)}.sentiment-tile span{color:var(--muted);font-size:.84rem;font-weight:700}.sentiment-tile strong{display:block;margin-top:10px;font-family:var(--font-display);font-size:2rem}.sentiment-tile-emphasis{background:linear-gradient(180deg,#0d74c61f,#ffffffdb)}.insight-copy{display:grid;gap:10px;margin-top:18px}.insight-copy p{margin:0;color:var(--muted);line-height:1.7}.reaction-stack{display:grid;gap:12px}.reaction-row{display:grid;gap:8px}.reaction-label{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.9rem}.reaction-label span{color:var(--muted);font-weight:700}.reaction-bar{height:11px;border-radius:999px;background:#0d74c614;overflow:hidden}.reaction-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),#34a8d8)}.wordcloud-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);gap:22px}.wordcloud-layout-expanded{grid-template-columns:minmax(0,1.15fr) minmax(260px,.7fr)}.wordcloud-cloud{display:flex;flex-wrap:wrap;align-content:flex-start;gap:16px 18px;min-height:220px;padding:8px 6px 14px}.word-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;padding:var(--word-padding-y, 10px) var(--word-padding-x, 14px);border:0;color:var(--brand-deep);background:#0d74c614;border-radius:999px;box-shadow:var(--shadow-soft);transform:scale(var(--word-scale, 1));transform-origin:left center;transition:transform .18s ease,background-color .18s ease,color .18s ease;font-size:var(--word-font-size, 1rem)}.word-chip:hover,.word-chip.is-active{color:#fff;background:var(--brand);transform:translateY(-1px) scale(var(--word-scale, 1))}.word-chip-term{font-weight:700}.word-chip-meta{font-size:.72rem;opacity:.88}.wordcloud-detail{padding:18px;border-radius:var(--radius-md);background:#f6faffe6;border:1px solid rgba(13,116,198,.12)}.wordcloud-detail h4{margin:0 0 10px;font-family:var(--font-display);font-size:1.3rem}.wordcloud-detail p{margin:0;color:var(--muted);line-height:1.7}.term-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.term-stat-card{padding:12px;border-radius:var(--radius-sm);background:#ffffffb8;border:1px solid rgba(13,116,198,.08)}.term-stat-card span{display:block;color:var(--muted);font-size:.78rem;margin-bottom:8px}.term-stat-card strong{font-family:var(--font-display);font-size:1.2rem}.comments-panel{grid-column:1 / -1;padding:18px;border-radius:var(--radius-md);background:#f6faffe6;border:1px solid rgba(13,116,198,.12)}.comment-list{display:grid;gap:12px}.comment-card{padding:16px;border-radius:var(--radius-md);background:#ffffffc7;border:1px solid rgba(13,116,198,.08)}.comment-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:10px}.comment-head strong,.comment-context strong{display:block}.comment-head span,.comment-context span,.comment-metrics span{color:var(--muted);font-size:.82rem}.comment-metrics{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.comment-metrics a{color:var(--brand-deep);font-weight:700;text-decoration:none}.comment-message{margin:0 0 12px;line-height:1.7}.comment-message mark{padding:0 4px;color:var(--brand-deep);background:#0d74c624;border-radius:6px}.comment-context{display:grid;gap:6px}.table-wrap{overflow-x:auto}.content-table{width:100%;min-width:1180px;border-collapse:collapse}.content-table th,.content-table td{padding:14px 12px;border-bottom:1px solid rgba(13,116,198,.08);text-align:left;vertical-align:top}.content-table th{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.row-selected{background:#0d74c60d}.content-cell{display:grid;gap:6px;min-width:280px}.content-cell span{color:var(--muted);font-size:.84rem}.row-actions{display:grid;gap:8px}.row-actions button{padding:10px 12px;border:1px solid rgba(13,116,198,.14);border-radius:999px;background:#0d74c614;color:var(--brand-deep);font-weight:700;white-space:nowrap}.expanded-row td{padding:0}.expanded-panel{padding:18px;background:#f5f9ffcc}.expanded-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.expanded-block{padding:14px;border-radius:var(--radius-md);background:#ffffffd1;border:1px solid rgba(13,116,198,.08)}.mini-stat-list{display:grid;gap:8px;padding-left:18px;margin:0;color:var(--muted)}.mini-tag-list{display:flex;flex-wrap:wrap;gap:8px}.mini-tag{padding:8px 10px;border:0;border-radius:999px;color:var(--brand-deep);background:#0d74c61a;font-weight:700}.empty-inline{color:var(--muted);font-size:.85rem}.expanded-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px}.expanded-footer a,.expanded-footer button{color:var(--brand-deep);font-weight:700;text-decoration:none}.expanded-footer button{padding:10px 14px;border:1px solid rgba(13,116,198,.14);border-radius:999px;background:#0d74c614}.empty-state{padding:18px;color:var(--muted);text-align:center}.assistant-panel{background:linear-gradient(180deg,#11436dfa,#0c304efa),#113f67;color:#eef5fb}.assistant-panel .eyebrow,.assistant-panel .section-head h3,.assistant-panel .assistant-response p{color:inherit}.assistant-prompts{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.assistant-prompts button{padding:12px 14px;text-align:left;color:#eef5fb;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm)}.assistant-response{display:grid;gap:12px}.assistant-response p{margin:0;color:#eef5fbdb;line-height:1.7}.asset-list{display:grid;gap:10px}.asset-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:15px 16px;text-align:left;border-radius:var(--radius-md);border:1px solid rgba(13,116,198,.08);background:#ffffffb8}.asset-row.is-selected{border-color:#0d74c647;background:#0d74c614}.asset-row strong{display:block}.asset-row span,.asset-row small{color:var(--muted)}.ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.ops-card{padding:18px;border-radius:var(--radius-md);background:#ffffffbf;border:1px solid rgba(13,116,198,.08)}.ops-card-head{margin-bottom:14px}.ops-card-head strong{display:block}.ops-card-head span,.ops-card dt{color:var(--muted)}.ops-card dl{display:grid;gap:12px;margin:0}.ops-card div{display:grid;gap:4px}.ops-card dd,.ops-card dt{margin:0}@media (max-width: 1180px){.app-shell{grid-template-columns:1fr}.brand-sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line)}.filters-grid,.hero-section,.wordcloud-layout{grid-template-columns:1fr}.content-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.section-card,.section-card-wide{grid-column:span 6}.section-card-full{grid-column:1 / -1}.expanded-grid,.term-stat-grid{grid-template-columns:1fr}}@media (max-width: 800px){.content-shell{padding:16px}.kpi-grid,.sentiment-grid{grid-template-columns:1fr 1fr}.hero-section,.section-card,.top-bar .filters-grid{padding:18px}.comment-head,.expanded-footer{flex-direction:column;align-items:flex-start}}@media (max-width: 560px){.kpi-grid,.sentiment-grid,.content-grid{grid-template-columns:1fr}.section-card,.section-card-wide{grid-column:span 1}.brand-lockup{flex-direction:column;align-items:flex-start}.brand-logo{width:124px}}.sidebar-link.is-active{background:#0d74c61a;border-color:#0d74c633;color:var(--brand-deep)}.plain-list{display:grid;gap:12px}.insight-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-radius:var(--radius-md);background:#ffffffb8;border:1px solid rgba(13,116,198,.08)}.insight-row span{color:var(--muted)}.fullscreen-loader{min-height:100vh;display:grid;place-items:center;font-family:var(--font-display);font-size:1.15rem}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,460px);padding:34px;border-radius:var(--radius-xl);background:#ffffffdb;border:1px solid rgba(255,255,255,.5);box-shadow:var(--shadow)}.login-card h1{margin:0;font-family:var(--font-display);font-size:2.2rem}.login-logo{width:156px;height:auto;margin-bottom:20px}.login-copy{color:var(--muted);line-height:1.7}.login-form{display:grid;gap:14px;margin-top:20px}.primary-login{padding:14px 18px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--brand),var(--brand-deep));color:#fff;font-weight:700}.session-card{display:grid;gap:8px;padding:18px 14px 6px;border-top:1px solid var(--line)}.session-card span{color:var(--muted)}.logout-action{margin-top:6px}.hero-badge-positive{background:#2d8f721a;border-color:#2d8f722e}.hero-badge-negative{background:#b5594f1a;border-color:#b5594f2e}.hero-badge-neutral{background:#0d74c61a;border-color:#0d74c629}.sentiment-caption{display:inline-flex;margin-top:10px;font-size:.84rem;font-weight:700}.sentiment-caption-positive{color:var(--positive)}.sentiment-caption-neutral{color:var(--brand-deep)}.sentiment-caption-negative{color:var(--negative)}.table-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}.inline-field{display:grid;gap:8px;min-width:min(420px,100%)}.inline-field span{color:var(--muted);font-size:.82rem;font-weight:700}.inline-field input{width:100%;padding:13px 14px;color:var(--text);background:#ffffffeb;border:1px solid var(--line);border-radius:var(--radius-sm)}.table-toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.table-scrollable{max-height:860px;overflow:auto;border-radius:var(--radius-md);border:1px solid rgba(13,116,198,.08)}.content-table th{position:sticky;top:0;background:#f5f9fffa;z-index:1}.sentiment-badge{display:inline-flex;align-items:center;padding:8px 10px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.sentiment-badge-positive{color:var(--positive);background:#2d8f721f}.sentiment-badge-neutral{color:var(--brand-deep);background:#0d74c61a}.sentiment-badge-negative{color:var(--negative);background:#b5594f1f}.expanded-comments{min-height:100%}.post-comment-list{display:grid;gap:10px;max-height:340px;overflow:auto}.post-comment-card{padding:14px;border-radius:var(--radius-sm);background:#f6faffe6;border:1px solid rgba(13,116,198,.08)}.post-comment-card strong,.post-comment-card span{display:block}.post-comment-card span{color:var(--muted);margin:4px 0 8px;font-size:.82rem}.post-comment-card p{margin:0;line-height:1.65}.assistant-screen{display:grid;gap:18px}.assistant-demo-card p:last-child{margin:0;color:var(--muted);line-height:1.7}.assistant-chat-shell{display:grid;gap:14px;min-height:calc(100vh - 210px);padding:22px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid rgba(255,255,255,.45);box-shadow:var(--shadow-soft)}.assistant-message-list{display:grid;gap:12px;align-content:start;max-height:60vh;overflow:auto}.chat-message{width:min(880px,100%);padding:16px 18px;border-radius:18px}.chat-message p,.chat-message small{margin:0}.chat-message small{display:block;margin-top:8px;color:inherit;opacity:.8}.chat-message-user{justify-self:end;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-deep))}.chat-message-assistant{justify-self:start;background:#f5f9fff2;border:1px solid rgba(13,116,198,.1)}.assistant-chat-form{display:grid;gap:12px}.assistant-chat-form textarea{min-height:130px;resize:vertical;padding:16px;color:var(--text);background:#ffffffeb;border:1px solid var(--line);border-radius:var(--radius-md)}.users-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.users-form input,.users-form select{width:100%;padding:13px 14px;color:var(--text);background:#ffffffeb;border:1px solid var(--line);border-radius:var(--radius-sm)}@media (max-width: 800px){.users-form{grid-template-columns:1fr}}
