/* pipeline.css — Google-Sheets-style editable Pipeline grid (warm clay system) */

.sheetview{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;}

/* ── toolbar: pivot tabs + search + actions ── */
.sheetbar{display:flex;align-items:center;gap:12px;padding:12px 22px 11px;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.pivot{display:flex;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:2px;gap:2px;}
.pivot button{padding:6px 13px;font-size:12.5px;font-weight:550;font-family:inherit;border:none;background:none;color:var(--ink-2);border-radius:7px;transition:background .12s,color .12s;white-space:nowrap;}
.pivot button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);}
.pivot button:not(.on):hover{color:var(--ink);}

.sheetsearch{display:flex;align-items:center;gap:8px;flex:1;min-width:180px;max-width:320px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:7px 11px;transition:border-color .12s,box-shadow .12s;}
.sheetsearch:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint);background:var(--surface);}
.sheetsearch svg{width:15px;height:15px;color:var(--ink-3);flex:none;}
.sheetsearch input{flex:1;min-width:0;border:none;background:none;font-family:inherit;font-size:13px;color:var(--ink);outline:none;}
.sheetsearch input::placeholder{color:var(--ink-3);}
.sheetsearch .tdclear{border:none;background:none;color:var(--ink-3);font-size:11px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;}
.sheetsearch .tdclear:hover{background:var(--surface-3);color:var(--ink);}
.sheetbar .spacer{flex:1;}

/* ── pivot value filter (Excel-style) ── */
.pivotfilter{position:relative;}
.pf-field{display:flex;align-items:center;gap:7px;height:34px;padding:0 9px 0 10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;font-family:inherit;cursor:pointer;color:var(--ink-2);transition:border-color .12s,box-shadow .12s;}
.pf-field:hover{border-color:var(--ink-3);}
.pf-field.open{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint);}
.pf-funnel{display:flex;color:var(--ink-3);flex:none;}
.pf-val{font-size:12.5px;font-weight:600;white-space:nowrap;}
.pf-val.all{color:var(--ink-2);}
.pf-tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap;}
.pf-chev{width:11px;height:11px;color:var(--ink-3);flex:none;margin-left:1px;}
.pf-menu{min-width:210px;}
.pf-head{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);padding:3px 7px 6px;}
.pf-count{margin-left:auto;font-size:11px;color:var(--ink-3);background:var(--surface-2);border-radius:20px;padding:1px 7px;min-width:22px;text-align:center;}
.popopt.on .pf-count{background:var(--surface);}
.popopt .pf-count + .check{margin-left:6px;}

/* ── sync pill ── */
.syncpill{display:flex;align-items:center;gap:8px;padding:6px 11px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);font-size:12px;color:var(--ink-2);font-family:inherit;white-space:nowrap;}
.syncpill:hover{background:var(--surface-2);}
.syncpill .gdot{width:14px;height:14px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;}
.syncpill .gdot svg{width:14px;height:14px;}
.syncpill b{font-weight:600;color:var(--ink);}
.syncpill .pend{font-family:var(--mono);font-size:11px;color:var(--amber);background:var(--amber-tint);padding:1px 6px;border-radius:6px;font-weight:600;}
.syncpill .ok{color:var(--green);font-weight:600;}
.spin{animation:spin 0.8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

.syncpop{position:fixed;z-index:201;width:300px;background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-lg);padding:14px;}
.syncpop h4{margin:0 0 3px;font-size:13px;font-weight:600;}
.syncpop .sub{font-size:11px;color:var(--ink-3);margin-bottom:12px;font-family:var(--mono);}
.synctarget{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--border);}
.synctarget .ti{width:30px;height:30px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center;}
.synctarget .tm{flex:1;min-width:0;}
.synctarget .tn{font-size:13px;font-weight:600;line-height:1.2;}
.synctarget .ts{font-size:11px;color:var(--ink-3);margin-top:1px;}
.syncpop .syncfoot{display:flex;gap:8px;align-items:center;margin-top:13px;}
.syncpop .syncfoot .btn{flex:1;justify-content:center;}

