@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400 700;font-display:optional;src:url(/assets/plus-jakarta-sans-vietnamese-BFYJGte7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400 700;font-display:optional;src:url(/assets/plus-jakarta-sans-latin-B2KjpZfh.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400 700;font-display:optional;src:url(/assets/plus-jakarta-sans-latin-ext-CAOONhfK.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Prata;font-style:normal;font-weight:400;font-display:optional;src:url(/assets/prata-vietnamese-LoyEI-6M.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Prata;font-style:normal;font-weight:400;font-display:optional;src:url(/assets/prata-latin-GYbAXMUw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/playfair-display-vietnamese-BFcv9A5S.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/playfair-display-latin-CSUZDoAs.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/playfair-display-latin-ext-CnXWPxla.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/playfair-display-italic-vietnamese-7s1ppcbL.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/playfair-display-italic-latin-DHXaKUp_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/playfair-display-italic-latin-ext-V6065t5x.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dancing-script-vietnamese-Bdc4sec0.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dancing-script-latin-DG8YKDq3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dancing-script-latin-ext-C2EogQ4A.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--ink:#1c2835;--ink-2:#2e3a47;--muted:#606b77;--subtle:#64707b;--line:#ece7e2;--line-soft:#f1ece7;--control-line:#dcd5cf;--card-line:#1d32460d;--paper:#fff;--surface:#eef3f7;--surface-2:#f8fafc;--sand-soft:#faf8f6;--cream:#fffbf5;--sand-selected:#f6f2ee;--workspace-background:linear-gradient(121deg, #f6f7f8 0%, #e7f0f6 50%, #f1f6fa 100%);--accent:#304f6d;--accent-dark:#253f58;--accent-light:#47617b;--accent-soft:#e5ecf4;--accent-softer:#f8fafc;--brand-highlight:#e07d54;--brand-highlight-text:#9b563a;--brand-highlight-dark:#c4613a;--chart-muted:#9fb6cc;--green:#4e8a63;--green-text:#417352;--green-soft:#e7f2ea;--green-dark:#2f5e3f;--blue:#47617b;--blue-soft:#e9f2fa;--blue-dark:#304f6d;--orange:#d9a23b;--orange-text:#846324;--orange-dot:#b07a16;--orange-soft:#fff3dc;--orange-dark:#916e3d;--danger:#bf3939;--danger-soft:#fbe6e1;--danger-dark:#b44225;--focus-ring:#304f6d;--field-bg:var(--paper);--field-border:var(--control-line);--field-border-hover:color-mix(in srgb, var(--accent) 38%, var(--control-line));--field-border-focus:var(--accent);--field-ring:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);--field-border-invalid:var(--danger);--field-ring-invalid:0 0 0 3px color-mix(in srgb, var(--danger) 14%, transparent);--scroll-track:#eef3f7;--scroll-thumb:#dcd5cf;--scroll-hover:#98a1aa;--overlay-backdrop:#1c283547;--sidebar-bg:#fff;--sidebar-text:#47617b;--sidebar-text-2:#1c2835;--sidebar-border:#ece7e2;--sidebar-hover:#e07d5414;--sidebar-active:#e07d5424;--sidebar-section:#64707b;--font-body:"Plus Jakarta Sans", system-ui, sans-serif;--font-heading:"Plus Jakarta Sans", system-ui, sans-serif;--font-display:"Prata", Georgia, serif;--font-login-display:"Playfair Display", Georgia, serif;--font-login-hand:"Dancing Script", "Segoe Script", cursive;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:16px;--text-xl:18px;--text-2xl:22px;--text-3xl:26px;--text-4xl:30px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--metric-icon-box:52px;--metric-icon-size:28px;--radius-sm:6px;--radius:10px;--radius-md:10px;--radius-lg:16px;--radius-xl:18px;--radius-full:9999px;--shadow-sm:0 1px 2px #1d32460a, 0 0 0 1px var(--card-line);--shadow:var(--shadow-sm);--shadow-md:var(--shadow-sm), 0 12px 24px -12px #1c283529;--shadow-lg:var(--shadow-sm), 0 18px 40px -16px #1c283559;--shadow-xl:0 0 0 1px #1d324614, 0 30px 70px -20px #1c283573;--z-sidebar:100;--z-topbar:150;--z-dropdown:200;--z-popover:300;--z-mobile-nav:450;--z-backdrop:500;--z-modal:600;--z-drawer:700;--z-print-backdrop:800;--z-print-modal:810;--z-toast:900;--select-chevron-inset:12px;--select-chevron-size:16px;--select-chevron-space:40px;--sidebar-width:216px;--content-max-width:1440px;--topbar-height:68px;--mobile-nav-height:64px}@media (width<=767px){:root{--metric-icon-box:44px;--metric-icon-size:24px}}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100vh;display:grid}.workspace{flex-direction:column;min-width:0;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);height:100vh;color:var(--sidebar-text-2);z-index:var(--z-sidebar);flex-direction:column;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-inner{flex-direction:column;height:100%;min-height:0;display:flex}.brand{height:var(--topbar-height);color:var(--ink);text-align:left;font:700 20px/1 var(--font-heading);letter-spacing:-.6px;background:0 0;border:0;flex-shrink:0;align-items:center;gap:10px;padding:0 24px;display:flex}.brand small{color:var(--muted);text-transform:uppercase;font:600 8px/1.5 var(--font-body);letter-spacing:2px;margin-top:3px;display:block}.brand-logo{flex-shrink:0;place-items:center;display:grid}.brand-logo svg{display:block}.brand-mark{color:#fff;background:var(--accent);width:34px;height:34px;font:700 17px var(--font-heading);border-radius:10px 10px 10px 3px;flex-shrink:0;place-items:center;display:grid}.sidebar nav{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent;flex-direction:column;flex:1;gap:2px;min-height:0;padding:0 12px 16px;display:flex;overflow:hidden auto}.sidebar nav::-webkit-scrollbar{width:6px}.sidebar nav::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:6px}.sidebar nav p,.drawer-nav p{color:var(--sidebar-section);letter-spacing:.88px;text-transform:uppercase;flex-shrink:0;margin:18px 12px 6px;font-size:11px;font-weight:600;line-height:1.3}.sidebar nav p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar nav>p:first-child,.drawer-nav>p:first-child{margin-top:6px}.sidebar nav button{border-radius:var(--radius);width:100%;min-width:0;min-height:34px;color:var(--sidebar-text);font-size:var(--text-base);text-align:left;background:0 0;border:0;flex-shrink:0;align-items:center;gap:10px;padding:6px 12px;font-weight:500;line-height:1.25;transition:color .15s,background .15s;display:flex;position:relative}.sidebar nav button .icon{flex-shrink:0;width:17px;height:17px}.sidebar nav button span{overflow-wrap:anywhere;flex:1;min-width:0}.sidebar nav button:hover{color:var(--ink);background:var(--sidebar-hover)}.sidebar nav .nav-active,.sidebar nav .nav-active:hover{color:var(--ink);background:var(--sidebar-active);font-weight:600}.sidebar-foot,.drawer-foot{border-top:1px solid var(--line);flex-shrink:0;padding:12px}.sidebar-logout{border-radius:var(--radius);width:100%;min-height:34px;color:var(--muted);font-size:var(--text-sm);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:0 12px;font-weight:500;transition:color .15s,background .15s;display:flex}.sidebar-logout:hover{color:var(--ink);background:var(--sidebar-hover)}.avatar{width:34px;height:34px;color:var(--paper);background:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:700;display:grid}.avatar.small{width:30px;height:30px;font-size:9px}.avatar.lg{width:44px;height:44px;font-size:14px}.icon-btn{border-radius:var(--radius);width:34px;height:34px;color:inherit;background:0 0;border:0;flex-shrink:0;place-items:center;transition:background .15s;display:grid;position:relative}.icon-btn:hover{background:#7f7f7f1f}.topbar{height:var(--topbar-height);background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:var(--sp-4);z-index:var(--z-topbar);flex-shrink:0;padding:0 32px;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:var(--sp-3);flex:1;min-width:0;display:flex}.topbar-title{min-width:0;display:none;overflow:hidden}.topbar-title small,.topbar-title strong{display:block}.topbar-title small{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:10px;overflow:hidden}.topbar-title strong{font:600 var(--text-base)/1.2 var(--font-body);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar-actions{align-items:center;gap:var(--sp-3);flex-shrink:0;display:flex}.topbar .icon-btn{width:38px;height:38px;color:var(--accent-light);background:0 0}.topbar .icon-btn:hover{background:var(--surface-2)}.bell-icon-btn{position:relative}.bell-count{background:var(--danger-dark);color:#fff;text-align:center;min-width:16px;box-shadow:0 0 0 2px var(--paper);border-radius:10px;padding:1px 4px;font-size:10px;font-weight:700;line-height:1.2;position:absolute;top:1px;right:0}.topbar-menu-btn{color:var(--ink);padding:var(--sp-2);border-radius:var(--radius);background:0 0;border:0;display:none}.topbar-menu-btn:hover{background:var(--surface-2)}.content{max-width:var(--content-max-width);flex:1;width:100%;margin:0 auto;padding:36px 32px 48px}@media (width>=1440px){.content{padding:36px 40px 48px}}.drawer-backdrop{background:var(--overlay-backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:var(--z-backdrop);animation:.2s fade-in;display:none;position:fixed;inset:0}.drawer-backdrop.open{display:block}.mobile-drawer{background:var(--sidebar-bg);width:280px;z-index:var(--z-drawer);visibility:hidden;pointer-events:none;flex-direction:column;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),visibility 0s linear .25s;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-100%);box-shadow:4px 0 40px #0000}.mobile-drawer.open{visibility:visible;pointer-events:auto;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),visibility linear;transform:translate(0);box-shadow:4px 0 40px #00000059}.tenant-bottom-nav{display:none}.drawer-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 12px 0 0;display:flex}.drawer-brand-name{color:var(--ink);font:700 20px/1 var(--font-heading);letter-spacing:-.6px}.drawer-close-btn{border-radius:var(--radius);width:44px;height:44px;color:var(--muted);background:0 0;border:0;place-items:center;transition:background .15s,color .15s;display:grid}.drawer-close-btn:hover{color:var(--ink);background:var(--sidebar-hover)}.drawer-nav{padding:var(--sp-3) 12px var(--sp-4);flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.drawer-nav button{border-radius:var(--radius);min-height:44px;color:var(--sidebar-text);font-size:var(--text-base);text-align:left;background:0 0;border:0;flex-shrink:0;align-items:center;gap:10px;width:100%;padding:8px 12px;font-weight:500;transition:color .15s,background .15s;display:flex;position:relative}.drawer-nav button .icon{flex-shrink:0;width:18px;height:18px}.drawer-nav button span{min-width:0;font-size:var(--text-base);flex:1}.drawer-nav button:hover{color:var(--ink);background:var(--sidebar-hover)}.drawer-nav .nav-active,.drawer-nav .nav-active:hover{color:var(--ink);background:var(--sidebar-active);font-weight:600}.drawer-foot .sidebar-logout{min-height:44px}.auth-shell{place-items:center;min-height:100vh;padding:30px;display:grid}@keyframes fade-in{0%{opacity:0}}.theme-homikey{background:var(--surface);color:var(--ink);font-family:var(--font-body)}.app-shell.theme-homikey{background:var(--workspace-background);background-attachment:fixed}.theme-homikey .content{font-family:var(--font-body);color:var(--ink);background:0 0}@media (width>=1024px){.drawer-backdrop,.mobile-drawer{display:none!important}}@media (width<=1023px){.app-shell{grid-template-columns:1fr}.theme-homikey{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.topbar-menu-btn{display:flex}.topbar{padding:0 20px}.topbar-actions{gap:8px}.topbar-title{flex:auto;display:block}.content{padding:24px 20px}}@media (width<=767px){.content{padding:20px 16px calc(var(--mobile-nav-height) + 24px + env(safe-area-inset-bottom))}.theme-homikey .content{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.topbar{height:60px;padding:0 16px}.role-tenant .topbar-menu-btn{display:none}.tenant-bottom-nav{z-index:var(--z-mobile-nav);min-height:var(--mobile-nav-height);padding:6px max(8px, env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-right));border-top:1px solid var(--line);background:#fffffff7;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #20222414}.tenant-bottom-nav button{border-radius:var(--radius);min-width:0;min-height:52px;color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px;font-size:11px;font-weight:600;display:flex}.tenant-bottom-nav button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tenant-bottom-nav button.nav-active{color:var(--accent-dark);background:var(--accent-softer)}.theme-homikey .topbar-title small{display:none}.theme-homikey .topbar .icon-btn{width:44px;height:44px}.theme-homikey .account-trigger>.icon{display:none}}@media (width<=400px){.content{padding:16px 12px calc(var(--mobile-nav-height) + 20px + env(safe-area-inset-bottom))}.topbar-title strong{font-size:var(--text-base)}}.account-menu{flex-shrink:0;position:relative}.account-trigger{border-radius:var(--radius);min-width:44px;min-height:44px;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;gap:10px;padding:4px 6px;display:flex}.account-trigger:is(:hover,[aria-expanded=true]){background:var(--surface-2)}.account-trigger .avatar{width:32px;height:32px;font-size:12px;font-weight:600}.account-trigger>.icon{transition:transform .15s}.account-trigger[aria-expanded=true]>.icon{transform:rotate(180deg)}.account-trigger-text{text-align:left;min-width:0;max-width:170px;display:none}.account-trigger-text strong,.account-trigger-text small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.account-trigger-text strong{color:var(--ink);font-size:var(--text-sm);font-weight:600;line-height:1.25}.account-trigger-text small{color:var(--muted);font-size:var(--text-xs);margin-top:1px;line-height:1.25}@media (width>=1024px){.account-trigger-text{display:block}}.account-panel{z-index:var(--z-popover);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);width:min(264px,100vw - 32px);box-shadow:var(--shadow-lg);padding:8px;position:absolute;top:calc(100% + 8px);right:0}.account-identity{border-bottom:1px solid var(--line);gap:4px;padding:8px 10px 14px;display:grid}.account-identity strong{font-size:var(--text-sm);overflow-wrap:anywhere}.account-identity small{color:var(--muted);font-size:12px}.account-logout{border-radius:var(--radius);width:100%;min-height:44px;color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:10px;margin-top:6px;padding:10px;font-weight:500;display:flex}.account-logout:hover{background:var(--surface-2)}.account-link-current,.account-link-current:hover{background:var(--sidebar-active);font-weight:600}.homikey-tenant-shell .content.homikey-workspace{max-width:1120px}@media (width<=767px){.homikey-tenant-shell .content{padding-bottom:calc(104px + env(safe-area-inset-bottom))}.homikey-tenant-shell .tenant-bottom-nav{background:var(--paper);border-top:1px solid var(--line);box-shadow:var(--shadow-sm);padding:8px 8px calc(8px + env(safe-area-inset-bottom));gap:4px}.homikey-tenant-shell .tenant-bottom-nav button{border-radius:var(--radius-lg);min-height:56px}.homikey-tenant-shell .tenant-bottom-nav button.nav-active{color:var(--accent-dark);background:var(--accent-soft)}.homikey-tenant-shell .tenant-bottom-nav button:hover{background:var(--accent-softer)}}.owner-shell .sidebar nav button,.platform-shell .sidebar nav button,.owner-shell .drawer-nav button,.platform-shell .drawer-nav button{min-height:34px;padding-top:0;padding-bottom:0}.owner-shell .drawer-nav button,.platform-shell .drawer-nav button{min-height:44px}.owner-shell .sidebar nav button span,.platform-shell .sidebar nav button span,.owner-shell .drawer-nav button span,.platform-shell .drawer-nav button span{overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.owner-shell .topbar-actions,.platform-shell .topbar-actions{gap:20px}.owner-shell .topbar .icon-btn,.platform-shell .topbar .icon-btn{width:36px;height:36px;color:var(--accent-light);border-radius:10px}.period-picker{flex-shrink:0;position:relative}.period-button{background:var(--paper);height:38px;box-shadow:var(--shadow-sm);color:var(--ink-2);font:500 13px/1 var(--font-body);white-space:nowrap;cursor:pointer;border:0;border-radius:12px;align-items:center;gap:8px;padding:0 12px;transition:background .15s;display:flex}.period-button .icon{color:var(--accent-light)}.period-button:hover,.period-button[aria-expanded=true]{background:var(--surface-2)}.period-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.period-panel{z-index:var(--z-popover);background:var(--paper);width:264px;box-shadow:var(--shadow-lg);border-radius:14px;gap:10px;padding:14px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.period-panel-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.period-panel-row strong{color:var(--ink);font:600 14px/1.3 var(--font-body)}.period-year{border-top:1px solid var(--line-soft);color:var(--muted);font:600 13px/1.3 var(--font-body);padding-top:8px}.period-step{width:32px;height:32px;color:var(--accent-light);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.period-step:hover{background:var(--surface-2);color:var(--ink)}.period-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.period-grid button{background:var(--surface-2);height:36px;color:var(--ink-2);font:500 13px/1 var(--font-body);cursor:pointer;border:0;border-radius:8px}.period-grid button:hover{background:var(--accent-soft)}.period-grid button.active,.period-grid button[aria-pressed=true]{background:var(--accent);color:#fff;font-weight:600}.period-panel :focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.bell-dot{background:var(--brand-highlight);width:8px;height:8px;box-shadow:0 0 0 2px var(--paper);border-radius:50%;position:absolute;top:6px;right:7px}.avatar-presence{display:none}.owner-shell .account-trigger,.platform-shell .account-trigger{border-radius:10px;gap:8px;padding:4px 8px}.owner-shell .account-trigger .avatar,.platform-shell .account-trigger .avatar{background:var(--accent-light);font-weight:700;position:relative}.owner-shell .account-trigger .avatar-presence,.platform-shell .account-trigger .avatar-presence{background:var(--green);width:9px;height:9px;box-shadow:0 0 0 2px var(--paper);border-radius:50%;display:block;position:absolute;bottom:-1px;right:-1px}.owner-shell .account-trigger>.icon,.platform-shell .account-trigger>.icon{width:16px;height:16px;color:var(--muted)}.owner-shell .account-trigger-text strong,.platform-shell .account-trigger-text strong{font-size:13px;line-height:1}.owner-shell .account-trigger-text small,.platform-shell .account-trigger-text small{margin-top:4px;font-size:12px;line-height:1}.owner-shell .page-heading .eyebrow,.platform-shell .page-heading .eyebrow{margin-bottom:2px}.owner-shell .page-heading .page-subtitle,.platform-shell .page-heading .page-subtitle{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.owner-shell .page-heading .page-own-line,.platform-shell .page-heading .page-own-line{max-width:760px;color:var(--muted);margin-top:14px;font-size:13px;line-height:1.5}.family-tabs{flex-wrap:wrap;gap:4px 24px;margin-top:20px;display:flex}.family-tabs button{min-height:36px;color:var(--muted);font:500 13px/1.4 var(--font-body);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;margin:0;padding:8px 0 9px;transition:color .15s}.family-tabs button:hover{color:var(--ink)}.family-tabs button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.family-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--brand-highlight);font-weight:600}.owner-shell .content .page-heading,.platform-shell .content .page-heading{align-items:flex-end}.owner-shell .page-heading>div:first-child,.platform-shell .page-heading>div:first-child{flex:auto;min-width:0}.owner-shell .page-heading .heading-actions,.platform-shell .page-heading .heading-actions{flex-wrap:nowrap;flex:none;justify-content:flex-end;gap:12px}.owner-shell .page-heading .heading-actions .btn,.platform-shell .page-heading .heading-actions .btn{white-space:nowrap}@media (width<=767px){.owner-shell .topbar-actions,.platform-shell .topbar-actions{gap:8px}.period-button{height:40px;padding:0 10px;font-size:12px}.owner-shell .topbar-left,.platform-shell .topbar-left{gap:4px}.owner-shell .content .page-heading .heading-actions .action-menu-trigger,.platform-shell .content .page-heading .heading-actions .action-menu-trigger{flex:none}.owner-shell .content .page-heading,.platform-shell .content .page-heading{flex-wrap:wrap;align-items:flex-start}.owner-shell .page-heading .heading-actions,.platform-shell .page-heading .heading-actions{flex-wrap:wrap;justify-content:flex-start;width:100%}.owner-shell .page-heading .page-subtitle,.platform-shell .page-heading .page-subtitle{white-space:normal}.family-tabs{flex-wrap:nowrap;gap:2px 18px;max-width:100%;overflow-x:auto}.family-tabs button{flex:none;min-height:44px}}@media (width<=479px){.period-button span{display:none}.period-button{justify-content:center;width:40px;padding:0}}.owner-shell .page-heading.page-heading-bare>div:first-child>.family-tabs,.platform-shell .page-heading.page-heading-bare>div:first-child>.family-tabs{margin-top:0}.owner-shell .page-heading.page-heading-bare>div:first-child>h1.sr-only,.platform-shell .page-heading.page-heading-bare>div:first-child>h1.sr-only{margin:-1px}.owner-shell .page-heading.page-heading-empty,.platform-shell .page-heading.page-heading-empty{display:contents}.platform-shell .topbar .system-status-button{gap:8px}.system-status-button>i{background:var(--green);border-radius:50%;flex-shrink:0;width:8px;height:8px}.system-status-button.degraded>i{background:var(--orange-dot)}.system-status-button.down>i{background:var(--danger)}.system-status-button>span{white-space:nowrap}div.system-status-button{cursor:default}.drawer-status-row{flex-shrink:0;padding:0 12px 8px}.drawer-status-row:empty{display:none}.drawer-status{border-radius:var(--radius);background:var(--surface-2);width:100%;min-height:44px;color:var(--ink-2);font:500 var(--text-sm)/1.3 var(--font-body);text-align:left;cursor:pointer;border:0;align-items:center;gap:10px;padding:0 12px;display:flex}div.drawer-status{cursor:default}@media (width<=767px){.platform-shell .topbar .system-status-button{display:none}}.btn{border-radius:var(--radius);justify-content:center;align-items:center;gap:var(--sp-2);min-height:40px;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;border:1px solid #0000;padding:0 16px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,color .15s;display:inline-flex}.btn.primary{color:#fff;background:var(--accent)}.btn.primary:hover,.btn.primary:active{background:var(--accent-dark)}.btn.secondary{border-color:var(--control-line);color:var(--ink);background:#fff}.btn.secondary:hover{background:var(--surface-2);border-color:var(--control-line)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}.btn.danger{color:#fff;background:var(--danger)}.btn.danger:hover{background:var(--danger-dark)}.btn.sm{min-height:36px;font-size:var(--text-xs);padding:0 14px}.btn.lg{min-height:48px;font-size:var(--text-base);padding:0 24px}.text-btn{color:var(--accent);font-size:var(--text-sm);align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);background:0 0;border:0;min-height:36px;font-weight:600;transition:background .15s;display:inline-flex}.text-btn:hover{background:var(--accent-soft)}.text-btn.danger-text{color:var(--danger)}.text-btn.danger-text:hover{background:var(--danger-soft)}.badge{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted);font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:6px;padding:5px 10px;font-weight:500;line-height:1;display:inline-flex}.badge i{background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.badge.active,.badge.room-available{color:var(--green-text);background:var(--green-soft)}.badge.inactive,.badge.room-inactive{color:#7b7d79;background:var(--surface-2)}.badge.room-occupied{color:var(--blue);background:var(--blue-soft)}.badge.room-maintenance,.badge.conflict{color:var(--orange-text);background:var(--orange-soft)}.badge.danger{color:var(--danger);background:var(--danger-soft)}.eyebrow{color:var(--subtle);letter-spacing:.88px;text-transform:uppercase;font-size:11px;font-weight:600;display:block}.page-crumbs{align-items:center;gap:10px;min-width:0;margin:0 0 10px;display:flex}.page-crumbs .eyebrow{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.page-crumbs-back{background:var(--paper);width:30px;height:30px;color:var(--ink);box-shadow:var(--shadow-sm);cursor:pointer;border:0;border-radius:999px;flex:none;place-items:center;padding:0;transition:background-color .15s,color .15s,box-shadow .15s,transform .15s;display:inline-grid}.page-crumbs-back:hover{background:var(--accent-soft);color:var(--accent);box-shadow:0 1px 2px #1d32460f, 0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent)}.page-crumbs-back:active{transform:translate(-1px)}.page-crumbs-link{cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--muted);background:0 0;border:0;padding:0}.page-crumbs-link:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.page-crumbs-back:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.page-crumbs-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}@media (width<=767px){.page-crumbs-back{position:relative}.page-crumbs-back:after{content:"";position:absolute;inset:-7px}}.page-heading{justify-content:space-between;align-items:flex-end;gap:var(--sp-6);margin-bottom:var(--sp-6);display:flex}.page-heading h1{font-size:clamp(22px, 3vw, var(--text-4xl));letter-spacing:-.7px;margin:6px 0;line-height:1.15}.page-heading p{color:var(--muted);font-size:var(--text-sm);margin:0}.action-group,.page-header-actions-group,.table-actions,.heading-actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;min-width:0;max-width:100%;display:flex}.action-group.end{justify-content:flex-end}.btn.action-menu-trigger{flex:none;width:40px;min-height:40px;padding:0}.action-menu-panel{z-index:var(--z-popover,100);width:248px;max-width:calc(100vw - 16px);padding:var(--sp-1);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-lg);position:fixed;overflow-y:auto}.action-menu-item{align-items:center;gap:var(--sp-2);width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.action-menu-item .icon{flex-shrink:0}.action-menu-item small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.action-menu-item:hover{background:var(--surface-2)}.action-menu-item:active{background:var(--surface)}.action-menu-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.action-menu-item.is-danger{margin-top:var(--sp-1);border-top:1px solid var(--line);color:var(--danger)}.action-menu-item.is-danger:hover,.action-menu-item.is-danger:active{background:var(--danger-soft)}.action-menu-item[aria-disabled=true]{opacity:.55;cursor:not-allowed}.action-menu-item[aria-disabled=true]:hover,.action-menu-item[aria-disabled=true]:active{background:0 0}@media (width<=767px){.btn.action-menu-trigger{width:44px;min-height:44px}}.heading-actions>:is(.heading-actions,.page-header-actions-group,.header-button-group,.notification-header-actions){min-width:0;max-width:100%}.welcome{justify-content:space-between;align-items:flex-end;gap:var(--sp-6);margin-bottom:var(--sp-6);display:flex}.welcome h1{font-size:clamp(22px, 3vw, var(--text-4xl));letter-spacing:-.7px;margin:6px 0}.welcome p{color:var(--muted);font-size:var(--text-base);margin:0}.back-button{color:var(--muted);align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;margin-bottom:var(--sp-4);font-size:var(--text-sm);background:0 0;border:0;transition:color .15s;display:inline-flex}.back-button:hover{color:var(--ink)}.toolbar{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;gap:var(--sp-3);background:#fff;flex-wrap:wrap;display:flex}.search-box{border:1px solid var(--field-border);border-radius:var(--radius);background:var(--field-bg);align-items:center;gap:var(--sp-2);color:#92938f;min-width:280px;height:38px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.search-box:hover:not(:focus-within){border-color:var(--field-border-hover)}.search-box:focus-within{border-color:var(--field-border-focus);box-shadow:var(--field-ring)}.search-box input{width:100%;color:var(--ink);font-size:var(--text-sm);background:0 0;border:0;outline:0}.search-box input::-webkit-search-cancel-button{display:none}.search-clear{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--muted);background:0 0;border:0;flex:none;place-items:center;display:grid}.search-clear:hover{color:var(--ink);background:var(--surface-2)}.segmented{background:var(--surface);border-radius:var(--radius);gap:2px;padding:3px;display:flex}.segmented button{color:var(--muted);font-size:var(--text-sm);white-space:nowrap;background:0 0;border:0;border-radius:6px;min-height:36px;padding:7px 14px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.segmented .active{color:var(--ink);box-shadow:var(--shadow-sm);background:#fff}.form-grid{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}.form-grid>:is(.form-section-title,.form-note,.anomaly-banner,.form-alert){grid-column:1/-1;min-width:0}.form-grid>.field{min-width:0}.form-grid>.anomaly-banner{justify-content:flex-start;align-items:flex-start}.form-grid>.anomaly-banner>svg{flex:none;margin-top:2px}.form-section-title{border-top:1px solid var(--line-soft,var(--line));color:var(--ink,inherit);font-size:var(--text-sm);letter-spacing:.01em;margin:0;padding:14px 0 0;font-weight:700}.form-grid>.form-section-title:first-child{border-top:0;padding-top:0}.form-group-label{color:var(--ink-2,#5f615d);font-size:var(--text-sm);margin:0 0 6px;font-weight:600;display:block}.form-note{color:var(--muted);font-size:var(--text-sm);margin:0;line-height:1.5}.field{align-content:start;gap:6px;display:grid}.field>label,.amenity-picker legend,.building-picker legend{color:#5f615d;font-size:var(--text-sm);font-weight:600}.field-required{color:var(--danger);font-weight:700}.field.is-checking{position:relative}.field-checking{color:#848682;font-size:var(--text-xs);pointer-events:none;font-weight:400;line-height:1.6;position:absolute;top:0;right:0}.field .field-notice{color:var(--orange-dark,#9a602a);font-size:var(--text-xs);font-weight:500;line-height:1.5}.field .field-notice .btn-link{font-size:inherit;margin-left:4px;padding:0;font-weight:600}.field :is(input,select,textarea):not(:where(.search-box,.rooms-search-box,.gsearch-box,.floor-item-row,.login-field) *){border:1px solid var(--field-border);border-radius:var(--radius);width:100%;min-height:40px;color:var(--ink);background:var(--field-bg);font-size:var(--text-base);outline:0;padding:8px 12px;transition:border-color .15s,box-shadow .15s}.field textarea{resize:none;min-height:104px}.resize-none{resize:none}.field :is(input,select,textarea):focus:not(:where(.search-box,.rooms-search-box,.gsearch-box,.floor-item-row,.login-field) *){border-color:var(--field-border-focus);box-shadow:var(--field-ring)}.field input[type=checkbox],.field input[type=radio]{border:revert;border-radius:revert;background:revert;outline:revert;width:18px;height:18px;min-height:0;box-shadow:none;font-size:inherit;accent-color:var(--accent);flex:none;margin:0;padding:0}.field small{color:#848682;font-size:var(--text-xs)}.field .field-error,.field-error{color:var(--danger);font-size:var(--text-xs);font-weight:500}.span-2{grid-column:1/-1}.form-alert{align-items:center;gap:var(--sp-2);color:#a7474d;background:var(--danger-soft);border-radius:var(--radius);min-height:40px;font-size:var(--text-sm);padding:10px 12px;display:flex}.panel{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid #0000}.panel-head{padding:var(--sp-5) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;display:flex}.panel-head h2{font-size:var(--text-lg);margin:0 0 3px;font-weight:600}.panel-head p{color:#92938f;margin:0;font-size:11px}.modal-backdrop,.dialog-backdrop{background:var(--overlay-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--sp-5);z-index:var(--z-backdrop);place-items:center;animation:.2s fade-in;display:grid;position:fixed;inset:0}.modal,.dialog{border-radius:var(--radius-xl);width:min(640px,100vw - 32px);max-height:calc(100dvh - 40px);box-shadow:var(--shadow-xl);z-index:var(--z-modal);background:#fff;flex-direction:column;animation:.25s cubic-bezier(.34,1.56,.64,1) modal-in;display:flex;position:relative;overflow:hidden}.modal-sm,.dialog-sm{width:min(480px,100vw - 32px)}.modal-md,.dialog-md{width:min(640px,100vw - 32px)}.modal-wide,.modal-lg,.dialog-lg{width:min(1000px,100vw - 40px)}.modal-xl,.dialog-xl{width:min(1160px,100vw - 48px)}.modal-full,.dialog-full{width:min(1400px,100vw - 48px)}.modal-header,.dialog-header{z-index:2;justify-content:space-between;align-items:center;gap:var(--sp-4);border-bottom:1px solid var(--line);background:#fff;flex-shrink:0;padding:16px 24px;display:flex;position:sticky;top:0}.modal-header-main,.dialog-header-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.modal-header h2,.dialog-header h2{margin:0;font-size:18px}.modal-header p,.dialog-header p{font-size:var(--text-sm);color:#787a76;margin:4px 0 0}.modal-header-actions,.dialog-header-actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;flex-shrink:0;display:flex}.modal-body,.dialog-body{scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex:auto;min-height:0;padding:20px 24px;overflow-y:auto}.modal>form,.dialog>form,.modal-form,.dialog-form{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.modal.is-bodyless .modal-header,.dialog.is-bodyless .dialog-header{border-bottom:0;padding-bottom:8px}.modal-actions,.dialog-footer{border-top:1px solid var(--line);justify-content:flex-end;gap:var(--sp-2);background:#fff;flex-wrap:wrap;flex-shrink:0;padding:14px 24px;display:flex;position:sticky;bottom:0}@keyframes modal-in{0%{opacity:0;transform:scale(.96)translateY(12px)}}.state-box,.empty-state{border-radius:var(--radius-lg);color:#999b96;text-align:center;min-height:280px;padding:var(--sp-8);justify-content:center;align-items:center;gap:var(--sp-2);background:#ffffff73;border:1px dashed #d9d9d2;flex-direction:column;display:flex}.state-box strong,.empty-state h2{color:#5b5d58;font-size:var(--text-md);margin:var(--sp-3) 0 var(--sp-1)}.state-box span,.empty-state p{font-size:var(--text-sm);color:var(--muted)}.empty-state>span,.state-icon{width:46px;height:46px;color:var(--accent);background:var(--accent-soft);border-radius:50%;place-items:center;display:grid}.empty-state.compact{min-height:200px;margin:15px 21px}.error-state .state-icon{color:var(--danger);background:var(--danger-soft)}.error-state .btn{margin-top:var(--sp-3)}.spinner{border:3px solid #dedce9;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin;display:block}.spinner.small{border-width:2px;width:16px;height:16px}@keyframes spin{to{transform:rotate(360deg)}}.toast{right:var(--sp-6);bottom:var(--sp-6);z-index:var(--z-toast);align-items:center;gap:var(--sp-3);color:#245f4a;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-sm);background:#fff;border:1px solid #cce7dc;max-width:360px;padding:11px 16px;animation:.25s ease-out toast-in;display:flex;position:fixed}.toast>span{background:var(--green-soft);border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;display:grid}.toast.error{color:#943e44;border-color:#efd1d3}.toast.error>span{background:var(--danger-soft)}.qr-note{border:1px solid var(--line);border-radius:var(--radius-md);max-width:168px;color:var(--danger-dark);background:var(--danger-soft);text-align:left;margin:0;padding:6px 8px;font-size:11px;line-height:1.4}.toast-stack{right:var(--sp-6);bottom:calc(var(--sp-6) + 64px);z-index:calc(var(--z-toast) + 1);gap:var(--sp-2);flex-direction:column;max-width:400px;display:flex;position:fixed}.toast-stack .toast{align-items:flex-start;max-width:none;position:static}.toast-stack .toast p{overflow-wrap:anywhere;flex:1;margin:0;line-height:1.45}.toast-close{width:28px;height:28px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;margin:-2px -6px -2px 0;display:grid}.toast-close:hover{background:var(--danger-soft)}.toast-close:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)}}.table-wrap{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--sp-4);border:1px solid #0000;overflow:auto}table{border-collapse:collapse;width:100%;min-width:680px}th{color:var(--subtle);background:var(--paper);text-transform:uppercase;letter-spacing:.88px;text-align:left;white-space:nowrap;padding:13px 16px;font-size:11px;font-weight:600}td{border-top:1px solid var(--line-soft);color:var(--ink-2);font-size:var(--text-base);vertical-align:middle;padding:14px 16px}td>strong,td>small{display:block}td>small{color:#848682;font-size:var(--text-xs);margin-top:3px}.user-cell{align-items:center;gap:var(--sp-2);display:flex}.user-cell strong,.user-cell small{display:block}.user-cell strong{color:var(--ink);font-size:var(--text-sm)}.user-cell small{color:#848682;font-size:var(--text-xs);margin-top:2px}tr:hover td{background:var(--surface-2)}:is(.homikey-team-workspace,.homikey-owner-contracts,.homikey-invoice-workspace) .table-wrap.desktop-only :is(th,td){padding-inline:12px}.homikey-invoice-workspace .table-wrap.desktop-only :is(th,td){padding-inline:10px}.homikey-owner-contracts .table-wrap.desktop-only td{padding-block:16px}.homikey-team-workspace td .action-group,.homikey-owner-contracts td .row-actions,.homikey-invoice-workspace td .row-actions{flex-wrap:nowrap}.homikey-invoice-workspace td .row-actions{gap:4px}.homikey-invoice-workspace td .row-actions .btn.sm{padding-inline:10px}.invoice-code{white-space:nowrap}.contract-term>span{white-space:nowrap;display:block}@media (width>=768px) and (width<=1439px){:is(.homikey-team-workspace,.homikey-owner-contracts,.homikey-invoice-workspace) .table-wrap.desktop-only th{white-space:normal;line-height:1.35}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-pick{flex-wrap:wrap;align-items:center;gap:6px 12px;min-width:0;display:flex}.file-pick>.btn{cursor:pointer;position:relative}.file-pick>.btn:focus-within{outline:2px solid var(--focus-ring,var(--accent));outline-offset:2px}.file-pick>.btn.disabled{cursor:not-allowed}.file-pick input[type=file]{clip:rect(0, 0, 0, 0);opacity:0;border:0;width:1px;height:1px;min-height:0;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-pick-status{min-width:0;color:var(--muted);font-size:var(--text-xs);overflow-wrap:anywhere}.camera-capture-btn{place-self:flex-start start}.upload-zone-camera{justify-self:start}.camera-stage{border-radius:var(--radius-md);background:var(--ink);place-items:center;min-height:220px;display:grid;position:relative;overflow:hidden}.camera-stage.is-error{background:var(--surface-2);border:1px solid var(--line)}.camera-video,.camera-shot{object-fit:contain;background:var(--ink);width:100%;max-height:min(60vh,480px);display:block}.camera-video[hidden]{display:none}.camera-video.is-mirrored{transform:scaleX(-1)}.camera-status{color:#fff;font-size:var(--text-sm,14px);text-align:center;justify-content:center;align-items:center;gap:10px;margin:0;padding:16px;display:flex;position:absolute;inset:0}.camera-status i{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite camera-spin}.camera-problem{color:var(--danger);font-size:var(--text-sm,14px);align-items:flex-start;gap:10px;margin:0;padding:20px;line-height:1.5;display:flex}.camera-problem svg{flex:none;margin-top:2px}.camera-dialog .modal-actions,.camera-dialog .dialog-footer{flex-wrap:wrap}@keyframes camera-spin{to{transform:rotate(360deg)}}@media (width<=767px){.camera-stage{min-height:180px}}@media (prefers-reduced-motion:reduce){.camera-status i{animation:none}}.role-chip,.scope-list span{font-size:var(--text-xs);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);padding:4px 8px;font-weight:600}.scope-list{gap:var(--sp-1);flex-wrap:wrap;display:flex}.scope-list span{color:var(--muted);background:var(--surface-2)}.desktop-only{display:block}.mobile-only{display:none!important}.mobile-card-list{gap:var(--sp-3);flex-direction:column;display:flex}.table-wrap+.table-wrap,.table-wrap+.mobile-card-list{margin-top:var(--sp-4)}.mobile-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--sp-4);box-shadow:var(--shadow-sm);gap:var(--sp-2);background:#fff;flex-direction:column;display:flex}.mobile-card-top{justify-content:space-between;align-items:flex-start;gap:var(--sp-2);display:flex}.mobile-card-body{gap:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--line-soft);font-size:var(--text-sm);grid-template-columns:1fr 1fr;display:grid}.mobile-card-body small{color:var(--muted);font-size:var(--text-xs);display:block}.mobile-card-footer{justify-content:flex-end;align-items:center;gap:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--line-soft);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.state-actions{justify-content:center;gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}@media (width<=767px){.desktop-only{display:none!important}.mobile-only{display:block!important}.mobile-card-list.mobile-only,.mobile-card-list{display:flex!important}.page-heading,.welcome{align-items:flex-start;gap:var(--sp-3);flex-direction:column}.heading-actions{gap:var(--sp-2);width:100%;display:flex}.heading-actions>:is(.heading-actions,.page-header-actions-group,.header-button-group,.notification-header-actions){width:100%}.heading-actions .btn{padding-inline:var(--sp-2);flex:1;min-height:44px}.toolbar{align-items:stretch;gap:var(--sp-3);flex-direction:column}.toolbar>select{flex:none;align-self:stretch;width:100%;min-width:0;max-width:none;min-height:44px;font-size:16px}.search-box{width:100%;min-width:0;min-height:44px}.search-box input{font-size:16px}.segmented{width:100%;padding:4px;overflow-x:auto}.segmented button{min-height:40px;font-size:var(--text-sm);padding:8px 14px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:1}.field :is(input,select,textarea):not(:where(.search-box,.rooms-search-box,.gsearch-box,.floor-item-row,.login-field) *){min-height:44px;font-size:16px}.btn{min-height:44px}.icon-btn{min-width:44px;min-height:44px}.modal-backdrop,.dialog-backdrop{place-items:end center;padding:0}.modal,.dialog{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:92dvh}.modal-header,.dialog-header{padding:16px 18px}:is(.modal-header:has(.modal-header-actions>:not(.icon-btn)),.dialog-header:has(.dialog-header-actions>:not(.icon-btn))){flex-wrap:wrap;align-items:flex-start}:is(.modal-header:has(.modal-header-actions>:not(.icon-btn)) .modal-header-actions,.dialog-header:has(.dialog-header-actions>:not(.icon-btn)) .dialog-header-actions){display:contents}.modal-header:has(.modal-header-actions>:not(.icon-btn)) .modal-header-main{flex:1 1 0;order:1}.modal-header:has(.modal-header-actions>:not(.icon-btn)) .modal-header-actions>.icon-btn{order:2}.modal-header:has(.modal-header-actions>:not(.icon-btn)) .modal-header-actions>:not(.icon-btn){flex:0 0 100%;order:3;min-width:0}.modal-body,.dialog-body{-webkit-overflow-scrolling:touch;padding:16px 18px}.modal-actions,.dialog-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px))}.modal-actions .btn,.dialog-footer .btn{flex:1}.toast{right:var(--sp-4);bottom:calc(var(--sp-5) + env(safe-area-inset-bottom,0px));left:var(--sp-4)}.toast-stack{right:var(--sp-4);left:var(--sp-4);bottom:calc(var(--sp-5) + 64px + env(safe-area-inset-bottom,0px));max-width:none}}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .btn.primary,:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .btn.primary:hover{box-shadow:none}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) :is(.btn,.text-btn,.field,.search-box,.badge,.panel,.table-wrap,.state-box,.empty-state,.form-alert,.segmented){font-family:var(--font-body)}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .btn.secondary{color:var(--ink);background:var(--paper);border-color:var(--control-line)}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .btn.secondary:hover{background:var(--surface);border-color:var(--accent)}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .field>label{color:var(--ink-2)}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .field :is(input,select,textarea):not(:where(.search-box,.rooms-search-box,.gsearch-box,.floor-item-row,.login-field) *){border-color:var(--field-border);background:var(--field-bg)}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .field :is(input,select,textarea):not(:where(.search-box,.rooms-search-box,.gsearch-box,.floor-item-row,.login-field) *):focus{border-color:var(--field-border-focus);box-shadow:var(--field-ring)}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .field :is(input,select,textarea):not(:where(.search-box,.rooms-search-box,.gsearch-box,.floor-item-row,.login-field) *)[aria-invalid=true]{border-color:var(--field-border-invalid)}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .field :is(input,select,textarea):not(:where(.search-box,.rooms-search-box,.gsearch-box,.floor-item-row,.login-field) *)[aria-invalid=true]:focus{box-shadow:var(--field-ring-invalid)}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .field small{color:var(--muted)}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .field .field-error{color:var(--danger)}.theme-homikey .search-box{border-color:var(--field-border);background:var(--field-bg)}.theme-homikey .search-box:hover:not(:focus-within){border-color:var(--field-border-hover)}.theme-homikey .search-box:focus-within{border-color:var(--field-border-focus);box-shadow:var(--field-ring)}.theme-homikey :is(.state-box,.empty-state){border:1px dashed var(--line);background:var(--paper)}.theme-homikey :is(.state-box strong,.empty-state h2){color:var(--ink)}.theme-homikey .spinner{border-color:var(--line);border-top-color:var(--accent)}.theme-homikey .badge.inactive{color:var(--muted)}.theme-homikey .badge.active{color:var(--green-dark)}.theme-homikey .panel-head p{color:var(--muted)}.theme-homikey .table-wrap thead{background:var(--paper)}.theme-homikey .form-alert{color:var(--danger-dark)}body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop .form-alert{color:var(--danger-dark)}body:has(:is(.app-shell,.login-page).theme-homikey) .modal{font-family:var(--font-body);color:var(--ink);background:var(--paper)}body:has(:is(.app-shell,.login-page).theme-homikey) .modal-header h2{font-family:var(--font-heading)}body:has(:is(.app-shell,.login-page).theme-homikey) .modal-header p{color:var(--muted)}body:has(:is(.app-shell,.login-page).theme-homikey) .toast{font-family:var(--font-body);color:var(--green-dark);border-color:var(--green)}body:has(:is(.app-shell,.login-page).theme-homikey) .toast.error{color:var(--danger-dark);border-color:var(--danger)}@media (width<=767px){:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .btn{min-height:44px}}.theme-homikey .segmented{background:var(--paper);box-shadow:inset 0 0 0 1px var(--control-line)}.theme-homikey .segmented button{border-radius:8px}.theme-homikey .segmented button:hover{color:var(--accent-dark);background:var(--accent-soft)}.theme-homikey .segmented .active,.theme-homikey .segmented .active:hover{color:#fff;background:var(--accent);box-shadow:none}.theme-homikey .table-wrap th{background:var(--paper);color:var(--subtle);border-bottom:1px solid var(--line-soft)}.theme-homikey .table-wrap td{color:var(--ink-2);border-top-color:var(--line-soft)}.theme-homikey .table-wrap td>small{color:var(--muted)}.modal-actions>.btn,.dialog-footer>.btn{white-space:nowrap;flex:none;min-width:96px}.modal-actions,.dialog-footer{align-items:center}.btn.btn-nowrap{white-space:nowrap}@media (width<=767px){.modal-actions>.btn,.dialog-footer>.btn{flex:auto}}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .btn.primary:disabled{background:var(--accent);box-shadow:none}:is(.theme-homikey,body:has(:is(.app-shell,.login-page).theme-homikey) .modal-backdrop) .btn.secondary:disabled{background:var(--paper);border-color:var(--line)}.kpi-strip{border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-sm);grid-template-columns:repeat(auto-fill,minmax(clamp(25%,819180px - 99900%,50%),1fr));display:grid;overflow:hidden}.kpi-strip-cell{min-width:0;box-shadow:inset -1px 0 0 var(--line-soft), inset 0 -1px 0 var(--line-soft);color:var(--ink);font:inherit;text-align:left;background:0 0;border:0;border-radius:0;flex-direction:column;align-items:stretch;gap:16px;margin:0;padding:20px 24px;display:flex}.kpi-strip .ks-head{align-items:flex-start;gap:16px;display:flex}.kpi-strip .ks-icon{background:var(--blue-soft);width:40px;height:40px;color:var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.kpi-strip .ks-text{flex-direction:column;gap:8px;min-width:0;display:flex}.kpi-strip .ks-label{color:var(--ink-2);font-size:13px;font-weight:500;line-height:1.3}.kpi-strip .ks-value{color:var(--ink);font:700 24px/1 var(--font-body);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;display:block}.kpi-strip .ks-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.kpi-strip .ks-note{color:var(--subtle);font-size:11px;line-height:1.4}.kpi-strip .ks-chip{white-space:nowrap;border-radius:12px;padding:4px 8px;font-size:11px;font-weight:600}.kpi-strip .ks-chip.good{background:var(--green-soft);color:var(--green-text)}.kpi-strip .ks-chip.muted{background:var(--line-soft);color:var(--muted)}.kpi-strip[data-variant=plain] .kpi-strip-cell{gap:12px}.kpi-strip[data-variant=plain] .ks-label{color:var(--muted);font-size:12px;font-weight:400}.kpi-strip[data-variant=plain] .ks-value{letter-spacing:-.03em;font-weight:600}.kpi-strip[data-variant=plain] .ks-value.is-warn{color:var(--brand-highlight-dark)}.kpi-strip[data-variant=plain] .ks-value em{color:inherit;font:inherit;margin-left:4px}.kpi-strip[data-variant=plain] .kpi-strip-cell.is-featured{background:var(--accent)}.kpi-strip[data-variant=plain] .kpi-strip-cell.is-featured :is(.ks-label,.ks-value,.ks-note){color:var(--paper)}.kpi-strip[data-variant=plain] .kpi-strip-cell.is-featured .ks-note{opacity:.8}.kpi-strip[data-variant=plain] .ks-value.is-good{color:var(--green-text)}.kpi-strip[data-variant=plain] .ks-note.is-good{color:var(--green-text);font-weight:600}.kpi-strip[data-variant=plain] .ks-note.is-warn{color:var(--brand-highlight-dark);font-weight:600}.kpi-strip[data-variant=dot] .kpi-strip-cell{align-items:flex-start;gap:12px}.kpi-strip .ks-dot-label{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.kpi-strip .ks-dot{background:var(--subtle);border-radius:50%;width:6px;height:6px}.kpi-strip .ks-dot.navy{background:var(--accent)}.kpi-strip .ks-dot.green{background:var(--green)}.kpi-strip .ks-dot.amber{background:var(--orange-dot)}.kpi-strip .ks-dot.ink{background:var(--ink)}.kpi-strip .ks-dot.orange{background:var(--brand-highlight)}.kpi-strip .ks-dot.red{background:var(--danger-dark)}.kpi-strip .ks-dot.grey{background:var(--scroll-hover)}.kpi-strip .kpi-strip-cell.is-wide{grid-column:span 2}.kpi-strip .kpi-strip-cell.is-button{cursor:pointer;transition:background .15s}.kpi-strip .kpi-strip-cell.is-button:hover{background:var(--surface-2)}.kpi-strip .kpi-strip-cell.is-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-3px}.kpi-strip .kpi-strip-cell.is-button.active{background:var(--surface-2);box-shadow:inset -1px 0 0 var(--line-soft), inset 0 -3px 0 var(--accent)}@media (width<=767px){.kpi-strip[data-variant=icon],.kpi-strip[data-variant=plain]{grid-template-columns:minmax(0,1fr)}.kpi-strip[data-variant=icon] .kpi-strip-cell.is-wide,.kpi-strip[data-variant=plain] .kpi-strip-cell.is-wide{grid-column:auto}.kpi-strip[data-variant=dot]{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-strip-cell{padding:16px 20px}.kpi-strip[data-variant=dot] .kpi-strip-cell{padding:16px}}.filter-pop{flex:none;position:relative}.filter-pop-trigger{border-radius:var(--radius);background:var(--paper);height:40px;box-shadow:inset 0 0 0 1px var(--control-line);color:var(--ink);font:600 13px/1 var(--font-body);cursor:pointer;border:0;align-items:center;gap:8px;padding:0 14px;transition:background .15s,box-shadow .15s;display:inline-flex}.filter-pop-trigger:hover{background:var(--surface-2)}.filter-pop-trigger.is-set,.filter-pop-trigger[aria-expanded=true]{box-shadow:inset 0 0 0 1px var(--accent)}.filter-pop-trigger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.filter-pop-count{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.filter-pop-panel{z-index:var(--z-dropdown);border-radius:var(--radius-lg);background:var(--paper);width:min(380px,100vw - 32px);box-shadow:var(--shadow-lg);gap:14px;padding:16px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.filter-pop-field{color:var(--muted);gap:6px;font-size:12px;font-weight:500;display:grid}.filter-pop-field select,.filter-pop-field input{width:100%;min-height:40px}.filter-pop-field select{border:1px solid var(--field-border);border-radius:var(--radius);background-color:var(--field-bg);color:var(--ink);font:500 13px/1 var(--font-body);padding:0 12px}.filter-pop-group{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.filter-pop-group>legend,.filter-pop-group>.filter-pop-title{color:var(--muted);padding:0;font-size:12px;font-weight:500}.filter-pop-chips{flex-wrap:wrap;gap:6px;display:flex}.filter-pop-reset{color:var(--accent);font:600 13px/1.3 var(--font-body);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0}.filter-pop-reset:hover{text-decoration:underline}@media (width<=767px){.filter-pop-trigger{min-height:44px}.filter-pop-panel{left:0;right:auto}}.admin-table{margin-bottom:var(--sp-3);overflow:hidden}.panel.admin-table .table-wrap{box-shadow:none;border:0;border-radius:0;margin:0}.admin-table table{width:100%}.panel.admin-table .table-wrap th{background:var(--surface-2);color:var(--muted);letter-spacing:.06em;border-bottom:1px solid var(--line-soft);padding:12px 16px;font-size:11px;font-weight:600}.panel.admin-table .table-wrap td{vertical-align:middle;border-top:1px solid var(--line-soft);height:58px;color:var(--ink-2);font-size:var(--text-base);padding:8px 16px}@media (width>=768px){.panel.admin-table .table-wrap :is(th,td):first-child{padding-left:24px}.panel.admin-table .table-wrap :is(th,td):last-child{padding-right:24px}}.admin-table td>strong{color:var(--ink);font-size:var(--text-base);font-weight:600;display:block}.admin-table td>small,.sub-table td>small{color:var(--muted);font-size:var(--text-xs);overflow-wrap:anywhere;margin-top:2px;display:block}.admin-table tbody tr:hover td{background:var(--surface-2)}.panel.admin-table .table-wrap td .badge{color:var(--ink-2);font-size:var(--text-xs);background:0 0;border-radius:0;gap:8px;padding:0;font-weight:600}.panel.admin-table .table-wrap td .badge i{background:var(--subtle);width:6px;height:6px}.panel.admin-table .table-wrap td .badge.active i{background:var(--green)}.panel.admin-table .table-wrap td .badge.conflict i{background:var(--orange-dot)}.panel.admin-table .table-wrap td .badge.danger i{background:var(--danger)}.panel.admin-table .table-wrap td .badge.room-occupied i{background:var(--accent)}.panel.admin-table .table-wrap td .badge.inactive i{background:var(--scroll-hover)}.admin-table :is(td,th).num{text-align:right}.panel.admin-table>.platform-section-heading{padding:18px 16px 14px}.panel.admin-table>.platform-section-heading>div{min-width:0}.panel.admin-table>.platform-section-heading>span{white-space:nowrap;max-width:100%}@media (width>=768px){.panel.admin-table>.platform-section-heading{padding:20px 24px 16px}.admin-table td>.usage-bar{max-width:min(100%,220px)}}.admin-table td.admin-action-cell{text-align:right}.admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (width>=768px){.admin-table td:is([data-label=Hóa\ đơn],[data-label=Tổng\ cộng],[data-label=Số\ tiền])>strong,.admin-table td[data-label=Thời\ gian]>time{white-space:nowrap}}@media (width<=767px){.admin-table tr.audit-row-open{grid-auto-flow:dense}.admin-table tr.audit-row-open>td[data-label=Hành\ động]{grid-column:1/-1}.admin-table table,.admin-table tbody,.sub-table,.sub-table tbody{min-width:0;display:block}.admin-table thead,.sub-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.admin-table tr,.sub-table tr{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;display:grid}.panel.admin-table .table-wrap td,.sub-table td{white-space:normal;text-align:left;border:0;min-width:0;height:auto;padding:0;display:block}.admin-table td:before,.sub-table td:before{content:attr(data-label);color:var(--muted);margin-bottom:4px;font-size:10px;display:block}.admin-table td:first-child,.sub-table td:first-child{grid-column:1/-1}.admin-table td:first-child:before,.sub-table td:first-child:before{display:none}.admin-table td.admin-action-cell,.sub-table td.admin-action-cell{grid-column:1/-1}.admin-table td.admin-action-cell:before,.sub-table td.admin-action-cell:before{display:none}.admin-table td:last-child:nth-child(2n),.sub-table td:last-child:nth-child(2n){grid-column:1/-1}.admin-actions{justify-content:flex-start}.admin-actions .btn,.sub-table td .btn{min-height:44px}}.btn:not(:disabled,[aria-disabled=true]):active{transition-duration:50ms;transform:translateY(1px)scale(.97)}.btn.primary:not(:disabled,[aria-disabled=true]):active{background:color-mix(in srgb, var(--accent-dark) 82%, black);box-shadow:inset 0 2px 4px #00000040}.btn.danger:not(:disabled,[aria-disabled=true]):active{background:color-mix(in srgb, var(--danger-dark) 82%, black);box-shadow:inset 0 2px 4px #00000040}.btn.secondary:not(:disabled,[aria-disabled=true]):active{background:var(--surface);border-color:var(--accent);box-shadow:inset 0 2px 3px #0000001f}.btn.ghost:not(:disabled,[aria-disabled=true]):active{background:var(--surface);color:var(--ink)}.btn:disabled,.btn[aria-disabled=true]{box-shadow:none;cursor:not-allowed;transform:none}.btn.primary:disabled,.btn.danger:disabled{filter:grayscale(.55)}.btn[aria-busy=true]:disabled{filter:none;cursor:progress}@media (prefers-reduced-motion:reduce){.btn:not(:disabled,[aria-disabled=true]):active{transform:none}}.row-action-bar{justify-content:flex-end;align-items:center;gap:var(--sp-2);vertical-align:middle;flex-wrap:nowrap;max-width:100%;display:inline-flex}.row-action-bar>.btn.sm{white-space:nowrap;flex:0 auto}.row-action-bar>.action-menu-trigger{min-height:36px;flex:none!important;width:36px!important}.row-action-bar.fill{width:100%;display:flex}.row-action-bar.fill>.btn.sm{flex:auto}td .row-action-bar,.admin-actions .row-action-bar{margin-inline-start:auto}@media (width<=767px){.row-action-bar{justify-content:flex-start;width:100%;display:flex}.row-action-bar>.btn.sm{flex:auto;min-height:44px}.row-action-bar>.action-menu-trigger{min-height:44px;width:44px!important}}.login-form h2{letter-spacing:-.8px;margin:10px 0 7px;font-size:28px}.login-form>p{color:#8f918c;font-size:var(--text-sm);margin-bottom:28px}.login-form .field{margin-top:16px}.password-field{display:block;position:relative}.password-field>input{padding-right:48px}.password-field>button{border-radius:var(--radius-sm,6px);width:32px;height:32px;min-height:0;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-field>button:hover{background:var(--surface-2);color:var(--ink)}.password-field>button:focus-visible{outline:2px solid var(--focus-ring,var(--accent));outline-offset:0}.form-between{justify-content:space-between;align-items:center;margin:18px 0;display:flex}.check-label{color:#71736e;font-size:var(--text-sm);gap:var(--sp-2);align-items:center;display:flex}.check-label input{accent-color:var(--accent)}.link-button{color:var(--accent);font-size:var(--text-sm);background:0 0;border:0;padding:0;font-weight:600;transition:color .15s}.link-button:hover{color:var(--accent-dark)}.login-button{width:100%;min-height:44px;font-size:var(--text-base)}.mobile-logo{align-items:center;gap:var(--sp-2);font:700 18px/1 var(--font-heading);color:var(--ink);margin-bottom:var(--sp-10);display:none}.login-page.theme-homikey{color:var(--ink);font-family:var(--font-body)}.login-page.theme-homikey .field input{background:var(--paper);min-height:46px}.login-page.theme-homikey .check-label{color:var(--ink-2);font-size:12px}.login-page.theme-homikey .login-button{min-height:48px;box-shadow:var(--shadow-md)}body:has(.login-page.theme-homikey) .modal-backdrop{font-family:var(--font-body)}.login-recovery-form .modal-body>*{grid-column:1/-1;min-width:0}body:has(.login-page.theme-homikey) .modal-header h2{font:400 24px/1.4 var(--font-display)}.login-recovery-actions .btn{white-space:normal;min-height:44px;line-height:1.5}body:has(.login-page.theme-homikey) .callout{border:1px solid var(--line);border-radius:var(--radius);background:var(--accent-softer);color:var(--ink-2);gap:10px;padding:14px;line-height:1.6;display:flex}body:has(.login-page.theme-homikey) .callout-danger{background:var(--danger-soft);color:var(--danger-dark)}body:has(.login-page.theme-homikey) .callout-warning{background:var(--orange-soft);color:var(--orange-dark)}.login-page.theme-homikey .login-form .field>label,.login-page.theme-homikey .login-form label.field>span:not(.login-field-icon):not(.password-field):not(.sr-only){color:var(--ink);font-size:12px;font-weight:500}.login-page.theme-homikey .field input{border-color:var(--field-border);min-height:44px}.login-page.theme-homikey .field input[type=checkbox]{min-height:0}.login-page.theme-homikey .password-field button{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--muted);place-items:center;padding:0;display:grid;right:6px}.login-page.theme-homikey .password-field button:hover{color:var(--ink);background:var(--surface-2)}.login-page.theme-homikey .password-field button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:0}.login-page.theme-homikey .login-form .auth-submit{min-height:44px;margin-top:18px}.login-form .auth-step-links .link-button{color:var(--accent);font-weight:500}.login-page.theme-homikey{isolation:isolate;color:#1c2835;background:linear-gradient(119.488deg,#f6f7f8 0%,#e7f0f6 50%,#f1f6fa 100%);flex-direction:column;gap:14px;min-height:100vh;padding:29px 44px 28px 54px;display:flex;position:relative;overflow:hidden}.login-bg{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.login-bg>span,.login-bg>svg{display:block;position:absolute}.login-bg-city{background:url(/assets/login-city-DPblcey4.webp) 50%/cover no-repeat;inset:0}.login-bg-residence{background:url(/assets/login-residence-CLpEAZQ1.webp) 50%/cover no-repeat;width:55%;top:0;bottom:0;right:0;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 38%);mask-image:linear-gradient(90deg,#0000 0%,#000 38%)}.login-bg-veil{background:linear-gradient(90deg,#fafbfce6 0%,#fafbfcc7 52%,#fafbfc4d 80%,#fafbfc00 100%);width:51%;top:0;bottom:0;left:0}.login-bg-orb{background:#eaf5ffcc;border-radius:50%;width:400px;height:280px;top:-160px;right:-120px}.login-bg-wave{width:100%;height:27%;bottom:0;left:0}.login-bg-wave path{fill:#f8fafccc}.login-top{z-index:1;justify-content:space-between;align-items:center;gap:16px;display:flex;position:relative}.login-brand{font:700 24px/1 var(--font-body);letter-spacing:-.02em;color:#1c2835;align-items:center;gap:10.8px;display:flex}.login-brand .brand-logo{flex:none;display:flex}.login-lang{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#0f2d50;height:34px;font:400 12px/1 var(--font-body);background:#ffffff8c;border-radius:10px;align-items:center;gap:10px;padding:0 10px;display:flex;position:relative}.login-lang b{flex:none;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.login-lang span{padding-right:16px}.login-lang i{border-bottom:1.2px solid #0f2d50;border-right:1.2px solid #0f2d50;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;right:12px;transform:rotate(45deg)}.login-body{z-index:1;flex:1;justify-content:space-between;align-items:stretch;gap:32px;min-height:0;display:flex;position:relative}.login-visual{color:#1c2835;background:0 0;flex-direction:column;flex:440px;justify-content:space-between;gap:32px;min-width:0;max-width:720px;display:flex}.login-copy{flex-direction:column;gap:9px;max-width:488px;padding:24px 24px 0 0;display:flex}.login-copy h1{font-family:var(--font-login-display);letter-spacing:-1.2px;color:#1c2835;margin:0;font-size:clamp(38px,3.9vw,50px);font-weight:700;line-height:1.1}.login-copy h1 em{letter-spacing:-1px;margin-top:9px;font-size:clamp(34px,3.4vw,44px);font-style:italic;font-weight:400;line-height:1.12;display:block}.login-copy>p{color:#1c2835;max-width:332px;margin:0;padding:14px 0;font-size:13px;line-height:1.55}.login-foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 40px;padding-left:14px;display:flex}.login-benefits{flex-wrap:wrap;gap:17px;margin:0;padding:0;list-style:none;display:flex}.login-benefits li{flex-direction:column;align-items:flex-start;gap:8px;width:113px;display:flex}.login-benefits li>span{color:#0f2d50;background:#ffffffeb;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 6px 18px -8px #0f2d5059}.login-benefits strong{color:#0f2d50;font-size:14px;font-weight:700}.login-benefits small{color:#47617b;font-size:12px;line-height:1.4}.login-hand{flex-direction:column;align-items:center;gap:3px;margin-bottom:10px;display:flex;transform:rotate(-12deg)}.login-hand>span{font-family:var(--font-login-hand);text-align:center;color:#0f2d50;font-size:29px;line-height:1.06}.login-hand path{fill:none;stroke:#f97316;stroke-width:1.6px;stroke-linecap:round}.login-form-wrap{background:0 0;flex:0 434px;align-items:center;min-width:min(100%,340px);padding:0;display:flex}.auth-flow-page .login-form-wrap{flex-basis:520px}.auth-flow-page .login-form-wrap:has(.auth-card-wide){flex-basis:640px}.login-page.theme-homikey .login-form{isolation:isolate;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffc;border:0;border-radius:24px;width:100%;padding:45px 40px 38px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #ffffffc9,0 8px 26px #45668016}.login-page.theme-homikey .login-form:before{content:"";z-index:-1;pointer-events:none;background:#d4ecfb54;border-radius:50%;width:170px;height:220px;position:absolute;top:80px;right:-74px}.login-page.theme-homikey .login-form:not(.auth-flow-card){flex-direction:column;gap:17px;display:flex}.login-page.theme-homikey .login-form:not(.auth-flow-card)>*{margin-top:0;margin-bottom:0}.login-card-head{flex-direction:column;gap:7px;padding:0 24px 11px;display:flex}.login-page.theme-homikey .login-form h2{font-family:var(--font-login-display);letter-spacing:0;color:#061e36;margin:0;font-size:38px;font-weight:700;line-height:1.15}.login-card-head p,.login-page.theme-homikey .login-form:not(.auth-flow-card)>p{color:#0f2d50;margin:0;font-size:13px;line-height:1.4}.login-page.theme-homikey .login-form:not(.auth-flow-card)>p{color:#47617b;line-height:1.55}.login-page.theme-homikey .login-form.auth-flow-card{padding:36px 32px 30px}.login-page.theme-homikey .login-form.auth-flow-card h2{margin:6px 0 8px;font-size:32px;line-height:1.2}.login-page.theme-homikey .login-form.auth-flow-card>p{color:var(--muted);margin:0 0 20px}.auth-tabs{border-bottom:1px solid #e5ecf2;gap:20px;margin:0;padding:0 20px;display:flex}.auth-tabs button{color:#7890ab;font:500 11px/1.3 var(--font-body);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 0 12px}.auth-tabs button:hover{color:#0f2d50}.auth-tabs button.active{color:#0f2d50;border-bottom-color:#f97316;font-weight:700}.login-page.theme-homikey .login-form .login-field{background:#ffffffd9;border-radius:12px;align-items:center;gap:12px;height:43px;padding:0 16px;transition:box-shadow .18s;display:flex;position:relative;box-shadow:inset 0 0 0 1px #e5ecf2}.login-page.theme-homikey .login-form .login-field:has(.password-field){padding-right:14px}.login-field-icon{color:#47617b;pointer-events:none;flex:none;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:static}main.login-page.theme-homikey .login-form .login-field input,main.login-page.theme-homikey .login-form .login-field input:is(:hover,:focus,:focus-visible,:disabled,[aria-invalid]),main.login-page.theme-homikey .login-form .login-field input:is([aria-invalid],:disabled):is(:hover,:focus,:focus-visible){width:auto;min-width:0;height:100%;min-height:0;box-shadow:none;color:#0f2d50;font:400 13px/1.2 var(--font-body);background:0 0;border:0;border-radius:0;outline:0;flex:1;padding:0}.login-form .login-field input::placeholder{color:#91a3ba;opacity:1}.login-page.theme-homikey .login-form .login-field:hover:not(:has(input:is(:focus,:disabled,[aria-invalid=true]))){box-shadow:inset 0 0 0 1px #b7c8d6}.login-page.theme-homikey .login-form .login-field:has(input:focus-visible){outline-offset:2px;outline:2px solid #e07d54}.login-page.theme-homikey .login-form .login-field:has(input:disabled){opacity:.65;cursor:not-allowed}.login-page.theme-homikey .login-form .login-field:has(input[aria-invalid=true]){box-shadow:inset 0 0 0 1px #d14343,0 0 0 3px #d143431f}.login-page.theme-homikey .login-form .login-field:has(input[aria-invalid=true]:focus-visible){outline:0}.login-page.theme-homikey .login-form .login-field .password-field{flex:1;align-items:center;gap:8px;min-width:0;display:flex}main.login-page.theme-homikey .login-form .login-field .password-field input{padding:0}.login-page.theme-homikey .login-form .login-field .password-field button{color:#0f2d50;cursor:pointer;background:0 0;border-radius:8px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex;position:static;transform:none}.login-page.theme-homikey .login-form .login-field .password-field button:hover{color:#0f2d50;background:#0f2d5012}.login-page.theme-homikey .login-form .login-field .password-field button:focus-visible{outline-offset:2px;outline:2px solid #e07d54}.login-page.theme-homikey .form-between{gap:12px;margin:0}.login-remember{cursor:pointer;color:#0f2d50;gap:8px;font-size:12px;position:relative}.login-page.theme-homikey .login-remember{color:#0f2d50;font-size:12px}.login-remember input{opacity:0;cursor:pointer;width:20px;height:20px;margin:-10px 0 0;position:absolute;top:50%;left:0}.login-check-box{background:#fff;border-radius:5px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;transition:background-color .18s,box-shadow .18s;display:flex;box-shadow:inset 0 0 0 1.5px #b7c8d6}.login-check-box svg{opacity:0}.login-check-box path{fill:none;stroke:#fff;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.login-remember input:checked+.login-check-box{background:#0f2d50;box-shadow:inset 0 0 0 1.5px #0f2d50}.login-remember input:checked+.login-check-box svg{opacity:1}.login-remember input:focus-visible+.login-check-box{outline-offset:2px;outline:2px solid #e07d54}.login-page.theme-homikey .login-forgot{color:#0050af;font-size:12px;font-weight:400}.login-page.theme-homikey .login-forgot:hover{color:#e07d54}.login-page.theme-homikey .link-button:focus-visible{outline-offset:2px;border-radius:8px;outline:2px solid #e07d54}main.login-page.theme-homikey .login-form button.login-button.btn.primary{color:#fff;width:100%;height:50px;min-height:50px;font:600 15px/1 var(--font-body);cursor:pointer;background:linear-gradient(98deg,#153b5c 0%,#07304b 100%);border:0;border-radius:15px;justify-content:center;align-items:center;gap:10px;padding:0 48px;transition:background .18s,box-shadow .18s,opacity .18s;display:flex;position:relative;box-shadow:0 10px 22px -12px #07304bcc}main.login-page.theme-homikey .login-form button.login-button.btn.primary:hover:not(:disabled),main.login-page.theme-homikey .login-form button.login-button.btn.primary:active:not(:disabled){background:linear-gradient(98deg,#1e4d75 0%,#0b3d5e 100%);box-shadow:0 10px 22px -12px #07304bcc}main.login-page.theme-homikey .login-form button.login-button.btn.primary:disabled{opacity:.7;cursor:not-allowed}main.login-page.theme-homikey .login-form button.login-button.btn.primary:focus-visible{outline-offset:2px;outline:2px solid #e07d54}.login-button .spinner{border:2px solid #ffffff59;border-top-color:#fff;width:16px;height:16px}.login-button-arrow{flex:none;margin-top:-7px;position:absolute;top:50%;right:16px}.login-button-arrow path{fill:none;stroke:#fff;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.login-page.theme-homikey .login-form>p.login-signup-line{text-align:center;color:#0f2d50;margin:8px 0 0;font-size:13px;line-height:1.4}.login-signup-line .link-button{color:#f97316;font-size:13px;font-weight:600}.login-signup-line .link-button:hover{color:#e07d54;text-decoration:underline}.login-page.theme-homikey .login-form .form-alert{border-radius:12px;min-height:0;font-size:13px}@media (width<=1279px){.login-page.theme-homikey{padding:28px 32px 28px 40px}.login-body{gap:24px}.login-copy{padding-right:0}}@media (width<=1023px){.login-page.theme-homikey{padding:24px 24px 24px 32px}.login-foot{gap:20px;padding-left:0}.login-benefits{gap:12px}.login-benefits li{width:104px}.login-page.theme-homikey .login-form:not(.auth-flow-card){padding:40px 28px 32px}.login-card-head{padding:0 8px 11px}}@media (width<=900px){.login-page.theme-homikey{padding:0;display:block}.login-top,.login-visual,.login-bg-veil,.login-bg-orb{display:none}.login-bg-residence{opacity:.3;width:100%;-webkit-mask-image:none;mask-image:none}.login-body{min-height:100vh;display:block}.login-form-wrap{justify-content:center;min-width:0;min-height:100vh;padding:32px 16px}.login-page.theme-homikey .login-form:not(.auth-flow-card),.login-page.theme-homikey .login-form.auth-flow-card{padding:32px 24px 28px}.login-page.theme-homikey .mobile-logo{margin-bottom:4px;display:flex}.login-page.theme-homikey .login-form.auth-flow-card .mobile-logo{margin-bottom:20px}.login-page.theme-homikey .login-form h2{font-size:32px}.login-card-head{padding:0 0 7px}.auth-tabs{padding:0}.auth-tabs button{min-height:44px;padding-bottom:8px}.login-page.theme-homikey .form-between{flex-wrap:wrap}}@media (width<=400px){.login-form-wrap{padding:24px 12px}.login-page.theme-homikey .login-form:not(.auth-flow-card),.login-page.theme-homikey .login-form.auth-flow-card{padding:28px 18px 22px}.login-page.theme-homikey .login-form h2{font-size:28px}}.login-passkey{gap:10px;margin:0;display:grid}.login-page.theme-homikey .login-passkey-or{color:#47617b;align-items:center;gap:12px;margin:0;font-size:12px;display:flex}.login-passkey-or:before,.login-passkey-or:after{content:"";background:#0f2d5024;flex:1;height:1px}.login-page.theme-homikey .login-passkey-button{color:#0f2d50;width:100%;height:46px;font:600 14px/1 var(--font-body);cursor:pointer;background:#fff;border:0;border-radius:15px;justify-content:center;align-items:center;gap:8px;padding:0 16px;transition:box-shadow .18s,background .18s;display:flex;box-shadow:inset 0 0 0 1.5px #b7c8d6}.login-page.theme-homikey .login-passkey-button:hover:not(:disabled){background:#0f2d500a;box-shadow:inset 0 0 0 1.5px #0f2d50}.login-page.theme-homikey .login-passkey-button:disabled{opacity:.7;cursor:not-allowed}.login-page.theme-homikey .login-passkey-button:focus-visible{outline-offset:2px;outline:2px solid #e07d54}.login-passkey-button .spinner{border:2px solid #0f2d5040;border-top-color:#0f2d50;width:16px;height:16px}.login-form .login-field-error{margin:6px 0 -8px 4px;display:block}.login-page.theme-homikey .login-form.auth-flow-card{width:min(520px,100%)}.login-page.theme-homikey .login-form.auth-flow-card h2{font-size:32px}.login-form.auth-flow-card .form-alert{margin:0 0 4px}.login-form .field input.auth-code-input{letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums;min-height:56px;padding:8px 12px 8px calc(12px + .5em);font-size:26px;font-weight:600}.login-form .field input.auth-code-input::placeholder{color:var(--control-line)}.login-form .field input.auth-recovery-input{min-height:52px;font-size:var(--text-lg);letter-spacing:.12em;text-transform:uppercase;font-weight:600}.login-form .field input.auth-recovery-input::placeholder{letter-spacing:normal;text-transform:none;font-weight:400}.auth-submit,.auth-actions{margin-top:20px}.auth-actions .auth-submit{margin-top:0}.auth-confirm{margin-top:16px}.auth-step-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:20px;display:flex}.auth-step-links .link-button{min-height:36px}.auth-step-links .link-button:disabled{opacity:.5;cursor:not-allowed}.auth-signed-in{color:var(--muted);font-size:var(--text-xs);overflow-wrap:anywhere}.auth-steps{flex-wrap:wrap;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:flex}.auth-steps li{border:1px solid var(--line);border-radius:var(--radius-full);background:var(--paper);color:var(--muted);font-size:var(--text-xs);align-items:center;gap:8px;padding:4px 12px 4px 4px;font-weight:600;display:inline-flex}.auth-steps li>span{background:var(--surface);width:22px;height:22px;color:var(--muted);border-radius:50%;place-items:center;font-size:11px;display:grid}.auth-steps li.current{color:var(--accent-dark);border-color:var(--accent);background:var(--accent-soft)}.auth-steps li.current>span{background:var(--accent);color:var(--paper)}.auth-steps li.done{color:var(--green-dark)}.auth-steps li.done>span{background:var(--green-soft);color:var(--green-dark)}.auth-section-title{font-size:var(--text-md);margin:4px 0 6px}.auth-hint{color:var(--muted);font-size:var(--text-sm);margin:0 0 14px;line-height:1.6}.auth-note{border:1px solid var(--line);border-radius:var(--radius);background:var(--accent-softer);color:var(--ink-2);font-size:var(--text-sm);gap:10px;padding:14px;line-height:1.6;display:flex}.auth-note>.icon{color:var(--accent);flex:none;margin-top:2px}.auth-note.warning{background:var(--orange-soft);color:var(--orange-dark);border-color:#0000}.auth-note.warning>.icon{color:var(--orange-dark)}.auth-qr{flex-wrap:wrap;align-items:center;gap:16px;margin:0 0 12px;display:flex}.auth-qr-code{border:1px solid var(--line);border-radius:var(--radius);background:#fff;flex:none}.auth-qr .auth-hint{flex:1;min-width:200px;margin:0}.auth-secret{border:1px dashed var(--control-line);border-radius:var(--radius);background:var(--surface-2);gap:10px;margin:0 0 4px;padding:14px;display:grid}.auth-secret>small{color:var(--muted);font-size:var(--text-xs);overflow-wrap:anywhere}.auth-secret>code{letter-spacing:.08em;color:var(--ink);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font:600 18px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.auth-secret-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.auth-manual{margin:0 0 12px}.auth-manual summary{cursor:pointer;color:var(--muted);font-size:var(--text-sm);align-items:center;min-height:32px;font-weight:600;display:flex}.auth-manual[open] summary{margin-bottom:8px}.auth-secret-actions .btn{text-decoration:none}.auth-uri{gap:8px;display:grid}.auth-uri code{border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--line);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;padding:8px 10px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.auth-uri .btn{justify-self:start}.auth-recovery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0 12px;padding:0;list-style:none;display:grid}.auth-recovery-grid li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);text-align:center;padding:9px 10px}.auth-recovery-grid code{letter-spacing:.06em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font:600 14px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.account-contexts{border-bottom:1px solid var(--line);gap:2px;padding:10px 0 8px;display:grid}.account-contexts-title{color:var(--muted);letter-spacing:.4px;text-transform:uppercase;margin:0;padding:0 10px 6px;font-size:11px;font-weight:700}.account-context-option{border-radius:var(--radius);width:100%;min-height:48px;color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;display:flex}.account-context-option:hover:not(:disabled){background:var(--surface-2)}.account-context-option.active{background:var(--accent-soft)}.account-context-option:disabled:not(.active){opacity:.55;cursor:not-allowed}.account-context-option.locked{cursor:not-allowed}.account-context-option.locked:hover{background:0 0}.account-context-option.locked .account-context-icon{color:var(--muted)}.account-context-icon{background:var(--surface);width:32px;height:32px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.account-context-option.active .account-context-icon{background:var(--paper)}.account-context-text{flex:1;gap:2px;min-width:0;display:grid}.account-context-text strong{font-size:var(--text-sm);overflow-wrap:anywhere}.account-context-text small{color:var(--muted);font-size:var(--text-xs)}.account-context-option>.icon{color:var(--accent);flex:none}.account-context-error{color:var(--danger);font-size:var(--text-xs);margin:6px 10px 0;line-height:1.5}@media (width<=480px){.auth-recovery-grid{grid-template-columns:1fr}.login-form .field input.auth-code-input{font-size:24px}}.auth-flow-card h2:focus{outline:none}.login-page.theme-homikey .login-form.auth-flow-card.auth-card-wide{width:min(640px,100%)}.login-form .field small.auth-hint{color:var(--muted);font-size:var(--text-xs);margin:4px 0 0;line-height:1.5;display:block}.login-form .callout-success{background:var(--green-soft);color:var(--green-dark);border-color:#0000}.login-form .callout-success+.callout-success{margin-top:8px}.login-form .auth-note{margin-top:12px}.login-form .auth-actions{gap:8px;display:grid}.login-form .auth-actions .btn{justify-content:center;width:100%}.login-alt-links{flex-direction:column;justify-content:center;align-items:center;gap:2px;margin-top:16px}.invite-summary{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);gap:0;margin:16px 0 4px;padding:4px 14px;display:grid}.invite-summary>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(96px,120px) minmax(0,1fr);gap:12px;padding:9px 0;display:grid}.invite-summary>div:last-child{border-bottom:0}.invite-summary dt{color:var(--muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.3px;align-self:center;font-weight:600}.invite-summary dd{font-size:var(--text-sm);overflow-wrap:anywhere;margin:0;font-weight:600}.auth-segment{border:1px solid var(--line);border-radius:var(--radius-full);background:var(--surface);gap:2px;margin-top:16px;padding:3px;display:inline-flex}.auth-segment button{border-radius:var(--radius-full);min-height:32px;color:var(--muted);font-size:var(--text-sm);background:0 0;border:0;padding:4px 14px;font-weight:600}.auth-segment button.active{background:var(--paper);color:var(--accent-dark);box-shadow:var(--shadow-sm,0 1px 2px #0000001f)}.auth-section{border-top:1px solid var(--line);gap:4px;margin-top:22px;padding-top:20px;display:grid}.auth-section .auth-section-title{font-size:var(--text-md);margin:0 0 2px}.auth-section .auth-hint{margin:0 0 8px}.auth-section .btn{justify-self:start;margin-top:10px}.auth-block{gap:10px;display:grid}.auth-block .btn{justify-self:start}.invite-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.invite-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 14px;display:flex}.invite-item-text{flex:220px;gap:2px;min-width:0;display:grid}.invite-item-text strong{font-size:var(--text-sm);overflow-wrap:anywhere}.invite-item-text small{color:var(--muted);font-size:var(--text-xs)}.invite-item-actions{flex-wrap:wrap;gap:8px;display:flex}.invite-item-actions .btn{width:auto;margin:0}.invite-item-actions .row-action-bar>.action-menu-trigger{flex:none;width:36px}.invite-item-blocked{color:var(--muted);font-size:var(--text-xs);flex:100%;line-height:1.5}.tenant-app-section{gap:10px;display:grid}.tenant-app-section .section-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.tenant-app-help{color:var(--muted);font-size:var(--text-sm);margin:0;line-height:1.6}.tenant-app-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tenant-app-reason{color:var(--muted);font-size:var(--text-xs)}.tenant-app-history summary{cursor:pointer;color:var(--muted);font-size:var(--text-xs);font-weight:600}.tenant-app-history ul{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.tenant-app-history li{border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--text-xs);gap:1px;padding:8px 10px;display:grid}.tenant-app-history li span{color:var(--muted)}.tenant-app-section .callout{border-radius:var(--radius);font-size:var(--text-sm);gap:10px;padding:10px 12px;display:flex}.tenant-app-section .callout-success{background:var(--green-soft);color:var(--green-dark)}@media (width<=480px){.invite-summary>div{grid-template-columns:1fr;gap:2px}.invite-item-actions{width:100%}.invite-item-actions .btn{flex:1}.invite-item-actions .row-action-bar>.action-menu-trigger{flex:none;width:44px}}select:not([multiple]):is(:not([size]),[size="1"]){appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20fill='none'%3e%3cpath%20d='m4%206%204%204%204-4'%20stroke='%2366717d'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e")!important;background-repeat:no-repeat!important;background-position:right var(--select-chevron-inset) center!important;background-size:var(--select-chevron-size) var(--select-chevron-size)!important;padding-inline-end:var(--select-chevron-space)!important}select:disabled{cursor:not-allowed}@media (forced-colors:active){select:not([multiple]):is(:not([size]),[size="1"]){appearance:auto;background-image:none!important}}:is(.state-box,.empty-state).state-card{border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-sm);border:0;gap:12px;padding:32px 24px}.state-card.state-card>.state-card-icon{width:64px;height:64px;color:var(--muted);background:var(--line-soft);border-radius:20px;place-items:center;display:grid}.state-card.state-card.tone-neutral>.state-card-icon{color:var(--muted);background:var(--line-soft)}.state-card.state-card.tone-danger>.state-card-icon{color:var(--danger-dark);background:var(--danger-soft)}.state-card.state-card.tone-warning>.state-card-icon{color:var(--orange-dark);background:var(--orange-soft)}.state-card.state-card.tone-info>.state-card-icon{color:var(--accent);background:var(--blue-soft)}.state-card.state-card>.state-card-icon.is-numeral{width:auto;min-width:64px;height:auto;font:400 40px/1.1 var(--font-display);background:0 0;border-radius:0;padding:0 8px}.state-card.state-card.tone-info>.state-card-icon.is-numeral{color:var(--accent)}.state-card.state-card.tone-danger>.state-card-icon.is-numeral{color:var(--danger-dark)}.state-card.state-card>.state-card-title{max-width:460px;color:var(--ink);font:700 18px/1.35 var(--font-body);margin:4px 0 0}.state-card.state-card>.state-card-text{max-width:420px;color:var(--muted);margin:0;font-size:14px;line-height:1.55}.state-card.state-card.compact{padding:20px 16px}.state-card.state-card.compact>.state-card-icon{border-radius:14px;width:44px;height:44px}.state-card.state-card.compact>.state-card-title{font-size:16px}:is(.modal,.dialog,.modal-body,.dialog-body,.platform-aside,.drawer-panel) .state-card.state-card:not(.compact)>.state-card-icon:not(.is-numeral){border-radius:18px;width:56px;height:56px}@media (width<=479px){.state-card.state-card:not(.compact)>.state-card-icon:not(.is-numeral){border-radius:18px;width:56px;height:56px}}.state-card.state-card.compact>.state-card-text{font-size:13px}.state-card .state-actions{margin-top:8px}.state-card .state-actions .btn{min-height:38px}.state-card-code{color:var(--subtle);font:500 12px/1.4 var(--font-body);font-variant-numeric:tabular-nums}.skeleton-card{border-radius:var(--radius-lg);background:var(--paper);min-height:300px;box-shadow:var(--shadow-sm);flex-direction:column;gap:16px;padding:24px;display:flex}.sk-bar{background:var(--blue-soft);border-radius:6px;height:12px;animation:1.2s ease-in-out infinite sk-pulse;display:block}.sk-title{background:var(--line);width:40%;height:16px}.sk-line-0{width:100%}.sk-line-1{width:80%}.sk-line-2{width:60%}.sk-cells{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.sk-cells[data-cells="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.sk-cells[data-cells="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.sk-cell{border-radius:var(--radius-md);background:var(--blue-soft);height:70px;animation:1.2s ease-in-out infinite sk-pulse;display:block}.kpi-strip.is-loading .kpi-strip-cell.is-skeleton{flex-direction:column;gap:12px;padding:18px 20px;display:flex}.kpi-strip.is-loading .sk-bar.sk-big{width:60%;height:26px}.kpi-strip.is-loading .sk-bar.sk-line-1{width:50%;height:12px}@keyframes sk-pulse{0%,to{opacity:1}50%{opacity:.45}}.type-confirm{grid-template-columns:auto 1fr;align-items:center;gap:8px 12px;margin-top:12px;display:grid}.type-confirm:not(:last-child){margin-bottom:16px}.type-confirm-mark{border-radius:var(--radius-md);background:var(--danger-soft);width:44px;height:44px;color:var(--danger-dark);font:700 20px/1 var(--font-body);grid-row:1/span 2;place-items:center;display:grid}.type-confirm label{color:var(--muted);font-size:13px;line-height:1.5}.type-confirm label b{color:var(--ink)}.type-confirm input{border:1px solid var(--field-border);border-radius:var(--radius-md);background:var(--field-bg);height:42px;font:500 14px/1 var(--font-body);outline:0;grid-column:2;padding:0 16px}.btn.danger.is-pending,.btn.danger.is-pending:disabled{background:color-mix(in srgb, var(--brand-highlight-dark) 40%, var(--paper));color:var(--paper);opacity:1;cursor:not-allowed;border-color:#0000}.btn.danger.is-armed{background:var(--brand-highlight-dark);color:var(--paper);border-color:#0000}.unsaved-warning{border-radius:var(--radius-md);background:var(--orange-soft);color:var(--ink);flex-direction:column;gap:8px;padding:16px;display:flex}.unsaved-warning>strong{font-size:13px;font-weight:700}.unsaved-warning>span{color:var(--muted);font-size:12px;line-height:1.5}.btn.danger-quiet{background:var(--paper);color:var(--brand-highlight-dark);box-shadow:inset 0 0 0 1px var(--control-line);border-color:#0000}.btn.danger-quiet:hover{background:var(--danger-soft)}.export-formats{flex-wrap:wrap;gap:8px;display:flex}.export-formats button{border-radius:var(--radius-md);background:var(--paper);max-width:220px;min-height:38px;box-shadow:inset 0 0 0 1px var(--control-line);color:var(--ink-2);line-height:1.25;font:600 12px/1 var(--font-body);border:0;flex:118px;padding:6px 10px}.export-formats button.active{background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--paper)}.export-progress{color:var(--muted);gap:8px;margin-top:12px;font-size:12px;display:grid}.export-progress>i{background:var(--line);border-radius:3px;height:6px;display:block;position:relative;overflow:hidden}.export-progress>i:after{content:"";background:var(--ink);border-radius:3px;width:40%;animation:1.1s ease-in-out infinite export-run;position:absolute;inset:0 auto 0 0}@keyframes export-run{0%{left:-40%}to{left:100%}}.export-done{border-radius:var(--radius-md);background:var(--green-soft);align-items:center;gap:12px;margin-top:12px;padding:12px;display:flex}.export-done strong{overflow-wrap:anywhere;min-width:0;color:var(--green-dark);flex:1;font-size:13px}.export-done span{color:var(--green-text);font-size:12px}.export-error{color:var(--danger-dark);margin:12px 0 0;font-size:13px}.upload-zone-wrap{gap:8px;display:grid}.upload-zone{border:1.5px dashed var(--control-line);border-radius:var(--radius-md);background:var(--surface-2);min-height:64px;color:var(--accent-light);font:500 13px/1.4 var(--font-body);text-align:center;cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:12px 16px;display:flex}.upload-zone:hover,.upload-zone.is-drag{border-color:var(--accent);background:var(--accent-soft)}.upload-zone.is-disabled{cursor:not-allowed;opacity:.55}.upload-zone:focus-within{outline:2px solid var(--focus-ring);outline-offset:2px}.upload-rows{gap:8px;margin:0;padding:0;list-style:none;display:grid}.upload-row{border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--control-line);gap:8px;padding:12px;display:grid}.upload-row.is-done{box-shadow:inset 0 0 0 1px var(--green)}.upload-row.is-error{box-shadow:inset 0 0 0 1px var(--danger)}.upload-row-line{align-items:center;gap:12px;min-width:0;display:flex}.upload-row-line>strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.upload-row-state{color:var(--muted);flex:0 auto;font-size:11px;font-weight:600}.upload-row.is-done .upload-row-state{color:var(--green-text)}.upload-row.is-error .upload-row-state{color:var(--danger-dark)}.upload-row .text-btn{font-size:11px;font-weight:600}.upload-row-bar{background:var(--line-soft);border-radius:2px;height:4px;overflow:hidden}.upload-row-bar>i{background:var(--accent);border-radius:2px;height:100%;transition:width .2s;display:block}.upload-row.is-done .upload-row-bar>i{background:var(--green)}.upload-row.is-error .upload-row-bar>i{background:var(--brand-highlight-dark)}.toast.toast{border-radius:var(--radius-md);background:var(--green-soft);color:var(--green-dark);font:600 13px/1.4 var(--font-body);border:0;align-items:center;gap:12px;padding:12px 16px;display:flex;position:fixed;overflow:hidden;box-shadow:0 14px 34px -16px #0f2d5059}.toast.toast>.toast-dot{background:currentColor;border-radius:50%;flex:0 0 8px;width:8px;height:8px}.toast.toast.info{background:var(--blue-soft);color:var(--accent)}.toast.toast.warning{background:var(--orange-soft);color:var(--orange-dark)}.toast.toast.error{background:var(--danger-soft);color:var(--danger-dark)}.toast.toast:not(.error):after{content:"";opacity:.35;transform-origin:0;background:currentColor;height:2px;animation:3.2s linear forwards toast-bar;position:absolute;inset:auto 0 0}.toast-stack .toast.toast{position:static}@keyframes toast-bar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}body:has(:is(.app-shell,.login-page).theme-homikey) .toast.toast{color:var(--green-dark);border:0}body:has(:is(.app-shell,.login-page).theme-homikey) .toast.toast.info{color:var(--accent)}body:has(:is(.app-shell,.login-page).theme-homikey) .toast.toast.warning{color:var(--orange-dark)}body:has(:is(.app-shell,.login-page).theme-homikey) .toast.toast.error{color:var(--danger-dark)}.gsearch-scopes{flex-wrap:wrap;gap:8px;margin:12px 0 4px;display:flex}.gsearch-scopes button{border-radius:var(--radius-full);background:var(--paper);height:30px;box-shadow:inset 0 0 0 1px var(--control-line);color:var(--ink-2);font:600 12px/1 var(--font-body);border:0;padding:0 12px}.gsearch-scopes button.active{background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--paper)}.gsearch-recent{gap:8px;margin:8px 0;display:grid}.gsearch-recent>span{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;font-weight:600;display:flex}.gsearch-recent>div{flex-wrap:wrap;gap:8px;display:flex}.gsearch-recent>div button{border-radius:var(--radius-sm);background:var(--surface-2);height:30px;color:var(--ink-2);font:500 12px/1 var(--font-body);border:0;padding:0 12px}.form-alert.stale-conflict{background:var(--orange-soft);color:var(--orange-dark);align-items:flex-start}.form-alert.stale-conflict>span{flex:1;gap:4px;font-size:12px;line-height:1.5;display:grid}.form-alert.stale-conflict>span>strong{font-size:13px;font-weight:700}.offline-banner{border-radius:var(--radius-md);background:var(--orange-soft);color:var(--orange-dark);align-items:flex-start;gap:12px;margin:0 0 16px;padding:12px 16px;display:flex}.offline-banner p{margin:0;font-size:13px;line-height:1.5}.offline-banner-queue{flex-wrap:wrap;align-items:baseline;gap:6px;margin-left:2px;display:inline-flex}.offline-banner-queue b{font-weight:700}.offline-banner-queue .text-btn{color:inherit;font:inherit;font-weight:600;text-decoration:underline}.bulk-bar{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:var(--z-popover);border-radius:var(--radius-md);background:var(--ink);width:max-content;max-width:calc(100vw - 32px);color:var(--paper);box-shadow:var(--shadow-xl);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:8px 8px 8px 18px;display:flex;position:fixed;transform:translate(-50%)}.offline-queue-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.offline-queue-item{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px 12px;padding:12px;display:grid}.offline-queue-main{gap:2px;min-width:0;display:grid}.offline-queue-main strong{overflow-wrap:anywhere;font-size:13px}.offline-queue-main small{color:var(--muted);font-size:12px}.offline-queue-error{color:var(--danger-dark);margin:4px 0 0;font-size:12px;line-height:1.45}.offline-queue-note{color:var(--muted);margin:4px 0 0;font-size:12px}.offline-queue-status{border-radius:var(--radius-full);white-space:nowrap;justify-self:end;padding:3px 10px;font-size:11px;font-weight:700}.offline-queue-status.status-pending{background:var(--orange-soft);color:var(--orange-dark)}.offline-queue-status.status-failed{background:var(--danger-soft);color:var(--danger-dark)}.offline-queue-status.status-expired{background:var(--line);color:var(--muted)}.offline-queue-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.offline-queue-item.is-failed{border-color:var(--danger-dark)}.chat-bubble.queued{background:var(--orange-soft);color:var(--orange-dark);border-style:dashed;border-color:var(--orange-dark)}.chat-bubble.queued footer{opacity:1}.chat-queued-note{font-size:10px;font-weight:600}.chat-bubble.queued[data-queue-status=failed]{background:var(--danger-soft);color:var(--danger-dark);border-color:var(--danger-dark)}.client-error-code{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);letter-spacing:.03em}.client-error-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:8px 0 12px;display:flex}.client-error-form .field{flex:220px;max-width:320px}.client-error-card{gap:12px;margin-top:12px;display:grid}.client-error-actions{flex-wrap:wrap;gap:8px;display:flex}.client-error-lookup{margin-bottom:16px;padding:16px 18px}.owner-rail,.owner-bottom-nav,.owner-wordmark,.owner-clock,.tablet-pill-slot,.avatar-badge,.sidebar-layout-switch{display:none}.owner-shell :is(.owner-rail,.owner-bottom-nav) .nav-badge,.platform-shell :is(.owner-rail,.owner-bottom-nav) .nav-badge{background:var(--brand-highlight-dark);min-width:16px;height:16px;color:var(--paper);font:700 11px/1 var(--font-body);border-radius:8px;justify-content:center;align-items:center;padding:0 4px;display:flex}.owner-shell .account-trigger .avatar{overflow:visible}@media (width<=767px){.owner-shell:not(.layout-desktop) .topbar,.platform-shell .topbar{background:var(--paper);height:56px;padding:8px 20px 12px}.owner-shell:not(.layout-desktop) .topbar-menu-btn,.owner-shell:not(.layout-desktop) .topbar-title,.platform-shell .topbar-title{display:none}.owner-shell:not(.layout-desktop) .owner-wordmark,.platform-shell .owner-wordmark{color:var(--ink);font:700 20px/1 var(--font-body);letter-spacing:-.02em;align-items:baseline;margin-right:auto;display:inline-flex}.owner-shell:not(.layout-desktop) .owner-wordmark b,.platform-shell .owner-wordmark b{color:var(--brand-highlight-dark);font-weight:700}.owner-shell:not(.layout-desktop) .topbar-left,.platform-shell .topbar-left{flex:auto}.owner-shell:not(.layout-desktop) .account-trigger .avatar,.platform-shell .account-trigger .avatar{width:36px;height:36px;font-size:12px;font-weight:700}.owner-shell:not(.layout-desktop) .account-trigger .avatar-presence,.platform-shell .account-trigger .avatar-presence{display:none}.owner-shell:not(.layout-desktop) .account-trigger .avatar-badge,.platform-shell .account-trigger .avatar-badge{background:var(--brand-highlight-dark);min-width:16px;height:16px;color:var(--paper);font:700 11px/1 var(--font-body);border-radius:8px;justify-content:center;align-items:center;padding:0 4px;display:flex;position:absolute;top:-2px;right:-2px}.owner-shell:not(.layout-desktop) .owner-bottom-nav,.platform-shell .owner-bottom-nav{z-index:var(--z-mobile-nav);padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--paper);box-shadow:0 -1px 0 var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid;position:fixed;bottom:0;left:0;right:0}.owner-shell:not(.layout-desktop) .owner-bottom-nav button,.platform-shell .owner-bottom-nav button{min-width:0;height:56px;color:var(--subtle);font:500 11px/1.2 var(--font-body);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;padding:0;display:flex;position:relative}.owner-shell:not(.layout-desktop) .owner-bottom-nav button .icon,.platform-shell .owner-bottom-nav button .icon{box-sizing:border-box;border-radius:15px;width:56px;height:30px;padding:4px 17px;transition:background .2s}.owner-shell:not(.layout-desktop) .owner-bottom-nav button.nav-active,.platform-shell .owner-bottom-nav button.nav-active{color:var(--brand-highlight-dark);font-weight:600}.owner-shell:not(.layout-desktop) .owner-bottom-nav button.nav-active .icon,.platform-shell .owner-bottom-nav button.nav-active .icon{background:color-mix(in srgb, var(--brand-highlight) 14%, transparent)}.owner-shell:not(.layout-desktop) .owner-bottom-nav button:focus-visible,.platform-shell .owner-bottom-nav button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;border-radius:var(--radius)}.owner-shell:not(.layout-desktop) .owner-bottom-nav .nav-badge,.platform-shell .owner-bottom-nav .nav-badge{position:absolute;top:0;right:calc(50% - 26px)}.owner-shell:not(.layout-desktop) .topbar .gsearch-trigger,.platform-shell .topbar .gsearch-trigger,.owner-shell:not(.layout-desktop) .topbar .period-button,.platform-shell .topbar .period-button,.owner-shell:not(.layout-desktop) .topbar .icon-btn,.platform-shell .topbar .icon-btn{box-shadow:none;background:0 0;border:0}.owner-shell:not(.layout-desktop) .content,.platform-shell .content{padding-bottom:calc(var(--mobile-nav-height) + 24px + env(safe-area-inset-bottom))}.owner-shell:not(.layout-desktop) .toast-stack,.platform-shell .toast-stack,.owner-shell:not(.layout-desktop) .toast.toast,.platform-shell .toast.toast{bottom:calc(var(--mobile-nav-height) + 16px + env(safe-area-inset-bottom))}}.ch-home{flex-direction:column;gap:16px;display:flex}.ch-hero{background:linear-gradient(90deg,#f6f7f8f0 0%,#f6f7f880 45%,#f6f7f81a 75%),url(/assets/login-city-DPblcey4.webp) 50%/cover no-repeat;height:150px;margin:-20px -16px 0;padding:16px 20px;position:relative}.ch-hero-hello{color:var(--muted);font-size:12px;display:block}.ch-hero h1{color:var(--ink);font:400 28px/1.2 var(--font-display);margin:4px 0 0}.ch-hero-motto{color:var(--accent-dark);font:400 18px/1.1 var(--font-login-hand);text-align:right;position:absolute;bottom:14px;right:16px}.ch-phone .ch-kpis{grid-template-columns:1fr 1fr;gap:8px;margin-top:-30px;display:grid;position:relative}.ch-kpi{border-radius:var(--radius-md);background:var(--paper);min-width:0;box-shadow:var(--shadow-sm);flex-direction:column;gap:8px;padding:12px;display:flex}.ch-kpi-label{color:var(--muted);font-size:11px}.ch-kpi-value{color:var(--ink);font:600 20px/1 var(--font-body);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.ch-kpi-note{color:var(--muted);font-size:11px;font-weight:600}.ch-kpi-note.is-good{color:var(--green-text)}.ch-kpi-note.is-warn{color:var(--brand-highlight-text)}.ch-kpi-note.is-amber{color:var(--orange-dark)}.ch-todo-block{flex-direction:column;gap:8px;display:flex}.ch-todo-block>h2,.ch-card>h2{color:var(--ink);font:700 16px/1.3 var(--font-body);margin:0;padding:4px 2px}.ch-todos{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ch-todo{border-radius:var(--radius-md);background:var(--paper);align-items:center;gap:12px;padding:12px 16px;display:flex}.ch-todo.is-done{opacity:.6}.ch-todo.is-done .ch-todo-main strong{text-decoration:line-through}.ch-check{background:var(--paper);width:22px;height:22px;box-shadow:inset 0 0 0 1.5px var(--control-line);color:var(--paper);font:700 12px/1 var(--font-body);cursor:pointer;border:0;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.ch-todo.is-done .ch-check{background:var(--green);box-shadow:inset 0 0 0 1.5px var(--green)}.ch-todo-main{min-width:0;color:var(--ink);text-align:left;font-family:var(--font-body);cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:0;display:flex}.ch-todo-main>span{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ch-todo-main strong{font-size:13px;font-weight:600}.ch-todo-main small{color:var(--muted);font-size:11px}.ch-dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.ch-dot.danger{background:var(--brand-highlight-dark)}.ch-dot.warning{background:var(--orange-dot)}.ch-dot.info{background:var(--accent)}.ch-check:focus-visible,.ch-todo-main:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.ch-muted{color:var(--muted);margin:0;font-size:13px}@media (width>=768px) and (width<=1023px){.owner-shell:not(.layout-desktop),.platform-shell:not(.layout-desktop){--owner-rail-width:84px}.owner-shell:not(.layout-desktop) .owner-rail,.platform-shell:not(.layout-desktop) .owner-rail{z-index:var(--z-sidebar);width:var(--owner-rail-width);background:var(--paper);box-shadow:inset -1px 0 0 var(--line);scrollbar-width:none;flex-direction:column;align-items:center;gap:8px;padding:16px 0;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.owner-shell:not(.layout-desktop) .workspace,.platform-shell:not(.layout-desktop) .workspace{margin-left:var(--owner-rail-width)}.owner-shell:not(.layout-desktop) .owner-rail-logo,.platform-shell:not(.layout-desktop) .owner-rail-logo{background:0 0;border:0;place-items:center;width:68px;height:44px;padding:0;display:grid}.owner-shell:not(.layout-desktop) .owner-rail button:not(.owner-rail-logo),.platform-shell:not(.layout-desktop) .owner-rail button:not(.owner-rail-logo){border-radius:var(--radius);width:68px;color:var(--muted);font:500 10px/1.2 var(--font-body);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;padding:8px 0;display:flex;position:relative}.owner-shell:not(.layout-desktop) .owner-rail button:not(.owner-rail-logo) .icon,.platform-shell:not(.layout-desktop) .owner-rail button:not(.owner-rail-logo) .icon{width:22px;height:22px}.owner-shell:not(.layout-desktop) .owner-rail button.nav-active,.platform-shell:not(.layout-desktop) .owner-rail button.nav-active{background:var(--blue-soft);color:var(--ink);font-weight:700}.owner-shell:not(.layout-desktop) .owner-rail .nav-badge,.platform-shell:not(.layout-desktop) .owner-rail .nav-badge{margin:0;position:absolute;top:4px;right:10px}.owner-shell:not(.layout-desktop) .owner-rail button:focus-visible,.platform-shell:not(.layout-desktop) .owner-rail button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.owner-shell:not(.layout-desktop) .owner-rail-spacer,.platform-shell:not(.layout-desktop) .owner-rail-spacer{flex:1}.owner-shell:not(.layout-desktop) .owner-rail .owner-rail-desktop,.platform-shell:not(.layout-desktop) .owner-rail .owner-rail-desktop{width:68px;color:var(--muted);text-align:center;padding:8px 0;font-size:11px;font-weight:600}.owner-shell:not(.layout-desktop) .topbar,.platform-shell:not(.layout-desktop) .topbar{height:64px;box-shadow:inset 0 -1px 0 var(--line);background:#ffffffb3;padding:0 24px}.owner-shell:not(.layout-desktop) .topbar-menu-btn,.platform-shell:not(.layout-desktop) .topbar-menu-btn,.owner-shell:not(.layout-desktop) .topbar-title,.platform-shell:not(.layout-desktop) .topbar-title{display:none}.owner-shell:not(.layout-desktop) .owner-clock,.platform-shell:not(.layout-desktop) .owner-clock{color:var(--muted);white-space:nowrap;font-size:13px;display:inline}.owner-shell:not(.layout-desktop) .topbar-left,.platform-shell:not(.layout-desktop) .topbar-left{flex:none;gap:16px}.owner-shell:not(.layout-desktop) .tablet-pill-slot,.platform-shell:not(.layout-desktop) .tablet-pill-slot{scrollbar-width:none;min-width:0;max-width:46vw;display:flex;overflow-x:auto}.owner-shell:not(.layout-desktop) .tablet-pill-slot .ch-pills,.platform-shell:not(.layout-desktop) .tablet-pill-slot .ch-pills{flex-wrap:nowrap}.owner-shell:not(.layout-desktop) .topbar-actions,.platform-shell:not(.layout-desktop) .topbar-actions{flex:auto;justify-content:flex-end;gap:12px;min-width:0}.owner-shell:not(.layout-desktop) .owner-clock,.platform-shell:not(.layout-desktop) .owner-clock{flex:none}.owner-shell:not(.layout-desktop) .content,.platform-shell:not(.layout-desktop) .content{padding:24px 24px 32px}.owner-shell.layout-desktop,.platform-shell.layout-desktop{grid-template-columns:var(--sidebar-width) minmax(0, 1fr)}.owner-shell.layout-desktop .sidebar,.platform-shell.layout-desktop .sidebar{display:flex}.owner-shell.layout-desktop .topbar-menu-btn,.platform-shell.layout-desktop .topbar-menu-btn{display:none}.owner-shell.layout-desktop .sidebar-layout-switch,.platform-shell.layout-desktop .sidebar-layout-switch{border-radius:var(--radius);width:100%;min-height:34px;color:var(--muted);font:600 12px/1 var(--font-body);text-align:left;cursor:pointer;background:0 0;border:0;margin-bottom:4px;padding:0 12px;display:block}.owner-shell.layout-desktop .sidebar-layout-switch:hover,.platform-shell.layout-desktop .sidebar-layout-switch:hover{background:var(--surface-2);color:var(--ink)}}.tablet-pill-slot .ch-pills,.ch-tablet>.ch-pills{flex-wrap:wrap;gap:8px;display:flex}.ch-pills button{border-radius:var(--radius-full);background:var(--paper);height:32px;box-shadow:inset 0 0 0 1px var(--control-line);color:var(--ink-2);font:600 12px/1 var(--font-body);white-space:nowrap;cursor:pointer;border:0;padding:0 12px}.ch-pills button.active{background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--paper)}.ch-pills button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ch-tablet .ch-greeting{flex-direction:column;gap:4px;display:flex}.ch-tablet .ch-greeting>span{color:var(--muted);font-size:13px}.ch-tablet .ch-greeting h1{color:var(--ink);font:400 32px/1.2 var(--font-display);margin:0}.ch-band{border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-sm);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.ch-band .ch-kpi{box-shadow:inset -1px 0 0 var(--line-soft), inset 0 -1px 0 var(--line-soft);background:0 0;border-radius:0;gap:12px;padding:20px 24px}.ch-band .ch-kpi-label{font-size:12px}.ch-band .ch-kpi-value{font-size:24px}.ch-band .ch-kpi-note{font-size:12px}.ch-cards{grid-template-columns:1.2fr 1fr;align-items:start;gap:16px;display:grid}.ch-card{border-radius:var(--radius-lg);background:var(--paper);min-width:0;box-shadow:var(--shadow-sm);flex-direction:column;gap:16px;padding:16px;display:flex}.ch-card .ch-todos{gap:12px}.ch-card .ch-todo{background:var(--sand-soft);min-height:48px;padding:8px 12px}.ch-occ{flex-direction:column;gap:8px;display:flex}.ch-occ-head{justify-content:space-between;gap:12px;font-size:13px;display:flex}.ch-occ-head strong{font-weight:600}.ch-occ-head span{color:var(--muted)}.ch-occ-bar{background:var(--line-soft);border-radius:4px;height:8px;display:block;overflow:hidden}.ch-occ-bar>i{background:var(--accent);border-radius:4px;height:100%;display:block}@media (width<=899px){.ch-band{grid-template-columns:repeat(2,minmax(0,1fr))}.ch-cards{grid-template-columns:1fr}}:is(input:not([type]),input[type=text],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=search],input[type=date],input[type=datetime-local],input[type=month],input[type=time],input[type=week],textarea,select):not(:where(.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *){transition:border-color .15s,box-shadow .15s}:is(input:not([type]),input[type=text],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=search],input[type=date],input[type=datetime-local],input[type=month],input[type=time],input[type=week],textarea,select):not(:where(.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *):hover:not(:focus,:disabled,[readonly],[aria-invalid=true],.invalid,.input-error,.input-warning){border-color:var(--field-border-hover)}:is(input:not([type]),input[type=text],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=search],input[type=date],input[type=datetime-local],input[type=month],input[type=time],input[type=week],textarea,select):not(:where(.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *):focus{border-color:var(--field-border-focus);box-shadow:var(--field-ring);outline:0}:is(input:not([type]),input[type=text],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=search],input[type=date],input[type=datetime-local],input[type=month],input[type=time],input[type=week],textarea,select):not(:where(.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *):is([aria-invalid=true],.invalid,.input-error){border-color:var(--field-border-invalid)}:is(input:not([type]),input[type=text],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=search],input[type=date],input[type=datetime-local],input[type=month],input[type=time],input[type=week],textarea,select):not(:where(.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *):is([aria-invalid=true],.invalid,.input-error):focus{box-shadow:var(--field-ring-invalid)}input:is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]):not(:disabled,[readonly]){cursor:pointer}input:is([type=date],[type=datetime-local],[type=month],[type=time],[type=week])::-webkit-calendar-picker-indicator{cursor:pointer}.tenant-select .search-box input,.tenant-checklist .search-box input{height:100%;font-size:var(--text-sm);flex:auto;width:auto!important;min-width:0!important;min-height:0!important;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;padding:0!important}.tenant-select .search-box,.tenant-checklist .search-box{box-sizing:border-box;width:100%;min-width:0;height:40px}.tenant-select .search-box>svg,.tenant-checklist .search-box>svg{flex:none}.tenant-select{gap:6px;min-width:0;display:grid}.tenant-select>small{margin:0!important}@media (width<=767px){.tenant-select .search-box,.tenant-checklist .search-box{height:44px}.tenant-select .search-box input,.tenant-checklist .search-box input{font-size:16px}}:where(input:not([type]),input[type=text],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=search],input[type=date],input[type=datetime-local],input[type=month],input[type=time],input[type=week]):not(:where(.field,.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *){border:1px solid var(--field-border);border-radius:var(--radius);min-height:40px;color:var(--ink);background-color:var(--field-bg);font:inherit;outline:0;padding:0 12px}:where(textarea):not(:where(.field,.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *){border:1px solid var(--field-border);border-radius:var(--radius);min-height:72px;color:var(--ink);background-color:var(--field-bg);font:inherit;outline:0;padding:8px 12px}:where(select):not(:where(.field,.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *){border:1px solid var(--field-border);border-radius:var(--radius);min-height:40px;color:var(--ink);background-color:var(--field-bg);font:inherit;outline:0;padding:0 12px}@media (width<=767px){:where(input:not([type=checkbox],[type=radio],[type=file],[type=range],[type=color],[type=hidden],[type=button],[type=submit]),textarea,select):not(:where(.field,.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *){min-height:44px;font-size:16px}:where(textarea):not(:where(.field,.search-box,.rooms-search-box,.floor-item-row,.login-field,.gsearch-box) *){min-height:72px}}*,:before,:after{box-sizing:border-box}:root{font-family:var(--font-body);color:var(--ink);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility}body{min-width:320px;min-height:100vh;margin:0}html{scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scroll-track)}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:2px solid var(--scroll-track);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid color-mix(in srgb, var(--focus-ring) 42%, transparent);outline-offset:2px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-heading);color:var(--ink)}.icon{flex:none}@media (forced-colors:active){*{scrollbar-color:auto}:focus-visible{outline:2px solid canvastext}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.ops-ping-panel{margin-top:var(--sp-6)}.ops-ping-panel .panel-head{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.ops-muted{color:var(--muted);font-size:var(--text-sm);margin:0;padding:18px 20px}.ops-kv{gap:10px;margin:0;padding:18px 20px;display:grid}.ops-kv>div{font-size:var(--text-sm);grid-template-columns:minmax(120px,200px) 1fr;gap:12px;display:grid}.ops-kv dt{color:var(--muted)}.ops-kv dd{color:var(--ink);overflow-wrap:anywhere;margin:0}@media (width<=767px){.ops-kv>div{grid-template-columns:1fr;gap:2px}}.owner-wordmark .ops-wordmark-tag{color:var(--muted);margin-left:6px;font-weight:600}table.sr-only{min-width:0;display:block}.owner-shell .content .page-heading .page-subtitle{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}@media (width>=768px){.page-heading>.ops-refresh{flex-wrap:nowrap;flex:none}}.t-ok{--tone:var(--chart-muted)}.t-warn{--tone:var(--orange)}.t-danger{--tone:var(--danger)}.t-sky{--tone:var(--chart-muted)}.t-primary{--tone:var(--accent)}.t-accent{--tone:var(--brand-highlight-dark)}.ops-heading-actions{justify-content:flex-end;align-items:center;gap:var(--sp-3);flex-wrap:wrap;min-width:0;display:flex}.ops-refresh{align-items:center;gap:var(--sp-3);font-size:var(--text-xs);color:var(--muted);flex-wrap:wrap;display:flex}.ops-refresh-time{white-space:nowrap;font-variant-numeric:tabular-nums}.ops-refresh-note{color:var(--orange-text);font-size:var(--text-xs);flex-basis:100%}.ops-switch{color:var(--ink-2);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;font-weight:600;display:inline-flex;position:relative}.ops-switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.ops-switch-track{background:var(--control-line);border-radius:10px;flex:none;width:34px;height:20px;transition:background .15s;position:relative}.ops-switch-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.ops-switch input:checked+.ops-switch-track{background:var(--accent)}.ops-switch input:checked+.ops-switch-track:after{transform:translate(14px)}.ops-switch input:focus-visible+.ops-switch-track{outline:2px solid var(--focus-ring);outline-offset:2px}.ops-toolbar{align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.ops-toolbar>.search-box,.ops-toolbar .ops-search{align-self:flex-end}.ops-search{flex:240px;min-width:240px;max-width:360px}.ops-field{min-width:0}.ops-toolbar .ops-field{width:auto}.ops-toolbar .ops-field>label{color:var(--subtle);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.ops-toolbar .ops-field :is(select,input){min-height:38px;font-size:var(--text-sm);padding-top:4px;padding-bottom:4px}.ops-toolbar .segmented,.ops-toolbar .filter-pop{align-self:flex-end}.ops-toolbar .filter-pop-trigger{height:38px}.ops-toolbar .btn{align-self:flex-end}.ops-count{color:var(--muted);font-size:var(--text-sm);align-self:center;margin-left:auto}.ops-filter-panel{gap:12px;max-height:min(70vh,560px);padding-right:2px;display:grid;overflow:auto}.ops-check{min-height:38px;color:var(--ink-2);font-size:var(--text-sm);cursor:pointer;align-self:center;align-items:center;gap:8px;font-weight:500;display:inline-flex}.ops-check input{width:16px;height:16px;accent-color:var(--accent)}.ops-code-form{flex-wrap:wrap;align-self:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.ops-code-form .search-box{min-width:200px;height:38px}.ops-code-form .search-box.is-invalid{border-color:var(--danger)}.ops-field-error{color:var(--danger);font-size:var(--text-xs);flex-basis:100%;font-weight:500}.ops-range-custom{align-items:flex-end;gap:var(--sp-3);margin:calc(var(--sp-2) * -1) 0 var(--sp-4);flex-wrap:wrap;display:flex}.ops-range-custom .ops-field input{min-height:38px}.ops-chips{margin:0 0 var(--sp-4);flex-wrap:wrap;align-items:center;gap:8px;padding:0;list-style:none;display:flex}.ops-chips li.chip{border-radius:var(--radius-full);background:var(--accent-soft);max-width:300px;color:var(--accent-dark);font-size:var(--text-xs);align-items:center;gap:2px;padding:3px 4px 3px 10px;display:inline-flex}.ops-chips li.chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ops-chips li.chip b{margin-left:2px;font-weight:700}.ops-chips li.chip button{width:22px;height:22px;color:var(--accent-dark);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:inline-grid}.ops-chips li.chip button:hover{background:#304f6d24}.ops-note{margin:0 0 var(--sp-3);color:var(--muted);font-size:var(--text-xs);align-items:flex-start;gap:6px;line-height:1.5;display:flex}.ops-note svg{flex:none;margin-top:2px}.ops-warn{margin:0 0 var(--sp-3);border-radius:var(--radius);background:var(--orange-soft);color:var(--orange-text);font-size:var(--text-sm);align-items:flex-start;gap:6px;padding:10px 12px;line-height:1.45;display:flex}.ops-warn svg{flex:none;margin-top:2px}.ops-dim{color:var(--subtle)}.ops-nowrap{white-space:nowrap}.ops-muted{color:var(--muted);font-size:var(--text-sm);margin:0;padding:18px 20px;line-height:1.5}.ops-empty{gap:4px;display:grid}.ops-loadable{transition:opacity .15s}.ops-loadable.is-stale{opacity:.55;pointer-events:none}.ops-wrap{overflow-wrap:anywhere}.ops-clip{text-overflow:ellipsis;white-space:nowrap;max-width:280px;display:block;overflow:hidden}.ops-clip-inline{vertical-align:bottom;text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block;overflow:hidden}.ops-clip-block{text-overflow:ellipsis;white-space:nowrap;max-width:340px;display:block;overflow:hidden}.ops-quote{margin:0 0 var(--sp-3);border-left:3px solid var(--brand-highlight);background:var(--sand-soft);color:var(--ink);font-size:var(--text-sm);overflow-wrap:anywhere;padding:10px 12px;line-height:1.5}.ops-detail-foot{margin:var(--sp-4) 0 0;font-size:var(--text-sm)}.ops-detail-foot a,.ops-kv a,.ops-table a,.ops-rank a{color:var(--accent);font-weight:600;text-decoration:none}.ops-detail-foot a:hover,.ops-kv a:hover,.ops-table a:hover,.ops-rank a:hover{text-decoration:underline}.ops-stack summary{cursor:pointer;color:var(--accent);font-size:var(--text-sm);margin-bottom:6px;font-weight:600}.ops-stack pre{border-radius:var(--radius);background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;margin:0;padding:10px;font-size:11px;line-height:1.5;overflow:auto}.ops-table-wrap{margin-bottom:var(--sp-3)}.ops-table{min-width:0}.ops-table th,.ops-table td{font-size:var(--text-sm);padding:11px 14px}.ops-table th.num,.ops-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ops-table td.nowrap{white-space:nowrap}.ops-table td small{color:var(--subtle);margin-top:2px;font-size:11px}.ops-table td.num small{margin:0 0 0 4px;display:inline}.ops-table.compact th,.ops-table.compact td{padding:8px 10px}.ops-table tbody tr.is-link{cursor:pointer}.ops-table tbody tr.is-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.ops-table tbody tr.is-selected td{background:var(--sand-selected)}.ops-table td.is-slow{color:var(--brand-highlight-text);font-weight:600}.ops-table td.is-bad{color:var(--danger);font-weight:600}.table-wrap.flat{box-shadow:none;border-radius:0;margin:0}.ops-method{background:var(--surface);min-width:40px;color:var(--ink-2);font:700 10.5px/1.5 var(--font-body);letter-spacing:.3px;text-align:center;border-radius:4px;padding:2px 6px;display:inline-block}.ops-route{color:var(--ink);overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.ops-code,.ops-action,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.ops-tag{border-radius:var(--radius-full);background:var(--orange-soft);color:var(--orange-text);vertical-align:middle;margin-left:6px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-block}.ops-tag.good{background:var(--green-soft);color:var(--green-text)}.ops-trend{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:600}.ops-trend.bad{color:var(--danger)}.ops-trend.good{color:var(--green-text)}.ops-trend-pair{color:var(--subtle);white-space:nowrap;font-size:11px}.ops-level{border-radius:var(--radius-full);background:var(--surface);color:var(--muted);padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.ops-level.high{background:var(--danger-soft);color:var(--danger)}.ops-level.warn{background:var(--orange-soft);color:var(--orange-text)}.ops-pager{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);color:var(--muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.ops-split{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.ops-split-main{min-width:0}.ops-detail-backdrop{z-index:var(--z-backdrop);background:var(--overlay-backdrop);position:fixed;inset:0}.ops-detail{z-index:var(--z-drawer);background:var(--paper);width:min(520px,100vw);box-shadow:var(--shadow-xl);flex-direction:column;animation:.18s ops-slide-in;display:flex;position:fixed;inset:0 0 0 auto;overflow:hidden}.ops-detail.wide{width:min(560px,100vw)}@keyframes ops-slide-in{0%{opacity:0;transform:translate(24px)}}.ops-detail-head{justify-content:space-between;align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--line-soft);padding:16px 20px;display:flex}.ops-detail-head h2{font-size:var(--text-lg);margin:0;font-weight:600}.ops-detail-body{flex:1;min-height:0;padding:16px 20px 28px;overflow:auto}.ops-detail-title{margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ops-detail-title strong{font-size:var(--text-md);overflow-wrap:anywhere}.ops-detail-sub{margin:var(--sp-5) 0 var(--sp-2);color:var(--ink);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:8px;font-weight:700;display:flex}.ops-detail-actions{margin:0 0 var(--sp-3);flex-wrap:wrap;gap:8px;display:flex}.ops-icon-btn{border-radius:var(--radius);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}.ops-icon-btn:hover{background:var(--surface-2);color:var(--ink)}.ops-icon-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@media (width>=1280px){.ops-split.has-panel{grid-template-columns:minmax(0,1fr) 430px}.ops-split.has-panel:has(.ops-detail.wide){grid-template-columns:minmax(0,1fr) 480px}.ops-detail-backdrop,.has-panel .hide-panel{display:none}.has-panel .ops-table th,.has-panel .ops-table td{padding-inline:10px}.has-panel .ops-table .ops-clip{max-width:200px}.ops-detail,.ops-detail.wide{top:76px;z-index:auto;border-radius:var(--radius-lg);width:auto;max-height:calc(100vh - 96px);box-shadow:var(--shadow-md);animation:none;position:sticky;inset:auto}}@media (width>=1280px) and (width<=1699px){.has-panel .hide-sm,.has-panel .hide-md{display:none}}@media (width<=1439px){.ops-table .hide-md{display:none}}@media (width<=1599px){.ops-table th,.ops-table td{padding-inline:12px}}@media (width<=767px){.ops-table .hide-sm,.ops-table .hide-md{display:none}.ops-detail,.ops-detail.wide{width:100vw}.ops-detail-body{padding:14px 16px 28px}}.ops-kv.tight{margin:0 0 var(--sp-2);gap:8px;padding:0}.ops-kv.tight>div{grid-template-columns:112px minmax(0,1fr);gap:10px}.ops-kv.tight dt{font-size:var(--text-xs)}.ops-kv.tight dd{font-size:var(--text-sm)}.ops-copy{align-items:center;gap:4px;max-width:100%;display:inline-flex}.ops-copy code{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.ops-copy-btn{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:inline-grid}.ops-copy-btn:hover{background:var(--surface);color:var(--ink)}.ops-code{color:var(--ink-2)}.ops-rank{font-size:var(--text-sm);gap:6px;margin:0;padding:0;list-style:none;display:grid}.ops-rank li{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.ops-rank.stack li{align-items:flex-start}.ops-rank b{font-variant-numeric:tabular-nums}.ops-timeline{gap:0;margin:0;padding:0;list-style:none;display:grid;position:relative}.ops-timeline li{grid-template-columns:96px 14px minmax(0,1fr);gap:10px;padding:8px 0;display:grid;position:relative}.ops-timeline li:before{content:"";background:var(--line);width:2px;position:absolute;top:0;bottom:0;left:105px}.ops-timeline li:first-child:before{top:18px}.ops-timeline li:last-child:before{bottom:calc(100% - 18px)}.ops-timeline li:only-child:before{display:none}.ops-timeline time{color:var(--muted);white-space:nowrap;padding-top:2px;font:600 11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.ops-timeline li>i{z-index:1;background:var(--paper);border:2px solid var(--accent-light);border-radius:50%;width:10px;height:10px;margin:5px 0 0 -2px;position:relative}.ops-timeline li.kind-audit>i{border-color:var(--orange-dot)}.ops-timeline li.kind-client>i{border-color:var(--danger)}.ops-timeline li.is-current>i{background:var(--accent)}.ops-kind{color:var(--subtle);text-transform:uppercase;letter-spacing:.6px;font-size:10.5px;font-weight:700;display:block}.ops-timeline li.is-current .ops-kind{color:var(--accent)}.ops-timeline-body{font-size:var(--text-sm);overflow-wrap:anywhere;line-height:1.5}.ops-timeline-body small{color:var(--subtle);font-size:11px;display:block}.ops-timeline-open{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.ops-timeline-open:hover{text-decoration:underline;-webkit-text-decoration-color:var(--control-line);text-decoration-color:var(--control-line)}.ops-timeline-open:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media (width<=767px){.ops-timeline li{grid-template-columns:78px 14px minmax(0,1fr);gap:8px}.ops-timeline li:before{left:85px}}.ops-chart{padding:4px 8px 8px;position:relative}.ops-chart svg{touch-action:pan-y;max-width:100%;display:block}.ops-chart svg:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius)}.ops-grid{stroke:var(--line);stroke-width:1px}.ops-tick{fill:var(--subtle);font-size:11px;font-family:var(--font-body);font-variant-numeric:tabular-nums}.ops-tick.strong{fill:var(--ink);font-weight:700}.ops-bar rect{fill:var(--tone)}.ops-bar.on rect{filter:brightness(.88)}.ops-line{fill:none;stroke:var(--tone);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.ops-dot{fill:var(--paper);stroke:var(--tone);stroke-width:2px}.ops-cursor{stroke:var(--control-line);stroke-width:1px;stroke-dasharray:3 3}.ops-hit{fill:#0000;cursor:crosshair}.ops-tooltip{z-index:2;border-radius:var(--radius);background:var(--ink);color:#fff;pointer-events:none;min-width:150px;box-shadow:var(--shadow-lg);gap:4px;padding:8px 10px;font-size:12px;display:grid;position:absolute;top:6px;transform:translate(-50%)}.ops-tooltip strong{opacity:.8;font-size:11px;font-weight:600}.ops-tooltip span{align-items:center;gap:6px;display:flex}.ops-tooltip span b{font-variant-numeric:tabular-nums;margin-left:auto;padding-left:12px}.ops-tooltip i,.ops-legend i{background:var(--tone,var(--chart-muted));border-radius:2px;flex:none;width:8px;height:8px}.ops-legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:11px;list-style:none;display:flex}.ops-legend li{align-items:center;gap:6px;display:inline-flex}.ops-chart-empty{color:var(--muted);font-size:var(--text-sm);pointer-events:none;place-items:center;margin:0;display:grid;position:absolute;inset:0}.ops-kpis{margin-bottom:var(--sp-4)}.ops-kpis .ks-note{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.ops-grid-2{gap:var(--sp-4);margin-bottom:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ops-grid-3{gap:var(--sp-4);margin-bottom:var(--sp-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.ops-chart-panel .panel-head,.ops-table-panel .panel-head{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) var(--sp-3);border-bottom:0}.ops-table-panel>.table-wrap.flat,.ops-table-panel>div>.table-wrap.flat{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.ops-table-panel .ops-table th:first-child,.ops-table-panel .ops-table td:first-child{padding-left:var(--sp-5)}.ops-table-panel .ops-table th:last-child,.ops-table-panel .ops-table td:last-child{padding-right:var(--sp-5)}.ops-table-panel .ops-clip{max-width:190px}.ops-ping-mini{margin:var(--sp-4) 0 0;color:var(--muted);font-size:var(--text-xs);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ops-ping-mini i{background:var(--green);border-radius:50%;width:8px;height:8px}.ops-ping-mini.is-down i{background:var(--danger)}@media (width<=1279px){.ops-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-grid-3>:last-child{grid-column:1/-1}}@media (width<=899px){.ops-grid-2,.ops-grid-3{grid-template-columns:minmax(0,1fr)}}.ops-people{margin:0 0 var(--sp-4);gap:8px;padding:0;list-style:none;display:grid}.ops-people button{border-radius:var(--radius);background:var(--paper);width:100%;box-shadow:var(--shadow-sm);text-align:left;cursor:pointer;border:0;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:10px 14px;display:grid}.ops-people button:hover{background:var(--surface-2)}.ops-people button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ops-people strong{font-size:var(--text-sm)}.ops-people small{color:var(--subtle);grid-column:1;font-size:11px}.ops-people .badge{grid-area:1/2/span 2;align-self:center}.ops-person-id{margin:0 0 var(--sp-3);color:var(--muted);font-size:var(--text-xs)}.ops-person-panel .panel-head{align-items:flex-start;gap:var(--sp-3);flex-wrap:wrap}.ops-person-body{padding:var(--sp-3) var(--sp-5) var(--sp-5)}.ops-person-search{align-items:center}.ops-person-search .ops-search{flex:320px;max-width:460px}@media (width<=767px){.ops-heading-actions{justify-content:flex-start}.ops-toolbar{gap:var(--sp-2)}.ops-toolbar .segmented{max-width:100%;overflow-x:auto}.ops-toolbar .segmented button{padding:7px 10px}.ops-search{flex-basis:100%;max-width:none}.ops-code-form{flex:100%;margin-left:0}.ops-code-form .search-box{flex:1;min-width:0}.ops-count{margin-left:0}.ops-table th,.ops-table td{padding:10px}.ops-clip{max-width:150px}}a.btn{text-decoration:none}.ops-kv.tight dd .text-btn{min-height:0;margin-top:2px;padding-left:0;display:block}.list-pager-arrows{justify-content:space-between;align-items:center;gap:var(--sp-3);margin:0 0 var(--sp-4);color:var(--muted);font-size:var(--text-xs);display:flex}.list-pager-buttons{gap:8px;display:flex}.list-pager-buttons button{background:var(--paper);width:34px;height:34px;box-shadow:inset 0 0 0 1px var(--control-line);color:var(--ink);cursor:pointer;border:0;border-radius:50%;place-items:center;display:inline-grid}.list-pager-buttons button:hover:not(:disabled){background:var(--surface-2)}.list-pager-buttons button:disabled{opacity:.4;cursor:not-allowed}.list-pager-buttons button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media (width<=767px){.ops-table-panel .ops-clip{max-width:110px}.ops-table-panel .ops-table th,.ops-table-panel .ops-table td{padding:8px 6px}.ops-table .ops-route{white-space:nowrap;overflow-wrap:normal}}.ops-svc-grid{gap:var(--sp-4);margin-bottom:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(290px,1fr));display:grid}.ops-svc-card{width:100%;padding:var(--sp-4) var(--sp-5);text-align:left;font:inherit;color:inherit;cursor:pointer;border:0;gap:10px;transition:box-shadow .15s,background .15s;display:grid}.ops-svc-card:hover{background:var(--surface-2)}.ops-svc-card:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ops-svc-card.is-selected{box-shadow:inset 0 0 0 2px var(--accent)}.ops-svc-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.ops-svc-head strong{font-size:var(--text-md);overflow-wrap:anywhere}.ops-svc-sub{color:var(--muted);font-size:var(--text-xs);line-height:1.4}.ops-svc-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.ops-svc-stats span{gap:1px;min-width:0;display:grid}.ops-svc-stats b{font-size:var(--text-lg);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.ops-svc-stats small{color:var(--subtle);white-space:nowrap;font-size:11px}.ops-svc-stats .is-bad b{color:var(--danger)}.ops-minibars{width:100%;height:40px;display:block}.ops-minibars rect{fill:var(--tone)}.ops-svc-foot{color:var(--subtle);font-size:11px;line-height:1.45}.ops-host{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:120px;color:var(--ink-2);font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-block;overflow:hidden}@media (width<=1599px){.ops-table .hide-lg{display:none}}.has-panel .ops-fail-reason,.has-panel .ops-table td small.ops-fail-reason{max-width:170px}.ops-block{margin-bottom:var(--sp-4)}.ops-section-title{font-size:var(--text-md);margin:0;font-weight:600}.ops-jobs{margin-top:var(--sp-4)}.ops-jobs-bar{align-items:center}.ops-jobs-bar .ops-block{margin-bottom:var(--sp-4)}.ops-section-title{margin-right:auto}.ops-table td small.ops-fail-reason{max-width:300px}.ops-fail-reason{max-width:340px;color:var(--ink-2);font-size:12px}.ops-rules-table .ops-clip{max-width:190px}@media (width<=1599px){.ops-fail-reason{max-width:240px}.ops-table td small.ops-fail-reason{max-width:220px}}@media (width>=1280px){.ops-jobs:not(.has-panel) .ops-fail-reason{max-width:520px}}.ops-sched-desc{white-space:nowrap;max-width:440px}.ops-actions-cell{white-space:nowrap;text-align:right}.ops-actions-cell .btn+.btn{margin-left:6px}.ops-locked{font-size:var(--text-xs);align-items:center;gap:4px;display:inline-flex}.ops-detail-actions-end{margin-top:var(--sp-4)}.ops-recipient{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.ops-recipient-field{min-width:260px}.ops-toolbar .ops-recipient-field input{min-width:240px}.ops-panel-note{margin:0;padding:0 20px 16px}.ops-system-grid{align-items:start}.ops-json{margin:0 0 var(--sp-3);border-radius:var(--radius);background:var(--surface);max-height:300px;color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 12px;font:11.5px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.ops-json:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ops-flash{margin:0 0 var(--sp-3);border-radius:var(--radius);font-size:var(--text-sm);align-items:flex-start;gap:8px;padding:8px 8px 8px 12px;line-height:1.45;display:flex}.ops-flash.ok{background:var(--green-soft);color:var(--green-text)}.ops-flash.warn{background:var(--orange-soft);color:var(--orange-text)}.ops-flash>svg{flex:none;margin-top:3px}.ops-flash>span{overflow-wrap:anywhere;flex:1;min-width:0;padding-top:1px}.ops-flash .ops-icon-btn{width:28px;height:28px;color:inherit;margin:-2px 0}.ops-confirm .dialog-body{gap:var(--sp-3);display:grid}.ops-confirm-text{font-size:var(--text-sm);color:var(--ink-2);line-height:1.55}.ops-confirm-field textarea{resize:vertical;width:100%;min-height:76px}.ops-confirm-tick{align-items:flex-start;min-height:0;line-height:1.45}.ops-confirm-tick input{flex:none;margin-top:2px}@media (width<=767px){.ops-svc-grid{grid-template-columns:minmax(0,1fr)}.ops-fail-reason{max-width:160px}.ops-recipient-field,.ops-toolbar .ops-recipient-field input{width:100%;min-width:0}.ops-recipient-field{flex:100%}.ops-actions-cell .btn{padding-inline:10px}.ops-jobs-bar .ops-block{margin-bottom:var(--sp-4)}.ops-section-title{flex-basis:100%}}.ops-chip-result{border-radius:var(--radius-full);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:220px;margin:0 4px 2px 0;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block;overflow:hidden}.ops-chip-result.ok{background:var(--green-soft);color:var(--green-text)}.ops-chip-result.bad{background:var(--danger-soft);color:var(--danger)}.ops-bad-text{color:var(--danger);font-weight:600}.ops-secret{letter-spacing:2px;color:var(--muted);font-size:13px}.ops-config-head{margin-bottom:var(--sp-4);flex-wrap:wrap;gap:6px 28px;display:flex}.ops-kv.ops-config-head>div{align-items:baseline;gap:8px;display:flex}.ops-flags-title{margin:var(--sp-4) 0 var(--sp-3)}.ops-lookup-form{margin:0 0 var(--sp-3);align-self:auto}.ops-check-group{border:0;grid-column:1/-1;gap:6px;min-width:0;margin:0;padding:0;display:grid}.ops-check-group legend{padding:0}.ops-rule-form{max-height:min(62vh,560px);padding-right:4px;overflow:auto}.ops-rule-form .form-section-title{grid-column:1/-1}.ops-rule-form .field input[readonly]{background:var(--surface);color:var(--muted)}.ops-imp-form{margin-bottom:var(--sp-4)}.ops-imp-form-body{gap:var(--sp-4);padding:var(--sp-4) var(--sp-5) var(--sp-5);display:grid}.ops-imp-form .form-grid{gap:var(--sp-3) var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ops-imp-form .form-grid .ops-imp-wide{grid-column:1/-1}.ops-imp-form textarea,.ops-confirm-field textarea,.ops-rule-form textarea{resize:vertical;width:100%}.ops-imp-target{gap:10px;display:grid}.ops-imp-target .ops-people{margin:0}.ops-imp-target-card{border-radius:var(--radius);background:var(--surface);gap:8px;padding:12px 14px;display:grid}.ops-imp-target-card p{margin:0}.ops-imp-created{margin-bottom:var(--sp-4);box-shadow:inset 0 0 0 2px var(--orange-dot)}.ops-imp-created-body{padding:var(--sp-4) var(--sp-5) var(--sp-5);gap:10px;display:grid}.ops-imp-created-body .ops-note{margin:0}.ops-imp-history{margin-top:var(--sp-4)}.ops-imp-history .ops-toolbar .ops-section-title{align-self:center;margin-right:auto}.ops-imp-history .ops-toolbar .ops-count{margin-left:0}@media (width<=767px){.ops-imp-form .form-grid{grid-template-columns:minmax(0,1fr)}.ops-rule-form{max-height:56vh}}@media (width<=1199px){.ops-table th,.ops-table td{padding-inline:9px}.ops-fail-reason,.ops-table td small.ops-fail-reason{max-width:150px}.ops-rules-table .ops-clip,.ops-table .ops-clip{max-width:140px}.ops-sched-desc{max-width:240px}.ops-system-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=1299px){.ops-table .hide-tab{display:none}}@media (width<=1599px){.ops-table td .ops-code,.ops-table td .ops-action{overflow-wrap:anywhere}}
