:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbfaff;--surface:#ffffffd6;--text:#1e293b;--strong:#0f172a;--muted:#64748b;--border:#e2e8f0e6;--accent:#7c3aed;--accent-soft:#f5f3ff;--accent-line:#ddd6fe;--danger:#be123c;--danger-soft:#fff1f2;--danger-line:#fecdd3;--ok:#047857;--ok-soft:#ecfdf5;--ok-line:#a7f3d0;--warn:#b45309;--warn-soft:#fffbeb;--warn-line:#fde68a;--info:#0369a1;--info-soft:#f0f9ff;--info-line:#bae6fd;--pink:#be185d;--pink-soft:#fdf2f8;--pink-line:#fbcfe8;--brand:linear-gradient(90deg, #7c3aed, #a21caf, #be185d);--glow:linear-gradient(135deg, #8b5cf6, #ec4899, #f97316);--shadow:0 20px 25px -5px #8b5cf614, 0 8px 10px -6px #8b5cf60f;--gutter:5%;--ease-out:cubic-bezier(.23, 1, .32, 1)}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.55 ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif}body:before{content:"";z-index:-1;background:radial-gradient(#7c3aed12 1px, transparent 1px) 0 0 / 22px 22px, radial-gradient(42rem 42rem at 105% -10%, #a855f733, transparent 62%), radial-gradient(42rem 42rem at -8% 108%, #f472b633, transparent 62%), radial-gradient(30rem 30rem at 58% 42%, #22d3ee1c, transparent 62%), radial-gradient(24rem 24rem at 22% 12%, #fb923c1a, transparent 62%), var(--bg);pointer-events:none;position:fixed;inset:0}main{max-width:78rem;margin:0 auto;padding:2rem clamp(1rem,4vw,3.5rem) 4rem}body:has(.topbar) main{max-width:none;padding:0 var(--gutter) 4rem;margin-top:-2rem;position:relative}.hero{isolation:isolate;color:#fff;background:linear-gradient(#1e1b4b 0,#4c1d95 calc(60% - 3rem),#86198f calc(100% - 6rem),#86198f8c calc(100% - 4.5rem),#86198f40 calc(100% - 3rem),#86198f14 calc(100% - 1.5rem),#86198f00 100%);padding-bottom:6rem;position:relative;overflow:hidden}h1,h2{color:var(--strong);text-wrap:balance;margin:0;line-height:1.2}h1{font-size:1.75rem;font-weight:800}h2{margin-bottom:1rem;font-size:1.0625rem;font-weight:700}p{text-wrap:pretty;margin:0}a{color:var(--accent);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline-offset:2px;outline:2px solid #c026d3}.topbar{padding:.75rem var(--gutter);justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar .brand{color:#ffffffb3}.topbar .shine{color:#fff;background:0 0}.brand{color:var(--muted);align-items:center;gap:.75rem;line-height:1.25;display:flex}.brand:hover{text-decoration:none}.brand strong,.brand small{display:block}.brand small{font-size:.75rem;font-weight:500}.logo{background:var(--glow);color:#fff;border-radius:1rem;flex:none;place-items:center;width:2.5rem;height:2.5rem;font-size:1.125rem;font-weight:800;display:grid;box-shadow:0 10px 15px -3px #d946ef59}.shine{background:var(--brand);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1rem;font-weight:800}.clock{color:#fff;font-variant-numeric:tabular-nums;background:#ffffff1a;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:.5rem;margin-left:auto;padding:.375rem .75rem;font-size:.875rem;font-weight:700;display:flex}.clock svg{color:#6ee7b7;flex:none;width:1rem;height:1rem}.clock span{display:flex;overflow:hidden}.clock b{animation:tick .35s var(--ease-out)}@keyframes tick{0%{opacity:0;transform:translateY(70%)}}button.logout{color:#fffc;box-shadow:none;background:0 0;padding:.5rem .75rem;font-weight:600;transition:background-color .15s ease-out,color .15s ease-out}button.logout:hover{color:#fff;box-shadow:none;background:#ffffff1f;transform:none}.logout svg{flex:none;width:1.125rem;height:1.125rem}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.card-head h2{margin:0}.card-head input[type=search]{flex:14rem;max-width:24rem}.card,fieldset{background:var(--surface);border:1px solid var(--border);min-width:0;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:1.5rem;margin:0 0 1.5rem;padding:1.5rem}.card{overflow-x:auto}.narrow{max-width:25rem;margin:0 auto;padding:2rem}.login-brand{justify-content:center;margin-top:14dvh}.login-brand+main{padding-top:1.5rem}.narrow h1{margin-bottom:1.25rem;font-size:1.375rem}.stack{gap:1rem;display:grid}form.stack{gap:0}.card form.stack{gap:1rem}.card:not(.narrow) form.stack{max-width:32rem}fieldset.stack{flex-wrap:wrap;align-items:flex-start;gap:1rem 1.25rem;display:flex}fieldset.stack .field{flex:17rem}:is(fieldset.stack .field:has(textarea),fieldset.stack .field:has(.breaks),fieldset.stack .field:has(.timed),fieldset.stack .field:has(.check)){flex-basis:100%}fieldset.stack.pool .field:has(textarea){flex-basis:17rem}fieldset.stack hr{border:0;border-top:1px solid var(--border);flex-basis:100%;margin:.25rem 0}legend{float:left;width:100%;color:var(--strong);margin-bottom:1rem;padding:0;font-size:1.0625rem;font-weight:700}legend+*{clear:both}fieldset.stack legend{flex:0 0 100%;margin-bottom:0}.inline{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}form.inline{align-items:flex-end}.inline .field{flex:0 14rem}.field{gap:.375rem;min-width:0;display:grid}label,.label{color:#334155;font-size:.8125rem;font-weight:600}input,select,textarea{width:100%;color:var(--text);font:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;padding:.5625rem .75rem;font-size:.875rem;transition:border-color .15s ease-out,box-shadow .15s ease-out;box-shadow:0 1px 2px #0f172a0d}textarea{resize:vertical;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem}.timed{gap:.5rem;margin:0 0 .5rem;padding:0;list-style:none;display:grid}.timed li{grid-template-columns:8rem 1fr auto;align-items:start;gap:.5rem;display:grid}.breaks{grid-template-columns:repeat(auto-fill,minmax(4.75rem,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.breaks label{color:var(--strong);font-variant-numeric:tabular-nums;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;justify-items:center;gap:.125rem;padding:.5rem .25rem;font-size:.9375rem;transition:border-color .15s ease-out,background-color .15s ease-out,box-shadow .15s ease-out,transform .1s ease-out;display:grid;position:relative;box-shadow:0 1px 2px #0f172a0d}.breaks label:after{content:"Chạy";color:var(--ok);font-size:.6875rem;font-weight:600}.breaks label:hover{border-color:var(--accent-line)}.breaks label:active{transform:scale(.97)}.breaks label:has(:checked){background:var(--danger-soft);color:var(--muted);border-color:var(--danger-line);box-shadow:none}.breaks label:has(:checked) span{text-decoration:line-through}.breaks label:has(:checked):after{content:"Nghỉ";color:var(--danger)}.breaks label:has(:focus-visible){border-color:#e879f9;box-shadow:0 0 0 3px #e879f94d}.breaks input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}input:hover,select:hover,textarea:hover{border-color:var(--accent-line)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:#e879f9;outline:0;box-shadow:0 0 0 3px #e879f94d}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger);background:var(--danger-soft)}input[type=file]{padding:.375rem}.check{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;align-items:center;gap:.75rem;padding:.75rem .875rem;transition:border-color .15s ease-out,background-color .15s ease-out,box-shadow .15s ease-out,transform .1s ease-out;display:flex;position:relative;box-shadow:0 1px 2px #0f172a0d}.check:hover{border-color:var(--accent-line)}.check:active{transform:scale(.99)}.check:has(:checked){background:var(--accent-soft);border-color:var(--accent-line)}.check:has(:focus-visible){border-color:#e879f9;box-shadow:0 0 0 3px #e879f94d}.check input,.tabs input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.check-icon{width:2rem;height:2rem;color:var(--muted);background:#f1f5f9;border-radius:.625rem;flex:none;transition:background-color .15s ease-out,color .15s ease-out;position:relative}.check :checked+.check-icon{background:var(--accent);color:#fff}.check-icon svg{transition:opacity .15s ease-out, transform .2s var(--ease-out);position:absolute;inset:.4375rem}.check-on,.check :checked+.check-icon .check-off{opacity:0;transform:scale(.5)}.check :checked+.check-icon .check-on{opacity:1;transform:none}.check-text{gap:.125rem;font-size:.875rem;display:grid}.check-text .hint{font-weight:400}.hint,.empty{color:var(--muted);font-size:.8125rem}output:empty{display:none}.error{color:var(--danger);font-size:.8125rem;font-weight:600}button,.button{background:var(--brand);color:#fff;font:inherit;white-space:nowrap;cursor:pointer;border:0;border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;padding:.5625rem 1rem;font-size:.875rem;font-weight:700;transition:transform .15s ease-out,box-shadow .15s ease-out;display:inline-flex;box-shadow:0 10px 15px -3px #d946ef4d}button:hover,.button:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 16px 22px -6px #d946ef66}button:active,.button:active{transform:scale(.97)}.button svg{width:1rem;height:1rem}button.quiet,.button.quiet{color:#334155;background:#fff;border:1px solid #e2e8f0;padding:.375rem .75rem;font-size:.8125rem;font-weight:600;box-shadow:0 1px 2px #0f172a0d}button.quiet:hover,.button.quiet:hover{color:var(--accent);border-color:var(--accent-line);box-shadow:0 4px 6px -1px #7c3aed1f}button.danger{background:linear-gradient(90deg,#e11d48,#be185d);box-shadow:0 10px 15px -3px #e11d484d}.actions{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}td .actions{white-space:nowrap;flex-wrap:nowrap;font-size:.8125rem}.actions a[href$=\/delete]{color:var(--danger)}.notice{background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-line);border-radius:1rem;margin-bottom:1.25rem;padding:.75rem 1rem;font-weight:600}.notice.invalid{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-line)}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--border);padding:.75rem 1rem}th{color:var(--muted);text-transform:uppercase;white-space:nowrap;font-size:.6875rem;font-weight:700}tbody th{width:10rem}tbody tr{transition:background-color .15s ease-out}tbody tr:hover{background:#f5f3ffb3}tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}.num{width:3.5rem;color:var(--muted);font-variant-numeric:tabular-nums}.time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem}.terminal{box-shadow:var(--shadow);background:#0f1424;border:1px solid #1e293b;border-radius:1rem;margin:0;overflow:hidden}.terminal-bar{background:#1a2136;border-bottom:1px solid #283048;align-items:center;gap:.875rem;padding:.625rem 1rem;display:flex}.terminal-bar h3{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;margin:0;font:500 .8125rem/1.4 ui-monospace,SF Mono,Menlo,Consolas,monospace;overflow:hidden}.copy-log{color:#cbd5e1;box-shadow:none;background:0 0;border:1px solid #334155;border-radius:.5rem;flex:none;margin-left:auto;padding:.3125rem .625rem;font:500 .75rem/1.4 ui-monospace,SF Mono,Menlo,Consolas,monospace;transition:background-color .15s ease-out,color .15s ease-out}button.copy-log:hover{color:#fff;box-shadow:none;background:#283048;transform:none}.copy-log:focus-visible{outline-offset:2px;outline:2px solid #a78bfa}.copy-log svg{width:.875rem;height:.875rem}.terminal-dots{flex:none;gap:.4375rem;display:flex}.terminal-dots i{background:#ff5f57;border-radius:50%;width:.75rem;height:.75rem}.terminal-dots i:nth-child(2){background:#febc2e}.terminal-dots i:nth-child(3){background:#28c840}.terminal-body{color:#e2e8f0;font-variant-numeric:tabular-nums;scrollbar-color:#334155 transparent;flex-direction:column-reverse;max-height:min(34rem,55dvh);padding:1rem 1.125rem;font:.8125rem/1.7 ui-monospace,SF Mono,Menlo,Consolas,monospace;display:flex;overflow:auto}.terminal-body:focus-visible{outline-offset:-2px;outline:2px solid #a78bfa}.terminal-body p{overflow-wrap:anywhere;grid-template-columns:auto 1fr;gap:1rem;margin:0;display:grid}.terminal-body time,.terminal-body .dim{color:#7c8aa3}.terminal-body .ok{color:#4ade80}.terminal-body .warn{color:#fbbf24}.terminal-body .danger{color:#f87171}.terminal-cursor{background:#e2e8f0;width:.5rem;height:1rem;margin-top:.1875rem;animation:1.1s step-end infinite blink}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}.who{color:var(--strong);white-space:nowrap;align-items:center;gap:.75rem;display:inline-flex}.who>div{justify-items:start;gap:.25rem;display:grid}.who a{color:inherit;font-weight:600}.who .badges{align-items:center;gap:.25rem;display:flex}.status.icon{padding:.1875rem .375rem}.status.icon:before{content:none}.status.icon svg{width:.875rem;height:.875rem}.cell{white-space:nowrap}.cell a+a{margin-top:.25rem;font-size:.8125rem;display:block}.avatar{color:#fff;background:linear-gradient(135deg,#8b5cf6,#d946ef);border-radius:.75rem;flex:none;place-items:center;width:2.25rem;height:2.25rem;font-size:.875rem;font-weight:700;display:grid;box-shadow:0 4px 6px -1px #7c3aed40}img.avatar{object-fit:cover}tr:nth-child(4n+2) .avatar{background:linear-gradient(135deg,#ec4899,#fb923c)}tr:nth-child(4n+3) .avatar{background:linear-gradient(135deg,#0ea5e9,#22d3ee)}tr:nth-child(4n+4) .avatar{background:linear-gradient(135deg,#10b981,#84cc16)}.status,.tag{color:#475569;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:.375rem;padding:.125rem .625rem;font-size:.75rem;font-weight:700;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:.375rem;height:.375rem}.status.live:before{animation:1s ease-in-out infinite alternate pulse}.status .time{color:inherit;font-size:inherit;font-weight:500}.status.running{isolation:isolate;background:var(--info-soft);color:var(--info);border-color:var(--info-line);position:relative;overflow:hidden}.status.running:after{content:"";z-index:-1;background:linear-gradient(90deg,#0000 40%,#fff 50%,#0000 60%);width:300%;animation:1.8s linear infinite sweep;position:absolute;top:0;bottom:0;left:0}.status .progress{text-overflow:ellipsis;max-width:14rem;font-weight:500;overflow:hidden}@keyframes sweep{0%{transform:translate(-66.6667%)}to{transform:none}}.next{color:var(--muted);align-items:center;gap:.375rem;margin-top:.375rem;font-size:.8125rem;display:flex}.tag{font-variant-numeric:tabular-nums}.tag.site,.tag.soon{background:var(--info-soft);color:var(--info);border-color:var(--info-line)}.tag.groups{background:var(--pink-soft);color:var(--pink);border-color:var(--pink-line)}.tag.messages,.tag.ca{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.tag.timed,.tag.schedule{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.tag.empty{color:var(--muted);background:0 0;border-style:dashed;font-size:.75rem;font-weight:600}a:hover>.tag{border-color:currentColor}a.status:hover{border-color:currentColor;text-decoration:none}.status.ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line)}.status.danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-line)}button.status,button.status:hover{box-shadow:none}button.status:hover{border-color:currentColor}tr.flagged{background:#fff1f299}tr.flagged td:first-child{box-shadow:inset 3px 0 var(--danger)}.blank{text-align:center;justify-items:center;gap:1rem;padding:2.5rem 1rem;display:grid}.host{margin:.75rem var(--gutter) 0;flex-wrap:wrap;align-items:center;gap:.875rem 1.5rem;display:flex}.hero:before{content:"";z-index:-1;background:radial-gradient(closest-side,#f472b699,#0000);width:9rem;height:9rem;animation:9s ease-in-out infinite alternate drift;position:absolute;top:-3rem;right:-3rem}.meter{flex:11rem;grid-template-columns:2.25rem minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.tile{background:#ffffff1f;border:1px solid #ffffff29;border-radius:.75rem;place-items:center;width:2.25rem;height:2.25rem;transition:background-color .3s;display:grid}.meter:has(.warn) .tile{background:#fbbf2447}.meter:has(.danger) .tile{background:#f43f5e66}.tile svg{width:1.25rem;height:1.25rem}.chip .core{transform-box:fill-box;transform-origin:50%;animation:1.2s ease-in-out infinite alternate pulse}.chip .pins{animation:1.2s ease-in-out infinite alternate glimmer}.meter:has(.warn) .chip *{animation-duration:.7s}.meter:has(.danger) .chip *{animation-duration:.35s}.ram .cell{animation:1.6s ease-in-out infinite blink}.ram .cell:nth-child(2){animation-delay:.2s}.ram .cell:nth-child(3){animation-delay:.4s}.ram .cell:nth-child(4){animation-delay:.6s}.hdd .led{animation:1.3s step-end infinite flicker}.hdd .led+.led{animation-delay:-.5s}.figure{grid-template-columns:1fr auto;align-items:baseline;gap:.25rem .5rem;font-size:.8125rem;font-weight:600;display:grid}.figure strong{font-variant-numeric:tabular-nums;font-size:.9375rem;font-weight:800}.figure small{color:#ffffffa6;font-variant-numeric:tabular-nums;grid-column:1/-1;font-size:.6875rem;font-weight:500}.bar{background:#ffffff29;border-radius:999px;grid-column:1/-1;height:.375rem;overflow:hidden}.bar i{border-radius:inherit;height:100%;transition:transform .6s var(--ease-out);background:linear-gradient(90deg,#a78bfa,#f472b6,#fdba74);display:block}.figure.warn strong{color:#fde68a}.figure.warn i{background:linear-gradient(90deg,#fbbf24,#fb923c)}.figure.danger strong{color:#fecdd3}.figure.danger i{background:linear-gradient(90deg,#fb7185,#e11d48)}.counts{text-align:center;flex:15rem;grid-template-columns:repeat(3,1fr);gap:.375rem;margin:0;display:grid}.counts div{background:#ffffff1a;border:1px solid #ffffff24;border-radius:.75rem;padding:.5rem .125rem}.counts dt{color:#ffffffb3;white-space:nowrap;justify-content:center;align-items:center;gap:.25rem;font-size:.625rem;font-weight:600;display:flex}.counts svg{flex:none;width:.875rem;height:.875rem}.counts .on svg{color:#6ee7b7}.counts dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.125rem;font-weight:800;line-height:1.3}.counts .on dd{color:#6ee7b7}.counts .off dd{color:#fff9}html:has(dialog[open]){overflow:hidden}dialog{width:min(30rem,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--text);border:1px solid var(--border);opacity:0;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out), overlay .2s allow-discrete, display .2s allow-discrete;background:#fff;border-radius:1.75rem;flex-direction:column;padding:0;overflow:hidden;transform:translateY(.75rem)scale(.96);box-shadow:0 40px 80px -20px #4c1d9573}dialog:has(.field+.field){width:min(44rem,100vw - 2rem)}dialog:has(.field:nth-of-type(6)){width:min(64rem,100vw - 2rem)}#ca-history,#ca-log{width:min(64rem,100vw - 2rem)}#ca-history .dialog-body{overflow-x:auto}#proxies{width:min(76rem,100vw - 2rem)}#proxies textarea{white-space:pre;height:max(14rem,100dvh - 31rem);overflow-x:auto}#back-to-history{justify-self:start}#run{gap:1rem;min-width:0;display:grid}dialog[open]{opacity:1;display:flex;transform:none}dialog::backdrop{opacity:0;transition:opacity .2s ease-out, overlay .2s allow-discrete, display .2s allow-discrete;background:#1e1b4b80}dialog[open]::backdrop{opacity:1}@starting-style{dialog[open]{opacity:0;transform:translateY(.75rem)scale(.96)}dialog[open]::backdrop{opacity:0}}.dialog-head{background:linear-gradient(135deg, var(--accent-soft), #fdf2f8 60%, #fff7ed);border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:1rem;padding:1.5rem 4.5rem 1.25rem 1.5rem;display:flex}.dialog-head>div{flex:12rem}.dialog-head.danger{background:var(--danger-soft)}.dialog-head.danger .dialog-icon{background:linear-gradient(135deg,#fb7185,#e11d48);box-shadow:0 10px 15px -3px #e11d484d}.dialog-head h2{margin:0;font-size:1.25rem;font-weight:800}.dialog-head p{color:var(--muted);margin-top:.125rem;font-size:.8125rem}.dialog-icon{background:var(--glow);color:#fff;border-radius:1rem;flex:none;place-items:center;width:2.75rem;height:2.75rem;display:grid;box-shadow:0 10px 15px -3px #d946ef59}.dialog-icon svg{width:1.375rem;height:1.375rem}dialog[open] .dialog-icon svg{animation:spin-in .5s var(--ease-out) backwards}.dialog-body{flex:auto;align-content:start;gap:1.25rem;min-height:0;padding:1.5rem;display:grid;overflow-y:auto}.dialog-form{gap:1.25rem;display:grid}.dialog-body .notice{margin:0}.changes{gap:1rem;margin:0;display:grid}.changes dt{font-size:.8125rem;font-weight:700}.changes dd{gap:.25rem;margin:.375rem 0 0;font-size:.875rem;display:grid}.changes del,.changes ins{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:.5rem;max-height:6rem;padding:.375rem .625rem;overflow-y:auto}.changes del{background:var(--danger-soft);color:var(--danger)}.changes ins{background:var(--ok-soft);color:var(--ok);text-decoration:none}dialog fieldset{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}dialog fieldset+fieldset{border-top:1px solid var(--border);padding-top:1.25rem}dialog[open] fieldset{animation:rise .3s var(--ease-out) backwards}dialog[open] fieldset:nth-of-type(2){animation-delay:50ms}dialog[open] fieldset:nth-of-type(3){animation-delay:.1s}dialog legend{color:var(--accent);text-transform:uppercase;font-size:.6875rem}dialog legend small{color:var(--muted);font-size:inherit;text-transform:none;font-weight:500}:is(#new-tenant .field:has([type=url]),#new-tenant .field:has([type=tel])){flex-basis:100%}.dialog-foot{border-top:1px solid var(--border);background:#f8fafc;flex-direction:row-reverse;flex:none;padding:1rem 1.5rem}dialog button.quiet{padding:.5625rem 1rem;font-size:.875rem}dialog button.close{width:2.25rem;height:2.25rem;color:var(--muted);padding:0;position:absolute;top:1.25rem;right:1.25rem}.close svg{width:1rem;height:1rem}@keyframes drift{to{transform:translate(-5rem,6rem)scale(1.3)}}@keyframes pulse{0%{opacity:.35;transform:scale(.7)}to{opacity:1;transform:scale(1.15)}}@keyframes glimmer{0%{opacity:.45}}@keyframes flicker{0%,35%,55%{opacity:1}20%,50%,80%{opacity:.2}}@keyframes spin-in{0%{opacity:0;transform:rotate(-90deg)scale(.6)}}@keyframes rise{0%{opacity:0;transform:translateY(.5rem)}}@media (width<=60rem){:root{--gutter:1rem}.brand small{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.peek-field{position:relative}.peek-field input,.peek-field textarea{padding-right:2.75rem}.peek{width:2.75rem;color:var(--muted);border-radius:.75rem;place-items:center;display:grid;position:absolute;inset:0 0 0 auto}.peek[href]{color:var(--accent)}.peek svg{width:1rem;height:1rem}.peek[href] .peek-off,.peek:not([href]) .peek-on{display:none}#edit-tenant:has(#script){width:75vw;height:75dvh}fieldset.stack>.script{flex:32rem;min-width:0;min-height:4rem;margin:0}.script{counter-reset:node;grid-template-columns:repeat(6,minmax(0,1fr));align-content:start;gap:.375rem;padding:0;list-style:none;display:grid}.palette{z-index:1;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:.75rem;flex:0 0 100%;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex;position:sticky;top:-1.5rem}.tabs{z-index:2;background:#fff;margin:-1.25rem 0 -.75rem;padding:1.25rem 0 .75rem;position:sticky;top:-1.5rem}.tabs>div{background:#f1f5f9;border-radius:.875rem;gap:.25rem;height:2.75rem;padding:.25rem;display:flex}.tabs label{color:var(--muted);cursor:pointer;border-radius:.625rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .75rem;transition:background-color .15s ease-out,color .15s ease-out,box-shadow .15s ease-out;display:flex;position:relative}.tabs label:has(:checked){color:var(--accent);background:#fff;box-shadow:0 1px 2px #0f172a1a}.tabs label:has(:focus-visible){box-shadow:0 0 0 3px #e879f94d}:is(.dialog-form:has(.tabs [value=script]:checked)>fieldset:not(:has(#script)),.dialog-form:has(.tabs [value=settings]:checked)>fieldset:is(:has(#script),:has(#crop_top)),.dialog-form:has(.tabs [value=crop]:checked)>fieldset:not(:has(#crop_top))){display:none}.dialog-form>.tabs~fieldset{border-top:0;padding-top:0;animation:none}.tabs~fieldset .palette{top:3.25rem}.palette-head{align-items:center;gap:.375rem;display:flex}.palette-head button{color:var(--muted);box-shadow:none;cursor:help;background:0 0;border-radius:50%;padding:.125rem}.palette-head button:hover{color:var(--accent);box-shadow:none;transform:none}.palette-head svg{width:1rem;height:1rem}#placeholders{color:var(--text);border:1px solid var(--accent-line);background:#fff;border-radius:.75rem;margin:0;padding:.5rem .75rem;font-size:.8125rem;line-height:1.6;list-style:none;position:fixed;inset:auto;box-shadow:0 10px 15px -3px #0f172a26}#node-add{gap:.375rem;display:grid}#node-add>div{cursor:grab;align-items:center;gap:.375rem;display:flex}#node-add button{flex:1;justify-content:flex-start;padding:.3125rem .625rem;font-size:.8125rem}.node{border:1px solid #e2e8f0;border-left:4px solid var(--accent-line);counter-increment:node;background:#fff;border-radius:.75rem;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:.375rem .5rem;padding:.375rem .5rem;display:flex}.node.fixed{background:var(--accent-soft);border-left-color:var(--accent)}.node.repeats{border-right:4px solid var(--accent)}.node[hidden]{display:none}.node-note{color:var(--muted);white-space:nowrap;font-size:.75rem}@media (width>=48rem){.node[data-span="2"]{grid-column:span 2}.node[data-span="3"]{grid-column:span 3}.node[data-span="2"] .node-kind,.node[data-span="3"] .node-kind{flex-basis:auto}}.node[data-kind=wait]{background:var(--warn-soft);border-left-color:var(--warn-line)}.node.dragging{opacity:.4}.grip{color:var(--muted);cursor:grab;-webkit-user-select:none;user-select:none;font-size:1.125rem;line-height:1}.grip:active{cursor:grabbing}.node-kind{white-space:nowrap;color:var(--strong);flex:0 0 10rem;font-size:.8125rem}.node-kind:before{content:counter(node) ". ";color:var(--muted);font-variant-numeric:tabular-nums}.node input,.node select,.node textarea{padding-block:.3125rem;padding-left:.5rem;font-size:.8125rem}.node>input{width:5.5rem}#script .field{flex:0 8rem}#script .node-text{flex:14rem}#script .node-to{flex:none}.tabs~fieldset>legend,.node .field>label,.node .field>.label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.node-moves{gap:.125rem;margin-left:auto;display:flex}#script .node-moves button{min-width:1.75rem;padding:.125rem .375rem;font-size:.8125rem}.node>.error{flex-basis:100%;margin:0}.chips{flex-wrap:wrap;gap:.25rem .75rem;font-size:.8125rem;display:flex}.chips:before{content:"→";color:var(--muted)}.chips label{cursor:pointer;align-items:center;gap:.25rem;display:flex}.chips input{width:auto;box-shadow:none;margin:0;padding:0}.grip.fixed{color:var(--accent);cursor:default;font-size:.75rem}.node:has(.fixed){padding-block:.5rem}:root{--i-upload:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12'/%3E%3C/svg%3E");--i-download:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3'/%3E%3C/svg%3E");--i-sliders:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6'/%3E%3C/svg%3E");--i-send:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2 11 13M22 2l-7 20-4-9-9-4z'/%3E%3C/svg%3E");--i-users:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M13 7a4 4 0 1 1-8 0 4 4 0 0 1 8 0zM22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");--i-play:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3l14 9-14 9z'/%3E%3C/svg%3E");--i-copy:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 8h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2zM4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--i-trash:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14M10 11v5M14 11v5'/%3E%3C/svg%3E");--i-shield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E");--i-globe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM2 12h20M12 2a15 15 0 0 1 0 20 15 15 0 0 1 0-20z'/%3E%3C/svg%3E");--i-message:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");--i-calendar:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zM16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");--i-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 6v6l4 2'/%3E%3C/svg%3E");--i-zap:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 3 14h9l-1 8 10-12h-9z'/%3E%3C/svg%3E");--i-plus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");--i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--i-power:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18.36 6.64a9 9 0 1 1-12.73 0M12 2v10'/%3E%3C/svg%3E");--i-tag:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82zM7 7h.01'/%3E%3C/svg%3E");--i-user:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2M16 7a4 4 0 1 1-8 0 4 4 0 0 1 8 0z'/%3E%3C/svg%3E");--i-key:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.78 7.78 5.5 5.5 0 0 1 7.78-7.78zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4'/%3E%3C/svg%3E");--i-percent:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 5 5 19M6.5 9a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM17.5 20a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z'/%3E%3C/svg%3E");--i-repeat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 1l4 4-4 4M3 11V9a4 4 0 0 1 4-4h14M7 23l-4-4 4-4M21 13v2a4 4 0 0 1-4 4H3'/%3E%3C/svg%3E");--i-hash:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h16M4 15h16M10 3 8 21M16 3l-2 18'/%3E%3C/svg%3E");--i-coin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 1v22M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6'/%3E%3C/svg%3E")}:where(.group .quiet,.tag,a[id^=telegram-],a[id^=runs-],button.status,.dialog-foot button:not(.quiet),.tabs label,dialog .field>label[for]):before{content:"";background:var(--tint,currentColor);width:.875rem;height:.875rem;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;transition:transform .2s var(--ease-out);border-radius:0;flex:none}.tag:before,a[id^=telegram-]:before,button.status:before{border-radius:0;width:.75rem;height:.75rem}:is(.group .quiet,a:hover>.tag,a[id^=telegram-],button.status):hover:before{transform:scale(1.2)rotate(-8deg)}a[href="/tenants/import"]{--icon:var(--i-upload);--tint:#7c3aed}a[href=\/config]{--icon:var(--i-sliders);--tint:#ea580c}a[href=\/test-config],a[id^=telegram-]{--icon:var(--i-send)}a[href=\/test-config]{--tint:#0284c7}a[href="/test-config/groups"]{--icon:var(--i-users);--tint:#db2777}.group a[href$=\/test]{--icon:var(--i-play);--tint:#059669}.group form[action$=\/clone] button{--icon:var(--i-copy);--tint:#7c3aed}.group a[href$=\/export]{--icon:var(--i-download);--tint:#0284c7}.group a[href$=\/delete],.dialog-foot button.danger{--icon:var(--i-trash)}.group a[href$=\/delete]:hover{color:var(--danger);border-color:var(--danger-line)}.dialog-foot button:not(.quiet){--icon:var(--i-check)}button.status{--icon:var(--i-power)}a[id^=runs-]{--icon:var(--i-clock)}.cell a[id^=runs-]{align-items:center;gap:.25rem;display:flex}.tag.proxy{--icon:var(--i-shield);background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line)}.tag.site{--icon:var(--i-globe)}.tag.groups{--icon:var(--i-users)}.tag.messages{--icon:var(--i-message)}.tag.schedule{--icon:var(--i-calendar)}.tag.soon{--icon:var(--i-clock)}.tag.ca{--icon:var(--i-zap)}.tag.empty{--icon:var(--i-plus)}.tabs label:has([value=script]){--icon:var(--i-message)}.tabs label:has([value=settings]){--icon:var(--i-sliders)}.tabs label:has([value=crop]){--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2v14a2 2 0 0 0 2 2h14M18 22V8a2 2 0 0 0-2-2H2'/%3E%3C/svg%3E")}:where(dialog .field)>label[for]{--icon:var(--i-sliders);--tint:var(--accent);align-items:center;gap:.375rem;display:flex}dialog label[for=name]{--icon:var(--i-tag)}dialog label[for=site_url]{--icon:var(--i-globe)}dialog label[for=site_username]{--icon:var(--i-user)}dialog label:is([for=site_password],[for=password],[for=code],[for=api_id],[for=api_hash],[for=session]){--icon:var(--i-key)}dialog label:is([for=nhom],[for=nhom_that]){--icon:var(--i-users)}dialog label[for=nhom_bao_ban]{--icon:var(--i-message)}dialog label:is([for=min_message_gap_seconds],[for=first_ca_time],[for=last_ca_time]){--icon:var(--i-clock)}dialog label[for=virtual_win_percent]{--icon:var(--i-percent)}dialog label:is([for=nhip],[for=ca_interval_minutes]){--icon:var(--i-repeat)}dialog label[for=du_doan]{--icon:var(--i-hash)}dialog label[for=screenshot_stake]{--icon:var(--i-coin)}dialog label:is([for=proxy],[for=proxy_type]){--icon:var(--i-shield)}dialog label:is([for=phone],[for=telegram]){--icon:var(--i-send)}dialog label[for=file]{--icon:var(--i-upload)}dialog label[for=filter-date]{--icon:var(--i-calendar)}.group{isolation:isolate;border-radius:.75rem;flex-wrap:nowrap;gap:0;display:inline-flex;box-shadow:0 1px 2px #0f172a0d}.group>form{display:contents}.group .quiet{box-shadow:none;border-radius:0;margin-left:-1px;transition:background-color .15s ease-out,color .15s ease-out,border-color .15s ease-out}.group .quiet:is(:hover,:active,:focus-visible){z-index:1;box-shadow:none;background:#f8fafc;transform:none}.group>.quiet:first-child,.group>form:first-child>.quiet{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem;margin-left:0}.group>.quiet:last-child,.group>form:last-child>.quiet{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.crop-preview{flex:0 0 100%;align-items:flex-start;gap:1rem;display:flex}.crop-preview figure{flex:var(--width,1) 1 0;min-width:0;margin:0}.crop-preview div{border:1px solid var(--border);border-radius:.5rem;overflow:hidden}.crop-preview img{max-width:none;display:block}.crop-preview figcaption{margin-top:.5rem}@media (width<=40rem){.tabs>div{height:auto}.tabs label{text-align:center;padding:.5rem .25rem;font-size:.8125rem}.tabs label:before{display:none}.crop-preview{flex-direction:column}.crop-preview figure{width:calc(var(--width,1600) / 16 * 1%);flex:none}}