/* ── the grid ── */
.gridwrap{flex:1;overflow:auto;position:relative;}
.gridwrap::-webkit-scrollbar{width:11px;height:11px;}
.gridwrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:7px;border:3px solid var(--bg);}
.gridwrap::-webkit-scrollbar-track{background:transparent;}

.grid{border-collapse:separate;border-spacing:0;font-size:13px;table-layout:fixed;background:var(--bg);}
.grid th,.grid td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);box-sizing:border-box;}

/* header */
.grid thead th{position:sticky;top:0;z-index:3;background:var(--surface-2);text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);padding:0;height:38px;user-select:none;}
.grid thead th.gnum{z-index:5;}
.colhd{display:flex;align-items:center;gap:5px;height:100%;padding:0 10px;cursor:pointer;}
.colhd:hover{background:var(--surface-3);}
.colhd .lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.colhd .sortcaret{font-size:9px;color:var(--primary);flex:none;}
.colhd .colmenu{opacity:0;border:none;background:none;color:var(--ink-3);font-size:14px;line-height:1;padding:2px 3px;border-radius:5px;flex:none;}
.colhd:hover .colmenu{opacity:1;}
.colhd .colmenu:hover{background:var(--surface);color:var(--ink);}
.grid thead th.r .colhd{justify-content:flex-end;}
.addcolhd{padding:0;}
.addcolbtn{width:100%;height:100%;border:none;background:var(--surface-2);color:var(--ink-3);font-size:18px;font-weight:400;display:flex;align-items:center;justify-content:center;}
.addcolbtn:hover{background:var(--primary-tint);color:var(--primary-2);}

/* row-number / gutter column */
.gnum{position:sticky;left:0;z-index:2;width:42px;min-width:42px;max-width:42px;background:var(--surface-2);text-align:center;color:var(--ink-3);font-family:var(--mono);font-size:11px;padding:0;}
.grid thead th.gnum{background:var(--surface-2);}
.gnum .rn{display:flex;align-items:center;justify-content:center;height:100%;}
.grid tbody tr:hover .gnum{background:var(--surface-3);}
.gnum .delrow{display:none;width:20px;height:20px;border-radius:6px;border:none;background:none;color:var(--ink-3);font-size:13px;align-items:center;justify-content:center;margin:0 auto;}
.grid tbody tr:hover .gnum .rn{display:none;}
.grid tbody tr:hover .gnum .delrow{display:flex;}
.gnum .delrow:hover{background:var(--rose-tint);color:var(--rose);}

/* frozen first data column */
.gfrozen{position:sticky;left:42px;z-index:2;background:var(--surface);}
.grid thead th.gfrozen{z-index:4;background:var(--surface-2);}
.grid tbody tr:hover td.gfrozen{background:var(--surface-2);}

/* body cells */
.grid tbody td{padding:0;height:40px;background:var(--surface);vertical-align:middle;}
.grid tbody tr:hover td{background:var(--surface-2);}
.gcell{height:100%;padding:0 10px;display:flex;align-items:center;cursor:cell;overflow:hidden;}
.gcell.editable{cursor:text;}
.gcell.rt{justify-content:flex-end;}
.gcell .ctxt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;}
.gcell.num .ctxt{text-align:right;}
.gcell.empty{color:var(--ink-3);}
.gcell.num{font-family:var(--mono);font-feature-settings:"tnum" 1;justify-content:flex-end;}

