@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/jakarta-400-latin-ext.woff2") format("woff2");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:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/jakarta-400-latin.woff2") format("woff2");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:"Plus Jakarta Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/jakarta-500-latin-ext.woff2") format("woff2");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:"Plus Jakarta Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/jakarta-500-latin.woff2") format("woff2");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:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/jakarta-600-latin-ext.woff2") format("woff2");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:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/jakarta-600-latin.woff2") format("woff2");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:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/jakarta-700-latin-ext.woff2") format("woff2");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:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/jakarta-700-latin.woff2") format("woff2");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:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/jakarta-800-latin-ext.woff2") format("woff2");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:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/jakarta-800-latin.woff2") format("woff2");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:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,Monaco,Consolas,monospace;--font-display:var(--font-sans);--bg-base:#f5f5f7;--bg-surface:rgba(255,255,255,.78);--bg-elevated:#ffffff;--bg-hover:rgba(0,0,0,.04);--bg-active:rgba(0,0,0,.08);--text-primary:#1d1d1f;--text-secondary:#3d4145;--text-tertiary:#5e6166;--text-inverse:#ffffff;--border:rgba(0,0,0,.08);--border-strong:rgba(0,0,0,.16);--divider:rgba(0,0,0,.06);--accent:#007aff;--accent-hover:#0066d6;--accent-soft:rgba(0,122,255,.12);--on-accent:#ffffff;--green:#9634c7;--red:#ff3b30;--orange:#ff9500;--yellow:#ffcc00;--purple:#af52de;--pink:#ff2d55;--grad-brand:linear-gradient(135deg,#ff2d55,#af52de,#007aff);--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 16px rgba(0,0,0,.08);--shadow-lg:0 20px 60px rgba(0,0,0,.12);--shadow-window:0 30px 80px rgba(0,0,0,.18),0 0 0 .5px rgba(0,0,0,.1);--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-pill:9999px;--brand-color:#660099;--ease:cubic-bezier(.25,.1,.25,1);--ease-spring:cubic-bezier(.175,.885,.32,1.275);--blur:blur(22px) saturate(180%)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{height:100%}body{font-family:var(--font-sans);font-size:13px;line-height:1.5;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;letter-spacing:-.01em;zoom:.9;min-height:calc(100vh / .9)}body.has-conn-banner{box-sizing:border-box;padding-top:40px}body.has-conn-banner .ui-sidebar{top:40px;height:calc((100vh - 40px) / .9);max-height:calc((100vh - 40px) / .9)}a,a:hover,a:focus,a:active,a:visited{text-decoration:none}a{color:var(--accent)}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;letter-spacing:-.02em;font-family:var(--font-display)}h1{font-size:26px}h2{font-size:20px}h3{font-size:16px}h4{font-size:14px}p{margin:0 0 16px;color:var(--text-secondary)}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}::selection{background:var(--accent);color:var(--on-accent)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000038;border-radius:8px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#0000005c;background-clip:padding-box}.container{max-width:1280px;margin:0 auto;padding:0 28px}.row{display:flex;gap:16px;align-items:center}.spacer{flex:1}.ui-card{background:var(--bg-elevated);border-radius:var(--r-lg);box-shadow:var(--shadow-md);border:.5px solid var(--border);padding:24px}.ui-surface{background:var(--bg-surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:.5px solid var(--border);border-radius:var(--r-lg)}.ui-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:var(--r-sm);border:.5px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-primary);font-weight:500;font-size:12px;cursor:pointer;transition:transform .12s var(--ease),background .12s var(--ease),box-shadow .12s var(--ease);box-shadow:var(--shadow-sm);font-family:inherit}.ui-btn:hover{background:var(--bg-hover)}.ui-btn:active{transform:scale(.97);background:var(--bg-active)}.ui-btn:disabled{opacity:.45;cursor:not-allowed}.ui-btn-primary{background:var(--accent);color:var(--on-accent);border-color:transparent}.ui-btn-primary:hover{background:var(--accent-hover);color:var(--on-accent)}.ui-btn-ghost{background:transparent;border-color:transparent;box-shadow:none}.ui-btn-ghost:hover{background:var(--bg-hover)}.ui-btn-danger{background:var(--red);color:#fff;border-color:transparent}.ui-btn-danger:hover{background:#d9302a}.ui-input,.ui-textarea,.ui-select{width:100%;padding:9px 12px;border:.5px solid var(--border-strong);border-radius:var(--r-sm);background:var(--bg-elevated);color:var(--text-primary);font-size:12.5px;outline:none;transition:border-color .12s var(--ease),box-shadow .12s var(--ease);font-family:inherit}.ui-input:focus,.ui-textarea:focus,.ui-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--text-tertiary)}.ui-field{display:flex;flex-direction:column;gap:8px}.ui-field+.ui-field{margin-top:12px}.ui-field label{font-size:11px;font-weight:600;color:var(--text-secondary)}.ui-window{background:var(--bg-elevated);border-radius:var(--r-xl);box-shadow:var(--shadow-window);overflow:hidden;border:.5px solid var(--border)}.ui-titlebar{display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--bg-surface);backdrop-filter:blur(20px);border-bottom:.5px solid var(--divider);user-select:none}.ui-traffic{display:flex;gap:8px}.ui-traffic .dot{width:12px;height:12px;border-radius:50%;display:inline-block}.ui-traffic .dot.red{background:#ff5f57;box-shadow:inset 0 0 0 .5px #00000014}.ui-traffic .dot.yellow{background:#ffbd2e;box-shadow:inset 0 0 0 .5px #00000014}.ui-traffic .dot.green{background:#9328c9;box-shadow:inset 0 0 0 .5px #00000014}.ui-title{flex:1;text-align:center;font-size:13px;font-weight:600;color:var(--text-secondary)}.ui-sidebar{width:240px;flex-shrink:0;background:var(--bg-surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-right:.5px solid var(--divider);padding:20px 12px 12px;position:sticky;top:0;height:calc(100vh / .9);max-height:calc(100vh / .9);align-self:flex-start;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.45) transparent}.ui-sidebar::-webkit-scrollbar{width:6px}.ui-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.45);border-radius:4px}.ui-sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.7)}.ui-sidebar-scroll{flex:1;overflow-y:auto;min-height:0}.ui-sidebar>.ui-sidebar-bottom{margin-top:auto;padding-top:8px}.ui-sidebar-section{margin-bottom:18px}.ui-sidebar-section:last-child{margin-bottom:0}.ui-sidebar-label{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);padding:0 14px 8px;letter-spacing:.04em}.ui-sidebar-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r-sm);color:var(--text-primary);cursor:pointer;font-size:13.5px;transition:background .1s var(--ease);text-decoration:none}.ui-sidebar-item:hover{background:var(--bg-hover);color:var(--text-primary)}.ui-sidebar-item.active{background:var(--accent);color:var(--on-accent)}.ui-sidebar-item.active i{color:var(--on-accent)}.ui-sidebar-item i{width:20px;text-align:center;font-size:13px;color:var(--text-secondary)}body[data-sidebar=collapsed] .ui-sidebar{width:56px;padding-left:6px;padding-right:6px}body[data-sidebar=collapsed] .ui-sidebar .ui-sidebar-item{padding-left:0;padding-right:0;justify-content:center;gap:0;font-size:0;color:transparent}body[data-sidebar=collapsed] .ui-sidebar .ui-sidebar-item>*:not(i){display:none}body[data-sidebar=collapsed] .ui-sidebar .ui-sidebar-item i{font-size:15px;color:var(--text-secondary)}body[data-sidebar=collapsed] .ui-sidebar .ui-sidebar-item:hover i,body[data-sidebar=collapsed] .ui-sidebar .ui-sidebar-item.active i{color:var(--text-primary)}body[data-sidebar=collapsed] .ui-sidebar .ui-sidebar-label,body[data-sidebar=collapsed] .ui-sidebar .sidebar-brand .name,body[data-sidebar=collapsed] .ui-sidebar .sidebar-brand .sub,body[data-sidebar=collapsed] .ui-sidebar .my-presence .info,body[data-sidebar=collapsed] .ui-sidebar .my-presence>i{display:none}body[data-sidebar=collapsed] .ui-sidebar .sidebar-brand,body[data-sidebar=collapsed] .ui-sidebar .my-presence{justify-content:center;padding-left:0;padding-right:0;gap:0}body[data-sidebar=collapsed] #app-user-pill{justify-content:center!important;padding:6px 0!important;gap:0!important;margin:0 0 4px!important}body[data-sidebar=collapsed] #app-user-pill>div:nth-child(2){display:none!important}body[data-sidebar=collapsed] #app-user-pill .up-avatar{width:30px!important;height:30px!important}.app-sidebar-toggle{position:fixed;z-index:999;top:14px;left:229px;width:22px;height:22px;border-radius:50%;background:var(--bg-elevated);color:var(--text-secondary);border:.5px solid var(--border);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:9px;box-shadow:0 2px 4px #00000014;transition:left .18s ease,background .15s,color .15s}.app-sidebar-toggle:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}body[data-sidebar=collapsed] .app-sidebar-toggle{left:45px}@media(max-width:900px){.app-sidebar-toggle{display:none}}.sidebar-search{position:relative;padding:6px 14px 12px;border-bottom:.5px solid var(--divider);margin-bottom:8px}.sidebar-search-input{width:100%;padding:7px 10px 7px 30px;border-radius:8px;background:var(--bg-hover);border:1px solid transparent;font-size:13px;color:var(--text-primary);transition:background .12s,border-color .16s,box-shadow .16s}.sidebar-search-input::placeholder{color:var(--text-tertiary)}.sidebar-search-input:focus{outline:none;background:var(--bg-elevated);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sidebar-search-icon{position:absolute;left:24px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);font-size:12px;pointer-events:none}.sidebar-search-clear{position:absolute;right:22px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;border:none;background:var(--text-tertiary);color:var(--bg-elevated);font-size:9px;cursor:pointer;display:none;align-items:center;justify-content:center}.sidebar-search-clear.show{display:flex}.sidebar-search-results{display:none;position:absolute;top:calc(100% - 4px);left:8px;right:8px;background:var(--bg-elevated);border:.5px solid var(--border);border-radius:12px;box-shadow:0 16px 40px #0000002e;max-height:60vh;overflow-y:auto;z-index:100;padding:6px 0}.sidebar-search-results.show{display:block}.sidebar-search-group{padding:6px 12px 4px;font-size:10px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.sidebar-search-item{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;text-decoration:none;color:var(--text-primary);font-size:13px;border-radius:0;transition:background 80ms}.sidebar-search-item:hover,.sidebar-search-item.kbd-active{background:var(--bg-hover)}.sidebar-search-item i{color:var(--text-tertiary);width:14px;text-align:center;flex-shrink:0}.sidebar-search-item .ssi-meta{color:var(--text-tertiary);font-size:11px;margin-left:auto}.sidebar-search-item mark{background:#a22cdd4d;color:inherit;padding:0 2px;border-radius:3px}.sidebar-search-empty{padding:18px 12px;text-align:center;color:var(--text-tertiary);font-size:12px}.sidebar-search-loading{padding:14px;text-align:center}body[data-sidebar=collapsed] .sidebar-search,.sidebar-brand .logo .brand-img-favicon{display:none}body[data-sidebar=collapsed] .sidebar-brand .logo{width:36px!important;height:36px!important;font-size:0!important;background:transparent!important;box-shadow:none!important;border-radius:8px!important;padding:0!important}body[data-sidebar=collapsed] .sidebar-brand .logo>*{display:none!important}body[data-sidebar=collapsed] .sidebar-brand .logo .brand-img-favicon{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;border-radius:0!important}body.has-brand-logo .sidebar-brand{flex-direction:column;align-items:stretch;gap:0;padding:14px 12px 18px}body.has-brand-logo .sidebar-brand .logo{width:100%!important;height:56px!important;border-radius:6px;background:transparent!important;box-shadow:none!important;padding:4px 6px}body.has-brand-logo .sidebar-brand .logo img{width:100%!important;height:100%!important;object-fit:contain!important;border-radius:0!important}body.has-brand-logo[data-sidebar=collapsed] .sidebar-brand{flex-direction:row;padding:10px 6px}body.has-brand-logo[data-sidebar=collapsed] .sidebar-brand .logo{width:36px!important;height:36px!important}body.has-brand-logo .app-mobile-top .logo{width:auto!important;min-width:90px;max-width:160px;height:36px!important;background:transparent!important;padding:2px 4px}body.has-brand-logo .app-mobile-top .logo img{object-fit:contain!important}.ui-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:600;background:var(--bg-hover);color:var(--text-secondary)}.ui-badge.green{background:var(--green);color:#fff}.ui-badge.red{background:var(--red);color:#fff}.ui-badge.yellow{background:var(--yellow);color:#1d1d1f}.ui-badge.purple{background:var(--purple);color:#fff}.ui-badge.accent{background:var(--accent);color:var(--on-accent)}.ui-divider{height:.5px;background:var(--divider);margin:20px 0;border:0}.ui-fade-in{animation:uiFadeIn .26s var(--ease) both}@keyframes uiFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ui-spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:uiSpin .7s linear infinite;display:inline-block}@keyframes uiSpin{to{transform:rotate(360deg)}}.ui-toast{position:fixed;top:24px;right:24px;padding:14px 18px;background:var(--accent);color:#fff;border:.5px solid rgba(255,255,255,.18);border-radius:var(--r-md);box-shadow:var(--shadow-lg);font-size:13px;font-weight:600;z-index:10000;animation:uiFadeIn .2s var(--ease) both;min-width:220px;max-width:360px}.ui-toast a{color:#fff;text-decoration:underline}.ui-toast b,.ui-toast strong{color:#fff}.ui-toast.success{border-left:3px solid #ffffff}.ui-toast.error{border-left:3px solid #ff6b6b;background:#8a1538}.ui-toast.info{border-left:3px solid #d097ed}.ui-toast.warning{border-left:3px solid #ffb400}.app-shell{display:flex;align-items:flex-start;min-height:calc(100vh / .9)}.app-main{flex:1;min-width:0;padding:32px 36px}.app-mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-elevated);border-top:.5px solid var(--divider);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));z-index:90;box-shadow:0 -6px 18px #0000000f;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.app-mobile-nav-grid{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px}.app-mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 4px 5px;gap:3px;text-decoration:none;color:var(--text-secondary);font-size:10.5px;font-weight:500;border-radius:var(--r-sm);transition:color .12s,background .12s,transform .12s var(--ease)}.app-mobile-nav-item:hover,.app-mobile-nav-item:active{color:var(--text-primary);background:var(--bg-hover)}.app-mobile-nav-item.active{color:var(--accent)}.app-mobile-nav-item.active i{transform:scale(1.08)}.app-mobile-nav-item i{font-size:18px;transition:transform .12s var(--ease)}.app-mobile-top{display:none;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-elevated);border-bottom:.5px solid var(--divider);position:sticky;top:0;z-index:50}.app-mobile-top .logo{width:30px;height:30px;border-radius:9px;background:#a22cdd;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.app-mobile-top .title{flex:1;font-weight:700;font-size:16px}.app-mobile-top .top-action{width:36px;height:36px;border-radius:var(--r-sm);border:none;background:var(--bg-hover);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer}.app-mobile-menu-btn{display:none}.app-mobile-menu-backdrop{display:none;position:fixed;inset:0;background:#00000073;z-index:998;animation:uiFadeIn .18s var(--ease) both}body.mobile-menu-open .app-mobile-menu-backdrop{display:block}@media(max-width:900px){html{overflow-x:hidden}body{zoom:1;min-height:100vh;min-height:100dvh;font-size:14px;-webkit-tap-highlight-color:transparent;overflow-x:hidden}.ui-sidebar{display:none}.app-mobile-nav{display:block}.app-mobile-top,.app-mobile-menu-btn{display:flex}.app-shell{min-height:100vh;min-height:100dvh;flex-direction:column}.app-sidebar-toggle{display:none}body.mobile-menu-open .ui-sidebar{display:flex!important;position:fixed!important;top:0;bottom:0;left:0;width:min(290px,86vw)!important;max-height:100dvh!important;height:100dvh!important;z-index:999;box-shadow:4px 0 24px #00000038;animation:drawerSlideIn .22s var(--ease) both;padding-top:calc(20px + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));overflow-y:auto;backdrop-filter:none;-webkit-backdrop-filter:none}@keyframes drawerSlideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}body.mobile-menu-open{overflow:hidden}.app-main{padding:16px 14px calc(82px + env(safe-area-inset-bottom,0px));padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px));width:100%;max-width:100vw;min-width:0}body:not(:has(.app-mobile-nav)) .app-main{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}h1{font-size:16px!important;line-height:1.2}h2{font-size:13.5px!important;line-height:1.25}h3{font-size:12.5px!important}h4{font-size:11.5px!important}body{font-size:12px}p{font-size:11.5px}label{font-size:11px!important}code,pre{font-size:11px}small,.help,.hint{font-size:10.5px!important}.container{padding:0 10px}.row{flex-wrap:wrap;gap:6px}.ui-input,.ui-textarea,.ui-select{font-size:16px;padding:7px 10px;border-radius:var(--r-sm)}.ui-btn{min-height:34px;padding:7px 12px;font-size:11.5px}.ui-btn-ghost{min-height:30px}.ui-card{padding:16px;border-radius:var(--r-md)}.ui-divider{margin:14px 0}body.mobile-menu-open .ui-sidebar-item{padding:12px 14px;font-size:14px;min-height:44px}body.mobile-menu-open .ui-sidebar-item i{font-size:16px}.ui-toast{top:max(12px,env(safe-area-inset-top,12px));right:12px;left:12px;min-width:0;max-width:none;font-size:13.5px}.app-mobile-top{padding-top:calc(12px + env(safe-area-inset-top,0px));padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px))}.app-mobile-top .title{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.app-mobile-top .top-action{width:38px;height:38px;flex-shrink:0}.app-mobile-nav-item{padding:9px 4px 6px;font-size:10.5px;min-height:56px}.app-mobile-nav-item i{font-size:19px}.ui-table-wrap,.table-wrap,.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}table{max-width:100%}.ui-table-stack{background:transparent!important;box-shadow:none!important;border-radius:0!important;font-size:13px}.ui-table-stack thead{display:none}.ui-table-stack,.ui-table-stack tbody,.ui-table-stack tr,.ui-table-stack td{display:block;width:100%}.ui-table-stack tr{background:var(--bg-elevated);border:.5px solid var(--border);border-radius:12px;padding:11px 13px;margin-bottom:9px;box-shadow:var(--shadow-sm)}.ui-table-stack tr:last-child{margin-bottom:0}.ui-table-stack td{padding:4px 0;border-bottom:0;text-align:left;white-space:normal;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:22px}.ui-table-stack td:before{content:attr(data-label);font-weight:600;color:var(--text-tertiary);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.ui-table-stack td:not([data-label]):before,.ui-table-stack td[data-label=""]:before{content:none;display:none}.ui-table-stack td[data-stack-hide]{display:none}.ui-table-stack td.actions,.ui-table-stack td[data-stack-row=actions]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:9px;border-top:.5px solid var(--divider);justify-content:flex-start}.ui-table-stack td.actions:before,.ui-table-stack td[data-stack-row=actions]:before{display:none}.ui-table-stack td.actions .ui-btn,.ui-table-stack td[data-stack-row=actions] .ui-btn{flex:1 1 auto;min-width:0}.stat-grid,.grid,.grid-2,.grid-3,.grid-4,.ui-grid,.ui-grid-2,.ui-grid-3{grid-template-columns:1fr!important}.form-grid,.form-row{grid-template-columns:1fr!important;flex-direction:column;align-items:stretch}.modal-bg,.ui-modal-bg,.app-modal-bg,.modal-backdrop{padding:12px!important;align-items:flex-end}.modal,.ui-modal,.app-modal,.modal-card{width:100%!important;max-width:100%!important;max-height:92dvh;overflow-y:auto;border-radius:var(--r-lg) var(--r-lg) 0 0!important;margin-bottom:env(safe-area-inset-bottom,0px)}.bulk-bar,.floating-bar,.ui-floating-bar{bottom:calc(72px + env(safe-area-inset-bottom,0px))!important;left:12px!important;right:12px!important;width:auto!important;max-width:none!important}.app-fab,.ui-fab{bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;right:16px!important}.theme-fab{bottom:calc(76px + env(safe-area-inset-bottom,0px))}.sidebar-search-results{max-height:70vh}body.mobile-menu-open .sidebar-search{display:block}.app-cropper-card{max-height:92dvh}.app-cropper-card .acc-body{height:min(50vh,360px)}.app-cropper-card .acc-tools{padding:8px 12px;gap:4px}.app-cropper-card .acc-tool{padding:8px 10px;font-size:12px;min-height:38px}.app-cropper-card .acc-foot{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}}@media(max-width:480px){.app-main{padding:10px 8px calc(74px + env(safe-area-inset-bottom,0px))}.ui-card{padding:11px;border-radius:var(--r-sm)}h1{font-size:15px!important}h2{font-size:13px!important}h3{font-size:12px!important}body{font-size:11.5px}p{font-size:11px}.container{padding:0 10px}.app-mobile-top{padding:calc(8px + env(safe-area-inset-top,0px)) 10px 8px;gap:8px}.app-mobile-top .logo{width:26px;height:26px;font-size:13px;border-radius:7px}.app-mobile-top .title{font-size:13.5px}.app-mobile-top .top-action{width:34px;height:34px}.app-mobile-nav-grid{gap:0}.app-mobile-nav-item{font-size:9px;padding:6px 2px 4px;min-height:48px}.app-mobile-nav-item i{font-size:16px}.ui-btn{padding:8px 12px;font-size:11.5px;min-height:32px}.ui-input,.ui-textarea,.ui-select{padding:8px 10px}body.mobile-menu-open .ui-sidebar{width:min(300px,90vw)!important}}.theme-fab{position:fixed;bottom:max(16px,env(safe-area-inset-bottom,16px));right:16px;z-index:200}.theme-fab-btn{appearance:none;border:.5px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-primary);padding:10px 16px;border-radius:var(--r-pill);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;box-shadow:var(--shadow-md);display:inline-flex;align-items:center;gap:8px;transition:transform .12s var(--ease)}.theme-fab-btn:hover{transform:translateY(-2px)}.theme-fab-menu{display:none;position:absolute;bottom:calc(100% + 8px);right:0;background:var(--bg-elevated);border:.5px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:6px;min-width:200px;max-height:360px;overflow-y:auto}.theme-fab.open .theme-fab-menu{display:block}.theme-fab-menu button{width:100%;appearance:none;border:0;padding:9px 12px;background:transparent;text-align:left;cursor:pointer;font-family:inherit;font-size:13px;color:var(--text-primary);border-radius:var(--r-xs);display:flex;align-items:center;gap:8px}.theme-fab-menu button:hover{background:var(--bg-hover)}.theme-fab-menu button .dot{width:16px;height:16px;border-radius:4px;flex-shrink:0}.theme-fab-menu button.active{font-weight:600;color:var(--accent)}.theme-fab-menu button.active:after{content:"\2713";margin-left:auto;color:var(--accent)}.app-cropper-bg{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1300;padding:16px}.app-cropper-card{background:var(--bg-elevated);border-radius:var(--r-lg);width:100%;max-width:540px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}.app-cropper-card .acc-head{padding:14px 18px;border-bottom:.5px solid var(--divider);display:flex;align-items:center;gap:10px}.app-cropper-card .acc-head h3{flex:1;margin:0;font-size:15px}.app-cropper-card .acc-close{background:none;border:0;cursor:pointer;color:var(--text-secondary);font-size:16px;padding:4px 8px}.app-cropper-card .acc-body{background:#1a1a1a;height:min(420px,60vh);display:flex;align-items:center;justify-content:center;overflow:hidden}.app-cropper-card .acc-img{max-width:100%;max-height:100%;display:block}.app-cropper-card .acc-body.round-preview .cropper-view-box,.app-cropper-card .acc-body.round-preview .cropper-face{border-radius:50%}.app-cropper-card .acc-tools{padding:10px 18px;border-top:.5px solid var(--divider);display:flex;gap:6px;flex-wrap:wrap}.app-cropper-card .acc-tool{padding:6px 10px;font-size:12px}.app-cropper-card .acc-foot{padding:12px 18px;border-top:.5px solid var(--divider);display:flex;gap:8px;justify-content:flex-end}.nav-unread-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red,#ff3b30);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ui-sidebar-item.active .nav-unread-badge{background:#fff;color:var(--accent)}body[data-sidebar=collapsed] .ui-sidebar-item{position:relative}body[data-sidebar=collapsed] .nav-unread-badge{position:absolute;margin:0;top:5px;right:5px;min-width:9px;width:9px;height:9px;padding:0;font-size:0;line-height:0;border-radius:50%;border:1.5px solid var(--bg-surface,#fff)}.app-mobile-nav-item{position:relative}.nav-unread-dot{position:absolute;top:2px;left:50%;transform:translateX(3px);min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--red,#ff3b30);color:#fff;font-size:9px;font-weight:700;line-height:15px;text-align:center}

