@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.mvd{flex-direction:column;gap:2px;min-width:0;display:flex}.mvd--inline{flex-direction:row;align-items:center;gap:8px}.mvd--clickable{cursor:pointer}.mvd__label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-size:11px;font-weight:600;line-height:1.3;display:flex;overflow:hidden}.mvd--inline .mvd__label{flex-shrink:0;min-width:80px}.mvd__icon{color:#94a3b8;flex-shrink:0;align-items:center;display:flex}.mvd__label-text{text-overflow:ellipsis;overflow:hidden}.mvd__body{flex-wrap:nowrap;align-items:baseline;gap:4px;min-width:0;display:flex}.mvd__value{font-variant-numeric:tabular-nums;color:#1e293b;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;line-height:1.15;overflow:hidden}.mvd__value--na{color:#94a3b8;font-weight:500}.mvd--lg .mvd__value{font-size:28px}.mvd--md .mvd__value{font-size:20px}.mvd--sm .mvd__value{font-size:15px}.mvd--xs .mvd__value,.mvd--lg .mvd__unit{font-size:13px}.mvd--md .mvd__unit{font-size:11px}.mvd--sm .mvd__unit{font-size:10px}.mvd--xs .mvd__unit{font-size:9px}.mvd__unit{color:#94a3b8;white-space:nowrap;flex-shrink:0;font-weight:500}.mvd__delta{white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;gap:2px;padding:1px 5px;font-size:10px;font-weight:600;line-height:1.4;display:inline-flex}.mvd__delta--good{color:#166534;background:#f0fdf4}.mvd__delta--bad{color:#b91c1c;background:#fef2f2}.mvd__delta--flat{color:#64748b;background:#f1f5f9}.mvd__delta-num{font-variant-numeric:tabular-nums}.mvd__hint{color:#94a3b8;font-size:10px;line-height:1.3}.mvd--success .mvd__value{color:#166534}.mvd--warning .mvd__value{color:#b45309}.mvd--danger .mvd__value{color:#b91c1c}.mvd--muted .mvd__value{color:#94a3b8}.metric-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;transition:border-color .15s,box-shadow .15s}.metric-card--clickable{cursor:pointer}.metric-card--clickable:hover{border-color:#93c5fd;box-shadow:0 4px 12px #3b82f614}.metric-card--teal{background:linear-gradient(135deg,#f0fdfa,#ccfbf1);border-color:#99f6e4}.metric-card--blue{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#93c5fd}.metric-card--amber{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fde68a}.metric-card--slate{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-color:#cbd5e1}.metric-card--green{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#bbf7d0}.metric-card--red{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fecaca}.metric-card--indigo{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-color:#a5b4fc}.metric-row{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.status-badge{white-space:nowrap;border-radius:6px;align-items:center;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.status-badge--green{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.status-badge--blue{color:#1e40af;background:#eff6ff;border:1px solid #93c5fd}.status-badge--orange{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.status-badge--red{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.status-badge--gray{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0}.status-badge--good{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.status-badge--fair{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.status-badge--poor{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.metric-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:1100px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.metric-grid,.metric-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid--2{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (max-width:480px){.metric-grid,.metric-grid--3,.metric-grid--2{grid-template-columns:1fr}}.sensor-mini-grid{grid-template-columns:repeat(var(--mini-grid-cols,3),minmax(0,1fr));gap:6px;margin-top:8px;display:grid}@media (max-width:1100px){.sensor-mini-grid{grid-template-columns:repeat(var(--mini-grid-cols-md,3),minmax(0,1fr))}}@media (max-width:768px){.sensor-mini-grid{grid-template-columns:repeat(var(--mini-grid-cols-sm,2),minmax(0,1fr))}}@media (max-width:480px){.sensor-mini-grid{grid-template-columns:repeat(var(--mini-grid-cols-xs,1),minmax(0,1fr))}}.sensor-mini-cell{background:#ffffffb3;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:2px;min-height:48px;padding:6px 8px;display:flex}.sensor-mini-cell--online{background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border-color:#bbf7d0}.sensor-mini-cell__label{color:#64748b;text-transform:uppercase;letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;line-height:1.3;overflow:hidden}.sensor-mini-cell__body{align-items:baseline;gap:3px;min-width:0;display:flex}.sensor-mini-cell__value{color:#1e293b;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:15px;font-weight:700;line-height:1.2;overflow:hidden}.sensor-mini-cell__unit{color:#94a3b8;white-space:nowrap;flex-shrink:0;font-size:10px;font-weight:500}.sensor-mini-cell__na{color:#cbd5e1;font-size:13px;font-style:italic}.data-quality-banner{border-radius:10px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.data-quality-banner--good{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.data-quality-banner--warn{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.data-quality-banner--bad{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.gw-card-metrics{border-top:1px solid #f1f5f9;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;padding-top:10px;display:grid}.gw-card-metric{flex-direction:column;gap:1px;display:flex}.gw-card-metric__label{color:#94a3b8;font-size:10px;font-weight:500}.gw-card-metric__value{color:#1e293b;font-variant-numeric:tabular-nums;align-items:baseline;gap:2px;font-size:14px;font-weight:700;display:flex}.gw-card-metric__unit{color:#94a3b8;font-size:10px;font-weight:500}.area-card-metrics{border-top:1px solid #f1f5f9;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;padding-top:10px;display:grid}.area-card-metric{background:#f8fafc;border-radius:8px;flex-direction:column;gap:1px;padding:6px 8px;display:flex}.area-card-metric__label{color:#94a3b8;text-transform:uppercase;letter-spacing:.03em;font-size:10px;font-weight:500}.area-card-metric__value{color:#1e293b;font-variant-numeric:tabular-nums;align-items:baseline;gap:3px;font-size:15px;font-weight:700;display:flex}.area-card-metric__unit{color:#94a3b8;font-size:10px;font-weight:500}@media (max-width:1100px){.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols-md,2),minmax(0,1fr))}}@media (max-width:768px){.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols-sm,2),minmax(0,1fr))}}@media (max-width:480px){.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols-xs,1),minmax(0,1fr))}}.sensor-card{border:1px solid #e2e8f0;border-radius:14px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.sensor-card:hover{border-color:#93c5fd;box-shadow:0 8px 24px #3b82f614}.sensor-card__head{justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;display:flex}.sensor-card__icon{color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;display:flex}.sensor-card__name.ant-typography{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;line-height:1.3;overflow:hidden}.sensor-card__meta{flex-shrink:0}.sensor-card__status{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.sensor-card__status--online{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.sensor-card__status--offline{color:#475569;background:#f8fafc;border:1px solid #e2e8f0}.sensor-card__body{padding:10px 14px 14px}.sensor-card__description.ant-typography{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;font-size:12px;display:-webkit-box;overflow:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-\[240px\]{max-width:240px}.min-w-full{min-width:100%}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.whitespace-nowrap{white-space:nowrap}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}@media (hover:hover){.hover\:underline:hover{text-decoration-line:underline}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.disabled\:opacity-50:disabled{opacity:.5}:root{--ui-bg:#eef3f8;--ui-surface:#ffffffe6;--ui-surface-strong:#fff;--ui-border:#dbe4ee;--ui-border-strong:#c7d4e1;--ui-text:#0f172a;--ui-text-muted:#5f6f82;--ui-primary:#0f766e;--ui-primary-strong:#115e59;--ui-primary-soft:#0f766e1f;--ui-accent:#2563eb;--ui-success:#16a34a;--ui-warning:#d97706;--ui-danger:#dc2626;--ui-radius-sm:12px;--ui-radius-md:18px;--ui-radius-lg:24px;--ui-shadow-sm:0 8px 18px #0f172a0f;--ui-shadow-md:0 14px 30px #0f172a17;--card-radius:14px;--hero-radius:18px;--card-shadow:0 4px 16px #0f172a0f;--state-online-bg:#f0fdf4;--state-online-border:#bbf7d0;--state-online-text:#166534;--state-offline-bg:#f8fafc;--state-offline-border:#e2e8f0;--state-offline-text:#64748b;--state-warning-bg:#fffbeb;--state-warning-border:#fde68a;--state-warning-text:#b45309;--state-nodata-bg:#f8fafc;--state-nodata-border:#e2e8f0;--state-nodata-text:#64748b}html{font-size:15px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--ui-text);background:radial-gradient(circle at top left,#2563eb14,transparent 28%),radial-gradient(circle at top right,#0f766e1a,transparent 26%),linear-gradient(180deg,#f7fafc 0%,var(--ui-bg)100%);margin:0;padding:0;font-family:Be Vietnam Pro,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1 padding-box padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b8 padding-box padding-box}.ant-input,.ant-input-affix-wrapper,.ant-input-password,.ant-select-selector,.ant-picker,.ant-input-number,.ant-btn,.ant-tag,.ant-badge-count,.ant-alert,.ant-tabs-tab-btn,.ant-segmented,.ant-modal-content,.ant-dropdown .ant-dropdown-menu,.ant-notification-notice,.ant-table-wrapper,.ant-card{transition:background-color .2s,border-color .2s,box-shadow .2s,color .2s,transform .2s,opacity .2s!important}.ant-input:focus,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused,.ant-input-password:focus,.ant-select-focused .ant-select-selector,.ant-picker-focused,.ant-input-number-focused{border-color:var(--ui-primary)!important;box-shadow:0 0 0 4px var(--ui-primary-soft)!important}.ant-input:hover,.ant-input-affix-wrapper:hover,.ant-input-password:hover,.ant-select:hover .ant-select-selector,.ant-picker:hover,.ant-input-number:hover{border-color:var(--ui-border-strong)!important}.ant-input-affix-wrapper .ant-input,.ant-input-password .ant-input,.ant-input-affix-wrapper input.ant-input,.ant-input-password input.ant-input{box-shadow:none!important;background:0 0!important;border:none!important}.ant-input-affix-wrapper .ant-input:hover,.ant-input-affix-wrapper .ant-input:focus,.ant-input-affix-wrapper .ant-input:active,.ant-input-password .ant-input:hover,.ant-input-password .ant-input:focus,.ant-input-password .ant-input:active,.ant-input-affix-wrapper input.ant-input:hover,.ant-input-affix-wrapper input.ant-input:focus,.ant-input-affix-wrapper input.ant-input:active,.ant-input-password input.ant-input:hover,.ant-input-password input.ant-input:focus,.ant-input-password input.ant-input:active{box-shadow:none!important;border:none!important;outline:none!important}.ant-layout{background:0 0!important}.ant-card,.ant-modal-content,.ant-dropdown .ant-dropdown-menu,.ant-drawer-content,.ant-table-wrapper,.ant-alert,.ant-notification-notice{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--ui-shadow-sm)!important;border:1px solid #dbe4eeeb!important}#root{min-height:100vh}.ant-btn{font-weight:600!important}.ant-btn-default{border-color:var(--ui-border)!important;color:var(--ui-text)!important;background:#ffffffdb!important}.ant-btn-default:hover,.ant-btn-default:focus{border-color:var(--ui-primary)!important;color:var(--ui-primary)!important;background:#fff!important}.ant-btn-primary{background:linear-gradient(135deg,var(--ui-primary)0%,var(--ui-accent)100%)!important;border:none!important;box-shadow:0 10px 18px #0f766e2e!important}.ant-btn-primary:hover,.ant-btn-primary:focus{filter:saturate(1.05)brightness(1.02);transform:translateY(-1px)}.ant-card{border-radius:var(--ui-radius-md)!important;background:var(--ui-surface)!important}.ant-card .ant-card-body{padding:18px!important}.ant-card .ant-card-head{min-height:56px;padding:0 18px;border-bottom:1px solid #dbe4eedb!important}.ant-tag{border-radius:999px!important;padding-inline:10px!important;font-weight:600!important}.ant-breadcrumb{background:#fffc;border:1px solid #dbe4eee6;border-radius:999px;max-width:100%;padding:10px 14px;display:inline-flex;margin-top:5px!important;margin-bottom:5px!important}.ant-breadcrumb a{color:var(--ui-text-muted)!important}.app-breadcrumbs{overflow:hidden}.app-breadcrumbs .ant-breadcrumb-link,.app-breadcrumbs .ant-breadcrumb-separator{white-space:nowrap}@media (max-width:768px){.app-breadcrumbs.ant-breadcrumb{width:100%;padding:8px 12px;overflow:hidden;margin-bottom:14px!important}.ant-breadcrumb{padding:6px 10px;font-size:12px;margin-bottom:12px!important}}.ant-breadcrumb li:last-child,.ant-breadcrumb li:last-child a{font-weight:600;color:var(--ui-text)!important}.ant-tabs .ant-tabs-nav{margin-bottom:18px!important}.ant-tabs .ant-tabs-tab{border-radius:999px!important;padding:8px 14px!important}.ant-tabs .ant-tabs-tab-active{background:#0f766e14}@media (max-width:640px){.ant-tabs .ant-tabs-tab{padding:6px 10px!important;font-size:13px!important}.ant-tabs .ant-tabs-nav{margin-bottom:12px!important}}.ant-alert,.ant-table-container{border-radius:16px!important}.ant-table-thead>tr>th{white-space:nowrap}.ant-modal-header{margin-bottom:18px!important;padding-bottom:14px!important}.ant-modal-footer{padding-top:14px!important}.auth-shell{width:100%;max-width:1280px;display:flex}.auth-brand-panel{color:#fff;flex-direction:column;flex:1;justify-content:space-between;padding:46px 46px 40px;display:flex;position:relative}.auth-form-panel{background:#fff;flex-direction:column;flex:1;padding:50px clamp(38px,4vw,62px) 46px;display:flex}.app-page{flex-direction:column;gap:18px;min-height:calc(100vh - 136px);display:flex}.page-hero{border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-md);background:linear-gradient(160deg,#fffffff5,#f8fafceb),linear-gradient(120deg,#0f766e14,#2563eb14);border:1px solid #dbe4eef2;flex-direction:column;gap:16px;padding:22px;display:flex}.page-hero__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-hero__content{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.page-hero__title{align-items:center;gap:12px;min-width:0;display:flex}.page-hero__title--sensor{flex-wrap:nowrap}.page-hero__title-block{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.page-hero__subtitle{align-items:center;gap:6px;min-width:0;max-width:100%;font-size:14px;display:inline-flex}.page-hero__subtitle--device{color:#64748b}.page-hero__subtitle--time{font-size:12px}.page-hero__back{background:#ffffffd6;border:1px solid #94a3b838;border-radius:12px;flex-shrink:0;width:44px;height:44px;box-shadow:0 8px 20px #0f172a0f}.page-hero__badge{color:#fff;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;display:inline-flex}.page-hero__badge--online{background:linear-gradient(135deg,#16a34a,#22c55e);box-shadow:0 12px 28px #22c55e2e}.page-hero__badge--offline{background:linear-gradient(135deg,#64748b,#94a3b8);box-shadow:0 12px 28px #64748b2e}.page-hero__title-text.ant-typography{color:#0f172a;overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;margin:0;font-size:clamp(1.35rem,2vw,1.85rem);font-weight:800;line-height:1.1}.page-hero__title-label,.page-hero__subtitle-text{overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%}.page-hero__subtitle-text{flex:1}.page-hero__meta,.section-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.page-hero__meta--sensor{padding-left:42px}.page-hero__status-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:2px;display:flex}.page-hero__status{border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.page-hero__status-icon{justify-content:center;align-items:center;display:inline-flex}.page-hero__status--online{color:#166534;background:linear-gradient(135deg,#ecfdf5,#dcfce7);border-color:#86efac;box-shadow:0 8px 20px #22c55e24}.page-hero__status--offline{color:#475569;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-color:#cbd5e1;box-shadow:0 10px 24px #64748b29}.page-hero__type-tag{font-size:11px;font-weight:600}.page-hero__badge--lg{border-radius:18px;width:64px;height:64px;font-size:28px}.page-hero__name-row{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.page-hero__sensor-name{color:#0f172a;font-size:16px;font-weight:800;line-height:1.2}.page-hero__gw-name{color:#64748b;align-items:center;gap:4px;font-size:12px;font-weight:500;display:inline-flex}.page-hero__more-btn{color:#64748b;border:1px solid #e2e8f0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.page-hero__more-btn:hover{color:#334155;background:#f1f5f9}.page-hero__actions{align-items:center;gap:10px;margin-left:auto;display:flex}.page-hero__action-btn{border-radius:12px;min-width:92px;height:40px}.page-hero__tags,.toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.metric-grid{grid-template-columns:repeat(var(--metric-grid-cols,4),minmax(0,1fr));gap:14px;display:grid}.metric-grid--3{--metric-grid-cols:3}.metric-card{flex-direction:column;justify-content:center;gap:6px;min-height:104px;display:flex}.metric-card__label{color:var(--ui-text-muted);font-size:.82rem;font-weight:600}.metric-card__value{color:var(--ui-text);font-size:1.55rem;font-weight:800;line-height:1.1}.stats-shell{flex-direction:column;gap:12px;display:flex}.stats-shell .ant-card .ant-card-body{padding:14px!important}.stats-shell .ant-card .ant-card-head{min-height:48px;padding:0 14px}.stats-hero-card{overflow:hidden}.stats-hero{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.stats-hero__eyebrow{color:#1d4ed8;letter-spacing:.04em;text-transform:uppercase;background:#2563eb1a;border-radius:999px;align-items:center;margin-bottom:8px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.stats-chip-list{flex-wrap:wrap;gap:8px;display:flex}.stats-chip{color:#0f172a;background:linear-gradient(135deg,#0f766e1a,#2563eb1f);border:1px solid #94a3b82e;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.stats-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.stats-summary-grid--compact{gap:12px}.stats-summary-tile{box-shadow:var(--ui-shadow-sm);background:linear-gradient(160deg,#fffffff5,#f8fafceb);border:1px solid #dbe4eeeb;border-radius:16px;align-items:center;gap:10px;padding:11px 12px;display:flex;position:relative}.stats-summary-tile__icon{color:#0f172a;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;display:inline-flex}.stats-summary-tile__label{color:var(--ui-text-muted);margin-bottom:4px;font-size:11px;font-weight:700}.stats-summary-tile__value{color:var(--ui-text);font-size:1rem;font-weight:800;line-height:1.15}.stats-summary-tile--teal .stats-summary-tile__icon{color:#0f766e;background:#0f766e1f}.stats-summary-tile--blue .stats-summary-tile__icon{color:#2563eb;background:#2563eb1f}.stats-summary-tile--amber .stats-summary-tile__icon{color:#d97706;background:#d9770624}.stats-summary-tile--slate .stats-summary-tile__icon{color:#334155;background:#3341551f}.stats-doc-grid,.stats-comparison-grid{gap:10px;display:grid}.stats-field-grid,.stats-comparison-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.stats-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-field-card,.stats-comparison-card{background:linear-gradient(#fffffffa,#f7fafceb);border:1px solid #dbe4eeeb;border-radius:16px;padding:11px}.stats-field-card__header,.stats-comparison-card__head,.stats-metric-tile__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.stats-field-card__title,.stats-comparison-card__title{color:#0f172a;font-size:13px;font-weight:800}.stats-field-card__quote{justify-content:space-between;align-items:flex-end;gap:10px;margin-top:8px;display:flex}.stats-field-card__main{color:#0f766e;margin-top:0;font-size:1.08rem;font-weight:800}.stats-field-card__sub,.stats-metric-tile__hint{color:#64748b;margin-top:4px;font-size:11px;line-height:1.4}.stats-field-card__range,.stats-comparison-card__metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.stats-field-card__range--market{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-field-card__range span,.stats-comparison-card__metrics span{color:var(--ui-text-muted);margin-bottom:3px;font-size:11px;display:block}.stats-field-card__range strong,.stats-comparison-card__metrics strong{color:#0f172a;font-size:12px;font-weight:700;display:block}.stats-comparison-card__head{align-items:center}.stats-market-chip{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 8px;font-size:11px;font-weight:800;display:inline-flex}.stats-market-chip--up{color:#16a34a;background:#22c55e1f}.stats-market-chip--down{color:#dc2626;background:#ef44441a}.stats-market-chip--flat{color:#64748b;background:#94a3b824}.stats-market-bar{background:#e2e8f0d9;border-radius:999px;height:5px;margin-top:10px;position:relative;overflow:hidden}.stats-market-bar__fill{border-radius:inherit;height:100%;display:block}.stats-market-bar__fill--up{background:linear-gradient(90deg,#86eface6,#16a34a)}.stats-market-bar__fill--down{background:linear-gradient(90deg,#fca5a5f2,#dc2626)}.stats-market-bar__fill--flat{background:linear-gradient(90deg,#bfdbfecc,#94a3b8)}.stats-comparison-card__metrics--market{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.stats-metric-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-metric-tile{background:#f8fafcd9;border:1px solid #e2e8f0f2;border-radius:16px;min-height:88px;padding:11px}.stats-metric-tile--compact{min-height:82px}.stats-metric-tile__label{color:var(--ui-text-muted);font-size:11px;font-weight:700}.stats-metric-tile__value{color:#0f172a;margin-top:8px;font-size:.98rem;font-weight:800;line-height:1.15}.stats-alert-stack{flex-direction:column;gap:12px;display:flex}.stats-loading{justify-content:center;padding:20px 0;display:flex}.stats-table-card .ant-table-thead>tr>th,.stats-table-card .ant-table-tbody>tr>td{padding:10px!important}.evaluation-shell{gap:14px}.evaluation-doc-grid{align-items:start}.evaluation-score-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px;display:grid}.evaluation-recommendation-item{padding-inline:0!important}.evaluation-recommendation{align-items:flex-start;gap:12px;width:100%;display:flex}.evaluation-recommendation__icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;display:inline-flex}.evaluation-recommendation__icon--error{color:#dc2626;background:#ef44441f}.evaluation-recommendation__icon--warning{color:#d97706;background:#f59e0b24}.evaluation-recommendation__icon--success{color:#16a34a;background:#22c55e1f}.evaluation-recommendation__icon--info{color:#2563eb;background:#2563eb1f}.evaluation-recommendation__text{color:#0f172a;margin-top:6px}.compact-panel-card{overflow:hidden}.compact-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.compact-toolbar--between{justify-content:space-between}.compact-select{width:220px}.compact-card-title{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.compact-chart-list{flex-direction:column;gap:10px;display:flex}.compact-chart-card .ant-card-body{padding-top:10px!important}.compact-empty-card .ant-empty{margin-block:18px}.compact-meta-row{color:var(--ui-text-muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;font-size:12px;display:flex}.compact-meta-row span{align-items:center;gap:6px;display:inline-flex}.history-tab-shell .ant-table-pagination{margin-bottom:0!important}.history-tab__field-select{min-width:min(320px,100%)}@media (max-width:1100px){.stats-summary-grid,.stats-field-grid,.stats-comparison-grid,.stats-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.stats-summary-grid,.stats-field-grid,.stats-doc-grid,.stats-comparison-grid,.stats-metric-grid,.stats-metric-grid--two,.evaluation-score-grid,.stats-field-card__range,.stats-comparison-card__metrics{grid-template-columns:minmax(0,1fr)}.stats-summary-tile,.stats-field-card,.stats-comparison-card,.stats-metric-tile{padding:14px}.compact-select{width:100%}.compact-card-title{flex-direction:column;align-items:flex-start}}.rfg{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px}.rfg__grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:12px;display:grid}.fgc{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;min-width:0;transition:box-shadow .18s,transform .18s,border-color .18s;display:flex;overflow:hidden;box-shadow:0 1px 3px #0f172a0a}.fgc:hover{border-color:#99f6e4;transform:translateY(-1px);box-shadow:0 4px 12px #0f766e1a}.fgc--severity-connected{border-color:#e2e8f0}.fgc--severity-warning{border-color:#fcd34d}.fgc--severity-warning:hover{border-color:#f59e0b;box-shadow:0 4px 12px #f59e0b29}.fgc--severity-danger{border-color:#fca5a5}.fgc--severity-danger:hover{border-color:#dc2626;box-shadow:0 4px 12px #dc262629}.fgc--disconnected{border-color:#cbd5e1}.fgc__header{color:#fff;letter-spacing:.2px;background:linear-gradient(135deg,#0f766e,#14b8a6);border-bottom:1px solid #0f766e33;flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;min-height:28px;padding:6px 10px;font-size:11px;font-weight:700;display:flex}.fgc--severity-danger .fgc__header{background:linear-gradient(135deg,#b91c1c,#ef4444)}.fgc--severity-warning .fgc__header{background:linear-gradient(135deg,#b45309,#f59e0b)}.fgc--disconnected .fgc__header{background:linear-gradient(135deg,#64748b,#94a3b8)}.fgc__title{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.fgc__count{color:#fff;letter-spacing:.4px;font-variant-numeric:tabular-nums;background:#ffffff2e;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}.fgc__body{background:#fff;flex-direction:column;flex:auto;min-height:0;max-height:170px;padding:4px 0;display:flex;overflow-y:auto}.fgc-row{border-bottom:1px solid #f1f5f9;flex-shrink:0;align-items:center;gap:6px;min-width:0;padding:5px 10px;font-size:12px;line-height:1.3;transition:background .12s;display:flex}.fgc-row:last-child{border-bottom:none}.fgc-row:hover{background:#f0fdfa}.fgc-row__settings{all:unset;color:#94a3b8;cursor:pointer;opacity:0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:opacity .15s,background .15s,color .15s;display:flex}.fgc-row:hover .fgc-row__settings{opacity:1}.fgc-row__settings:hover{color:#0f766e;background:#0f766e1f}.fgc-row__label{color:#475569;white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;flex-shrink:0;max-width:45%;font-size:11px;font-weight:700;overflow:hidden}.fgc-row__sep{color:#cbd5e1;margin-left:-2px;font-weight:600}.fgc-row__value-wrap{flex:auto;justify-content:flex-end;align-items:baseline;gap:4px;min-width:0;display:flex;overflow:hidden}.fgc-row__value{color:#0f172a;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.fgc-row__unit{color:#64748b;white-space:nowrap;flex-shrink:0;font-size:10px;font-weight:500}.fgc-row__na{color:#cbd5e1;letter-spacing:.04em;font-size:13px;font-weight:700}.fgc-row__trend{font-variant-numeric:tabular-nums;border-radius:4px;flex-shrink:0;align-items:center;gap:2px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-flex}.fgc-row__trend--up{color:#16a34a;background:#22c55e1a}.fgc-row__trend--down{color:#dc2626;background:#ef44441a}.fgc-row__trend--neutral{color:#64748b;background:#64748b1a}.fgc-row__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.fgc-row__dot--on{background:#22c55e;animation:2s infinite fc-pulse;box-shadow:0 0 0 2px #22c55e2e}.fgc-row__dot--off{background:#cbd5e1}.fgc-row--connected{background:#fff}.fgc-row--connected .fgc-row__label,.fgc-row--connected .fgc-row__value{color:#475569}.fgc-row--connected .fgc-row__dot--on{background:#22c55e;box-shadow:0 0 0 2px #22c55e2e}.fgc-row--warning{background:#fffbeb;border-left:3px solid #f59e0b}.fgc-row--warning:hover{background:#fef3c7}.fgc-row--warning .fgc-row__label,.fgc-row--warning .fgc-row__value{color:#92400e}.fgc-row--warning .fgc-row__dot--on{background:#f59e0b;box-shadow:0 0 0 2px #f59e0b38}.fgc-row--danger{background:#fef2f2;border-left:3px solid #dc2626}.fgc-row--danger:hover{background:#fee2e2}.fgc-row--danger .fgc-row__label,.fgc-row--danger .fgc-row__value{color:#991b1b}.fgc-row--danger .fgc-row__dot--on{background:#dc2626;box-shadow:0 0 0 2px #dc26263d}.fgc-row--disconnected{background:#f8fafc;border-left:3px solid #cbd5e1}.fgc-row--disconnected .fgc-row__label,.fgc-row--disconnected .fgc-row__value{color:#94a3b8}.fgc-row--disconnected .fgc-row__dot--off{background:#94a3b8}.fgc-row--no-data .fgc-row__value{color:#cbd5e1}.fc{border-radius:10px;flex-direction:column;min-height:80px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}.fc--online{background:#f0fdf4;border:1.5px solid #86efac;box-shadow:0 1px 4px #22c55e14}.fc--online:hover{background:#ecfdf5;border-color:#6ee7b7;box-shadow:0 2px 8px #22c55e1f}.fc--offline{background:#f1f5f9;border:1.5px solid #cbd5e1}.fc--no-data:not(.fc--offline){background:#f1f5f9;border-color:#cbd5e1}.fc--error{background:#fef2f2;border:1.5px solid #fca5a5}.fc--error:hover{background:#fee2e2;border-color:#f87171}.fc--error .fc__label{color:#991b1b}.fc--error .fc__settings-btn{color:#ef4444}.fc--error .fc__dot{background:#ef4444;box-shadow:0 0 4px #ef444480}.fc--warning{background:#fffbeb;border:1.5px solid #fcd34d}.fc--warning:hover{background:#fef3c7;border-color:#fbbf24}.fc--warning .fc__label{color:#92400e}.fc--warning .fc__settings-btn{color:#f59e0b}.fc--warning .fc__dot{background:#f59e0b;box-shadow:0 0 4px #f59e0b80}.fc__header{background:#00000005;border-bottom:1px solid #0000000a;align-items:center;gap:3px;padding:3px 6px;display:flex}.fc--offline .fc__header{background:#f1f5f9;border-bottom-color:#e2e8f0}.fc__settings-btn{all:unset;color:#22c55e;cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:background .15s;display:flex}.fc__settings-btn:hover{background:#22c55e1f}.fc--offline .fc__settings-btn{color:#94a3b8}.fc--offline .fc__settings-btn:hover{background:#94a3b81f}.fc__label{color:#0f766e;text-align:center;line-clamp:2;-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;flex:1;min-height:2.6em;font-size:10px;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.fc--offline .fc__label{color:#64748b}.fc__dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.fc__dot--on{background:#22c55e;animation:2s infinite fc-pulse;box-shadow:0 0 4px #22c55e80}.fc__dot--off{background:#94a3b8}@keyframes fc-pulse{0%,to{opacity:1}50%{opacity:.5}}.fc__body{flex:1;justify-content:center;align-items:center;gap:4px;padding:6px 8px;display:flex}.fc__stack{flex-direction:column;align-items:center;gap:2px;width:100%;min-width:0;display:flex}.fc__num{color:#0f172a;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:100%;font-size:clamp(15px,3.5vw,18px);font-weight:800;line-height:1.2;display:block;overflow:hidden}.fc__val--up .fc__num{color:#0f172a}.fc__val--down .fc__num{color:#dc2626}.fc__unit{color:#64748b;white-space:normal;text-align:center;overflow-wrap:anywhere;max-width:100%;font-size:10px;font-weight:500;line-height:1.15}.fc__na{color:#cbd5e1;letter-spacing:.05em;font-size:14px;font-weight:700}.fc__trend-row{white-space:nowrap;border-top:1px solid #0000000a;justify-content:center;align-items:center;gap:3px;min-width:0;padding:2px 6px;font-size:10px;font-weight:700;display:flex}.fc__trend-row--up{color:#16a34a;background:#22c55e0f}.fc__trend-row--down{color:#dc2626;background:#ef44440f}@media (max-width:1600px){.rfg__grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (max-width:1366px){.rfg__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fgc-row{gap:4px;padding:5px 8px}.fgc-row__trend{padding:1px 4px}.fgc-row__trend span{display:none}}@media (max-width:1100px){.rfg__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}}@media (max-width:768px){.rfg__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fgc-row{gap:6px;padding:6px 10px}.fgc-row__trend span{display:inline}.fgc-row__trend{padding:1px 5px}}@media (max-width:560px){.rfg__grid{grid-template-columns:1fr;gap:8px}.fc__num{font-size:14px}.fgc-row{padding:7px 12px;font-size:13px}.fgc-row__value{font-size:14px}}.realtime-field-grid__container,.realtime-data-container,.fields-data-container{grid-template-columns:repeat(var(--grid-cols,1),minmax(0,1fr));grid-auto-flow:dense;align-items:stretch;display:grid}.section-shell{border-radius:var(--ui-radius-md);box-shadow:var(--ui-shadow-sm);background:#ffffffeb;border:1px solid #dbe4eeeb;flex-direction:column;gap:16px;padding:18px;display:flex}.section-title{color:var(--ui-text)!important;margin:0!important;font-size:1.06rem!important;font-weight:700!important}.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols,3),minmax(0,1fr));gap:16px;display:grid}.ui-card-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.sl-loading,.sl-empty-wrap{padding:24px}.sl-loading{text-align:center}.sl-page-title.ant-typography{align-items:center;gap:8px;display:inline-flex;margin:0!important}.sl-page-title__icon{flex-shrink:0}.sl-page-hero__meta{margin-top:10px;margin-left:40px}.sl-sensor-search{width:min(280px,100%);max-width:100%}.sd-tabs-shell,.sd-tabs-content{margin-top:16px}.stats-field-select{width:min(280px,100%)}.sensor-card{background:#ffffffeb;border:1px solid #dbe4eef2;border-radius:20px;flex-direction:column;min-height:100%;display:flex;overflow:hidden}.sensor-card__head,.sensor-card__foot{border-bottom:1px solid #dbe4eecc;justify-content:space-between;place-items:stretch stretch;gap:8px;padding:10px 12px 12px}.sensor-card__identity{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.sensor-card__icon{background-color:var(--sensor-accent,#64748b);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.sensor-card__identity-content{flex:1;min-width:0}.sensor-card__meta-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.sensor-card__code.ant-typography{overflow-wrap:anywhere;word-break:break-all;font-size:10.5px}.sensor-card__meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.sensor-card__type-tag{opacity:.92;font-size:10px;font-weight:600;line-height:1}.sensor-card__status{border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.sensor-card__status--online{color:#166534;background:#dcfce7f2;border-color:#86efacf2}.sensor-card__status--offline{color:#475569;background:#f1f5f9fa;border-color:#cbd5e1f2}.sensor-card__body{background:#fff;flex-direction:column;flex:1;gap:10px;padding:10px 12px;display:flex}.sensor-card__foot{border-top:1px solid #dbe4eec2;padding:8px 12px 10px}.sensor-mini-grid{grid-template-columns:repeat(var(--mini-grid-cols,3),minmax(0,1fr));align-items:stretch;gap:4px;display:grid}.sensor-card__name{line-clamp:2;-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;min-width:0;margin:0;font-size:12.5px;line-height:1.35;display:-webkit-box;overflow:hidden}.sensor-card__description{overflow-wrap:anywhere;word-break:break-word;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;min-width:0;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.sl-sensor-card{--sensor-accent:#64748b;height:100%}.sl-sensor-card--connected{background:#fff;border-color:#16a34a4d}.sl-sensor-card--connected .sensor-card__body{background:#fff}.sl-sensor-card--connected .sensor-card__head{background:#fff;border-bottom-color:#16a34a26}.sl-sensor-card--disconnected{background:#f8fafceb;border-color:#cbd5e1cc}.sl-sensor-card--disconnected .sensor-card__head{background:linear-gradient(135deg,#f1f5f9,#f8fafc);border-bottom-color:#cbd5e199}.sl-sensor-card__head{background:linear-gradient(135deg,var(--sensor-accent),var(--sensor-accent))}@supports (color:color-mix(in lab,red,red)){.sl-sensor-card__head{background:linear-gradient(135deg,color-mix(in srgb,var(--sensor-accent)10%,white),color-mix(in srgb,var(--sensor-accent)16%,white))}}.sl-sensor-tags{margin-bottom:12px}.sl-sensor-footnote.ant-typography{font-size:12px}.field-tile{text-align:center;cursor:pointer;background:#f8fafc;border:1px solid #dbe4eee6;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:84px;padding:4px 6px;transition:border-color .15s,background .15s;display:flex;overflow:hidden}.field-tile--active{background:#f0fdf4;border-color:#86efac}.field-tile--active:hover{background:#ecfdf5;border-color:#6ee7b7}.field-tile--inactive{background:#f1f5f9;border-color:#cbd5e1}.field-tile--error{background:#fef2f2;border-color:#fca5a5}.field-tile--error:hover{background:#fee2e2;border-color:#f87171}.field-tile--error .field-tile__key{color:#991b1b}.field-tile--error .field-tile__value-number{color:#dc2626}.field-tile--warning{background:#fffbeb;border-color:#fcd34d}.field-tile--warning:hover{background:#fef3c7;border-color:#fbbf24}.field-tile--warning .field-tile__key{color:#92400e}.field-tile--warning .field-tile__value-number{color:#b45309}.field-tile--gateway{cursor:default}.field-tile__key{color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.02em;text-overflow:ellipsis;white-space:normal;text-align:center;-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;word-break:break-word;-webkit-box-orient:vertical;width:100%;max-width:100%;min-height:2.4em;max-height:2.4em;font-size:9px;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.field-tile__value{font-variant-numeric:tabular-nums;text-align:center;flex-flow:column;justify-content:center;align-items:center;gap:1px;width:100%;min-width:0;padding:0;display:flex;overflow:hidden}.field-tile__value-number{color:var(--ui-text);white-space:nowrap;text-overflow:ellipsis;text-align:center;flex:0 auto;min-width:0;max-width:100%;font-size:clamp(11px,.82vw,14px);font-weight:700;display:block;overflow:hidden}.field-tile__value-number--up,.field-tile__value-number--down{color:var(--ui-text)}.field-tile__unit{color:var(--ui-text-muted);white-space:nowrap;text-align:center;flex-shrink:0;font-size:10px;font-weight:500;line-height:1.2}.field-delta{white-space:nowrap;flex-direction:row;justify-content:center;align-items:center;gap:2px;width:100%;min-width:0;min-height:12px;font-size:9px;font-weight:700;line-height:1;display:flex}.field-delta--up{color:#16a34a}.field-delta--down{color:#dc2626}.field-delta--neutral{color:#000;opacity:1}.ui-card-grid--gateway-fields{gap:12px}.section-switcher{grid-template-columns:repeat(var(--section-switcher-cols,4),minmax(0,1fr));gap:10px;display:grid}.section-switcher__button{min-height:44px}@media (max-width:640px){.sensor-card__head{align-items:flex-start}.sensor-card__meta{align-items:flex-start;width:100%;margin-top:2px}.page-hero{flex-direction:column;align-items:stretch}.page-hero__title--sensor{flex-wrap:wrap;align-items:flex-start}.page-hero__actions{width:100%;margin-left:0}.page-hero__action-btn{flex:1}.sl-page-hero__meta{margin-left:0}.sl-sensor-search{width:100%}}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.info-tile{background:#f8fafc;border:1px solid #dbe4eeeb;border-radius:16px;flex-flow:column wrap;gap:6px;min-width:0;padding:14px 16px;display:flex}.info-tile__label{max-width:100%;color:var(--ui-text-muted);font-size:.78rem;font-weight:600;display:block}.info-tile__value{color:var(--ui-text);font-weight:700}.page-empty{justify-content:center;align-items:center;min-height:240px;display:flex}@media (max-width:768px){.auth-shell{flex-direction:column}.auth-brand-panel{display:none}.auth-form-panel{justify-content:center;min-height:100vh;padding:32px 24px}.page-hero,.section-shell{padding:16px}.page-hero__meta--sensor{padding-left:0}.metric-grid,.section-switcher,.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols-xs,1),minmax(0,1fr))}.sensor-mini-grid{grid-template-columns:repeat(var(--mini-grid-cols-sm,2),minmax(0,1fr))}.realtime-field-grid__container,.realtime-data-container,.fields-data-container{grid-template-columns:repeat(var(--grid-cols-sm,2),minmax(0,1fr))}}@media (min-width:2560px){.rfg__grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.rfg{border-radius:16px;padding:14px}.fc{min-height:100px}.fc__num{font-size:20px}.fgc-row{padding:6px 12px;font-size:13px}.fgc-row__value{font-size:14px}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols-2xl,6),minmax(0,1fr))}.section-shell{padding:22px}.page-hero{padding:28px}}@media (min-width:1920px) and (max-width:2559px){.rfg__grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols-xl,5),minmax(0,1fr))}.section-shell{padding:20px}.page-hero{padding:26px}}@media (max-width:1919px){.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols,4),minmax(0,1fr))}}@media (max-width:1600px){.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols-md,3),minmax(0,1fr))}}@media (max-width:1200px){.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols-sm,2),minmax(0,1fr))}.field-tile{min-height:90px}.field-tile__value{flex-wrap:wrap}.field-tile__unit{white-space:normal;max-width:100%}.metric-grid{grid-template-columns:repeat(min(var(--metric-grid-cols,4),2),minmax(0,1fr))}}@media (max-width:480px){.auth-form-panel{padding:24px 16px}.metric-grid,.ui-card-grid--2,.section-switcher,.info-grid{grid-template-columns:minmax(0,1fr)}.ui-card-grid{grid-template-columns:repeat(var(--card-grid-cols-xs,1),minmax(0,1fr))}.sensor-mini-grid{grid-template-columns:repeat(var(--mini-grid-cols-xs,1),minmax(0,1fr))}.realtime-field-grid__container,.realtime-data-container,.fields-data-container{grid-template-columns:repeat(var(--grid-cols-xs,1),minmax(0,1fr))}.ant-breadcrumb{border-radius:18px;width:100%}}.battery-wifi-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (max-width:576px){.ant-card-body{padding:12px!important}.ant-table-cell{padding:6px 8px!important;font-size:12px!important}.ant-statistic-content-value{font-size:20px!important}.ant-modal{max-width:100vw!important;margin:0!important;padding-bottom:0!important;top:0!important}.ant-modal-content{min-height:100vh;border-radius:0!important}}@media (max-width:640px){.realtime-data-container{grid-template-columns:repeat(2,1fr)!important}.sensor-card__head{padding:10px 12px}.sensor-card__icon{border-radius:8px;width:28px;height:28px;font-size:13px}.sensor-card__body{gap:8px;padding:10px 12px 8px}.sensor-card__foot{padding:8px 12px 12px}.field-tile{text-align:left;min-height:88px;padding:6px}}.is-online{background:var(--state-online-bg);border-color:var(--state-online-border);color:var(--state-online-text)}.is-offline{background:var(--state-offline-bg);border-color:var(--state-offline-border);color:var(--state-offline-text)}.is-warning{background:var(--state-warning-bg);border-color:var(--state-warning-border);color:var(--state-warning-text)}.is-no-data{background:var(--state-nodata-bg);border-color:var(--state-nodata-border);color:var(--state-nodata-text)}.text-clamp-1{line-clamp:1;-webkit-line-clamp:1;overflow-wrap:anywhere;word-break:break-word;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.text-clamp-2{line-clamp:2;-webkit-line-clamp:2;overflow-wrap:anywhere;word-break:break-word;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.text-ellipsis{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.page-surface{border-radius:var(--ui-radius-lg);background:#fff6;border:1px solid #dbe4ee80}.card-normal{border-radius:var(--card-radius);box-shadow:var(--card-shadow);background:var(--ui-surface);border:1px solid var(--ui-border)}.card-hero{border-radius:var(--hero-radius);box-shadow:var(--ui-shadow-md);background:linear-gradient(160deg,#fffffff5,#f8fafceb);border:1px solid #dbe4eef2}.card-alert{border-radius:var(--card-radius);border-style:solid;border-width:1px}.value-fixed{font-variant-numeric:tabular-nums;text-align:right;min-width:4ch;display:inline-block}.delta-fixed{white-space:nowrap;align-items:center;gap:2px;min-width:5ch;font-size:10px;font-weight:700;display:inline-flex}.history-table-sticky .ant-table-cell-fix-left{z-index:2;background:var(--ui-surface-strong)!important}.main-shell .ant-card,.main-shell .ant-btn,.main-shell .ant-tag{transition:background-color .2s,border-color .2s,box-shadow .2s,opacity .2s!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}.main-shell{--shell-sidebar-expanded: 260px;--shell-sidebar-collapsed: 72px;--shell-motion-duration: .24s;--shell-motion-easing: cubic-bezier(.22, 1, .36, 1);--shell-surface: rgba(255, 255, 255, .9);--shell-surface-strong: rgba(255, 255, 255, .96);--shell-border: rgba(219, 228, 238, .92);--shell-shadow: 18px 0 40px rgba(15, 23, 42, .06);min-height:100vh;background:radial-gradient(circle at top left,rgba(15,118,110,.08),transparent 32%),radial-gradient(circle at top right,rgba(37,99,235,.08),transparent 30%),linear-gradient(180deg,#f8fbff,#f4f8fb)}.main-shell__sider.ant-layout-sider{overflow:auto;height:100vh;position:fixed;left:0;top:0;bottom:0;z-index:1000;box-shadow:var(--shell-shadow);background:var(--shell-surface)!important;border-right:1px solid var(--shell-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:width var(--shell-motion-duration) var(--shell-motion-easing),box-shadow var(--shell-motion-duration) var(--shell-motion-easing)}.main-shell__logo-wrap{height:56px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--shell-border);background:#fff;position:relative;overflow:hidden;flex-shrink:0}.main-shell__logo-wrap:after{content:none}.shell-logo{width:calc(var(--shell-sidebar-expanded) - 28px);display:flex;align-items:center;justify-content:center;position:relative;z-index:1;transition:width var(--shell-motion-duration) var(--shell-motion-easing)}.shell-logo--collapsed{width:48px}.shell-logo__mark{position:relative;width:100%;height:56px;display:flex;align-items:center;justify-content:center}.shell-logo__img,.shell-logo__fallback{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;border-radius:12px;transition:opacity var(--shell-motion-duration) var(--shell-motion-easing),transform var(--shell-motion-duration) var(--shell-motion-easing),clip-path var(--shell-motion-duration) var(--shell-motion-easing)}.shell-logo__img--full,.shell-logo__fallback--full{opacity:1;transform:scale(1)}.shell-logo__img--full{height:100%;max-height:100%}.shell-logo__img--mini,.shell-logo__fallback--mini{opacity:0;transform:scale(.88)}.shell-logo--collapsed .shell-logo__img--full,.shell-logo--collapsed .shell-logo__fallback--full{opacity:0;transform:scale(.92)}.shell-logo--collapsed .shell-logo__img--mini,.shell-logo--collapsed .shell-logo__fallback--mini{opacity:1;transform:scale(1)}.shell-logo__fallback{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f766e,#2563eb);color:#fff;font-weight:700;letter-spacing:.08em}.main-shell__menu,.main-shell__mobile-menu{border-right:0!important;background:transparent!important;padding:8px!important}.main-shell__inner{min-height:100vh;transition:margin-left var(--shell-motion-duration) var(--shell-motion-easing)}.main-shell__inner--expanded{margin-left:var(--shell-sidebar-expanded)}.main-shell__inner--collapsed{margin-left:var(--shell-sidebar-collapsed)}.main-shell__inner--mobile{margin-left:0}.main-shell__header{padding:0 20px!important;height:56px!important;line-height:56px!important;background:#ffffffe0!important;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px #0f172a0f;border-bottom:1px solid var(--shell-border);position:sticky;top:0;z-index:20;overflow:hidden;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.main-shell__header:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(15,118,110,.06) 0%,transparent 70%);transform:rotate(-45deg);pointer-events:none}.main-shell__header-left,.main-shell__header-right{position:relative;z-index:1}.main-shell__header-right{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:8px}.main-shell__header-right .ant-badge{display:inline-flex;align-items:center}.main-shell__header-right .ant-badge .ant-badge-count{transform:translate(42%,-42%)}.main-shell__title-wrap{display:flex;flex-direction:column;gap:2px}.main-shell__title.ant-typography{margin:0!important;color:#0f172a!important;font-weight:600!important;font-size:14px!important}.main-shell__subtitle{color:#64748b;font-size:11px;line-height:1.2}.header-button{font-size:14px!important;width:32px!important;height:32px!important;border-radius:8px!important;color:#0f172a!important;background:#f8fafcf2!important;border:1px solid rgba(219,228,238,.95)!important;transition:transform var(--shell-motion-duration) var(--shell-motion-easing),box-shadow var(--shell-motion-duration) var(--shell-motion-easing),background-color var(--shell-motion-duration) var(--shell-motion-easing)!important}.header-button:hover{transform:translateY(-1px);box-shadow:0 8px 16px #0f172a1a}.main-shell__user-trigger{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;padding:0;cursor:pointer}.main-shell__avatar{background:linear-gradient(135deg,#0f766e,#2563eb)!important;border:2px solid rgba(255,255,255,.7);box-shadow:0 8px 18px #0f172a1f;transition:transform var(--shell-motion-duration) var(--shell-motion-easing),box-shadow var(--shell-motion-duration) var(--shell-motion-easing)!important}.main-shell__user-trigger:hover .main-shell__avatar{transform:scale(1.06);box-shadow:0 10px 22px #0f172a29}.main-content-area{margin:0;min-height:280px;background:transparent;overflow:initial;overflow-y:auto;overflow-x:hidden;position:relative}.main-content-area:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23000000' fill-opacity='0.1'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}.main-content-area__inner{position:relative;z-index:1}.main-content-area{padding:6px 10px 8px}@media (max-width: 768px){.main-content-area{padding:12px}.main-shell__header{padding:0 14px!important;height:56px!important;line-height:56px!important}.header-button{width:36px!important;height:36px!important;font-size:14px!important}.main-shell__title.ant-typography{font-size:14px!important}.main-shell__subtitle{font-size:11px}}.main-shell__sider:not(.main-shell__sider--collapsed) .ant-menu-item-selected{position:relative}.main-shell__sider:not(.main-shell__sider--collapsed) .ant-menu-item-selected:before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:4px;height:60%;background:linear-gradient(180deg,#0f766e,#2563eb);border-radius:0 3px 3px 0}.main-shell__sider--collapsed .ant-menu-item{min-height:unset!important;height:40px!important;line-height:40px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-shell__sider--collapsed .ant-menu-item .anticon,.main-shell__sider--collapsed .ant-menu-item svg{font-size:18px!important}@media (max-width: 576px){.main-content-area{padding:8px}.main-shell__header{padding:0 10px!important;height:50px!important;line-height:50px!important}.header-button{width:34px!important;height:34px!important;border-radius:8px!important}.main-shell__avatar{width:32px!important;height:32px!important;font-size:13px!important}}.ant-menu-item{border-radius:10px!important;margin:4px 0!important;min-height:42px;height:auto!important;line-height:1.5!important;padding-top:8px!important;padding-bottom:8px!important;color:#334155!important;font-weight:500;font-size:13.5px;white-space:normal!important}.ant-menu-item-group-title{font-size:10px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.05em!important;color:#94a3b8!important;padding:10px 12px 2px!important}.ant-menu-item:hover{background:#0f766e14!important;color:#0f766e!important;transform:none!important;box-shadow:none!important}.ant-menu-item-selected{background:linear-gradient(135deg,#0f766e29,#2563eb1f)!important;color:#0f766e!important;font-weight:600!important;box-shadow:inset 0 0 0 1px #0f766e1f!important}.ant-menu-item-selected:hover{background:linear-gradient(135deg,#0f766e33,#2563eb24)!important}.ant-menu-submenu-title{border-radius:10px!important;margin:4px 0!important;min-height:42px;height:auto!important;line-height:1.5!important;padding-top:8px!important;padding-bottom:8px!important;font-size:13.5px;font-weight:500!important;white-space:normal!important}.ant-menu-submenu-title:hover{background:#0f766e14!important;color:#0f766e!important;transform:none!important}.ant-menu-submenu-open>.ant-menu-submenu-title{background:#0f766e1a!important;color:#0f766e!important}.ant-badge-count{background:linear-gradient(135deg,#dc2626,#ef4444)!important;box-shadow:0 6px 12px #dc262638!important;border:none!important}.ant-layout-sider::-webkit-scrollbar{width:6px}.ant-layout-sider::-webkit-scrollbar-track{background:transparent;border-radius:3px}.ant-layout-sider::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.ant-layout-sider::-webkit-scrollbar-thumb:hover{background:#94a3b8}.ant-drawer-body{padding:0!important}.ant-drawer-header{background:#fff!important;color:#0f172a!important;border-bottom:1px solid #e2e8f0!important}.ant-drawer-title{color:#0f172a!important;font-weight:600!important}.ant-drawer-close{color:#475569!important}.header-button{transition:none}.ant-dropdown{border-radius:18px!important;box-shadow:0 16px 32px #0f172a1f!important}.ant-dropdown-menu{border-radius:18px!important;padding:8px!important}.ant-dropdown-menu-item{border-radius:12px!important;margin-bottom:4px!important}.ant-dropdown-menu-item:hover{background:#0f766e14!important;color:#0f766e!important}.main-shell__menu .ant-menu-title-content,.main-shell__mobile-menu .ant-menu-title-content,.main-shell__menu .ant-menu-item-group-title,.main-shell__mobile-menu .ant-menu-item-group-title{white-space:normal!important;overflow:visible!important;text-overflow:unset!important;overflow-wrap:normal;word-break:normal;line-height:1.5!important}.main-shell__menu .ant-menu-title-content>a,.main-shell__mobile-menu .ant-menu-title-content>a{display:inline-block;line-height:1.5;padding:2px 0}.main-shell__sider--collapsed .ant-menu-title-content,.main-shell__sider--collapsed .ant-menu-submenu-arrow,.main-shell__sider--collapsed .ant-menu-item-group-title{display:none!important}.main-shell__sider--collapsed .ant-menu-item,.main-shell__sider--collapsed .ant-menu-submenu-title{height:40px!important;min-height:40px!important;line-height:40px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-shell__sider--collapsed .ant-menu-item .ant-menu-item-icon,.main-shell__sider--collapsed .ant-menu-submenu-title .ant-menu-item-icon{margin-inline-end:0!important;font-size:18px!important}@media (max-width: 991px){.main-shell__header{padding:0 16px!important}.main-shell__subtitle{display:none}}@media (max-width: 768px){.main-shell__header{height:56px!important;line-height:56px!important}.main-shell__header-right{gap:6px}.main-shell__header-right .ant-select{max-width:110px}}
