@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAAQgABAAAAAAB+wAAAPGAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEgAXBEICoJ8gkMLFAABNgIkAyIEIAWFCgdiDAcbhQbIPg1vjKH/SZAjGKk6g0Cz4ZDoqIq9ujYKvX+56LMpeKqx39u9+yKCiGazJpasMYQkFiKJSmhkKiQRqyQSleGnud+7DTG5L6jJGPdNJriH5JbwBBG6JVISgmK/170QegCQmWgmlyggSYrYRiVCU8mVdSoUqdZWfpsHE7m10AI7gL2xGtH/pVj0d/045f9hYeqMUicC2WdxoPzP5fhug8y4jw3gwAJO/G57a1i0nm8KMKFeYGdNPGoNsbVxiQSWuba48mH8gQtyCg5ZGAvDD5agO4oAPwBQQhhCgFe5RFRvaXUzOG0xggGcWMA/AWSTcAawAQKEpdyEm4qzANWCIApAGEIZSsgghakUSrjFgCREbxu/cRzQGwWAUWtGFiE8qqmDC6iWQ71FdfCqquouvdcYFiOuCtAtgPxPewaK0aS0ggxDgXLUnlIlIIClbUaH7BBxFsMkfAAIGOGXWNkB/QSAAgPiaALiLAwBgtyUU7EC+w6DKv6QgJ+R/PPNsuFpiK5bSEIxAA+AKMALZgHrgCwgDgCl77kplpAM67LJDJl10GcCuuhI+33L9mq73u62NvsWZu3rMWb3cgvn12x/P8lffyqb/HglnFmEf+rjy4X7/ql37b5+6vY78+HB0UP1UoRu7ouL/fbFUbnaWt23vt79XKns2uzimnswMDd4/sV5T+tRyfifEJTXp0rO6M72e3+7lt5c7R9a9l9j3tdUtXfNZMugZxqkJWfd0l8q27px4E9LcXRh+Fpfy289JTldsUkNKfimSnyrbqPraoPjv2PDRXk54d4RkT5h2QXVBUA1QMDF5ccP6u/k3oV4ABGgm/SiDaYEBEz6xGt/Ouacs1M038DXTWWO5d+ncE1S92PgXGCNBfLTfYd+nQZUqml3/MkRYQsLL6dd3AEtEiDg0c5CBh22pgT47TIkwwMcReIOIh9JUMFwg9HlDax62+CQNQdOtdrtQZ2kDgJ+SbAEww1e/LyL8uEFY4z0GAYVBAwdNVYbQk1JRcB/FpjwMsWJw2Nx1EwEvFg8NZ1YRhylOHVKVSvHMNAiDMpwjAQETytGI0JJpMPgtCI4PDUjAyxJrHgJkuK1sHjCUuBqyVKuWJE6WQVKqfrUwiJGJqO4dr4JliheogRYMxUC19bqGdFobDRUQGxZM7ZQHwtvPKSkdvNFA2KxD6bEIcTgSNEBUTYW8eKokr1jKFMRKOrzf9Xm4AHl3oPChBErDnE6uwc4MkSsRYM6Pr4g3g5MjC9Mtl1gRYF8TUNxOCXjk+JT/6qR+4TujRUA) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAY8AA8AAAAAB9AAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABYAAAAWABEABEdQT1MAAAFwAAAASwAAAGYrviSMR1NVQgAAAbwAAAAnAAAAKLj8uOpPUy8yAAAB5AAAAE0AAABgVhGVxlNUQVQAAAI0AAAAPAAAAEjnb8weY21hcAAAAnAAAABCAAAAXEHQ4ltnYXNwAAACtAAAAAgAAAAIAAAAEGdseWYAAAK8AAABXQAAAXztscPjaGVhZAAABBwAAAA2AAAANiKfW4FoaGVhAAAEVAAAAB8AAAAkCEwBamhtdHgAAAR0AAAAIQAAACIN3QCpbG9jYQAABJgAAAAUAAAAFAFhAextYXhwAAAErAAAABoAAAAgABwA5W5hbWUAAATIAAABIQAAAoo6Dl9McG9zdAAABewAAABOAAAAYvVu8ckAAQAAAAwAAAAAAAAAAgABAAEAAwABAAB42j3HpQECQAAAwHvBNZOZgBWQRGQAtOA2Py7XTkBVV08cjMYTze3suteU4X4XEDar816Zz2RRWVAWtUFXRxAFSRAlUfjPAyrAB5UAeNpjYGRgYOBiUANCJhc3nxAGoZzEkjwGPgYQYAER//+DSABaSQVVAHjaY2BhUmGcwMDKwMDUxRTBwMDgDaEZ4xg0GDUYUAE7EDPBOB4uzv4MBxgUFLYwv/h3kYGB+QWjvgID42SQHONbpp1ASoGBGQDyIQy4AAAAeNoNx7ENQFAYBsD7fgqhfSNYTIVE+RJrGMhwXHciJoWmsKp7P3pw9u3KLEbNgMqYh3oxyP8FhA/Q2QU+eNpjYGBgAmJmIBYBkoxgmoXBA0jzMXAA5dgYFBgcGRYwHGRkUtjy/z9QHIX//8n/A/9T/zv+Z7wfBNSNAgBlvxJCAAAAAQAB//8AD3jaPMsh0AFBGAbg99ubf79/ru1wJwisG6vfut2gCehV0QSZXuiVTK/0kejBjN4UI9pjhlGfmQcCOUAnuiACA1Zp1dZK57QOKxqHHV2CadIGAgoQM3EAIwYsWco6mttRpCgeUDzphWuP+vOFODyH2+2dRmGPsvysaCkMCACDccP559OvS/wv3oBK+RAVcUQdHvhrGVN0vfNZoRMtWSbVNLW58zUpqdDOu6JrTNaS3HHO5mmaVFmyTajxmkumFTsLmxkTw79pnGzcqg4a9sF8QRJ1/2YzRnBzCMsZK+g4S7oppLraxpjwsrI5cZvG2kiJ8vKYm/PwikurWcg5mCv5hTHOtuDkElOQ1ZPW1Na2sdYPMlUQ5+CwALrXkEmH4ScwJJgZGITNjdkNc6M7mXR6e8EyTxgTmdMZeIEySmqmxiIg9wIptpO+3rZGmlpGNr5MT1zsNTQ01R2dANfkSg4AAAAAAQAAAAMDVJ3QuIhfDzz1AAMD6AAAAADfih8IAAAAAN+a9WL/Uf7/BRAD4QAAAAYAAgAAAAAAAHjaY2BkYGB+8e8iAwOr8//Av76sAkARVMABAJYoBbwAeNpj/MtgxFTLIAjDjCwMDCDMZMAgzMDAYMhgCABUZAOSAAAAAAAAFAAvADsARgBGAEYAmQCmAL542mNgZGBg4GRoAOJkBlYwDwFYGBgBFx0BAgAAeNqMkQVKRWEQRo/dknZL2N3d3S1tv+6mcRFSrkbKZflxfd38zJ0zPcwF6vmijJLyGuCnZDrKJXSWNEe5lMaS6iiXsclvlMsZ5TvKFbTzGeVKhnmMciPz9P9zCZrVHOXyRM+SWvlro1wngmtcOHjGyRF+aTsWXnngXdqEWT6Jnhsfy0zo+RT3KurGLx7HJ7ZLu+Q1KX7BPqccGj1tvOt7gFdRv9gnzxjXIhMBVT0rci/La3RxKbeXGfWaZEo6uUdvWpfetC6JqhXV7bLDhajoLdKsfJN3xG4ieOMX6mWaScmU6Faed+n8u18atlX2q1G/pcm6tHFDn+zBjKubsBgZAV4Y59X4axMSbWtYdolJElDFhPIS08fk/xuy7ZoAB/xhkwAAAHjaY2BiAIP/7QwaDNgAJxCrMJxkZGJgZmRmZGFkZWRjc0wqSi1LZS/NyzQwcDQA0UYGTiacicmlJanJ+blJPCAZYwMzveTE4lQAH2ARFAAA) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/hanken-grotesk-vietnamese-400-normal-BLrFBAHj.woff2) format("woff2"),url(/assets/hanken-grotesk-vietnamese-400-normal-C-iWyKLC.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/hanken-grotesk-latin-ext-400-normal-DR7lHpW4.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-ext-400-normal-DI-aIsWt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/hanken-grotesk-latin-400-normal-BG6hkEXj.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-400-normal-CjyVwvJV.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAAQIABAAAAAACAQAAAOvAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAXBEICoJ8gkILFAABNgIkAyIEIAWFKAdiDAcbngYoLgpsW7F2EW5iaDHUuE4MfK2EiuDJv6h63X9mQfCkiMhBhsvo5EiaqbW2d/+I+KtIQl7tBEmQGRKRRIOu1qgM08UaQyggDm7nRPJEQ8yt/i+kPxzR/3NNvjVI8z4uSAc88SqLKssyHUVb097RKkT3pocLQBwwzNwaPrRPwsDGVWMcQ0JC6POwBxWoCUhCyEKguo4k4ImTfTHQv3MdVgf9CqgQiB2bkDroRCAUkqpCVUlDRHQ1D5JAyEKSJYGU4qidMYjDVkQilhfxV/yqRLoxLQXMUK3Eaqx0JRxVkEydutYguNe2j/N3/7OjjD5tAXQrxM/pRbRFEP1vS0MwOoKPbCliELZdqgpVFxoiFnfUoG4WEKX4FSRkNEQQ+IJTAbUDsClry2zfm5HaPlMBxKLylTdsMk58Oh9E7h2iQh1QDdQHVMcywAlAc0BDAEn61CcqhCiKKkXjYjt17Rq5VlpfK9essaPGtuqrVyaTPYvWbV+4EFc82GLJ4SPOvvlhjZsudlj0cm5z1LE76xb/63f4H3up+o2f9Fx8dDH2/HlnH2m6xk1ZuMYWNc6+eiJ9/fBDzvW/fNflgx0iu/P1135hTq0X9rzb8b2OffZaL/9ttxws1OTtcs2ifurg4aN54vRp2vBVpxF+zfPqLpPezVhxxNg+pnTtuPK4cx07sOdmLi627vZzbK74f/MIh3FRKIso5sp/ek5tZ9stN3vviznTbUYH/aNT55eOkyw+M4A7g1BFFb/4BK0uq3qaCKA26Xi+Rm22BYScFx5lvr6+ps7I36rm/B18emObqir5nt/W66/caaU8xXJTpJNusFD+f6j0OwWqxr/6J1HDioKXS30NAnrhg1DNQETNEDjokkBtj8miqIa3YiiA0D21IakdIBvtsbEwQklzh1DW1RbUNpgH6polYNfTq702JGLjxtIlUp1Y/T+ooTrma6hJqXPDpFSVZCTllBQUYfxyskpwNS4pdRU5dSROiAZMDqqiCINpQmkICaEyECVNGJQAqqRKoAFRIBTk4OOWKs38+GBCDkKSN2p7KQERManm13KxsQrWho5E+l+Aq0pBHtlMcudbNTRtQIb1TUgkRCTESGKKckhUeQgiZXmGgr0ZDlPUgECRsAZrLCjZ1sGlCWQ01AjVpCBIWm2QQhscSqioB0G+gpMNJkIr0xXKaujoKZIcOYooRbk8bv3K/ikdh3aXRCKzSD0pEVlkXes24Fju9xrSXuwQSUWKdTYSz6PSE8Ut) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAY8AA8AAAAAB7QAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABYAAAAWABEABEdQT1MAAAFwAAAASwAAAGYrviSMR1NVQgAAAbwAAAAnAAAAKLj8uOpPUy8yAAAB5AAAAE0AAABgVnWVylNUQVQAAAI0AAAAOQAAAETlE8wbY21hcAAAAnAAAABCAAAAXEHQ4ltnYXNwAAACtAAAAAgAAAAIAAAAEGdseWYAAAK8AAABXgAAAXwE1rnAaGVhZAAABBwAAAA1AAAANiKkW4FoaGVhAAAEVAAAAB8AAAAkCFEBaWhtdHgAAAR0AAAAIQAAACIN/ACZbG9jYQAABJgAAAAUAAAAFAFhAextYXhwAAAErAAAABoAAAAgABwA5W5hbWUAAATIAAABIQAAAnQ1/F4xcG9zdAAABewAAABOAAAAYvVu8ckAAQAAAAwAAAAAAAAAAgABAAEAAwABAAB42j3HpQECQAAAwHvBNZOZgBWQRGQAtOA2Py7XTkBVV08cjMYTze3suteU4X4XEDar816Zz2RRWVAWtUFXRxAFSRAlUfjPAyrAB5UAeNpjYGRgYOBiUANCJhc3nxAGoZzEkjwGPgYQYAER//+DSABaSQVVAHjaY2Bh0mD8wsDKwMDUxRTBwMDgDaEZ4xg0GDUYUAE7EDPBOB4uzv4MBxgUFLYwv/h3kYGB+QWjvgID42SQHONbpp1ASoGBGQAXMA0gAAAAeNodxIEFgFAYBsD7/ooUhEZosUBFgEeLN0B0OBGjwvq/qec4W3C1/c4keotAhrzoRGUG4QO3sgTdAAAAeNpjYGBgAmJmIBYBkoxgmoXBA0jzMXAA5dgYFBgcGRYwHGRkUtjy/z9QHIX//8n/A/9T/zv+Z7wfBNSNAgBlvxJCAAAAAQAB//8AD3jaPIszeGxRGEX3f+7MOflebGOM58tnG7FdxahjN7HZt+mn/2KXqdM3URer3HutBQYZoHXahwQBKKGWUIcl1CLT7PkAZZ4v0v65y07jYAgCWDPzQeARoJBCNpdFOCQpiILTKKjx1fnBK1LrG5jv7OfCwik9P9/DxcVtJfUxJwiAgMARNh/+yrufw6/96kDIxTGLYsuIhwGYrU6nphq6YdMskRYueGREVJQi60Y056RZdEPXVKfTZuXCpeuKHBUVGSG4UCIp5UftWy6ZXjJ+vuBn9re+c7xNDSqL7TyfoQLBQxOeJXk+xmSkVP74WKr5S6a3AXrp+9gIf/+PH/39o+LsSsJbxf0vhxY+cxGZGO+NcXvlD+9eZOmJkdz8GYSn7AmZmA8SEG4o4mlD9TB7MjR0Qw6oXKpE4BWxOi9naiwCci+QYjvu7+2mr6qm5+rL9NjVXlVFVcXJCQCvfEkeAAB42mNgZGBgYGYOqfY4HxbPb/MVyH7BAAT3u+Q5wPSsr0n/A//9YxVlfgTksjEwgUQBcMANhAAAAHjaY2BkYGB+8e8iAwOry//Av96sokARVMABAJZ2BcAAeNpj/MNgxNTJwAfDjCwMDCDMZMAgwMDAoMugCwBW0wOhAAAAAAAAFAAvADsARgBGAEYAmQCmAL542mNgZGBg4GRoAOJkBlYwDwFYGBgBFx0BAgAAeNpiYGDgYZjGwMzAyMIJZB9ilIGyGRm0GD5B2UwMfAxPIGwgacewDMpmQVLDyiDF0ANohKy1KgiCKFi45aRIgrtDgrtrCs/d9e8p3OXs6b3VPjPP3MogoSe2c57xJ25wF/3P3CJ3P3On3PnMXRKckyXNHRn2KKkp4gQ5IkxIKpu7ISxFiZnX/HIUWWaCCTVIwWyOkjxOUU6pWaNR8ydsc8guzidJ2P8OBbMluWhk7MOma7mAM6zI0MsM40wypb7RCrtsssGJ9N+553JUSllf+NDV+6mv90PfhpkcdQqv9+9lmkltSro0ElZ/n3eKPgn9IPazRlmNGfOm+oNf3jTqNiusCzBO0Mo0E5pnR4+UFtXKdkxY97Z9jOiH7UP3TuVfYwAAAHjaY2BiAIP/7QwaDNgAJxCrMJxkZGJgZmRmZGFkZWRjc0wqSi1LZS/NyzQwcDQA0UYGTiacicmlJanJ+blJPCAZYwMzveTE4lQAH2ARFAAA) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/hanken-grotesk-vietnamese-500-normal-DxwlvJEc.woff2) format("woff2"),url(/assets/hanken-grotesk-vietnamese-500-normal-DkDHNoXI.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/hanken-grotesk-latin-ext-500-normal-DLb9JDK8.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-ext-500-normal-BNvrJ0Ju.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/hanken-grotesk-latin-500-normal-DrDcrrxK.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-500-normal-Bo-NxEKf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAAQoABAAAAAACBQAAAPPAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAXBEICoJ8gkQLFAABNgIkAyIEIAWFOAdiDAcbsAYArgZscK1wkCT3IhFNYz5DPm7qldBpMgqe/7f7d5878wHPl+fTgfT+owOgTZ10qYRSldRmpU2VVAIBtVb23O0DgSLUxDaggFgCgYsH4vL58iGQsX8lwzz/N2ssW5itSTCXRf3EepFFaWB193xtOsLr/8L5w/mRXT/9/eStz9e8ZyvSAU88yqPKhpE04lG0VVOmwL/pw8X5dE4v9dEEsYPKnNkNQhGQDgAUITRCQKo63dTwvCVryFxtiQXIpAP+E4CsskcCJAMBQqckE8mUfDpoUkkoAEIjFI0iiILdyA0acLkGYMdOAD38izUkQB3SSbC4EJlLU2gg2JKA0nbB8MxyHqitvY3+nLrSFwzttchpCMi/2EMIBo1EvyrkU6CO2uZ0xQS4N1t8ko7Ip1dbSIOxnAAkWW0AQAEN5NMIvDwLQCY/nESGKZe8DDHjzh8YjMRXe50B4TcNEuLSQhLkAEgBkAtSwUawD5SDfACK+qW3RCck0pP0wqjtOztNy1CzGfH0NG/aitS5W9avT5tpOTs5Ce+cKuorV+y4+jHj8LumfP8AcA6Bolz3+LoB7/Io/dChpXr8Dn5+gnZcKWx9iTO2G0PG4RWW7NSxHl3f863TFp6ZkFbwoMm/P7ygJSJbTkrgowKoyhzz9Y9smyi8OB6IhoZKaj5vF/sX9n5Z6ZQsPDx9dfaCtPHUQ27GxAeD+8aXHZ/Ltbv9rIHMFWPzprZ39q0ZKC16pbHJf2H7maPefE68ORPLay4JwmUhmlkyiaojIEmSHyKDk53CBKRBHUL36sstQ4AWX9O+/ms9L6v7P4Vqn4CPh1B65KUXSkvcz4DEWyzjFimpsxbEqcuxv5M7OfzGQjgzgg5vpzpkghYtBKTopSuhsSymCMh0VZxEKcCjML4GoiOUAyUzpAPNtKeZuh1IUOo6SNTmOMjUbxnIVq6bmSNbDYtAusJ8SXyGSsWlPi+NVLBKkJ9FwEIxFj5uVuvZuTm5xKxm5+c2LcjHZoHHbF52AYb5IoJi7KK87f9iQqKGdeoUZRXhFhIT1SHKzadDUIRTp+XmWcIaq+Zuj0CyDpNFuGTBGIr36GDq0rPiHbHAHDOWp44ftar6TnE+FpF3zW34q2YEu2GPyNn9EkM3U7cuhjVc7Axe2QoM5ZFZOeBPiYtxCYqIMjSdscbJbTVL3KwOVkF+nfwsIojEN6OcReKiOrlEwN/OaWmmCIH/p8GCKaDOkxBDC5rokiCJiVOzKfxHJW0JuE1zytRf7Dane1MWWOMxezYbknTUbPaY/elthN8PiW5ERwE=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAY4AA8AAAAAB8gAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABYAAAAWABEABEdQT1MAAAFwAAAASwAAAGYrviSMR1NVQgAAAbwAAAAnAAAAKLj8uOpPUy8yAAAB5AAAAEsAAABgVtmVzlNUQVQAAAIwAAAAOQAAAETld8wcY21hcAAAAmwAAABCAAAAXEHQ4ltnYXNwAAACsAAAAAgAAAAIAAAAEGdseWYAAAK4AAABXgAAAX5c5uVEaGVhZAAABBgAAAA2AAAANiKpW4JoaGVhAAAEUAAAAB8AAAAkCFYBaWhtdHgAAARwAAAAIQAAACIOHACLbG9jYQAABJQAAAAUAAAAFAFkAe9tYXhwAAAEqAAAABoAAAAgABwA5W5hbWUAAATEAAABJAAAAoQ3x1+DcG9zdAAABegAAABOAAAAYvVu8ckAAQAAAAwAAAAAAAAAAgABAAEAAwABAAB42j3HpQECQAAAwHvBNZOZgBWQRGQAtOA2Py7XTkBVV08cjMYTze3suteU4X4XEDar816Zz2RRWVAWtUFXRxAFSRAlUfjPAyrAB5UAeNpjYGRgYOBiUANCJhc3nxAGoZzEkjwGPgYQYAER//+DSABaSQVVAHjaY2Bh0mGKYGBlYGDqAtIMDN4QmjGOQYNRgwEVsAMxE4zj4eLsz3CAQUFhC/OLfxcZGJhfMOorMDBOBskxvmXaCaQUGJgB4X0MiQB42h3EAQaAQBQFwHm/JAWhI3SoAAIVAZauHw1GxKiw/m/qPa8W3O14MoneIpChdnSiMoPwAaxHBEMAAAB42mNgYGACYmYgFgGSjGCahcEDSPMxcADl2BgUGBwZFjAcZGRS2PL/P1Achf//yf8D/1P/O/5nvB8E1I0CAGW/EkIAAAABAAH//wAPeNo8ywHGAkEYBuD3m/XP9ytitbtJ0LSaDcBOM3OEdINOULcISAok6CjpBIku0A0KQFBotogAHh4IlACd6IIIDJhYxX0Vq5J2YUPjsKdLKAa0gkAdEGtxAKMGGDKUF4r7UVSnZELNuQ1XS8V0Kg6v0Xb7pFa4oaq+K1oIDQLAYDxw/vns5/9Y4kNoVHfRFkd04IG/ntZ26J3PrUqVZJkmWWZK51tSklXOOzvUOu9JLpwzZZalCUs2KXVH7+XasDKx6DJx/5vPzsIlb6Fk5sWfLdX4bzJjBAuzgKS2lLqNeIxilptjghknI6Mxr3m8vZgIJ6eHByenqKSSvqSpgZ5XCOMcTxYWYSlJVTF1DQt7O4NQcykRZiZPoIu1mLQZBYBhwczAIGxuzK6VVzGVSbuvDyzzmDGeOZ2BFyijpGZqLAJyL5BiOxrg7a+tqKjt58v02NVeSVFJ0dkRAA8oSTQAAAABAAAAAwNUxah1nl8PPPUAAwPoAAAAAN+KHwgAAAAA35r1Yv9R/v4FGgPjAAAABgACAAAAAAAAeNpjYGRgYH7x7yIDA6vb/8C/nqxSQBFUwAEAlt0FxQB42mP8zWDENJWBG4YZWRgYQJjJgIGPgYFBi0ELAFlNA7MAAAAAAAAUAC8AOwBHAEcARwCaAKcAv3jaY2BkYGDgZGgA4mQGVjAPAVgYGAEXHQECAAB42pWQtUFEURRED+6SoNEmuLsluLum6Lp+QepAyqAIKqIBZIJ13+C+OTPPL9DIBxWUVdYBX2XDUS5jlN8ol9PMd5QrWOUzypVJa6ro5i3K1QzjjnIzs0yKxWXort4oV9NKe5TrlddHuUEEp4QIcEOQHSypHw93nPFAQLRKSMk9VzzIuXBjocIijMkiY4xJ7zDwKLHEo5hivzSk1MUYR2yyzza6Ax8PGrcwCGGJTSUjGbddyhvoHPkgDqYYZZwJaYKW2GadNY5EpZx9Ku/CFt9gJO/EkbbXkbF3TRrmBYNoL3AwybhqQnSu5EGa/8xj5PHK36H9rGBL3coMTPn+jP668KAV2Nwyyh0hAoypbjCQw69yqWxM5e6k20eUJ98+8A8O6WKAeNpjYGIAg//tDBoM2AAnEKswnGRkYmBmZGZkYWRlZGNzTCpKLUtlL83LNDBwNADRRgZOJpyJyaUlqcn5uUk8IBljAzO95MTiVAAfYBEUAAA=) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/hanken-grotesk-vietnamese-600-normal-Cp8QQjQf.woff2) format("woff2"),url(/assets/hanken-grotesk-vietnamese-600-normal-DHaFH8q1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/hanken-grotesk-latin-ext-600-normal-FY8kSObK.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-ext-600-normal-DHIm05DD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/hanken-grotesk-latin-600-normal-CIXX6EOa.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-600-normal-NEn2C4Q3.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,d09GMgABAAAAAAQQABAAAAAAB9AAAAO1AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAXBEICoJ8gkULFAABNgIkAyIEIAWEcgdiDAcbawYAPgzYZKiDVf9AJG6cDDnBomS69KOW+n5qazEGz//bVff9qmloNUKNvSCjbbmmtQCzjTfck4MRlMqpcpgH+HHY+xMVmtIalHYAo5yoTKXFQ5zayVEoGWY92TdNoFQlCEmzUTTRuv4/nC9cFvmd4kJ9rcssgaOlihjv/5yLtwZp3scF6YAnvj6vsqOyCjrDgZ013RsdtWiVn8GJ6+k26YjeXEM1TLo9UgS4AIAihEYIcGgyQPUsXL4ez3JfPo2HDvhPALIslE1jAwKETrERNkoxHbSpJRQAoRGKRhEmQjSmRQsxMQNERMzXIzR1WzTUvohRYBkOImO0BbPJrED5ayzumbeKi8rKLke+/zfa+9BahhwC5EvEfTBohLBRoJgCTdSmSDQvgNh6X1IYUUynESo4ARAgAIlVtwEU0EAxjYBiusXAw0axMMxx0XiIMG79B/eJ/68FncKzfmIcWsh/UgHYAUwEDrAF7AHVoBiAor70keiEROlWvTRqrVucmlv53eRyJpznmM2bNjnbd2pqKmw9Vzhy6ZItlx8l7p8uHXrWwqCkZ3Tjw6sK2isPEvY9bRp+eenkpC2ns2bZ0rU1GxIP3Kedh3DcRMfM0ZllDXMOdbLl3psjjvjg/Z9X7bonrMNIitTwdN+skvyB49E9Cyvq3lSX9c/v+bq5o3rxwb7V7py4ZsKZ/oy1n0y/l5ftW1veeGxo4UxjdmLW4jm+/pENk8vun1XdYJ7deeKg8Rd9vfNnb647U1iSrtk8b+UcVA0BVlb/ZBbbnKcPYIM6EbkTr7YIAVrk+r+anJXqX+MitU/Ax32lcbj65NfY/t8uE1jK2KOMotRFDfrfhd4PVbSFXwxTikGHKtXGiVL/gAC7IboKGi/hFAEuF0SSKDtwJxScQVT7B4rNN9BMdRt0LS5AkUp7wKLJZsljRINMwKUUrNh8Awcujm05cYC1TCk+aUvk+STFBGwSEhMRlZe/Nm9MzlS9euUEZMWMycvpkROT1MOUFdFrlYWWW8wnLSEkbZEsU15ITkK3uUxJQRuFZOXEmNIMg3r06TfoYZixKMOyuWvTLDbfPKtMi27iwWO1z2Mas1M2G9/EMKDPgH6G9aJCjNt6qzkk7gV8VM9RkBfNV8AcQ5sMJyJiWssU+PUIMKX0SvHJMq8mmSJMBTm9ojfQd4sU2imb4f/UCWkHTR6HCLSgiS5FYrHM8XffX2P9dKyvb04fPnOgb+6QfQOFfKgRDcfF5vsG+0Y606i8Hv7vWtRBAAA=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAYoAA8AAAAAB7AAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABYAAAAWABEABEdQT1MAAAFwAAAASwAAAGYrviSMR1NVQgAAAbwAAAAnAAAAKLj8uOpPUy8yAAAB5AAAAE0AAABgVz2VsVNUQVQAAAI0AAAAOQAAAETl28wdY21hcAAAAnAAAABCAAAAXEHQ4ltnYXNwAAACtAAAAAgAAAAIAAAAEGdseWYAAAK8AAABUQAAAXa5Z4vvaGVhZAAABBAAAAA2AAAANiKuW4NoaGVhAAAESAAAAB8AAAAkCFoBaWhtdHgAAARoAAAAIQAAACIOPgB7bG9jYQAABIwAAAAUAAAAFAFdAeVtYXhwAAAEoAAAABoAAAAgABwA5W5hbWUAAAS8AAABGQAAAnI2iF0HcG9zdAAABdgAAABOAAAAYvVu8ckAAQAAAAwAAAAAAAAAAgABAAEAAwABAAB42j3HpQECQAAAwHvBNZOZgBWQRGQAtOA2Py7XTkBVV08cjMYTze3suteU4X4XEDar816Zz2RRWVAWtUFXRxAFSRAlUfjPAyrAB5UAeNpjYGRgYOBiUANCJhc3nxAGoZzEkjwGPgYQYAER//+DSABaSQVVAHjaY2Bh0mfaw8DKwMDUxRTBwMDgDaEZ4xg0GDUYUAE7EDPBOB4uzv4MCxgUFLYwv/h3kYGB+QWjvgID42SQHONbpp1ASoGBGQACDwzQAAAAeNodxIEFgFAYBsD7/qIUhEZosUBFgEfLNVx0OBGjwvq/qec4W3C1/c4keotAhnrRicoMwgezyASoAAAAeNpjYGBgAmJmIBYBkoxgmoXBA0jzMXAA5dgYFBgcGRYwHGRkUtjy/z9QHIX//8n/A/9T/zv+Z7wfBNSNAgBlvxJCAAAAAQAB//8AD3jaPU41cNxAFH1/lWgvDAIz7N14FQatIMzMzMyctCnDMTOX7vu5xtQY+3Ht3tzaxzP+zP+BwQVomCaggQNqk9hUITYJl9oSLXQ80UcTiS3b6ScYIgDrZHFwrAYUKYo5glc4PEL5zym/1k1MKyp8/JTFl87+/7+YSCCZzO1of5gEAeBpTmB8uf52uR5BPdIlrEkusBI2giL4wMqolL4XBmHMF5bQuW6Ztq3cIMzTdfJFEAa+J2UsqnMnCJRr25bJlUXiwpfDKxjbyjYnenRtTakq33t6w/eSn4l6uke0Pk/mx/bbb8Wnc8dfhPrudcGLo5bBI9evc24WlG23d+9Q529Q9w2izflW1HDk0ePH3Dv7bOMGCJJtpyIWhwYYoeLy258utr2uLtuZpKfaW6wDjKj0lZlBmnb64PWL97YWlTr3rrLJ08fKSspKTp5IAffUSWUAAAAAAQAAAAMDVA1NLcxfDzz1AAMD6AAAAADfih8IAAAAAN+a9WL/Uf79BR4D5QABAAYAAgAAAAAAAHjaY2BkYGB+8e8iAwOr+//Avx6sckARVMABAJctBckAeNpj/MVgxLSIgQOGGVkYGECYyYCBm4GBQY1BDQBcBwPFAAAAAAAAFAAuADoARgBGAEYAlgCjALt42mNgZGBg4GRoAOJkBlYwDwFYGBgBFx0BAgAAeNqNkYNuRkEYRE/thrVtuw1q23H12+Zz9Gka9aEaFpN0a+bmu3Nm1rtAMddkkZFdANxmVBvOoJYHw5nkc2c4i2luDGfT/jo2h2rShnNp5dRwKeM0P3MGWqvccN7bnBmFygsNF4lgHx8ezvGyRljqxsElJ1ikNuzKVPr8hJhmgAHpJUEcSsLifkJit9Sn1MYAOyyzySqaExcW/VcI4iMsDinpY17OzRXHSoJovLyXRkboZ5Ah6fvRjZ/GN76Of+s/wyqLLLAj+s/KRn9dZ0HsJ0Hw9SYaGWZQNSQ6VGKR/r7TXeRxyl8Slp8jIrUr07nlO7/crk2rqQcRLujnEr0OA6pzgsjhVtlUEULK7e9W71P+fvWuJ3pCXsUAAAB42mNgYgCD/+0MGgzYACcQqzCcZGRiYGZkZmRhZGVkY3NMKkotS2Uvzcs0MHA0ANFGBk4mnInJpSWpyfm5STwgGWMDM73kxOJUAB9gERQAAA==) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/hanken-grotesk-vietnamese-700-normal-C4RNfQp6.woff2) format("woff2"),url(/assets/hanken-grotesk-vietnamese-700-normal-CslVg6dq.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/hanken-grotesk-latin-ext-700-normal-CK2OfQqO.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-ext-700-normal-BXHnjv6S.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/hanken-grotesk-latin-700-normal-CeQ8H3UY.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-700-normal-6IGCzoPh.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans: "Hanken Grotesk", sans-serif;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--font-size-label-xs: 11px;--font-size-label-md: 12px;--font-size-body-xs: .68rem;--font-size-body-sm: .75rem;--font-size-body-md: .8rem;--font-size-body-lg: .875rem;--font-size-body-xl: .95rem;--font-size-base: 14px;--font-size-title-xs: 1rem;--font-size-title-sm: 1.05rem;--font-size-title-md: 1.25rem;--font-size-title-lg: 1.5rem;--font-size-metric: 1.35rem;--font-size-display-sm: 1.45rem;--font-size-display-md: clamp(1.8rem, 4vw, 2.6rem);--chip-font-size: var(--font-size-body-md);--chip-min-height: 28px;--chip-padding-y: 4px;--chip-padding-x: 12px;--font-size-062: var(--font-size-body-xs);--font-size-2xs: var(--font-size-body-xs);--font-size-xs: var(--font-size-body-sm);--font-size-sm: var(--font-size-body-md);--font-size-sm-plus: var(--font-size-body-md);--font-size-md: var(--font-size-body-lg);--font-size-md-plus: var(--font-size-body-lg);--font-size-body: var(--font-size-body-lg);--font-size-086: var(--font-size-body-lg);--font-size-label: var(--font-size-label-md);--font-size-label-sm: var(--font-size-label-xs);--font-size-hero-body: var(--font-size-title-xs);--font-size-hero-title: var(--font-size-display-md);--font-size-chart-total: var(--font-size-display-sm);--color-white: #ffffff;--color-black: #121212;--color-canvas: #6e6e6e;--color-accent: #135589;--color-accent-strong: #2563eb;--color-accent-alt: #60a5fa;--color-accent-violet: #7c3aed;--color-accent-violet-soft: #6a57d2;--color-accent-orange: #f05a28;--color-accent-amber: #d97706;--color-success: #16a34a;--color-success-dark: #166534;--color-warning: #f59e0b;--color-warning-strong: #b45309;--color-warning-soft: #fbbf24;--color-danger: #dc2626;--color-danger-strong: #b91c1c;--color-danger-soft: #ef4444;--color-degraded: #f97316;--color-degraded-strong: #c2410c;--color-degraded-soft: #fb923c;--color-preview-bg: #0f1115;--color-preview-bg-dark: #1a1c20;--color-select-option-dark: #1f2227;--color-border-dark-soft: #8c94a2;--color-slate-100: #f3f4f6;--color-slate-300: #cbd5e1;--color-slate-400: #94a3b8;--color-slate-500: #64748b;--color-slate-600: #475569;--color-slate-700: #374151;--color-slate-900: #111827;--color-theme-light-app-bg: #efefef;--color-theme-light-panel-bg: #f7f7f7;--color-theme-light-text: #121212;--color-theme-light-text-subtle: #646464;--color-theme-light-button-bg: #dfdfdf;--color-theme-dark-app-bg: #232427;--color-theme-dark-panel-bg: #202124;--color-theme-dark-text: #f3f3f3;--color-theme-dark-text-subtle: #a3a3a3;--color-theme-dark-button-bg: #3c3d42;--color-chart-tooltip-bg-light: var(--color-white);--color-chart-tooltip-border-light: #d1d5db;--color-chart-tooltip-text-light: var(--color-slate-900);--color-chart-tooltip-bg-dark: var(--color-slate-900);--color-chart-tooltip-border-dark: var(--color-slate-700);--color-chart-tooltip-text-dark: #e5e7eb;--color-status-draft: #6b7280;--color-status-active: var(--color-success);--color-status-disabled: var(--color-slate-400);--color-status-archived: var(--color-slate-500);--color-status-pending: var(--color-warning);--color-status-degraded: var(--color-degraded);--color-map-marker: var(--color-accent-orange);--color-map-dot: var(--color-accent-strong);--color-home-device-type-1: var(--color-accent-strong);--color-home-device-type-2: var(--color-accent-violet);--color-home-device-type-3: var(--color-success);--color-home-device-type-4: var(--color-accent-amber);--color-home-device-type-5: var(--color-degraded);--color-home-device-type-6: var(--color-slate-500);--color-home-firmware-1: var(--color-accent-strong);--color-home-firmware-2: var(--color-accent-alt);--color-home-firmware-3: var(--color-warning);--color-home-firmware-4: var(--color-danger-soft);--color-home-firmware-5: var(--color-slate-400);--color-topology-device-outdated-fill: #fff0f0;--color-topology-device-outdated-stroke: #cc2222;--color-topology-device-outdated-text: #8a0000;--color-topology-organisation-fill: #dff2ff;--color-topology-organisation-stroke: var(--color-accent);--color-topology-organisation-text: #0d3756;--color-topology-user-group-fill: #edf6ef;--color-topology-user-group-stroke: #2c7a4b;--color-topology-user-group-text: #18462b;--color-topology-user-fill: #f6fbf4;--color-topology-user-stroke: #4f9b62;--color-topology-user-text: #234b2f;--color-topology-gateway-group-fill: #fff1e4;--color-topology-gateway-group-stroke: var(--color-accent-orange);--color-topology-gateway-group-text: #6f2b17;--color-topology-gateway-fill: #fff8f1;--color-topology-gateway-stroke: #db6b19;--color-topology-gateway-text: #723711;--color-topology-device-fill: #efe9ff;--color-topology-device-stroke: var(--color-accent-violet-soft);--color-topology-device-text: #352b79;--color-topology-root-fill: #eef0f3;--color-topology-root-stroke: #6f7785;--color-topology-root-text: #27313f}.app-shell[data-visual-scale=small]{--font-size-label-xs: 10px;--font-size-label-md: 11px;--font-size-body-xs: .64rem;--font-size-body-sm: .72rem;--font-size-body-md: .77rem;--font-size-body-lg: .83rem;--font-size-body-xl: .9rem;--font-size-title-xs: .95rem;--font-size-title-sm: 1rem;--font-size-title-md: 1.18rem;--font-size-title-lg: 1.38rem;--font-size-metric: 1.22rem;--font-size-display-sm: 1.32rem;--font-size-display-md: clamp(1.65rem, 3.8vw, 2.35rem);--chip-min-height: 24px;--chip-padding-y: 3px;--chip-padding-x: 10px}.app-shell[data-visual-scale=medium]{--font-size-label-xs: 11px;--font-size-label-md: 12px;--font-size-body-xs: .68rem;--font-size-body-sm: .75rem;--font-size-body-md: .8rem;--font-size-body-lg: .875rem;--font-size-body-xl: .95rem;--font-size-title-xs: 1rem;--font-size-title-sm: 1.05rem;--font-size-title-md: 1.25rem;--font-size-title-lg: 1.5rem;--font-size-metric: 1.35rem;--font-size-display-sm: 1.45rem;--font-size-display-md: clamp(1.8rem, 4vw, 2.6rem);--chip-min-height: 28px;--chip-padding-y: 4px;--chip-padding-x: 12px}.app-shell[data-visual-scale=large]{--font-size-label-xs: 12px;--font-size-label-md: 13px;--font-size-body-xs: .74rem;--font-size-body-sm: .82rem;--font-size-body-md: .88rem;--font-size-body-lg: .96rem;--font-size-body-xl: 1.05rem;--font-size-title-xs: 1.08rem;--font-size-title-sm: 1.15rem;--font-size-title-md: 1.35rem;--font-size-title-lg: 1.62rem;--font-size-metric: 1.48rem;--font-size-display-sm: 1.6rem;--font-size-display-md: clamp(1.95rem, 4.3vw, 2.9rem);--chip-min-height: 32px;--chip-padding-y: 5px;--chip-padding-x: 14px}:root{font-family:var(--font-sans);line-height:1.4;font-weight:var(--font-weight-medium);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-size:var(--font-size-base);-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;font-family:inherit}html,body,#root{font-family:var(--font-sans)}body{margin:0;min-width:320px;background:var(--color-canvas)}#root{min-height:100vh}.app-shell,.app-shell *{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.app-shell *::-webkit-scrollbar{width:8px;height:8px}.app-shell *::-webkit-scrollbar-track{background:var(--scrollbar-track)}.app-shell *::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px;border:2px solid transparent;background-clip:padding-box}.app-shell *::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box}.app-shell{--app-bg: var(--color-theme-light-app-bg);--panel-bg: var(--color-theme-light-panel-bg);--text: var(--color-theme-light-text);--text-subtle: var(--color-theme-light-text-subtle);--heading-text: var(--color-black);--button-bg: var(--color-theme-light-button-bg);--accent: var(--color-accent);--text-inverse: var(--color-white);--field-bg: color-mix(in oklab, var(--color-white) 72%, var(--app-bg));--field-option-bg: var(--color-white);--field-option-text: var(--color-black);--chart-grid-color: rgba(15, 23, 42, .12);--chart-text-color: var(--color-slate-600);--chart-tooltip-bg: var(--color-chart-tooltip-bg-light);--chart-tooltip-border: var(--color-chart-tooltip-border-light);--chart-tooltip-text: var(--color-chart-tooltip-text-light);--status-draft: var(--color-status-draft);--status-active: var(--color-status-active);--status-disabled: var(--color-status-disabled);--status-archived: var(--color-status-archived);--status-pending: var(--color-status-pending);--status-degraded: var(--color-status-degraded);--scrollbar-track: color-mix(in oklab, var(--panel-bg) 88%, var(--color-white) 12%);--scrollbar-thumb: color-mix(in oklab, var(--text) 28%, transparent);--scrollbar-thumb-hover: color-mix(in oklab, var(--text) 40%, transparent);--tooltip-bg: rgba(24, 27, 34, .96);--tooltip-text: #f8f9fb;--tooltip-shadow: 0 10px 26px rgba(0, 0, 0, .24);min-height:100vh;display:block;padding:0;transition:background-color .45s ease,color .45s ease}.app-shell.dark{--app-bg: var(--color-theme-dark-app-bg);--panel-bg: var(--color-theme-dark-panel-bg);--text: var(--color-theme-dark-text);--text-subtle: var(--color-theme-dark-text-subtle);--heading-text: var(--color-white);--button-bg: var(--color-theme-dark-button-bg);--field-bg: color-mix(in oklab, var(--app-bg) 88%, #000 12%);--field-option-bg: var(--color-select-option-dark);--field-option-text: var(--color-theme-dark-text);--chart-grid-color: rgba(148, 163, 184, .2);--chart-text-color: var(--color-slate-300);--chart-tooltip-bg: var(--color-chart-tooltip-bg-dark);--chart-tooltip-border: var(--color-chart-tooltip-border-dark);--chart-tooltip-text: var(--color-chart-tooltip-text-dark);--scrollbar-track: color-mix(in oklab, #131519 82%, #202124 18%);--scrollbar-thumb: color-mix(in oklab, #7f858f 56%, transparent);--scrollbar-thumb-hover: color-mix(in oklab, #a1a7b1 62%, transparent);--tooltip-bg: rgba(12, 14, 18, .98);--tooltip-text: #f3f4f6;--tooltip-shadow: 0 12px 30px rgba(0, 0, 0, .4)}.app-shell.dark .home-card-view-all{color:var(--text)}.app-shell.dark h1,.app-shell.dark h2,.app-shell.dark h3{color:var(--heading-text)}.ui-input,.ui-select,.ui-textarea{border:1px solid color-mix(in oklab,var(--text) 20%,transparent);border-radius:10px;background:var(--field-bg);color:var(--text);padding:10px;font:inherit;transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.ui-input:hover,.ui-select:hover,.ui-textarea:hover{border-color:color-mix(in oklab,var(--text) 48%,transparent)}.ui-select{appearance:none;min-height:42px;padding-right:40px;border-radius:14px;background-image:linear-gradient(135deg,transparent 50%,color-mix(in oklab,var(--accent) 62%,var(--text)) 50%),linear-gradient(45deg,color-mix(in oklab,var(--accent) 62%,var(--text)) 50%,transparent 50%),linear-gradient(to right,color-mix(in oklab,var(--text) 10%,transparent),color-mix(in oklab,var(--text) 10%,transparent));background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px),calc(100% - 34px) 50%;background-size:6px 6px,6px 6px,1px 18px;background-repeat:no-repeat}.ui-select-multiple{appearance:auto;min-height:unset;padding-right:10px;background-image:none}.ui-select option{background:var(--field-option-bg);color:var(--field-option-text);padding:10px 12px;font-family:var(--font-sans);font-size:var(--font-size-body-lg);font-weight:var(--font-weight-regular)}.ui-select option:checked{background:linear-gradient(var(--accent),var(--accent));color:var(--color-white)}.app-shell.dark .ui-select{color:var(--field-option-text);color-scheme:dark}.app-shell.dark .ui-select option{background:var(--field-option-bg);color:var(--field-option-text)}.app-shell.dark .ui-select option:checked{background:linear-gradient(var(--accent),var(--accent));color:var(--color-white)}.app-shell.dark .form-field-control{background:var(--field-bg)}.ui-select-root{position:relative}.ui-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid color-mix(in oklab,var(--text) 20%,transparent);border-radius:10px;background:var(--field-bg);color:var(--text);padding:10px 12px;min-height:42px;font:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease}.ui-select-trigger:hover{border-color:color-mix(in oklab,var(--text) 48%,transparent)}.ui-select-trigger:focus,.ui-select-trigger.is-open{outline:none;border-color:var(--accent);border-width:2px}.ui-select-trigger:disabled{opacity:.5;cursor:not-allowed}.ui-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-select-caret{flex-shrink:0;color:color-mix(in oklab,var(--text) 50%,transparent);transition:transform .18s ease}.ui-select-trigger.is-open .ui-select-caret{transform:rotate(180deg)}.ui-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:200;background:var(--panel-bg);border:1px solid color-mix(in oklab,var(--text) 14%,transparent);border-radius:12px;padding:4px;box-shadow:0 8px 24px color-mix(in oklab,var(--text) 14%,transparent);outline:none}.ui-select-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-radius:8px;font-size:var(--font-size-body-lg);color:var(--text);cursor:pointer;transition:background-color .1s ease}.ui-select-option.is-focused{background:color-mix(in oklab,var(--accent) 10%,transparent)}.ui-select-option.is-selected{color:var(--accent);font-weight:var(--font-weight-medium)}.ui-select-option.is-disabled{opacity:.4;cursor:not-allowed}.form-field-control .ui-select-root{width:100%;align-self:stretch}.form-field-control .ui-select-trigger{height:100%;min-height:48px;border:0;border-radius:inherit;background:transparent;padding:12px 14px}.form-field-control .ui-select-trigger:focus,.form-field-control .ui-select-trigger.is-open{border:0;outline:none}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{outline:none;border-color:var(--accent);border-width:2px}.sidebar{background:var(--app-bg);color:var(--text);border-radius:0;border-right:1px solid color-mix(in oklab,var(--text) 8%,transparent);min-height:100vh;padding:18px 12px;display:flex;flex-direction:column;overflow:visible;position:fixed;left:0;top:0;bottom:0;z-index:10;transition:background-color .45s ease,color .45s ease}.sidebar-header{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 0 14px}.form-field{display:grid;gap:4px;margin-top:6px;margin-bottom:12px}.form-field.is-selected .form-field-label-text{color:var(--text)}.form-field-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.form-field-label{display:inline-flex;align-items:center;gap:0;min-width:0;color:var(--text-subtle);font-size:var(--font-size-md-plus);font-weight:var(--font-weight-semibold);letter-spacing:.01em}.form-field-label-text{min-width:0}.form-field-action{display:inline-flex;align-items:center}.form-field-control{position:relative;display:flex;align-items:stretch;min-height:40px;border:1px solid color-mix(in oklab,var(--text) 16%,transparent);border-radius:16px;background:linear-gradient(180deg,color-mix(in oklab,var(--surface-raised, var(--panel-bg)) 78%,white 22%),color-mix(in oklab,var(--field-bg) 92%,transparent));transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.form-field-control:hover{border-color:color-mix(in oklab,var(--text) 48%,transparent)}.form-field:focus-within .form-field-control,.form-field.is-selected .form-field-control,.form-field-control.is-selected{border-color:var(--accent);border-width:2px}.form-field.is-invalid .form-field-control{border-color:color-mix(in oklab,var(--color-danger) 80%,transparent);border-width:2px}.form-field-control .ui-input,.form-field-control .ui-select,.form-field-control .ui-textarea{width:100%;min-height:40px;border:0;border-radius:inherit;background:transparent;padding:8px 12px}.form-field-control .ui-input:focus,.form-field-control .ui-select:focus,.form-field-control .ui-textarea:focus{border:0}.form-field-control .ui-textarea{min-height:112px;resize:vertical}.form-field-control .ui-select{padding-right:42px}.form-field-clear{position:absolute;top:50%;right:10px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:var(--text-subtle);cursor:pointer;transform:translateY(-50%);transition:color .16s ease,transform .16s ease}.form-field-clear:hover{color:var(--text);transform:translateY(-50%) scale(1.04)}.form-field-message{margin:0;font-size:.78rem;line-height:1.45}.form-field-helper,.form-field-validation{color:var(--text-subtle)}.form-field-validation{color:color-mix(in oklab,var(--accent) 76%,var(--text-subtle))}.form-field-error{color:var(--color-danger)}.form-field-color .form-field-control{min-height:56px}.form-field-color .ui-input[type=color]{min-height:56px;padding:8px;cursor:pointer}.brand-home-btn{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.brand{margin:0;font-size:var(--font-size-title-lg);line-height:1;font-weight:var(--font-weight-semibold);white-space:nowrap}.brand-mark{width:34px;height:22px;display:block;object-fit:contain}.icon-button{width:32px;height:32px;border:0;border-radius:10px;background:transparent;color:inherit;display:grid;place-items:center;cursor:pointer;transition:background-color .35s ease,color .35s ease,transform .18s ease}.icon-button:hover{background:var(--button-bg);transform:translateY(-1px)}.icon-button.active{background:color-mix(in oklab,var(--accent) 12%,transparent);color:color-mix(in oklab,var(--accent) 78%,var(--text))}.icon-swap-toggle{position:relative;overflow:hidden}.icon-swap-stage{position:relative;width:18px;height:18px;display:grid;place-items:center;overflow:hidden}.icon-swap-icon{position:absolute;inset:0;display:grid;place-items:center}.sidebar-nav{margin-top:18px;display:grid;gap:8px;flex:1;align-content:start;justify-items:center;overflow:visible}.sidebar-bottom-nav{display:flex;flex-direction:column;align-items:center;gap:10px}.sidebar-bottom-group{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:0;padding-top:10px;border-top:1px solid color-mix(in oklab,var(--text) 10%,transparent)}.sidebar-bottom-group .sidebar-footer{padding-top:0;margin-left:0;gap:10px;margin-top:10px}.sidebar-bottom-group .nav-item{width:32px;min-height:32px;padding:0;justify-content:center}.sidebar-bottom-group .nav-copy{display:none}.nav-item{border:0;border-radius:12px;width:50px;min-height:50px;padding:0;background:transparent;color:inherit;text-align:center;display:flex;position:relative;align-items:center;justify-content:center;cursor:pointer;transition:color .35s ease}.nav-item:hover{background:color-mix(in oklab,var(--button-bg) 72%,transparent)}.nav-item.active{background:transparent}.nav-item-indicator{display:none}.nav-item>.nav-item-icon,.nav-item>.nav-copy{position:relative;z-index:1}.nav-item-icon{width:30px;height:30px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:color-mix(in oklab,var(--text) 90%,transparent);transition:transform .2s cubic-bezier(.16,1,.3,1),background-color .24s ease,color .24s ease}.nav-item.active .nav-item-icon{background:transparent;color:color-mix(in oklab,var(--accent) 78%,var(--text))}.nav-item-icon svg{transition:transform .2s cubic-bezier(.16,1,.3,1)}.nav-item:hover .nav-item-icon{background:transparent}.nav-item:hover .nav-item-icon svg{transform:translateY(-1px) scale(1.04)}.tooltip-root{position:relative;display:inline-flex;align-items:center}.tooltip-positioner{position:fixed;pointer-events:none;z-index:10000}.tooltip-positioner--top{transform:translate(calc(-50% + var(--tooltip-shift-x, 0px)),-100%)}.tooltip-positioner--bottom{transform:translate(calc(-50% + var(--tooltip-shift-x, 0px)))}.tooltip-positioner--left{transform:translate(-100%,calc(-50% + var(--tooltip-shift-y, 0px)))}.tooltip-positioner--right{transform:translateY(calc(-50% + var(--tooltip-shift-y, 0px)))}.tooltip-box{display:block;width:max-content;background:var(--tooltip-bg);color:var(--tooltip-text);padding:6px 10px;border-radius:10px;box-shadow:var(--tooltip-shadow);font-size:.74rem;font-weight:var(--font-weight-semibold);letter-spacing:.01em;white-space:normal;max-width:calc(100vw - 16px);overflow-wrap:anywhere;position:relative}.tooltip-box:before{content:"";position:absolute;border:5px solid transparent;pointer-events:none}.tooltip-positioner--top .tooltip-box:before{top:100%;left:calc(50% - var(--tooltip-shift-x, 0px));transform:translate(-50%);border-top-color:var(--tooltip-bg)}.tooltip-positioner--bottom .tooltip-box:before{bottom:100%;left:calc(50% - var(--tooltip-shift-x, 0px));transform:translate(-50%);border-bottom-color:var(--tooltip-bg)}.tooltip-positioner--left .tooltip-box:before{left:100%;top:calc(50% - var(--tooltip-shift-y, 0px));transform:translateY(-50%);border-left-color:var(--tooltip-bg)}.tooltip-positioner--right .tooltip-box:before{right:100%;top:calc(50% - var(--tooltip-shift-y, 0px));transform:translateY(-50%);border-right-color:var(--tooltip-bg)}.nav-copy{display:none}.nav-label{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-medium)}.nav-description{font-size:var(--font-size-2xs);color:var(--text-subtle)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-top:12px;gap:8px}.sidebar-version{display:inline-flex;align-items:center;justify-content:center;writing-mode:vertical-rl;transform:rotate(180deg);color:color-mix(in oklab,var(--text) 50%,transparent);font-size:var(--font-size-062);font-weight:var(--font-weight-bold);letter-spacing:.18em;text-transform:uppercase;-webkit-user-select:none;user-select:none;min-height:84px}.sidebar-settings,.sidebar-notifications{position:relative;display:grid;place-items:center}.settings-menu-btn,.notification-menu-btn{width:34px;height:34px}.notification-panel{position:absolute;left:calc(100% + 14px);bottom:-22px;width:min(446px,calc(100vw - 108px));padding:16px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:24px;background:linear-gradient(180deg,color-mix(in oklab,var(--panel-bg) 99%,white 1%),color-mix(in oklab,var(--panel-bg) 96%,black 4%));color:var(--text);box-shadow:0 26px 54px color-mix(in oklab,var(--color-black) 26%,transparent),inset 0 1px color-mix(in oklab,var(--color-white) 68%,transparent);z-index:70;overflow:hidden}.notification-panel:before{content:"";position:absolute;left:-6px;bottom:28px;width:12px;height:12px;border-left:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-bottom:1px solid color-mix(in oklab,var(--text) 10%,transparent);background:inherit;transform:rotate(45deg)}.notification-panel-header{display:grid;grid-template-columns:48px 1fr 28px;align-items:center;gap:12px}.notification-panel-header-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;border:1px solid color-mix(in oklab,var(--text) 12%,transparent);background:transparent;color:color-mix(in oklab,var(--accent) 84%,var(--text));box-shadow:none}.notification-panel-header-copy{min-width:0;display:grid;gap:1px}.notification-panel-header-copy h3{margin:0;color:var(--heading-text);font-size:1.1rem;line-height:1.12;font-weight:var(--font-weight-bold)}.notification-panel-header-copy p{margin:0;color:var(--text-subtle);font-size:.9rem;font-weight:var(--font-weight-medium)}.notification-panel-close{width:28px;height:28px;align-self:start;color:color-mix(in oklab,var(--text) 34%,transparent)}.notification-panel-divider{margin:16px -16px 14px;height:1px;background:color-mix(in oklab,var(--text) 10%,transparent)}.notification-panel-visual{position:relative;min-height:136px;border-radius:18px;overflow:hidden;border:1px solid color-mix(in oklab,var(--text) 6%,transparent);background:radial-gradient(circle at 50% 42%,color-mix(in oklab,var(--accent) 14%,transparent),transparent 36%),linear-gradient(180deg,color-mix(in oklab,var(--panel-bg) 84%,white 16%),color-mix(in oklab,var(--panel-bg) 94%,transparent));display:grid;place-items:center}.notification-panel-visual-glow{position:absolute;inset:18px 16px auto;height:50px;border-radius:999px;background:radial-gradient(circle,color-mix(in oklab,var(--accent) 16%,transparent) 0%,transparent 70%);filter:blur(6px)}.notification-panel-visual-icon{position:relative;color:color-mix(in oklab,var(--heading-text) 84%,var(--text));opacity:.84}.notification-panel-body{display:grid;gap:8px;padding-top:14px}.notification-panel-eyebrow{margin:0;color:color-mix(in oklab,var(--text) 58%,transparent);font-size:.68rem;font-weight:var(--font-weight-bold);letter-spacing:.08em}.notification-panel-description{margin:0;color:color-mix(in oklab,var(--text) 78%,transparent);font-size:.98rem;line-height:1.48}.notification-panel-link{width:fit-content;border:0;padding:0;background:transparent;color:color-mix(in oklab,var(--accent) 78%,var(--text));font:inherit;font-size:.96rem;font-weight:var(--font-weight-semibold);cursor:pointer}.notification-panel-link:hover{text-decoration:underline;text-underline-offset:.16em}.notification-panel-footer{margin-top:16px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.notification-panel-meta{display:inline-flex;align-items:center;gap:6px;color:color-mix(in oklab,var(--text) 56%,transparent);font-size:.84rem;font-weight:var(--font-weight-semibold)}.notification-panel-meta:before{content:"";width:8px;height:8px;border-radius:999px;background:color-mix(in oklab,var(--text) 24%,transparent);flex-shrink:0}.notification-panel-meta-accent{color:color-mix(in oklab,var(--accent) 80%,var(--text))}.notification-panel-meta-accent:before{background:color-mix(in oklab,var(--accent) 82%,var(--text))}.app-shell.dark .notification-panel{background:linear-gradient(180deg,color-mix(in oklab,var(--panel-bg) 96%,white 4%),color-mix(in oklab,var(--panel-bg) 100%,transparent));box-shadow:0 24px 50px color-mix(in oklab,var(--color-black) 44%,transparent),inset 0 1px color-mix(in oklab,var(--color-white) 12%,transparent)}.app-shell.dark .notification-panel-header-icon{border-color:color-mix(in oklab,var(--text) 14%,transparent)}.app-shell.dark .notification-panel-visual{background:radial-gradient(circle at 50% 42%,rgba(120,170,255,.12),transparent 36%),linear-gradient(180deg,#ffffff05,#ffffff08)}.app-shell.dark .notification-panel-meta,.app-shell.dark .notification-panel-description,.app-shell.dark .notification-panel-header-copy p,.app-shell.dark .notification-panel-close{color:color-mix(in oklab,var(--text) 74%,transparent)}.settings-menu-panel{position:absolute;left:calc(100% + 14px);bottom:-4px;width:210px;padding:6px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:8px;background:color-mix(in oklab,var(--panel-bg) 96%,var(--color-white) 4%);color:var(--text);box-shadow:0 18px 44px color-mix(in oklab,var(--color-black) 18%,transparent),inset 0 1px color-mix(in oklab,var(--color-white) 38%,transparent);z-index:60}.settings-menu-panel:before{content:"";position:absolute;left:-5px;bottom:16px;width:10px;height:10px;border-left:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-bottom:1px solid color-mix(in oklab,var(--text) 10%,transparent);background:inherit;transform:rotate(45deg)}.settings-menu-item{position:relative;width:100%;min-height:48px;border:0;border-radius:6px;padding:8px 10px;display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px;background:transparent;color:inherit;text-align:left;cursor:pointer}.settings-menu-item:hover{background:color-mix(in oklab,var(--button-bg) 76%,transparent)}.settings-menu-item.active{background:color-mix(in oklab,var(--accent) 12%,transparent);color:color-mix(in oklab,var(--accent) 78%,var(--text))}.settings-menu-item-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}.settings-menu-item-copy{min-width:0;display:grid;gap:1px}.settings-menu-item-copy span,.settings-menu-item-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-menu-item-copy span{font-size:.85rem;font-weight:var(--font-weight-bold)}.settings-menu-item-copy small{color:var(--text-subtle);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.sidebar.collapsed{padding:14px 5px}.sidebar.collapsed .sidebar-nav{margin-top:18px;justify-items:center;gap:8px}.sidebar.collapsed .nav-item{width:50px;min-height:50px;justify-content:center;padding:0;border-radius:12px}.sidebar.collapsed .nav-item-icon{width:34px;height:34px}.sidebar.collapsed .nav-item.active{width:50px;min-height:50px;border-radius:12px}.sidebar.collapsed .nav-item:not(.active):hover{background:transparent}.sidebar.collapsed .sidebar-footer{justify-content:flex-end;padding-bottom:4px}.content-panel{background:var(--panel-bg);min-height:100vh;height:100vh;position:relative;padding:0 26px 26px;overflow:hidden;transition:margin-left .2s ease;transition:margin-left .2s ease,background-color .45s ease,color .45s ease}.content-panel.playground-preview-active,.content-panel-topology{padding:0}.page-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.page-topbar-copy{min-width:0;display:grid;gap:2px;flex:0 1 auto}.page-topbar-center{flex:1 1 420px;display:flex;justify-content:center;min-width:0}.page-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:0 0 auto}.page-topbar h2,.empty-page h2{margin:0;font-size:var(--font-size-title-md)}.page-topbar p,.empty-page p{margin:2px 0 0;color:var(--text-subtle);font-weight:var(--font-weight-regular)}.library-topbar-search{width:min(100%,440px);display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid color-mix(in oklab,var(--text) 14%,transparent);border-radius:999px;background:color-mix(in oklab,var(--app-bg) 92%,white 8%)}.library-topbar-search svg{flex:0 0 auto;color:var(--text-subtle)}.library-topbar-search .ui-input{width:100%;border:0;padding:12px 0;background:transparent;box-shadow:none}.library-topbar-search .ui-input:focus{border-color:transparent;box-shadow:none}.playground-page p{margin:2px 0 0;color:var(--text-subtle);font-weight:var(--font-weight-regular)}.playground-page.playground-preview-active{min-height:100vh;height:100vh;display:grid}.home-page{display:grid;min-height:calc(100dvh - 44px)}.home-page-placeholder{place-items:center;padding:24px 0}.home-placeholder-shell{width:min(100%,760px);min-height:min(72dvh,720px);display:grid;align-content:center;justify-items:center;gap:20px;padding:clamp(28px,6vw,52px);text-align:center;background:radial-gradient(circle at top,color-mix(in oklab,var(--accent) 14%,transparent),transparent 52%),linear-gradient(180deg,color-mix(in oklab,var(--app-bg) 94%,white 6%),color-mix(in oklab,var(--app-bg) 98%,black 2%));border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:28px;box-shadow:0 24px 48px #00000014}.app-shell.dark .home-placeholder-shell{background:radial-gradient(circle at top,color-mix(in oklab,var(--accent) 20%,transparent),transparent 52%),linear-gradient(180deg,#2a2c31,#23252a);border-color:#ffffff17;box-shadow:inset 0 1px #ffffff08,0 28px 60px #00000047}.home-placeholder-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:color-mix(in oklab,var(--accent) 14%,transparent);color:color-mix(in oklab,var(--accent) 78%,var(--text));font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}.home-placeholder-illustration{width:min(100%,320px);height:auto;color:color-mix(in oklab,var(--accent) 76%,var(--text))}.home-placeholder-copy{display:grid;gap:10px;max-width:520px}.home-placeholder-copy h2{margin:0;font-size:var(--font-size-hero-title);line-height:1.04;letter-spacing:-.03em;color:var(--heading-text)}.home-placeholder-copy p{margin:0;color:var(--text-subtle);font-size:var(--font-size-hero-body);line-height:1.6}.home-workspace{display:grid;gap:16px;min-height:0;grid-template-columns:minmax(320px,.9fr) minmax(0,1.35fr);align-items:stretch}.home-kpi-grid,.home-threat-strip{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.home-kpi-card{display:grid;gap:4px;background:var(--app-bg);border-radius:14px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);padding:14px}.home-kpi-icon{width:36px;height:36px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:4px;background:color-mix(in oklab,var(--accent) 12%,transparent);color:color-mix(in oklab,var(--accent) 78%,var(--text))}.home-kpi-card p{margin:0;color:var(--text-subtle);font-size:var(--font-size-body-md)}.home-kpi-card strong{display:block;margin-top:6px;font-size:var(--font-size-metric);color:var(--text)}.home-kpi-meta{color:var(--text-subtle);font-size:var(--font-size-body-md)}.home-threat-card{position:relative;display:grid;gap:6px;background:var(--app-bg);border-radius:16px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);padding:16px;overflow:hidden}.app-shell.dark .home-threat-card{background:linear-gradient(180deg,#2b2d31,#26282d);border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff08}.app-shell.dark .home-threat-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;border-radius:16px 0 0 16px;opacity:.92}.home-threat-card:after{content:"";position:absolute;inset:auto -18% -38% auto;width:90px;height:90px;border-radius:50%;opacity:.18;filter:blur(6px)}.home-threat-card p{margin:0;color:var(--text-subtle);font-size:var(--font-size-body-md)}.app-shell.dark .home-threat-card p{color:#bcc2cc;font-size:var(--font-size-086)}.home-threat-card strong{font-size:1.7rem;line-height:1}.app-shell.dark .home-threat-card strong{letter-spacing:-.02em}.home-threat-card em{margin:0;font-style:normal;color:var(--text-subtle);font-size:var(--font-size-body-md)}.app-shell.dark .home-threat-card em{color:#c2c8d2;font-size:.84rem;line-height:1.45}.home-threat-card.tone-danger:after{background:color-mix(in oklab,var(--color-danger-strong) 72%,transparent)}.app-shell.dark .home-threat-card.tone-danger{border-color:#ff6a5e57;box-shadow:0 0 0 1px #ff6a5e14,inset 0 1px #ffffff08}.app-shell.dark .home-threat-card.tone-danger:before{background:linear-gradient(180deg,#ff6a5ef2,#ff6a5e73)}.app-shell.dark .home-threat-card.tone-danger strong{color:#ffb3a8}.app-shell.dark .home-threat-card.tone-danger p{color:#ffd3cb}.home-threat-card.tone-warning:after{background:color-mix(in oklab,var(--accent) 72%,transparent)}.app-shell.dark .home-threat-card.tone-warning{border-color:#f05a284d;box-shadow:0 0 0 1px #f05a2814,inset 0 1px #ffffff08}.app-shell.dark .home-threat-card.tone-warning:before{background:linear-gradient(180deg,#f05a28eb,#f05a286b)}.app-shell.dark .home-threat-card.tone-warning strong{color:#ffc29f}.app-shell.dark .home-threat-card.tone-warning p{color:#ffd7be}.home-threat-card.tone-calm:after{background:color-mix(in oklab,var(--color-success) 64%,transparent)}.app-shell.dark .home-threat-card.tone-calm{border-color:#4ade8038;box-shadow:0 0 0 1px #4ade800d,inset 0 1px #ffffff08}.app-shell.dark .home-threat-card.tone-calm:before{background:linear-gradient(180deg,#4ade80e6,#4ade8059)}.app-shell.dark .home-threat-card.tone-calm strong{color:#b7f7c7}.app-shell.dark .home-threat-card.tone-calm p{color:#d7f7df}.home-threat-delta{display:inline-flex;width:fit-content;align-items:center;gap:6px;border-radius:999px;padding:3px 8px;font-size:.74rem;font-weight:var(--font-weight-bold)}.home-threat-delta.delta-up{background:color-mix(in oklab,var(--color-danger-strong) 12%,transparent);color:color-mix(in oklab,var(--color-danger-strong) 74%,var(--text))}.home-threat-delta.delta-down{background:color-mix(in oklab,var(--color-success) 14%,transparent);color:color-mix(in oklab,var(--color-success) 78%,var(--text))}.home-threat-delta.delta-flat{background:color-mix(in oklab,var(--text) 10%,transparent);color:var(--text-subtle)}.home-panels{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.panel-card,.home-panel{background:var(--app-bg);border-radius:14px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);padding:14px;display:flex;flex-direction:column}.app-shell.dark .panel-card,.app-shell.dark .home-panel{background:linear-gradient(180deg,#2a2c31,#25272c);border-color:#ffffff17;box-shadow:inset 0 1px #ffffff06}.panel-card-body{margin-top:auto;display:grid;gap:10px}.panel-card-body>.admin-action,.panel-card-body>.link-button,.panel-card-body>.sheet-nav-btn,.panel-card-body>.save-button{justify-self:start}.home-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.home-panel-header h3{margin:0;font-size:var(--font-size-hero-body)}.home-panel-badge{min-width:28px;height:28px;border-radius:999px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--accent) 14%,transparent);color:color-mix(in oklab,var(--accent) 76%,var(--text));font-size:var(--font-size-body-md);font-weight:var(--font-weight-bold)}.home-muted-copy,.home-error-copy{margin:0;color:var(--text-subtle)}.home-error-copy{color:var(--color-danger-strong)}.home-chart{width:100%;min-height:220px}.home-chart-empty{min-height:220px;border:1px dashed color-mix(in oklab,var(--text) 12%,transparent);border-radius:14px;display:grid;align-content:center;justify-items:center;gap:8px;padding:24px;text-align:center}.home-chart-empty strong{color:var(--text);font-size:.96rem}.home-chart-empty p{margin:0;max-width:28ch;color:var(--text-subtle);font-size:.84rem;line-height:1.5}.home-featured-panel{position:relative;display:grid;min-height:0;padding:0;border-radius:18px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);overflow:hidden;background:color-mix(in oklab,var(--panel-bg) 94%,transparent)}.home-featured-copy{position:absolute;left:12px;right:12px;bottom:12px;display:grid;align-content:start;gap:8px;min-width:0;padding:12px;border-radius:16px;background:color-mix(in oklab,var(--app-bg) 84%,rgba(0,0,0,.46));border:1px solid color-mix(in oklab,var(--text) 10%,transparent);box-shadow:0 16px 36px #0000002e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.home-featured-eyebrow{display:inline-flex;width:fit-content;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;background:color-mix(in oklab,var(--accent) 12%,transparent);color:color-mix(in oklab,var(--accent) 84%,var(--text));font-size:.64rem;font-weight:var(--font-weight-extrabold);letter-spacing:.05em;text-transform:uppercase}.home-featured-copy h3{margin:0;color:var(--text);font-size:clamp(1rem,2vw,1.3rem);line-height:1.1}.home-featured-copy p{margin:0;max-width:52ch;color:var(--text-subtle);font-size:var(--font-size-body-md);line-height:1.45}.home-featured-meta{display:flex;flex-wrap:wrap;gap:8px}.home-featured-meta span{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;background:color-mix(in oklab,var(--panel-bg) 86%,transparent);border:1px solid color-mix(in oklab,var(--text) 8%,transparent);color:var(--text-subtle);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold)}.home-featured-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.home-topology-visual{position:relative;min-height:240px;background:radial-gradient(circle at 22% 18%,color-mix(in oklab,var(--accent) 16%,transparent),transparent 40%),linear-gradient(180deg,color-mix(in oklab,var(--panel-bg) 22%,transparent),transparent 65%)}.home-topology-fade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.46),transparent 48%,rgba(255,255,255,.06));opacity:.78}.app-shell.dark .home-topology-fade{background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 48%,rgba(255,255,255,.03))}.home-topology-node,.home-topology-line{position:absolute;background:color-mix(in oklab,var(--accent) 34%,var(--color-white));opacity:.64}.home-topology-node{width:54px;height:20px;border-radius:999px;box-shadow:0 10px 18px #13558929}.home-topology-node.node-primary{top:34px;left:calc(50% - 27px)}.home-topology-node.node-left{left:18%;top:116px}.home-topology-node.node-center{left:calc(50% - 27px);top:116px}.home-topology-node.node-right{right:18%;top:116px}.home-topology-line{height:2px;border-radius:999px}.home-topology-line.line-top{width:2px;height:60px;left:calc(50% - 1px);top:54px}.home-topology-line.line-left{width:32%;left:18%;top:110px}.home-topology-line.line-center{width:2px;height:18px;left:calc(50% - 1px);top:110px}.home-topology-line.line-right{width:32%;right:18%;top:110px}.home-featured-visual{position:relative;min-height:0;height:100%;overflow:hidden;background:linear-gradient(135deg,color-mix(in oklab,var(--accent) 18%,transparent),color-mix(in oklab,var(--button-bg) 90%,transparent))}.home-featured-visual img,.home-featured-placeholder{width:100%;height:100%;min-height:200px;display:block}.home-featured-visual img{object-fit:cover;filter:saturate(.92) contrast(1.02)}.home-featured-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0e11161f,#0e111638 42%,#0e1116bd);pointer-events:none}.home-featured-placeholder{display:grid;place-items:center}.home-featured-placeholder span{padding:6px 12px;border-radius:999px;background:color-mix(in oklab,var(--panel-bg) 72%,transparent);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);color:var(--text-subtle);font-size:.76rem;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.gateway-map-overview{position:relative;min-height:430px;border-radius:18px;overflow:hidden;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);background:radial-gradient(circle at top left,rgba(44,125,160,.2),transparent 36%),linear-gradient(180deg,#ecf5fb,#d9e7ef)}.gateway-map-overview.dark{background:radial-gradient(circle at top left,rgba(44,125,160,.18),transparent 36%),linear-gradient(180deg,#1f2830,#192127)}.gateway-map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(19,85,137,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(19,85,137,.08) 1px,transparent 1px);background-size:42px 42px;opacity:.45}.gateway-map-shapes{position:absolute;inset:0;width:100%;height:100%;fill:#ffffffa6}.gateway-map-overview.dark .gateway-map-shapes{fill:#d8e4ec1f}.gateway-map-pin{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.gateway-map-pin span{position:absolute;inset:0;border-radius:50%;background:var(--status-active);border:2px solid rgba(255,255,255,.92);box-shadow:0 0 0 6px #16a34a24;transition:transform .18s ease}.gateway-map-pin.status-pending span{background:var(--status-pending);box-shadow:0 0 0 6px #f59e0b24}.gateway-map-pin.status-disabled span{background:#7c8798;box-shadow:0 0 0 6px #7c879826}.gateway-map-pin:hover span{transform:scale(1.08)}.gateway-map-empty{position:absolute;inset:auto 18px 18px;display:inline-flex;align-items:center;gap:10px;width:fit-content;padding:10px 14px;border-radius:14px;background:#ffffffd6;color:var(--text)}.gateway-map-overview.dark .gateway-map-empty{background:#0f1720d6}.gateway-map-empty p{margin:0}.legend-dot{width:10px;height:10px;border-radius:50%;background:var(--status-active)}.legend-dot.status-pending{background:var(--status-pending)}.legend-dot.status-disabled{background:#7c8798}.topology-page{min-height:0;height:100%}.topology-fullscreen-shell{position:relative;min-height:100%;height:100%;background:radial-gradient(circle at center,color-mix(in oklab,var(--accent) 10%,transparent),transparent 30%),radial-gradient(circle at top left,color-mix(in oklab,var(--accent) 8%,transparent),transparent 26%),linear-gradient(180deg,color-mix(in oklab,var(--panel-bg) 94%,white 6%),color-mix(in oklab,var(--panel-bg) 100%,transparent))}.topology-chart-scroll{min-height:100%;height:100%;overflow:hidden;width:100%;cursor:grab}.topology-chart-scroll:active{cursor:grabbing}.topology-chart-svg{display:block}.topology-depth-ring{fill:none;stroke:color-mix(in oklab,var(--text) 8%,transparent);stroke-dasharray:3 9}.topology-link{fill:none;stroke:color-mix(in oklab,var(--text) 16%,transparent);stroke-width:1.5px}.topology-node{cursor:pointer}.topology-node-card{transition:filter .2s ease,stroke-width .16s ease;filter:drop-shadow(0 2px 8px rgba(17,24,39,.07))}.topology-node:hover .topology-node-card{filter:drop-shadow(0 4px 14px rgba(17,24,39,.14))}.topology-node.selected .topology-node-card{filter:drop-shadow(0 6px 16px rgba(17,24,39,.18))}.topology-node-halo{fill:color-mix(in oklab,var(--accent) 20%,transparent);stroke:none}.topology-node-label{pointer-events:none;font-family:var(--font-sans);font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);letter-spacing:.01em}.topology-node-meta{pointer-events:none;font-family:var(--font-sans);font-size:10.5px;fill:var(--text-subtle)}.topology-node circle{transition:filter .2s ease,stroke-width .16s ease;filter:drop-shadow(0 4px 10px rgba(17,24,39,.08))}.topology-node:hover circle{filter:drop-shadow(0 8px 18px rgba(17,24,39,.14))}.topology-node.selected circle{filter:drop-shadow(0 10px 18px rgba(17,24,39,.18))}.topology-node-text{pointer-events:none;font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);letter-spacing:.01em}.topology-node-text-halo{fill:none;stroke:color-mix(in oklab,var(--panel-bg) 95%,white 5%);stroke-linejoin:round;stroke-width:5px}@keyframes topology-node-in-tidy{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes topology-node-in-radial{0%{opacity:0}to{opacity:1}}@keyframes topology-link-in{0%{opacity:0}to{opacity:1}}.topology-tree-tidy .topology-node-inner{animation:topology-node-in-tidy .38s ease both}.topology-tree-radial .topology-node-inner{animation:topology-node-in-radial .38s ease both}.topology-link{animation:topology-link-in .42s ease both}.topology-view-toggle{position:absolute;bottom:24px;right:24px;z-index:2;display:flex;gap:3px;padding:4px;background:color-mix(in oklab,var(--panel-bg) 90%,white 10%);border:1px solid color-mix(in oklab,var(--text) 11%,transparent);border-radius:10px;box-shadow:0 2px 8px #00000014,0 0 0 1px color-mix(in oklab,var(--text) 4%,transparent)}.topology-view-btn{display:flex;align-items:center;padding:6px 13px;border:none;border-radius:7px;background:transparent;color:var(--text-subtle);font-family:var(--font-sans);font-size:12.5px;font-weight:var(--font-weight-medium);letter-spacing:.01em;cursor:pointer;transition:background .14s ease,color .14s ease}.topology-view-btn:hover{background:color-mix(in oklab,var(--button-bg) 70%,transparent);color:var(--text)}.topology-view-btn.active{background:var(--button-bg);color:var(--text);font-weight:var(--font-weight-semibold)}.topology-empty-state{display:grid;place-content:center;gap:10px;height:100%;text-align:center;color:var(--text-subtle)}.topology-empty-state p,.topology-overlay-copy{margin:0}.topology-overlay-copy{position:absolute;top:24px;left:24px;z-index:1;max-width:min(520px,calc(100% - 48px));padding:10px 14px;border-radius:12px;background:color-mix(in oklab,var(--panel-bg) 86%,white 14%);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);color:var(--text)}.topology-overlay-error{color:var(--color-danger-strong)}.app-shell.dark .topology-fullscreen-shell{background:radial-gradient(circle at center,rgba(76,126,207,.12),transparent 30%),radial-gradient(circle at top left,rgba(76,126,207,.12),transparent 28%),linear-gradient(180deg,#14181feb,#181c23fa)}.app-shell.dark .topology-depth-ring{stroke:#e2e8f01f}.app-shell.dark .topology-link{stroke:#e2e8f02e}.app-shell.dark{--color-topology-device-outdated-radial-text: #ff9b9b;--color-topology-organisation-radial-text: #7dd3fc;--color-topology-user-group-radial-text: #86efac;--color-topology-user-radial-text: #bbf7d0;--color-topology-gateway-group-radial-text: #fb923c;--color-topology-gateway-radial-text: #fdba74;--color-topology-device-radial-text: #c4b5fd;--color-topology-root-radial-text: #f8fafc}.app-shell.dark .topology-node-card{filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.app-shell.dark .topology-node:hover .topology-node-card{filter:drop-shadow(0 4px 14px rgba(0,0,0,.42))}.app-shell.dark .topology-node.selected .topology-node-card{filter:drop-shadow(0 6px 16px rgba(0,0,0,.52))}.app-shell.dark .topology-node-text-halo{stroke:#111827eb}.app-shell.dark .topology-overlay-copy{background:#14181fd1;border-color:#ffffff14}.app-shell.dark .topology-view-toggle{box-shadow:0 2px 12px #0000004d,0 0 0 1px #ffffff0a}.app-shell.dark .home-chart-empty{border-color:#ffffff1a;background:linear-gradient(180deg,#ffffff04,#ffffff08)}.app-shell.dark .home-chart-empty p{color:#c2c8d2}.app-shell.dark .home-featured-panel{border-color:#ffffff14;box-shadow:inset 0 1px #ffffff06;background:#222429fa}.app-shell.dark .home-featured-copy{background:#17191ed1;border-color:#ffffff14}.admin-empty-state{display:grid;flex:1;min-height:0;height:100%;align-self:stretch}.admin-card .panel-card-body{height:100%}.home-panel ul{margin:0;padding-left:18px;color:var(--text-subtle);display:grid;gap:8px}.app-shell.dark .home-panel ul{color:#bcc2cc}.home-panel ul li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px}.home-panel li span{color:var(--text);font-weight:var(--font-weight-semibold);margin-right:6px}.home-panel li em{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:20px;padding:1px 9px;border-radius:999px;font-style:normal;color:var(--text-subtle);background:color-mix(in oklab,var(--text) 8%,transparent);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);font-size:.74rem;font-weight:var(--font-weight-bold);line-height:1;white-space:nowrap;align-self:center;margin-left:auto}.home-compact-list{padding-left:0;list-style:none}.home-compact-list li{gap:10px}.home-compact-list li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell.dark .home-panel li em{color:#d2d8e2;background:#ffffff0d;border-color:#ffffff14}.home-panel-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.link-button{position:relative;border:0;padding:0;background:transparent;color:var(--accent);font:inherit;font-weight:var(--font-weight-bold);cursor:pointer;transition:color .2s ease,opacity .2s ease,transform .18s ease}.link-button:after{content:"";position:absolute;left:0;right:0;bottom:-.14em;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .24s ease}.link-button:hover{opacity:.88;transform:translateY(-1px)}.link-button:hover:after,.link-button:focus-visible:after{transform:scaleX(1)}.home-list-aligned-action{margin-left:18px}.home-incident-feed,.home-risk-paths{list-style:none;padding-left:0}.home-incident-feed li,.home-risk-paths li{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:10px 0;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.home-incident-feed li:last-child,.home-risk-paths li:last-child{border-bottom:0;padding-bottom:0}.home-incident-feed li:first-child,.home-risk-paths li:first-child{padding-top:0}.home-incident-feed li>div,.home-risk-paths li>div{display:grid;gap:4px}.home-incident-feed li p,.home-risk-paths li p{margin:0;color:var(--text-subtle);font-size:var(--font-size-body-md)}.app-shell.dark .home-incident-feed li p,.app-shell.dark .home-risk-paths li p{color:#c2c8d2;font-size:.85rem;line-height:1.45}.home-incident-feed li.severity-high span{color:color-mix(in oklab,var(--color-danger-strong) 84%,var(--text))}.home-incident-feed li.severity-medium span{color:color-mix(in oklab,var(--accent) 82%,var(--text))}.home-actions{display:grid;gap:10px}.home-actions .save-button{width:100%}.admin-page,.users-page{display:grid;gap:16px}.directory-page{display:grid;gap:0;height:100%;min-height:0}.resource-list-shell{display:grid;grid-template-rows:auto minmax(0,1fr);gap:0;height:calc(100% + 26px);min-height:0;margin-left:-26px;margin-right:-26px;margin-bottom:-26px;transition:margin-right .22s ease}.directory-page.sidesheet-open .resource-list-shell{margin-right:334px}.directory-page.sidesheet-wide-open .resource-list-shell{margin-right:934px}.resource-list-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 26px 14px;background:color-mix(in oklab,var(--app-bg) 96%,white 4%);border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent);position:sticky;top:0;z-index:2}.resource-list-header:before{content:"";position:absolute;top:0;bottom:-1px;left:-26px;width:26px;background:inherit;border-bottom:inherit;pointer-events:none}.resource-table-title{display:flex;align-items:center;gap:18px;min-width:0;flex:1 1 auto;position:relative;min-height:32px}.resource-table-title-icon{position:absolute;left:0;top:0;bottom:0;margin-top:auto;margin-bottom:auto;width:32px;height:32px;border-radius:0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:transparent;color:var(--text)}.resource-table-title-row{display:inline-flex;align-items:center;gap:18px;min-width:0;padding-left:42px}.resource-table-title-copy{min-width:0;display:flex;align-items:center}.resource-table-title h2{margin:0;color:var(--text);font-size:var(--font-size-title-sm);line-height:1;font-weight:var(--font-weight-medium)}.resource-table-title h3{margin:0;color:var(--text);font-size:1.3rem;line-height:.8;font-weight:var(--font-weight-bold)}.resource-table-title p{display:none}.resource-table-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.25rem;padding:0 .35rem;flex-shrink:0;border-radius:999px;background:#686868;color:var(--color-white);font-size:.72rem;font-weight:var(--font-weight-semibold);line-height:1}.resource-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:0 0 auto}.resource-view-toggle{background:color-mix(in oklab,var(--panel-bg) 78%,white 22%);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:999px}.three-way-toggle{position:relative;display:flex;align-items:center;background:color-mix(in oklab,var(--panel-bg) 78%,white 22%);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:999px;padding:3px}.three-way-toggle-pill{position:absolute;left:3px;top:3px;bottom:3px;width:28px;background:var(--accent);border-radius:999px;pointer-events:none;z-index:0}.three-way-toggle-btn{position:relative;z-index:1;flex:0 0 auto;width:28px;height:28px;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-subtle);transition:color .15s;border-radius:999px}.three-way-toggle-btn:hover{color:var(--text)}.three-way-toggle-btn.active{color:var(--text-inverse)}.resource-card-active{overflow-y:auto;overflow-x:hidden}.org-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;padding:16px;align-content:start}.org-card{text-align:left;display:flex;flex-direction:column;background:var(--panel-bg);border:1px solid color-mix(in oklab,var(--text) 8%,transparent);border-radius:12px;padding:14px 16px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.org-card:hover{border-color:color-mix(in oklab,var(--text) 20%,transparent);box-shadow:0 4px 16px -6px #0000001f}.org-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.org-card-firmware-banner{display:flex;align-items:center;gap:6px;background:color-mix(in oklab,#f97316 12%,transparent);color:#c2410c;border:1px solid color-mix(in oklab,#f97316 22%,transparent);border-radius:6px;padding:5px 8px;font-size:var(--font-size-label-sm);font-weight:var(--font-weight-medium);line-height:1.3}.app-shell.dark .org-card-firmware-banner{color:#fb923c;background:color-mix(in oklab,#f97316 10%,transparent);border-color:color-mix(in oklab,#f97316 18%,transparent)}.org-card-header{display:grid;gap:8px;margin-bottom:2px}.org-card-name{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:var(--font-weight-semibold);color:var(--text);margin:0 0 3px;line-height:1.3}.org-card-address{font-size:var(--font-size-label-sm);color:var(--text-subtle);margin:0 0 12px;line-height:1.4}.org-map-preview{position:relative;display:block;width:100%;border-radius:8px;overflow:hidden;border:none;padding:0;margin:6px 0 10px;cursor:pointer;flex-shrink:0;background:color-mix(in oklab,var(--text) 6%,transparent)}.org-map-preview-img{display:block;width:100%;height:90px;object-fit:cover;transition:filter .2s}.org-map-preview-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;background:transparent;transition:opacity .2s,background-color .2s}.org-map-preview:hover .org-map-preview-img{filter:brightness(.68)}.org-map-preview:hover .org-map-preview-overlay{opacity:1;background:#0000002e}.detail-address .org-map-preview-img{height:130px;border-radius:8px}.org-card-stats{display:flex;flex-direction:column;gap:8px;margin-top:auto}.org-card-stat{display:flex;flex-direction:column;gap:4px}.org-card-stat-label{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--font-size-label-sm);color:var(--text-subtle)}.org-card-stat-label span:last-child{font-weight:var(--font-weight-medium);color:var(--text);font-variant-numeric:tabular-nums}.org-card-progress-track{display:flex;align-items:stretch;height:4px;background:color-mix(in oklab,var(--text) 10%,transparent);border-radius:999px;overflow:hidden}.org-card-progress-fill{height:100%;background:var(--accent);min-width:2px;transform-origin:left;transform:scaleX(0);animation:progress-fill-in .55s cubic-bezier(.22,1,.36,1) .35s forwards}@keyframes progress-fill-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.org-card-progress-fill:first-child{border-radius:999px 0 0 999px}.org-card-progress-fill:last-child{border-radius:0 999px 999px 0}.org-card-progress-fill-pending{background:var(--warning, #f59e0b);animation-delay:.65s}.resource-create-btn{border:0;appearance:none;margin-top:0;width:32px;height:32px;padding:0;border-radius:999px;gap:0;flex:0 0 auto;background:transparent;color:var(--text);box-shadow:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .2s ease,transform .18s ease}.resource-create-btn:hover:not(:disabled){background:transparent;filter:none;box-shadow:none;transform:scale(1.08);animation:resource-create-jiggle .42s ease-out}.resource-create-btn:hover svg{transform:rotate(8deg) scale(1.06)}.resource-create-btn:active{transform:scale(.98)}.resource-table{display:grid;align-content:start;gap:0;min-height:0;overflow-y:auto;overflow-x:auto}.resource-map-active{overflow:hidden;height:100%;grid-template-rows:minmax(0,1fr);align-content:stretch}@keyframes resource-create-jiggle{0%{transform:scale(1.02) rotate(0)}30%{transform:scale(1.08) rotate(7deg)}55%{transform:scale(1.08) rotate(-5deg)}78%{transform:scale(1.08) rotate(4deg)}to{transform:scale(1.08) rotate(0)}}.resource-table-body{display:grid;align-content:start}.resource-table-row{display:grid;gap:12px;align-items:center;padding:12px 26px;border-bottom:1px solid color-mix(in oklab,var(--text) 10%,transparent)}.resource-table-row-interactive{width:100%;border-top:0;border-left:0;border-right:0;border-radius:0;background:transparent;cursor:pointer;text-align:left;transition:background-color .18s ease,box-shadow .18s ease}.resource-table-row-interactive:hover{background:color-mix(in oklab,var(--accent) 6%,transparent)}.resource-table-row-interactive:focus-visible{outline:none;background:color-mix(in oklab,var(--accent) 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--accent) 28%,transparent)}.resource-table-row-selected{background:color-mix(in oklab,var(--accent) 9%,transparent);box-shadow:inset 3px 0 0 var(--accent)}.resource-table-row-selected:hover{background:color-mix(in oklab,var(--accent) 13%,transparent)}.resource-table-row-organisations,.resource-table-row-users{grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(110px,1fr))}.resource-table-row-organisations{grid-template-columns:minmax(88px,.55fr) minmax(180px,1.45fr) minmax(130px,1fr) minmax(120px,.9fr) minmax(150px,1fr) minmax(150px,1fr)}.resource-table-row-gateways{grid-template-columns:minmax(180px,1.1fr) minmax(230px,1.45fr) minmax(130px,.75fr) minmax(130px,.9fr) minmax(130px,.9fr) minmax(140px,.8fr) minmax(130px,.75fr) minmax(210px,1.15fr)}.resource-table-row-device-types{grid-template-columns:minmax(230px,1.45fr) repeat(5,minmax(110px,.95fr)) minmax(84px,.7fr)}.resource-table-row-firmware{grid-template-columns:minmax(180px,1.35fr) minmax(110px,.9fr) minmax(220px,1.8fr) minmax(110px,.95fr) minmax(96px,.75fr) minmax(140px,1fr)}.resource-table-row-applications{grid-template-columns:minmax(180px,1.3fr) minmax(170px,1.15fr) minmax(120px,.85fr) minmax(150px,1fr) minmax(220px,1.5fr) minmax(150px,1fr) minmax(240px,1.8fr) minmax(140px,.9fr)}.resource-table-row-labels{grid-template-columns:minmax(180px,1fr) minmax(240px,1.6fr) minmax(90px,.55fr) minmax(140px,.8fr)}.resource-table-row:last-child{border-bottom:0}.resource-table-row-head{padding-top:10px;color:color-mix(in oklab,var(--text-subtle) 72%,transparent);font-size:var(--font-size-body-xs);font-weight:var(--font-weight-semibold);letter-spacing:.02em;text-transform:none}.resource-table-row span{min-width:0;color:var(--text);font-size:var(--font-size-body-lg);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-table-row-head span{color:inherit}.resource-table-sort-header{min-width:0;border:0;padding:0;background:transparent;color:color-mix(in oklab,var(--text-subtle) 72%,transparent);display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;text-align:left;cursor:pointer;font:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;white-space:nowrap;overflow:hidden}.resource-table-sort-header:hover,.resource-table-sort-header.sorted{color:var(--text)}.resource-table-sort-header.resource-table-col-numeric{justify-content:flex-end}.resource-table-sort-header.resource-table-col-status-compact{justify-content:flex-start}.resource-table-sort-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-table-sort-icon{width:13px;height:13px;flex:0 0 13px;display:inline-flex;align-items:center;justify-content:center;opacity:0;color:currentColor;transition:opacity .16s ease}.resource-table-sort-header:hover .resource-table-sort-icon,.resource-table-sort-header.sorted .resource-table-sort-icon{opacity:1}.resource-table-col-numeric{text-align:right}.resource-table-col-status-compact,.resource-table-col-metric{min-width:0}.resource-table-sort-header.resource-table-col-metric{justify-content:flex-start}.directory-metric-cell{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;min-width:0}.directory-metric-value{color:var(--text);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);line-height:1;flex:0 0 18px;width:18px;text-align:right}.directory-metric-track{display:inline-flex;align-items:stretch;width:44px;height:3px;border-radius:999px;overflow:hidden;background:color-mix(in oklab,var(--text) 10%,transparent);flex:0 0 auto}.directory-metric-fill{display:block;height:100%;min-width:2px;transform-origin:left center}.directory-metric-fill-primary{border-radius:999px 0 0 999px}.directory-metric-fill-secondary{border-radius:0 999px 999px 0}.resource-table-skeletons{pointer-events:none}.resource-table-row-skeleton{position:relative;overflow:hidden}.resource-table-row-skeleton:after{content:"";position:absolute;inset:0;transform:translate(-120%) skew(-18deg);background:linear-gradient(90deg,transparent 0%,color-mix(in oklab,white 12%,transparent) 45%,transparent 100%);animation:glb-skeleton-shimmer 1.2s ease-in-out infinite}.resource-skeleton-line{display:block;height:12px;width:72%;border-radius:999px;background:color-mix(in oklab,var(--text) 10%,transparent)}.resource-skeleton-line-title{width:84%;height:14px}.resource-skeleton-line-short{width:46%}.resource-state{padding:22px 26px;color:var(--text-subtle);font-size:.92rem}.resource-state-error{color:var(--color-danger)}.gateway-map-shell{display:block;height:100%;padding:0}.gateway-map-canvas-wrap{position:relative;height:100%}.gateway-map-canvas{overflow:hidden;width:100%;height:100%;background:color-mix(in oklab,var(--panel-bg) 88%,white 12%)}.gateway-map-canvas .mapboxgl-map,.gateway-map-canvas .mapboxgl-canvas{width:100%;height:100%}.gateway-map-load-note{position:absolute;top:16px;left:16px;z-index:2;max-width:min(320px,calc(100% - 32px));padding:10px 12px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:16px;background:color-mix(in oklab,var(--panel-bg) 90%,white 10%);color:var(--text-subtle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gateway-map-canvas .mapboxgl-control-container{font:inherit}.mapboxgl-ctrl-logo{display:none!important}.gateway-map-shell{position:relative}.gateway-map-pick-hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);padding:7px 16px;border-radius:999px;background:color-mix(in oklab,var(--accent) 92%,black 8%);color:#fff;font-size:.84rem;font-weight:var(--font-weight-medium);white-space:nowrap;pointer-events:none;box-shadow:0 4px 12px color-mix(in oklab,black 22%,transparent)}.gateway-coordinate-pick-hint{margin:4px 0 0;font-size:.8rem;color:var(--accent);font-weight:var(--font-weight-medium)}.gateway-map-marker{border:0;background:transparent;padding:0;cursor:pointer}.gateway-map-marker-inner{width:46px;height:46px;border-radius:18px 18px 18px 4px;background:color-mix(in oklab,var(--panel-bg) 82%,white 18%);box-shadow:0 18px 36px -24px #0f172abf;color:var(--text);font-size:var(--font-size-xs);font-weight:var(--font-weight-extrabold);transform:rotate(-45deg);transition:transform .18s ease,box-shadow .18s ease}.gateway-map-marker span{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;transform:rotate(45deg)}.gateway-map-marker:hover .gateway-map-marker-inner,.gateway-map-marker:focus-visible .gateway-map-marker-inner{transform:rotate(-45deg) scale(1.06);box-shadow:0 24px 42px -24px #0f172ae0}.gateway-map-marker.status-active .gateway-map-marker-inner{background:color-mix(in oklab,var(--status-active) 76%,white 24%);color:#fff}.gateway-map-marker.status-pending .gateway-map-marker-inner{background:color-mix(in oklab,#f59e0b 84%,white 16%);color:#2b1800}.gateway-map-marker.status-disabled .gateway-map-marker-inner{background:color-mix(in oklab,#94a3b8 82%,white 18%);color:#0f172a}.gateway-map-cluster{border:0;background:transparent;padding:0;cursor:pointer}.gateway-map-cluster>span{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--color-map-dot);color:#fff;font-size:13px;font-weight:var(--font-weight-bold);border:2px solid #fff;box-shadow:0 4px 14px -2px #2563eb73;transition:transform .18s ease,box-shadow .18s ease}.gateway-map-cluster:hover>span,.gateway-map-cluster:focus-visible>span{transform:scale(1.1);box-shadow:0 6px 18px -2px #2563eb8c}.gateway-map-legend{display:grid;gap:10px;align-content:start}.gateway-map-legend-item{display:grid;grid-template-columns:14px minmax(0,1fr);grid-template-areas:"dot title" "dot org" "dot coords";gap:2px 10px;width:100%;padding:14px 16px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:20px;background:color-mix(in oklab,var(--panel-bg) 92%,white 8%);text-align:left;cursor:pointer}.gateway-map-legend-item strong{grid-area:title;color:var(--text)}.gateway-map-legend-item span:not(.gateway-map-legend-dot){grid-area:org;color:var(--text-subtle)}.gateway-map-legend-item em{grid-area:coords;color:var(--text-subtle);font-style:normal;font-size:var(--font-size-body-md)}.gateway-map-legend-dot{grid-area:dot;width:12px;height:12px;border-radius:999px;align-self:center;margin-top:2px;background:color-mix(in oklab,var(--text) 20%,transparent)}.gateway-map-legend-dot.status-active{background:var(--status-active)}.gateway-map-legend-dot.status-pending{background:var(--color-warning)}.gateway-map-legend-dot.status-disabled{background:#94a3b8}.gateway-map-empty{display:block;min-height:0;padding:24px;border:1px dashed color-mix(in oklab,var(--text) 12%,transparent);border-radius:24px;color:var(--text-subtle);text-align:left}@media(max-width:960px){.gateway-map-shell{grid-template-columns:1fr;min-height:0}.gateway-map-canvas-wrap,.gateway-map-canvas{min-height:360px}}.resource-error-state{min-height:min(58vh,520px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:40px 26px;text-align:center}.resource-error-state-icon{width:86px;height:86px;margin:0 auto 18px;border-radius:28px;display:grid;place-items:center;border:1px solid color-mix(in oklab,var(--color-danger) 22%,transparent);background:color-mix(in oklab,var(--color-danger) 6%,var(--panel-bg));color:color-mix(in oklab,var(--color-danger) 72%,var(--accent))}.resource-error-state-copy{max-width:420px}.resource-error-state-copy h3{margin:0 0 8px;font-size:var(--font-size-metric);line-height:1.15}.resource-error-state-copy p{margin:0;color:var(--text-subtle);font-size:var(--font-size-body-lg);line-height:1.5}.resource-error-state-copy small{display:block;margin-top:16px;color:var(--color-danger);font-size:.84rem;font-weight:var(--font-weight-semibold)}.resource-status-pill{font-weight:var(--font-weight-medium)}.resource-chip-list{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:var(--chip-padding-y) var(--chip-padding-x);min-height:var(--chip-min-height);font:inherit;font-size:var(--chip-font-size);font-weight:var(--font-weight-bold);line-height:1;white-space:nowrap;border:1px solid color-mix(in oklab,var(--text) 12%,transparent);background:color-mix(in oklab,var(--panel-bg) 86%,white 14%);color:var(--text);transition:background-color .18s ease,border-color .18s ease,transform .18s ease,color .18s ease}button.chip{cursor:pointer}button.chip:hover{transform:translateY(-1px)}button.chip:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 22%,transparent)}.chip--link{border-color:color-mix(in oklab,var(--text) 12%,transparent);background:color-mix(in oklab,var(--text) 6%,var(--panel-bg));color:var(--text-subtle)}button.chip--link:hover{background:color-mix(in oklab,var(--accent) 12%,var(--panel-bg));border-color:color-mix(in oklab,var(--accent) 28%,transparent);color:color-mix(in oklab,var(--accent) 72%,var(--text))}.chip--active{border-color:color-mix(in oklab,var(--text) 12%,transparent);background:color-mix(in oklab,var(--text) 6%,var(--panel-bg));color:var(--text)}.chip--pending{border-color:color-mix(in oklab,#f59e0b 30%,transparent);background:color-mix(in oklab,#f59e0b 14%,var(--panel-bg));color:color-mix(in oklab,#f59e0b 72%,var(--text))}.chip--disabled{border-color:color-mix(in oklab,var(--text) 14%,transparent);background:color-mix(in oklab,var(--text) 8%,var(--panel-bg));color:var(--text-subtle)}.chip--truncate{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:inline-block;vertical-align:middle}.resource-empty-state{border:1px dashed color-mix(in oklab,var(--text) 12%,transparent);border-radius:16px;padding:28px;text-align:center;color:var(--text-subtle)}.catalog-page{display:grid;gap:16px}.catalog-header-actions{display:flex;justify-content:flex-end}.catalog-sections{display:grid;gap:18px}.catalog-section{display:grid;gap:12px;padding:0 0 2px;background:transparent;border:0;box-shadow:none}.app-shell.dark .catalog-section{background:transparent;border:0;box-shadow:none}.catalog-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 10px;border-bottom:1px solid color-mix(in oklab,var(--text) 10%,transparent);transition:background-color .18s ease,box-shadow .18s ease,border-color .18s ease,transform .18s ease}.catalog-section-header.drag-enabled{border:1px dashed color-mix(in oklab,var(--accent) 18%,transparent);padding:8px 10px;border-radius:16px}.catalog-section-header.drag-hover{background:color-mix(in oklab,var(--accent) 10%,transparent);border-color:color-mix(in oklab,var(--accent) 42%,transparent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 12%,transparent);transform:translateY(-1px)}.app-shell.dark .catalog-section-header.drag-enabled{border-color:#ffffff1f}.app-shell.dark .catalog-section-header.drag-hover{background:#ff6c371f;border-color:#ff6c3752;box-shadow:0 0 0 3px #ff6c371f}.app-shell.dark .catalog-section-header{border-bottom-color:#ffffff14}.catalog-section-toggle{flex:1 1 auto;min-width:0;border:0;padding:0;background:transparent;color:inherit;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer}.catalog-section-toggle:focus-visible{outline:none}.catalog-section-chevron{width:34px;height:34px;border-radius:12px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--accent) 10%,transparent);color:color-mix(in oklab,var(--accent) 82%,var(--text));transition:transform .18s ease,background-color .18s ease}.catalog-section-chevron.collapsed{transform:rotate(-90deg)}.catalog-section-toggle:hover .catalog-section-chevron,.catalog-section-toggle:focus-visible .catalog-section-chevron{background:color-mix(in oklab,var(--accent) 16%,transparent)}.catalog-section-heading{min-width:0;display:grid;gap:4px}.catalog-section-header h3,.catalog-section-header p{margin:0}.catalog-section-header h3{font-size:var(--font-size-hero-body)}.catalog-section-header p{color:var(--text-subtle);font-size:.84rem}.catalog-group-actions{display:flex;gap:8px}.catalog-section-body{overflow:hidden}.catalog-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.catalog-card{min-height:0;border-radius:22px;padding:18px;border-color:color-mix(in oklab,var(--text) 8%,transparent);background:linear-gradient(180deg,color-mix(in oklab,var(--app-bg) 98%,transparent),color-mix(in oklab,var(--panel-bg) 94%,transparent)),linear-gradient(135deg,color-mix(in oklab,var(--accent) 6%,transparent),transparent 48%);overflow:hidden;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background-color .24s ease}.catalog-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px #0000001a;border-color:color-mix(in oklab,var(--accent) 18%,transparent)}.catalog-card-drag-shell,.catalog-card-drag-handle{display:block;height:100%}.catalog-card-drag-handle[draggable=true] .catalog-card{cursor:grab}.catalog-card-drag-handle[draggable=true]:active .catalog-card{cursor:grabbing}.catalog-card-dragging .catalog-card{opacity:.52;transform:scale(.985)}.catalog-card-moving .catalog-card{opacity:.72;pointer-events:none}.app-shell.dark .catalog-card{background:linear-gradient(180deg,#292c31fa,#222429fa),linear-gradient(135deg,rgba(255,108,55,.08),transparent 48%);border-color:#ffffff14;box-shadow:inset 0 1px #ffffff06}.catalog-card .panel-title{margin-bottom:12px}.catalog-card .panel-title-icon{width:42px;height:42px;border-radius:14px;background:color-mix(in oklab,var(--accent) 12%,transparent)}.catalog-card .panel-title-copy{min-width:0}.catalog-card .panel-title h3{font-size:.98rem;line-height:1.2}.catalog-card .panel-title p{font-size:var(--font-size-sm)}.catalog-card .panel-card-body{gap:12px}.catalog-card-image{border-radius:18px;overflow:hidden;aspect-ratio:16 / 9;background:linear-gradient(135deg,color-mix(in oklab,var(--accent) 18%,transparent),color-mix(in oklab,var(--button-bg) 90%,transparent));border:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.catalog-card-image img{width:100%;height:100%;object-fit:cover;display:block}.catalog-card-video{border-radius:18px;overflow:hidden;aspect-ratio:16 / 9;background:#000;border:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.catalog-card-video img,.catalog-card-video iframe{width:100%;height:100%;border:0;display:block;object-fit:cover}.catalog-card-video-trigger{position:relative;width:100%;padding:0;cursor:pointer;text-align:left;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}.catalog-card-video-trigger:hover{transform:translateY(-1px);border-color:color-mix(in oklab,var(--accent) 22%,transparent);box-shadow:0 12px 24px #0000001f}.catalog-card-video-overlay{position:absolute;inset:0;display:grid;place-items:center;gap:10px;align-content:center;padding:18px;background:linear-gradient(180deg,#00000024,#0000009e);color:#fff}.catalog-card-video-overlay strong{font-size:var(--font-size-086);letter-spacing:.02em}.catalog-card-video-play{width:58px;height:58px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#0f1115b8;border:1px solid rgba(255,255,255,.2);box-shadow:0 10px 28px #00000047}.catalog-card-video-fallback{width:100%;height:100%;display:grid;place-items:center;color:#ffffffd1;font-size:var(--font-size-086);font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase}.video-lightbox-backdrop{position:fixed;inset:0;z-index:54;border:0;padding:0;margin:0;background:#080a0ecc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}.video-lightbox-shell{position:fixed;inset:0;z-index:55;display:grid;place-items:center;padding:16px;pointer-events:none}.video-lightbox{width:min(1080px,calc(100vw - 32px));max-height:calc(100dvh - 32px);display:grid;gap:14px;padding:16px;border-radius:24px;background:color-mix(in oklab,var(--app-bg) 96%,#000 4%);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);box-shadow:0 28px 80px #00000057;pointer-events:auto}.video-lightbox-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.video-lightbox-copy{min-width:0}.video-lightbox-copy p{margin:0;color:var(--text-subtle);font-size:.72rem;font-weight:var(--font-weight-bold);letter-spacing:.06em;text-transform:uppercase}.video-lightbox-copy h3{margin:6px 0 0;color:var(--text);font-size:1.08rem}.video-lightbox-frame-shell{overflow:hidden;border-radius:20px;aspect-ratio:16 / 9;background:#000;border:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.video-lightbox-frame-shell iframe{width:100%;height:100%;border:0;display:block}.app-shell.dark .video-lightbox{background:color-mix(in oklab,var(--panel-bg) 94%,#000 6%);border-color:#ffffff14}.catalog-card-image-empty{display:grid;place-items:center}.catalog-card-image-empty span{padding:6px 12px;border-radius:999px;background:color-mix(in oklab,var(--panel-bg) 72%,transparent);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);color:var(--text-subtle);font-size:.76rem;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.catalog-card-copy{display:grid;gap:10px}.catalog-card-copy p{margin:0;color:var(--text-subtle);font-size:.84rem;line-height:1.5}.rating-stars-display{display:inline-flex;gap:4px;color:#f59e0b}.rating-input{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rating-star-button{width:34px;height:34px;border:1px solid color-mix(in oklab,var(--text) 12%,transparent);border-radius:999px;background:color-mix(in oklab,var(--button-bg) 82%,transparent);color:color-mix(in oklab,var(--text-subtle) 78%,transparent);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .18s ease,border-color .18s ease,color .18s ease,background .18s ease}.rating-star-button.active{color:#f59e0b;border-color:color-mix(in oklab,#f59e0b 52%,transparent);background:color-mix(in oklab,#f59e0b 14%,var(--button-bg))}.rating-star-button:hover{transform:translateY(-1px)}.rating-input-value{color:var(--text-subtle);font-size:var(--font-size-md)}.catalog-meta{margin:0;display:grid;gap:10px;padding:12px;border-radius:16px;background:color-mix(in oklab,var(--panel-bg) 84%,transparent);border:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.catalog-meta div{display:grid;gap:4px}.catalog-meta dt{color:var(--text-subtle);font-size:.72rem;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.catalog-meta dd{margin:0;color:var(--text);font-size:.84rem}.catalog-card-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:auto;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.catalog-card:hover .catalog-card-actions,.catalog-card:focus-within .catalog-card-actions,.catalog-card-drag-handle:focus-within .catalog-card-actions{opacity:1;transform:translateY(0);pointer-events:auto}.catalog-empty{min-height:220px;border:1px dashed color-mix(in oklab,var(--text) 12%,transparent);border-radius:16px;display:grid;align-content:center;justify-items:center;gap:8px;padding:28px;text-align:center}.catalog-empty strong{color:var(--text);font-size:.98rem}.catalog-empty p{margin:0;max-width:28ch;color:var(--text-subtle);line-height:1.5}.catalog-group-empty{border:1px dashed color-mix(in oklab,var(--text) 12%,transparent);border-radius:18px;padding:18px 20px;color:var(--text-subtle);font-size:.84rem;background:linear-gradient(180deg,color-mix(in oklab,var(--panel-bg) 92%,transparent),color-mix(in oklab,var(--app-bg) 96%,transparent))}.flights-page{display:grid;gap:18px}.flights-page.map-active{min-height:calc(100dvh - 44px);grid-template-rows:auto minmax(0,1fr)}.flights-header-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.view-toggle{display:inline-flex;padding:4px;border-radius:999px;background:color-mix(in oklab,var(--panel-bg) 88%,transparent);border:1px solid color-mix(in oklab,var(--text) 10%,transparent)}.view-toggle-btn{border:0;background:transparent;color:var(--text-subtle);font:inherit;font-weight:var(--font-weight-bold);padding:8px 14px;border-radius:999px;cursor:pointer;transition:background-color .18s ease,color .18s ease}.view-toggle-btn.active{background:color-mix(in oklab,var(--accent) 18%,transparent);color:var(--text)}.flights-list{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:stretch;grid-auto-rows:1fr}.flight-timeline{display:grid;gap:18px;max-width:960px}.flight-timeline-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:18px;align-items:start}.flight-timeline-rail{display:grid;justify-items:center;align-self:stretch}.flight-timeline-dot{width:14px;height:14px;border-radius:999px;background:linear-gradient(135deg,var(--accent),color-mix(in oklab,var(--accent) 72%,white));box-shadow:0 0 0 4px color-mix(in oklab,var(--panel-bg) 88%,transparent)}.flight-timeline-line{width:2px;flex:1 1 auto;min-height:100%;margin-top:8px;background:color-mix(in oklab,var(--text) 12%,transparent)}.flight-timeline-item:last-child .flight-timeline-line{opacity:0}.flight-timeline-content{display:grid;gap:12px;padding:4px 0 22px}.flight-timeline-topline{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--text-subtle);font-size:var(--font-size-md)}.flight-timeline-topline em{font-style:normal;padding:6px 10px;border-radius:999px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);background:color-mix(in oklab,var(--app-bg) 94%,transparent);white-space:nowrap}.flight-timeline-summary{display:grid;gap:6px}.flight-timeline-summary strong{color:var(--text);font-size:1.2rem;line-height:1.25}.flight-timeline-summary span{color:var(--accent);font-size:.84rem;font-weight:var(--font-weight-semibold);letter-spacing:.02em;text-transform:uppercase}.flight-timeline-stack{display:grid;gap:14px}.flight-timeline-leg,.flight-timeline-stay{display:grid;gap:10px;padding:0}.flight-timeline-leg+.flight-timeline-leg,.flight-timeline-leg+.flight-timeline-stay,.flight-timeline-stay+.flight-timeline-leg{padding-top:14px;border-top:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.flight-timeline-leg-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.flight-timeline-leg-header strong,.flight-timeline-stay strong{color:var(--text);font-size:var(--font-size-body-md);letter-spacing:.06em;text-transform:uppercase}.flight-timeline-leg-header span{color:var(--text-subtle);font-size:var(--font-size-md);text-align:right}.flight-timeline-leg-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:start}.flight-timeline-leg-route div{display:grid;gap:4px;min-width:0}.flight-timeline-leg-route b{color:var(--text);font-size:.98rem}.flight-timeline-leg-route span,.flight-timeline-stay em{color:var(--text-subtle);font-size:.84rem;line-height:1.5;font-style:normal;overflow-wrap:anywhere}.flight-timeline-leg-arrow{min-width:108px;display:flex;align-items:center;gap:10px}.flight-timeline-leg-arrow span{flex:1 1 auto;height:1px;background:color-mix(in oklab,var(--text) 12%,transparent)}.flight-timeline-leg-arrow em,.flight-timeline-stay span{padding:7px 12px;border-radius:999px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);background:color-mix(in oklab,var(--app-bg) 88%,transparent);color:var(--text);font-size:.74rem;font-style:normal;line-height:1;white-space:nowrap}.flight-timeline-stay{justify-items:start;align-items:center}.app-shell.dark .flight-timeline-dot{box-shadow:0 0 0 4px #23262deb}.app-shell.dark .flight-timeline-line,.app-shell.dark .flight-timeline-leg-arrow span{background:#ffffff29}.app-shell.dark .flight-timeline-leg+.flight-timeline-leg,.app-shell.dark .flight-timeline-leg+.flight-timeline-stay,.app-shell.dark .flight-timeline-stay+.flight-timeline-leg{border-top-color:#ffffff14}.app-shell.dark .flight-timeline-topline em,.app-shell.dark .flight-timeline-leg-arrow em,.app-shell.dark .flight-timeline-stay span{color:#f8f9fc;background:#ffffff14;border-color:#ffffff29}@media(max-width:720px){.flight-timeline-item{grid-template-columns:22px minmax(0,1fr);gap:12px}.flight-timeline-content{padding:2px 0 18px}.flight-timeline-topline,.flight-timeline-leg-header,.flight-timeline-leg-route{grid-template-columns:1fr;display:grid}.flight-timeline-topline{gap:8px}.flight-timeline-topline em{justify-self:start}.flight-timeline-leg-header span{text-align:left}.flight-timeline-leg-arrow{min-width:0}}.flight-card{height:100%}.flight-card-panel{height:100%;border-radius:22px;padding:16px;background:linear-gradient(180deg,color-mix(in oklab,var(--app-bg) 98%,transparent),color-mix(in oklab,var(--panel-bg) 94%,transparent)),linear-gradient(135deg,color-mix(in oklab,var(--accent) 8%,transparent),transparent 48%)}.flight-card-panel-future{background:linear-gradient(180deg,color-mix(in oklab,var(--app-bg) 98%,transparent),color-mix(in oklab,var(--panel-bg) 94%,transparent)),linear-gradient(135deg,rgba(44,138,255,.12),transparent 52%)}.flight-card-panel-past{opacity:.96}.flight-card-panel .panel-card-body{margin-top:8px;flex:1 1 auto;align-content:start;gap:9px}.flight-card-subtitle{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}.flight-card-status-badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;font-size:var(--font-size-2xs);font-weight:var(--font-weight-extrabold);letter-spacing:.04em;text-transform:uppercase}.flight-card-status-badge.future{background:#1976d21f;border:1px solid rgba(25,118,210,.2);color:#1565c0}.flight-card-status-badge.past{background:color-mix(in oklab,var(--text) 8%,transparent);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);color:var(--text-subtle)}.flight-card-topline{display:flex;align-items:center;gap:12px}.flight-card-badge{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--accent) 14%,transparent);color:color-mix(in oklab,var(--accent) 82%,var(--text));flex:0 0 auto}.flight-card-heading{display:grid;gap:2px;min-width:0}.flight-card-heading strong{font-size:var(--font-size-hero-body)}.flight-card-heading span{color:var(--text-subtle);font-size:.85rem;line-height:1.4}.flight-card-timeline{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:color-mix(in oklab,var(--panel-bg) 84%,transparent);border:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.flight-card-time-block{display:grid;gap:1px;align-content:start;min-width:0}.flight-card-time-block strong{font-size:clamp(1.2rem,2.4vw,1.5rem);line-height:1;min-width:0}.flight-card-time-block span{color:var(--text);font-size:var(--font-size-title-sm);font-weight:var(--font-weight-extrabold);letter-spacing:.03em}.flight-card-time-block em{display:-webkit-box;overflow:hidden;color:var(--text-subtle);font-size:var(--font-size-sm);font-style:normal;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow-wrap:anywhere}.flight-card-time-block small{color:var(--text);font-size:.74rem;font-weight:var(--font-weight-bold);line-height:1.25;overflow-wrap:anywhere}.flight-card-time-block-arrival{text-align:right}.flight-card-connector{min-width:92px;display:flex;align-items:center;gap:8px}.flight-card-connector span{flex:1 1 auto;height:1px;background:color-mix(in oklab,var(--text) 12%,transparent)}.flight-card-connector b{padding:6px 10px;border-radius:999px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);background:color-mix(in oklab,var(--app-bg) 94%,transparent);font-size:.7rem;line-height:1;white-space:nowrap}.app-shell.dark .flight-card-timeline{background:linear-gradient(180deg,#2c2f37f5,#22252cf0);border-color:#ffffff1a}.app-shell.dark .flight-card-time-block strong{color:#f6f7fb;text-shadow:0 1px 0 rgba(0,0,0,.28)}.app-shell.dark .flight-card-time-block span{color:#f1f3f8}.app-shell.dark .flight-card-time-block small{color:#d7dbe6}.app-shell.dark .flight-card-connector span{background:#ffffff29}.app-shell.dark .flight-card-connector b{color:#f8f9fc;background:#ffffff14;border-color:#ffffff29;box-shadow:inset 0 1px #ffffff0a}.flight-card-summary-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.flight-card-summary-row span{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:999px;background:color-mix(in oklab,var(--panel-bg) 82%,transparent);border:1px solid color-mix(in oklab,var(--text) 8%,transparent);color:var(--text-subtle);font-size:.72rem;font-weight:var(--font-weight-bold)}.flight-info-btn{position:relative;width:24px;height:24px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--panel-bg) 82%,transparent);color:var(--text-subtle);cursor:help}.flight-info-btn:after{content:attr(data-tooltip);position:absolute;right:0;bottom:calc(100% + 10px);width:min(280px,60vw);padding:9px 11px;border-radius:12px;background:var(--tooltip-bg);color:var(--tooltip-text);box-shadow:var(--tooltip-shadow);font-size:.74rem;line-height:1.45;text-align:left;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease;z-index:6}.flight-info-btn:hover:after,.flight-info-btn:focus-visible:after{opacity:1;transform:translateY(0)}.flight-meta-grid{margin:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.flight-meta-grid div{display:grid;gap:4px;padding:10px 12px;border-radius:14px;background:color-mix(in oklab,var(--panel-bg) 84%,transparent);border:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.flight-meta-grid-wide{grid-column:1 / -1}.flight-meta-grid dt{color:var(--text-subtle);font-size:.7rem;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em}.flight-meta-grid dd{margin:0;color:var(--text);font-size:var(--font-size-md);line-height:1.4}.delete-confirmation strong{color:var(--text)}.page-fab-stack{position:fixed;right:28px;bottom:28px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;z-index:4}.page-fab{width:56px;height:56px;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-inverse);background:color-mix(in oklab,var(--accent) 78%,rgb(16 18 22 / 92%));box-shadow:0 16px 34px #00000038;transition:transform .18s ease,filter .2s ease,box-shadow .24s ease}.page-fab:not(.page-fab-secondary){position:fixed;right:28px;bottom:28px;z-index:4}.page-fab-stack .page-fab{position:static}.page-fab:hover{transform:translateY(-2px);filter:brightness(1.04);box-shadow:0 20px 38px #00000047}.page-fab:active{transform:translateY(0)}.page-fab-secondary{position:static;width:48px;height:48px;color:var(--text);background:color-mix(in oklab,var(--panel-bg) 86%,rgb(255 255 255 / 92%));border:1px solid color-mix(in oklab,var(--text) 10%,transparent);box-shadow:0 12px 24px #00000029}.users-fab{right:32px;bottom:32px}.users-grid{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.users-card-directory{grid-column:1 / -1}@media(max-width:1500px){.users-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1024px){.users-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.users-grid{grid-template-columns:1fr}}.users-card h3{margin:0;font-size:var(--font-size-hero-body)}.panel-title{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.panel-title-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.panel-title-copy{display:grid;gap:4px}.panel-title h3{margin:0;font-size:var(--font-size-base)}.panel-title p{margin:0;color:var(--text-subtle);font-size:.84rem;line-height:1.45}.panel-title svg{color:var(--accent)}.users-directory-search,.users-directory-search .ui-input{width:100%}.directory-lookup{position:relative}.directory-lookup .form-field-control{min-height:40px}.directory-lookup-dropdown{z-index:9999;display:grid;gap:4px;max-height:220px;padding:8px;overflow-y:auto;border:1px solid color-mix(in oklab,var(--text) 12%,transparent);border-radius:16px;background:var(--panel-bg);box-shadow:0 8px 24px color-mix(in oklab,black 14%,transparent),0 2px 6px color-mix(in oklab,black 8%,transparent)}.directory-lookup-option{display:flex;align-items:baseline;gap:8px;width:100%;padding:8px 12px;border:1px solid transparent;border-radius:14px;background:transparent;color:inherit;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.directory-lookup-option span{font-weight:var(--font-weight-semibold);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directory-lookup-option em{color:var(--text-subtle);font-size:var(--font-size-md);font-style:normal;white-space:nowrap;flex-shrink:0}.directory-lookup-option:hover,.directory-lookup-option:focus-visible,.directory-lookup-option.selected{border-color:color-mix(in oklab,var(--accent) 52%,transparent);background:color-mix(in oklab,var(--accent) 12%,var(--surface));outline:none;transform:translateY(-1px)}.directory-lookup-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.9rem;padding:0 4px}.directory-lookup-selection-info{display:flex;flex-direction:column;gap:2px;min-width:0}.directory-lookup-selection-name{font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directory-lookup-selection-meta{font-style:normal;color:var(--text-subtle);font-size:var(--font-size-body-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directory-lookup-clear{border:0;padding:0;background:transparent;color:var(--accent);font:inherit}.directory-lookup-hint,.directory-lookup-empty{margin:0;color:var(--text-subtle);font-size:.84rem;line-height:1.45}.directory-status-toggle{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.directory-status-control{padding:14px 16px;align-items:center;justify-content:space-between;gap:16px}.directory-status-toggle-label{display:block;color:var(--text);font-size:.92rem;font-weight:var(--font-weight-medium)}.directory-status-toggle-hint{display:block;color:var(--text-subtle);font-size:.78rem;line-height:1.4}.users-directory-table{display:grid;gap:0}.users-directory-header,.users-directory-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(220px,1.4fr) minmax(120px,.9fr) minmax(150px,1fr) minmax(110px,.8fr) auto;gap:12px;align-items:center}.users-directory-header{padding:0 0 10px;border-bottom:1px solid color-mix(in oklab,var(--text) 10%,transparent)}.users-sort-btn,.users-col-actions{border:0;padding:0;background:transparent;color:var(--text-subtle);font:inherit;font-size:.76rem;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.users-sort-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.users-sort-btn svg{opacity:.35}.users-sort-btn svg.active{opacity:.92;color:var(--accent)}.users-directory-body{display:grid}.users-directory-body .users-directory-row{padding:12px 0;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.users-directory-body .users-directory-row:last-child{border-bottom:0}.users-directory-row span{color:var(--text)}.users-col-name{font-weight:var(--font-weight-bold)}.users-col-email,.users-col-role,.users-col-lastActivityAt{color:var(--text-subtle)!important}.users-col-actions{display:flex;justify-content:flex-end}.users-directory-empty{padding:18px 0 8px;color:var(--text-subtle)}.users-card-header{display:flex;justify-content:space-between;gap:10px;align-items:center}.users-card-actions{display:flex;gap:8px}.users-form-grid{display:grid;gap:12px}.users-form-grid label{display:grid;gap:6px;color:var(--text-subtle);font-size:var(--font-size-md)}.users-list{margin:0;padding-left:0;list-style:none;display:grid;gap:10px}.users-list li{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.users-list li:last-child{border-bottom:0;padding-bottom:0}.users-list li>div{display:grid;gap:3px}.users-list span{color:var(--text);font-weight:var(--font-weight-semibold)}.users-list p{margin:0;color:var(--text-subtle);font-size:var(--font-size-body-md)}.users-list em{color:var(--text-subtle);font-style:normal;text-align:right}.users-row-actions{display:grid;gap:8px;justify-items:end}.users-row-actions em{width:auto}.users-row-icon-group{display:flex;align-items:center;gap:8px}.users-icon-btn{width:32px;height:32px;border:1px solid color-mix(in oklab,var(--text) 14%,transparent);border-radius:10px;background:color-mix(in oklab,var(--panel-bg) 88%,transparent);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .18s ease,border-color .2s ease,background-color .2s ease,box-shadow .22s ease}.users-icon-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0000001a;border-color:color-mix(in oklab,var(--accent) 22%,transparent)}.users-icon-btn-danger:hover{border-color:color-mix(in oklab,var(--color-danger-strong) 26%,transparent);color:color-mix(in oklab,var(--color-danger-strong) 84%,var(--text))}@media(max-width:1180px){.users-directory-header,.users-directory-row{grid-template-columns:minmax(140px,1.1fr) minmax(190px,1.25fr) minmax(110px,.8fr) minmax(130px,.9fr) minmax(96px,.75fr) auto}}@media(max-width:960px){.users-directory-header{display:none}.users-directory-body .users-directory-row{grid-template-columns:1fr auto;gap:8px 12px;align-items:start}.users-col-email,.users-col-team,.users-col-role,.users-col-lastActivityAt{font-size:var(--font-size-md)}.users-col-name,.users-col-email,.users-col-team,.users-col-role,.users-col-lastActivityAt{grid-column:1 / 2}.users-col-actions{grid-column:2 / 3;grid-row:1 / span 5;align-self:center}}.admin-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.admin-card{align-content:start}.admin-card p{margin:0;color:var(--text-subtle)}.admin-card label{display:grid;gap:6px;color:var(--text-subtle);font-size:var(--font-size-md)}.admin-card .ui-input,.admin-card .ui-select,.admin-card .ui-textarea{width:100%;padding:8px 10px}.admin-card ul{margin:0;padding-left:18px;color:var(--text-subtle);display:grid;gap:7px}.admin-card li span{color:var(--text);font-weight:var(--font-weight-semibold);margin-right:6px}.admin-card li em{color:var(--text-subtle);font-style:normal}.admin-lifecycle-list{padding-left:0!important;list-style:none}.admin-lifecycle-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.admin-lifecycle-copy{display:grid;gap:4px;min-width:0}.admin-lifecycle-copy span{margin-right:0}.admin-lifecycle-copy em{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:20px;padding:1px 9px;border-radius:999px;background:color-mix(in oklab,var(--text) 8%,transparent);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);font-size:.74rem;font-weight:var(--font-weight-bold);line-height:1;white-space:nowrap}.app-shell.dark .admin-lifecycle-copy em{color:#d2d8e2;background:#ffffff0d;border-color:#ffffff14}.admin-lifecycle-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}.admin-lifecycle-btn{flex:0 0 auto}.admin-lifecycle-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.admin-reporting-list li em{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:20px;padding:1px 9px;border-radius:999px;background:color-mix(in oklab,var(--text) 8%,transparent);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);font-size:.74rem;font-weight:var(--font-weight-bold);line-height:1;white-space:nowrap}.app-shell.dark .admin-reporting-list li em{color:#d2d8e2;background:#ffffff0d;border-color:#ffffff14}.admin-audit-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.admin-audit-list li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-audit-list li em{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:20px;padding:1px 9px;border-radius:999px;background:color-mix(in oklab,var(--text) 8%,transparent);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);font-size:.74rem;font-weight:var(--font-weight-bold);line-height:1;white-space:nowrap}.app-shell.dark .admin-audit-list li em{color:#d2d8e2;background:#ffffff0d;border-color:#ffffff14}.admin-chip-row{display:flex;flex-wrap:wrap;gap:8px}.admin-chip{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:var(--font-weight-bold)}.admin-chip.status-active{background:color-mix(in oklab,var(--color-success) 14%,transparent);color:color-mix(in oklab,var(--color-success) 78%,var(--text))}.admin-chip.status-draft{background:color-mix(in oklab,var(--text) 10%,transparent);color:var(--text-subtle)}.admin-inline{display:inline-flex!important;align-items:center;gap:8px}.admin-action{border:0;border-radius:9px;background:color-mix(in oklab,var(--accent) 78%,var(--button-bg));color:var(--text-inverse);padding:6px 10px;font-weight:var(--font-weight-semibold);width:fit-content;cursor:pointer;position:relative;transition:transform .18s ease,filter .2s ease,box-shadow .22s ease}.admin-action:hover{transform:translateY(-1px);filter:brightness(1.03);box-shadow:0 10px 20px #0000001f}.integration-grid{margin-top:22px;display:grid;gap:18px;grid-template-columns:repeat(auto-fill,242px);justify-content:start;width:100%}.playground-grid{margin-top:18px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.glb-gallery-grid{margin-top:18px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.glb-file-input{display:none}.glb-overview-dropzone{margin-top:18px;border:0;border-radius:16px;padding:18px;background:transparent;display:grid;gap:10px;cursor:pointer;transition:background-color .2s ease}.playground-page.playground-preview-active .glb-overview-dropzone{margin-top:0;min-height:100%;height:100%;padding:0;border-radius:0;background:var(--color-preview-bg)}.glb-overview-dropzone.active{background:color-mix(in oklab,var(--accent) 10%,transparent)}.glb-overview-dropzone p{margin:0;color:var(--text-subtle)}.glb-status{margin-top:12px;margin-bottom:0;color:var(--text-subtle)}.glb-gallery-skeletons{pointer-events:none}.glb-model-skeleton{position:relative;overflow:hidden}.glb-model-skeleton:after{content:"";position:absolute;inset:0;transform:translate(-120%) skew(-18deg);background:linear-gradient(90deg,transparent 0%,color-mix(in oklab,white 12%,transparent) 45%,transparent 100%);animation:glb-skeleton-shimmer 1.2s ease-in-out infinite}.glb-skeleton-line{display:block;height:12px;border-radius:999px;background:color-mix(in oklab,var(--text) 10%,transparent)}.glb-skeleton-line-title{width:62%;height:16px}.glb-skeleton-line-meta{width:48%}.glb-skeleton-line-meta.short{width:36%}.glb-skeleton-actions{display:flex;gap:8px;margin-top:auto}.glb-skeleton-chip{width:32px;height:32px;border-radius:10px;background:color-mix(in oklab,var(--text) 10%,transparent)}@keyframes glb-skeleton-shimmer{0%{transform:translate(-120%) skew(-18deg)}to{transform:translate(220%) skew(-18deg)}}.glb-error{margin-top:12px;margin-bottom:0;color:var(--color-danger-strong);font-weight:var(--font-weight-semibold)}.glb-preview-panel{display:grid;gap:10px;transform-origin:center center}.playground-page.playground-preview-active .glb-preview-panel{position:relative;min-height:100%;height:100%;gap:0}.glb-preview-toolbar{display:flex;justify-content:flex-end;opacity:.98}.playground-page.playground-preview-active .glb-preview-toolbar{position:absolute;right:18px;bottom:18px;top:auto;display:flex;gap:10px;z-index:2;padding:10px 12px;border-radius:999px;background:color-mix(in oklab,var(--color-preview-bg) 54%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 26px #00000024}.glb-fab{width:44px;height:44px;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-inverse);background:color-mix(in oklab,var(--accent) 76%,rgb(16 18 22 / 92%));box-shadow:0 10px 24px #00000047;transition:transform .18s ease,filter .2s ease,background-color .2s ease}.glb-fab:hover{transform:translateY(-1px);filter:brightness(1.04)}.glb-fab:active{transform:translateY(0)}.app-shell:not(.dark) .glb-fab{background:color-mix(in oklab,var(--accent) 72%,rgb(32 36 42 / 84%))}.glb-back-btn{margin-top:0}.glb-preview-frame-shell{border:1px solid color-mix(in oklab,var(--text) 16%,transparent);border-radius:14px;overflow:hidden;background:var(--color-preview-bg);box-shadow:0 20px 44px #00000029}.playground-page.playground-preview-active .glb-preview-frame-shell{min-height:100%;height:100%;border:0;border-radius:0}.glb-preview-frame{width:100%;height:calc(100vh - 250px);border:0;display:block}.playground-page.playground-preview-active .glb-preview-frame{height:100%;min-height:100vh}.pitchdeck-page{display:grid;gap:12px}.pitchdeck-toolbar{display:flex;justify-content:flex-end}.viewer-link{display:inline-flex;align-items:center;padding:8px 12px;border-radius:10px;text-decoration:none;font-weight:var(--font-weight-semibold);color:var(--text-inverse);background:color-mix(in oklab,var(--accent) 78%,var(--button-bg));transition:transform .18s ease,filter .2s ease}.viewer-link:hover{transform:translateY(-1px);filter:brightness(1.03)}.pdf-viewer-shell{border:1px solid color-mix(in oklab,var(--text) 14%,transparent);border-radius:14px;background:var(--color-white);overflow:hidden}.app-shell.dark .pdf-viewer-shell{background:var(--color-preview-bg-dark);border-color:color-mix(in oklab,var(--color-border-dark-soft) 28%,transparent)}.pdf-viewer-frame{width:100%;height:calc(100vh - 220px);border:0;display:block}.app-shell.dark .pdf-viewer-frame{filter:brightness(.9) contrast(1.02)}.playground-tile{background:var(--app-bg);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:16px;padding:16px;width:100%;text-align:left;text-decoration:none;color:var(--text);display:block;font:inherit;cursor:pointer;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background-color .45s ease,color .45s ease}.playground-tile:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0000001f;border-color:color-mix(in oklab,var(--accent) 28%,transparent)}.playground-tile h3{margin:0;font-size:var(--font-size-hero-body)}.playground-tile p{margin:8px 0 0;font-size:.85rem;color:var(--text-subtle)}.glb-model-card{background:var(--app-bg);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:16px;padding:16px;display:grid;gap:10px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.glb-model-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px #00000014;border-color:color-mix(in oklab,var(--accent) 20%,transparent)}.glb-model-card h3{margin:0;font-size:var(--font-size-hero-body)}.glb-model-card p{margin:0;font-size:var(--font-size-md);color:var(--text-subtle);word-break:break-word}.glb-tile-actions{display:flex;gap:8px;margin-top:4px}.glb-icon-btn{border:0;border-radius:10px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-inverse);background:transparent;cursor:pointer;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.glb-icon-btn:hover{transform:translateY(-1px);filter:brightness(1.03)}.glb-preview-btn{background:color-mix(in oklab,var(--accent) 78%,var(--button-bg));border:0}.glb-outline-btn{border:1px solid color-mix(in oklab,var(--text) 20%,transparent);background:color-mix(in oklab,var(--panel-bg) 84%,transparent);color:var(--text)}.glb-delete-btn{border-color:color-mix(in oklab,#b42318 32%,var(--text) 12%);color:color-mix(in oklab,#b42318 72%,var(--text))}.upload-cookie{position:fixed;right:16px;bottom:68px;z-index:41;min-width:220px;border-radius:12px;padding:10px 12px;background:color-mix(in oklab,var(--panel-bg) 88%,#000 12%);border:1px solid color-mix(in oklab,var(--text) 18%,transparent);display:grid;gap:6px;box-shadow:0 10px 30px #00000029}.upload-cookie strong{font-size:var(--font-size-md-plus)}.upload-cookie span{font-size:var(--font-size-sm);color:var(--text-subtle)}.upload-cookie-bar{height:8px;border-radius:999px;background:color-mix(in oklab,var(--text) 14%,transparent);overflow:hidden}.upload-cookie-fill{position:relative;height:100%;background:color-mix(in oklab,var(--accent) 82%,var(--button-bg));transition:width .2s ease;overflow:hidden}.upload-cookie.completed{border-color:color-mix(in oklab,var(--color-success) 34%,transparent);background:color-mix(in oklab,var(--panel-bg) 80%,var(--color-success) 20%)}.upload-cookie.completed .upload-cookie-fill{background:linear-gradient(90deg,color-mix(in oklab,var(--color-success) 76%,var(--button-bg)),color-mix(in oklab,var(--color-success) 92%,white 8%))}.upload-cookie-shimmer{position:absolute;inset:0 auto 0 -42%;width:42%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),rgba(255,255,255,.5),rgba(255,255,255,.14),transparent);transform:skew(-18deg);animation:upload-shimmer 1.35s ease-in-out infinite;pointer-events:none}.upload-cookie.completed .upload-cookie-shimmer{animation-duration:.95s;opacity:.9}@keyframes upload-shimmer{0%{transform:translate(0) skew(-18deg)}to{transform:translate(320%) skew(-18deg)}}.integration-tile{background:var(--app-bg);border-radius:24px;padding:18px;border:1px solid transparent;width:242px;min-height:280px;display:flex;flex-direction:column;justify-content:flex-start;position:relative;overflow:hidden;transition:background-color .45s ease,border-color .45s ease,transform .3s ease,box-shadow .3s ease}.integration-tile:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.integration-tile-add{border-style:dotted;border-color:color-mix(in oklab,var(--text) 18%,transparent);background:transparent;align-items:center;justify-content:center;gap:10px;text-align:center;cursor:pointer}.app-shell.dark .integration-tile-add{background:transparent;border-color:color-mix(in oklab,white 18%,transparent)}.add-integration-icon{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:color-mix(in oklab,var(--accent) 14%,transparent);color:var(--accent)}.integration-tile-add:hover .add-integration-icon{animation:add-integration-wobble .58s ease-in-out}.add-integration-label{font-size:var(--font-size-hero-body);font-weight:var(--font-weight-extrabold);color:var(--text)}.add-integration-copy{max-width:15ch;font-size:var(--font-size-md);line-height:1.45;color:var(--text-subtle)}@keyframes add-integration-wobble{0%{transform:rotate(0) scale(1)}22%{transform:rotate(-8deg) scale(1.05)}46%{transform:rotate(7deg) scale(1.08)}70%{transform:rotate(-5deg) scale(1.03)}to{transform:rotate(0) scale(1)}}.app-shell.dark .integration-tile{background:linear-gradient(130deg,#2b2d31,#232529)}.app-shell.dark .integration-tile.integration-tile-add{background:transparent}.integration-tile.enabled{border-color:color-mix(in oklab,var(--accent) 28%,transparent)}.integration-tile-ring{position:absolute;inset:0;border-radius:inherit;border:1px solid transparent;pointer-events:none}.integration-tile-ring-enabled{border-color:color-mix(in oklab,var(--accent) 72%,white 10%);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--accent) 28%,transparent)}.integration-tile-ring-disabled{border-color:color-mix(in oklab,var(--text) 22%,transparent);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--text) 12%,transparent)}.tile-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.tile-icon{width:48px;height:48px;border-radius:14px;background:var(--button-bg);display:grid;place-items:center;overflow:hidden}.tile-icon img{width:28px;height:28px;object-fit:contain;display:block;will-change:transform,filter,opacity}.integration-tile.enabled .tile-icon img{filter:none;opacity:1}.integration-tile h3{margin:4px 0 0;font-size:var(--font-size-hero-body);line-height:1.1}.integration-tile p{margin:2px 0 0;color:var(--text-subtle);font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.tile-status-row{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.tile-health-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:var(--font-weight-bold);text-transform:capitalize}.tile-health-badge.status-passing{background:color-mix(in oklab,var(--color-success) 16%,transparent);color:color-mix(in oklab,var(--color-success) 78%,var(--text))}.tile-health-badge.status-degraded{background:color-mix(in oklab,var(--accent) 14%,transparent);color:color-mix(in oklab,var(--accent) 84%,var(--text))}.tile-health-badge.status-failing{background:color-mix(in oklab,var(--color-danger-strong) 14%,transparent);color:color-mix(in oklab,var(--color-danger-strong) 82%,var(--text))}.tile-health-badge.status-disabled{background:color-mix(in oklab,var(--text) 10%,transparent);color:var(--text-subtle)}.tile-latency{color:var(--text-subtle);font-size:.72rem;font-weight:var(--font-weight-semibold)}.tile-meta-grid{margin:10px 0 0;display:grid;gap:8px}.tile-meta-grid div{display:grid;gap:2px}.tile-meta-grid dt{color:var(--text-subtle);font-size:.69rem;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.tile-meta-grid dd{margin:0;color:var(--text);font-size:.77rem;line-height:1.25}.tile-empty-state{margin-top:auto;margin-bottom:0;min-height:108px;display:grid;place-items:center;gap:8px;padding:18px 16px;border:1px dashed color-mix(in oklab,var(--text) 10%,transparent);border-radius:18px;background:linear-gradient(180deg,color-mix(in oklab,var(--panel-bg) 92%,transparent),color-mix(in oklab,var(--panel-bg) 98%,transparent));text-align:center}.tile-empty-state strong{color:var(--text);font-size:var(--font-size-body-lg)}.tile-empty-state p{margin:0;max-width:24ch;color:var(--text-subtle);font-size:var(--font-size-md);line-height:1.5}.app-shell.dark .tile-empty-state{border-color:#ffffff1a;background:linear-gradient(180deg,#ffffff04,#ffffff08)}.app-shell.dark .tile-empty-state p{color:#c2c8d2}.integration-tile-actions{margin-top:auto;padding-top:8px;display:flex;gap:8px;align-items:center;justify-content:center}.integration-icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in oklab,var(--text) 14%,transparent);border-radius:10px;background:color-mix(in oklab,var(--panel-bg) 88%,transparent);color:var(--text);cursor:pointer;transition:transform .16s ease,border-color .18s ease,background-color .18s ease,color .18s ease}.integration-icon-btn:hover,.integration-icon-btn:focus-visible{color:var(--text);border-color:color-mix(in oklab,var(--accent) 36%,transparent);background:color-mix(in oklab,var(--accent) 10%,var(--panel-bg));transform:translateY(-1px)}.integration-icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 18%,transparent)}.app-shell.dark .integration-icon-btn{background:#ffffff09;border-color:#ffffff1a;color:#f4f7fc}.app-shell.dark .integration-icon-btn:hover,.app-shell.dark .integration-icon-btn:focus-visible{background:#ff6c371f;border-color:#ff6c3752}.platform-selection{display:grid;gap:16px}.platform-selection-copy h4{margin:0;font-size:var(--font-size-hero-body);color:var(--text)}.platform-selection-copy p{margin:6px 0 0;color:var(--text-subtle);font-size:var(--font-size-086);line-height:1.5}.platform-selection-grid{display:grid;gap:12px}.platform-option{border:1px solid color-mix(in oklab,var(--text) 12%,transparent);border-radius:16px;background:color-mix(in oklab,var(--panel-bg) 88%,transparent);padding:14px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;text-align:left;cursor:pointer;transition:border-color .24s ease,transform .24s ease,box-shadow .24s ease,background-color .24s ease}.platform-option:hover{transform:translateY(-1px);box-shadow:0 10px 28px #00000014}.platform-option.active{border-color:color-mix(in oklab,var(--accent) 42%,transparent);background:color-mix(in oklab,var(--accent) 10%,var(--panel-bg));box-shadow:0 0 0 1px color-mix(in oklab,var(--accent) 16%,transparent)}.platform-option-icon{width:46px;height:46px;border-radius:14px;background:var(--button-bg);display:grid;place-items:center;overflow:hidden}.platform-option-icon img{width:28px;height:28px;object-fit:contain;display:block;filter:grayscale(1) saturate(.12);opacity:.72;transition:filter .24s ease,opacity .24s ease,transform .24s ease}.platform-option:hover .platform-option-icon img,.platform-option.active .platform-option-icon img{filter:grayscale(0) saturate(1);opacity:1;transform:scale(1.04)}.platform-option-body{display:grid;gap:3px}.platform-option-body strong{font-size:.92rem;color:var(--text)}.platform-option-body span{color:var(--text-subtle);font-size:var(--font-size-body-md);line-height:1.45}.integration-detail-page{display:grid;gap:14px}.detail-page-header h2{margin:8px 0 0}.detail-page-header p{margin:4px 0 0;color:var(--text-subtle)}.back-button{border:0;border-radius:10px;background:var(--button-bg);color:var(--text);padding:6px 10px;display:inline-flex;align-items:center;gap:6px;font-weight:var(--font-weight-semibold);cursor:pointer;position:relative;transition:transform .18s ease,background-color .2s ease,box-shadow .22s ease}.back-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0000001a}.detail-tabs{display:inline-flex;flex-wrap:wrap;gap:6px;padding:4px;border-radius:12px;background:color-mix(in oklab,var(--button-bg) 70%,transparent);width:fit-content}.detail-tab{border:0;border-radius:9px;padding:7px 12px;background:transparent;color:var(--text);position:relative;isolation:isolate;cursor:pointer;font-weight:var(--font-weight-semibold);transition:background-color .2s ease,transform .18s ease}.detail-tab:hover{transform:translateY(-1px)}.detail-tab.active{color:var(--text)}.detail-tab-pill{position:absolute;inset:0;border-radius:9px;background:var(--app-bg);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--text) 8%,transparent),0 8px 18px #00000014;z-index:-1}.detail-tab-label{position:relative;z-index:1}.detail-card{background:var(--app-bg);border:1px solid color-mix(in oklab,var(--text) 12%,transparent);border-radius:16px;padding:14px}.detail-workspace{display:grid;gap:14px}.detail-summary-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.detail-card h3,.detail-card h4{margin:0 0 8px}.detail-card p{margin:0 0 8px;color:var(--text-subtle)}.detail-card a{color:var(--accent);font-weight:var(--font-weight-semibold);text-decoration:none}.activity-list{margin:0 0 10px;padding-left:18px;color:var(--text-subtle)}.detail-list,.detail-finding-list,.detail-action-list{margin:0;padding-left:0;list-style:none;display:grid;gap:10px}.detail-list li,.detail-action-list li{display:flex;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.detail-list li:last-child,.detail-action-list li:last-child{border-bottom:0;padding-bottom:0}.detail-list span,.detail-action-list span{color:var(--text);font-weight:var(--font-weight-semibold)}.detail-list em,.detail-action-list em{color:var(--text-subtle);font-style:normal;text-align:right}.detail-topology-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.detail-topology-node{border-radius:14px;padding:12px;background:color-mix(in oklab,var(--panel-bg) 84%,transparent);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);display:grid;gap:6px}.detail-topology-node strong{color:var(--text)}.detail-topology-node span{color:var(--accent);font-size:.74rem;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.detail-topology-node p,.detail-finding-list p{margin:0;color:var(--text-subtle);font-size:var(--font-size-md)}.detail-finding-list li{display:grid;gap:5px;padding:12px;border-radius:14px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);background:color-mix(in oklab,var(--panel-bg) 82%,transparent)}.detail-finding-list li span{color:var(--text);font-weight:var(--font-weight-bold)}.detail-finding-list li.severity-high{border-color:color-mix(in oklab,var(--color-danger-strong) 26%,transparent)}.detail-finding-list li.severity-medium{border-color:color-mix(in oklab,var(--accent) 22%,transparent)}.toggle-switch{width:34px;height:20px;border-radius:999px;border:0;background:var(--button-bg);padding:2px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;transition:background-color .3s ease}.toggle-switch.enabled{justify-content:flex-start;background:color-mix(in oklab,var(--accent) 74%,var(--button-bg))}.toggle-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-white);transform:translate(0);transition:transform .28s cubic-bezier(.22,1,.36,1)}.toggle-switch.enabled .toggle-thumb{transform:translate(14px)}.settings-sidesheet{position:fixed;right:0;top:0;width:min(360px,100%);height:100dvh;max-height:100dvh;background:var(--panel-bg);color:var(--text);border-left:1px solid color-mix(in oklab,var(--text) 16%,transparent);padding:18px;z-index:50;overflow:hidden;display:flex;flex-direction:column;gap:8px}.gateway-editor-sidesheet-map-active{width:min(960px,100%)}.detail-sidesheet .detail-stack{display:flex;flex-direction:column;flex:1;min-height:0;gap:0;overflow-y:auto}.detail-sidesheet .tabs-container{flex:1;min-height:0;display:flex;flex-direction:column}.detail-sidesheet .tabs-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto}.detail-sidesheet .gateway-terminal-tab,.detail-sidesheet .gateway-terminal-tab .gateway-terminal-window{flex:1;display:flex;flex-direction:column}.detail-sidesheet .gateway-terminal-tab .gateway-terminal-history{flex:1;max-height:none}.detail-sidesheet .detail-card{border:0;border-radius:0;padding:24px 0;background:transparent;box-shadow:none}.detail-sidesheet .detail-card+.detail-card{border-top:1px solid color-mix(in oklab,var(--text) 10%,transparent)}.detail-sidesheet .detail-card h4{margin:0 0 10px;font-size:.92rem;font-weight:var(--font-weight-bold);letter-spacing:-.01em}.detail-sidesheet .detail-stack p{margin:0 0 12px;color:var(--text-subtle);font-size:.84rem;line-height:1.45}.detail-sidesheet .detail-list{gap:10px}.detail-sidesheet .detail-list li{display:grid;grid-template-columns:minmax(112px,40%) minmax(0,1fr);align-items:start;gap:18px;padding:0;border-bottom:0}.detail-list-value--bar{display:flex;align-items:center;gap:8px;width:100%}.audit-timeline{display:flex;align-items:center;gap:8px;padding:8px 8px 4px;overflow:visible}.audit-timeline-track{position:relative;flex:1;height:12px}.audit-timeline-rail-active{position:absolute;top:50%;left:0;height:4px;transform:translateY(-50%);background-image:repeating-linear-gradient(-45deg,color-mix(in oklab,var(--text) 22%,transparent) 0px,color-mix(in oklab,var(--text) 22%,transparent) 3px,transparent 3px,transparent 8px)}.audit-timeline-rail-inactive{position:absolute;top:50%;left:0;right:0;height:2px;transform:translateY(-50%);background:color-mix(in oklab,var(--text) 12%,transparent);border-radius:1px}.audit-timeline-dot{width:12px;height:12px;border-radius:50%;cursor:default;flex-shrink:0}.audit-timeline-dot--created{background:var(--text)}.audit-timeline-dot--updated{background:var(--accent)}.audit-timeline-now{font-size:.78rem;color:var(--text-subtle);flex-shrink:0;white-space:nowrap}.detail-list-value-denominator{color:var(--text-subtle);font-weight:400}.detail-list-value-bar-track{width:56px;flex:0 0 56px}.detail-sidesheet .detail-list-label{color:var(--text-subtle);font-size:.81rem;font-weight:var(--font-weight-semibold);line-height:1.4}.detail-sidesheet .detail-list-value{color:var(--text)}.tabs-container{display:flex;flex-direction:column;width:100%}.tabs-list{display:flex;position:relative;border-bottom:1px solid color-mix(in oklab,var(--text) 10%,transparent);gap:0;margin-bottom:0}.tabs-trigger{flex:1;padding:12px 0;border:none;background:transparent;color:var(--text-subtle);font-size:.92rem;font-weight:var(--font-weight-semibold);cursor:pointer;position:relative;text-align:center;transition:color .2s ease}.tabs-trigger:hover,.tabs-trigger.active{color:var(--text)}.tabs-label-with-count{display:inline-flex;align-items:center;gap:.45rem}.tabs-indicator{position:absolute;bottom:-1px;height:2px;background:var(--accent);transition:left .3s ease,width .3s ease}.tabs-content{padding:16px 0}.detail-empty-state{margin:0;padding:12px 0;color:var(--text-subtle);font-size:.92rem;text-align:center}.detail-sidesheet .detail-list-links li{display:flex;align-items:center;gap:10px;grid-template-columns:unset;padding:2px 0;border-bottom:0}.detail-list-thumbnail{width:28px;height:28px;object-fit:contain;flex-shrink:0;border-radius:4px}.detail-list-link{background:none;border:none;padding:0;margin:0;color:var(--accent);font-size:.92rem;font-weight:var(--font-weight-medium);cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:2px}.detail-list-link:hover{opacity:.8}.detail-linked-list{display:flex;flex-direction:column;gap:6px}.detail-linked-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:8px;border:1px solid color-mix(in oklab,var(--text) 8%,transparent);background:transparent;text-align:left;cursor:pointer;font-family:inherit;font-size:inherit;transition:background-color .18s ease}.detail-linked-item:hover{background-color:color-mix(in oklab,var(--text) 5%,transparent)}.detail-linked-item-pending{border-color:color-mix(in oklab,var(--warning, #f59e0b) 42%,var(--text) 8%);background:color-mix(in oklab,var(--warning, #f59e0b) 14%,var(--panel-bg));box-shadow:0 1px 2px color-mix(in oklab,var(--warning, #f59e0b) 10%,transparent)}.detail-linked-item-pending:hover{background:color-mix(in oklab,var(--warning, #f59e0b) 20%,var(--panel-bg))}.detail-linked-icon{width:36px;height:36px;border-radius:50%;background:color-mix(in oklab,var(--text) 8%,transparent);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-subtle)}.detail-linked-icon img{width:22px;height:22px;object-fit:contain;border-radius:3px}.detail-linked-info{display:flex;flex-direction:column;gap:2px;min-width:0}.detail-linked-name{font-weight:var(--font-weight-semibold);font-size:.88rem;color:var(--text);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-linked-subtitle{font-size:var(--font-size-sm);color:var(--text-subtle);line-height:1.3}.detail-copy-value{display:inline-flex;align-items:center;gap:8px;min-width:0}.detail-copy-text{font-size:var(--font-size-086);font-weight:var(--font-weight-semibold);text-align:left;line-height:1.4;min-width:0;overflow-wrap:anywhere}.detail-copy-btn{width:24px;height:24px;flex:0 0 auto;border:0;border-radius:8px;background:transparent;color:var(--text-subtle);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:translateY(1px) scale(.96);transition:opacity .18s ease,transform .18s ease,background-color .18s ease,color .18s ease}.detail-copy-value:hover .detail-copy-btn,.detail-copy-value:focus-within .detail-copy-btn{opacity:1;transform:translateY(0) scale(1)}.detail-copy-btn:hover,.detail-copy-btn:focus-visible{background:color-mix(in oklab,var(--text) 8%,transparent);color:var(--text)}.gateway-terminal-window{display:grid;gap:12px}.gateway-terminal-history{display:grid;gap:12px;min-height:180px;overflow-y:auto;padding:14px;border-radius:16px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);background:#111318;box-shadow:inset 0 1px #ffffff08;align-content:start}.gateway-terminal-entry{display:grid;gap:6px}.gateway-terminal-command,.gateway-terminal-output{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-sm);line-height:1.45}.gateway-terminal-command{color:#8ee79f}.gateway-terminal-output{color:#c9d1d9}.gateway-terminal-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.detail-sidesheet{display:flex;flex-direction:column;gap:12px}.detail-sidesheet .sheet-pager{position:sticky;bottom:0;margin-top:auto;padding-top:10px;background:color-mix(in oklab,var(--app-bg) 92%,transparent)}.sidesheet-backdrop{position:fixed;inset:0;border:0;background:color-mix(in oklab,#000 8%,transparent);padding:0;margin:0;cursor:pointer;z-index:49}.sheet-header{display:flex;justify-content:space-between;gap:10px}.sheet-eyebrow{margin:0;color:var(--text-subtle);font-size:var(--font-size-2xs);letter-spacing:.06em;text-transform:uppercase;line-height:1}.sheet-header h3{margin:2px 0 0;line-height:1.1}.app-shell.dark .settings-sidesheet .sheet-header .icon-button{color:var(--color-white)}.sheet-header-actions{display:flex;gap:4px;padding:0;margin-bottom:-8px}.detail-sidesheet .sheet-header-actions{margin-bottom:-12px}.sheet-header-actions .icon-button{width:28px;height:28px;border-radius:8px}.sheet-header-actions .sheet-delete-btn{color:var(--color-danger)}.sheet-header-actions .sheet-delete-btn:hover{background:color-mix(in oklab,var(--color-danger) 12%,transparent)}.sheet-header-actions .icon-button:disabled{opacity:.4;cursor:not-allowed;transform:none}.sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto}.sheet-form{margin-top:16px;display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow-y:auto;padding-right:4px}.gateway-editor-layout{display:grid;gap:18px;min-height:0;flex:1;overflow:hidden;grid-template-rows:minmax(0,1fr)}.gateway-editor-layout.map-active{height:100%;grid-template-columns:minmax(0,1fr) minmax(320px,42%);grid-template-rows:minmax(0,1fr)}.gateway-editor-form{margin-top:0}.gateway-coordinate-block{display:grid;gap:10px}.gateway-coordinate-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.gateway-coordinate-inline-map{height:260px;border-radius:14px;overflow:hidden;border:1px solid color-mix(in oklab,var(--text) 10%,transparent)}.gateway-coord-readonly{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:12px;background:color-mix(in oklab,var(--text) 4%,transparent)}.gateway-coord-readonly-label{font-size:var(--font-size-md);color:var(--text-subtle)}.gateway-coord-readonly-value{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.gateway-editor-map-panel{min-height:0;height:100%;border-radius:18px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);background:color-mix(in oklab,var(--surface-raised) 88%,white 12%);overflow:hidden}.gateway-coordinate-picker{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}.gateway-coordinate-picker-copy{padding:16px 16px 10px}.gateway-coordinate-picker-copy h4{margin:0 0 8px}.gateway-coordinate-picker-copy p{margin:0;color:var(--text-subtle);font-size:.84rem}.gateway-coordinate-picker-error{margin:0 16px 12px;padding:10px 12px;border-radius:12px;color:#9f2a2a;background:color-mix(in oklab,#f05a28 10%,transparent)}.gateway-coordinate-picker-map{min-height:320px;height:100%}.sheet-fields{display:grid;gap:18px;align-content:start}.organisation-sheet-fields{gap:22px}.sheet-pager{display:flex;align-items:center;justify-content:space-between;gap:10px}.sheet-page-label{color:var(--text-subtle);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.sheet-nav-btn{border:0;border-radius:9px;padding:6px 10px;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text);background:var(--button-bg);cursor:pointer;position:relative;transition:transform .18s ease,background-color .2s ease,box-shadow .22s ease}.sheet-nav-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #0000001a}.sheet-nav-btn:disabled{opacity:.45;cursor:not-allowed}.sheet-form label:not(.form-field-label){display:grid;gap:10px;font-size:var(--font-size-md-plus);color:var(--text-subtle)}.organisation-name-cell,.gateway-name-cell{display:inline-flex;align-items:center;gap:8px;min-width:0}.gateway-feature-icons{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}.gateway-feature-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.label-chip{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;font-size:.82rem;font-weight:var(--font-weight-semibold);color:var(--text)}.label-chip-swatch{width:10px;height:10px;flex:0 0 auto;border-radius:999px;box-shadow:0 0 0 1px color-mix(in oklab,var(--text) 14%,transparent)}.gateway-label-create-row{display:grid;grid-template-columns:minmax(0,1fr) 72px auto;gap:10px;align-items:end;margin-top:10px}.gateway-label-create-btn{min-height:36px;white-space:nowrap}.organisation-accent-dot{width:10px;height:10px;border-radius:999px;flex:0 0 auto;box-shadow:0 0 0 1px color-mix(in oklab,var(--text) 12%,transparent)}.organisation-accent-dot-card{width:11px;height:11px}.firmware-upload-field{display:grid;gap:6px}.firmware-upload-label{font-size:var(--font-size-md-plus);color:var(--text-subtle)}.firmware-file-input{display:none}.firmware-dropzone{border:1px dashed color-mix(in oklab,var(--border-strong, var(--border)) 78%,transparent);border-radius:16px;padding:16px;background:color-mix(in oklab,var(--surface-raised) 88%,white 12%);display:grid;gap:6px;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,transform .18s ease}.firmware-dropzone strong{color:var(--text);font-size:.92rem}.firmware-dropzone p{margin:0;color:var(--text-subtle);font-size:var(--font-size-sm)}.firmware-dropzone.active,.firmware-dropzone:hover{border-color:var(--accent);background:color-mix(in oklab,var(--accent) 9%,var(--surface-raised) 91%);transform:translateY(-1px)}.gateway-create-menu-wrap{position:relative;display:flex;align-items:center;gap:1px}.gateway-create-menu-trigger{border:0;appearance:none;background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;padding:0;cursor:pointer;opacity:.45;transition:opacity .15s ease,background .15s ease}.gateway-create-menu-trigger:hover,.gateway-create-menu-trigger.active{opacity:1;background:color-mix(in oklab,var(--surface-raised) 78%,var(--text) 22%)}.gateway-create-menu-caret{transition:transform .15s ease}.gateway-create-menu-trigger[aria-expanded=true] .gateway-create-menu-caret{transform:rotate(180deg)}.gateway-create-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--panel-bg);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:10px;box-shadow:0 4px 20px color-mix(in oklab,black 18%,transparent);overflow:hidden;z-index:50;min-width:158px}.gateway-create-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 13px;border:0;background:transparent;color:var(--text);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background .12s ease}.gateway-create-menu-item:hover{background:color-mix(in oklab,var(--panel-bg) 82%,var(--text) 18%)}.bulk-import-file-input{display:none}.bulk-import-dropzone{cursor:pointer}.bulk-import-example-btn{display:inline-flex;align-items:center;gap:5px}.bulk-import-format-hint{margin-top:8px;font-size:var(--font-size-sm);color:var(--text-subtle);line-height:1.55}.bulk-import-format-hint code{font-family:monospace;background:color-mix(in oklab,var(--surface-raised) 84%,var(--text) 16%);padding:1px 4px;border-radius:4px;font-size:.88em}.bulk-import-processing{flex-direction:column;gap:12px}.bulk-import-summary{display:flex;gap:12px;padding:18px 16px;background:var(--surface-raised);border-radius:12px;border:1px solid var(--border)}.bulk-import-summary-stat{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1}.bulk-import-summary-count{font-size:2.2rem;font-weight:700;line-height:1}.bulk-import-summary-count-success{color:var(--success, #22c55e)}.bulk-import-summary-count-error{color:var(--error, #ef4444)}.bulk-import-summary-label{font-size:var(--font-size-sm);color:var(--text-subtle)}.bulk-import-errors{display:flex;flex-direction:column;gap:6px;margin-top:4px}.bulk-import-error-row{display:grid;grid-template-columns:1fr 2fr;gap:8px;align-items:baseline;padding:9px 13px;background:color-mix(in oklab,var(--error, #ef4444) 7%,var(--surface-raised));border:1px solid color-mix(in oklab,var(--error, #ef4444) 18%,transparent);border-radius:8px}.bulk-import-error-name{font-weight:600;font-size:var(--font-size-sm);color:var(--text)}.bulk-import-error-message{font-size:var(--font-size-sm);color:var(--text-subtle)}.auto-activate-chip{display:inline-flex;align-items:center;padding:2px 8px;background:color-mix(in oklab,var(--success, #22c55e) 11%,transparent);border:1px solid color-mix(in oklab,var(--success, #22c55e) 22%,transparent);border-radius:20px;font-size:var(--font-size-xs, .74rem);color:color-mix(in oklab,var(--success, #22c55e) 75%,var(--text));font-weight:600;letter-spacing:.025em}.firmware-sheet-fields{display:flex;flex-direction:column}.firmware-version-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.firmware-sheet-fields>label{flex-shrink:0}.firmware-device-types-field{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0}.firmware-device-types-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.firmware-device-types-toggle{background:none;border:none;padding:0;margin:0;font-size:var(--font-size-sm);color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px;flex-shrink:0}.firmware-device-types-toggle:hover{opacity:.75}.firmware-device-types-list{display:flex;flex-direction:column;gap:2px;border:1px solid color-mix(in oklab,var(--border) 78%,transparent);border-radius:12px;padding:10px 14px;flex:1;min-height:0;overflow-y:auto}.sheet-form .firmware-device-type-option{display:flex;align-items:center;gap:8px;padding:6px;font-size:.88rem;color:var(--text);cursor:pointer;border-radius:6px}.firmware-device-type-option:hover{background:color-mix(in oklab,var(--accent) 8%,transparent)}.firmware-device-type-option input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;cursor:pointer;flex-shrink:0}.device-type-upload-preview,.device-type-detail-image-frame{border-radius:16px;overflow:hidden;background:color-mix(in oklab,var(--surface-raised) 88%,white 12%);border:1px solid color-mix(in oklab,var(--border) 78%,transparent)}.device-type-upload-preview{max-width:220px}.device-type-upload-preview-image,.device-type-detail-image{display:block;width:100%;height:auto;object-fit:cover}.device-type-detail-image-frame{max-width:320px}.gateway-device-type-cell{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:100%}.gateway-device-type-thumb{width:36px;height:36px;border-radius:10px;object-fit:cover;flex:0 0 auto;border:1px solid color-mix(in oklab,var(--border) 80%,transparent);background:color-mix(in oklab,var(--surface-raised) 88%,white 12%)}.gateway-device-type-link-chip{display:block;flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}.gateway-firmware-update-row{margin-top:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.gateway-firmware-select{min-height:unset;height:34px;padding-top:0;padding-bottom:0;border-radius:10px;font-size:var(--font-size-body);flex:1;min-width:0}.gateway-firmware-update-btn{display:inline-flex;align-items:center;gap:8px}.gateway-firmware-stage-label{font-size:.8125rem;color:var(--text-subtle, #6b7280);font-style:italic}.gateway-firmware-stage-label.complete{color:var(--success, #16a34a);font-style:normal;font-weight:var(--font-weight-medium)}.gateway-pending-banner{border-radius:16px;border:1px solid color-mix(in oklab,var(--warning, #f59e0b) 42%,var(--text) 8%);background:color-mix(in oklab,var(--warning, #f59e0b) 14%,var(--panel-bg));padding:16px 18px;display:flex;flex-direction:column;gap:6px;margin-bottom:4px;box-shadow:0 1px 2px color-mix(in oklab,var(--warning, #f59e0b) 10%,transparent)}.gateway-pending-banner-header{display:flex;align-items:center;gap:7px;color:color-mix(in oklab,var(--warning, #f59e0b) 80%,var(--text));font-weight:var(--font-weight-bold);font-size:.88rem}.gateway-pending-banner p{margin:0;font-size:var(--font-size-md);color:var(--text-subtle);line-height:1.4}.gateway-pending-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.gateway-accept-btn{display:inline-flex;align-items:center;gap:8px}.gateway-delete-btn{display:inline-flex;align-items:center;gap:8px;color:var(--danger, #dc2626);border-color:color-mix(in oklab,var(--danger, #dc2626) 30%,var(--border))}.gateway-firmware-history-timeline{position:relative;display:flex;flex-direction:column;padding-left:26px;margin-top:16px}.gateway-firmware-history-timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:color-mix(in oklab,var(--border) 70%,transparent);border-radius:1px}.gateway-firmware-history-timeline-item{position:relative;padding-bottom:22px}.gateway-firmware-history-timeline-item.--latest{margin-right:0;padding:0 14px 22px 0;border:1px solid color-mix(in oklab,var(--accent) 24%,var(--border));border-radius:14px;background:color-mix(in oklab,var(--accent) 8%,var(--panel-bg));box-shadow:0 8px 18px #0f172a0d}.gateway-firmware-history-timeline-item:last-child{padding-bottom:0}.gateway-firmware-history-timeline-item:before{content:"";position:absolute;left:-21px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--accent, #6366f1);box-shadow:0 0 0 2px var(--panel-bg),0 0 0 3.5px var(--accent, #6366f1)}.gateway-firmware-history-timeline-item.--latest:before{width:10px;height:10px;left:-22px;top:5px;background:var(--accent, #6366f1);box-shadow:0 0 0 2px var(--panel-bg),0 0 0 4px color-mix(in oklab,var(--accent) 35%,transparent)}.gateway-firmware-history-timeline-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gateway-firmware-history-timeline-item strong{display:block;color:var(--text);font-size:.88rem;font-weight:var(--font-weight-semibold)}.gateway-firmware-history-timeline-item.--latest strong{font-weight:var(--font-weight-bold)}.gateway-firmware-history-tag{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:999px;background:var(--color-white);border:1px solid color-mix(in oklab,var(--accent) 24%,transparent);color:color-mix(in oklab,var(--accent) 66%,var(--text));font-size:.66rem;font-weight:var(--font-weight-bold);letter-spacing:.06em;text-transform:uppercase}.gateway-firmware-history-timeline-item span{display:block;color:var(--accent, #6366f1);font-size:var(--font-size-body-md);font-weight:var(--font-weight-semibold);margin-top:2px}.gateway-firmware-history-timeline-item.--latest span{color:color-mix(in oklab,var(--accent) 84%,var(--text))}.gateway-firmware-history-timeline-item em{display:block;color:var(--text-subtle);font-size:var(--font-size-sm);font-style:normal;margin-top:3px}.gateway-firmware-history-timeline-item.--latest em{color:color-mix(in oklab,var(--text-subtle) 86%,var(--text))}.gateway-firmware-factory-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 16px 20px;text-align:center;color:var(--text-subtle)}.gateway-firmware-factory-state strong{color:var(--text);font-size:.9rem;font-weight:var(--font-weight-semibold)}.gateway-firmware-factory-state span{font-size:var(--font-size-md);line-height:1.5;max-width:230px}.gateway-fw-card{display:flex;flex-direction:column;gap:16px}.gateway-fw-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.gateway-fw-header>div{min-width:0}.gateway-fw-header h4{margin:0 0 4px}.gateway-fw-header p{margin:0}.gateway-fw-hero{display:flex;flex-direction:column;gap:4px}.gateway-fw-hero-version{font-size:2rem;font-weight:var(--font-weight-bold);letter-spacing:-.04em;color:var(--text);line-height:1}.gateway-fw-hero-sub{font-size:.8125rem;color:var(--text-subtle)}.gateway-fw-comparison{display:grid;grid-template-columns:1fr;gap:8px}.gateway-fw-comparison--dual{grid-template-columns:1fr 1fr}.gateway-fw-box{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:12px;background:color-mix(in oklab,var(--text) 4%,var(--app-bg));border:1px solid color-mix(in oklab,var(--text) 9%,transparent)}.gateway-fw-box--available{background:color-mix(in oklab,var(--status-active) 8%,var(--app-bg));border-color:color-mix(in oklab,var(--status-active) 22%,transparent)}.gateway-fw-box-label{font-size:.7rem;font-weight:var(--font-weight-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--text-subtle)}.gateway-fw-box-version{font-size:1.15rem;font-weight:var(--font-weight-bold);color:var(--text);letter-spacing:-.02em}.gateway-fw-box-meta{font-size:var(--font-size-body-md);color:var(--text-subtle)}.gateway-fw-timeline{position:relative;display:flex;padding-top:2px}.gateway-fw-timeline:before{content:"";position:absolute;top:9px;left:0;right:0;height:1px;background:color-mix(in oklab,var(--text) 12%,transparent);pointer-events:none}.gateway-fw-timeline-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;position:relative}.gateway-fw-timeline-dot{position:relative;z-index:1;width:10px;height:10px;margin-top:4px;border-radius:50%;flex-shrink:0;background:color-mix(in oklab,var(--text) 20%,var(--app-bg));border:2px solid color-mix(in oklab,var(--text) 25%,transparent)}.gateway-fw-timeline-dot.--current{width:14px;height:14px;margin-top:2px;background:var(--accent);border-color:var(--accent)}.gateway-fw-timeline-dot.--available{width:12px;height:12px;margin-top:3px;background:color-mix(in oklab,var(--accent) 10%,var(--app-bg));border:2px dashed var(--accent)}.gateway-fw-timeline-label{font-size:.67rem;color:var(--text-subtle);text-align:center;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.gateway-fw-update-btn,.gateway-fw-run-again-btn{display:inline-flex;align-items:center;gap:6px;align-self:flex-start}.gateway-fw-stages{display:flex;flex-direction:column;gap:9px;padding-top:2px}.gateway-fw-stage{display:flex;align-items:center;gap:10px;font-size:var(--font-size-body);color:var(--text-subtle);animation:gateway-fw-stage-in .25s ease both}.gateway-fw-stage.--done{color:var(--text)}.gateway-fw-stage.--done svg{color:var(--status-active)}.gateway-fw-stage.--spinning svg{color:var(--text-subtle)}@keyframes gateway-fw-stage-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.sheet-inline-action{border:0;padding:0;background:transparent;color:var(--accent);font:inherit;font-size:.76rem;font-weight:var(--font-weight-bold);cursor:pointer}.sheet-inline-action:disabled{opacity:.45;cursor:not-allowed}.sheet-inline-control{display:inline-flex!important;align-items:center;gap:8px}.sheet-form-footer{position:sticky;bottom:0;margin-top:auto;padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:1}.sheet-footer-actions{display:flex;gap:8px}.sheet-footer-actions .sheet-nav-btn,.sheet-footer-actions .save-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.sheet-footer-actions .sheet-save-btn{margin-top:0;border-radius:9px;padding:6px 10px;font-size:var(--font-size-sm)}.field-required{color:var(--accent);margin-left:4px}.field-error{color:var(--color-danger);font-size:.76rem;margin:0}.sheet-delete-btn{color:var(--color-danger)}.save-button{margin-top:6px;border:0;border-radius:10px;background:color-mix(in oklab,var(--accent) 78%,var(--button-bg));color:var(--text-inverse);padding:10px 12px;font:inherit;font-weight:var(--font-weight-semibold);display:inline-flex;gap:8px;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:transform .18s ease,filter .2s ease,box-shadow .22s ease}.save-button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.03);box-shadow:0 12px 22px #00000024}.save-button:active:not(:disabled),.glb-icon-btn:active,.sheet-nav-btn:active:not(:disabled),.back-button:active,.detail-tab:active,.icon-button:active{transform:translateY(0) scale(.98)}.save-button:disabled{opacity:.72;cursor:wait}.admin-action:focus-visible,.back-button:focus-visible,.sheet-nav-btn:focus-visible,.save-button:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in oklab,var(--app-bg) 88%,transparent),0 0 0 4px color-mix(in oklab,var(--accent) 38%,transparent)}.back-button svg,.save-button svg{transition:transform .2s ease}.back-button:hover svg{transform:translate(-1px)}.save-button:hover svg{transform:translate(1px) rotate(12deg)}.spin{animation:spin .8s linear infinite}.toast{position:fixed;bottom:16px;z-index:40;border-radius:12px;padding:10px 14px;color:var(--text-inverse);font-weight:var(--font-weight-semibold);box-shadow:0 8px 24px #00000038}.toast.bottom-right{right:16px}.toast.bottom-center{left:50%;transform:translate(-50%)}.toast.success{background:var(--color-success)}.toast.error{background:var(--color-danger-strong)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.mobile-row-avatar{display:none}@media(max-width:768px){.app-shell.inspecting .content-panel{height:100vh;min-height:100vh;margin-top:0;padding-top:0}.app-shell.inspecting .settings-sidesheet,.app-shell.inspecting .sidesheet-backdrop{top:0;height:100dvh;max-height:100dvh}.resource-list-shell{height:100%;margin:0}.content-panel:has(.directory-page){padding:0 0 16px}.resource-list-header{padding:16px}.resource-table-header{flex-wrap:wrap}.resource-table-row{display:flex;align-items:center;gap:12px;padding:0 16px;min-height:66px}.resource-table-row-head{display:none}.mobile-row-avatar{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;border-radius:13px;background:color-mix(in oklab,var(--accent) 13%,transparent);flex-shrink:0;color:var(--accent);overflow:hidden}.mobile-row-avatar-img{width:100%;height:100%;object-fit:contain;padding:6px}.mobile-row-avatar-skeleton{background:color-mix(in oklab,var(--text) 10%,transparent)}.resource-table-row .resource-table-col-primary{flex:1;font-weight:var(--font-weight-semibold);font-size:var(--font-size-body-xl);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.resource-table-row span:not(.mobile-row-avatar):not(.resource-table-col-primary):not(:last-child){display:none}.resource-table-row span:last-child:not(.mobile-row-avatar){flex-shrink:0}.resource-table-row.resource-table-row-gateways:has(.mobile-row-avatar) span:nth-child(4){display:flex;flex-shrink:0}.resource-table-row.resource-table-row-gateways:not(:has(.mobile-row-avatar)) span:nth-child(3){display:flex;flex-shrink:0}.resource-table-row.resource-table-row-gateways span:last-child:not(.mobile-row-avatar){display:none}.resource-table-row .gateway-device-type-thumb{display:none}.resource-table-row-interactive:after{content:"";display:block;width:6px;height:6px;border-right:1.5px solid color-mix(in oklab,var(--text) 35%,transparent);border-top:1.5px solid color-mix(in oklab,var(--text) 35%,transparent);transform:rotate(45deg);flex-shrink:0}.resource-table-col-numeric{text-align:left}.home-page{min-height:auto}.home-page-placeholder{padding:8px 0 0}.home-placeholder-shell{min-height:calc(100dvh - 120px);border-radius:22px;padding:24px}.home-workspace,.topology-workspace{grid-template-columns:1fr}.topology-chart-scroll{height:60dvh}.home-featured-panel{min-height:220px}.app-shell{padding:0}.sidebar,.content-panel{min-height:100vh}.content-panel{padding:16px}.page-topbar{flex-wrap:wrap}.page-topbar-center,.page-topbar-actions{width:100%}.page-topbar-center,.page-topbar-actions{justify-content:flex-start}.page-fab-stack,.page-fab:not(.page-fab-secondary){right:16px;bottom:92px}.settings-sidesheet{width:100%;padding-bottom:148px;overflow:hidden}.settings-sidesheet .sheet-form-footer,.settings-sidesheet .sheet-pager{position:fixed;left:16px;right:16px;bottom:84px;margin-top:0;padding-top:8px;background:transparent;z-index:51}.settings-sidesheet .sheet-form{min-height:0;overflow-y:auto;padding-bottom:96px}.settings-sidesheet .sheet-fields,.settings-sidesheet .detail-stack{overflow:visible;padding-bottom:0;min-height:0;flex:initial}.gateway-editor-layout.map-active,.gateway-coordinate-grid,.firmware-version-row{grid-template-columns:minmax(0,1fr)}.gateway-editor-map-panel{min-height:320px}.integration-grid{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.integration-tile{width:100%;min-width:0;height:auto;min-height:155px;padding:14px}}@media(max-width:768px)and (orientation:portrait){.app-shell.inspecting .sidebar{top:auto;bottom:0;height:72px;min-height:72px}.app-shell.inspecting .content-panel{height:100vh;min-height:100vh}.sidebar{inset:auto 0 0;width:100%!important;min-height:72px;height:72px;padding:0 8px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:4px;border-top:1px solid color-mix(in oklab,var(--text) 14%,transparent)}.sidebar.expanded,.sidebar.collapsed{padding:0 8px}.sidebar-header{display:none}.sidebar-nav{margin-top:0;display:flex;flex:1;align-items:center;justify-content:center;gap:4px;min-width:0}.sidebar-nav .nav-item-home{order:4;width:44px;min-height:44px;border-radius:14px;background:color-mix(in oklab,var(--button-bg) 84%,white 16%);box-shadow:0 10px 18px #0000002e;transform:translateY(-8px)}.sidebar-nav .nav-item-home svg{transform:scale(1.05)}.sidebar-nav .nav-item-home.active,.sidebar-nav .nav-item-home:hover{background:color-mix(in oklab,var(--accent) 34%,var(--button-bg))}.sidebar-bottom-nav{margin-top:0;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;padding-top:0;border-top:0}.sidebar.expanded .sidebar-nav,.sidebar.collapsed .sidebar-nav,.sidebar.expanded .sidebar-bottom-nav,.sidebar.collapsed .sidebar-bottom-nav{margin-top:0;gap:4px;justify-items:initial;flex:initial;padding-top:0;border-top:0}.sidebar.expanded .sidebar-bottom-group,.sidebar.collapsed .sidebar-bottom-group{margin-top:0;padding-top:0;border-top:0;display:flex;flex-direction:row;align-items:center;gap:4px}.sidebar .nav-item{width:36px;min-height:36px;border-radius:10px;padding:0;justify-content:center}.sidebar .nav-item-icon{width:30px;height:30px}.sidebar .nav-item.active{width:36px;min-height:36px;border-radius:10px}.sidebar .nav-item.nav-item-home.active{width:44px;min-height:44px;border-radius:14px}.sidebar .nav-copy,.sidebar .tooltip-positioner{display:none}.sidebar-footer{position:static;display:flex;flex-direction:row;align-items:center;justify-content:center;margin-top:0;margin-left:auto;padding-top:0;gap:6px;flex:0 0 auto}.sidebar-settings{display:flex;align-items:center;justify-content:center}.settings-menu-panel{left:auto;right:0;bottom:calc(100% + 12px);width:min(210px,calc(100vw - 24px))}.settings-menu-panel:before{left:auto;right:12px;bottom:-5px;border-left:0;border-bottom:0;border-right:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-top:1px solid color-mix(in oklab,var(--text) 10%,transparent)}.sidebar-version{display:none}.sidebar-footer .icon-button{width:36px;height:36px;border-radius:10px}.sidebar-footer .icon-swap-icon svg{display:block;transform:translateY(-1px)}.size-toggle-btn{display:none}.content-panel{margin-left:0!important;padding-bottom:90px}.content-panel:has(.directory-page){padding:0 0 90px}}.address-autocomplete{position:relative;display:grid;gap:6px}.address-autocomplete-search{position:relative}.address-autocomplete-input{width:100%}.address-autocomplete-preview{margin:0;font-size:.76rem;color:var(--text-subtle);line-height:1.4}.address-autocomplete-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;background:var(--panel-bg);border:1px solid color-mix(in oklab,var(--text) 16%,transparent);border-radius:10px;box-shadow:0 8px 24px color-mix(in oklab,var(--color-black) 14%,transparent);list-style:none;margin:0;padding:4px;overflow:hidden}.address-autocomplete-option{padding:8px 10px;border-radius:7px;font-size:var(--font-size-md-plus);cursor:pointer;line-height:1.4}.address-autocomplete-option:hover,.address-autocomplete-option.active{background:color-mix(in oklab,var(--accent) 10%,transparent);color:var(--text)}.detail-address{margin-top:10px;padding-top:10px;border-top:1px solid color-mix(in oklab,var(--text) 10%,transparent)}.detail-address h5{margin:0 0 6px;font-size:.76rem;font-weight:var(--font-weight-semibold);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em}.detail-address p{margin:0;font-size:.85rem;line-height:1.5;color:var(--text)}.detail-address .org-map-preview{margin-bottom:10px}.content-panel:has(.home-page){padding:0}.home-page{height:100vh;overflow-y:auto;display:flex;flex-direction:column}.home-topbar{position:sticky;top:0;z-index:5;background:var(--panel-bg);border-bottom:1px solid color-mix(in oklab,var(--text) 7%,transparent);padding:12px 26px;display:flex;align-items:center;gap:14px;flex-shrink:0;transition:background-color .45s ease,border-color .45s ease}.home-topbar-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;color:var(--text)}.home-topbar-title{margin:0;font-size:var(--font-size-title-sm);font-weight:var(--font-weight-medium);color:var(--text);line-height:1;white-space:nowrap;flex-shrink:0}.home-topbar-filters{display:flex;flex-wrap:wrap;gap:8px;flex:1;min-width:0}.home-filter-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:6px 10px 6px 12px;border-radius:999px;background:color-mix(in oklab,var(--accent) 10%,transparent);border:1px solid color-mix(in oklab,var(--accent) 18%,transparent);color:var(--text);box-shadow:inset 0 1px color-mix(in oklab,var(--text) 10%,transparent)}.home-filter-chip-kind{flex-shrink:0;font-size:.66rem;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:color-mix(in oklab,var(--accent) 78%,var(--text))}.home-filter-chip-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:var(--font-weight-medium)}.home-filter-chip-remove{width:22px;height:22px;flex-shrink:0;border:0;border-radius:999px;background:color-mix(in oklab,var(--text) 8%,transparent);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .18s ease,color .18s ease,transform .18s ease}.home-filter-chip-remove:hover{background:color-mix(in oklab,var(--accent) 20%,transparent);transform:scale(1.04)}.home-topbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.home-topbar-count-chip{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(148,163,184,.45);background:var(--color-white);color:var(--color-slate-700);font-size:var(--font-size-md-plus);font-weight:var(--font-weight-medium);white-space:nowrap;box-shadow:0 1px 2px #0f172a14}.app-shell.dark .home-topbar-count-chip{color:var(--color-slate-800);border-color:#e2e8f0e6}.home-topbar-label{color:var(--text-subtle);font-size:var(--font-size-md-plus);white-space:nowrap}.home-topbar-clear-button{width:34px;height:34px;padding:0;border:1px solid color-mix(in oklab,var(--text) 12%,transparent);border-radius:10px;background:color-mix(in oklab,var(--text) 5%,transparent);color:var(--text);transition:background-color .18s ease,border-color .18s ease,transform .18s ease}.home-topbar-clear-button:hover{background:color-mix(in oklab,var(--accent) 10%,transparent);border-color:color-mix(in oklab,var(--accent) 28%,transparent);transform:translateY(-1px)}.home-org-select{min-height:34px;font-size:var(--font-size-md-plus);padding:5px 36px 5px 10px;border-radius:10px}.home-dashboard-scroll{flex:1;min-height:0;overflow:hidden}.home-dashboard-content{height:100%;box-sizing:border-box;padding:20px 26px 36px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:1fr;gap:16px}.home-dashboard-left-col{--home-dashboard-tile-size: 360px;display:grid;grid-template-columns:repeat(2,var(--home-dashboard-tile-size));grid-auto-rows:var(--home-dashboard-tile-size);align-content:start;gap:16px;min-height:0;overflow:hidden}.home-dashboard-left-col>*{width:var(--home-dashboard-tile-size);height:var(--home-dashboard-tile-size);flex-shrink:0;overflow:hidden}.home-dashboard-left-col .home-card{height:100%;overflow:hidden}.home-card{background:var(--app-bg);border:1px solid color-mix(in oklab,var(--text) 8%,transparent);border-radius:14px;padding:20px;display:flex;flex-direction:column;height:100%;transition:background-color .45s ease,border-color .45s ease}.home-card-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;flex-shrink:0}.home-card-icon{flex-shrink:0;width:28px;height:28px;border-radius:8px;background:color-mix(in oklab,var(--accent) 12%,transparent);color:var(--accent);display:inline-flex;align-items:center;justify-content:center}.home-card-title{margin:0;font-size:.9rem;font-weight:var(--font-weight-semibold);color:var(--text);line-height:1.3}.home-card-subtitle{margin:2px 0 0;font-size:var(--font-size-sm);color:var(--text-subtle);font-weight:var(--font-weight-regular)}.home-card-body{flex:1;display:flex;flex-direction:column;gap:8px;min-height:0}.home-card-view-all{margin-top:14px;flex-shrink:0;display:inline-flex;align-items:center;gap:4px;background:transparent;border:0;padding:0;color:var(--accent);font:inherit;font-size:.815rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:gap .18s ease}.home-card-view-all:hover{gap:8px}.firmware-status-card{justify-content:space-between}.firmware-status-body{gap:0}.firmware-status-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid color-mix(in oklab,var(--text) 6%,transparent)}.firmware-status-row:last-child{border-bottom:none}.firmware-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.firmware-status-label{flex:1;font-size:var(--font-size-body);color:var(--text)}.firmware-status-count{font-size:1.1rem;font-weight:var(--font-weight-semibold);color:var(--text)}.firmware-update-plan-btn{margin-top:18px;width:100%;height:42px;border:0;border-radius:10px;background:var(--accent);color:var(--color-white);font:inherit;font-size:var(--font-size-body);font-weight:var(--font-weight-medium);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;transition:opacity .2s ease,transform .15s ease}.firmware-update-plan-btn:hover{opacity:.88;transform:translateY(-1px)}.firmware-update-plan-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.map-card{overflow:hidden}.map-card-header{align-items:center}.map-card-controls{margin-left:auto;display:flex;align-items:center;gap:10px}.map-card-legend-item{display:flex;align-items:center;gap:6px;font-size:var(--font-size-body-md);color:var(--text-subtle);white-space:nowrap}.map-card-legend-dot{width:8px;height:8px;border-radius:50%;background:var(--color-map-dot);flex-shrink:0}.map-card-filter-badge{font-size:var(--font-size-sm);color:var(--text-subtle);border:1px solid color-mix(in oklab,var(--text) 14%,transparent);border-radius:8px;padding:3px 9px;white-space:nowrap}.map-card-body{flex:1;border-radius:10px;overflow:hidden}.donut-chart-row{display:grid;grid-template-columns:136px minmax(0,1fr);gap:14px;align-items:center;flex:1;min-height:0}.donut-chart-wrap{position:relative;flex-shrink:0;width:136px;height:136px}.donut-center-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.donut-center-count{font-size:var(--font-size-chart-total);font-weight:var(--font-weight-bold);color:var(--text);line-height:1.2}.donut-center-text{font-size:.72rem;color:var(--text-subtle)}.donut-legend{display:grid;gap:4px;align-content:center;min-width:0;min-height:0}.donut-legend-item{display:flex;align-items:flex-start;gap:6px;font-size:var(--font-size-sm);width:100%;padding:3px 6px;margin:0 -6px;border-radius:8px;border:0;background:transparent;appearance:none;text-align:left;font:inherit;cursor:pointer;transition:background-color .18s ease,color .18s ease}.donut-legend-item:hover,.donut-legend-item:focus-visible{background:color-mix(in oklab,var(--accent) 9%,transparent)}.donut-legend-dot{width:8px;height:8px;margin-top:4px;border-radius:50%;flex-shrink:0}.donut-legend-content{flex:1;display:grid;gap:2px;min-width:0}.donut-legend-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.donut-legend-meta{display:flex;align-items:baseline;gap:4px;line-height:1.1}.donut-legend-count{font-weight:var(--font-weight-semibold);color:var(--text);white-space:nowrap}.donut-legend-pct{color:var(--text-subtle);white-space:nowrap}.donut-legend-overflow{display:inline-flex;align-items:center;min-height:22px;font-size:var(--font-size-sm);color:var(--text-subtle)}.donut-legend-tooltip{display:grid;gap:2px}.donut-legend-tooltip strong{font-size:.78rem;font-weight:var(--font-weight-semibold);color:var(--tooltip-text)}.donut-legend-tooltip span{font-size:.72rem;font-weight:var(--font-weight-regular);color:color-mix(in oklab,var(--tooltip-text) 72%,transparent)}.donut-slice-tooltip{position:fixed;z-index:10000;pointer-events:none;display:grid;gap:2px;background:var(--tooltip-bg);color:var(--tooltip-text);box-shadow:var(--tooltip-shadow);padding:6px 10px;border-radius:10px;font-size:.74rem;white-space:nowrap}.donut-slice-tooltip strong{font-weight:var(--font-weight-semibold)}.donut-slice-tooltip span{font-size:.72rem;font-weight:var(--font-weight-regular);color:color-mix(in oklab,var(--tooltip-text) 72%,transparent)}@keyframes dashboard-skeleton-shimmer{0%{background-position:-800px 0}to{background-position:800px 0}}.dashboard-skeleton{background:linear-gradient(90deg,color-mix(in oklab,var(--text) 6%,transparent) 25%,color-mix(in oklab,var(--text) 13%,transparent),color-mix(in oklab,var(--text) 6%,transparent) 75%);background-size:800px 100%;animation:dashboard-skeleton-shimmer 1.6s infinite linear;border-radius:8px}.donut-skeleton-row{display:flex;gap:20px;align-items:center;flex:1}.donut-legend-skeleton{flex:1;display:flex;flex-direction:column;gap:12px}.donut-legend-skeleton-row{display:flex;align-items:center;gap:8px}.bar-skeleton{display:flex;gap:10px;align-items:flex-end;flex:1;padding-bottom:4px}.bar-skeleton-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.custom-bar-chart{display:flex;align-items:stretch;gap:8px;flex:1;padding-top:28px}.custom-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;width:100%;padding:6px 8px;margin:0 -8px;border:0;border-radius:10px;background:transparent;appearance:none;color:inherit;font:inherit;cursor:pointer;transition:background-color .18s ease,color .18s ease}.custom-bar-tooltip.tooltip-root{display:flex;flex-direction:column;width:100%}.custom-bar-col:hover,.custom-bar-col:focus-visible{background:color-mix(in oklab,var(--accent) 9%,transparent)}.custom-bar-value{font-size:var(--font-size-label-sm);font-weight:var(--font-weight-semibold);color:var(--text);line-height:1;white-space:nowrap}.custom-bar-track{flex:1;width:100%;max-width:52px;display:flex;align-items:flex-end}.custom-bar-fill{width:100%;background:var(--color-map-dot);border-radius:4px 4px 0 0;min-height:4px}.custom-bar-name{font-size:10px;color:var(--text-subtle);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.4}@media(max-width:1050px),(max-height:860px){.home-dashboard-scroll{overflow-x:hidden;overflow-y:auto}.home-dashboard-content{grid-template-columns:1fr;grid-template-rows:auto 460px;height:auto}.home-dashboard-left-col{grid-template-rows:auto;overflow:visible}.map-card-body{min-height:240px}}@media(max-width:600px){.home-dashboard-left-col{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}.home-dashboard-left-col>*{width:100%;height:320px}}.content-panel:has(.product-guide-page){padding:0}.product-guide-page{height:100vh;overflow-y:auto;color:var(--text);background:linear-gradient(180deg,color-mix(in oklab,var(--panel-bg) 82%,var(--accent) 4%) 0%,var(--panel-bg) 36%),var(--panel-bg)}.product-guide-hero{min-height:540px;padding:54px 56px 42px;display:grid;grid-template-columns:minmax(0,.82fr) minmax(360px,1.18fr);grid-template-areas:"copy preview" "coverage preview";gap:28px 42px;align-content:center;align-items:center;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.product-guide-hero-copy{grid-area:copy;display:grid;gap:18px;min-width:0}.product-guide-eyebrow{margin:0;font-size:.74rem;font-weight:var(--font-weight-bold);letter-spacing:0;text-transform:uppercase;color:var(--accent)}.product-guide-hero h1{margin:0;font-size:clamp(3rem,6vw,6rem);line-height:.95;color:var(--heading-text)}.product-guide-hero-copy>p:not(.product-guide-eyebrow){margin:0;max-width:760px;font-size:1.02rem;color:var(--text-subtle)}.product-guide-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:8px}.product-guide-hero-actions>span{color:var(--text-subtle);font-size:var(--font-size-body-md)}.product-guide-primary-action,.product-guide-open-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;font:inherit;cursor:pointer}.product-guide-primary-action{min-height:40px;padding:0 16px;border-radius:8px;background:var(--accent);color:var(--text-inverse);font-weight:var(--font-weight-semibold)}.product-guide-hero-preview{grid-area:preview;align-self:stretch;min-height:330px;overflow:hidden;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:8px;background:var(--app-bg);box-shadow:0 18px 50px color-mix(in oklab,#000 15%,transparent)}.product-guide-hero-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:left top}.product-guide-hero-coverage{grid-area:coverage;display:grid;gap:10px}.product-guide-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0;margin:0;list-style:none}.product-guide-stat-row li{min-height:48px;display:flex;align-items:center;padding:10px 12px;border-radius:8px;border:1px solid color-mix(in oklab,var(--text) 9%,transparent);background:color-mix(in oklab,var(--app-bg) 66%,transparent)}.product-guide-stat-row span{color:var(--text);font-size:var(--font-size-body-md);font-weight:var(--font-weight-semibold)}.product-guide-workflow-section{padding:42px 56px 46px;border-bottom:1px solid color-mix(in oklab,var(--text) 7%,transparent)}.product-guide-workflow-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.product-guide-workflow-step{min-width:0;min-height:190px;display:grid;align-content:start;gap:10px;padding:16px;border:1px solid color-mix(in oklab,var(--text) 9%,transparent);border-radius:8px;background:var(--app-bg);color:var(--text);text-align:left;font:inherit;cursor:pointer;transition:border-color .18s ease,transform .18s ease}.product-guide-workflow-step:hover,.product-guide-workflow-step:focus-visible{border-color:color-mix(in oklab,var(--accent) 42%,transparent);transform:translateY(-1px)}.product-guide-workflow-step strong{color:var(--heading-text);font-size:.96rem;line-height:1.2}.product-guide-workflow-step span:last-child{color:var(--text-subtle);font-size:var(--font-size-sm)}.product-guide-step-index{color:var(--accent);font-size:.74rem;font-weight:var(--font-weight-bold)}.product-guide-preview-control{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 56px;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.product-guide-preview-control>div:first-child{display:flex;align-items:baseline;gap:10px;color:var(--text-subtle);font-size:var(--font-size-body-md)}.product-guide-preview-control strong{color:var(--text);text-transform:capitalize}.product-guide-theme-actions{display:inline-flex;padding:3px;border-radius:8px;background:color-mix(in oklab,var(--text) 6%,transparent)}.product-guide-theme-actions button{min-height:30px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:var(--text-subtle);font:inherit;font-size:var(--font-size-sm);text-transform:capitalize;cursor:pointer}.product-guide-theme-actions button.active{background:var(--app-bg);color:var(--text);box-shadow:0 4px 12px color-mix(in oklab,#000 10%,transparent)}.product-guide-section{padding:58px 56px 68px;border-bottom:1px solid color-mix(in oklab,var(--text) 7%,transparent)}.product-guide-section-header{max-width:780px;display:grid;gap:8px;margin-bottom:34px}.product-guide-section-header h2{margin:0;font-size:clamp(1.65rem,3vw,2.4rem);line-height:1.05;color:var(--heading-text)}.product-guide-section-header p:not(.product-guide-eyebrow){margin:0;color:var(--text-subtle)}.product-guide-feature-grid{display:grid;grid-template-columns:1fr;gap:30px}.product-guide-feature-panel{overflow:hidden;border:1px solid color-mix(in oklab,var(--text) 9%,transparent);border-radius:8px;background:var(--app-bg);display:grid;grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr);min-width:0}.product-guide-feature-panel.is-reversed{grid-template-columns:minmax(320px,1.08fr) minmax(0,.92fr)}.product-guide-feature-panel.is-reversed .product-guide-feature-copy{order:2}.product-guide-feature-panel.is-reversed .product-guide-preview-shell{order:1;border-left:0;border-right:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.product-guide-preview-shell{min-height:100%;max-height:360px;overflow:hidden;border-left:1px solid color-mix(in oklab,var(--text) 8%,transparent);background:color-mix(in oklab,var(--text) 6%,transparent)}.product-guide-preview-shell img{display:block;width:100%;height:100%;object-fit:cover}.product-guide-feature-copy{display:grid;gap:18px;padding:34px 36px;min-width:0}.product-guide-feature-kicker{display:flex;align-items:center;gap:8px;color:var(--text-subtle);font-size:var(--font-size-sm)}.product-guide-feature-icon{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent);background:color-mix(in oklab,var(--accent) 12%,transparent);flex:0 0 auto}.product-guide-feature-copy h3{margin:0;color:var(--heading-text);font-size:1.1rem;line-height:1.2}.product-guide-feature-copy p{margin:0;color:var(--text-subtle);font-size:var(--font-size-body-md)}.product-guide-feature-detail{display:grid;gap:8px}.product-guide-feature-detail strong{color:var(--text);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.product-guide-feature-detail ul{margin:0;padding-left:18px;color:var(--text-subtle);font-size:var(--font-size-body-md)}.product-guide-feature-detail li+li{margin-top:5px}.product-guide-open-link{width:fit-content;min-height:30px;padding:0;background:transparent;color:var(--accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.app-shell.dark .product-guide-feature-panel{border-color:color-mix(in oklab,var(--text) 13%,transparent)}@media(max-width:1050px){.product-guide-hero{grid-template-columns:1fr;grid-template-areas:"copy" "preview" "coverage";min-height:auto;padding:42px 28px 34px}.product-guide-hero-preview{min-height:0;aspect-ratio:16 / 9}.product-guide-workflow-section,.product-guide-preview-control,.product-guide-section{padding-left:28px;padding-right:28px}.product-guide-stat-row,.product-guide-workflow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.product-guide-feature-panel,.product-guide-feature-panel.is-reversed{grid-template-columns:1fr}.product-guide-feature-panel.is-reversed .product-guide-feature-copy,.product-guide-feature-panel.is-reversed .product-guide-preview-shell{order:initial}.product-guide-preview-shell{aspect-ratio:16 / 9;min-height:0;max-height:none;border-left:0;border-top:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.product-guide-feature-panel.is-reversed .product-guide-preview-shell{border-right:0;border-top:1px solid color-mix(in oklab,var(--text) 8%,transparent)}}@media(max-width:760px){.product-guide-workflow-steps,.product-guide-feature-grid{grid-template-columns:1fr}.product-guide-preview-control{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.product-guide-page{padding-bottom:76px}.product-guide-hero,.product-guide-workflow-section,.product-guide-section{padding-left:18px;padding-right:18px}.product-guide-section{padding-top:42px;padding-bottom:52px}.product-guide-feature-grid{gap:22px}.product-guide-feature-copy{padding:24px 20px}.product-guide-preview-control{padding-left:18px;padding-right:18px}.product-guide-hero h1{font-size:2.75rem}.product-guide-stat-row{grid-template-columns:1fr}.product-guide-workflow-step{min-height:0}}.content-panel:has(.fup-page){padding:0}.fup-page{height:100vh;overflow:hidden;display:flex;flex-direction:column}.fup-topbar{display:flex;align-items:center;gap:16px;padding:14px 24px;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent);background:var(--panel-bg);flex-shrink:0;transition:background-color .45s ease,border-color .45s ease}.fup-back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid color-mix(in oklab,var(--text) 14%,transparent);border-radius:10px;background:transparent;color:var(--text-subtle);font:inherit;font-size:var(--font-size-md-plus);cursor:pointer;flex-shrink:0;transition:background-color .18s ease,color .18s ease}.fup-back-btn:hover{background:var(--button-bg);color:var(--text)}.fup-topbar-copy{flex:1;min-width:0}.fup-topbar-title{margin:0;font-size:var(--font-size-title-sm);font-weight:var(--font-weight-semibold);color:var(--heading-text);white-space:nowrap}.fup-topbar-sub{margin:2px 0 0;font-size:var(--font-size-body-md);color:var(--text-subtle)}.fup-outdated-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;background:color-mix(in oklab,#f59e0b 14%,transparent);color:#b45309;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;flex-shrink:0}.app-shell.dark .fup-outdated-badge{background:color-mix(in oklab,#f59e0b 18%,transparent);color:#fbbf24}.fup-scroll{flex:1;overflow-y:auto;padding:24px}.fup-content{display:flex;flex-direction:column;gap:20px;max-width:1160px;margin:0 auto}.fup-group{background:var(--app-bg);border:1px solid color-mix(in oklab,var(--text) 8%,transparent);border-radius:14px;overflow:hidden;transition:background-color .45s ease,border-color .45s ease}.fup-group-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid color-mix(in oklab,var(--text) 7%,transparent)}.fup-group-identity{display:flex;align-items:center;gap:12px;min-width:0}.fup-group-img{width:38px;height:38px;object-fit:contain;border-radius:8px;flex-shrink:0}.fup-group-img-fallback{width:38px;height:38px;border-radius:8px;background:color-mix(in oklab,var(--text) 8%,transparent);display:flex;align-items:center;justify-content:center;color:var(--text-subtle);flex-shrink:0}.fup-group-name{margin:0;font-size:var(--font-size-body-lg);font-weight:var(--font-weight-semibold);color:var(--heading-text)}.fup-group-meta{margin:3px 0 0;font-size:var(--font-size-sm);color:var(--text-subtle)}.fup-group-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.fup-group-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;background:color-mix(in oklab,#f59e0b 12%,transparent);color:#b45309;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.app-shell.dark .fup-group-badge{background:color-mix(in oklab,#f59e0b 18%,transparent);color:#fbbf24}.fup-select-btn{padding:6px 14px;border:1px solid color-mix(in oklab,var(--text) 14%,transparent);border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap;transition:background-color .18s ease,border-color .18s ease}.fup-select-btn:hover{background:var(--button-bg)}.fup-gw-list{display:flex;flex-direction:column}.fup-gw-list-head{display:grid;grid-template-columns:32px 1fr 1fr 200px 160px;gap:12px;align-items:center;padding:8px 20px;font-size:.73rem;font-weight:var(--font-weight-semibold);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid color-mix(in oklab,var(--text) 6%,transparent)}.fup-gw-row{display:grid;grid-template-columns:32px 1fr 1fr 200px 160px;gap:12px;align-items:center;padding:11px 20px;cursor:pointer;border-bottom:1px solid color-mix(in oklab,var(--text) 5%,transparent);transition:background-color .14s ease}.fup-gw-row:last-child{border-bottom:none}.fup-gw-row:hover{background:color-mix(in oklab,var(--text) 3%,transparent)}.fup-gw-row.--selected{background:color-mix(in oklab,var(--accent) 6%,transparent)}.fup-gw-row.--current{opacity:.65}.fup-gw-row.--current:hover{background:transparent}.fup-gw-checkbox{width:15px;height:15px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.fup-gw-checkbox:disabled{cursor:not-allowed;opacity:.35}.fup-gw-name{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fup-gw-org{font-size:var(--font-size-md-plus);color:var(--text-subtle);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fup-gw-fw{display:flex;align-items:center;gap:6px;font-size:var(--font-size-md-plus);font-variant-numeric:tabular-nums}.fup-fw-current{color:var(--text-subtle)}.fup-fw-arrow{color:color-mix(in oklab,var(--text) 30%,transparent);font-size:var(--font-size-xs)}.fup-fw-available{color:var(--accent);font-weight:var(--font-weight-semibold)}.fup-fw-none{color:color-mix(in oklab,var(--text) 30%,transparent)}.fup-gw-status{display:flex;align-items:center;gap:7px}.fup-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.fup-status-label{font-size:var(--font-size-body-md);color:var(--text-subtle);white-space:nowrap}.fup-action-bar{position:fixed;bottom:28px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:10px 10px 10px 18px;background:var(--app-bg);border:1px solid color-mix(in oklab,var(--text) 14%,transparent);border-radius:14px;box-shadow:0 8px 32px color-mix(in oklab,var(--text) 16%,transparent),0 2px 8px color-mix(in oklab,var(--text) 8%,transparent);z-index:20;white-space:nowrap}.fup-action-count{font-size:var(--font-size-body);color:var(--text-subtle);font-weight:var(--font-weight-medium)}.fup-upgrade-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border:0;border-radius:10px;background:var(--accent);color:var(--color-white);font:inherit;font-size:var(--font-size-body);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity .15s ease,transform .15s ease}.fup-upgrade-btn:hover{opacity:.88;transform:translateY(-1px)}.fup-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:80px 24px;color:var(--text-subtle);font-size:var(--font-size-body)}.fup-progress-sheet{width:min(440px,100%)}.fup-progress-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding-top:8px}.fup-job-row{padding:16px 0;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent);display:flex;flex-direction:column;gap:10px}.fup-job-row:last-child{border-bottom:none}.fup-job-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.fup-job-info{display:flex;flex-direction:column;gap:2px;min-width:0}.fup-job-name{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fup-job-org{font-size:var(--font-size-sm);color:var(--text-subtle)}.fup-job-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.fup-job-versions{display:flex;align-items:center;gap:5px;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.fup-job-from{color:var(--text-subtle)}.fup-job-arrow{color:color-mix(in oklab,var(--text) 30%,transparent);font-size:.72rem}.fup-job-to{color:var(--accent);font-weight:var(--font-weight-semibold)}.fup-job-badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-subtle)}.fup-job-row.--active .fup-job-badge{color:var(--accent)}.fup-job-row.--complete .fup-job-badge{color:var(--color-status-active)}.fup-job-steps{display:flex;gap:16px}.fup-step{display:flex;align-items:center;gap:5px;font-size:var(--font-size-xs)}.fup-step-icon{display:flex;align-items:center;justify-content:center;width:13px;height:13px;flex-shrink:0}.fup-step-dot{width:5px;height:5px;border-radius:50%;background:color-mix(in oklab,var(--text) 22%,transparent)}.fup-step--pending{color:color-mix(in oklab,var(--text) 28%,transparent)}.fup-step--active{color:var(--accent)}.fup-step--done{color:var(--color-status-active)}.fup-step-label{white-space:nowrap}.content-panel{display:flex;flex-direction:column}.content-panel-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}:root{--sidebar-width: 72px;--directory-gutter: 26px;--inspect-topbar-offset: 64px}.inspect-topbar{position:fixed;top:0;left:0;right:0;box-sizing:border-box;height:var(--inspect-topbar-offset);margin:0;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent);background:var(--panel-bg);color:var(--text);font-size:var(--font-size-label);font-weight:var(--font-weight-bold);line-height:1.2;z-index:70}.inspect-topbar-copy{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspect-org-chip{display:inline-flex;align-items:center;max-width:min(42vw,420px);min-height:26px;padding:4px 10px;border:1px solid color-mix(in oklab,var(--accent) 24%,transparent);border-radius:999px;background:var(--color-white);color:color-mix(in oklab,var(--accent) 78%,var(--text));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspect-return-btn,.sheet-primary-btn,.sheet-secondary-btn{min-height:34px;border-radius:8px;padding:7px 12px;font:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;white-space:nowrap;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.inspect-return-btn,.sheet-secondary-btn{border:1px solid color-mix(in oklab,var(--text) 14%,transparent);background:transparent;color:var(--text)}.inspect-return-btn{background:var(--color-white);font-size:var(--font-size-label-sm)}.sheet-primary-btn{border:0;background:var(--accent);color:var(--text-inverse)}.inspect-return-btn:hover,.sheet-secondary-btn:hover,.sheet-primary-btn:hover:not(:disabled){transform:translateY(-1px)}.sheet-primary-btn:disabled{opacity:.45;cursor:not-allowed}.inspect-sidesheet{width:min(380px,100%)}.visualisation-sidesheet{width:min(420px,100%)}.inspect-settings-body{display:grid;align-content:start;gap:18px;min-height:0;overflow-y:auto;padding-top:8px}.inspect-settings-body label{display:grid;gap:8px;color:var(--text);font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}.inspect-explanation{display:grid;gap:7px;padding:14px;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:8px;background:var(--app-bg)}.inspect-explanation p{margin:0;color:var(--text-subtle);font-size:var(--font-size-body-md);line-height:1.55}.visualisation-settings-body{display:flex;flex-direction:column;gap:18px;flex:1 1 auto;height:100%;min-height:0;overflow-y:auto;padding-top:8px}.visualisation-option-list{display:grid;gap:10px}.visualisation-settings-body .inspect-explanation{margin-top:auto}.visualisation-option{width:100%;border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:12px;background:color-mix(in oklab,var(--panel-bg) 86%,white 14%);color:var(--text);display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px;text-align:left;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,transform .18s ease,box-shadow .18s ease}.visualisation-option:hover{transform:translateY(-1px);border-color:color-mix(in oklab,var(--accent) 24%,transparent)}.visualisation-option.active{border-color:color-mix(in oklab,var(--accent) 34%,transparent);background:color-mix(in oklab,var(--accent) 10%,var(--panel-bg))}.visualisation-option-copy{min-width:0;display:grid;gap:4px}.visualisation-option-title{font-size:var(--font-size-body-xl);font-weight:var(--font-weight-semibold);color:var(--text)}.visualisation-option-description{font-size:var(--font-size-body-md);color:var(--text-subtle);line-height:1.5}.visualisation-option-scale{display:inline-flex;align-items:center;justify-content:center;min-width:64px}.visualisation-option-preview{display:inline-flex;align-items:center;justify-content:center;min-width:56px;min-height:42px;padding:0 10px;border-radius:10px;background:color-mix(in oklab,var(--text) 6%,transparent);color:color-mix(in oklab,var(--accent) 76%,var(--text));font-weight:var(--font-weight-bold);letter-spacing:-.02em}.visualisation-option-preview.preview-small{font-size:var(--font-size-title-xs)}.visualisation-option-preview.preview-medium{font-size:var(--font-size-title-sm)}.visualisation-option-preview.preview-large{font-size:var(--font-size-title-md)}.content-panel.inspecting .home-page,.content-panel.inspecting .fup-page{height:100%}.content-panel.inspecting:has(.home-page),.content-panel.inspecting:has(.fup-page){padding:0}.content-panel.inspecting:has(.directory-page){padding:0}.content-panel.inspecting:has(.directory-page) .content-panel-body,.content-panel.inspecting:has(.directory-page) .directory-page{flex:1 1 auto;min-height:0}.content-panel.inspecting:has(.directory-page) .resource-list-shell{height:100%;margin-left:0;margin-right:0;margin-bottom:0}.content-panel.inspecting:has(.directory-page) .resource-list-header:before{display:none}.app-shell.inspecting .sidebar{top:var(--inspect-topbar-offset);min-height:calc(100vh - var(--inspect-topbar-offset))}.app-shell.inspecting{min-height:100vh;padding-top:var(--inspect-topbar-offset);overflow:hidden}.app-shell.inspecting .content-panel{height:calc(100vh - var(--inspect-topbar-offset));min-height:calc(100vh - var(--inspect-topbar-offset));margin-top:0}.app-shell.inspecting .settings-sidesheet{top:var(--inspect-topbar-offset);height:calc(100dvh - var(--inspect-topbar-offset));max-height:calc(100dvh - var(--inspect-topbar-offset))}.app-shell.inspecting .sidesheet-backdrop{top:var(--inspect-topbar-offset)}@media(max-width:768px){.app-shell.inspecting{padding-top:0;overflow:visible}.inspect-topbar{position:static;left:auto;right:auto;top:auto;height:auto;min-height:var(--inspect-topbar-offset);margin:0;padding:10px 16px}}@media(max-width:768px){.app-shell.inspecting .sidebar{top:auto;bottom:0;height:72px;min-height:72px}.app-shell.inspecting .content-panel{height:100vh;min-height:100vh;margin-top:0;padding-top:0}.app-shell.inspecting .settings-sidesheet,.app-shell.inspecting .sidesheet-backdrop{top:0;height:100dvh;max-height:100dvh}}.org-features-card{display:flex;flex-direction:column;gap:0}.org-features-list{display:flex;flex-direction:column;gap:0;margin-top:8px}.org-feature-item{border-top:1px solid color-mix(in oklab,var(--text) 10%,transparent);padding:14px 0}.org-feature-item:first-child{border-top:none;padding-top:0}.org-feature-item:last-child{padding-bottom:0}.org-feature-row{display:flex;align-items:flex-start;gap:12px}.org-feature-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--surface-2, color-mix(in srgb, var(--app-bg) 60%, var(--border)));border-radius:8px;color:var(--text-muted);margin-top:1px}.org-feature-row--active .org-feature-icon{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.org-feature-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.org-feature-label{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.3}.org-feature-price{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.org-feature-description{font-size:12px;color:var(--text-muted);margin:4px 0 0;line-height:1.5}.org-feature-toggle-wrap{flex-shrink:0;display:flex;align-items:center;padding-top:2px}.org-feature-toggle{position:relative;width:36px;height:20px;border-radius:10px;background:color-mix(in oklab,var(--text) 30%,transparent);border:none;cursor:pointer;padding:0;transition:background .18s ease;flex-shrink:0}.org-feature-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.org-feature-toggle--on{background:var(--accent)}.org-feature-toggle-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .18s ease;pointer-events:none}.org-feature-toggle--on .org-feature-toggle-thumb{transform:translate(16px)}.org-features-list--sub{margin-top:10px;padding-left:10px;border-left:2px solid color-mix(in oklab,var(--text) 12%,transparent);gap:0}.org-feature-row--sub{border-top:1px solid color-mix(in oklab,var(--text) 10%,transparent);padding:8px 0;gap:10px}.org-feature-row--sub:first-child{border-top:none;padding-top:0}.org-feature-row--sub:last-child{padding-bottom:0}.org-feature-row--sub .org-feature-icon{width:26px;height:26px;border-radius:6px}.org-feature-row--sub .org-feature-label{font-size:12px;font-weight:600}.org-feature-row--sub .org-feature-price{font-size:10.5px}.org-feature-row--sub .org-feature-description{font-size:11px;margin-top:2px}.org-feature-row--sub .org-feature-toggle-wrap{padding-top:1px}.org-feature-sub-stat{display:flex;align-items:center;gap:7px;margin-top:6px}.org-feature-sub-bar-track{flex:1;height:3px;background:var(--border);border-radius:2px;overflow:hidden;min-width:0}.org-feature-sub-bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.org-feature-sub-stat-count{font-size:10px;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.org-feature-sub-gateway-link{display:inline-flex;align-items:center;gap:2px;font-size:10px;color:var(--accent);background:none;border:none;cursor:pointer;padding:0;white-space:nowrap}.org-feature-sub-gateway-link:hover{text-decoration:underline}.org-form-features-control{flex-direction:column;gap:10px;padding:10px 12px}.org-form-feature-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.org-form-feature-text{display:flex;flex-direction:column;gap:1px;min-width:0}.org-form-feature-label{font-size:13px;font-weight:500;color:var(--text-primary)}.org-form-feature-price{font-size:11px;color:var(--text-muted)}.ssh-terminal-gate{position:relative;border-radius:inherit}.ssh-terminal-gate-blur{pointer-events:none;-webkit-user-select:none;user-select:none;filter:blur(2px);opacity:.4}.ssh-terminal-gate-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 28px;background:radial-gradient(ellipse at 50% 55%,color-mix(in srgb,var(--panel-bg) 62%,transparent),color-mix(in srgb,var(--panel-bg) 30%,transparent));border-radius:inherit}.ssh-gate-icon-wrap{width:52px;height:52px;display:flex;align-items:center;justify-content:center;color:var(--accent)}.ssh-gate-title{font-size:15px;font-weight:700;color:var(--text-primary);margin:0 0 6px}.ssh-gate-subtitle{font-size:12px;color:var(--text-muted);margin:0 0 20px;max-width:200px;line-height:1.55}.ssh-gate-cta-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:9px;background:var(--accent);color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:transform .18s ease,box-shadow .22s ease,filter .18s ease}.ssh-gate-cta-btn:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 38%,transparent)}.ssh-gate-cta-btn:active{transform:translateY(0) scale(.98)}.ssh-gate-cta-btn:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--app-bg) 88%,transparent),0 0 0 4px color-mix(in srgb,var(--accent) 38%,transparent)}.org-plan-cell{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.org-plan-features-chip{font-size:10px;padding:1px 6px;line-height:1.6}.org-features-plan-hero{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);margin-bottom:4px}.org-features-plan-name{font-size:24px;font-weight:700;color:var(--text-primary);line-height:1.1}.org-features-cost{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.org-features-cost-amount{font-size:15px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.org-features-cost-meta{font-size:11px;color:var(--text-muted)}.org-feature-saving-indicator{display:flex;align-items:center;justify-content:center;width:36px;height:20px;color:var(--accent)}.gateway-enabled-features-card{display:flex;flex-direction:column;gap:10px}.gateway-enabled-features-list{display:flex;flex-direction:column;gap:8px}.gateway-enabled-feature{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid var(--border)}.gateway-enabled-feature:first-child{border-top:0;padding-top:0}.gateway-enabled-feature-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:8px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.gateway-enabled-feature-body{display:flex;min-width:0;flex-direction:column;gap:3px}.gateway-enabled-feature-body>span{font-size:13px;font-weight:600;color:var(--text-primary)}.gateway-enabled-feature-body p,.gateway-security-subfeatures{margin:0;font-size:12px;line-height:1.45;color:var(--text-muted)}.gateway-security-subfeatures{padding-left:16px}.tutorial-layer{position:fixed;inset:0;z-index:140;pointer-events:none}.tutorial-backdrop{position:absolute;inset:0;background:#12161f85;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tutorial-spotlight{position:fixed;border-radius:18px;border:2px solid color-mix(in oklab,var(--accent) 74%,white 26%);box-shadow:0 0 0 9999px #12161f47,0 18px 40px #0000003d;pointer-events:none}.tutorial-card{position:fixed;display:grid;gap:16px;padding:18px;border-radius:16px;border:1px solid color-mix(in oklab,var(--text) 12%,transparent);background:color-mix(in oklab,var(--panel-bg) 96%,white 4%);box-shadow:0 20px 48px #0000002e,inset 0 1px #ffffff40;color:var(--text);pointer-events:auto}.tutorial-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}.tutorial-card-icon{width:36px;height:36px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--accent) 14%,transparent);color:color-mix(in oklab,var(--accent) 76%,var(--text))}.tutorial-card-copy{min-width:0}.tutorial-card-copy h3,.tutorial-card-description,.tutorial-card-eyebrow{margin:0}.tutorial-card-eyebrow{color:var(--text-subtle);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);letter-spacing:.12em;text-transform:uppercase}.tutorial-card-copy h3{margin-top:3px;font-size:var(--font-size-title-sm);color:var(--heading-text)}.tutorial-step-count{color:var(--text-subtle);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.tutorial-card-description{color:var(--text-subtle);line-height:1.55}.tutorial-shortcuts{display:grid;gap:12px}.tutorial-shortcut-group{display:grid;gap:8px}.tutorial-shortcut-group strong{font-size:var(--font-size-sm)}.tutorial-shortcut-group ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.tutorial-shortcut-group li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;color:var(--text-subtle);font-size:var(--font-size-sm)}.tutorial-key-badge{min-width:32px;padding:3px 8px;border-radius:7px;border:1px solid color-mix(in oklab,var(--text) 14%,transparent);background:color-mix(in oklab,var(--panel-bg) 88%,white 12%);color:var(--text);font:inherit;font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-align:center;box-shadow:inset 0 -1px #00000014}.tutorial-card-actions,.tutorial-card-actions-right{display:flex;align-items:center;gap:10px}.tutorial-card-actions{justify-content:space-between}.tutorial-primary-btn,.tutorial-secondary-btn{border-radius:10px;padding:9px 12px;border:1px solid color-mix(in oklab,var(--text) 12%,transparent);display:inline-flex;align-items:center;gap:8px;font:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.tutorial-secondary-btn{background:transparent;color:var(--text-subtle)}.tutorial-secondary-btn:hover:not(:disabled){background:color-mix(in oklab,var(--button-bg) 84%,transparent);color:var(--text)}.tutorial-primary-btn{background:var(--accent);border-color:color-mix(in oklab,var(--accent) 68%,black 10%);color:var(--color-white)}.tutorial-primary-btn:hover{background:color-mix(in oklab,var(--accent) 90%,black 10%)}.tutorial-secondary-btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:720px){.tutorial-card{left:16px!important;right:16px;width:auto!important;top:auto!important;bottom:16px;transform:none!important}.tutorial-card-actions,.tutorial-card-actions-right{flex-wrap:wrap}}.wiki-editor-header{display:flex;align-items:center;justify-content:space-between}.wiki-editor-tabs{display:flex;gap:2px;background:color-mix(in oklab,var(--border) 60%,transparent);border-radius:8px;padding:2px}.wiki-tab{background:none;border:none;border-radius:6px;padding:3px 10px;font-size:.8rem;font-weight:500;color:var(--text-subtle);cursor:pointer;transition:background .12s ease,color .12s ease}.wiki-tab:hover{color:var(--text)}.wiki-tab.active{background:var(--surface-raised, var(--surface));color:var(--text);box-shadow:0 1px 3px #0000001f}.wiki-editor-write{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .16s ease}.wiki-editor:focus-within .wiki-editor-write{border-color:var(--accent);border-width:2px}.wiki-editor-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;border-bottom:1px solid var(--border);background:color-mix(in oklab,var(--surface-raised, var(--surface)) 60%,transparent);flex-wrap:wrap}.wiki-toolbar-btn{background:none;border:none;border-radius:5px;padding:3px 7px;font-size:.78rem;font-weight:600;color:var(--text-subtle);cursor:pointer;line-height:1.4;min-width:26px;text-align:center;transition:background .1s ease,color .1s ease}.wiki-toolbar-btn:hover{background:color-mix(in oklab,var(--accent) 12%,transparent);color:var(--text)}.wiki-toolbar-italic{font-style:italic}.wiki-toolbar-mono{font-family:monospace;font-size:.74rem}.wiki-toolbar-sep{display:block;width:1px;height:16px;background:var(--border);margin:0 2px;flex-shrink:0}.wiki-editor-textarea{width:100%;min-height:180px;border:none;outline:none;background:transparent;padding:12px 14px;font-family:inherit;font-size:.875rem;line-height:1.6;color:var(--text);resize:vertical}.wiki-editor-textarea::placeholder{color:var(--text-subtle);opacity:.7}.wiki-editor-preview{border:1px solid var(--border);border-radius:10px;min-height:180px;padding:12px 14px;background:color-mix(in oklab,var(--surface-raised, var(--surface)) 50%,transparent)}.wiki-preview-empty{color:var(--text-subtle);font-size:.875rem;margin:0}.wiki-renderer{font-size:.875rem;line-height:1.65;color:var(--text)}.wiki-renderer>*+*{margin-top:.6em}.wiki-renderer h2{font-size:1rem;font-weight:650;margin-top:1.1em;margin-bottom:.2em;color:var(--text)}.wiki-renderer h3{font-size:.9rem;font-weight:620;margin-top:.9em;margin-bottom:.15em;color:var(--text)}.wiki-renderer h4{font-size:.85rem;font-weight:600;margin-top:.8em;margin-bottom:.1em;color:var(--text)}.wiki-renderer p{margin:0}.wiki-renderer ul,.wiki-renderer ol{margin:.3em 0;padding-left:1.4em}.wiki-renderer li+li{margin-top:.2em}.wiki-renderer strong{font-weight:650}.wiki-renderer em{font-style:italic}.wiki-renderer code{font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.83em;padding:1px 5px;border-radius:4px;background:color-mix(in oklab,var(--accent) 10%,transparent);color:var(--accent)}.wiki-renderer hr{border:none;border-top:1px solid var(--border);margin:.8em 0}
