/*
 * velo-projekt2.css
 * Uusi projektinäkymä — harmaasävy-teema, all:initial reset.
 * Scope: .vd2-proj ja .vd2-wrap
 * v3.3.5
 */

/* ══════════════════════════════════════
   1. LISTA-WRAPPER (header + suodattimet)
   ══════════════════════════════════════ */

.vd2-wrap {
  --g1: #1A1F1B;   /* topbar/hero */
  --g2: #252B26;   /* subnav */
  --g3: #3A4040;   /* aktiivi nav */
  --ga: #8E9A92;   /* harmaa aksentti */
  --gb: #B0BDB0;   /* harmaa dim */
  --brand:  #2C5F2D;
  --accent: #54A924;
  --orange: #F2811D;
  --ink:    #1C2220;
  --muted:  #6B7A70;
  --line:   #E2E8DF;
  --panel:  #F3F6F2;
  --paper:  #F9FBF8;
  --red:    #C0392B;
  --gold:   #D4870A;
  display: block;
}

/* List header */
.vd2-list-header {
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.vd2-list-header-top {
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.vd2-eyebrow {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 3px;
}
.vd2-list-title {
  font-family: Archivo, sans-serif;
  font-weight: 800;
  font-size: 20px;
  color: var(--ink);
  letter-spacing: -.3px;
}
.vd2-btn-primary {
  background: var(--brand);
  color: #fff;
  border: none;
  border-radius: 9px;
  padding: 9px 16px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  display: inline-block;
  transition: background .12s;
}
.vd2-btn-primary:hover { background: #245026; }

/* Suodattimet */
.vd2-filters {
  display: flex;
  gap: 5px;
  padding: 9px 18px;
  background: var(--paper);
  border-top: 1px solid var(--line);
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.vd2-filters::-webkit-scrollbar { display: none; }
.vd2-fchip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border-radius: 99px;
  border: 1.5px solid var(--line);
  background: #fff;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  transition: all .12s;
  flex-shrink: 0;
}
.vd2-fchip:hover {
  border-color: var(--ga);
  color: var(--ink);
}
.vd2-fchip--on {
  border-color: var(--g3);
  background: rgba(58,64,64,.07);
  color: var(--ink);
}
.vd2-fchip span {
  background: var(--panel);
  padding: 1px 6px;
  border-radius: 99px;
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
}
.vd2-fchip--on span {
  background: rgba(58,64,64,.12);
}

/* ══════════════════════════════════════
   2. PROJEKTILISTA — Design D rivit
      Harmaasävy-teema, all:initial reset
   ══════════════════════════════════════ */

.vd2-wrap .vd-proj {
  all: initial !important;
  display: block !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: #1C2220 !important;
  box-sizing: border-box !important;
  /* Harmaat CSS-muuttujat */
  --dark:   #1A1F1B;
  --brand:  #2C5F2D;
  --accent: #8E9A92;
  --orange: #F2811D;
  --ink:    #1C2220;
  --muted:  #6B7A70;
  --line:   #E2E8DF;
  --panel:  #F3F6F2;
  --paper:  #F9FBF8;
  --red:    #C0392B;
  --gold:   #D4870A;
  --rc:     13px;
  --rs:      8px;
  --sh:     0 1px 4px rgba(26,31,27,.07), 0 4px 16px rgba(26,31,27,.05);
  --sh-h:   0 4px 20px rgba(26,31,27,.13);
}

.vd2-wrap .vd-proj *,
.vd2-wrap .vd-proj *::before,
.vd2-wrap .vd-proj *::after {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
}
.vd2-wrap .vd-proj a { text-decoration: none !important; color: inherit !important; }

/* Projektilista */
.vd2-wrap .vd-proj .proj-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 14px !important;
  background: var(--panel) !important;
}

/* Projektirivi */
.vd2-wrap .vd-proj .proj-row {
  display: flex !important;
  background: #fff !important;
  border-radius: var(--rc) !important;
  border: 1px solid var(--line) !important;
  overflow: hidden !important;
  text-decoration: none !important;
  color: inherit !important;
  cursor: pointer !important;
  transition: box-shadow .15s, border-color .15s !important;
  box-shadow: var(--sh) !important;
}
.vd2-wrap .vd-proj .proj-row:hover {
  box-shadow: var(--sh-h) !important;
  border-color: #b8c0b8 !important;
}

/* Väriviiva — harmaasävy */
.vd2-wrap .vd-proj .proj-stripe { width: 4px !important; flex-shrink: 0 !important; display: block !important; }
.vd2-wrap .vd-proj .proj-row-body { flex: 1 !important; min-width: 0 !important; display: flex !important; flex-direction: column !important; }

/* Yläosa */
.vd2-wrap .vd-proj .proj-row-top {
  padding: 12px 16px 8px !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 10px !important;
}
.vd2-wrap .vd-proj .proj-row-left { min-width: 0 !important; flex: 1 !important; display: flex !important; flex-direction: column !important; }
.vd2-wrap .vd-proj .proj-num {
  font-size: 10px !important; font-weight: 700 !important; color: var(--muted) !important;
  letter-spacing: .07em !important; text-transform: uppercase !important;
  margin-bottom: 3px !important; display: block !important;
}
.vd2-wrap .vd-proj .proj-name {
  font-family: Archivo, 'Inter', sans-serif !important;
  font-weight: 700 !important; font-size: 14.5px !important;
  color: var(--dark) !important; line-height: 1.3 !important;
  white-space: normal !important; overflow: visible !important; display: block !important;
}
.vd2-wrap .vd-proj .proj-badge {
  font-size: 10px !important; font-weight: 700 !important;
  padding: 3px 9px !important; border-radius: 6px !important;
  white-space: nowrap !important; flex-shrink: 0 !important;
  text-transform: uppercase !important; letter-spacing: .04em !important;
  margin-top: 2px !important; align-self: flex-start !important; display: inline-block !important;
}

/* Talousviiva — tumma harmaasävy (#1A1F1B) */
.vd2-wrap .vd-proj .proj-row-finance {
  background: #1A1F1B !important;
  padding: 9px 16px !important;
  display: flex !important; flex-direction: row !important;
  align-items: center !important; gap: 0 !important;
  flex-wrap: nowrap !important; overflow: hidden !important;
}
.vd2-wrap .vd-proj .fin-col {
  display: flex !important; flex-direction: column !important;
  gap: 1px !important; padding-right: 14px !important;
  border-right: 1px solid rgba(255,255,255,.1) !important;
  margin-right: 14px !important; flex-shrink: 0 !important;
}
.vd2-wrap .vd-proj .fin-col:last-of-type {
  border-right: none !important; margin-right: 0 !important; padding-right: 0 !important;
}
.vd2-wrap .vd-proj .fin-lbl {
  font-size: 9px !important; font-weight: 700 !important;
  color: rgba(255,255,255,.4) !important;
  letter-spacing: .06em !important; text-transform: uppercase !important; display: block !important;
}
.vd2-wrap .vd-proj .fin-val {
  font-family: 'Space Mono', monospace !important;
  font-size: 13px !important; font-weight: 700 !important;
  color: #fff !important; display: block !important; white-space: nowrap !important;
}
/* Harmaa aksentti vihreän sijaan */
.vd2-wrap .vd-proj .fin-val.ok   { color: #A8C4A8 !important; }
.vd2-wrap .vd-proj .fin-val.warn { color: #F4C26A !important; }
.vd2-wrap .vd-proj .fin-val.neg  { color: #E57373 !important; }

/* Kate-palkki */
.vd2-wrap .vd-proj .fin-kate-wrap {
  flex: 1 !important; min-width: 80px !important;
  display: flex !important; flex-direction: column !important; gap: 4px !important;
}
.vd2-wrap .vd-proj .fin-kate-header {
  display: flex !important; flex-direction: row !important;
  justify-content: space-between !important; align-items: center !important;
}
.vd2-wrap .vd-proj .fin-kate-lbl { font-size: 9px !important; font-weight: 700 !important; color: rgba(255,255,255,.4) !important; text-transform: uppercase !important; }
.vd2-wrap .vd-proj .fin-kate-val { font-family: 'Space Mono', monospace !important; font-size: 12px !important; font-weight: 700 !important; }
.vd2-wrap .vd-proj .fin-track { height: 5px !important; background: rgba(255,255,255,.1) !important; border-radius: 3px !important; overflow: hidden !important; display: block !important; }
.vd2-wrap .vd-proj .fin-fill { height: 100% !important; border-radius: 3px !important; display: block !important; transition: width .4s !important; }

/* Aikataulu */
.vd2-wrap .vd-proj .proj-row-schedule {
  padding: 8px 16px 10px !important;
  display: flex !important; flex-direction: row !important;
  align-items: center !important; gap: 10px !important; background: #fff !important;
}
.vd2-wrap .vd-proj .sch-meta { font-size: 11.5px !important; color: var(--muted) !important; white-space: nowrap !important; flex-shrink: 0 !important; display: block !important; }
.vd2-wrap .vd-proj .sch-track { flex: 1 !important; height: 4px !important; background: var(--line) !important; border-radius: 2px !important; overflow: visible !important; position: relative !important; display: block !important; }
.vd2-wrap .vd-proj .sch-fill { height: 100% !important; border-radius: 2px !important; background: linear-gradient(90deg, #3A4040, #8E9A92) !important; display: block !important; }
.vd2-wrap .vd-proj .sch-today { position: absolute !important; top: -3px !important; width: 2px !important; height: 10px !important; background: var(--orange) !important; border-radius: 1px !important; display: block !important; }
.vd2-wrap .vd-proj .sch-pct { font-size: 11px !important; font-weight: 700 !important; color: var(--muted) !important; white-space: nowrap !important; flex-shrink: 0 !important; font-family: 'Space Mono', monospace !important; }

/* ══════════════════════════════════════
   3. DETALJIHERO — harmaasävy
   ══════════════════════════════════════ */

.vd2-wrap .vd-proj .detail-hero {
  background: var(--dark) !important;
  padding: 16px 20px 0 !important; display: block !important;
}
.vd2-wrap .vd-proj .hero-toprow {
  display: flex !important; flex-direction: row !important;
  align-items: flex-start !important; justify-content: space-between !important;
  gap: 12px !important; margin-bottom: 12px !important; flex-wrap: nowrap !important;
}
.vd2-wrap .vd-proj .hero-back {
  font-size: 11.5px !important; font-weight: 600 !important;
  color: rgba(255,255,255,.45) !important;
  display: flex !important; flex-direction: row !important; align-items: center !important; gap: 5px !important;
  padding: 5px 11px !important; border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 7px !important; background: rgba(255,255,255,.05) !important;
  text-decoration: none !important; white-space: nowrap !important; flex-shrink: 0 !important;
}
.vd2-wrap .vd-proj .hero-back:hover { background: rgba(255,255,255,.09) !important; color: #fff !important; }

.vd2-wrap .vd-proj .hero-meta { flex: 1 !important; min-width: 0 !important; display: flex !important; flex-direction: column !important; }
.vd2-wrap .vd-proj .hero-num {
  font-size: 10px !important; font-weight: 700 !important;
  color: var(--ga, #8E9A92) !important;
  letter-spacing: .09em !important; text-transform: uppercase !important; margin-bottom: 4px !important; display: block !important;
}
.vd2-wrap .vd-proj .hero-name {
  font-family: Archivo, 'Inter', sans-serif !important; font-weight: 900 !important;
  font-size: 19px !important; color: #fff !important; line-height: 1.2 !important;
  letter-spacing: -.3px !important; white-space: normal !important;
  overflow: visible !important; display: block !important; max-width: 100% !important;
}
.vd2-wrap .vd-proj .hero-badge {
  padding: 4px 13px !important; border-radius: 8px !important;
  font-size: 11px !important; font-weight: 700 !important;
  text-transform: uppercase !important; letter-spacing: .04em !important;
  flex-shrink: 0 !important; align-self: flex-start !important; display: inline-block !important;
}

/* KPI-neliöt — harmaa */
.vd2-wrap .vd-proj .hero-kpis {
  display: grid !important; grid-template-columns: repeat(4,1fr) !important;
  gap: 1px !important; background: rgba(255,255,255,.05) !important;
  border-radius: 10px 10px 0 0 !important; overflow: hidden !important; margin-top: 4px !important;
}
.vd2-wrap .vd-proj .hkpi {
  background: rgba(255,255,255,.04) !important; padding: 10px 14px !important;
  display: flex !important; flex-direction: column !important; gap: 3px !important;
}
.vd2-wrap .vd-proj .hkpi-lbl { font-size: 9px !important; font-weight: 700 !important; color: rgba(255,255,255,.4) !important; text-transform: uppercase !important; letter-spacing: .06em !important; display: block !important; }
.vd2-wrap .vd-proj .hkpi-val { font-family: 'Space Mono',monospace !important; font-size: 15px !important; font-weight: 700 !important; color: #fff !important; display: block !important; white-space: nowrap !important; }
.vd2-wrap .vd-proj .hkpi-val.ok   { color: #A8C4A8 !important; }
.vd2-wrap .vd-proj .hkpi-val.warn { color: #F4C26A !important; }
.vd2-wrap .vd-proj .hkpi-val.neg  { color: #E57373 !important; }
.vd2-wrap .vd-proj .hkpi-sub { font-size: 10px !important; color: rgba(255,255,255,.3) !important; display: block !important; }
/* Klikattavat hero-KPI:t (porautuminen valilehdelle) */
.vd2-wrap .vd-proj .hkpi.rewo-stat-link { position: relative !important; text-decoration: none !important; color: inherit !important; cursor: pointer !important; transition: background .12s ease !important; }
.vd2-wrap .vd-proj .hkpi.rewo-stat-link:hover { background: rgba(255,255,255,.09) !important; transform: none !important; box-shadow: none !important; }
.vd2-wrap .vd-proj .hkpi.rewo-stat-link:active { background: rgba(255,255,255,.13) !important; }
.vd2-wrap .vd-proj .hkpi .rewo-stat-chev { position: absolute !important; top: 7px !important; right: 8px !important; font-size: 13px !important; line-height: 1 !important; color: rgba(255,255,255,.32) !important; }
.vd2-wrap .vd-proj .hkpi.rewo-stat-link:hover .rewo-stat-chev { color: rgba(255,255,255,.6) !important; }

/* Metrit */
.vd2-wrap .vd-proj .hero-meters {
  display: grid !important; grid-template-columns: 1fr 1fr !important;
  gap: 10px !important; padding: 12px 0 0 !important;
}
.vd2-wrap .vd-proj .meter-block { display: flex !important; flex-direction: column !important; gap: 5px !important; }
.vd2-wrap .vd-proj .meter-header { display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: center !important; }
.vd2-wrap .vd-proj .meter-lbl { font-size: 9.5px !important; font-weight: 700 !important; color: rgba(255,255,255,.4) !important; text-transform: uppercase !important; letter-spacing: .06em !important; }
.vd2-wrap .vd-proj .meter-val-wrap { display: flex !important; flex-direction: row !important; align-items: baseline !important; gap: 4px !important; }
.vd2-wrap .vd-proj .meter-big { font-family: 'Space Mono',monospace !important; font-size: 18px !important; font-weight: 700 !important; }
.vd2-wrap .vd-proj .meter-unit { font-size: 11px !important; color: rgba(255,255,255,.4) !important; }
.vd2-wrap .vd-proj .meter-track { height: 7px !important; background: rgba(255,255,255,.1) !important; border-radius: 4px !important; overflow: hidden !important; position: relative !important; display: block !important; }
.vd2-wrap .vd-proj .meter-fill-kate { height: 100% !important; border-radius: 4px !important; display: block !important; }
.vd2-wrap .vd-proj .meter-fill-sched {
  height: 100% !important; border-radius: 4px !important;
  background: linear-gradient(90deg, rgba(255,255,255,.25), rgba(255,255,255,.5)) !important; display: block !important;
}
.vd2-wrap .vd-proj .meter-today-marker { position: absolute !important; top: -2px !important; width: 3px !important; height: 11px !important; background: var(--orange) !important; border-radius: 2px !important; display: block !important; }
.vd2-wrap .vd-proj .meter-sub { font-size: 10px !important; color: rgba(255,255,255,.3) !important; }

/* Mobiili */
@media (max-width: 600px) {
  .vd2-wrap .vd-proj .hero-kpis  { grid-template-columns: repeat(2,1fr) !important; }
  .vd2-wrap .vd-proj .hero-meters { grid-template-columns: 1fr !important; }
  .vd2-wrap .vd-proj .fin-col:nth-child(n+3) { display: none !important; }
}

/* ════════════════════════════════════════════════════════════
   VELO LIGHT OVERRIDE (era 10) — projektilista vaaleaksi.
   Vihreä primary-nappi -> hiili; tumma talouskaista -> vaalea + ink.
   ════════════════════════════════════════════════════════════ */
.ui-velo .vd2-btn-primary{ background:#2B3036 !important; color:#fff !important; }
.ui-velo .vd2-btn-primary:hover{ background:#3A4046 !important; }
.ui-velo .vd2-fchip--on{ border-color:#2B3036 !important; }
.ui-velo .vd2-fchip--on span{ color:#1B1F23 !important; }
.ui-velo .vd2-wrap .vd-proj .proj-row-finance{ background:#ECEEF0 !important; border-top:1px solid #E3E6E9 !important; }
.ui-velo .vd2-wrap .vd-proj .fin-lbl{ color:#727A82 !important; }
.ui-velo .vd2-wrap .vd-proj .fin-val{ color:#1B1F23 !important; }
.ui-velo .vd2-wrap .vd-proj .fin-val.ok  { color:#2E7D52 !important; }
.ui-velo .vd2-wrap .vd-proj .fin-val.warn{ color:#C77D2A !important; }
.ui-velo .vd2-wrap .vd-proj .fin-val.neg { color:#C0392B !important; }
