.page-index{--dash-border:color-mix(in srgb, var(--border-color) 70%, transparent);--dash-surface:color-mix(in srgb, var(--surface-2) 55%, transparent);--dash-ring-size:clamp(168px, 52vw, 208px);--dash-bento-height:min(320px, 46vh);--dash-android-ring:min(168px, calc(var(--dash-bento-height) - 108px))}.page-index .app-container>.main-content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;max-height:100%;overflow:hidden;padding-bottom:calc(var(--dock-wrap-height,88px) + 20px + env(safe-area-inset-bottom,0px))!important;box-sizing:border-box}.page-index .main-content-scroll{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}.page-index .wf-page--dashboard{width:100%;max-width:min(72rem,100%)!important;margin-inline:auto;flex:1 1 auto;min-height:0;gap:clamp(14px,2vw,20px)}.dashboard-page{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:clamp(14px,2vw,20px)}.dash-top{flex-shrink:0}.dash-top__title{margin:0;font-family:var(--font-ui);font-size:clamp(1.35rem, 2.4vw, 1.65rem);font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--text-primary)}.dash-stats{flex-shrink:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:5px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface-2) 50%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 55%,transparent)}.dash-stat{display:flex;flex-direction:column;gap:5px;padding:11px 13px 10px;border-radius:calc(var(--radius-pill) - 4px);background:0 0;border:none;min-width:0;transition:background .12s ease}.dash-stat--total{background:color-mix(in srgb,var(--surface-2) 72%,transparent)}.dash-stat__head{display:flex;align-items:center;gap:7px;min-width:0}.dash-stat__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--text-muted);opacity:.5}.dash-stat--online .dash-stat__dot{background:var(--online,#22c55e);opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--online,#22c55e) 20%,transparent)}.dash-stat--offline .dash-stat__dot{background:var(--offline,#ef4444);opacity:.85}.dash-stat__label{font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--text-muted);white-space:nowrap}.dash-stat--total .dash-stat__label{color:var(--text-primary)}.dash-stat__value{margin-left:auto;font-family:var(--font-ui);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;color:var(--text-primary)}.dash-stat--online .dash-stat__value{color:var(--online,var(--success,#22c55e))}.dash-stat--offline .dash-stat__value{color:color-mix(in srgb,var(--offline,#ef4444) 88%,var(--text-primary))}.dash-stat__bar{height:2px;margin-top:1px;margin-left:13px;border-radius:1px;background:color-mix(in srgb,var(--border-color) 40%,transparent);overflow:hidden}.dash-stat__bar>span{display:block;height:100%;width:var(--kpi-fill,0%);border-radius:inherit;background:var(--accent-primary);transition:width .45s ease}.dash-stat--online .dash-stat__bar>span{background:var(--online,var(--success,#22c55e))}.dash-stat--offline .dash-stat__bar>span{background:var(--offline,var(--danger,#ef4444))}.dash-grid{flex:1 1 auto;min-height:0;display:grid;gap:10px;grid-template-columns:1fr;align-content:start}@media (min-width:900px){.dash-grid{grid-template-columns:minmax(0,1.55fr) minmax(300px,400px);grid-template-rows:var(--dash-bento-height);align-content:stretch}.dash-panel--android,.dash-panel--chart{min-height:0;height:100%}}.dash-panel{display:flex;flex-direction:column;min-height:0;min-width:0;border-radius:var(--radius-md);background:var(--dash-surface);border:1px solid var(--dash-border);box-shadow:none;overflow:hidden}.dash-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 16px 10px;flex-shrink:0}.dash-panel__title{margin:0;font-family:var(--font-ui);font-size:14px;font-weight:600;letter-spacing:-.01em;line-height:1.3;color:var(--text-primary)}.dash-panel__badge{flex-shrink:0;font-family:var(--font-ui);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-muted)}.dash-panel__body{flex:1 1 auto;min-height:0;padding:12px 16px 16px;display:flex;flex-direction:column;border-top:1px solid color-mix(in srgb,var(--border-color) 55%,transparent)}.dash-panel__empty{margin:0;padding:24px 12px;text-align:center;font-family:var(--font-ui);font-size:13px;font-weight:500;color:var(--text-muted)}.dash-panel__empty[hidden]{display:none}.dash-panel--chart{display:flex;flex-direction:column}.dash-panel__body--chart{position:relative;flex:1 1 auto;min-height:240px}.dash-panel__body--chart canvas{width:100%!important;height:100%!important;min-height:240px}@media (min-width:900px){.dash-panel__body--chart{min-height:0}.dash-panel__body--chart canvas{min-height:0}}.dash-panel__body--chart .dash-panel__empty:not([hidden]){position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0}.dash-panel--android{display:flex;flex-direction:column}.dash-panel__body--android{flex:1 1 auto;min-height:0;align-items:stretch;gap:10px;overflow:hidden}.dash-android__ring{position:relative;width:var(--dash-ring-size);height:var(--dash-ring-size);flex-shrink:0;margin-inline:auto;overflow:hidden}@media (min-width:900px){.dash-android__ring{--dash-ring-size:var(--dash-android-ring);width:var(--dash-ring-size);height:var(--dash-ring-size);margin-inline:auto;flex-shrink:0}.dash-android__legend{flex:1 1 auto;min-height:72px;min-width:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:2px;scrollbar-gutter:stable}}.dash-android__glow{display:none}.dash-android__canvas{position:absolute;inset:0}.dash-android__canvas canvas{display:block;width:100%!important;height:100%!important}.dash-android__ring--empty .dash-android__canvas::after{content:"";position:absolute;inset:10%;border-radius:50%;border:1px dashed color-mix(in srgb,var(--border-color) 50%,transparent);pointer-events:none}.dash-android__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none}.dash-android__icon{width:18px;height:18px;color:var(--text-muted);opacity:.65;margin-bottom:2px}.dash-android__total{font-family:var(--font-ui);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;color:var(--text-primary)}.dash-android__total-label{font-family:var(--font-ui);font-size:12px;font-weight:500;color:var(--text-muted)}.dash-android__legend{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;max-height:min(220px,32vh);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent-primary) 32%,transparent) transparent;scrollbar-gutter:stable}.dash-android__legend::-webkit-scrollbar{width:6px}.dash-android__legend::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent-primary) 30%,transparent);border-radius:3px}@media (min-width:900px){.dash-android__legend{max-height:none}.dash-android__legend .donut-legend-item{padding:8px 4px;font-size:13px;gap:10px}}.dash-android__legend:empty{display:none}.dash-android__legend .donut-legend-item{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid color-mix(in srgb,var(--border-color) 45%,transparent);font-family:var(--font-ui);font-size:13px;font-weight:500}.dash-android__legend .donut-legend-item:last-child{border-bottom:none}@media (hover:hover) and (pointer:fine){.dash-android__legend .donut-legend-item:hover{background:color-mix(in srgb,var(--accent-primary) 4%,transparent)}}.dash-android__legend .donut-legend-swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0}.dash-android__legend .donut-legend-label{min-width:0;font-weight:600;color:var(--text-primary)}.dash-android__legend .donut-legend-pct{font-family:var(--font-ui);font-size:12px;font-weight:500;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.dash-panel__body--android>.dash-panel__empty:not([hidden]){margin:auto;width:100%}@media (max-width:899px){.dash-panel__body--chart{min-height:240px}}@media (max-width:640px){.dash-stats{grid-template-columns:1fr;border-radius:var(--radius-md);padding:4px}.dash-stat{border-radius:var(--radius-md)}.dash-stat--total{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}}@media (max-width:420px){.dash-stat__head{flex-wrap:wrap}.dash-stat__value{margin-left:13px;width:100%;font-size:1.35rem}}@media (prefers-reduced-motion:reduce){.dash-stat__bar>span{transition:none}}