/* ============================================================
   liitos-ui-v2.css — "Liitos UI v2" -ulkoasukerros
   Aktivoituu vain kun .rewo-app saa luokan .ui-v2 (Asetukset → Ulkoasu → Teema).
   KAIKKI säännöt on skoopattu .ui-v2:n alle, joten klassinen ulkoasu EI muutu.
   Sisältö:
     1) design-tokenit  2) perusilme + silta olemassa oleviin .rewo-*-luokkiin
     3) v2-komponenttiluokat (.side/.phead/.subtabs/.kpi/.num/.pill/.timer/.totbar)
     4) vasen pikavalikko (.rewo-leftpanel)  5) responsiivisuus (puhelin/tabletti/työpöytä)
   ============================================================ */

.rewo-app.ui-v2{
  --v2-paper:#FBFCFB; --v2-panel:#F4F6F4; --v2-card:#FFFFFF;
  --v2-ink:#1C2024; --v2-ink2:#3A4248; --v2-muted:#6B7278;
  --v2-line:#E6E9E6; --v2-line2:#EEF1EE;
  --v2-brand:#2C5F2D; --v2-accent:#54A924; --v2-accent-soft:#E7F2E1;
  --v2-sidebar:#0E2A20; --v2-sidebar-on:#163B2C;
  --v2-blue:#2563EB; --v2-pos:#1F8A3B; --v2-neg:#C0341D; --v2-warn:#E08600;
  --v2-r-card:12px; --v2-r-ctrl:10px;
  background:var(--v2-panel); color:var(--v2-ink);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
.rewo-app.ui-v2 .rewo-main{ background:var(--v2-panel); }

/* ---------- 2) SILTA: olemassa olevan markupin uudelleenteemaus ---------- */
.rewo-app.ui-v2 .rewo-card{
  background:var(--v2-card); border:1px solid var(--v2-line);
  border-radius:var(--v2-r-card); box-shadow:0 1px 2px rgba(16,42,32,.05);
}
.rewo-app.ui-v2 .rewo-h2{ font-weight:800; letter-spacing:-.01em; color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-h3{ font-weight:800; color:var(--v2-ink); }

/* napit */
.rewo-app.ui-v2 .rewo-btn{
  border-radius:var(--v2-r-ctrl); font-weight:700; border:1px solid var(--v2-line);
  background:#fff; color:var(--v2-ink); transition:filter .12s ease;
}
.rewo-app.ui-v2 .rewo-btn:hover{ filter:brightness(.97); }
.rewo-app.ui-v2 .rewo-btn-primary{ background:var(--v2-brand); border-color:var(--v2-brand); color:#fff; }
.rewo-app.ui-v2 .rewo-btn-approve,
.rewo-app.ui-v2 .rewo-btn-lime{ background:var(--v2-accent); border-color:var(--v2-accent); color:#fff; }
.rewo-app.ui-v2 .rewo-btn-blue{ background:var(--v2-blue); border-color:var(--v2-blue); color:#fff; }
.rewo-app.ui-v2 .rewo-btn-danger{ background:var(--v2-neg); border-color:var(--v2-neg); color:#fff; }
.rewo-app.ui-v2 .rewo-btn-ghost{ background:#fff; color:var(--v2-ink); border-color:var(--v2-line); }

/* taulukot: tabular-nums, tarttuva otsikkorivi, rivihover */
.rewo-app.ui-v2 .rewo-table{ font-variant-numeric:tabular-nums; }
.rewo-app.ui-v2 .rewo-table th{
  text-transform:uppercase; letter-spacing:.05em; font-size:11px; font-weight:700;
  color:#8a9090; border-bottom:1px solid var(--v2-line); background:var(--v2-card);
}
.rewo-app.ui-v2 .rewo-table td{ border-bottom:1px solid var(--v2-line2); }
.rewo-app.ui-v2 .rewo-table tbody tr:hover td{ background:#FAFBFA; }
.rewo-app.ui-v2 .rewo-tablewrap{ border-radius:var(--v2-r-card); }

/* lomakekentät: isommat kosketuskohteet, pehmeä reuna */
.rewo-app.ui-v2 .rewo-f input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
.rewo-app.ui-v2 .rewo-f select,
.rewo-app.ui-v2 .rewo-f textarea{
  border-radius:var(--v2-r-ctrl); border:1px solid #D9DDD9; font-size:14px;
}
.rewo-app.ui-v2 .rewo-f input:focus,
.rewo-app.ui-v2 .rewo-f select:focus,
.rewo-app.ui-v2 .rewo-f textarea:focus{
  outline:2px solid var(--v2-accent-soft); border-color:var(--v2-accent);
}

/* päänavigaatio (yläpillerit) — selkeämmät aktiivitilat */
.rewo-app.ui-v2 .rewo-subnav-i.on,
.rewo-app.ui-v2 .rewo-subnav-i[aria-current=page]{
  background:var(--v2-accent-soft); color:var(--v2-brand); font-weight:700;
}
.rewo-app.ui-v2 .rewo-tabbar .rewo-tab.on,
.rewo-app.ui-v2 .rewo-tab[aria-current=page]{ border-bottom-color:var(--v2-accent); color:var(--v2-ink); }

/* tunnusluvut / KPI:t */
.rewo-app.ui-v2 .rewo-stat-val,
.rewo-app.ui-v2 .rewo-kpi .v{ font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
/* KPI:n värisemantiikka: positiivinen=vihreä, negatiivinen=punainen (pos/neg joko kortissa tai arvossa) */
.rewo-app.ui-v2 .rewo-kpi.pos .v,
.rewo-app.ui-v2 .rewo-kpi .v.pos,
.rewo-app.ui-v2 .rewo-kpi.pos .rewo-stat-val,
.rewo-app.ui-v2 .rewo-kpi .rewo-stat-val.pos{ color:var(--v2-pos,#1F8A3B); }
.rewo-app.ui-v2 .rewo-kpi.neg .v,
.rewo-app.ui-v2 .rewo-kpi .v.neg,
.rewo-app.ui-v2 .rewo-kpi.neg .rewo-stat-val,
.rewo-app.ui-v2 .rewo-kpi .rewo-stat-val.neg{ color:var(--v2-neg,#C0341D); }
.rewo-app.ui-v2 .rewo-kpi.pos{ border-left:3px solid var(--v2-pos,#1F8A3B); }
.rewo-app.ui-v2 .rewo-kpi.neg{ border-left:3px solid var(--v2-neg,#C0341D); }
.rewo-app.ui-v2 .rewo-pill,
.rewo-app.ui-v2 .rewo-badge{ border-radius:999px; }

/* ---------- 3) v2-KOMPONENTIT (käytetään näkymien migraatiossa) ---------- */
.rewo-app.ui-v2 .v2-phead{ display:flex; align-items:flex-start; gap:14px; margin-bottom:6px; }
.rewo-app.ui-v2 .v2-phead .h{ font-size:22px; font-weight:800; letter-spacing:-.02em; }
.rewo-app.ui-v2 .v2-phead .sub{ font-size:13px; color:var(--v2-muted); margin-top:3px; }
.rewo-app.ui-v2 .v2-phead .sp{ flex:1; }
.rewo-app.ui-v2 .v2-pill{ display:inline-block; font-size:11px; font-weight:700; padding:3px 10px; border-radius:999px; vertical-align:middle; }
.rewo-app.ui-v2 .v2-pill.g{ background:#E7F2E1; color:#2C5F2D; }
.rewo-app.ui-v2 .v2-pill.y{ background:#FBF3D6; color:#876b12; }
.rewo-app.ui-v2 .v2-pill.r{ background:#F7E2DC; color:#C0341D; }
.rewo-app.ui-v2 .v2-pill.b{ background:#E1ECFB; color:#1D4FD7; }
.rewo-app.ui-v2 .v2-pill.n{ background:#EEF1EE; color:#5b6168; }
.rewo-app.ui-v2 .v2-subtabs{ display:flex; gap:4px; border-bottom:1px solid var(--v2-line); margin:14px 0 18px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.rewo-app.ui-v2 .v2-subtabs a{ padding:10px 14px; font-size:13.5px; font-weight:600; color:var(--v2-muted); border-bottom:2px solid transparent; cursor:pointer; text-decoration:none; white-space:nowrap; }
.rewo-app.ui-v2 .v2-subtabs a.on{ color:var(--v2-ink); border-bottom-color:var(--v2-accent); }
.rewo-app.ui-v2 .v2-subtabs a .c{ display:inline-block; background:#EEF1EE; color:#5b6168; border-radius:999px; font-size:10px; font-weight:700; padding:1px 7px; margin-left:6px; }
.rewo-app.ui-v2 .v2-num{ text-align:right; font-variant-numeric:tabular-nums; }
.rewo-app.ui-v2 .v2-savebar{ position:sticky; bottom:0; background:#fff; border-top:1px solid var(--v2-line); padding:12px 0; display:flex; gap:10px; align-items:center; margin-top:18px; z-index:5; }
.rewo-app.ui-v2 .v2-totbar{ display:flex; gap:18px; align-items:center; flex-wrap:wrap; background:var(--v2-sidebar); color:#fff; border-radius:12px; padding:14px 18px; margin-top:14px; }
.rewo-app.ui-v2 .v2-totbar .l{ font-size:12px; color:#9ec3a8; } .rewo-app.ui-v2 .v2-totbar .v{ font-size:20px; font-weight:800; } .rewo-app.ui-v2 .v2-totbar .sp{ flex:1; }
.rewo-app.ui-v2 .v2-timer{ background:var(--v2-sidebar); color:#fff; border-radius:14px; padding:18px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.rewo-app.ui-v2 .v2-timer .t{ font-size:30px; font-weight:800; font-variant-numeric:tabular-nums; }

/* ---------- 4) VASEN PIKAVALIKKO (peilattu oikeasta dev-paneelista) ---------- */
.rewo-leftpanel-toggle{
  position:fixed; left:0; top:50%; transform:translateY(-50%);
  width:40px; height:46px; border:none; border-radius:0 12px 12px 0;
  background:#0E2A20; color:#fff; font-size:22px; line-height:46px; text-align:center;
  cursor:pointer; z-index:99998; box-shadow:2px 0 10px rgba(0,0,0,.18);
  padding-left:env(safe-area-inset-left,0);
}
.rewo-leftpanel-toggle:hover{ background:#163B2C; }
.rewo-leftpanel-toggle .dot{ position:absolute; top:6px; right:6px; width:9px; height:9px; border-radius:50%; background:#E08600; }
.rewo-leftpanel{
  position:fixed; left:0; top:0; bottom:0; width:300px; max-width:86vw;
  background:#fff; border-right:1px solid var(--v2-line,#E6E9E6); z-index:99999;
  transform:translateX(-104%); transition:transform .22s ease; display:flex; flex-direction:column;
  box-shadow:6px 0 28px rgba(0,0,0,.16);
  padding-left:env(safe-area-inset-left,0); padding-bottom:env(safe-area-inset-bottom,0);
}
.rewo-leftpanel.open{ transform:translateX(0); }
.rewo-leftpanel[hidden]{ display:none; }
.rewo-leftpanel-h{ display:flex; align-items:center; gap:8px; background:#0E2A20; color:#fff; padding:14px 14px; padding-top:calc(14px + env(safe-area-inset-top,0)); font-weight:800; }
.rewo-leftpanel-h .sp{ flex:1; }
.rewo-leftpanel-x{ background:rgba(255,255,255,.14); color:#fff; border:none; border-radius:8px; width:30px; height:30px; font-size:15px; cursor:pointer; }
.rewo-leftpanel-body{ overflow:auto; padding:12px; display:flex; flex-direction:column; gap:6px; }
.rewo-leftpanel-sub{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#8a9090; margin:10px 4px 4px; }
.rewo-leftpanel a.rewo-lp-link{ display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:10px; color:#1C2024; text-decoration:none; font-size:14px; font-weight:600; border:1px solid transparent; }
.rewo-leftpanel a.rewo-lp-link:hover{ background:#F4F6F4; border-color:#E6E9E6; }
.rewo-leftpanel a.rewo-lp-link .ic{ font-size:18px; width:22px; text-align:center; }
.rewo-leftpanel a.rewo-lp-link .badge{ margin-left:auto; background:#C0341D; color:#fff; font-size:11px; font-weight:800; border-radius:999px; padding:1px 8px; }
.rewo-leftpanel-overlay{ position:fixed; inset:0; background:rgba(8,18,12,.32); z-index:99997; opacity:0; pointer-events:none; transition:opacity .22s ease; }
.rewo-leftpanel-overlay.open{ opacity:1; pointer-events:auto; }

/* ---------- 5) RESPONSIIVISUUS ---------- */

/* Suuret työpöydät / iMac: leveämpi sisältö, ei venytetä lukurivejä liikaa */
@media (min-width:1500px){
  .rewo-app.ui-v2 .rewo-main{ font-size:14.5px; }
}

/* Tabletit maisema + pieni työpöytä (iPad Pro ~1024–1366) */
@media (max-width:1366px){
  .rewo-app.ui-v2 .rewo-kpigrid{ gap:12px; }
}

/* Tabletit pysty (iPad / Android-tabletit) */
@media (max-width:1024px){
  .rewo-app.ui-v2 .rewo-grid2{ grid-template-columns:1fr 1fr; }
  .rewo-app.ui-v2 .rewo-kpigrid{ grid-template-columns:repeat(2,1fr); }
  .rewo-app.ui-v2 .rewo-card{ padding:14px; }
  .rewo-leftpanel{ width:320px; }
}

/* Puhelimet (iPhone / Android) */
@media (max-width:680px){
  .rewo-app.ui-v2 .rewo-grid2{ grid-template-columns:1fr; gap:10px; }
  .rewo-app.ui-v2 .rewo-kpigrid{ grid-template-columns:1fr 1fr; gap:10px; }
  .rewo-app.ui-v2 .rewo-card{ padding:13px; border-radius:12px; }
  .rewo-app.ui-v2 .rewo-h2{ font-size:18px; }
  /* isot kosketuskohteet + ei iOS-zoomia kentissä (font 16px) */
  .rewo-app.ui-v2 .rewo-btn{ min-height:42px; line-height:1.1; }
  .rewo-app.ui-v2 .rewo-f input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
  .rewo-app.ui-v2 .rewo-f select,
  .rewo-app.ui-v2 .rewo-f textarea{ font-size:16px; min-height:44px; }
  /* leveät taulukot vieritettäviksi kortin sisällä */
  .rewo-app.ui-v2 .rewo-tablewrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .rewo-app.ui-v2 .rewo-table{ min-width:560px; }
  .rewo-app.ui-v2 .v2-savebar{ padding-bottom:calc(12px + env(safe-area-inset-bottom,0)); }
  /* vasemman valikon nappi pois peukalon tieltä alhaalla (siirrä ylemmäs) */
  .rewo-leftpanel-toggle{ top:auto; bottom:140px; transform:none; }
}

/* Pienet puhelimet (iPhone SE / mini, kapeat Androidit) */
@media (max-width:380px){
  .rewo-app.ui-v2 .rewo-kpigrid{ grid-template-columns:1fr; }
  .rewo-app.ui-v2 .rewo-main{ font-size:14px; }
}

/* Tumman tilan kunnioitus jos käyttöjärjestelmä pyytää (kevyt) */
@media (prefers-reduced-motion:reduce){
  .rewo-leftpanel,.rewo-leftpanel-overlay{ transition:none; }
}

/* ============================================================
   v3 (3.001+) — UUSI SOVELLUSKUORI OLETUKSENA: sivupalkki + yläpalkki
   Silta olemassa olevaan rakenteeseen (rewo_erp_sidebar / rewo_erp_topcard),
   jotta navigaatio näyttää uudelta rakennetta rikkomatta.
   ============================================================ */

/* ---- vasen ryhmitelty sivupalkki ---- */
.rewo-app.ui-v2 .rewo-side{
  background:var(--v2-sidebar); color:#bcd0c2; border-right:1px solid #0a2018;
  padding:10px 0; min-width:228px;
}
.rewo-app.ui-v2 .rewo-navgrp{ border:none; margin:2px 0; }
.rewo-app.ui-v2 .rewo-navgrp-h{
  display:flex; align-items:center; gap:9px; padding:9px 16px; cursor:pointer;
  font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:#5c7268; font-weight:700;
  list-style:none;
}
.rewo-app.ui-v2 .rewo-navgrp-h::-webkit-details-marker{ display:none; }
.rewo-app.ui-v2 .rewo-navgrp-ar{ margin-left:auto; color:#3f5446; font-size:11px; }
.rewo-app.ui-v2 .rewo-navgrp-ic{ font-size:14px; opacity:.85; }
.rewo-app.ui-v2 .rewo-navitem{
  display:flex; align-items:center; gap:11px; padding:9px 16px 9px 18px;
  color:#bcd0c2; font-size:13.5px; text-decoration:none; border-left:3px solid transparent;
}
.rewo-app.ui-v2 .rewo-navitem:hover{ background:#12362a; color:#fff; }
.rewo-app.ui-v2 .rewo-navitem.is-active{
  background:var(--v2-sidebar-on); color:#fff; border-left-color:var(--v2-accent); font-weight:700;
}
.rewo-app.ui-v2 .rewo-navitem-ic{ width:18px; text-align:center; opacity:.9; }
.rewo-app.ui-v2 .rewo-navitem.is-active .rewo-navitem-ic{ opacity:1; }

/* ---- yläpalkki (topcard) siistiksi ---- */
.rewo-app.ui-v2 .rewo-topcard{
  background:var(--v2-card); border-bottom:1px solid var(--v2-line); box-shadow:none;
}
.rewo-app.ui-v2 .rewo-topcard-app{ font-weight:800; letter-spacing:-.01em; color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-topcard-ic{
  border-radius:10px; border:1px solid var(--v2-line); background:#fff; color:var(--v2-ink2);
}
.rewo-app.ui-v2 .rewo-topcard-ic:hover{ background:var(--v2-panel); }

/* ---- taulut: tarttuva otsikkorivi (työpöytä) ---- */
.rewo-app.ui-v2 .rewo-tablewrap{ position:relative; }
.rewo-app.ui-v2 .rewo-table thead th{ position:sticky; top:0; z-index:2; }

/* ---- välilehtirivit (työtilat / subtabs) selkeämmiksi ---- */
.rewo-app.ui-v2 .rewo-tabbar-strip{ border-bottom:1px solid var(--v2-line); }
.rewo-app.ui-v2 .rewo-subnav{ gap:4px; }

/* ---- responsiivinen sivupalkki: kapenee tableteilla, piiloon puhelimessa ---- */
@media (max-width:1024px){
  .rewo-app.ui-v2 .rewo-side{ min-width:200px; }
}
/* mobiilin sulkunappi sivupalkissa: piilossa työpöydällä */
.rewo-nav-close{ display:none; }
/* veto­valikon taustahimmennys: piilossa työpöydällä */
.rewo-nav-overlay{ display:none; }

@media (max-width:780px){
  /* puhelin: sivupalkki = liukuva veto­valikko (off-canvas). Avataan ☰- tai +-napista.
     Tämä korvaa aiemman display:none-ratkaisun jossa valikkoon ei päässyt käsiksi. */
  .rewo-app.ui-v2 .rewo-main{ width:100%; }
  .rewo-app.ui-v2 .rewo-side{
    display:flex; flex-direction:column;
    position:fixed; top:0; left:0; bottom:0;
    width:286px; max-width:86vw; z-index:99999;
    transform:translateX(-104%); transition:transform .24s ease;
    overflow-y:auto; -webkit-overflow-scrolling:touch;
    box-shadow:6px 0 30px rgba(0,0,0,.22);
    padding-top:calc(10px + env(safe-area-inset-top,0));
    padding-bottom:calc(14px + env(safe-area-inset-bottom,0));
    padding-left:env(safe-area-inset-left,0);
  }
  .rewo-app.ui-v2.rewo-nav-open .rewo-side{ transform:translateX(0); }
  /* "+"-napista avattu vetovalikko näyttää AINA ikonit JA tekstit (ei "rail"-tilaa puhelimessa) */
  .rewo-app.ui-v2.is-rail .rewo-side{ width:286px; min-width:286px; }
  .rewo-app.ui-v2.is-rail .rewo-side .rewo-navgrp-t,
  .rewo-app.ui-v2.is-rail .rewo-side .rewo-navgrp-ar,
  .rewo-app.ui-v2.is-rail .rewo-side .rewo-navitem span:not(.rewo-navitem-ic),
  .rewo-app.ui-v2.is-rail .rewo-side-brand-t{ display:inline; }
  .rewo-app.ui-v2.is-rail .rewo-side .rewo-navgrp-h{ justify-content:flex-start; padding:12px 14px; }
  .rewo-app.ui-v2.is-rail .rewo-side .rewo-navitem{ justify-content:flex-start; padding:9px 11px; }
  .rewo-app.ui-v2.is-rail .rewo-side-brand{ justify-content:flex-start; padding:6px 8px 12px; }

  .rewo-nav-overlay{
    display:block; position:fixed; inset:0; z-index:99990;
    background:rgba(8,18,12,.42); opacity:0; pointer-events:none;
    transition:opacity .24s ease;
  }
  .rewo-nav-overlay.open{ opacity:1; pointer-events:auto; }

  /* sulkunappi näkyviin vetovalikon yläkulmaan */
  .rewo-nav-close{
    display:block; position:absolute; top:calc(8px + env(safe-area-inset-top,0)); right:10px;
    width:34px; height:34px; border:0; border-radius:9px;
    background:rgba(255,255,255,.12); color:#fff; font-size:16px; line-height:1; cursor:pointer; z-index:2;
  }
}

@media (prefers-reduced-motion:reduce){
  .rewo-app.ui-v2 .rewo-side,.rewo-nav-overlay{ transition:none; }
}

/* ============================================================
   v3 näkymäkerros — sivuotsikko (.phead), välilehdet (.subtabs) ja KPI-kortit
   matchaamaan HTML-esikatselua. Silta olemassa oleviin luokkiin (kaikki näkymät).
   ============================================================ */
/* sivuotsikko -> .phead-malli */
.rewo-app.ui-v2 .rewo-head{ display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap; margin-bottom:6px; }
.rewo-app.ui-v2 .rewo-head-l{ flex:1; min-width:0; }
.rewo-app.ui-v2 .rewo-h1{ font-size:22px; font-weight:800; letter-spacing:-.02em; margin:0; }
.rewo-app.ui-v2 .rewo-headbtns{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-left:auto; }
.rewo-app.ui-v2 .rewo-proj-desc{ font-size:13px; color:var(--v2-muted); margin-top:4px; }
.rewo-app.ui-v2 .rewo-projnro{ font-size:12px; color:var(--v2-muted); }

/* projektin/yleiset välilehdet -> .subtabs (tarttuva, lukumäärämerkit) */
.rewo-app.ui-v2 .rewo-subnav{ display:flex; gap:2px; border-bottom:1px solid var(--v2-line); margin:0 0 18px; overflow-x:auto; -webkit-overflow-scrolling:touch; position:sticky; top:calc(var(--rewo-hh,52px) + env(safe-area-inset-top,0px) + 8px); z-index:30; background:var(--v2-paper,#FBFCFB); padding-top:8px; }
.rewo-app.ui-v2 .rewo-subnav-i{ padding:10px 14px; font-size:13.5px; font-weight:600; color:var(--v2-muted); border:none; border-bottom:2px solid transparent; border-radius:0; background:none; white-space:nowrap; text-decoration:none; }
.rewo-app.ui-v2 .rewo-subnav-i:hover{ color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-subnav-i.is-active{ color:var(--v2-ink); border-bottom-color:var(--v2-accent); background:none; font-weight:700; }
.rewo-app.ui-v2 .rewo-subnav-c{ display:inline-block; background:#EEF1EE; color:#5b6168; border-radius:999px; font-size:10px; font-weight:700; padding:1px 7px; margin-left:6px; vertical-align:middle; }
.rewo-app.ui-v2 .rewo-subnav-i.is-active .rewo-subnav-c{ background:var(--v2-accent-soft); color:var(--v2-brand); }

/* KPI / tilastokortit -> .card.kpi-malli */
.rewo-app.ui-v2 .rewo-kpigrid,.rewo-app.ui-v2 .rewo-stats{ gap:14px; }
.rewo-app.ui-v2 .rewo-kpi,.rewo-app.ui-v2 .rewo-stat{ background:var(--v2-card); border:1px solid var(--v2-line); border-radius:12px; padding:16px; }
.rewo-app.ui-v2 .rewo-stat-label{ font-size:12px; color:var(--v2-muted); font-weight:600; }
.rewo-app.ui-v2 .rewo-stat-val{ font-size:24px; font-weight:800; letter-spacing:-.02em; }

/* puhelin: otsikon napit omalle riville, välilehdet vieritettävät */
@media (max-width:680px){
  .rewo-app.ui-v2 .rewo-headbtns{ margin-left:0; width:100%; }
}

/* ============================================================
   v3.004 — ILMEEN KATTAVA UUDISTUS: header + globaali viimeistely
   Kaikki .rewo-app.ui-v2:n alla -> klassinen ei muutu.
   ============================================================ */

/* ---- HEADER / yläpalkki (uusi ilme, tarttuva) ---- */
.rewo-app.ui-v2 .rewo-topcard{
  position:sticky; top:env(safe-area-inset-top,0px); z-index:40;
  background:var(--v2-card); border-bottom:1px solid var(--v2-line); box-shadow:0 1px 0 rgba(16,42,32,.02);
  padding:10px 22px; min-height:60px; display:flex; align-items:center; gap:14px;
  padding-top:10px;
}
.rewo-app.ui-v2 .rewo-topcard-l{ display:flex; align-items:center; gap:12px; min-width:0; }
.rewo-app.ui-v2 .rewo-topcard-r{ display:flex; align-items:center; gap:8px; margin-left:auto; }
.rewo-app.ui-v2 .rewo-topcard-app{ font-weight:800; font-size:18px; letter-spacing:-.02em; color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-topcard-greet,
.rewo-app.ui-v2 .rewo-topcard-hi,
.rewo-app.ui-v2 .rewo-topcard-role{ color:var(--v2-muted); font-size:12.5px; }
.rewo-app.ui-v2 .rewo-topcard-role{ background:var(--v2-accent-soft); color:var(--v2-brand); border-radius:999px; padding:3px 10px; font-weight:700; font-size:11px; }
.rewo-app.ui-v2 .rewo-topcard-ic{
  width:38px; height:38px; border-radius:10px; border:1px solid var(--v2-line); background:#fff;
  color:var(--v2-ink2); display:inline-flex; align-items:center; justify-content:center; font-size:16px;
}
.rewo-app.ui-v2 .rewo-topcard-ic:hover{ background:var(--v2-panel); color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-topcard-logo img,
.rewo-app.ui-v2 .rewo-topcard-logo{ max-height:30px; }
.rewo-app.ui-v2 .rewo-topcard-timer{ background:var(--v2-accent-soft); color:var(--v2-brand); border-radius:999px; font-weight:700; }

/* ---- napit: kaikki variantit yhtenäisiksi ---- */
.rewo-app.ui-v2 .rewo-btn-dark{ background:var(--v2-sidebar); border-color:var(--v2-sidebar); color:#fff; }
.rewo-app.ui-v2 .rewo-btn-mini,.rewo-app.ui-v2 .rewo-btn-sm{ font-size:12.5px; padding:7px 12px; border-radius:9px; }
.rewo-app.ui-v2 .rewo-btn-lg{ padding:13px 22px; font-size:15px; border-radius:12px; }
.rewo-app.ui-v2 .rewo-btn:focus-visible{ outline:2px solid var(--v2-accent); outline-offset:2px; }

/* ---- lomakkeet ---- */
.rewo-app.ui-v2 .rewo-f > span{ font-size:12.5px; font-weight:700; color:var(--v2-ink2); margin-bottom:5px; display:block; }
.rewo-app.ui-v2 .rewo-formfoot{
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
  border-top:1px solid var(--v2-line); padding-top:14px; margin-top:16px;
}

/* ---- ohje / help -laatikot: pehmeä, aksenttireuna ---- */
.rewo-app.ui-v2 .rewo-ohje{
  background:#F6FAF3; border:1px solid #E2EFD9; border-left:3px solid var(--v2-accent);
  border-radius:10px; color:var(--v2-ink2); font-size:13px;
}
.rewo-app.ui-v2 .rewo-help{ color:var(--v2-muted); font-size:12.5px; }

/* ---- ilmoitukset (notice) semanttisin värein ---- */
.rewo-app.ui-v2 .rewo-notice{ border-radius:10px; border:1px solid var(--v2-line); }
.rewo-app.ui-v2 .rewo-notice-ok{ background:var(--v2-accent-soft); border-color:#CDE7C0; color:var(--v2-brand); }
.rewo-app.ui-v2 .rewo-notice-err{ background:#FBEAE5; border-color:#F2C9BE; color:var(--v2-neg); }

/* ---- tyhjät tilat ---- */
.rewo-app.ui-v2 .rewo-empty,.rewo-app.ui-v2 .rewo-tp-empty{
  color:var(--v2-muted); background:var(--v2-panel); border:1px dashed var(--v2-line);
  border-radius:12px; padding:18px; text-align:center; font-size:13.5px;
}

/* ---- lightbox / modaali ---- */
.rewo-app.ui-v2 .rewo-lb-backdrop{ background:rgba(8,18,12,.5); backdrop-filter:saturate(1.1) blur(1px); }
.rewo-app.ui-v2 .rewo-lb-panel{ border-radius:16px; border:1px solid var(--v2-line); box-shadow:0 24px 60px rgba(8,18,12,.28); overflow:auto; display:flex; flex-direction:column; }
.rewo-app.ui-v2 .rewo-lb-body{ flex:1; overflow:auto; padding-bottom:6px; }
.rewo-app.ui-v2 .rewo-lb-head{ border-bottom:1px solid var(--v2-line); font-weight:800; color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-lb-x{ border-radius:8px; }

/* ---- alapalkki (mobiili) ---- */
.rewo-app.ui-v2 .rewo-bottomnav{
  background:rgba(255,255,255,.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-top:1px solid var(--v2-line);
}

/* ---- kortin otsikkorivi / .rewo-cardhead ---- */
.rewo-app.ui-v2 .rewo-cardhead h2,.rewo-app.ui-v2 .rewo-cardhead h3,
.rewo-app.ui-v2 .rewo-tp-cardhead h2,.rewo-app.ui-v2 .rewo-tp-cardhead h3{ font-weight:800; letter-spacing:-.01em; }

/* ---- fokus, valinta, vieritys (hienosäätö) ---- */
.rewo-app.ui-v2 a:focus-visible,
.rewo-app.ui-v2 button:focus-visible,
.rewo-app.ui-v2 input:focus-visible,
.rewo-app.ui-v2 select:focus-visible{ outline:2px solid var(--v2-accent); outline-offset:1px; }
.rewo-app.ui-v2 ::selection{ background:var(--v2-accent-soft); }
.rewo-app.ui-v2 *::-webkit-scrollbar{ height:10px; width:10px; }
.rewo-app.ui-v2 *::-webkit-scrollbar-thumb{ background:#cdd6cd; border-radius:999px; border:2px solid var(--v2-panel); }
.rewo-app.ui-v2 *::-webkit-scrollbar-track{ background:transparent; }

/* ---- header mobiilissa: tiiviimpi ---- */
@media (max-width:680px){
  .rewo-app.ui-v2 .rewo-topcard{ padding:8px 13px; padding-top:calc(8px + env(safe-area-inset-top,0)); }
  .rewo-app.ui-v2 .rewo-topcard-app{ font-size:16px; }
  .rewo-app.ui-v2 .rewo-topcard-ic{ width:36px; height:36px; }
}

/* ============================================================
   v3.010 — UUSI KUORI: ☰ rail-kutistus + ⊞ moduulilauncher (overlay)
   ============================================================ */
/* ☰ rail: sivupalkki ikoneiksi */
.rewo-app.ui-v2.is-rail .rewo-side{ min-width:64px; width:64px; }
.rewo-app.ui-v2.is-rail{ --rewo-sw:64px; }
.rewo-app.ui-v2.is-rail .rewo-side .rewo-navgrp-t,
.rewo-app.ui-v2.is-rail .rewo-side .rewo-navgrp-ar,
.rewo-app.ui-v2.is-rail .rewo-side .rewo-navitem span:not(.rewo-navitem-ic){ display:none; }
.rewo-app.ui-v2.is-rail .rewo-side .rewo-navgrp-h{ justify-content:center; padding:9px 0; }
.rewo-app.ui-v2.is-rail .rewo-side .rewo-navitem{ justify-content:center; padding:9px 0; border-left-width:0; }
.rewo-app.ui-v2.is-rail .rewo-side .rewo-navitem.is-active{ border-left-width:3px; }

/* chrome-napit */
.rewo-app.ui-v2 .rewo-chrome-hb{ font-size:18px; }
.rewo-app.ui-v2 .rewo-chrome-all{ width:auto; padding:0 12px; gap:6px; font-weight:700; font-size:13px; }
@media (max-width:680px){ .rewo-app.ui-v2 .rewo-chrome-all-t{ display:none; } }

/* moduulilauncher overlay */
.rewo-launcher-ov{ position:fixed; inset:0; background:rgba(8,18,12,.42); z-index:100000; opacity:0; pointer-events:none; transition:opacity .18s ease; }
.rewo-launcher-ov.open{ opacity:1; pointer-events:auto; }
.rewo-launcher{
  position:fixed; left:50%; top:50%;
  transform:translate(-50%,-48%) scale(.98);
  width:min(960px,94vw); max-height:86vh; overflow:auto;
  background:#fff; border:1px solid var(--v2-line,#E6E9E6);
  border-radius:16px; z-index:100055;
  box-shadow:0 30px 80px rgba(8,18,12,.34);
  opacity:0; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
  /* display:none by default — JS removes hidden attr */
  display:none;
}
/* hidden attr: display:none (default) */
.rewo-launcher[hidden]{ display:none !important; }
/* open class: show and animate */
.rewo-launcher.open{
  display:block !important;
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,-50%) scale(1);
}
.rewo-launcher-h{ display:flex; align-items:center; gap:10px; padding:16px 18px; border-bottom:1px solid var(--v2-line,#E6E9E6); position:sticky; top:0; background:#fff; z-index:1; }
.rewo-launcher-h strong{ font-size:16px; font-weight:800; }
.rewo-launcher-search{ height:34px; border:1px solid var(--v2-line,#E6E9E6); border-radius:9px; padding:0 12px; font-size:13px; width:200px; max-width:42vw; }
.rewo-launcher-x{ width:32px; height:32px; border:1px solid var(--v2-line,#E6E9E6); background:#fff; border-radius:8px; cursor:pointer; font-size:14px; }
.rewo-launcher-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; padding:18px; }
.rewo-launcher-tile{ display:flex; flex-direction:column; gap:8px; align-items:flex-start; padding:14px; border:1px solid var(--v2-line,#E6E9E6); border-radius:12px; text-decoration:none; color:var(--v2-ink,#1C2024); background:#fff; }
.rewo-launcher-tile:hover{ border-color:var(--v2-accent,#54A924); background:#FAFCF8; }
.rewo-launcher-tile .ic{ font-size:22px; line-height:1; }
.rewo-launcher-tile .ic svg{ width:22px; height:22px; }
.rewo-launcher-tile .t{ font-size:13.5px; font-weight:700; }
@media (max-width:680px){ .rewo-launcher-grid{ grid-template-columns:repeat(2,1fr); } }

/* ============================================================
   v3.011 — VASEN VALIKKO TÄSMÄLLEEN esikatselun (.side/.brand/.grp/.nav a) mukaan
   ============================================================ */
.rewo-app.ui-v2 .rewo-side{ width:228px; flex:0 0 228px; min-width:228px; background:#0E2A20; color:#bcd0c2; padding:14px 0; }
.rewo-app.ui-v2 .rewo-side-brand{ display:flex; align-items:center; gap:10px; padding:6px 18px 14px; color:#fff; font-weight:800; font-size:19px; letter-spacing:-.02em; text-decoration:none; }
.rewo-app.ui-v2 .rewo-side-brand-logo{ height:26px; width:auto; border-radius:6px; }
.rewo-app.ui-v2 .rewo-side-brand-t{ white-space:nowrap; }
/* ryhmät tasaisiksi (aina auki, ei nuolta) */
.rewo-app.ui-v2 .rewo-side .rewo-navgrp[open] > *,
.rewo-app.ui-v2 .rewo-side .rewo-navgrp:not([open]) > *:not(summary){ display:block; }
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-ar{ display:none; }
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-h{ font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#5c7268; padding:14px 18px 6px; font-weight:700; cursor:default; background:none; gap:8px; list-style:none; }
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-h:hover{ background:none; color:#5c7268; }
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-h::-webkit-details-marker{ display:none; }
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-ic{ font-size:12px; opacity:.7; }
.rewo-app.ui-v2 .rewo-side .rewo-navitem{ padding:9px 18px; gap:11px; font-size:13.5px; border-left:3px solid transparent; color:#bcd0c2; }
.rewo-app.ui-v2 .rewo-side .rewo-navitem:hover{ background:#12362a; color:#fff; }
.rewo-app.ui-v2 .rewo-side .rewo-navitem.is-active{ background:#163b2c; color:#fff; border-left:3px solid #54A924; padding-left:15px; }
.rewo-app.ui-v2 .rewo-side .rewo-navitem-ic{ width:17px; flex:0 0 17px; text-align:center; }
/* rail: brändi tiiviiksi */
.rewo-app.ui-v2.is-rail .rewo-side-brand-t{ display:none; }
.rewo-app.ui-v2.is-rail .rewo-side-brand{ justify-content:center; padding:6px 0 12px; }

/* ============================================================
   v3.012 — TYÖPÖYTÄ-LAUNCHER (etusivu) esikatselun .ltile/.lic/.ltn mukaan
   ============================================================ */
.rewo-app.ui-v2 .rewo-launchpage{ margin:0 0 18px; }
.rewo-app.ui-v2 .rewo-lgrp{ margin:0 0 18px; }
.rewo-app.ui-v2 .rewo-lgh{ font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#8a9090; margin:0 0 12px; }
.rewo-app.ui-v2 .rewo-lgrid{ display:flex; flex-wrap:wrap; gap:10px; }
.rewo-app.ui-v2 .rewo-ltile{ width:118px; background:var(--v2-card); border:1px solid var(--v2-line); border-radius:12px; padding:12px 10px; text-align:center; text-decoration:none; color:inherit; display:block; transition:border-color .12s ease, box-shadow .12s ease; }
.rewo-app.ui-v2 .rewo-ltile:hover{ border-color:var(--v2-accent); box-shadow:0 2px 10px rgba(16,42,32,.09); }
.rewo-app.ui-v2 .rewo-lic{ width:40px; height:40px; border-radius:11px; margin:0 auto 8px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:18px; font-weight:800; }
.rewo-app.ui-v2 .rewo-ltn{ font-size:12px; font-weight:600; color:#23282A; line-height:1.25; }
@media (max-width:680px){ .rewo-app.ui-v2 .rewo-ltile{ width:calc(33.333% - 7px); } }
@media (max-width:380px){ .rewo-app.ui-v2 .rewo-ltile{ width:calc(50% - 5px); } }
/* Launcher-haku (⌘K) + ryhmäikoni + suodatuksen piilotus */
.rewo-app.ui-v2 .rewo-lsearch{ position:relative; max-width:420px; margin:0 0 18px; }
.rewo-app.ui-v2 .rewo-lsearch-ic{ position:absolute; left:12px; top:50%; transform:translateY(-50%); font-size:13px; opacity:.6; pointer-events:none; }
.rewo-app.ui-v2 .rewo-lq{ width:100%; box-sizing:border-box; padding:10px 46px 10px 34px; border:1px solid var(--v2-line); border-radius:10px; background:var(--v2-card); color:var(--v2-ink); font:inherit; }
.rewo-app.ui-v2 .rewo-lq:focus{ outline:2px solid var(--v2-accent-soft); border-color:var(--v2-accent); }
.rewo-app.ui-v2 .rewo-lsearch-kbd{ position:absolute; right:10px; top:50%; transform:translateY(-50%); font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace; color:#8a9090; background:var(--v2-panel); border:1px solid var(--v2-line); border-radius:6px; padding:3px 6px; pointer-events:none; }
.rewo-app.ui-v2 .rewo-lgh-ic{ font-size:12px; }
.rewo-app.ui-v2 .rewo-ltile[hidden],
.rewo-app.ui-v2 .rewo-lgrp[hidden],
.rewo-app.ui-v2 .rewo-lempty[hidden]{ display:none !important; }
.rewo-app.ui-v2 .rewo-lempty{ color:#8a9090; font-size:13px; padding:4px 2px 8px; }
@media (max-width:680px){ .rewo-app.ui-v2 .rewo-lsearch-kbd{ display:none; } }

/* ============================================================
   v3.014 — TEHTÄVÄT-KANBAN esikatselun .kcol/.kch/.kcard mukaan
   ============================================================ */
.rewo-app.ui-v2 .rewo-kan{ display:flex; gap:12px; align-items:flex-start; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
.rewo-app.ui-v2 .rewo-kcol{ flex:1; min-width:220px; background:#F1F4F1; border-radius:12px; padding:10px; }
.rewo-app.ui-v2 .rewo-kch{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:#5b6168; padding:4px 6px 10px; display:flex; align-items:center; gap:6px; }
.rewo-app.ui-v2 .rewo-kch .c{ margin-left:auto; background:#fff; border:1px solid var(--v2-line); color:#5b6168; border-radius:999px; font-size:11px; font-weight:700; padding:1px 8px; }
.rewo-app.ui-v2 .rewo-kcard{ display:block; background:#fff; border:1px solid var(--v2-line); border-radius:10px; padding:11px; margin-bottom:9px; text-decoration:none; color:inherit; transition:border-color .12s ease, box-shadow .12s ease; }
.rewo-app.ui-v2 .rewo-kcard:hover{ border-color:var(--v2-accent); box-shadow:0 2px 8px rgba(16,42,32,.08); }
.rewo-app.ui-v2 .rewo-kcard .t{ font-weight:700; font-size:13.5px; color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-kcard .m{ font-size:12px; color:#6B7278; margin-top:4px; }
.rewo-app.ui-v2 .rewo-kempty{ font-size:12.5px; color:#9aa0a0; padding:8px 6px; }
@media (max-width:680px){ .rewo-app.ui-v2 .rewo-kcol{ min-width:78vw; } }

/* ============================================================
   v3.014 — TEHTÄVÄT-KANBAN esikatselun (.kan/.kcol/.kcard) mukaan
   ============================================================ */
.rewo-app.ui-v2 .rewo-kan{ display:flex; gap:14px; align-items:flex-start; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
.rewo-app.ui-v2 .rewo-kcol{ flex:1; min-width:240px; background:#F1F4F1; border-radius:12px; padding:10px; }
.rewo-app.ui-v2 .rewo-kch{ display:flex; align-items:center; gap:8px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:#5a6b5a; padding:4px 6px 10px; }
.rewo-app.ui-v2 .rewo-kch .c{ margin-left:auto; background:#fff; border:1px solid var(--v2-line); color:#5b6168; border-radius:999px; font-size:11px; font-weight:700; padding:1px 8px; }
.rewo-app.ui-v2 .rewo-kcard{ display:block; background:#fff; border:1px solid var(--v2-line); border-radius:10px; padding:11px; margin-bottom:9px; text-decoration:none; color:var(--v2-ink); transition:border-color .12s ease, box-shadow .12s ease; }
.rewo-app.ui-v2 .rewo-kcard:hover{ border-color:var(--v2-accent); box-shadow:0 2px 8px rgba(16,42,32,.08); }
.rewo-app.ui-v2 .rewo-kcard .t{ font-size:13.5px; font-weight:700; line-height:1.3; }
.rewo-app.ui-v2 .rewo-kcard .m{ font-size:11.5px; color:var(--v2-muted); margin-top:6px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.rewo-app.ui-v2 .rewo-kava{ display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:var(--v2-accent-soft,#E7F2E1); color:var(--v2-brand,#2C5F2D); font-size:10.5px; font-weight:800; letter-spacing:.01em; flex:none; }
.rewo-app.ui-v2 .rewo-kdue{ font-size:12px; color:var(--v2-muted,#6B7278); }
.rewo-app.ui-v2 .rewo-kempty{ font-size:12px; color:#9aa39a; text-align:center; padding:14px 6px; }
@media (max-width:780px){ .rewo-app.ui-v2 .rewo-kcol{ min-width:78vw; } }

/* ============================================================
   v3.015 — Tilasuodatin-välilehdet (tarjoukset ym. .rewo-tabs) esikatselun mukaan
   (skoopattu .rewo-tabs:iin -> EI kosketa työtilatabbaria .rewo-tabbar)
   ============================================================ */
.rewo-app.ui-v2 .rewo-tabs{ display:flex; gap:6px; flex-wrap:wrap; border-bottom:1px solid var(--v2-line); margin:8px 0 16px; }
.rewo-app.ui-v2 .rewo-tabs .rewo-tab{ padding:9px 13px; font-size:13px; font-weight:600; color:var(--v2-muted); border:none; border-bottom:2px solid transparent; background:none; border-radius:0; text-decoration:none; white-space:nowrap; }
.rewo-app.ui-v2 .rewo-tabs .rewo-tab:hover{ color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-tabs .rewo-tab.is-active{ color:var(--v2-ink); border-bottom-color:var(--v2-accent); font-weight:700; }
.rewo-app.ui-v2 .rewo-tabs .rewo-tab span{ display:inline-block; background:#EEF1EE; color:#5b6168; border-radius:999px; font-size:10px; font-weight:700; padding:1px 7px; margin-left:5px; }
.rewo-app.ui-v2 .rewo-tabs .rewo-tab.is-active span{ background:var(--v2-accent-soft); color:var(--v2-brand); }

/* ============================================================
   v3.015 — Listanäkymät: segmentoitu tila-/näkymäsuodatin + tilavalitsin (Tarjoukset ym.)
   ============================================================ */
.rewo-app.ui-v2 .rewo-status-tabs{ display:inline-flex; gap:2px; background:var(--v2-panel); border:1px solid var(--v2-line); border-radius:10px; padding:2px; }
.rewo-app.ui-v2 .rewo-status-tabs .rewo-stab,
.rewo-app.ui-v2 .rewo-status-tabs a{ padding:6px 12px; font-size:12.5px; font-weight:600; color:var(--v2-muted); border-radius:8px; text-decoration:none; border:none; background:none; cursor:pointer; }
.rewo-app.ui-v2 .rewo-status-tabs .rewo-stab:hover,
.rewo-app.ui-v2 .rewo-status-tabs a:hover{ color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-status-tabs .rewo-stab.is-active,
.rewo-app.ui-v2 .rewo-status-tabs a.is-active,
.rewo-app.ui-v2 .rewo-status-tabs a[aria-current=page]{ background:#fff; color:var(--v2-ink); box-shadow:0 1px 2px rgba(16,42,32,.10); font-weight:700; }
.rewo-app.ui-v2 .rewo-status-filter{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:12px; }
.rewo-app.ui-v2 .rewo-sched-controls{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.rewo-app.ui-v2 .rewo-sched-clabel{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--v2-muted); font-weight:700; margin-right:6px; }
/* interaktiivinen tilavalitsin listassa -> pilleri */
.rewo-app.ui-v2 .rewo-statusselect{ border-radius:999px; border:1px solid rgba(0,0,0,.06); font-weight:700; font-size:12px; padding:4px 12px; -webkit-appearance:none; appearance:none; cursor:pointer; }

/* ============================================================
   v3.017 — UI v3 vaihe 3c: AIKATAULU (Gantt) + KALENTERI esikatselun mukaan
   Kaikki .rewo-app.ui-v2:n alla. CSS-only silta (PHP/logiikka ennallaan).
   ============================================================ */

/* ── Aikataulu / Gantt: esikatselun ilme (.gt/.gb/.gtline) ───────── */
.rewo-app.ui-v2 .rewo-sched{ background:var(--v2-card); border:1px solid var(--v2-line); border-radius:12px; }
.rewo-app.ui-v2 .rewo-sched-axis{ border-bottom:none; margin-bottom:6px; }
.rewo-app.ui-v2 .rewo-sched-month{ color:#8a9090; font-size:10px; border-left:none; text-align:center; }
.rewo-app.ui-v2 .rewo-sched-name{ flex-basis:150px; width:150px; color:#33403a; font-weight:600; font-size:12.5px; }
.rewo-app.ui-v2 .rewo-sched-track{ background:#F1F4F1; border-radius:6px; height:20px; }
.rewo-app.ui-v2 .rewo-sched-bar{ top:3px; height:14px; border-radius:4px; box-shadow:none; }
.rewo-app.ui-v2 .rewo-sched-bar-lbl{ font-size:11px; }
/* tänään-viiva: punainen kuten esikatselussa (Punainen viiva = tänään) */
.rewo-app.ui-v2 .rewo-sched-today{ background:var(--v2-neg,#C0341D); opacity:.7; width:2px; }
/* resursointiväri: toiselle tekijälle osoitetut lane-palkit sinisellä (esikatselun .gb.bl) */
.rewo-app.ui-v2 .rewo-sched-row.is-lane .rewo-sched-track{ height:16px; }
.rewo-app.ui-v2 .rewo-sched-bar.is-lane{ top:2px; height:12px; border-radius:4px;
  background:linear-gradient(90deg,#3B82F6,#1D4FD7); color:#fff; opacity:.95; }
.rewo-app.ui-v2 .rewo-sched-name.is-lane{ color:#1D4FD7; font-weight:600; }

/* ── Kalenteri (FullCalendar) -> v2-paletti: kk/viikko-napit + tänään ─ */
.rewo-app.ui-v2 .rewo-cal .fc{
  --fc-border-color:var(--v2-line);
  --fc-today-bg-color:var(--v2-accent-soft);
  --fc-page-bg-color:var(--v2-card);
  --fc-neutral-bg-color:var(--v2-panel);
  font-size:13px;
}
.rewo-app.ui-v2 .rewo-cal .fc .fc-toolbar-title{ font-size:18px; font-weight:800; letter-spacing:-.01em; color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-cal .fc .fc-button-primary{
  background:#fff; border:1px solid var(--v2-line); color:var(--v2-ink2);
  font-weight:600; text-transform:none; box-shadow:none; padding:6px 12px;
}
.rewo-app.ui-v2 .rewo-cal .fc .fc-button-primary:hover{ background:var(--v2-panel); color:var(--v2-ink); }
.rewo-app.ui-v2 .rewo-cal .fc .fc-button-primary:focus{ box-shadow:0 0 0 3px var(--v2-accent-soft); }
.rewo-app.ui-v2 .rewo-cal .fc .fc-button-primary:not(:disabled).fc-button-active,
.rewo-app.ui-v2 .rewo-cal .fc .fc-button-primary:not(:disabled):active{
  background:var(--v2-brand); border-color:var(--v2-brand); color:#fff;
}
.rewo-app.ui-v2 .rewo-cal .fc .fc-col-header-cell-cushion{
  color:#8a9090; text-transform:uppercase; font-size:11px; letter-spacing:.05em; font-weight:700; padding:8px 4px;
}
.rewo-app.ui-v2 .rewo-cal .fc .fc-daygrid-day-number{ color:#6B7278; font-size:12px; font-weight:700; }
.rewo-app.ui-v2 .rewo-cal .fc .fc-day-today .fc-daygrid-day-number{
  background:var(--v2-brand); color:#fff; border-radius:6px; padding:1px 6px;
}
.rewo-app.ui-v2 .rewo-cal .fc .fc-event{
  border:none; border-radius:5px; padding:1px 5px; font-size:11px; font-weight:600;
}
.rewo-app.ui-v2 .rewo-cal .fc .fc-scrollgrid{ border-radius:12px; overflow:hidden; }
/* selite (legend) pillereiksi v2-tyyliin */
.rewo-app.ui-v2 .rewo-cal-legend{ display:flex; flex-wrap:wrap; gap:10px; margin:0 2px 12px; }
.rewo-app.ui-v2 .rewo-cal-leg{ display:inline-flex; align-items:center; gap:7px; font-size:12px; color:var(--v2-muted); font-weight:600; }
.rewo-app.ui-v2 .rewo-cal-leg i{ width:12px; height:12px; border-radius:4px; display:inline-block; }

/* ── SaaS: yrityksen tilauksen live-summa (.bigtot esikatselusta) ─── */
.rewo-saas-livetot{ display:flex; align-items:baseline; gap:10px; margin-top:16px; padding-top:14px; border-top:1px solid var(--v2-line,#E6E9E6); }
.rewo-saas-livetot .v{ font-size:26px; font-weight:800; letter-spacing:-.02em; color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .rewo-saas-livetot .rewo-muted{ color:var(--v2-muted,#6B7278); font-size:13px; }

/* ── Tehtävät-kanban: raahaus (drag-drop tilojen välillä) ───────────── */
.rewo-app.ui-v2 .rewo-kan[data-rewo-kanban] .rewo-kcard[draggable="true"]{ cursor:grab; }
.rewo-app.ui-v2 .rewo-kan[data-rewo-kanban] .rewo-kcard.rewo-kdragging{ opacity:.5; cursor:grabbing; }
.rewo-app.ui-v2 .rewo-kcol.rewo-kcol-over{ outline:2px dashed var(--v2-accent,#54A924); outline-offset:-2px; background:var(--v2-accent-soft,#E7F2E1); }

/* ============================================================
   v3.021 — GLOBAALI KONTRASTI- JA KATTAVUUSVARMISTUS (joka sivu)
   Periaate: vaalealla pohjalla AINA tumma teksti. Asetetaan tummat
   oletukset rakenne-elementeille; napit/pillerit/badget/tumma sivupalkki
   määräävät omat värinsä eikä niitä yliajeta. Inline-värit voittavat silti.
   ============================================================ */
.rewo-app.ui-v2{ color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .rewo-main{ color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .rewo-main h1,
.rewo-app.ui-v2 .rewo-main h2,
.rewo-app.ui-v2 .rewo-main h3,
.rewo-app.ui-v2 .rewo-main h4,
.rewo-app.ui-v2 .rewo-h1,
.rewo-app.ui-v2 .rewo-h2,
.rewo-app.ui-v2 .rewo-h3,
.rewo-app.ui-v2 .rewo-card-t{ color:var(--v2-ink,#1C2024); }
/* kortit ja taulut: tumma perusteksti (lapset joilla oma inline-väri säilyttävät sen) */
.rewo-app.ui-v2 .rewo-card{ color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .rewo-card p,
.rewo-app.ui-v2 .rewo-card li,
.rewo-app.ui-v2 .rewo-card dt,
.rewo-app.ui-v2 .rewo-card dd{ color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .rewo-table{ color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .rewo-table td{ color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .rewo-table th{ color:var(--v2-ink2,#3A4248); }
/* lomakkeet: tumma teksti valkoisella, luettava placeholder */
.rewo-app.ui-v2 .rewo-f,
.rewo-app.ui-v2 .rewo-f > span,
.rewo-app.ui-v2 label{ color:var(--v2-ink2,#3A4248); }
.rewo-app.ui-v2 input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),
.rewo-app.ui-v2 select,
.rewo-app.ui-v2 textarea{ color:var(--v2-ink,#1C2024); background:#fff; }
.rewo-app.ui-v2 input::placeholder,
.rewo-app.ui-v2 textarea::placeholder{ color:#9aa3a0; opacity:1; }
/* apu-/himmeät tekstit: riittävä kontrasti (ei liian vaalea) */
.rewo-app.ui-v2 .rewo-muted{ color:var(--v2-muted,#6B7278); }
.rewo-app.ui-v2 .rewo-help{ color:#566066; }
.rewo-app.ui-v2 .rewo-empty,
.rewo-app.ui-v2 .rewo-empty p{ color:#566066; }
/* linkit (pois lukien nappi-/laatta-/kortti-/navilinkit, joilla oma ilme) */
.rewo-app.ui-v2 a:not(.rewo-btn):not(.rewo-navitem):not(.rewo-ltile):not(.rewo-kcard):not(.rewo-side-brand):not(.rewo-lp-link):not(.rewo-bottomnav-i){ color:var(--v2-brand,#2C5F2D); }
.rewo-app.ui-v2 a:not(.rewo-btn):not(.rewo-navitem):not(.rewo-ltile):not(.rewo-kcard):hover{ color:var(--v2-accent,#54A924); }
/* details/summary, ohjekortit, tyhjät tilat valkoisiksi + tumma teksti */
.rewo-app.ui-v2 details.rewo-card > summary{ color:var(--v2-ink,#1C2024); }
/* varmista että sisältöalueen pohja on vaalea (ei tumma teksti tummalla) */
.rewo-app.ui-v2 .rewo-main{ background:var(--v2-paper,#FBFCFB); }

/* ── Asetukset: ryhmitelty navigaatio + setrow-kortit (vaihe 3g) ───── */
.rewo-app.ui-v2 .rewo-settings-nav{ display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.rewo-app.ui-v2 .rewo-setgroup-h{ font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--v2-muted,#6B7278); font-weight:700; margin-bottom:6px; }
.rewo-app.ui-v2 .rewo-subtabs-wrap{ display:flex; flex-wrap:wrap; gap:7px; }
.rewo-app.ui-v2 .rewo-subtab{ border:1px solid var(--v2-line,#E6E9E6); background:#fff; color:var(--v2-ink2,#3A4248); border-radius:999px; padding:7px 13px; font-size:13px; font-weight:600; text-decoration:none; }
.rewo-app.ui-v2 .rewo-subtab:hover{ background:var(--v2-panel,#F4F6F4); color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .rewo-subtab.is-active{ background:var(--v2-brand,#2C5F2D); border-color:var(--v2-brand,#2C5F2D); color:#fff; }

/* ── Ostolaskukierron vaiheindikaattori (.step esikatselusta) ──────── */
.rewo-app.ui-v2 .step{ display:flex; align-items:center; gap:0; }
.rewo-app.ui-v2 .step .s{ flex:1; text-align:center; font-size:11px; color:#8a9090; position:relative; font-weight:600; }
.rewo-app.ui-v2 .step .s .d{ width:24px; height:24px; border-radius:50%; background:#EEF1EE; color:#8a9090; line-height:24px; margin:0 auto 5px; font-weight:800; font-size:12px; position:relative; z-index:1; }
.rewo-app.ui-v2 .step .s.done{ color:var(--v2-brand,#2C5F2D); }
.rewo-app.ui-v2 .step .s.done .d{ background:var(--v2-brand,#2C5F2D); color:#fff; }
.rewo-app.ui-v2 .step .s.now{ color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .step .s.now .d{ background:var(--v2-accent,#54A924); color:#fff; }
.rewo-app.ui-v2 .step .s:after{ content:""; position:absolute; top:11px; left:60%; right:-40%; height:2px; background:#E6E9E6; z-index:0; }
.rewo-app.ui-v2 .step .s.done:after{ background:var(--v2-brand,#2C5F2D); }
/* Ostolaskun SLA-laskuri inbox-rivillä: vihreä = aikaa jäljellä, punainen = ylittynyt */
.rewo-app.ui-v2 .rewo-sla{ display:inline-block; font-size:11px; font-weight:700; padding:2px 9px; border-radius:999px; margin:0 4px; vertical-align:middle; }
.rewo-app.ui-v2 .rewo-sla-ok{ background:#E7F2E1; color:var(--v2-brand,#2C5F2D); }
.rewo-app.ui-v2 .rewo-sla-over{ background:#F7E2DC; color:var(--v2-neg,#C0341D); }
.rewo-app.ui-v2 .step .s:last-child:after{ display:none; }

/* ── Ilmoituskeskus (.nrow esikatselusta): silta .rewo-notif-item-listaan ── */
/* Suodatusvälilehdet (lähde): pilleripainikkeet, aktiivinen korostettu */
.rewo-app.ui-v2 .rewo-notif-filter{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; }
.rewo-app.ui-v2 .rewo-notif-fbtn{ display:inline-flex; align-items:center; gap:6px; padding:7px 13px; min-height:36px; border:1px solid var(--v2-line,#E6E9E6); border-radius:999px; background:var(--v2-card,#fff); color:var(--v2-ink2,#3A4248); font:inherit; font-size:13px; font-weight:600; cursor:pointer; transition:border-color .12s ease, background .12s ease, color .12s ease; }
.rewo-app.ui-v2 .rewo-notif-fbtn:hover{ border-color:var(--v2-accent,#54A924); }
.rewo-app.ui-v2 .rewo-notif-fbtn:focus-visible{ outline:2px solid var(--v2-accent,#54A924); outline-offset:2px; }
.rewo-app.ui-v2 .rewo-notif-fbtn.is-active{ background:var(--v2-brand,#2C5F2D); border-color:var(--v2-brand,#2C5F2D); color:#fff; }
.rewo-app.ui-v2 .rewo-notif-fc{ font-size:11px; font-weight:800; background:var(--v2-accent-soft,#E7F2E1); color:var(--v2-brand,#2C5F2D); border-radius:999px; padding:1px 7px; }
.rewo-app.ui-v2 .rewo-notif-fbtn.is-active .rewo-notif-fc{ background:rgba(255,255,255,.22); color:#fff; }
.rewo-app.ui-v2 .rewo-notif-item[hidden]{ display:none !important; }
.rewo-app.ui-v2 .rewo-notif-item{ display:flex; gap:12px; align-items:flex-start; padding:13px 0; border-bottom:1px solid var(--v2-line2,#EEF1EE); }
.rewo-app.ui-v2 .rewo-notif-item:last-child{ border-bottom:none; }
.rewo-app.ui-v2 .rewo-notif-ic{ width:34px; height:34px; border-radius:9px; flex:0 0 34px; display:flex; align-items:center; justify-content:center; font-size:15px; background:#EEF1EE; }
.rewo-app.ui-v2 .rewo-notif-main{ flex:1; min-width:0; }
.rewo-app.ui-v2 .rewo-notif-title{ font-weight:700; font-size:13.5px; color:var(--v2-ink,#1C2024); }
.rewo-app.ui-v2 .rewo-notif-body{ font-size:12.5px; color:var(--v2-muted,#6B7278); margin-top:2px; }
.rewo-app.ui-v2 .rewo-notif-act{ margin-left:auto; display:flex; flex-direction:column; align-items:flex-end; gap:6px; flex:0 0 auto; }
.rewo-app.ui-v2 .rewo-notif-item.is-unread{ background:linear-gradient(90deg,var(--v2-accent-soft,#E7F2E1),transparent 62%); border-radius:9px; padding-left:8px; }
/* lähdekohtaiset väritetyt ikonineliöt (kuten esikatselun .nico) */
.rewo-app.ui-v2 .rewo-notif-src-ostolasku .rewo-notif-ic{ background:#F7E2DC; }
.rewo-app.ui-v2 .rewo-notif-src-tarjous .rewo-notif-ic{ background:#E1ECFB; }
.rewo-app.ui-v2 .rewo-notif-src-keskustelu .rewo-notif-ic{ background:#E7F2E1; }
.rewo-app.ui-v2 .rewo-notif-src-muutospyynto .rewo-notif-ic{ background:#FBF3D6; }
.rewo-app.ui-v2 .rewo-notif-src-tehtava .rewo-notif-ic{ background:#EDE7FB; }

/* ============================================================
   LIITOS — etusivun/työpöydän visuaalinen päivitys (visuaalinen ohje)
   Typografia (Archivo/Inter/Space Mono), slim tumma yläpalkki,
   korostetut KPI-mittarit ja widget-ilme. Skoopattu .ui-v2:n alle.
   ============================================================ */

/* ---- Typografia ---- */
.rewo-app.ui-v2{ font-family:Inter,system-ui,-apple-system,sans-serif; }
.rewo-app.ui-v2 h1,.rewo-app.ui-v2 h2,.rewo-app.ui-v2 h3,.rewo-app.ui-v2 h4,
.rewo-app.ui-v2 .rewo-h1,.rewo-app.ui-v2 .rewo-h2,.rewo-app.ui-v2 .rewo-h3,
.rewo-app.ui-v2 .rewo-cardhead h2,.rewo-app.ui-v2 .rewo-cardhead h3,
.rewo-app.ui-v2 .rewo-card-t{ font-family:Archivo,sans-serif; letter-spacing:-.015em; }
.rewo-app.ui-v2 .mono,
.rewo-app.ui-v2 .rewo-tp-table td.num,
.rewo-app.ui-v2 .rewo-num{ font-variant-numeric:tabular-nums; }

/* ---- SLIM TUMMA YLÄPALKKI (ohjeen .topbar, 48px sticky) ---- */
.rewo-app.ui-v2 .rewo-topcard{
  position:sticky; top:0; z-index:60; min-height:48px; align-items:center;
  background:linear-gradient(180deg,#0E2A20,#102A1E);
  border:0; border-bottom:1px solid #08160F; border-radius:0;
  color:#CFE0D4; padding:6px 12px; box-shadow:0 1px 0 rgba(0,0,0,.2);
}
/* aksenttipiste logon vasemmalla */
.rewo-app.ui-v2 .rewo-topcard-l{ align-items:center; gap:9px; }
.rewo-app.ui-v2 .rewo-topcard-l::before{
  content:""; width:8px; height:8px; border-radius:50%; flex:0 0 auto;
  background:var(--v2-accent); box-shadow:0 0 0 3px rgba(84,169,36,.25);
}
/* logo pysyy näkyvänä vaalealla pillerillä */
.rewo-app.ui-v2 .rewo-topcard-logolink{
  background:rgba(255,255,255,.94); border-radius:8px; padding:3px 8px;
  display:inline-flex; align-items:center; line-height:0;
}
.rewo-app.ui-v2 .rewo-topcard-logo{ max-height:22px; width:auto; }
/* app-badge (ERP / Talentti) */
.rewo-app.ui-v2 .rewo-topcard-app{
  font-family:'Space Mono',monospace; font-weight:700; font-size:10.5px; letter-spacing:.06em;
  color:#CFE0D4; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12);
  border-radius:7px; padding:2px 8px; text-transform:uppercase;
}
.rewo-app.ui-v2 .rewo-topcard-app.is-talentti{ color:#BFE3CB; border-color:rgba(84,169,36,.4); background:rgba(84,169,36,.16); }
/* ikonipainikkeet pilleinä */
.rewo-app.ui-v2 .rewo-topcard-ic{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10);
  color:#CFE0D4; border-radius:9px; min-height:34px; padding:6px 10px; font-size:14px;
  transition:background .12s ease;
}
.rewo-app.ui-v2 .rewo-topcard-ic:hover{ background:rgba(255,255,255,.15); color:#fff; }
.rewo-app.ui-v2 .rewo-chrome-all{ font-weight:600; }
.rewo-app.ui-v2 .rewo-chrome-all-t{ font-size:12.5px; }
.rewo-app.ui-v2 .rewo-topcard-timer{ color:#CFE0D4; }
/* tervehdysteksti vaaleaksi */
.rewo-app.ui-v2 .rewo-topcard-greet .rewo-topcard-hi{ color:#fff; font-family:Archivo,sans-serif; }
.rewo-app.ui-v2 .rewo-topcard-greet .rewo-topcard-role{ color:#6F9C7E; }

/* ---- KOROSTETUT KPI-MITTARIT ---- */
.rewo-app.ui-v2 .rewo-kpi .v,
.rewo-app.ui-v2 .rewo-kpi .rewo-stat-val,
.rewo-app.ui-v2 .rewo-kpi .rewo-kpi-val,
.rewo-app.ui-v2 .rewo-kpi-num{
  font-family:Archivo,sans-serif; font-weight:800; font-size:30px; line-height:1.04;
  letter-spacing:-.02em; font-variant-numeric:tabular-nums;
}
.rewo-app.ui-v2 .rewo-kpigrid{ gap:12px; }
.rewo-app.ui-v2 .rewo-kpi,
.rewo-app.ui-v2 .rewo-stat{ transition:box-shadow .15s ease, transform .12s ease; }
.rewo-app.ui-v2 .rewo-kpi:hover,
.rewo-app.ui-v2 .rewo-stat:hover{ box-shadow:0 8px 22px rgba(20,40,30,.10); transform:translateY(-1px); }
/* mini-pylväät KPI:n alle (ohjeen .bars) */
.rewo-app.ui-v2 .rewo-kpibars{ display:flex; align-items:flex-end; gap:5px; height:46px; margin-top:8px; }
.rewo-app.ui-v2 .rewo-kpibars i{ flex:1; background:var(--v2-accent); border-radius:4px 4px 0 0; opacity:.85; }

/* ---- WIDGET / KORTTI-ILME ---- */
.rewo-app.ui-v2 .rewo-card{ transition:box-shadow .15s ease; }
.rewo-app.ui-v2 .rewo-card:hover{ box-shadow:0 6px 18px rgba(20,40,30,.07); }
/* otsikon väripiste (jos käytössä .rewo-card-dot) */
.rewo-app.ui-v2 .rewo-card-dot{ width:9px; height:9px; border-radius:50%; flex:0 0 auto; display:inline-block; }

/* ============================================================
   TYÖPÖYTÄ — näkymätila (Kortit/Työpöytä) + raahattavat lohkot (A2)
   + moduulivalikon kokoontaitto (A3/A4). Skoopattu .ui-v2:n alle.
   ============================================================ */
.rewo-app.ui-v2 .rewo-deskbar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 12px; }
.rewo-app.ui-v2 .rewo-viewseg{ display:inline-flex; border:1px solid var(--v2-line); border-radius:10px; overflow:hidden; background:#fff; }
.rewo-app.ui-v2 .rewo-vseg{ border:0; background:#fff; padding:7px 13px; font:inherit; font-size:12.5px; font-weight:700; color:var(--v2-muted); cursor:pointer; }
.rewo-app.ui-v2 .rewo-vseg.is-on{ background:var(--v2-brand); color:#fff; }
.rewo-app.ui-v2 .rewo-deskhint{ font-size:11.5px; color:var(--v2-muted); }

/* Kortit: monisarakkeinen ruudukko */
.rewo-app.ui-v2 .rewo-canvas[data-mode="cards"]{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; align-items:start; }
.rewo-app.ui-v2 .rewo-canvas[data-mode="cards"] .rewo-dw{ min-width:0; }
.rewo-app.ui-v2 .rewo-canvas[data-mode="cards"] .rewo-dw-grip,
.rewo-app.ui-v2 .rewo-canvas[data-mode="cards"] .rewo-dw-resize{ display:none; }

/* Työpöytä: vapaa sijoittelu */
.rewo-app.ui-v2 .rewo-canvas[data-mode="free"]{ position:relative; min-height:520px; border:1px solid var(--v2-line); border-radius:16px;
  background: radial-gradient(circle at 1px 1px, rgba(0,0,0,.045) 1px, transparent 0) 0 0/22px 22px, linear-gradient(180deg,#fff,#FAFBF9); padding:6px; }
.rewo-app.ui-v2 .rewo-canvas[data-mode="free"] .rewo-dw{ position:absolute; overflow:hidden; display:flex; flex-direction:column;
  border:1px solid var(--v2-line); border-radius:13px; background:#fff; box-shadow:0 1px 2px rgba(20,40,30,.05); }
.rewo-app.ui-v2 .rewo-canvas[data-mode="free"] .rewo-dw.is-drag,
.rewo-app.ui-v2 .rewo-canvas[data-mode="free"] .rewo-dw.is-size{ box-shadow:0 10px 30px rgba(20,40,30,.18); z-index:30; border-color:var(--v2-accent); }
.rewo-app.ui-v2 .rewo-canvas[data-mode="free"] .rewo-dw-body{ flex:1; overflow:auto; }
.rewo-app.ui-v2 .rewo-canvas[data-mode="free"] .rewo-dw-body > .rewo-card{ margin:0; border:0; box-shadow:none; border-radius:0; height:100%; }

/* Vetokahva + venytyskulma (näkyvät vain free-tilassa) */
.rewo-app.ui-v2 .rewo-dw-grip{ display:flex; align-items:center; gap:8px; padding:7px 10px; cursor:grab; user-select:none;
  border-bottom:1px solid var(--v2-line); background:linear-gradient(180deg,#fff,#FBFCFA); }
.rewo-app.ui-v2 .rewo-dw-grip:active{ cursor:grabbing; }
.rewo-app.ui-v2 .rewo-dw-t{ font-family:Archivo,sans-serif; font-weight:700; font-size:12.5px; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rewo-app.ui-v2 .rewo-dw-dots{ color:var(--v2-muted); }
.rewo-app.ui-v2 .rewo-dw-resize{ position:absolute; right:2px; bottom:2px; width:18px; height:18px; cursor:nwse-resize;
  background:linear-gradient(135deg,transparent 46%,var(--v2-line) 46% 54%,transparent 54%,transparent 70%,var(--v2-line) 70% 78%,transparent 78%); }

/* Moduuliruudukon kokoontaitto (⊞ Kaikki moduulit) */
.rewo-app.ui-v2 .rewo-launchpage.is-collapsed{ display:none; }

@media(max-width:760px){
  .rewo-app.ui-v2 .rewo-canvas[data-mode="free"]{ display:block; min-height:0; border:0; background:none; padding:0; }
  .rewo-app.ui-v2 .rewo-canvas[data-mode="free"] .rewo-dw{ position:static!important; left:auto!important; top:auto!important; width:auto!important; height:auto!important; margin-bottom:10px; }
  .rewo-app.ui-v2 .rewo-canvas[data-mode="free"] .rewo-dw-resize{ display:none; }
  .rewo-app.ui-v2 .rewo-canvas[data-mode="free"] .rewo-dw-grip{ cursor:default; }
}

/* Suosikkitähti tiilen kulmassa + suosikkien raahaus (A3) */
.rewo-app.ui-v2 .rewo-ltile{ position:relative; }
.rewo-app.ui-v2 .rewo-fav-star{ position:absolute; top:5px; right:6px; font-size:13px; line-height:1; color:#C9CEC9; cursor:pointer; z-index:2; padding:2px; border-radius:6px; }
.rewo-app.ui-v2 .rewo-fav-star.is-on{ color:#E8B309; }
.rewo-app.ui-v2 .rewo-fav-star:hover{ background:rgba(0,0,0,.06); }
.rewo-app.ui-v2 .rewo-favgrid .rewo-ltile{ cursor:grab; }
.rewo-app.ui-v2 .rewo-favgrid .rewo-ltile.is-dragging{ opacity:.4; }

/* A4 — mobiilin pikaviestit-nappi (vasen, alapalkin yläpuolella) */
.rewo-qmsg{ display:none; }
.rewo-app.ui-v2 .rewo-qmsg{ position:fixed; left:12px; bottom:74px; z-index:55; width:46px; height:46px; border-radius:15px;
  background:#fff; border:1px solid var(--v2-line); color:var(--v2-brand); align-items:center; justify-content:center;
  font-size:20px; text-decoration:none; box-shadow:0 6px 16px rgba(10,25,18,.22); }
.rewo-app.ui-v2 .rewo-qmsg .rewo-qmsg-b{ position:absolute; top:-5px; right:-5px; background:var(--v2-neg); color:#fff; font-size:9px;
  font-weight:700; border-radius:999px; min-width:16px; height:16px; display:flex; align-items:center; justify-content:center; font-family:'Space Mono',monospace; padding:0 3px; }
@media(max-width:760px){ .rewo-app.ui-v2 .rewo-qmsg{ display:flex; } }

/* ===== Velo: slim dark top bar (visuaalisen ohjeen mukainen) ===== */
.rewo-app.ui-v2 .rewo-topcard{
  background:linear-gradient(180deg,#0D0E10,#16181B);
  border-bottom:1px solid #000;
  box-shadow:0 1px 0 rgba(0,0,0,.35);
  color:#E6E8EA;
  min-height:52px; padding:8px 16px;
  padding-top:calc(8px + env(safe-area-inset-top,0));
}
.rewo-app.ui-v2 .rewo-topcard-dot{
  width:8px; height:8px; border-radius:50%; background:#54A924;
  box-shadow:0 0 0 3px rgba(84,169,36,.25); display:inline-block; flex:0 0 auto; margin-right:3px;
}
.rewo-app.ui-v2 .rewo-topcard-logo,
.rewo-app.ui-v2 .rewo-topcard-logo img{ max-height:26px; }
.rewo-app.ui-v2 .rewo-topcard-app{ color:#E6E8EA; font-size:16px; }
.rewo-app.ui-v2 .rewo-topcard-app.is-talentti{ color:#E6E8EA; }
.rewo-app.ui-v2 .rewo-topcard-greet,
.rewo-app.ui-v2 .rewo-topcard-hi{ color:#9AA0A6; }
.rewo-app.ui-v2 .rewo-topcard-role{ background:rgba(84,169,36,.18); color:#BFE6A6; }
.rewo-app.ui-v2 .rewo-topcard-ic,
.rewo-app.ui-v2 .rewo-topcard-ic.rewo-chrome-all{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10); color:#E6E8EA;
}
.rewo-app.ui-v2 .rewo-topcard-ic:hover{ background:rgba(255,255,255,.13); color:#fff; }
.rewo-app.ui-v2 .rewo-topcard-timer{ background:rgba(84,169,36,.18); color:#BFE6A6; }
.rewo-app.ui-v2 .rewo-topcard .rewo-chrome-all-t{ color:#E6E8EA; }

/* =================================================================
   LIITOS — ohut MUSTA yläpalkki (visuaalisen ohjeen mukainen, pakotettu)
   Yläpalkki on MUSTA #0D0E10→#16181B (EI vihreä). 48px, sticky.
   ================================================================= */
.rewo-app.ui-v2 .rewo-topcard.rewo-topbar-v3{
  position:sticky; top:0; z-index:100040; min-height:48px; height:48px;
  display:flex; align-items:center; gap:10px; padding:0 16px 0 12px;
  background:linear-gradient(180deg,#0D0E10,#16181B) !important;
  border:0; border-bottom:1px solid #000; border-radius:0;
  color:#E6E8EA; box-shadow:none; overflow:visible;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-logo{
  display:flex; align-items:center; gap:7px; background:transparent; padding:0; margin:0;
  line-height:1; text-decoration:none; white-space:nowrap; flex:0 0 auto;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-dot{
  width:8px; height:8px; border-radius:50%; flex:0 0 auto;
  background:#54A924; box-shadow:0 0 0 3px rgba(84,169,36,.25);
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-name{
  font-family:Archivo,sans-serif; font-weight:800; font-size:15px; letter-spacing:.3px; color:#E6E8EA;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-topcard-app{
  font-family:'Space Mono',monospace; font-weight:700; font-size:10px; letter-spacing:.06em; text-transform:uppercase;
  color:#9AA0A6; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  border-radius:6px; padding:2px 7px; margin:0;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-topcard-app.is-talentti{ color:#BFE3CB; border-color:rgba(84,169,36,.4); background:rgba(84,169,36,.16); }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search{
  flex:1; max-width:380px; display:flex; align-items:center; gap:8px; margin:0;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.10); border-radius:9px; padding:5px 10px;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search .rewo-tb-sic{ font-size:12.5px; color:#9AA0A6; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search input{
  flex:1; min-width:0; background:transparent; border:0; outline:0; box-shadow:none; padding:0; margin:0;
  color:#E6E8EA; font:inherit; font-size:12.5px;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search input::placeholder{ color:#9AA0A6; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-spacer{ flex:1; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-btn{
  display:inline-flex; align-items:center; gap:6px; min-height:34px; padding:6px 10px; line-height:1;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10); color:#E6E8EA;
  border-radius:9px; font-size:12.5px; font-weight:600;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-btn:hover{ background:rgba(255,255,255,.13); color:#fff; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-bell{
  position:relative; width:34px; height:34px; flex:0 0 auto; border-radius:9px;
  border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.06); color:#E6E8EA;
  display:flex; align-items:center; justify-content:center; font-size:15px; text-decoration:none;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-bell:hover{ background:rgba(255,255,255,.13); }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-badge{
  position:absolute; top:-4px; right:-4px; background:#C0341D; color:#fff;
  font-family:'Space Mono',monospace; font-size:9.5px; font-weight:700; border-radius:999px;
  min-width:16px; height:16px; display:flex; align-items:center; justify-content:center; padding:0 3px;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-user{ position:relative; flex:0 0 auto; margin-right:6px; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-avatar{
  width:34px; height:34px; border-radius:50%; padding:0; cursor:pointer;
  background:linear-gradient(135deg,#2C5F2D,#54A924); color:#fff;
  font-family:'Space Mono',monospace; font-weight:700; font-size:12px;
  display:flex; align-items:center; justify-content:center;
  border:2px solid rgba(255,255,255,.25); outline:2px solid #54A924; outline-offset:0;
  overflow:hidden; line-height:1; flex-shrink:0;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-avatar.has-img{ background:transparent; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-avatar .rewo-tb-av-img{ width:34px; height:34px; object-fit:cover; display:block; border-radius:50%; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-avatar:hover{ filter:brightness(1.08); }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-menu{
  position:absolute; top:46px; right:0; width:240px; padding:8px; z-index:100050;
  background:#fff; color:#15181C; border:1px solid #E2E5DF; border-radius:13px; box-shadow:0 20px 50px rgba(10,15,12,.30);
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-menu[hidden]{ display:none; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-mhead{ display:flex; align-items:center; gap:10px; padding:8px; border-bottom:1px solid #E2E5DF; margin-bottom:6px; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-mhead .rewo-tb-avatar.sm{ width:34px; height:34px; outline:0; border:0; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-mhead-t{ display:flex; flex-direction:column; line-height:1.25; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-mhead-s{ font-size:11.5px; color:#5C6166; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-mi{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:9px; font-size:13px; color:#15181C; text-decoration:none; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-mi:hover{ background:#F1F3EF; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-mi .g{ width:18px; text-align:center; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-mi.danger{ color:#C0341D; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-msep{ height:1px; background:#E2E5DF; margin:6px 4px; }
/* slim-rivi: piilota mahdollinen vanha tervehdys palkista */
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-topcard-greet{ display:none; }
/* Mobiilihaku-painike piilossa työpöydällä */
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-searchtoggle{ display:none; }
/* Mobiili: kutista tekstilabelit, haku avautuu painikkeesta täysleveänä */
@media (max-width:760px){
  .rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-lbl{ display:none; }
  .rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-searchtoggle{ display:inline-flex; }
  .rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search{ display:none; }
  .rewo-app.ui-v2 .rewo-topbar-v3{ position:relative; padding-top:calc(0px + env(safe-area-inset-top,0)); height:auto; min-height:48px; }
  .rewo-app.ui-v2 .rewo-topbar-v3.is-searchopen .rewo-tb-search{
    display:flex !important; position:absolute; left:8px; right:8px; top:100%; width:auto !important; max-width:none !important;
    margin-top:6px; z-index:200001; background:#16181B; border:1px solid rgba(255,255,255,.16);
    box-shadow:0 14px 34px rgba(0,0,0,.55);
  }
}

/* =================================================================
   SIVUPALKIN VÄRI — TUMMA tausta (#0E2418) + VAALEA teksti
   Sama kuin HTML-simulaattorissa.
   ================================================================= */
.rewo-app.ui-v2 .rewo-side{
  background:#0E2418 !important;
  border-right:1px solid #0a1e12 !important;
  color:#B8D4BC !important;
}
.rewo-app.ui-v2 .rewo-side-brand,
.rewo-app.ui-v2 .rewo-side-brand-t{ color:#E6E8EA !important; }
.rewo-app.ui-v2 .rewo-side .rewo-navgrp{ background:#0E2418 !important; }
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-h,
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-t{ color:#4D8A5A !important; }
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-h:hover{ color:#7ED321 !important; }
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-ar{ color:#4D6B56 !important; }
.rewo-app.ui-v2 .rewo-side .rewo-navitem{ color:#B8D4BC !important; }
.rewo-app.ui-v2 .rewo-side .rewo-navitem .rewo-navitem-ic{ opacity:1 !important; }
.rewo-app.ui-v2 .rewo-side .rewo-navitem:hover{
  background:rgba(255,255,255,.06) !important; color:#fff !important;
}
.rewo-app.ui-v2 .rewo-side .rewo-navitem.is-active{
  background:rgba(84,169,36,.14) !important;
  color:#7ED321 !important;
  border-left:3px solid #54A924 !important;
  padding-left:15px;
}
/* Group header ikonit */
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-h .rewo-sb-gh-ic{ margin-right:4px; }
/* Hakukenttä tummalla taustalla */
.rewo-app.ui-v2 .rewo-side .rewo-sb-q{
  background:rgba(255,255,255,.07) !important;
  border-color:rgba(255,255,255,.12) !important;
  color:#DCE7DF !important;
}
.rewo-app.ui-v2 .rewo-side .rewo-sb-q::placeholder{ color:#4D8A5A !important; }
.rewo-app.ui-v2 .rewo-side .rewo-sb-q:focus{ border-color:#54A924 !important; }

/* Yläpalkin haku: estä ensimmäisen kirjaimen leikkautuminen (teksti hieman oikealle). */
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search{ padding-left:12px; padding-right:12px; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search .rewo-tb-sic{ flex:0 0 auto; }
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search input{ padding-left:3px !important; text-indent:1px; }

/* =================================================================
   YLÄPALKKI YHDELLE RIVILLE (esikatselun mukainen). Ei rivitystä;
   kapealla näytöllä napeista jää ikonit (tekstit piiloon), jotta
   logo · haku · ＋ · 🔔 · ⊞ · avatar mahtuvat samalle riville.
   ================================================================= */
.rewo-app.ui-v2 .rewo-topcard.rewo-topbar-v3{ flex-wrap:nowrap !important; overflow:visible; }
@media (max-width:1180px){
  .rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-btn .rewo-tb-lbl{ display:none; }
  .rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search{ max-width:300px; }
}
@media (max-width:900px){
  .rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-search{ max-width:220px; }
}

/* ⊞ Kaikki moduulit -overlay: ryhmitelty sisältö (★ Suosikit + kategoriat) — launchpage näkyy aina. */
.rewo-app.ui-v2 .rewo-launcher-grouped .rewo-launcher-body{ padding:4px 2px 10px; }
.rewo-app.ui-v2 .rewo-launcher-grouped .rewo-launchpage{ display:block !important; }

/* Ostolaskun upotettu PDF-esikatselu (ostokierto-detail, sama kuva kuin lightboxissa). */
.rewo-po-pdfwrap{ border:1px solid #E4E8E2; border-radius:10px; overflow:hidden; background:#F5F6F5; margin:6px 0; }
.rewo-po-pdf{ width:100%; height:560px; border:0; display:block; }
.rewo-po-pdfbar{ margin:0 0 12px; }
@media (max-width:640px){ .rewo-po-pdf{ height:430px; } }

/* Kello-overlay (#8): yläpalkin 🔔 avaa ilmoitukset (kuten ⊞-valikko). */
.rewo-msgov-ov{ position:fixed; inset:0; background:rgba(15,20,18,.18); z-index:100000; }
.rewo-msgov-ov[hidden]{ display:none; }
.rewo-msgov{ position:fixed; top:58px; right:18px; width:min(420px,94vw); max-height:74vh; overflow:auto; background:#fff; border:1px solid #E2E5DF; border-radius:14px; box-shadow:0 18px 50px rgba(0,0,0,.22); z-index:100001; }
.rewo-msgov[hidden]{ display:none; }
.rewo-msgov-h{ display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid #EEF0EC; position:sticky; top:0; background:#fff; }
.rewo-msgov-all{ font-size:12.5px; color:#1F5B1E; text-decoration:none; white-space:nowrap; }
.rewo-msgov-x{ border:0; background:transparent; font-size:15px; cursor:pointer; color:#5C6166; line-height:1; }
.rewo-msgov-body{ padding:6px; }
.rewo-msgov-item{ display:flex; gap:10px; padding:10px; border-radius:9px; text-decoration:none; color:#15181C; }
.rewo-msgov-item:hover{ background:#F3F5F1; }
.rewo-msgov-dot{ width:8px; height:8px; border-radius:50%; background:transparent; margin-top:6px; flex:0 0 auto; }
.rewo-msgov-item.is-unread .rewo-msgov-dot{ background:#54A924; }
.rewo-msgov-tx{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.rewo-msgov-t{ font-weight:700; font-size:13.5px; }
.rewo-msgov-b{ font-size:12.5px; color:#5C6166; }
.rewo-msgov-w{ font-size:11.5px; color:#9AA0A6; }

/* Leveiden taulujen vaakascroll (mobiilin projektinäkymä ei riko yhden sivun näkymää). */
.rewo-xscroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; }
.rewo-xscroll > .rewo-table{ min-width:560px; }

/* "Lisää tunnit" -lightbox (projektin Tunnit-välilehti). */
.rewo-ahmodal{ position:fixed; inset:0; z-index:100002; display:flex; align-items:center; justify-content:center; }
.rewo-ahmodal[hidden]{ display:none; }
.rewo-ahmodal-bd{ position:absolute; inset:0; background:rgba(15,20,18,.42); }
.rewo-ahmodal-box{ position:relative; width:min(580px,94vw); max-height:90vh; overflow:auto; background:#fff; border-radius:16px; box-shadow:0 24px 60px rgba(0,0,0,.3); }
.rewo-ahmodal-h{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 18px; border-bottom:1px solid #EEF0EC; position:sticky; top:0; background:#fff; }
.rewo-ahmodal-x{ border:0; background:transparent; font-size:16px; cursor:pointer; color:#5C6166; line-height:1; }
.rewo-ahmodal-b{ padding:16px 18px; }
.rewo-ahmodal-blocks{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:12px 0; }
.rewo-ahmodal-blk{ border:1px solid #E4E8E2; border-radius:12px; padding:12px; background:#FBFCFB; }
.rewo-ahmodal-blk-h{ font-weight:700; margin-bottom:8px; }
@media (max-width:600px){ .rewo-ahmodal-blocks{ grid-template-columns:1fr; } }

/* Viestikeskuksen kelluva nappi (vasen-ala) + vasen sivupaneeli (#1, peilikuva devpaneelista). */
.rewo-msgfab{ position:fixed; left:18px; bottom:96px; width:54px; height:54px; border-radius:17px; background:#fff; border:1px solid #E2E5DF; box-shadow:0 6px 20px rgba(20,40,20,.2); font-size:23px; cursor:pointer; z-index:99997; display:flex; align-items:center; justify-content:center; }
.rewo-msgfab:hover{ transform:scale(1.06); }
.rewo-msgfab-b{ position:absolute; top:-5px; right:-5px; background:#C0341D; color:#fff; border-radius:999px; font-size:11px; font-weight:700; min-width:19px; height:19px; display:flex; align-items:center; justify-content:center; padding:0 5px; box-sizing:border-box; }
.rewo-msgpanel-ov{ position:fixed; inset:0; background:rgba(15,20,18,.2); z-index:3899; }
.rewo-msgpanel-ov[hidden]{ display:none; }
.rewo-msgpanel{ position:fixed; top:0; left:0; bottom:0; width:360px; max-width:88vw; z-index:3900; background:#F3F5EF; box-shadow:8px 0 28px rgba(0,0,0,.22); overflow-y:auto; box-sizing:border-box; padding:16px; padding-top:calc(16px + env(safe-area-inset-top,0px)); padding-bottom:calc(16px + env(safe-area-inset-bottom,0px)); }
.rewo-msgpanel[hidden]{ display:none; }
.rewo-msgpanel-h{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.rewo-msgpanel-x{ border:0; background:transparent; font-size:16px; cursor:pointer; color:#5C6166; }
.rewo-msgpanel-all{ display:inline-block; font-size:12.5px; color:#1F5B1E; text-decoration:none; margin-bottom:10px; }
.rewo-msgpanel-list{ display:flex; flex-direction:column; gap:4px; }
.rewo-msgpanel-empty{ color:#5C6166; padding:16px 4px; }
.rewo-msgpanel-i{ display:flex; gap:10px; padding:10px; border-radius:10px; text-decoration:none; color:#15181C; background:#fff; border:1px solid #E7EAE4; }
.rewo-msgpanel-i:hover{ background:#EEF2EA; }
.rewo-msgpanel-i.is-unread{ border-left:3px solid #54A924; }
.rewo-msgpanel-ic{ font-size:17px; flex:0 0 auto; }
.rewo-msgpanel-tx{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.rewo-msgpanel-t{ font-weight:700; font-size:13.5px; }
.rewo-msgpanel-b{ font-size:12.5px; color:#5C6166; }
.rewo-msgpanel-w{ font-size:11.5px; color:#9AA0A6; }
.rewo-qmsg{ display:none !important; }
@media (max-width:640px){ .rewo-msgfab{ left:12px; bottom:84px; } .rewo-msgpanel{ width:320px; } }

/* Allekirjoituksen esikatselu asetuksissa (otsikon ja koodilaatikon välissä). */
.rewo-sig-prev{ border:1px dashed #CBD3CB; border-radius:8px; padding:10px 12px; margin:4px 0 6px; background:#fff; min-height:20px; font-size:13.5px; }
.rewo-sig-prev.is-empty::before{ content:"Ei allekirjoitusta — kirjoita alle, niin esikatselu päivittyy."; color:#9AA0A6; font-size:12.5px; }

/* Vastuuhenkilöt liiketoiminta-alueittain: selkeä allekkain-asettelu (kuten projektinumerot). */
.rewo-owner-grid{ display:flex; flex-direction:column; gap:8px; margin:6px 0 14px; }
.rewo-owner-row{ display:flex; align-items:center; gap:14px; padding:10px 12px; border:1px solid #E4E8E2; border-radius:10px; background:#fff; }
.rewo-owner-lbl{ flex:0 0 42%; font-weight:600; }
.rewo-owner-row select{ flex:1; min-width:0; }
@media (max-width:600px){ .rewo-owner-row{ flex-direction:column; align-items:stretch; gap:6px; } .rewo-owner-lbl{ flex:none; } }

/* Kustannuspaikan pakotus-lightbox (projektin tallennus). */
.rewo-kpmodal{ position:fixed; inset:0; z-index:100003; display:flex; align-items:center; justify-content:center; }
.rewo-kpmodal[hidden]{ display:none; }
.rewo-kpmodal-bd{ position:absolute; inset:0; background:rgba(15,20,18,.45); }
.rewo-kpmodal-box{ position:relative; width:min(460px,94vw); background:#fff; border-radius:16px; box-shadow:0 24px 60px rgba(0,0,0,.3); padding:20px; }
.rewo-kpmodal-h{ font-weight:800; font-size:16px; margin-bottom:8px; }
.rewo-kpmodal-t{ color:#3A4047; font-size:14px; margin:0 0 14px; }
.rewo-kpmodal-f{ display:flex; gap:8px; flex-wrap:wrap; }

/* ── Tehtävän laskutustuote combobox ──────────────────────────────── */
.rewo-taskrate-cbx{position:relative;display:block}
.rewo-taskrate-inp{width:100%;box-sizing:border-box;border:1px solid #d6dbd7;border-radius:10px;padding:10px 12px;font-size:15px;font-family:inherit;background:#fff;color:#1b1f24}
.rewo-taskrate-drop{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #c8d2c9;border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.13);z-index:9999;max-height:220px;overflow-y:auto}
.rewo-taskrate-opt{padding:9px 14px;font-size:14px;cursor:pointer;color:#1b1f24;border-bottom:1px solid #f0f3ef}
.rewo-taskrate-opt:last-child{border-bottom:none}
.rewo-taskrate-opt:hover{background:#EAF4E2;color:#1F5B1E}

/* ══════════════════════════════════════════════
   REWO ERP v2 NAV — navigaatiouudistus
   ══════════════════════════════════════════════ */

/* CSS-muuttujat */
.rewo-app.ui-v2{
  --rewo-hh:52px;
  --rewo-sw:220px;
  --rewo-z-hdr:100040;
  --rewo-z-sb:100035;
  --rewo-z-ov:100030;
}

/* Header kiinteä + safe-area (notch/Dynamic Island)
   Strategia: header alkaa SAFE-AREAN ALAPUOLELTA (top = notchin korkeus)
   Näin sisältö ei koskaan mene Dynamic Islandin/kellotaajuuden taakse. */
.rewo-app.ui-v2 .rewo-hdr-v2{
  position:fixed!important;
  /* Kriittinen: aloita notchin/Dynamic Islandin alapuolelta */
  top:env(safe-area-inset-top,0px);
  left:0; right:0;
  z-index:var(--rewo-z-hdr,100040);
  /* Korkeus on vain sisältökorkeus — ei sisällä safe-area-inset-top:ia */
  height:var(--rewo-hh,52px);
  overflow:visible;
}
/* App-div padding: safe-area-inset-top + headerin korkeus */
.rewo-app.ui-v2{ padding-top:calc(var(--rewo-hh,52px) + env(safe-area-inset-top,0px)); }

/* ☰ Toggle nappi headerissa */
.rewo-nav-toggle-btn{
  order:-1; background:rgba(255,255,255,.08);
  border:1.5px solid rgba(255,255,255,.14); color:#B8D4BC;
  border-radius:9px; width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:18px; transition:.15s;
  flex-shrink:0;
}
.rewo-nav-toggle-btn:hover{ background:rgba(84,169,36,.25); border-color:#54A924; color:#fff; }

/* Modtitle (nykyinen moduulin nimi headerin keskellä) */
.rewo-tb-modtitle{
  font-size:12px; font-weight:600; color:#9AA8A0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  max-width:180px;
}

/* Sivupalkki v2 — kiinteä, alkaa headerin alta */
.rewo-app.ui-v2 .rewo-side-v2{
  position:fixed!important;
  top:calc(var(--rewo-hh,52px) + env(safe-area-inset-top,0px)); left:0; bottom:0;
  width:var(--rewo-sw,220px);
  transition:transform .22s cubic-bezier(.4,0,.2,1);
  display:flex!important; flex-direction:column;
  z-index:var(--rewo-z-sb,100035);
  overflow:hidden;
}
/* Työpöytä: auki oletuksena */
@media(min-width:769px){
  .rewo-app.ui-v2 .rewo-side-v2{ transform:translateX(0); }
  .rewo-app.ui-v2 .rewo-side-v2:not(.is-open){ transform:translateX(-100%); }
  /* Työntä .rewo-main sivupalkin oikealle puolelle kun auki */
  .rewo-app.ui-v2 .rewo-shell{ padding-left:0; transition:padding-left .22s cubic-bezier(.4,0,.2,1); }
  .rewo-app.ui-v2 .rewo-side-v2.is-open ~ .rewo-main,
  .rewo-app.ui-v2 .rewo-side-v2.is-open ~ * .rewo-main,
  .rewo-app.ui-v2 .rewo-shell:has(.rewo-side-v2.is-open) .rewo-main,
  .rewo-app.ui-v2.sb-open .rewo-main{
    margin-left:var(--rewo-sw,220px) !important;
    width:calc(100% - var(--rewo-sw,220px)) !important;
  }
  .rewo-app.ui-v2 .rewo-main{ transition:margin-left .22s cubic-bezier(.4,0,.2,1); }
}
@media(max-width:768px){
  .rewo-app.ui-v2 .rewo-side-v2{ transform:translateX(-100%); }
  .rewo-app.ui-v2 .rewo-side-v2.is-open{
    transform:translateX(0); box-shadow:4px 0 24px rgba(0,0,0,.25);
  }
  .rewo-nav-fab{ display:flex!important; }
}

/* Hakukenttä sivupalkissa */
.rewo-sb-search{
  padding:10px 10px 6px; position:relative; flex-shrink:0;
}
.rewo-sb-si{
  position:absolute; left:19px; top:50%; transform:translateY(-50%);
  color:#4D8A5A; font-size:14px; pointer-events:none;
}
.rewo-sb-q{
  width:100%; font-family:Inter,sans-serif; font-size:12.5px;
  border:1.5px solid rgba(255,255,255,.10); border-radius:8px;
  padding:7px 8px 7px 28px; background:rgba(255,255,255,.07);
  color:#DCE7DF; outline:none; box-sizing:border-box;
}
.rewo-sb-q::placeholder{ color:#4D8A5A; }
.rewo-sb-q:focus{ border-color:#54A924; }
.rewo-sb-results:not([hidden]){ padding:0 8px 6px; }
.rewo-sb-res mark{ background:rgba(84,169,36,.3); color:#fff; border-radius:3px; padding:0 2px; }
.rewo-sb-res.is-foc{ background:rgba(255,255,255,.12)!important; }
.rewo-sb-nores{ font-size:12px; color:#4D8A5A; padding:8px; text-align:center; }
.rewo-sb-gh{
  font-family:'Space Mono',monospace; font-size:9px; letter-spacing:.16em;
  text-transform:uppercase; color:#4D8A5A; padding:10px 12px 3px;
}
.rewo-sb-nav[hidden]{ display:none; }
.rewo-sb-nav{ overflow-y:auto; flex:1; padding:0 0 16px; }

/* Asetukset-sivu: sidebar + content layout */
.rewo-set-layout{
  display:grid; grid-template-columns:220px 1fr;
  gap:16px; align-items:start;
}
.rewo-set-sidebar{
  background:#0E2A20; border-radius:12px; overflow:hidden;
  display:flex; flex-direction:column;
  position:sticky; top:calc(var(--rewo-hh,52px) + env(safe-area-inset-top,0px) + 12px);
  max-height:calc(100vh - var(--rewo-hh,52px) - env(safe-area-inset-top,0px) - 24px);
}
.rewo-set-content{ min-width:0; }
@media(max-width:768px){
  .rewo-set-layout{ grid-template-columns:1fr; }
  .rewo-set-sidebar{ position:static; max-height:300px; }
}

/* Projekti-layout */
.rewo-proj-layout{ display:flex; flex-direction:column; }
.rewo-proj-topbar{
  display:flex; align-items:center; gap:10px;
  padding:10px 0 10px; border-bottom:1.5px solid #E2E5DF;
  margin-bottom:12px; flex-shrink:0;
}
.rewo-proj-title-wrap{ min-width:0; flex:1; }
.rewo-proj-body{
  display:grid; grid-template-columns:210px 1fr;
  gap:14px; align-items:start;
}
.rewo-proj-sidebar{
  background:#0E2A20; border-radius:12px;
  display:flex; flex-direction:column; overflow:hidden;
  position:sticky; top:calc(var(--rewo-hh,52px) + env(safe-area-inset-top,0px) + 12px);
  max-height:calc(100vh - var(--rewo-hh,52px) - 60px);
  transition:transform .22s cubic-bezier(.4,0,.2,1);
  z-index:var(--rewo-z-sb,100035);
}
.rewo-proj-main{ min-width:0; }
.rewo-proj-zone-link{
  color:#B8D4BC; text-decoration:none; font-size:12px;
  font-weight:600; font-family:Inter,sans-serif; transition:.12s;
}
.rewo-proj-zone-link:hover{ color:#fff; }
.rewo-proj-zone-link.is-zone-active{ color:#7ED321; }
@media(max-width:768px){
  .rewo-proj-body{ grid-template-columns:1fr; }
  .rewo-proj-sidebar{
    position:fixed!important; top:calc(var(--rewo-hh,52px) + env(safe-area-inset-top,0px));
    bottom:0; left:0; width:220px; z-index:var(--rewo-z-sb,100035);
    border-radius:0; transform:translateX(-100%);
  }
  .rewo-proj-sidebar.is-open{ transform:translateX(0); }
  .rewo-proj-fab{ display:flex!important; }
}

/* FAB-nappi (sivupalkin avaus mobiilissa) */
.rewo-nav-fab{
  display:none; position:fixed; bottom:72px; left:14px;
  z-index:100025; width:46px; height:46px; border-radius:13px;
  background:#2C5F2D; color:#fff; border:0; font-size:22px;
  align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 4px 18px rgba(44,95,45,.4);
  bottom:calc(72px + env(safe-area-inset-bottom,0px));
}
.rewo-proj-fab{
  display:none; position:fixed; bottom:72px; left:14px;
  z-index:100026; width:46px; height:46px; border-radius:13px;
  background:#2C5F2D; color:#fff; border:0; font-size:22px;
  align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 4px 18px rgba(44,95,45,.4);
}

/* Overlay */
.rewo-nav-overlay,.rewo-proj-ov{
  position:fixed; inset:0;
  z-index:var(--rewo-z-ov,100030);
  background:rgba(0,0,0,.45); backdrop-filter:blur(2px);
}
.rewo-nav-overlay[hidden],.rewo-proj-ov[hidden]{ display:none; }

/* ── NAV FIX: pakota sivupalkki näkyväksi (ylikirjoittaa app.css display:none) ── */
.rewo-app.ui-v2 .rewo-side{ display:flex; flex-direction:column; }
.rewo-app.ui-v2 .rewo-side-v2{ display:flex!important; flex-direction:column; }
/* Työpöytä (>=769px): näkyy aina is-open tilassa */
@media(min-width:769px){
  .rewo-app.ui-v2 .rewo-side-v2{ 
    width:var(--rewo-sw,220px); min-width:var(--rewo-sw,220px);
    transform:translateX(0)!important;
  }
}
/* Mobiili (<769px): piilossa oletuksena, is-open näyttää */
@media(max-width:768px){
  .rewo-app.ui-v2 .rewo-side-v2:not(.is-open){ 
    transform:translateX(-100%)!important;
    width:var(--rewo-sw,220px);
  }
  .rewo-app.ui-v2 .rewo-side-v2.is-open{ 
    transform:translateX(0)!important;
    width:var(--rewo-sw,220px);
  }
}

/* ── Kontekstuaalinen valikko ── */
/* Piilotettu kontekstivalikko-lähde (JS hakee tämän sivupalkkin) */
.rewo-ctx-sidebar{ display:none; }

/* Takaisin päävalikkoon -nappi */
.rewo-ctx-back{
  display:flex; align-items:center; gap:10px;
  padding:9px 18px; font-size:13px; font-weight:700;
  color:#7ED321; background:none; border:0; width:100%;
  cursor:pointer; text-align:left;
  border-bottom:1px solid rgba(255,255,255,.08);
  margin-bottom:4px;
}
.rewo-ctx-back:hover{ background:#12362a; color:#fff; }
.rewo-ctx-back .rewo-navitem-ic{ width:17px; flex:0 0 17px; text-align:center; }

/* Asetukset- ja projekti-sisältöalueet — koko leveys kun valikko on päänavissa */
.rewo-set-ctx-wrap{ width:100%; }
.rewo-set-content{ width:100%; }
.rewo-proj-topbar{
  display:flex; align-items:center; gap:10px;
  padding:10px 0 12px; border-bottom:1.5px solid #E2E5DF;
  margin-bottom:14px;
}
.rewo-proj-main{ width:100%; }

/* Poistutaan grid-rakenteesta asetuksissa */
.rewo-set-layout{ display:block; }
.rewo-set-sidebar{ display:none; } /* piilotettu — sisältö on nyt päänavissa */

/* ══════════════════════════════════════════════════════════════
   VELO ERP NAV v2 — Pohjanavigaatio, widget-system, zone-tabs
   ══════════════════════════════════════════════════════════════ */

/* CSS custom properties */
.rewo-app.ui-v2{
  --bnav-h: 56px;
  --widget-radius: 12px;
  --widget-shadow: 0 1px 3px rgba(14,36,24,.07), 0 4px 12px rgba(14,36,24,.05);
}

/* ── Pohjanavigaatio v2 ──────────────────────────────────────── */
.rewo-app.ui-v2 .rewo-bnav-v2{
  position:fixed; bottom:0; left:0; right:0;
  height:calc(var(--bnav-h) + env(safe-area-inset-bottom,0px));
  padding-bottom:env(safe-area-inset-bottom,0px);
  background:linear-gradient(180deg,#0D0E10,#16181B);
  border-top:1px solid #000;
  display:flex; align-items:stretch;
  z-index:100020;
  /* Tabletti+: piiloon */
}
/* Desktop: piiloon yli 1024px */
@media(min-width:1025px){
  .rewo-app.ui-v2 .rewo-bnav-v2{ display:none; }
}
/* Mobiili + iPad: .rewo-main saa tilaa pohjasta */
@media(max-width:1024px){
  .rewo-app.ui-v2 .rewo-main{
    padding-bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom,0px) + 16px);
  }
}
.rewo-bnav-btn{
  flex:1; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:2px; border:0; background:none;
  color:#4D6B56; cursor:pointer; padding:4px 0; font-size:9px;
  font-family:'Space Mono',monospace; letter-spacing:.04em;
  text-decoration:none; transition:color .12s;
  -webkit-tap-highlight-color:transparent;
}
.rewo-bnav-btn .rewo-bnav-ic{ font-size:20px; line-height:1; transition:transform .12s; }
.rewo-bnav-btn .rewo-bnav-lbl{ font-size:9px; color:inherit; }
.rewo-bnav-btn:active .rewo-bnav-ic{ transform:scale(.88); }
.rewo-bnav-btn.is-active{ color:var(--lime,#54A924); }
.rewo-bnav-btn .rewo-bnav-badge{
  position:relative; display:inline-block;
}
.rewo-bnav-btn .rewo-bnav-badge::after{
  content:attr(data-count); position:absolute; top:-4px; right:-8px;
  background:var(--orange,#F2811D); color:#fff;
  font-size:8px; font-weight:700; min-width:14px; height:14px;
  border-radius:7px; padding:0 3px; display:flex; align-items:center;
  justify-content:center; font-family:var(--mono,'Space Mono',monospace);
  border:1.5px solid #0D0E10;
}
.rewo-bnav-btn .rewo-bnav-badge:not([data-count])::after,
.rewo-bnav-btn .rewo-bnav-badge[data-count=""]::after,
.rewo-bnav-btn .rewo-bnav-badge[data-count="0"]::after{ display:none; }

/* ── Breadcrumb header ───────────────────────────────────────── */
.rewo-app.ui-v2 .rewo-hdr-breadcrumb{
  display:flex; align-items:center; gap:5px;
  font-size:11px; max-width:160px; overflow:hidden;
  flex-shrink:1; min-width:0;
}
.rewo-hdr-breadcrumb-sep{ color:rgba(255,255,255,.3); font-size:10px; }
.rewo-hdr-breadcrumb-home{
  color:#6B9975; white-space:nowrap; text-decoration:none;
  transition:color .12s;
}
.rewo-hdr-breadcrumb-home:hover{ color:#B8D4BC; }
.rewo-hdr-breadcrumb-cur{
  color:#B8D4BC; font-weight:600;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ── Zone-tabs (projektin välilehdet) ──────────────────────── */
.rewo-zone-tabs{
  display:flex; gap:4px; overflow-x:auto;
  padding:0 0 8px; margin:0 0 14px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.rewo-zone-tabs::-webkit-scrollbar{ display:none; }
.rewo-zone-tab{
  display:flex; align-items:center; gap:5px;
  padding:7px 14px; border-radius:8px; font-size:13px;
  font-weight:600; white-space:nowrap; cursor:pointer;
  border:1.5px solid var(--v2-line,#DDE5D9);
  background:var(--v2-card,#fff);
  color:var(--v2-muted,#6B7A70);
  text-decoration:none; transition:border-color .12s, color .12s, background .12s;
  flex-shrink:0; -webkit-tap-highlight-color:transparent;
  user-select:none;
}
.rewo-zone-tab:hover{ border-color:var(--lime,#54A924); color:var(--v2-ink,#1C2024); }
.rewo-zone-tab.is-active{
  background:var(--green,#2C5F2D); color:#fff;
  border-color:var(--green,#2C5F2D);
  box-shadow:0 2px 8px rgba(44,95,45,.25);
}
.rewo-zone-tab .zt-ic{ font-size:14px; }

/* ── Widget system ───────────────────────────────────────────── */
.rewo-widget-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px; margin-bottom:16px;
}
@media(min-width:1025px){
  .rewo-widget-grid{ grid-template-columns:repeat(3,1fr); }
}
@media(max-width:480px){
  .rewo-widget-grid{ grid-template-columns:1fr; }
}

/* Widget card */
.rewo-widget{
  background:var(--v2-card,#fff);
  border:1.5px solid var(--v2-line,#DDE5D9);
  border-radius:var(--widget-radius,12px);
  padding:14px 16px;
  position:relative; overflow:hidden;
  box-shadow:var(--widget-shadow);
  transition:box-shadow .15s, border-color .15s;
  min-height:80px;
  /* Drag-resize target */
  resize:none; /* custom resize */
}
.rewo-widget:hover{ box-shadow:0 2px 12px rgba(14,36,24,.1); }
.rewo-widget.span2{ grid-column:span 2; }
@media(max-width:480px){ .rewo-widget.span2{ grid-column:span 1; } }
.rewo-widget.is-dragging{ opacity:.7; box-shadow:0 8px 32px rgba(14,36,24,.18); z-index:100; }
.rewo-widget.drag-over{ border-color:var(--lime,#54A924); background:rgba(84,169,36,.04); }

/* Widget header */
.rewo-widget-hdr{
  display:flex; align-items:center; gap:8px;
  margin-bottom:10px;
}
.rewo-widget-ic{ font-size:15px; flex-shrink:0; }
.rewo-widget-title{
  font-size:11px; font-weight:700; color:var(--v2-muted,#6B7A70);
  text-transform:uppercase; letter-spacing:.06em;
  font-family:'Space Mono',monospace; flex:1;
}
.rewo-widget-actions{
  display:flex; gap:4px; opacity:0; transition:opacity .15s;
}
.rewo-widget:hover .rewo-widget-actions{ opacity:1; }
.rewo-widget-action-btn{
  width:24px; height:24px; border-radius:6px; border:0;
  background:transparent; color:var(--v2-muted,#6B7A70);
  cursor:pointer; display:flex; align-items:center;
  justify-content:center; font-size:14px; transition:.12s;
}
.rewo-widget-action-btn:hover{ background:var(--v2-panel,#EFF5EB); color:var(--v2-ink,#1C2024); }

/* Drag handle (header left) */
.rewo-widget-drag-handle{
  cursor:grab; color:var(--v2-muted,#6B7A70);
  font-size:13px; opacity:0; transition:opacity .15s;
  user-select:none; padding:2px 4px; flex-shrink:0;
}
.rewo-widget:hover .rewo-widget-drag-handle{ opacity:.5; }
.rewo-widget-drag-handle:active{ cursor:grabbing; }

/* Resize handle (bottom-right corner) */
.rewo-widget-resize{
  position:absolute; bottom:0; right:0;
  width:20px; height:20px;
  cursor:se-resize; opacity:0; transition:opacity .15s;
  -webkit-touch-callout:none; user-select:none;
}
.rewo-widget:hover .rewo-widget-resize{ opacity:1; }
.rewo-widget-resize::before{
  content:'';
  position:absolute; bottom:4px; right:4px;
  width:8px; height:8px;
  border-right:2px solid var(--muted,#6B7A70);
  border-bottom:2px solid var(--muted,#6B7A70);
  border-radius:0 0 2px 0;
}

/* Collapsed widget */
.rewo-widget.is-collapsed .rewo-widget-body{ display:none; }
.rewo-widget.is-collapsed{ min-height:auto; }

/* ── Widget library drawer ──────────────────────────────────── */
.rewo-wlib-overlay{
  position:fixed; inset:0; z-index:100060;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(2px);
  opacity:0; pointer-events:none;
  transition:opacity .2s;
}
.rewo-wlib-overlay.open{ opacity:1; pointer-events:all; }
.rewo-wlib-drawer{
  position:fixed; left:0; right:0; bottom:0;
  z-index:100061; background:var(--v2-card,#fff);
  border-radius:20px 20px 0 0;
  box-shadow:0 -8px 40px rgba(0,0,0,.18);
  transform:translateY(100%);
  transition:transform .28s cubic-bezier(.4,0,.2,1);
  max-height:80vh; display:flex; flex-direction:column;
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media(min-width:769px){
  .rewo-wlib-drawer{
    left:auto; right:20px; bottom:20px;
    width:420px; border-radius:16px;
    max-height:70vh;
    box-shadow:0 8px 40px rgba(0,0,0,.2);
  }
}
.rewo-wlib-drawer.open{ transform:translateY(0); }
@media(min-width:769px){
  .rewo-wlib-drawer.open{ transform:translateY(0); }
}
.rewo-wlib-handle{
  width:36px; height:4px; border-radius:2px;
  background:var(--v2-line,#DDE5D9);
  margin:12px auto 0; flex-shrink:0;
}
@media(min-width:769px){ .rewo-wlib-handle{ display:none; } }
.rewo-wlib-head{
  display:flex; align-items:center; gap:10px;
  padding:14px 16px 8px; flex-shrink:0;
}
.rewo-wlib-title{ font-weight:700; font-size:16px; flex:1; }
.rewo-wlib-close{
  width:30px; height:30px; border-radius:8px; border:0;
  background:var(--v2-panel,#EFF5EB); color:var(--v2-muted,#6B7A70);
  cursor:pointer; font-size:16px; display:flex; align-items:center;
  justify-content:center;
}
.rewo-wlib-cats{
  display:flex; gap:6px; padding:0 16px 10px;
  overflow-x:auto; scrollbar-width:none; flex-shrink:0;
}
.rewo-wlib-cats::-webkit-scrollbar{ display:none; }
.rewo-wlib-cat{
  padding:5px 12px; border-radius:20px; font-size:12px;
  border:1.5px solid var(--v2-line,#DDE5D9);
  background:var(--v2-card,#fff); cursor:pointer;
  font-weight:600; white-space:nowrap; transition:.12s;
  flex-shrink:0;
}
.rewo-wlib-cat.active{
  background:var(--green,#2C5F2D); color:#fff;
  border-color:var(--green,#2C5F2D);
}
.rewo-wlib-grid{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:10px; padding:4px 16px 20px;
  overflow-y:auto; flex:1;
}
@media(min-width:480px){ .rewo-wlib-grid{ grid-template-columns:repeat(3,1fr); } }
.rewo-wlib-item{
  background:var(--v2-panel,#EFF5EB);
  border:1.5px solid var(--v2-line,#DDE5D9);
  border-radius:10px; padding:12px;
  cursor:pointer; transition:border-color .12s;
  display:flex; flex-direction:column; gap:4px;
}
.rewo-wlib-item:hover{ border-color:var(--lime,#54A924); }
.rewo-wlib-item-ic{ font-size:22px; }
.rewo-wlib-item-name{ font-size:12px; font-weight:700; }
.rewo-wlib-item-desc{ font-size:11px; color:var(--v2-muted,#6B7A70); }
.rewo-wlib-add{
  margin-top:6px; padding:5px 10px;
  background:var(--green,#2C5F2D); color:#fff; border:0;
  border-radius:6px; font-size:11px; font-weight:600;
  cursor:pointer; align-self:flex-start;
}

/* Widget add FAB */
.rewo-widget-fab{
  position:fixed; z-index:100015;
  width:46px; height:46px; border-radius:14px; border:0;
  background:var(--green,#2C5F2D); color:#fff; font-size:22px;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(44,95,45,.4);
  transition:background .15s, transform .12s;
  -webkit-tap-highlight-color:transparent;
}
.rewo-widget-fab:active{ transform:scale(.92); }
/* Mobile: bottom left above bnav */
@media(max-width:768px){
  .rewo-widget-fab{
    bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom,0px) + 12px);
    left:14px;
  }
}
/* Desktop: fixed position */
@media(min-width:769px){
  .rewo-widget-fab{
    bottom:24px; right:24px;
    width:42px; height:42px;
  }
}

/* ── Projekti hero card ─────────────────────────────────────── */
.rewo-proj-hero{
  background:linear-gradient(135deg,#0E2418,#1a3620);
  border-radius:var(--widget-radius,12px);
  padding:16px; margin-bottom:14px;
  color:#fff;
}
.rewo-proj-hero-top{
  display:flex; align-items:flex-start; gap:12px; margin-bottom:12px;
}
.rewo-proj-hero-icon{
  width:44px; height:44px; border-radius:12px;
  background:rgba(255,255,255,.1); display:flex;
  align-items:center; justify-content:center;
  font-size:22px; flex-shrink:0;
}
.rewo-proj-hero-info h2{
  font-size:17px; font-weight:800; margin-bottom:3px; letter-spacing:-.01em;
}
.rewo-proj-hero-meta{
  font-size:12px; color:rgba(255,255,255,.55);
  display:flex; gap:8px; flex-wrap:wrap; align-items:center;
}
.rewo-proj-hero-kpis{
  display:grid; grid-template-columns:repeat(3,1fr); gap:8px;
}
@media(min-width:600px){
  .rewo-proj-hero-kpis{ grid-template-columns:repeat(6,1fr); }
}
.rewo-proj-hero-kpi{
  background:rgba(255,255,255,.07); border-radius:8px;
  padding:7px 8px; text-align:center;
}
.rewo-proj-hero-kpi-val{
  font-size:16px; font-weight:700;
  font-family:'Space Mono',monospace;
}
.rewo-proj-hero-kpi-lbl{
  font-size:9px; color:rgba(255,255,255,.45);
  margin-top:2px; font-family:'Space Mono',monospace;
  letter-spacing:.04em; text-transform:uppercase;
}

/* ══════════════════════════════════════════════════════════════
   NAV v2 STYLE POLISH — simulaattorin värit ja tyylit
   ══════════════════════════════════════════════════════════════ */

/* Vasen ☰ piilotetaan mobiilissa (pohjapalkin valikko hoitaa) */
@media(max-width:768px){
  .rewo-app.ui-v2 .rewo-tb-toggle-nonmobile{ display:none!important; }
}

/* Sidebar ryhmäotsikot — simulaattorin tyyli */
.rewo-app.ui-v2 .rewo-side-v2 .rewo-sb-gh,
.rewo-app.ui-v2 #rewo-sidebar-v2 .rewo-sb-gh{
  font-family:'Space Mono',monospace;
  font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:#4D8A5A; padding:12px 14px 4px;
  display:flex; align-items:center; gap:6px;
}

/* Sidebar nav-item — simulaattorin tyyli */
.rewo-app.ui-v2 .rewo-sb-nav .rewo-navitem,
.rewo-app.ui-v2 #rewo-sb-nav .rewo-navitem{
  display:flex; align-items:center; gap:9px;
  padding:8px 14px; font-size:13px; color:#B8D4BC;
  text-decoration:none; cursor:pointer;
  transition:background .12s, color .12s;
  border-left:2px solid transparent;
  position:relative;
}
.rewo-app.ui-v2 .rewo-sb-nav .rewo-navitem:hover,
.rewo-app.ui-v2 #rewo-sb-nav .rewo-navitem:hover{
  background:rgba(255,255,255,.06); color:#fff;
}
.rewo-app.ui-v2 .rewo-sb-nav .rewo-navitem.is-active,
.rewo-app.ui-v2 #rewo-sb-nav .rewo-navitem.is-active{
  background:rgba(84,169,36,.12);
  color:var(--limebr,#7ED321);
  border-left-color:var(--lime,#54A924);
  font-weight:600;
}
.rewo-app.ui-v2 .rewo-navitem-ic{ width:18px; text-align:center; font-size:14px; flex-shrink:0; }

/* Category icons next to group header */
.rewo-app.ui-v2 .rewo-sb-gh-ic{ font-size:14px; }

/* Bottom nav — simulaattorin style */
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bnav-btn{
  color:#4D6B56;
}
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bnav-btn.is-active{
  color:var(--lime,#54A924);
}
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bnav-btn:active .rewo-bnav-ic{
  transform:scale(.88);
}

/* Kamera-nappi pohjanavigaatioon — simulaattorin oranssi pallo */
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bn-cam,
.rewo-app.ui-v2 .rewo-bnav-v2 button.rewo-bn-cam{
  flex:0 0 68px; /* hieman leveämpi kuin muut */
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:2px;
  border:0; background:none; cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  padding:0;
}
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bn-cam .rewo-bn-camcircle{
  width:48px; height:48px; border-radius:50%;
  background:var(--orange,#F2811D);
  display:flex; align-items:center; justify-content:center;
  color:#fff; margin-top:-10px; /* nousee palkista ylös */
  box-shadow:0 4px 14px rgba(242,129,29,.45);
  border:3px solid #0D0E10; /* reunus erottaa taustan väristä */
  transition:transform .12s;
}
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bn-cam:active .rewo-bn-camcircle{
  transform:scale(.9);
}
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bn-cam .rewo-bn-l{
  font-size:9px; font-family:'Space Mono',monospace;
  letter-spacing:.04em; color:#6B7A70; margin-top:2px;
}

/* Widget FAB näkyy kaikilla sivuilla (ei vain projekteilla) */
.rewo-app.ui-v2 .rewo-widget-fab{ display:flex!important; }

/* Sivuvalikon takaisin-nappi tyyli */
.rewo-app.ui-v2 .rewo-ctx-back{
  font-size:12px!important;
  padding:9px 14px!important;
  gap:8px!important;
}

/* ══════════════════════════════════════════════════════════════
   BUGFIX BATCH — devpanel, scroll, sidebar
   ══════════════════════════════════════════════════════════════ */

/* FIX: Devpanel-toggle nostettuna sivupalkin yläpuolelle
   Headerin z-index on 100040, sivupalkin 100035 — toggle täytyy olla yli molempien */
.rewo-devpanel-toggle{
  z-index:100045 !important;
}
.rewo-devpanel{
  z-index:100044 !important;
}

/* FIX: .rewo-main saa vierittää normaalisti */
.rewo-app.ui-v2 .rewo-main{
  overflow-y:auto;
  overflow-x:hidden;
  height:calc(100vh - var(--rewo-hh,52px) - env(safe-area-inset-top,0px));
  /* Scrollbar mukava */
  scrollbar-width:thin;
  scrollbar-color:rgba(44,95,45,.3) transparent;
}
.rewo-app.ui-v2 .rewo-main::-webkit-scrollbar{ width:5px; }
.rewo-app.ui-v2 .rewo-main::-webkit-scrollbar-thumb{
  background:rgba(44,95,45,.3); border-radius:3px;
}

/* FIX: shell flex — sivupalkki + main rinnakkain */
.rewo-app.ui-v2 .rewo-shell{
  display:flex; flex-direction:row;
  min-height:calc(100vh - var(--rewo-hh,52px) - env(safe-area-inset-top,0px));
  position:relative;
}

/* Desktop: main-alue saa koko leveyden kun sivupalkki on kiinteä position:fixed */
/* duplicate desktop block removed */

/* FIX: Asetukset-sivun ja muiden sivujen content-alue vierittää */
.rewo-app.ui-v2 .rewo-set-content,
.rewo-app.ui-v2 .rewo-set-ctx-wrap{
  overflow:visible;
  width:100%;
}
/* Projekti-main vierittää */
.rewo-app.ui-v2 .rewo-proj-main{
  overflow:visible; width:100%;
}

/* FIX: Sidebar sb-gh kategoriaotsikko tumma */
.rewo-app.ui-v2 #rewo-sidebar-v2 .rewo-sb-gh{
  color:#4D8A5A !important;
  font-size:9px !important;
  font-family:'Space Mono',monospace !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  padding:12px 14px 4px !important;
}
.rewo-app.ui-v2 #rewo-sidebar-v2 .rewo-sb-gh .rewo-sb-gh-ic{
  font-size:13px; margin-right:4px;
}

/* ── Live-haun tulokset ryhmiteltynä ──────────────────────── */
.rewo-app.ui-v2 .rewo-sb-search-count{
  font-size:10px; color:#4D8A5A;
  padding:6px 14px 2px;
  font-family:'Space Mono',monospace; letter-spacing:.05em;
}
.rewo-app.ui-v2 .rewo-sb-res-group{
  font-size:9px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:#4D8A5A;
  padding:8px 14px 3px;
  font-family:'Space Mono',monospace;
  border-top:1px solid rgba(255,255,255,.05);
  margin-top:4px;
}
.rewo-app.ui-v2 .rewo-sb-res-group:first-child{
  border-top:none; margin-top:0;
}
.rewo-app.ui-v2 .rewo-sb-results:not([hidden]){
  padding:0 0 8px;
  overflow-y:auto; max-height:60vh;
}
.rewo-app.ui-v2 .rewo-sb-res mark{
  background:rgba(84,169,36,.3); color:#fff;
  border-radius:3px; padding:0 2px;
}
.rewo-app.ui-v2 .rewo-sb-res.is-foc{
  background:rgba(255,255,255,.12) !important;
  outline:none;
}
.rewo-app.ui-v2 .rewo-sb-nores{
  font-size:12px; color:#4D8A5A;
  padding:14px; text-align:center;
  font-style:italic;
}

/* ══════════════════════════════════════════════════════════════
   NAV OVERLAY BUGFIX — overlay VAIN mobiilissa
   ══════════════════════════════════════════════════════════════ */

/* Desktop: overlay ei koskaan näy (sivupalkki on kiinteä, ei tarvita peittoa) */
@media(min-width:769px){
  #rewo-nav-overlay.rewo-nav-overlay{
    display:none !important;
    pointer-events:none !important;
  }
}

/* Mobiili: overlay näkyy vain kun sivupalkki on auki */
@media(max-width:768px){
  #rewo-nav-overlay.rewo-nav-overlay{
    display:none;
    position:fixed; inset:0;
    z-index:var(--rewo-z-ov,100030);
    background:rgba(0,0,0,.45);
    backdrop-filter:blur(2px);
    pointer-events:none;
  }
  #rewo-nav-overlay.rewo-nav-overlay:not([hidden]){
    display:block;
    pointer-events:all;
  }
}

/* Varmista: body overflow EI lukitu desktopilla koskaan nav-toiminnoista */
@media(min-width:769px){
  .rewo-app.ui-v2 body,
  body.rewo-app-desktop{ overflow:auto !important; }
}

/* ══════════════════════════════════════════════════════════════
   TOP SEARCH LIVE DROPDOWN
   ══════════════════════════════════════════════════════════════ */
.rewo-app.ui-v2 .rewo-tb-search-live{
  position:relative; flex:1; max-width:480px;
  display:flex; align-items:center;
}
.rewo-app.ui-v2 #rewo-tb-q{
  width:100%; background:rgba(255,255,255,.08);
  border:1.5px solid rgba(255,255,255,.12); border-radius:9px;
  padding:7px 12px 7px 34px; color:#E6E8EA;
  font-size:13.5px; font-family:inherit; outline:none;
  transition:border-color .15s, background .15s;
}
.rewo-app.ui-v2 #rewo-tb-q::placeholder{ color:rgba(255,255,255,.35); }
.rewo-app.ui-v2 #rewo-tb-q:focus{
  border-color:var(--lime,#54A924);
  background:rgba(255,255,255,.12);
}

/* Dropdown tulokset */
.rewo-app.ui-v2 .rewo-tb-drop{
  position:absolute; top:calc(100% + 6px); left:0; right:0;
  background:#fff; border:1.5px solid var(--v2-line,#DDE5D9);
  border-radius:12px; box-shadow:0 8px 32px rgba(14,36,24,.18);
  z-index:100050; max-height:420px; overflow-y:auto;
  min-width:320px;
}
.rewo-app.ui-v2 .rewo-tb-drop[hidden]{ display:none; }
.rewo-app.ui-v2 .rewo-tb-drop-gh{
  font-size:9px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted,#6B7A70);
  padding:8px 14px 3px; font-family:'Space Mono',monospace;
  border-top:1px solid var(--v2-line,#DDE5D9); margin-top:4px;
}
.rewo-app.ui-v2 .rewo-tb-drop-gh:first-child{ border-top:none; margin-top:0; }
.rewo-app.ui-v2 .rewo-tb-drop-item{
  display:flex; align-items:center; gap:8px;
  padding:8px 14px; font-size:13px; color:var(--v2-ink,#1C2024);
  text-decoration:none; transition:background .1s;
}
.rewo-app.ui-v2 .rewo-tb-drop-item:hover{ background:var(--panel,#EFF5EB); }
.rewo-app.ui-v2 .rewo-tb-drop-ic{ font-size:15px; flex-shrink:0; width:20px; text-align:center; }
.rewo-app.ui-v2 .rewo-tb-drop-item mark{
  background:rgba(84,169,36,.25); color:inherit;
  border-radius:2px; padding:0 2px; font-style:normal;
}
.rewo-app.ui-v2 .rewo-tb-drop-empty{
  padding:14px; text-align:center; font-size:13px;
  color:var(--muted,#6B7A70); font-style:italic;
}

/* Company logo headerissa */
.rewo-app.ui-v2 .rewo-tb-company-logo{
  height:28px; max-width:110px; object-fit:contain;
  vertical-align:middle; border-radius:4px;
}

/* ══════════════════════════════════════════════════════════════
   LAUNCHER + SIDEBAR FINAL FIXES
   ══════════════════════════════════════════════════════════════ */

/* FIX: Launcher z-index yli kaiken (header=100040, sidebar=100035) */
#rewo-launcher{ z-index:100055 !important; }
#rewo-launcher-ov{ z-index:100054 !important; }

/* FIX: Sidebar margin-left — kaikki selaimet, kaikki tilat
   Käytetään SEKÄ .is-open (suora CSS) ETTÄ .sb-open (JS-luokka) */
@media(min-width:769px){
  /* Kun .is-open on sivupalkilla */
  .rewo-app.ui-v2 #rewo-sidebar-v2.is-open ~ .rewo-shell .rewo-main,
  .rewo-app.ui-v2 #rewo-sidebar-v2.is-open ~ .rewo-main{
    margin-left:var(--rewo-sw,220px) !important;
    width:calc(100% - var(--rewo-sw,220px)) !important;
  }
  /* Kun .sb-open on app-elementillä (JS lisää) */
  .rewo-app.ui-v2.sb-open > .rewo-shell .rewo-main,
  .rewo-app.ui-v2.sb-open > .rewo-main{
    margin-left:var(--rewo-sw,220px) !important;
    width:calc(100% - var(--rewo-sw,220px)) !important;
  }
  /* Oletuksena (sivupalkki kiinni): 0 */
  .rewo-app.ui-v2:not(.sb-open) > .rewo-shell .rewo-main,
  .rewo-app.ui-v2:not(.sb-open) > .rewo-main{
    margin-left:0 !important;
    width:100% !important;
  }
}

/* FIX: Sidebar käytännön näkyvyys — varmista että se on kiinteässä paikassa */
@media(min-width:769px){
  .rewo-app.ui-v2 #rewo-sidebar-v2{
    position:fixed !important;
    top:env(safe-area-inset-top,0px) !important;
    /* header korkeus headerin alla */
    top:calc(var(--rewo-hh,52px) + env(safe-area-inset-top,0px)) !important;
    left:0 !important;
    bottom:0 !important;
    width:var(--rewo-sw,220px) !important;
    transform:translateX(0) !important; /* aina näkyvissä desktopilla */
    z-index:var(--rewo-z-sb,100035) !important;
  }
  .rewo-app.ui-v2 #rewo-sidebar-v2:not(.is-open){
    transform:translateX(-100%) !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   SIVUPALKKI — LOPULLINEN YHTENÄINEN JÄRJESTELMÄ
   Korvaa kaikki aiemmat ristiriitaiset säännöt.
   window.innerWidth > 900 = sb-open, <= 900 = suljettu
   ══════════════════════════════════════════════════════════════ */

/* Sivupalkki: kiinteä, alkaa headerin alta */
.rewo-app.ui-v2 #rewo-sidebar-v2{
  position:fixed !important;
  top:calc(var(--rewo-hh,52px) + env(safe-area-inset-top,0px)) !important;
  left:0 !important; bottom:0 !important;
  width:var(--rewo-sw,228px) !important;
  z-index:var(--rewo-z-sb,100035) !important;
  transform:translateX(-100%) !important;
  transition:transform .22s cubic-bezier(.4,0,.2,1) !important;
  overflow-y:auto !important; overflow-x:hidden !important;
}
/* Auki: .is-open */
.rewo-app.ui-v2 #rewo-sidebar-v2.is-open{
  transform:translateX(0) !important;
}

/* Main: siirtyy sivupalkin verran kun se on auki */
.rewo-app.ui-v2.sb-open .rewo-main,
.rewo-app.ui-v2.sb-open .rewo-shell .rewo-main{
  margin-left:var(--rewo-sw,228px) !important;
  width:calc(100% - var(--rewo-sw,228px)) !important;
  box-sizing:border-box !important;
}
.rewo-app.ui-v2:not(.sb-open) .rewo-main,
.rewo-app.ui-v2:not(.sb-open) .rewo-shell .rewo-main{
  margin-left:0 !important;
  width:100% !important;
  box-sizing:border-box !important;
}

/* Mobiili ≤900px: main ei siirry (sivupalkki floataa päälle) */
@media(max-width:900px){
  .rewo-app.ui-v2.sb-open .rewo-main,
  .rewo-app.ui-v2.sb-open .rewo-shell .rewo-main{
    margin-left:0 !important;
    width:100% !important;
  }
}

/* Widget FAB: vain desktopilla (ei mobiilissa/tabletilla) */
@media(max-width:1024px){
  .rewo-widget-fab{ display:none !important; }
}

/* Suosikit-otsikko sivupalkissa */
.rewo-app.ui-v2 #rewo-sidebar-v2 .rewo-sb-fav-gh{
  color:#F2B03A !important; /* kultainen */
  border-bottom:1px solid rgba(255,255,255,.06);
  padding-bottom:6px !important;
}
.rewo-app.ui-v2 #rewo-sidebar-v2 .rewo-sb-fav-gh .rewo-sb-gh-ic{
  color:#F2B03A;
}
/* Divider suosikkien jälkeen */
.rewo-app.ui-v2 #rewo-sidebar-v2 .rewo-sb-divider{
  height:1px;
  background:rgba(255,255,255,.07);
  margin:6px 14px 8px;
}
/* Ryhmäotsikot — kapea padding */
.rewo-app.ui-v2 #rewo-sidebar-v2 .rewo-sb-gh{
  padding:10px 14px 3px !important;
  margin-top:2px;
}
/* Launcher ryhmät — selkeämmät otsikot */
.rewo-launchpage .rewo-lgh{
  display:flex; align-items:center; gap:6px;
  font-size:11px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:#6B7A70;
  padding:14px 2px 6px; font-family:'Space Mono',monospace;
}
.rewo-launchpage .rewo-lgh-ic{ font-size:16px; }
/* Launcher grid — tiiviimpi */
.rewo-launchpage .rewo-lgrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
@media(min-width:600px){
  .rewo-launchpage .rewo-lgrid{ grid-template-columns:repeat(4,1fr); }
}
@media(min-width:900px){
  .rewo-launchpage .rewo-lgrid{ grid-template-columns:repeat(5,1fr); }
}
/* Velo logo headerissa */
.rewo-app.ui-v2 .rewo-tb-velo-logo{
  height:30px; max-width:100px;
  object-fit:contain; vertical-align:middle;
  border-radius:6px;
}

/* ══ Valikko-otsikot: selkeästi näkyvä väri tummalla pohjalla ══ */
/* Ryhmäotsikot olivat liian tummat — nostetaan valoisammiksi */
.rewo-app.ui-v2 .rewo-side .rewo-sb-gh,
.rewo-app.ui-v2 #rewo-sidebar-v2 .rewo-sb-gh,
.rewo-app.ui-v2 .rewo-navgrp-h,
.rewo-app.ui-v2 .rewo-side .rewo-navgrp-h {
  color: #7EB889 !important;  /* vaaleampi vihreä, selkeästi erottuva */
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}
/* Takaisin-nappi */
.rewo-app.ui-v2 .rewo-ctx-back,
.rewo-app.ui-v2 .sb-back {
  color: #7ED321 !important;
}

/* ══════════════════════════════════════════════════════════════
   PROJEKTI-LISTA — Korttinäkymä
   ══════════════════════════════════════════════════════════════ */
.rewo-proj-list-wrap{padding:14px 0 0}
.rewo-proj-list-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.rewo-proj-list-toolbar .rewo-tb-search{flex:1;min-width:160px;border:1.5px solid var(--rewo-line,#DDE5D9);border-radius:9px;padding:7px 11px;font-size:13px;font-family:inherit;outline:none;transition:.15s}
.rewo-proj-list-toolbar .rewo-tb-search:focus{border-color:#54A924}

/* Status-filter tabs horisontaalinen scroll mobiilissa */
.rewo-proj-status-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;margin-bottom:12px}
.rewo-proj-status-tabs::-webkit-scrollbar{display:none}
.rewo-pst{padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;transition:.1s;text-decoration:none}
.rewo-pst-all{background:#EFF5EB;color:#2C5F2D;border-color:#DDE5D9}
.rewo-pst-all.active,.rewo-pst.active{border-color:currentColor}

/* Korttiruudukko */
.rewo-proj-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;width:100%}
@media(min-width:1400px){.rewo-proj-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}
@media(max-width:900px){.rewo-proj-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}
.rewo-proj-card{background:#fff;border:1.5px solid #DDE5D9;border-radius:12px;padding:0;overflow:hidden;box-shadow:0 1px 3px rgba(14,36,24,.06);cursor:pointer;transition:box-shadow .15s,border-color .15s;text-decoration:none;display:block;color:inherit}
.rewo-proj-card:hover{box-shadow:0 4px 16px rgba(14,36,24,.1);border-color:#54A924}
.rewo-proj-card-header{background:linear-gradient(135deg,#0E2418,#163820);padding:12px 14px 10px;display:flex;align-items:flex-start;gap:10px}
.rewo-proj-card-icon{width:36px;height:36px;border-radius:9px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.rewo-proj-card-title{font-size:13px;font-weight:700;color:#fff;line-height:1.3;margin-bottom:3px}
.rewo-proj-card-pno{font-size:10px;color:rgba(255,255,255,.5);font-family:var(--rewo-mono,'Space Mono',monospace)}
.rewo-proj-card-body{padding:10px 14px 12px}
.rewo-proj-card-meta{display:flex;gap:8px;font-size:11px;color:#6B7A70;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.rewo-proj-card-kpis{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.rewo-proj-card-kpi{background:#F7F9F6;border-radius:7px;padding:6px 8px}
.rewo-proj-card-kpi-val{font-size:14px;font-weight:700;font-family:var(--rewo-mono,'Space Mono',monospace);color:#1C2024}
.rewo-proj-card-kpi-lbl{font-size:9px;color:#6B7A70;text-transform:uppercase;letter-spacing:.06em}
.rewo-proj-card-footer{padding:0 14px 10px;display:flex;justify-content:space-between;align-items:center}
.rewo-proj-card-prog{height:4px;background:#DDE5D9;border-radius:2px;overflow:hidden;flex:1;margin-right:10px}
.rewo-proj-card-prog-fill{height:100%;border-radius:2px;background:#54A924}
.rewo-proj-card-pct{font-size:10px;font-weight:700;color:#2C5F2D;font-family:var(--rewo-mono,'Space Mono',monospace)}

/* ══════════════════════════════════════════════════════════════
   PROJEKTI-HERO — uusi tumma palkki
   ══════════════════════════════════════════════════════════════ */
.rewo-proj-hero-v2{background:linear-gradient(135deg,#0E2418 0%,#163820 100%);padding:16px 18px 14px;margin:0}
.rewo-proj-hero-v2 .rewo-proj-hero-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.rewo-proj-hero-v2 .rewo-proj-hero-icon{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.rewo-proj-hero-v2 h2{font-size:17px;font-weight:800;color:#fff;letter-spacing:-.01em;margin:0 0 4px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.rewo-proj-hero-v2 .rewo-proj-hero-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:11px;color:rgba(255,255,255,.5);align-items:center}
.rewo-proj-hero-v2 .rewo-proj-hero-actions{display:flex;flex-direction:column;gap:4px;flex-shrink:0}
.rewo-proj-hero-v2 .rewo-proj-hero-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
@media(max-width:500px){.rewo-proj-hero-v2 .rewo-proj-hero-kpis{grid-template-columns:repeat(2,1fr)}}
.rewo-proj-hero-v2 .rewo-proj-kpi{background:rgba(255,255,255,.07);border-radius:8px;padding:7px 9px;text-align:center}
.rewo-proj-hero-v2 .rewo-proj-kpi-val{font-size:15px;font-weight:700;color:#fff;font-family:var(--rewo-mono,'Space Mono',monospace)}
.rewo-proj-hero-v2 .rewo-proj-kpi-val.kpi-gr{color:#7ED321}
.rewo-proj-hero-v2 .rewo-proj-kpi-val.kpi-or{color:#F2811D}
.rewo-proj-hero-v2 .rewo-proj-kpi-lbl{font-size:8px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.06em;margin-top:1px;font-family:var(--rewo-mono,'Space Mono',monospace)}

/* ══════════════════════════════════════════════════════════════
   PROJEKTI-VÄLILEHDET — paranneltu scrollattava rivi
   ══════════════════════════════════════════════════════════════ */
.rewo-proj-tabs-v2{display:flex;background:#fff;border-bottom:2px solid #DDE5D9;overflow-x:auto;scrollbar-width:none;flex-shrink:0;padding:0 14px;position:sticky;top:calc(var(--rewo-hh,52px) + env(safe-area-inset-top,0px));z-index:40;box-shadow:0 6px 14px -10px rgba(0,0,0,.30)}
.rewo-proj-tabs-v2::-webkit-scrollbar{display:none}
.rewo-proj-tab{padding:10px 12px;font-size:12px;font-weight:600;color:#6B7A70;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;cursor:pointer;transition:.1s;display:flex;align-items:center;gap:4px}
.rewo-proj-tab:hover{color:#1C2024}
.rewo-proj-tab.is-active{color:#2C5F2D;border-bottom-color:#54A924}
.rewo-proj-tab .rewo-proj-tab-c{background:#EFF5EB;color:#2C5F2D;font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;font-family:var(--rewo-mono,'Space Mono',monospace)}

/* ══════════════════════════════════════════════════════════════
   LASKUTUSTYYPPI-VALITSIN hero-kortissa
   ══════════════════════════════════════════════════════════════ */
.rewo-ltype-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:4px}
.rewo-ltype-opt{border:2px solid #DDE5D9;border-radius:10px;padding:9px 12px;cursor:pointer;transition:.12s;background:#fff}
.rewo-ltype-opt.selected{border-color:#54A924;background:rgba(84,169,36,.06)}
.rewo-ltype-opt-title{font-size:13px;font-weight:700}
.rewo-ltype-opt-desc{font-size:11px;color:#6B7A70;margin-top:1px}
.rewo-ltype-opt.selected .rewo-ltype-opt-title{color:#2C5F2D}

/* ══════════════════════════════════════════════════════════════
   LISÄTYÖT — status-rivit
   ══════════════════════════════════════════════════════════════ */
.rewo-lisatyo-section-hdr{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-family:var(--rewo-mono,'Space Mono',monospace);padding:10px 0 5px;margin-top:4px}
.rewo-lisatyo-section-hdr.pending{color:#F2811D}
.rewo-lisatyo-section-hdr.approved{color:#54A924}
.rewo-lisatyo-row{display:flex;align-items:flex-start;gap:9px;padding:9px 0;border-bottom:1px solid #DDE5D9}
.rewo-lisatyo-row:last-child{border-bottom:none}
.rewo-lisatyo-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:6px}
.rewo-lisatyo-dot.d-or{background:#F2811D}
.rewo-lisatyo-dot.d-gr{background:#54A924}
.rewo-lisatyo-dot.d-bl{background:#3B82F6}
.rewo-lisatyo-title{font-size:13px;font-weight:600;margin-bottom:2px}
.rewo-lisatyo-meta{display:flex;gap:7px;font-size:11px;color:#6B7A70;flex-wrap:wrap;align-items:center}
.rewo-lisatyo-deadline{color:#C76600!important;font-weight:600}
.rewo-lisatyo-amount{font-family:var(--rewo-mono,'Space Mono',monospace);font-weight:700;font-size:14px;white-space:nowrap}
.rewo-lisatyo-actions{display:flex;flex-direction:column;gap:3px;align-items:flex-end}
.rewo-approve-btn{padding:4px 10px;border-radius:7px;font-size:11px;font-weight:700;cursor:pointer;border:0;font-family:inherit}
.rewo-approve-btn.pending{background:rgba(242,129,29,.1);color:#C76600}
.rewo-approve-btn.approved{background:rgba(84,169,36,.1);color:#2C5F2D}
.rewo-approve-btn.pending:hover{background:rgba(242,129,29,.2)}

/* ══════════════════════════════════════════════════════════════
   TUNNIT-TAULUKKO
   ══════════════════════════════════════════════════════════════ */
.rewo-hours-info{background:rgba(84,169,36,.06);border:1px solid rgba(84,169,36,.2);border-radius:8px;padding:8px 12px;font-size:12px;color:#2C5F2D;margin-bottom:10px}
.rewo-hours-worker{display:flex;align-items:center;gap:6px}
.rewo-hours-avatar{width:26px;height:26px;border-radius:50%;background:#2C5F2D;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rewo-travel-chip{background:rgba(242,129,29,.1);color:#C76600;border-radius:6px;padding:2px 6px;font-size:10px;font-weight:700}
.rewo-travel-chip.done{background:rgba(59,130,246,.1);color:#1D4FD7}

/* ══════════════════════════════════════════════════════════════
   HANKINNAT — checkbox-rivit
   ══════════════════════════════════════════════════════════════ */
.rewo-hankinta-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #DDE5D9}
.rewo-hankinta-row:last-child{border-bottom:none}
.rewo-hankinta-check{width:18px;height:18px;border-radius:5px;border:2px solid #DDE5D9;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.1s}
.rewo-hankinta-check.checked{background:#54A924;border-color:#54A924;color:#fff;font-size:11px}
.rewo-laskutus-badge{background:rgba(44,95,45,.1);color:#2C5F2D;border-radius:6px;padding:2px 7px;font-size:10px;font-weight:700;white-space:nowrap}
.rewo-laskutus-badge.no{background:#EFF5EB;color:#6B7A70}

/* ══════════════════════════════════════════════════════════════
   KUVAGALLERIA — päiväkohtainen
   ══════════════════════════════════════════════════════════════ */
.rewo-gallery-day{margin-bottom:16px}
.rewo-gallery-day-hdr{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#6B7A70;font-family:var(--rewo-mono,'Space Mono',monospace);margin-bottom:7px;padding-bottom:4px;border-bottom:1px solid #DDE5D9}
.rewo-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
@media(max-width:480px){.rewo-gallery-grid{grid-template-columns:repeat(3,1fr)}}
.rewo-gallery-thumb{aspect-ratio:1;border-radius:8px;overflow:hidden;background:#EFF5EB;cursor:pointer;transition:transform .1s}
.rewo-gallery-thumb:hover{transform:scale(1.03)}
.rewo-gallery-thumb img{width:100%;height:100%;object-fit:cover}
.rewo-gallery-add{border:2px dashed #DDE5D9;border-radius:8px;display:flex;align-items:center;justify-content:center;aspect-ratio:1;cursor:pointer;color:#6B7A70;font-size:20px;transition:.1s}
.rewo-gallery-add:hover{border-color:#54A924;color:#54A924}

/* ══════════════════════════════════════════════════════════════
   MAKSUERÄT — numeroitu lista
   ══════════════════════════════════════════════════════════════ */
.rewo-maksuera-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #DDE5D9}
.rewo-maksuera-row:last-child{border-bottom:none}
.rewo-me-num{width:26px;height:26px;border-radius:50%;background:#EFF5EB;border:1.5px solid #DDE5D9;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-family:var(--rewo-mono,'Space Mono',monospace);color:#6B7A70;flex-shrink:0}
.rewo-me-num.paid{background:rgba(84,169,36,.1);border-color:#54A924;color:#2C5F2D}
.rewo-me-num.due{border-color:#F2811D;color:#F2811D}
.rewo-me-amount{font-family:var(--rewo-mono,'Space Mono',monospace);font-weight:700;font-size:14px;white-space:nowrap}
.rewo-me-amount.paid{color:#2C5F2D}

/* ══════════════════════════════════════════════════════════════
   TARJOUSLISTA — pipeline + taulukko
   ══════════════════════════════════════════════════════════════ */
.rewo-quotes-hero{background:linear-gradient(135deg,#0E2418,#163820);padding:14px 18px;margin-bottom:0}
.rewo-quotes-hero-title{font-size:17px;font-weight:800;color:#fff;margin-bottom:3px}
.rewo-quotes-hero-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
@media(max-width:500px){.rewo-quotes-hero-kpis{grid-template-columns:repeat(2,1fr)}}
.rewo-quotes-kpi{background:rgba(255,255,255,.07);border-radius:8px;padding:7px 9px;text-align:center}
.rewo-quotes-kpi-val{font-size:15px;font-weight:700;color:#fff;font-family:var(--rewo-mono,'Space Mono',monospace)}
.rewo-quotes-kpi-lbl{font-size:8px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.06em;font-family:var(--rewo-mono,'Space Mono',monospace)}

.rewo-quotes-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:12px 14px 0;background:#fff;border-bottom:1px solid #DDE5D9}
.rewo-quotes-tabs::-webkit-scrollbar{display:none}
.rewo-qtab{padding:7px 13px;border-radius:20px;font-size:12px;font-weight:600;border:1.5px solid #DDE5D9;cursor:pointer;white-space:nowrap;transition:.1s;background:#fff;color:#6B7A70;margin-bottom:8px}
.rewo-qtab.active{background:#2C5F2D;color:#fff;border-color:#2C5F2D}
.rewo-qtab:hover:not(.active){border-color:#54A924;color:#2C5F2D}

.rewo-quotes-pipeline{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}
.rewo-pipe-col{flex:0 0 180px;background:#F7F9F6;border:1.5px solid #DDE5D9;border-radius:12px;overflow:hidden}
.rewo-pipe-hdr{padding:9px 12px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-family:var(--rewo-mono,'Space Mono',monospace);border-bottom:1px solid #DDE5D9;display:flex;justify-content:space-between;align-items:center}
.rewo-pipe-cnt{font-size:11px;color:#6B7A70;text-transform:none;letter-spacing:0}
.rewo-pipe-cards{padding:8px;display:flex;flex-direction:column;gap:6px;min-height:50px}
.rewo-pipe-card{background:#fff;border:1px solid #DDE5D9;border-radius:8px;padding:8px 10px;cursor:pointer;transition:.1s;text-decoration:none;display:block;color:inherit}
.rewo-pipe-card:hover{border-color:#54A924;box-shadow:0 2px 8px rgba(44,95,45,.1)}
.rewo-pipe-card-title{font-size:12px;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rewo-pipe-card-meta{font-size:10px;color:#6B7A70}
.rewo-pipe-card-amt{font-family:var(--rewo-mono,'Space Mono',monospace);font-weight:700;font-size:12px;color:#2C5F2D;margin-top:4px}

/* Alert */
.rewo-alert-v2{display:flex;gap:8px;align-items:flex-start;padding:9px 12px;border-radius:9px;font-size:12px;margin-bottom:10px}
.rewo-alert-v2.warn{background:#FBF3D6;border:1px solid #e8d990;color:#876b12}
.rewo-alert-v2.ok{background:#E7F2E1;border:1px solid #c8e6b6;color:#2C5F2D}
.rewo-alert-v2.info{background:#EBF2FC;border:1px solid #bfd6f5;color:#2A4A8E}

/* ══════════════════════════════════════════════════════════════
   KORJAUKSET: hero tausta, nappikoko, lisätyö-tilat
   ══════════════════════════════════════════════════════════════ */

/* 1. Vanha hero: vaihda tumma tausta vaaleaan — hero on widget,
      tumma sopii vain fixed topbar-alueelle */
.rewo-app.ui-v2 .rewo-proj-hero{
  background:#fff !important;
  border:1.5px solid var(--v2-line,#DDE5D9) !important;
  color:var(--v2-ink,#1C2024) !important;
}
.rewo-app.ui-v2 .rewo-proj-hero-info h2{
  color:var(--v2-ink,#1C2024) !important;
}
.rewo-app.ui-v2 .rewo-proj-hero-meta{
  color:var(--v2-muted,#6B7A70) !important;
}
.rewo-app.ui-v2 .rewo-proj-hero-kpi{
  background:var(--v2-paper,#F7F9F6) !important;
  border:1px solid var(--v2-line,#DDE5D9);
}
.rewo-app.ui-v2 .rewo-proj-hero-kpi-val{
  color:var(--v2-ink,#1C2024) !important;
}
.rewo-app.ui-v2 .rewo-proj-hero-kpi-lbl{
  color:var(--v2-muted,#6B7A70) !important;
}

/* 2. Headbtns: pienemmät napit mobiilissa */
@media(max-width:768px){
  .rewo-app.ui-v2 .rewo-headbtns .rewo-btn{
    font-size:12px !important;
    padding:6px 10px !important;
    min-height:36px !important;
  }
  .rewo-app.ui-v2 .rewo-head-l .rewo-h1{
    font-size:18px !important;
  }
}

/* 3. Projekti-hero-v2: isompi näyttö -> pienennä mobiilissa toimintanapit */
@media(max-width:768px){
  .rewo-proj-hero-v2 .rewo-proj-hero-actions .rewo-btn{
    font-size:11px !important;
    padding:5px 9px !important;
    min-height:32px !important;
  }
  .rewo-proj-hero-v2 h2{
    font-size:14px !important;
  }
}

/* 4. Lisätyö-tilabadget */
.rewo-lt-status{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 8px;border-radius:20px;
  font-size:10px;font-weight:700;white-space:nowrap;
}
.rewo-lt-s-luotu    {background:#F0F0F0;color:#555}
.rewo-lt-s-odottaa  {background:#FBF3D6;color:#876b12}
.rewo-lt-s-lahetetty{background:#DCE7F7;color:#2D4F8E}
.rewo-lt-s-hyvaksytty{background:#DDEFCB;color:#356016}
.rewo-lt-s-valmis   {background:#EFF5EB;color:#2C5F2D;border:1px solid #c8e6b6}
.rewo-lt-s-laskutettu{background:#E8E0FB;color:#5B3FBF}

/* 5. Lisätyö-välilehti korttirivit */
.rewo-lt-row-v2{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 0;border-bottom:1px solid var(--v2-line,#DDE5D9);
}
.rewo-lt-row-v2:last-child{border-bottom:none}
.rewo-lt-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:6px;
}
.rewo-lt-dot-luotu    {background:#9CA3AF}
.rewo-lt-dot-odottaa  {background:#F2811D}
.rewo-lt-dot-lahetetty{background:#3B82F6}
.rewo-lt-dot-hyvaksytty{background:#54A924}
.rewo-lt-dot-valmis   {background:#2C5F2D}
.rewo-lt-dot-laskutettu{background:#7C5CD0}

/* Aktiivinen ryhmäotsikko sivupalkissa (projekti ctx-nav) */
.rewo-app.ui-v2 .rewo-sb-gh-active{
  color:var(--v2-accent,#54A924) !important;
  font-weight:700 !important;
}
/* Muokkaa-näkymä toolbar: kompakti */
.rewo-proj-layoutbar{
  display:flex; gap:6px; align-items:center;
  flex-wrap:wrap; padding:6px 14px;
  background:#fff; border-bottom:1px solid var(--v2-line,#DDE5D9);
  font-size:12px;
}
.rewo-proj-layoutbar-hint{
  font-size:11px; color:var(--v2-muted,#6B7A70); flex:1;
}

/* ============================================================
   MODUULISIVUT — 1-palstainen layout + drag-resize lohkot
   v3.200.2 — Velo ERP
   ============================================================ */

/* --- 1. Pakota 1-palstaisuus kaikissa moduulinäkymissä ------- */
/* Ota pois kaikki 2+ -palstaiset ruudukot moduulin pääsisällössä.
   Poikkeukset: työpöytä-canvas, KPI-mittarit (kpigrid), lomakekentit */
.rewo-app.ui-v2 .rewo-main .rewo-grid2,
.rewo-app.ui-v2 .rewo-main .rewo-stats,
.rewo-app.ui-v2 .rewo-main .rewo-stats-3 {
  grid-template-columns: 1fr !important;
}

/* KPI-mittarit saa pysyä monisarakkeisina, mutta max 4 */
.rewo-app.ui-v2 .rewo-main .rewo-kpigrid {
  grid-template-columns: repeat(auto-fill, minmax(160px,1fr)) !important;
}
/* Projektin hero-KPI:t: max rivi 6 -> sopeutetaan */
.rewo-app.ui-v2 .rewo-main .rewo-proj-hero-kpis {
  grid-template-columns: repeat(auto-fill, minmax(140px,1fr)) !important;
}
/* Projektikorttien mini-KPI:t (2 kpl) säilyvät 2-palstaisina */
.rewo-app.ui-v2 .rewo-main .rewo-proj-card-kpis {
  grid-template-columns: 1fr 1fr !important;
}
/* Modal-sisältö (tuntien lisäys jne.) säilyvät 2-palst. */
.rewo-app.ui-v2 .rewo-ahmodal-blocks {
  grid-template-columns: 1fr 1fr;
}
/* Lomakkeen sisäiset 2-palstat (nimi/puhelin jms.) säilyvät */
.rewo-app.ui-v2 .rewo-main .rewo-form-row-2 {
  grid-template-columns: 1fr 1fr;
}

/* --- 2. Moduulikontti ---------------------------------------- */
.rewo-app.ui-v2 .rewo-mod-wrap {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  padding: 4px 0;
}

/* --- 3. Järjestelypalkki -------------------------------------- */
.rewo-app.ui-v2 .rewo-mod-toggle-bar {
  display: flex;
  align-items: center;
  padding: 0 2px 6px;
}
.rewo-app.ui-v2 .rewo-mod-toggle-btn {
  background: none;
  border: 1px solid var(--v2-line, #E6E9E6);
  border-radius: 9px;
  padding: 5px 12px;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  color: var(--v2-muted, #6B7A70);
  cursor: pointer;
  user-select: none;
  transition: background .12s, color .12s, border-color .12s;
}
.rewo-app.ui-v2 .rewo-mod-toggle-btn:hover {
  background: var(--v2-panel, #EFF5EB);
  border-color: var(--v2-accent, #54A924);
  color: var(--v2-ink, #1C2024);
}
.rewo-app.ui-v2 .rewo-mod-toggle-btn.is-active {
  background: var(--v2-accent, #54A924);
  color: #fff;
  border-color: var(--v2-accent, #54A924);
}

/* --- 4. Paneeli (lohkojen wrapper) --------------------------- */
.rewo-app.ui-v2 .rewo-mod-panel {
  position: relative;
  border: 1px solid var(--v2-line, #E6E9E6);
  border-radius: 14px;
  background: #fff;
  box-sizing: border-box;
  overflow: hidden;
  transition: box-shadow .15s ease;
}
.rewo-app.ui-v2 .rewo-mod-panel:hover {
  box-shadow: 0 4px 14px rgba(20,40,30,.07);
}
.rewo-app.ui-v2 .rewo-mod-panel.is-resizing {
  box-shadow: 0 10px 32px rgba(20,40,30,.18);
  border-color: var(--v2-accent, #54A924);
  user-select: none;
}

/* Poista kortin oma border/radius kun se on panelin sisällä */
.rewo-app.ui-v2 .rewo-mod-panel .rewo-mod-wrapped {
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  background: transparent !important;
}

/* --- 5. Vetokahva (piilotettu oletuksena, näkyy järjestelytilassa) */
.rewo-app.ui-v2 .rewo-mod-grip {
  display: none; /* oletuksena piilotettu */
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  cursor: grab;
  user-select: none;
  border-bottom: 1px solid var(--v2-line, #E6E9E6);
  background: linear-gradient(180deg, #fff, #FBFCFA);
  min-height: 34px;
}
.rewo-app.ui-v2 .rewo-mod-grip.is-visible {
  display: flex; /* näkyy kun järjestelytila päällä */
}
.rewo-app.ui-v2 .rewo-mod-grip:active { cursor: grabbing; }
.rewo-app.ui-v2 .rewo-mod-grip-dots {
  font-size: 13px;
  color: var(--v2-muted, #6B7A70);
  flex: 0 0 auto;
  letter-spacing: -1px;
}
.rewo-app.ui-v2 .rewo-mod-grip-t {
  flex: 1;
  font-family: Archivo, sans-serif;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--v2-ink, #1C2024);
}
.rewo-app.ui-v2 .rewo-mod-collapse {
  background: none;
  border: none;
  font-size: 10px;
  color: var(--v2-muted, #6B7A70);
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 5px;
  flex: 0 0 auto;
  line-height: 1;
  transition: background .1s;
}
.rewo-app.ui-v2 .rewo-mod-collapse:hover {
  background: var(--v2-panel, #EFF5EB);
  color: var(--v2-ink, #1C2024);
}

/* --- 6. Paneelin body (sisältö) ------------------------------ */
.rewo-app.ui-v2 .rewo-mod-body {
  overflow: hidden;
  min-height: 0;
  transition: height .14s cubic-bezier(.4,0,.2,1);
  box-sizing: border-box;
}

/* Romahdus */
.rewo-app.ui-v2 .rewo-mod-panel.is-collapsed .rewo-mod-body {
  height: 0 !important;
  overflow: hidden;
}
.rewo-app.ui-v2 .rewo-mod-panel.is-collapsed .rewo-mod-resize {
  display: none;
}
/* Grip näkyy aina jos paneeli romahdutettu (jotta voi laajentaa) */
.rewo-app.ui-v2 .rewo-mod-panel.is-collapsed .rewo-mod-grip {
  display: flex !important;
  border-bottom: none;
  background: var(--v2-panel, #EFF5EB);
}
.rewo-app.ui-v2 .rewo-mod-panel.is-collapsed .rewo-mod-grip-dots {
  opacity: .4;
}

/* --- 7. Venytyskulma ------------------------------------------ */
.rewo-app.ui-v2 .rewo-mod-resize {
  position: absolute;
  right: 1px;
  bottom: 1px;
  width: 22px;
  height: 22px;
  cursor: ns-resize; /* pystysuora venytys */
  z-index: 10;
  /* Kolme vaakaviivaa → "vedä alareunasta" -indikaattori */
  background:
    linear-gradient(
      180deg,
      transparent 30%, var(--v2-line,#E6E9E6) 30%, var(--v2-line,#E6E9E6) 38%,
      transparent 38%, transparent 54%, var(--v2-line,#E6E9E6) 54%, var(--v2-line,#E6E9E6) 62%,
      transparent 62%, transparent 78%, var(--v2-line,#E6E9E6) 78%, var(--v2-line,#E6E9E6) 86%,
      transparent 86%
    );
  opacity: .5;
  border-radius: 0 0 13px 0;
  transition: opacity .12s;
}
.rewo-app.ui-v2 .rewo-mod-panel:hover .rewo-mod-resize {
  opacity: 1;
}
.rewo-app.ui-v2 .rewo-mod-panel.is-resizing .rewo-mod-resize {
  opacity: 1;
  background:
    linear-gradient(
      180deg,
      transparent 30%, var(--v2-accent,#54A924) 30%, var(--v2-accent,#54A924) 38%,
      transparent 38%, transparent 54%, var(--v2-accent,#54A924) 54%, var(--v2-accent,#54A924) 62%,
      transparent 62%, transparent 78%, var(--v2-accent,#54A924) 78%, var(--v2-accent,#54A924) 86%,
      transparent 86%
    );
}

/* --- 8. Drag ghost & placeholder ----------------------------- */
.rewo-mod-ghost {
  border: 1px solid var(--v2-accent, #54A924) !important;
  border-radius: 14px !important;
  background: #fff !important;
}
.rewo-mod-placeholder {
  border: 2px dashed var(--v2-accent, #54A924);
  border-radius: 14px;
  background: rgba(84,169,36,.05);
  box-sizing: border-box;
  min-height: 40px;
  transition: height .1s;
}

/* --- 9. Push-animaatio väistäville lohkoille ----------------- */
.rewo-mod-panel.rewo-mod-push {
  transition: margin-top .16s cubic-bezier(.4,0,.2,1);
}

/* --- 10. Järjestelytila: korosta raahattavat paneelit --------- */
.rewo-mod-arrange .rewo-mod-panel {
  border-color: var(--v2-line, #E6E9E6);
  transition: border-color .12s, box-shadow .12s;
}
.rewo-mod-arrange .rewo-mod-panel:hover {
  border-color: var(--v2-accent, #54A924);
  box-shadow: 0 2px 12px rgba(84,169,36,.15);
}
.rewo-mod-arrange .rewo-mod-grip.is-visible {
  background: linear-gradient(180deg, rgba(84,169,36,.06), rgba(84,169,36,.02));
  border-bottom-color: rgba(84,169,36,.3);
}

/* --- 11. Mobiili (<680px): disable drag, säilytä resize ------- */
@media (max-width:680px) {
  .rewo-app.ui-v2 .rewo-mod-grip {
    cursor: default !important;
  }
  .rewo-app.ui-v2 .rewo-mod-resize {
    width: 32px;
    height: 32px;
  }
}

/* --- 12. Varmista ettei kortit vuoda sivulle ------------------ */
.rewo-app.ui-v2 .rewo-mod-panel .rewo-card {
  max-width: 100%;
  box-sizing: border-box;
}
.rewo-app.ui-v2 .rewo-mod-panel table {
  max-width: 100%;
}

/* ============================================================
   PROJEKTILOHKOT — 1-palstainen + resize-tuki  v3.200.2
   ============================================================ */

/* Pakota aina 1 palsta (kumoaa app.css cols-2 / cols-3) */
.rewo-app.ui-v2 .rewo-proj-cols { grid-template-columns: 1fr !important; }

/* Resize-tila: korostettu lohko */
.rewo-app.ui-v2 .rewo-proj-blocks.is-editing .rewo-pl-drag {
  position: relative;
  overflow: visible;
  border-radius: 12px;
  transition: box-shadow .12s;
}
.rewo-app.ui-v2 .rewo-proj-blocks.is-editing .rewo-pl-drag:hover {
  box-shadow: 0 2px 14px rgba(84,169,36,.18);
}
.rewo-app.ui-v2 .rewo-proj-blocks.is-editing .rewo-pl-resizing {
  box-shadow: 0 6px 24px rgba(84,169,36,.28) !important;
  outline: 2px solid var(--v2-accent, #54A924) !important;
}

/* Resize-kahva näkyy hover-tilassa (JS asettaa opacity) */
.rewo-app.ui-v2 .rewo-pl-resize {
  touch-action: none;
}

/* Projektikorttilistan pakkaus täydelle leveydelle */
.rewo-app.ui-v2 .rewo-proj-list-wrap {
  width: 100%;
  box-sizing: border-box;
}
.rewo-app.ui-v2 .rewo-proj-cards {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
@media (min-width: 900px) {
  .rewo-app.ui-v2 .rewo-proj-cards {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  }
}

/* ============================================================
   LISÄTYÖ-LOMAKE — live-haku combobox + korjaukset  v3.200.4
   ============================================================ */

/* Combobox-wrapper */
.rewo-app.ui-v2 .rewo-lt-combo {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 14px;
}
.rewo-app.ui-v2 .rewo-lt-combo .rewo-f-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--v2-ink, #1C2024);
}
.rewo-app.ui-v2 .rewo-lt-combo-box {
  position: relative;
}
.rewo-app.ui-v2 .rewo-lt-combo-input {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 12px;
  border: 1px solid var(--v2-line, #E6E9E6);
  border-radius: 10px;
  font: inherit;
  font-size: 14px;
  color: var(--v2-ink, #1C2024);
  background: #fff;
  transition: border-color .12s, box-shadow .12s;
  outline: none;
}
.rewo-app.ui-v2 .rewo-lt-combo-input:focus {
  border-color: var(--v2-accent, #54A924);
  box-shadow: 0 0 0 3px rgba(84,169,36,.14);
}

/* Dropdown-lista */
.rewo-app.ui-v2 .rewo-lt-combo-drop {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid var(--v2-line, #E6E9E6);
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(10,25,18,.14);
  max-height: 220px;
  overflow-y: auto;
  z-index: 10000;
}
.rewo-app.ui-v2 .rewo-lt-drop-item {
  padding: 9px 14px;
  font-size: 13.5px;
  color: var(--v2-ink, #1C2024);
  cursor: pointer;
  border-bottom: 1px solid var(--v2-line, #E6E9E6);
  transition: background .08s;
}
.rewo-app.ui-v2 .rewo-lt-drop-item:last-child { border-bottom: none; }
.rewo-app.ui-v2 .rewo-lt-drop-item:hover,
.rewo-app.ui-v2 .rewo-lt-drop-item.is-active {
  background: var(--v2-panel, #EFF5EB);
  color: var(--v2-brand, #2C5F2D);
}

/* Valittu tekijä -näyttö */
.rewo-app.ui-v2 .rewo-lt-combo-selected {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding: 7px 12px;
  background: var(--v2-panel, #EFF5EB);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--v2-brand, #2C5F2D);
}
.rewo-app.ui-v2 .rewo-lt-sel-clear {
  margin-left: auto;
  background: none;
  border: none;
  font-size: 13px;
  color: var(--v2-muted, #6B7A70);
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 4px;
  line-height: 1;
}
.rewo-app.ui-v2 .rewo-lt-sel-clear:hover { color: var(--v2-neg, #C0392B); }

/* Lightbox: varmista että formfootin nappi näkyy kokonaan */
.rewo-app.ui-v2 .rewo-lb-panel .rewo-formfoot {
  position: static !important;
  background: transparent !important;
  padding-bottom: 0 !important;
}
.rewo-app.ui-v2 .rewo-lb-panel .rewo-formfoot .rewo-btn {
  width: auto !important;
}

/* ============================================================
   GLOBAALI SELECT → COMBOBOX  v3.200.5
   ============================================================ */

.rewo-app.ui-v2 .rewo-sc-wrap {
  position: relative;
  display: block;
  width: 100%;
}
.rewo-app.ui-v2 .rewo-sc-input {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 32px 8px 11px; /* oikealla tilaa nuolelle */
  border: 1px solid var(--v2-line, #E6E9E6);
  border-radius: 9px;
  font: inherit;
  font-size: 13.5px;
  color: var(--v2-ink, #1C2024);
  background: #fff;
  outline: none;
  transition: border-color .12s, box-shadow .12s;
  cursor: text;
  line-height: 1.4;
}
.rewo-app.ui-v2 .rewo-sc-input:focus {
  border-color: var(--v2-accent, #54A924);
  box-shadow: 0 0 0 3px rgba(84,169,36,.13);
}
.rewo-app.ui-v2 .rewo-sc-arrow {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: auto;
  cursor: pointer;
  color: var(--v2-muted, #6B7A70);
  font-size: 12px;
  user-select: none;
  line-height: 1;
}
.rewo-app.ui-v2 .rewo-sc-drop {
  position: absolute;
  top: calc(100% + 3px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid var(--v2-line, #E6E9E6);
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(10,25,18,.13);
  max-height: 240px;
  overflow-y: auto;
  z-index: 100050; /* yli lightboxin */
  overscroll-behavior: contain;
}
.rewo-app.ui-v2 .rewo-sc-item {
  padding: 8px 13px;
  font-size: 13.5px;
  color: var(--v2-ink, #1C2024);
  cursor: pointer;
  border-bottom: 1px solid rgba(0,0,0,.04);
  transition: background .07s;
  line-height: 1.35;
}
.rewo-app.ui-v2 .rewo-sc-item:last-child { border-bottom: none; }
.rewo-app.ui-v2 .rewo-sc-item:hover,
.rewo-app.ui-v2 .rewo-sc-item.is-active {
  background: var(--v2-panel, #EFF5EB);
}
.rewo-app.ui-v2 .rewo-sc-item.is-selected {
  font-weight: 600;
  color: var(--v2-brand, #2C5F2D);
}
.rewo-app.ui-v2 .rewo-sc-empty {
  padding: 10px 13px;
  font-size: 13px;
  color: var(--v2-muted, #6B7A70);
  font-style: italic;
}

/* Varmista että label + combo-wrap istuvat normaaliin .rewo-f:ään */
.rewo-app.ui-v2 .rewo-f .rewo-sc-wrap { margin-top: 0; }

/* Lightboxin sisällä: drop näkyy lightboxin yli */
.rewo-app.ui-v2 .rewo-lb-panel .rewo-sc-drop { z-index: 100060; }

/* Mobiili: hieman isommat kosketuskohteet */
@media (max-width: 680px) {
  .rewo-app.ui-v2 .rewo-sc-item { padding: 11px 13px; }
  .rewo-app.ui-v2 .rewo-sc-input { padding: 10px 32px 10px 11px; }
}

/* ============================================================
   PROJEKTILISTA — Design D (talousviiva + aikataulu + kate)
   v3.200.6
   ============================================================ */

.rewo-app.ui-v2 .rewo-proj-list-d {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  background: var(--v2-panel, #F3F6F2);
}

/* Projektirivi */
.rewo-app.ui-v2 .rewo-pd-row {
  display: flex;
  background: #fff;
  border-radius: 13px;
  border: 1px solid var(--v2-line, #E2E8DF);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: box-shadow .15s, border-color .15s;
  box-shadow: 0 1px 4px rgba(14,36,24,.06);
}
.rewo-app.ui-v2 .rewo-pd-row:hover {
  box-shadow: 0 4px 20px rgba(14,36,24,.13);
  border-color: #c8d4c5;
}

/* Väriviiva */
.rewo-app.ui-v2 .rewo-pd-stripe {
  width: 4px;
  flex-shrink: 0;
}

.rewo-app.ui-v2 .rewo-pd-body { flex: 1; min-width: 0; }

/* Yläosa */
.rewo-app.ui-v2 .rewo-pd-top {
  padding: 11px 14px 7px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.rewo-app.ui-v2 .rewo-pd-left { min-width: 0; }
.rewo-app.ui-v2 .rewo-pd-num {
  font-size: 10px;
  font-weight: 700;
  color: var(--v2-muted, #6B7A70);
  letter-spacing: .07em;
  text-transform: uppercase;
  margin-bottom: 3px;
}
.rewo-app.ui-v2 .rewo-pd-name {
  font-family: Archivo, sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #0E2418;
  line-height: 1.3;
}
.rewo-app.ui-v2 .rewo-pd-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 6px;
  white-space: nowrap;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-top: 2px;
}

/* Talousviiva — tumma palkki */
.rewo-app.ui-v2 .rewo-pd-finance {
  background: #0A1C10;
  padding: 8px 14px;
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: nowrap;
  overflow: hidden;
}
.rewo-app.ui-v2 .rewo-pd-fin-col {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding-right: 12px;
  flex-shrink: 0;
}
.rewo-app.ui-v2 .rewo-pd-fin-sep {
  width: 1px;
  height: 28px;
  background: rgba(255,255,255,.1);
  margin-right: 12px;
  flex-shrink: 0;
}
.rewo-app.ui-v2 .rewo-pd-fin-lbl {
  font-size: 9px;
  font-weight: 700;
  color: rgba(255,255,255,.4);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.rewo-app.ui-v2 .rewo-pd-fin-val {
  font-family: 'Space Mono', monospace;
  font-size: 12.5px;
  font-weight: 700;
  color: #fff;
}
.rewo-app.ui-v2 .rewo-pd-fin-ok   { color: #9DE054; }
.rewo-app.ui-v2 .rewo-pd-fin-warn { color: #F4C26A; }

/* Kate-palkki */
.rewo-app.ui-v2 .rewo-pd-kate-wrap {
  flex: 1;
  min-width: 80px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.rewo-app.ui-v2 .rewo-pd-kate-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.rewo-app.ui-v2 .rewo-pd-kate-val {
  font-family: 'Space Mono', monospace;
  font-size: 11.5px;
  font-weight: 700;
}
.rewo-app.ui-v2 .rewo-pd-kate-track {
  height: 5px;
  background: rgba(255,255,255,.1);
  border-radius: 3px;
  overflow: hidden;
}
.rewo-app.ui-v2 .rewo-pd-kate-fill {
  height: 100%;
  border-radius: 3px;
  transition: width .4s;
}

/* Aikataulu-rivi */
.rewo-app.ui-v2 .rewo-pd-sched {
  padding: 7px 14px 10px;
  display: flex;
  align-items: center;
  gap: 9px;
  background: #fff;
}
.rewo-app.ui-v2 .rewo-pd-sched-dates {
  font-size: 11px;
  color: var(--v2-muted, #6B7A70);
  white-space: nowrap;
  flex-shrink: 0;
}
.rewo-app.ui-v2 .rewo-pd-sched-track {
  flex: 1;
  height: 4px;
  background: var(--v2-line, #E2E8DF);
  border-radius: 2px;
  position: relative;
  overflow: visible;
}
.rewo-app.ui-v2 .rewo-pd-sched-fill {
  height: 100%;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--v2-brand,#2C5F2D), var(--v2-accent,#54A924));
}
.rewo-app.ui-v2 .rewo-pd-sched-today {
  position: absolute;
  top: -3px;
  width: 2px;
  height: 10px;
  background: #F2811D;
  border-radius: 1px;
}
.rewo-app.ui-v2 .rewo-pd-sched-pct {
  font-size: 11px;
  font-weight: 700;
  color: var(--v2-muted, #6B7A70);
  white-space: nowrap;
  flex-shrink: 0;
  font-family: 'Space Mono', monospace;
}

/* Mobiili: piilota jotkut talouskolumnit */
@media (max-width: 500px) {
  .rewo-app.ui-v2 .rewo-pd-fin-col:nth-child(3),
  .rewo-app.ui-v2 .rewo-pd-fin-sep:nth-child(4) { display: none; }
}

/* ============================================================
   TARJOUSNÄKYMÄ — Design D  v3.200.7
   ============================================================ */

/* Hero */
.rewo-app.ui-v2 .rewo-qd-hero {
  background: #0A1C10;
  padding: 14px 20px 0;
}
.rewo-app.ui-v2 .rewo-qd-hero-top {
  display: flex; align-items: flex-start;
  justify-content: space-between; gap: 12px; margin-bottom: 10px;
}
.rewo-app.ui-v2 .rewo-qd-eyebrow {
  font-size: 10px; font-weight: 700; color: rgba(255,255,255,.4);
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px;
}
.rewo-app.ui-v2 .rewo-qd-hero-title {
  font-family: Archivo, sans-serif; font-weight: 900;
  font-size: 20px; color: #fff; letter-spacing: -.3px;
}

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

/* Kate+voimassaolo metrit */
.rewo-app.ui-v2 .rewo-qd-meters {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  padding: 12px 0 0;
}
.rewo-app.ui-v2 .rewo-qd-meter { display: flex; flex-direction: column; gap: 5px; }
.rewo-app.ui-v2 .rewo-qd-m-header { display: flex; justify-content: space-between; align-items: center; }
.rewo-app.ui-v2 .rewo-qd-m-lbl {
  font-size: 9.5px; font-weight: 700; color: rgba(255,255,255,.4);
  text-transform: uppercase; letter-spacing: .06em;
}
.rewo-app.ui-v2 .rewo-qd-m-track {
  height: 7px; background: rgba(255,255,255,.1); border-radius: 4px;
  overflow: hidden; position: relative;
}

/* Konversioputki */
.rewo-app.ui-v2 .rewo-qd-pipe {
  display: grid; grid-template-columns: repeat(5,1fr);
  gap: 1px; background: rgba(255,255,255,.06); margin-top: 10px;
}
.rewo-app.ui-v2 .rewo-qd-pipe-step {
  background: rgba(255,255,255,.04); padding: 8px 10px 0;
  text-align: center; text-decoration: none;
  border-top: 3px solid transparent;
  transition: background .12s, border-top-color .15s;
  display: block;
}
.rewo-app.ui-v2 .rewo-qd-pipe-step:hover { background: rgba(255,255,255,.08); }
.rewo-app.ui-v2 .rewo-qd-pipe-step--on {
  background: rgba(84,169,36,.12) !important;
  border-top-color: var(--v2-accent, #54A924) !important;
}
.rewo-app.ui-v2 .rewo-qd-pipe-num {
  font-size: 8.5px; font-weight: 700; color: rgba(255,255,255,.3);
  text-transform: uppercase; letter-spacing: .07em;
}
.rewo-app.ui-v2 .rewo-qd-pipe-name {
  font-size: 11.5px; font-weight: 700; color: rgba(255,255,255,.65); margin-top: 1px; white-space: nowrap;
}
.rewo-app.ui-v2 .rewo-qd-pipe-step--on .rewo-qd-pipe-name { color: #fff; }
.rewo-app.ui-v2 .rewo-qd-pipe-count {
  font-family: 'Space Mono', monospace; font-size: 10px;
  color: rgba(255,255,255,.3); margin-top: 2px; white-space: nowrap;
}
.rewo-app.ui-v2 .rewo-qd-pipe-step--on .rewo-qd-pipe-count { color: var(--v2-accent, #54A924); }
.rewo-app.ui-v2 .rewo-qd-pipe-bar { height: 3px; background: rgba(255,255,255,.08); margin-top: 8px; overflow: hidden; }
.rewo-app.ui-v2 .rewo-qd-pipe-bar-fill { height: 100%; }

/* Suodattimet */
.rewo-app.ui-v2 .rewo-qd-filters {
  display: flex; gap: 5px; padding: 10px 20px;
  background: var(--v2-paper, #F9FBF8); border-bottom: 1px solid var(--v2-line, #E2E8DF);
  overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.rewo-app.ui-v2 .rewo-qd-fchip {
  padding: 5px 12px; border-radius: 99px;
  border: 1.5px solid var(--v2-line, #E2E8DF); background: #fff;
  font-size: 12px; font-weight: 600; color: var(--v2-muted, #6B7A70);
  cursor: pointer; white-space: nowrap; transition: all .12s; flex-shrink: 0;
  text-decoration: none; display: inline-flex; align-items: center; gap: 5px;
}
.rewo-app.ui-v2 .rewo-qd-fchip:hover { border-color: var(--v2-brand, #2C5F2D); color: var(--v2-brand, #2C5F2D); }
.rewo-app.ui-v2 .rewo-qd-fchip--on {
  border-color: var(--v2-brand, #2C5F2D);
  background: rgba(44,95,45,.07); color: var(--v2-brand, #2C5F2D);
}
.rewo-app.ui-v2 .rewo-qd-fchip span {
  background: var(--v2-panel, #F3F6F2); padding: 1px 6px;
  border-radius: 99px; font-size: 10px;
}
.rewo-app.ui-v2 .rewo-qd-fchip--on span { background: rgba(44,95,45,.15); }

/* Tarjousrivi-lista */
.rewo-app.ui-v2 .rewo-qd-list {
  display: flex; flex-direction: column; gap: 10px;
  padding: 14px; background: var(--v2-panel, #F3F6F2);
}
.rewo-app.ui-v2 .rewo-qd-row {
  display: flex; background: #fff; border-radius: 13px;
  border: 1px solid var(--v2-line, #E2E8DF); overflow: hidden;
  text-decoration: none; color: inherit; cursor: pointer;
  transition: box-shadow .15s, border-color .15s;
  box-shadow: 0 1px 4px rgba(14,36,24,.06);
}
.rewo-app.ui-v2 .rewo-qd-row:hover {
  box-shadow: 0 4px 20px rgba(14,36,24,.13); border-color: #c8d4c5;
}
.rewo-app.ui-v2 .rewo-qd-stripe { width: 4px; flex-shrink: 0; }
.rewo-app.ui-v2 .rewo-qd-body   { flex: 1; min-width: 0; }

/* Yläosa */
.rewo-app.ui-v2 .rewo-qd-top {
  padding: 11px 14px 7px; display: flex;
  align-items: flex-start; justify-content: space-between; gap: 10px;
}
.rewo-app.ui-v2 .rewo-qd-top-left { min-width: 0; flex: 1; }
.rewo-app.ui-v2 .rewo-qd-nro {
  font-size: 10px; font-weight: 700; color: var(--v2-muted, #6B7A70);
  letter-spacing: .07em; text-transform: uppercase; margin-bottom: 3px;
}
.rewo-app.ui-v2 .rewo-qd-asiakas {
  font-family: Archivo, sans-serif; font-weight: 700;
  font-size: 14.5px; color: #0E2418; line-height: 1.3;
}
.rewo-app.ui-v2 .rewo-qd-kohde { font-size: 12px; color: var(--v2-muted, #6B7A70); margin-top: 2px; }
.rewo-app.ui-v2 .rewo-qd-badge {
  font-size: 10px; font-weight: 700; padding: 3px 9px;
  border-radius: 6px; white-space: nowrap; flex-shrink: 0;
  text-transform: uppercase; letter-spacing: .04em; margin-top: 2px;
  align-self: flex-start;
}

/* Talousviiva */
.rewo-app.ui-v2 .rewo-qd-finance {
  background: #0A1C10; padding: 8px 14px;
  display: flex; align-items: center; gap: 0; flex-wrap: nowrap; overflow: hidden;
}
.rewo-app.ui-v2 .rewo-qd-fin-col { display: flex; flex-direction: column; gap: 1px; padding-right: 12px; flex-shrink: 0; }
.rewo-app.ui-v2 .rewo-qd-fin-sep { width: 1px; height: 26px; background: rgba(255,255,255,.1); margin-right: 12px; flex-shrink: 0; }
.rewo-app.ui-v2 .rewo-qd-fin-lbl { font-size: 9px; font-weight: 700; color: rgba(255,255,255,.4); letter-spacing: .06em; text-transform: uppercase; }
.rewo-app.ui-v2 .rewo-qd-fin-val { font-family: 'Space Mono', monospace; font-size: 13px; font-weight: 700; color: #fff; }

/* Voittotodennäköisyys */
.rewo-app.ui-v2 .rewo-qd-winwrap { flex: 1; min-width: 70px; display: flex; flex-direction: column; gap: 4px; }
.rewo-app.ui-v2 .rewo-qd-win-header { display: flex; justify-content: space-between; align-items: center; }
.rewo-app.ui-v2 .rewo-qd-win-val { font-family: 'Space Mono', monospace; font-size: 11.5px; font-weight: 700; }
.rewo-app.ui-v2 .rewo-qd-win-track { height: 5px; background: rgba(255,255,255,.1); border-radius: 3px; overflow: hidden; }
.rewo-app.ui-v2 .rewo-qd-win-fill { height: 100%; border-radius: 3px; }

/* Voimassaolo-rivi */
.rewo-app.ui-v2 .rewo-qd-validity {
  padding: 7px 14px 10px; display: flex;
  align-items: center; gap: 9px; background: #fff;
}
.rewo-app.ui-v2 .rewo-qd-val-lbl { font-size: 11px; color: var(--v2-muted, #6B7A70); white-space: nowrap; flex-shrink: 0; }
.rewo-app.ui-v2 .rewo-qd-val-track { flex: 1; height: 4px; background: var(--v2-line, #E2E8DF); border-radius: 2px; overflow: visible; position: relative; }
.rewo-app.ui-v2 .rewo-qd-val-fill { height: 100%; border-radius: 2px; }
.rewo-app.ui-v2 .rewo-qd-val-now { position: absolute; top: -3px; width: 2px; height: 10px; background: #F2811D; border-radius: 1px; }
.rewo-app.ui-v2 .rewo-qd-val-pct { font-size: 11px; font-weight: 700; white-space: nowrap; flex-shrink: 0; font-family: 'Space Mono', monospace; }

/* Vaihenavigaatio detalji-hero:ssa */
.rewo-app.ui-v2 .rewo-qd-steps {
  display: flex; background: #0A1C10; overflow-x: auto; scrollbar-width: none;
}
.rewo-app.ui-v2 .rewo-qd-steps::-webkit-scrollbar { display: none; }
.rewo-app.ui-v2 .rewo-qd-step {
  flex: 1; min-width: 80px; padding: 9px 10px 0; cursor: pointer;
  border-top: 3px solid transparent;
  border-right: 1px solid rgba(255,255,255,.06); text-align: center;
  transition: background .12s, border-top-color .15s;
  text-decoration: none; display: block;
}
.rewo-app.ui-v2 .rewo-qd-step:last-child { border-right: none; }
.rewo-app.ui-v2 .rewo-qd-step:hover { background: rgba(255,255,255,.06); }
.rewo-app.ui-v2 .rewo-qd-step--on {
  background: rgba(84,169,36,.12) !important;
  border-top-color: var(--v2-accent, #54A924) !important;
}
.rewo-app.ui-v2 .rewo-qd-step-num { font-size: 8.5px; font-weight: 700; color: rgba(255,255,255,.3); text-transform: uppercase; letter-spacing: .07em; }
.rewo-app.ui-v2 .rewo-qd-step-name { font-size: 11.5px; font-weight: 700; color: rgba(255,255,255,.65); margin-top: 1px; white-space: nowrap; }
.rewo-app.ui-v2 .rewo-qd-step--on .rewo-qd-step-name { color: #fff; }
.rewo-app.ui-v2 .rewo-qd-step-sub { font-family: 'Space Mono', monospace; font-size: 10.5px; color: rgba(255,255,255,.3); margin-top: 2px; white-space: nowrap; }
.rewo-app.ui-v2 .rewo-qd-step--on .rewo-qd-step-sub { color: var(--v2-accent, #54A924); }
.rewo-app.ui-v2 .rewo-qd-step-bar { height: 3px; background: rgba(255,255,255,.08); margin-top: 8px; overflow: hidden; }
.rewo-app.ui-v2 .rewo-qd-step-bar-fill { height: 100%; background: var(--v2-accent, #54A924); }

/* Mobiili */
@media (max-width: 600px) {
  .rewo-app.ui-v2 .rewo-qd-kpis { grid-template-columns: repeat(2,1fr); }
  .rewo-app.ui-v2 .rewo-qd-pipe { grid-template-columns: repeat(3,1fr); }
  .rewo-app.ui-v2 .rewo-qd-meters { grid-template-columns: 1fr; }
  .rewo-app.ui-v2 .rewo-qd-fin-col:nth-child(5),
  .rewo-app.ui-v2 .rewo-qd-fin-sep:nth-child(6) { display: none; }
}

/* ══════════════════════════════════════════════════
   OSTOLASKUT — UI-korjaukset v3.3.9
   ══════════════════════════════════════════════════ */

/* Laskun kuva — skaalautuu laitteen leveyteen */
.rewo-po-pdfwrap {
  border: 1px solid #E4E8E2;
  border-radius: 10px;
  overflow: hidden;
  background: #1A1F25;
  margin: 6px 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.rewo-po-pdf {
  width: 100% !important;
  max-width: 100% !important;
  height: clamp(300px, 55vw, 560px);
  border: 0;
  display: block;
}
/* Laskun kuva -osio img-pohjainen näyttö (jos iframe ei toimi) */
.rewo-po-imgwrap {
  width: 100%;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #E4E8E2;
  margin: 6px 0;
}
.rewo-po-imgwrap img {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  display: block;
  cursor: zoom-in;
}
@media (max-width: 600px) {
  .rewo-po-pdf { height: clamp(240px, 80vw, 420px); }
}

/* Napit — yhtenäinen tyyli (korvaa vanhat rewo-btn-ghost erikoisversiot) */
.rewo-po-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #1E2D3D;
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 11px 18px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  transition: background .12s;
}
.rewo-po-btn-primary:hover { background: #253545; color: #fff; }
.rewo-po-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #F0F3F7;
  color: #1C2220;
  border: 1px solid #DDE3EA;
  border-radius: 9px;
  padding: 9px 15px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background .12s;
}
.rewo-po-btn-secondary:hover { background: #E4EEF4; color: #1C2220; }

/* Tuoterekisteri + Analysoi — saman tyylinen rivi */
.rewo-po-actions-row {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin: 8px 0 4px;
}

/* Live-hakukenttä (projekti + kustannuspaikka) */
.rewo-livesearch-wrap {
  position: relative;
  width: 100%;
}
.rewo-livesearch-input {
  width: 100%;
  border: 1px solid #DDE3EA;
  border-radius: 9px;
  padding: 9px 13px 9px 36px;
  font: inherit;
  font-size: 13.5px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7' stroke='%236B7A70' stroke-width='2'/%3E%3Cpath d='m16.5 16.5 4 4' stroke='%236B7A70' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 10px center;
  outline: none;
  transition: border-color .12s, box-shadow .12s;
  box-sizing: border-box;
}
.rewo-livesearch-input:focus {
  border-color: #8B9BA8;
  box-shadow: 0 0 0 3px rgba(139,155,168,.15);
}
.rewo-livesearch-dd {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: #fff;
  border: 1px solid #DDE3EA;
  border-radius: 11px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  max-height: 240px;
  overflow-y: auto;
  z-index: 500;
}
.rewo-livesearch-dd.on { display: block; }
.rewo-livesearch-dd-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  cursor: pointer;
  font-size: 13px;
  color: #1C2220;
  border-bottom: 1px solid #F0F3F7;
  transition: background .1s;
}
.rewo-livesearch-dd-item:last-child { border-bottom: none; }
.rewo-livesearch-dd-item:hover, .rewo-livesearch-dd-item.focused { background: #F0F3F7; }
.rewo-livesearch-dd-item .lsd-ic { font-size: 15px; flex-shrink: 0; }
.rewo-livesearch-dd-item .lsd-name { font-weight: 700; }
.rewo-livesearch-dd-item .lsd-sub { font-size: 11px; color: #6B7A70; margin-top: 1px; }
.rewo-livesearch-dd-empty { padding: 12px 14px; font-size: 13px; color: #6B7A70; }

/* Hidden input tallentaa valitun ID:n */
.rewo-livesearch-val { display: none; }

/* Kehitystila-edit-ikonit (kaikki tekstikentät) */
.rewo-dev-edit-btn {
  display: none; /* piilotettu normaalitilassa */
  position: absolute;
  top: 2px; right: 2px;
  width: 22px; height: 22px;
  background: rgba(26,109,181,.15);
  border: 1px solid rgba(26,109,181,.3);
  border-radius: 6px;
  font-size: 12px;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  color: #1A6CB5;
  transition: background .1s;
  line-height: 1;
  padding: 0;
}
.rewo-dev-edit-btn:hover { background: rgba(26,109,181,.25); }
.rewo-app.dev-mode .rewo-dev-field { position: relative; }
.rewo-app.dev-mode .rewo-dev-edit-btn { display: inline-flex; }

/* Kehitystila-palkki (parannettu) */
.rewo-devbar {
  background: linear-gradient(90deg, #F2811D, #E07010);
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  text-align: center;
  padding: 7px 12px;
  position: sticky;
  top: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.rewo-devbar-actions {
  display: flex;
  gap: 6px;
  margin-left: 8px;
}
.rewo-devbar-btn {
  background: rgba(255,255,255,.2);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 7px;
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  cursor: pointer;
  transition: background .12s;
  white-space: nowrap;
}
.rewo-devbar-btn:hover { background: rgba(255,255,255,.3); }
.rewo-devbar-btn.primary { background: rgba(255,255,255,.9); color: #E07010; }
.rewo-devbar-btn.primary:hover { background: #fff; }

/* ══════════════════════════════════════════════════
   OSTOLASKUT — Kohdistus-osio tyylikorjaukset v3.4.1
   ══════════════════════════════════════════════════ */

/* Kohdistus-ruudukko: 1 sarake mobiililla aina */
.rewo-po-assign3 {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  margin-top: 10px !important;
}
@media (min-width: 900px) {
  .rewo-po-assign3 {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
  }
}

/* Otsikot kohdistus-sarakkeille */
.rewo-po-col-l {
  font-size: 11.5px !important;
  font-weight: 700 !important;
  color: #5a6b6a !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
  margin-bottom: 6px !important;
  display: block !important;
}

/* Live-haku kenttä — kohdistus-osiossa täysleveä */
.rewo-po-assign3 .rewo-livesearch-wrap,
.rewo-po-col .rewo-livesearch-wrap {
  width: 100% !important;
}
.rewo-po-assign3 .rewo-livesearch-input,
.rewo-po-col .rewo-livesearch-input {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 42px !important;
  box-sizing: border-box !important;
}

/* Dropdown z-index kohdistus-osiossa */
.rewo-po-assign3 .rewo-livesearch-dd,
.rewo-po-col .rewo-livesearch-dd {
  z-index: 600 !important;
}

/* Alloc-form täysleveä */
.rewo-alloc-form,
.rewo-po-kpform {
  width: 100% !important;
  margin: 0 !important;
}

/* Ostolaskun tietokortit (TOIMITTAJA, LASKUNUMERO jne.) */
.rewo-po-facts {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 !important;
  border: 1px solid #E4E8E2 !important;
  border-radius: 11px !important;
  overflow: hidden !important;
  margin-bottom: 12px !important;
}
.rewo-po-facts > div {
  padding: 10px 13px !important;
  border-bottom: 1px solid #F0F3F0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
.rewo-po-facts > div:nth-last-child(-n+2) {
  border-bottom: none !important;
}
.rewo-po-facts span {
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #6B7A70 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
  display: block !important;
}
.rewo-po-facts b {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #1C2220 !important;
  display: block !important;
}
@media (max-width: 480px) {
  .rewo-po-facts {
    grid-template-columns: 1fr !important;
  }
  .rewo-po-facts > div {
    border-bottom: 1px solid #F0F3F0 !important;
  }
  .rewo-po-facts > div:last-child {
    border-bottom: none !important;
  }
}

/* Tuoterivit-taulukko — mobiilissa kortteina */
.rewo-tp-table.is-cards {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 13px !important;
}
.rewo-tp-table.is-cards thead {
  background: #F7F9FC !important;
}
.rewo-tp-table.is-cards th {
  padding: 7px 10px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #6B7A70 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
  text-align: left !important;
  border-bottom: 2px solid #DDE3EA !important;
}
.rewo-tp-table.is-cards td {
  padding: 9px 10px !important;
  border-bottom: 1px solid #EEF1F4 !important;
  vertical-align: top !important;
}
.rewo-tp-table.is-cards tr:last-child td {
  border-bottom: none !important;
}
@media (max-width: 560px) {
  .rewo-tp-table.is-cards thead { display: none !important; }
  .rewo-tp-table.is-cards tbody tr {
    display: block !important;
    border: 1px solid #E4E8E2 !important;
    border-radius: 10px !important;
    margin-bottom: 8px !important;
    padding: 6px 0 !important;
    overflow: hidden !important;
  }
  .rewo-tp-table.is-cards tbody td {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    border-bottom: 1px solid #F5F6F5 !important;
    padding: 7px 12px !important;
  }
  .rewo-tp-table.is-cards tbody td::before {
    content: attr(data-label) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #6B7A70 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    flex-shrink: 0 !important;
    margin-right: 10px !important;
  }
}

/* Laskun kuva iframe — leveysskaala */
.rewo-po-pdfwrap {
  border: 1px solid #DDE3EA !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: #1A1F25 !important;
  margin: 6px 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.rewo-po-pdf {
  width: 100% !important;
  max-width: 100% !important;
  height: clamp(280px, 55vw, 520px) !important;
  border: 0 !important;
  display: block !important;
  box-sizing: border-box !important;
}
@media (max-width: 480px) {
  .rewo-po-pdf { height: clamp(220px, 80vw, 380px) !important; }
}

/* Kohdistus-osion otsikko "Kohdistus ja käsittely" */
.rewo-card .rewo-tp-cardhead h3 {
  font-size: 15px !important;
  font-weight: 800 !important;
  color: #111418 !important;
}

/* Toiminnot-rivi (Lisää tuoterekisteriin + Analysoi lasku) */
.rewo-po-actions-row {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  padding: 10px 14px !important;
}
.rewo-po-btn-secondary {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  background: #F0F3F7 !important;
  color: #1C2220 !important;
  border: 1px solid #DDE3EA !important;
  border-radius: 9px !important;
  padding: 9px 14px !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  text-decoration: none !important;
  transition: background .12s !important;
  white-space: nowrap !important;
}
.rewo-po-btn-secondary:hover {
  background: #E4EEF4 !important;
  color: #1C2220 !important;
}

/* Kommentit & maininnat -osio */
.rewo-card .ok-comment-area {
  width: 100% !important;
  box-sizing: border-box !important;
  background: #F0F3F7 !important;
  border: 1px solid #DDE3EA !important;
  border-radius: 9px !important;
  padding: 10px 13px !important;
  font: inherit !important;
  font-size: 13px !important;
  resize: vertical !important;
  outline: none !important;
  min-height: 72px !important;
  transition: border-color .12s, box-shadow .12s !important;
}
.rewo-card .ok-comment-area:focus {
  border-color: #8B9BA8 !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(139,155,168,.15) !important;
}

/* ── Ympäristövaihto dropdown (v3.5.16) ── */
.rewo-app.ui-v2 .rewo-tb-env { position:relative; display:inline-flex; align-items:center; }
.rewo-app.ui-v2 .rewo-tb-envbtn {
  display:flex; align-items:center; gap:5px; padding:5px 10px 5px 8px;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18);
  border-radius:8px; color:#fff; font-size:13px; cursor:pointer;
  transition:background .15s; white-space:nowrap; max-width:200px;
}
.rewo-app.ui-v2 .rewo-tb-envbtn:hover { background:rgba(255,255,255,.2); }
.rewo-app.ui-v2 .rewo-tb-envi { font-size:15px; flex-shrink:0; }
.rewo-app.ui-v2 .rewo-tb-envname { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rewo-app.ui-v2 .rewo-tb-envcaret { font-size:11px; opacity:.7; }
.rewo-app.ui-v2 .rewo-tb-envdrop {
  position:absolute; top:calc(100% + 6px); left:0; min-width:240px;
  background:#fff; border-radius:10px; box-shadow:0 8px 32px rgba(0,0,0,.18);
  z-index:99999; overflow:hidden; border:1px solid #e0e6de;
}
.rewo-app.ui-v2 .rewo-tb-envdh {
  padding:8px 14px 4px; font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.06em; color:#7a8079;
}
.rewo-app.ui-v2 .rewo-tb-envdrop a.rewo-tb-envi {
  display:block; padding:9px 14px; color:#1B1F24; font-size:13px;
  text-decoration:none; transition:background .12s; border-top:1px solid #f0f4f0;
}
.rewo-app.ui-v2 .rewo-tb-envdrop a.rewo-tb-envi:hover { background:#EAF4E2; }
.rewo-app.ui-v2 .rewo-tb-envdrop a.rewo-tb-envi.is-cur { font-weight:700; color:#1F5B1E; }

/* Tukipyyntö-nappi headerissa */
.rewo-app.ui-v2 .rewo-tb-tuki {
  position:relative; font-size:18px; padding:4px 8px;
  background:none; border:none; cursor:pointer; color:#fff; text-decoration:none;
}
.rewo-app.ui-v2 .rewo-tb-tuki .rewo-tb-badge {
  position:absolute; top:0; right:0; transform:translate(30%,-20%);
}

/* Avatar-valikossa kuva */
.rewo-app.ui-v2 .rewo-tb-mhead-av { display:flex; flex-shrink:0; }
.rewo-app.ui-v2 .rewo-tb-mhead-av img { width:36px; height:36px; border-radius:50%; object-fit:cover; }

/* Admin console käyttäjälistauksen aktiivinen välilehti */
.rewo-app.ui-v2 .rewo-btn.is-active {
  background:#EAF4E2; color:#1F5B1E; border-color:#1F5B1E;
}

@media(max-width:780px) {
  .rewo-app.ui-v2 .rewo-tb-envname { display:none; }
  .rewo-app.ui-v2 .rewo-tb-envbtn { padding:5px 7px; }
  .rewo-app.ui-v2 .rewo-tb-envcaret { display:none; }
}

/* ── Talentti-embed: valikko ERP-tyyliseksi (v3.5.20) ── */
/* Talentin vaakatabit näyttävät samalta kuin ERP:n sub-navigaatio: pillit accent-korostuksella */
.rewo-app.ui-v2 .rewo-talentti-embed .rewo-tp-tabs{
  display:flex; gap:4px; flex-wrap:wrap; padding:10px 12px; margin:0 0 16px;
  background:#fff; border:1px solid #E2E5DF; border-radius:12px;
  overflow-x:auto; -webkit-overflow-scrolling:touch;
}
.rewo-app.ui-v2 .rewo-talentti-embed .rewo-tp-tabs a{
  display:inline-flex; align-items:center; padding:8px 14px; border-radius:9px;
  font-size:13px; font-weight:600; color:#5C6166; text-decoration:none; white-space:nowrap;
  border-bottom:none; transition:background .12s,color .12s;
}
.rewo-app.ui-v2 .rewo-talentti-embed .rewo-tp-tabs a:hover{ background:#F1F3EF; color:#15181C; }
.rewo-app.ui-v2 .rewo-talentti-embed .rewo-tp-tabs a.is-active,
.rewo-app.ui-v2 .rewo-talentti-embed .rewo-tp-tabs a.on{
  background:#EAF4E2; color:#1F5B1E; border-bottom:none;
}
/* Sub-tabit (rekisterit ym.) samalla logiikalla mutta kevyemmin */
.rewo-app.ui-v2 .rewo-talentti-embed .rewo-tp-subtabs{
  display:flex; gap:4px; flex-wrap:wrap; margin:0 0 14px;
}
.rewo-app.ui-v2 .rewo-talentti-embed .rewo-tp-subtabs a{
  padding:6px 12px; border-radius:8px; font-size:12.5px; font-weight:600;
  color:#5C6166; text-decoration:none; border-bottom:none;
}
.rewo-app.ui-v2 .rewo-talentti-embed .rewo-tp-subtabs a.on{ background:#EAF4E2; color:#1F5B1E; }
/* ERP-asetuslinkki Talentin asetussivulla */
.rewo-app.ui-v2 .rewo-tp-erp-settings-link{
  display:flex; align-items:center; gap:10px; padding:14px 16px; margin-bottom:14px;
  background:linear-gradient(135deg,#EAF4E2,#F4FAEF); border:1px solid #C9E4B8; border-radius:12px;
  font-size:13px; color:#1F5B1E;
}
.rewo-app.ui-v2 .rewo-tp-erp-settings-link a{ color:#1F5B1E; font-weight:700; margin-left:auto; text-decoration:none; white-space:nowrap; }

/* Käyttäjävalikko: ympäristön (yrityksen) nimi nimen alla (v3.5.24) */
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-menv{
  display:flex; align-items:center; gap:6px; margin:2px 8px 8px; padding:6px 10px;
  background:#EAF4E2; color:#1F5B1E; border-radius:8px; font-size:12px; font-weight:600;
  border-bottom:0;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-menv-h{
  font-size:11px; font-weight:800; letter-spacing:.03em; text-transform:uppercase;
  color:#727A82; margin:2px 10px 3px; padding:0;
}
.rewo-app.ui-v2 .rewo-topbar-v3 .rewo-tb-mi.is-cur{ font-weight:700; color:#1F5B1E; }

/* ─────────────────────────────────────────────────────────────
   KRYPTO — salkun omistuskortti & jakauma (v3.5.29)
   Vahva eristys WP-teeman tyyleiltä.
   ───────────────────────────────────────────────────────────── */
.rewo-app.ui-v2 .vd-crypto-hero{
  background:linear-gradient(135deg,#0E2418 0%,#1a3a24 55%,#22512e 100%) !important;
  color:#fff !important; border:0 !important; border-radius:16px !important;
  padding:22px 24px !important; margin:0 0 14px !important;
  box-shadow:0 8px 28px rgba(14,36,24,.28) !important;
}
.rewo-app.ui-v2 .vd-ch-top{display:flex !important;align-items:center !important;justify-content:space-between !important;flex-wrap:wrap !important;gap:8px !important;margin:0 0 6px !important;}
.rewo-app.ui-v2 .vd-ch-title{font-size:15px !important;font-weight:700 !important;color:#fff !important;letter-spacing:.01em !important;}
.rewo-app.ui-v2 .vd-ch-meta{font-size:12px !important;color:#9fd6a8 !important;font-weight:600 !important;}
.rewo-app.ui-v2 .vd-ch-headline{margin:8px 0 18px !important;}
.rewo-app.ui-v2 .vd-ch-big{font-family:Archivo,'Inter',sans-serif !important;font-weight:800 !important;font-size:38px !important;line-height:1.05 !important;color:#fff !important;letter-spacing:-.01em !important;}
.rewo-app.ui-v2 .vd-ch-biglabel{font-size:12.5px !important;color:#9fd6a8 !important;margin-top:4px !important;font-weight:600 !important;}
.rewo-app.ui-v2 .vd-ch-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr)) !important;
  gap:1px !important; background:rgba(255,255,255,.12) !important;
  border-radius:12px !important; overflow:hidden !important;
}
.rewo-app.ui-v2 .vd-ch-kpi{background:rgba(255,255,255,.04) !important;padding:13px 15px !important;}
.rewo-app.ui-v2 .vd-ch-kl{font-size:11px !important;color:#9fd6a8 !important;text-transform:uppercase !important;letter-spacing:.04em !important;margin:0 0 4px !important;font-weight:600 !important;}
.rewo-app.ui-v2 .vd-ch-kv{font-family:Archivo,'Inter',sans-serif !important;font-weight:800 !important;font-size:18px !important;color:#fff !important;line-height:1.1 !important;}
.rewo-app.ui-v2 .vd-ch-kv.pos{color:#7ee89a !important;}
.rewo-app.ui-v2 .vd-ch-kv.neg{color:#ff9b8a !important;}

/* Coin-jakauma */
.rewo-app.ui-v2 .vd-coinlist{display:flex !important;flex-direction:column !important;gap:13px !important;}
.rewo-app.ui-v2 .vd-coin{display:block !important;}
.rewo-app.ui-v2 .vd-coin-h{display:flex !important;align-items:baseline !important;justify-content:space-between !important;gap:10px !important;margin:0 0 5px !important;}
.rewo-app.ui-v2 .vd-coin-sym{font-weight:800 !important;font-size:14px !important;color:#0E2418 !important;}
.rewo-app.ui-v2 .vd-coin-val{font-weight:700 !important;font-size:14px !important;color:#23282A !important;font-variant-numeric:tabular-nums !important;}
.rewo-app.ui-v2 .vd-coin-bar{height:7px !important;background:#EAEFEA !important;border-radius:99px !important;overflow:hidden !important;}
.rewo-app.ui-v2 .vd-coin-bar > span{display:block !important;height:100% !important;background:linear-gradient(90deg,#2C5F2D,#54A924) !important;border-radius:99px !important;}
.rewo-app.ui-v2 .vd-coin-sub{font-size:12px !important;color:#6b7375 !important;margin-top:4px !important;font-variant-numeric:tabular-nums !important;}

/* ── v3.5.51: Projektien tila-suodatin kompaktimmaksi (yksi vieritettävä rivi) ── */
.rewo-app.ui-v2 .rewo-status-filter{ flex-wrap:nowrap; gap:6px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; padding-bottom:2px; margin-bottom:10px; }
.rewo-app.ui-v2 .rewo-status-filter::-webkit-scrollbar{ display:none; }
.rewo-app.ui-v2 .rewo-sf{ flex:0 0 auto; padding:6px 10px; font-size:12px; gap:6px; }
.rewo-app.ui-v2 .rewo-sf-dot{ width:7px; height:7px; }
.rewo-app.ui-v2 .rewo-sf-n{ min-width:0; height:auto; padding:1px 6px; font-size:10.5px; background:rgba(0,0,0,.10); }
.rewo-app.ui-v2 .rewo-sf.is-active .rewo-sf-n{ background:rgba(255,255,255,.28); }
.rewo-app.ui-v2 .rewo-sf-ai{ margin-left:6px !important; flex:0 0 auto; }

/* Estä selaimen natiivi "pull-to-refresh" (alasvetopäivitys) joka hyppäsi sivun ylös
   ja päivitti jatkuvasti mobiilissa. Sisäinen vieritys toimii normaalisti. */
html, body { overscroll-behavior-y: none; }

/* #2/#3: "Muokkaa näkymää" ja "Tallenna kaikille" -napit 30 % pienemmiksi
   (näkymän-/lohkojen muokkaus). Skaalaus säilyttää suhteet; ankkuroidaan vasemmalle. */
.rewo-pl-edit, .rewo-pl-save,
.rewo-uiblk-edit, .rewo-uiblk-save {
  transform: scale(.7);
  transform-origin: left center;
  display: inline-block;
}

/* v3.5.206: poistettu projektisivun kelluva ☰-fab — vaakavälilehdet (rewo-proj-tabs-v2) kattavat saman navigoinnin */
.rewo-proj-fab{ display:none !important; }

/* ── v3.5.208: alapalkin kuvakkeet config-ohjattuna laitteittain (mobiili/tablet) ── */
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bnav-btn[data-cfg]{ order:var(--om,0); display:var(--dm,flex); }
@media(min-width:769px){
  .rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bnav-btn[data-cfg]{ order:var(--ot,0); display:var(--dt,flex); }
}
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bn-cam{ order:10; }
.rewo-app.ui-v2 .rewo-bnav-v2 .rewo-bnav-spacer{ order:10; }
.rewo-app.ui-v2 .rewo-bnav-v2 #rewo-bnav-menu{ order:99; }

/* Alapalkin kuvake-editori (modaali) */
.rewo-bne-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.5); backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px); z-index:100040; opacity:0; visibility:hidden; transition:.15s; }
.rewo-bne-overlay.is-open{ opacity:1; visibility:visible; }
.rewo-bne{ position:fixed; left:50%; top:50%; transform:translate(-50%,-46%); width:min(560px,94vw); max-height:88vh; overflow:auto; background:#fff; border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.3); z-index:100041; padding:18px; opacity:0; visibility:hidden; transition:.15s; }
.rewo-bne.is-open{ opacity:1; visibility:visible; transform:translate(-50%,-50%); }
.rewo-bne-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-size:17px; }
.rewo-bne-x{ background:none; border:0; font-size:18px; cursor:pointer; color:#6B7A70; padding:4px 8px; border-radius:8px; }
.rewo-bne-x:hover{ background:#f0f3ef; }
.rewo-bne-cols{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:520px){ .rewo-bne-cols{ grid-template-columns:1fr; } }
.rewo-bne-coltitle{ font-weight:700; font-size:14px; margin-bottom:8px; color:#0E2418; }
.rewo-bne-max{ font-weight:500; color:#6B7A70; font-size:12px; }
.rewo-bne-list{ list-style:none; margin:0; padding:0; }
.rewo-bne-list li{ display:flex; align-items:center; justify-content:space-between; gap:6px; padding:7px 9px; border:1px solid #e6e9e4; border-radius:9px; margin-bottom:6px; background:#fafdf7; }
.rewo-bne-item{ display:flex; align-items:center; gap:8px; cursor:pointer; margin:0; flex:1; min-width:0; }
.rewo-bne-ic{ font-size:16px; }
.rewo-bne-lbl{ font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rewo-bne-arrows{ display:flex; gap:3px; flex:0 0 auto; }
.rewo-bne-arrows button{ width:28px; height:28px; border:1px solid #d6dcd3; background:#fff; border-radius:7px; cursor:pointer; font-size:13px; line-height:1; }
.rewo-bne-arrows button:active{ background:#eef5e9; }
.rewo-bne-foot{ display:flex; gap:8px; margin-top:14px; padding-top:12px; border-top:1px solid #eef0ec; }

/* v3.5.210: sivupalkin painike-tyyppinen navitem (esim. alapalkin editorin avaus) */
.rewo-navitem-btn{ width:100%; background:none; border:0; font:inherit; text-align:left; cursor:pointer; }

/* v3.5.216: Roolit & osioiden näkyvyys -matriisi — aina vaakascrollattava + jäädytetty Rooli-sarake ja sticky otsikkorivi */
.rewo-app.ui-v2 .rewo-matrixwrap{ overflow-x:auto !important; -webkit-overflow-scrolling:touch; max-width:100%; }
.rewo-app.ui-v2 .rewo-rolematrix{ border-collapse:separate; border-spacing:0; min-width:max-content; }
.rewo-app.ui-v2 .rewo-rolematrix th,
.rewo-app.ui-v2 .rewo-rolematrix td{ white-space:nowrap; }
.rewo-app.ui-v2 .rewo-rolematrix thead th{ position:sticky; top:0; background:#fff; z-index:3; }
.rewo-app.ui-v2 .rewo-rolematrix th:first-child,
.rewo-app.ui-v2 .rewo-rolematrix td:first-child{ position:sticky; left:0; background:#fff; z-index:2; min-width:150px; box-shadow:1px 0 0 #e3e6e3; }
.rewo-app.ui-v2 .rewo-rolematrix thead th:first-child{ z-index:4; }
.rewo-app.ui-v2 .rewo-rolematrix th.ta-c,
.rewo-app.ui-v2 .rewo-rolematrix td.ta-c{ min-width:92px; }
/* Zebra + selkeämmät rivit pitkässä matriisissa */
.rewo-app.ui-v2 .rewo-rolematrix tbody tr:nth-child(even) td{ background:#f7faf5; }
.rewo-app.ui-v2 .rewo-rolematrix tbody tr:nth-child(even) td:first-child{ background:#f7faf5; }

/* === Oikean reunan FAB-pino (avustaja + Lisaa widget): siisti paallekkain tyopoyta/tabletti, "+" piiloon puhelimessa. (v3.5.500) === */
@media(min-width:641px){
  #rewo-fab.rewo-fab{ right:20px !important; bottom:96px !important; }
  .rewo-app.ui-v2 #rewo-widget-fab,
  #rewo-widget-fab{ right:28px !important; bottom:26px !important; left:auto !important; }
}
@media(max-width:640px){
  /* Puhelin: piilota Lisaa widget -nappi (myos ui-v2:n pakotettu nakyvyys). */
  .rewo-app.ui-v2 #rewo-widget-fab,
  #rewo-widget-fab{ display:none !important; }
}
