/* PrimaLux clarity pass: stronger hierarchy, contrast and interaction affordances. */
:root{--bg:#f2f4f8;--surface:#fff;--ink:#1f2b43;--muted:#6e7b91;--line:#dfe5ee;--purple:#5e4fd1;--purple-2:#efedff;--teal:#159579;--orange:#e68b32;--red:#d9505b;--shadow:0 12px 30px rgba(33,47,79,.08)}
body{background:linear-gradient(135deg,#f4f5f9 0%,#eef1f6 100%);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.side-rail{width:82px;background:linear-gradient(180deg,#202844 0%,#252d4b 100%);box-shadow:2px 0 12px rgba(31,40,69,.12)}
.brand-mark{background:linear-gradient(135deg,#6b5de2,#8b79ee);box-shadow:0 7px 16px rgba(115,95,222,.28)}
.rail-link{font-size:11px;color:#b8c2d7}.rail-link:hover,.rail-link.active{background:rgba(255,255,255,.15);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.rail-icon{font-size:21px}.rail-badge{font-size:10px;padding:2px 5px}
.workspace-sidebar{width:260px;background:rgba(251,252,254,.95);box-shadow:1px 0 0 rgba(219,225,236,.65)}
.workspace-title{font-size:14px;color:#4b5870}.workspace-switcher{height:47px;border-color:#dce2eb;box-shadow:0 3px 10px rgba(44,56,88,.04)}
.section-label{color:#7f8ca2;font-size:11px;letter-spacing:.07em}.project-item,.sidebar-link{font-size:13px;padding:10px;border:1px solid transparent}.project-item:hover,.project-item.active,.sidebar-link:hover{background:#eeecff;border-color:#ddd9ff;color:#4f43bd}
.sidebar-footer{font-size:11px}
.main-content{padding:0 38px 58px;max-width:1600px}.topbar{height:70px}.breadcrumbs{font-size:14px}.breadcrumbs strong{color:#25324a}.status-pill{font-size:11px;padding:6px 10px}
.top-actions{gap:17px}.invite-btn,.secondary-btn,.primary-btn{padding:10px 15px;font-size:13px}.invite-btn{box-shadow:0 2px 8px rgba(36,49,80,.04)}
.project-heading{padding:36px 0 29px}.eyebrow{font-size:11px;color:#8490a4;margin-bottom:9px}.project-heading h1{font-size:30px;color:#192640;letter-spacing:-.03em}.project-heading p{font-size:14px;color:#748198}
.insight-grid{gap:15px;margin-bottom:25px}.insight-card{min-height:112px;padding:18px 20px;border-color:#dfe4ed;box-shadow:0 5px 18px rgba(31,43,72,.045);transition:transform .18s ease,box-shadow .18s ease}.insight-card:hover{transform:translateY(-1px);box-shadow:0 9px 24px rgba(31,43,72,.08)}.insight-label{font-size:12px;color:#748199}.insight-value{font-size:30px;color:#1e2b44}.insight-meta{font-size:11px;margin-top:8px}
.board-card{border-color:#dce2eb;border-radius:14px;box-shadow:0 15px 36px rgba(30,43,73,.09)}.board-tabs{height:58px;padding:0 21px;gap:27px}.board-tab{height:58px;font-size:13px}.board-tab.active{color:#5546c8}.board-action{font-size:12px;padding:8px 6px}.toolbar{padding:15px 21px;background:#fff}.search-box{width:240px;padding:9px 11px;background:#f8f9fc;border-color:#dce2eb}.search-box input{font-size:12px}.filter-chip{font-size:12px;padding:9px 11px;background:#fff}.last-sync{font-size:11px}
.task-table{min-width:1220px}.task-table th{height:47px;background:#f7f9fc;color:#718097;font-size:11px;border-bottom:1px solid #dce2eb}.task-table td{height:68px;color:#516079;font-size:13px;border-bottom-color:#e9edf3}.task-table tbody tr:hover td{background:#fafaff}.task-table th,.task-table td{padding:0 15px}.check-col{width:64px}.task-col{width:22%}.detail-col{width:22%}.owner-col{width:12%}.status-col{width:13%}.date-col{width:12%}.priority-col{width:9%}.dep-col{width:10%}.action-col{width:42px}.detail-cell{color:#68758a}.drag-handle{display:inline-block;margin-right:7px;color:#aeb8c8;font-size:17px;line-height:1;cursor:grab;opacity:.7;vertical-align:middle;user-select:none}.drag-handle:hover{color:var(--purple);opacity:1}.drag-handle:active{cursor:grabbing}.task-row.dragging{opacity:.42}.task-row.drag-over td{border-top:2px solid var(--purple);background:#f7f5ff!important}.group-row td{height:40px;background:#f1f0ff;color:#5749bf;font-size:12px;border-bottom-color:#ddd9ff}.group-row td:first-child{border-left-width:4px}.group-toggle{font-size:15px;margin-right:8px}.group-summary{font-size:11px;color:#858dae}
.task-title{font-size:13px;color:#2e3b55}.task-subtitle{font-size:11px;color:#8a96a8;margin-top:4px}.comment-bubble{font-size:18px;color:#919db0}.owner-cell{gap:8px;font-size:12px}.owner-cell .user-avatar{width:29px;height:29px;font-size:10px}.owner-select{font-size:12px}.status-select{width:122px;padding:8px 11px;font-size:12px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.08)}.date-cell{font-size:12px}.date-icon{font-size:14px}.priority{font-size:12px}.priority-dot{width:8px;height:8px}.dep-chip{font-size:10px;padding:4px 6px}.table-footer{height:59px;padding:0 21px}.add-row{font-size:12px}.table-hint,.table-total{font-size:11px}
.notification-drawer,.task-detail-drawer{border-left:1px solid #dfe4ed}.drawer-head h2{font-size:23px;color:#1e2a43}.drawer-tabs{margin-top:26px}.notification-item{padding:18px 3px}.notification-title{font-size:13px}.notification-body{font-size:12px}.notification-time{font-size:11px}.notification-icon{width:30px;height:30px}.feishu-status-card{padding:12px;margin:14px 0}.feishu-status-card strong{font-size:12px}.feishu-status-card small{font-size:11px}
.task-detail-drawer{width:450px;padding:30px 28px}.task-detail-drawer h2{font-size:21px}.detail-form input,.detail-form select,.detail-form textarea{font-size:13px;padding:11px 12px}.detail-form label{font-size:12px}.detail-grid{gap:15px}.downstream-item{font-size:12px}
.timeline-toolbar,.activity-head{padding:20px 23px}.timeline-toolbar strong,.activity-head strong{font-size:14px}.timeline-toolbar span,.activity-head span{font-size:11px}.timeline-header{height:49px}.timeline-task-head{padding:0 23px;font-size:11px}.timeline-row{min-height:62px}.timeline-task{padding:0 23px;font-size:12px}.timeline-bar{height:29px;font-size:11px}.kanban-view{gap:15px;padding:20px}.kanban-column-head{font-size:12px}.kanban-card{padding:15px}.kanban-card h3{font-size:13px}.kanban-card p{font-size:11px}.kanban-card-foot{font-size:11px}.activity-list{padding:6px 23px 28px}.activity-item{padding:18px 0}.activity-item strong{font-size:13px}.activity-item p{font-size:12px}.activity-item small{font-size:11px}
.toast{font-size:13px;padding:12px 18px;border-radius:9px}
@media(max-width:1100px){.workspace-sidebar{width:225px}.main-content{padding-left:25px;padding-right:25px}}
@media(max-width:780px){.side-rail{width:62px}.workspace-sidebar{display:none}.main-content{padding-left:16px;padding-right:16px}.project-heading{padding-top:27px}.project-heading h1{font-size:26px}.insight-card{min-height:100px}.toolbar{padding:11px 14px}.task-table{min-width:970px}.task-detail-drawer{width:min(450px,100%)}}
.task-name-wrap{min-width:0;flex:1}.task-name-input,.task-description-input{width:100%;min-width:0;border:1px solid transparent;border-radius:6px;background:transparent;outline:0}.task-name-input{color:#2e3b55;font-size:13px;font-weight:600;line-height:1.35;padding:6px 7px}.task-description-input{display:block;color:#8a96a8;font-size:11px;line-height:1.3;padding:4px 7px}.task-name-input:hover,.task-description-input:hover{border-color:#dfe4ed;background:#fbfcff}.task-name-input:focus,.task-description-input:focus{border-color:#a69cf0;background:#fff;box-shadow:0 0 0 3px #efedff}.task-description-input::placeholder{color:#aab4c3}.priority-cell{display:flex;align-items:center;gap:7px}.priority-select{border:1px solid transparent;border-radius:5px;background:transparent;color:#65728a;font-size:12px;padding:5px 4px;outline:0;cursor:pointer}.priority-select:hover,.priority-select:focus{border-color:#dfe4ed;background:#fbfcff}.priority-select option{font-weight:600;background:#fff}.priority-high{background:#e16472}.priority-medium{background:#e6a044}.priority-low{background:#9aa7b7}.priority-high-text{color:#d95d68}.priority-medium-text{color:#d89137}.priority-low-text{color:#7b8799}.dependency-cell{width:100%;min-height:30px;padding:2px 0;text-align:left;border:1px solid transparent;border-radius:5px;background:transparent}.dependency-cell:hover{border-color:#dfe4ed;background:#fbfcff}.dependency-cell .dep-list{pointer-events:none}.is-loading{opacity:.65;pointer-events:none}
.status-select option[value="not-started"]{background:#b9bec7;color:#fff}.status-select option[value="working"]{background:#ee9d45;color:#fff}.status-select option[value="done"]{background:#1fb889;color:#fff}.status-select option[value="stuck"]{background:#dc5964;color:#fff}
.task-table th{font-size:13px;font-weight:700;letter-spacing:.01em;text-transform:none;color:#5d6b82}.task-table td{height:76px;font-size:15px}.task-table th,.task-table td{padding-left:18px;padding-right:18px}.task-name{gap:12px}.task-name-input{font-size:15px;padding:7px 8px}.task-description-input{font-size:13px;padding:5px 8px}.owner-cell{gap:10px;font-size:14px}.owner-cell .user-avatar{width:31px;height:31px;font-size:11px}.owner-select{font-size:14px}.status-select{width:142px;min-height:38px;padding:8px 12px;font-size:14px}.date-cell{font-size:14px;min-height:32px}.date-icon{font-size:16px}.priority-cell{gap:8px}.priority-select{font-size:14px;padding:6px}.priority-dot{width:9px;height:9px}.dep-chip{font-size:12px;padding:5px 7px}.row-more{font-size:19px}.table-footer{height:64px}.add-row,.table-hint,.table-total{font-size:12px}
.rail-brand{width:68px;padding:8px 4px 7px;border-radius:11px;background:rgba(255,255,255,.97);box-shadow:0 8px 18px rgba(18,28,54,.2);gap:5px}.rail-logo{display:block;width:60px;height:auto;max-height:31px;object-fit:contain}.rail-brand span{color:#34415c;font-size:8px;letter-spacing:.04em;white-space:nowrap}
.status-menu{position:fixed;z-index:90;width:224px;padding:16px 16px 10px;background:#fff;border:1px solid #e3e7ef;border-radius:10px;box-shadow:0 14px 32px rgba(34,45,74,.2);display:none}.status-menu.open{display:block}.status-menu::before{content:"";position:absolute;top:-11px;left:calc(50% - 11px);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #fff;filter:drop-shadow(0 -1px 0 #e3e7ef)}.status-menu.above::before{top:auto;bottom:-11px;border-bottom:0;border-top:11px solid #fff;filter:drop-shadow(0 1px 0 #e3e7ef)}.status-option{display:flex;align-items:center;justify-content:center;width:100%;height:34px;margin:0 0 6px;border-radius:4px;color:#fff;font-size:15px;font-weight:600;line-height:1;transition:filter .15s ease,transform .15s ease}.status-option:last-child{margin-bottom:0}.status-option:hover{filter:brightness(.95);transform:translateY(-1px)}.status-option:focus-visible{outline:3px solid #c9c3f6;outline-offset:2px}.status-done{background:#00c875}.status-working{background:#ffab40}.status-stuck{background:#e62f4b}.status-not-started{background:#bdbdbd}
.dependency-menu{position:fixed;z-index:89;width:430px;max-height:560px;overflow:auto;padding:20px;background:#fff;border:1px solid #e3e7ef;border-radius:10px;box-shadow:0 14px 32px rgba(34,45,74,.2);display:none}.dependency-menu.open{display:block}.dependency-menu::before{content:"";position:absolute;top:-11px;left:calc(50% - 11px);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #fff;filter:drop-shadow(0 -1px 0 #e3e7ef)}.dependency-menu.above::before{top:auto;bottom:-11px;border-bottom:0;border-top:11px solid #fff;filter:drop-shadow(0 1px 0 #e3e7ef)}.dependency-menu-head{display:flex;align-items:flex-start;justify-content:space-between;padding:0 0 15px;border-bottom:1px solid #edf0f5}.dependency-menu-head strong{display:block;color:#25324a;font-size:16px}.dependency-menu-head span{display:block;margin-top:4px;color:#8a96a8;font-size:11px}.dependency-section{padding-top:16px}.dependency-section + .dependency-section{margin-top:9px;padding-top:17px;border-top:1px solid #edf0f5}.dependency-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:#52617a;font-size:12px;font-weight:700}.dependency-section-title span{color:#a0aabc;font-size:10px;font-weight:400}.dependency-task-list{display:flex;flex-direction:column;gap:5px}.dependency-task-row{display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 7px;border-radius:7px;background:#fafbfe}.dependency-task-row:hover{background:#f3f1ff}.dependency-task-row.current-task{opacity:.6}.dependency-task-check{display:flex;align-items:center;gap:8px;min-width:0;flex:1;cursor:pointer}.dependency-task-check input{width:15px;height:15px;accent-color:var(--purple);flex-shrink:0}.dependency-task-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#44516a;font-size:12px}.dependency-task-name em{margin-left:6px;color:#9aa5b6;font-size:10px;font-style:normal}.dependency-owner-select{width:92px;padding:5px 6px;border:1px solid #dfe4ed;border-radius:5px;background:#fff;color:#66738a;font-size:11px;outline:0}.dependency-owner-select:focus{border-color:#a69cf0;box-shadow:0 0 0 2px #efedff}.dependency-empty{padding:14px 5px;color:#a0aabc;font-size:11px;text-align:center;border:1px dashed #e1e5ed;border-radius:6px}
.bulk-bar{display:flex;align-items:center;gap:10px;min-height:54px;padding:8px 21px;background:#f7f5ff;border-bottom:1px solid #ddd9ff;color:#5e50c6}.bulk-bar strong{margin-right:5px;font-size:13px}.bulk-bar button,.bulk-bar select{height:34px;padding:0 11px;border:1px solid #d6d1fa;border-radius:6px;background:#fff;color:#5e50c6;font-size:12px;cursor:pointer}.bulk-bar button:hover,.bulk-bar select:hover{border-color:#9e94ee;background:#fdfcff}.bulk-bar .bulk-clear{margin-left:auto;color:#7f8ca2;border-color:#dfe4ed}.bulk-bar .bulk-clear:hover{color:#5e50c6}
.task-table th.check-col{width:82px}.task-table td.check-col{width:82px;padding-left:8px;padding-right:8px;text-align:left!important;white-space:nowrap}.task-table td.check-col .drag-handle{margin-right:9px}.task-table td.check-col .row-check{margin:0}
.task-table{min-width:1080px}.task-table th{height:40px}.task-table td{height:62px}.task-table th,.task-table td{padding-left:10px;padding-right:10px}.task-table th.check-col{width:60px}.task-table td.check-col{width:60px;padding-left:5px;padding-right:5px}.task-table td.check-col .drag-handle{margin-right:6px;font-size:15px}.task-name{gap:7px}.task-name-input{padding:5px 6px}.task-description-input{padding:3px 6px}.owner-cell{gap:7px;min-width:0}.owner-cell .user-avatar{flex:0 0 31px;width:31px!important;height:31px!important;min-width:31px;min-height:31px;aspect-ratio:1 / 1;border-radius:50%;display:grid;place-items:center}.owner-select{min-width:0;flex:1}.status-select{min-height:34px;padding:6px 10px}.date-cell{min-height:28px}.priority-select{padding:4px}.dep-chip{padding:4px 6px}
.task-table input[type=checkbox]:checked::after{content:"";position:absolute;left:4px;top:3px;width:5px;height:3px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);font-size:0}
.task-table th.task-col{width:23%}.task-table th.detail-col{width:16%}.task-table .task-name-input,.task-table .task-description-input{display:block;width:100%;height:46px;min-height:46px;resize:none;overflow:hidden;white-space:pre-wrap;word-break:break-word;line-height:1.35}.task-table .task-name-input{font-size:15px;font-weight:600;padding:5px 6px}.task-table .task-description-input{font-size:12px;padding:5px 6px;color:#7f8b9e}

/* Final clarity pass: state controls and dense table actions should stay
   legible even when the pointer is away or the table is keyboard operated. */
.status-select.status-select-button {
  font-weight: 700;
  letter-spacing: .01em;
}
.status-select.status-select-button.working { background: #d47b24; }
.status-select.status-select-button.done { background: #1f9b77; }
.status-select.status-select-button.stuck { background: #c6505b; }
.status-select.status-select-button.not-started { background: #8590a2; }
.status-option.status-working { background: #d47b24; }
.status-option.status-done { background: #1f9b77; }
.status-option.status-stuck { background: #c6505b; }
.status-option.status-not-started { background: #8590a2; }
.assignee-picker:focus-visible,
.dependency-cell:focus-visible,
.row-more:focus-visible,
.drag-handle:focus-visible {
  outline: 3px solid rgba(99, 84, 206, .22);
  outline-offset: 2px;
  border-radius: 7px;
}
.row-more { opacity: .38; transition: opacity .16s ease, color .16s ease, background .16s ease; }
.task-table tbody tr:hover .row-more,
.row-more:focus-visible { opacity: 1; }
.row-more:hover { color: var(--purple); background: var(--purple-2); border-radius: 6px; }
.table-wrap { scrollbar-color: #b4bdd0 transparent; scrollbar-width: thin; }
.table-wrap::-webkit-scrollbar { height: 10px; }
.table-wrap::-webkit-scrollbar-thumb { background: #b4bdd0; border: 3px solid transparent; background-clip: padding-box; border-radius: 99px; }
.bulk-bar { flex-wrap: wrap; }
@media (max-width: 700px) {
  .bulk-bar { align-items: stretch; gap: 7px; padding: 10px 12px; }
  .bulk-bar strong { width: 100%; margin: 0; }
  .bulk-bar .bulk-clear { margin-left: 0; }
  .bulk-bar button, .bulk-bar select { flex: 1 1 auto; min-width: 0; }
}
