/* overview.css - extracted from mesh-PO_sheet.html */

@keyframes ntile-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(79,110,247,0); } 50% { box-shadow: 0 0 0 3px rgba(79,110,247,0.12); } }
.pd-wrap { max-width: 100%; }
.pd-ov-greet { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; gap: 20px; flex-wrap: wrap; }
.pd-ov-greet-left { display: flex; flex-direction: column; gap: 3px; }
.pd-ov-greet-hi { font-size: 18px; font-weight: 600; color: #111827; letter-spacing: -0.01em; }
.pd-ov-greet-sub { font-size: 12px; color: #6b7280; }
.pd-ov-greet-right { display: flex; align-items: center; gap: 10px; }
.pd-ov-greet-label { font-size: 11px; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.pd-prep-chips { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pd-prep-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px 4px 4px; background: white; border: 1px solid #e5e7eb; border-radius: 999px; font-size: 11px; color: #374151; font-weight: 500; }
.pd-prep-chip-ava { width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; color: white; flex-shrink: 0; }
.pd-prep-chip-count { font-size: 10px; color: #9ca3af; font-weight: 500; }
.pd-kpi-row { display: flex; gap: 0; margin-top: 22px; border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; background: white; }
.pd-kpi { flex: 1; padding: 18px 22px; border-right: 1px solid #e5e7eb; }
.pd-kpi:last-child { border-right: none; }
.pd-kpi-label { font-size: 10px; font-weight: 600; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 8px; }
.pd-kpi-val { font-size: 38px; font-weight: 700; line-height: 1; }
.pd-kpi-sub { font-size: 11px; color: #9ca3af; margin-top: 6px; }
.pd-progress { margin-top: 18px; }
.pd-prog-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
.pd-prog-lbl { font-size: 11px; font-weight: 500; color: #6b7280; }
.pd-prog-pct { font-size: 12px; font-weight: 600; color: #111827; }
.pd-prog-bar { height: 6px; background: #e5e7eb; border-radius: 3px; overflow: hidden; }
.pd-prog-fill { height: 100%; border-radius: 3px; background: #111827; transition: width .5s; }
.pd-prog-stats { display: flex; gap: 14px; margin-top: 6px; font-size: 11px; color: #9ca3af; }
.pd-prog-stats .pdot { width: 5px; height: 5px; border-radius: 50%; display: inline-block; margin-right: 3px; vertical-align: middle; }
.pd-callout { margin-top: 20px; background: #eef2ff; border-left: 3px solid #4f6ef7; border-radius: 6px; padding: 14px 18px; display: flex; gap: 14px; align-items: center; }
.pd-callout-icon { color: #4f6ef7; flex-shrink: 0; }
.pd-callout-body { flex: 1; min-width: 0; }
.pd-callout-title { font-size: 13px; font-weight: 600; color: #1e3a8a; }
.pd-callout-desc { font-size: 11px; color: #4338ca; margin-top: 2px; line-height: 1.5; }
.pd-callout-actions { display: flex; gap: 8px; flex-shrink: 0; }
.pd-cta-pri { height: 34px; padding: 0 16px; border: none; border-radius: 6px; background: #4f6ef7; color: white; font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; display: flex; align-items: center; gap: 6px; white-space: nowrap; box-shadow: 0 1px 2px rgba(0,0,0,0.06); }
.pd-cta-pri:hover { background: #3b5bdb; }
.pd-cta-sec { height: 34px; padding: 0 16px; border: 1px solid #c7d2fe; border-radius: 6px; background: white; color: #4f6ef7; font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.pd-cta-sec:hover { background: #eef2ff; border-color: #4f6ef7; }
.pd-divider { height: 1px; background: #e5e7eb; margin: 24px 0 20px; }
.pd-breakdown { }
.pd-sb-title { font-size: 10px; font-weight: 600; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 10px; }
.pd-sb-row { display: flex; align-items: center; gap: 8px; padding: 4px 0; }
.pd-sb-dot { width: 7px; height: 7px; border-radius: 2px; flex-shrink: 0; }
.pd-sb-lbl { font-size: 12px; color: #374151; flex: 1; }
.pd-sb-cnt { font-size: 13px; font-weight: 600; color: #111827; min-width: 22px; text-align: right; }
.pd-sb-bar { width: 100px; height: 4px; background: #f3f4f6; border-radius: 2px; overflow: hidden; }
.pd-sb-fill { height: 100%; border-radius: 2px; }
.pd-cl-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.pd-cl-title { font-size: 10px; font-weight: 600; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.4px; }
.pd-cl-prog { font-size: 11px; color: #9ca3af; }
.pd-cl-prog strong { color: #16a34a; font-weight: 600; }
.pd-cl-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f3f4f6; cursor: pointer; }
.pd-cl-item:last-child { border-bottom: none; }
.pd-cl-check { width: 16px; height: 16px; border: 1.5px solid #d1d5db; border-radius: 3px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.pd-cl-check.done { background: #16a34a; border-color: #16a34a; }
.pd-cl-check svg { display: none; color: white; }
.pd-cl-check.done svg { display: block; }
.pd-cl-text { font-size: 12px; color: #374151; flex: 1; }
.pd-cl-text.done { color: #c4c9d4; text-decoration: line-through; }
.pd-cl-badge { font-size: 10px; padding: 2px 8px; border-radius: 10px; font-weight: 500; white-space: nowrap; }
.pd-cl-badge.green { background: #f0fdf4; color: #16a34a; }
.pd-cl-badge.amber { background: #fffbeb; color: #d97706; }
.pd-cl-badge.blue { background: #eef2ff; color: #345def; }
.pd-cl-badge.gray { background: #f3f4f6; color: #9ca3af; }
.pln-stage-row > td { padding: 14px 18px 6px !important; background: white !important; border-bottom: 1px solid #e5e7eb !important; cursor: default; }
.pln-stage-row > td > div { display: flex; align-items: baseline; gap: 10px; }
.pln-stage-row .pln-stage-title { font-size: 11px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.08em; }
.pln-stage-row .pln-stage-sub { font-size: 11px; color: #c4c9d4; font-weight: 500; }
.pln-stage-row:hover > td { background: white !important; }
.pln-actions-th { width: 44px; }
.pln-actions { width: 44px; text-align: right; padding-right: 14px !important; }
.pln-act-btn { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: none; background: none; color: #9ca3af; border-radius: 6px; cursor: pointer; opacity: 0; transition: background 0.12s, color 0.12s, opacity 0.12s; }
.pln-row:hover .pln-act-btn { opacity: 1; }
.pln-act-btn:hover { background: #f3f4f6; color: #374151; }
.pln-row-menu { position: fixed; z-index: 1000; min-width: 184px; background: white; border: 1px solid #e5e7eb; border-radius: 9px; box-shadow: 0 8px 28px rgba(0,0,0,0.13); padding: 5px; display: none; }
.pln-row-menu-item { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border-radius: 6px; font-size: 12.5px; color: #374151; cursor: pointer; transition: background 0.1s; }
.pln-row-menu-item svg { color: #6b7280; flex-shrink: 0; }
.pln-row-menu-item:hover { background: #f3f4f6; }
.pln-row-menu-item.danger { color: #dc2626; }
.pln-row-menu-item.danger svg { color: #dc2626; }
.pln-row-menu-item.danger:hover { background: #fef2f2; }
.pln-row-menu-item.disabled { opacity: 0.4; cursor: not-allowed; }
.pln-row-menu-item.disabled:hover { background: none; }
.pln-row-menu-sep { height: 1px; background: #f0f0f0; margin: 4px 6px; }
.pln-default-tag { display: inline-flex; align-items: center; padding: 1px 7px; margin-left: 8px; background: #f1f5f9; color: #64748b; font-size: 10px; font-weight: 600; border-radius: 999px; letter-spacing: 0.02em; vertical-align: middle; }
.pln-name-wrap { display: flex; align-items: center; }
.pln-sub-row > td { padding: 6px 18px !important; background: #fcfcfd !important; border-bottom: 1px solid #e5e7eb !important; cursor: default; }
.pln-sub-row > td > div { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; }
.pln-sub-row .pln-sub-title { font-size: 10px; font-weight: 700; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.08em; }
.pln-sub-row .pln-sub-sub { font-size: 11px; color: #c4c9d4; font-weight: 500; }
.pln-sub-row:hover > td { background: #fcfcfd !important; }
.pln-group-row { display: none !important; }
.pln-group-row > td { padding: 28px 16px 4px !important; border-bottom: none !important; cursor: default; background: transparent !important; }
.pln-group-row:first-child > td { padding-top: 6px !important; }
.pln-group-row .pln-group-title { font-size: 16px; font-weight: 700; color: #111827; letter-spacing: -0.005em; line-height: 1.3; }
.pln-group-row .pln-group-sub { font-size: 12.5px; color: #6b7280; line-height: 1.5; margin-top: 3px; max-width: 720px; }
.pln-sub-row > td { padding: 10px 16px 6px !important; border-bottom: 1px solid #e5e7eb !important; cursor: default; background: transparent !important; }
.pln-sub-row > td > div { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; }
.pln-sub-row .pln-sub-title { font-size: 11px; font-weight: 700; color: #4b5563; text-transform: uppercase; letter-spacing: 0.08em; }
.pln-sub-row .pln-sub-sub { font-size: 11.5px; color: #9ca3af; font-weight: 500; text-align: right; }
.pln-ver-pill { display: inline-flex; align-items: center; padding: 3px 10px; background: #eef2ff; color: #4f6ef7; font-size: 11.5px; font-weight: 600; border-radius: 999px; line-height: 1.3; }
.pln-name-wrap { display: flex; align-items: center; gap: 4px; min-height: 22px; }
.pln-tree-indent { display: inline-block; flex-shrink: 0; }
.pln-tree-chev { width: 18px; height: 18px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border: none; background: none; cursor: pointer; color: #6b7280; border-radius: 4px; padding: 0; transition: background 0.12s, color 0.12s, transform 0.18s; }
.pln-tree-chev:hover { background: #f3f4f6; color: #111827; }
.pln-tree-chev svg { transition: transform 0.18s cubic-bezier(0.32, 0.72, 0, 1); transform: rotate(-90deg); }
.pln-tree-chev.open svg { transform: rotate(0deg); }
.pln-tree-chev.empty { cursor: default; }
.pln-tree-chev.empty:hover { background: transparent; }
.pln-name-txt { font-weight: 700; color: #111827; font-size: 13.5px; line-height: 1.3; }
.pln-drag-handle { display: inline-flex; align-items: center; justify-content: center; width: 12px; height: 16px; color: #d1d5db; cursor: grab; opacity: 0; transition: opacity 0.15s, color 0.12s; margin-left: 2px; margin-right: 2px; flex-shrink: 0; }
.pln-row:hover .pln-drag-handle { opacity: 1; }
.pln-drag-handle:hover { color: #6b7280; }
.pln-row:active .pln-drag-handle { cursor: grabbing; }
.pln-row.pln-dragging { opacity: 0.4; }
.pln-row.pln-drop-before > td { box-shadow: inset 0 2px 0 0 #4f6ef7; }
.pln-row.pln-drop-after > td { box-shadow: inset 0 -2px 0 0 #4f6ef7; }
.pln-row.pln-drop-inside > td { background: #eef2ff !important; box-shadow: inset 0 0 0 1.5px #4f6ef7; }
.pln-select-dot { display: none !important; }
.pln-row:hover .pln-select-dot { opacity: 0.7; }
.pln-select-dot:hover { border-color: #4f6ef7; opacity: 1 !important; }
.pln-select-dot.is-on { opacity: 1 !important; border-color: #4f6ef7; background: #4f6ef7; box-shadow: 0 0 0 3px rgba(79,110,247,0.15); }
.pln-row.is-selected > td { background: #f5f7ff !important; }
.pln-row.is-selected > td:first-child { box-shadow: inset 3px 0 0 0 #4f6ef7; }
.pln-filter-cell { position: relative; }
.pln-chips { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.pln-chip { display: inline-flex; align-items: center; gap: 3px; padding: 3px 9px; border-radius: 5px; font-size: 11.5px; font-weight: 500; line-height: 1.4; border: 1px solid transparent; cursor: default; }
.pln-chip-all { background: #f1f5f9; color: #475569; }
.pln-chip-dept { background: #eef2ff; color: #4338ca; }
.pln-chip-x { cursor: pointer; opacity: 0; font-size: 12px; margin-left: 1px; transition: opacity 0.12s; }
.pln-chip:hover .pln-chip-x { opacity: 0.45; }
.pln-chip:hover .pln-chip-x:hover { opacity: 1; }
.pln-add-wrap { position: relative; display: inline-flex; }
.pln-add { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 5px; font-size: 11.5px; font-weight: 600; color: #4f6ef7; border: 1px solid #c7d2fe; background: #eef2ff; cursor: pointer; font-family: inherit; opacity: 0; pointer-events: none; transition: opacity 0.15s ease, background 0.12s, border-color 0.12s; }
.pln-add:hover { background: #dde4ff; border-color: #4f6ef7; }
.pln-add-dd { position: absolute; top: calc(100% + 4px); left: 0; background: white; border: 1px solid #e5e7eb; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.10); z-index: 60; min-width: 220px; padding: 4px; display: none; }
.pln-add-dd.open { display: block; }
.pln-add-i { padding: 6px 11px; border-radius: 5px; cursor: pointer; font-size: 12px; color: #374151; transition: background 0.1s; }
.pln-add-i:hover { background: #f3f4f6; }
