:root,:root[data-theme=dark]{--bg: #070b16;--bg-elevated: #0b1122;--bg-panel: #0d1428;--bg-panel-2: #111a33;--surface: rgba(255, 255, 255, .03);--surface-hover: rgba(255, 255, 255, .06);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--text: #e8ecf6;--text-muted: #93a0b8;--text-faint: #61708c;--accent: #8b5cf6;--accent-soft: rgba(139, 92, 246, .16);--shadow: 0 24px 60px -20px rgba(0, 0, 0, .65);--grad-purple: linear-gradient(150deg, #7c3aed 0%, #4c1d95 60%, #2e1065 100%);--grad-blue: linear-gradient(150deg, #2563eb 0%, #1e3a8a 60%, #172554 100%);--grad-green: linear-gradient(150deg, #059669 0%, #065f46 60%, #064e3b 100%);--grad-orange: linear-gradient(150deg, #ea9a1f 0%, #b45309 60%, #7c2d12 100%);--grad-teal: linear-gradient(150deg, #0d9488 0%, #115e59 60%, #134e4a 100%);--grad-rose: linear-gradient(150deg, #e11d48 0%, #9f1239 60%, #4c0519 100%);--accent-purple: #a78bfa;--accent-blue: #60a5fa;--accent-green: #34d399;--accent-orange: #fbbf24;--accent-teal: #2dd4bf;--accent-rose: #fb7185}:root[data-theme=light]{--bg: #f5f7fb;--bg-elevated: #ffffff;--bg-panel: #ffffff;--bg-panel-2: #f0f3fa;--surface: rgba(15, 23, 42, .02);--surface-hover: rgba(15, 23, 42, .05);--border: rgba(15, 23, 42, .1);--border-strong: rgba(15, 23, 42, .16);--text: #0f1a30;--text-muted: #56617a;--text-faint: #8a93a8;--accent: #7c3aed;--accent-soft: rgba(124, 58, 237, .12);--shadow: 0 20px 45px -22px rgba(15, 23, 42, .25);--grad-purple: linear-gradient(150deg, #8b5cf6 0%, #6d28d9 100%);--grad-blue: linear-gradient(150deg, #3b82f6 0%, #1d4ed8 100%);--grad-green: linear-gradient(150deg, #10b981 0%, #047857 100%);--grad-orange: linear-gradient(150deg, #f59e0b 0%, #c2410c 100%);--grad-teal: linear-gradient(150deg, #14b8a6 0%, #0f766e 100%);--grad-rose: linear-gradient(150deg, #f43f5e 0%, #be123c 100%);--accent-purple: #7c3aed;--accent-blue: #2563eb;--accent-green: #059669;--accent-orange: #d97706;--accent-teal: #0d9488;--accent-rose: #e11d48}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}::-webkit-scrollbar-track{background:transparent}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:var(--surface-hover);color:var(--text-muted);border:1px solid var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:12px;border:1px solid var(--border-strong);background:var(--surface-hover);color:var(--text);font-weight:600;font-size:14px;transition:transform .15s ease,background .15s ease,border-color .15s ease}.btn:hover{transform:translateY(-1px);background:var(--surface);border-color:var(--accent)}.lab-shell-hbtn{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:10px;font-size:13px;font-weight:500;color:var(--text-muted);background:var(--bg-panel);border:1px solid var(--border)}.lab-shell-hbtn:hover{color:var(--text);border-color:var(--accent)}.trp-rich,.trp-editor{font-size:13.5px;line-height:1.65;color:var(--text);word-break:break-word}.trp-rich p,.trp-editor p{margin:0 0 10px}.trp-rich ul,.trp-rich ol,.trp-editor ul,.trp-editor ol{margin:0 0 10px;padding-left:22px}.trp-rich .cite,.trp-editor .cite{display:inline-block;margin-left:2px;padding:0 5px;font-size:10px;font-weight:700;line-height:16px;vertical-align:super;color:var(--accent-blue);background:#3b82f624;border-radius:5px}.trp-page{padding:24px 32px 40px;display:flex;flex-direction:column;gap:18px}.trp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.trp-title{margin:0 0 4px;font-size:22px;font-weight:700;color:var(--text)}.trp-sub{margin:0;font-size:13px;color:var(--text-muted)}.trp-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.trp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:10px;font-size:13px;font-weight:600;font-family:inherit;white-space:nowrap;text-decoration:none;cursor:pointer;border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text);transition:opacity .15s ease,background .15s ease,border-color .15s ease}.trp-btn:hover:not(:disabled){background:var(--surface-hover)}.trp-btn:disabled{opacity:.5;cursor:default}.trp-btn--primary{color:#fff;background:var(--grad-blue);border-color:transparent}.trp-btn--primary:hover:not(:disabled){background:var(--grad-blue);opacity:.92}.trp-btn--sm{padding:6px 11px;font-size:12px;border-radius:8px}.trp-btn--danger{color:#ef4444;border-color:#ef444466}.trp-btn--icon{padding:0;width:32px;height:32px}.trp-link{border:none;background:none;padding:0;font:inherit;font-size:12.5px;font-weight:600;color:var(--accent-blue);cursor:pointer;text-decoration:none}.trp-link:hover{text-decoration:underline}.trp-back{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--text-muted);border:none;background:none;padding:0;cursor:pointer;text-decoration:none}.trp-back:hover{color:var(--accent-blue)}.trp-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;padding:18px 20px;min-width:0}.trp-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.trp-card__title{margin:0;font-size:15px;font-weight:700;color:var(--text)}.trp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.trp-kpi{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;min-width:0}.trp-kpi__icon{flex-shrink:0;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-size:16px;color:var(--accent-blue);background:#3b82f624}.trp-kpi--green .trp-kpi__icon{color:#22c55e;background:#22c55e24}.trp-kpi--amber .trp-kpi__icon{color:#f59e0b;background:#f59e0b29}.trp-kpi--purple .trp-kpi__icon{color:#8b5cf6;background:#8b5cf629}.trp-kpi--red .trp-kpi__icon{color:#ef4444;background:#ef444424}.trp-kpi__label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:2px}.trp-kpi__value{margin:0;font-size:24px;font-weight:800;line-height:1.1;color:var(--text)}.trp-kpi__caption{margin:3px 0 0;font-size:11.5px;color:var(--text-faint)}.trp-kpi__caption.is-up{color:#16a34a}.trp-kpi__caption.is-warn{color:#ef4444}.trp-type{display:inline-block;padding:2px 9px;border-radius:6px;font-size:11px;font-weight:800;letter-spacing:.02em}.trp-type--RFP{color:#2563eb;background:#3b82f629}.trp-type--RFQ{color:#059669;background:#10b98129}.trp-type--RFI{color:#7c3aed;background:#8b5cf629}.trp-status{display:inline-flex;align-items:center;padding:3px 11px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;color:var(--text-muted);background:var(--surface)}.trp-status--in-progress,.trp-status--in-review{color:#2563eb;background:#3b82f626}.trp-status--review,.trp-status--changes-requested.is-soft{color:#b45309;background:#f59e0b2e}.trp-status--draft,.trp-status--not-started,.trp-status--pending{color:var(--text-muted);background:var(--surface-hover)}.trp-status--submission{color:#7c3aed;background:#8b5cf629}.trp-status--won,.trp-status--completed,.trp-status--approved{color:#16a34a;background:#22c55e29}.trp-status--lost,.trp-status--overdue,.trp-status--changes-requested{color:#dc2626;background:#ef444424}.trp-chip{display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:500;color:var(--accent-blue);background:#3b82f61f;white-space:nowrap}.trp-chips{display:flex;flex-wrap:wrap;gap:8px}.trp-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600}.trp-pill--urgent{color:#dc2626;background:#ef444424}.trp-pill--soon{color:#b45309;background:#f59e0b2e}.trp-pill--normal{color:var(--text-muted);background:var(--surface-hover)}.is-urgent{color:#dc2626}.is-soon{color:#d97706}.trp-avatar{display:inline-grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;font-size:10.5px;font-weight:700;color:#fff;background:#2563eb}.trp-avatar--lg{width:34px;height:34px;font-size:12px}.trp-avatar--0{background:#2563eb}.trp-avatar--1{background:#0ea5e9}.trp-avatar--2{background:#1d4ed8}.trp-avatar--3{background:#6366f1}.trp-avatar--4{background:#0891b2}.trp-avatar--5{background:#4f46e5}.trp-person{display:inline-flex;align-items:center;gap:8px;min-width:0}.trp-muted{color:var(--text-muted)}.trp-faint{color:var(--text-faint)}.trp-progress{display:flex;align-items:center;gap:10px}.trp-progress__bar{flex:1;min-width:60px;height:7px;border-radius:999px;background:var(--surface-hover);overflow:hidden}.trp-progress__bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3b82f6,#2563eb)}.trp-progress__bar.is-done>span{background:linear-gradient(90deg,#34d399,#059669)}.trp-progress__val{font-size:12px;color:var(--text-muted);min-width:34px;text-align:right}.trp-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:14px;background:var(--bg-panel)}.trp-table{width:100%;border-collapse:collapse;font-size:13px}.trp-table th{padding:11px 14px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);background:var(--bg-panel-2);border-bottom:1px solid var(--border);white-space:nowrap}.trp-table th.is-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.trp-table td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.trp-table tbody tr:last-child td{border-bottom:none}.trp-table tbody tr.is-click{cursor:pointer}.trp-table tbody tr.is-click:hover{background:var(--surface-hover)}.trp-cell-main{font-weight:600;color:var(--text)}.trp-cell-sub{font-size:11.5px;color:var(--text-faint);margin-top:2px}.trp-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 4px 0;font-size:12.5px;color:var(--text-muted)}.trp-pager__nav{display:flex;align-items:center;gap:6px}.trp-pager__btn{min-width:30px;height:30px;padding:0 8px;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text);font-size:12.5px;cursor:pointer}.trp-pager__btn.is-active{color:#fff;background:var(--grad-blue);border-color:transparent}.trp-pager__btn:disabled{opacity:.45;cursor:default}.trp-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto}.trp-tabs__tab{padding:10px 14px;font-size:13px;font-weight:600;font-family:inherit;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap;text-decoration:none}.trp-tabs__tab:hover{color:var(--text)}.trp-tabs__tab.is-active{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.trp-input,.trp-select,.trp-textarea{width:100%;padding:9px 12px;border-radius:9px;border:1px solid var(--border-strong);background:var(--bg-panel-2);color:var(--text);font:inherit;font-size:13px}.trp-input:focus,.trp-select:focus,.trp-textarea:focus{outline:none;border-color:var(--accent-blue)}.trp-textarea{resize:vertical;min-height:84px}.trp-search{display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg-panel-2);min-width:0}.trp-search>i{color:var(--text-faint);font-size:12px}.trp-search input{flex:1;min-width:0;padding:9px 0;border:none;outline:none;background:transparent;color:var(--text);font:inherit;font-size:13px}.trp-field{display:flex;flex-direction:column;gap:5px}.trp-field>label{font-size:12px;font-weight:600;color:var(--text-muted)}.trp-empty{display:flex;align-items:center;justify-content:center;gap:8px;padding:56px 16px;color:var(--text-faint);background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;text-align:center}.trp-error{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;font-size:12.5px;color:#ef4444;background:#ef44441a}.trp-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--border-strong);flex-shrink:0}.trp-dot--done{background:#22c55e}.trp-dot--progress{background:#3b82f6}.trp-dot--review{background:#f59e0b}.trp-dot--alert{background:#ef4444}@media (max-width: 760px){.trp-page{padding:16px 12px 28px}.trp-title{font-size:19px}}
