:root{--indigo: #4f46e5;--indigo-dark: #4338ca;--indigo-soft: #eef2ff;--indigo-soft-2: #e0e7ff;--ink: #111827;--ink-2: #374151;--muted: #6b7280;--muted-2: #9ca3af;--bg: #f6f7fb;--line: #e5e7eb;--line-soft: #f1f5f9;--danger: #dc2626;--ok: #16a34a;--r: 14px;--r-sm: 9px;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 8px 24px -12px rgba(16, 24, 40, .12)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.spa-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.spa-login{width:100%;max-width:420px;padding:32px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.spa-login-brand{font-weight:800;font-size:1.05rem;color:var(--ink);margin-bottom:18px}.spa-login-brand span{color:var(--indigo)}.spa-login h1{font-size:1.35rem;margin:0 0 6px;letter-spacing:-.01em}.spa-login .hint{color:var(--muted);font-size:.9rem;margin:0 0 20px;line-height:1.55}.spa-login .hint code{background:var(--indigo-soft);color:var(--indigo-dark);padding:1px 6px;border-radius:5px;font-size:.85em}.spa-login input{width:100%;padding:12px 14px;margin-bottom:14px;border:1px solid #d1d5db;border-radius:var(--r-sm);font-size:1rem;letter-spacing:.04em}.spa-btn-primary{padding:11px 24px;background:var(--indigo);color:#fff;border:0;border-radius:var(--r-sm);font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;transition:background .15s,box-shadow .15s,transform .05s}.spa-btn-primary:hover:not(:disabled){background:var(--indigo-dark);box-shadow:0 6px 16px -6px #4f46e58c}.spa-btn-primary:active:not(:disabled){transform:translateY(1px)}.spa-btn-primary:disabled{opacity:.5;cursor:not-allowed}.spa-btn-block{width:100%}.spa-err{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--r-sm);padding:10px 12px;font-size:.9rem;margin:12px 0}.spa-shell{display:flex;min-height:100vh}.spa-side{flex:0 0 250px;width:250px;position:fixed;top:0;left:0;z-index:20;height:100vh;overflow:hidden;background:#111827;color:#e5e7eb;display:flex;flex-direction:column;padding:16px 10px}.spa-brand{font-weight:800;font-size:1.15rem;padding:8px 10px 16px;flex-shrink:0}.spa-brand span{color:#818cf8}.spa-side nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.spa-side nav::-webkit-scrollbar{width:6px}.spa-side nav::-webkit-scrollbar-thumb{background:#374151;border-radius:3px}.spa-side nav::-webkit-scrollbar-track{background:transparent}.spa-group{margin-bottom:14px}.spa-glabel{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#6b7280;padding:4px 10px}.spa-side .spa-glabel{margin-bottom:3px;font-weight:600}.spa-burger,.spa-backdrop{display:none}.spa-burger{align-items:center;gap:8px;flex-shrink:0;padding:7px 12px;border:1px solid #1f2937;border-radius:8px;background:#1a2230;color:#e5e7eb;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.spa-burger.open{background:var(--indigo);border-color:var(--indigo);color:#fff}.spa-burger-ic{font-size:.95rem;line-height:1}.spa-item{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;margin-bottom:2px;background:transparent;border:0;color:#d1d5db;border-radius:8px;cursor:pointer;text-align:left;font:inherit;font-size:.92rem;transition:background .12s,color .12s}.spa-item:hover:not(.disabled){background:#1f2937;color:#fff}.spa-item.active{background:var(--indigo);color:#fff;font-weight:600;box-shadow:0 4px 12px -4px #4f46e5b3}.spa-item.disabled{opacity:.45;cursor:not-allowed}.spa-ic{width:20px;text-align:center;flex-shrink:0}.spa-lbl{flex:1;min-width:0}.spa-soon{font-size:.6rem;background:#374151;padding:2px 6px;border-radius:6px;flex-shrink:0}.spa-logout{flex-shrink:0;margin-top:12px;background:#1f2937;color:#f87171;border:0;padding:10px;border-radius:8px;cursor:pointer;font:inherit;transition:background .12s}.spa-logout:hover{background:#372028}.spa-quota{flex-shrink:0;margin-top:12px;background:#1f2937;border:1px solid #374151;border-radius:8px;padding:9px 11px;color:#e5e7eb}.spa-quota.is-empty{border-color:#7f1d1d;background:#2a1616}.spa-quota-title{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:#9ca3af;font-weight:700;margin-bottom:3px}.spa-quota-main{font-size:.86rem}.spa-quota.is-empty .spa-quota-main{color:#fca5a5}.spa-quota-sub{font-size:.72rem;color:#9ca3af;margin-top:2px}.spa-buy{display:block;width:100%;margin-top:8px;padding:7px 10px;border:0;border-radius:7px;cursor:pointer;background:var(--indigo);color:#fff;font:inherit;font-size:.8rem;font-weight:700;letter-spacing:.01em;box-shadow:0 4px 12px -4px #4f46e5cc;transition:background .12s,box-shadow .12s,transform .12s}.spa-buy:hover{background:var(--indigo-dark);box-shadow:0 6px 16px -4px #4f46e5f2}.spa-buy:active{transform:translateY(1px);box-shadow:0 2px 8px -4px #4f46e5cc}.spa-buy:focus-visible{outline:2px solid #c7d2fe;outline-offset:2px}.spa-quota.is-empty .spa-buy{background:#f59e0b;color:#1f1300;box-shadow:0 4px 12px -4px #f59e0bcc}.spa-quota.is-empty .spa-buy:hover{background:#fbbf24;box-shadow:0 6px 16px -4px #f59e0bf2}.spa-userchip{flex-shrink:0;margin-top:12px;display:flex;align-items:center;gap:8px;min-width:0;padding:7px 9px;border-radius:8px;background:#1f2937}.spa-userchip img,.spa-userchip-ph{width:26px;height:26px;border-radius:50%;flex-shrink:0;object-fit:cover}.spa-userchip-ph{display:flex;align-items:center;justify-content:center;background:var(--indigo);color:#fff;font-size:.78rem;font-weight:700}.spa-userchip-name{flex:1;min-width:0;font-size:.8rem;color:#d1d5db;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spa-content{flex:1 1 auto;min-width:0;margin-left:250px;background:var(--bg);padding:28px 32px 48px}.spa-card{max-width:720px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 28px;box-shadow:var(--shadow)}.spa-card h1,.spa-card h2{font-size:1.4rem;margin:0 0 6px;letter-spacing:-.01em;line-height:1.3}.spa-desc{color:var(--muted);margin:0 0 20px;line-height:1.55}.spa-field{margin-bottom:14px;min-width:0}.spa-field label{display:block;font-size:.86rem;font-weight:500;margin-bottom:6px;color:var(--ink-2)}.spa-field input,.spa-field select,.spa-field textarea{width:100%;min-height:40px;padding:9px 12px;border:1px solid #d1d5db;border-radius:var(--r-sm);font:inherit;color:var(--ink);background:#fff;transition:border-color .12s,box-shadow .12s}.spa-field textarea{resize:vertical;min-height:130px;line-height:1.55}.spa-field input::placeholder,.spa-field textarea::placeholder{color:var(--muted-2)}.spa-field input:focus,.spa-field select:focus,.spa-field textarea:focus,.spa-login input:focus,.spa-inline-edit input:focus,.spa-inline-edit select:focus{outline:none;border-color:var(--indigo);box-shadow:0 0 0 3px #4f46e526}.spa-field input:disabled,.spa-field select:disabled,.spa-field textarea:disabled{background:#f9fafb;color:var(--muted);cursor:not-allowed}.spa-field select,.spa-inline-edit select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236b7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:11px;padding-right:34px;cursor:pointer}.spa-field input[type=file]{padding:7px 10px;cursor:pointer;line-height:24px}.spa-field input[type=file]::file-selector-button{padding:7px 14px;margin:0 12px 0 0;border:0;border-radius:7px;background:var(--indigo-soft);color:var(--indigo-dark);font:inherit;font-weight:600;font-size:.88rem;cursor:pointer;transition:background .12s}.spa-field input[type=file]:hover::file-selector-button{background:var(--indigo-soft-2)}.spa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;align-items:start}.spa-field-full{grid-column:1 / -1}.spa-chk{grid-column:1 / -1;display:flex;align-items:center;gap:11px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;cursor:pointer;transition:border-color .12s,background .12s}.spa-chk:hover{border-color:#c7d2fe;background:#fcfcff}.spa-chk input{width:18px;height:18px;min-height:0;margin:0;padding:0;flex-shrink:0;accent-color:var(--indigo);cursor:pointer}.spa-chk label{flex:1;margin:0;font-size:.92rem;font-weight:400;color:var(--ink-2);cursor:pointer}.spa-chk-body{flex:1;min-width:0}.spa-chk-body .spa-hint{margin-top:3px}.spa-color{padding:3px!important}.spa-field input[type=color].spa-color{width:56px;min-height:40px;height:40px;cursor:pointer}.spa-section{border:1px solid var(--line);border-radius:11px;margin-top:14px;padding:0 14px;background:#fcfcfd}.spa-section>summary{cursor:pointer;padding:13px 2px;font-weight:600;font-size:.95rem;color:var(--ink-2);list-style:none;-webkit-user-select:none;user-select:none}.spa-section>summary:hover{color:var(--indigo)}.spa-section>summary::-webkit-details-marker{display:none}.spa-section>summary:before{content:"▸";display:inline-block;width:14px;margin-right:6px;color:var(--muted-2);transition:transform .15s}.spa-section[open]>summary:before{transform:rotate(90deg)}.spa-section[open]>summary{border-bottom:1px solid var(--line);margin-bottom:14px}.spa-section .spa-grid{padding:0 2px 4px}.spa-vrp-open{margin:4px 0 18px;padding:14px 16px;border:1px dashed var(--line);border-radius:var(--r-sm);background:#fcfcfd}.spa-vrp-open-head{font-size:.9rem;font-weight:600;color:var(--ink-2);margin-bottom:10px}.spa-vrp-open-actions{display:flex;flex-wrap:wrap;gap:8px}.spa-vrp-open-actions button{padding:8px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font:inherit;font-size:.87rem;color:var(--ink-2);cursor:pointer;transition:border-color .12s,color .12s,background .12s}.spa-vrp-open-actions button:hover{border-color:var(--indigo);color:var(--indigo);background:var(--indigo-soft)}.spa-vrp-open .spa-hint{margin-top:9px}.spa-vrp{margin:4px 0 18px}.spa-vrp-tabs{display:flex;gap:6px;margin-bottom:10px}.spa-vrp-tabs button{padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font:inherit;font-size:.86rem;color:var(--ink-2);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.spa-vrp-tabs button:hover{border-color:#c7d2fe}.spa-vrp-tabs button.is-on{background:var(--indigo);border-color:var(--indigo);color:#fff;font-weight:600}.spa-vrp-stage{position:relative;width:100%;background:#000;border-radius:var(--r-sm);overflow:hidden;container-type:size;-webkit-user-select:none;user-select:none}.spa-vrp-stage video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.spa-vrp-layer{position:absolute;top:0;right:0;bottom:0;left:0;cursor:crosshair;touch-action:none}.spa-vrp-layer.is-full{cursor:default}.spa-vrp-layer.is-sub{cursor:ns-resize}.spa-vrp-zone{position:absolute;border:2px solid #f59e0b;background:rgba(245,158,11,.1);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);cursor:move;box-sizing:border-box}.spa-vrp-zone.is-sel{border-color:#fbbf24;box-shadow:0 0 0 2px #fbbf2459}.spa-vrp-tag{position:absolute;top:-1px;left:-1px;padding:1px 7px;background:#f59e0b;color:#1f2937;font-size:.72rem;font-weight:700;line-height:1.5;border-radius:0 0 6px}.spa-vrp-h{position:absolute;width:13px;height:13px;background:#fff;border:2px solid #f59e0b;border-radius:3px;box-sizing:border-box}.spa-vrp-h-nw{top:-7px;left:-7px;cursor:nwse-resize}.spa-vrp-h-ne{top:-7px;right:-7px;cursor:nesw-resize}.spa-vrp-h-sw{bottom:-7px;left:-7px;cursor:nesw-resize}.spa-vrp-h-se{bottom:-7px;right:-7px;cursor:nwse-resize}.spa-vrp-sub{position:absolute;left:0;right:0;text-align:center;white-space:nowrap;font-weight:600;line-height:1.2;cursor:grab;paint-order:stroke fill;text-shadow:0 1px 3px rgba(0,0,0,.55)}.spa-vrp-sub:active{cursor:grabbing}.spa-vrp-sub.is-off{opacity:.35;cursor:default}.spa-vrp-bar{display:flex;align-items:center;gap:11px;margin-top:9px}.spa-vrp-play{width:34px;height:34px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:.75rem;color:var(--ink-2);cursor:pointer;transition:border-color .12s,color .12s}.spa-vrp-play:hover{border-color:var(--indigo);color:var(--indigo)}.spa-vrp-bar input[type=range]{flex:1;min-width:0;accent-color:var(--indigo);cursor:pointer}.spa-vrp-time{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}.spa-vrp-empty{font-size:.85rem;color:var(--muted-2);margin:8px 0 0}.spa-vrp-list{list-style:none;margin:8px 0 0;padding:0}.spa-vrp-list li{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:7px;font-size:.84rem;color:var(--ink-2)}.spa-vrp-list li.is-sel{background:#fffbeb}.spa-vrp-list li b{flex-shrink:0;font-weight:600}.spa-vrp-list li code{flex:1;min-width:0;color:var(--muted);font-size:.95em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spa-job{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.spa-job-main{flex:1 1 360px;max-width:560px}.spa-log{flex:1 1 380px;display:flex;flex-direction:column;min-width:300px;max-width:620px}.spa-log-title{font-weight:600;margin-bottom:10px;color:var(--ink-2)}.spa-log-body{background:#0f172a;color:#e2e8f0;border-radius:10px;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.6;min-height:160px;max-height:min(440px,55vh);overflow-y:auto}.spa-log-empty{color:#64748b}.spa-log-line{display:flex;gap:8px;white-space:pre-wrap;word-break:break-word}.spa-log-line.err{color:#f87171}.spa-log-line.done{color:#4ade80}.spa-log-ts{color:#64748b;flex:0 0 auto}.spa-log-pct{color:#38bdf8;flex:0 0 auto;min-width:36px;text-align:right}.spa-log-msg{flex:1 1 auto}.spa-bar{height:8px;background:#eceef3;border-radius:999px;margin:14px 0 10px;overflow:hidden}.spa-bar span{display:block;height:100%;background:var(--indigo);border-radius:999px;transition:width .3s}.spa-bar.is-succeeded span{background:var(--ok)}.spa-bar.is-failed span,.spa-bar.is-canceled span{background:var(--danger)}.spa-progress{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 4px}.spa-status{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.01em;background:#f3f4f6;color:var(--ink-2)}.spa-status.is-queued{background:#fef3c7;color:#92400e}.spa-status.is-running{background:var(--indigo-soft);color:var(--indigo-dark)}.spa-status.is-succeeded{background:#dcfce7;color:#166534}.spa-status.is-failed,.spa-status.is-canceled{background:#fee2e2;color:#991b1b}.spa-progress-pct{font-weight:600;font-variant-numeric:tabular-nums}.spa-progress-stage{color:var(--muted);font-size:.9rem}.spa-badge{display:inline-block;margin-top:12px;background:#fef3c7;color:#92400e;padding:8px 14px;border-radius:var(--r-sm)}.spa-jid{color:var(--muted-2);font-size:.8rem;word-break:break-all;margin:0 0 4px}.spa-dl-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.spa-dl{display:inline-block;margin-top:14px;padding:10px 18px;background:var(--ok);color:#fff;border-radius:var(--r-sm);text-decoration:none;font-weight:600;font-size:.93rem;transition:background .12s}.spa-dl:hover{background:#15803d}.spa-dl-list .spa-dl{margin-top:0}.spa-outputs{margin-top:16px;display:flex;flex-direction:column;gap:16px}.spa-output{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;background:#fafbfc}.spa-output-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.spa-output-name{flex:1;min-width:0;font-weight:600;font-size:.9rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spa-dl-sm{flex-shrink:0;padding:6px 13px;border-radius:7px;background:var(--ok);color:#fff;text-decoration:none;font-weight:600;font-size:.82rem;transition:background .12s}.spa-dl-sm:hover{background:#15803d}.spa-player{display:block;width:100%;max-width:100%;border-radius:8px;background:#000}video.spa-player{max-height:min(60vh,420px)}.spa-player-audio{height:40px;background:transparent}.spa-expired{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:10px 13px;border:1px solid #fcd34d;border-radius:var(--r-sm);background:#fffbeb;color:#92400e;font-size:.86rem}.spa-actions{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap}.spa-actions button{padding:10px 18px;border-radius:var(--r-sm);border:0;cursor:pointer;font:inherit;font-weight:600;font-size:.93rem}.spa-cancel{background:var(--danger);color:#fff}.spa-cancel:hover{background:#b91c1c}.spa-ghost{background:#f1f2f6;color:var(--ink-2)}.spa-ghost:hover{background:var(--line)}.spa-card-wide{max-width:920px}.spa-sec-title{font-weight:700;font-size:1.02rem;color:var(--ink);margin:28px 0 12px;padding-top:22px;border-top:1px solid var(--line)}.spa-hint{font-size:.82rem;color:var(--muted);margin:7px 0 0;line-height:1.55}.spa-empty{text-align:center;color:var(--muted-2);padding:26px 12px;background:#fafbfc;border:1px dashed var(--line);border-radius:var(--r-sm)}.spa-vlist{display:flex;flex-direction:column}.spa-vrow{display:flex;align-items:center;gap:12px;padding:10px 8px;margin:0 -8px;border-radius:8px;border-bottom:1px solid var(--line-soft);transition:background .12s}.spa-vrow:hover{background:#fafbff}.spa-vrow:last-child{border-bottom:0}.spa-vmain{flex:1;min-width:0}.spa-vname{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spa-vmeta{font-size:.8rem;color:var(--muted);margin-top:2px}.spa-vactions{display:flex;gap:8px;flex-shrink:0;margin-left:auto}.spa-vrow.spa-vshared{background:#fbfaff}.spa-vrow.spa-vshared:hover{background:#f5f3ff}.spa-vtag{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--indigo-soft);color:var(--indigo-dark);vertical-align:middle}.spa-quota-wall{margin-top:18px;padding:16px 18px;border:1px solid #fcd34d;border-radius:var(--r-sm);background:#fffbeb}.spa-quota-wall h3{margin:0 0 6px;font-size:1rem;color:#92400e}.spa-quota-wall p{margin:0;font-size:.88rem;color:#78350f;line-height:1.6}.spa-quota-wall .hint{margin-top:8px;font-size:.82rem;color:#a16207}.spa-btn-google{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none}.spa-btn-google svg{flex-shrink:0;background:#fff;border-radius:2px}.spa-login-note{margin-top:16px}.spa-consent{max-width:480px}.spa-consent-docs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}.spa-consent-docs a{flex:1 1 180px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--indigo-soft);color:var(--indigo-dark);font-size:.88rem;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s}.spa-consent-docs a:hover{background:var(--indigo-soft-2);border-color:var(--indigo)}.spa-consent-note{margin:0 0 16px;padding:10px 12px;background:#f9fafb;border-left:3px solid var(--line);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--muted);font-size:.82rem;line-height:1.6}.spa-consent-check{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;cursor:pointer;font-size:.9rem;line-height:1.55;color:var(--ink-2)}.spa-consent-check input{width:17px;height:17px;flex-shrink:0;margin:1px 0 0;padding:0;accent-color:var(--indigo);cursor:pointer}.spa-play{width:34px;height:34px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:var(--indigo-soft);color:var(--indigo);cursor:pointer;font-size:.78rem;line-height:1;padding:0;transition:background .12s,color .12s,transform .05s}.spa-play:hover:not(:disabled){background:var(--indigo-soft-2)}.spa-play:active:not(:disabled){transform:scale(.94)}.spa-play.playing{background:var(--indigo);color:#fff}.spa-play:disabled{opacity:.35;cursor:not-allowed}.spa-btn-sm{padding:7px 13px;font:inherit;font-size:.85rem;font-weight:500;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink-2);cursor:pointer;transition:background .12s,border-color .12s}.spa-btn-sm:hover{background:#f3f4f6}.spa-btn-danger{color:var(--danger)}.spa-btn-danger:hover{background:#fee2e2;border-color:#fecaca}.spa-inline-edit{display:flex;gap:8px;align-items:center}.spa-inline-edit input,.spa-inline-edit select{padding:7px 10px;border:1px solid #d1d5db;border-radius:7px;font:inherit;background:#fff}.spa-inline-edit input{flex:1;min-width:0}.spa-inline-edit select{padding-right:30px;background-position:right 9px center}.spa-link-sm{font:inherit;font-size:.82rem;color:var(--indigo);cursor:pointer;text-decoration:underline;background:none;border:0;padding:0;white-space:nowrap}.spa-link-sm:hover{color:var(--indigo-dark)}.spa-toast{position:fixed;right:20px;bottom:20px;z-index:50;background:var(--ok);color:#fff;padding:13px 20px;border-radius:var(--r-sm);font-size:.92rem;font-weight:500;box-shadow:0 12px 28px #0003;animation:spa-toast-in .22s ease-out}@keyframes spa-toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.spa-card .spa-glabel{color:var(--muted);padding-left:0;font-weight:600}.spa-jfilter{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:4px}.spa-jfilter-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.spa-jfilter-right select{padding:7px 30px 7px 11px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font:inherit;font-size:.86rem;color:var(--ink-2);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236b7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:11px}.spa-tabs{display:flex;gap:6px;flex-wrap:wrap}.spa-tab{padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;font:inherit;font-size:.85rem;color:var(--ink-2);cursor:pointer}.spa-tab:hover{border-color:#c7d2fe;color:var(--indigo)}.spa-tab.active{background:var(--indigo);border-color:var(--indigo);color:#fff;font-weight:600}.spa-jlist{display:flex;flex-direction:column;margin-top:6px}.spa-jrow{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line)}.spa-jrow:last-child{border-bottom:0}.spa-jrow:hover{background:#fafbff}.spa-jopen{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:12px;text-align:left;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}.spa-jic{font-size:1.35rem;flex-shrink:0;width:26px;text-align:center}.spa-jmain{display:flex;flex-direction:column;gap:2px;min-width:0}.spa-jname{font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spa-jcount{font-size:.68rem;font-weight:600;background:var(--indigo-soft);color:var(--indigo-dark);padding:2px 7px;border-radius:999px;flex-shrink:0}.spa-jsummary{font-size:.82rem;color:var(--muted);line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spa-jsummary.is-err{color:var(--danger)}.spa-jmeta{font-size:.76rem;color:var(--muted-2)}.spa-jright{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;min-width:152px}.spa-jbar{width:140px;height:5px;margin:0}.spa-jstage{font-size:.74rem;color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spa-jactions{display:flex;gap:6px}.spa-jpager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.spa-jpage{font-size:.84rem;color:var(--muted)}@media (max-width: 640px){.spa-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 720px){.spa-shell{flex-direction:column}.spa-side{flex:0 0 auto;width:100%;height:auto;position:sticky;top:0;left:auto;z-index:30;flex-direction:row;flex-wrap:wrap;align-items:center;gap:9px 10px;padding:9px 12px;border-bottom:1px solid #1f2937;overflow:visible}.spa-brand{padding:0;font-size:1rem;flex:1 1 auto}.spa-burger{display:flex;order:-1}.spa-logout{order:3;margin-top:0;margin-left:auto;padding:7px 12px;font-size:.85rem;flex-shrink:0}.spa-side nav{display:none;position:absolute;top:100%;left:0;right:0;max-height:72vh;overflow-y:auto;overflow-x:hidden;padding:8px 10px 14px;background:#111827;border-bottom:1px solid #1f2937;box-shadow:0 20px 34px -14px #000000b3}.spa-side nav.open{display:block}.spa-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:19;background:rgba(0,0,0,.4)}.spa-userchip{display:none}.spa-quota{margin-top:0;flex-shrink:0;order:1;padding:5px 9px;display:flex;align-items:baseline;gap:6px}.spa-quota-title{display:none}.spa-quota-main{font-size:.8rem}.spa-quota-sub{margin-top:0}.spa-buy{width:auto;margin-top:0;margin-left:auto;flex-shrink:0;padding:4px 10px;font-size:.74rem}.spa-buy,.spa-buy:hover,.spa-quota.is-empty .spa-buy,.spa-quota.is-empty .spa-buy:hover{box-shadow:none}.spa-content{margin-left:0;padding:18px 14px 40px}.spa-card{padding:20px 16px;border-radius:12px}.spa-card h1,.spa-card h2{font-size:1.22rem}.spa-job{gap:14px}.spa-log-body{max-height:340px}}@media (max-width: 520px){.spa-vrow,.spa-jrow{flex-wrap:wrap}.spa-jright{flex:1 1 100%;margin-left:38px;flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:wrap;min-width:0}.spa-jactions{margin-left:auto}.spa-jbar{width:90px}.spa-vactions{flex:1 1 100%;margin-left:46px}.spa-inline-edit{flex-wrap:wrap}.spa-inline-edit input{flex:1 1 100%}.spa-login{padding:24px 20px}}.spa-plan{margin:14px 0 18px;padding:12px 16px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--bg);font-size:.92rem;line-height:1.6;color:var(--ink-2)}.spa-plan.is-active{border-color:#86efac;background:#f0fdf4;color:#14532d}.spa-plan.is-expired{border-color:#fca5a5;background:#fef2f2;color:#7f1d1d}.spa-plan.is-none{border-color:#fcd34d;background:#fffbeb;color:#78350f}.spa-pay-ok{margin:14px 0;padding:12px 16px;border-radius:var(--r-sm);border:1px solid #86efac;background:#f0fdf4;color:#14532d;font-size:.92rem;line-height:1.6}.spa-pay-sandbox{border-left:3px solid #f59e0b;padding-left:10px}.spa-paypick{margin:20px 0 4px;padding:0;border:0;min-width:0}.spa-paypick-title{padding:0;font-size:.95rem;font-weight:600;color:var(--ink-2)}.spa-req{color:var(--danger)}.spa-paypick-hint{margin:10px 0 0;font-size:.84rem;color:var(--indigo-dark)}.spa-paypick.is-empty .spa-paygate{border-color:#a5b4fc;box-shadow:0 1px 2px #4f46e50f,0 4px 14px -8px #4f46e54d}.spa-paypick.is-empty .spa-paygate:hover{border-color:var(--indigo);background:var(--indigo-soft)}.spa-paypick.is-empty .spa-paygate-dot{border-color:#a5b4fc}.spa-paygates{display:grid;gap:10px;margin-top:10px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.spa-paygate{position:relative;display:flex;align-items:center;gap:11px;max-width:420px;padding:13px 14px;border-radius:var(--r-sm);border:2px solid #dbe1ea;background:#fff;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s,transform .1s}.spa-paygate:hover{border-color:#a5b4fc;background:#fcfcff}.spa-paygate:active{transform:translateY(1px)}.spa-paygate-radio{position:absolute;width:1px;height:1px;opacity:0;margin:0;pointer-events:none}.spa-paygate:focus-within{border-color:var(--indigo);box-shadow:0 0 0 3px var(--indigo-soft-2)}.spa-paygate.is-on{border-color:var(--indigo);background:var(--indigo-soft);box-shadow:0 1px 2px #4f46e514,0 6px 18px -10px #4f46e573}.spa-paygate:has(.spa-paygate-radio:disabled){opacity:.55;cursor:not-allowed}.spa-paygate-dot{flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:2px solid #cbd5e1;background:#fff;transition:border-color .15s,box-shadow .15s}.spa-paygate.is-on .spa-paygate-dot{border-color:var(--indigo);box-shadow:inset 0 0 0 4px var(--indigo)}.spa-paygate-body{display:flex;flex-direction:column;gap:2px;min-width:0}.spa-paygate-name{font-size:.95rem;font-weight:600}.spa-paygate.is-on .spa-paygate-name{color:var(--indigo-dark)}.spa-paygate-desc{font-size:.78rem;color:var(--muted);line-height:1.35}.spa-paygate-cur{margin-left:auto;flex:0 0 auto;font-size:.72rem;font-weight:600;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:rgba(0,0,0,.06);color:var(--muted)}.spa-paygate.is-on .spa-paygate-cur{background:var(--indigo-soft-2);color:var(--indigo-dark)}.spa-pkg-price.is-multi{display:flex;flex-direction:column;gap:1px;font-size:1.28rem;line-height:1.25}.spa-pkg-price-alt{color:var(--ink-2)}.spa-pkgs{display:grid;gap:14px;margin:18px 0 8px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.spa-pkg{position:relative;display:flex;flex-direction:column;padding:20px 18px 18px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow)}.spa-pkg.is-featured{border-color:var(--indigo)}.spa-pkg-badge{position:absolute;top:-10px;right:14px;background:var(--indigo);color:#fff;font-size:.7rem;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.02em}.spa-pkg-name{font-size:.82rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.spa-pkg-price{font-size:1.6rem;font-weight:800;color:var(--ink);margin:6px 0 8px}.spa-pkg-note{font-size:.85rem;color:var(--muted);line-height:1.55;flex:1 1 auto;margin-bottom:14px}.spa-pkg-limit{font-size:.78rem;line-height:1.5;color:var(--muted);margin-bottom:10px}.spa-pkg-limit.is-out{color:#b45309;font-weight:600}.spa-pkg.is-soldout{opacity:.72;border-style:dashed}.spa-pkg.is-soldout .spa-pkg-price{color:var(--muted)}.spa-status.is-pending{background:#fef3c7;color:#92400e}.spa-status.is-paid{background:#dcfce7;color:#166534}.spa-quota .spa-link-sm{display:inline-block;margin-top:6px;padding:0;background:none;border:0;cursor:pointer;color:#a5b4fc;font-size:.76rem;font-weight:600;text-decoration:underline}.spa-quota .spa-link-sm:hover{color:#c7d2fe}.spa-errbox{margin:14px 0 0}.spa-errbox .spa-err{margin:0}.spa-errbox .spa-link-sm{margin-top:6px}.spa-err-detail{margin:8px 0 0;padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--r-sm);color:#7f1d1d;font-size:.78rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto}.spa-srt{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:#fcfcfd}.spa-srt-head strong{font-size:.95rem}.spa-srt-head .spa-hint{margin-top:4px}.spa-srt-body{margin:14px 0;max-height:460px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}.spa-srt-row{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-bottom:1px solid var(--line-soft)}.spa-srt-row:last-child{border-bottom:0}.spa-srt-time{flex:0 0 52px;padding-top:8px;font-size:.76rem;font-variant-numeric:tabular-nums;color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none}.spa-srt-text{flex:1 1 auto;min-width:0;resize:vertical;padding:7px 9px;border:1px solid var(--line);border-radius:var(--r-sm);font:inherit;font-size:.88rem;line-height:1.5;color:var(--ink)}.spa-srt-text:focus{outline:0;border-color:var(--indigo);box-shadow:0 0 0 3px var(--indigo-soft)}.spa-srt-text.is-empty{background:#fffbeb;border-color:#fde68a}.spa-srt-foot .spa-actions{margin-top:12px;align-items:center}.spa-dock{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;flex-direction:column;gap:10px;align-items:flex-end}.spa-dock-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:0;border-radius:999px;cursor:pointer;font:inherit;font-size:.87rem;font-weight:600;text-decoration:none;box-shadow:0 6px 20px -6px #10182859;transition:transform .15s ease}.spa-dock-btn:hover{transform:translateY(-2px)}.spa-dock-btn.is-zalo{background:#0068ff;color:#fff}.spa-dock-btn.is-fanpage{background:#1877f2;color:#fff}.spa-dock-btn.is-feedback{background:#fff;color:var(--ink-2);border:1px solid var(--line)}.spa-dock-ic{font-weight:800;font-size:.82rem}.spa-dock-btn.is-fanpage .spa-dock-ic{font-size:1.05rem;line-height:1;min-width:10px;text-align:center}@media (max-width: 720px){.spa-dock{right:12px;bottom:12px;gap:8px}.spa-dock-lbl{display:none}.spa-dock-btn{padding:11px 13px}}.spa-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:rgba(17,24,39,.45);display:flex;align-items:center;justify-content:center;padding:20px}.spa-modal{width:100%;max-width:460px;max-height:88vh;overflow-y:auto;background:#fff;border-radius:var(--r);box-shadow:var(--shadow)}.spa-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.spa-modal-x{background:none;border:0;cursor:pointer;font-size:1.05rem;line-height:1;color:var(--muted);padding:4px}.spa-modal-x:hover{color:var(--ink)}.spa-modal-body{padding:18px}.spa-modal-body .spa-field{margin-bottom:14px}.spa-pkg.is-wanted{border-color:var(--indigo);box-shadow:0 0 0 3px var(--indigo-soft)}.spa-locale{position:relative;display:inline-block}.spa-flag{width:20px;height:14px;flex-shrink:0;border-radius:2px;box-shadow:inset 0 0 0 1px #0000001f;display:block}.spa-locale-trigger,.spa-locale-opt{display:flex;align-items:center;gap:8px;width:100%;font:inherit;font-size:.82rem;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;color:var(--ink-2);cursor:pointer;text-align:left;transition:background .12s,border-color .12s,color .12s}.spa-locale-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spa-locale-caret{width:0;height:0;flex-shrink:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.55;transition:transform .15s}.spa-locale.is-open .spa-locale-caret{transform:rotate(180deg)}.spa-locale-trigger:hover{border-color:#c7d2fe;color:var(--indigo)}.spa-locale-menu{position:absolute;z-index:40;left:0;top:calc(100% + 4px);min-width:100%;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow)}.spa-locale-menu li{margin:0}.spa-locale-opt{border:0;border-radius:6px;padding:7px 9px;background:transparent}.spa-locale-opt:hover{background:var(--indigo-soft);color:var(--indigo)}.spa-locale-opt.active{color:var(--indigo);font-weight:600;cursor:default}.spa-locale-opt.active:hover{background:var(--indigo-soft)}.spa-locale-check{flex-shrink:0;font-size:.8rem}.spa-locale.is-dark .spa-locale-trigger{background:#1f2937;border-color:#374151;color:#d1d5db}.spa-locale.is-dark .spa-locale-trigger:hover{background:#374151;border-color:#4b5563;color:#fff}.spa-locale.is-dark .spa-locale-menu{background:#1f2937;border-color:#374151}.spa-locale.is-dark .spa-locale-opt{color:#d1d5db}.spa-locale.is-dark .spa-locale-opt:hover{background:#374151;color:#fff}.spa-locale.is-dark .spa-locale-opt.active{background:var(--indigo);color:#fff}.spa-locale.is-dark .spa-flag{box-shadow:inset 0 0 0 1px #ffffff38}.spa-side .spa-locale{display:block;flex-shrink:0;margin-top:12px}.spa-side .spa-locale-menu{top:auto;bottom:calc(100% + 4px)}.spa-login .spa-locale{display:block;width:fit-content;margin:0 0 14px auto}.spa-login .spa-locale-menu{left:auto;right:0}@media (max-width: 720px){.spa-side .spa-locale{order:2;margin-top:0;width:auto}.spa-side .spa-locale-menu{top:calc(100% + 4px);bottom:auto;left:auto;right:0}.spa-locale-trigger{padding:6px 9px;font-size:.78rem}.spa-side .spa-locale-trigger .spa-locale-name{display:none}}