/* selection + edit ring */
td.sel{box-shadow:inset 0 0 0 2px var(--primary);position:relative;z-index:1;}
/* the contact/name column is a link (opens the profile), not a spreadsheet value — no selection ring */
td.sel.gfrozen{position:sticky;left:42px;z-index:3;box-shadow:none;}
/* editing: suppress the plain selection ring — the input shows its own active field */
td.sel.editing{box-shadow:none;}
.gcell-input{width:100%;height:100%;border:none;background:#fffdf9;box-shadow:inset 0 0 0 2px var(--primary);font-family:inherit;font-size:13px;color:var(--ink);padding:0 9px;outline:none;cursor:text;caret-color:var(--primary);border-radius:3px;}
.gcell-input.num{font-family:var(--mono);text-align:right;}

/* contact cell */
.gcontact{display:flex;align-items:center;gap:9px;height:100%;padding:0 10px;min-width:0;}
.gcontact .ava{position:relative;width:24px;height:24px;border-radius:7px;background:var(--surface-3);color:var(--ink-2);font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;flex:none;font-family:var(--mono);}
.gcontact .ava.anchor{background:var(--primary-tint);color:var(--primary-2);}
.gcontact .ava .astar{position:absolute;top:-5px;right:-5px;font-size:10px;color:var(--primary);font-style:normal;}
.gcontact .gnm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.gcontact .gnm.link{cursor:pointer;}
.gcontact .gnm.link:hover{color:var(--primary-2);text-decoration:underline;}
.gcontact .gnm.placeholder{color:var(--ink-3);font-weight:400;}

/* tag (single select) */
.gtag{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:3px 9px;border-radius:7px;letter-spacing:.01em;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.gtags{display:flex;flex-wrap:nowrap;gap:4px;overflow:hidden;}

/* checkbox cell */
.gcheck{width:19px;height:19px;border-radius:6px;border:1.7px solid var(--border-strong);background:var(--surface);display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;margin:0 auto;}
.gcheck.on{background:var(--green);border-color:var(--green);}

/* group section headers */
.grouprow td{background:var(--bg);padding:0;border-right:none;height:auto;}
.grouphd{display:flex;align-items:center;gap:10px;padding:13px 14px 7px;position:sticky;left:0;}
.grouphd .gcaret{width:16px;height:16px;color:var(--ink-3);flex:none;transition:transform .15s;}
.grouphd.collapsed .gcaret{transform:rotate(-90deg);}
.grouphd .gtag{font-size:12px;padding:3px 11px;}
.grouphd .gtitle{font-size:13px;font-weight:600;color:var(--ink);}
.grouphd .gmeta{font-family:var(--mono);font-size:11px;color:var(--ink-3);}
.grouphd .gsum{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--ink-2);font-weight:600;padding-right:8px;}
.grouphd .gsum small{color:var(--ink-3);font-weight:400;}
.grouphd .gnone{color:var(--ink-3);font-style:italic;font-weight:500;}

/* add-row + footer */
.gridfoot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 22px;border-top:1px solid var(--border);background:var(--surface);flex:none;flex-wrap:wrap;}
.addrowbtn{display:inline-flex;align-items:center;gap:7px;border:1px dashed var(--border-strong);background:none;color:var(--ink-2);font-family:inherit;font-size:13px;font-weight:500;padding:7px 13px;border-radius:9px;}
.addrowbtn:hover{border-color:var(--primary);color:var(--primary-2);}
.foottotals{display:flex;gap:20px;font-size:12px;color:var(--ink-2);}
.foottotals .ft b{font-family:var(--mono);color:var(--ink);font-weight:600;}

