:root{--paper:#f4f5f0;--white:#fff;--ink:#21352f;--muted:#728078;--line:#e2e7de;--pine:#173f37;--green:#33785c;--lime:#d6ed9a;--orange:#dd9e50;--blue:#6a93b5;--red:#b9544b;--radius:17px;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #87ad57;outline-offset:3px}button{border:1px solid var(--line);background:white;border-radius:9px;padding:10px 15px;color:var(--ink);font-size:13px;font-weight:600}button:hover{border-color:#98ad9e;background:#fafcf7}.primary{background:var(--pine);color:white;border-color:var(--pine)}.primary:hover{background:#285448;color:white}.primary span{float:right}.secondary{background:transparent}.quiet{background:transparent;border:0;color:inherit;padding-left:0}.shell{display:grid;grid-template-columns:234px minmax(0,1fr);min-height:100vh}aside{position:sticky;top:0;height:100vh;background:var(--pine);color:#e9f1e7;padding:31px 21px 24px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:650;letter-spacing:-.6px;font-size:19px}.brand-mark{width:39px;height:43px;border-radius:12px;display:grid;place-items:center;background:var(--lime);color:var(--pine);font-size:36px;font-weight:700;flex-shrink:0}.brand small{display:block;font-size:8px;letter-spacing:1.8px;margin-top:6px;color:#a4c0af}.home-label{border:1px solid #3d5d51;border-radius:11px;padding:13px 12px;margin:32px 0 23px;font-size:13px}.home-label small{float:right;color:#afc5b6}.status-dot{width:7px;height:7px;background:#a8d37b;border-radius:50%;display:inline-block;margin-right:7px}.status-dot.offline{background:var(--orange)}nav{display:grid;gap:7px}nav a{text-decoration:none;padding:12px 13px;border-radius:9px;font-size:13px;color:#bfcec4;display:flex;gap:13px;align-items:center}nav a span{width:18px;font-size:21px;line-height:16px;font-weight:400}nav a:hover{background:#ffffff0b}nav a.active{background:#d7ebac;color:#1e3d31;font-weight:650}.sidebar-bottom{margin-top:auto;font-size:11px;color:#b6cdbb}.collect-label{font-size:12px;color:#eef5e8;margin-bottom:7px}.sidebar-bottom p{border-top:1px solid #38584b;padding-top:20px;margin-top:24px}.sidebar-bottom .quiet{font-size:11px;color:#b6cdbb}main{min-width:0;padding:38px 39px 22px;max-width:1800px;width:100%}header{display:flex;align-items:center;justify-content:space-between;gap:24px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:2px;color:var(--green);margin:0 0 10px}h1{font-size:29px;font-weight:620;letter-spacing:-1px;line-height:1.18;margin:0}h2{font-size:16px;font-weight:620;letter-spacing:-.25px;margin:0 0 6px}h3{font-size:13px;margin:0 0 8px}.subtitle{font-size:12px;color:var(--muted);margin:10px 0 0;line-height:1.6}.header-status{font-size:11px;white-space:nowrap;background:#e7edde;padding:9px 12px;border-radius:20px}.header-status .status-dot{background:var(--green)}.toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:30px 0 23px;flex-wrap:wrap}.range-buttons{display:flex;background:#e8ece3;padding:4px;border-radius:10px;gap:3px}.range-buttons button{border:none;background:transparent;padding:8px 13px;color:#788373;font-size:12px}.range-buttons button.selected{background:white;box-shadow:0 1px 5px #34413112;color:#234535}.date-range{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:12px;margin-left:auto}.date-range input{border:1px solid var(--line);padding:8px;background:transparent;border-radius:8px;color:var(--ink);font-size:12px}.date-range button{padding:7px 10px;background:transparent}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.metric{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px 20px 17px;min-width:0;position:relative}.metric.featured{background:var(--pine);color:#f4f9ed;border-color:var(--pine)}.metric-label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.featured .metric-label,.featured .metric-note{color:#bad1bd}.metric-icon{background:#f0f4e9;border-radius:8px;display:grid;place-items:center;width:28px;height:28px;font-size:17px;margin-left:auto;color:var(--green)}.featured .metric-icon{background:#ffffff13;color:var(--lime)}.metric-value{font-size:33px;letter-spacing:-1.1px;font-weight:580;margin:17px 0 12px;line-height:1.05;font-variant-numeric:tabular-nums}.metric-value span{font-size:15px;letter-spacing:0;margin-left:4px;font-weight:400;color:var(--muted)}.featured .metric-value span{color:#bad1bd}.metric-note{font-size:10px;color:var(--muted);line-height:1.6}.mini-track{height:4px;border-radius:3px;background:#dde6d9;margin:0 0 9px;overflow:hidden}.mini-track i{display:block;height:100%;background:#98bb64}.featured .mini-track{background:#42624f}.grid-two{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(270px,1fr);gap:20px;margin-bottom:20px}.grid-equal{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-width:0;margin-bottom:20px}.grid-two>.panel,.grid-equal>.panel{margin-bottom:0}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:start;margin-bottom:20px}.panel-sub{font-size:11px;color:var(--muted);margin:7px 0 0;line-height:1.6}.tag{font-size:10px;display:inline-block;background:#eef3e7;color:#5c7844;border-radius:6px;padding:5px 8px;white-space:nowrap}.tag.amber{background:#fbf0de;color:#98723b}.tag.neutral{background:#eff1ee;color:#7a837d}.legend{display:flex;gap:18px;font-size:10px;color:var(--muted);flex-wrap:wrap;margin-top:12px}.legend i{width:8px;height:8px;border-radius:3px;display:inline-block;margin-right:5px;background:var(--c)}.chart{width:100%;height:235px;display:block;overflow:visible;touch-action:pan-y}.chart text{font-size:10px;fill:#7b897f;font-family:inherit}.chart .grid-line{stroke:#edf0e9;stroke-width:1}.chart-wrap{min-width:0;position:relative}.chart-wrap select{font-size:11px;border:1px solid var(--line);background:white;border-radius:7px;padding:6px}.chart-unit{font-size:10px;color:var(--muted);margin-bottom:3px}.chart-inspector{display:flex;gap:12px;align-items:center;font-size:10px;color:var(--muted);margin:10px 0}.chart-inspector input{accent-color:var(--green);width:130px}.chart-empty{height:220px;display:grid;place-content:center;text-align:center;color:var(--muted);font-size:12px;line-height:1.7}.flow-list{display:grid;gap:13px}.flow-row{display:flex;align-items:center;gap:10px;font-size:12px}.flow-icon{background:#f2f5eb;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-size:18px;color:var(--green)}.flow-row small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.flow-row strong{margin-left:auto;font-size:16px;font-weight:550;font-variant-numeric:tabular-nums}.flow-house{background:#f0f5e6;border:1px solid #dbe6cb;padding:17px;border-radius:11px;margin-top:17px;display:flex;justify-content:space-between;font-size:12px;align-items:center}.flow-house strong{font-size:23px;font-weight:600}.subtle{color:var(--muted);font-size:11px;line-height:1.7}.notice{padding:13px 17px;border:1px solid #dce5cf;background:#edf2e4;border-radius:10px;margin-bottom:20px;font-size:12px;line-height:1.7;color:#516643;display:flex;gap:11px;align-items:start}.notice strong{color:#3b5632}.notice.amber{background:#fcf5e8;border-color:#ecdfc7;color:#8a6a3a}.notice.error{background:#fff0eb;border-color:#ebc6b8;color:#a2442d}.notice a{text-underline-offset:3px}.stat-line{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #edf0e8;gap:16px;font-size:12px}.stat-line:last-child{border:0}.stat-line strong{font-weight:600;font-variant-numeric:tabular-nums}.stat-line small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.big-callout{font-size:37px;font-weight:550;letter-spacing:-1.2px;margin:19px 0 5px}.big-callout small{font-size:13px;letter-spacing:0;color:var(--muted)}.price-panel{background:#eaf0df;border-color:#dce6cc}.price-panel .tag{background:white}.inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-actions button,.inline-actions select{font-size:11px}.link-button{color:var(--green);text-decoration:none;font-size:11px;font-weight:600;padding:6px 0;display:inline-block}.rows{display:grid;gap:16px}.device-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center}.device-row strong{font-size:12px;font-weight:550}.device-row small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.device-row .device-amount{font-size:14px;font-variant-numeric:tabular-nums;text-align:right}.device-progress{height:5px;border-radius:4px;background:#edf1e7;margin-top:10px;overflow:hidden}.device-progress i{display:block;background:#91ad70;height:100%}.device-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.device-cards .panel{margin-bottom:0}.device-cards .metric-value{font-size:29px}.device-cards .tag{margin-bottom:14px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}th{font-weight:500;color:var(--muted);padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px 10px;border-bottom:1px solid #eff2eb;font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcf7}.table-scroll{max-height:430px;overflow:auto}.table-scroll th{position:sticky;top:0;background:white}form label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#58695d}form input,form select,form textarea{border:1px solid #d9e1d3;border-radius:8px;padding:11px;background:white;color:var(--ink);width:100%;font-size:13px}form textarea{min-height:85px;resize:vertical}form .field-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:18px 0}form .full{grid-column:1/-1}form .checkbox{display:flex;flex-direction:row;align-items:start;line-height:1.5}form .checkbox input{width:16px;margin:2px 0;accent-color:var(--green)}details{border-top:1px solid var(--line);padding-top:17px;margin-top:18px}summary{cursor:pointer;font-size:12px;font-weight:600}details .field-grid{margin-bottom:18px}.heat-scroll{overflow:auto}.heat-grid{display:grid;grid-template-columns:75px repeat(24,minmax(14px,1fr));gap:4px;min-width:650px}.heat-grid .heat-label{font-size:9px;color:#7c897f;align-self:center}.heat-cell{height:17px;border-radius:3px;background:#f0f2ed;border:1px solid #e6eae1}.heat-cell.partial{border-style:dashed;border-color:#9ba38c}.heat-cell[data-value]{background:color-mix(in srgb,#739754 calc(var(--level)*100%),#eef3e3)}.timeline-note{padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.7;white-space:pre-wrap}.timeline-note time{display:block;color:var(--muted);font-size:10px}.progress-campaign{display:flex;align-items:center;gap:15px;margin-top:19px}.progress-campaign .mini-track{flex:1;margin:0;height:7px}.progress-campaign strong{font-size:12px}.pill-list{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0}.pill-list span{font-size:10px;background:#f0f4e9;padding:8px;border-radius:7px}.empty{padding:45px 20px;text-align:center;color:var(--muted);font-size:12px;line-height:1.8}.empty h2{color:var(--ink);margin-bottom:10px}.loader{border:2px solid #dce6d1;border-top-color:#437754;width:25px;height:25px;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}footer{display:flex;justify-content:space-between;color:#8a948b;font-size:9px;padding:12px 0 0;gap:20px;line-height:1.5}.login-shell{display:grid;place-items:center;min-height:100vh;background:#edf2e5}.login-card{max-width:400px;width:calc(100% - 32px);background:white;border:1px solid #dde5d6;border-radius:24px;padding:38px;box-shadow:0 20px 100px #2a4b2010}.login-card .brand-mark{margin-bottom:25px}.login-card>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.7;margin:16px 0 28px}.login-card label{margin:26px 0 15px}.login-card button{width:100%;padding:14px}.login-card small{color:var(--muted);font-size:10px}.login-card #login-error{color:var(--red);margin:13px 0}.login-card h1{font-size:34px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--pine);color:white;padding:13px 23px;border-radius:12px;font-size:12px;box-shadow:0 10px 40px #0002;z-index:30;max-width:90vw}#chart-tooltip{position:fixed;pointer-events:none;z-index:50;background:#173f37ed;color:white;border:1px solid #688b70;border-radius:9px;padding:11px 14px;font-size:11px;line-height:1.8;box-shadow:0 5px 25px #0002;white-space:pre-line;min-width:140px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}code{font-family:Consolas,monospace;background:#f0f3ec;padding:2px 5px;border-radius:4px;font-size:11px}pre{white-space:pre-wrap;word-break:break-word;background:#f5f7f1;padding:15px;border-radius:10px;font-size:11px;line-height:1.7}select{border:1px solid var(--line);border-radius:8px;padding:9px;background:white;color:var(--ink)}
@media(min-width:1600px){main{padding:43px 55px}.chart{height:280px}.metric-value{font-size:39px}}
@media(max-width:1200px){.shell{grid-template-columns:200px minmax(0,1fr)}aside{padding:27px 15px}.brand{font-size:16px}.brand small{font-size:7px}.brand-mark{width:33px;height:38px}main{padding:29px 24px}.grid-two{grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr)}.metric{padding:16px}.metric-value{font-size:29px}.metric-label{font-size:11px}.metric-icon{display:none}.header-status{display:none}.date-range{margin-left:0}.device-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{gap:9px}}
@media(max-width:900px){.shell{grid-template-columns:75px minmax(0,1fr)}aside{padding:25px 12px}.brand>span:last-child,.home-label,.sidebar-bottom,nav a{font-size:0}.brand{justify-content:center}.brand-mark{width:36px;height:39px}nav{margin-top:35px}nav a{justify-content:center;padding:14px 0;gap:0}nav a span{font-size:24px;width:auto}nav a[data-view]{position:relative}.grid-two{grid-template-columns:1fr}.grid-equal{grid-template-columns:1fr 1fr}.metric-grid{gap:10px}.metric-value{font-size:25px}.metric{padding:15px 12px}.metric-note{font-size:9px}.metric-label{font-size:10px}main{padding:28px 23px}}
@media(max-width:650px){.shell{display:block;padding-bottom:75px}aside{position:fixed;top:auto;bottom:0;left:0;right:0;height:68px;z-index:20;padding:6px 8px;background:#173f37f7;backdrop-filter:blur(10px)}aside .brand,aside .home-label,aside .sidebar-bottom{display:none}nav{margin:0;display:flex;justify-content:space-around;gap:3px}nav a{font-size:8px;display:flex;flex-direction:column;gap:5px;padding:9px 5px;flex:1;border-radius:7px;text-align:center}nav a span{font-size:19px;line-height:19px}nav a[data-view=settings]{font-size:0}nav a[data-view=settings]:after{content:'Daten';font-size:8px}main{padding:25px 16px}h1{font-size:26px}.subtitle{font-size:11px;max-width:310px}.toolbar{margin:22px 0 18px;gap:11px}.range-buttons{width:100%;justify-content:space-between}.range-buttons button{flex:1}.date-range{gap:5px;flex:1}.date-range input{font-size:11px;width:119px;padding:7px 4px}.date-range button{display:none}#export-button{font-size:10px;padding:9px}.metric-grid{grid-template-columns:1fr 1fr;gap:11px}.metric{padding:17px}.metric-value{font-size:32px;margin:15px 0 10px}.metric-label{font-size:11px}.metric-note{font-size:10px}.metric-icon{display:grid;width:24px;height:24px}.panel{padding:18px;border-radius:14px}.grid-equal{grid-template-columns:1fr}.device-cards{grid-template-columns:1fr}.chart{height:215px}.panel-head{gap:8px}.tag{font-size:9px}h2{font-size:15px}.notice{font-size:11px;padding:12px}.legend{gap:11px}.flow-list{grid-template-columns:1fr 1fr;gap:18px 13px}.flow-row{flex-wrap:wrap}.flow-row strong{font-size:16px;width:100%;margin-left:43px;margin-top:-6px}.flow-icon{width:32px;height:32px}.flow-row small{font-size:9px}.flow-row{font-size:11px}.flow-house{margin-top:23px}footer{display:block;font-size:9px}footer span{display:block;margin-top:7px}.field-grid{gap:11px!important}form input{font-size:12px}.login-card{padding:30px}.chart-inspector{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
