@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap);:root{--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","SF Mono",Menlo,Consolas,monospace;--ink:#0f1733;--ink-soft:#5b6479;--ink-faint:#737c90;--paper:#f6f8fd;--panel:#fff;--panel-raised:#fff;--line:#e6e9f2;--line-strong:#d5dae6;--stage-a:#fafbfe;--stage-b:#f1f3f9;--header-bg:#0000;--brand:#4f46e5;--brand-soft:#eef0ff;--brand-gradient:linear-gradient(90deg,#4f46e5,#8b3fe0 55%,#ec4899);--danger:#ef4463;--radius-field:10px;--radius-panel:18px;--shadow-xs:0 1px 2px #0f17330a;--shadow-card:0 1px 2px #0f173308,0 12px 32px -16px #1e295a24;--focus-ring:0 0 0 3px #4f46e538}body.theme-dark{--ink:#eceef6;--ink-soft:#a9b0c2;--ink-faint:#8a91a5;--paper:#0d1020;--panel:#151a2e;--panel-raised:#1b2138;--line:#262d47;--line-strong:#353e5e;--stage-a:#11152a;--stage-b:#181e36;--brand:#8b8af8;--brand-soft:#232a52;--shadow-xs:none;--shadow-card:0 20px 40px -24px #0009;--focus-ring:0 0 0 3px #8b8af859;color-scheme:dark}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f6f8fd;background-color:var(--paper);color:#0f1733;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:14px;line-height:1.5;margin:0}code{font-family:JetBrains Mono,SF Mono,Menlo,Consolas,monospace;font-family:var(--font-mono)}*{box-sizing:border-box}button{border:none;cursor:pointer;font-family:inherit;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}button:disabled{cursor:not-allowed}input[type=checkbox]{accent-color:#4f46e5;accent-color:var(--brand);cursor:pointer;height:18px;margin:0;width:18px}:focus-visible{box-shadow:0 0 0 3px #4f46e538;box-shadow:var(--focus-ring);outline:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}body.theme-dark .token.selector,body.theme-dark .token.tag{color:#f9a8d4}body.theme-dark .token.attr-name{color:#fcd34d}body.theme-dark .token.attr-value,body.theme-dark .token.string{color:#86efac}body.theme-dark .token.operator,body.theme-dark .token.punctuation{background:none;color:#9ca3af}body.theme-dark .token.function,body.theme-dark .token.keyword{color:#93c5fd}body.theme-dark .token.comment{color:#7c8494}body.theme-dark .token.boolean,body.theme-dark .token.number{color:#fdba74}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74d3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-container-width:fit-content;--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-padding:14px;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-toast-shadow:0px 4px 12px #0000001a;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;display:flex;flex-direction:column;position:fixed;-webkit-transform:translateZ(9999);-webkit-transform:translateZ(var(--toastify-z-index));width:-webkit-fit-content;width:fit-content;width:var(--toastify-container-width);z-index:9999;z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{align-items:center;left:50%;top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top);transform:translateX(-50%)}.Toastify__toast-container--top-right{align-items:end;right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{align-items:center;bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{align-items:end;bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right)}.Toastify__toast{--y:0;align-items:center;border-radius:6px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;box-shadow:var(--toastify-toast-shadow);box-sizing:border-box;display:flex;flex:1 1 auto;font-family:sans-serif;font-family:var(--toastify-font-family);margin-bottom:1rem;max-height:800px;max-height:var(--toastify-toast-max-height);min-height:64px;min-height:var(--toastify-toast-min-height);padding:14px;padding:var(--toastify-toast-padding);position:relative;touch-action:none;width:320px;width:var(--toastify-toast-width);word-break:break-word;z-index:0}@media only screen and (max-width:480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}.Toastify__toast{--toastify-toast-width:100%;border-radius:0;margin-bottom:0}}.Toastify__toast-container[data-stacked=true]{width:320px;width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{-webkit-margin-end:10px;display:flex;flex-shrink:0;margin-inline-end:10px;width:22px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}.Toastify__toast-theme--dark{background:#121212;background:var(--toastify-color-dark);color:#fff;color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:#fff;background:var(--toastify-color-light);color:#757575;color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:#3498db;background:var(--toastify-color-info);color:#fff;color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:#07bc0c;background:var(--toastify-color-success);color:#fff;color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:#f1c40f;background:var(--toastify-color-warning);color:#fff;color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:#e74d3c;background:var(--toastify-color-error);color:#fff;color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:#bb86fc;background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:#3498db;background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:#07bc0c;background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:#f1c40f;background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:#e74d3c;background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:#ffffffb3;background:var(--toastify-color-transparent)}.Toastify__close-button{background:#0000;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;position:absolute;right:6px;top:6px;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:auto}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:1}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;left:auto;right:0;transform-origin:right}.Toastify__progress-bar--wrp{border-bottom-left-radius:6px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:6px;border-bottom-right-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;overflow:hidden;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:.2;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid #e0e0e0;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:#616161;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.hamburger-menu{position:relative}.hamburger-button{align-items:center;background:none;border:none;border-radius:4px;color:var(--ink-soft);cursor:pointer;display:flex;justify-content:center;outline:none;padding:8px;transition:background-color .2s}.hamburger-button:hover{background-color:var(--line);color:var(--ink)}.hamburger-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.hamburger-button svg{font-size:24px}.hamburger-dropdown{animation:slideDown .2s ease-out;background:var(--surface-color);border-radius:12px;box-shadow:0 8px 24px #091e4226;margin-top:8px;min-width:100px;position:absolute;right:0;top:100%;z-index:1000}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.hamburger-content{padding:16px}@media (max-width:768px){.hamburger-content{padding:8px}}.hamburger-user-info{align-items:center;display:flex;gap:12px;padding:8px}@media (max-width:768px){.hamburger-user-info{gap:8px;padding:4px}}.hamburger-user-avatar{border-radius:50%;height:48px;object-fit:cover;width:48px}.hamburger-user-details{flex:1 1;min-width:0}.hamburger-user-name{color:var(--text-color);font-size:15px;font-weight:600;margin-bottom:2px}.hamburger-user-email,.hamburger-user-name{font-family:var(--font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hamburger-user-email{color:#0009;font-size:13px}.hamburger-divider{background-color:var(--border-color);height:1px;margin:12px 0}@media (max-width:768px){.hamburger-divider{margin:6px 0}}.hamburger-nav{display:flex;flex-direction:column;gap:4px}@media (max-width:768px){.hamburger-nav{gap:2px}}.hamburger-link{border-radius:8px;color:var(--text-color);display:block;font-family:var(--font-sans);font-size:14px;font-weight:500;padding:12px 16px;text-decoration:none;transition:background-color .2s}.hamburger-link:hover{background-color:var(--background-color)}.hamburger-logout-btn{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:10px;color:var(--text-color);cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:600;padding:12px 16px;transition:all .2s;width:100%}.hamburger-logout-btn:hover{background-color:var(--background-color)}.hamburger-login{padding:16px;text-align:center}.hamburger-auth-disabled{color:#00000080;font-family:var(--font-sans);font-size:14px;margin:0}@media (max-width:768px){.hamburger-dropdown{min-width:220px;right:0}.hamburger-login{padding:4px}.hamburger-user-avatar{height:28px;width:28px}.hamburger-user-name{font-size:12px}.hamburger-user-email{font-size:10px}.hamburger-link{font-size:12px;padding:6px 8px}.hamburger-logout-btn{font-size:12px;padding:6px 10px}.hamburger-auth-disabled{font-size:11px}}.app-header{background-color:var(--header-bg);color:var(--ink);padding:22px 24px 10px}.header-content{justify-content:space-between;margin:0 auto;max-width:1212px}.header-content,.header-left{align-items:center;display:flex}.header-left{gap:16px;min-width:0}.header-logo-mark{background:linear-gradient(135deg,#22c1f1,#6366f1 45%,#c84fd8 75%,#f59e6b);border-radius:12px;box-shadow:0 6px 16px -6px #6366f199;flex-shrink:0;height:48px;position:relative;width:48px}.header-logo-mark:after{border:3px solid #fffffff2;border-radius:7px;content:"";inset:10px;position:absolute}.header-wordmark{color:var(--ink);font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1;white-space:nowrap}.header-wordmark-accent{background:linear-gradient(90deg,#9b4de0,#3b82f6);-webkit-background-clip:text;background-clip:text;color:#0000}.env-badge{background-color:var(--danger);border-radius:999px;color:#fff;font-size:13px;font-weight:700;letter-spacing:.02em;line-height:20px;padding:3px 12px}.header-user{align-items:center;display:flex;gap:12px;margin-left:auto}.theme-toggle{align-items:center;background:none;border-radius:0;border-right:1px solid var(--line);color:var(--ink-soft);display:inline-flex;height:40px;justify-content:center;margin-right:0;padding-right:12px;width:40px}.theme-toggle:hover{color:var(--ink)}.build-pill{background:var(--panel);border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);font-size:12px;font-weight:500;padding:5px 14px;white-space:nowrap}@media (max-width:767px){.app-header{padding:14px 16px 4px}.header-left{gap:10px}.header-logo-mark{border-radius:8px;height:32px;width:32px}.header-logo-mark:after{border-radius:5px;border-width:2px;inset:6px}.header-wordmark{font-size:20px}.env-badge{font-size:11px;padding:1px 8px}.build-pill{display:none}.theme-toggle{border-right:none;padding-right:0}}.device-selector{display:flex;flex-direction:column;gap:10px}.device-dropdown{position:relative;width:100%}.device-dropdown-btn{align-items:center;background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:var(--radius-field);color:var(--ink);display:flex;font-size:14px;justify-content:space-between;min-height:44px;padding:0 14px;text-align:left;width:100%}.device-dropdown-btn:hover{border-color:#bfc6d6}.dropdown-arrow{color:var(--ink-soft);font-size:10px}.device-dropdown-menu{background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 16px 40px -12px #1e295a40;left:0;margin-top:4px;max-height:360px;overflow-y:auto;padding:4px;position:absolute;right:0;top:100%;z-index:1000}.device-option{background:none;border-radius:6px;color:var(--ink);padding:10px 12px;text-align:left;width:100%}.device-option.selected,.device-option:hover{background-color:var(--brand-soft)}.device-option.selected{box-shadow:inset 3px 0 0 var(--brand)}.device-option-content{display:flex;flex-direction:column;gap:2px;min-width:0}.device-option-name{align-items:center;display:flex;font-size:14px;font-weight:500;gap:8px}.preset-badge{font-weight:400}.device-option-details,.preset-badge{color:var(--ink-faint);font-size:12px}.device-option-details{font-family:var(--font-mono)}.custom-badge{color:var(--ink-faint);font-size:12px}.device-info{display:none}.device-info-item{width:100%}.device-info-ua{background:var(--stage-a);border-radius:6px;color:var(--ink-soft);font-family:var(--font-mono);font-size:12px;line-height:1.5;padding:8px 10px;word-break:break-all}.dialog-backdrop{align-items:center;animation:dialog-fade .15s ease-out;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#0f173361;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.dialog-content{animation:dialog-rise .18s ease-out;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:0 30px 80px -24px #0f173373;display:flex;flex-direction:column;max-height:min(86vh,860px);max-width:720px;overflow:hidden;width:100%}@keyframes dialog-fade{0%{opacity:0}}@keyframes dialog-rise{0%{opacity:0;transform:translateY(8px) scale(.98)}}.dialog-header{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;gap:14px;padding:20px 20px 18px 24px}.dialog-icon{align-items:center;background:var(--brand-soft);border-radius:10px;color:var(--brand);display:inline-flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.dialog-heading{flex:1 1;min-width:0}.dialog-heading h2{color:var(--ink);font-size:19px;font-weight:700;margin:0}.dialog-heading p{color:var(--ink-soft);font-size:14px;margin:2px 0 0}.close-btn{align-items:center;background:none;border-radius:9px;color:var(--ink-soft);display:inline-flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.close-btn:hover{background:var(--stage-b);color:var(--ink)}.dialog-body{flex:1 1;overflow-y:auto;padding:8px 24px 20px}.param-group{padding-top:16px}.param-group+.param-group{border-top:1px solid var(--line);margin-top:25px}.param-group h3{color:var(--ink);font-size:13px;font-weight:600;margin:0 0 12px}.param-grid{grid-gap:14px 16px;display:grid;gap:14px 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.param-field{display:flex;flex-direction:column;gap:6px;min-width:0}.param-label-row{align-items:center;display:flex;gap:8px;justify-content:space-between;min-height:20px}.param-label{align-items:center;color:var(--ink-soft);display:inline-flex;font-size:13px;font-weight:500;gap:6px}.param-changed-dot{background:var(--brand);border-radius:50%;height:7px;width:7px}.param-input{background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:var(--radius-field);color:var(--ink);font-family:var(--font-sans);font-size:14px;height:40px;padding:0 12px;transition:border-color .15s,box-shadow .15s,background-color .15s;width:100%}.param-input::placeholder{color:var(--ink-faint)}.param-input:hover:not(:disabled){border-color:#bfc6d6}.param-input:focus{border-color:var(--brand);box-shadow:var(--focus-ring);outline:none}.param-input:disabled{background:var(--stage-b);color:var(--ink-soft);cursor:not-allowed}.param-field.changed .param-input:not(:disabled){background:color-mix(in srgb,var(--brand-soft) 45%,var(--panel-raised));border-color:color-mix(in srgb,var(--brand) 45%,var(--line-strong))}.param-auto{align-items:center;color:var(--ink-soft);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:8px;position:relative}.param-auto input{height:1px;opacity:0;position:absolute;width:1px}.param-auto-track{background:var(--line-strong);border-radius:999px;height:18px;position:relative;transition:background-color .15s;width:30px}.param-auto-track:after{background:#fff;border-radius:50%;box-shadow:0 1px 2px #0f173340;content:"";height:14px;left:2px;position:absolute;top:2px;transition:transform .15s;width:14px}.param-auto input:checked+.param-auto-track{background:var(--brand)}.param-auto input:checked+.param-auto-track:after{transform:translateX(12px)}.param-auto input:focus-visible+.param-auto-track{box-shadow:var(--focus-ring)}.dialog-footer{align-items:center;background:var(--stage-a);border-top:1px solid var(--line);display:flex;gap:10px;padding:14px 20px 14px 24px}.dialog-footer-status{color:var(--ink-faint);font-size:13px;margin-right:auto}.cancel-btn,.clear-btn,.save-btn{border-radius:var(--radius-field);font-size:14px;font-weight:500;min-height:40px;padding:0 16px;white-space:nowrap}.clear-btn{background:none;color:#c0263f;padding:0 4px}.clear-btn:hover:not(:disabled){text-decoration:underline}.clear-btn:disabled{color:var(--ink-faint)}.cancel-btn{background:var(--panel);border:1px solid var(--line-strong);color:var(--ink)}.cancel-btn:hover{background:var(--stage-b)}.save-btn{background:var(--brand-gradient);box-shadow:0 10px 20px -10px #8b3fe0bf;color:#fff;font-weight:600;padding:0 20px}.save-btn:hover:not(:disabled){filter:brightness(1.06)}.save-btn:disabled{background:var(--line);box-shadow:none;color:var(--ink-faint)}body.theme-dark .clear-btn:not(:disabled){color:#fda4af}@media (max-width:640px){.dialog-backdrop{align-items:flex-end;padding:0}.dialog-content{border-radius:18px 18px 0 0;max-height:92vh}.dialog-header{padding:16px 12px 14px 16px}.dialog-body{padding:4px 16px 16px}.param-grid{grid-template-columns:minmax(0,1fr)}.param-input{font-size:16px;height:44px}.dialog-footer{flex-wrap:wrap;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.dialog-footer-status{display:none}.clear-btn{order:3;width:100%}.cancel-btn,.save-btn{flex:1 1;min-height:44px}}.ri{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow-card);min-width:0;overflow:hidden}.ri-bar{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;min-height:60px;padding:8px 16px}.ri-tabs{background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:var(--radius-field);gap:2px;padding:3px}.ri-tab,.ri-tabs{display:inline-flex}.ri-tab{align-items:center;background:#0000;border-radius:8px;color:var(--ink-soft);font-size:13px;font-weight:500;gap:8px;min-height:34px;padding:0 12px;white-space:nowrap}.ri-tab:hover{color:var(--ink)}.ri-tab[aria-selected=true]{background:var(--brand);box-shadow:0 6px 14px -6px #4f46e5b3;color:#fff}.ri-tab[aria-selected=true] .ri-count{color:#fffc}.ri-count{font-feature-settings:"tnum";color:var(--ink-faint);font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums}.ri-text-btn{align-items:center;background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:9px;color:var(--ink);display:inline-flex;flex-shrink:0;font-size:13px;font-weight:500;gap:6px;min-height:34px;padding:0 12px;white-space:nowrap}.ri-text-btn:hover{background:var(--brand-soft);color:var(--brand)}.ri-panel{padding:12px}.ri-cards{display:flex;flex-direction:column;padding:0}.ri-card{border-bottom:1px solid var(--line)}.ri-card:last-child{border-bottom:none}.ri-card-head{align-items:center;display:flex;gap:8px;padding:6px 10px 6px 6px}.ri-card.open .ri-card-head{background:var(--stage-a)}.ri-card-toggle{align-items:flex-start;background:none;border-radius:8px;color:inherit;display:flex;flex:1 1;gap:8px;min-width:0;padding:6px;text-align:left}.ri-card-toggle:hover{background:var(--stage-b)}.ri-chevron{color:var(--ink-faint);flex-shrink:0;margin-top:1px;transform:rotate(-90deg);transition:transform .15s}.ri-card.open .ri-chevron{transform:rotate(0deg)}.ri-card-title{display:flex;flex:1 1;flex-direction:column;min-width:0}.ri-card-name{align-items:baseline;color:var(--ink);column-gap:8px;display:flex;flex-wrap:wrap;font-size:14px;font-weight:600}.ri-param-count{color:var(--ink-faint);font-weight:400}.ri-param-count,.ri-url{font-size:12px;white-space:nowrap}.ri-url{color:var(--ink-soft);font-family:var(--font-mono);margin-top:2px;overflow:hidden;text-overflow:ellipsis}.ri-pill{border-radius:999px;flex-shrink:0;font-size:12px;font-weight:500;line-height:20px;padding:2px 10px;white-space:nowrap}.ri-pill:before{background:currentColor;border-radius:50%;content:"";display:inline-block;height:6px;margin-right:6px;vertical-align:1px;width:6px}.ri-pill-ok{background:#e8f7ee;color:#0b7a3e}.ri-pill-error{background:#fdecec;color:#b42318}.ri-pill-idle{background:var(--stage-b);color:var(--ink-soft)}body.theme-dark .ri-pill-ok{background:#34d39924;color:#6ee7b7}body.theme-dark .ri-pill-error{background:#f8717129;color:#fca5a5}.ri-icon-btn{align-items:center;background:none;border-radius:8px;color:var(--ink-faint);display:inline-flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;width:32px}.ri-icon-btn:hover{background:var(--line);color:var(--ink)}.ri-params{background:var(--stage-a);margin:0;padding:4px 0 8px}.ri-param{grid-gap:12px;border-top:1px solid color-mix(in srgb,var(--line) 60%,#0000);display:grid;font-family:var(--font-mono);font-size:12.5px;gap:12px;grid-template-columns:minmax(96px,30%) minmax(0,1fr);line-height:1.5;padding:6px 16px 6px 46px}.ri-param dt{color:var(--ink-faint);overflow-wrap:anywhere}.ri-param dd{color:var(--ink);margin:0;overflow-wrap:anywhere}.ri-param dd.ri-empty{color:var(--ink-faint);font-style:italic}.ri-no-params{color:var(--ink-faint);font-size:13px;padding:10px 16px 12px 46px}.ri-code,.ri-no-params{background:var(--stage-a);margin:0}.ri-code{border:1px solid var(--line);border-radius:12px;color:var(--ink);font-family:var(--font-mono);font-size:12.5px;line-height:1.6;max-height:520px;overflow:auto;padding:14px 16px;white-space:pre-wrap;word-break:break-all}@media (max-width:767px){.ri-bar{flex-wrap:wrap;padding:8px}.ri-tabs{flex:1 1 auto}.ri-tab{flex:1 1;justify-content:center;padding:0 8px}.ri-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ri-card-head{padding-right:4px}.ri-panel{padding:8px}.ri-param{gap:0;grid-template-columns:minmax(0,1fr)}.ri-no-params,.ri-param{padding-left:16px}.ri-icon-btn,.ri-tab,.ri-text-btn{min-height:40px}.ri-icon-btn{width:40px}}.ri-alert{align-items:flex-start;background:#fef2f2;border:1px solid #f5b5b0;border-radius:12px;color:#9f1c14;display:flex;font-size:13.5px;gap:10px;line-height:1.5;margin:12px 12px 0;padding:12px 14px}.ri-alert-icon{color:#d92d20;flex-shrink:0}.ri-alert strong{color:#7a1a12;display:block;margin-bottom:2px}.ri-alert ul{margin:0;padding-left:18px}.ri-alert b{font-weight:600}.ri-card.ri-card-dup{background:#fff8f8;border:1.5px solid #e5484d;border-radius:12px;box-shadow:0 0 0 3px #e5484d1f;margin:6px 0}.ri-card.ri-card-dup:last-child{border-bottom:1.5px solid #e5484d}body.theme-dark .ri-alert{background:#f871711f;border-color:#f8717173;color:#fca5a5}body.theme-dark .ri-alert strong{color:#fecaca}body.theme-dark .ri-card.ri-card-dup{background:#f871710f}.ri-response{background:var(--stage-a);padding:0 0 12px}.ri-response-title{color:var(--ink-faint);font-size:11px;font-weight:600;letter-spacing:.06em;margin:0;padding:10px 16px 4px 46px;text-transform:uppercase}.ri-response .ri-params{padding-bottom:4px}.ri-response-body{background:var(--panel);margin:4px 16px 0 46px;max-height:360px}.ri-response .ri-no-params{padding-bottom:0;padding-top:6px}.ri-response-error{color:#b42318;font-family:var(--font-mono);font-size:12.5px;margin:0;padding:10px 16px 0 46px}body.theme-dark .ri-response-error{color:#fca5a5}.ri-icon-btn:disabled{cursor:default;opacity:.35}.ri-icon-btn:disabled:hover{background:none;color:var(--ink-faint)}.ri-empty-note{color:var(--ink-soft);font-size:13.5px;margin:0;padding:18px 16px}@media (max-width:767px){.ri-response-error,.ri-response-title{padding-left:16px}.ri-response-body{margin-left:8px;margin-right:8px}}.mpc-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.mpc-modes{flex:0 0 auto}.mpc-address{flex:1 1 280px;font-family:var(--font-mono)!important}.mpc-address[aria-invalid=true]{border-color:var(--danger)!important}.mpc-hint{align-items:center;color:var(--ink-soft);display:flex;flex-wrap:wrap;font-size:13px;gap:4px 16px}.mpc-hint code{font-family:var(--font-mono);overflow-wrap:anywhere}.mpc-error{color:var(--danger)}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#000;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:1.5;tab-size:4;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{background:#b3d4fc;text-shadow:none}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{background:#ffffff80;color:#9a6e3a}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.banner-tester{gap:24px;margin:0 auto;max-width:1260px;padding:20px 24px 40px;width:100%}.banner-tester,.bt-setup{display:flex;flex-direction:column}.bt-setup{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow-card)}.bt-bar{grid-gap:16px 20px;display:grid;gap:16px 20px;grid-template-columns:minmax(0,1fr);padding:24px 24px 20px}@media (min-width:768px){.bt-bar{align-items:end;grid-template-columns:repeat(2,minmax(0,1fr))}.bt-bar>.generate-btn,.bt-field-target{grid-column:1/-1}}@media (min-width:1100px){.bt-bar{grid-template-columns:auto minmax(220px,1fr) minmax(170px,1.2fr) minmax(190px,280px)}.bt-bar>.generate-btn,.bt-field-target{grid-column:auto}.bt-bar:not(:has(>.bt-field-target)){grid-template-columns:minmax(220px,1fr) minmax(170px,1.2fr) minmax(190px,280px)}.bt-bar:has(.target-btn:nth-child(3)):not(:has(.bt-field-device)){grid-template-columns:repeat(12,minmax(0,1fr))}.bt-bar:has(.target-btn:nth-child(3)):not(:has(.bt-field-device))>.bt-field-target{grid-column:span 6}.bt-bar:has(.target-btn:nth-child(3)):not(:has(.bt-field-device))>.bt-field-ip{grid-column:span 6}.bt-bar:has(.target-btn:nth-child(3)):not(:has(.bt-field-device))>.bt-field-user{grid-column:span 8}.bt-bar:has(.target-btn:nth-child(3)):not(:has(.bt-field-device))>.generate-btn{grid-column:span 4}.bt-bar:has(.bt-field-device){grid-template-columns:repeat(12,minmax(0,1fr))}.bt-bar:has(.bt-field-device)>.bt-field-target{grid-column:span 6}.bt-bar:has(.bt-field-device)>.bt-field-ip{grid-column:span 6}.bt-bar:has(.bt-field-device)>.bt-field-device{grid-column:span 4;order:1}.bt-bar:has(.bt-field-device)>.bt-field-user{grid-column:span 4;order:2}.bt-bar:has(.bt-field-device)>.generate-btn{grid-column:span 4;order:3}}.bt-subbar{align-items:center;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;min-height:52px;padding:6px 20px 6px 24px}.bt-setup>.bt-field{padding:4px 24px 24px}.bt-field{display:flex;flex-direction:column;gap:10px;min-width:0}.bt-label,.device-label{color:var(--ink-soft);font-size:14px;font-weight:500}input[type=text].config-input{background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:var(--radius-field);color:var(--ink);font-family:var(--font-sans);font-size:14px;height:44px;padding:0 14px;transition:border-color .15s,box-shadow .15s;width:100%}input[type=text].config-input::placeholder{color:var(--ink-faint)}input[type=text].config-input:hover{border-color:#bfc6d6}input[type=text].config-input:focus{border-color:var(--brand);box-shadow:var(--focus-ring);outline:none}.bt-input-wrap{align-items:center;display:flex;position:relative}.bt-input-icon{color:#7d869b;left:14px;pointer-events:none;position:absolute;z-index:1}input[type=text].config-input.bt-has-icon{padding-left:42px}.ip-address-container{align-items:center;display:flex;position:relative}input[type=text].ip-input{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-right:92px}input[type=text].ip-input:read-only,input[type=text].ip-input:read-only:focus,input[type=text].ip-input:read-only:hover{background:var(--stage-b);border-color:#0000;box-shadow:none;color:var(--ink);cursor:default}.ip-actions{align-items:stretch;bottom:1px;display:flex;position:absolute;right:1px;top:1px}.ip-info-wrapper{align-items:center;display:flex;padding-right:6px;position:relative}.icon-btn,.info-ip-btn{align-items:center;background:none;color:var(--brand);display:inline-flex;justify-content:center;width:42px}.info-ip-btn{border-radius:8px;height:34px;width:34px}.ip-actions>.icon-btn{border-left:1px solid var(--line-strong)}.ip-actions>.icon-btn:last-child{border-radius:0 9px 9px 0}.icon-btn:hover,.info-ip-btn:hover{background:var(--brand-soft)}.icon-btn.active{background:var(--brand);color:#fff}.flag-icon{border-radius:3px;height:16px;object-fit:cover;width:22px}.ip-info-tooltip{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px -12px #1e295a40;max-width:280px;min-width:220px;padding:12px 14px;position:absolute;right:0;top:44px;z-index:20}.ip-info-table{border-collapse:initial;border-spacing:0 4px;display:table;width:100%}.ip-info-row{display:table-row;font-size:13px}.ip-info-row .k{color:var(--ink-faint);display:table-cell;padding-right:12px;width:35%}.ip-info-row .v{color:var(--ink);display:table-cell;font-weight:500}.target-buttons{background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:var(--radius-field);display:flex;gap:2px;height:44px;padding:3px}.target-btn{background:#0000;border-radius:8px;color:var(--ink);flex:1 1 auto;font-size:15px;font-weight:500;padding:0 18px;white-space:nowrap}.target-btn:hover{background:var(--brand-soft)}.target-btn.selected{background:var(--brand);box-shadow:0 6px 14px -6px #4f46e5b3;color:#fff;font-weight:600}.target-btn.selected:before{background:var(--danger);border-radius:50%;content:"";display:inline-block;height:9px;margin-right:9px;vertical-align:1px;width:9px}.generate-btn{align-items:center;background:var(--brand-gradient);border-radius:var(--radius-field);box-shadow:0 12px 24px -12px #8b3fe0bf;color:#fff;display:inline-flex;font-size:17px;font-weight:600;gap:12px;justify-content:center;min-height:52px;padding:0 24px;white-space:nowrap}.generate-btn:hover:not(:disabled){filter:brightness(1.06) saturate(1.05)}.generate-btn:active:not(:disabled){filter:brightness(.96)}.generate-btn:disabled{background:var(--line);box-shadow:none;color:var(--ink-faint)}.loading-spinner{animation:spin .8s linear infinite;border:2px solid;border-radius:50%;border-top:2px solid #0000;height:18px;width:18px}@keyframes spin{to{transform:rotate(1turn)}}.bt-options{flex-wrap:wrap;gap:4px 24px}.bt-option,.bt-options{align-items:center;display:flex}.bt-option{gap:10px;min-height:36px}.bt-check{align-items:center;color:var(--ink);cursor:pointer;display:inline-flex;font-size:14px;gap:8px;min-height:36px}.bt-check input[type=checkbox]{accent-color:var(--brand);height:16px;width:16px}.bt-check-note{color:var(--ink-faint)}input[type=text].infinite-fifo-input{font-family:var(--font-mono);font-size:13px;height:34px;width:170px}.settings-btn{align-items:center;background:none;border-radius:8px;display:inline-flex;font-size:15px;font-weight:500;gap:8px;margin-left:auto;min-height:38px;padding:0 8px;position:relative}.settings-btn,.settings-btn svg{color:var(--ink-soft)}.settings-btn:hover,.settings-btn:hover svg{color:var(--brand)}.settings-btn.has-changes{color:var(--ink)}.bt-dot{background:var(--danger);border-radius:50%;height:8px;width:8px}.code-editor-wrapper{background:var(--stage-a);border:1px solid var(--line-strong);border-radius:12px;max-height:360px;overflow:auto}.code-editor-wrapper:focus-within{border-color:var(--brand);box-shadow:var(--focus-ring)}.code-editor-textarea{caret-color:var(--brand);color:var(--ink);min-height:180px}.code-editor-textarea textarea{outline:none}.code-editor-textarea pre,.code-editor-textarea textarea{white-space:pre-wrap!important;word-break:break-all!important}.code-editor-textarea textarea::placeholder{color:var(--ink-faint)}.bt-output{grid-gap:24px;align-items:start;display:grid;gap:24px;grid-template-columns:minmax(0,1fr)}@media (min-width:1100px){.bt-output:has(.ri){grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}.bt-stage{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow-card);display:flex;flex-direction:column;min-width:0;overflow:hidden}.bt-stage-bar{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:16px;min-height:60px;padding:8px 16px 8px 24px}.bt-stage-title{color:var(--ink);font-size:19px;font-weight:700}.bt-dims{font-feature-settings:"tnum";background:var(--stage-b);border-radius:999px;color:var(--ink-soft);font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;padding:3px 12px}.copy-tag-btn{align-items:center;background:var(--panel);border:1px solid var(--line-strong);border-radius:9px;color:var(--brand);display:inline-flex;font-size:14px;font-weight:500;gap:6px;margin-left:auto;min-height:36px;padding:0 14px}.copy-tag-btn:hover{background:var(--brand-soft)}.preview-container{align-items:center;background:radial-gradient(circle,#dce1ec 1px,#0000 1.3px) 0 0 /22px 22px,var(--stage-a);display:flex;justify-content:center;min-height:180px;padding:28px 24px}body.theme-dark .preview-container{background:radial-gradient(circle,var(--line) 1px,#0000 1.3px) 0 0 /22px 22px,var(--stage-a)}.bt-empty{color:var(--ink-soft);font-size:14px;margin:0;max-width:300px;text-align:center}.iframe-wrapper{align-items:center;display:flex;line-height:0;max-width:100%;min-height:50px;overflow-x:auto;position:relative;width:100%}.preview-iframe{background-color:initial;border:none;flex-shrink:0;margin:0 auto;vertical-align:top}.iframe-loader{align-items:center;color:var(--ink-soft);display:flex;font-size:13px;gap:10px;inset:0;justify-content:center;line-height:1.5;position:absolute;z-index:5}@media (max-width:767px){.banner-tester{gap:16px;padding:12px 12px 28px}.bt-bar{padding:18px 16px 16px}.bt-subbar{padding:6px 10px 6px 16px}.bt-setup>.bt-field{padding:0 16px 16px}input[type=text].config-input{font-size:16px}.target-buttons{-webkit-overflow-scrolling:touch;overflow-x:auto;scrollbar-width:none}.target-buttons::-webkit-scrollbar{display:none}.target-btn{flex:0 0 auto;font-size:14px;padding:0 10px}.generate-btn{min-height:52px}.settings-btn{margin-left:0;min-height:44px}.bt-check{min-height:40px}.bt-stage-bar{padding-left:16px}.preview-container{padding:16px 10px 18px}}.admin-panel{margin:0 auto;max-width:1200px;padding:20px}.admin-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.admin-header h2{margin:0}.add-btn{background-color:var(--primary-color);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;padding:10px 20px}.add-btn:hover{opacity:.9}.device-form{background:var(--surface-color);border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;margin-top:32px;padding:24px}.device-form h3{margin-top:0}.form-row{gap:8px;margin-bottom:16px}.form-row,.form-row label{display:flex;flex-direction:column}.form-row label{font-weight:600;margin-bottom:8px}.form-row input,.form-row select,.form-row textarea{border:1px solid var(--border-color);border-radius:10px;font-size:14px;margin-top:8px;padding:8px}.form-actions{display:flex;gap:12px;margin-top:24px}.add-device-btn{background-color:var(--primary-color);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:filter .2s}.add-device-btn:hover{filter:brightness(.95)}.cancel-btn{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:10px;color:var(--text-color);cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s}.cancel-btn:hover{background-color:var(--background-color);filter:brightness(.8)}.devices-list{background:var(--surface-color);border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:24px}.devices-list h3{margin-top:0}.devices-table{border:1px solid var(--border-color);border-collapse:initial;border-radius:12px;border-spacing:0;overflow:hidden;width:100%}.devices-table td,.devices-table th{border-bottom:1px solid var(--border-color);padding:12px;text-align:left}.devices-table th{background-color:var(--background-color);font-weight:600}.devices-table tbody tr:last-child td{border-bottom:none}.user-agent-cell{font-family:var(--font-mono);font-size:13px;max-width:600px;white-space:normal;word-break:break-word}.actions-cell{white-space:nowrap;width:100px}.icon-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;justify-content:center;margin-right:4px;padding:6px 8px;transition:opacity .2s}.icon-btn:hover{opacity:.8}.edit-btn-small{background-color:var(--secondary-color);color:#fff}.delete-btn-small{background-color:#f44336;color:#fff}.preset-text{background-color:var(--background-color);border-radius:6px;color:#9e9e9e;display:inline-block;font-size:10px;font-weight:600;letter-spacing:.5px;padding:6px 8px;text-transform:uppercase}@media (max-width:768px){.admin-panel{padding:12px}.admin-header{align-items:flex-start;flex-direction:column;gap:12px}.admin-header h2{font-size:20px}.add-btn{padding:12px;width:100%}.device-form{padding:16px}.form-row{grid-template-columns:1fr}.devices-list{overflow-x:auto;padding:16px}.devices-list h3{font-size:18px}.devices-table{display:block;overflow-x:auto;white-space:nowrap}.devices-table thead{display:none}.devices-table tbody,.devices-table tr{display:block}.devices-table tr{background:var(--background-color);border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px;padding:12px}.devices-table td{border:none;display:block;padding:8px 0;text-align:left}.devices-table td:before{color:var(--text-color);content:attr(data-label);display:block;font-size:12px;font-weight:600;margin-bottom:4px;text-transform:uppercase}.user-agent-cell{font-size:11px;max-width:100%;white-space:normal;word-break:break-all}.actions-cell{display:flex;gap:8px;width:100%}.icon-btn{flex:1 1;padding:10px}}.tag-editor-container{font-family:var(--font-sans);margin:0 auto;max-width:1400px;padding:32px 24px}.tag-editor-container .target-section{margin-bottom:24px}.tag-editor-container .target-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.tag-editor-container .target-label{color:var(--text-color);font-size:14px;font-weight:600;letter-spacing:-.01em;margin:0}.tag-editor-container .target-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:flex-start}.tag-editor-container .target-btn{background:var(--surface-color);border:1px solid var(--border-color);border-radius:10px;color:var(--text-color);cursor:pointer;flex:0 0 auto;font-family:var(--font-sans);font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.tag-editor-container .target-btn:hover:not(:disabled){background-color:var(--background-color);border-color:var(--border-color)}.tag-editor-container .target-btn.selected{background-color:#0000000a;border-color:var(--primary-color);color:var(--primary-color);font-weight:600}.tag-editor-container .target-btn:disabled{cursor:not-allowed;opacity:.5}.tag-editor-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:32px}.tag-editor-header h1{color:var(--text-color);font-family:var(--font-sans);font-size:28px;font-weight:600;margin:0}.new-tag-btn-icon{align-items:center;background-color:var(--primary-color);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.new-tag-btn-icon:hover:not(:disabled){filter:brightness(.95);transform:scale(1.05)}.new-tag-btn-icon:disabled{cursor:not-allowed;opacity:.5}.new-tag-dialog-backdrop{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.new-tag-dialog{background:var(--surface-color);border-radius:12px;box-shadow:0 8px 24px #091e4226;max-width:500px;padding:24px;width:90%}.new-tag-dialog h3{color:var(--text-color);font-family:var(--font-sans);font-size:20px;font-weight:600;margin:0 0 20px}.dialog-form{display:flex;flex-direction:column;gap:16px}.dialog-form label{display:flex;flex-direction:column;font-weight:600;gap:8px}.dialog-form input,.dialog-form label{color:var(--text-color);font-family:var(--font-sans);font-size:14px}.dialog-form input{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:10px;padding:10px 12px}.dialog-form input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #0000000f;outline:none}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.dialog-actions button{border:none;border-radius:10px;cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s}.dialog-cancel{background-color:var(--background-color);border:1px solid var(--border-color);color:var(--text-color)}.dialog-cancel:hover{background-color:#0000000d}.dialog-create{background-color:var(--primary-color);color:#fff}.dialog-create:hover:not(:disabled){filter:brightness(.95)}.dialog-create:disabled{cursor:not-allowed;opacity:.5}.new-tag-actions button:first-child{background-color:var(--primary-color);color:#fff}.new-tag-actions button:last-child{background-color:var(--background-color);border:1px solid var(--border-color);color:var(--text-color)}.new-tag-actions button:hover:not(:disabled){filter:brightness(.95)}.new-tag-actions button:disabled{cursor:not-allowed;opacity:.5}.tag-editor-content{background:var(--surface-color);border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.filename-section{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.filename-label{font-weight:600;letter-spacing:-.01em}.filename-display,.filename-label{color:var(--text-color);font-size:14px}.filename-display{background:#00000008;border:1px solid var(--border-color);border-radius:10px;font-family:var(--font-mono);padding:10px 16px}.tag-selector-section{margin-bottom:24px}.tag-selector-label{color:var(--text-color);display:block;font-weight:600;margin-bottom:8px}.tag-selector,.tag-selector-label{font-family:var(--font-sans);font-size:14px}.tag-selector{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;padding:10px 12px;width:100%}.tag-selector:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #0000000f;outline:none}.tag-selector:disabled{cursor:not-allowed;opacity:.5}.code-editor-section{margin-bottom:24px}.code-editor-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.code-editor-title{color:var(--text-color);font-family:var(--font-sans);font-size:14px;font-weight:600}.unsaved-indicator{color:#ff9800;font-family:var(--font-sans);font-size:13px;font-weight:500}.code-editor-wrapper-large{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.code-editor-wrapper-large .code-editor-textarea{max-height:600px;overflow:auto!important}.tag-editor-actions{align-items:center;justify-content:space-between;margin-bottom:16px}.tag-actions-left,.tag-editor-actions{display:flex;gap:12px}.load-file-btn{align-items:center;background-color:#2196f3;border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:14px;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s}.load-file-btn:hover{filter:brightness(.95)}.upload-tag-btn{align-items:center;background-color:#4caf50;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-family:var(--font-sans);font-size:14px;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s}.upload-tag-btn:hover:not(:disabled){filter:brightness(.95)}.upload-tag-btn:disabled{background-color:var(--border-color);color:#0006;cursor:not-allowed}.tag-editor-note{background-color:#e3f2fd;border:1px solid #2196f3;border-radius:10px;color:#0d47a1;font-family:var(--font-sans);font-size:13px;line-height:1.5;padding:16px}.tag-editor-note strong{font-weight:600}.tag-editor-note code{background-color:#0000001a;border-radius:4px;font-family:var(--font-mono);font-size:12px;padding:2px 6px}.tag-editor-note ol{line-height:1.6}.tag-editor-note ol li{margin-bottom:4px}.target-urls-section{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.target-url-row{display:flex;flex-direction:column;gap:6px}.target-url-input{background:var(--surface-color);border:1px solid var(--border-color);border-radius:10px;color:var(--text-color);font-family:var(--font-mono);font-size:14px;min-width:0;padding:10px 16px}.shared-tag-note{color:var(--text-color);font-size:13px;opacity:.7}.tag-history-container{margin:0 auto;max-width:1400px;padding:32px 24px}.tag-history-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:32px}.tag-history-header h1{color:var(--text-color);font-family:var(--font-sans);font-size:28px;font-weight:600;letter-spacing:-.02em;margin:0}.tag-history-actions{display:flex;gap:12px}.export-btn,.refresh-btn{border:none;border-radius:10px;cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.refresh-btn{background-color:var(--primary-color);color:#fff}.export-btn{background-color:#4caf50;color:#fff}.export-btn:hover:not(:disabled),.refresh-btn:hover:not(:disabled){filter:brightness(.95)}.export-btn:disabled,.refresh-btn:disabled{cursor:not-allowed;opacity:.5}.tag-history-content{background:var(--surface-color);border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:16px;padding:24px}.loading-state{color:#0009;font-family:var(--font-sans);font-size:14px;padding:40px;text-align:center}.empty-state{padding:60px 20px;text-align:center}.empty-state p{color:var(--text-color);font-family:var(--font-sans);font-size:16px;margin:8px 0}.empty-state-note{color:#0009;font-size:14px}.history-table-wrapper{overflow-x:auto}.history-table{border:1px solid var(--border-color);border-collapse:initial;border-radius:12px;border-spacing:0;overflow:hidden;width:100%}.history-table thead{background-color:var(--background-color)}.history-table th{border-bottom:2px solid var(--border-color);font-size:13px;font-weight:600;padding:12px 16px;text-align:left}.history-table td,.history-table th{color:var(--text-color);font-family:var(--font-sans)}.history-table td{border-bottom:1px solid var(--border-color);font-size:14px;padding:14px 16px}.history-table tbody tr:hover{background-color:var(--background-color)}.history-table tbody tr:last-child td{border-bottom:none}.timestamp-cell{font-family:var(--font-mono);font-size:13px;white-space:nowrap}.user-cell{font-weight:500}.email-cell{color:#000000b3;font-size:13px}.tag-cell{font-weight:500;max-width:600px;white-space:normal;word-break:break-word}.action-cell{text-align:left}.action-badge{border-radius:10px;display:inline-block;font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.02em;padding:6px 14px;text-transform:uppercase}.action-created{background-color:#4caf501f;color:#2e7d32}.action-updated{background-color:#2196f31f;color:#1565c0}.access-denied{padding:60px 20px;text-align:center}.access-denied h2{color:#f44336;margin-bottom:12px}.access-denied p{color:var(--text-color)}.App{background-color:var(--paper);display:flex;flex-direction:column;isolation:isolate;min-height:100vh;overflow-x:hidden;position:relative}.App:after,.App:before{content:"";inset:0;pointer-events:none;position:fixed;z-index:-1}.App:before{background:radial-gradient(circle 150px at 0 0,#d3e6ff 0 70%,#d3e6ff00 100%),radial-gradient(circle 170px at 100% 0,#e4d9fd 0 68%,#e4d9fd00 100%),radial-gradient(ellipse 420px 240px at 0 100%,#dce7ff 0 55%,#dce7ff00 100%),radial-gradient(ellipse 380px 300px at 100% 100%,#f4d3ee 0 50%,#e9d5ff99 70%,#e9d5ff00 100%)}.App:after{background:radial-gradient(circle,#cbd2e1 1.4px,#0000 1.6px) 0 0 /30px 30px;-webkit-mask:linear-gradient(#000 0 0) 0 22% /96px 150px no-repeat,linear-gradient(#000 0 0) 100% 56% /96px 120px no-repeat;mask:linear-gradient(#000 0 0) 0 22% /96px 150px no-repeat,linear-gradient(#000 0 0) 100% 56% /96px 120px no-repeat}body.theme-dark .App:before{opacity:.18}body.theme-dark .App:after{opacity:.25}@media (max-width:767px){.App:after{display:none}}