/* Invitation layout is selected in the head before the first paint. */
html[data-invitation] #client-download-section { display: none; }

*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-bottom-2{bottom:-.5rem}.-right-1{right:-.25rem}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.mx-auto{margin-left:auto;margin-right:auto}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-20{height:5rem}.h-3{height:.75rem}.h-48{height:12rem}.h-8{height:2rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-20{width:5rem}.w-48{width:12rem}.w-8{width:2rem}.w-full{width:100%}.max-w-6xl{max-width:72rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.select-none{}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.text-wrap{text-wrap:wrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-\[\#229ED9\]\/20{border-color:rgba(34,158,217,.2)}.border-blue-500\/30{border-color:rgba(59,130,246,.3)}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.border-slate-700\/50{border-color:rgba(51,65,85,.5)}.border-slate-800\/50{border-color:rgba(30,41,59,.5)}.border-transparent{border-color:transparent}.bg-\[\#147cfc\]{--tw-bg-opacity:1;background-color:rgb(20 124 252/var(--tw-bg-opacity,1))}.bg-\[\#229ED9\]\/10{background-color:rgba(34,158,217,.1)}.bg-\[\#8b5cf6\]{--tw-bg-opacity:1;background-color:rgb(139 92 246/var(--tw-bg-opacity,1))}.bg-blue-500\/20{background-color:rgba(59,130,246,.2)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-600\/80{background-color:rgba(37,99,235,.8)}.bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-500\/10{background-color:rgba(34,197,94,.1)}.bg-green-600\/90{background-color:rgba(22,163,74,.9)}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-pink-500\/20{background-color:rgba(236,72,153,.2)}.bg-purple-500\/20{background-color:rgba(168,85,247,.2)}.bg-purple-900{--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-500\/10{background-color:rgba(239,68,68,.1)}.bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-800\/40{background-color:rgba(30,41,59,.4)}.bg-slate-800\/80{background-color:rgba(30,41,59,.8)}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-600\/10{--tw-gradient-from:rgba(37,99,235,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(37,99,235,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-600\/10{--tw-gradient-from:rgba(147,51,234,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(147,51,234,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-sky-400{--tw-gradient-from:#38bdf8 var(--tw-gradient-from-position);--tw-gradient-to:rgba(56,189,248,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-pink-600\/10{--tw-gradient-to:rgba(219,39,119,.1) var(--tw-gradient-to-position)}.to-purple-600\/10{--tw-gradient-to:rgba(147,51,234,.1) var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1\.5{padding:.375rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-12{padding-bottom:3rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-wide{letter-spacing:.025em}.text-\[\#229ED9\]{--tw-text-opacity:1;color:rgb(34 158 217/var(--tw-text-opacity,1))}.text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-pink-400{--tw-text-opacity:1;color:rgb(244 114 182/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-800\/40{color:rgba(30,41,59,.4)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.mix-blend-multiply{mix-blend-mode:multiply}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-blue-500\/10{--tw-shadow-color:rgba(59,130,246,.1);--tw-shadow:var(--tw-shadow-colored)}.shadow-blue-500\/20{--tw-shadow-color:rgba(59,130,246,.2);--tw-shadow:var(--tw-shadow-colored)}.shadow-blue-600\/20{--tw-shadow-color:rgba(37,99,235,.2);--tw-shadow:var(--tw-shadow-colored)}.shadow-green-500\/20{--tw-shadow-color:rgba(34,197,94,.2);--tw-shadow:var(--tw-shadow-colored)}.shadow-purple-500\/30{--tw-shadow-color:rgba(168,85,247,.3);--tw-shadow:var(--tw-shadow-colored)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:scale-\[1\.01\]:hover{--tw-scale-x:1.01;--tw-scale-y:1.01}.hover\:scale-\[1\.01\]:hover,.hover\:scale-\[1\.02\]:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02}.hover\:border-slate-600:hover{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.hover\:border-white:hover{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.hover\:bg-\[\#229ED9\]:hover{--tw-bg-opacity:1;background-color:rgb(34 158 217/var(--tw-bg-opacity,1))}.hover\:bg-blue-500:hover{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.hover\:bg-green-500:hover{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.hover\:bg-slate-600:hover{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.hover\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\:bg-slate-700\/60:hover{background-color:rgba(51,65,85,.6)}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-pink-600:hover{--tw-text-opacity:1;color:rgb(219 39 119/var(--tw-text-opacity,1))}.hover\:text-purple-600:hover{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-blue-500\/10:hover{--tw-shadow-color:rgba(59,130,246,.1);--tw-shadow:var(--tw-shadow-colored)}.hover\:shadow-blue-500\/40:hover{--tw-shadow-color:rgba(59,130,246,.4);--tw-shadow:var(--tw-shadow-colored)}.hover\:shadow-purple-500\/10:hover{--tw-shadow-color:rgba(168,85,247,.1);--tw-shadow:var(--tw-shadow-colored)}.hover\:shadow-purple-500\/50:hover{--tw-shadow-color:rgba(168,85,247,.5);--tw-shadow:var(--tw-shadow-colored)}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}.active\:scale-95:active,.group:hover .group-hover\:translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-1{--tw-translate-x:0.25rem}.group:hover .group-hover\:rotate-12{--tw-rotate:12deg}.group:hover .group-hover\:rotate-12,.group:hover .group-hover\:scale-105{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.group:hover .group-hover\:animate-bounce{animation:bounce 1s infinite}.group:hover .group-hover\:bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.group:hover .group-hover\:bg-pink-500{--tw-bg-opacity:1;background-color:rgb(236 72 153/var(--tw-bg-opacity,1))}.group:hover .group-hover\:bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.group:hover .group-hover\:text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.group:hover .group-hover\:text-pink-200{--tw-text-opacity:1;color:rgb(251 207 232/var(--tw-text-opacity,1))}.group:hover .group-hover\:text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.group:hover .group-hover\:text-slate-700\/40{color:rgba(51,65,85,.4)}.group:hover .group-hover\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.group:hover .group-hover\:opacity-100{opacity:1}@media (min-width:640px){.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:p-4{padding:1rem}}@media (min-width:768px){.md\:col-span-3{grid-column:span 3/span 3}.md\:w-auto{width:auto}.md\:flex-none{flex:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:justify-end{justify-content:flex-end}.md\:gap-12{gap:3rem}.md\:gap-2{gap:.5rem}.md\:self-auto{align-self:auto}.md\:border-b-0{border-bottom-width:0}.md\:p-3\.5{padding:.875rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:pb-0{padding-bottom:0}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:1024px){.lg\:col-span-12{grid-column:span 12/span 12}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-9{grid-column:span 9/span 9}.lg\:block{display:block}.lg\:h-9{height:2.25rem}.lg\:w-9{width:2.25rem}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:gap-3{gap:.75rem}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1280px){.xl\:inline-block{display:inline-block}}



        body { 
            font-family: 'Inter', sans-serif;
            background-color: #0f172a; 
            color: #e2e8f0; 
            overflow-x: hidden; 
            /* 防复制与防选择机制 */
            
            
            
            
            
        }

        /* 动态背景 */
        .bg-glow { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; background: radial-gradient(circle at 50% 0%, #1e1b4b 0%, #0f172a 60%); }
        .blob { position: absolute; filter: blur(45px); opacity: 0.5; animation: move 20s infinite alternate; will-change: transform; }
        @keyframes move { 0% { transform: translate(0, 0) scale(2); } 100% { transform: translate(50px, 30px) scale(2); } }
        
        /* 玻璃卡片 */
        .glass-panel { background: rgba(30, 41, 59, 0.4); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.08); transition: all 0.2s ease; }

        /* 线路卡片优化 */
        .node-card { background: rgba(30, 41, 59, 0.6); border: 1px solid rgba(255, 255, 255, 0.05); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; position: relative; overflow: hidden; min-height: 80px; }
        .node-card:hover { background: rgba(51, 65, 85, 0.8); border-color: rgba(255, 255, 255, 0.2); transform: translateY(-2px); box-shadow: 0 4px 20px rgba(0,0,0,0.3); }
        .node-card.fastest { border-color: #22c55e; box-shadow: 0 0 15px rgba(34, 197, 94, 0.15); }
        .node-card.offline { border-color: #ef4444; opacity: 0.7; }

        /* 骨架屏动画 */
        .skeleton-text {
            color: transparent !important;
            background: linear-gradient(90deg, #334155 25%, #475569 50%, #334155 75%);
            background-size: 200% 100%; border-radius: 4px; animation: skeleton-loading 1.5s infinite; display: inline-block; width: 60px;
        }
        @keyframes skeleton-loading {
            0% { background-position: 200% 0; }
            100% { background-position: -200% 0; }
        }

        /* 域名卡片 */
        .domain-card { background: rgba(30, 41, 59, 0.7); border: 1px solid rgba(255, 255, 255, 0.1); transition: all 0.2s; }
        .domain-card:hover { background: rgba(59, 130, 246, 0.15); border-color: rgba(59, 130, 246, 0.4); transform: translateY(-2px); }

        /* 商务按钮动画 */
        .biz-btn { background: linear-gradient(90deg, #ec4899, #8b5cf6); background-size: 200% 200%; animation: gradientMove 3s ease infinite; }
        @keyframes gradientMove { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }

        .ping-dot { width: 6px; height: 6px; border-radius: 50%; box-shadow: 0 0 8px currentColor; }
        
        .timer-bar { height: 2px; background: #3b82f6; width: 100%; position: absolute; bottom: 0; left: 0; transition: width 1s linear; opacity: 0.5; }

        /* Toast 提示框 */
        .toast-container { position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%) translateY(20px); background: rgba(15, 23, 42, 0.95); border: 1px solid rgba(255,255,255,0.1); color: white; padding: 12px 24px; border-radius: 50px; box-shadow: 0 10px 25px rgba(0,0,0,0.5); display: flex; align-items: center; gap: 10px; z-index: 10000; opacity: 0; visibility: hidden; transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
        .toast-container.show { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }

        /* 微信引导遮罩层 */
        .wx-overlay { position: fixed; inset: 0; z-index: 9999; background: rgba(15, 23, 42, 0.95); backdrop-filter: blur(10px); display: flex; flex-direction: column; align-items: center; justify-content: center; }
        .guide-arrow { position: absolute; top: 2rem; right: 2rem; animation: arrowMove 1.5s infinite; }
        @keyframes arrowMove { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-10px, 10px); } }

        .language-switcher { position: relative; flex: 0 0 auto; }
        .language-toggle { min-width: 44px; height: 36px; }
        .language-menu {
            position: absolute;
            top: calc(100% + 10px);
            right: 0;
            width: min(220px, calc(100vw - 32px));
            padding: 8px;
            border-radius: 14px;
            background: rgba(15, 23, 42, 0.96);
            border: 1px solid rgba(148, 163, 184, 0.22);
            box-shadow: 0 18px 45px rgba(0, 0, 0, 0.38);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            z-index: 1000;
            opacity: 0;
            visibility: hidden;
            transform: translateY(-6px);
            transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
        }
        .language-switcher.open .language-menu { opacity: 1; visibility: visible; transform: translateY(0); }
        .language-option {
            width: 100%;
            min-height: 38px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 8px 10px;
            color: #cbd5e1;
            font-size: 13px;
            text-align: left;
            transition: background 0.18s ease, color 0.18s ease;
        }
        .language-option:hover,
        .language-option:focus-visible,
        .language-option.active { background: rgba(59, 130, 246, 0.18); color: #ffffff; }
        .language-option:focus-visible { outline: 2px solid rgba(96, 165, 250, 0.75); outline-offset: 1px; }
        .language-option.active { box-shadow: inset 0 0 0 1px rgba(96, 165, 250, 0.32); }
        .language-flag { width: 24px; display: inline-flex; justify-content: center; font-size: 16px; line-height: 1; flex: 0 0 24px; }
        .language-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }


        /* 主题模式：沿用原有玻璃质感，仅切换明暗配色，不改变页面结构 */
        .theme-switcher { position: relative; flex: 0 0 auto; }
        .theme-toggle { min-width: 44px; height: 36px; }
        .theme-menu {
            position: absolute;
            top: calc(100% + 10px);
            right: 0;
            width: min(190px, calc(100vw - 32px));
            padding: 8px;
            border-radius: 14px;
            background: rgba(15, 23, 42, 0.96);
            border: 1px solid rgba(148, 163, 184, 0.22);
            box-shadow: 0 18px 45px rgba(0, 0, 0, 0.38);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            z-index: 1000;
            opacity: 0;
            visibility: hidden;
            transform: translateY(-6px);
            transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
        }
        .theme-switcher.open .theme-menu { opacity: 1; visibility: visible; transform: translateY(0); }
        .theme-option {
            width: 100%;
            min-height: 38px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 8px 10px;
            color: #cbd5e1;
            font-size: 13px;
            text-align: left;
            transition: background 0.18s ease, color 0.18s ease;
        }
        .theme-option:hover,
        .theme-option:focus-visible,
        .theme-option.active { background: rgba(59, 130, 246, 0.18); color: #ffffff; }
        .theme-option:focus-visible { outline: 2px solid rgba(96, 165, 250, 0.75); outline-offset: 1px; }
        .theme-option.active { box-shadow: inset 0 0 0 1px rgba(96, 165, 250, 0.32); }
        .theme-option-icon { width: 24px; display: inline-flex; justify-content: center; font-size: 14px; line-height: 1; flex: 0 0 24px; }
        .theme-option-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

        /* Lightweight compositor-only theme transition; avoids animating every DOM node. */
        html {
            --wy-theme-transition-overlay: rgba(248, 250, 252, 0.14);
            --wy-theme-transition-strength: 0.18;
        }
        html.wy-theme-transitioning {
            isolation: isolate;
        }
        html.wy-theme-transitioning::after {
            content: "";
            position: fixed;
            inset: 0;
            z-index: 2147483000;
            pointer-events: none;
            background: var(--wy-theme-transition-overlay);
            opacity: 0;
            contain: strict;
            transform: translateZ(0);
            will-change: opacity;
        }
        html.wy-theme-transitioning.wy-theme-transition-a::after {
            animation: wy-theme-soft-fade-a 220ms cubic-bezier(0.22, 1, 0.36, 1) both;
        }
        html.wy-theme-transitioning.wy-theme-transition-b::after {
            animation: wy-theme-soft-fade-b 220ms cubic-bezier(0.22, 1, 0.36, 1) both;
        }
        html.wy-theme-transitioning body *,
        html.wy-theme-transitioning body *::before,
        html.wy-theme-transitioning body *::after {
            transition-duration: 0s !important;
            transition-delay: 0s !important;
        }
        @keyframes wy-theme-soft-fade-a {
            0% { opacity: var(--wy-theme-transition-strength); }
            100% { opacity: 0; }
        }
        @keyframes wy-theme-soft-fade-b {
            0% { opacity: var(--wy-theme-transition-strength); }
            100% { opacity: 0; }
        }
        @media (max-width: 767px) {
            html { --wy-theme-transition-strength: 0.13; }
            html.wy-theme-transitioning.wy-theme-transition-a::after,
            html.wy-theme-transitioning.wy-theme-transition-b::after { animation-duration: 180ms; }
        }
        @media (prefers-reduced-motion: reduce) {
            html.wy-theme-transitioning::after { display: none !important; }
        }
        html[data-color-theme="light"] {
            --wy-light-canvas: #f2f5fa;
            --wy-light-surface: rgba(255, 255, 255, 0.82);
            --wy-light-surface-strong: rgba(255, 255, 255, 0.94);
            --wy-light-ink: #172033;
            --wy-light-text: #3f4c61;
            --wy-light-muted: #69778d;
            --wy-light-line: rgba(100, 116, 139, 0.2);
            --wy-light-blue: #2563eb;
            background-color: var(--wy-light-canvas);
        }
        html[data-color-theme="light"] body {
            background-color: var(--wy-light-canvas);
            color: var(--wy-light-text);
        }
        html[data-color-theme="light"] .bg-glow {
            background:
                radial-gradient(ellipse 72% 48% at 50% -8%, rgba(99, 102, 241, 0.16) 0%, rgba(99, 102, 241, 0.045) 46%, transparent 72%),
                radial-gradient(circle at 8% 28%, rgba(14, 165, 233, 0.09) 0%, transparent 31%),
                radial-gradient(circle at 92% 76%, rgba(168, 85, 247, 0.075) 0%, transparent 30%),
                linear-gradient(180deg, #f8faff 0%, #f3f6fb 42%, #eef3f8 100%);
        }
        html[data-color-theme="light"] .blob {
            filter: blur(72px);
            opacity: 0.13;
            mix-blend-mode: normal;
        }
        html[data-color-theme="light"] .blob.bg-blue-900 { background-color: #60a5fa !important; }
        html[data-color-theme="light"] .blob.bg-purple-900 { background-color: #a78bfa !important; }

        html[data-color-theme="light"] .glass-panel {
            background: linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(248, 250, 252, 0.74));
            border-color: rgba(148, 163, 184, 0.22);
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.96),
                0 20px 45px -34px rgba(15, 23, 42, 0.4),
                0 8px 20px -18px rgba(37, 99, 235, 0.2);
        }
        html[data-color-theme="light"] .status-banner {
            background:
                linear-gradient(120deg, rgba(255, 255, 255, 0.95), rgba(247, 250, 255, 0.82)),
                radial-gradient(circle at 0 0, rgba(59, 130, 246, 0.08), transparent 42%);
            border-color: rgba(125, 146, 177, 0.22);
            box-shadow:
                inset 0 1px 0 #ffffff,
                0 22px 52px -38px rgba(15, 23, 42, 0.44),
                0 10px 24px -22px rgba(37, 99, 235, 0.3);
        }
        html[data-color-theme="light"] .business-panel {
            background: linear-gradient(150deg, rgba(255, 255, 255, 0.96), rgba(245, 247, 252, 0.84));
        }
        html[data-color-theme="light"][data-invitation] #primary-layout .community-panel {
            background: linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(244, 248, 253, 0.8));
        }

        html[data-color-theme="light"] .node-card {
            background: linear-gradient(145deg, rgba(255, 255, 255, 0.93), rgba(246, 249, 253, 0.82));
            border-color: rgba(125, 146, 177, 0.18);
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.95),
                0 13px 26px -24px rgba(15, 23, 42, 0.42);
        }
        html[data-color-theme="light"] .node-card:hover {
            background: linear-gradient(145deg, #ffffff, #f6f9ff);
            border-color: rgba(59, 130, 246, 0.34);
            box-shadow:
                inset 0 1px 0 #ffffff,
                0 18px 34px -25px rgba(30, 64, 175, 0.34),
                0 7px 16px -13px rgba(15, 23, 42, 0.22);
        }
        html[data-color-theme="light"] .node-card.fastest {
            background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(240, 253, 244, 0.88));
            border-color: rgba(34, 197, 94, 0.58);
            box-shadow:
                inset 0 1px 0 #ffffff,
                0 0 0 1px rgba(34, 197, 94, 0.06),
                0 18px 34px -26px rgba(22, 163, 74, 0.38);
        }
        html[data-color-theme="light"] .node-card.offline {
            background: linear-gradient(145deg, rgba(255, 255, 255, 0.86), rgba(254, 242, 242, 0.74));
            border-color: rgba(239, 68, 68, 0.3);
            opacity: 0.78;
        }
        html[data-color-theme="light"] .node-card [class~="text-slate-800/40"] { color: rgba(100, 116, 139, 0.18) !important; }
        html[data-color-theme="light"] .node-card:hover [class~="group-hover:text-slate-700/40"] { color: rgba(59, 130, 246, 0.15) !important; }

        html[data-color-theme="light"] .domain-card {
            background: linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(247, 250, 254, 0.84));
            border-color: rgba(125, 146, 177, 0.2);
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.96),
                0 15px 30px -28px rgba(15, 23, 42, 0.44);
        }
        html[data-color-theme="light"] .domain-card:hover {
            background: linear-gradient(145deg, #ffffff, #f2f7ff);
            border-color: rgba(59, 130, 246, 0.34);
            box-shadow:
                inset 0 1px 0 #ffffff,
                0 20px 38px -28px rgba(30, 64, 175, 0.28);
        }
        html[data-color-theme="light"] .domain-card > div > div:first-child,
        html[data-color-theme="light"] .domain-card > div > div[class*="bg-"] {
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 8px 18px -12px currentColor;
        }
        html[data-color-theme="light"] .domain-card > button {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(238, 243, 249, 0.94)) !important;
            border-color: rgba(125, 146, 177, 0.28) !important;
            color: #5b6b82 !important;
            box-shadow: inset 0 1px 0 #ffffff, 0 5px 12px -10px rgba(15, 23, 42, 0.5);
        }
        html[data-color-theme="light"] .domain-card > button:hover {
            background: #ffffff !important;
            border-color: rgba(59, 130, 246, 0.34) !important;
            color: #2563eb !important;
            box-shadow: 0 7px 16px -12px rgba(37, 99, 235, 0.48);
        }

        html[data-color-theme="light"] .header-actions > button:not([class*="bg-green-"]):not([class*="bg-blue-600"]),
        html[data-color-theme="light"] .theme-toggle,
        html[data-color-theme="light"] .language-toggle {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(237, 242, 248, 0.9)) !important;
            border-color: rgba(125, 146, 177, 0.26) !important;
            color: #41516a !important;
            box-shadow: inset 0 1px 0 #ffffff, 0 7px 16px -14px rgba(15, 23, 42, 0.52);
        }
        html[data-color-theme="light"] .header-actions > button:not([class*="bg-green-"]):not([class*="bg-blue-600"]):hover,
        html[data-color-theme="light"] .theme-toggle:hover,
        html[data-color-theme="light"] .language-toggle:hover {
            background: linear-gradient(180deg, #ffffff, #eaf0f7) !important;
            border-color: rgba(59, 130, 246, 0.32) !important;
            color: #1d4ed8 !important;
            box-shadow: inset 0 1px 0 #ffffff, 0 10px 20px -15px rgba(37, 99, 235, 0.38);
        }
        html[data-color-theme="light"] button[onclick="visitFastestNode()"] {
            background: linear-gradient(135deg, #16a34a, #22c55e) !important;
            border: 1px solid rgba(21, 128, 61, 0.28);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), 0 12px 24px -16px rgba(22, 163, 74, 0.72);
        }
        html[data-color-theme="light"] button[onclick="checkAllNodes()"] {
            background: linear-gradient(135deg, #2563eb, #3b82f6) !important;
            border: 1px solid rgba(29, 78, 216, 0.24);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 12px 24px -16px rgba(37, 99, 235, 0.68);
        }
        html[data-color-theme="light"] button[onclick="visitFastestNode()"]:hover,
        html[data-color-theme="light"] button[onclick="checkAllNodes()"]:hover {
            filter: saturate(1.04) brightness(1.03);
        }
        html[data-color-theme="light"] header img {
            box-shadow: 0 10px 24px -14px rgba(37, 99, 235, 0.58), 0 0 0 1px rgba(255, 255, 255, 0.78);
        }

        html[data-color-theme="light"] #client-download-section .space-y-2 > a {
            background: linear-gradient(180deg, rgba(250, 252, 255, 0.94), rgba(239, 244, 250, 0.86)) !important;
            border-color: rgba(125, 146, 177, 0.16) !important;
            box-shadow: inset 0 1px 0 #ffffff;
        }
        html[data-color-theme="light"] #client-download-section .space-y-2 > a:hover {
            background: linear-gradient(180deg, #ffffff, #edf4ff) !important;
            border-color: rgba(59, 130, 246, 0.28) !important;
            box-shadow: 0 10px 20px -17px rgba(37, 99, 235, 0.42);
        }
        html[data-color-theme="light"] .community-links a {
            background: linear-gradient(145deg, rgba(240, 249, 255, 0.92), rgba(224, 242, 254, 0.72)) !important;
            border-color: rgba(14, 165, 233, 0.24) !important;
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
        }
        html[data-color-theme="light"] .community-links a:hover {
            background: linear-gradient(135deg, #229ed9, #0ea5e9) !important;
            border-color: rgba(2, 132, 199, 0.46) !important;
            box-shadow: 0 12px 24px -17px rgba(2, 132, 199, 0.62);
        }

        html[data-color-theme="light"] .language-menu,
        html[data-color-theme="light"] .theme-menu {
            background: linear-gradient(155deg, rgba(255, 255, 255, 0.98), rgba(246, 249, 253, 0.96));
            border-color: rgba(125, 146, 177, 0.24);
            box-shadow:
                inset 0 1px 0 #ffffff,
                0 24px 52px -30px rgba(15, 23, 42, 0.46),
                0 10px 24px -20px rgba(37, 99, 235, 0.24);
        }
        html[data-color-theme="light"] .language-option,
        html[data-color-theme="light"] .theme-option { color: #4c5b70; }
        html[data-color-theme="light"] .language-option:hover,
        html[data-color-theme="light"] .language-option:focus-visible,
        html[data-color-theme="light"] .theme-option:hover,
        html[data-color-theme="light"] .theme-option:focus-visible {
            background: linear-gradient(90deg, rgba(219, 234, 254, 0.72), rgba(238, 242, 255, 0.6));
            color: #173b73;
        }
        html[data-color-theme="light"] .language-option.active,
        html[data-color-theme="light"] .theme-option.active {
            background: linear-gradient(90deg, rgba(219, 234, 254, 0.92), rgba(238, 242, 255, 0.82));
            color: #1d4ed8;
            box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.22);
        }

        html[data-color-theme="light"] .toast-container {
            background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(246, 249, 253, 0.96));
            border-color: rgba(125, 146, 177, 0.24);
            color: var(--wy-light-ink);
            box-shadow: inset 0 1px 0 #ffffff, 0 20px 42px -25px rgba(15, 23, 42, 0.42);
        }
        html[data-color-theme="light"] .wx-overlay {
            background: rgba(242, 246, 251, 0.94);
        }
        html[data-color-theme="light"] .skeleton-text {
            background: linear-gradient(90deg, #d9e1eb 22%, #f7f9fc 50%, #d9e1eb 78%);
            background-size: 220% 100%;
            box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.1);
        }
        html[data-color-theme="light"] .timer-bar {
            background: linear-gradient(90deg, #2563eb, #60a5fa);
            opacity: 0.72;
            box-shadow: 0 0 10px rgba(59, 130, 246, 0.26);
        }
        html[data-color-theme="light"] #status-icon-bg {
            border: 1px solid rgba(34, 197, 94, 0.16);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 8px 18px -14px rgba(22, 163, 74, 0.6);
        }
        html[data-color-theme="light"] #status-icon-bg[class~="bg-green-500/10"] { background: linear-gradient(145deg, #ecfdf5, #dcfce7) !important; }
        html[data-color-theme="light"] #status-icon-bg[class~="bg-red-500/10"] {
            background: linear-gradient(145deg, #fff1f2, #fee2e2) !important;
            border-color: rgba(239, 68, 68, 0.18);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 8px 18px -14px rgba(220, 38, 38, 0.5);
        }

        html[data-color-theme="light"] body .text-white { color: var(--wy-light-ink); }
        html[data-color-theme="light"] body button[class*="bg-green-"].text-white,
        html[data-color-theme="light"] body button[class*="bg-blue-"].text-white,
        html[data-color-theme="light"] body .business-panel a.text-white,
        html[data-color-theme="light"] body [class*="bg-blue-"] > .text-white,
        html[data-color-theme="light"] body [class*="bg-purple-"] > .text-white,
        html[data-color-theme="light"] body [class*="bg-pink-"] > .text-white,
        html[data-color-theme="light"] body [class*="bg-green-"] > .text-white,
        html[data-color-theme="light"] body .community-links a:hover,
        html[data-color-theme="light"] body .community-links a:hover .text-white { color: #ffffff !important; }
        html[data-color-theme="light"] body .text-slate-200 { color: #28364b !important; }
        html[data-color-theme="light"] body .text-slate-300 { color: #405069 !important; }
        html[data-color-theme="light"] body .text-slate-400 { color: #586980 !important; }
        html[data-color-theme="light"] body .text-slate-500 { color: #708097 !important; }
        html[data-color-theme="light"] body .text-slate-600 { color: #7b899d !important; }
        html[data-color-theme="light"] body .text-blue-300,
        html[data-color-theme="light"] body .text-blue-400 { color: #2563eb !important; }
        html[data-color-theme="light"] body .text-green-400 { color: #16a34a !important; }
        html[data-color-theme="light"] body .text-red-400 { color: #dc2626 !important; }
        html[data-color-theme="light"] body .text-orange-400 { color: #ea580c !important; }
        html[data-color-theme="light"] body .text-indigo-400 { color: #4f46e5 !important; }
        html[data-color-theme="light"] body .text-purple-400 { color: #7c3aed !important; }
        html[data-color-theme="light"] body .text-pink-400 { color: #db2777 !important; }
        html[data-color-theme="light"] h1.text-white,
        html[data-color-theme="light"] h2.text-white,
        html[data-color-theme="light"] h3.text-white,
        html[data-color-theme="light"] h4.text-white,
        html[data-color-theme="light"] .node-card .text-white,
        html[data-color-theme="light"] .domain-card .font-bold.text-white,
        html[data-color-theme="light"] .status-metric-item .text-white { color: var(--wy-light-ink) !important; }

        html[data-color-theme="light"] .border-slate-600 { border-color: rgba(100, 116, 139, 0.3) !important; }
        html[data-color-theme="light"] .border-slate-700,
        html[data-color-theme="light"] [class~="border-slate-700/50"] { border-color: rgba(100, 116, 139, 0.2) !important; }
        html[data-color-theme="light"] [class~="border-slate-800/50"] { border-color: rgba(100, 116, 139, 0.15) !important; }
        html[data-color-theme="light"] .bg-slate-800,
        html[data-color-theme="light"] [class~="bg-slate-800/80"] { background-color: rgba(241, 245, 249, 0.92) !important; }
        html[data-color-theme="light"] [class~="bg-slate-800/40"] { background-color: rgba(241, 245, 249, 0.7) !important; }
        html[data-color-theme="light"] .bg-slate-700 { background-color: #d8e0ea !important; }
        html[data-color-theme="light"] [class~="hover:bg-slate-700"]:hover { background-color: #e7edf5 !important; }
        html[data-color-theme="light"] footer {
            border-color: rgba(100, 116, 139, 0.14) !important;
            background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.2));
        }

        @media (max-width: 767px) {
            html[data-color-theme="light"] .glass-panel {
                background: linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(247, 250, 253, 0.82));
                box-shadow: inset 0 1px 0 #ffffff, 0 15px 32px -29px rgba(15, 23, 42, 0.4);
            }
            html[data-color-theme="light"] .node-card,
            html[data-color-theme="light"] .domain-card {
                box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.94), 0 10px 22px -22px rgba(15, 23, 42, 0.34);
            }
            html[data-color-theme="light"] .blob { opacity: 0.09; filter: blur(58px); }
        }

        /* 提升小号灰色文字可读性，并避免状态与卡片内容在窄屏溢出 */
        body .text-slate-500 { color: #94a3b8 !important; }
        body .text-slate-600 { color: #8494aa !important; }
        .domain-card, .domain-card > div, .status-banner > div { min-width: 0; }
        .domain-card .tracking-wide { overflow-wrap: anywhere; }
        .toast-container { max-width: calc(100vw - 24px); text-align: center; }

        /* 检测状态采用显式双行布局，避免状态变化引发挤压、随机换行和宽度跳动 */
        .status-summary { flex: 1 1 24rem; min-width: 0; }
        .status-copy { flex: 1 1 auto; min-width: 0; }
        #system-status-text {
            min-height: 1.5em;
            line-height: 1.5;
            text-wrap: balance;
        }
        .auto-status-row {
            display: flex;
            align-items: flex-start;
            gap: 0.75rem;
            min-width: 0;
            margin-top: 0.25rem;
        }
        .auto-status-block {
            display: grid;
            grid-template-columns: 0.875rem minmax(0, 1fr);
            grid-template-rows: repeat(2, minmax(1.1rem, auto));
            align-items: center;
            align-content: start;
            column-gap: 0.5rem;
            row-gap: 0.125rem;
            min-height: 2.325rem;
            min-width: 0;
            flex: 1 1 auto;
        }
        .auto-status-clock {
            grid-column: 1;
            grid-row: 1;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            align-self: center;
            width: 0.875rem;
            height: 1.1rem;
            line-height: 1;
            transform: translateY(0.04em);
        }
        .auto-status-clock::before { line-height: 1; }
        .auto-status-line {
            min-width: 0;
            margin: 0;
            line-height: 1.35;
            font-size: clamp(0.625rem, 1.9vw, 0.78rem);
            letter-spacing: -0.01em;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            font-variant-numeric: tabular-nums;
        }
        #auto-status-main {
            grid-column: 2;
            grid-row: 1;
            align-self: center;
            color: #cbd5e1;
            font-weight: 600;
        }
        #next-check-text {
            grid-column: 2;
            grid-row: 2;
            display: block;
            color: #94a3b8;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .last-updated-stable {
            flex: 0 0 10.75rem;
            min-width: 10.75rem;
            text-align: end;
            font-variant-numeric: tabular-nums;
            white-space: nowrap;
        }
        .status-metrics { flex: 0 0 auto; }
        .status-metric-item { min-width: 4.25rem; }
        .status-metric-label {
            min-height: 1.25em;
            line-height: 1.25;
            text-align: center;
            white-space: nowrap;
            max-width: 100%;
            overflow: hidden;
            text-overflow: ellipsis;
            font-size: clamp(0.625rem, 1.25vw, 0.6875rem) !important;
            letter-spacing: 0.025em !important;
        }


        /* 微信 / QQ 内置浏览器提示在小屏与横屏下保持在视口内 */
        .wx-overlay {
            padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
            overflow-x: hidden;
            overflow-y: auto;
        }
        .wx-guide-card { width: min(100%, 24rem); max-height: calc(100dvh - 32px); overflow-y: auto; flex: 0 0 auto; }

        /* 邀请链接隐藏客户端后，仅在桌面端重新组织主内容比例 */
        @media (min-width: 1024px) {
            :where(html)[data-invitation] #primary-layout { align-items: stretch; }
            :where(html)[data-invitation] #primary-layout .route-column { min-height: 0; }
            :where(html)[data-invitation] #primary-layout #node-container {
                min-height: clamp(17rem, 23vw, 19rem);
                grid-auto-rows: minmax(0, 1fr);
                align-items: stretch;
            }
            :where(html)[data-invitation] #primary-layout #node-container .node-card {
                height: 100%;
                min-height: 0;
            }
            :where(html)[data-invitation] #primary-layout .service-sidebar {
                display: grid;
                grid-template-rows: auto minmax(14rem, 1fr);
                align-self: stretch;
                height: 100%;
            }
            :where(html)[data-invitation] #primary-layout .community-panel {
                display: flex;
                flex-direction: column;
                min-height: 14rem;
                padding: 1.25rem;
                background: linear-gradient(145deg, rgba(30, 41, 59, 0.48), rgba(30, 41, 59, 0.32));
            }
            :where(html)[data-invitation] #primary-layout .community-links {
                flex: 1 1 auto;
                grid-template-columns: minmax(0, 1fr);
                grid-template-rows: repeat(2, minmax(4.75rem, 1fr));
                align-items: stretch;
            }
            :where(html)[data-invitation] #primary-layout .community-links a {
                min-height: 4.75rem;
                padding: 0.875rem 1rem;
                flex-direction: row;
                justify-content: flex-start;
                gap: 0.75rem;
                text-align: left;
            }
            :where(html)[data-invitation] #primary-layout .community-links a i {
                width: 1.5rem;
                text-align: center;
                font-size: 1.25rem;
            }
        }

        @media (max-width: 767px) {
            .language-menu, .theme-menu {
                position: fixed;
                top: auto;
                right: max(12px, env(safe-area-inset-right));
                bottom: max(12px, env(safe-area-inset-bottom));
                left: max(12px, env(safe-area-inset-left));
                width: auto;
                max-width: none;
                max-height: min(70vh, 420px);
                max-height: min(70dvh, 420px);
                overflow-x: hidden;
                overflow-y: auto;
                overscroll-behavior: contain;
                -webkit-overflow-scrolling: touch;
                transform: translateY(18px) scale(0.985);
                transform-origin: center bottom;
                z-index: 1200;
            }
            .language-switcher.open .language-menu,
            .theme-switcher.open .theme-menu { transform: translateY(0) scale(1); }
            .language-option,
            .theme-option { min-height: 48px; font-size: 14px; }
            .header-actions { flex-wrap: wrap; justify-content: stretch; }
            .header-actions > button,
            .header-actions > .language-switcher,
            .header-actions > .theme-switcher { flex: 1 1 calc(33.333% - 0.375rem); min-width: 0; }
            .header-actions .language-toggle,
            .header-actions .theme-toggle { width: 100%; }
            .status-banner { gap: 1rem; }
            .status-summary { width: 100%; flex-basis: auto; }
            .auto-status-row {
                gap: 0.625rem;
                margin-top: 0.375rem;
            }
            .auto-status-block {
                grid-template-columns: 1rem minmax(0, 1fr);
                grid-template-rows: repeat(2, minmax(1.25rem, auto));
                column-gap: 0.5rem;
                row-gap: 0.25rem;
                min-height: 2.75rem;
            }
            .auto-status-clock {
                width: 1rem;
                height: 1.25rem;
                font-size: 0.8125rem !important;
                transform: translateY(0.02em);
            }
            .auto-status-line {
                font-size: clamp(0.8125rem, 3.4vw, 0.9rem);
                line-height: 1.4;
                letter-spacing: 0;
            }
            .status-metrics { width: 100%; gap: clamp(0.75rem, 7vw, 2.5rem) !important; }
            .status-metric-item { flex: 1 1 0; min-width: 0; }
            .status-metric-label { font-size: clamp(0.625rem, 2.25vw, 0.6875rem) !important; }
            .glass-panel { backdrop-filter: blur(9px); -webkit-backdrop-filter: blur(9px); }
            .blob { filter: blur(36px); animation-duration: 26s; opacity: 0.38; }
        }

        @media (max-width: 420px) {
            main { padding-left: 0.75rem !important; padding-right: 0.75rem !important; }
            .header-actions > button,
            .header-actions > .language-switcher,
            .header-actions > .theme-switcher { flex-basis: calc(50% - 0.375rem); }
            .status-banner { padding: 1rem !important; }
            .status-summary { gap: 0.75rem !important; }
            #status-icon-bg { width: 2.25rem; height: 2.25rem; }
            #system-status-text { font-size: clamp(0.875rem, 4vw, 1rem); }
            .auto-status-line { font-size: clamp(0.8125rem, 3.4vw, 0.875rem); }
            .auto-status-row { gap: 0.5rem; margin-top: 0.375rem; }
            .auto-status-block { column-gap: 0.425rem; min-height: 2.7rem; }
            .status-metrics { gap: clamp(0.5rem, 5vw, 1.25rem) !important; }
            .status-metric-label { font-size: clamp(0.6rem, 2.65vw, 0.675rem) !important; }
            .domain-card { gap: 0.625rem; padding: 0.875rem; }
            .domain-card button { flex: 0 0 auto; padding-left: 0.625rem; padding-right: 0.625rem; }
            .toast-container { bottom: max(16px, env(safe-area-inset-bottom)); padding: 10px 16px; border-radius: 18px; }
            .wx-guide-card { padding: 1.25rem !important; border-radius: 1.25rem !important; }
            .wx-guide-icon { width: 3.5rem !important; height: 3.5rem !important; margin-bottom: 1rem !important; }
            .wx-guide-icon i { font-size: 1.75rem !important; }
            .wx-guide-card h2 { font-size: 1.25rem !important; margin-bottom: 0.75rem !important; }
            .wx-guide-card p { margin-bottom: 1rem !important; }
            .guide-arrow { top: max(0.75rem, env(safe-area-inset-top)); right: max(0.75rem, env(safe-area-inset-right)); font-size: 2.25rem !important; }
        }

        @media (max-height: 520px) and (orientation: landscape) {
            .wx-overlay { justify-content: flex-start; }
            .wx-guide-card { padding: 1rem 1.25rem !important; }
            .wx-guide-icon { width: 3rem !important; height: 3rem !important; margin-bottom: 0.625rem !important; }
            .wx-guide-icon i { font-size: 1.5rem !important; }
            .wx-guide-card h2 { font-size: 1.125rem !important; margin-bottom: 0.5rem !important; }
            .wx-guide-card p { margin-bottom: 0.75rem !important; line-height: 1.5 !important; }
            .wx-guide-card button { margin-bottom: 0.625rem !important; }
        }


        /* 视口、安全区与可操作性优化 */
        html { min-height: 100%; background-color: #0f172a; }
        body { min-height: 100vh; min-height: 100dvh; }
        header {
            padding-left: max(1rem, env(safe-area-inset-left)) !important;
            padding-right: max(1rem, env(safe-area-inset-right)) !important;
            padding-top: max(1.5rem, env(safe-area-inset-top)) !important;
        }
        main {
            padding-left: max(1rem, env(safe-area-inset-left)) !important;
            padding-right: max(1rem, env(safe-area-inset-right)) !important;
        }
        footer {
            padding-left: max(1rem, env(safe-area-inset-left)) !important;
            padding-right: max(1rem, env(safe-area-inset-right)) !important;
            padding-bottom: max(1.5rem, env(safe-area-inset-bottom)) !important;
        }
        .header-actions > button,
        .language-toggle,
        .language-option,
        .theme-toggle,
        .theme-option,
        .domain-card button { min-height: 44px; }
        a:focus-visible,
        button:focus-visible {
            outline: 2px solid #60a5fa;
            outline-offset: 3px;
        }
        .toast-container { bottom: max(30px, env(safe-area-inset-bottom)); }
        html[dir="rtl"] .language-option,
        html[dir="rtl"] .theme-option { text-align: right; }
        html[dir="rtl"] .language-menu,
        html[dir="rtl"] .theme-menu { right: auto; left: 0; }

        @media (max-width: 767px) {
            html[dir="rtl"] .language-menu,
            html[dir="rtl"] .theme-menu {
                right: max(12px, env(safe-area-inset-right));
                left: max(12px, env(safe-area-inset-left));
            }
        }

        @media (max-width: 420px) {
            main {
                padding-left: max(0.75rem, env(safe-area-inset-left)) !important;
                padding-right: max(0.75rem, env(safe-area-inset-right)) !important;
            }
            .toast-container { bottom: max(16px, env(safe-area-inset-bottom)); }
        }

        @media (hover: none), (pointer: coarse) {
            .node-card:hover,
            .domain-card:hover { transform: none; }
        }

        @media (prefers-reduced-motion: reduce) {
            html:focus-within { scroll-behavior: auto; }
            *, *::before, *::after {
                animation-duration: 0.01ms !important;
                animation-iteration-count: 1 !important;
                scroll-behavior: auto !important;
                transition-duration: 0.01ms !important;
            }
        }
    
/* Shared interaction refinements: stable touch targets, focus states and reduced-motion support. */
* { -webkit-tap-highlight-color: transparent; }
button, a { touch-action: manipulation; }
button:focus-visible, a:focus-visible { outline: 3px solid rgba(59, 130, 246, 0.42); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
/* WY Cloud：统一视觉变量，保留原布局与组件接口。 */
:root { --page:#101722; --surface:#182231; --surface-soft:#1d293a; --ink:#edf2f8; --muted:#a3b1c3; --line:#2d3a4d; --accent:#83adf5; --positive:#75d6ad; --negative:#f69ba5; --focus:#81acfb; }
html[data-color-theme="light"] { --page:#eeedf3; --surface:#f8f7fb; --surface-soft:#efedf5; --ink:#30364b; --muted:#666c80; --line:#dddce8; --accent:#587ac1; --positive:#43896c; --negative:#bd6576; --focus:#6787c5; --wy-light-ink:#30364b; }
html[data-color-theme] { background:var(--page); scrollbar-gutter:stable; -webkit-text-size-adjust:100%; }
html[data-color-theme] body { background:var(--page); color:var(--ink); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif; font-size:14px; line-height:1.6; -webkit-font-smoothing:antialiased; }
html[data-color-theme] .bg-glow, html[data-color-theme] .blob { display:none; }
html.wy-theme-transitioning::after { display:none; }
html[data-color-theme] body .glass-panel,
html[data-color-theme] body .node-card,
html[data-color-theme] body .domain-card { background:var(--surface); border:1px solid var(--line); box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; border-radius:14px; transition:background-color .16s,border-color .16s; }
html[data-color-theme] body .glass-panel:hover { box-shadow:none; border-color:var(--line); }
html[data-color-theme] body .node-card:hover,
html[data-color-theme] body .domain-card:hover { background:var(--surface-soft); border-color:var(--accent); box-shadow:none; transform:none; }
html[data-color-theme] body header { padding-top:max(28px,env(safe-area-inset-top))!important; padding-bottom:28px; }
header > div { align-items:center; }
html[data-color-theme] header img { box-shadow:none; border:1px solid var(--line); border-radius:12px; }
header h1 { letter-spacing:-.035em!important; font-size:22px!important; }
header p { margin-top:2px; }
.header-actions { align-items:center; gap:8px!important; }
html[data-color-theme] body .header-actions > button,
html[data-color-theme] body .theme-toggle,
html[data-color-theme] body .language-toggle { background:var(--surface)!important; color:var(--ink)!important; border:1px solid var(--line)!important; border-radius:10px; box-shadow:none!important; min-height:44px; font-size:13px; padding:10px 12px; gap:7px; transition:background-color .16s,border-color .16s; }
html[data-color-theme] body .header-actions > button:hover,
html[data-color-theme] body .theme-toggle:hover,
html[data-color-theme] body .language-toggle:hover { background:var(--surface-soft)!important; color:var(--ink)!important; border-color:var(--accent)!important; box-shadow:none; }
html[data-color-theme] body button[onclick="visitFastestNode()"] { background:#315fa9!important; border-color:#315fa9!important; color:#fff!important; }
html[data-color-theme] body button[onclick="visitFastestNode()"]:hover { background:#284f90!important; color:#fff!important; filter:none; }
html[data-color-theme="light"] body .header-actions button[onclick="checkAllNodes()"].text-white { color:var(--ink)!important; }
html[data-color-theme="light"] body .business-panel a.text-white { color:var(--ink)!important; }
html[data-color-theme="light"] body .domain-card > div > i.text-white { color:#fff!important; }
html[data-color-theme] body .header-actions i { animation:none; }
html[data-color-theme] body #refresh-icon.fa-spin { animation:fa-spin 1.1s linear infinite; }
html[data-color-theme] body button:disabled { opacity:.65; cursor:wait; }
html[data-color-theme] body .text-slate-400,
html[data-color-theme] body .text-slate-500,
html[data-color-theme] body .text-slate-600 { color:var(--muted)!important; }
html[data-color-theme] body .text-green-400 { color:var(--positive)!important; }
html[data-color-theme] body .text-red-400 { color:var(--negative)!important; }
html[data-color-theme] body .status-banner { padding:24px; gap:22px; align-items:stretch; }
.status-summary { flex:1 1 0; align-items:flex-start!important; }
.status-copy { padding-top:1px; }
#system-status-text { font-size:16px; line-height:1.55; letter-spacing:0; }
.auto-status-row { flex-wrap:wrap; gap:8px; margin-top:8px; }
.auto-status-block { grid-template-rows:auto auto; row-gap:5px; }
.auto-status-line { font-size:13px; line-height:1.55; white-space:normal; overflow:visible; text-overflow:clip; }
html[data-color-theme] #auto-status-main, html[data-color-theme] #next-check-text { color:var(--muted); }
html[data-color-theme] #next-check-text { color:var(--accent); }
.last-updated-stable { flex-basis:auto; min-width:0; padding:0; border:0; text-align:start; }
.status-metrics { align-items:center; gap:24px!important; }
.status-metric-item { min-width:66px; }
.status-metric-item > div:first-child { font-size:25px; font-weight:650; letter-spacing:-.035em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.status-metric-label { font-size:12px!important; line-height:1.5; white-space:normal; overflow:visible; letter-spacing:0!important; }
html[data-color-theme] body #status-icon-bg { background:var(--surface-soft)!important; box-shadow:none; border:1px solid var(--line); }
#status-icon { animation:none!important; }
html[data-color-theme] .timer-bar { background:var(--accent); opacity:.55; box-shadow:none; height:2px; }
.route-column > .flex-1 { flex:initial; }
#node-container { height:auto; grid-auto-rows:minmax(100px,auto); gap:12px; }
html[data-color-theme] .node-card { min-height:100px; padding:15px; text-align:start; }
.node-card [data-node-index] { font-size:13px; font-weight:600; -webkit-line-clamp:unset; display:block; overflow:visible; }
.node-card [id^="text-"] { font-size:14px; font-weight:600; font-variant-numeric:tabular-nums; }
.node-card > .absolute { display:none; }
html[data-color-theme] body .node-card.fastest { border-color:var(--positive); background:var(--surface); box-shadow:inset 0 3px 0 var(--positive); }
html[data-color-theme] body .node-card.offline { border-color:var(--line); background:var(--surface); opacity:1; }
.node-badge { font-size:10px; font-weight:600; line-height:1.5; color:var(--positive); display:none; }
.node-card.fastest .node-badge { display:inline; }
.node-card > div:first-child { gap:4px; flex-wrap:wrap; }
.ping-dot { width:7px; height:7px; box-shadow:none; flex:none; }
html[data-color-theme] body .skeleton-text { background:var(--surface-soft); color:transparent!important; animation:skeleton-loading 1.5s ease-in-out infinite alternate; box-shadow:none; }
.page-note { display:flex; align-items:flex-start; gap:10px; padding:13px 16px; border:1px solid var(--line); border-radius:12px; background:var(--surface-soft); color:var(--muted); font-size:13px; line-height:1.65; }
.page-note i { margin-top:4px; color:var(--accent); }
.page-note p { margin:0; }
.route-help { margin-top:12px; font-size:12px; line-height:1.7; color:var(--muted); }
html[data-color-theme] body .business-panel { padding:8px; gap:7px; }
html[data-color-theme] body .business-panel a { background:var(--surface-soft)!important; color:var(--ink)!important; border:1px solid var(--line); box-shadow:none; font-size:14px; font-weight:600; animation:none; transform:none!important; }
html[data-color-theme] body .business-panel a:hover { border-color:var(--accent); }
html[data-color-theme] body .business-panel a i { color:var(--accent); font-size:17px; transform:none!important; }
html[data-color-theme] body #client-download-section .space-y-2 > a { min-height:44px; background:var(--surface-soft)!important; border:1px solid transparent!important; box-shadow:none; }
html[data-color-theme] body #client-download-section .space-y-2 > a:hover { border-color:var(--accent)!important; }
html[data-color-theme] body .community-links a,
html[data-color-theme] body .community-links a:hover { min-height:68px; background:var(--surface-soft)!important; border-color:var(--line)!important; color:var(--accent)!important; box-shadow:none; }
html[data-color-theme] body .community-links a:hover { border-color:var(--accent)!important; }
html[data-color-theme] body .community-links a:hover .text-white { color:var(--ink)!important; }
.domain-card { gap:12px; }
.domain-card .tracking-wide { font-size:16px; letter-spacing:0; }
html[data-color-theme] body .domain-card > button { background:var(--surface-soft)!important; color:var(--ink)!important; border:1px solid var(--line)!important; box-shadow:none; flex:none; min-width:64px; }
html[data-color-theme] body .domain-card > button:hover { border-color:var(--accent)!important; }
html[data-color-theme] body .domain-card > div > div { box-shadow:none; }
.domain-card > .absolute { display:none; }
.domain-card .truncate { white-space:normal; overflow:visible; }
.domain-card i { transform:none!important; }
.copyable { -webkit-user-select:text; user-select:text; -webkit-touch-callout:default; overflow-wrap:anywhere; }
.domain-card:has(.domain-destination) { position:relative; }
.domain-destination { position:absolute; inset:0; border-radius:inherit; z-index:11; }
.domain-card > button { position:relative; z-index:12; }
.domain-card:focus-within { border-color:var(--accent)!important; }
html[data-color-theme] body .theme-menu,
html[data-color-theme] body .language-menu { background:var(--surface); border:1px solid var(--line); box-shadow:0 10px 32px #00000018; backdrop-filter:none; -webkit-backdrop-filter:none; max-height:min(70vh,460px); overflow-y:auto; overscroll-behavior:contain; }
html[data-color-theme] body .theme-option,
html[data-color-theme] body .language-option { color:var(--ink); }
html[data-color-theme] body .theme-option.active,
html[data-color-theme] body .language-option.active,
html[data-color-theme] body .theme-option:hover,
html[data-color-theme] body .language-option:hover { background:var(--surface-soft); color:var(--accent); box-shadow:none; }
html[data-color-theme] body .toast-container { background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:12px; box-shadow:0 6px 24px #00000014; padding:12px 18px; max-width:min(520px,calc(100vw - 32px)); line-height:1.6; text-align:start; overflow-wrap:anywhere; pointer-events:none; transition:opacity .18s,transform .18s,visibility .18s; }
.toast-container > i { flex:none; }
html[data-color-theme] body footer { background:none; border-color:var(--line)!important; padding-top:22px; }
:is(a,button,input,textarea):focus-visible { outline:3px solid var(--focus)!important; outline-offset:3px; }
html[data-color-theme] .wx-overlay { background:var(--page); backdrop-filter:none; }
.wx-guide-card button { min-height:44px; }
.guide-arrow { animation:none; }
.copy-dialog { margin:auto; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:16px; padding:24px; width:min(440px,calc(100% - 32px)); box-shadow:0 14px 45px #00000024; }
.copy-dialog::backdrop { background:#0d172b88; }
.copy-dialog h2 { font-size:18px; font-weight:600; }
.copy-dialog p { color:var(--muted); margin:8px 0 16px; }
.copy-dialog textarea { width:100%; padding:12px; border:1px solid var(--line); background:var(--surface-soft); color:var(--ink); border-radius:8px; font-size:16px; resize:vertical; }
.copy-dialog button { display:block; margin:16px 0 0 auto; background:#315fa9; color:#fff; padding:10px 20px; border-radius:8px; min-height:44px; }
@media(min-width:1024px) {
  #primary-layout { align-items:stretch; }
  #primary-layout .route-column { height:auto; gap:20px; min-height:0; }
  #primary-layout .route-column > .flex-1 { flex:1 1 auto; min-height:0; }
  #primary-layout .route-column > .flex-1 > div:first-child { order:-2; }
  #primary-layout .route-help { order:-1; margin:0 0 12px; }
  #primary-layout #node-container,
  :where(html)[data-invitation] #primary-layout #node-container { flex:1 1 auto; height:auto; min-height:212px; grid-template-rows:repeat(2,minmax(100px,1fr)); grid-auto-rows:minmax(100px,1fr); }
  #primary-layout .service-sidebar { align-self:stretch; }
  #primary-layout .community-panel { flex:1 1 auto; display:flex; flex-direction:column; }
  #primary-layout .community-links { flex:1 1 auto; }
  :where(html)[data-invitation] #primary-layout .service-sidebar { display:flex; height:auto; }
  html[data-color-theme][data-invitation] #primary-layout .community-panel { min-height:0; padding:16px; background:var(--surface); }
  :where(html)[data-invitation] #primary-layout .community-links { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  :where(html)[data-invitation] #primary-layout .community-links a { min-height:68px; flex-direction:column; padding:12px 8px; gap:4px; justify-content:center; text-align:center; }
}
/* Translated toolbar labels may need another row at tablet/desktop widths. */
@media(min-width:768px) {
  header > div { flex-wrap:wrap; }
  .header-actions { flex-wrap:wrap; min-width:0; max-width:100%; }
}
@media(min-width:768px) and (max-width:1100px) { .header-actions { width:100%; justify-content:flex-start; } }
@media(max-width:767px) {
  html[data-color-theme] body header { padding-top:max(20px,env(safe-area-inset-top))!important; padding-bottom:20px; }
  .header-actions { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px!important; }
  .header-actions > button:first-child, .header-actions > button:nth-child(2) { grid-column:span 2; }
  html[data-color-theme] body .header-actions button { width:100%; padding:10px 6px; font-size:12px; min-height:44px; }
  #auto-btn { gap:5px!important; }
  #auto-btn-label { white-space:normal; overflow-wrap:anywhere; line-height:1.35; }
  .header-actions > button > span { white-space:normal; line-height:1.35; }
  #theme-current,#language-current { display:inline!important; max-width:5.5em; overflow:hidden; text-overflow:ellipsis; }
  .header-actions i { font-size:12px; }
  html[data-color-theme] body .status-banner { padding:18px!important; gap:16px; }
  .status-summary { gap:12px!important; padding-bottom:16px; border-bottom:1px solid var(--line); }
  .auto-status-line { font-size:13px; }
  .status-metrics { gap:12px!important; }
  .status-metric-item > div:first-child { font-size:24px; }
  .status-metric-label { font-size:11px!important; }
  #node-container { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:minmax(88px,auto); gap:10px; }
  html[data-color-theme] .node-card { min-height:88px; padding:13px; }
  .node-card [data-node-index] { font-size:14px; }
  .node-badge { font-size:11px; }
  #primary-layout { gap:20px; }
  .page-note { padding:12px 14px; }
  .service-sidebar { gap:12px; }
  .theme-menu,.language-menu { padding:10px; padding-bottom:max(10px,env(safe-area-inset-bottom)); }
}
@media(max-width:359px) { .header-actions { grid-template-columns:repeat(2,minmax(0,1fr)); } .header-actions > button:first-child,.header-actions > button:nth-child(2) { grid-column:auto; } #theme-current,#language-current { max-width:6em; } .header-actions button { gap:4px!important; } }
@media(hover:hover) { a:active,button:active { opacity:.85; } }
/* 保留原始粉紫商务、蓝色商城、绿色直连的识别度，仅收敛饱和度与光效。 */
html[data-color-theme] body .business-panel a.biz-btn { background:linear-gradient(105deg,#b96896,#9270bb)!important; border-color:#ac7ca9!important; color:#fff!important; }
html[data-color-theme] body .business-panel a:nth-child(2) { background:linear-gradient(105deg,#639ac0,#6483c1)!important; border-color:#7898c5!important; color:#fff!important; }
html[data-color-theme] body .business-panel a i { color:#fff!important; }
html[data-color-theme] body .business-panel a:hover { filter:brightness(1.045); }
html[data-color-theme] body button[onclick="visitFastestNode()"] { background:#4d9376!important; border-color:#4d9376!important; color:#fff!important; }
html[data-color-theme] body button[onclick="visitFastestNode()"]:hover { background:#43866a!important; }
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white { background:#6285c4!important; border-color:#6285c4!important; color:#fff!important; }
html[data-color-theme="light"] body .page-note { background:#eceaf6; border-color:#dcd8ec; }
html[data-color-theme="light"] body .status-banner { background:#f3f2f8; }
html[data-color-theme="light"] body .node-card.fastest { background:#edf5f0; border-color:#8db8a1; box-shadow:inset 0 2px 0 #8db8a1; }
html[data-color-theme="light"] body .node-card.offline { background:#f8f0f2; }
html[data-color-theme="light"] body .status-banner #status-icon-bg { background:#e4f0e9!important; border-color:#d0e4d8; }
html[data-color-theme="light"] body .ping-dot.bg-green-500 { background:#62a786; }
html[data-color-theme="light"] body .community-links a,
html[data-color-theme="light"] body .community-links a:hover { background:#e8eff8!important; color:#567cac!important; border-color:#d4dfef!important; }
html[data-color-theme="light"] body .domain-card > div > div:first-child { box-shadow:none!important; }
html[data-color-theme="light"] body .domain-card .text-blue-400 { color:#6285c4!important; }
html[data-color-theme="light"] body .domain-card .text-purple-400 { color:#9675b8!important; }
html[data-color-theme="light"] body .domain-card .text-pink-400 { color:#b8739b!important; }
html[data-color-theme="light"] body .domain-card > div:has(> .fa-app-store-ios) { background:#7298cb!important; }
html[data-color-theme="light"] body .domain-card > div:has(> .fa-book-open) { background:#a081be!important; }
html[data-color-theme="light"] body .domain-card > div > i.text-white { color:#fff!important; }
@media(min-width:1024px) {
  #primary-layout > .route-column { display:grid; grid-template-rows:auto auto minmax(0,1fr); align-self:stretch; }
  #primary-layout .route-selection { display:grid; grid-template-rows:auto auto minmax(212px,1fr); min-height:0; }
  #primary-layout .route-selection > * { order:0!important; }
  #primary-layout .route-selection > #node-container { align-self:stretch; height:100%; box-sizing:border-box; }
  #primary-layout > .service-sidebar { display:flex; align-self:stretch; height:auto; }
  #primary-layout .community-panel { margin-bottom:0; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; } }




/* Presentation-only refinements. Original behavior remains intact. */
:root { --page:#101722; --surface:#192331; --surface-soft:#202d3e; --ink:#eef3fb; --muted:#a5b2c5; --line:#303e51; --accent:#93b5ef; --positive:#86d5b2; --negative:#f1a4ad; --focus:#92baff; --polish-shadow:0 8px 24px -16px #0008,inset 0 1px 0 #ffffff06; --polish-highlight:#ffffff04; --polish-success:#182e29; }
html[data-color-theme="light"] { --page:#f1f0f6; --surface:#fdfcff; --surface-soft:#f1f2f8; --ink:#30364b; --muted:#626c80; --line:#dedfeb; --accent:#526fab; --positive:#347b5b; --negative:#ac5364; --focus:#6483c1; --wy-light-ink:#30364b; --polish-shadow:0 8px 24px -17px #343a6330,inset 0 1px 0 #fff; --polish-highlight:#ffffffb3; --polish-success:#edf7f0; }
html[data-color-theme] body { background:radial-gradient(ellipse 85% 480px at 50% 0,rgba(127,112,181,.075),transparent 90%),var(--page); letter-spacing:.005em; }
html[data-color-theme] body header { padding-top:max(32px,env(safe-area-inset-top))!important; padding-bottom:26px; }
header > div { row-gap:22px; }
header h1 { font-size:24px!important; letter-spacing:-.04em!important; font-weight:750; }
header p { letter-spacing:.035em; line-height:1.6; }
html[data-color-theme] header img { border-radius:13px; box-shadow:0 5px 12px -6px #526a9b55; }
html[data-color-theme] body .glass-panel,html[data-color-theme] body .node-card,html[data-color-theme] body .domain-card { background:linear-gradient(145deg,var(--polish-highlight),transparent 65%),var(--surface); border-color:var(--line); box-shadow:var(--polish-shadow); border-radius:16px; transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease; }
html[data-color-theme] body .header-actions > button,html[data-color-theme] body .theme-toggle,html[data-color-theme] body .language-toggle { border-radius:11px; box-shadow:inset 0 1px 0 var(--polish-highlight)!important; font-weight:550; transition:background-color .18s,border-color .18s,box-shadow .18s; }
html[data-color-theme] body button[onclick="visitFastestNode()"] { background:linear-gradient(135deg,#408466,#347354)!important; border-color:#468b6c!important; box-shadow:0 5px 12px -6px #39876588,inset 0 1px 0 #ffffff24!important; }
html[data-color-theme] body button[onclick="visitFastestNode()"]:hover { background:#306d50!important; }
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white { background:linear-gradient(135deg,#577db9,#486da8)!important; border-color:#6487bd!important; }
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"]:hover { filter:brightness(1.07); }
html[data-color-theme] body #auto-btn[aria-pressed="true"] { border-color:var(--accent)!important; color:var(--accent)!important; }
html[data-color-theme] body .page-note { border-color:var(--line); background:rgba(132,119,180,.065); border-radius:12px; padding:12px 16px; color:var(--muted); line-height:1.8; }
html[data-color-theme] body .status-banner { background:linear-gradient(110deg,var(--polish-highlight),transparent 70%),var(--surface); padding:24px; border-radius:18px; gap:20px; }
#system-status-text { font-size:17px; font-weight:650; letter-spacing:-.015em; }
html[data-color-theme] body .status-banner #status-icon-bg { width:44px; height:44px; border-radius:14px; background:var(--surface-soft)!important; border-color:var(--line); }
html[data-color-theme] body .status-banner #status-icon-bg:has(.text-green-400) { background:var(--polish-success)!important; border-color:color-mix(in srgb,var(--positive) 25%,var(--line)); }
.status-metrics { gap:20px!important; }
.status-metric-item { padding-inline:2px; }
.status-metric-item > div:first-child { font-size:27px; font-weight:650; letter-spacing:-.045em; line-height:1.3; }
.status-metric-label { margin-top:6px; }
.auto-status-line { font-size:12px; line-height:1.65; }
html[data-color-theme] #next-check-text { font-weight:550; }
.last-updated-stable { font-size:11px; }
.route-selection > .flex:first-child { margin-bottom:6px; }
.route-selection h2,#primary-layout > .lg\:col-span-12 h2 { font-size:15px; font-weight:650; letter-spacing:.01em; }
.route-help { margin:0 0 14px; font-size:12px; line-height:1.7; }
html[data-color-theme] body .node-card { padding:16px; border-radius:13px; min-width:0; }
html[data-color-theme] body .node-card [data-node-index] { color:var(--ink)!important; font-size:13px; font-weight:550; line-height:1.5; }
.node-card [id^="text-"] { font-size:15px; letter-spacing:-.025em; }
.node-card > div:first-child { gap:5px; }
html[data-color-theme] body .node-card.fastest { background:linear-gradient(145deg,var(--polish-highlight),transparent),var(--polish-success); border-color:color-mix(in srgb,var(--positive) 60%,var(--line)); box-shadow:inset 0 2px 0 var(--positive),var(--polish-shadow); }
html[data-color-theme] body .node-card.offline { background:var(--surface); border-color:var(--line); box-shadow:var(--polish-shadow); }
.node-badge { font-size:10px; border-radius:5px; padding:1px 5px; background:color-mix(in srgb,var(--positive) 12%,transparent); }
html[data-color-theme] body .skeleton-text { background:linear-gradient(90deg,var(--surface-soft) 25%,var(--line) 50%,var(--surface-soft) 75%); background-size:200% 100%; }
html[data-color-theme] body .service-sidebar .glass-panel { border-radius:16px; }
html[data-color-theme] body #client-download-section,html[data-color-theme] body .community-panel { padding:18px; }
.service-sidebar h3 { margin-bottom:14px; font-size:13px; }
html[data-color-theme] body .business-panel { padding:9px; gap:8px; }
html[data-color-theme] body .business-panel a { border-radius:10px; min-height:46px; font-size:13px; letter-spacing:.015em; }
html[data-color-theme] body .business-panel a.biz-btn { background:linear-gradient(110deg,#a25586,#8260aa)!important; border-color:#a27daa!important; box-shadow:inset 0 1px 0 #ffffff20; }
html[data-color-theme] body .business-panel a:nth-child(2) { background:linear-gradient(110deg,#497fa4,#5575b0)!important; border-color:#7392bc!important; }
html[data-color-theme] body #client-download-section .space-y-2 > a { background:var(--surface-soft)!important; border-radius:9px; min-height:44px; }
#client-download-section .space-y-2 > a > div { gap:12px; min-width:0; }
#client-download-section .space-y-2 > a > div > i { width:20px; text-align:center; }
html[data-color-theme] body .community-links a { background:var(--surface-soft)!important; border-color:var(--line)!important; color:var(--accent)!important; border-radius:10px; gap:7px; }
html[data-color-theme] body .community-links a:hover { border-color:var(--accent)!important; }
html[data-color-theme] body .domain-card { padding:20px; min-height:88px; border-radius:14px; }
.domain-card .tracking-wide { font-size:15px; font-weight:650; margin-bottom:3px; }
.domain-card > div { min-width:0; }
.domain-card > div > div:first-child { flex-shrink:0; border-radius:12px; }
html[data-color-theme] body .domain-card > button { min-width:68px; border-radius:9px; font-weight:550; }
html[data-color-theme] body .domain-card > button:hover { background:var(--surface)!important; color:var(--accent)!important; }
html[data-color-theme] body .theme-menu,html[data-color-theme] body .language-menu { padding:8px; border-radius:15px; box-shadow:0 20px 50px -16px #0005,0 2px 6px #0000000d; }
.theme-option,.language-option { border-radius:9px; }
.theme-option.active::after,.language-option.active::after { content:'✓'; margin-inline-start:auto; color:var(--accent); font-weight:700; }
html[data-color-theme] body .toast-container { border-radius:14px; box-shadow:0 12px 36px -12px #0005; }
.copy-dialog { border-radius:20px; padding:26px; }
.copy-dialog textarea { line-height:1.6; }
html[data-color-theme] body footer { margin-top:8px; font-size:12px; }
@media(hover:hover) and (pointer:fine) {
 html[data-color-theme] body .node-card:hover,html[data-color-theme] body .domain-card:hover { transform:translateY(-2px); border-color:var(--accent); box-shadow:0 12px 26px -16px #243d6755,inset 0 1px 0 var(--polish-highlight); }
}
@media(min-width:1024px) {
 #primary-layout { gap:26px; }
 #primary-layout .route-column { gap:20px; }
 #primary-layout .route-help { margin:0 0 14px; }
 #primary-layout .service-sidebar { gap:16px; }
 #primary-layout > .lg\:col-span-12 { margin-top:8px; padding-top:8px; }
 .status-metrics { border-inline-start:1px solid var(--line); padding-inline-start:20px; }
}
@media(min-width:768px) and (max-width:1023px) {
 #node-container { grid-template-columns:repeat(5,minmax(0,1fr)); }
 .service-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
 .service-sidebar .business-panel { grid-column:1 / -1; flex-direction:row; }
 .status-metrics { border-inline-start:1px solid var(--line); padding-inline-start:18px; }
}
@media(max-width:767px) {
 html[data-color-theme] body header { padding-top:max(22px,env(safe-area-inset-top))!important; padding-bottom:22px; }
 header h1 { font-size:23px!important; }
 header > div { row-gap:20px; }
 html[data-color-theme] body .header-actions button { font-size:12px; }
 html[data-color-theme] body .status-banner { padding:18px!important; border-radius:16px; }
 .status-metrics { gap:8px!important; }
 .status-metric-item + .status-metric-item { border-inline-start:1px solid var(--line); }
 .status-metric-item > div:first-child { font-size:26px; }
 .auto-status-line { font-size:12px; }
 #system-status-text { font-size:16px; }
 html[data-color-theme] body .node-card { min-height:96px; padding:15px; }
 .route-selection > .flex:first-child { margin-bottom:7px; }
 .route-help { margin:0 0 13px; }
 html[data-color-theme] body .domain-card { padding:16px; min-height:84px; }
 html[data-color-theme] body .theme-menu,html[data-color-theme] body .language-menu { border-radius:18px; padding:10px; padding-bottom:max(10px,env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) {
 html[data-color-theme] body .node-card:hover,html[data-color-theme] body .domain-card:hover { transform:none; }
}




/* Targeted repair: keep the existing geometry and behavior. */
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white {
    appearance: none;
    -webkit-appearance: none;
    box-sizing: border-box;
    background: #486da8 linear-gradient(135deg,#577db9,#486da8) border-box !important;
    border: 1px solid #4d72ac !important;
    border-radius: 11px;
    /* Remove the pale inset highlight that looked like an unfilled rim. */
    box-shadow: 0 2px 5px -3px rgba(40,66,108,.3) !important;
    opacity: 1;
    filter: none;
    min-height: 44px;
    align-items: center;
    justify-content: center;
}
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white:disabled {
    /* An opaque muted fill preserves a continuous edge while still signaling busy. */
    background: #607aa4 linear-gradient(135deg,#6882aa,#607aa4) border-box !important;
    border-color: #607aa4 !important;
    box-shadow: none !important;
    opacity: 1;
    filter: none;
    cursor: wait;
}
@media (hover:hover) and (pointer:fine) {
    html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white:enabled:hover {
        background: #5077b1 linear-gradient(135deg,#6086c1,#5077b1) border-box !important;
        border-color: #5077b1 !important;
        filter: none;
    }
}
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white:enabled:active {
    background: #44679f !important;
    border-color: #44679f !important;
    box-shadow: none !important;
    opacity: 1;
    filter: none;
}
/* Keep the rotating glyph centered in its own fixed square, without clipping it. */
#refresh-icon { display:inline-flex; align-items:center; justify-content:center; width:1em; height:1em; flex:0 0 1em; line-height:1; transform-origin:center; }




/* Stable backgrounds: never swap gradient layers on hover. */
html[data-color-theme] body .header-actions button[onclick="visitFastestNode()"] {
 background:linear-gradient(135deg,rgba(255,255,255,.06),transparent) #347354 !important;
 border-color:#3b7c5d!important; filter:none!important; opacity:1!important;
 transition:background-color .16s ease,border-color .16s ease;
}
html[data-color-theme] body .header-actions button[onclick="visitFastestNode()"]:hover {
 background:linear-gradient(135deg,rgba(255,255,255,.06),transparent) #347354 !important;
}
@media(hover:hover) and (pointer:fine) {
 html[data-color-theme] body .header-actions button[onclick="visitFastestNode()"]:enabled:hover { background-color:#306b4e!important; }
}
html[data-color-theme] body .header-actions button[onclick="visitFastestNode()"]:enabled:active { background-color:#2c6348!important; }
html[data-color-theme] body .header-actions button[onclick="visitFastestNode()"] i { animation:none!important; transform:none!important; transition:none!important; }
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white,
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white:enabled:hover {
 background:linear-gradient(135deg,rgba(255,255,255,.06),transparent) #486da8 border-box!important;
 filter:none!important; opacity:1!important; transition:background-color .16s ease,border-color .16s ease;
}
@media(hover:hover) and (pointer:fine) {
 html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white:enabled:hover { background-color:#5077b1!important; }
}
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white:enabled:active { background-color:#44679f!important; }
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white:disabled,
html[data-color-theme] body .header-actions button[onclick="checkAllNodes()"].text-white:disabled:hover {
 background:linear-gradient(135deg,rgba(255,255,255,.04),transparent) #607aa4 border-box!important;
 border-color:#607aa4!important; box-shadow:none!important; filter:none!important; opacity:1!important;
}
html[data-color-theme] body #refresh-icon { transition:none!important; }
/* Recommendation relies on a restrained surface tint and readable badge, not a green outline. */
html[data-color-theme] body .node-card.fastest {
 background:#1c2b2d; border-color:var(--line); box-shadow:var(--polish-shadow);
}
html[data-color-theme="light"] body .node-card.fastest { background:#f1f6f3; border-color:#d9e2dc; box-shadow:var(--polish-shadow); }
html[data-color-theme] body .node-card.fastest:hover { border-color:var(--accent); box-shadow:var(--polish-shadow); }
.node-card.fastest .node-badge { background:transparent; padding:1px 0; font-weight:600; }
/* Hidden documents keep their animation phase instead of restarting on return. */
html.wy-page-hidden body *,html.wy-page-hidden body *::before,html.wy-page-hidden body *::after { animation-play-state:paused!important; }




/* 2026-09 UI refinement: presentation only, original behavior retained. */
button, a { -webkit-tap-highlight-color: transparent; }
button, a, [role="button"] { scroll-margin-block: 24px; }
@media (forced-colors: active) {
  button:focus-visible, a:focus-visible { outline: 2px solid Highlight !important; }
}

/* Loading fix only: keep the original button geometry while preventing label reflow. */
html[data-color-theme] body #auto-btn #auto-btn-label { white-space: nowrap; }
/* 手机端长译文仅在按钮内部换行，保留原有网格、图标和短文本尺寸。 */
@media (max-width: 767px) {
    html[data-color-theme] body .header-actions > button {
        min-width: 0;
        max-width: 100%;
    }
    html[data-color-theme] body .header-actions > button > span,
    html[data-color-theme] body #auto-btn #auto-btn-label {
        min-width: 0;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .header-actions > button > i,
    .header-actions .theme-toggle > i,
    .header-actions .language-toggle > i { flex-shrink: 0; }
    #theme-current, #language-current { min-width: 0; }
}
html[data-color-theme] body .header-actions > button,
html[data-color-theme] body .theme-toggle,
html[data-color-theme] body .language-toggle { box-shadow: none !important; }
html[data-color-theme] body .status-banner { background: var(--surface); }
html[data-color-theme] body .business-panel a.biz-btn { background: #865677 !important; box-shadow: none; }
html[data-color-theme] body .business-panel a:nth-child(2) { background: #476e98 !important; box-shadow: none; }
html[data-color-theme] body .node-card:hover,
html[data-color-theme] body .domain-card:hover { transform: none; }
.status-copy, .route-column, .service-sidebar { min-width: 0; }



/* 非交互状态卡不响应触摸模拟的 hover，保留原本的表面与阴影。 */
html[data-color-theme] body .status-banner,
html[data-color-theme] body .status-banner:hover {
    box-shadow: var(--polish-shadow);
    border-color: var(--line);
}
/* 固定进度条几何尺寸，仅合成缩放，避免持续 width 动画触发布局/重绘。 */
html[data-color-theme] body #timer-bar { width:100%; transform-origin:left center; will-change:transform; }
html[data-color-theme] body .wy-feedback {
    transition:transform 220ms cubic-bezier(.22,1,.36,1),background-color 180ms ease,border-color 180ms ease,box-shadow 220ms ease!important;
}
@media (hover:hover) and (pointer:fine) {
    html[data-color-theme] body .business-panel a.wy-feedback:hover {
        transform:translateY(-1px)!important;
        box-shadow:0 5px 12px -5px #18263c66,inset 0 0 0 999px #ffffff0d!important;
    }
    html[data-color-theme] body .header-actions button[onclick="visitFastestNode()"].wy-feedback:enabled:hover {
        transform:translateY(-1px)!important;
        box-shadow:0 5px 12px -5px #28553e66,inset 0 1px 0 #ffffff18!important;
    }
}
html[data-color-theme] body .wy-feedback:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
html[data-color-theme] body .wy-feedback:not(:disabled):active,
html[data-color-theme] body .wy-feedback.wy-pressed {
    transform:scale(.975)!important;
    box-shadow:inset 0 0 0 999px #10172220!important;
    transition-duration:80ms!important;
}
@media(prefers-reduced-motion:reduce) {
    html[data-color-theme] body .wy-feedback { transition:none!important; }
    html[data-color-theme] body .wy-feedback:hover,
    html[data-color-theme] body .wy-feedback:active,
    html[data-color-theme] body .wy-feedback.wy-pressed { transform:none!important; }
}



/* 仅指定区域的触屏入口：关闭原生链接拖拽，保持原有几何与阴影。 */
html[data-color-theme] body #primary-layout .wy-touch-route,
html[data-color-theme] body #primary-layout .wy-touch-route * {
    -webkit-user-drag:none;
    
    
    
}
html[data-color-theme] body #primary-layout .wy-touch-route {
    transform:none!important;
    box-shadow:var(--wy-touch-shadow, none)!important;
    transition:background-color 180ms ease,border-color 180ms ease!important;
}
html[data-color-theme] body #primary-layout .wy-touch-route:not(.domain-destination) { position:relative; }
html[data-color-theme] body #primary-layout .node-card.wy-touch-route,
html[data-color-theme] body #primary-layout a.domain-card.wy-touch-route { --wy-touch-shadow:var(--polish-shadow); }
html[data-color-theme] body #primary-layout .domain-card.wy-touch-surface { box-shadow:var(--polish-shadow)!important; }
/* 用局部透明度反馈代替 999px 内阴影及缩放，滑动取消后不会产生阴影收缩。 */
html[data-color-theme] body #primary-layout .wy-touch-route::after {
    content:'';
    position:absolute;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    background:rgba(16,23,34,.08);
    opacity:0;
    transition:opacity 120ms ease;
}
html[data-color-theme] body #primary-layout .wy-touch-route.wy-pressed::after { opacity:1; }
@media(prefers-reduced-motion:reduce) {
    html[data-color-theme] body #primary-layout .wy-touch-route,
    html[data-color-theme] body #primary-layout .wy-touch-route::after { transition:none!important; }
}


/* Keep the existing layout while making keyboard navigation and static fallback usable. */
.skip-link {
    position: fixed;
    top: max(12px, env(safe-area-inset-top));
    left: max(12px, env(safe-area-inset-left));
    z-index: 10001;
    padding: 10px 16px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
    color: var(--ink);
    transform: translateY(-200%);
}
.skip-link:focus { transform: none; }
.static-route-note { margin: 0 0 12px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.node-card .static-route-hint { color: var(--muted); font-size: 13px; font-weight: 400; }
#main-content:focus { outline: none; }

/* Revalidation keeps the previous value while making pending results explicit. */
.node-card.is-checking { border-style:dashed !important; }

/* Keep translated status text readable when metrics occupy most of the row. */
#next-check-text { overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
@media (min-width:768px) and (max-width:1199px) {
  .status-banner { flex-direction:column; }
  .status-summary { flex-basis:auto; width:100%; }
  .status-metrics {
    width:100%; border-inline-start:0; padding-inline-start:0;
    border-top:1px solid var(--line); padding-top:18px;
    justify-content:space-around;
  }
  .status-metric-item { flex:1 1 0; min-width:0; }
}
