:root{--bg:#07090f;--panel:#0d1220;--panel-2:#121929;--border:#ffffff14;--border-strong:#ffffff29;--text:#eef2f8;--muted:#93a0b8;--accent:#34d399;--accent-2:#22d3ee;--accent-dim:#34d3991f;--danger:#f87171;--danger-dim:#f871711f;--warn:#fbbf24;--warn-dim:#fbbf2421;--info:#7c9cf5;--info-dim:#7c9cf521;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;--radius:14px}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--sans);color:var(--text);-webkit-font-smoothing:antialiased;background:radial-gradient(900px 480px at 85% -8%, #34d39912, transparent 62%), radial-gradient(760px 420px at -8% 108%, #6366f10f, transparent 60%), var(--bg);min-height:100vh;margin:0;font-size:14.5px;line-height:1.55}body:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(#ffffff07 1px,#0000 1px),linear-gradient(90deg,#ffffff07 1px,#0000 1px);background-size:42px 42px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(90% 55% at 50% 0,#000 30%,#0000 78%);mask-image:radial-gradient(90% 55% at 50% 0,#000 30%,#0000 78%)}::selection{background:#34d39947}:focus-visible{outline-offset:2px;border-radius:6px;outline:2px solid #34d3998c}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.02em;margin:0;font-size:1.45rem;font-weight:700}h2{letter-spacing:-.01em;margin:0 0 .8rem;font-size:1rem;font-weight:600}.container{z-index:1;max-width:1180px;margin:0 auto;padding:1.75rem 1.25rem 5rem;position:relative}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:.86em}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.spacer{flex:1}.small{font-size:.82rem}.topbar{z-index:30;-webkit-backdrop-filter:blur(14px)saturate(1.4);border-bottom:1px solid var(--border);background:#080b11b8;align-items:center;gap:1.4rem;padding:.75rem 1.4rem;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;color:var(--text);-webkit-user-select:none;user-select:none;font-size:1.06rem;font-weight:700}.brand span{background:linear-gradient(120deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.brand.big{font-size:1.9rem}.nav{gap:.3rem;display:flex}.nav a{color:var(--muted);border-radius:9px;padding:.38rem .85rem;font-size:.9rem;font-weight:500;transition:color .12s,background .12s}.nav a:hover{color:var(--text);background:#ffffff0d;text-decoration:none}.nav a.active{color:var(--accent);background:var(--accent-dim)}.card{background:linear-gradient(180deg, #ffffff08, #ffffff03 55%), var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.3rem;position:relative;box-shadow:0 1px 2px #00000073,inset 0 1px #ffffff0b}.card+.card,section.card{margin-top:1.1rem}.empty{border:1px dashed var(--border-strong);box-shadow:none;background:0 0}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;margin-top:1.4rem;display:grid}.bot-card{transition:transform .16s,border-color .16s,box-shadow .16s;overflow:hidden}.bot-card:before{content:"";background:linear-gradient(90deg,#0000 5%,#ffffff24,#0000 95%);height:2px;position:absolute;top:0;left:0;right:0}.bot-card.state-RUNNING:before{background:linear-gradient(90deg, transparent 3%, var(--accent), var(--accent-2), transparent 97%)}.bot-card.state-CRASHED:before{background:linear-gradient(90deg, transparent 3%, var(--danger), transparent 97%)}.bot-card.state-STARTING:before,.bot-card.state-STOPPING:before{background:linear-gradient(90deg, transparent 3%, var(--warn), transparent 97%)}.bot-card:hover{border-color:#34d39959;transform:translateY(-2px);box-shadow:0 10px 34px #00000080,0 0 24px -6px #34d39940,inset 0 1px #ffffff0d}.bot-card .name{color:var(--text);font-size:1.03rem;font-weight:600}.bot-card .name:hover{color:var(--accent);text-decoration:none}.meta{grid-template-columns:auto 1fr;gap:.18rem .9rem;margin:.8rem 0;display:grid}.meta dt{color:var(--muted);font-size:.8rem}.meta dd{font-size:.8rem;font-family:var(--mono);text-align:right;color:#c8d2e4;margin:0}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:1rem;display:grid}.stat{border:1px solid var(--border);background:#ffffff06;border-radius:11px;flex-direction:column;gap:2px;padding:.6rem .85rem;display:flex}.stat .k{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-size:.68rem;font-weight:600}.stat .v{font-family:var(--mono);color:var(--text);font-size:1.02rem}.btn{font:inherit;border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff09;border-radius:9px;justify-content:center;align-items:center;gap:.4rem;padding:.44rem .95rem;font-size:.86rem;font-weight:500;transition:background .13s,border-color .13s,box-shadow .13s,transform 60ms,opacity .13s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--border-strong);background:#ffffff12}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.38;cursor:not-allowed}.btn-primary{color:#04140c;background:linear-gradient(#3ee0a4,#10a374);border-color:#0000;font-weight:600;box-shadow:0 1px 2px #00000080,inset 0 1px #ffffff47}.btn-primary:hover:not(:disabled){background:linear-gradient(#4bebb0,#12b07e);box-shadow:0 4px 18px -4px #34d3998c,inset 0 1px #ffffff4d}.btn-danger{color:var(--danger);background:0 0;border-color:#f8717159}.btn-danger:hover:not(:disabled){background:var(--danger-dim);border-color:var(--danger);box-shadow:0 4px 16px -6px #f8717166}.btn-sm{border-radius:8px;padding:.3rem .68rem;font-size:.8rem}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--text);background:#ffffff0e}label.field{margin-bottom:.85rem;display:block}label.field .lbl{color:var(--muted);margin-bottom:.32rem;font-size:.78rem;font-weight:500;display:block}.input,textarea.input,select.input{width:100%;font:inherit;border:1px solid var(--border);color:var(--text);background:#0305098c;border-radius:9px;outline:none;padding:.52rem .75rem;font-size:.9rem;transition:border-color .13s,box-shadow .13s,background .13s}.input::placeholder{color:#56617a}.input:hover{border-color:var(--border-strong)}.input:focus{background:#030509bf;border-color:#34d399a6;box-shadow:0 0 0 3px #34d39924}.input.mono{font-family:var(--mono);font-size:.84rem}.check{cursor:pointer;align-items:center;gap:.5rem;margin-bottom:.55rem;font-size:.88rem;display:flex}.check input{accent-color:var(--accent);width:15px;height:15px}.form-error{background:var(--danger-dim);color:#fda4a4;border:1px solid #f8717159;border-radius:10px;margin-bottom:.85rem;padding:.55rem .85rem;font-size:.85rem}.form-grid{grid-template-columns:1fr 1fr;gap:0 1rem;display:grid}.form-grid .full{grid-column:1/-1}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.badge{letter-spacing:.05em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;align-items:center;gap:.42rem;padding:.24rem .66rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px;position:relative}.badge-RUNNING{background:var(--accent-dim);color:var(--accent);border-color:#34d3994d;box-shadow:0 0 16px -4px #34d3998c}.badge-RUNNING .dot:after{content:"";background:currentColor;border-radius:50%;animation:1.6s cubic-bezier(0,0,.2,1) infinite ping;position:absolute;inset:0}.badge-STOPPED{color:var(--muted);background:#93a0b81a;border-color:#93a0b833}.badge-CRASHED{background:var(--danger-dim);color:var(--danger);border-color:#f8717159;box-shadow:0 0 16px -4px #f8717173}.badge-STARTING,.badge-STOPPING{background:var(--warn-dim);color:var(--warn);border-color:#fbbf244d}@keyframes ping{0%{opacity:.7;transform:scale(1)}80%,to{opacity:0;transform:scale(2.6)}}.pill-required{letter-spacing:.04em;text-transform:uppercase;background:var(--info-dim);color:var(--info);border:1px solid #7c9cf54d;border-radius:999px;padding:.12rem .5rem;font-size:.66rem;font-weight:600}.pill-global{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-2);background:#22d3ee1f;border:1px solid #22d3ee4d;border-radius:999px;padding:.12rem .5rem;font-size:.66rem;font-weight:600}.pill-pending{letter-spacing:.04em;text-transform:uppercase;background:var(--warn-dim);color:var(--warn);border:1px solid #fbbf244d;border-radius:999px;align-items:center;gap:.35rem;padding:.12rem .55rem;font-size:.66rem;font-weight:600;display:inline-flex}.pill-pending .dot{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}tr.row-sync{animation:2.6s syncRow}tr.row-uploaded{animation:1.6s syncRow}@keyframes syncRow{0%{background:#22d3ee2e}55%{background:#34d3991a}to{background:0 0}}.sync-badge{color:var(--accent);align-items:center;gap:.3rem;font-size:.68rem;font-weight:600;animation:2.6s forwards syncBadge;display:inline-flex}@keyframes syncBadge{0%{opacity:0;transform:translate(-8px)}12%{opacity:1;transform:none}78%{opacity:1}to{opacity:0}}.missing{color:var(--danger);font-weight:600}table.tbl{border-collapse:collapse;width:100%;font-size:.86rem}.tbl th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border);padding:.45rem .6rem;font-size:.72rem;font-weight:600}.tbl td{vertical-align:middle;border-bottom:1px solid #ffffff0d;padding:.55rem .6rem}.tbl tbody tr{transition:background .1s}.tbl tbody tr:hover{background:#ffffff05}.tbl tr:last-child td{border-bottom:none}.log-panel{padding:0;overflow:hidden}.log-toolbar{border-bottom:1px solid var(--border);background:#ffffff05;flex-wrap:wrap;align-items:center;gap:.65rem;padding:.6rem .95rem;display:flex}.term-dots{gap:6px;margin-right:.2rem;display:inline-flex}.term-dots i{opacity:.9;border-radius:50%;width:10px;height:10px}.term-dots i:first-child{background:#ff5f57}.term-dots i:nth-child(2){background:#febc2e}.term-dots i:nth-child(3){background:#28c840}.log-toolbar .input{width:190px;padding:.32rem .62rem;font-size:.82rem}.conn-dot{background:var(--danger);border-radius:50%;flex:none;width:8px;height:8px;transition:background .2s,box-shadow .2s}.conn-dot.on{background:var(--accent);box-shadow:0 0 8px #34d399cc}.log-wrap{position:relative}.log-box{height:480px;font-family:var(--mono);background:#030509;padding:.65rem .95rem;font-size:12.5px;line-height:1.6;overflow-y:auto}.log-box::-webkit-scrollbar{width:10px}.log-box::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:5px}.log-box::-webkit-scrollbar-thumb:hover{background:#ffffff2e}.log-box::-webkit-scrollbar-track{background:0 0}.log-line{white-space:pre-wrap;word-break:break-all;color:#c4cee0;border-radius:4px;margin:0 -4px;padding:0 4px}.log-line:hover{background:#ffffff08}.log-line.err{color:#fb9a9a}.log-line.sys{color:var(--warn);font-style:italic}.log-line.in{color:var(--accent-2);font-weight:500}.log-line .ts{color:#4d5871;-webkit-user-select:none;user-select:none;margin-right:.7em}.log-input{border-top:1px solid var(--border);background:#ffffff05;align-items:center;gap:.55rem;padding:.55rem .85rem;display:flex}.log-input .prompt{font-family:var(--mono);color:var(--muted);font-weight:700}.log-input .prompt.live{color:var(--accent-2)}.log-input .input{flex:1;padding:.4rem .7rem;font-size:.84rem}.log-input .input:disabled{opacity:.5;cursor:not-allowed}.jump{font:inherit;color:#04140c;cursor:pointer;background:linear-gradient(#3ee0a4,#10a374);border:none;border-radius:999px;padding:.38rem .9rem;font-size:.78rem;font-weight:600;position:absolute;bottom:16px;right:24px;box-shadow:0 6px 20px #0000008c,0 0 16px -4px #34d39980}.attach-strip{background:#22d3ee0d;border:1px dashed #22d3ee59;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.9rem;padding:.6rem .85rem;display:flex}.chip-attach{font:inherit;font-size:.8rem;font-weight:500;font-family:var(--mono);color:var(--accent-2);cursor:pointer;background:#22d3ee1a;border:1px solid #22d3ee59;border-radius:999px;padding:.24rem .7rem;transition:background .13s,border-color .13s,box-shadow .13s}.chip-attach:hover{border-color:var(--accent-2);background:#22d3ee33;box-shadow:0 0 14px -4px #22d3ee80}.form-hint{color:#9adbe8;background:#22d3ee14;border:1px solid #22d3ee4d;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.2rem;margin-bottom:.85rem;padding:.5rem .85rem;font-size:.84rem;display:flex}.editor-area{resize:vertical;width:100%;min-height:340px;font-family:var(--mono);color:var(--text);border:1px solid var(--border);white-space:pre;background:#030509a6;border-radius:10px;outline:none;padding:.7rem .9rem;font-size:.84rem;line-height:1.6;transition:border-color .13s,box-shadow .13s;overflow-x:auto}.editor-area::placeholder{color:#56617a}.editor-area:focus{border-color:#34d399a6;box-shadow:0 0 0 3px #34d39924}.notes-area{resize:vertical;width:100%;min-height:110px;font-family:var(--mono);color:var(--text);border:1px solid var(--border);background:#030509a6;border-radius:10px;outline:none;padding:.7rem .9rem;font-size:.84rem;line-height:1.6;transition:border-color .13s,box-shadow .13s}.notes-area::placeholder{color:#56617a}.notes-area:focus{border-color:#34d399a6;box-shadow:0 0 0 3px #34d39924}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);background:#04060ab8;justify-content:center;align-items:flex-start;padding:6vh 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:linear-gradient(var(--panel), var(--panel)) padding-box, linear-gradient(160deg, #34d39966, #ffffff14 40%, #6366f14d) border-box;border:1px solid #0000;border-radius:16px;width:100%;max-width:640px;padding:1.35rem 1.5rem;animation:.16s ease-out rise;box-shadow:0 24px 60px #0009}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.toasts{z-index:100;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.2rem;right:1.2rem}.toast{-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-strong);background:#0d1220eb;border-radius:11px;align-items:center;gap:.6rem;max-width:360px;padding:.65rem 1rem;font-size:.86rem;animation:.16s ease-out rise;display:flex;box-shadow:0 10px 30px #0000008c}.toast:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;box-shadow:0 0 10px #34d399cc}.toast.err:before{background:var(--danger);box-shadow:0 0 10px #f87171cc}.toast.info:before{background:var(--info);box-shadow:0 0 10px #7c9cf5cc}.skeleton{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff17 37%,#ffffff0a 63%) 0 0/400% 100%;border-radius:10px;animation:1.3s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.login-wrap{z-index:1;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex;position:relative;overflow:hidden}.login-glow{filter:blur(50px);pointer-events:none;background:radial-gradient(circle,#34d39929,#22d3ee12 45%,#0000 70%);border-radius:50%;width:560px;height:560px;animation:7s ease-in-out infinite breathe;position:absolute}@keyframes breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.login-card{background:linear-gradient(#0d1220f0,#0d1220f0) padding-box padding-box,linear-gradient(160deg,#34d3998c,#ffffff17 45%,#6366f166) border-box;border:1px solid #0000;border-radius:18px;width:100%;max-width:390px;padding:2.2rem 2rem;position:relative;box-shadow:0 30px 80px #0009}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
