/* ===================== Team tenders: match overview, team, live list ===================== */
#pg-tender{--m50:#A8431F}   /* white text 5.9:1 (GAP-6-07) */
/* four match levels instead of three */
#pg-tender .tp-stats{grid-template-columns:repeat(5,1fr)}
.tp-stats .stat.warn2{border-top-color:var(--m50)}
.tp-pill.near.m50{background:var(--m50)}
.tp-chip.m80.on{border-color:var(--warn);color:var(--warn)} .tp-chip.m50.on{border-color:var(--m50);color:var(--m50)}
@media(max-width:900px){#pg-tender .tp-stats{grid-template-columns:repeat(2,1fr)}}

/* ---- overview panel ---- */
.tt-panel{padding:20px 22px}
.tt-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.tt-sync{display:inline-flex;align-items:center;gap:8px;font-family:Jost;font-weight:600;font-size:13px;color:var(--caption);background:var(--panel);border-radius:999px;padding:6px 13px}
.tt-sync i{width:8px;height:8px;border-radius:50%;background:#A9BDBC;flex:none}
.tt-sync.synced{color:var(--ok)} .tt-sync.synced i{background:var(--ok);box-shadow:0 0 0 0 rgba(14,143,91,.5);animation:ttPulse 2.4s infinite}
.tt-sync.saving i{background:var(--warn)} .tt-sync.offline i{background:var(--warn)}
.tt-sync.error{color:var(--bad);background:#FDF3F1} .tt-sync.error i{background:var(--bad)}
@keyframes ttPulse{0%{box-shadow:0 0 0 0 rgba(14,143,91,.45)}70%{box-shadow:0 0 0 7px rgba(14,143,91,0)}100%{box-shadow:0 0 0 0 rgba(14,143,91,0)}}
@media(prefers-reduced-motion:reduce){.tt-sync.synced i{animation:none}}
.tt-now{font-size:13px;color:var(--primary);font-weight:600}
.tt-people{margin-left:auto;display:flex;align-items:center;gap:0}
.tt-people .tp-mini{margin-left:12px}
.tt-invbtn{border-color:var(--primary)!important;color:var(--primary)!important;font-weight:700}
.tt-invbtn.on{background:var(--primary)!important;color:#fff!important}
.tt-note{font-size:12.5px;color:var(--caption)}
.tt-av{--h:180;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:Jost;font-weight:700;font-size:12px;color:#fff;background:hsl(var(--h),45%,40%);border:2px solid #fff;margin-left:-8px;position:relative;flex:none;letter-spacing:.02em}
.tt-people .tt-av:first-child,.tt-avs .tt-av:first-child{margin-left:0}
.tt-av.sm{width:22px;height:22px;font-size:9.5px;border-width:1.5px;margin-left:-6px}
.tt-av.on::after{content:"";position:absolute;right:-2px;bottom:-2px;width:9px;height:9px;border-radius:50%;background:#19B874;border:2px solid #fff}
.tt-av.sm.on::after{width:7px;height:7px;border-width:1.5px}
.tt-av.ghost{background:#fff;color:var(--caption,#5F7C7B);border:1.5px dashed #A9BDBC}
.tt-av.more{background:#E3EDEC;color:#35504F}

.tt-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.tt-card{--c:var(--ok);text-align:left;background:#fff;border:1.5px solid var(--line);border-top:4px solid var(--c);border-radius:14px;padding:16px 16px 14px;cursor:pointer;display:flex;flex-direction:column;gap:3px;font:inherit;color:inherit;transition:box-shadow .18s,transform .18s,border-color .18s}
.tt-card.m80{--c:var(--warn)} .tt-card.m50{--c:var(--m50)} .tt-card.none{--c:var(--bad)}
.tt-card:hover{box-shadow:0 10px 28px rgba(1,83,84,.10);transform:translateY(-2px)}
.tt-card.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 6%,#fff)}
.tt-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.tt-lab{font-family:Jost;font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--c)}
.tt-card b{font-family:Jost;font-weight:700;font-size:38px;line-height:1.05;color:var(--primary)}
.tt-share{font-size:12.5px;color:var(--caption)}
.tt-bar{display:block;height:6px;border-radius:99px;background:#E8F0EF;overflow:hidden;margin-top:9px}
.tt-bar i{display:block;height:100%;background:var(--c);border-radius:99px;transition:width .4s}
.tt-left{font-family:Jost;font-weight:600;font-size:12.5px;color:var(--primary);margin-top:5px}
.tt-hint{font-size:12px;color:var(--caption);line-height:1.4;margin-top:4px}
.tt-total{display:flex;align-items:center;gap:14px;margin-top:16px;font-size:13px;color:var(--caption);flex-wrap:wrap}
.tt-total b{color:var(--primary);font-family:Jost}
.tt-total a{color:var(--primary);font-weight:600;cursor:pointer;text-decoration:underline}
.tt-tbar{flex:1;min-width:180px;height:8px;border-radius:99px;background:#E8F0EF;overflow:hidden;display:flex}
.tt-tbar i{display:block;height:100%}
.tt-tbar i.exact{background:#0E8F5B} .tt-tbar i.m80{background:#C47814} .tt-tbar i.m50{background:#D4572A} .tt-tbar i.none{background:#B03A28}
.tt-tbar.sm{display:flex;width:100%;min-width:140px;height:6px}

.tt-feed{margin-top:16px;border-top:1px solid var(--line);padding-top:12px;display:grid;gap:2px}
.tt-feed>b{font-family:Jost;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--caption);margin-bottom:4px}
.tt-feed a{display:flex;align-items:center;gap:9px;font-size:13px;color:#2B4645;padding:5px 6px;border-radius:8px;cursor:pointer}
.tt-feed a:hover{background:var(--panel)}
.tt-feed a .tt-av{margin-left:0}
.tt-feed a span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tt-feed a span b{color:var(--primary)}
.tt-feed a em{font-style:normal;font-size:12px;color:var(--caption);white-space:nowrap}
.tt-feed.empty{font-size:13px;color:var(--caption)}

/* ---- invite ---- */
.tt-invite{background:var(--panel);border-radius:12px;padding:16px 18px;margin-bottom:16px}
.tt-inv-h b{font-family:Jost;font-size:15px;color:var(--primary);display:block}
.tt-inv-h span{font-size:12.5px;color:var(--caption);display:block;margin-top:2px;max-width:70ch}
.tt-members{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;margin-top:12px}
.tt-member{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.tt-member .tt-av{margin-left:0}
.tt-member div{flex:1;min-width:0}
.tt-member b{display:block;font-size:13.5px;color:var(--primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tt-member small{display:block;font-size:11.5px;color:var(--caption);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tt-role{font-family:Jost;font-weight:700;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ok)}
.tt-add{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.tt-add input{flex:1;min-width:220px;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;background:#fff}
.tt-add input:focus{outline:none;border-color:var(--accent)}
.tt-add .tp-btn{padding:10px 18px}
.tt-inv-msg{font-size:13px;color:var(--primary);margin-top:10px}
.tt-inv-msg a{font-weight:700;color:var(--primary)}
.tt-link{display:flex;gap:8px;margin-top:10px;align-items:center}
.tt-link input{flex:1;min-width:0;border:1px dashed #B9CECD;border-radius:8px;padding:7px 10px;font-size:12px;color:var(--caption);background:#fff}

/* ---- on the lines ---- */
.tt-by{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--caption);margin-left:6px;vertical-align:middle}
.tt-by .tt-av{margin-left:0}
.tt-here{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#0B6A45;background:#E6F6EE;border-radius:8px;padding:5px 8px;margin-top:8px}
.tt-here .tt-av{margin-left:0}
.tt-here.in{display:inline-flex;margin:0 0 0 12px}
.tp-row.tt-flash{animation:ttFlash 2.2s ease-out}
@keyframes ttFlash{0%{box-shadow:0 0 0 3px rgba(58,192,195,.75)}100%{box-shadow:0 0 0 3px rgba(58,192,195,0)}}

/* ---- list on the portal page ---- */
.tt-table td{vertical-align:middle}
.tt-name{color:var(--deep);font-weight:600;text-decoration:none}
.tt-name:hover{text-decoration:underline}
.tt-files{font-size:.78rem;color:var(--muted);max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tt-avs{display:inline-flex}
.tt-prog{font-size:.76rem;color:var(--muted);margin-top:5px}
.tt-prog .ok{color:#0E8F5B} .tt-prog .w80{color:#C47814} .tt-prog .w50{color:#D4572A} .tt-prog .bad{color:#B03A28}
.tt-upd{font-size:.76rem;color:var(--muted);margin-top:3px}
.tt-open{font-family:Jost;font-weight:700;font-size:.85rem;color:var(--deep);text-decoration:none;cursor:pointer}
.tt-del{background:none;border:0;color:var(--muted);font-size:.76rem;cursor:pointer;margin-left:12px;text-decoration:underline}
.tt-del:hover{color:var(--red)}
.tt-empty{color:var(--muted);font-size:.9rem;padding:18px 8px!important}
.tt-row.local td{background:#FCFBF7}
.tt-table .tt-note{font-size:.78rem;color:var(--muted)}

@media(max-width:900px){.tt-cards{grid-template-columns:repeat(2,1fr)}.tt-people{margin-left:0}.tt-card b{font-size:30px}.tt-table thead{display:none}.tt-table tr{display:block;padding:10px 0;border-bottom:1px solid var(--line)}.tt-table td{display:block;border:0!important;padding:3px 0!important;text-align:left!important}}
@media(max-width:520px){.tt-cards{grid-template-columns:1fr 1fr;gap:8px}.tt-hint{display:none}}
/* tender hand-over: where Aprikos is with the tender */
.tt-review{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-radius:14px;padding:14px 18px;margin:0 0 16px;border:1.5px solid var(--line);background:#fff}
.tt-review b{display:block;font-family:Jost;font-size:1rem;color:var(--deeper)}
.tt-review span{font-size:.84rem;color:var(--muted);line-height:1.45}
.tt-review>div{flex:1 1 320px;min-width:0}
.tt-review .tt-ract{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tt-review.ask{background:#FFF8EE;border-color:#F0CF9B}
.tt-review.wait{background:#FFF8EE;border-color:#F0CF9B}
.tt-review.wait b{color:#9A5B00}
.tt-review.done{background:#EAF7F0;border-color:#9AD3B4}
.tt-review.done b{color:#1E6B45}
.tt-review.aprikos{background:var(--tq-soft,#E6F4F4);border-color:var(--tq,#4FB3B5)}
.tt-acts{text-align:right;white-space:nowrap}
.tt-acts .tt-btn,.tt-acts .tt-del{vertical-align:middle}
.tt-btn{display:inline-block;font-family:Jost;font-weight:700;font-size:.78rem;line-height:1;border-radius:999px;padding:8px 13px;margin-left:6px;border:1.5px solid var(--line);background:#fff;color:var(--deeper);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}
.tt-btn:hover{border-color:var(--deep);background:var(--tq-soft,#E6F4F4)}
.tt-btn.pri{background:var(--deep);border-color:var(--deep);color:#fff}
.tt-btn.pri:hover{background:var(--deeper)}
.tt-new{display:inline-block;margin-left:7px;background:var(--red);color:#fff;border-radius:999px;font:700 .64rem Jost;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;font-style:normal;vertical-align:middle}
#ptTendBadge{display:inline-block;margin-left:7px;background:var(--red);color:#fff;border-radius:999px;font-size:.68rem;font-weight:700;padding:1px 7px;vertical-align:middle}
#ptTendBadge[hidden]{display:none}
.tile.tt-tile-new{box-shadow:0 0 0 2px var(--red) inset}
.tt-toast{position:fixed;right:22px;bottom:22px;z-index:1200;max-width:380px;background:var(--deeper);color:#fff;border-radius:14px;padding:14px 40px 14px 16px;box-shadow:0 12px 36px rgba(0,0,0,.28);font-size:.9rem}
.tt-toast[hidden]{display:none}
.tt-toast b{display:block;font-family:Jost;margin-bottom:4px}
.tt-toast a{color:#8FDCDD;font-weight:700;text-decoration:none}
.tt-toast button{position:absolute;top:8px;right:10px;background:none;border:0;color:#fff;font-size:1.2rem;cursor:pointer}
@media(max-width:760px){.tt-acts{white-space:normal}.tt-btn{margin:3px 0 3px 6px}}
/* invitation e-mail state on the member card */
.tt-member>div{display:flex;flex-direction:column}
.tt-inv-st{display:block;font-size:11px;color:var(--caption);white-space:normal;margin-top:2px}
.tt-inv-st.ok{color:#1E6B45}.tt-inv-st.warn{color:#9A5B00}.tt-inv-st.bad{color:var(--red)}
.tt-inv-st a{font-weight:700;color:inherit;cursor:pointer;text-decoration:underline}
.tt-member .tp-mini.ghost{margin-left:4px}
/* invitations waiting for my answer (SEC-FE-TOOLS-08): the tender appears in the list only after I join */
.tt-invites{border:1px solid #CFE3E2;background:#F3F9F9;border-radius:14px;padding:14px 16px;margin:0 0 16px}
.tt-invites h3{font-family:Jost;font-size:15px;color:var(--primary);margin:0 0 8px}
.tt-inv{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 0;border-top:1px solid #DCEAEA}
.tt-inv:first-of-type{border-top:0}
.tt-inv>div{flex:1 1 240px;min-width:0}
.tt-inv small{display:block;font-size:12.5px;color:#4E6868;margin-top:2px}
