
.projects-page-shell{max-width:1600px}
.projects-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.projects-heading h1{margin:0;font-size:24px;font-weight:800}
.projects-toolbar-right{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
.projects-toolbar-stack{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.projects-toolbar-top{display:flex;align-items:center;gap:10px}
.create-project-dropdown .menu-panel{min-width:258px;padding:8px 0}
.create-project-dropdown .create-menu-item{display:flex;align-items:center;min-height:54px;padding:0 18px;font-size:16px;font-weight:700;transition:background .16s ease,color .16s ease}
.create-project-dropdown .create-menu-item + .create-menu-item{border-top:1px solid var(--line-soft)}
.create-project-dropdown .create-menu-item:hover{background:#f6f1ea}
.view-toggle{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.view-toggle button{width:42px;height:42px;border:0;background:#fff;color:#9d9387;display:flex;align-items:center;justify-content:center}
.view-toggle button svg{width:17px;height:17px}
.view-toggle button.is-active{background:var(--brown);color:#fff}
.filters-row.left-compact{display:grid;grid-template-columns:minmax(280px,1fr) 170px 170px 200px;max-width:980px;gap:10px;align-items:center;margin-bottom:14px}
.filter-trigger{width:100%;justify-content:flex-start;gap:8px}
.filter-panel-md{min-width:230px}
.filter-panel-lg{min-width:280px}
.filter-scroll{max-height:220px;overflow:auto;margin-top:12px}
.filter-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}
.filter-actions.dual{justify-content:space-between}
.helper-copy{margin:10px 0 0;color:var(--muted);font-size:13px}
.modal-stack{margin-top:18px}
.modal-subtitle{font-weight:800;margin-bottom:10px}
.empty-template-state{min-height:240px;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.project-grid-shell{background:#fff;border:1px solid var(--line-soft);border-radius:18px;overflow:hidden}
.project-grid-scroll{overflow:auto}
.project-table{border-collapse:separate;border-spacing:0;min-width:1760px;width:max-content;table-layout:fixed}
.project-table thead th,.project-table tbody td{padding:0 14px;height:64px;border-bottom:1px solid var(--line-soft);background:#fff;position:relative;white-space:nowrap;vertical-align:middle;overflow:hidden}
.project-table thead th{font-size:13px;color:#5a5249;font-weight:700;background:#fff}
.project-table thead th .head-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:18px}
.project-table tbody td .truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-table .project-name-text,.project-table .manager-stack,.project-table .tag-cell-wrap{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* fixed vertical separators */
.project-table thead th,
.project-table tbody td{border-right:1px solid #e4ddd2}
.project-table thead th:last-child,
.project-table tbody td:last-child{border-right:0}
.project-table thead th.sticky-col,
.project-table tbody td.sticky-col{border-right:2px solid #d3c9bb;box-shadow:1px 0 0 #d3c9bb}
.project-table-advanced .name-col{background:#f8f6f1}

.project-table tbody td.sticky-col,.project-table thead th.sticky-col{position:sticky;left:0;z-index:3}
.project-table thead th.sticky-col{z-index:4}
.project-table tbody tr:last-child td{border-bottom:0}
.selectable-head{display:flex;align-items:center;justify-content:flex-start;gap:12px}
.selectable-head .head-title{flex:1;min-width:0;text-align:left}
.head-checkbox-wrap{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:0 0 auto}
.head-checkbox-wrap input,.row-checkbox input{width:18px;height:18px}
.project-title-cell{display:flex;align-items:center;gap:12px;font-weight:800;color:#201a18;min-width:0}
.project-link:hover,.client-link:hover,.manager-filter-link:hover,.tag-filter-link:hover{color:var(--purple)}
.client-link{font-weight:700}
.project-color{display:inline-block;width:10px;height:38px;border-radius:4px;flex:0 0 auto}
.project-color.purple{background:#7b49ef}
.project-color.blue{background:#376bf5}
.project-color.orange{background:#f15d39}
.project-name-cell{display:flex;align-items:center;gap:12px;min-width:0}
.row-checkbox{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:0 0 auto}
.row-status-btn{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 12px;border-radius:999px;background:#edf2ff;color:#2d4378;font-weight:700;border:0;max-width:100%}
.row-status-menu{min-width:240px;padding:10px}
.row-status-choice{display:flex;align-items:center;gap:10px;padding:10px 8px;border-radius:10px;color:var(--text)}
.row-status-choice:hover{background:#f6f1ea}
.row-status-manage{margin-top:8px;border-top:1px solid var(--line-soft);padding-top:10px}
.row-status-color{display:inline-block;width:11px;height:11px;border-radius:50%}

/* spreadsheet-like resize handle */
.resize-handle{
  position:absolute;
  top:0;
  right:-7px;
  width:14px;
  height:100%;
  cursor:col-resize;
  z-index:9;
  touch-action:none;
  background:transparent;
}
.resize-handle::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:1px;
  transform:translateX(-50%);
  background:#d5cab8;
  opacity:.95;
  transition:background .12s ease, width .12s ease;
}
.project-table thead th:hover .resize-handle::before,
.project-table tbody td:hover .resize-handle::before,
.resize-handle:hover::before,
.resize-handle.is-dragging::before{
  background:#8a735d;
  width:2px;
}

/* keep legacy guide disabled so no huge page line appears */
.column-resize-guide{
  display:none !important;
}
.column-resize-guide.is-visible{display:none !important}

.kanban-shell{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.kanban-column{background:#f3efe9;border:1px solid var(--line-soft);border-radius:16px;padding:14px}
.kanban-head{font-weight:800;margin-bottom:14px}
.kanban-list{display:grid;gap:12px}
.kanban-card{background:#fff;border:1px solid var(--line-soft);border-radius:14px;padding:16px}
.kanban-card h3{margin:0 0 10px;font-size:16px}
.kanban-card h3 a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kanban-meta{display:grid;gap:6px;color:var(--muted)}
.kanban-empty{min-height:120px;display:flex;align-items:center;justify-content:center;color:#9f9487;background:#fbfaf7;border-radius:12px;border:1px dashed var(--line)}
.status-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:14px;background:#fff;margin:10px 0}
.inline-edit{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.danger-inline{background:#fff4f2;border-color:#e66a4c;color:#b4381d;min-height:34px;padding:0 12px}
.selection-mode th:not(.selectable-head) .head-title{display:none}
.selection-mode th{padding-top:0;padding-bottom:0}
.manager-pill{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#2f8f16;color:#fff;font-weight:800;font-size:14px;flex:0 0 auto}
.manager-stack{display:flex;align-items:center;gap:10px;min-width:0}
.manager-filter-link,.tag-filter-link{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;padding:0;color:inherit;font:inherit;font-weight:700}
.add-tags-link{display:inline-flex;align-items:center;min-height:28px;color:var(--text);font-weight:700}
.no-results-copy{padding:8px 0;color:var(--muted);font-size:14px}
@media (max-width:980px){.filters-row.left-compact{grid-template-columns:1fr}.projects-toolbar{flex-direction:column;align-items:stretch}.projects-toolbar-right{justify-content:flex-end}}
