/* Laskutus (dist/invoices.js). Etuliite iv-. Värit wk-tokeneista (vaalea ja tumma tila). */
/* Tarjoukset-sivu: Laskuttamatta */
.iv-card{margin-top:22px}
.iv-tot{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--wk-tint,#f3f7fd);border-radius:12px;padding:12px 16px;margin:4px 0 10px;color:var(--wk-ink)}
.iv-tot b{font-family:var(--font-heading);font-size:22px;font-weight:600}
.iv-rows{display:grid;gap:8px}
.iv-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;width:100%;text-align:left;border:1px solid var(--wk-line-2);border-radius:12px;background:var(--wk-panel);color:var(--wk-ink);padding:11px 14px;font:inherit;cursor:pointer}
.iv-row:hover,.iv-row:focus-visible{border-color:var(--wk-brand);background:var(--wk-tint,#f3f7fd)}
.iv-row b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iv-row small{display:block;font-size:12.5px;color:var(--wk-mut);margin-top:2px}
/* Summat tavallisena tekstinä (6.10.2026): keltainen on varattu sille, mikä odottaa sinua. */
.iv-row em{font-style:normal;font-weight:700;font-size:14px;padding:3px 0;background:transparent;color:var(--wk-ink);white-space:nowrap}
.iv-go{font-size:12.5px;font-weight:700;color:var(--wk-link,#2f5fa8);opacity:0;transition:opacity .15s;white-space:nowrap}
.iv-row:hover .iv-go,.iv-row:focus-visible .iv-go{opacity:1}
.iv-all{margin-top:12px;width:100%;border:0;border-radius:12px;background:var(--wk-brand,#2f5fa8);color:#fff;font:inherit;font-weight:700;padding:12px;cursor:pointer;transition:filter .15s,box-shadow .15s,transform .15s}
.iv-all:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 10px 20px -12px rgba(var(--acc-d-rgb,47,95,168),.95);transform:translateY(-1px)}
@media (max-width:640px){.iv-go{display:none}}
.iv-tot small{font-weight:500;color:var(--wk-mut);font-size:12px;margin-left:4px}
.iv-empty{font-size:13px;color:var(--wk-mut);margin:4px 0 0}
/* Avoimet ja erääntyneet laskut */
.iv-h3{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:20px 0 8px;font-size:15px;font-weight:700}.iv-h3 span{font-weight:500;color:var(--wk-mut);font-size:13px}.iv-h3.red{color:#b42318}
.iv-prow{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:12px;align-items:center;border:1px solid var(--wk-line-2);border-radius:12px;background:var(--wk-panel);padding:6px 14px 6px 0}
.iv-prow.late{border-color:#f3c7c2;background:#fffafa}
.iv-pmain{min-width:0;text-align:left;border:0;background:none;color:var(--wk-ink);font:inherit;padding:5px 14px;cursor:pointer;border-radius:10px}.iv-pmain:hover b,.iv-pmain:focus-visible b{color:var(--wk-link,#2f5fa8)}
.iv-pmain b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iv-pmain small{display:block;font-size:12.5px;color:var(--wk-mut);margin-top:2px}.iv-pmain small i{font-style:normal;color:#b42318;font-weight:600}
/* P9 (puhelin): asiakkaan nimi ei katkea kolmeen pisteeseen, otsikko jatkuu toiselle riville */
@media (max-width:640px){.iv-row b,.iv-pmain b,.ct-main b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}
.iv-pill{display:inline-block;font-weight:700;font-size:12px;border-radius:99px;padding:3px 10px;white-space:nowrap;line-height:1.3}.iv-pill.blue{background:var(--wk-chip);color:var(--wk-chip-fg)}.iv-pill.red{background:#fdecea;color:#b42318}.iv-pill.green{background:#eaf6ec;color:#1f7a45}
.iv-amt{font-style:normal;font-weight:700;font-size:14px;min-width:84px;text-align:right;white-space:nowrap}
.iv-acts{display:flex;gap:6px}.iv-acts button{font:inherit;font-size:12.5px;font-weight:700;border:1px solid var(--wk-line-2);background:var(--wk-panel);border-radius:9px;padding:7px 11px;cursor:pointer;color:var(--wk-ink);white-space:nowrap}.iv-acts button.p{background:var(--wk-brand,#2f5fa8);color:#fff;border-color:transparent}.iv-acts button:disabled{opacity:.6;cursor:default}
/* Myöhästyminen kerran: tietokoneella punainen merkki, puhelimella teksti (merkki on piilossa). */
.iv-late-t{display:none}
@media (max-width:640px){.iv-late-t{display:inline}.iv-prow{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}.iv-prow .iv-pill{display:none}.iv-prow .iv-acts{grid-column:1/-1;padding:0 14px 6px}}
.iv-st{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;margin-bottom:12px;font-size:13px;line-height:1.45}.iv-st b{display:block}.iv-st .t{display:block;color:var(--wk-mut);font-size:12.5px}.iv-st .t b{display:inline;color:var(--wk-ink)}
.iv-bar .iv-pill{margin-left:8px;vertical-align:middle;font-size:11.5px}
html[data-theme="dark"] .iv-pill.blue{background:var(--wk-chip);color:var(--wk-chip-fg)}html[data-theme="dark"] .iv-pill.red{background:rgba(224,96,80,.18);color:#f3a097}html[data-theme="dark"] .iv-pill.green{background:rgba(111,207,142,.14);color:#6fcf8e}
html[data-theme="dark"] .iv-prow.late{border-color:rgba(224,96,80,.35);background:rgba(0,0,0,.22)}html[data-theme="dark"] .iv-h3.red,html[data-theme="dark"] .iv-pmain small i{color:#f3a097}
/* Tarjouksen paneeli: lisätyöt */
.iv-ex{display:grid;gap:6px;margin-bottom:10px}
.iv-exr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:13px;border-bottom:1px solid var(--wk-line);padding-bottom:6px}
.iv-exr b{display:block}.iv-exr small{color:var(--wk-mut);font-size:12px}.iv-exr em{font-style:normal;font-weight:700}
.iv-exd{border:0;background:none;color:var(--wk-mut);cursor:pointer;width:26px;height:26px;display:grid;place-items:center}.iv-exd svg{width:13px;height:13px}
.iv-exf{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;margin-top:6px}
.iv-exf select{grid-column:1/5}.iv-exf input[name=description]{grid-column:5/13}
.iv-exl{display:grid;gap:3px;min-width:0;font-size:12px;font-weight:700;color:var(--wk-mut)}
.iv-exl:nth-of-type(1){grid-column:1/4}.iv-exl:nth-of-type(2){grid-column:4/7}.iv-exl:nth-of-type(3){grid-column:7/13}
.iv-exf .iv-exadd{grid-column:1/-1;justify-self:stretch;min-height:44px;border:1px solid var(--wk-line-2);border-radius:11px;background:var(--wk-panel);color:var(--wk-link);font-size:14px;font-weight:700;text-decoration:none}
.iv-exf input,.iv-exf select{min-width:0;height:36px;border:1px solid var(--wk-field-line);border-radius:9px;background:var(--wk-field);color:var(--wk-ink);font:inherit;font-size:13px;padding:0 9px}

/* Kirjanpitäjälle */
.iv-acc{margin-top:22px;border-top:1px solid var(--wk-line);padding-top:16px}
.iv-acc h3{margin:0;font-size:15px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.iv-acc h3 select{height:32px;font-size:13px;padding:0 8px}
.iv-acc p{margin:6px 0 12px;font-size:13px;color:var(--wk-mut)}
.iv-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:10px}
.iv-tiles div{border:1px solid var(--wk-line-2);background:var(--wk-card);border-radius:12px;padding:10px 12px;min-width:0}.iv-tiles span{display:block;font-size:11.5px;color:var(--wk-mut)}.iv-tiles b{display:block;font-size:17px;font-family:var(--font-heading);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iv-tiles b.r{color:#b42318}
.iv-acc-line{font-size:12.5px;color:var(--wk-mut);margin-bottom:12px}
.iv-acc-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.iv-acc-row .iv-lbl{margin:0}.iv-acc-row .iv-in{width:100%;height:36px}
.iv-acc-btns{display:flex;gap:8px;align-items:center}.iv-acc-btns button,.iv-acc-zip{height:36px;display:inline-flex;align-items:center;font:inherit;font-weight:700;font-size:13px;border-radius:10px;padding:0 14px;border:1px solid var(--wk-line-2);background:var(--wk-panel);color:var(--wk-ink);cursor:pointer;white-space:nowrap;text-decoration:none}
.iv-acc-btns button.p{background:var(--wk-brand,#2f5fa8);color:#fff;border-color:transparent}.iv-acc-btns button:disabled{opacity:.55;cursor:default}.iv-acc-zip.off{opacity:.55;cursor:default}
.iv-acc-last{margin-top:10px;font-size:12px;color:var(--wk-mut)}.iv-acc-last b{color:#1f7a45}
@media (max-width:760px){.iv-tiles{grid-template-columns:repeat(2,1fr)}.iv-tiles div:last-child:nth-child(odd){grid-column:1/-1}.iv-acc-row{grid-template-columns:1fr}.iv-acc-btns{flex-wrap:wrap}}
html[data-theme="dark"] .iv-tiles b.r{color:#f3a097}html[data-theme="dark"] .iv-acc-last b{color:#6fcf8e}
/* Laskunäkymä */
body.iv-open{overflow:hidden}
.iv-ov{position:fixed;inset:0;z-index:290;background:var(--wk-bg,#eef1f6)}
.iv-ov[hidden]{display:none}
.iv-page{position:absolute;inset:0;overflow-y:auto;color:var(--wk-ink)}
.iv-pg{max-width:1240px;margin:0 auto;padding:0 16px 40px}
.iv-bar{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;background:var(--wk-bg,#eef1f6)}
.iv-bar b{display:block;font-family:var(--font-heading);font-size:20px;font-weight:600}.iv-bar span{font-size:13px;color:var(--wk-mut)}
.iv-bara{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.iv-x{height:36px;border-radius:10px;border:1px solid var(--wk-line-2);background:var(--wk-panel);color:var(--wk-ink);font:inherit;font-weight:700;padding:0 14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0}
.iv-x svg{width:15px;height:15px;stroke-width:2.2}
@media (max-width:640px){.iv-x{height:44px;padding:0 16px}}
.iv-main{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
@media (max-width:960px){.iv-main{grid-template-columns:1fr}}
.iv-doc{background:var(--wk-panel);border-radius:12px;box-shadow:0 10px 30px rgba(20,30,50,.12);padding:28px 30px;font-size:13.5px;min-width:0}
@media (max-width:640px){.iv-doc{padding:18px 16px}}
.iv-editbar{background:#fff4e0;color:#8f600a;border-radius:10px;padding:9px 12px;font-size:12.5px;font-weight:600;margin:-6px 0 14px}
.iv-dh{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.iv-dh h2{font-family:var(--font-heading);font-size:28px;font-weight:600;margin:0 0 4px}
.iv-sel{color:var(--wk-mut);font-size:13px}
.iv-meta{display:grid;grid-template-columns:auto auto;gap:3px 14px;font-size:13px}.iv-meta span{color:var(--wk-mut)}
.iv-to{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:22px 0;font-size:13px;line-height:1.55}
@media (max-width:640px){.iv-to{grid-template-columns:1fr}}
.iv-to small{display:block;color:var(--wk-mut);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin-bottom:2px}
.iv-to .iv-in{display:block;width:100%;margin-top:6px}
.iv-hw{display:block;margin-top:10px;font-size:12px;font-weight:600;color:var(--wk-mut)}
.iv-hwt{margin-top:6px;color:var(--wk-green-ink,#1f7a45);font-weight:600}
/* Käännetty alv (AVL 8 c §): valinta Y-tunnuksen alla ja merkintä ostajan tiedoissa. */
.iv-rc{display:flex;align-items:flex-start;gap:8px;margin-top:8px;font-size:12px;font-weight:600;color:var(--wk-mut);cursor:pointer}
.iv-rc input{margin:2px 0 0;flex:none}
.iv-vies{display:block;margin-top:4px;font-size:12px;line-height:1.4;color:var(--wk-mut)}
.iv-vies.ok{color:var(--wk-green-ink)}
.iv-vies.bad{color:var(--wk-red)}
.iv-rct{display:inline-block;margin-top:4px;font-size:12px;font-weight:600;color:var(--wk-mut)}
.iv-tw{overflow-x:auto}
.iv-t{width:100%;border-collapse:collapse;font-size:13.5px;min-width:520px}
.iv-t th{text-align:left;color:var(--wk-mut);font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase;border-bottom:2px solid var(--wk-ink);padding:6px}
.iv-t td{padding:9px 6px;border-bottom:1px solid var(--wk-line);vertical-align:top}
.iv-t .r{text-align:right;white-space:nowrap}
.iv-t td small{display:block;color:var(--wk-mut);font-size:12px;margin-top:2px}
.iv-t tr.iv-new td{background:rgba(255,212,120,.14)}
.iv-src{display:inline-block;margin-top:5px;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border-radius:6px;padding:1px 6px;background:#fff4e0;color:#8f600a}
.iv-c{border:1px dashed transparent;border-radius:7px;padding:2px 5px;margin:-3px -6px;cursor:text;display:inline-flex;align-items:center;gap:4px}
.iv-c i{opacity:0;display:inline-grid;color:var(--wk-link,#2f5fa8)}.iv-c svg{width:11px;height:11px}
.iv-c:hover{border-color:#9fb4d8;background:var(--wk-tint,#f3f7fd)}.iv-c:hover i{opacity:1}
.iv-in{height:34px;border:1px solid var(--wk-field-line);border-radius:8px;background:var(--wk-field);color:var(--wk-ink);font:inherit;font-size:13.5px;padding:0 8px;min-width:0;transition:filter .15s}
select.iv-in:hover{filter:var(--hv-f)}
textarea.iv-in{height:auto;padding:8px;line-height:1.45;resize:vertical;width:100%}
.iv-in:focus{outline:2px solid var(--wk-brand,#2f5fa8);outline-offset:0;border-color:transparent}
.iv-t .iv-text{width:100%}.iv-t .iv-qty{width:64px;text-align:right}.iv-t .iv-unit{width:52px;margin-left:4px}.iv-t .iv-price{width:90px;text-align:right}
.iv-old{display:block;text-decoration:line-through;color:var(--wk-dim,#9aa3b2);font-size:11.5px;margin-top:2px}
.iv-mod{display:block;font-size:10.5px;color:#c26a00;font-weight:700}
.iv-del{border:0;background:none;color:var(--wk-mut);cursor:pointer;width:28px;height:28px;display:grid;place-items:center}.iv-del svg{width:14px;height:14px}
.iv-add{margin-top:10px;width:100%;border:1px dashed var(--wk-line-2);border-radius:10px;background:none;color:var(--wk-link,#2f5fa8);font:inherit;font-weight:700;padding:9px;cursor:pointer}
.iv-sum{margin-left:auto;width:min(320px,100%);margin-top:14px;font-size:13.5px}
.iv-sum div{display:flex;justify-content:space-between;padding:4px 0}.iv-sum .g{border-top:2px solid var(--wk-ink);margin-top:4px;padding-top:8px;font-weight:700;font-size:17px}
.iv-sum s{color:var(--wk-dim,#9aa3b2);margin-right:8px;font-weight:500;font-size:12px}
.iv-pay{display:flex;flex-wrap:wrap;gap:6px 26px;margin-top:22px;padding-top:14px;border-top:1px solid var(--wk-line);font-size:12.5px}
.iv-pay span{display:block;color:var(--wk-mut);font-size:11px}
/* Oikea reuna */
.iv-side{display:grid;gap:14px;min-width:0}
.iv-sc{background:var(--wk-panel);border-radius:16px;box-shadow:0 1px 3px rgba(20,30,50,.08);padding:18px 20px}
.iv-sc h4{margin:0 0 10px;font-size:15px}
.iv-ck{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;padding:9px 0;border-top:1px solid var(--wk-line);font-size:13px;line-height:1.4}.iv-ck:first-of-type{border-top:0}
.iv-ck i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center}.iv-ck svg{width:11px;height:11px;stroke-width:2.6}
.iv-ck.ok i{background:#eaf6ec;color:#1f7a45}.iv-ck.warn i{background:#fff4e0;color:#8f600a}.iv-ck.info i{background:#e8effa;color:#2f5fa8}
.iv-ck b{display:block}.iv-ck span{color:var(--wk-mut);font-size:12.5px}
.iv-p{font-size:13px;line-height:1.5;color:var(--wk-mut);margin:0 0 10px}.iv-p b{color:var(--wk-ink)}
.iv-lbl{display:grid;gap:4px;font-size:12px;font-weight:600;color:var(--wk-mut);margin-bottom:8px}
.iv-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.iv-b1{width:100%;border:0;border-radius:12px;background:var(--wk-brand,#2f5fa8);color:#fff;font:inherit;font-weight:700;font-size:15px;padding:13px;cursor:pointer;margin-top:4px;transition:filter .15s,box-shadow .15s,transform .15s}
.iv-b1:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 10px 20px -12px rgba(var(--acc-d-rgb,47,95,168),.95);transform:translateY(-1px)}
.iv-b1:disabled{opacity:.6;cursor:default}
.iv-b2{width:100%;border:1px solid var(--wk-line-2);border-radius:12px;background:var(--wk-panel);color:var(--wk-ink);font:inherit;font-weight:700;padding:10px;cursor:pointer;margin-top:8px}
.iv-links{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.iv-l{border:0;background:none;padding:0;font:inherit;font-size:13px;font-weight:700;color:var(--wk-link,#2f5fa8);cursor:pointer;display:inline-flex;gap:6px;align-items:center}.iv-l svg{width:13px;height:13px}
@media (max-width:640px){.iv-l{min-height:44px}}
.iv-l.g{color:var(--wk-mut);font-weight:500}
.iv-more{border:1px solid var(--wk-line);border-radius:12px;margin-top:8px;padding:2px 12px}
.iv-more button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--wk-line);background:none;padding:9px 0;font:inherit;color:var(--wk-ink);cursor:pointer}
.iv-more button:last-child{border-bottom:0}.iv-more b{display:block;font-size:13px}.iv-more span{font-size:11.5px;color:var(--wk-mut)}
.iv-note{font-size:11.5px;color:var(--wk-mut);margin:10px 0 0;line-height:1.45}
.iv-chg{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;font-size:13px;padding:9px 0;border-top:1px solid var(--wk-line)}.iv-chg:first-of-type{border-top:0}
.iv-chg em{font-style:normal;font-weight:700}.iv-chg span{grid-column:1/-1;color:var(--wk-mut);font-size:12px}
.iv-side .iv-tot{font-weight:700;margin:10px 0 12px}.iv-side .iv-tot b{font-family:inherit;font-size:15px}
.iv-err{background:var(--wk-red-t,#fdeceb);color:var(--wk-red,#c43d35);border-radius:10px;padding:8px 10px;font-size:12.5px;font-weight:600}
.iv-learn{background:#eaf6ec;border-radius:14px;padding:14px 16px;font-size:12.5px;line-height:1.45;color:#1d4d31}
.iv-learn b{display:block;color:#1f7a45;font-size:13px;margin-bottom:2px}
.iv-learn button{display:inline-block;margin-top:8px;border:0;background:#1f7a45;color:#fff;border-radius:9px;padding:7px 11px;font:inherit;font-weight:700;font-size:12px;cursor:pointer}
html[data-theme="dark"] .iv-src,html[data-theme="dark"] .iv-editbar{background:rgba(197,138,29,.18);color:#f0c877}
/* Tumma tila: laskutettavan työn summa tavallisena lihavoituna, ei ruskeana kapselina. */
html[data-theme="dark"] .iv-row em{background:transparent;color:var(--wk-ink);font-size:14px;padding:3px 0}
html[data-theme="dark"] .iv-learn{background:rgba(111,207,142,.12);color:#cfe9d7}html[data-theme="dark"] .iv-learn b{color:#6fcf8e}
html[data-theme="dark"] .iv-ck.ok i{background:rgba(111,207,142,.14);color:#6fcf8e}html[data-theme="dark"] .iv-ck.warn i{background:rgba(197,138,29,.18);color:#f0c877}html[data-theme="dark"] .iv-ck.info i{background:rgba(91,143,217,.18);color:#9dc0f2}
.iv-vatn{margin:6px 0 0;font-size:13px;color:var(--wk-mut)}
/* Puhelin: luettava lasku mahtuu leveyteen (määrät ja summat näkyvät ilman sivuttaisvieritystä). Muokkaustilassa (alempi sääntö)
   jokainen rivi on oma lohkonsa: kuvaus ja poisto ylhäällä, määrä, à-hinta ja summa otsikkoineen alla. Kenttien leveys pysyy. */
@media (max-width:640px){.iv-t:not(:has(input)){min-width:0;font-size:12.5px}.iv-t:not(:has(input)) th,.iv-t:not(:has(input)) td{padding-left:4px;padding-right:4px}}
@media (max-width:640px){
 .iv-t:has(input){min-width:0;display:block;border-top:2px solid var(--wk-ink)}.iv-t:has(input) thead{display:none}.iv-t:has(input) tbody{display:block}
 .iv-t:has(input) tr{display:grid;grid-template-columns:auto auto minmax(0,1fr) 28px;column-gap:8px;row-gap:6px;padding:10px 0;border-bottom:1px solid var(--wk-line)}
 .iv-t:has(input) td{display:block;padding:0;border:0;min-width:0}
 .iv-t:has(input) td:first-child{grid-column:1/4;grid-row:1}.iv-t:has(input) td:nth-child(5){grid-column:4;grid-row:1;align-self:start}
 .iv-t:has(input) td:nth-child(2){grid-column:1;grid-row:2}.iv-t:has(input) td:nth-child(3){grid-column:2;grid-row:2}
 .iv-t:has(input) td:nth-child(4){grid-column:3/5;grid-row:2;align-self:end;font-weight:700;padding-bottom:8px}
 .iv-t:has(input) td[data-l]::before{content:attr(data-l);display:block;margin-bottom:3px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--wk-mut);text-align:left}
 .iv-t:has(input) td:nth-child(4)[data-l]::before{text-align:right}
 .iv-t:has(input) tr.iv-ded td:empty{display:none}
 .iv-t:has(input) tr.iv-new{background:rgba(255,212,120,.14);margin:0 -8px;padding:10px 8px}.iv-t:has(input) tr.iv-new td{background:none}
}
/* Maksuerät (server/installments.mjs): erämerkit, paneelin Maksuerät-kortti, laskunäkymän aikajana ja vähennysrivit. */
.iv-chip{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--wk-chip);color:var(--wk-chip-fg);margin-left:6px;vertical-align:middle;white-space:nowrap}.iv-chip.amber{background:var(--wk-chip);color:var(--wk-chip-fg)}
.iv-plan{display:grid;gap:6px;margin:4px 0 8px}
.iv-planr{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;border:1px solid var(--wk-line-2);border-radius:10px;padding:8px 10px;background:var(--wk-card)}
.iv-planr.due{border-color:var(--wk-brand)}.iv-planr b{display:block;font-size:13px}.iv-planr small{display:block;font-size:12px;color:var(--wk-mut)}.iv-planr em{font-style:normal;font-weight:700;font-size:13px;white-space:nowrap}
.iv-pn{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--wk-brand,#2f5fa8);color:#fff;font-size:11px;font-weight:700;align-items:center;justify-content:center}
.iv-planb{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}.iv-planb .text-btn.p{font-weight:700}
.iv-kinds{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 10px}
.iv-kind{text-align:left;border:1px solid var(--wk-line-2);border-radius:10px;padding:9px 11px;background:var(--wk-card);color:var(--wk-ink);font:inherit;cursor:pointer}
.iv-kind.on{border-color:var(--wk-brand);box-shadow:0 0 0 2px var(--wk-tint,#e8effa)}.iv-kind b{display:block;font-size:13px}.iv-kind span{display:block;font-size:11.5px;color:var(--wk-mut);margin-top:2px}
.iv-partsed{display:grid;gap:6px}.iv-parted{display:grid;grid-template-columns:minmax(0,1.6fr) 60px 80px minmax(0,1.3fr) auto;gap:6px;align-items:center}.iv-parted .iv-in{height:34px;font-size:13px}
.iv-tl{list-style:none;margin:0 0 8px;padding:0 0 0 6px}.iv-tl li{position:relative;padding:4px 0 8px 18px;border-left:2px solid var(--wk-line-2);font-size:13px}.iv-tl li:last-child{border-left-color:transparent}
.iv-tl li:before{content:"";position:absolute;left:-7px;top:8px;width:12px;height:12px;border-radius:50%;background:var(--wk-line-2);border:2px solid var(--wk-panel)}
.iv-tl li.done:before{background:#1f7a45}.iv-tl li.sent:before{background:#2f5fa8}.iv-tl li.now:before{background:#8f600a}.iv-tl li b{display:block}.iv-tl li small{color:var(--wk-mut)}
.iv-t tr.iv-ded td{color:#1f7a45}.iv-t tr.iv-ded td:first-child{font-weight:600}.iv-sum .d{color:#1f7a45}
@media (max-width:640px){.iv-kinds{grid-template-columns:1fr}.iv-parted{grid-template-columns:1fr 1fr}.iv-planr{grid-template-columns:auto minmax(0,1fr);row-gap:4px}.iv-planr em,.iv-planr button{grid-column:2}}
html[data-theme="dark"] .iv-chip{background:var(--wk-chip);color:var(--wk-chip-fg)}html[data-theme="dark"] .iv-chip.amber{background:var(--wk-chip);color:var(--wk-chip-fg)}
html[data-theme="dark"] .iv-t tr.iv-ded td,html[data-theme="dark"] .iv-sum .d{color:#6fcf8e}html[data-theme="dark"] .iv-tl li.done:before{background:#6fcf8e}
/* Sopimukset (dist/contracts.js): Sopimukset-kortti, paneelin sopimuskortti ja laskunäkymän Sopimus-osio. */
.iv-chip.green{background:var(--wk-chip);color:var(--wk-chip-fg)}html[data-theme="dark"] .iv-chip.green{background:var(--wk-chip);color:var(--wk-chip-fg)}
.ct-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid var(--wk-line-2);border-radius:12px;background:var(--wk-panel);padding:10px 14px}
.ct-row.ending{border-color:#f3c7c2}.ct-main{display:block;text-align:left;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;min-width:0}
.ct-main:hover b{text-decoration:underline;text-underline-offset:3px}
.ct-main b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ct-main small{display:block;font-size:12.5px;color:var(--wk-mut);margin-top:2px}
.ct-row .iv-amt{font-style:normal;font-weight:700;white-space:nowrap}.ct-row .iv-amt small{font-weight:500;color:var(--wk-mut);margin-left:4px}
.ct-sum{margin:0 0 10px}.ct-sum b{display:block;font-size:13.5px}.ct-sum small{display:block;font-size:12px;color:var(--wk-mut);margin-top:2px}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin:4px 0}.ct-grid .iv-lbl{margin:0}.ct-grid .iv-in{height:34px;font-size:13px}
.ct-days{display:flex;gap:6px;margin:6px 0 10px}.ct-day{flex:1;border:1px solid var(--wk-line-2);border-radius:8px;background:var(--wk-card);color:var(--wk-ink);font:inherit;font-size:12.5px;font-weight:700;padding:6px 0;cursor:pointer}
.ct-day.on{background:var(--wk-brand,#2f5fa8);color:#fff;border-color:transparent}
.ct-kinds{grid-template-columns:1fr}
@media (max-width:640px){.ct-row{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.ct-grid{grid-template-columns:1fr}}
/* Erääntynyt lasku: onko asiakas jo maksanut? (veljen lista 1.10.2026, kohta 6) */
/* Erääntynyt lasku yhtenä korttina (6.10.2026): rivi ja "Onko ... jo maksanut?" saman reunan sisällä, ohut viiva välissä. */
.iv-pc{border:1px solid #f3c7c2;border-radius:12px;background:#fffafa;overflow:hidden}
.iv-pc .iv-prow.late{border:0;border-radius:0;background:transparent}
html[data-theme="dark"] .iv-pc{border-color:rgba(224,96,80,.35);background:rgba(0,0,0,.22)}
html[data-theme="dark"] .iv-pc .iv-prow.late{background:transparent}
.iv-payq{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 14px;padding:12px 0 14px;border-top:1px solid #f3dcd8;color:var(--wk-ink)}
.iv-payq b{display:block;font-size:14.5px}
.iv-payq span{display:block;font-size:13px;opacity:.85;margin-top:2px;max-width:520px}
.iv-payb{display:flex;gap:8px;flex-wrap:wrap}
.iv-payb button{height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--wk-line-2);background:var(--wk-panel);color:var(--wk-ink);font:700 13.5px/1 var(--font-body);cursor:pointer}
.iv-payb button.y{background:var(--acc-d,#2f5fa8);border-color:var(--acc-d,#2f5fa8);color:#fff;transition:filter .15s,box-shadow .15s,transform .15s}
.iv-payb button.y:hover{filter:brightness(1.1);box-shadow:0 10px 20px -12px rgba(var(--acc-d-rgb,47,95,168),.95);transform:translateY(-1px)}
.iv-payb button:disabled{opacity:.6;cursor:default}
html[data-theme="dark"] .iv-payq{border-top-color:rgba(255,255,255,.08);color:var(--wk-ink)}
html[data-theme="dark"] .iv-payb button{background:transparent;border-color:var(--wk-line-2);color:var(--wk-ink)}
html[data-theme="dark"] .iv-payb button.y{background:var(--acc-d,#2f5fa8);border-color:var(--acc-d,#2f5fa8);color:#fff}
/* Kirjanpitäjän paketti: lataa itse tai lähetä yhdistetystä sähköpostista (kohta 7) */
.iv-accw{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.iv-accw>b{font-size:14px;color:var(--wk-ink)}
.iv-opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid var(--wk-line-2);background:var(--wk-panel);cursor:pointer}
.iv-opt:has(input:checked){border-color:var(--wk-brand,#2f5fa8);box-shadow:0 0 0 1px var(--wk-brand,#2f5fa8)}
.iv-opt input{margin-top:3px;width:17px;height:17px;accent-color:var(--wk-brand,#2f5fa8)}
.iv-opt b{display:block;font-size:14px;color:var(--wk-ink)}
.iv-opt small{display:block;font-size:12.5px;color:var(--wk-mut);margin-top:2px}
.iv-acc-zip.p{background:var(--wk-brand,#2f5fa8);color:#fff;border-color:transparent;transition:filter .15s,box-shadow .15s,transform .15s}
.iv-acc-zip.p:hover{filter:brightness(1.1);box-shadow:0 10px 20px -12px rgba(var(--acc-d-rgb,47,95,168),.95);transform:translateY(-1px)}
.iv-acc>.iv-acc-btns{margin-top:12px}
/* Viesti kirjanpitäjälle ennen lähetystä (ivAccReview): otsikko ja teksti muokattavina */
.iv-accrev{margin-top:12px;display:flex;flex-direction:column;gap:8px}.iv-accrev>b{font-size:14px;color:var(--wk-ink)}
.iv-accrev .iv-lbl{margin:0}.iv-accrev .iv-in{width:100%}.iv-accrev textarea.iv-in{min-height:220px;resize:vertical;font:inherit;font-size:13px;line-height:1.45}
/* Iso Seuraava lasku -nappi Lähetä-laatikon alla (kohta 5) */
.iv-next{display:grid;gap:4px;width:100%;margin:14px 0 4px;padding:16px 18px;border-radius:14px;border:2px solid var(--wk-brand,#2f5fa8);background:var(--wk-tint,#eef3fb);color:var(--wk-ink);text-align:left;cursor:pointer;font-family:var(--font-body)}
.iv-next:hover,.iv-next:focus-visible{background:var(--wk-brand,#2f5fa8)}
.iv-next:hover .iv-npos,.iv-next:hover .iv-nwho,.iv-next:hover .iv-nmain,.iv-next:focus-visible .iv-npos,.iv-next:focus-visible .iv-nwho,.iv-next:focus-visible .iv-nmain{color:#fff}
.iv-npos{font:700 12.5px/1.2 var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--wk-brand,#2f5fa8)}
.iv-nmain{display:flex;align-items:center;justify-content:space-between;font:800 20px/1.2 var(--font-heading,inherit);color:var(--wk-ink)}
.iv-nmain svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2.4}
.iv-nwho{font:500 13.5px/1.3 var(--font-body);color:var(--wk-mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.iv-next.done{cursor:default;border-style:dashed;border-color:var(--wk-line-2)}
html[data-theme="dark"] .iv-npos{color:#9cc0ff}
/* Lisätöiden hyväksyntä asiakkaalla (dist/invoices.js ivXaHtml): tila rivillä ja pyyntönappi kortissa. */
.iv-xa{display:flex;align-items:center;gap:4px;width:fit-content;margin-top:3px;font-style:normal;font-size:11.5px;font-weight:700;color:var(--wk-amber-ink)}
.iv-xa svg{width:12px;height:12px}
.iv-xa.ok{color:var(--wk-green-ink)}
.iv-xa.no{color:#b42318}
html[data-theme="dark"] .iv-xa.no{color:var(--wk-red)}
.iv-xas{margin:4px 0 12px}
.iv-xas .of-muted{margin:6px 0 0}
.iv-xab{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
.iv-xab .text-btn{display:inline-flex;align-items:center;gap:6px}
.iv-xab svg{width:14px;height:14px}
.iv-xaout{margin-top:10px}
.iv-xaout small{display:block;margin-top:6px}
/* Puuttuvat yrityksen tiedot: Lisää nyt avaa Yrityksen tiedot -ikkunan (dist/company.js). */
.iv-ckb{display:block;margin-top:6px;padding:0;border:0;background:none;color:var(--wk-blue,#2f5fa8);font:inherit;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
html[data-theme="dark"] .iv-ckb{color:#8fb4e8}
/* Hyvityslasku (dist/invoices.js ivCrDoc, ivCrSide, ivCrSection) */
.iv-pill.amber{background:var(--wk-chip);color:var(--wk-chip-fg)}html[data-theme="dark"] .iv-pill.amber{background:rgba(240,195,106,.16);color:#f0c36a}
.iv-crdoc .iv-sum .g span:last-child{color:var(--wk-red,#c43d35)}
.iv-t tr.iv-croff td{color:var(--wk-mut)}.iv-t tr.iv-croff td:first-child span{text-decoration:none}
.iv-crc{display:flex;gap:8px;align-items:flex-start;cursor:pointer;font-weight:500}.iv-crc input{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--wk-brand)}
.iv-crdoc [data-iv-crx="text"]{width:100%;height:30px}.iv-crdoc .iv-qty{width:58px;height:30px;text-align:right}.iv-crdoc .iv-price{width:96px;height:30px;text-align:right}.iv-crdoc td small{color:var(--wk-mut);font-size:11.5px}
.iv-crdoc .iv-sum .iv-crleft{border-top:1px solid var(--wk-line);margin-top:6px;padding-top:8px;font-weight:600;color:var(--wk-ink)}
.iv-crchk{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--wk-line-2);border-radius:10px;padding:9px 11px;margin:0 0 10px;cursor:pointer;font-size:12.5px;color:var(--wk-mut);line-height:1.4}
.iv-crchk input{margin-top:2px;width:16px;height:16px;flex:none;accent-color:var(--wk-brand)}.iv-crchk b{display:block;color:var(--wk-ink);font-size:13px}
.iv-crrow{margin:10px 0 0;font-size:13px}.iv-crrow b{font-size:15px}.iv-crrow span{display:block;color:var(--wk-mut);font-size:12px;margin-top:2px}
html[data-theme="dark"] .iv-crdoc .iv-sum .g span:last-child{color:#f3a097}html[data-theme="dark"] .iv-crdoc .iv-sum .iv-crleft{color:var(--wk-ink)}
/* Sopimuksen käynnit kalenteriin (dist/contracts.js ctVisitFields) */
.ct-cal{margin-top:10px}.ct-visit{grid-template-columns:110px 90px minmax(0,1fr)}
.ct-next{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 10px;font-size:12.5px}.ct-next b{width:100%;font-size:12px;color:var(--wk-mut)}
.ct-next span{background:#f1eafb;color:#5b3596;border-radius:999px;padding:3px 10px;font-weight:600}.ct-next small{width:100%;color:var(--wk-mut);font-size:12px}
html[data-theme="dark"] .ct-next span{background:rgba(124,77,189,.24);color:#d9c6f7}
.ct-dh{font-size:11.5px;color:var(--wk-mut);align-self:center;margin-left:4px}
.ct-sum .ct-calt{display:flex;align-items:center;gap:5px;margin-top:3px;color:#6a3fb0;font-weight:600}.ct-sum .ct-calt svg{width:12px;height:12px}
html[data-theme="dark"] .ct-sum .ct-calt{color:#c3a6f0}
@media(max-width:560px){.ct-visit{grid-template-columns:1fr 1fr}.ct-visit label:last-child{grid-column:1/-1}}
/* Tuntilista (dist/timesheet.js): Tarjoukset ja laskut → Tunnit. Isolla näytöllä taulukko, puhelimessa kortit. */
.ts-card{margin-top:4px}
.ts-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 14px}
.ts-seg{display:inline-flex;border:1px solid var(--wk-line-2);border-radius:99px;padding:3px;background:var(--wk-panel)}
.ts-seg button{border:0;background:none;color:var(--wk-ink);font:600 13px/1 var(--font-body);padding:8px 14px;border-radius:99px;cursor:pointer}
.ts-seg button.on{background:var(--wk-brand,#2f5fa8);color:#fff}
.ts-nav{display:flex;align-items:center;gap:8px;margin-right:auto}
.ts-nav b{font:600 15px/1.2 var(--font-heading);color:var(--wk-ink)}.ts-nav span{font-size:13px;color:var(--wk-mut)}
.ts-nav button{width:34px;height:34px;border-radius:50%;border:1px solid var(--wk-line-2);background:var(--wk-panel);color:var(--wk-ink);display:grid;place-items:center;cursor:pointer}
.ts-nav button:first-child svg{transform:rotate(180deg)}.ts-nav button:disabled{opacity:.35;cursor:default}
.ts-nav svg,.ts-dl svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.ts-dl{display:flex;gap:8px}
.ts-dl button{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:99px;border:1px solid var(--wk-line-2);background:var(--wk-panel);color:var(--wk-ink);font:600 13px/1 var(--font-body);cursor:pointer}
.ts-check{border:1px solid #f1d49a;background:#fff6e5;color:#3b2a06;border-radius:12px;padding:12px 14px;margin-bottom:14px}
.ts-check>b{display:block;font-size:14px;margin-bottom:6px}
.ts-crow{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid rgba(143,96,10,.15);font-size:13px}
.ts-crow>span:nth-child(2){flex:1;min-width:0}
.ts-crow button{border:1px solid #d9a441;background:#fff;color:#7a4f00;border-radius:99px;font:600 12.5px/1 var(--font-body);padding:7px 12px;cursor:pointer}
.ts-ctag{font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px;background:#fde2c4;color:#8a3d00;white-space:nowrap}.ts-ctag.long{background:#fff0c2;color:#7a5600}
.ts-tw{overflow-x:auto;border:1px solid var(--wk-line-2);border-radius:14px;background:var(--wk-card)}
.ts-t{width:100%;border-collapse:collapse;font-size:13.5px;color:var(--wk-ink)}
.ts-t th,.ts-t td{padding:10px 8px;text-align:center;vertical-align:middle;border-bottom:1px solid var(--wk-line);background:none}
.ts-t thead th{font-size:12px;font-weight:600;color:var(--wk-mut);white-space:nowrap}.ts-t thead th span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.ts-t thead th.we,.ts-t td.ts-z{color:var(--wk-mut)}
.ts-t tbody th,.ts-t tfoot th,.ts-t thead th:first-child{text-align:left;padding-left:14px;min-width:150px}
.ts-t tbody th b{display:block;font-weight:600}.ts-t tbody th small{display:block;font-size:11.5px;color:var(--wk-mut);font-weight:400}
.ts-t tfoot th,.ts-t tfoot td{border-bottom:0;font-weight:600;background:var(--wk-panel)}
.ts-t .ts-tot{text-align:right;white-space:nowrap;padding-right:12px}.ts-t .ts-n{color:var(--wk-mut);padding-right:14px}
.ts-cell{position:relative;border:0;background:none;color:inherit;font:inherit;padding:6px 8px;border-radius:8px;cursor:pointer;min-width:44px}
.ts-cell:hover{background:var(--wk-panel)}
.ts-cell.f{background:#fff0c2;color:#6d4b00;font-weight:600}
.ts-cell i{position:absolute;top:-4px;right:-4px;width:15px;height:15px;border-radius:50%;background:#d97706;color:#fff;font:700 10px/15px var(--font-body);font-style:normal}
.ts-cards{display:none}
.ts-e{display:flex;align-items:center;gap:12px;padding:12px 0;border:0;border-bottom:1px solid var(--wk-line);background:none;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.ts-e:disabled{cursor:default}.ts-e:not(:disabled):hover .ts-ej b{text-decoration:underline}
.ts-empty{border:1px dashed var(--wk-line);border-radius:12px;padding:22px 18px;margin-top:14px;text-align:center}.ts-empty b{display:block;font-size:15px}.ts-empty p{margin:6px auto 0;max-width:460px;color:var(--wk-mut);font-size:13.5px}
.ts-et{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:96px}
.ts-ej{flex:1;min-width:0}.ts-ej b{display:block}.ts-ej small{display:block;color:var(--wk-mut);font-size:12.5px}.ts-ej i{color:#b45309;font-style:normal;font-weight:600}
.ts-e em{font-style:normal;color:var(--wk-mut);white-space:nowrap}
.ts-tip{font-size:12.5px;color:var(--wk-mut);margin:12px 0 0}
@media (max-width:640px){
 .ts-tw{display:none}.ts-cards{display:grid;gap:10px}
 .ts-nav{order:-1;width:100%;margin-right:0}.ts-nav span{margin-right:auto}
 .ts-pc{border:1px solid var(--wk-line-2);background:var(--wk-card);border-radius:14px;padding:12px}
 .ts-pch{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
 .ts-pch b{display:block;font-weight:600}.ts-pch small{display:block;font-size:12px;color:var(--wk-mut)}.ts-pch em{font:600 17px/1.2 var(--font-heading);font-style:normal;white-space:nowrap}
 .ts-pcd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.ts-pcd.m{grid-template-columns:repeat(5,minmax(0,1fr))}
 .ts-pcd button{border:1px solid var(--wk-line);background:var(--wk-panel);color:var(--wk-ink);border-radius:9px;padding:6px 0;font:inherit;min-width:0}
 .ts-pcd button span{display:block;font-size:10.5px;color:var(--wk-mut);text-transform:uppercase}.ts-pcd button b{display:block;font-size:13px;font-weight:600}
 .ts-pcd button.z b{color:var(--wk-mut);font-weight:400}.ts-pcd button.f{background:#fff0c2;border-color:#f1d49a;color:#6d4b00}
 .ts-crow{display:grid;grid-template-columns:1fr auto;gap:6px 10px}.ts-crow .ts-ctag{justify-self:start}.ts-crow>span:nth-child(2){grid-column:1/-1;grid-row:2}.ts-crow button{grid-column:2;grid-row:1}
 .ts-pcd button:disabled{color:var(--wk-ink)}
}
html[data-theme="dark"] .ts-check{background:rgba(0,0,0,.22);border-color:rgba(240,164,104,.35);color:#e6eaf2}
html[data-theme="dark"] .ts-crow{border-top-color:rgba(240,195,106,.15)}
html[data-theme="dark"] .ts-crow button{background:transparent;border-color:rgba(240,195,106,.5);color:#f0c36a}
html[data-theme="dark"] .ts-ctag{background:rgba(240,140,80,.18);color:#f3a674}html[data-theme="dark"] .ts-ctag.long{background:rgba(240,195,106,.16);color:#f0c36a}
html[data-theme="dark"] .ts-cell.f,html[data-theme="dark"] .ts-pcd button.f{background:rgba(240,195,106,.16);border-color:rgba(240,195,106,.3);color:#f0c36a}
html[data-theme="dark"] .ts-ej i{color:#f0c36a}
/* Kuun koontilaskut (dist/invoices.js ivMonthlyHtml) */
.iv-month{margin-top:6px}
.iv-mrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 14px;border:1px solid var(--wk-line-2);border-left:3px solid #1f7a45;border-radius:12px;background:var(--wk-panel);margin-bottom:8px}
.iv-mrow b{display:block;font-size:14px}.iv-mrow small{display:block;font-size:12.5px;color:var(--wk-mut);margin-top:2px;overflow-wrap:anywhere}
.iv-mrow em{font-style:normal;font-weight:700;font-size:14px;white-space:nowrap}
.iv-mrow .iv-b2{margin:0;width:auto;white-space:nowrap}
@media (max-width:640px){.iv-mrow{grid-template-columns:minmax(0,1fr) auto}.iv-mrow .iv-b2{grid-column:1/-1;width:100%}}
/* Tunnit asiakkaille (dist/invoices.js ivHoursHtml) */
.iv-hours{margin-top:6px}
.iv-hfold{margin-top:16px;border:1px solid var(--wk-line-2);border-radius:12px;background:var(--wk-panel)}
.iv-hfold>summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;color:var(--wk-ink)}
.iv-hfold>summary::-webkit-details-marker{display:none}
.iv-hfold>summary>span{flex:1;min-width:0;display:grid;gap:2px}
.iv-hfold>summary b{font-size:14.5px}
.iv-hfold>summary small{font-size:13px;color:var(--wk-mut)}
.iv-hfold>summary svg{width:16px;height:16px;flex:none;color:var(--wk-mut);transition:transform .15s}
.iv-hfold[open]>summary svg{transform:rotate(90deg)}
.iv-hfold>summary:focus-visible{outline:3px solid var(--hv-ring);outline-offset:2px;border-radius:12px}
.iv-hfold>.iv-hours{margin:0;padding:0 14px 12px}
.iv-hfold>.iv-hours>.iv-h3{display:none}
.iv-hadd{margin:0 0 10px}
.iv-hform{display:grid;gap:8px;padding:12px;border:1px solid var(--wk-line-2);border-radius:12px;background:var(--wk-panel);margin-bottom:10px}
.iv-hchips{display:flex;flex-wrap:wrap;gap:6px}
.iv-chipb{min-height:40px;padding:0 14px;border-radius:99px;border:1px solid var(--wk-line-2);background:var(--wk-panel);color:var(--wk-ink);font:inherit;font-weight:600;cursor:pointer}
.iv-chipb.on{border-color:#2f5fa8;background:#e8f0fb;color:#1d4b8f}
html[data-theme="dark"] .iv-chipb.on{background:transparent;color:var(--wk-ink);box-shadow:inset 0 0 0 1px #8fb4e8}
.iv-hrow{border-left-color:#2f5fa8;align-items:start}
/* Kirjauslista on oma rivinsä otsikon alla koko kortin levyisenä, ettei sopimusteksti ja nappi kavenna kuvauksia päällekkäin. */
.iv-hlist{list-style:none;margin:-6px 0 0;padding:0;display:grid;gap:2px;grid-column:1/-1;max-width:560px}
@media (min-width:641px){.iv-hrow>.iv-b2{grid-row:1;grid-column:3}}
.iv-hlist li{display:grid;grid-template-columns:44px minmax(0,1fr) auto 32px;gap:6px;align-items:center;font-size:12.5px;color:var(--wk-mut)}
.iv-hlist li>span{min-width:0;overflow-wrap:break-word}
.iv-hlist b{color:var(--wk-ink);font-size:12.5px}
.iv-hdel{width:32px;height:32px;border:0;background:none;color:var(--wk-mut);cursor:pointer;border-radius:8px}
.iv-hdel:hover{background:var(--wk-line-2)}
.iv-link{background:none;border:0;padding:6px 0;color:var(--wk-link,#2f5fa8);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;text-decoration:underline}
.iv-hoff{margin-top:16px;font-size:13.5px}
.iv-acc-new{margin:0;padding:16px;border:1px solid var(--wk-line-2);border-radius:14px;background:var(--wk-panel);font-size:15px;line-height:1.5;color:var(--wk-body)}
.iv-hoff summary{cursor:pointer;font-weight:600;color:var(--wk-link,#2f5fa8)}
.iv-hoff summary:hover{text-decoration:underline;text-underline-offset:3px}
.iv-hset{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.iv-hset .iv-b1{width:auto;margin:0}
.iv-acc-page .iv-acc{margin-top:0;border-top:0;padding-top:0}
.iv-acc-page .iv-acc h3{justify-content:flex-start}