/* ── dropdown editor popover ── */
.cellpop{position:fixed;z-index:210;min-width:190px;max-width:280px;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow-lg);padding:6px;}
.cellpop .psearch{width:100%;padding:7px 9px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-2);font-family:inherit;font-size:12.5px;color:var(--ink);outline:none;margin-bottom:5px;}
.cellpop .psearch:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-tint);}
.cellpop .plist{max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;}
.popopt{display:flex;align-items:center;gap:8px;padding:5px 6px;border:none;background:none;border-radius:8px;font-family:inherit;text-align:left;cursor:pointer;width:100%;}
.popopt:hover{background:var(--surface-2);}
.popopt.on{background:var(--primary-tint);}
.popopt .check{margin-left:auto;color:var(--primary);font-size:12px;}
.popopt .obox{width:14px;height:14px;border-radius:4px;flex:none;}
/* option row: pick button + delete affordance */
.popopt-row{display:flex;align-items:center;border-radius:8px;}
.popopt-row .popopt{flex:1;min-width:0;width:auto;}
.popopt-row.on{background:var(--primary-tint);}
.popopt-row.on .popopt{background:none;}
.popopt-row:hover{background:var(--surface-2);}
.popopt-row.on:hover{background:var(--primary-tint);}
.optdel{flex:none;display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-right:4px;border:none;background:none;border-radius:6px;color:var(--ink-3);cursor:pointer;opacity:.4;transition:opacity .1s,background .1s,color .1s;}
.popopt-row:hover .optdel{opacity:1;}
.optdel:hover{background:var(--rose-tint);color:var(--rose);}
.popopt.confirmdel{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 8px;font-size:11.5px;color:var(--ink-2);background:var(--surface-2);cursor:default;}
.popopt.confirmdel .cd-yes,.popopt.confirmdel .cd-no{flex:none;border:none;border-radius:6px;font-family:inherit;font-size:11.5px;font-weight:600;padding:4px 9px;cursor:pointer;}
.popopt.confirmdel .cd-yes{background:var(--rose);color:#fff;}
.popopt.confirmdel .cd-no{background:var(--surface);color:var(--ink-2);border:1px solid var(--border-strong);}
.popnew{display:flex;align-items:center;gap:8px;padding:7px 6px;border:none;background:none;border-radius:8px;font-family:inherit;font-size:12.5px;color:var(--primary-2);font-weight:600;cursor:pointer;width:100%;text-align:left;border-top:1px solid var(--border);margin-top:3px;}
.popnew:hover{background:var(--primary-tint);}
.popclear{display:block;width:100%;text-align:left;padding:6px;border:none;background:none;color:var(--ink-3);font-family:inherit;font-size:12px;border-radius:7px;}
.popclear:hover{background:var(--surface-2);color:var(--rose);}

/* ── column header menu ── */
.colmenupop{position:fixed;z-index:210;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow-lg);padding:5px;}
.colmenupop button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 10px;border:none;background:none;border-radius:7px;font-family:inherit;font-size:13px;font-weight:500;color:var(--ink);}
.colmenupop button:hover{background:var(--surface-2);}
.colmenupop button.del{color:var(--rose);}
.colmenupop button.del:hover{background:var(--rose-tint);}
.colmenupop .cmlabel{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:6px 10px 4px;font-weight:600;}
.colmenupop .cmrename{width:100%;padding:7px 9px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-2);font-family:inherit;font-size:13px;color:var(--ink);outline:none;margin:2px 0 5px;}
.colmenupop .cmrename:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-tint);}

/* ── add-column modal ── */
.modal-back{position:fixed;inset:0;background:rgba(41,36,32,.34);z-index:300;display:flex;align-items:center;justify-content:center;padding:30px;opacity:0;animation:fade .15s forwards;}
.modal{width:min(440px,100%);background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden;transform:translateY(8px) scale(.99);animation:popin .18s cubic-bezier(.2,.7,.3,1) forwards;}
.modal-hd{padding:16px 20px;border-bottom:1px solid var(--border);font-size:15px;font-weight:600;}
.modal-body{padding:18px 20px;display:flex;flex-direction:column;gap:16px;}
.mfield label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);display:block;margin-bottom:6px;}
.mfield input.minp{width:100%;padding:9px 11px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);font-family:inherit;font-size:13px;color:var(--ink);outline:none;}
.mfield input.minp:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint);}
.typegrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;}
.typebtn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:11px 6px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-family:inherit;font-size:11.5px;font-weight:550;color:var(--ink-2);}
.typebtn:hover{border-color:var(--border-strong);}
.typebtn.on{border-color:var(--primary);background:var(--primary-tint);color:var(--primary-2);}
.typebtn .tyi{font-size:16px;line-height:1;}
.optadd{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.optadd .opttag{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 6px 3px 9px;border-radius:7px;}
.optadd .opttag button{border:none;background:none;color:inherit;opacity:.6;font-size:12px;padding:0;line-height:1;}
.optadd .opttag button:hover{opacity:1;}
.optadd .optinp{flex:1;min-width:90px;padding:6px 9px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);font-family:inherit;font-size:12.5px;outline:none;}
.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 20px;border-top:1px solid var(--border);}

