:root{--caribbean: #006057;--ash-gray: #9cc0bd;--prussian: #08253c;--charcoal: #25404d;--ut-orange: #ff8400;--bg-deep: #061018;--bg-panel: #0c1824;--bg-elevated: #122433;--border: #1e3a4a;--text: #e8f0ee;--text-muted: #9cc0bd;--danger: #c94c4c;--font: "DM Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg-deep);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--ash-gray);text-decoration:none}a:hover{color:var(--text)}button{font-family:var(--font);cursor:pointer}input,textarea{font-family:var(--font)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--charcoal);border-radius:4px}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:240px;flex-shrink:0;background:var(--prussian);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-logo{padding:1.25rem 1rem;font-weight:700;font-size:1.1rem;color:var(--ash-gray);border-bottom:1px solid var(--border)}.sidebar-section{padding:.75rem 1rem .25rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ut-orange)}.sidebar a{display:flex;align-items:center;gap:.65rem;padding:.45rem 1rem;color:var(--text-muted);border-radius:6px;margin:0 .5rem;font-size:.9rem}.sidebar-link-icon{flex-shrink:0;display:flex;opacity:.92}.sidebar-link-label{min-width:0;flex:1}.sidebar-nav-badge{flex-shrink:0;min-width:1.25rem;padding:.1rem .45rem;border-radius:999px;font-size:.7rem;font-weight:600;line-height:1.2;text-align:center;background:var(--ut-orange);color:var(--prussian)}.sidebar a:hover,.sidebar a.active{background:var(--bg-elevated);color:var(--text)}.sidebar a.active .sidebar-link-icon{color:var(--ut-orange)}.cc-chat-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:12px;background:var(--surface-elevated, #151d28);min-height:420px;max-height:min(72vh,640px);margin-top:1rem;overflow:hidden}.cc-chat-header{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap}.cc-chat-header-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.cc-chat-brand-select{flex:1;min-width:180px;max-width:320px;margin:0}.cc-chat-hint{padding:12px 14px;margin:0;font-size:.88rem;color:var(--text-muted)}.cc-chat-scroll{flex:1;overflow-y:auto;padding:12px 14px 8px;display:flex;flex-direction:column;gap:10px}.cc-msg-user-wrap{display:flex;justify-content:flex-end}.cc-msg-asst-wrap{display:flex;justify-content:flex-start}.cc-bubble-user{max-width:85%;padding:10px 14px;border-radius:12px 12px 4px;background:var(--caribbean);color:#fff;font-size:.9rem;white-space:pre-wrap}.cc-bubble-asst{max-width:92%;padding:12px 14px;border-radius:12px 12px 12px 4px;background:var(--surface, #1a2332);border:1px solid var(--border);font-size:.88rem;line-height:1.45}.cc-bubble-asst pre{background:#0d1117;padding:10px;border-radius:8px;overflow-x:auto;font-size:.8rem}.cc-bubble-asst table{border-collapse:collapse;width:100%;font-size:.82rem}.cc-bubble-asst th,.cc-bubble-asst td{border:1px solid var(--border);padding:6px 8px}.cc-action-list{margin:10px 0 0;padding-left:1.1rem;font-size:.8rem}.cc-action-ok{color:var(--caribbean)}.cc-action-muted{color:var(--text-muted)}.cc-typing{display:flex;gap:6px;padding:12px 16px;background:var(--surface);border-radius:12px;border:1px solid var(--border)}.cc-typing-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:cc-pulse 1.2s ease-in-out infinite}.cc-typing-dot:nth-child(2){animation-delay:.15s}.cc-typing-dot:nth-child(3){animation-delay:.3s}@keyframes cc-pulse{0%,to{opacity:.35}50%{opacity:1}}.cc-chat-err{color:var(--danger);font-size:.85rem;margin:0 14px 8px}.cc-chat-input-row{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--border);align-items:flex-end}.cc-chat-input{flex:1;margin:0;resize:none;min-height:44px}.cc-chat-send{flex-shrink:0}.main-col{flex:1;display:flex;flex-direction:column;min-width:0;background:linear-gradient(160deg,var(--bg-deep) 0%,#0a1520 100%)}.top-bar{display:flex;align-items:center;gap:1rem;padding:.65rem 1.25rem;border-bottom:1px solid var(--border);background:var(--bg-panel)}.top-bar-sync{display:flex;align-items:center;gap:.65rem;margin-left:auto}.top-bar-sync-hint{font-size:.8rem;color:var(--text-muted);max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-bar h1{margin:0;font-size:1.05rem;font-weight:600;flex:1}.content-row{flex:1;display:flex;min-height:0}.page-scroll{flex:1;overflow:auto;padding:1.25rem}.chat-panel{width:360px;flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-panel);display:flex;flex-direction:column;transition:width .2s ease,margin .2s ease}.chat-panel.collapsed{width:0;border-left:none;overflow:hidden}.chat-toggle{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:20;background:var(--caribbean);color:#fff;border:none;padding:.5rem .35rem;border-radius:8px 0 0 8px;font-size:.75rem;writing-mode:vertical-rl}.brand-select{min-width:200px;padding:.4rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text)}.btn{padding:.45rem .9rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:.85rem}.btn-primary{background:var(--caribbean);border-color:var(--caribbean);color:#fff}.btn-ghost{background:transparent}.btn-secondary{background:var(--bg-elevated);border-color:var(--border);color:var(--text)}tr.products-table-row-expandable{cursor:pointer;transition:background .12s ease}tr.products-table-row-expandable:hover{background:var(--bg-elevated)}tr.products-table-expand-row:hover{background:var(--bg-deep)}.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:1rem}.grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px}table.data{width:100%;border-collapse:collapse;font-size:.85rem}table.data th,table.data td{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--border)}table.data th{background:var(--bg-elevated);color:var(--ash-gray);font-weight:600}table.research-table{font-size:.8rem}table.research-table th,table.research-table td{white-space:nowrap}table.research-table th:first-child,table.research-table td:first-child{white-space:normal;min-width:160px}.research-match-pill{display:inline-block;padding:.15rem .45rem;border-radius:6px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border:1px solid var(--border)}.research-match-pill[data-match=exact]{color:var(--caribbean);border-color:#00605773;background:#0060571f}.research-match-pill[data-match=phrase]{color:var(--ut-orange);border-color:#ff840066;background:#ff840014}.research-match-pill[data-match=broad]{color:var(--ash-gray)}.research-match-pill[data-match=archive]{color:var(--text-muted);opacity:.85}.time-range-bar{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}.time-range-bar button{padding:.35rem .65rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);font-size:.8rem}.time-range-bar button.active{border-color:var(--ut-orange);color:var(--ut-orange);background:#ff840014}.report-time-controls{margin-bottom:1rem}.report-time-controls-custom{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.65rem;font-size:.85rem;color:var(--text-muted)}.report-time-controls-custom input[type=date]{padding:.3rem .45rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:.8rem}.report-time-controls-label{font-weight:600;color:var(--ash-gray);margin-right:.15rem}.report-time-controls-to{color:var(--text-muted)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(ellipse at 30% 20%,#0d3d38 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,#08253c 0%,transparent 45%),var(--bg-deep)}.login-card{width:100%;max-width:400px;padding:2rem;border-radius:16px;border:1px solid var(--border);background:var(--bg-panel);box-shadow:0 24px 80px #00000073}.login-card h2{margin:0 0 .5rem;font-size:1.5rem}.login-card p{margin:0 0 1.5rem;color:var(--text-muted);font-size:.9rem}.login-card input{width:100%;padding:.65rem .85rem;margin-bottom:.75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-deep);color:var(--text)}.login-card .btn-primary{width:100%;margin-top:.5rem;padding:.65rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#061018bf;display:flex;align-items:center;justify-content:center;padding:1.5rem}.modal-card{width:100%;max-width:440px;background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;padding:1.5rem;box-shadow:0 24px 80px #00000080}.modal-card code{font-size:.85em;color:var(--ut-orange)}.modal-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ash-gray);margin:.75rem 0 .35rem}.modal-label:first-of-type{margin-top:0}.modal-input{width:100%;padding:.55rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-deep);color:var(--text);font-size:.95rem}.approvals-page{max-width:960px}.approvals-section-title{font-size:1rem;margin:0 0 12px;color:var(--ash-gray);font-weight:600}.approvals-brand-group{margin-bottom:14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated);overflow:hidden}.approvals-brand-summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;font-weight:600;background:#0000001f;border-bottom:1px solid var(--border)}.approvals-brand-summary::-webkit-details-marker{display:none}.approvals-brand-title{color:var(--text);font-size:1rem}.approvals-brand-id{font-size:.78rem;font-weight:500;color:var(--text-muted);font-family:ui-monospace,monospace}.approvals-brand-count{margin-left:auto;font-size:.8rem;font-weight:600;color:var(--ut-orange);padding:2px 8px;border-radius:999px;background:#ff84001a;border:1px solid rgba(255,132,0,.25)}.approvals-brand-body{padding:12px 12px 14px;display:flex;flex-direction:column;gap:12px}.approvals-strategy-card{border:1px solid var(--border);border-radius:10px;padding:14px 16px;background:var(--surface);box-shadow:0 1px #ffffff08}.approvals-strategy-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.approvals-strategy-summary-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:.88rem}.approvals-strategy-brand{font-weight:700;color:var(--text);font-size:.95rem}.approvals-strategy-meta{color:var(--text-muted);font-size:.8rem}.approvals-strategy-status{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:4px;background:#ffffff0f;border:1px solid var(--border);color:var(--ash-gray)}.approvals-strategy-status[data-status=pending]{color:var(--ut-orange);border-color:#ff840059}.approvals-strategy-snippet{margin:8px 0 4px;font-size:.88rem;color:var(--text);line-height:1.45}.approvals-strategy-ids{font-size:.75rem;color:var(--text-muted)}.approvals-strategy-error{color:var(--danger);margin-top:8px;font-size:.85rem}.approvals-strategy-body{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.approvals-prose-block{white-space:pre-wrap;margin:0;font-family:inherit;color:var(--text);font-size:.86rem;line-height:1.45}.approvals-comments-block{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.approvals-comments-title{margin:0 0 8px;font-size:.92rem}.approvals-comments-list{list-style:none;padding:0;margin:0 0 12px}.approvals-comments-empty{color:var(--text-muted);font-size:.85rem}.approvals-comment-item{margin-bottom:8px;padding:8px 10px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;font-size:.85rem}.approvals-comment-meta{color:var(--text-muted);margin-bottom:4px;font-size:.78rem}.approvals-other-card{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--surface)}.approvals-other-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}.approvals-other-preview{margin:10px 0 0;font-size:.82rem;color:var(--text-muted);line-height:1.4;word-break:break-word}.approvals-other-full{margin-top:10px;padding:10px;font-size:.75rem;overflow:auto;max-height:320px;border-radius:8px;border:1px solid var(--border);background:var(--bg-deep);color:var(--text-muted)}.page-pad{padding:0 1rem 2rem;max-width:960px}.page-title{font-size:1.35rem;margin:0 0 .25rem}.page-subtitle{margin:0}.form-label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--text-muted)}.input,select.input{padding:.45rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:.9rem}.activity-card-header{width:100%;display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;background:transparent;border:none;color:inherit;cursor:pointer;font:inherit}.activity-card-header:hover{background:var(--bg-elevated)}.activity-status{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:.12rem .4rem;border-radius:4px}.activity-status-ok{background:#50b47833;color:#7dcea0}.activity-status-partial{background:#ff8c3c26;color:var(--ut-orange)}.activity-status-failed{background:#dc505033;color:#e74c3c}.activity-action-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.activity-action-item{border-left:2px solid var(--border);padding-left:.65rem}.activity-action-meta{font-size:.8rem;color:var(--ash-gray)}.activity-action-desc{margin:.35rem 0 0;font-size:.75rem;white-space:pre-wrap;word-break:break-word;color:var(--text-muted);font-family:ui-monospace,monospace}.activity-policy{font-size:.7rem;font-weight:600;margin-right:.35rem}.activity-policy-approved{color:#7dcea0}.activity-policy-blocked{color:#e74c3c}.activity-policy-needs{color:var(--ut-orange)}
