/* Shared components: buttons, badges, kanban, tables, row actions, stage picker, modals, toast, empty states */

.vt-btn+.vt-btn{border-left:none}
.srch-wrap{position:relative;flex:1;min-width:180px;max-width:280px}
.srch-ico{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--t3);pointer-events:none}
.sinp{border-radius:var(--r-pill);width:100%;background:#fff;border:1px solid var(--bd-em);color:var(--t1);font-family:var(--fb);font-size:14px;padding:7px 10px 7px 32px;transition:all .15s;outline:none}
.sinp::placeholder{color:var(--t3)}
.sinp:focus{border-color:var(--acc-t);box-shadow:0 0 0 2px rgba(31,157,94,.14)}
.flt{border-radius:var(--r-pill);background:#fff;border:1px solid var(--bd-em);color:var(--t1);font-family:var(--fb);font-size:14px;padding:7px 28px 7px 10px;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23536A62'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;transition:border-color .15s}
.flt:focus{border-color:var(--acc-t)}
.flt option{background:#fff}
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:2px solid transparent;border-radius:var(--r-pill);cursor:pointer;font-family:var(--fb);font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;transition:all .18s;white-space:nowrap;flex-shrink:0}
.bp{background:var(--acc);color:#F7FBF9;border-color:var(--acc-t)}
.bp:hover{background:var(--acc-d);border-color:var(--acc-d)}
.bg{background:#fff;color:var(--t1);border:2px solid var(--bd-em)}
.bg:hover{border-color:var(--acc-t);color:var(--t1);background:rgba(31,157,94,.05)}

/* ── BADGES ── */
.badge{border-radius:var(--r-pill);display:inline-flex;align-items:center;padding:3px 9px;font-family:var(--fm);font-size:11px;font-weight:500;letter-spacing:.03em;white-space:nowrap}
.bhi{color:#1E7A5E;background:rgba(31,157,94,.1);cursor:pointer;transition:filter .12s}
.bmd{color:#92400E;background:rgba(217,119,6,.1);cursor:pointer;transition:filter .12s}
.blo{color:#A6402F;background:rgba(166,64,47,.1);cursor:pointer;transition:filter .12s}
.bof{color:var(--t3);background:rgba(83,106,98,.08);cursor:pointer;transition:filter .12s}
.bhi:hover,.bmd:hover,.blo:hover,.bof:hover{filter:brightness(.92)}
.spill{border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-family:var(--fm);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:filter .12s}
.spill::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
.spill:hover{filter:brightness(.92)}

/* ── KANBAN ── */
.kanban-area{flex:1;min-height:0;overflow-x:auto;overflow-y:hidden;padding:18px 22px 22px;display:flex;gap:12px;align-items:stretch}
.k-col{
  flex-shrink:0;width:240px;border-radius:var(--r-card);box-shadow:var(--shadow);
  background:#fff;border:1px solid transparent;
  display:flex;flex-direction:column;min-height:0;
  transition:border-color .2s,background .2s;
}
.k-col.drag-over{border-color:var(--check);background:var(--acc-sub)}
.k-col-hd{padding:12px 14px 10px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.k-stage{font-family:var(--fd);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.k-count{border-radius:var(--r-pill);font-family:var(--fm);font-size:11px;color:var(--t3);background:var(--bg-2);padding:2px 7px}
.k-cards{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px}
.k-card{
  background:var(--bg);border:1px solid var(--bd);border-radius:var(--r-md);
  padding:14px 14px;cursor:grab;
  transition:all .2s;
}
.k-card:hover{border-color:var(--acc-t);box-shadow:0 10px 24px -16px rgba(8,33,28,.3)}
.k-card:active{cursor:grabbing}
.k-card.dragging{opacity:.4;transform:scale(.96)}
.k-card-co{font-family:var(--fd);font-size:15px;font-weight:700;color:var(--t1);letter-spacing:.01em;margin-bottom:4px}
.k-card-ct{font-size:13px;color:var(--t2);margin-bottom:9px}
.k-card-footer{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.k-card-step{font-size:12px;color:var(--t3);margin-top:8px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.k-card-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s;margin-left:auto}
.k-card:hover .k-card-actions{opacity:1}
.k-empty{text-align:center;padding:24px 8px;font-family:var(--fm);font-size:11px;color:var(--t3);letter-spacing:.04em;opacity:.6}

/* ── TABLE ── */
.tbl-area{flex:1;overflow-y:auto;padding:18px 22px 32px}
.tbl-wrap{background:#fff;border:none;border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden}
table{width:100%;border-collapse:collapse;font-size:14px}
thead{position:sticky;top:0;z-index:5}
thead tr{border-bottom:1px solid var(--bd-em);background:var(--bg)}
th{padding:11px 14px;text-align:left;font-family:var(--fm);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);white-space:nowrap}
td{padding:0;border-bottom:1px solid var(--bd);color:var(--t2);vertical-align:middle}
.td-in{padding:11px 14px;display:flex;align-items:center;min-height:48px}
tbody tr:last-child td{border-bottom:none}
tbody tr{transition:background .1s}
tbody tr:hover{background:rgba(31,157,94,.04)}
.co-name{font-family:var(--fd);font-size:15px;font-weight:700;color:var(--t1)}
.ct-name{color:var(--t1);font-weight:500;font-size:14px}
.ct-role{font-size:12px;color:var(--t3);margin-top:2px}
.mono{font-family:var(--fm);font-size:12px;color:var(--t3)}
/* inline editable cell */
.td-edit{cursor:text}
.td-edit:hover .td-in{background:rgba(31,157,94,.05)}
.td-editing .td-in{outline:1.5px solid var(--acc);background:rgba(31,157,94,.06)!important}
.cell-inp{width:100%;border:none;outline:none;background:transparent;font:inherit;color:var(--t1);padding:0}
/* row actions */
.row-acts{display:flex;gap:4px;opacity:0;transition:opacity .15s}
tbody tr:hover .row-acts{opacity:1}

/* ── ACTION BUTTONS ── */
.rbtn{border-radius:50%;width:26px;height:26px;background:transparent;border:1px solid var(--bd-em);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--t3);padding:0;transition:all .15s}
.rbtn:hover{border-color:var(--acc-t);color:var(--acc-t);background:var(--acc-sub)}
.rbtn.del:hover{border-color:var(--danger);color:var(--danger);background:rgba(166,64,47,.07)}
.rbtn.del.pend{opacity:1!important;border-color:var(--danger);color:var(--danger);background:rgba(166,64,47,.09)}

/* ── STAGE PICKER ── */
.stage-picker{border-radius:16px;position:fixed;z-index:400;background:#fff;border:1px solid var(--bd-em);box-shadow:0 18px 40px -20px rgba(8,33,28,.35);padding:4px;min-width:180px;display:none}
.sp-item{border-radius:10px;display:flex;align-items:center;gap:9px;padding:8px 11px;cursor:pointer;font-family:var(--fm);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;transition:background .12s}
.sp-item:hover{background:var(--acc-sub)}
.sp-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* ── MODAL ── */
.mov{position:fixed;inset:0;background:rgba(8,33,28,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:300;opacity:0;pointer-events:none;transition:opacity .2s}
.mov.on{opacity:1;pointer-events:all}
.mpan{border-radius:var(--r-card);background:#fff;border:none;box-shadow:0 40px 80px -30px rgba(8,33,28,.4);width:min(560px,94vw);max-height:88vh;overflow-y:auto;transform:translateY(12px) scale(.98);transition:transform .22s cubic-bezier(.16,1,.3,1)}
.mov.on .mpan{transform:none}
.mhd{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--bd)}
.mttl{font-family:var(--fs);font-size:24px;font-weight:400;color:var(--t1)}
.mx{border-radius:50%;width:32px;height:32px;border:1px solid var(--bd-em);background:transparent;color:var(--t3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}
.mx:hover{border-color:var(--acc-t);color:var(--t1)}
.mbody{padding:20px 24px 24px}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f-grp{display:flex;flex-direction:column;gap:6px}
.f-grp.full{grid-column:1/-1}
.fl{font-family:var(--fm);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--t3)}
.fi,.fs,.fta{border-radius:12px;background:#fff;border:1px solid var(--bd-em);color:var(--t1);font-family:var(--fb);font-size:14px;padding:9px 12px;transition:all .15s;outline:none;width:100%}
.fi::placeholder,.fta::placeholder{color:var(--t3)}
.fi:focus,.fs:focus,.fta:focus{border-color:var(--acc-t);box-shadow:0 0 0 2px rgba(31,157,94,.14)}
.fs{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23536A62'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:28px}
.fs option{background:#fff}
.fta{resize:vertical;min-height:70px;line-height:1.55}
.mftr{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:16px;border-top:1px solid var(--bd);margin-top:8px}

/* ── TOAST — deliberate dark note, echoes the site's CTA band ── */
.toast{border-radius:var(--r-pill);position:fixed;bottom:22px;right:22px;z-index:9999;background:var(--t1);color:#F7FAF8;border:1px solid var(--t1);padding:11px 15px;font-family:var(--fm);font-size:12px;box-shadow:0 18px 40px -20px rgba(8,33,28,.5);display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;pointer-events:none}
.toast.on{opacity:1;transform:none;pointer-events:all}
.tok{color:#5BEBAA} .terr{color:#F2A091}
.tundo{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:var(--r-pill);color:#F7FAF8;font-family:var(--fb);font-size:12px;padding:2px 9px;cursor:pointer;transition:background .12s}
.tundo:hover{background:rgba(255,255,255,.24)}

/* ── MISC ── */
.empty{padding:56px;text-align:center;color:var(--t3);font-family:var(--fm);font-size:12px;letter-spacing:.06em}
@keyframes shim{0%{background-position:-400px 0}100%{background-position:400px 0}}
.sk{background:linear-gradient(90deg,var(--bg-2) 25%,var(--bd) 50%,var(--bg-2) 75%);background-size:400px 100%;animation:shim 1.4s infinite;display:inline-block}

/* ── BULK OWNER ASSIGN — shown above a list filtered to "No owner" ── */
.bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:2px;padding:10px 14px;background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow);border:1.5px solid rgba(217,119,6,.35)}
#dr-bulk .bulk-bar,#co-bulk .bulk-bar{margin:10px 22px 0}
.bulk-msg{font-size:14px;color:var(--t1)}
.bulk-inp{width:200px;border-radius:var(--r-pill);padding:8px 14px}
.bulk-bar .btn{padding:8px 18px}
.bulk-bar .btn:disabled{opacity:.5;cursor:not-allowed}
