.bg-effect[data-v-f5953d9d]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none}*,:before,:after{--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: rgb(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: rgb(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: }.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.left-1\/2{left:50%}.right-4{right:1rem}.top-1\/2{top:50%}.top-4{top:1rem}.z-\[80\]{z-index:80}.z-\[90\]{z-index:90}.\!block{display:block!important}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-4{height:1rem}.h-8{height:2rem}.h-9{height:2.25rem}.min-h-\[60px\]{min-height:60px}.w-4{width:1rem}.w-9{width:2.25rem}.w-\[calc\(100vw-32px\)\]{width:calc(100vw - 32px)}.w-full{width:100%}.max-w-md{max-width:28rem}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.whitespace-nowrap{white-space:nowrap}.rounded-\[4px\]{border-radius:4px}.rounded-lg{border-radius:10px}.rounded-md{border-radius:8px}.rounded-sm{border-radius:6px}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--border-strong\)\],.border-input{border-color:var(--border-strong)}.border-transparent{border-color:transparent}.bg-\[var\(--ok\)\]{background-color:var(--ok)}.bg-\[var\(--warn\)\]{background-color:var(--warn)}.bg-black\/45{background-color:#00000073}.bg-card{background-color:var(--card-solid)}.bg-destructive{background-color:var(--err)}.bg-popover{background-color:var(--card-solid)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--fill)}.bg-transparent{background-color:transparent}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.pt-0{padding-top:0}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.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-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-card-foreground{color:var(--text)}.text-destructive-foreground{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-foreground{color:var(--text)}.text-muted-foreground{color:var(--text2)}.text-primary{color:var(--primary)}.text-primary-foreground{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:var(--text)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-60{opacity:.6}.shadow{--tw-shadow: var(--shadow);--tw-shadow-colored: var(--shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: var(--shadow-lg);--tw-shadow-colored: var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: var(--shadow-sm);--tw-shadow-colored: var(--shadow-sm);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);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)}.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-blur-\[2px\]{--tw-backdrop-blur: blur(2px);-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)}.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,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-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.\!running{animation-play-state:running!important}.running{animation-play-state:running}.paused{animation-play-state:paused}:root{--bg1: #fbfbfd;--bg2: #f5f5f7;--bg3: #efeff4;--glow1: rgba(0, 122, 255, .07);--glow2: rgba(175, 82, 222, .07);--primary: #007aff;--primary-hover: #0066d6;--primary-grad: linear-gradient(135deg, #0a84ff 0%, #0066d6 100%);--accent: #af52de;--ring: rgba(0, 122, 255, .16);--text: #1d1d1f;--text2: #5f5f66;--text3: #8a8a90;--card: rgba(255, 255, 255, .86);--card-solid: #ffffff;--fill: rgba(120, 120, 128, .08);--fill-strong: rgba(120, 120, 128, .14);--btn-bg: rgba(120, 120, 128, .12);--btn-bg-hover: rgba(120, 120, 128, .2);--icon-bg: rgba(38, 45, 60, .88);--border: rgba(0, 0, 0, .07);--border-strong: rgba(0, 0, 0, .14);--ok: #34c759;--warn: #ff9500;--err: #ff3b30;--info: #5ac8fa;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05), 0 2px 6px rgba(0, 0, 0, .05);--shadow: 0 2px 6px rgba(0, 0, 0, .06), 0 8px 20px rgba(0, 0, 0, .07);--shadow-lg: 0 6px 16px rgba(0, 0, 0, .08), 0 14px 34px rgba(0, 0, 0, .09);--shadow-xl: 0 20px 48px rgba(0, 0, 0, .18);--radius-sm: 8px;--radius: 12px;--radius-lg: 14px;--ease: cubic-bezier(.16, 1, .3, 1);--dur: .18s}html.dark{--bg1: #050509;--bg2: #0b0b12;--bg3: #10101a;--glow1: rgba(0, 122, 255, .13);--glow2: rgba(175, 82, 222, .11);--primary-grad: linear-gradient(135deg, #0a84ff 0%, #0055c4 100%);--ring: rgba(0, 122, 255, .28);--text: #f5f5f7;--text2: #a8a8b0;--text3: #8a8a93;--card: rgba(26, 26, 34, .82);--card-solid: #1a1a22;--fill: rgba(120, 120, 128, .14);--fill-strong: rgba(120, 120, 128, .22);--btn-bg: rgba(120, 120, 128, .22);--btn-bg-hover: rgba(120, 120, 128, .32);--icon-bg: rgba(255, 255, 255, .1);--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .18);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 2px 6px rgba(0, 0, 0, .26);--shadow: 0 2px 6px rgba(0, 0, 0, .34), 0 8px 20px rgba(0, 0, 0, .3);--shadow-lg: 0 6px 16px rgba(0, 0, 0, .4), 0 14px 32px rgba(0, 0, 0, .36);--shadow-xl: 0 18px 44px rgba(0, 0, 0, .55)}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;color:var(--text);background:linear-gradient(180deg,var(--bg1) 0%,var(--bg2) 45%,var(--bg3) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background .3s,color .3s}::-moz-selection{background:#007aff38}::selection{background:#007aff38}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(600px 400px at 15% 0%,var(--glow1),transparent 70%),radial-gradient(700px 500px at 85% 10%,var(--glow2),transparent 70%),radial-gradient(500px 500px at 50% 100%,var(--glow1),transparent 75%);z-index:0}#app{position:relative;z-index:1}a{color:var(--primary);text-decoration:none;transition:opacity var(--dur)}a:hover{opacity:.82}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--fill-strong);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:8px;border:1px solid transparent;font-size:13.5px;font-weight:500;line-height:1;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background var(--dur),border-color var(--dur),color var(--dur),opacity var(--dur);background:var(--btn-bg);color:var(--text);white-space:nowrap}.btn:hover{background:var(--btn-bg-hover)}.btn:active{opacity:.85}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg1),0 0 0 4px var(--ring)}.btn-primary{background:var(--primary);border-color:transparent;color:#fff}.btn-primary:hover{background:var(--primary-hover);border-color:transparent}.btn-danger{color:var(--err);border-color:#ff3b3066;background:transparent;box-shadow:none}.btn-danger:hover{background:#ff3b301a;border-color:var(--err)}.btn-ghost{border-color:transparent;background:transparent;color:var(--primary);box-shadow:none}.btn-ghost:hover{background:#007aff14;border-color:transparent}.btn-sm{height:30px;padding:0 12px;font-size:12.5px;border-radius:8px}.btn-xs{height:24px;padding:0 9px;gap:4px;font-size:11.5px;font-weight:500;border-radius:6px}.btn-xs .app-icon{vertical-align:-1px}.input,select.input,textarea.input{width:100%;height:38px;padding:0 12px;border-radius:8px;border:1px solid var(--border-strong);background:transparent;color:var(--text);font-size:13.5px;line-height:1.5;outline:none;box-shadow:var(--shadow-sm);transition:border-color var(--dur),box-shadow var(--dur),background var(--dur)}.input:hover{border-color:var(--text3)}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.input::-moz-placeholder{color:var(--text3)}.input::placeholder{color:var(--text3)}textarea.input{resize:vertical;min-height:72px;height:auto;padding:8px 12px}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.field{margin-bottom:16px}.field label{display:block;font-size:12.5px;color:var(--text2);margin-bottom:7px;font-weight:600;letter-spacing:.01em}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.badge.queued{background:#5ac8fa24;color:var(--info);box-shadow:inset 0 0 0 1px #5ac8fa38}.badge.running{background:#007aff21;color:var(--primary);box-shadow:inset 0 0 0 1px #007aff38}.badge.success{background:#34c75921;color:var(--ok);box-shadow:inset 0 0 0 1px #34c75938}.badge.partial{background:#ff950021;color:var(--warn);box-shadow:inset 0 0 0 1px #ff950038}.badge.failed{background:#ff3b301f;color:var(--err);box-shadow:inset 0 0 0 1px #ff3b3038}.badge.aborted{background:var(--fill-strong);color:var(--text2)}.badge.dim{background:var(--fill);color:var(--text2)}.table-wrap{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.table-wrap::-webkit-scrollbar{height:9px}.table-wrap::-webkit-scrollbar-track{background:transparent}.table-wrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}.table-wrap::-webkit-scrollbar-thumb:hover{background:var(--text3)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;padding:10px 12px;color:var(--text3);font-size:11.5px;font-weight:600;letter-spacing:.02em;background:var(--fill);border-bottom:1px solid var(--border);white-space:nowrap}.tbl td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.tbl tbody tr{transition:background var(--dur)}.tbl tbody tr:hover{background:var(--fill)}.tbl tr:last-child td{border-bottom:none}.muted{color:var(--text2)}.small{font-size:12px}.mono{font-family:ui-monospace,SF Mono,Consolas,monospace}.flex{display:flex;align-items:center}.between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap8{gap:8px}.gap12{gap:12px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}.pt24{padding-top:24px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000061;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;animation:mask-in .2s var(--ease)}@keyframes mask-in{0%{opacity:0}}.modal{width:100%;max-width:448px;max-height:86vh;overflow-y:auto;background:var(--card-solid);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-xl);padding:24px;animation:modal-pop .22s var(--ease)}@keyframes modal-pop{0%{opacity:0;transform:scale(.97) translateY(6px)}}.modal h3{font-size:16px;font-weight:600;letter-spacing:-.01em;margin-bottom:16px}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:100;animation:mask-in .2s var(--ease)}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:var(--card-solid);border-left:1px solid var(--border);box-shadow:var(--shadow-xl);z-index:101;display:flex;flex-direction:column;animation:drawer-in .3s var(--ease)}@keyframes drawer-in{0%{transform:translate(40px);opacity:0}}.drawer-head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.drawer-body{flex:1;overflow-y:auto;padding:16px 20px}.log-console{position:relative;display:flex;flex-direction:column;margin-top:14px;border-radius:14px;border:1px solid var(--border-strong);background:var(--card-solid);overflow:hidden;box-shadow:var(--shadow-sm)}.log-bar{flex:none;display:flex;align-items:center;gap:10px;padding:9px 12px;background:linear-gradient(180deg,var(--fill),transparent);border-bottom:1px solid var(--border)}.log-dots{display:inline-flex;gap:5px;margin-right:2px}.log-dots i{width:9px;height:9px;border-radius:50%;display:block}.log-dots i:nth-child(1){background:#ff5f57}.log-dots i:nth-child(2){background:#febc2e}.log-dots i:nth-child(3){background:#28c840}.log-live{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--text3);padding:3px 9px;border-radius:999px;background:var(--fill);border:1px solid var(--border);transition:color var(--dur),background var(--dur),border-color var(--dur)}.log-live.on{color:var(--ok);background:#34c7591f;border-color:#34c7594d}.log-live .pulse{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.log-live.on .pulse{animation:log-pulse 1.4s ease-in-out infinite}@keyframes log-pulse{0%,to{box-shadow:0 0 #34c75980}50%{box-shadow:0 0 0 5px #34c75900}}.log-count{font-size:11.5px;color:var(--text3);font-variant-numeric:tabular-nums}.log-actions{margin-left:auto;display:flex;gap:6px}.log-btn{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;font-family:inherit;color:var(--text2);background:var(--card-solid);border:1px solid var(--border-strong);padding:4px 10px;border-radius:8px;cursor:pointer;transition:color var(--dur),border-color var(--dur),background var(--dur)}.log-btn:hover{color:var(--primary);border-color:var(--primary)}.log-btn.active{color:var(--primary);border-color:var(--primary);background:var(--ring)}.log-btn svg{width:13px;height:13px;flex:none}.log-body{flex:1;min-height:0;overflow-y:auto;padding:8px 4px 12px;font-family:ui-monospace,SF Mono,JetBrains Mono,Consolas,monospace;font-size:12.5px;line-height:1.7;overscroll-behavior:contain}.log-line{display:flex;gap:10px;padding:1px 12px;border-radius:6px;animation:line-in .22s var(--ease);transition:background .12s}.log-line:hover{background:var(--fill)}@keyframes line-in{0%{opacity:0;transform:translateY(3px)}}.log-seq{flex:none;width:36px;text-align:right;color:var(--text3);opacity:.55;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.log-text{flex:1;min-width:0;white-space:pre-wrap;word-break:break-word;color:var(--text)}.log-line.head{background:var(--fill)}.log-line.head .log-text{font-weight:700;letter-spacing:.2px}.log-line.ok .log-text{color:var(--ok)}.log-line.err .log-text{color:var(--err);font-weight:600}.log-line.warn .log-text{color:var(--warn)}.log-line.info .log-text{color:var(--primary)}.log-line.stat .log-text{color:var(--accent);font-weight:600}.log-line.empty{padding-top:0;padding-bottom:0}.log-line.empty .log-text{min-height:6px}.log-empty{padding:48px 0;text-align:center;color:var(--text3);font-size:12.5px;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif}.log-jump{position:absolute;left:50%;bottom:14px;transform:translate(-50%);display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;font-family:inherit;color:#fff;background:var(--primary);border:none;cursor:pointer;box-shadow:var(--shadow);z-index:2}.log-jump:hover{background:var(--primary-hover)}.logfade-enter-active,.logfade-leave-active{transition:opacity .2s}.logfade-enter-from,.logfade-leave-to{opacity:0}.modal-lg{max-width:900px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-lg>h3,.modal-lg .meta-info,.modal-lg .repliesms-prompt,.modal-lg>.flex{flex:none}.modal-lg .log-console{flex:1 1 auto;min-height:240px}.meta-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.repliesms-prompt{margin-top:14px;border:1px solid rgba(255,149,0,.38);background:#ff950014;border-radius:14px;padding:18px;text-align:center}.repliesms-prompt .alert-icon{font-size:22px;line-height:1;margin-bottom:6px}.repliesms-prompt .alert-title{font-weight:700;color:var(--warn);margin-bottom:10px}.repliesms-prompt .alert-body{font-size:13.5px;color:var(--text2);line-height:1.95}.spin{display:inline-block;width:18px;height:18px;flex:none;border:3px solid var(--fill-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-wrap{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{padding:10px 20px;border-radius:12px;background:var(--card-solid);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);font-size:14px;max-width:min(520px,90vw);animation:toast-in .28s var(--ease);display:flex;align-items:center;gap:10px}.toast.ok{border-color:#34c75980;color:var(--ok)}.toast.err{border-color:#ff3b3080;color:var(--err)}.toast-report{pointer-events:auto;flex-shrink:0;border:1px solid currentColor;background:transparent;color:inherit;border-radius:8px;padding:3px 10px;font-size:12px;cursor:pointer;opacity:.9;transition:opacity var(--dur),background var(--dur)}.toast-report:hover:not(:disabled){opacity:1;background:#ff3b3014}.toast-report:disabled{cursor:default;opacity:.55;border-style:dashed}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px) scale(.96)}}.nav{display:flex;align-items:center;justify-content:space-between;padding:18px 5vw;max-width:1200px;margin:0 auto}.logo{font-size:18px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.logo-badge{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--primary),var(--accent));display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:15px;box-shadow:0 4px 12px #007aff59}.hero{text-align:center;padding:9vh 20px 60px;max-width:860px;margin:0 auto}.hero h1{font-size:clamp(34px,5.5vw,56px);font-weight:700;letter-spacing:-.5px;line-height:1.15;background:linear-gradient(120deg,var(--text) 30%,var(--primary) 65%,var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero p{margin-top:18px;font-size:17px;color:var(--text2);line-height:1.7}.hero .actions{margin-top:32px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.btn-lg{padding:13px 30px;font-size:16px;border-radius:14px}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;max-width:1100px;margin:0 auto;padding:20px 5vw 60px}.feature-card{text-align:left}.feature-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.feature-card .ico{font-size:26px}.feature-card h4{margin:10px 0 6px;font-size:16px;font-weight:650}.feature-card p{font-size:13.5px;color:var(--text2);line-height:1.6}.section-title{text-align:center;font-size:26px;font-weight:700;letter-spacing:-.01em;margin:30px 0 26px}.footer{text-align:center;color:var(--text2);font-size:13px;padding:40px 20px}.auth-wrap{min-height:100vh;display:flex}.auth-shell{display:flex;width:100%;min-height:100vh}.auth-side{position:relative;overflow:hidden;flex:1.2;min-width:0;padding:28px 48px 24px;display:flex;flex-direction:column;color:#fff;background:radial-gradient(900px 520px at 78% 112%,rgba(255,176,32,.28),transparent 56%),linear-gradient(168deg,#070d1f,#0b1e4d 44%,#12408f 74%,#1a5ec6)}.auth-side:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.55;background-image:radial-gradient(1.6px 1.6px at 16% 20%,rgba(255,255,255,.75),transparent),radial-gradient(1px 1px at 64% 12%,rgba(255,255,255,.55),transparent),radial-gradient(1.6px 1.6px at 84% 32%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 36% 44%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 58% 62%,rgba(255,255,255,.35),transparent),radial-gradient(1.6px 1.6px at 22% 72%,rgba(255,255,255,.45),transparent),radial-gradient(1px 1px at 76% 84%,rgba(255,255,255,.35),transparent)}.auth-orb{position:absolute;left:50%;bottom:-120px;width:360px;height:360px;border-radius:50%;transform:translate(-50%);background:radial-gradient(circle,rgba(255,198,70,.5),rgba(255,160,40,.15) 46%,transparent 70%);filter:blur(36px);pointer-events:none;animation:orb-breathe 5.2s ease-in-out infinite}@keyframes orb-breathe{0%,to{opacity:.75;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.07)}}.auth-back{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:12.5px;color:#ffffffd1;transition:color var(--dur)}.auth-back:hover{color:#fff;opacity:1}.auth-side-top{position:relative;z-index:1;display:flex;flex-direction:column;gap:30px}.auth-side-logo{display:flex;align-items:center;gap:13px}.auth-side-logo .logo-badge{width:48px;height:48px;border-radius:15px;font-size:23px;background:#ffffff24;border:1px solid rgba(255,255,255,.26);box-shadow:0 10px 26px #00000047;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-side-logo h1{font-size:18px;font-weight:700;letter-spacing:.01em}.auth-side-sub{font-size:11.5px;opacity:.72;margin-top:3px}.auth-hero{position:relative;z-index:1;margin:auto 0;padding:48px 0;animation:auth-up .6s var(--ease) both}.auth-hero h2{font-size:34px;font-weight:700;line-height:1.35;letter-spacing:.01em;margin:20px 0 14px;background:linear-gradient(110deg,#fff 32%,#ffe6bd 48%,#cfe6ff 56%,#fff 70%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:hero-shimmer 7s linear infinite}@keyframes hero-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media (prefers-reduced-motion: reduce){.auth-hero h2{animation:none}}.auth-hero p{font-size:13.5px;line-height:1.9;opacity:.78;max-width:400px}.auth-slogan{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:5px 13px;border-radius:999px;font-size:12px;letter-spacing:.03em;background:#ffffff1c;border:1px solid rgba(255,255,255,.16)}.auth-side-bottom{position:relative;z-index:1;animation:auth-up .6s .15s var(--ease) both}.auth-feat-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.auth-feat2{display:inline-flex;align-items:center;gap:7px;font-size:12px;padding:7px 13px;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.auth-side-foot{font-size:11.5px;opacity:.6}.auth-panel{width:480px;flex:none;display:flex;flex-direction:column;justify-content:center;padding:40px 56px;background:var(--bg1)}.auth-panel-inner{width:100%;max-width:350px;margin:0 auto}.auth-panel-inner>*{animation:auth-up .45s var(--ease) both}.auth-panel-inner>*:nth-child(2){animation-delay:.05s}.auth-panel-inner>*:nth-child(3){animation-delay:.1s}.auth-panel-inner>*:nth-child(4){animation-delay:.15s}.auth-panel-inner>*:nth-child(5){animation-delay:.2s}@keyframes auth-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.auth-panel-brand{display:none;align-items:center;gap:10px;margin-bottom:26px}.auth-panel-brand .logo-badge{width:38px;height:38px;border-radius:11px}.auth-panel-brand b{font-size:15px;display:block}.auth-panel-brand small{font-size:11.5px;color:var(--text3)}.auth-panel h2{font-size:26px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.auth-panel .sub{color:var(--text2);font-size:13px;margin:8px 0 26px}@media (max-width: 800px){.auth-panel{width:100%;padding:32px 24px}.auth-panel-brand{display:flex}}.auth-input{display:flex;align-items:center;gap:9px;border:1px solid var(--border-strong);border-radius:13px;background:var(--card-solid);padding:0 13px;transition:border-color var(--dur),box-shadow var(--dur)}.auth-input .app-icon{color:var(--text3);flex:none;transition:color var(--dur)}.auth-input input{flex:1;min-width:0;border:none;outline:none;background:transparent;padding:12px 0;font-size:14px;color:var(--text)}.auth-input input::-moz-placeholder{color:var(--text3)}.auth-input input::placeholder{color:var(--text3)}.auth-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px var(--ring)}.auth-input:focus-within .app-icon{color:var(--primary)}.auth-code-btn{flex:none;border:none;background:transparent;cursor:pointer;color:var(--primary);font-size:13px;font-weight:600;padding:6px 2px}.auth-code-btn:disabled{color:var(--text3);cursor:not-allowed;font-weight:400}.auth-btn{width:100%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border-radius:14px;font-size:15px;font-weight:600;letter-spacing:.08em;color:#fff;background:var(--primary-grad);box-shadow:0 6px 18px #007aff52;transition:transform var(--dur) var(--ease),box-shadow var(--dur),filter var(--dur)}.auth-btn:hover{transform:translateY(-1px);box-shadow:0 8px 26px #007aff70;filter:brightness(1.05)}.auth-btn:active{transform:scale(.98);box-shadow:none}.auth-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none;filter:none}.auth-links{display:flex;justify-content:space-between;margin-top:16px;font-size:13px}.agree-line{text-align:center;font-size:12px;color:var(--text3);margin-top:14px}.agree-line a,.agree-check a{color:var(--primary);cursor:pointer}.agree-line a:hover,.agree-check a:hover{text-decoration:underline}.agree-check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text2);margin:2px 0 14px;cursor:pointer}.agree-check input[type=checkbox]{accent-color:var(--primary);cursor:pointer}.agree-modal{max-width:640px;width:92vw}.agree-doc{max-height:60vh;overflow-y:auto;font-size:13px;line-height:1.9;color:var(--text2);padding-right:8px}.agree-doc h4{color:var(--text);font-size:13.5px;font-weight:650;margin:16px 0 4px}.agree-doc p{margin:5px 0}.agree-doc ul{padding-left:20px;margin:5px 0}@media (max-width: 800px){.auth-side{display:none}}.console{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;border-right:1px solid var(--border);background:var(--card);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);padding:18px 14px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:90;transition:transform .32s var(--ease)}.sidebar .logo{padding:4px 8px 14px}.side-nav{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin}.side-group{padding:14px 10px 6px;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--text2);opacity:.6;-webkit-user-select:none;-moz-user-select:none;user-select:none}.side-nav .side-group:first-child{padding-top:2px}.side-link{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:12px;color:var(--text2);font-size:13.5px;font-weight:500;transition:all var(--dur) var(--ease)}.side-link .ico{width:30px;height:30px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--fill);transition:all var(--dur) var(--ease)}.side-link:hover{color:var(--text);background:var(--fill)}.side-link:hover .ico{background:var(--card)}.side-link.active{color:#fff;font-weight:600;background:var(--primary-grad);box-shadow:0 6px 16px #007aff52}.side-link.active .ico{background:#fff3;color:#fff}.app-icon{display:inline-block;vertical-align:-2px;flex-shrink:0}.side-link .app-icon,.stat-ico .app-icon,.empty-ico .app-icon,.logo-badge .app-icon,.type-card .ico .app-icon{vertical-align:0}h3 .app-icon{vertical-align:-3px}.stat-ico{display:inline-flex;align-items:center;justify-content:center}.empty-ico{display:inline-flex;justify-content:center}.sidebar-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.side-actions{display:flex;gap:8px}.side-btn{flex:1;height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text2);font-size:12.5px;font-weight:500;cursor:pointer;transition:all var(--dur) var(--ease)}.side-btn:hover{color:var(--text);background:var(--fill)}.side-btn.danger:hover{color:var(--err);border-color:#ff3b3059;background:#ff3b3014}.menu-btn{display:none;width:38px;height:38px;flex:none;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:11px;background:var(--card);color:var(--text);cursor:pointer}.side-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:89;background:#0000006b;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .28s var(--ease)}.side-mask.show{opacity:1;pointer-events:auto}.topbar-lead{display:flex;align-items:center;gap:12px;min-width:0}.main{flex:1;min-width:0;padding:26px clamp(16px,3vw,40px) 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:24px}.topbar h1{font-size:22px;font-weight:700;letter-spacing:-.02em}.topbar .actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.top-points{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:99px;background:#ffcc0024;border:1px solid rgba(255,204,0,.38);color:#9c7a00;font-weight:650;font-size:13px}html.dark .top-points{color:#ffd60a}.top-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:650;font-size:14px;display:flex;align-items:center;justify-content:center;text-decoration:none}.free-banner{display:flex;align-items:center;justify-content:center;gap:8px;background:#ffd60a29;border:1px solid rgba(255,214,10,.4);color:#8a6d00;padding:9px 16px;border-radius:12px;margin-bottom:18px;font-size:13px}html.dark .free-banner{color:#ffd60a}.free-banner .x{margin-left:auto;cursor:pointer;opacity:.55;padding:0 4px}.free-banner .x:hover{opacity:1}.ann-toasts{position:fixed;right:18px;bottom:18px;z-index:120;display:flex;flex-direction:column;gap:10px;width:min(340px,calc(100vw - 36px))}.ann-toast{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-radius:12px;border:1px solid transparent;font-size:12.5px;line-height:1.55;box-shadow:0 10px 30px #0000002e;animation:ann-toast-in .22s ease-out}@keyframes ann-toast-in{0%{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}.ann-toast .x{flex:none;cursor:pointer;opacity:.6;padding:0 2px}.ann-toast .x:hover{opacity:1}@media (max-width: 640px){.ann-toasts{right:12px;left:12px;bottom:12px;width:auto}}.welcome{display:flex;justify-content:space-between;gap:24px;padding:32px 34px;border-radius:18px;border:1px solid var(--border);background:linear-gradient(120deg,#e8f2ff,#f2eaff)}html.dark .welcome{background:linear-gradient(120deg,#007aff21,#af52de21)}.welcome-main{min-width:0}.welcome-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;color:var(--primary);background:#ffffff8c;border:1px solid rgba(0,122,255,.25);padding:4px 12px;border-radius:99px}html.dark .welcome-badge{background:#ffffff14}.welcome h2{font-size:26px;font-weight:700;letter-spacing:-.01em;margin:12px 0 8px}.welcome p{color:var(--text2);font-size:13.5px;margin:0}.welcome-side{width:300px;flex-shrink:0;align-self:center;background:#ffffff9e;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.5);border-radius:14px;padding:18px 20px;box-shadow:0 8px 24px #0000000f}html.dark .welcome-side{background:#1c1c208c;border-color:var(--border)}.ws-head{display:flex;justify-content:space-between;font-size:12px;color:var(--text3)}.ws-head .live{color:var(--ok);font-weight:600}.ws-label{font-size:12px;color:var(--text3);margin-top:12px}.ws-balance{font-size:34px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.ws-grid{display:flex;gap:22px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.ws-grid small{display:block;font-size:11.5px;color:var(--text3)}.ws-grid b{font-size:16px;font-weight:650}.ws-of{margin-left:1px;font-size:12px;font-weight:500;color:var(--text3)}.ws-lines{display:flex;flex-direction:column;gap:5px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.ws-lines>div{display:flex;align-items:baseline;gap:8px;font-size:12px}.ws-lines span{flex:none;color:var(--text3)}.ws-lines b{min-width:0;font-weight:600;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.next-link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;text-decoration:none;color:inherit;transition:background var(--dur)}.next-link:hover{background:var(--bg3)}.next-link b{display:block;font-size:13.5px;font-weight:600}.next-link small{font-size:12px;color:var(--text3)}.next-link .arrow{margin-left:auto;color:var(--text3)}.ni{width:36px;height:36px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff}.ni.green{background:linear-gradient(135deg,#34c759,#28a745)}.ni.blue{background:linear-gradient(135deg,#0a84ff,#06c)}.ni.orange{background:linear-gradient(135deg,#ff9f0a,#ff7a00)}.status-row{display:flex;justify-content:space-between;align-items:center;font-size:13.5px}.progress{height:8px;border-radius:99px;background:var(--bg3);overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width .4s var(--ease)}@media (max-width: 900px){.welcome{flex-direction:column}.welcome-side{width:100%}.dash-grid{grid-template-columns:1fr}}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.stat-card{position:relative;overflow:hidden;padding:18px}.stat-card:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--primary-grad);opacity:0;transition:opacity var(--dur)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-card:hover:after{opacity:1}.stat-card .label{font-size:12.5px;font-weight:500;color:var(--text2)}.stat-card .value{font-size:27px;font-weight:700;letter-spacing:-.02em;margin-top:7px;font-variant-numeric:tabular-nums}.stat-card .value.accent{color:var(--primary)}.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.type-card{cursor:pointer;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);position:relative}.type-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.type-card:active{transform:translateY(-1px) scale(.99)}.type-card.disabled{opacity:.5;cursor:not-allowed}.type-card.disabled:hover{transform:none;box-shadow:var(--shadow-sm)}.type-card .head{display:flex;align-items:center;gap:10px}.type-card .ico{font-size:22px;transition:transform var(--dur) var(--ease)}.type-card:hover .ico{transform:scale(1.15)}.type-card .name{font-weight:600;font-size:15px}.type-card .desc{font-size:12.5px;color:var(--text2);margin-top:8px;line-height:1.55;min-height:38px}.type-card .foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.price-tag{color:var(--primary);font-weight:700;font-size:14px}.danger-tag{color:var(--err);font-size:12px}.pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:14px}.empty{text-align:center;color:var(--text2);padding:38px 0;font-size:13.5px;line-height:1.7}.checkbox-row{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:6px 14px;border-radius:999px;border:1px solid var(--border-strong);font-size:13px;font-weight:500;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all var(--dur) var(--ease)}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip.on{background:var(--primary-grad);border-color:transparent;color:#fff;box-shadow:0 2px 8px #007aff4d}.chip.on:hover{color:#fff;filter:brightness(1.06)}.chip-n{margin-left:6px;opacity:.65;font-size:11px}.pin-tag,.off-tag{display:inline-flex;align-items:center;gap:3px;flex:none;border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:650;line-height:1.6}.pin-tag{background:#ff9f0a29;color:#c76a00}.off-tag{background:#80808029;color:var(--text3)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px 12px;flex-wrap:wrap;margin-bottom:14px}.card-head h3{flex:none;font-size:15.5px;font-weight:650;letter-spacing:-.01em;display:flex;align-items:center;gap:9px}.card-head h3 .app-icon{color:var(--primary);background:var(--ring);border-radius:8px;padding:5px;box-sizing:content-box}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.stat-card{display:flex;align-items:center;justify-content:space-between;gap:10px}.stat-ico{width:40px;height:40px;border-radius:12px;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:19px}.stat-ico.blue{background:#007aff1f}.stat-ico.green{background:#34c75921}.stat-ico.orange{background:#ff950021}.stat-ico.purple{background:#af52de21}.stat-ico.cyan{background:#5ac8fa24}.stat-ico.red{background:#ff3b301f}.stat-ico.gray{background:var(--fill-strong)}.seg{display:inline-flex;gap:2px;padding:3px;background:var(--fill);border-radius:12px;flex-wrap:wrap}.seg-item{padding:6px 14px;border-radius:9px;font-size:13px;font-weight:500;color:var(--text2);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;transition:all var(--dur) var(--ease)}.seg-item:hover{color:var(--text)}.seg-item.on{background:var(--card-solid);color:var(--text);font-weight:600;box-shadow:var(--shadow-sm)}.desc{display:flex;flex-direction:column}.desc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dashed var(--border);font-size:13.5px}.desc-row:last-child{border-bottom:none}.desc-row .k{color:var(--text2);flex:none}.desc-row .v{text-align:right;min-width:0}.avatar{width:34px;height:34px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 2px 8px #007aff4d}.avatar.sm{width:26px;height:26px;font-size:12px;border-radius:9px;box-shadow:none}.side-user{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:var(--fill);margin-bottom:8px}.side-user .mail{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.side-user .sub2{font-size:11px;color:var(--text2);margin-top:1px}.badge i.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.badge.running i.dot{animation:dot-pulse 1.2s ease-in-out infinite}@keyframes dot-pulse{50%{opacity:.35}}.num-pos{color:var(--ok);font-weight:650;font-variant-numeric:tabular-nums}.num-neg{color:var(--err);font-weight:650;font-variant-numeric:tabular-nums}.page-enter-active{transition:opacity .28s ease-out,transform .28s ease-out}.page-leave-active{transition:opacity .2s ease-in,transform .2s ease-in}.page-enter-from{opacity:0;transform:translateY(10px)}.page-leave-to{opacity:0;transform:translateY(-5px)}.toast:before{margin-right:8px;font-weight:700}.toast.ok:before{content:"✓"}.toast.err:before{content:"✕"}.nav{position:sticky;top:0;z-index:40;backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5)}.empty-ico{font-size:34px;display:block;margin-bottom:10px;opacity:.5}.key-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:12px;background:var(--fill)}@media (max-width: 960px){.topbar h1{font-size:20px}.stat-card .value{font-size:23px}}@media (max-width: 860px){.sidebar{position:fixed;left:0;top:0;bottom:0;height:100dvh;width:262px;transform:translate(-102%);box-shadow:0 24px 60px #00000040}.sidebar.open{transform:translate(0)}.menu-btn{display:inline-flex}.main{padding:16px 14px 48px}}@media (max-width: 640px){.topbar{flex-direction:column;align-items:flex-start}.drawer{width:100vw}.modal{padding:20px}.hero{padding:7vh 16px 44px}.hero .actions .btn{width:100%}.tbl th,.tbl td{padding:10px}.auth-panel{padding:28px 22px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.page-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px 34px;border-radius:18px;border:1px solid var(--border);background:linear-gradient(120deg,#e8f2ff,#f2eaff);margin-bottom:18px}html.dark .page-hero{background:linear-gradient(120deg,#007aff21,#af52de21)}.eyebrow{font-size:12.5px;font-weight:650;color:var(--primary);letter-spacing:.04em}.page-hero h2{font-size:26px;font-weight:700;letter-spacing:-.01em;margin:8px 0 6px}.page-hero .sub{color:var(--text2);font-size:13.5px;margin:0}.hero-side{display:flex;gap:12px;align-items:stretch;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.mini-stat{min-width:108px;padding:12px 18px;border-radius:14px;background:#ffffffd1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.5);box-shadow:0 6px 18px #0000000d;display:flex;flex-direction:column;justify-content:center;gap:2px}html.dark .mini-stat{background:#1c1c208c;border-color:var(--border)}.mini-stat small{font-size:11.5px;color:var(--text3)}.mini-stat b{font-size:22px;font-weight:700;letter-spacing:-.01em}.mini-stat b.ok{color:var(--ok)}.mini-stat b.accent{color:var(--primary)}.info-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}.info-strip .card{display:flex;align-items:center;gap:11px;padding:14px 16px;border-radius:var(--radius)}.info-strip .app-icon{color:var(--primary)}.info-strip small{display:block;font-size:11.5px;color:var(--text3)}.info-strip b{font-size:17px;font-weight:650;letter-spacing:-.01em}.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--card-solid);margin-bottom:16px}.filter-bar .input{width:auto;min-width:170px;flex:0 1 auto}.filter-bar .btn-sm{height:38px;padding:0 14px}.filter-bar .grow{flex:1 1 200px}.pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pick-card{display:flex;align-items:center;gap:8px;justify-content:center;padding:12px 10px;border-radius:12px;cursor:pointer;border:1.5px solid var(--border);background:var(--card-solid);font-size:13.5px;font-weight:550;transition:all var(--dur);-webkit-tap-highlight-color:transparent}.pick-card:hover{border-color:var(--primary)}.pick-card.on{border-color:var(--primary);background:#007aff14;color:var(--primary)}.pick-card.off{opacity:.45;cursor:not-allowed}.pick-card .tag{font-size:10.5px;color:var(--warn);font-weight:500}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.cal-head{text-align:center;font-size:12px;color:var(--text3);padding:4px 0}.cal-cell{min-height:74px;border-radius:12px;padding:8px 10px;border:1px solid var(--border);background:var(--card-solid);cursor:pointer;transition:all var(--dur);font-size:12.5px}.cal-cell:hover{border-color:var(--primary)}.cal-cell.sel{border-color:var(--primary);box-shadow:0 0 0 2px #007aff33}.cal-cell.dim{opacity:.38;cursor:default}.cal-cell .d{font-weight:650}.cal-cell .marks{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.cal-cell .marks i{font-style:normal;font-size:11px}.cal-cell .marks .ok{color:var(--ok)}.cal-cell .marks .bad{color:var(--err)}.cal-cell .marks .run{color:var(--primary)}.trend-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:var(--bg3)}.trend-tabs span{padding:6px 16px;border-radius:9px;font-size:12.5px;cursor:pointer;transition:all var(--dur)}.trend-tabs span.on{background:var(--primary);color:#fff;font-weight:600}.trend-svg{width:100%;height:260px}.legend{display:flex;gap:18px;justify-content:center;font-size:12.5px;color:var(--text2)}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.fb-item{padding:14px 4px;border-bottom:1px solid var(--border)}.fb-item:last-child{border-bottom:none}.fb-q{font-size:13.5px;line-height:1.7;white-space:pre-wrap}.fb-a{margin-top:10px;padding:10px 14px;border-radius:10px;background:#007aff0f;border-left:3px solid var(--primary);font-size:13px;line-height:1.7;white-space:pre-wrap}.fb-a small{display:block;color:var(--text3);margin-top:4px}@media (max-width: 900px){.page-hero{flex-direction:column;align-items:stretch}.hero-side{justify-content:flex-start}.cal-cell{min-height:56px}}.invite-box{padding:14px 16px;border-radius:12px;background:linear-gradient(135deg,#0a84ff1a,#5856d614);border:1px solid rgba(10,132,255,.18)}.invite-cell{padding:10px 14px;border-radius:10px;background:var(--fill);display:flex;flex-direction:column;gap:2px}.invite-cell small{color:var(--text3);font-size:11px}.invite-cell b{font-size:14px}:root{--ok-bg: rgba(52, 199, 89, .14);--warn-bg: rgba(255, 159, 10, .16);--err-bg: rgba(255, 59, 48, .14);--info-bg: rgba(90, 200, 250, .16);--bg: var(--card-solid)}.pn{display:block;min-width:0}.pn-card{margin-bottom:14px}.pn-card:last-child{margin-bottom:0}.head-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text2);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chk:hover{color:var(--text)}.toolbar.box{padding:9px 12px;border-radius:var(--radius);background:var(--fill);border:1px solid var(--border)}.toolbar.box>.grow{flex:1 1 180px}.sec+.sec{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.sec-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:9px;font-size:13.5px}.sec-head b{font-weight:650}.pn-list{display:flex;flex-direction:column;gap:6px}.pn-list.grid{display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));max-height:46vh;overflow-y:auto;overscroll-behavior:contain}.pn-row{display:flex;align-items:center;gap:9px;min-width:0;padding:8px 10px;border-radius:9px;font-size:12.5px;border:1px solid var(--border);background:var(--fill);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.pn-row.click{cursor:pointer}.pn-row.click:hover{border-color:var(--border-strong);background:var(--fill-strong)}.pn-row.on{border-color:var(--primary);background:var(--ring)}.pn-row.has{opacity:.62}.pn-row.dim{opacity:.55;cursor:not-allowed}.pn-row .grow{flex:1 1 auto;min-width:0}.pn-row .ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pn-row .lead{flex:none}.tag{flex:none;font-size:11px;line-height:1.75;padding:0 7px;border-radius:6px;color:var(--text2);background:var(--fill-strong);border:1px solid var(--border)}.tag.round{border-radius:999px}.state{flex:none;font-size:11px;line-height:1.75;padding:0 8px;border-radius:999px;color:var(--text2);background:var(--fill-strong);white-space:nowrap}.state.ok{color:var(--ok);background:var(--ok-bg)}.state.warn{color:var(--warn);background:var(--warn-bg)}.state.err{color:var(--err);background:var(--err-bg)}.state.info{color:var(--primary);background:var(--ring)}.tip{margin:10px 0 0;line-height:1.7}.tip.top{margin:0 0 12px}.ml-auto{margin-left:auto}.mb14{margin-bottom:14px}@media (max-width: 720px){.card-head{gap:8px 10px}.head-acts{width:100%}.pn-list.grid{grid-template-columns:1fr;max-height:none}.toolbar.box{padding:8px 10px}.toolbar.box>*{flex:1 1 auto;min-width:0}.sec-head{gap:6px 8px}}:root[data-accent=blue]{--primary: #007aff;--ring: rgba(0, 122, 255, .16);--glow1: rgba(0, 122, 255, .07);--glow2: rgba(0, 122, 255, .045)}:root[data-accent=violet]{--primary: #7c5cff;--ring: rgba(124, 92, 255, .16);--glow1: rgba(124, 92, 255, .07);--glow2: rgba(124, 92, 255, .045)}:root[data-accent=emerald]{--primary: #10b981;--ring: rgba(16, 185, 129, .16);--glow1: rgba(16, 185, 129, .07);--glow2: rgba(16, 185, 129, .045)}:root[data-accent=amber]{--primary: #f59e0b;--ring: rgba(245, 158, 11, .2);--glow1: rgba(245, 158, 11, .08);--glow2: rgba(245, 158, 11, .05)}:root[data-accent=rose]{--primary: #f43f5e;--ring: rgba(244, 63, 94, .16);--glow1: rgba(244, 63, 94, .07);--glow2: rgba(244, 63, 94, .045)}:root[data-accent=slate]{--primary: #64748b;--ring: rgba(100, 116, 139, .2);--glow1: rgba(100, 116, 139, .07);--glow2: rgba(100, 116, 139, .045)}:root[data-accent=cyan]{--primary: #0891b2;--ring: rgba(8, 145, 178, .18);--glow1: rgba(8, 145, 178, .075);--glow2: rgba(8, 145, 178, .045)}:root[data-accent=teal]{--primary: #0d9488;--ring: rgba(13, 148, 136, .18);--glow1: rgba(13, 148, 136, .075);--glow2: rgba(13, 148, 136, .045)}:root[data-accent=indigo]{--primary: #6366f1;--ring: rgba(99, 102, 241, .18);--glow1: rgba(99, 102, 241, .075);--glow2: rgba(99, 102, 241, .045)}:root[data-accent=magenta]{--primary: #c026d3;--ring: rgba(192, 38, 211, .18);--glow1: rgba(192, 38, 211, .07);--glow2: rgba(192, 38, 211, .045)}:root[data-accent=blue].dark{--ring: rgba(0, 122, 255, .28);--glow1: rgba(0, 122, 255, .13);--glow2: rgba(0, 122, 255, .08)}:root[data-accent=violet].dark{--ring: rgba(124, 92, 255, .3);--glow1: rgba(124, 92, 255, .13);--glow2: rgba(124, 92, 255, .08)}:root[data-accent=emerald].dark{--ring: rgba(16, 185, 129, .28);--glow1: rgba(16, 185, 129, .13);--glow2: rgba(16, 185, 129, .08)}:root[data-accent=amber].dark{--ring: rgba(245, 158, 11, .3);--glow1: rgba(245, 158, 11, .13);--glow2: rgba(245, 158, 11, .08)}:root[data-accent=rose].dark{--ring: rgba(244, 63, 94, .28);--glow1: rgba(244, 63, 94, .13);--glow2: rgba(244, 63, 94, .08)}:root[data-accent=slate].dark{--ring: rgba(100, 116, 139, .32);--glow1: rgba(100, 116, 139, .13);--glow2: rgba(100, 116, 139, .08)}:root[data-accent=cyan].dark{--ring: rgba(8, 145, 178, .3);--glow1: rgba(8, 145, 178, .14);--glow2: rgba(8, 145, 178, .09)}:root[data-accent=teal].dark{--ring: rgba(13, 148, 136, .3);--glow1: rgba(13, 148, 136, .14);--glow2: rgba(13, 148, 136, .09)}:root[data-accent=indigo].dark{--ring: rgba(99, 102, 241, .32);--glow1: rgba(99, 102, 241, .14);--glow2: rgba(99, 102, 241, .09)}:root[data-accent=magenta].dark{--ring: rgba(192, 38, 211, .3);--glow1: rgba(192, 38, 211, .13);--glow2: rgba(192, 38, 211, .08)}.welcome,.page-hero{background:linear-gradient(120deg,color-mix(in srgb,var(--primary) 12%,transparent),#af52de1f)}html.dark .welcome,html.dark .page-hero{background:linear-gradient(120deg,color-mix(in srgb,var(--primary) 15%,transparent),#af52de21)}.welcome-badge{background:color-mix(in srgb,var(--primary) 14%,transparent)}html[data-motion=reduce] *,html[data-motion=reduce] *:before,html[data-motion=reduce] *:after{transition-duration:.001ms!important;transition-delay:0ms!important;animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}html[data-motion=reduce] .card{background:var(--card-solid)}html[data-motion=reduce] .modal-mask{background:#0000008c}html[data-motion=reduce] .welcome-side,html[data-motion=reduce] .mini-stat{background:var(--card-solid)}html[data-motion=reduce] .card,html[data-motion=reduce] .side,html[data-motion=reduce] .nav,html[data-motion=reduce] .modal,html[data-motion=reduce] .modal-mask,html[data-motion=reduce] .welcome-side,html[data-motion=reduce] .mini-stat{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.pn-list,.table-wrap,.chat-list,.st-spirits .pn-list{overscroll-behavior:contain}.side-badge{margin-left:auto;min-width:20px;padding:0 6px;border-radius:999px;font-size:11px;line-height:17px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums;background:var(--ring);color:var(--primary)}.side-badge.off{background:var(--fill-strong);color:var(--text3)}.placeholder\:text-\[var\(--text3\)\]::-moz-placeholder{color:var(--text3)}.placeholder\:text-\[var\(--text3\)\]::placeholder{color:var(--text3)}.hover\:bg-\[var\(--fill-strong\)\]:hover{background-color:var(--fill-strong)}.hover\:bg-secondary:hover{background-color:var(--fill)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-90:hover{opacity:.9}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-\[var\(--ring\)\]:focus-visible{--tw-ring-color: var(--ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.data-\[state\=open\]\:animate-fade-in[data-state=open]{animation:fade-in .2s ease-out}@keyframes zoom-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.data-\[state\=open\]\:animate-zoom-in[data-state=open]{animation:zoom-in .2s cubic-bezier(.16,1,.3,1)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--fill)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.data-\[state\=closed\]\:opacity-0[data-state=closed]{opacity:0}@media (min-width: 640px){.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}.\[\&_tr\]\:border-\[var\(--border\)\] tr{border-color:var(--border)}
