@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap";:root{--abw-bg: #f2f6f8;--abw-panel: rgba(255, 255, 255, .86);--abw-panel-strong: #ffffff;--abw-panel-dark: #0f1724;--abw-overlay: rgba(8, 20, 31, .54);--abw-border: #d8e2e7;--abw-border-strong: #c0d1d9;--abw-text: #1d2935;--abw-text-muted: #607080;--abw-accent: #0f9f8f;--abw-accent-strong: #134e6f;--abw-warning: #d97706;--abw-danger: #dc2626;--abw-info: #2563eb;--abw-offline: #64748b;--abw-shadow: 0 22px 60px rgba(15, 23, 36, .12);--abw-shadow-soft: 0 14px 34px rgba(15, 23, 36, .09);--abw-font-body: "IBM Plex Sans", "Segoe UI", sans-serif;--abw-font-heading: "Space Grotesk", "Segoe UI", sans-serif;--abw-sidebar-width: clamp(17.5rem, 24vw, 20rem);--abw-content-max: 104rem;--abw-page-padding: clamp(1rem, 2vw, 2rem);--abw-section-gap: clamp(1rem, 1.4vw, 1.35rem);--abw-radius-sm: 1rem;--abw-radius-md: 1.5rem;--abw-radius-lg: 1.75rem;--abw-radius-pill: 999px;--abw-transition: .18s ease}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100dvh;line-height:1.5;overflow:hidden;font-family:var(--abw-font-body);color:var(--abw-text);background:radial-gradient(circle at top right,rgba(15,159,143,.18),transparent 24%),radial-gradient(circle at left 8%,rgba(19,78,111,.14),transparent 22%),linear-gradient(180deg,#f8fbfc,#eef4f7)}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;border:0}img,svg,canvas{display:block;max-width:100%}:focus-visible{outline:3px solid rgba(15,159,143,.24);outline-offset:2px}#root{min-height:100dvh;isolation:isolate}.app-shell{position:relative;display:grid;grid-template-columns:var(--abw-sidebar-width) minmax(0,1fr);height:100dvh;min-height:100dvh}.app-sidebar__backdrop{display:none}.app-sidebar{display:flex;flex-direction:column;gap:1.6rem;padding:1.6rem 1.3rem;color:#eff6f8;background:linear-gradient(180deg,#08141ffa,#08141feb),linear-gradient(145deg,rgba(15,159,143,.24),transparent 45%);border-right:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:30;min-height:100dvh;max-height:100dvh;overflow-y:auto}.brand-panel{display:flex;gap:1rem;align-items:center;padding:1rem;border-radius:var(--abw-radius-lg);background:#ffffff14}.brand-panel__tag{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:18px;font-family:var(--abw-font-heading);font-size:1.05rem;font-weight:700;color:#06252a;background:linear-gradient(135deg,#4ce0cf,#facc15)}.brand-panel__eyebrow,.app-topbar__eyebrow,.page-header__eyebrow,.hero-panel__eyebrow{margin:0 0 .32rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase}.brand-panel h2,.page-header__title,.section-card__title,.page-state h2,.hero-panel h2{margin:0;font-family:var(--abw-font-heading);letter-spacing:-.02em}.app-nav{display:grid;gap:1rem}.app-nav__group{display:grid;gap:.6rem}.app-nav__group-header{display:grid;gap:.18rem;padding:0 .2rem}.app-nav__group-label{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#eff6f8b8}.app-nav__group-description{margin:0;font-size:.88rem;color:#eff6f88f}.app-nav__list{display:grid;gap:.45rem}.app-nav__item{display:flex;align-items:center;min-height:3rem;padding:.78rem .95rem;border:1px solid rgba(255,255,255,.06);border-radius:16px;transition:transform .16s ease,border-color .16s ease,background-color .16s ease}.app-nav__item:hover,.app-nav__item--active{transform:translate(2px);border-color:#4ce0cf47;background:#4ce0cf1a}.app-nav__label{font-weight:600}.app-main{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;height:100dvh;min-height:100dvh;overflow:hidden}.app-topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.2rem var(--abw-page-padding) 0;position:sticky;top:0;z-index:20;background:linear-gradient(180deg,#f8fbfcf5,#f8fbfccc),transparent;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-topbar__meta{display:flex;gap:1rem;align-items:flex-start;min-width:0}.app-topbar strong{font-size:1.04rem}.app-topbar__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.75rem;align-items:center}.app-topbar__chips{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:flex-end}.app-topbar__menu{display:none;align-items:center;gap:.75rem;padding:.7rem .9rem;border:1px solid var(--abw-border);border-radius:var(--abw-radius-pill);color:var(--abw-text);background:#fffc;box-shadow:var(--abw-shadow-soft)}.app-topbar__menu-icon{display:inline-grid;gap:.22rem}.app-topbar__menu-icon span{display:block;width:1rem;height:2px;border-radius:var(--abw-radius-pill);background:currentColor;transition:transform var(--abw-transition),opacity var(--abw-transition)}.app-topbar__menu--active .app-topbar__menu-icon span:nth-child(1){transform:translateY(4px) rotate(45deg)}.app-topbar__menu--active .app-topbar__menu-icon span:nth-child(2){opacity:0}.app-topbar__menu--active .app-topbar__menu-icon span:nth-child(3){transform:translateY(-4px) rotate(-45deg)}.app-topbar__menu-label{font-size:.92rem;font-weight:600}.topbar-chip,.language-switch{border:1px solid var(--abw-border);background:#ffffffb8}.topbar-chip{padding:.52rem .9rem;border-radius:999px;font-size:.92rem}.topbar-chip--accent{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--abw-accent-strong),var(--abw-accent))}.language-switch{display:inline-flex;gap:.35rem;padding:.22rem;border-radius:999px}.language-switch__button{min-width:3rem;padding:.45rem .7rem;border:0;border-radius:999px;color:var(--abw-text-muted);background:transparent}.language-switch__button--active{color:#fff;background:linear-gradient(135deg,var(--abw-accent-strong),var(--abw-accent))}.app-content{display:flex;flex:1 1 auto;justify-content:center;padding:1.5rem var(--abw-page-padding) 2rem;overflow-y:auto;min-height:0}.app-content>*{width:min(100%,var(--abw-content-max))}.page-stack{display:flex;flex-direction:column;gap:var(--abw-section-gap)}.page-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.page-header__actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.page-header__title{margin-bottom:.5rem;font-size:clamp(2rem,3vw,3.1rem)}.page-header__description,.page-header__note,.hero-panel__body,.section-card__description,.stat-card__helper,.command-tile__meta,.table-text-muted,.page-state p{color:var(--abw-text-muted)}.page-header__description,.page-header__note{max-width:60rem;margin:0;font-size:1rem}.page-header__note{margin-top:.45rem}.hero-panel,.section-card,.stat-card,.page-state{border:1px solid rgba(192,209,217,.78);border-radius:var(--abw-radius-lg);background:var(--abw-panel);box-shadow:var(--abw-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.hero-panel{display:flex;justify-content:space-between;gap:1.4rem;padding:1.55rem 1.6rem;background:linear-gradient(135deg,#0f9f8f2e,#134e6f24),var(--abw-panel-strong)}.hero-panel h2{max-width:42rem;font-size:1.56rem}.hero-panel__body{max-width:44rem;margin:.65rem 0 0}.hero-panel__stats{display:flex;flex-wrap:wrap;gap:.75rem;align-content:flex-start}.hero-panel__stats span{padding:.76rem 1rem;border:1px solid rgba(19,78,111,.12);border-radius:999px;background:#ffffffd6;font-size:.92rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem}.stat-card{padding:1.35rem}.stat-card__label,.command-tile__label,.detail-card span{margin:0;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--abw-text-muted)}.stat-card__value{margin:.65rem 0 .42rem;font-size:2rem;line-height:1.04}.stat-card__change,.stat-card__helper,.section-card__description,.command-tile__meta,.detail-card strong,.insight-panel p{margin:0}.stat-card--ok{border-color:#0f9f8f57}.stat-card--warning{border-color:#d9770652}.stat-card--critical{border-color:#dc26264d}.content-grid{display:grid;gap:1rem}.content-grid--two{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}.content-grid--sidebar{grid-template-columns:minmax(min(100%,20rem),.92fr) minmax(0,1.08fr)}.section-card{padding:1.2rem}.section-card__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:1rem}.section-card__title{margin-bottom:.3rem;font-size:1.32rem}.section-card__action{display:flex;flex-wrap:wrap;gap:.75rem}.section-card__body,.chart-shell{min-width:0}.chart-shell--compact{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(15rem,.9fr);gap:1rem;align-items:center}.legend-list{display:grid;gap:.7rem}.legend-list__item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem}.legend-list__swatch{width:.8rem;height:.8rem;border-radius:999px}.hierarchy-tree{display:grid;gap:.75rem}.building-stack{display:grid;gap:.7rem}.building-stack__floor{display:grid;gap:.35rem;width:100%;padding:.9rem 1rem;border:1px solid rgba(19,78,111,.14);border-radius:20px;text-align:left;background:#ffffffbd;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.building-stack__floor:hover{transform:translate(2px);box-shadow:0 12px 22px #134e6f14}.building-stack__floor--active{border-color:#0f9f8f59;box-shadow:0 16px 28px #0f9f8f1f}.building-stack__floor--residential{background:linear-gradient(135deg,#0f9f8f14,#ffffffd1)}.building-stack__floor--technical,.building-stack__floor--amenity,.building-stack__floor--lobby{background:linear-gradient(135deg,#134e6f12,#ffffffd1)}.building-stack__level{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--abw-text-muted)}.building-stack__meta{display:flex;flex-wrap:wrap;gap:.55rem 1rem;font-size:.86rem;color:var(--abw-text-muted)}.hierarchy-tree__group{display:grid;gap:.55rem}.hierarchy-tree__children{display:grid;gap:.45rem;padding-left:1rem;border-left:1px dashed rgba(19,78,111,.18)}.hierarchy-tree__children--rooms{padding-top:.3rem}.hierarchy-tree__item{display:flex;justify-content:space-between;gap:.75rem;align-items:center;flex-wrap:wrap;width:100%;padding:.75rem .9rem;border:1px solid rgba(19,78,111,.14);border-radius:18px;color:var(--abw-text);background:#ffffff9e;text-align:left}.hierarchy-tree__item span{color:var(--abw-text-muted);font-size:.9rem}.hierarchy-tree__item strong{font-weight:700}.hierarchy-tree__item--active{border-color:#0f9f8f57;background:linear-gradient(135deg,#0f9f8f1f,#ffffffe6)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.8rem}.detail-card,.insight-panel{padding:1rem;border:1px solid rgba(19,78,111,.12);border-radius:22px;background:#ffffffbd}.detail-card{display:grid;gap:.45rem}.detail-card strong,.insight-panel strong{font-size:1.08rem}.insight-panel{display:grid;gap:.45rem}.command-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.9rem}.command-tile{display:grid;gap:.8rem;padding:1rem;border:1px solid rgba(19,78,111,.12);border-radius:22px;background:#ffffffb8}.command-tile__top{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;flex-wrap:wrap}.command-tile__target{margin:.25rem 0 0}.abw-button{display:inline-flex;justify-content:center;align-items:center;gap:.4rem;min-height:3rem;padding:.78rem 1rem;border:0;border-radius:16px;color:#fff;font-weight:600;background:linear-gradient(135deg,var(--abw-accent-strong),var(--abw-accent));transition:transform var(--abw-transition),box-shadow var(--abw-transition),background-color var(--abw-transition)}.abw-button:hover{transform:translateY(-1px);box-shadow:var(--abw-shadow-soft)}.abw-button--ghost{color:var(--abw-accent-strong);border:1px solid rgba(19,78,111,.18);background:#ffffffb3}.abw-button--danger{color:#fff;background:linear-gradient(135deg,#b91c1c,#ef4444)}.inline-actions{display:flex;flex-wrap:wrap;gap:.75rem}.entity-form{display:grid;gap:1rem}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:.85rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.85rem}.form-field{display:grid;gap:.42rem}.form-field span{font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--abw-text-muted)}.form-field input,.form-field select,.form-field textarea{width:100%;padding:.78rem .9rem;border:1px solid rgba(19,78,111,.16);border-radius:16px;color:var(--abw-text);background:#ffffffd1}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid rgba(15,159,143,.22);border-color:#0f9f8f59}.form-actions{display:flex;flex-wrap:wrap;gap:.75rem}.form-status{padding:.82rem .95rem;border:1px solid rgba(19,78,111,.14);border-radius:18px;color:var(--abw-text-muted);background:#ffffffb8}.floor-plan{display:grid;gap:1rem;--abw-floor-plan-unit-padding: .8rem;--abw-floor-plan-purpose-size: .74rem;--abw-floor-plan-meta-size: .8rem}.floor-plan__legend{display:flex;flex-wrap:wrap;gap:.85rem}.floor-plan__scroller{overflow-x:auto;padding-bottom:.2rem}.floor-plan__legend-item{display:inline-flex;gap:.45rem;align-items:center;font-size:.92rem;color:var(--abw-text-muted)}.floor-plan__legend-swatch{width:.85rem;height:.85rem;border-radius:999px}.floor-plan__legend-swatch--ok{background:#10b981e6}.floor-plan__legend-swatch--warning{background:#f59e0bf2}.floor-plan__legend-swatch--critical{background:#ef4444f2}.floor-plan__legend-swatch--selected{background:#0f172a}.floor-plan__legend-swatch--info{background:#3b82f6eb}.floor-plan__canvas{position:relative;width:100%;min-width:100%;min-height:320px;border:1px solid rgba(19,78,111,.14);border-radius:28px;overflow:hidden;background:linear-gradient(180deg,#f8fbfcfa,#ebf4f7eb),repeating-linear-gradient(90deg,rgba(15,159,143,.04) 0,rgba(15,159,143,.04) 1px,transparent 1px,transparent 32px),repeating-linear-gradient(0deg,rgba(15,159,143,.04) 0,rgba(15,159,143,.04) 1px,transparent 1px,transparent 32px)}.floor-plan__corridor{position:absolute;display:grid;place-items:center;padding:.7rem;border:1px dashed rgba(19,78,111,.22);border-radius:22px;color:var(--abw-text-muted);background:#ffffffb3}.floor-plan__corridor span{font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.floor-plan__unit{position:absolute;display:grid;align-content:space-between;gap:.45rem;padding:var(--abw-floor-plan-unit-padding);border:1px solid rgba(19,78,111,.16);border-radius:20px;text-align:left;box-shadow:0 14px 26px #134e6f14;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.floor-plan__unit:hover{transform:translateY(-2px);box-shadow:0 16px 28px #134e6f1f}.floor-plan__unit--static{cursor:default}.floor-plan__unit--static:hover{transform:none;box-shadow:0 14px 26px #134e6f14}.floor-plan__unit strong{font-size:1rem;line-height:1.1}.floor-plan__unit-purpose{font-size:var(--abw-floor-plan-purpose-size);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--abw-text-muted)}.floor-plan__unit-meta{display:grid;gap:.18rem;font-size:var(--abw-floor-plan-meta-size);color:var(--abw-text-muted)}.floor-plan__unit--ok{background:#f0fdfaf0}.floor-plan__unit--warning{background:#fffbebf5;border-color:#f59e0b57}.floor-plan__unit--critical{background:#fef2f2f5;border-color:#ef444457}.floor-plan__unit--info{background:#eff6fff5;border-color:#3b82f642}.floor-plan__unit--selected{border-color:#0f172ab3;box-shadow:0 18px 30px #0f172a2e}.table-shell{overflow-x:auto;max-width:100%}.abw-table{width:100%;border-collapse:collapse;min-width:760px}.abw-table th,.abw-table td{padding:.88rem .82rem;border-bottom:1px solid rgba(19,78,111,.1);text-align:left;vertical-align:middle}.abw-table th{color:var(--abw-text-muted);font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.table-empty{display:grid;place-items:center;min-height:180px;border:1px dashed rgba(19,78,111,.18);border-radius:22px;color:var(--abw-text-muted)}.status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.34rem .7rem;border-radius:999px;font-size:.85rem;font-weight:600}.status-badge--ok{color:#065f46;background:#10b98124}.status-badge--info{color:#1d4ed8;background:#3b82f624}.status-badge--warning{color:#b45309;background:#f59e0b29}.status-badge--critical{color:#b91c1c;background:#ef444424}.status-badge--offline{color:#475569;background:#64748b2e}.insight-list{display:grid;gap:.72rem;padding:0;margin:0}.insight-list>div{padding:.85rem .95rem;border:1px solid rgba(19,78,111,.12);border-radius:18px;background:#ffffffb8}.page-state{display:grid;place-items:center;min-height:320px;padding:1.5rem;text-align:center}.page-state p{max-width:30rem;margin:.8rem 0 0}@media (max-width: 1200px){.content-grid--sidebar{grid-template-columns:1fr}}@media (max-width: 960px){body{overflow-x:hidden;overflow-y:auto}.app-shell{grid-template-columns:1fr;height:auto;min-height:100dvh}.app-sidebar__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:block;opacity:0;pointer-events:none;background:var(--abw-overlay);transition:opacity var(--abw-transition);z-index:25}.app-sidebar{gap:1.2rem;position:fixed;inset:0 auto 0 0;width:min(88vw,20rem);min-height:100dvh;max-height:100dvh;transform:translate(-104%);transition:transform var(--abw-transition);box-shadow:0 24px 48px #08141f38}.app-shell--nav-open .app-sidebar__backdrop,.app-sidebar__backdrop--visible{opacity:1;pointer-events:auto}.app-sidebar--open{transform:translate(0)}.app-nav{grid-template-columns:1fr}.app-topbar{align-items:flex-start;padding:1rem 1rem 0}.app-topbar__meta,.app-topbar__actions,.app-topbar__chips{width:100%;justify-content:flex-start}.app-topbar__menu{display:inline-flex}.app-content{padding:1rem 1rem 1.25rem;overflow:visible}.app-main{height:auto;min-height:100dvh;overflow:visible}.hero-panel,.page-header{flex-direction:column}.chart-shell--compact{grid-template-columns:1fr}.page-header__actions,.section-card__action{width:100%;justify-content:flex-start}.floor-plan__canvas{min-height:360px}}@media (max-width: 720px){.inline-actions,.form-actions,.page-header__actions,.section-card__action{width:100%}.inline-actions>*,.form-actions>*,.page-header__actions>*,.section-card__action>*{flex:1 1 100%}.floor-plan{--abw-floor-plan-unit-padding: .58rem;--abw-floor-plan-purpose-size: .66rem;--abw-floor-plan-meta-size: .72rem}.floor-plan__canvas{min-width:42rem;min-height:320px}.floor-plan__corridor span{font-size:.74rem}.floor-plan__unit strong{font-size:.9rem}.table-shell{overflow:visible}.abw-table,.abw-table tbody,.abw-table tr,.abw-table td{display:block;width:100%}.abw-table{min-width:0}.abw-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.abw-table tbody{display:grid;gap:.75rem}.abw-table tr{display:grid;gap:.7rem;padding:1rem;border:1px solid rgba(19,78,111,.12);border-radius:var(--abw-radius-md);background:#ffffffc7;box-shadow:var(--abw-shadow-soft)}.abw-table td{display:grid;grid-template-columns:minmax(7rem,42%) minmax(0,1fr);gap:.75rem;align-items:start;padding:0;border:0}.abw-table td:before{content:attr(data-label);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--abw-text-muted)}}@media (max-width: 640px){.app-topbar{padding-inline:.85rem}.app-topbar__menu{padding:.75rem}.app-topbar__menu-label{display:none}.app-content{padding-inline:.85rem}.page-header__title{font-size:clamp(1.8rem,8vw,2.45rem)}.brand-panel,.hero-panel,.section-card,.stat-card,.page-state{border-radius:24px}.topbar-chip,.hero-panel__stats span{width:100%}.hierarchy-tree__children{padding-left:.75rem}}
