:root{--bg: #f2f5fb;--surface: #ffffff;--surface-soft: #f7f9fd;--line: #dde6f1;--text: #0f172a;--muted: #516176;--accent: #2563eb;--accent-strong: #1d4ed8;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 18px 40px rgba(15, 23, 42, .1);--radius: 16px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:Poppins,Avenir Next,Helvetica Neue,Arial,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}button,input,select{font:inherit}.app-shell{height:100vh;display:grid;grid-template-columns:244px 1fr;overflow:hidden}.sidebar{border-right:1px solid #1f2a3a;background:linear-gradient(180deg,#0f172a,#111d30);color:#c6d2e3;padding:20px 14px;display:grid;grid-template-rows:auto 1fr auto;gap:20px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;justify-content:flex-start;align-items:center;padding:10px;border:1px solid #2d425f;border-radius:12px;background:#fff}.brand-logo{width:182px;max-width:100%;height:auto;display:block}.side-nav{display:grid;gap:8px;align-content:start}.nav-button{justify-content:flex-start;width:100%;border-color:transparent;background:transparent;color:#c6d2e3;font-weight:500}.nav-button.active{border-color:#304464;background:#22314a;color:#fff;font-weight:600}.nav-button:hover:not(:disabled){border-color:#2d425f;background:#1a273d;color:#fff}.sidebar-footer{display:grid;gap:8px}.sidebar-contact{display:grid;gap:4px}.sidebar-contact-title{margin:0;font-size:.74rem;font-weight:500;color:#8ca2c1}.sidebar-contact-links{display:inline-flex;align-items:center;gap:8px}.sidebar-contact-links a{color:#b7c9e3;text-decoration:none;font-size:.8rem;transition:color .12s ease}.sidebar-contact-links a:hover{color:#e2ebfb;text-decoration:underline;text-underline-offset:2px}.sidebar-contact-sep{color:#6f84a5;font-size:.8rem}.main-content{padding:24px 26px;display:grid;gap:20px;align-content:start;height:100vh;overflow-y:auto;background:radial-gradient(circle at 20% -15%,#dbeafe 0%,transparent 38%),linear-gradient(180deg,#f8fbff,#f2f5fb 44%,#f2f5fb)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:14px 18px;box-shadow:var(--shadow-sm)}.topbar h2{margin:0;font-size:1.18rem;font-family:Helvetica Neue,Arial,Segoe UI,sans-serif;font-weight:600;letter-spacing:-.02em}.topbar-title{display:flex;align-items:center;gap:10px}.topbar-mark{width:26px;height:26px;flex:0 0 26px}.topbar p{margin:5px 0 0;color:var(--muted);font-size:.83rem}.topbar-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.meta-pill{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:.79rem;background:var(--surface)}.page-section{display:grid;gap:20px}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.page-card{padding:20px 22px}.section-title{margin:0;font-size:1.02rem}.muted-text,.empty-state{color:var(--muted)}.small-text{font-size:.8rem}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.card-head p{margin:4px 0 0}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.overview-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{padding:16px;display:grid;gap:6px;align-content:start}.stat-label{margin:0;color:var(--muted);font-size:.8rem}.stat-value{margin:0;font-size:1.5rem;font-weight:700}.stat-hint{margin:0;color:var(--muted);font-size:.78rem}.overview-main-grid{display:grid;gap:16px;grid-template-columns:1.4fr 1fr}.overview-side-grid{display:grid;gap:16px;align-content:start}.chart-card{min-height:250px}.dashboard-chart-list{margin-top:12px;display:grid;gap:10px}.dashboard-chart-row{display:grid;gap:6px}.dashboard-chart-labels{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.84rem}.dashboard-chart-track{border:1px solid var(--line);background:#f3f7fd;border-radius:999px;height:11px;overflow:hidden}.dashboard-chart-fill{height:100%;border-radius:999px;width:0;background:#94a3b8}.dashboard-chart-fill.critical{background:#ef4444}.dashboard-chart-fill.high{background:#f97316}.dashboard-chart-fill.medium{background:#f59e0b}.dashboard-chart-fill.low{background:#22c55e}.dashboard-chart-fill.neutral{background:#94a3b8}.action-list{margin:0;padding-left:18px;display:grid;gap:10px}.activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.activity-summary-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.activity-summary-card{border:1px solid #dbe5f4;border-radius:12px;background:#fbfdff;padding:10px 12px;display:grid;gap:4px}.activity-summary-label{font-size:.75rem;color:#64748b}.activity-summary-card strong{font-size:1.2rem}.mini-title{margin:0 0 8px;font-size:.85rem}.activity-note{margin:0 0 8px}.activity-brief{border:1px solid #dce6f7;border-radius:12px;background:#f8fbff;padding:10px 12px;margin-bottom:12px}.activity-brief-label{display:inline-flex;border:1px solid #c9daf8;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:600;color:#1e40af;background:#fff}.activity-brief p{margin:8px 0 0;font-size:.84rem;color:#334155}.activity-panel{border:1px solid #dce6f5;border-radius:12px;background:#fbfdff;padding:12px}.activity-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.activity-status-pill{border:1px solid #d6e3f8;border-radius:999px;padding:3px 8px;font-size:.7rem;font-weight:600;background:#f8fbff;color:#1d4ed8}.activity-status-pill.live{border-color:#bbf7d0;color:#166534;background:#f0fdf4}.activity-status-pill.fallback{border-color:#fde68a;color:#92400e;background:#fffbeb}.activity-status-pill.delayed,.activity-status-pill.unavailable{border-color:#fecaca;color:#991b1b;background:#fef2f2}.compact-link-list{margin:0;padding-left:18px;display:grid;gap:6px;font-size:.82rem}.compact-link-list a{color:#1f5ecf;text-decoration:none}.compact-link-list a:hover{text-decoration:underline}.inline-error-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.section-subtitle{margin-top:20px}.page-intro{margin:0 0 12px}.table-wrap{border:1px solid var(--line);border-radius:12px;overflow:auto}.data-table{width:100%;min-width:900px;border-collapse:collapse}.data-table.compact{min-width:760px}.data-table th,.data-table td{text-align:left;font-size:.85rem;padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top}.data-table th{color:var(--muted);font-weight:600;background:#f6f9fd}.data-table tbody tr:hover{background:#f7faff}.clickable-row{cursor:pointer}.action-row{display:flex;align-items:center;gap:12px;row-gap:10px;flex-wrap:wrap}.action-row .btn{min-height:34px}.linked-evidence-stack{display:grid;gap:6px;font-size:.8rem}.chip-row{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.evidence-chip{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid #d3deed;border-radius:999px;color:#22324a;background:#fbfdff;text-decoration:none;font-size:.76rem;line-height:1.2}.evidence-chip:hover{border-color:#a7c3f4;background:#eef4ff}.chip-more{color:var(--muted);font-size:.76rem}.risk-badge{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:700;letter-spacing:.25px}.risk-badge.critical{color:#991b1b;border-color:#fecaca;background:#fef2f2}.risk-badge.high{color:#9a3412;border-color:#fed7aa;background:#fff7ed}.risk-badge.medium{color:#854d0e;border-color:#fde68a;background:#fefce8}.risk-badge.low{color:#166534;border-color:#bbf7d0;background:#f0fdf4}.risk-stack{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.risk-score{color:var(--muted);font-size:.8rem}.filter-row{display:grid;grid-template-columns:1.8fr repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.filter-row input,.filter-row select{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);color:var(--text)}.filter-row input:focus,.filter-row select:focus{outline:2px solid #a8c4f6;outline-offset:1px}.reminders-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.reminder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reminder-card{border:1px solid var(--line);border-radius:12px;background:#f7f9fd;padding:14px}.reminder-card-focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.reminder-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.reminder-head h5{margin:0}.reminder-card p{margin:8px 0 0;font-size:.86rem}.reminder-card .action-row,.reminder-preview .action-row,.reminder-inline-card .action-row{margin-top:12px}.reminder-card pre,.reminder-preview pre{margin:10px 0 0;white-space:pre-wrap;font-size:.8rem;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px;line-height:1.4}.prompt-list{display:flex;flex-wrap:wrap;gap:10px}.prompt-chip{border-radius:999px;text-align:left}.assistant-chat-shell{max-width:1040px;width:100%;margin:0 auto;display:grid;gap:14px;background:transparent}.assistant-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 0}.assistant-head-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.assistant-new-chat-btn{border:none;background:transparent;color:#66768c;padding:4px 6px}.assistant-new-chat-btn:hover:not(:disabled){color:#1f2937;background:#eef2f7}.assistant-chat-head p{margin:6px 0 0}.assistant-chat-prompts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding-bottom:2px}.assistant-chat-log{min-height:min(56vh,620px);max-height:min(62vh,700px);overflow:auto;padding:10px 4px 12px;display:grid;align-content:start;gap:16px}.assistant-empty-state{display:grid;justify-items:center;text-align:center;align-content:center;gap:10px;min-height:min(44vh,500px);padding:16px 20px}.assistant-empty-state h4{margin:0;font-size:clamp(1.7rem,2.4vw,2.2rem);font-weight:500}.assistant-empty-state p{margin:0;max-width:600px;font-size:.95rem}.assistant-turn{display:flex;align-items:flex-start;gap:10px}.assistant-turn.user{flex-direction:row-reverse}.assistant-turn.assistant{flex-direction:row}.assistant-avatar{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:600;text-transform:lowercase;border:1px solid #dbe3ef;background:#f8fafd;color:#334155;flex:0 0 28px}.assistant-avatar.assistant{border-color:#c9d8f8;background:#eef4ff;color:#1e3a8a}.assistant-avatar.user{border-color:#bfd2fc;background:#e8f0ff;color:#1d4ed8}.assistant-avatar-logo{width:16px;height:16px;display:block}.assistant-turn-content{max-width:min(84%,760px);width:100%;display:grid;gap:6px}.assistant-turn-meta{display:flex;align-items:center;gap:6px;font-size:.73rem;color:#64748b;padding:0 2px}.assistant-turn.user .assistant-turn-meta{justify-content:flex-end}.assistant-turn-bubble{max-width:100%;border-radius:14px;padding:12px 14px;border:1px solid #e5eaf2;background:#fff;box-shadow:0 1px 1px #0f172a08}.assistant-turn-bubble.user{border-color:#d5e1f7;background:#f4f8ff}.assistant-turn-bubble.assistant{background:#fff}.assistant-turn-bubble.typing{color:var(--muted);display:inline-flex;align-items:center;gap:5px;min-height:40px}.typing-dot{width:6px;height:6px;border-radius:999px;background:#6b7280;opacity:.45;animation:typingPulse 1.1s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typingPulse{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-2px);opacity:.95}}.chat-message-text{margin:0;line-height:1.56;font-size:.92rem}.chat-message-paragraph{margin:0 0 8px}.chat-message-paragraph:last-child{margin-bottom:0}.chat-message-text ul,.chat-message-text ol{margin:6px 0 8px 18px;padding:0;display:grid;gap:4px}.chat-message-text code{border:1px solid #dbe4f0;border-radius:6px;background:#f7f9fd;padding:1px 5px;font-size:.8rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.chat-message-text a{color:#1d4ed8;text-decoration:none}.chat-message-text a:hover{text-decoration:underline}.assistant-inline-card{margin-top:12px;border:1px solid #e6ecf5;border-radius:10px;background:#fcfdff;padding:10px 12px}.assistant-inline-card h5{margin:0 0 8px;font-size:.82rem}.assistant-inline-card p{margin:0}.assistant-inline-actions{margin-top:12px;padding-top:10px;border-top:1px solid #ebf0f7;justify-content:flex-start}.assistant-chat-form{position:sticky;bottom:0;z-index:3;border:1px solid #d8e0ea;border-radius:999px;background:#fff;padding:8px 8px 8px 14px;box-shadow:0 4px 16px #0f172a0a;display:flex;align-items:flex-end;gap:8px}.assistant-chat-form textarea{resize:none;min-height:24px;max-height:140px;border:none;border-radius:0;padding:10px 6px 10px 0;background:#fff;color:var(--text);line-height:1.45;flex:1}.assistant-chat-form textarea:focus{outline:none}.assistant-chat-form-actions{display:flex;justify-content:flex-end;gap:8px;flex:0 0 auto}.assistant-chat-form-actions .btn{border-radius:999px;min-width:106px}.assistant-send-btn{min-width:40px!important;width:40px;height:40px;padding:0;border-radius:999px!important;display:inline-flex;align-items:center;justify-content:center}.assistant-send-btn svg{width:15px;height:15px;display:block}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a42;display:flex;justify-content:flex-end;z-index:40}.drawer{width:min(880px,100%);height:100%;overflow:auto;background:var(--surface);border-left:1px solid var(--line);padding:20px;display:grid;align-content:start;gap:14px}.project-drawer{width:min(980px,100%)}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.drawer-head h3{margin:0}.drawer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.drawer-card,.drawer-section{border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:12px}.drawer-card h4,.drawer-section h4{margin:0 0 8px}.score-display-inline{font-weight:700}.evidence-list{margin:0;padding-left:18px;display:grid;gap:6px}.loading-card{padding:20px}.loading-line{height:14px;border-radius:8px;background:linear-gradient(90deg,#e2e8f0 20%,#f1f5f9,#e2e8f0 80%);background-size:300% 100%;animation:shimmer 1.4s infinite;margin-bottom:10px}.loading-line.short{width:42%}.loading-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.loading-box{height:72px;border-radius:10px;background:linear-gradient(90deg,#e2e8f0 20%,#f1f5f9,#e2e8f0 80%);background-size:300% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.error-card{padding:22px}.error-card h3{margin-top:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:all .15s ease;white-space:nowrap;font-weight:600}.data-table a{color:#1d4ed8;text-decoration:none}.data-table a:hover{text-decoration:underline}.btn:disabled{cursor:not-allowed;opacity:.62}.btn-sm{padding:7px 10px;font-size:.82rem}.btn-md{padding:8px 13px;font-size:.86rem}.btn-lg{padding:10px 16px;font-size:.92rem}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn-secondary{background:#edf3ff;color:#204ea8;border-color:#c8d7fb}.btn-secondary:hover:not(:disabled){background:#e4edff}.btn-ghost{background:#f8faff;color:#334155;border-color:#d5deea}.btn-ghost:hover:not(:disabled){background:#f1f6ff}.sidebar .nav-button.btn-ghost{border-color:transparent;background:transparent;color:#cbd5e1}.sidebar .nav-button.btn-ghost.active{border-color:#304464;background:#22314a;color:#fff}.sidebar .nav-button.btn-ghost:hover:not(:disabled),.sidebar .nav-button.btn-ghost.active:hover:not(:disabled){border-color:#2d425f;background:#1a273d;color:#fff}.btn-danger{background:#b91c1c;color:#fff;border-color:#b91c1c}.btn-danger:hover:not(:disabled){background:#991b1b;border-color:#991b1b}.btn-success{background:#166534;color:#fff;border-color:#166534}.btn-success:hover:not(:disabled){background:#14532d;border-color:#14532d}.btn-spinner{width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:60;display:grid;gap:8px;max-width:360px}.toast{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-radius:10px;border:1px solid var(--line);background:#fff;padding:10px 12px;box-shadow:var(--shadow-md);font-size:.84rem}.toast-success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.toast-error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.toast-info{border-color:#bfdbfe;background:#eff6ff;color:#1e40af}.toast-close{border:0;background:transparent;color:inherit;cursor:pointer;padding:0;line-height:1}@media (max-width: 1320px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-main-grid{grid-template-columns:1fr}}@media (max-width: 1120px){.app-shell{height:auto;grid-template-columns:1fr;overflow:visible}.sidebar{border-right:none;border-bottom:1px solid var(--line);grid-template-rows:auto auto auto;padding:16px;position:static;height:auto;overflow:visible}.side-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.nav-button{justify-content:center}}@media (max-width: 900px){.main-content{padding:16px}.topbar{flex-direction:column;align-items:flex-start}.topbar-meta{justify-content:flex-start}.kpi-grid,.reminders-kpis,.loading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-row,.reminder-grid,.drawer-grid,.activity-grid,.activity-summary-row{grid-template-columns:1fr}.assistant-chat-shell{max-width:100%}.assistant-chat-log{min-height:340px;max-height:56vh;padding:12px}.assistant-turn-bubble,.assistant-turn-content{max-width:100%}.assistant-chat-form-actions{justify-content:space-between}.side-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 620px){.kpi-grid,.reminders-kpis,.loading-grid,.side-nav{grid-template-columns:1fr}.toast-stack{right:12px;left:12px;max-width:none}.assistant-chat-form-actions .btn{flex:1}.assistant-chat-form-actions .assistant-send-btn{flex:0 0 40px}}
