/* Projects module - swimlanes. Loads after cth.css; uses its tokens. */
.pj h2{margin:0;font-size:20px;font-weight:800}
.pj h3{margin:0 0 8px;font-size:15px;font-weight:800}
.pj h4{margin:0 0 4px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.pj-muted{color:var(--muted);font-size:13px}
.pj-red{color:var(--red)}
.pj-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.pj-filters{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.pj select,.pj input[type=text],.pj input[type=url],.pj input[type=date]{background:rgba(255,255,255,.06);border:1px solid var(--border);color:var(--text);font:inherit;font-size:13px;padding:6px 8px;border-radius:8px}
.pj-legend{font-size:12px;color:var(--faint);margin:4px 0 14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chip{display:inline-block;width:14px;height:14px;border-radius:4px;background:rgba(255,255,255,.12);font-size:10px;line-height:14px;text-align:center;vertical-align:middle}
.chip.green{background:var(--lime)}.chip.blue{background:#4fa3ff}.chip.amber{background:var(--amber)}.chip.red{background:var(--red)}.chip.grey{background:rgba(255,255,255,.12)}
/* portfolio table */
.pj-group{margin:18px 0 6px;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.pj-table{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow-x:auto}
.pj-row{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(9,34px) minmax(160px,1fr);gap:4px;align-items:center;padding:8px 14px;border-top:1px solid var(--border);color:var(--text);text-decoration:none;min-width:720px}
.pj-row:first-child{border-top:0}
a.pj-row:hover{background:rgba(113,228,80,.06)}
.pj-head{color:var(--faint);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.pj-name{display:flex;flex-direction:column;line-height:1.25}.pj-name span{color:var(--muted);font-size:12px}
.pj-ph{text-align:center;font-size:12px;color:var(--faint)}
.pj-gate{font-size:13px}
/* list views */
.pj-item{display:grid;grid-template-columns:18px 1fr auto;grid-template-areas:"c t d" "c m d";gap:0 10px;align-items:center;padding:8px 0;border-top:1px solid var(--border);color:var(--text);text-decoration:none}
.pj-item:first-of-type{border-top:0}
.pj-item .chip{grid-area:c}.pj-item-title{grid-area:t;font-weight:700}.pj-item .pj-muted{grid-area:m}.pj-due{grid-area:d;font-size:13px;color:var(--muted)}
/* board */
.pj-board{padding:16px 18px 60px;position:relative}
.pj-bh{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}
.pj-bh h2{margin:4px 0 2px}
.pj-meta{font-size:13px;color:var(--muted);margin-top:2px}.pj-meta b{color:var(--text)}
.pj-bh-right{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pj-kpi{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-size:13px;color:var(--muted)}.pj-kpi b{color:var(--text);font-size:15px}
.pj-lanepick{display:none;margin-bottom:10px;font-size:13px;color:var(--muted)}
.pj-grid{overflow-x:auto;border:1px solid var(--border);border-radius:14px;background:rgba(5,57,40,.18)}
.pj-grow{display:grid;grid-template-columns:150px repeat(var(--cols),minmax(150px,1fr));border-top:1px solid var(--border);min-width:1500px}
.pj-ghead{border-top:0;position:sticky;top:calc(var(--hdr) + var(--tabs));background:var(--forest);z-index:2}
.pj-lane{padding:10px;display:flex;flex-direction:column;gap:2px;font-size:13px;border-right:1px solid var(--border);position:sticky;left:0;background:rgba(5,57,40,.9);z-index:1}
.pj-fold{align-self:flex-start;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;padding:0}
.pj-folded .pj-cell{display:none}.pj-folded .pj-lane{padding:6px 10px}
.pj-cell{padding:6px;border-right:1px solid rgba(113,228,80,.06);display:flex;flex-direction:column;gap:6px;min-height:44px}
.pj-phh{font-size:12px;color:var(--muted);font-weight:700;min-height:0}.pj-phh span{display:inline-block;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.1);text-align:center;line-height:18px;font-size:11px;margin-right:4px}
.pj-card{all:unset;display:flex;flex-direction:column;gap:4px;padding:7px 8px;border-radius:9px;background:rgba(255,255,255,.05);border-left:4px solid rgba(255,255,255,.15);cursor:pointer;font-size:12px;line-height:1.25}
.pj-card:hover{background:rgba(255,255,255,.09)}
.pj-card.green{border-left-color:var(--lime);opacity:.7}.pj-card.blue{border-left-color:#4fa3ff}.pj-card.amber{border-left-color:var(--amber)}.pj-card.red{border-left-color:var(--red)}.pj-card.grey{border-left-color:rgba(255,255,255,.15);color:var(--muted)}
.pj-card.mine{box-shadow:0 0 0 1px rgba(113,228,80,.45)}
.pj-ct{font-weight:700}.pj-cm{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}
.pj-ini{display:inline-block;min-width:20px;padding:0 4px;border-radius:999px;background:rgba(255,255,255,.12);text-align:center;font-weight:700}
/* drawer */
.pj-drawer-back{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:20}
.pj-drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100%);background:#07301f;border-left:1px solid var(--border);z-index:21;overflow-y:auto;padding:18px 20px 40px;font-size:14px}
.pj-dhead{display:flex;align-items:center;gap:10px;margin-bottom:8px}.pj-dhead h3{flex:1;margin:0;font-size:17px}
.pj-dmeta{color:var(--muted);font-size:13px;margin-bottom:10px}
.pj-note{background:rgba(255,255,255,.06);border-radius:8px;padding:8px 10px;font-size:13px}
.pj-sec{margin:14px 0}.pj-sec p{margin:4px 0}
.pj-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pj-two label,.pj-modal label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);margin:6px 0}
.pj-deps{margin:0;padding-left:0;list-style:none}.pj-deps li{display:flex;gap:8px;align-items:center;padding:3px 0}
.pj-drawer input{width:100%;margin-bottom:6px}.pj-drawer select{width:100%}
.pj-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 6px}
.pj-c,.pj-ev{padding:6px 0;border-top:1px solid var(--border);font-size:13px}.pj-c:first-of-type,.pj-ev:first-of-type{border-top:0}
.pj-addc{display:flex;gap:8px;margin-top:8px}.pj-addc input{flex:1;margin:0}
.pj-modal{background:#07301f;border:1px solid var(--border);border-radius:14px;padding:20px;width:min(560px,94vw);margin:8vh auto 0;max-height:84vh;overflow-y:auto}
.pj-modal input,.pj-modal select{width:100%}
/* phone: one lane at a time */
@media (max-width:640px){
  .pj-lanepick{display:block}
  .pj-grow{display:none;grid-template-columns:1fr;min-width:0}
  .pj-grow.pj-ghead{display:none}
  .pj-grow.pj-mobile-on{display:grid}
  .pj-lane{position:static;border-right:0;border-bottom:1px solid var(--border)}
  .pj-cell{min-height:0;padding:6px 10px}.pj-cell:empty{display:none}
  .pj-cell::before{content:attr(data-ph);font-size:11px;color:var(--faint)}
  .pj-drawer{width:100%}
  .pj-two{grid-template-columns:1fr}
  .pj-row{min-width:0;grid-template-columns:1fr repeat(9,22px)}.pj-gate{display:none}
}
