/* Project Overview tab — phases (Gantt), % complete, health, KPIs. Scoped under .pov.
   Matches the approved mockup (docs/project-gantt-mockup.html) and the ProAirs design system. */
.pov {
  --pov-navy:#1E2E56; --pov-steel:#5E7F9F; --pov-sky:#A9C1D8; --pov-mist:#EDF2F6;
  --pov-leaf:#5A7C42; --pov-spruce:#46663A; --pov-sprout:#E8F0E1; --pov-brass:#C9A13F;
  --pov-ink:#141C33; --pov-slate:#4D586E; --pov-line:#D5DBE3; --pov-brick:#B23A32; --pov-amber:#8F5B0C;
  color:var(--pov-ink);
}
.pov .num { font-variant-numeric:tabular-nums; }
.pov-skel, .pov .empty { color:var(--pov-slate); padding:24px 4px; }

/* header: ring + health */
.pov-top { display:flex; align-items:center; gap:18px; margin-bottom:16px; }
.pov-ring { display:flex; align-items:center; gap:14px; }
.pov-ring svg { width:84px; height:84px; flex:none; }
.pov-ring .c { fill:none; stroke:var(--pov-line); stroke-width:8; }
.pov-ring .p { fill:none; stroke:var(--pov-leaf); stroke-width:8; stroke-linecap:round; transform:rotate(-90deg); transform-origin:50% 50%; transition:stroke-dasharray .8s cubic-bezier(.32,.72,0,1); }
.pov-ring .v { font-size:20px; font-weight:600; fill:var(--pov-ink); }
.pov-ring b { display:block; font-size:14px; font-weight:600; }
.pov-ring small { color:var(--pov-slate); font-size:12.5px; display:block; max-width:30ch; }
.pov-pill { margin-left:auto; font-size:12px; font-weight:600; border-radius:999px; padding:4px 12px; background:var(--pov-sprout); color:var(--pov-spruce); }
.pov-pill.warn { background:#FBEFD6; color:var(--pov-amber); }
.pov-pill.bad { background:#F6E0DE; color:var(--pov-brick); }

/* cards */
.pov-card { background:#fff; border-radius:20px; padding:4px; margin-bottom:16px; }
.pov-core { border-radius:16px; box-shadow:inset 0 0 0 1px var(--pov-line); padding:16px 18px; }
.pov-ph { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; gap:12px; }
.pov-ph h3 { margin:0; font-size:15px; font-weight:600; }
.pov-ph span { font-size:13px; color:var(--pov-slate); }
.pov-legend { display:flex; gap:14px; font-size:12.5px; color:var(--pov-slate); flex-wrap:wrap; }
.pov-legend i { display:inline-block; width:14px; height:8px; border-radius:4px; margin-right:5px; vertical-align:middle; }
.pov-legend i.dia { width:9px; height:9px; border-radius:2px; background:var(--pov-brass); transform:rotate(45deg); }
.pov-hint, .pov-stepbtns { color:var(--pov-slate); }
.pov-hint { font-size:12.5px; margin-top:10px; }

/* KPIs */
.pov-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.pov-k { background:#fff; border-radius:14px; padding:3px; }
.pov-k .pov-core { padding:14px 16px; border-radius:11px; }
.pov-k.muted { opacity:.72; }
.pov-k label { font-size:12.5px; color:var(--pov-slate); display:block; }
.pov-k b { font-size:22px; font-weight:600; letter-spacing:-.02em; display:block; margin:2px 0; }
.pov-k b small { font-size:13px; font-weight:400; color:var(--pov-slate); }
.pov-k > .pov-core > small { font-size:12.5px; color:var(--pov-slate); }
.pov-meter { height:6px; border-radius:999px; background:var(--pov-mist); margin-top:8px; overflow:hidden; }
.pov-meter i { display:block; height:100%; background:var(--pov-leaf); border-radius:999px; }
.pov-meter i.over { background:var(--pov-brick); }
.pov-meter i.warn { background:var(--pov-brass); }

/* Gantt */
.pov-gantt { display:grid; grid-template-columns:200px 1fr; font-size:13px; }
.pov-ghead { display:grid; grid-template-columns:repeat(var(--days),1fr); border-bottom:1px solid var(--pov-line); padding-bottom:6px; color:var(--pov-slate); font-size:11px; }
.pov-ghead span { text-align:center; overflow:hidden; }
.pov-ghead span.we { color:#B6BEC9; }
.pov-glab { padding:9px 10px 9px 0; border-bottom:1px solid var(--pov-line); display:flex; flex-direction:column; justify-content:center; cursor:pointer; }
.pov-glab:hover b { color:var(--pov-navy); }
.pov-glab b { font-weight:500; }
.pov-glab b .man { font-size:10.5px; font-weight:600; color:var(--pov-brass); background:#FBEFD6; border-radius:999px; padding:0 6px; margin-left:4px; }
.pov-glab small { color:var(--pov-slate); font-size:12px; }
.pov-grow { position:relative; border-bottom:1px solid var(--pov-line); height:46px; cursor:pointer;
  background:repeating-linear-gradient(90deg,transparent 0 calc(100%/var(--days) - 1px),var(--pov-mist) calc(100%/var(--days) - 1px) calc(100%/var(--days))); }
.pov-grow:hover { background-color:#FAFCFE; }
.pov-gantt .pov-glab:last-of-type, .pov-gantt .pov-grow:last-child { border-bottom:0; }
.pov-bar { position:absolute; top:9px; height:12px; border-radius:999px; background:var(--pov-sky); }
.pov-bar.dim { opacity:.5; }
.pov-act { position:absolute; top:24px; height:12px; border-radius:999px; background:var(--pov-leaf); }
.pov-act.late { background:var(--pov-brick); }
.pov-act.going { background:linear-gradient(90deg,var(--pov-leaf) 0 70%,transparent); border-radius:999px 0 0 999px; }
.pov-act.going.late { background:linear-gradient(90deg,var(--pov-brick) 0 70%,transparent); }
.pov-ms { position:absolute; top:14px; width:12px; height:12px; background:var(--pov-brass); transform:rotate(45deg); border-radius:2px; margin-left:-6px; }
.pov-ms.dim { opacity:.5; }
.pov-today { position:absolute; top:-2px; bottom:0; width:0; border-left:2px dashed var(--pov-navy); z-index:1; }

/* two columns: what's next + activity */
.pov-two { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.pov-list { list-style:none; margin:0; padding:0; font-size:14px; }
.pov-list li { display:flex; gap:10px; align-items:flex-start; padding:9px 0; border-top:1px solid var(--pov-line); }
.pov-list li:first-child { border-top:0; }
.pov-list .dot { width:10px; height:10px; border-radius:50%; flex:none; margin-top:6px; background:var(--pov-line); }
.pov-list .dot.done { background:var(--pov-leaf); }
.pov-list .dot.next { background:var(--pov-brass); }
.pov-list .dot.block { background:var(--pov-brick); }
.pov-list .t { min-width:0; }
.pov-list .src { display:inline-block; font-size:11px; color:var(--pov-steel); background:var(--pov-mist); border-radius:999px; padding:1px 7px; margin-left:4px; }
.pov-list .loc { display:inline-block; font-size:11px; font-weight:600; color:var(--pov-navy); background:#E4ECF4; border-radius:999px; padding:1px 8px; margin-left:4px; }
.pov-list .who { display:inline-block; font-size:11px; color:var(--pov-spruce); background:var(--pov-sprout); border-radius:999px; padding:1px 8px; margin-left:4px; }
.pov-locfilter { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.pov-locfilter .loc { border:0; cursor:pointer; font:inherit; font-size:12px; border-radius:999px; padding:4px 11px; background:var(--pov-mist); color:var(--pov-slate); }
.pov-locfilter .loc.on { background:var(--pov-navy); color:#fff; }
.pov-list .w { color:var(--pov-slate); font-size:12.5px; margin-left:auto; white-space:nowrap; }
.pov-stepbtns { display:flex; gap:2px; }
.pov-x { border:0; background:transparent; color:var(--pov-slate); cursor:pointer; font-size:12px; padding:0 4px; border-radius:6px; }
.pov-x:hover { background:var(--pov-mist); color:var(--pov-ink); }
.pov-tl { list-style:none; margin:0; padding:0; font-size:13.5px; }
.pov-tl li { display:grid; grid-template-columns:86px 1fr; gap:10px; padding:7px 0; border-top:1px solid var(--pov-line); }
.pov-tl li:first-child { border-top:0; }
.pov-tl time { color:var(--pov-slate); font-size:12.5px; }

/* buttons */
.pov-actions { margin-top:14px; display:flex; gap:8px; flex-wrap:wrap; }
.pov-btn { border:0; border-radius:999px; padding:9px 16px; font-size:14px; font-weight:500; background:var(--pov-brass); color:var(--pov-ink); cursor:pointer; }
.pov-btn.ghost { background:transparent; box-shadow:inset 0 0 0 1px var(--pov-line); color:var(--pov-ink); }

/* popover / sheet */
.pov-overlay { position:fixed; inset:0; background:rgba(20,28,51,.38); display:flex; align-items:center; justify-content:center; z-index:60; padding:16px; }
.pov-sheet { background:#fff; border-radius:18px; padding:20px; width:min(440px,100%); box-shadow:0 20px 60px rgba(20,28,51,.3); }
.pov-sheet h3 { margin:0 0 14px; font-size:16px; }
.pov-sheet h3 .src { font-size:12px; font-weight:400; color:var(--pov-steel); background:var(--pov-mist); border-radius:999px; padding:1px 8px; margin-left:6px; }
.pov-sheet label { display:flex; flex-direction:column; gap:4px; font-size:12.5px; color:var(--pov-slate); margin-bottom:12px; }
.pov-sheet label.check { flex-direction:row; align-items:center; gap:8px; font-size:14px; color:var(--pov-ink); }
.pov-sheet .row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pov-sheet input, .pov-sheet select { font:inherit; padding:8px 10px; border:1px solid var(--pov-line); border-radius:9px; background:#fff; color:var(--pov-ink); }
.pov-sheet-foot { display:flex; align-items:center; gap:8px; margin-top:6px; }
.pov-sheet-foot .spacer { flex:1; }
.pov-loc-label { font-size:12.5px; color:var(--pov-slate); margin-bottom:6px; }
.pov-loc-label .req { color:var(--pov-brick); font-size:11px; font-weight:600; margin-left:4px; }
.pov-chips { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.pov-chips .chip { border:0; cursor:pointer; font:inherit; font-size:13px; border-radius:999px; padding:6px 13px; background:var(--pov-mist); color:var(--pov-ink); box-shadow:inset 0 0 0 1px var(--pov-line); }
.pov-chips .chip.on { background:var(--pov-navy); color:#fff; box-shadow:none; }
.pov-other { margin-bottom:12px; width:100%; }

/* Project settings screen */
.povset { max-width:760px; }
.povset .pov-core { padding:18px 20px; }
.povset-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; margin-bottom:10px; }
.povset-num { display:flex; flex-direction:column; gap:4px; font-size:12.5px; color:#4D586E; }
.povset-num input { font:inherit; padding:8px 10px; border:1px solid #D5DBE3; border-radius:9px; background:#fff; color:#141C33; }
.povset-sum { font-size:12.5px; color:#46663A; }
.povset-sum.warn { color:#8F5B0C; }
.povset .check { display:flex; align-items:center; gap:8px; font-size:14px; color:#141C33; margin-top:10px; }
.povset-addloc { display:flex; gap:8px; margin-top:10px; }
.povset-addloc input { flex:1; font:inherit; padding:8px 10px; border:1px solid #D5DBE3; border-radius:9px; }
.pov-chips-tag { display:inline-flex; align-items:center; gap:6px; font-size:13px; background:#EDF2F6; border-radius:999px; padding:5px 6px 5px 12px; margin:0 6px 6px 0; }
.pov-chips-tag button { border:0; background:#D5DBE3; color:#141C33; cursor:pointer; border-radius:50%; width:18px; height:18px; font-size:11px; line-height:1; }
.povset-foot { margin-top:4px; }

/* Projects list: % column + health tag + health filter (not scoped to .pov) */
.health-tag { display:inline-block; font-size:12px; font-weight:600; border-radius:999px; padding:2px 10px; background:#E8F0E1; color:#46663A; }
.health-tag.warn { background:#FBEFD6; color:#8F5B0C; }
.health-tag.bad { background:#F6E0DE; color:#B23A32; }
.pct-cell { display:flex; align-items:center; gap:8px; justify-content:flex-end; }
.pct-cell span { font-variant-numeric:tabular-nums; min-width:34px; text-align:right; }
.listbar { width:64px; height:6px; border-radius:999px; background:#EDF2F6; overflow:hidden; flex:none; }
.listbar i { display:block; height:100%; background:#5A7C42; border-radius:999px; }
.listbar i.warn { background:#C9A13F; }
.listbar i.bad { background:#B23A32; }
.filters-sep { display:inline-block; width:1px; align-self:stretch; background:#D5DBE3; margin:0 4px; }

@media (max-width:860px) {
  .pov-kpis { grid-template-columns:1fr 1fr; }
  .pov-two { grid-template-columns:1fr; }
  .pov-gantt { grid-template-columns:120px 1fr; }
  .pov-top { flex-wrap:wrap; }
}

/* "Add to-do" modal: Location chips (single-select, required) + to-do location tag */
.loc-chips { display:flex; flex-wrap:wrap; gap:6px; }
.loc-chip { border:0; cursor:pointer; font:inherit; font-size:13px; border-radius:999px; padding:6px 13px; background:#EDF2F6; color:#141C33; box-shadow:inset 0 0 0 1px #D5DBE3; }
.loc-chip.on { background:#1E2E56; color:#fff; box-shadow:none; }
.loc-other { margin-top:8px; width:100%; }
.req-tag { font-size:11px; font-weight:600; color:#B23A32; margin-left:6px; }
.loc-tag { display:inline-block; font-size:11px; font-weight:600; color:#1E2E56; background:#E4ECF4; border-radius:999px; padding:1px 8px; }

/* Inline "Edit" link on Labor rows and to-do rows */
.lnk-edit { border:0; background:transparent; color:#1E2E56; cursor:pointer; font:inherit; font-size:13px; padding:2px 6px; border-radius:6px; }
.lnk-edit:hover { background:#EDF2F6; text-decoration:underline; }

/* Fleet auto labor rows (daily 8h split) */
.tag-auto{display:inline-block;font-size:10px;font-weight:600;background:#E4ECF4;color:#1E2E56;border-radius:999px;padding:1px 6px;vertical-align:middle}