/* multi-select tags in cell */
.gmtag{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px;white-space:nowrap;}

/* column resize grip (right edge of each header) */
.colresize{position:absolute;top:0;right:-1px;width:9px;height:100%;cursor:col-resize;z-index:6;}
.colresize::after{content:'';position:absolute;right:1px;top:18%;bottom:18%;width:2px;border-radius:2px;background:transparent;transition:background .1s;}
.colresize:hover::after,.colresize.on::after{background:var(--primary);}
.colresize.on::after{top:0;bottom:0;}

/* column drag-to-reorder */
.colhd.draggable{cursor:grab;}
.colhd.draggable:active{cursor:grabbing;}
th.coldragging .colhd{opacity:.35;}
th.coldrop{box-shadow:inset 2px 0 0 0 var(--primary);}
th.coldrop .colhd{background:var(--primary-tint);}

/* truncated-text hover box */
.gtip{position:fixed;z-index:320;max-width:360px;background:var(--ink);color:#fbf8f2;font-size:12px;line-height:1.45;padding:6px 10px;border-radius:8px;box-shadow:var(--shadow-lg);pointer-events:none;white-space:normal;animation:fade .1s;}

/* ════════════════════════ PIPELINE BOARD (Kanban) ════════════════════════ */
.boardview{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg);}

/* persistent hero header — weighted pipeline vs target */
.bhdr{display:flex;align-items:center;gap:30px;padding:16px 22px;border-bottom:1px solid var(--border);background:var(--surface);flex:none;flex-wrap:wrap;}
.bhdr-main{flex:1;min-width:300px;}
.bhdr-num{display:flex;align-items:baseline;gap:10px;}
.bhdr-num b{font-size:30px;font-weight:600;letter-spacing:-.02em;color:var(--ink);font-feature-settings:"tnum" 1;}
.bhdr-of{font-size:12.5px;color:var(--ink-3);font-family:var(--mono);white-space:nowrap;}
.bhdr-bar{margin-top:9px;height:7px;border-radius:6px;background:var(--surface-3);overflow:hidden;max-width:560px;}
.bhdr-bar span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--primary-2),var(--primary));transition:width .5s cubic-bezier(.2,.7,.3,1);}
.bhdr-stats{display:flex;gap:26px;flex:none;}
.bstat{display:flex;flex-direction:column;gap:1px;}
.bstat b{font-size:18px;font-weight:600;color:var(--ink);font-feature-settings:"tnum" 1;}
.bstat span{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);}

