:root{--bg: #0f1319;--bg-panel: #161c24;--bg-elevated: #1d2530;--border: #2a3341;--border-soft: #232b36;--text: #e6ecf2;--text-dim: #8fa0b3;--text-faint: #5f6e7f;--accent: #5fb0ff;--accent-dim: rgba(95, 176, 255, .14);--green: #4f9d69;--yellow: #d4a13d;--red: #d9534f;--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Space Grotesk", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-body)}#root{min-height:100vh}.mono{font-family:var(--font-mono)}.app{max-width:1320px;margin:0 auto;padding:28px 32px 64px}.app__header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--border-soft);margin-bottom:24px;flex-wrap:wrap}.app__brand{display:flex;align-items:center;gap:14px}.app__brand-mark{width:42px;height:42px;border-radius:10px;background:linear-gradient(155deg,#2a72c4,#163654);border:1px solid #3d84d6;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:500;font-size:14px;color:#cfe6ff;flex-shrink:0}.app__brand h1{font-family:var(--font-display);font-size:22px;font-weight:600;margin:0 0 2px;letter-spacing:-.01em}.app__brand p{margin:0;font-size:13px;color:var(--text-dim)}.app__legend{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--text-dim);padding-top:4px}.app__legend span{display:flex;align-items:center;gap:8px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot--green{background:var(--green)}.dot--yellow{background:var(--yellow)}.dot--red{background:var(--red)}.app__main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:24px;align-items:start}@media (max-width: 980px){.app__main{grid-template-columns:1fr}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:14px;padding:26px 26px 24px;display:flex;flex-direction:column}.login-field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--text-dim);margin-bottom:14px}.login-error{color:var(--red);font-size:12.5px;margin:0 0 14px}.login-submit{background:var(--accent);border:none;border-radius:9px;padding:11px 16px;color:#0b1622;font-weight:600;font-size:13.5px;cursor:pointer;font-family:var(--font-body);margin-top:4px}.login-submit:hover{background:#78bcff}.tender-list__controls{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}.chip-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chip-row__label{font-size:12px;color:var(--text-faint);min-width:52px}.chip{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-dim);border-radius:999px;padding:6px 13px;font-size:12.5px;font-family:var(--font-body);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.chip:hover{border-color:#3a4658;color:var(--text)}.chip--active{background:var(--accent-dim);border-color:#5fb0ff73;color:#cfe6ff}.chip--level.chip--active.chip--green{background:#4f9d6929;border-color:#4f9d6980;color:#8fd1a3}.chip--level.chip--active.chip--yellow{background:#d4a13d29;border-color:#d4a13d80;color:#edc27a}.chip--level.chip--active.chip--red{background:#d9534f24;border-color:#d9534f80;color:#e8938f}.search-input{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:10px 13px;font-size:13.5px;font-family:var(--font-body);width:100%}.search-input:focus{outline:none;border-color:var(--accent)}.tender-list__count{font-size:12px;color:var(--text-faint);margin-bottom:12px}.tender-list__items{display:flex;flex-direction:column;gap:12px}.empty-state{border:1px dashed var(--border);border-radius:12px;padding:28px;text-align:center;color:var(--text-dim);font-size:13.5px}.tender-card{background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:14px;padding:16px 18px;transition:border-color .15s ease,transform .15s ease}.tender-card--clickable{cursor:pointer}.tender-card--clickable:hover{border-color:#5fb0ff66}.tender-card--clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tender-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.tender-card__title{font-size:15px;font-weight:500;margin:0;line-height:1.4}.tender-card__platform{flex-shrink:0;font-size:11.5px;color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:3px 10px;white-space:nowrap}.tender-card__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--text-dim);margin-bottom:14px}.dot-sep{width:3px;height:3px;border-radius:50%;background:var(--text-faint);flex-shrink:0}.tender-card__age{color:var(--text-faint)}.status-badge{font-size:11.5px;padding:3px 9px;border-radius:999px;font-weight:500}.tender-card__figures{display:flex;gap:28px;padding:12px 0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);margin-bottom:12px;flex-wrap:wrap}.figure{display:flex;flex-direction:column;gap:4px}.figure__label{font-size:11px;color:var(--text-faint);text-transform:none}.figure__value{font-size:14px;color:var(--text)}.margin-badge{display:inline-flex;align-items:center;gap:6px}.margin-dot{width:8px;height:8px;border-radius:50%}.margin-value{font-family:var(--font-mono);font-size:14px}.tender-card__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.contact{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--text-dim)}.contact__name{color:var(--text);font-weight:500}.contact__phone{color:var(--text-dim)}.contact__source{color:var(--text-faint);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11px}.contact__missing{color:var(--text-faint);font-style:italic}.tender-card__actions{display:flex;align-items:center;gap:14px;flex-shrink:0}.deadline{font-size:12px;color:var(--text-dim)}.deadline--soon{color:var(--red)}.open-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:12.5px;text-decoration:none;border:1px solid rgba(95,176,255,.35);border-radius:8px;padding:6px 10px;transition:background .15s ease}.open-link:hover{background:var(--accent-dim)}.chat-panel{position:sticky;top:24px;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:14px;display:flex;flex-direction:column;max-height:calc(100vh - 48px)}.chat-panel__head{padding:18px 18px 14px;border-bottom:1px solid var(--border-soft)}.chat-panel__head h2{margin:0 0 6px;font-size:15px;font-weight:600}.chat-panel__head p{margin:0;font-size:12px;color:var(--text-faint);line-height:1.5}.chat-panel__messages{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-height:200px}.chat-msg{border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5;max-width:92%}.chat-msg p{margin:0}.chat-msg--agent{background:var(--bg-elevated);color:var(--text);align-self:flex-start}.chat-msg--user{background:var(--accent-dim);color:#d9ecff;align-self:flex-end}.chat-msg__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chat-chip{font-size:11px;background:#ffffff0a;border:1px solid var(--border);border-radius:6px;padding:3px 7px;color:var(--text-dim)}.chat-msg__results{display:flex;flex-direction:column;gap:6px;margin-top:10px}.chat-result{text-align:left;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);font-size:12.5px;cursor:pointer;font-family:var(--font-body)}.chat-result:hover{border-color:var(--accent)}.chat-panel__input{display:flex;gap:8px;padding:14px 18px;border-top:1px solid var(--border-soft)}.chat-panel__input input{flex:1;background:var(--bg-elevated);border:1px solid var(--border);border-radius:9px;padding:10px 12px;color:var(--text);font-size:13px;font-family:var(--font-body)}.chat-panel__input input:focus{outline:none;border-color:var(--accent)}.chat-panel__input button{background:var(--accent);border:none;border-radius:9px;padding:10px 16px;color:#0b1622;font-weight:600;font-size:13px;cursor:pointer;font-family:var(--font-body)}.chat-panel__input button:hover{background:#78bcff}.tender-detail{display:flex;flex-direction:column;gap:16px}.back-link{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:none;border:none;color:var(--text-dim);font-family:var(--font-body);font-size:13px;cursor:pointer;padding:4px 0}.back-link:hover{color:var(--text)}.tender-detail__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:14px;padding:18px 20px;flex-wrap:wrap}.tender-detail__head h2{margin:0 0 10px;font-size:18px;font-weight:600;line-height:1.4}.tender-detail__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--text-dim);margin-bottom:8px}.tender-detail__customer{margin:0;font-size:12.5px;color:var(--text-faint)}.summary-strip{display:flex;flex-wrap:wrap;gap:24px;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:14px;padding:16px 20px}.summary-item{display:flex;flex-direction:column;gap:5px}.summary-label{font-size:11px;color:var(--text-faint)}.summary-value{font-size:15px}.panel{background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:14px;padding:18px 20px}.panel h3{margin:0 0 14px;font-size:14px;font-weight:600;color:var(--text)}.panel--total{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--text-dim);padding:14px 20px}.panel--total .mono{color:var(--text);font-size:15px}.cost-table{width:100%;border-collapse:collapse;font-size:13px}.cost-table th{text-align:left;font-size:11px;font-weight:500;color:var(--text-faint);padding:0 10px 10px 0;border-bottom:1px solid var(--border-soft)}.cost-table td{padding:9px 10px 9px 0;border-bottom:1px solid var(--border-soft);color:var(--text)}.cost-table tbody tr:last-child td{border-bottom:none}.cost-table tfoot td{padding-top:12px;font-weight:600;color:var(--text);border-bottom:none}.cost-table--expenses td:first-child{color:var(--text-dim)}.notes-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--text-dim)}