/* ===== Cross-Document View Transitions (Chrome 126+) =====
   Anima a troca entre páginas com fade suave de 180ms — browser que não suporta
   simplesmente ignora. O sidebar tem nome próprio pra ficar "persistente"
   visualmente: como o DOM é idêntico entre páginas (mesmo menu), o browser
   detecta zero mudança e não anima → sensação de sidebar estático tipo frame. */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 180ms; }
::view-transition-old(ui-sidebar), ::view-transition-new(ui-sidebar) { animation: none; }
.ui-sidebar { view-transition-name: ui-sidebar; }

/* ============ Flag "em fase de testes" (badge beta no menu) ============ */
.sb-beta-badge {
    display: inline-block;
    margin-left: 8px;
    padding: 1px 7px;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: .04em;
    text-transform: uppercase;
    border-radius: 999px;
    color: #7a4b00;
    background: #ffd24a;
    vertical-align: middle;
    box-shadow: 0 1px 2px rgba(0,0,0,.15);
}
.ui-sidebar-item.active .sb-beta-badge { color: #7a4b00; background: #ffe08a; }

/* ===== Item do menu com título em cima e "flag" embaixo + ícone ⓘ =====
   O corpo (título + selo) fica numa coluna, então o nome aparece completo e o
   selo (testes / ATIVAR) desce pra segunda linha. O ⓘ à direita abre o modal. */
.ui-sidebar-item .sb-item-body { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; flex: 1; min-width: 0; }
.ui-sidebar-item .sb-item-label { line-height: 1.25; }
.sb-item-badge { display: inline-flex; align-items: center; gap: 4px; margin: 0; padding: 1px 7px; font-size: 9px; font-weight: 800; line-height: 1.5; letter-spacing: .04em; text-transform: uppercase; border-radius: 999px; white-space: nowrap; vertical-align: middle; }
/* Reaproveita as cores do beta, zerando o margin-left antigo (era inline) */
.sb-item-body .sb-beta-badge { margin-left: 0; }
.sb-pro-badge { color: #fff; background: #f59e0b; box-shadow: 0 1px 2px rgba(0,0,0,.18); }
.sb-pro-badge i { font-size: 8px; }
.ui-sidebar-item.active .sb-pro-badge { color: #7a4300; background: #ffd24a; }
/* Ícone de informação (abre o modal do módulo) */
.sb-info-btn { flex-shrink: 0; width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--text-tertiary); font-size: 13px; cursor: pointer; transition: background .12s var(--ease), color .12s var(--ease); align-self: center; }
.sb-info-btn:hover { background: var(--bg-active); color: var(--accent); }
.ui-sidebar-item.active .sb-info-btn { color: rgba(255,255,255,.85); }
.ui-sidebar-item.active .sb-info-btn:hover { background: rgba(255,255,255,.22); color: #fff; }

/* ===== Modal "sobre o recurso" ===== */
.menu-info-bg { position: fixed; inset: 0; z-index: 12000; background: rgba(0,0,0,.5); backdrop-filter: blur(3px); display: flex; align-items: center; justify-content: center; padding: 20px; }
.menu-info-card { background: var(--bg-elevated); border-radius: var(--r-lg); box-shadow: var(--shadow-lg); width: 100%; max-width: 460px; max-height: 88vh; display: flex; flex-direction: column; overflow: hidden; border: .5px solid var(--border); }
.menu-info-head { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: .5px solid var(--divider); }
.menu-info-head .mi-icon { width: 40px; height: 40px; flex-shrink: 0; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--accent-soft); color: var(--accent); font-size: 17px; }
.menu-info-head h3 { flex: 1; margin: 0; font-size: 16px; min-width: 0; }
.menu-info-head .mi-close { background: none; border: 0; cursor: pointer; color: var(--text-tertiary); font-size: 24px; line-height: 1; padding: 0 4px; }
.menu-info-head .mi-close:hover { color: var(--text-primary); }
.menu-info-body { padding: 18px 20px; overflow-y: auto; }
.menu-info-body .mi-what { font-size: 13.5px; color: var(--text-secondary); margin: 0 0 16px; line-height: 1.55; }
.menu-info-body .mi-sec { margin-bottom: 16px; }
.menu-info-body .mi-sec:last-child { margin-bottom: 0; }
.menu-info-body .mi-sec h4 { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--text-tertiary); margin: 0 0 8px; display: flex; align-items: center; gap: 7px; }
.menu-info-body .mi-sec ul { margin: 0; padding-left: 18px; }
.menu-info-body .mi-sec li { font-size: 13px; color: var(--text-secondary); margin-bottom: 6px; line-height: 1.5; }
.menu-info-body .mi-result p { font-size: 13.5px; color: var(--text-primary); margin: 0; line-height: 1.55; font-weight: 500; padding: 12px 14px; background: var(--accent-soft); border-radius: var(--r-sm); }
.menu-info-body .mi-locked-note { margin-top: 16px; font-size: 12.5px; color: #8a5a00; background: #fff4d6; border: .5px solid #f5d17e; border-radius: var(--r-sm); padding: 10px 12px; display: flex; align-items: flex-start; gap: 8px; }
.menu-info-foot { display: flex; gap: 8px; justify-content: flex-end; padding: 14px 20px; border-top: .5px solid var(--divider); }
@media (max-width: 900px) { .menu-info-bg { align-items: flex-end; padding: 0; } .menu-info-card { max-width: 100%; border-radius: var(--r-lg) var(--r-lg) 0 0; max-height: 90dvh; } }

/* Ponto de aviso compacto pra nav mobile */
.app-mobile-nav-item.has-beta { position: relative; }
.sb-beta-dot {
    position: absolute;
    top: 4px;
    right: calc(50% - 22px);
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ffd24a;
    box-shadow: 0 0 0 2px var(--surface, #fff);
}

/* Banner de impersonação do master ("Você está navegando como…") — desloca o
   conteúdo, a sidebar (sticky) e o topo mobile pra baixo do banner fixo. */
/* Banner de impersonação em FLUXO (sticky) — ocupa 40px e empurra o header; sem
   padding no body (era o que desalinhava). Sidebar/topo mobile grudam abaixo dele. */
body.has-imp-banner .ui-sidebar { top: 40px; height: calc((100vh - 40px) / .9); max-height: calc((100vh - 40px) / .9); }
body.has-imp-banner .app-mobile-top { top: 40px; }
body.has-imp-banner .app-sidebar-toggle { top: 54px; }

/* ===== Botão "Instalar o app" em destaque no topo da sidebar =====
   O item "Instalar app" existia só como a ÚLTIMA linha da seção Atendimento —
   uma seção com ~40 itens. No celular, achar aquilo exigia rolar o menu inteiro,
   então na prática ninguém instalava (e sem o app instalado o iPhone não recebe
   push nenhum). Aqui ele vira um botão à vista, logo abaixo da marca, e some
   sozinho quando o app JÁ está instalado (hideIfInstalled / isStandalonePwa). */
.sb-install-cta {
    display: flex; align-items: center; gap: 10px;
    /* A .ui-sidebar é flex column com overflow-y:auto. Sem flex:none, um filho
       direto encolhe quando o menu passa da altura da tela — no celular, onde o
       menu é o mais longo, ele viraria uma fatia fina e ilegível. */
    flex: none;
    margin: 8px 10px 12px; padding: 11px 12px;
    border-radius: var(--r-sm);
    background: var(--accent-soft, rgba(102,0,153,0.10));
    border: 1px solid var(--accent, #660099);
    color: var(--accent, #660099);
    text-decoration: none;
    transition: background 140ms ease, transform 120ms ease;
}
.sb-install-cta:hover { background: var(--accent, #660099); color: #fff; }
.sb-install-cta:active { transform: scale(0.985); }
.sb-install-cta > i:first-child { font-size: 17px; flex: none; }
.sb-install-cta .sb-install-txt { flex: 1; min-width: 0; line-height: 1.25; }
.sb-install-cta .sb-install-txt b { display: block; font-size: 13.5px; font-weight: 650; }
.sb-install-cta .sb-install-txt small {
    display: block; font-size: 10.5px; opacity: 0.85; margin-top: 2px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sb-install-cta > i:last-child { font-size: 11px; opacity: 0.6; flex: none; }