/* columns */
.bcols{flex:1;display:flex;gap:12px;padding:16px 22px 22px;overflow-x:auto;overflow-y:hidden;align-items:flex-start;min-height:0;}
.bcol{flex:0 0 248px;width:248px;max-height:100%;display:flex;flex-direction:column;background:var(--surface-2);border:1px solid var(--border);border-radius:13px;transition:background .12s,border-color .12s,box-shadow .12s;}
.bcol.over{background:var(--primary-tint);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint);}
.bcol-hd{display:flex;align-items:center;gap:8px;padding:12px 13px 2px;}
.bcol-dot{width:9px;height:9px;border-radius:50%;flex:none;}
.bcol-nm{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bcol-ct{margin-left:auto;font-size:11px;color:var(--ink-3);background:var(--surface);border-radius:20px;padding:1px 8px;}
.bcol-sub{padding:0 13px 10px 30px;font-size:11px;color:var(--ink-3);}
.bcol-w{color:var(--primary-2);}
.bcol-body{flex:1;overflow-y:auto;padding:0 9px 10px;display:flex;flex-direction:column;gap:8px;min-height:40px;}

/* LP card */
.bcard{background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:10px 11px;cursor:pointer;transition:box-shadow .12s,transform .08s,border-color .12s;box-shadow:0 1px 2px rgba(60,45,30,.04);}
.bcard:hover{border-color:var(--border-strong);box-shadow:0 4px 14px rgba(60,45,30,.09);}
.bcard:active{cursor:grabbing;}
.bcard.dragging{opacity:.4;}
.bcard.anchor{border-color:var(--primary-tint-2);}
.bcard-top{display:flex;align-items:flex-start;gap:9px;}
.bava{position:relative;width:28px;height:28px;border-radius:8px;background:var(--surface-3);color:var(--ink-2);font-size:10.5px;font-weight:600;display:flex;align-items:center;justify-content:center;flex:none;}
.bava.anchor{background:var(--primary-tint);color:var(--primary-2);}
.bava .bstar{position:absolute;top:-5px;right:-5px;font-size:9px;color:var(--primary);font-style:normal;}
.bcard-id{flex:1;min-width:0;}
.bnm{font-size:13px;font-weight:600;color:var(--ink);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bfirm{font-size:11.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;}
.bwarm{width:9px;height:9px;border-radius:50%;flex:none;margin-top:4px;}
.bcard-meta{display:flex;align-items:center;gap:8px;margin-top:9px;}
.bchk{font-size:12.5px;font-weight:600;color:var(--ink);}
.btier{font-size:10.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 7px;white-space:nowrap;}
.bdays{margin-left:auto;font-size:10.5px;color:var(--ink-3);}
/* compact layout */
.bcard.compact{padding:7px 10px;}
.bcard.compact .bcard-meta{margin-top:6px;}
.bcard.compact .bava{width:22px;height:22px;border-radius:7px;font-size:9px;}
.bempty{font-size:11.5px;color:var(--ink-3);text-align:center;padding:14px 0;border:1px dashed var(--border);border-radius:9px;font-family:var(--mono);}
.bempty.active{border-color:var(--primary);color:var(--primary-2);background:var(--surface);}

/* swimlanes */
.blanes{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:12px 0 18px;}
.blane{display:flex;flex-direction:column;}
.blane-hd{display:flex;align-items:center;gap:10px;padding:8px 22px 4px;position:sticky;left:0;}
.blane-nm{font-size:13px;font-weight:700;color:var(--ink);}
.blane-ct{font-size:11px;color:var(--ink-3);background:var(--surface-2);border-radius:20px;padding:1px 8px;}
.blane-w{margin-left:auto;font-size:11.5px;color:var(--primary-2);font-weight:600;padding-right:22px;}
.blane .bcols{padding:4px 22px 10px;flex:none;}
.blane .bcol{flex:0 0 218px;width:218px;background:var(--surface-2);}
.blane .bcol-body{max-height:none;}

/* board / grid view toggle (lives in TopBar) */
.viewtoggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:9px;padding:2px;gap:2px;}
.viewtoggle button{border:none;background:none;font-family:inherit;font-size:12.5px;font-weight:500;color:var(--ink-2);padding:5px 12px;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:6px;}
.viewtoggle button svg{width:14px;height:14px;}
.viewtoggle button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(60,45,30,.08);}
/* layout switch in board toolbar */
.boardtools{display:flex;align-items:center;gap:10px;padding:11px 22px;border-bottom:1px solid var(--border);background:var(--surface);flex:none;}
.layoutseg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:8px;padding:2px;gap:2px;margin-left:auto;}
.layoutseg button{border:none;background:none;font-family:inherit;font-size:12px;font-weight:500;color:var(--ink-2);padding:4px 11px;border-radius:6px;cursor:pointer;}
.layoutseg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(60,45,30,.08);}
.boardtools .bt-hint{font-size:12px;color:var(--ink-3);}

