:root,[data-theme=light]{--bg-primary: #f5f5f5;--bg-card: #ffffff;--bg-card-hover: rgba(255, 255, 255, 0.9);--text-primary: #002232;--text-secondary: #333;--text-muted: rgba(51, 51, 51, 0.6);--accent: #00C775;--accent-light: #00ce7c;--border: #eeeeee;--shadow: rgba(0, 0, 0, 0.1);--shadow-hover: rgba(0, 0, 0, 0.15);--dropdown-bg: #ffffff;--dropdown-hover: #f5f5f5;--trend-up: #0a7c42;--trend-down: rgb(167, 22, 22);--logo-filter: none;--flap-bg: #002232;--flap-gradient: #333}[data-theme=dark]{--bg-primary: #0f1923;--bg-card: #1a2a38;--bg-card-hover: #223344;--text-primary: #e8ecf0;--text-secondary: #a0aab4;--text-muted: rgba(160, 170, 180, 0.6);--accent: #00C775;--accent-light: #00ce7c;--border: #2a3a48;--shadow: rgba(0, 0, 0, 0.3);--shadow-hover: rgba(0, 0, 0, 0.4);--dropdown-bg: #1a2a38;--dropdown-hover: #223344;--trend-up: #2ee89a;--trend-down: #ff6b6b;--logo-filter: brightness(0) invert(1);--flap-bg: #1a3a4a;--flap-gradient: #0f1923}
:root,[data-theme=light]{--bg-primary: #f5f5f5;--bg-card: #ffffff;--bg-card-hover: rgba(255, 255, 255, 0.9);--text-primary: #002232;--text-secondary: #333;--text-muted: rgba(51, 51, 51, 0.6);--accent: #00C775;--accent-light: #00ce7c;--border: #eeeeee;--shadow: rgba(0, 0, 0, 0.1);--shadow-hover: rgba(0, 0, 0, 0.15);--dropdown-bg: #ffffff;--dropdown-hover: #f5f5f5;--trend-up: #0a7c42;--trend-down: rgb(167, 22, 22);--logo-filter: none;--flap-bg: #002232;--flap-gradient: #333}[data-theme=dark]{--bg-primary: #0f1923;--bg-card: #1a2a38;--bg-card-hover: #223344;--text-primary: #e8ecf0;--text-secondary: #a0aab4;--text-muted: rgba(160, 170, 180, 0.6);--accent: #00C775;--accent-light: #00ce7c;--border: #2a3a48;--shadow: rgba(0, 0, 0, 0.3);--shadow-hover: rgba(0, 0, 0, 0.4);--dropdown-bg: #1a2a38;--dropdown-hover: #223344;--trend-up: #2ee89a;--trend-down: #ff6b6b;--logo-filter: brightness(0) invert(1);--flap-bg: #1a3a4a;--flap-gradient: #0f1923}body{font-family:"Anton",sans-serif;margin:0;padding:0;display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:var(--bg-primary);width:100%;max-width:100vw;overflow-x:hidden}#statsApp{position:relative}.stats-container{width:100vw;max-width:1200px;padding:1rem 0px;box-sizing:border-box;min-height:100vh;opacity:0;position:relative}.stats-container.show{opacity:1;transition:opacity .5s}.stats-container .top-buttons{display:flex;justify-content:space-between;align-items:center;padding:.5rem .1rem;position:absolute;top:.5rem;right:.5rem}.stats-container .top-buttons .top-button{color:var(--text-primary);padding:.5rem;border-radius:5px;font-size:1rem;cursor:pointer;display:flex;align-items:center;gap:.5rem}.stats-container .top-buttons .top-button .icon{font-size:1rem}.stats-container .top-buttons .top-button.notif.granted{color:var(--accent)}.stats-container .top-buttons .top-button.notif.denied{color:#a71616}.stats-container .top-buttons .top-button.stack{padding:0px;display:flex;width:2rem}.stats-container .top-buttons .top-button.stack .fa-stack{position:relative}.stats-container .top-buttons .top-button.stack .fa-stack i:last-child{color:#fff;font-size:1.1rem;right:.1em;position:relative}.stats-container .top-buttons .top-button.stack .fa-stack i:only-child,.stats-container .top-buttons .top-button.stack .fa-stack i:first-child{color:var(--text-primary);font-size:1rem;right:unset}.stats-container .top-buttons .top-button.active{background-color:var(--text-primary);color:#fff}.stats-header{display:flex;justify-content:center;align-items:flex-start;margin-bottom:1.5rem;padding:0px 1rem;flex-direction:column;position:relative}.stats-header .stats-title{font-size:.8rem;font-weight:bold;line-height:.6rem;margin:0px}.stats-header .logo{text-align:center;display:flex;flex-direction:column;align-items:center}.stats-header .logo .kmzero-logo{width:10vw;max-width:50px}.stats-header .logo .kmzero-logo img{width:100%;filter:var(--logo-filter)}@media(hover: hover)and (min-width: 1024px){.stats-header .stats-title{font-size:.9rem;font-weight:bold;line-height:1rem;margin:0px}.stats-header .logo .kmzero-logo{width:15vw;max-width:70px}}.hero{text-align:center;margin:1rem 0px;padding-top:1rem;position:relative;display:flex;flex-direction:column}.hero .total-refills{font-weight:bold;height:50px;position:relative}.hero .total-refills .total-refills-text{font-size:1rem;color:var(--text-primary);position:absolute;bottom:-5px;left:50%;transform:translateX(-50%)}.hero .filter-info{font-size:1rem;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;gap:.5rem}.hero .trend-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.75rem;font-weight:bold;padding:.15rem .5rem;border-radius:12px}.hero .trend-badge.up{background:rgba(0,199,117,.15);color:var(--trend-up)}.hero .trend-badge.down{background:rgba(167,22,22,.1);color:var(--trend-down)}.hero .trend-badge.flat{background:var(--border);color:var(--text-muted)}.hero .trend-badge i{font-size:.6rem}@media(hover: hover)and (min-width: 1024px){.hero{margin-top:-2rem}}.latest-ticker{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.4rem 1rem;font-size:.8rem;color:var(--text-secondary);background:linear-gradient(90deg, transparent, rgba(0, 199, 117, 0.08), transparent);animation:tickerFadeIn .3s ease}.latest-ticker i{color:var(--accent);font-size:.7rem}@keyframes tickerFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.filter-bar{display:flex;gap:.5rem;padding:.75rem 1rem;flex-wrap:wrap}.filter-bar .dropdown{position:relative;flex:1;min-width:140px}.filter-bar .dropdown .dropdown-trigger{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:.8rem;color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.filter-bar .dropdown .dropdown-trigger:hover{border-color:rgba(0,34,50,.3)}.filter-bar .dropdown .dropdown-trigger .dropdown-label{font-weight:bold;display:flex;align-items:center;gap:.4rem}.filter-bar .dropdown .dropdown-trigger .filter-count{background:var(--accent);color:var(--text-primary);font-size:.65rem;padding:.1rem .4rem;border-radius:10px;font-weight:bold}.filter-bar .dropdown .dropdown-trigger i.fa-chevron-down{font-size:.6rem;opacity:.5;transition:transform .2s}.filter-bar .dropdown.open .dropdown-trigger{border-color:var(--accent);box-shadow:0 0 0 2px rgba(0,199,117,.2)}.filter-bar .dropdown.open .dropdown-trigger i.fa-chevron-down{transform:rotate(180deg)}.filter-bar .dropdown .dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:220px;background:var(--dropdown-bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px var(--shadow);z-index:100;max-height:300px;display:flex;flex-direction:column}.filter-bar .dropdown .dropdown-search{padding:.5rem .75rem;border:none;border-bottom:1px solid var(--border);font-size:.8rem;font-family:inherit;outline:none;background:rgba(0,0,0,0);color:var(--text-primary)}.filter-bar .dropdown .dropdown-search::placeholder{color:var(--text-muted)}.filter-bar .dropdown .dropdown-selected-tags{display:flex;flex-wrap:wrap;gap:.25rem;padding:.4rem .5rem;border-bottom:1px solid var(--border)}.filter-bar .dropdown .filter-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;background:rgba(0,199,117,.15);color:var(--text-primary);border-radius:12px;font-size:.7rem;font-weight:bold}.filter-bar .dropdown .filter-tag i{cursor:pointer;font-size:.6rem;opacity:.6}.filter-bar .dropdown .filter-tag i:hover{opacity:1}.filter-bar .dropdown .dropdown-clear{padding:.3rem .75rem;font-size:.7rem;color:var(--trend-down);cursor:pointer;border-bottom:1px solid var(--border)}.filter-bar .dropdown .dropdown-clear:hover{background:rgba(255,0,0,.05)}.filter-bar .dropdown .dropdown-options{overflow-y:auto;max-height:200px}.filter-bar .dropdown .dropdown-option{padding:.5rem .75rem;font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;color:var(--text-primary);transition:background .15s}.filter-bar .dropdown .dropdown-option:hover{background:var(--dropdown-hover)}.filter-bar .dropdown .dropdown-option.selected{background:rgba(0,199,117,.08);font-weight:bold}.filter-bar .dropdown .dropdown-option i.fa-check-square{color:var(--accent)}.filter-bar .dropdown .dropdown-option i.fa-square{opacity:.3}.loading-bar{height:3px;background:var(--border);overflow:hidden;margin:0 1rem;border-radius:2px}.loading-bar .loading-bar-inner{height:100%;width:30%;background:var(--accent);border-radius:2px;animation:loadingSlide 1s ease-in-out infinite}@keyframes loadingSlide{0%{transform:translateX(-100%)}100%{transform:translateX(400%)}}.is-fetching{opacity:.5;pointer-events:none;transition:opacity .2s}.summary-bar{display:flex;gap:.5rem;padding:.5rem 1rem;margin-bottom:.25rem}.summary-bar .summary-stat{flex:1;text-align:center;padding:.5rem;background:var(--bg-card);border-radius:6px;border:1px solid var(--border)}.summary-bar .summary-stat .summary-value{font-size:1.1rem;font-weight:bold;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-bar .summary-stat .summary-label{font-size:.65rem;color:var(--text-muted);margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-controls{display:flex;gap:.5rem;padding:.25rem 1rem .5rem;align-items:center}.card-controls .card-search{flex:1;display:flex;align-items:center;gap:.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:.4rem .75rem}.card-controls .card-search i{color:var(--text-muted);font-size:.8rem}.card-controls .card-search input{border:none;outline:none;font-size:.8rem;font-family:inherit;background:rgba(0,0,0,0);color:var(--text-primary);width:100%}.card-controls .card-search input::placeholder{color:var(--text-muted)}.card-controls .card-sort select{padding:.4rem .75rem;border:1px solid var(--border);border-radius:6px;font-size:.8rem;font-family:inherit;background:var(--bg-card);color:var(--text-primary);cursor:pointer;outline:none}.stats-body{border-radius:5px;padding:.5rem 1rem;box-sizing:border-box;display:grid;grid-template-columns:repeat(4, 1fr);gap:.75rem}.stats-body .section-card{background-color:var(--bg-card);border-radius:8px;box-shadow:0px 1px 4px var(--shadow);padding:.75rem 1rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;position:relative}.stats-body .section-card:hover{transform:translateY(-2px);box-shadow:0px 3px 8px var(--shadow-hover)}.stats-body .section-card .card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem}.stats-body .section-card .card-header .refill-count{font-size:2rem;font-weight:bold;color:var(--text-primary);line-height:1}.stats-body .section-card .card-header .refill-last{font-size:.7rem;color:var(--text-muted)}.stats-body .section-card .card-body .refill-name{font-size:.85rem;font-weight:bold;color:var(--text-primary)}.stats-body .section-card .card-body .refill-meta{font-size:.75rem;color:var(--text-muted);margin-top:.1rem}.stats-body .section-card .activity-dot{position:absolute;top:.6rem;left:.6rem;width:6px;height:6px;border-radius:50%}.stats-body .section-card .activity-dot.hot{background:#00c775;box-shadow:0 0 4px rgba(0,199,117,.5)}.stats-body .section-card .activity-dot.warm{background:#f0ad4e}.stats-body .section-card .activity-dot.cool{background:var(--border)}.stats-body .section-card .activity-dot.cold{background:var(--border);opacity:.4}.stats-body .section-card .card-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.stats-body .section-card .card-trend{font-size:.65rem;font-weight:bold;display:inline-flex;align-items:center;gap:.15rem}.stats-body .section-card .card-trend.up{color:var(--trend-up)}.stats-body .section-card .card-trend.down{color:var(--trend-down)}.stats-body .section-card .card-trend.flat{color:var(--text-muted)}.stats-body .section-card .card-trend i{font-size:.55rem}.stats-body .section-card .card-footer{display:flex;align-items:flex-end;gap:.5rem;margin-top:.4rem;padding-top:.35rem;border-top:1px solid var(--border)}.stats-body .section-card .card-footer .card-stat{font-size:.65rem;color:var(--text-muted);font-weight:bold}.stats-body .section-card .card-footer .sparkline{display:flex;align-items:flex-end;gap:1px;height:16px;margin-left:auto}.stats-body .section-card .card-footer .sparkline .spark-bar{width:4px;min-height:1px;background:var(--accent);border-radius:1px;opacity:.6}@media(max-width: 900px){.stats-body{grid-template-columns:repeat(2, 1fr)}}@media(max-width: 500px){.stats-body{grid-template-columns:1fr}}.stats-body .no-results{padding:2rem;text-align:center;color:var(--text-muted);font-size:.9rem;width:100%}.graph-image.activate{padding:1rem}.graph-image.activate .total-refills{margin-bottom:1rem}.loading-container{display:flex;justify-content:center;align-items:center;height:100vh}.loading-container .loading{font-size:2rem;color:var(--text-primary)}.hide{display:none !important}.version{position:fixed;right:0px;bottom:5px;font-size:.9rem;opacity:.8;text-shadow:0px 1px #fff;transform:rotateZ(-90deg);padding:10px 0px;z-index:1000;color:var(--text-muted)}.dispenser-details-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(51,51,51,.5);display:flex;justify-content:center;align-items:center;z-index:1000}.dispenser-details-modal .modal-content{background-color:var(--bg-card);padding:2rem;border-radius:8px;max-width:95%;max-height:90vh;overflow-y:auto;position:relative;width:800px;box-shadow:0px 0px 20px var(--shadow)}.dispenser-details-modal .close{position:absolute;right:1rem;top:1rem;font-size:1.5rem;cursor:pointer;color:var(--text-primary);opacity:.7;transition:opacity .2s ease}.dispenser-details-modal .close:hover{opacity:1}.dispenser-details-modal h2{margin-bottom:1.5rem;color:var(--text-primary);font-size:1.5rem;font-weight:bold}.dispenser-details-modal .dispenser-details{display:flex;flex-direction:column;gap:2rem}.dispenser-details-modal .details-header{display:flex;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid var(--border)}.dispenser-details-modal .details-header .total-refills,.dispenser-details-modal .details-header .last-refill{display:flex;flex-direction:column;gap:.5rem}.dispenser-details-modal .details-header .total-refills .label,.dispenser-details-modal .details-header .last-refill .label{font-size:.8rem;color:var(--text-muted)}.dispenser-details-modal .details-header .total-refills .value,.dispenser-details-modal .details-header .last-refill .value{font-size:2rem;font-weight:bold;color:var(--text-primary)}.dispenser-details-modal .time-breakdown{display:flex;flex-direction:column;gap:1rem}.dispenser-details-modal .time-breakdown h3{color:var(--text-primary);font-size:1.2rem;margin-bottom:.5rem;font-weight:bold}.dispenser-details-modal .time-breakdown .chart-container{position:relative;height:300px;width:100%;padding:1rem;background-color:var(--bg-card);border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05)}@media(max-width: 768px){.dispenser-details-modal .modal-content{padding:1.5rem;margin:1rem;width:100%}.dispenser-details-modal .details-header .total-refills .value,.dispenser-details-modal .details-header .last-refill .value{font-size:1.5rem}.dispenser-details-modal .time-breakdown .chart-container{height:250px;padding:.5rem}}.mobile-navbar,.mobile-filter-panel{display:none}@media(max-width: 768px){.mobile-navbar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--border);box-shadow:0 -2px 8px var(--shadow);z-index:999;justify-content:space-around;padding:.4rem 0;padding-bottom:calc(.4rem + env(safe-area-inset-bottom, 0px))}.mobile-navbar .nav-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.3rem .5rem;cursor:pointer;color:var(--text-muted);font-size:.55rem;transition:color .2s;position:relative}.mobile-navbar .nav-item i{font-size:1rem}.mobile-navbar .nav-item:active{color:var(--accent)}.mobile-navbar .nav-item.active{color:var(--accent)}.mobile-navbar .nav-item .nav-badge{background:var(--accent);color:var(--text-primary);font-size:.5rem;padding:.05rem .3rem;border-radius:8px;font-weight:bold;margin-left:.2rem}.filter-bar{display:none}.mobile-filter-panel{position:fixed;bottom:calc(52px + env(safe-area-inset-bottom, 0px));left:0;right:0;max-height:55vh;background:var(--dropdown-bg);border-top:1px solid var(--border);border-radius:16px 16px 0 0;box-shadow:0 -4px 16px var(--shadow);z-index:998;display:flex;flex-direction:column;animation:slideUp .2s ease}.mobile-filter-panel .mobile-panel-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem .5rem;border-bottom:1px solid var(--border)}.mobile-filter-panel .mobile-panel-header .mobile-panel-title{font-weight:bold;font-size:.9rem;color:var(--text-primary)}.mobile-filter-panel .mobile-panel-header .mobile-panel-close{cursor:pointer;color:var(--text-muted);padding:.25rem}.mobile-filter-panel .mobile-panel-header .mobile-panel-close:hover{color:var(--text-primary)}.mobile-filter-panel .dropdown-search{padding:.6rem 1rem;border:none;border-bottom:1px solid var(--border);font-size:.85rem;font-family:inherit;outline:none;background:rgba(0,0,0,0);color:var(--text-primary)}.mobile-filter-panel .dropdown-search::placeholder{color:var(--text-muted)}.mobile-filter-panel .dropdown-selected-tags{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1rem;border-bottom:1px solid var(--border)}.mobile-filter-panel .dropdown-clear{padding:.4rem 1rem;font-size:.75rem;color:var(--trend-down);cursor:pointer;border-bottom:1px solid var(--border)}.mobile-filter-panel .dropdown-options{overflow-y:auto;flex:1}.mobile-filter-panel .dropdown-option{padding:.6rem 1rem;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;color:var(--text-primary)}.mobile-filter-panel .dropdown-option:active{background:var(--dropdown-hover)}.mobile-filter-panel .dropdown-option.selected{background:rgba(0,199,117,.08);font-weight:bold}.mobile-filter-panel .dropdown-option i.fa-check-square{color:var(--accent)}.mobile-filter-panel .dropdown-option i.fa-square{opacity:.3}@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}.stats-container{padding-bottom:4rem}.summary-bar{flex-wrap:wrap}.summary-bar .summary-stat{flex:1 1 40%}.version{bottom:60px}}
:root,[data-theme=light]{--bg-primary: #f5f5f5;--bg-card: #ffffff;--bg-card-hover: rgba(255, 255, 255, 0.9);--text-primary: #002232;--text-secondary: #333;--text-muted: rgba(51, 51, 51, 0.6);--accent: #00C775;--accent-light: #00ce7c;--border: #eeeeee;--shadow: rgba(0, 0, 0, 0.1);--shadow-hover: rgba(0, 0, 0, 0.15);--dropdown-bg: #ffffff;--dropdown-hover: #f5f5f5;--trend-up: #0a7c42;--trend-down: rgb(167, 22, 22);--logo-filter: none;--flap-bg: #002232;--flap-gradient: #333}[data-theme=dark]{--bg-primary: #0f1923;--bg-card: #1a2a38;--bg-card-hover: #223344;--text-primary: #e8ecf0;--text-secondary: #a0aab4;--text-muted: rgba(160, 170, 180, 0.6);--accent: #00C775;--accent-light: #00ce7c;--border: #2a3a48;--shadow: rgba(0, 0, 0, 0.3);--shadow-hover: rgba(0, 0, 0, 0.4);--dropdown-bg: #1a2a38;--dropdown-hover: #223344;--trend-up: #2ee89a;--trend-down: #ff6b6b;--logo-filter: brightness(0) invert(1);--flap-bg: #1a3a4a;--flap-gradient: #0f1923}.splitflap{position:relative;min-width:50px;height:50px;margin:5px;line-height:50px;font-size:40px;font-family:"Roboto",sans-serif;text-align:center;color:#fff}.splitflap .top{position:relative;height:50%;width:100%;background-color:var(--flap-bg);border-radius:10px 10px 0 0;overflow:hidden;z-index:0}.splitflap .bottom{position:relative;height:100%;width:100%;margin-top:-50%;border-radius:10px;z-index:-1;background-color:var(--flap-gradient);background-image:linear-gradient(rgba(0, 0, 0, 0), var(--flap-bg));transform-origin:center}.splitflap .nextHalf{position:relative;height:50%;width:100%;margin-top:-100%;overflow:hidden;border-radius:10px 10px 0 0;z-index:2;background-color:var(--flap-gradient);background-image:linear-gradient(var(--flap-bg), rgba(0, 0, 0, 0));transform-origin:bottom}.splitflap .nextFull{position:relative;height:100%;width:100%;background-color:var(--flap-bg);margin-top:-50%;border-radius:10px;z-index:-3}.splitflap .flip1{animation:flip1 ease-in 1;animation-duration:.2s}.splitflap .flip2{animation:flip2 ease-out 1;animation-duration:.2s}.big-number{position:absolute;left:0;top:50%;margin-top:-50px;width:100%;display:flex;justify-content:center}.big-number div{perspective:500px}@keyframes flip1{0%{transform:rotateX(0deg);background-color:var(--flap-bg)}50%{transform:rotateX(90deg);background-color:var(--flap-bg)}100%{transform:rotateX(90deg)}}@keyframes flip2{0%{transform:rotateX(-90deg)}50%{transform:rotateX(-90deg)}100%{transform:rotateX(0deg);background-color:var(--flap-bg)}}
