PageSourceSearch

https://hintermoos.at/assets/OwnersOperatingCosts-Dat5-_kY.js

js hintermoos.at collected 2026-10-09 22:01:56 UTC 108,783 bytes, 1 lines download raw bytes

1import{u as jt,r as B,j as e,w as Y,K as J,N as Z,O as Ze,x as X,B as ft,k as Qe,$ as Ht,G as et,H as tt,J as at}from"./index-MoAbC8_9.js";import{O as Pt}from"./OwnersLayout-Cd0M3dw8.js";import{B as Ue}from"./badge-BHbYeRgi.js";import{T as ze,a as Se,b as z,c as T,d as Ge,e as m}from"./table-BNHSYido.js";import{T as ut,a as mt,c as $e,b as nt}from"./tabs-5EVsfllK.js";import{I as Me}from"./info-CZr0REZX.js";import{A as Bt,a as Ut}from"./arrow-up-D486G_0n.js";import{E as $t}from"./exceljs.min-Bp1_LhuQ.js";import{D as Kt}from"./download-DXQgHLv7.js";import{E as Mt}from"./euro-Cc6O9qjZ.js";import{T as Ft}from"./trending-up-Cg9WFJWB.js";import{T as Vt}from"./trending-down-EHPUNHPt.js";import{W as kt}from"./wrench-B4A_f5hE.js";import{F as Wt}from"./flame-wMx8KIS8.js";import{Z as It}from"./zap-D5DuRxrj.js";import{B as _t}from"./breadcrumb-CmKLwRya.js";import{R as Ve,C as st,X as ot,Y as We,T as Ie,L as _e,B as Te,a as Yt}from"./generateCategoricalChart-C2b_mvpD.js";import{B as yt}from"./BarChart-FFUEJ1QK.js";import{P as Jt,a as Zt}from"./PieChart-C9_Ud7Rw.js";import{C as Nt}from"./ComposedChart-DcPErJ04.js";import{L as pt}from"./Line-DFydwSLz.js";import{M as wt}from"./collapsible-BIxz44zB.js";import{F as Xt}from"./file-search-B2CpYcS_.js";import"./Header-CnJGZ8vQ.js";import"./mountain-BHfTfCFy.js";import"./user-Cvsz7Lm_.js";import"./separator-CQ84aZ0V.js";import"./skeleton-ClxqB572.js";import"./switch-BHj3-8MN.js";import"./index-D9-GACGG.js";import"./house-DjS1WMqx.js";import"./receipt-DnGXta2k.js";import"./building-crte1H4H.js";import"./file-text-Bif0RP8Y.js";import"./chart-column-Bo5i9GGE.js";import"./upload-BH1HltYO.js";import"./piggy-bank-DP-A2O0m.js";import"./landmark-C0TkBs1l.js";import"./users-xui-UtA1.js";import"./eye-DKrvAixa.js";import"./dialog-DrI7Oddz.js";import"./textarea-4z16PwID.js";import"./index-Dh4i1-J3.js";const Ot=[2021,2022,2023,2024,2025],re={caretaker:{cs:"Správce / domovník",de:"Hausbesorger / Hausmeister",en:"Caretaker"},admin:{cs:"Správa a administrativa",de:"Verwaltung",en:"Administration"},energy:{cs:"Energie a infrastruktura",de:"Energie & Infrastruktur",en:"Energy & infrastru
1cture"},pool:{cs:"Krytý bazén",de:"Hallenbad",en:"Indoor pool"},maintenance:{cs:"Údržba a opravy",de:"Instandhaltung & Reparaturen",en:"Maintenance & repairs"},taxes:{cs:"Daně a pojištění",de:"Steuern & Versicherung",en:"Taxes & insurance"},other:{cs:"Ostatní",de:"Sonstiges",en:"Other"}},Ye={caretaker:"hsl(var(--chart-1, 210 70% 45%))",admin:"hsl(var(--chart-2, 25 70% 50%))",energy:"hsl(var(--chart-3, 150 55% 40%))",pool:"hsl(var(--chart-4, 190 65% 45%))",maintenance:"hsl(var(--chart-5, 280 50% 55%))",taxes:"hsl(45 75% 45%)",other:"hsl(0 0% 55%)"},Ce=[{group:"caretaker",label:{cs:"Mzdy – Walter & Margit",de:"Löhne – Walter & Margit",en:"Wages – Walter & Margit"},values:{2021:35965.864,2022:35193.312,2023:37880.48,2024:36034.724,2025:38044.006}},{group:"caretaker",label:{cs:"Mzdové odvody",de:"Lohnabgaben / Pflichtbeiträge",en:"Payroll levies"},values:{2021:21934.935,2022:20075.407,2023:21481.889,2024:2276.923,2025:4425.773}},{group:"caretaker",label:{cs:"Sociální pojištění správce",de:"Sozialvers. Hausbesorger",en:"Caretaker social insurance"},values:{2021:0,2022:0,2023:0,2024:18671.004,2025:17457.55}},{group:"caretaker",label:{cs:"Extra venkovní údržba (Aussenanlagen)",de:"Extra Aussenanlagen",en:"Extra outdoor maintenance"},values:{2021:0,2022:0,2023:0,2024:4071.936,2025:5252.885},note:{cs:"Práce nad rámec mzdy, fakturováno samostatně.",de:"Leistungen über den Lohn hinaus, gesondert verrechnet.",en:"Work beyond wages, invoiced separately."}},{group:"caretaker",label:{cs:"Extra ostatní práce",de:"Extra sonstige Leistungen",en:"Extra other work"},values:{2021:420.882,2022:464.728,2023:437.096,2024:0,2025:206.679},note:{cs:"2023: Sonstige Kosten Hausbesorger · 2025: Hausmeister Strom Heizung",de:"2023: Sonstige Kosten Hausbesorger · 2025: Hausmeister Strom Heizung",en:"2023: caretaker misc. costs · 2025: caretaker electricity/heating"}},{group:"admin",label:{cs:"Externí správa domu (Hausverwaltung)",de:"Hausverwaltung",en:"External property management"},values:{2021:16195.74,2022:16650.48,2023:18084.66,2024:18306.42,2025:18636.024}},{group:"admin",label:{cs:"Telefon",de:"Telefon",en:"Telephone"},values:{2021:0,2022:0,2023:0,2024:668.998,2025:660}},{group:"admin",label:{cs:"Internet",de:"Internet",en:"Internet"},values:{2021:0,2022:845.823,2023:865.15,2024:610.093,2025:571.12}},{group:"admin",label:{cs:"Poštovné",de:"Porto",en:"Postage"},values:{2021:0,2022:0,2023:29.964,2024:0,2025:0}},{group:"admin",label:{cs:"Úroky a bankovní poplatky",de:"Zinsen und Spesen",en:"Interest & bank fees"},values:{2021:656.183,2022:866.129,2023:1270.335,2024:141.647,2025:668.107}},{group:"energy",label:{cs:"Odvoz odpadu",de:"Müllabfuhr",en:"Waste collection"},values:{2021:3920.62,2022:5083.969,2023:4030.653,2024:5499.021,2025:6625.003}},{group:"energy",label:{cs:"Kanalizace",de:"Kanal",en:"Sewage"},values:{2021:5154.611,2022:7855.32,2023:7895.217,2024:9161.262,2025:13192.971}},{group:"energy",label:{cs:"Elektřina – společné prostory",de:"Strom allgemein",en:"Electricity – common areas"},values:{2021:6089.446,2022:7830.636,2023:13214.047,2024:9748.838,2025:10156.135}},{group:"energy",label:{cs:"Výtah",de:"Aufzug",en:"Elevator"},values:{2021:2866.369,2022:2373.492,2023:4144.866,2024:5824.148,2025:3147.386}},{group:"energy",label:{cs:"Elektřina schodiště",de:"Strom Stiegenhaus",en:"Electricity – staircase"},values:{2021:0,2022:0,2023:0,2024:112.552,2025:0}},{group:"pool",label:{cs:"Krytý bazén",de:"Hallenbad",en:"Indoor pool"},values:{2021:5005.231,2022:7093.438,2023:7040.286,2024:11372.02,2025:18102.788}},{group:"maintenance",label:{cs:"Odklízení sněhu",de:"Schneeräumung",en:"Snow removal"},values:{2021:1573.011,2022:1593.834,2023:1421.09,2024:3539.987,2025:3541.054}},{group:"maintenance",label:{cs:"Opravy a údržba",de:"Reparaturen & Erhaltungsaufwand",en:"Repairs & maintenance"},values:{2021:6242.907,2022:9337.46,2023:17127.88,2024:3148.31,2025:6626.873}},{group:"maintenance",label:{cs:"Spotřební materiál",de:"Verbrauchsmaterial",en:"Consumables"},values:{2021:4406.886,2022:5538.324,2023:6739.601,2024:2502.291,2025:2275.614}},{group:"taxes",label:{cs:"Daň z nemovitosti",de:"Grundsteuer",en:"Property tax"},values:{2021:5813.731,2022:5813.731,2023:5813.731,2024:5813.731,2025:5725.72}},{group:"taxes",label:{cs:"Pojištění domu",de:"Hausversicherungen",en:"Building insurance"},values:{2021:7324.35,2022:8089.147,2023:8571.563,2024:5211.052,2025:9059.105}},{group:"other",label:{cs:"Ostatní náklady",de:"Diverser Aufwand",en:"Miscellaneous"},values:{2021:2793.67,2022:270.292,2023:264,2024:1934.042,2025:5187.677}}
1,{group:"other",label:{cs:"Příspěvky",de:"Beiträge",en:"Contributions"},values:{2021:0,2022:0,2023:0,2024:0,2025:4730}},{group:"other",label:{cs:"Výnos z pračky",de:"Erlöse Waschmaschine",en:"Laundry income"},values:{2021:0,2022:0,2023:0,2024:0,2025:-441.54},note:{cs:"Výnos snižuje náklady.",de:"Erlös reduziert die Kosten.",en:"Income reduces costs."}}],ie=[{label:{cs:"Voda / silnice / zimní služba",de:"Wasser / Straße / Winterdienst",en:"Water / road / winter service"},vat:0,values:{2021:28556.8,2022:27948,2023:33368.08,2024:34933.56,2025:35400.13},note:{cs:"0 % DPH dle vyúčtování",de:"0 % USt laut Abrechnung",en:"0% VAT per statement"}},{label:{cs:"Vytápění",de:"Heizung",en:"Heating"},vat:.2,values:{2021:29467.956,2022:45774.264,2023:68170.284,2024:51620.664,2025:58122.804},note:{cs:"Dle Techem Gesamtabrechnung (Heizkosten celkem za dům), vč. 20 % DPH – sjednoceno na brutto za všechny roky.",de:"Laut Techem-Gesamtabrechnung (Heizkosten gesamt), inkl. 20 % USt – für alle Jahre einheitlich brutto.",en:"Per Techem total statement (total heating costs), incl. 20% VAT – all years shown gross."}},{label:{cs:"Teplá voda",de:"Warmwasser",en:"Hot water"},vat:.1,values:{2021:2174.414,2022:5265.634,2023:6286.632,2024:6587.02,2025:5931.475},note:{cs:"Dle Techem Gesamtabrechnung (Warmwasserkosten celkem za dům), vč. 10 % DPH – sjednoceno na brutto za všechny roky.",de:"Laut Techem-Gesamtabrechnung (Warmwasserkosten gesamt), inkl. 10 % USt – für alle Jahre einheitlich brutto.",en:"Per Techem total statement (total hot water costs), incl. 10% VAT – all years shown gross."}},{label:{cs:"Výdaje rezervního fondu",de:"Ausgaben Rücklage",en:"Reserve fund expenditure"},vat:null,values:{2021:96358.49,2022:104685.2,2023:41036.86,2024:69172.79,2025:63099.25},note:{cs:"Skutečné výdaje fondu vč. skutečné DPH (nelze paušálně +10 %). Obsahuje úvěry a mimořádné výdaje.",de:"Tatsächliche Ausgaben inkl. tatsächlicher USt. (kein pauschaler Aufschlag von 10 %). Enthält Kredite und Sonderausgaben.",en:"Actual expenditure incl. actual VAT (no flat 10 % mark-up). Includes loans and extraordinary spending."}}],bt=[{label:{cs:"Provozní náklady (Betriebskosten allgemein)",de:"Betriebskosten allgemein",en:"Operating costs (general)"},net:{2021:114876.76,2022:122705.02,2023:142102.28,2024:131499.09,2025:158046.3},gross:{2021:126364.44,2022:134975.52,2023:156312.51,2024:144649,2025:173850.93},note:{cs:"+ 10 % USt dle vyúčtování",de:"+ 10 % USt laut Abrechnung",en:"+ 10% VAT per statement"}},{label:{cs:"Výdaje rezervního fondu",de:"Ausgaben Rücklage",en:"Reserve fund expenditure"},net:{2021:91143.44,2022:99759.59,2023:null,2024:66671.82,2025:61093.86},gross:{2021:96358.49,2022:104685.2,2023:41036.86,2024:69172.79,2025:63099.25},note:{cs:"DPH dle jednotlivých faktur (2024: 2 500,97 €, 2025: 2 005,39 €) – nikoli 10 % plošně.",de:"USt. je Rechnung (2024: 2.500,97 €, 2025: 2.005,39 €) – nicht pauschal 10 %.",en:"VAT per invoice (2024: EUR 2,500.97; 2025: EUR 2,005.39) – not a flat 10%."}}],Q=[{year:2021,liters:36074,costNet:21213.91,opening:null,delivered:null,closing:null},{year:2022,liters:36563,costNet:36623.52,opening:0,delivered:45563,closing:9e3},{year:2023,liters:50922,costNet:49882.88,opening:9e3,delivered:51922,closing:1e4},{year:2024,liters:39009,costNet:37470.36,opening:1e4,delivered:33009,closing:4e3},{year:2025,liters:47875,costNet:43107.95,opening:4e3,delivered:50975,closing:7100}],Je=r=>r.liters&&r.costNet?r.costNet/r.liters:null,P=(r,s)=>Ce.filter(a=>a.group===r).reduce((a,o)=>a+(o.values[s]||0),0),Ee=r=>Ce.reduce((s,a)=>s+(a.values[r]||0),0),Xe={2020:6978.21,2021:46060.19,2022:236.44,2023:18662.7,2024:9070.39,2025:15185.42},qt=2022,ct=[{unit:1,location:"1UG Top 50A",area:35,consumption:5509.201,cost:2100},{unit:2,location:"1UG Top 7",area:28,consumption:2567,cost:1085.94},{unit:3,location:"1UG Top 6",area:57,consumption:1086,cost:873.75},{unit:4,location:"1UG Top 5",area:57,consumption:3056,cost:1510.43},{unit:5,location:"1UG Top 4",area:28,consumption:9,cost:259.21},{unit:6,location:"1UG Top 3",area:28,consumption:837,cost:526.81},{unit:7,location:"1UG Top 2",area:57,consumption:6688.852,cost:2684.54},{unit:8,location:"1UG Top 1",area:57,consumption:2927,cost:1468.73},{unit:9,location:"2UG Top 14",area:57,consumption:5926.574,cost:2438.2},{unit:10,location:"2UG Top 13",area:57,consumption:1281,cost:936.76},{unit:11,location:"2UG Top 12",area:57,consumption:1661,cost:1059.59},{unit:12,location:"2UG Top 11",area:27,consumption:2069,cost:920.38},{unit:13,location:"2UG Top 10",area:28,consumption:2670,cost:1119.25},{unit:14,location:"2UG Top 9",area:57,consumption:654,cost:734.12},{unit:15,location:"2UG Top 8",area:57,consumption:1189.222,cost:907.11},{unit:16,location:"EG Top 22",area:36,consumption:786.456,cost:589.76},{unit:17,location:"EG Top 21",area:36,consumption:99.384,cost:367.72},{unit:18,location:"EG Top 20",area:39,consumption:497.819,cost:517.43},{unit:19,location:"EG Top 19",area:39,consumption:1465.605,cost:840.62}
1,{unit:20,location:"EG Top 15",area:28,consumption:0,cost:257.23},{unit:21,location:"EG Top 18",area:56,consumption:1472.635,cost:994.08},{unit:22,location:"EG Top 17",area:56,consumption:30,cost:527.85},{unit:23,location:"EG Top 16",area:65,consumption:1464,cost:1075.93},{unit:24,location:"1OG Top 30",area:36,consumption:2034.84,cost:993.25},{unit:25,location:"1OG Top 29",area:36,consumption:1837.894,cost:929.59},{unit:26,location:"1OG Top 28",area:36,consumption:1825.566,cost:925.6},{unit:27,location:"1OG Top 27",area:36,consumption:694.656,cost:560.11},{unit:28,location:"1OG Top 23",area:28,consumption:883,cost:542.62},{unit:29,location:"1OG Top 26",area:53,consumption:1838,cost:1078.96},{unit:30,location:"1OG Top 25",area:53,consumption:498,cost:645.9},{unit:31,location:"1OG Top 24",area:53,consumption:2622.327,cost:1332.46},{unit:32,location:"2OG Top 38",area:30,consumption:369,cost:473.25},{unit:33,location:"2OG Top 37",area:36,consumption:876,cost:618.7},{unit:34,location:"2OG Top 36",area:36,consumption:3042,cost:1318.75},{unit:35,location:"2OG Top 35",area:42,consumption:335.582,cost:497.52},{unit:36,location:"2OG Top 31",area:28,consumption:73,cost:280.82},{unit:37,location:"2OG Top 34",area:39,consumption:2860,cost:1427.69},{unit:38,location:"2OG Top 33",area:44,consumption:771,cost:752.56},{unit:39,location:"2OG Top 32",area:53,consumption:730,cost:720.88},{unit:40,location:"1DG Top 45",area:36,consumption:774,cost:577.93},{unit:41,location:"1DG Top 44",area:30,consumption:1536,cost:842.59},{unit:42,location:"1DG Top 43",area:36,consumption:4335,cost:1728.81},{unit:43,location:"1DG Top 42",area:36,consumption:8402,cost:3043.2},{unit:44,location:"1DG Top 41",area:53,consumption:1070,cost:830.76},{unit:45,location:"1DG Top 40",area:28,consumption:3702,cost:1699.82},{unit:46,location:"1DG Top 39",area:53,consumption:1415,cost:942.27},{unit:47,location:"1DG Top 46",area:18,consumption:339.5,cost:205.99},{unit:48,location:"1DG Top 47",area:18,consumption:339.5,cost:205.98},{unit:49,location:"1DG Top 48",area:18,consumption:1465,cost:636.67},{unit:50,location:"1DG Top 50",area:73,consumption:2405.523,cost:1448.82},{unit:51,location:"1DG Top 49",area:52,consumption:541,cost:653.34},{unit:52,location:"2DG Top 51",area:17,consumption:605,cost:354.58},{unit:53,location:"2DG Top 52",area:17,consumption:2842,cost:1077.55}],Qt=[{unit:1,location:"1UG Top 50A",area:35,consumption:3271,cost:1849.67},{unit:2,location:"1UG Top 7",area:28,consumption:2480,cost:1420.04},{unit:3,location:"1UG Top 6",area:57,consumption:394,cost:829.69},{unit:4,location:"1UG Top 5",area:57,consumption:3412,cost:2166.91},{unit:5,location:"1UG Top 4",area:28,consumption:7,cost:324.31},{unit:6,location:"1UG Top 3",area:28,consumption:3504,cost:1873.75},{unit:7,location:"1UG Top 2",area:57,consumption:857,cost:1034.86},{unit:8,location:"1UG Top 1",area:57,consumption:2422,cost:1728.29},{unit:9,location:"2UG Top 14",area:57,consumption:2412.91,cost:1724.23},{unit:10,location:"2UG Top 13",area:57,consumption:1744,cost:1427.86},{unit:11,location:"2UG Top 12",area:57,consumption:2082,cost:1577.62},{unit:12,location:"2UG Top 11",area:27,consumption:2209,cost:1294.19},{unit:13,location:"2UG Top 10",area:28,consumption:2008,cost:1210.91},{unit:14,location:"2UG Top 9",area:57,consumption:2278,cost:1664.49},{unit:15,location:"2UG Top 8",area:57,consumption:1571.1,cost:1351.25},{unit:16,location:"EG Top 22",area:36,consumption:950.876,cost:841.88},{unit:17,location:"EG Top 21",area:36,consumption:91,cost:460.91},{unit:18,location:"EG Top 20",area:39,consumption:576.179,cost:702.12},{unit:19,location:"EG Top 19",area:39,consumption:1222.64,cost:1001.24},{unit:20,location:"EG Top 15",area:28,consumption:465.39,cost:551.01},{unit:21,location:"EG Top 18",area:56,consumption:961.174,cost:1075.22},{unit:22,location:"EG Top 17",area:56,consumption:274,cost:770.78},{unit:23,location:"EG Top 16",area:65,consumption:1503,cost:1421.38},{unit:24,location:"1OG Top 30",area:36,consumption:883.169,cost:811.88},{unit:25,location:"1OG Top 29",area:36,consumption:1358.35,cost:1022.46},{unit:26,location:"1OG Top 28",area:36,consumption:1376,cost:1030.25},{unit:27,location:"1OG Top 27",area:36,consumption:854,cost:798.97},{unit:28,location:"1OG Top 23",area:28,consumption:955,cost:745.53},{unit:29,location:"1OG Top 26",area:53,consumption:2931,cost:1906.41},{unit:30,location:"1OG Top 25",area:53,consumption:530,cost:842.59},{unit:31,location:"1OG Top 24",area:53,consumption:2070.6,cost:1525.21},{unit:32,location:"2OG Top 38",area:36,consumption:9,cost:424.59},{unit:33,location:"2OG Top 37",area:36,consumption:597,cost:685.09},{unit:34,location:"2OG Top 36",area:36,consumption:3298,cost:188
11.85},{unit:35,location:"2OG Top 35",area:42,consumption:1706.88,cost:1243.87},{unit:36,location:"2OG Top 31",area:28,consumption:113,cost:372.43},{unit:37,location:"2OG Top 34",area:53,consumption:431,cost:798.73},{unit:38,location:"2OG Top 33",area:53,consumption:1418,cost:1236.05},{unit:39,location:"2OG Top 32",area:53,consumption:969,cost:1037.13},{unit:40,location:"1DG Top 45",area:36,consumption:861,cost:792.25},{unit:41,location:"1DG Top 44",area:36,consumption:1906,cost:1255.27},{unit:42,location:"1DG Top 43",area:36,consumption:2496,cost:1516.68},{unit:43,location:"1DG Top 42",area:36,consumption:3038,cost:1756.83},{unit:44,location:"1DG Top 41",area:53,consumption:827,cost:974.19},{unit:45,location:"1DG Top 40",area:53,consumption:2569,cost:1746.03},{unit:46,location:"1DG Top 39",area:53,consumption:181,cost:687.97},{unit:47,location:"1DG Top 46",area:18,consumption:497.5,cost:267.47},{unit:48,location:"1DG Top 47",area:18,consumption:497.5,cost:267.47},{unit:49,location:"1DG Top 48",area:18,consumption:1547,cost:889.95},{unit:50,location:"1DG Top 50",area:73,consumption:934.005,cost:1255.22},{unit:51,location:"1DG Top 49",area:52,consumption:443,cost:655.75},{unit:52,location:"2DG Top 51",area:17,consumption:1486,cost:880.17},{unit:53,location:"2DG Top 52",area:17,consumption:897,cost:596.75}],ea=[{unit:1,location:"1UG Top 50A",area:35,consumption:2879.656,cost:1665.49},{unit:2,location:"1UG Top 7",area:28,consumption:2171,cost:1297.41},{unit:3,location:"1UG Top 6",area:57,consumption:669,cost:948.25},{unit:4,location:"1UG Top 5",area:57,consumption:4302,cost:2545.
105},{unit:5,location:"1UG Top 4",area:28,consumption:4,cost:322.51},{unit:6,location:"1UG Top 3",area:28,consumption:3191,cost:1723.29},{unit:7,location:"1UG Top 2",area:57,consumption:6819.223,cost:3651.42},{unit:8,location:"1UG Top 1",area:57,consumption:2711,cost:1845.77},{unit:9,location:"2UG Top 14",area:57,consumption:3136.777,cost:2032.9},{unit:10,location:"2UG Top 13",area:57,consumption:1279,cost:1216.36},{unit:11,location:"2UG Top 12",area:57,consumption:2209,cost:1625.11},{unit:12,location:"2UG Top 11",area:27,consumption:1775,cost:1117.6},{unit:13,location:"2UG Top 10",area:28,consumption:2539,cost:1436.72},{unit:14,location:"2UG Top 9",area:57,consumption:1989,cost:1528.43},{unit:15,location:"2UG Top 8",area:57,consumption:841.744,cost:1024.17},{unit:16,location:"EG Top 22",area:36,consumption:1594.757,cost:1120.92},{unit:17,location:"EG Top 21",area:36,consumption:326.028,cost:563.28},{unit:18,location:"EG Top 20",area:39,consumption:728.29,cost:766.27},{unit:19,location:"EG Top 19",area:39,consumption:1419.696,cost:1082.88},{unit:20,location:"EG Top 15",area:28,consumption:1903.485,cost:1158.56},{unit:21,location:"EG Top 18",area:56,consumption:1283.896,cost:1212.75},{unit:22,location:"EG Top 17",area:56,consumption:68,cost:678.32},{unit:23,location:"EG Top 16",area:65,consumption:1279,cost:1316.51},{unit:24,location:"1OG Top 30",area:36,consumption:1027.406,cost:871.57},{unit:25,location:"1OG Top 29",area:36,consumption:1513.294,cost:1085.1},{unit:26,location:"1OG Top 28",area:36,consumption:1530.342,cost:1092.62},{unit:27,location:"1OG Top 27",area:36,consumption:842.009,cost:790.06},{unit:28,location:"1OG Top 23",area:28,consumption:924,cost:728.05},{unit:29,location:"1OG Top 26",area:53,consumption:5754,cost:3158.38},{unit:30,location:"1OG Top 25",area:53,consumption:435,cost:798.1},{unit:31,location:"1OG Top 24",area:53,consumption:1817.455,cost:1405.71},{unit:32,location:"2OG Top 38",area:36,consumption:77,cost:453.82},{unit:33,location:"2OG Top 37",area:36,consumption:1188,cost:942.14},{unit:34,location:"2OG Top 36",area:36,consumption:2569,cost:1549.13},{unit:35,location:"2OG Top 35",area:42,consumption:476.502,cost:696.33},{unit:36,location:"2OG Top 31",area:28,consumption:136,cost:381.68},{unit:37,location:"2OG Top 34",area:53,consumption:1334,cost:1193.23},{unit:38,location:"2OG Top 33",area:53,consumption:1481,cost:1257.85},{unit:39,location:"2OG Top 32",area:53,consumption:1021,cost:1055.65},{unit:40,location:"1DG Top 45",area:36,consumption:729,cost:730.61},{unit:41,location:"1DG Top 44",area:36,consumption:2646,cost:1573.17},{unit:42,location:"1DG Top 43",area:36,consumption:4647,cost:2452.68},{unit:43,location:"1DG Top 42",area:36,consumption:3965,cost:2152.92},{unit:44,location:"1DG Top 41",area:53,consumption:928,cost:1014.79},{unit:45,location:"1DG Top 40",area:53,consumption:1931,cost:1455.63},{unit:46,location:"1DG Top 39",area:53,consumption:172,cost:682.51},{unit:47,location:"1DG Top 46",area:18,consumption:912,cost:312.3},{unit:48,location:"1DG Top 47",area:18,consumption:912,cost:312.31},{unit:49,location:"1DG Top 48",area:18,consumption:560,cost:450.36},{unit:50,location:"1DG Top 50",area:73,consumption:1190.574,cost:1363.49},{unit:51,location:"1DG Top 49",area:52,consumption:992,cost:716.39},{unit:52,location:"2DG Top 51",area:17,consumption:1194,cost:723.83},{unit:53,location:"2DG Top 52",area:17,consumption:1308,cost:773.94}],Tt={2022:ct,2024:Qt,2025:ea},At=r=>r.replace(/^.*Top\s*/,""),ta=r=>parseInt(At(r),10)||0;ct.reduce((r,s)=>r+s.cost,0);ct.reduce((r,s)=>r+s.area,0);ct.reduce((r,s)=>r+s.consumption,0);const aa=[2021,2022,2023,2024,2025],na={cs:{title:"Detail vytápění po bytech",desc:"Techem Gesamtabrechnung – spotřeba a fakturovaná částka za každou jednotku (brutto vč. DPH)",unit:"Jednotka",location:"Poloha",area:"Plocha",consumption:"Spotřeba (jednotky)",share:"Podíl",cost:"Náklad",perM2:"€/m²",total:"Celkem",sort:"Řadit dle",empty:"Za tento rok nemáme kompletní Gesamtabrechnung po jednotkách – k dispozici jsou pouze individuální vyúčtování vlastníků.",privacy:"Údaje jsou uvedeny bez jmen vlastníků – pouze podle označení jednotky (Top) dle vyúčtování Techem. Slouží pro interní kontrolu společenství vlastníků."},de:{title:"Heizungsdetail je Wohnung",desc:"Techem Gesamtabrechnung – Verbrauch und Rechnungsbetrag je Nutzeinheit (brutto inkl. USt.)",unit:"Einheit",location:"Lage",area:"Fläche",consumption:"Verbrauch (Einheiten)",share:"Anteil",cost:"Kosten",perM2:"€/m²",total:"Gesamt",sort:"Sortieren nach",empty:"Für dieses Jahr liegt keine vollständige Gesamtabrechnung je Einheit vor – nur die individuellen Abrechnungen der Eigentümer.",privacy:"Die Daten werden ohne Eigentümernamen ausgewiesen – nur nac
1h Einheitenbezeichnung (Top) laut Techem-Abrechnung. Dient der internen Kontrolle der Eigentümergemeinschaft."},en:{title:"Heating detail per apartment",desc:"Techem total statement – consumption and invoiced amount per unit (gross incl. VAT)",unit:"Unit",location:"Location",area:"Area",consumption:"Consumption (units)",share:"Share",cost:"Cost",perM2:"€/m²",total:"Total",sort:"Sort by",empty:"No complete per-unit statement is available for this year – only individual owner statements exist.",privacy:"Data is shown without owner names – only by unit label (Top) from the Techem statement. For internal review by the owners association."}},ht=r=>Math.round(r).toLocaleString("fr-FR").replace(/\u202f|\u00a0/g," ")+" €",xt=r=>Math.round(r).toLocaleString("fr-FR").replace(/\u202f|\u00a0/g," "),sa=()=>{const{language:r}=jt(),s=["cs","de","en"].includes(r)?r:"cs",a=na[s],[o,u]=B.useState("unit"),[k,N]=B.useState("asc"),[R,M]=B.useState(qt),O=Tt[R]??[],L=B.useMemo(()=>({cost:O.reduce((p,j)=>p+j.cost,0),area:O.reduce((p,j)=>p+j.area,0),consumption:O.reduce((p,j)=>p+j.consumption,0)}),[O]),h=B.useMemo(()=>{const j=O.map(S=>({...S,top:At(S.location),topNo:ta(S.location),perM2:S.area?S.cost/S.area:0,share:L.cost?S.cost/L.cost:0})).sort((S,w)=>o==="unit"?S.topNo-w.topNo||S.top.localeCompare(w.top):w[o]-S[o]);return k==="asc"&&o!=="unit"?j.reverse():j},[O,o,k,L.cost]),E=p=>{o===p?N(j=>j==="asc"?"desc":"asc"):(u(p),N(p==="unit"?"asc":"desc"))},be=[{key:"unit",label:a.unit},{key:"consumption",label:a.consumption},{key:"cost",label:a.cost},{key:"perM2",label:a.perM2}],U=({active:p,dir:j})=>p?j==="asc"?e.jsx(Bt,{className:"ml-1 h-3 w-3"}):e.jsx(Ut,{className:"ml-1 h-3 w-3"}):null;return e.jsxs(Y,{children:[e.jsxs(J,{className:"pb-3",children:[e.jsx(Z,{className:"font-serif text-base",children:`${a.title} (${R})`}),e.jsx(Ze,{className:"text-xs",children:a.desc})]}),e.jsxs(X,{className:"space-y-4",children:[e.jsx("div",{className:"flex flex-wrap items-center gap-1.5",children:aa.map(p=>{var S;const j=!!((S=Tt[p])!=null&&S.length);return e.jsx(ft,{size:"sm",variant:R===p?"default":"outline",className:`h-7 text-xs ${j?"":"opacity-50"}`,onClick:()=>M(p),children:p},p)})}),h.length===0?e.jsxs("div",{className:"flex gap-2 rounded-lg border border-border bg-muted/30 p-3 text-xs text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 shrink-0"}),e.jsx("p",{children:a.empty})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:[a.sort,":"]}),be.map(p=>e.jsxs(ft,{size:"sm",variant:o===p.key?"default":"outline",className:"h-7 text-xs inline-flex items-center",onClick:()=>E(p.key),children:[p.label,e.jsx(U,{active:o===p.key,dir:k})]},p.key))]}),e.jsx("div",{className:"space-y-2 md:hidden",children:h.map(p=>e.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-3",children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[e.jsxs("div",{className:"text-sm font-medium",children:["Top ",p.top,e.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:p.location})]}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:ht(p.cost)})]}),e.jsxs("div",{className:"mt-1 grid grid-cols-3 gap-2 text-[11px] text-muted-foreground tabular-nums",children:[e.jsxs("span",{children:[p.area," m²"]}),e.jsx("span",{children:xt(p.consumption)}),e.jsxs("span",{children:[p.perM2.toFixed(1)," €/m²"]})]})]},p.unit))}),e.jsx("div",{className:"hidden md:block",children:e.jsxs(ze,{children:[e.jsx(Se,{children:e.jsxs(z,{className:"bg-muted/50",children:[e.jsx(T,{className:Qe("h-8 p-0 font-serif text-xs",o==="unit"&&"bg-muted/70"),children:e.jsxs("div",{className:"flex h-full w-full cursor-pointer items-center px-2 hover:bg-muted/70 transition-colors",onClick:()=>E("unit"),children:[a.unit,e.jsx(U,{active:o==="unit",dir:k})]})}),e.jsx(T,{className:"h-8 font-serif text-xs",children:a.location}),e.jsx(T,{className:"h-8 text-right font-serif text-xs",children:a.area}),e.jsx(T,{className:Qe("h-8 p-0 text-right font-serif text-xs",o==="consumption"&&"bg-muted/70"),children:e.jsxs("div",{className:"flex h-full w-full cursor-pointer items-center justify-end px-2 hover:bg-muted/70 transition-colors",onClick:()=>E("consumption"),children:[a.consumption,e.jsx(U,{active:o==="consumption",dir:k})]})}),e.jsx(T,{className:Qe("h-8 p-0 text-right font-serif text-xs",o==="cost"&&"bg-muted/70"),children:e.jsxs("div",{className:"flex h-full w-full cursor-pointer items-center justify-end px-2 hover:bg-muted/70 transition-colors",onClick:()=>
1E("cost"),children:[a.cost,e.jsx(U,{active:o==="cost",dir:k})]})}),e.jsx(T,{className:"h-8 text-right font-serif text-xs",children:a.share}),e.jsx(T,{className:Qe("h-8 p-0 text-right font-serif text-xs",o==="perM2"&&"bg-muted/70"),children:e.jsxs("div",{className:"flex h-full w-full cursor-pointer items-center justify-end px-2 hover:bg-muted/70 transition-colors",onClick:()=>E("perM2"),children:[a.perM2,e.jsx(U,{active:o==="perM2",dir:k})]})})]})}),e.jsxs(Ge,{children:[h.map(p=>e.jsxs(z,{className:"h-9",children:[e.jsxs(m,{className:"whitespace-nowrap py-1 text-xs font-medium",children:["Top ",p.top]}),e.jsx(m,{className:"whitespace-nowrap py-1 text-xs text-muted-foreground",children:p.location}),e.jsxs(m,{className:"py-1 text-right text-xs tabular-nums",children:[p.area," m²"]}),e.jsx(m,{className:"py-1 text-right text-xs tabular-nums",children:xt(p.consumption)}),e.jsx(m,{className:"py-1 text-right text-xs tabular-nums",children:ht(p.cost)}),e.jsxs(m,{className:"py-1 text-right text-xs tabular-nums",children:[(p.share*100).toFixed(1)," %"]}),e.jsx(m,{className:"py-1 text-right text-xs tabular-nums",children:p.perM2.toFixed(1)})]},p.unit)),e.jsxs(z,{className:"h-9 bg-muted/50 font-medium",children:[e.jsx(m,{className:"py-1 text-xs",colSpan:2,children:a.total}),e.jsxs(m,{className:"py-1 text-right text-xs tabular-nums",children:[L.area," m²"]}),e.jsx(m,{className:"py-1 text-right text-xs tabular-nums",children:xt(L.consumption)}),e.jsx(m,{className:"py-1 text-right text-xs tabular-nums",children:ht(L.cost)}),e.jsx(m,{className:"py-1 text-right text-xs tabular-nums",children:"100,0 %"}),e.jsx(m,{className:"py-1 text-right text-xs tabular-nums",children:(L.cost/L.area).toFixed(1)})]})]})]})})]}),e.jsxs("div",{className:"flex gap-2 rounded-lg border border-border bg-muted/30 p-3 text-xs text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 shrink-0"}),e.jsx("div",{className:"space-y-1",children:e.jsx("p",{children:a.privacy})})]})]})]})},I={sheets:{overview:{cs:"Přehled",de:"Überblick",en:"Overview"},groups:{cs:"Skupiny",de:"Gruppen",en:"Groups"},detail:{cs:"Detail položek",de:"Detailpositionen",en:"Detail items"}
1,circles:{cs:"Další okruhy",de:"Weitere Kreise",en:"Other circles"},oil:{cs:"Topný olej",de:"Heizöl",en:"Heating oil"},manager:{cs:"Náklady správce",de:"Kosten Verwaltung",en:"Management costs"},reserve:{cs:"Rezervní fond",de:"Rücklage",en:"Reserve fund"}},title:{cs:"Provozní náklady domu – report",de:"Betriebskosten – Report",en:"Operating costs – report"},exported:{cs:"Datum exportu",de:"Exportdatum",en:"Export date"},vatNote:{cs:"Všechny částky jsou včetně DPH (v EUR) – tj. částky skutečně hrazené vlastníky.",de:"Alle Beträge inkl. USt. (in EUR) – also die von den Eigentümern tatsächlich bezahlten Beträge.",en:"All amounts incl. VAT (in EUR) – i.e. amounts actually paid by owners."},vatNoteManager:{cs:"Všechny částky vč. DPH (BK allg. + 10 % USt) – tj. částky skutečně hrazené vlastníky.",de:"Alle Beträge inkl. USt. (BK allg. + 10 % USt) – tatsächlich von den Eigentümern bezahlt.",en:"All amounts incl. VAT (general operating costs + 10% VAT) – as actually paid by owners."},vatNoteOil:{cs:"Ceny oleje jsou NETTO dle Techem (bez DPH); brutto náklad na topení je v listu „Další okruhy“ (vč. 20 % DPH).",de:"Ölpreise sind NETTO laut Techem (ohne USt.); die Bruttoheizkosten stehen im Blatt „Weitere Kreise“ (inkl. 20 % USt.).",en:"Oil prices are NET per Techem (excl. VAT); gross heating cost is on the “Other circles” sheet (incl. 20% VAT)."},year:{cs:"Rok",de:"Jahr",en:"Year"},group:{cs:"Skupina",de:"Gruppe",en:"Group"},item:{cs:"Položka",de:"Position",en:"Item"},note:{cs:"Poznámka",de:"Bemerkung",en:"Note"},bk:{cs:"Provozní náklady (BK allg.)",de:"Betriebskosten allgemein",en:"Operating costs (general)"},heat:{cs:"Topení + teplá voda",de:"Heizung + Warmwasser",en:"Heating + hot water"},water:{cs:"Voda / silnice / zimní služba",de:"Wasser / Straße / Winterdienst",en:"Water / road / winter service"},running:{cs:"Provoz celkem (bez rezervy)",de:"Laufende Kosten gesamt (ohne Rücklage)",en:"Running costs total (excl. reserve)"},reserveExp:{cs:"Výdaje rezervního fondu",de:"Ausgaben Rücklage",en:"Reserve fund expenditure"},reserveBal:{cs:"Stav rezervního fondu k 31. 12.",de:"Rücklagenstand zum 31.12.",en:"Reserve fund balance at 31 Dec"},change:{cs:"Změna vs. předchozí rok",de:"Veränderung zum Vorjahr",en:"Change vs. previous year"},total:{cs:"CELKEM",de:"GESAMT",en:"TOTAL"},vat:{cs:"DPH",de:"USt.",en:"VAT"},net:{cs:"Netto dle vyúčtování",de:"Netto laut Abrechnung",en:"Net per statement"},gross:{cs:"Brutto (hrazeno vlastníky)",de:"Brutto (von Eigentümern bezahlt)",en:"Gross (paid by owners)"},netGrossTitle:{cs:"Kontrola netto / brutto",de:"Kontrolle netto / brutto",en:"Net / gross check"},oilOpening:{cs:"Stav nádrže k 1. 1. (L)",de:"Bestand am 1.1. (L)",en:"Opening stock (L)"},oilDelivered:{cs:"Dodávky (L)",de:"Anlieferung (L)",en:"Deliveries (L)"},oilClosing:{cs:"Zbytek k 31. 12. (L)",de:"Restbestand am 31.12. (L)",en:"Closing stock (L)"},oilBurned:{cs:"Protopeno (L)",de:"Verbrauch (L)",en:"Burned (L)"},oilCost:{cs:"Náklad na olej (netto)",de:"Ölkosten (netto)",en:"Oil 
1cost (net)"},oilPrice:{cs:"Cena za litr (netto)",de:"Preis pro Liter (netto)",en:"Price per liter (net)"},na:{cs:"neuvedeno",de:"nicht angegeben",en:"not stated"},purpose:{cs:"Za co (účel)",de:"Wofür (Zweck)",en:"What for (purpose)"},shareRunning:{cs:"Podíl na provozu (poslední rok)",de:"Anteil an lauf. Kosten (letztes Jahr)",en:"Share of running costs (last year)"},managerTitle:{cs:"Náklady na správu domu – kdo, kolik a za co",de:"Verwaltungskosten – wer, wie viel und wofür",en:"Management costs – who, how much and what for"},recipient:{cs:"Příjemce / role",de:"Empfänger / Rolle",en:"Recipient / role"},file:{cs:"provozni-naklady",de:"betriebskosten",en:"operating-costs"}},oa={"Mzdy – Walter & Margit":{cs:"Hrubé mzdy domovnického páru – denní úklid domu a společných prostor, obsluha kotelny a bazénu, drobná údržba, kontrola objektu.",de:"Bruttolöhne des Hausbesorger-Ehepaars – tägliche Reinigung von Haus und Allgemeinflächen, Betreuung von Heizraum und Hallenbad, Kleininstandhaltung, Objektkontrolle.",en:"Gross wages of the caretaker couple – daily cleaning of the building and common areas, boiler room and pool operation, minor maintenance, site checks."},"Mzdové odvody":{cs:"Zákonné odvody a příspěvky zaměstnavatele ke mzdám domovníků (daně, fondy).",de:"Gesetzliche Lohnabgaben und Dienstgeberbeiträge zu den Hausbesorgerlöhnen.",en:"Statutory payroll levies and employer contributions on caretaker wages."},"Sociální pojištění správce":{cs:"Sociální a zdravotní pojištění domovníků (ÖGK) – od 2024 vykazováno samostatně.",de:"Sozialversicherung der Hausbesorger (ÖGK) – ab 2024 gesondert ausgewiesen.",en:"Caretaker social insurance (ÖGK) – reported separately since 2024."},"Extra venkovní údržba (Aussenanlagen)":{cs:"Práce nad rámec mzdy – sekání a údržba zeleně, okolí domu, parkoviště, chodníky.",de:"Leistungen über den Lohn hinaus – Grünflächenpflege, Außenanlagen, Parkplatz, Gehwege.",en:"Work beyond wages – green areas, outdoor grounds, parking, walkways."},"Extra ostatní práce":{cs:"Jednorázové vyúčtované práce a náklady domovníka (např. elektřina/topení domovnického bytu).",de:"Einmalig verrechnete Leistungen und Kosten des Hausmeisters (z. B. Strom/Heizung Hausmeister).",en:"One-off invoiced caretaker services and costs (e.g. caretaker electricity/heating)."},"Externí správa domu (Hausverwaltung)":{cs:"Odměna profesionální externí správy domu (Hausverwaltung) – účetnictví a roční vyúčtování, platby dodavatelům, smlouvy, pojistné události, příprava a vedení shromáždění vlastníků, právní agenda. Netýká se domovníků.",de:"Honorar der professionellen externen Hausverwaltung – Buchhaltung und Jahresabrechnung, Zahlungsverkehr an Lieferanten, Verträge, Schadensfälle, Vorbereitung und Leitung der Eigentümerversammlung, rechtliche Agenden. Betrifft nicht die Hausbesorger.",en:"Fee of the professional external property management company – bookkeeping and annual statements, supplier payments, contracts, insurance claims, preparing and chairing the owners meeting, legal matters. Not related to the caretakers."},Telefon:{cs:"Telefonní linka domovníka – provozní komunikace s vlastníky, dodavateli a servisními firmami (náklad spojený s domovníkem, ne se správou).",de:"Telefonanschluss des Hausbesorgers – Betriebskommunikation mit Eigentümern, Lieferanten und Servicefirmen (Kosten des Hausbesorgers, nicht der Verwaltung).",en:"Caretaker phone line – operational communication with owners, suppliers and service companies (a caretaker-related cost, not a management fee)."},Internet:{cs:"Internetové připojení pro domovníka a techniku domu (výtah, kotelna, kamera, komunikace) – náklad spojený s domovníkem, ne se správou.",de:"Internetanschluss für den Hausbesorger und die Haustechnik (Aufzug, Heizraum, Kamera, Kommunikation) – Kosten des Hausbesorgers, nicht der Verwaltung.",en:"Internet connection for the caretaker and building technology (elevator, boiler room, camera, communication) – a caretaker-related cost, not a management fee."},Poštovné:{cs:"Poštovné za korespondenci se spoluvlastníky a úřady (agenda správy).",de:"Porto für Korrespondenz mit Miteigentümern und Behörden (Verwaltungsagenda).",en:"Postage for correspondence with co-owners and authorities (management agenda)."}
1,"Úroky a bankovní poplatky":{cs:"Není odměna za správu ani náklad domovníka – jde o finanční náklady společenství: vedení bankovního účtu, poplatky za platební styk a úroky (např. z úvěru / kontokorentu).",de:"Weder Verwaltungshonorar noch Hausbesorgerkosten – Finanzierungskosten der Eigentümergemeinschaft: Kontoführung, Spesen des Zahlungsverkehrs und Zinsen (z. B. Kredit / Überziehung).",en:"Neither a management fee nor a caretaker cost – financing costs of the owners association: bank account maintenance, transaction fees and interest (e.g. loan / overdraft)."}},zt={caretaker:{cs:"Domovník (provoz)",de:"Hausbesorger (Betrieb)",en:"Caretaker (operations)"},manager:{cs:"Externí správa domu",de:"Externe Hausverwaltung",en:"External property management"},finance:{cs:"Bankovní a finanční náklady",de:"Bank- und Finanzierungskosten",en:"Bank & financing costs"}},ra={"Externí správa domu (Hausverwaltung)":"manager",Poštovné:"manager",Telefon:"caretaker",Internet:"caretaker","Úroky a bankovní poplatky":"finance"},rt=["caretaker","manager","finance"],it=r=>ra[r.label.cs]||(r.group==="admin"?"manager":"caretaker"),ia=["caretaker","admin"],Re=["caretaker","admin","energy","pool","maintenance","taxes","other"],H='#,##0 €;(#,##0 €);"-"',St='#,##0;(#,##0);"-"',Gt="0.000 €",lt="FF16453A",la="FFEDF3F0",ca="FFD5DEDA",fe="Arial",_=r=>{let s="",a=r;for(;a>0;){const o=(a-1)%26;s=String.fromCharCode(65+o)+s,a=Math.floor((a-1)/26)}return s},me={style:"thin",color:{argb:ca}};function De(r,s,a,o,u){r.mergeCells(1,1,1,u);const k=r.getCell(1,1);k.value=s,k.font={name:fe,bold:!0,size:15,color:{argb:lt}},k.alignment={vertical:"middle"},r.getRow(1).height=26,r.mergeCells(2,1,2,u);const N=r.getCell(2,1);N.value=a,N.font={name:fe,size:9,color:{argb:"FF6B7C76"}},r.mergeCells(3,1,3,u);const R=r.getCell(3,1);R.value=o,R.font={name:fe,size:9,italic:!0,color:{argb:"FF6B7C76"}}}function ve(r,s,a,o=1){const u=r.getRow(s);u.height=28;for(let k=1;k<=a;k++){const N=u.getCell(k);N.font={name:fe,bold:!0,size:10,color:{argb:"FFFFFFFF"}},N.fill={type:"pattern",pattern:"solid",fgColor:{argb:lt}},N.alignment={horizontal:k<=o||k===a&&o>1?"left":"right",vertical:"middle",wrapText:!0},N.border={top:me,bottom:me,left:me,right:me}}}function oe(r,s,a,o,u=1,k=!0){for(let N=s;N<=a;N++){const R=r.getRow(N);k&&(R.height=17);for(let M=1;M<=o;M++){const O=R.getCell(M);O.font={name:fe,size:10},O.border={top:me,bottom:me,left:me,right:me},O.alignment={horizontal:M<=u?"left":"right",vertical:"middle"},(N-s)%2===1&&(O.fill={type:"pattern",pattern:"solid",fgColor:{argb:"FFF7FAF9"}})}}}function Oe(r,s,a){const o=r.getRow(s);o.height=20;for(let u=1;u<=a;u++){const k=o.getCell(u);k.font={name:fe,bold:!0,size:10,color:{argb:lt}},k.fill={type:"pattern",pattern:"solid",fgColor:{argb:la}},k.border={top:{style:"medium",color:{argb:lt}},bottom:me,left:me,right:me},k.alignment={horizontal:u===1?"left":"right",vertical:"middle"}}}function G(r,s,a,o,u,k){for(let N=s;N<=a;N++)for(let R=o;R<=u;R++)r.getCell(N,R).numFmt=k}function Ae(r,s){s.forEach((a,o)=>r.getColumn(o+1).width=a)}async function da(r="cs"){const s=n=>I[n][r],a=[...Ot],o=a.length,u=new $t.Workbook;u.creator="Hintermoos",u.created=new Date;const k=new Date().toLocaleDateString(r==="cs"?"cs-CZ":r==="de"?"de-AT":"en-GB"),N=`${s("exported")}: ${k}`,R=ie.find(n=>n.label.cs==="Vytápění"),M=ie.find(n=>n.label.cs==="Teplá voda"),O=ie.find(n=>n.label.cs==="Voda / silnice / zimní služba"),L=ie.find(n=>n.label.cs==="Výdaje rezervního fondu"),h=u.addWorksheet(I.sheets.overview[r],{views:[{state:"frozen",xSplit:1,ySplit:5}],pageSetup:{orientation:"landscape",fitToPage:!0,fitToWidth:1,fitToHeight:0}}),E=o+1;De(h,s("title"),N,s("vatNote"),E),Ae(h,[44,...a.map(()=>16)]),h.getRow(5).values=[s("year"),...a.map(n=>String(n))],ve(h,5,E);const be=6;h.getRow(6).values=[s("bk"),...a.map(n=>Ee(n))],h.getRow(7).values=[s("heat"),...a.map(n=>((R==null?void 0:R.values[n])||0)+((M==null?void 0:M.values[n])||0))],h.getRow(8).values=[s("water"),...a.map(n=>(O==null?void 0:O.values[n])||0)],oe(h,6,8,E),G(h,6,8,2,E,H);const U=9;h.getCell(U,1).value=s("running"),a.forEach((n,c)=>{const x=_(c+2);h.getCell(U,c+2).value={formula:`SUM(${x}${be}:${x}8)`}}),Oe(h,U,E),G(h,U,U,2,E,H);const p=10;
1h.getCell(p,1).value=s("change"),a.slice(1).forEach((n,c)=>{const x=_(c+3),W=_(c+2);h.getCell(p,c+3).value={formula:`(${x}${U}-${W}${U})/${W}${U}`}}),oe(h,p,p,E),G(h,p,p,2,E,'0.0%;-0.0%;"-"');const j=12;h.getCell(j,1).value=s("reserveExp"),a.forEach((n,c)=>h.getCell(j,c+2).value=(L==null?void 0:L.values[n])??null),h.getCell(j+1,1).value=s("reserveBal"),a.forEach((n,c)=>h.getCell(j+1,c+2).value=Xe[n]??null),oe(h,j,j+1,E),G(h,j,j+1,2,E,H);const S=j+3;h.getRow(S).values=[s("group"),...a.map(n=>String(n))],ve(h,S,E),Re.forEach((n,c)=>{h.getRow(S+1+c).values=[re[n][r],...a.map(x=>P(n,x))]}),oe(h,S+1,S+Re.length,E),G(h,S+1,S+Re.length,2,E,H);const w=S+Re.length+1;h.getCell(w,1).value=s("total"),a.forEach((n,c)=>{const x=_(c+2);h.getCell(w,c+2).value={formula:`SUM(${x}${S+1}:${x}${w-1})`}}),Oe(h,w,E),G(h,w,w,2,E,H);const y=u.addWorksheet(I.sheets.groups[r],{views:[{state:"frozen",xSplit:1,ySplit:5}],pageSetup:{orientation:"landscape",fitToPage:!0,fitToWidth:1,fitToHeight:0}}),ee=o+2;De(y,`${s("title")} – ${I.sheets.groups[r]}`,N,s("vatNote"),ee),Ae(y,[36,...a.map(()=>15),18]),y.getRow(5).values=[s("group"),...a.map(n=>String(n)),s("total")],ve(y,5,ee),Re.forEach((n,c)=>{const x=6+c;y.getRow(x).values=[re[n][r],...a.map(W=>P(n,W))],y.getCell(x,ee).value={formula:`SUM(B${x}:${_(o+1)}${x})`}});const Ne=5+Re.length;oe(y,6,Ne,ee),G(y,6,Ne,2,ee,H);const te=Ne+1;y.getCell(te,1).value=s("total");for(let n=2;n<=ee;n++){const c=_(n);y.getCell(te,n).value={formula:`SUM(${c}6:${c}${Ne})`}}Oe(y,te,ee),G(y,te,te,2,ee,H);const A=u.addWorksheet(I.sheets.detail[r],{views:[{state:"frozen",xSplit:2,ySplit:5}],pageSetup:{orientation:"landscape",fitToPage:!0,fitToWidth:1,fitToHeight:0}}),le=o+4;De(A,`${s("title")} – ${I.sheets.detail[r]}`,N,s("vatNote"),le),Ae(A,[24,42,...a.map(()=>14),16,60]),A.getRow(5).values=[s("group"),s("item"),...a.map(n=>String(n)),s("total"),s("note")],ve(A,5,le,2);const He=Re.flatMap(n=>Ce.filter(c=>c.group===n));He.forEach((n,c)=>{var W;const x=6+c;A.getRow(x).values=[re[n.group][r],n.label[r],...a.map(we=>n.values[we]||0)],A.getCell(x,o+3).value={formula:`SUM(C${x}:${_(o+2)}${x})`},A.getCell(x,o+4).value=((W=n.note)==null?void 0:W[r])||""});const pe=5+He.length;oe(A,6,pe,le,2,!1),G(A,6,pe,3,o+3,H);for(let n=6;n<=pe;n++)A.getCell(n,le).alignment={horizontal:"left",vertical:"middle",wrapText:!0},A.getCell(n,le).font={name:fe,size:9,color:{argb:"FF6B7C76"}};const je=pe+1;A.getCell(je,1).value=s("total");for(let n=3;n<=o+3;n++){const c=_(n);A.getCell(je,n).value={formula:`SUM(${c}6:${c}${pe})`}}Oe(A,je,le),G(A,je,je,3,o+3,H),A.autoFilter={from:{row:5,column:1}
1,to:{row:pe,column:le}};const C=u.addWorksheet(I.sheets.circles[r],{views:[{state:"frozen",xSplit:1,ySplit:5}],pageSetup:{orientation:"landscape",fitToPage:!0,fitToWidth:1,fitToHeight:0}}),F=o+3;De(C,`${s("title")} – ${I.sheets.circles[r]}`,N,s("vatNote"),F),Ae(C,[38,26,...a.map(()=>15),70]),C.getRow(5).values=[s("item"),s("vat"),...a.map(n=>String(n)),s("note")],ve(C,5,F,2),ie.forEach((n,c)=>{const x=6+c;C.getRow(x).values=[n.label[r],n.vat===null?s("na"):n.vat,...a.map(W=>n.values[W]??null)],C.getCell(x,F).value=n.note[r]});const Pe=5+ie.length;oe(C,6,Pe,F,2,!1),G(C,6,Pe,3,o+2,H);for(let n=6;n<=Pe;n++){const c=C.getCell(n,2);typeof c.value=="number"&&(c.numFmt="0%"),C.getCell(n,F).alignment={horizontal:"left",vertical:"middle",wrapText:!0},C.getCell(n,F).font={name:fe,size:9,color:{argb:"FF6B7C76"}}}const q=Pe+2;C.getRow(q).values=[s("netGrossTitle"),"",...a.map(n=>String(n))],ve(C,q,F,2);let he=q;bt.forEach(n=>{he+=1,C.getRow(he).values=[n.label[r],s("net"),...a.map(c=>n.net[c]??null)],C.getCell(he,F).value=n.note[r],he+=1,C.getRow(he).values=[n.label[r],s("gross"),...a.map(c=>n.gross[c]??null)]}),oe(C,q+1,he,F,2,!1),G(C,q+1,he,3,o+2,H);for(let n=q+1;n<=he;n++)C.getCell(n,F).alignment={horizontal:"left",vertical:"middle",wrapText:!0},C.getCell(n,F).font={name:fe,size:9,color:{argb:"FF6B7C76"}};const D=u.addWorksheet(I.sheets.oil[r],{views:[{state:"frozen",ySplit:5}],pageSetup:{orientation:"landscape",fitToPage:!0,fitToWidth:1,fitToHeight:0}});De(D,`${s("title")} – ${I.sheets.oil[r]}`,N,s("vatNoteOil"),7),Ae(D,[12,20,18,22,16,20,20]),D.getRow(5).values=[s("year"),s("oilOpening"),s("oilDelivered"),s("oilClosing"),s("oilBurned"),s("oilCost"),s("oilPrice")],ve(D,5,7),Q.forEach((n,c)=>{const x=6+c;D.getRow(x).values=[String(n.year),n.opening??null,n.delivered??null,n.closing??null,n.liters??null,n.costNet??null],n.liters&&n.costNet&&(D.getCell(x,7).value={formula:`F${x}/E${x}`})});const ae=5+Q.length;oe(D,6,ae,7),G(D,6,ae,2,5,St),G(D,6,ae,6,6,H),G(D,6,ae,7,7,Gt);const $=ae+1;D.getCell($,1).value=s("total"),D.getCell($,5).value={formula:`SUM(E6:E${ae})`},D.getCell($,6).value={formula:`SUM(F6:F${ae})`},D.getCell($,7).value={formula:`F${$}/E${$}`},Oe(D,$,7),G(D,$,$,5,5,St),G(D,$,$,6,6,H),G(D,$,$,7,7,Gt);const b=u.addWorksheet(I.sheets.manager[r],{views:[{state:"frozen",xSplit:2,ySplit:5}],pageSetup:{orientation:"landscape",fitToPage:!0,fitToWidth:1,fitToHeight:0}}),ne=o+5;De(b,s("managerTitle"),N,s("vatNoteManager"),ne),Ae(b,[26,40,...a.map(()=>14),16,14,70]),b.getRow(5).values=[s("recipient"),s("item"),...a.map(n=>String(n)),s("total"),s("shareRunning"),s("purpose")],ve(b,5,ne,2);const Be=ia.flatMap(n=>Ce.filter(c=>c.group===n)).sort((n,c)=>rt.indexOf(it(n))-rt.indexOf(it(c))),K=a[a.length-1],Fe=Ee(K)+((R==null?void 0:R.values[K])||0)+((M==null?void 0:M.values[K])||0)+((O==null?void 0:O.values[K])||0);Be.forEach((n,c)=>{var W,we;const x=6+c;b.getRow(x).values=[zt[it(n)][r],n.label[r],...a.map(dt=>n.values[dt]||0)],b.getCell(x,o+3).value={formula:`SUM(C${x}:${_(o+2)}${x})`},b.getCell(x,o+4).value=Fe?(n.values[K]||0)/Fe:null,b.getCell(x,ne).value=((W=oa[n.label.cs])==null?void 0:W[r])||((we=n.note)==null?void 0:we[r])||""});const ke=5+Be.length;oe(b,6,ke,ne,2,!1),G(b,6,ke,3,o+3,H),G(b,6,ke,o+4,o+4,'0.0%;-0.0%;"-"');for(let n=6;n<=ke;n++)b.getCell(n,ne).alignment={horizontal:"left",vertical:"top",wrapText:!0},b.getCell(n,ne).font={name:fe,size:9,color:{argb:"FF6B7C76"}};const ce=ke+1;b.getCell(ce,1).value=s("total");for(let n=3;n<=o+3;n++){const c=_(n);b.getCell(ce,n).value={formula:`SUM(${c}6:${c}${ke})`}}b.getCell(ce,o+4).value={formula:`SUM(${_(o+4)}6:${_(o+4)}${ke})`},Oe(b,ce,ne),G(b,ce,ce,3,o+3,H),G(b,ce,ce,o+4,o+4,'0.0%;-0.0%;"-"');const xe=ce+2;b.getRow(xe).values=[s("recipient"),"",...a.map(n=>String(n)),s("total")],ve(b,xe,o+3,2),rt.forEach((n,c)=>{const x=xe+1+c,W=Be.filter(we=>it(we)===n);b.getRow(x).values=[zt[n][r],"",...a.map(we=>W.reduce((dt,Lt)=>dt+(Lt.values[we]||0),0))],b.getCell(x,o+3).value={formula:`SUM(C${x}:${_(o+2)}${x})`}});const t=xe+rt.length;oe(b,xe+1,t,o+3,2),G(b,xe+1,t,3,o+3,H);const l=t+1;b.getCell(l,1).value=s("total");for(let n=3;n<=o+3;n++){const c=_(n);b.getCell(l,n).value={formula:`SUM(${c}${xe+1}:${c}${t})`}}Oe(b,l,o+3),G(b,l,l,3,o+3,H);const i=u.addWorksheet(I.sheets.reserve[r],{views:[{state:"frozen",ySplit:5}],pageSetup:{orientation:"portrait",fitToPage:!0,fitToWidth:1,fitToHeight:0}});De(i,`${s("title")} – ${I.sheets.reserve[r]}`,N,s("vatNote"),3),Ae(i,[12,32,36]),i.getRow(5).values=[s("year"),s("reserveExp"),s("reserveBal")],ve(i,5,3);const d=Object.keys(Xe).map(Number).sort((n,c)=>n-c);d.forEach((n,c)=>{i.getRow(6+c).values=[String(n),(L==null?void 0:L.values[n])??null,Xe[n]]});const g=5+d.length;oe(i,6,g,3),G(i,6,g,2,3,H);const f=new Date().toISOString().slice(0,10),se=await u.xlsx.writeBuffer(),V=new Blob([se],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),ge=URL.createObjectURL(V),qe=document.createElement("a");qe.href=ge,qe.download=`${I.file[r]}-${a[0]}-${a[a.length-1]}-${f}.xlsx`,qe.click(),URL.revokeObjectURL(ge)}const Le={title:{cs:"Kontrola dokladů (Belegprüfung) – zjištění vlastníků",de:"Belegprüfung – Feststellungen der Eigentümer",en:"Document review (Belegprüfung) – findings by owners"},performed:{cs:"Proběhla v květnu a červnu 2026 před odesláním vyúčtování za rok 2025.",de:"Fand im Mai und Juni 2026 vor Versand der Abrechnung 2025 statt.",en:"Took place in May and June 2026 before the 2025 statement was sent."},participants:["Robert Neuhold","Winfried Kamp"],scope:{cs:"Prohlídka a kontrola dokladů k provozním nákladům (Betriebskostenabrechnung 2025) a srovnání s roky 2021–2024.",de:"Durchsicht und Prüfung der Belege für die Betriebskostenabrechnung 2025 sowie Vergleich mit den Jahren 2021–2024.",en:"Review and inspection of supporting documents for the 2025 operating cost statement and comparison with the years 2021–2024."},findings:{cs:"Provozní náklady za posledních pět let výrazně vzrostly. Podstatnou část nárůstu ale tvoří jednorázové vlivy roku 2025 – opravy bazénu, nová obecní daň a odkup internetového hardware. Po jejich zohlednění je růst zhruba na úrovni inflace a nenašli jsme žádné neoprávněné ani nedoložené výdaje. Rezervní fond není provozní náklad – slouží k investicím a velkým opravám a posuzuje se odděleně.",de:"Die Betriebskosten sind in den letzten fünf Jahren deutlich gestiegen. Ein wesentlicher Teil des Anstiegs geht jedoch auf Sondereinflüsse des Jahres 2025 zurück – Schwimmbadreparaturen, die neue Gemeindeabgabe und den Rückkauf der Internet-Hardware. Bereinigt liegt der Anstieg etwa auf Inflationsniveau; unberechtigte oder nicht belegte Ausgaben wurden nicht festgestellt. Die Rücklage ist kein Betriebskostenaufwand – sie dient Investitionen und Großreparaturen und wird getrennt betrachtet.",en:"Operating costs have risen noticeably over the past five years. A substantial part of the increase stems from one-off effects in 2025 – pool repairs, the new municipal charge and the internet hardware buyback. Adjusted for these, the increase is roughly in line with inflation, and no unjustified or undocumented expenses were found. The reserve fund is not an operating cost – it funds investments and major repairs and is asse
1ssed separately."},openPoints:{cs:"Gemeindeabgabe za nezastavěné pozemky / prázdné byty – bude projednáno na příštím shromáždění vlastníků.",de:"Gemeindeabgabe für unbebaute Grundstücke / leerstehende Wohnungen – wird auf der nächsten Eigentümerversammlung besprochen.",en:"Municipal charge for undeveloped plots / vacant apartments – to be discussed at the next owners meeting."},disclaimer:{cs:"Toto je souhrn zjištění vlastníků Roberta Neuholda a Winfrieda Kampa z kontroly dokladů. Nejedná se o oficiální kontrolní protokol, audit správy domu ani právně závazné vyjádření.",de:"Dies ist eine Zusammenfassung der Feststellungen der Eigentümer Robert Neuhold und Winfried Kamp aus der Belegprüfung. Es handelt sich nicht um ein offizielles Prüfprotokoll, einen Audit der Hausverwaltung oder eine rechtlich bindende Stellungnahme.",en:"This is a summary of findings by owners Robert Neuhold and Winfried Kamp from the document review. It is not an official inspection protocol, a management audit or a legally binding statement."}},ua=[{itemLabelCs:"Krytý bazén",year:2025,summary:{cs:"Více oprav bazénu v roce 2025.",de:"Mehrere Schwimmbad-Reparaturen 2025.",en:"More pool repairs in 2025."},text:{cs:"V roce 2025 bylo u krytého bazénu potřeba více malých i několik větších oprav.",de:"Im Jahr 2025 waren beim Hallenbad mehrere kleine und einige größere Reparaturen erforderlich.",en:"In 2025, the indoor pool required several minor repairs and a few larger ones."},role:"owner",author:"Robert Neuhold",status:"open",date:"2026-07-19"},{itemLabelCs:"Příspěvky",year:2025,summary:{cs:"Nová obecní daň za nezastavěné pozemky.",de:"Neue Gemeindeabgabe für unbebaute Grundstücke.",en:"New municipal charge for undeveloped plots."},text:{cs:"Obec Maria Alm zavedla od roku 2024 (vybíráno 2025) dodatečnou daň za nezastavěné pozemky a prázdné byty. Týká se i našeho pozemku, kde byl před 50 lety plánován druhý dům. Téma bude na příštím shromáždění vlastníků.",de:"Die Gemeinde Maria Alm hat ab 2024 (verrechnet 2025) eine zusätzliche Abgabe für unbebaute Grundstücke und leerstehende Wohnungen eingeführt. Betrifft auch unseren Parkplatz, vor 50 Jahren war dort ein zweites Wohngebäude geplant. Wird auf der nächsten Eigentümerversammlung besprochen.",en:"The municipality of Maria Alm introduced an additional charge from 2024 (billed in 2025) for undeveloped plots and vacant apartments. It also affects our plot, where a second building was planned 50 years ago. Will be discussed at the next owners meeting."},role:"owner",author:"Robert Neuhold",status:"open",date:"2026-07-19"},{itemLabelCs:"Kanalizace",year:2025,summary:{cs:"Vyšší spotřeba vody 2024 a zvýšení akonta.",de:"Höherer Wasserverbrauch 2024 und erhöhte Akontozahlung.",en:"Higher water consumption in 2024 and increased advance payment."},text:{cs:"V roce 2024 byl vyšší spotřeba vody, která se vyrovnala až s ročním vyúčtováním na začátku roku 2025. S tím se současně zvýšila i akonta.",de:"Im Jahr 2024 lag ein höherer Wasserverbrauch vor, der erst mit der Jahresabrechnung Anfang 2025 ausgeglichen wurde. Damit wurde auch die Akontozahlung erhöht.",en:"In 2024, water consumption was higher and was only settled with the annual statement at the beginning of 2025. The advance payment was increased accordingly."},role:"owner",author:"Robert Neuhold",status:"open",date:"2026-07-19"},{itemLabelCs:"Pojištění domu",year:2025,summary:{cs:"Přechod na kalendářní rok a nové ocenění.",de:"Umstellung auf Kalenderjahr und Neubewertung.",en:"Switch to calendar year and new valuation."},text:{cs:"Za ARIS bylo pojištění platné od června do května následujícího roku. Nová správa (ARIS) přešla na kalendářní rok, proto se v roce 2024 platilo pouze 6 měsíců. V roce 2025 byla splatná plná roční prémie. Navíc byl dům nově oceněn (vyšší náklady na obnovu), což zvýšilo pojistné.",de:"Bei A&P lief die Versicherung von Juni bis Mai des Folgejahres. Aris hat dies auf das Kalenderjahr umgestellt, daher wurden 2024 nur 6 Monate Prämie bezahlt. 2025 war die volle Jahresprämie fällig. Außerdem wurde das Haus neu bewertet (höhere Wiederherstellungskosten), was die Prämie erhöhte.",en:"Under A&P the insurance peri
1od ran from June to May of the following year. Aris switched to the calendar year, so only 6 months of premium were paid in 2024. In 2025 the full annual premium was due. The building was also revalued (higher reinstatement costs), increasing the premium."},role:"owner",author:"Robert Neuhold",status:"open",date:"2026-07-19"},{itemLabelCs:"Opravy a údržba",year:2025,summary:{cs:"Dodatečné úklidy po rekonstrukcích a vodních škodách.",de:"Zusätzliche Reinigungen nach Umbauten und Wasserschäden.",en:"Additional cleaning after renovations and water damage."},text:{cs:"Zvýšené náklady v této položce byly způsobeny především dodatečnými úklidy po rekonstrukcích a vodních škodách.",de:"Die zusätzlichen Kosten in dieser Position entstanden vorwiegend durch zusätzlich erforderliche Reinigungen nach Umbauten und Wasserschäden.",en:"The increased costs in this line were mainly caused by additional cleaning required after renovations and water damage."},role:"owner",author:"Robert Neuhold",status:"open",date:"2026-07-19"},{itemLabelCs:"Ostatní náklady",year:2025,summary:{cs:"Zpětný odkup internetové hardware.",de:"Rückkauf Internet-Hardware.",en:"Buyback of internet hardware."},text:{cs:"V položce „Ostatní náklady“ byl v roce 2025 zahrnut zpětný odkup internetové hardware (3 822 €) od Jana. Odkup proběhl na základě rozhodnutí přijatého na shromáždění vlastníků většinou majitelů.",de:"In der Position „Diverser Aufwand“ wurde 2025 der Rückkauf der Internet-Hardware (€ 3.822) von Jan verbucht. Der Rückkauf erfolgte auf Grundlage eines Beschlusses der Eigentümerversammlung, der von der Mehrheit der Eigentümer angenommen wurde.",en:"The „Other costs“ line for 2025 includes the buyback of internet hardware (€ 3,822) from Jan. The buyback was based on a decision adopted at the owners' meeting by a majority of owners."},role:"owner",author:"Robert Neuhold",status:"open",date:"2026-07-19"},{itemLabelCs:"Mzdové odvody",year:2025,summary:{cs:"Odložené mzdové náklady za dovolenkové zastupování 2024.",de:"Verschleppte Lohnkosten für Urlaubsvertretung 2024.",en:"Deferred wage costs for holiday cover 2024."},text:{cs:"ARIS nezaplatilo náklady za dovolenkové zastupování Waltera a Margit v roce 2024, proto tyto náklady dopadly až do roku 2025.",de:"Aris hat die Kosten für die Urlaubsvertretung von Walter und Margit 2024 nicht bezahlt, daher fielen diese Kosten erst 2025 an.",en:"Aris did not pay the costs for holiday cover of Walter and Margit in 2024, so those costs only fell due in 2025."},role:"owner",author:"Robert Neuhold",status:"open",date:"2026-07-19"},{itemLabelCs:"Extra venkovní údržba (Aussenanlagen)",year:2025,summary:{cs:"Mimořádné práce: stříhání stromů.",de:"Außerordentliche Arbeiten: Baumschnitt.",en:"Extraordinary work: tree trimming."},text:{cs:"V nákladech na venkovní údržbu byly mimořádné práce – stříhání stromů nad hlavním vchodem a v oblasti parkoviště.",de:"Bei den Aussenanlagen sind außerordentliche Arbeiten angefallen – Baumschnitt über dem Haupteingang und im Bereich des Parkplatzes.",en:"Extraordinary work was required for outdoor maintenance – tree trimming above the main entrance and in the parking area."},role:"owner",author:"Robert Neuhold",status:"open",date:"2026-07-19"},{itemLabelCs:"Odvoz odpadu",year:2025,summary:{cs:"Vysoké množství odpadu v 1. a 3. čtvrtletí.",de:"Hohe Müllmengen im 1. und 3. Quartal.",en:"High waste volumes in 1st and 3rd quarter."},text:{cs:"Poplatek za odvoz odpadu se skládá ze základního poplatku a částky za kilogram odpadu. V prvním a třetím čtvrtletí byly velmi vysoké objemy, což zvyšuje náklady.",de:"Bei der Müllabfuhr werden sowohl eine Grundgebühr als auch ein Betrag je kg Müll verrechnet. Besonders die Abrechnung des 1. und 3. Quartals weisen sehr hohe Massen auf, was entsprechende Kosten verursacht.",en:"Waste collection charges consist of a base fee and a per-kilogram amount. The 1st and 3rd quarters showed very high volumes, causing higher costs."},role:"owner",author:"Robert Neuhold",status:"open",date:"2026-07-19"}],Et=(r,s)=>ua.filter(a=>a.itemLabelCs===r&&s===void 0),Ct=(r,s)=>({owner:{cs:"Beirat / vlastník",de:"Beirat / Eigentümer",en:"Advisory board / owner"},management:{cs:"Správa domu",de:"Hausverwaltung",en:"Property management"}})[r][s],Rt=(r,s)=>
1({open:{cs:"otevřeno / dosud nepotvrzeno správou",de:"offen / noch nicht von Hausverwaltung bestätigt",en:"open / not yet confirmed by management"},confirmed:{cs:"potvrzeno správou",de:"von Hausverwaltung bestätigt",en:"confirmed by management"}})[r][s],ma={cs:{total:"Skutečně hrazeno vlastníky",perYear:"Vývoj podle let",structure:"Struktura nákladů",groups:"Skupiny nákladů",detail:"Detail položek",caretaker:"Správce / domovník",caretakerDesc:"Jeden náklad domu – rozpad na mzdu a extra práce (skutečně hrazené částky)",wage:"Mzda vč. odvodů a pojištění",extraOut:"Extra venkovní údržba",extraOther:"Extra ostatní práce",share:"Podíl na provozních nákladech",change:"Změna vs. předchozí rok",group:"Skupina",item:"Položka",otherCircles:"Další nákladové okruhy (mimo provozní náklady)",vat:"DPH",note:"Poznámka",vatNote:"Zobrazujeme částky, které vlastníci skutečně hradí – tedy včetně DPH dle vyúčtování (netto hodnoty jsou pouze v kontrolním přehledu níže).",netRef:"Kontrolní přehled: netto dle vyúčtování vs. skutečně hrazeno",netCol:"Netto dle vyúčtování",grossCol:"Skutečně hrazeno (vč. DPH)",groupDetail:"Detailní pohled na skupinu nákladů",groupDetailDesc:"Vyberte skupinu – řazeno od největšího nákladu (skutečně hrazené částky)",tabGroups:"Skupiny",tabItems:"Položky",tabCaretaker:"Správce",na:"neuvedeno",audit:"Kontrola dokladů (Belegprüfung) – zjištění vlastníků",auditDisclaimer:"Upozornění",auditParticipants:"Účastníci kontroly",auditScope:"Rozsah kontroly",auditFindings:"Hlavní zjištění",auditOpen:"Otevřené body",auditBy:"od",auditStatus:"stav",auditExplanation:"Vysvětlení",auditNoNotes:"K této položce zatím nejsou zaznamenány žádné poznámky z kontroly.",withHeating:"Vč. topení a teplé vody",heating:"Vytápění (Techem)",hotwater:"Teplá voda (Techem)",heatingHint:"Topení a teplá voda se účtují samostatně (Techem) a nejsou součástí provozních nákladů.",heatGroup:"Topení a teplá voda",oilTitle:"Spotřeba topného oleje",oilDesc:"Skutečně protopené množství oleje podle Techem Gesamtabrechnung (ne jen dodávky) – náklad a průměrná cena za litr (netto)",oilOpening:"Stav v nádrži k 1. 1.",oilDelivered:"Dodávky během roku",oilClosing:"Zbytek v nádrži k 31. 12.",oilCalc:"Výpočet spotřeby 2025: počáteční stav 4 000 L + dodávky 50 975 L − zbytek k 31. 12. 7 100 L = 47 875 L protopeno.",oilLiters:"Litry",oilCost:"Náklad na olej (netto)",oilPrice:"Cena za litr",oilChart:"Graf spotřeby a ceny oleje",oilChartDesc:"Sloupce = spotřeba v litrech, linie = průměrná cena za litr (netto)",oilAvgPrice:"Průměrná cena za litr (5 let)",oilAvgLiters:"Průměrná roční spotřeba",oilMax:"Nejvyšší spotřeba",oilYoy:"Změna vs. předchozí rok",oilFlowChart:"Pohled na čerpání nádrže",oilFlowDesc:"Sloupce = stav k 1. 1. + dodávky (celkem k dispozici), linie = protopeno a zbytek k 31. 12.",oilBurned:"Protopeno",oilTabFlow:"Pohled na čerpání nádrže",oilTabChart:"Graf spotřeby a ceny oleje",heatKpi:"Topení + teplá voda",heatKpiSub:"Vytápění a teplá voda dle Techem 2025",heatKpiShare:"Podíl na provozu bez rezervy",heatKpiSplit:"Topení / teplá voda",opTitle:"Provozní náklady celkem (bez rezervního fondu)",opDesc:"Betriebskosten allgemein + vytápění a teplá voda + voda / silnice / zimní služba. Rezervní fond není provozní náklad – je to čerpání rezerv na investice a velké opravy, proto je uveden zvlášť.",opBk:"Betriebskosten allgemein",opHeat:"Topení + teplá voda",opWater:"Voda / silnice / zimní služba",opTotalRow:"Provoz celkem",opReserve:"Rezervní fond (mimo provoz)",opYear:"Rok",resKpi:"Rezervní fond – zůstatek",resKpiSub:"Stav dle vyúčtování rezervy k",exportXlsx:"Export do Excelu"},de:{total:"Tatsächlich von den Eigentümern bezahlt",perYear:"Entwicklung nach Jahren",structure:"Kostenstruktur",groups:"Kostengruppen",detail:"Positionsdetail",caretaker:"Hausbesorger / Hausmeister",caretakerDesc:"Eine Kostenposition – Aufteilung in Lohn und Extraleistungen (tatsächlich bezahlte Beträge)",wage:"Lohn inkl. Abgaben und Sozialversicherung",extraOut:"Extra Aussenanlagen",extraOther:"Extra sonstige Leistungen",share:"Anteil an den Betriebskosten",change:"Veränderung zum Vorjahr",group:"Gruppe",item:"Position",otherCircles:"Weitere Verrechnungskreise (außerhalb Betriebskosten)",vat:"USt.",note:"Anmerkung",vatNote:"Dargestellt sind die von den Eigentümern tatsächlich getragenen Beträge – inkl. USt. laut Abrechnung (Nettowerte nur in der Kontrollübersicht unten).",netRef:"Kontrollübersicht: netto laut Abrechnung vs. tatsächlich bezahlt",netCol:"Netto laut Abrechnung",grossCol:"Tatsächlich bezahlt (inkl. USt.)",groupDetail:"Detailansicht der Kostengruppe",groupDetailDesc:"Gruppe wählen – sortiert nach Höhe der Kosten (tatsächlich bezahlte Beträge)",tabGroups:"Gruppen",tabItems:"Positionen",tabCaretaker:"Hausbesorger",na:"nicht ausgewiesen",audit:"Belegprüfung – Feststellungen der Eigentümer",auditDisclaimer:"Hinweis",auditParticipants:"Teilnehmer der Prüfung",auditScope:"Prüfungsumfang",auditFindings:"Wesentliche Feststellungen",auditOpen:"Offene Punkte",auditBy:"von",auditStatus:"Status",auditExplanation:"Erläuterung",auditNoNotes:"Zu dieser Position sind aktuell keine Prüfungsnotizen vorhanden.",withHeating:"Inkl. Heizung & Warmwasser",heating:"Heizung (Techem)",hotwater:"Warmwasser (Techem)",heatingHint:"Heizung und Warmwasser werden gesondert (Techem) abgerechnet und sind nicht Teil der Betriebskosten.",heatGroup:"Heizung & Warmwasser",oilTitle:"Heizölverbrauch",oilDesc:"Tatsächlich verbrauchte Ölmenge laut Techem-Gesamtabrechnung (nicht nur Anlieferungen) – Kosten und Durchschnittspreis je Liter (netto)",oilOpening:"Anfangsbestand am 1.1.",oilDelivered:"Anlieferungen im Jahr",oilClosing:"Restbestand am 31.12.",oilCalc:"Verbrauchsermittlung 2025: Anfangsbestand 4.000 L + Anlieferungen 50.975 L − Restbestand am 31.12. 7.100 L = 47.875 L verbraucht.",oilLiters:"Liter",oilCost:"Brennstoffkosten (netto)",oilPrice:"Preis je Liter",oilChart:"Verbrauch und Ölpreis im Diagramm",oilChartDesc:"Säulen = Verbrauch in Litern, Linie = Durchschnittspreis je Liter (netto)",oilAvgPrice
1:"Durchschnittspreis je Liter (5 Jahre)",oilAvgLiters:"Durchschnittlicher Jahresverbrauch",oilMax:"Höchster Verbrauch",oilYoy:"Veränderung zum Vorjahr",oilFlowChart:"Tankbewegung im Überblick",oilFlowDesc:"Säulen = Anfangsbestand + Anlieferungen (verfügbare Menge), Linien = Verbrauch und Restbestand am 31.12.",oilBurned:"Verbraucht",oilTabFlow:"Tankbewegung im Überblick",oilTabChart:"Ölverbrauch und Ölpreis im Diagramm",heatKpi:"Heizung + Warmwasser",heatKpiSub:"Heizung und Warmwasser laut Techem 2025",heatKpiShare:"Anteil an der Bewirtschaftung ohne Rücklage",heatKpiSplit:"Heizung / Warmwasser",opTitle:"Bewirtschaftungskosten gesamt (ohne Rücklage)",opDesc:"Betriebskosten allgemein + Heizung und Warmwasser + Wasser / Straße / Winterdienst. Die Rücklage ist kein Betriebskostenaufwand – sie ist Verwendung von Rücklagen für Investitionen und Großreparaturen und wird daher gesondert ausgewiesen.",opBk:"Betriebskosten allgemein",opHeat:"Heizung + Warmwasser",opWater:"Wasser / Straße / Winterdienst",opTotalRow:"Bewirtschaftung gesamt",opReserve:"Rücklage (außerhalb Bewirtschaftung)",opYear:"Jahr",resKpi:"Rücklage – Stand",resKpiSub:"Rücklagenstand laut Rücklagenabrechnung per",exportXlsx:"Export nach Excel"},en:{total:"Actually paid by owners",perYear:"Development by year",structure:"Cost structure",groups:"Cost groups",detail:"Item detail",caretaker:"Caretaker",caretakerDesc:"One cost position – split into wages and extra work (amounts actually paid)",wage:"Wages incl. levies and social insurance",extraOut:"Extra outdoor maintenance",extraOther:"Extra other work",share:"Share of operating costs",change:"Change vs. previous year",group:"Group",item:"Item",otherCircles:"Other 
1cost circles (outside operating costs)",vat:"VAT",note:"Note",vatNote:"Figures show what owners actually pay – including VAT per the statement (net values only in the reconciliation table below).",netRef:"Reconciliation: net per statement vs. actually paid",netCol:"Net per statement",grossCol:"Actually paid (incl. VAT)",groupDetail:"Cost group detail",groupDetailDesc:"Select a group – sorted by size (amounts actually paid)",tabGroups:"Groups",tabItems:"Items",tabCaretaker:"Caretaker",na:"not stated",audit:"Document review (Belegprüfung) – findings by owners",auditDisclaimer:"Disclaimer",auditParticipants:"Review participants",auditScope:"Scope of review",auditFindings:"Key findings",auditOpen:"Open points",auditBy:"by",auditStatus:"status",auditExplanation:"Explanation",auditNoNotes:"No review notes are recorded for this item yet.",withHeating:"Incl. heating & hot water",heating:"Heating (Techem)",hotwater:"Hot water (Techem)",heatingHint:"Heating and hot water are billed separately (Techem) and are not part of the operating costs.",heatGroup:"Heating & hot water",oilTitle:"Heating oil consumption",oilDesc:"Actually burned oil volume per Techem total statement (not just deliveries) – cost and average price per liter (net)",oilOpening:"Tank stock on 1 Jan",oilDelivered:"Deliveries during the year",oilClosing:"Remaining stock on 31 Dec",oilCalc:"Consumption 2025: opening stock 4,000 L + deliveries 50,975 L − remaining stock on 31 Dec 7,100 L = 47,875 L burned.",oilLiters:"Liters",oilCost:"Fuel cost (net)",oilPrice:"Price per liter",oilChart:"Oil consumption and price chart",oilChartDesc:"Bars = consumption in liters, line = average price per liter (net)",oilAvgPrice:"Average price per liter (5 years)",oilAvgLiters:"Average annual consumption",oilMax:"Highest consumption",oilYoy:"Change vs. previous year",oilFlowChart:"Tank movement overview",oilFlowDesc:"Bars = opening stock + deliveries (available volume), lines = burned and remaining stock on 31 Dec.",oilBurned:"Burned",oilTabFlow:"Tank movement overview",oilTabChart:"Oil consumption and price chart",heatKpi:"Heating & hot water",heatKpiSub:"Heating and hot water per Techem 2025",heatKpiShare:"Share of running costs excl. reserve",heatKpiSplit:"Heating / hot water",opTitle:"Total running costs (excl. reserve fund)",opDesc:"General operating costs + heating and hot water + water / road / winter service. The reserve fund is not an operating cost – it is the use of reserves for investments and major repairs, so it is shown separately.",opBk:"General operating costs",opHeat:"Heating + hot water",opWater:"Water / road / winter service",opTotalRow:"Running costs total",opReserve:"Reserve fund (outside running costs)",opYear:"Year",resKpi:"Reserve fund – balance",resKpiSub:"Balance per reserve fund statement as of",exportXlsx:"Export to Excel"}},v=r=>Math.round(r).toLocaleString("fr-FR").replace(/\u202f|\u00a0/g," ")+" €",de=r=>Math.round(r).toLocaleString("fr-FR").replace(/\u202f|\u00a0/g," "),ue=r=>`${(r*100).toFixed(1)} %`,Dt=["hsl(210 70% 45%)","hsl(25 70% 50%)","hsl(150 55% 40%)","hsl(280 50% 55%)","hsl(45 75% 45%)","hsl(190 65% 45%)","hsl(0 0% 55%)"],Ke=["caretaker","admin","energy","pool","maintenance","taxes","other"],ye={heating:"hsl(12 76% 45%)",hotwater:"hsl(200 80% 55%)"},gt={wage:["Mzdy – Walter & Margit","Mzdové odvody","Sociální pojištění správce"],extraOut:["Extra venkovní údržba (Aussenanlagen)"],extraOther:["Extra ostatní práce"]},vt=(r,s)=>Ce.filter(a=>r.includes(a.label.cs)).reduce((a,o)=>a+(o.values[s]||0),0),pa=()=>{var xe;const{language:r}=jt(),s=["cs","de","en"].includes(r)?r:"cs",a=ma[s],o=[...Ot],u=o[o.length-1],k=o[o.length-2],[N,R]=B.useState("groups"),[M,O]=B.useState("flow"),L=B.useMemo(()=>[...Ke].sort((t,l)=>P(l,u)-P(t,u)),[]),[h,E]=B.useState(L[0]);B.useMemo(()=>o.map(t=>({year:String(t),total:Ee(t)})),[]);const be=Ee(u),U=Ee(k),p=(be-U)/U,[j,S]=B.useState(!0),w=ie.find(t=>t.label.cs==="Vytápění"),y=ie.find(t=>t.label.cs==="Teplá voda"),ee=ie.find(t=>t.label.cs==="Voda / silnice / zimní služba"),Ne=ie.find(t=>t.label.cs==="Výdaje rezervního fondu"),te=B.useMemo(()=>o.map(t=>{const l=Ee(t),i=((w==null?void 0:w.values[t])||0)+((y==null?void 0:y.values[t])||0),d=(ee==null?void 0:ee.values[t])||0;return{year:t,bk:l,heat:i,water:d,total:l+i+d,reserve:(Ne==null?void 0:Ne.values[t])||0}}),[]),A=Math.max(...Object.keys(Xe).map(Number)),le=te.find(t=>t.year===u)??{year:u,bk:0,heat:0,water:0,total:0,reserve:0},He=((xe=te.find(t=>t.year===u-1))==null?void 0:xe.total)??0,pe=le.total,je=He?(pe-He)/He:0,C=t=>j&&(w==null?void 0:w.values[t])||0,F=t=>j&&(y==null?void 0:y.values[t])||0,Pe=B.useMemo(()=>o.map(t=>{const l={year:String(t)};return Ke.forEach(i=>
1l[i]=P(i,t)),l.heating=C(t),l.hotwater=F(t),l}),[j]),[q,he]=B.useState(u),D=B.useMemo(()=>[...Ke.map(t=>({name:re[t][s],key:t,color:Ye[t],value:P(t,q)})),{name:a.heating,key:"heating",color:ye.heating,value:C(q)},{name:a.hotwater,key:"hotwater",color:ye.hotwater,value:F(q)}].filter(t=>t.value>0).sort((t,l)=>l.value-t.value),[s,q,j,a]),ae=B.useMemo(()=>o.map(t=>({year:String(t),wage:vt(gt.wage,t),extraOut:vt(gt.extraOut,t),extraOther:vt(gt.extraOther,t),total:P("caretaker",t)})),[]),$=ae[ae.length-1],b=t=>((w==null?void 0:w.values[t])||0)+((y==null?void 0:y.values[t])||0),ne=t=>h==="heat"?b(t):P(h,t),Be=h==="heat"?a.heatGroup:re[h][s],K=B.useMemo(()=>{if(h==="heat"){const d=[a.heating,a.hotwater],g=o.map(f=>({year:String(f),v0:(w==null?void 0:w.values[f])||0,v1:(y==null?void 0:y.values[f])||0}));return{series:d,data:g}}if(h==="caretaker"){const d=[a.wage,a.extraOut,a.extraOther],g=ae.map(f=>({year:f.year,v0:f.wage,v1:f.extraOut,v2:f.extraOther}));return{series:d,data:g}}const t=Ce.filter(d=>d.group===h).sort((d,g)=>(g.values[u]||0)-(d.values[u]||0)),l=t.map(d=>d.label[s]),i=o.map(d=>{const g={year:String(d)};return t.forEach((f,se)=>g[`v${se}`]=f.values[d]||0),g});return{series:l,data:i}},[h,s,ae,a]),Fe={contentStyle:{background:"hsl(var(--popover))",border:"1px solid hsl(var(--border))",borderRadius:"0.5rem",fontSize:"12px",color:"hsl(var(--popover-foreground))"},formatter:t=>v(Number(t))},ke=({active:t,payload:l,label:i})=>{if(!t||!l||!l.length)return null;const d=[...l].sort((g,f)=>f.value-g.value);return e.jsxs("div",{className:"rounded-lg border border-border bg-popover p-3 shadow-sm text-xs text-popover-foreground",children:[e.jsx("div",{className:"font-serif font-medium mb-1.5",children:i}),e.jsx("div",{className:"space-y-1",children:d.map(g=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"h-2 w-2 rounded-full flex-shrink-0",style:{background:g.color}}),e.jsx("span",{className:"flex-1",children:g.name}),e.jsx("span",{className:"font-medium tabular-nums",children:v(Number(g.value))})]},g.dataKey))})]})},ce=({payload:t,year:l,heatingValue:i,hotwaterValue:d})=>{if(!t||!t.length)return null;const g=t.map(f=>{const se=f.dataKey;let V=0;return se==="heating"?V=i:se==="hotwater"?V=d:V=P(se,l),{...f,value:V}}).filter(f=>f.value>0).sort((f,se)=>se.value-f.value);return e.jsx("div",{className:"flex flex-wrap justify-center gap-x-3 gap-y-1 text-[11px] text-foreground mt-1",children:g.map(f=>e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("span",{className:"h-2 w-2 rounded-sm flex-shrink-0",style:{background:f.color}}),f.name,e.jsx("span",{className:"text-muted-foreground tabular-nums",children:v(f.value)})]},f.dataKey))})};return e.jsx(Ht,{children:e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"flex justify-end",children:e.jsxs(ft,{variant:"outline",size:"sm",onClick:()=>da(s),className:"gap-2",children:[e.jsx(Kt,{className:"h-4 w-4"}),a.exportXlsx]})}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5",children:[e.jsxs(Y,{children:[e.jsx(J,{className:"pb-2",children:e.jsxs(Z,{className:"text-xs font-medium text-muted-foreground flex items-center gap-2",children:[e.jsx(Mt,{className:"h-3.5 w-3.5"})," ",a.opTotalRow," ",u]})}),e.jsxs(X,{children:[e.jsx("div",{className:"text-2xl font-serif font-bold",children:v(pe)}),e.jsxs("div",{className:`text-xs mt-1 flex items-center gap-1 ${je>=0?"text-destructive":"text-emerald-600"}`,children:[je>=0?e.jsx(Ft,{className:"h-3 w-3"}):e.jsx(Vt,{className:"h-3 w-3"}),ue(je)," ",a.change]}),e.jsxs("div",{className:"text-[11px] text-muted-foreground mt-1",children:[a.opBk," ",v(be)," · ",a.opHeat," ",v(le.heat)," · ",a.opWater," ",v(le.water)]})]})]}),e.jsxs(Y,{children:[e.jsx(J,{className:"pb-2",children:e.jsxs(Z,{className:"text-xs font-medium text-muted-foreground flex items-center gap-2",children:[e.jsx(kt,{className:"h-3.5 w-3.5"})," ",a.caretaker," ",u]})}),e.jsxs(X,{children:[e.jsx("div",{className:"text-2xl font-serif font-bold",children:v($.total)}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:[a.wage,": ",v($.wage)]})]})]}),e.jsxs(Y,{children:[e.jsx(J,{className:"pb-2",children:e.jsxs(Z,{className:"text-xs font-medium text-muted-foreground flex items-center gap-2",children:[e.jsx(Wt,{className:"h-3.5 w-3.5"})," ",a.heatKpi," ",u]})}),e.jsxs(X,{children:[e.jsx("div",{className:"text-2xl font-serif font-bold",children:v(b(u))}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:[a.heatKpiShare,": ",ue(b(u)/pe)]}),e.jsxs("div",{className:"text-[11px] text-muted-foreground mt-1",children:[a.heatKpiSplit,": ",v((w==null?void 0:w.values[u])||0)," / ",v((y==null?void 0:y.values[u])||0)]})]})]}),e.jsxs(Y,{children:[e.jsx(J,{className:"pb-2",children:e.jsxs(Z,{className:"text-xs font-medium text-muted-foreground flex items-center gap-2",children:[e.jsx(It,{className:"h-3.5 w-3.5"})," ",re.energy[s]," ",u]})}),e.jsxs(X,{children:[e.jsx("div",{className:"text-2xl font-serif font-bold",children:v(P("energy",u))}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:[a.share,": ",ue(P("energy",u)/be)]})]})]}),e.jsxs(Y,{children:[e.jsx(J,{className:"pb-2",children:e.jsxs(Z,{className:"text-xs font-medium text-muted-foreground flex items-center gap-2",children:[e.jsx(_t,{className:"h-3.5 w-3.5"})," ",a.resKpi]})}),e.jsxs(X,{children:[e.jsx("div",{className:"text-2xl font-serif font-bold",children:v(Xe[A])}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:[a.resKpiSub," 31.12.",A]})]})]})]}),e.jsxs(Y,{children:[e.jsxs(J,{className:"pb-3",children:[e.jsx(Z,{className:"font-serif text-base",children:a.opTitle}),e.jsx(Ze,{className:"text-xs",children:a.opDesc})]}),e.jsx(X,{className:"overflow-x-auto",children:e.jsxs(ze,{children:[e.jsx(Se,{children:e.jsxs(z,{className:"bg-muted/50 hover:bg-muted/50",children:[e.jsx(T,{className:"h-8 text-xs whitespace-nowrap",children:a.opYear}),te.map(t=>e.jsx(T,{className:"h-8 text-xs text-right whitespace-nowrap",children:t.year},t.year))]})}
1),e.jsxs(Ge,{children:[[["opBk","bk"],["opHeat","heat"],["opWater","water"]].map(([t,l])=>e.jsxs(z,{className:"h-8",children:[e.jsx(m,{className:"py-1 text-xs whitespace-nowrap",children:a[t]}),te.map(i=>e.jsx(m,{className:"py-1 text-xs text-right tabular-nums",children:v(i[l])},i.year))]},l)),e.jsxs(z,{className:"h-9 border-t-2 border-border font-medium",children:[e.jsx(m,{className:"py-1 text-xs whitespace-nowrap",children:a.opTotalRow}),te.map(t=>e.jsx(m,{className:"py-1 text-xs text-right tabular-nums font-semibold",children:v(t.total)},t.year))]}),e.jsxs(z,{className:"h-8 text-muted-foreground",children:[e.jsx(m,{className:"py-1 text-xs whitespace-nowrap italic",children:a.opReserve}),te.map(t=>e.jsx(m,{className:"py-1 text-xs text-right tabular-nums italic",children:v(t.reserve)},t.year))]})]})]})})]}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1.5",children:[e.jsx(Me,{className:"h-3.5 w-3.5"})," ",a.vatNote]}),e.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[e.jsxs(Y,{children:[e.jsxs(J,{className:"space-y-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsx(Z,{className:"font-serif text-base",children:a.perYear}),e.jsx("button",{onClick:()=>S(t=>!t),className:`rounded-md px-2 py-1 text-xs transition-colors ${j?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/70"}`,children:a.withHeating})]}),e.jsx(Ze,{className:"text-xs",children:j?a.heatingHint:a.groups})]}),e.jsx(X,{className:"h-[320px]",children:e.jsx(Ve,{width:"100%",height:"100%",children:e.jsxs(yt,{data:Pe,margin:{left:8,right:8},children:[e.jsx(st,{strokeDasharray:"3 3",stroke:"hsl(var(--border))"}),e.jsx(ot,{dataKey:"year",tick:{fontSize:12},stroke:"hsl(var(--muted-foreground))"}),e.jsx(We,{tick:{fontSize:11},stroke:"hsl(var(--muted-foreground))",tickFormatter:t=>`${Math.round(Number(t)/1e3)}k`}),e.jsx(Ie,{content:e.jsx(ke,{})}),e.jsx(_e,{content:e.jsx(ce,{year:u,heatingValue:(w==null?void 0:w.values[u])||0,hotwaterValue:(y==null?void 0:y.values[u])||0})}),Ke.map(t=>e.jsx(Te,{dataKey:t,stackId:"a",name:re[t][s],fill:Ye[t]},t)),j&&e.jsx(Te,{dataKey:"heating",stackId:"a",name:a.heating,fill:ye.heating}),j&&e.jsx(Te,{dataKey:"hotwater",stackId:"a",name:a.hotwater,fill:ye.hotwater})]})})})]}),e.jsxs(Y,{children:[e.jsxs(J,{className:"flex flex-row items-center justify-between gap-2 space-y-0",children:[e.jsxs(Z,{className:"font-serif text-base",children:[a.structure," ",q]}),e.jsx("div",{className:"flex gap-1",children:o.map(t=>e.jsx("button",{onClick:()=>he(t),className:`rounded-md px-2 py-1 text-xs transition-colors ${q===t?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/70"}`,children:t},t))})]}),e.jsx(X,{className:"h-[320px]",children:e.jsx(Ve,{width:"100%",height:"100%",children:e.jsxs(Jt,{children:[e.jsx(Zt,{data:D,dataKey:"value",nameKey:"name",innerRadius:60,outerRadius:105,paddingAngle:2,labelLine:!1,label:({value:t})=>{const l=D.reduce((i,d)=>i+d.value,0);return`${(t/l*100).toFixed(1)} %`},children:D.map(t=>e.jsx(Yt,{fill:t.color},t.key))}),e.jsx(Ie,{...Fe}),e.jsx(_e,{wrapperStyle:{fontSize:11}})]})})})]})]}),e.jsxs(Y,{children:[e.jsxs(J,{children:[e.jsxs(Z,{className:"font-serif text-base flex items-center gap-2",children:[e.jsx(kt,{className:"h-4 w-4 text-primary"})," ",a.groupDetail]}),e.jsx(Ze,{className:"text-xs",children:h==="caretaker"?a.caretakerDesc:a.groupDetailDesc})]}),e.jsxs(X,{className:"space-y-6",children:[e.jsx(ut,{value:h,onValueChange:t=>E(t),children:e.jsxs(mt,{className:"flex flex-wrap h-auto justify-start gap-1",children:[L.map(t=>e.jsx($e,{value:t,className:"text-xs",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx("span",{className:"h-2 w-2 rounded-sm",style:{background:Ye[t]}}),re[t][s],e.jsx("span",{className:"text-muted-foreground tabular-nums",children:v(P(t,u))})]})},t)),e.jsx($e,{value:"heat",className:"text-xs",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx("span",{className:"h-2 w-2 rounded-sm",style:{background:ye.heating}}),a.heatGroup,e.jsx("span",{className:"text-muted-foreground tabular-nums",children:v(b(u))})]})})]})}),e.jsx("div",{className:"h-[280px]",children:e.jsx(Ve,{width:"100%",height:"100%",children:e.jsxs(yt,{data:K.data,margin:{left:8,right:8},children:[e.jsx(st,{strokeDasharray:"3 3",stroke:"hsl(var(--border))"}),e.jsx(ot,{dataKey:"year",tick:{fontSize:12},stroke:"hsl(var(--muted-foreground))"}),e.jsx(We,{tick:{fontSize:11},stroke:"hsl(var(--muted-foreground))",tickFormatter:t=>`${Math.round(Number(t)/1e3)}k`}),e.jsx(Ie,{...Fe}),e.jsx(_e,{wrapperStyle:{fontSize:11}}),K.series.map((t,l)=>e.jsx(Te,{dataKey:`v${l}
1`,stackId:"g",name:t,fill:Dt[l%Dt.length]},t))]})})}),e.jsxs("div",{className:"block md:hidden space-y-3",children:[K.series.map((t,l)=>{const i=K.data[K.data.length-1][`v${l}`]||0,d=ne(u);return e.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-3 space-y-2",children:[e.jsx("div",{className:"font-medium text-sm",children:t}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:[K.data.map((g,f)=>e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:g.year}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:v(g[`v${l}`]||0)})]},f)),e.jsxs("div",{children:[e.jsxs("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:[a.share," ",u]}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:d?ue(i/d):"–"})]})]})]},t)}),e.jsxs("div",{className:"rounded-lg border border-border bg-muted/50 p-3 space-y-2",children:[e.jsxs("div",{className:"font-medium text-sm",children:[Be," – ",a.total.toLowerCase()]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:[o.map(t=>e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:t}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:v(ne(t))})]},t)),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:a.share}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:"100.0 %"})]})]})]})]}),e.jsx("div",{className:"hidden md:block",children:e.jsxs(ze,{children:[e.jsx(Se,{children:e.jsxs(z,{className:"bg-muted/50",children:[e.jsx(T,{className:"h-8 text-xs font-serif",children:a.item}),o.map(t=>e.jsx(T,{className:"h-8 text-xs font-serif text-right whitespace-nowrap",children:t},t)),e.jsxs(T,{className:"h-8 text-xs font-serif text-right whitespace-nowrap",children:[a.share," ",u]})]})}),e.jsxs(Ge,{children:[K.series.map((t,l)=>{const i=K.data[K.data.length-1][`v${l}`]||0,d=ne(u);return e.jsxs(z,{className:"h-9",children:[e.jsx(m,{className:"text-xs py-1",children:t}),K.data.map((g,f)=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:v(g[`v${l}`]||0)},f)),e.jsx(m,{className:"text-xs py-1 text-right tabular-nums",children:d?ue(i/d):"–"})]},t)}),e.jsxs(z,{className:"h-9 font-medium bg-muted/30",children:[e.jsxs(m,{className:"text-xs py-1",children:[Be," – ",a.total.toLowerCase()]}),o.map(t=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:v(ne(t))},t)),e.jsx(m,{className:"text-xs py-1 text-right tabular-nums",children:"100.0 %"})]})]})]})}),h==="heat"&&e.jsxs("div",{className:"space-y-3 pt-2 border-t border-border",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-serif text-sm font-medium",children:a.oilTitle}),e.jsx("div",{className:"text-xs text-muted-foreground",children:a.oilDesc}),e.jsx("div",{className:"mt-1 text-[11px] text-muted-foreground bg-muted/40 border border-border rounded-md px-2 py-1 inline-block",children:a.oilCalc})]}),e.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3",children:(()=>{const t=Q.filter(n=>n.liters),l=t.reduce((n,c)=>n+(c.liters||0),0)/(t.length||1),i=t.reduce((n,c)=>n+(c.liters||0),0),d=t.reduce((n,c)=>n+(c.costNet||0),0),g=i?d/i:0,f=t.reduce((n,c)=>(c.liters||0)>(n.liters||0)?c:n,t[0]),se=t[t.length-1],V=t[t.length-2],ge=V!=null&&V.liters?(se.liters-V.liters)/V.liters:null;return[{label:a.oilAvgPrice,value:`${g.toFixed(3)} €/L`},{label:a.oilAvgLiters,value:`${de(l)} L`},{label:a.oilMax,value:`${de((f==null?void 0:f.liters)||0)} L`,hint:String((f==null?void 0:f.year)||"")},{label:a.oilYoy,value:ge===null?a.na:`${ge>0?"+":""}${(ge*100).toFixed(1)} %`,hint:V?`${V.year} → ${se.year}`:"",positive:ge!==null&&ge<0,negative:ge!==null&&ge>0}].map(n=>e.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-3",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:n.label}),e.jsx("div",{className:`text-sm font-semibold tabular-nums ${n.negative?"text-destructive":n.positive?"text-emerald-600":""}`,children:n.value}),n.hint&&e.jsx("div",{className:"text-[10px] text-muted-foreground tabular-nums",children:n.hint})]},n.label))})()}),e.jsxs(ut,{value:M,onValueChange:t=>O(t),children:[e.jsxs(mt,{className:"mb-2",children:[e.jsx($e,{value:"flow",className:"text-xs",children:a.oilTabFlow}),e.jsx($e,{value:"chart",className:"text-xs",children:a.oilTabChart})]}),e.jsxs(nt,{value:"flow",children:[e.jsx("div",{className:"font-serif text-sm font-medium",children:a.oilFlowChart}),e.jsx("div",{className:"text-xs text-muted-foreground mb-2",children:a.oilFlowDesc}),e.jsx("div",{className:"h-[260px] w-full",children:e.jsx(Ve,{width:"100%",height:"100%",children:e.jsxs(Nt,{data:Q.map(t=>({year:t.year,opening:t.opening??0,delivered:t.delivered??0,closing:t.closing??0,burned:t.liters||0}
1)),margin:{top:8,right:8,left:0,bottom:0},children:[e.jsx(st,{strokeDasharray:"3 3",opacity:.3}),e.jsx(ot,{dataKey:"year",tick:{fontSize:11}}),e.jsx(We,{tick:{fontSize:11},tickFormatter:t=>de(Number(t)),width:58}),e.jsx(Ie,{formatter:(t,l)=>[`${de(Number(t))} L`,l]}),e.jsx(_e,{wrapperStyle:{fontSize:11}}),e.jsx(Te,{stackId:"tank",dataKey:"opening",name:a.oilOpening,fill:"hsl(200 20% 65%)"}),e.jsx(Te,{stackId:"tank",dataKey:"delivered",name:a.oilDelivered,fill:ye.hotwater,radius:[3,3,0,0]}),e.jsx(pt,{type:"monotone",dataKey:"burned",name:a.oilBurned,stroke:ye.heating,strokeWidth:2,dot:{r:3}}),e.jsx(pt,{type:"monotone",dataKey:"closing",name:a.oilClosing,stroke:"hsl(45 90% 40%)",strokeWidth:2,strokeDasharray:"4 3",dot:{r:3}})]})})})]}),e.jsxs(nt,{value:"chart",children:[e.jsx("div",{className:"font-serif text-sm font-medium",children:a.oilChart}),e.jsx("div",{className:"text-xs text-muted-foreground mb-2",children:a.oilChartDesc}),e.jsx("div",{className:"h-[260px] w-full",children:e.jsx(Ve,{width:"100%",height:"100%",children:e.jsxs(Nt,{data:Q.map(t=>({year:t.year,liters:t.liters||0,costNet:t.costNet||0,price:Je(t)||0})),margin:{top:8,right:8,left:0,bottom:0},children:[e.jsx(st,{strokeDasharray:"3 3",opacity:.3}),e.jsx(ot,{dataKey:"year",tick:{fontSize:11}}),e.jsx(We,{yAxisId:"left",tick:{fontSize:11},tickFormatter:t=>de(Number(t)),width:58}),e.jsx(We,{yAxisId:"right",orientation:"right",tick:{fontSize:11},domain:[0,"dataMax + 0.3"],tickFormatter:t=>Number(t).toFixed(2),width:44}),e.jsx(Ie,{formatter:(t,l)=>l===a.oilPrice?[`${Number(t).toFixed(3)} €/L`,l]:l===a.oilCost?[v(Number(t)),l]:[`${de(Number(t))} L`,l]}),e.jsx(_e,{wrapperStyle:{fontSize:11}}),e.jsx(Te,{yAxisId:"left",dataKey:"liters",name:a.oilLiters,fill:ye.heating,radius:[3,3,0,0]}),e.jsx(Te,{yAxisId:"left",dataKey:"costNet",name:a.oilCost,fill:ye.hotwater,radius:[3,3,0,0]}),e.jsx(pt,{yAxisId:"right",type:"monotone",dataKey:"price",name:a.oilPrice,stroke:"hsl(45 90% 40%)",strokeWidth:2,dot:{r:3}})]})})})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-3 md:hidden",children:Q.map(t=>e.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-3",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:t.year}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:t.liters?`${de(t.liters)} L`:a.na}),e.jsx("div",{className:"text-xs tabular-nums text-muted-foreground",children:t.costNet?v(t.costNet):a.na}),e.jsx("div",{className:"text-xs tabular-nums",children:Je(t)?`${Je(t).toFixed(3)} €/L`:a.na})]},t.year))}),e.jsx("div",{className:"hidden md:block",children:e.jsxs(ze,{children:[e.jsx(Se,{children:e.jsxs(z,{className:"bg-muted/50",children:[e.jsx(T,{className:"h-8 text-xs font-serif",children:a.item}),Q.map(t=>e.jsx(T,{className:"h-8 text-xs font-serif text-right whitespace-nowrap",children:t.year},t.year))]})}),e.jsxs(Ge,{children:[e.jsxs(z,{className:"h-9",children:[e.jsx(m,{className:"text-xs py-1 text-muted-foreground",children:a.oilOpening}),Q.map(t=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap text-muted-foreground",children:t.opening!=null?`${de(t.opening)} L`:a.na},t.year))]}),e.jsxs(z,{className:"h-9",children:[e.jsx(m,{className:"text-xs py-1 text-muted-foreground",children:a.oilDelivered}),Q.map(t=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap text-muted-foreground",children:t.delivered!=null?`+ ${de(t.delivered)} L`:a.na},t.year))]}),e.jsxs(z,{className:"h-9",children:[e.jsx(m,{className:"text-xs py-1 text-muted-foreground",children:a.oilClosing}),Q.map(t=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap text-muted-foreground",children:t.closing!=null?`− ${de(t.closing)} L`:a.na},t.year))]}),e.jsxs(z,{className:"h-9",children:[e.jsx(m,{className:"text-xs py-1 font-medium",children:a.oilLiters}),Q.map(t=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:t.liters?`${de(t.liters)} L`:a.na},t.year))]}),e.jsxs(z,{className:"h-9",children:[e.jsx(m,{className:"text-xs py-1",children:a.oilCost}),Q.map(t=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:t.costNet?v(t.costNet):a.na},t.year))]}),e.jsxs(z,{className:"h-9 font-medium bg-muted/30",children:[e.jsx(m,{className:"text-xs py-1",children:a.oilPrice}),Q.map(t=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:Je(t)?`${Je(t).toFixed(3)} €/L`:a.na},t.year))]})]})]})})]})]})]}),h==="heat"&&e.jsx(sa,{}),e.jsxs(Y,{children:[e.jsx(J,{className:"pb-3",children:e.jsx(Z,{className:"font-serif text-base",children:a.detail})}),e.jsx(X,{children:e.jsxs(ut,{value:N,onValueChange:R,children:[e.jsxs(mt,{className:"mb-4",children:[e.jsx($e,{value:"groups",className:"text-xs",children:a.tabGroups}),e.jsx($e,{value:"items",className:"text-xs",children:a.tabItems})]}),e.jsxs(nt,{value:"groups",children:[e.jsxs("div",{className:"block md:hidden space-y-3",children:[Ke.map(t=>{const l=P(t,u),i=P(t,k),d=i?(l-i)/i:null;return e.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"h-2.5 w-2.5 rounded-sm",style:{background:Ye[t]}}),e.jsx("span",{className:"font-medium text-sm",children:re[t][s]})]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:[o.map(g=>e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:g}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:v(P(t,g))})]},g)),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:a.change}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:d===null?"–":e.jsxs(Ue,{variant:d>=0?"destructive":"secondary",className:"text-[10px] whitespace-nowrap",children:[d>=0?"+":"",ue(d)]})})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:a.share}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:ue(l/be)})]})]})]},t)}),e.jsxs("div",{className:"rounded-lg border border-border bg-muted/50 p-3 space-y-2",children:[e.jsx("div",{className:"font-medium text-sm",children:a.total}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:[o.map(t=>e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:t}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:v(Ee(t))})]},t)),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:a.change}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:e.jsxs(Ue,{variant:p>=0?"destructive":"secondary",className:"text-[10px] whitespace-nowrap",children:[p>=0?"+":"",ue(p)]})})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:a.share}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:"100.0 %"})]})]})]})]}),e.jsx("div",{className:"hidden md:block",children:e.jsxs(ze,{children:[e.jsx(Se,{children:e.jsxs(z,{className:"bg-muted/50",children:[e.jsx(T,{className:"h-8 text-xs font-serif",children:a.group}),o.map(t=>e.jsx(T,{className:"h-8 text-xs font-serif text-right",children:t},t)),e.jsx(T,{className:"h-8 text-xs font-serif text-right whitespace-nowrap",children:a.change}),e.jsx(T,{className:"h-8 text-xs font-serif text-right whitespace-nowrap",children:a.share})]})}),e.jsxs(Ge,{children:[Ke.map(t=>{const l=P(t,u),i=P(t,k),d=i?(l-i)/i:null;return e.jsxs(z,{className:"h-9",children:[e.jsx(m,{className:"text-xs py-1",children:e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx("span",{className:"h-2.5 w-2.5 rounded-sm",style:{background:Ye[t]}}),re[t][s]]})}),o.map(g=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:v(P(t,g))},g)),e.jsx(m,{className:"text-xs py-1 text-right",children:d===null?"–":e.jsxs(Ue,{variant:d>=0?"destructive":"secondary",className:"text-[10px] whitespace-nowrap",children:[d>=0?"+":"",ue(d)]})}),e.jsx(m,{className:"text-xs py-1 text-right tabular-nums",children:ue(l/be)})]},t)}),e.jsxs(z,{className:"h-9 font-medium bg-muted/30",children:[e.jsx(m,{className:"text-xs py-1",children:a.total}),o.map(t=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:v(Ee(t))},t)),e.jsx(m,{className:"text-xs py-1 text-right",children:e.jsxs(Ue,{variant:p>=0?"destructive":"secondary",className:"text-[10px] whitespace-nowrap",children:[p>=0?"+":"",ue(p)]})}),e.jsx(m,{className:"text-xs py-1 text-right tabular-nums",children:"100.0 %"})]})]})]})})]}),e.jsxs(nt,{value:"items",children:[e.jsx("div",{className:"block md:hidden space-y-3",children:Ce.map((t,l)=>{const i=Et(t.label.cs);return e.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx("div",{className:"font-medium text-sm",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[t.label[s],t.note&&e.jsxs(et,{children:[e.jsx(tt,{asChild:!0,children:e.jsx(Me,{className:"h-3 w-3 text-muted-foreground"})}),e.jsx(at,{className:"max-w-xs text-xs",children:t.note[s]})]})]})}),e.jsx("div",{className:"text-[10px] text-muted-foreground whitespace-nowrap",children:re[t.group][s]})]}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:o.map(d=>e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:d}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:v(t.values[d]||0)})]},d))}),i.length>0&&e.jsx("div",{className:"pt-1 border-t border-border/50",children:e.jsxs(et,{children:[e.jsx(tt,{asChild:!0,children:e.jsxs("span",{className:"inline-flex items-center gap-1.5 cursor-help text-xs",children:[e.jsx(wt,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-muted-foreground",children:a.auditExplanation}),e.jsx(Ue,{variant:"outline",className:"text-[10px] font-normal whitespace-nowrap",children:i.length})]})}),e.jsx(at,{className:"max-w-sm text-xs space-y-2",children:i.map((d,g)=>e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"font-medium",children:d.summary[s]}),e.jsx("div",{className:"text-muted-foreground",children:d.text[s]}),e.jsxs("div",{className:"flex flex-wrap gap-x-2 text-[10px] text-muted-foreground",children:[e.jsxs("span",{children:[a.auditBy," ",d.author]}),e.jsxs("span",{children:["· ",Ct(d.role,s)]}),e.jsxs("span",{children:["· ",Rt(d.status,s)]}),e.jsxs("span",{children:["· ",d.date]})]})]},g))})]})})]},l)})}),e.jsx("div",{className:"hidden md:block",children:e.jsxs(ze,{children:[e.jsx(Se,{children:e.jsxs(z,{className:"bg-muted/50",children:[e.jsx(T,{className:"h-8 text-xs font-serif",children:a.group}),e.jsx(T,{className:"h-8 text-xs font-serif",children:a.item}),o.map(t=>e.jsx(T,{className:"h-8 text-xs font-serif text-right",children:t},t)),e.jsx(T,{className:"h-8 text-xs font-serif",children:a.auditExplanation})]})}),e.jsx(Ge,{children:Ce.map((t,l)=>{const i=Et(t.label.cs);return e.jsxs(z,{className:"h-9",children:[e.jsx(m,{className:"text-xs py-1 text-muted-foreground whitespace-nowrap",children:re[t.group][s]}),e.jsx(m,{className:"text-xs py-1",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[t.label[s],t.note&&e.jsxs(et,{children:[e.jsx(tt,{asChild:!0,children:e.jsx(Me,{className:"h-3 w-3 text-muted-foreground"})}),e.jsx(at,{className:"max-w-xs text-xs",children:t.note[s]})]})]})}),o.map(d=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:v(t.values[d]||0)},d)),e.jsx(m,{className:"text-xs py-1",children:i.length>0?e.jsxs(et,{children:[e.jsx(tt,{asChild:!0,children:e.jsxs("span",{className:"inline-flex items-center gap-1.5 cursor-help",children:[e.jsx(wt,{className:"h-3.5 w-3.5 text-primary"}),e.jsx(Ue,{variant:"outline",className:"text-[10px] font-normal whitespace-nowrap",children:i.length})]})}),e.jsx(at,{className:"max-w-sm text-xs space-y-2",children:i.map((d,g)=>e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"font-medium",children:d.summary[s]}),e.jsx("div",{className:"text-muted-foreground",children:d.text[s]}),e.jsxs("div",{className:"flex flex-wrap gap-x-2 text-[10px] text-muted-foreground",children:[e.jsxs("span",{children:[a.auditBy," ",d.author]}),e.jsxs("span",{children:["· ",Ct(d.role,s)]}),e.jsxs("span",{children:["· ",Rt(d.status,s)]}),e.jsxs("span",{children:["· ",d.date]})]})]},g))})]}):e.jsx("span",{className:"text-muted-foreground text-[10px]",children:"–"})})]},l)})})]})})]})]})})]}),e.jsxs(Y,{children:[e.jsx(J,{className:"pb-3",children:e.jsx(Z,{className:"font-serif text-base",children:a.otherCircles})}),e.jsxs(X,{children:[e.jsx("div",{className:"block md:hidden space-y-3",children:ie.map((t,l)=>e.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-3 space-y-2",children:[e.jsx("div",{className:"font-medium text-sm",children:t.label[s]}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:o.map(i=>e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:i}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:t.values[i]===null||t.values[i]===void 0?e.jsx("span",{className:"text-muted-foreground",children:a.na}):v(t.values[i])})]},i))}),t.note[s]&&e.jsx("div",{className:"text-xs text-muted-foreground pt-1 border-t border-border/50",children:t.note[s]})]},l))}),e.jsx("div",{className:"hidden md:block",children:e.jsxs(ze,{children:[e.jsx(Se,{children:e.jsxs(z,{className:"bg-muted/50",children:[e.jsx(T,{className:"h-8 text-xs font-serif",children:a.item}),o.map(t=>e.jsx(T,{className:"h-8 text-xs font-serif text-right",children:t},t)),e.jsx(T,{className:"h-8 text-xs font-serif",children:a.note})]})}),e.jsx(Ge,{children:ie.map((t,l)=>e.jsxs(z,{className:"h-9",children:[e.jsx(m,{className:"text-xs py-1",children:t.label[s]}),o.map(i=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:t.values[i]===null||t.values[i]===void 0?e.jsx("span",{className:"text-muted-foreground",children:a.na}):v(t.values[i])},i)),e.jsx(m,{className:"text-xs py-1 text-muted-foreground",children:t.note[s]})]},l))})]})})]})]}),e.jsxs(Y,{children:[e.jsx(J,{className:"pb-3",children:e.jsx(Z,{className:"font-serif text-base",children:a.netRef})}),e.jsxs(X,{children:[e.jsx("div",{className:"block md:hidden space-y-3",children:bt.map((t,l)=>e.jsxs("div",{className:"rounded-lg border border-border bg-muted/30 p-3 space-y-3",children:[e.jsx("div",{className:"font-medium text-sm",children:t.label[s]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:a.netCol}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:o.map(i=>e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:i}),e.jsx("div",{className:"text-sm font-semibold tabular-nums text-muted-foreground",children:t.net[i]==null?e.jsx("span",{className:"text-muted-foreground",children:a.na}
1):v(t.net[i])})]},i))})]}),e.jsxs("div",{className:"space-y-2 pt-2 border-t border-border/50",children:[e.jsx("div",{className:"text-xs font-medium",children:a.grossCol}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:o.map(i=>e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-tight text-muted-foreground",children:i}),e.jsx("div",{className:"text-sm font-semibold tabular-nums",children:t.gross[i]==null?e.jsx("span",{className:"text-muted-foreground",children:a.na}):v(t.gross[i])})]},i))})]}),t.note[s]&&e.jsx("div",{className:"text-xs text-muted-foreground pt-1 border-t border-border/50",children:t.note[s]})]},l))}),e.jsx("div",{className:"hidden md:block",children:e.jsxs(ze,{children:[e.jsx(Se,{children:e.jsxs(z,{className:"bg-muted/50",children:[e.jsx(T,{className:"h-8 text-xs font-serif",children:a.item}),o.map(t=>e.jsx(T,{className:"h-8 text-xs font-serif text-right",children:t},t)),e.jsx(T,{className:"h-8 text-xs font-serif",children:a.note})]})}),e.jsx(Ge,{children:bt.map((t,l)=>e.jsxs(B.Fragment,{children:[e.jsxs(z,{className:"h-9",children:[e.jsxs(m,{className:"text-xs py-1",children:[t.label[s]," ",e.jsxs("span",{className:"text-muted-foreground",children:["· ",a.netCol]})]}),o.map(i=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap text-muted-foreground",children:t.net[i]==null?e.jsx("span",{className:"text-muted-foreground",children:a.na}):v(t.net[i])},i)),e.jsx(m,{className:"text-xs py-1 text-muted-foreground",children:t.note[s]})]},`n${l}`),e.jsxs(z,{className:"h-9 font-medium bg-muted/20",children:[e.jsxs(m,{className:"text-xs py-1",children:[t.label[s]," ",e.jsxs("span",{className:"text-muted-foreground",children:["· ",a.grossCol]})]}),o.map(i=>e.jsx(m,{className:"text-xs py-1 text-right tabular-nums whitespace-nowrap",children:t.gross[i]==null?e.jsx("span",{className:"text-muted-foreground",children:a.na}):v(t.gross[i])},i)),e.jsx(m,{className:"text-xs py-1"})]},`g${l}`)]},l))})]})})]})]}),e.jsxs(Y,{children:[e.jsxs(J,{className:"pb-3",children:[e.jsxs(Z,{className:"font-serif text-base flex items-center gap-2",children:[e.jsx(Xt,{className:"h-4 w-4 text-primary"}),Le.title[s]]}),e.jsx(Ze,{className:"text-xs",children:Le.performed[s]})]}),e.jsxs(X,{className:"space-y-4",children:[e.jsxs("div",{className:"rounded-md border border-amber-500/30 bg-amber-500/10 p-3 text-xs text-amber-950 dark:text-amber-100",children:[e.jsxs("div",{className:"font-medium mb-1 flex items-center gap-1.5",children:[e.jsx(Me,{className:"h-3.5 w-3.5"})," ",a.auditDisclaimer]}),Le.disclaimer[s]]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground font-medium",children:a.auditParticipants}),e.jsx("div",{className:"text-sm",children:Le.participants.join(", ")})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground font-medium",children:a.auditScope}),e.jsx("div",{className:"text-sm",children:Le.scope[s]})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground font-medium",children:a.auditFindings}),e.jsx("div",{className:"text-sm text-muted-foreground",children:Le.findings[s]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground font-medium",children:a.auditOpen}),e.jsx("div",{className:"text-sm text-muted-foreground",children:Le.openPoints[s]})]})]})]})]})})},nn=()=>{const{language:r}=jt(),s={cs:{title:"Provozní náklady",desc:"Přehled provozních nákladů domu 2021–2025 – všechny částky včetně DPH"},de:{title:"Betriebskosten",desc:"Überblick der Betriebskosten 2021–2025 – alle Beträge inkl. USt."},en:{title:"Operating costs",desc:"Overview of building operating costs 2021–2025 – all amounts incl. VAT"}},a=s[r]||s.cs;return e.jsx(Pt,{title:a.title,description:a.desc,breadcrumbs:[{label:a.title}],children:e.jsx(pa,{})})};export{nn as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.