/* advance confirm */
.bconfirm-back{position:fixed;inset:0;background:rgba(41,36,32,.34);z-index:300;display:flex;align-items:center;justify-content:center;padding:30px;animation:fade .14s;}
.bconfirm{width:380px;max-width:100%;background:var(--surface);border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow-lg);padding:20px;}
.bconfirm-hd{display:flex;align-items:center;gap:9px;font-size:15px;color:var(--ink);}
.bconfirm-sub{font-size:13px;color:var(--ink-2);line-height:1.5;margin:9px 0 14px;}
.bconfirm-in{width:100%;padding:9px 11px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-2);font-family:inherit;font-size:13px;color:var(--ink);outline:none;margin-bottom:14px;}
.bconfirm-in:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-tint);}
.bconfirm-row{display:flex;justify-content:flex-end;gap:9px;}

/* ── outreach track cell + picker ── */
.gcell.gtrack{overflow:hidden;}
.trk-tag{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:3px 9px 3px 3px;border-radius:20px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.trk-dot{flex:none;width:18px;height:18px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.trk-empty{font-size:12px;font-weight:600;color:var(--primary-2);opacity:.78;}
.gtrack:hover .trk-empty{opacity:1;}
.trackpop{min-width:288px;max-width:320px;}
.trackopt{gap:10px;padding:7px 8px;}
.trk-badge{flex:none;width:26px;height:26px;border-radius:8px;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.trk-pmeta{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px;}
.trk-pnm{font-size:13px;font-weight:600;color:var(--ink);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.trk-psub{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ── copyable contact-channel cell (masked value + copy button) ── */
.gcell.gcopy{gap:7px;}
.cp-gl{flex:none;width:18px;height:18px;border-radius:5px;color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;}
.cp-mask{flex:1;min-width:0;letter-spacing:2.5px;color:var(--ink-3);font-size:12px;line-height:1;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;}
.cp-val{flex:1;min-width:0;font-size:13px;color:var(--ink);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cp-btn{flex:none;width:24px;height:24px;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.5;transition:opacity .12s,border-color .12s,color .12s,background .12s;}
.gcell.gcopy:hover .cp-btn{opacity:1;}
.cp-btn:hover{border-color:var(--primary);color:var(--primary-2);background:var(--primary-tint);}

/* ── Excel-style formula / edit bar ── */
.formulabar{display:flex;align-items:stretch;height:36px;flex:none;background:var(--surface);border-bottom:1px solid var(--border);}
.fb-ref{flex:none;min-width:172px;max-width:240px;display:flex;align-items:center;padding:0 12px;font-size:12px;color:var(--ink-2);border-right:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fb-fx{flex:none;display:flex;align-items:center;padding:0 13px;font-style:italic;font-size:13px;color:var(--ink-3);border-right:1px solid var(--border);}
.fb-input{flex:1;min-width:0;border:none;background:none;font-family:inherit;font-size:13px;color:var(--ink);padding:0 14px;outline:none;}
.fb-input:focus{background:#fffdf9;box-shadow:inset 0 0 0 2px var(--primary);}
.fb-empty{flex:1;display:flex;align-items:center;padding:0 14px;font-size:12.5px;color:var(--ink-3);}
.fb-picker{flex:1;display:flex;align-items:center;gap:9px;padding:0 14px;border:none;background:none;font-family:inherit;font-size:13px;color:var(--ink);text-align:left;cursor:pointer;}
.fb-picker:hover{background:var(--surface-2);}
.fb-ph{color:var(--ink-3);}
.fb-tag{margin-left:auto;font-size:11px;color:var(--ink-3);font-weight:500;}
