*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0f1117;color:#e2e8f0;height:100%;overflow:hidden}:focus{outline:none}:focus-visible{outline:2px solid #6366f1;outline-offset:2px}button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible){outline:none}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:#6366f1}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#161824;border-radius:3px}::-webkit-scrollbar-thumb{background:#2d3148;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3d4468}::-webkit-scrollbar-corner{background:#161824}*{scrollbar-width:thin;scrollbar-color:#2d3148 #161824}#login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-box{background:#1a1d27;border:1px solid #2d3148;border-radius:12px;padding:40px;width:100%;max-width:400px}.login-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.app-brand-lockup{display:inline-flex;align-items:center;gap:8px;min-width:0}.app-brand-icon{flex-shrink:0;display:block;border-radius:5px}.app-brand-text{font-weight:700;color:#f8fafc;white-space:nowrap}.login-header .app-brand-text{font-size:22px;line-height:1.2;margin:0}.login-header .app-brand-icon{width:26px;height:26px}#login-error{color:#f87171;font-size:13px;margin-top:10px;display:none}.lang-switch{display:inline-flex;border:1px solid #2d3148;border-radius:8px;overflow:hidden;flex-shrink:0}.lang-btn{background:transparent;border:none;color:#64748b;font-size:12px;font-weight:600;padding:5px 10px;cursor:pointer;transition:background .15s,color .15s}.lang-btn:hover{color:#e2e8f0;background:#252840}.lang-btn.lang-btn-active{background:#6366f1;color:#fff}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;color:#94a3b8;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;background:#0f1117;border:1px solid #2d3148;border-radius:8px;padding:10px 14px;color:#e2e8f0;font-size:14px;outline:none;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#6366f1}.form-group textarea{font-size:12px;font-family:ui-monospace,Cascadia Code,monospace;resize:vertical;min-height:80px}.form-hint{color:#64748b;font-size:12px;font-weight:400}.form-section-divider{border-top:1px solid #2d3148;margin:20px 0 16px;padding-top:16px}.form-section{margin-bottom:20px;padding-bottom:4px;border-bottom:1px solid #2d3148}.form-section:last-child{border-bottom:none;margin-bottom:0}.form-section-title{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px}.modal-config-form{display:flex;flex-direction:column;max-height:min(90vh,900px)}.modal-config-body{flex:1;overflow-y:auto;min-height:0;padding-right:4px}.modal-footer-sticky{flex-shrink:0;border-top:1px solid #2d3148;margin-top:0;padding-top:16px}.cron-hint{margin-top:6px;margin-bottom:0;min-height:1.2em}.checkbox-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:14px;color:#e2e8f0;margin-bottom:4px;user-select:none}.checkbox-row input[type=checkbox]{width:16px;height:16px;margin-top:2px;accent-color:#6366f1;flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:8px;border:none;cursor:pointer;font-size:14px;font-weight:500;transition:opacity .15s,background .15s;white-space:nowrap}.btn:hover{opacity:.85}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:#6366f1;color:#fff}.btn-danger{background:#ef4444;color:#fff}.btn-success{background:#22c55e;color:#fff}.btn-ghost{background:transparent;border:1px solid #2d3148;color:#94a3b8}.btn-sm{padding:6px 12px;font-size:13px}.btn-full{width:100%;justify-content:center}.btn-icon-only{padding:6px 8px;min-width:32px}.btn-node-del,.btn-node-upd{background:none;border:none;cursor:pointer;color:#475569;padding:2px 4px;border-radius:6px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;transition:color .15s,background .15s}.btn-node-del i,.btn-node-upd i{width:12px;height:12px}.btn-node-del:hover{color:#ef4444;background:#ef444426}.btn-node-upd:hover:not(:disabled){color:#6366f1;background:#6366f126}.btn-node-upd:disabled{opacity:.35;cursor:not-allowed}.group-update-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.group-update-select-all{margin:0}.group-update-status{font-size:12px;color:#94a3b8}.group-update-list{max-height:360px;overflow-y:auto;border:1px solid #2d3148;border-radius:8px;padding:6px;margin-bottom:4px}.group-update-empty{padding:16px 10px;font-size:13px;color:#64748b;text-align:center}.group-update-row{align-items:flex-start;padding:8px 6px;border-radius:6px;margin:0}.group-update-row:hover{background:#94a3b80f}.group-update-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.group-update-row-name{font-size:13px;color:#e2e8f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-update-row-meta{font-size:11px;color:#64748b}.group-update-row-status{flex-shrink:0;font-size:11px;color:#64748b;min-width:72px;text-align:right}.group-update-row-status[data-status=started],.group-update-row-status[data-status=queued]{color:#818cf8}.group-update-row-status[data-status=ok]{color:#22c55e}.group-update-row-status[data-status=error]{color:#ef4444}.node-item-body{flex:1;min-width:0;overflow:hidden}.node-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3;width:100%}.node-item-footer{display:flex;align-items:center;gap:4px;margin-top:2px;min-width:0}.node-item-meta{flex:1;min-width:0;font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.node-item-actions{display:flex;align-items:center;gap:1px;flex-shrink:0;margin-left:auto}.node-item.active .node-item-meta{color:#94a3b8}#app{display:none;flex-direction:column;height:100%}header{background:#1a1d27;border-bottom:1px solid #2d3148;padding:0 16px 0 20px;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.header-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1;overflow:hidden}header .logo{flex-shrink:0;cursor:pointer}header .logo .app-brand-text{font-size:16px}header .logo .app-brand-icon{width:22px;height:22px}.header-storage-wrap{display:flex;align-items:flex-start;gap:8px;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;scrollbar-width:thin;scrollbar-color:#4b5563 transparent;-webkit-overflow-scrolling:touch}.header-storage-wrap.is-scrollable{cursor:grab}.header-storage-wrap.is-scrollable.is-dragging{cursor:grabbing;user-select:none}.header-storage-wrap::-webkit-scrollbar{height:6px}.header-storage-wrap::-webkit-scrollbar-track{background:transparent}.header-storage-wrap::-webkit-scrollbar-thumb{background:#4b5563;border-radius:3px}.header-storage-wrap::-webkit-scrollbar-thumb:hover{background:#64748b}.header-clock{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;background:#94a3b814;color:#cbd5e1;font-variant-numeric:tabular-nums;font-size:13px;line-height:1.2;white-space:nowrap;user-select:none}.header-clock i,.header-clock svg{width:14px;height:14px;color:#64748b;flex-shrink:0}.header-clock-time{font-weight:600;letter-spacing:.02em;color:#e2e8f0}.header-clock-tz{color:#64748b;font-size:11px;font-weight:500}@media(max-width:767px){.header-clock-tz{display:none}}.header-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0;flex-wrap:wrap;max-width:55%}.header-dropdown{position:relative}.header-dropdown-trigger{display:inline-flex;align-items:center;gap:6px;max-width:200px}.header-dropdown-chevron{width:14px;height:14px;opacity:.7;flex-shrink:0}.header-dropdown.open .header-dropdown-chevron{transform:rotate(180deg)}.header-dropdown-menu{display:none;position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:#1a1d27;border:1px solid #2d3148;border-radius:8px;padding:6px;z-index:120;box-shadow:0 8px 24px #00000059}.header-dropdown.open .header-dropdown-menu{display:block}.header-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;border-radius:6px;background:transparent;color:#cbd5e1;font-size:13px;cursor:pointer;text-align:left}.header-dropdown-item:hover{background:#252840}.header-dropdown-item i,.header-dropdown-item svg{width:16px;height:16px;flex-shrink:0;opacity:.85}.header-dropdown-item-danger{color:#f87171}.header-dropdown-divider{height:1px;background:#2d3148;margin:6px 4px}.user-menu-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#252840;flex-shrink:0}.user-menu-avatar i,.user-menu-avatar svg{width:14px;height:14px}.user-menu-name{color:#94a3b8;font-size:13px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{display:flex;flex:1;min-height:0;overflow:hidden;position:relative}.sidebar-toggle{display:none;flex-shrink:0;min-width:44px;min-height:44px}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#0000008c;z-index:80}#app-sidebar{width:240px;background:#1a1d27;border-right:1px solid #2d3148;padding:16px;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden}aside h2{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-bottom:10px;padding:0 8px;flex-shrink:0}#nodes-list{flex:1;overflow-y:auto;min-height:0}.node-group{margin-bottom:4px}.node-group-header{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;color:#94a3b8;user-select:none}.node-group-header:hover{background:#1e2235;color:#e2e8f0}.node-group-chevron{width:14px;height:14px;flex-shrink:0;transition:transform .15s ease}.node-group.is-collapsed .node-group-chevron{transform:rotate(-90deg)}.node-group-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-group-count{font-size:11px;font-weight:500;color:#64748b;flex-shrink:0}.node-group-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:.55;transition:opacity .1s}.node-group-header:hover .node-group-actions{opacity:1}.node-group-actions .btn-node-group{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:#94a3b8;cursor:pointer}.node-group-actions .btn-node-group:hover{background:#2d3148;color:#f8fafc}.node-group-actions .btn-node-group i{width:12px;height:12px}.node-group-body{padding-left:4px}.node-group.is-collapsed .node-group-body{display:none}.node-group-body .node-item{padding-left:8px}.btn-node-group-move{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:#64748b;cursor:pointer;flex-shrink:0;opacity:.55}.node-item:hover .btn-node-group-move{opacity:1}.btn-node-group-move:hover{background:#2d3148;color:#e2e8f0}.btn-node-group-move i{width:12px;height:12px}.node-group-label{display:inline-flex;align-items:center;max-width:200px;height:26px;padding:0 10px;border-radius:8px;border:1px solid #2d3148;background:#15182a;color:#94a3b8;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none}.modal-hint{font-size:13px;color:#94a3b8;margin:0 0 12px}.node-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px;color:#cbd5e1;transition:background .1s}#nodes-list .node-item{align-items:flex-start}#nodes-list .node-item .dot{margin-top:5px}.node-item:hover{background:#252840}.node-item.active,#nav-stats-item.active,#nav-home-item.active{background:#252840;color:#f8fafc}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-online{background:#22c55e}.dot-offline{background:#475569}.add-node-btn{flex-shrink:0;margin-top:8px}.node-env-path{font-size:11px;color:#475569;margin:0 0 8px;font-family:ui-monospace,monospace;word-break:break-all}.node-env-pending{font-size:12px;color:#f59e0b;margin:0 0 10px}.node-env-unsupported{font-size:13px;color:#94a3b8;margin:0 0 10px}.node-env-modal-footer{justify-content:flex-start;gap:8px}.node-env-fields{max-height:min(58vh,520px);overflow-y:auto;padding-right:4px;margin-bottom:4px}.node-env-fields .form-group{margin-bottom:12px}.node-env-fields .form-group input{font-family:ui-monospace,Cascadia Code,monospace;font-size:12px}.node-env-fields .form-group input:disabled{opacity:.55;cursor:not-allowed}.node-env-extra{margin-top:8px;padding-top:12px;border-top:1px solid #2d3148}.node-env-extra-list .form-group{margin-bottom:10px}.node-env-extra-key{display:block;font-size:12px;font-family:ui-monospace,Cascadia Code,monospace;color:#94a3b8;margin-bottom:4px}.btn-warning{background:#f59e0b;color:#1a1d27}.btn-warning:hover{background:#fbbf24}.sidebar-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;padding:0 8px 6px;flex-shrink:0}.sidebar-footer{border-top:1px solid #2d3148;margin-top:10px;padding-top:10px;flex-shrink:0}.password-change-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 20px;background:#451a03;border-bottom:1px solid #78350f;color:#fbbf24;font-size:13px;flex-shrink:0}.password-change-banner-text{flex:1;min-width:200px}.password-change-error{margin-bottom:12px}.demo-license-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 20px;background:#1c1917;border-bottom:1px solid #44403c;color:#fbbf24;font-size:13px;flex-shrink:0}.demo-license-banner-text{flex:1;min-width:200px}.demo-feature-hint{margin:8px 0 0;padding:8px 10px;border-radius:8px;border:1px solid #854d0e;background:#1c1917;color:#fbbf24;font-size:12px;line-height:1.4}.license-mode-badge{display:inline-flex;align-items:center;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:#44403c;color:#fbbf24}.license-mode-badge.is-full{background:#14532d;color:#4ade80}.license-mode-badge.is-grace{background:#78350f;color:#fcd34d}.license-mode-badge.is-demo{background:#7f1d1d;color:#fca5a5}.header-menu-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#4f46e5;color:#e0e7ff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.license-status-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.license-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:0 0 18px}.license-meta>div{min-width:0}.license-meta dt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:2px}.license-meta dd{margin:0;font-size:13px;color:#e2e8f0;word-break:break-word}.license-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.license-build-id{font-size:11px;font-weight:400}.license-footer-actions{gap:8px;flex-wrap:wrap}.updates-list{display:flex;flex-direction:column;gap:12px}.updates-card{border:1px solid #2d3148;border-radius:10px;background:#161824;padding:14px 16px}.updates-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.updates-card-title{font-weight:600;font-size:14px}.updates-card-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px 12px;font-size:12px;color:#94a3b8;margin-bottom:12px}.updates-card-actions{display:flex;flex-wrap:wrap;gap:8px}.node-item.is-demo-ineligible{opacity:.72}.node-item-demo-badge{font-size:10px;padding:1px 6px;border-radius:4px;background:#44403c;color:#fbbf24;margin-left:6px;vertical-align:middle}@media(max-width:640px){.license-meta{grid-template-columns:1fr}}.app-password-locked .main{pointer-events:none;user-select:none}.app-password-locked .header-toolbar>*:not(.password-gate-allowed){pointer-events:none;opacity:.45}.app-password-locked .lang-switch{pointer-events:none;opacity:.45}.content{flex:1;padding:24px;overflow:hidden;min-height:0;display:flex;flex-direction:column}.page{display:none}.page.active{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;flex-shrink:0;flex-wrap:wrap}.page-header h1{font-size:20px;font-weight:600}.page-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-header-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.node-disk-meta{margin-left:4px}.node-disk-cols{display:flex;gap:14px;margin-top:4px}.node-item-body>.node-disk-cols{padding-left:0}.node-disk-col{display:flex;flex-direction:column;gap:1px;min-width:0}.node-disk-label{font-size:10px;line-height:1.2;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.node-disk-val{font-size:12px;line-height:1.25;color:#cbd5e1;font-variant-numeric:tabular-nums;white-space:nowrap}.node-item.active .node-disk-val{color:#e2e8f0}#node-disk-meta .node-disk-cols{margin-top:0}#node-disk-meta .node-disk-label{font-size:11px}#node-disk-meta .node-disk-val{font-size:13px;color:#94a3b8}#configs-section{flex-shrink:0;margin-bottom:0}#jobs-section{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:32px}#jobs-section>.page-header{margin-bottom:16px}.jobs-card{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.table-scroll{overflow-y:auto}.configs-card .table-scroll{max-height:264px}.jobs-card .table-scroll{flex:1;overflow-y:auto;min-height:0}.card{background:#1a1d27;border:1px solid #2d3148;border-radius:12px;overflow:hidden}table{width:100%;border-collapse:collapse;font-size:14px}th{background:#161824;text-align:left;padding:12px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:500}.table-scroll th,.explorer-table-wrap.table-scroll th{position:sticky;top:0;z-index:1}td{padding:12px 16px;border-top:1px solid #2d3148;color:#cbd5e1;vertical-align:middle}tr:hover td{background:#1e2235}.table-actions{text-align:right;white-space:nowrap;width:1%}.table-actions-inner{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.badge-muted{background:#1e293b;color:#94a3b8;margin-left:6px;vertical-align:middle}.badge-success{background:#14532d;color:#4ade80}.badge-error{background:#450a0a;color:#f87171}.badge-running{background:#1e3a5f;color:#60a5fa}.badge-pending{background:#1c1917;color:#a8a29e}.badge-uploading{background:#1e3a5f;color:#93c5fd}.badge-streaming{background:#0c4a6e;color:#38bdf8}.badge-finalizing{background:#1e3a5f;color:#7dd3fc}.badge-transferring{background:#2d1b4e;color:#c4b5fd}.badge-waiting_reconnect{background:#422006;color:#fbbf24}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.modal-overlay.open{visibility:visible;opacity:1;pointer-events:auto}#modal-change-password{z-index:105}#modal-confirm{z-index:110}.modal{background:#1a1d27;border:1px solid #2d3148;border-radius:12px;padding:28px;width:100%;max-width:500px;max-height:min(90vh,900px);overflow-y:auto;transform:scale(.96) translateY(8px);opacity:0;transition:transform .2s ease,opacity .2s ease}.modal-overlay.open .modal{transform:scale(1) translateY(0);opacity:1}.modal.modal-sm{max-width:440px}.modal.modal-md{max-width:560px}.modal.modal-lg{max-width:640px}.modal.modal-xl{max-width:720px}.modal h2{font-size:18px;margin-bottom:20px;color:#f8fafc}.modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:24px}.modal-intro{font-size:13px;color:#94a3b8;margin-bottom:20px;line-height:1.5}.confirm-message{font-size:14px;color:#cbd5e1;line-height:1.55;white-space:pre-line;margin-bottom:4px}.toast-stack{position:fixed;top:16px;right:16px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:min(360px,calc(100vw - 32px));pointer-events:none}.toast{pointer-events:auto;padding:12px 14px;border-radius:8px;font-size:13px;line-height:1.45;border:1px solid transparent;box-shadow:0 8px 24px #00000059;animation:toast-in .2s ease}.toast-out{animation:toast-out .2s ease forwards}.toast-success{background:#14532d;border-color:#166534;color:#4ade80}.toast-error{background:#450a0a;border-color:#7f1d1d;color:#f87171}.toast-info{background:#1e3a5f;border-color:#1e40af;color:#93c5fd}@keyframes toast-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(12px)}}.code-block-wrap{display:flex;align-items:flex-start;gap:8px;margin-bottom:16px}.code-block{flex:1 1 auto;min-width:0;display:block;background:#0f1117;padding:14px;border-radius:8px;font-size:12px;overflow-wrap:anywhere;word-break:break-all;color:#a5f3fc;border:1px solid #2d3148;line-height:1.45;user-select:text}.code-block-wrap>.btn{flex-shrink:0;align-self:flex-start;margin-top:2px}.job-timing-table{width:100%;border-collapse:collapse;margin-bottom:12px}.job-timing-table th,.job-timing-table td{padding:8px 10px;text-align:left;border-bottom:1px solid #2d3148;font-size:13px}.job-timing-table th{color:#64748b;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.job-timing-total{padding:12px 14px;background:#0f1117;border:1px solid #2d3148;border-radius:8px;font-size:14px;font-weight:600;color:#e2e8f0}.log-pre{background:#0f1117;padding:14px;border-radius:8px;font-size:12px;white-space:pre-wrap;max-height:400px;overflow:auto;color:#a5f3fc;border:1px solid #2d3148;font-family:ui-monospace,Cascadia Code,monospace;line-height:1.45}.modal-log .log-pre{flex:1;min-height:200px}.modal-log{display:flex;flex-direction:column;max-height:min(90vh,800px)}.log-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.log-search-input{flex:1;min-width:140px;background:#0f1117;border:1px solid #2d3148;border-radius:8px;color:#e2e8f0;padding:8px 12px;font-size:13px}.log-search-input:focus{outline:none;border-color:#6366f1}.job-status-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px;max-width:280px}.job-error-preview{font-size:11px;color:#f87171;line-height:1.35;word-break:break-word;opacity:.9}.job-timing-summary{display:flex;flex-direction:column;gap:1px;margin-top:1px}.job-timing-line{font-size:11px;line-height:1.3;color:#94a3b8;white-space:nowrap}.job-timing-label{color:#64748b}.job-timing-val{color:#cbd5e1;font-variant-numeric:tabular-nums}.job-progress-detail{font-size:12px;line-height:1.3}.job-progress-bytes{font-size:11px;line-height:1.3;color:#94a3b8}.panel-inset{margin-top:8px;padding:10px 12px;background:#0f1117;border:1px solid #2d3148;border-radius:8px}.panel-inset .storage-bar-track{margin-bottom:0}.storage-meta{font-size:11px;color:#94a3b8;white-space:nowrap}.text-error{font-size:12px;color:#f87171}.text-muted{font-size:12px;color:#64748b}.empty{padding:48px;text-align:center;color:#475569}.empty p{margin-top:8px;font-size:14px}#page-welcome .welcome-text{color:#64748b;font-size:15px;margin-top:8px;line-height:1.5}.stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;flex-shrink:0}@media(max-width:900px){.stats-cards{grid-template-columns:repeat(2,1fr)}}.stats-card{background:#1a1d27;border:1px solid #2d3148;border-radius:12px;padding:20px 24px}.stats-card-val{font-size:32px;font-weight:700;color:#f8fafc;line-height:1;margin-bottom:6px}.stats-card-lbl{font-size:13px;color:#64748b}.stats-date-input{background:#0f1117;border:1px solid #2d3148;border-radius:8px;padding:6px 10px;color:#e2e8f0;font-size:13px;outline:none}.stats-date-input:focus{border-color:#6366f1}.stats-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stats-chart-card{padding:20px;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.stats-chart-card canvas{display:block;width:100%}.stats-chart-card-main{min-height:0}.stats-chart-sub{font-size:11px;color:#64748b;margin:-6px 0 10px;line-height:1.45}.stats-chart-wrap--main{height:380px;min-height:380px}.stats-chart-wrap--speed{height:280px;min-height:280px}.stats-chart-wrap--volume{height:240px;min-height:240px}.stats-chart-wrap--main canvas,.stats-chart-wrap--speed canvas,.stats-chart-wrap--volume canvas{height:100%;min-height:inherit}.stats-chart-legend{display:flex;gap:16px;margin-top:12px;flex-shrink:0}.stats-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#94a3b8}#page-stats.active{overflow:hidden}#stats-pdf-host{position:fixed;left:-20000px;top:0;width:688px;z-index:-1;pointer-events:none}.stats-scroll{flex:1;overflow-y:auto;min-height:0;padding-right:4px}.stats-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin:8px 0 12px;font-weight:600}.stats-sticky-bar{position:sticky;top:0;z-index:40;margin:0 0 12px;padding:0;background:#0f1117}.stats-filters-compact{padding:8px 10px;margin:0}.stats-filters-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.stats-filter-item{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.stats-filter-period{display:inline-flex;align-items:center;gap:6px}.stats-filter-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;white-space:nowrap}.stats-filter-sep{width:1px;height:22px;background:#2d3148;flex-shrink:0}.stats-filter-select{min-width:118px;max-width:168px}.stats-filter-date{width:132px;min-width:132px}.stats-filter-actions{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}.stats-filter-refresh,.stats-filter-pdf{flex-shrink:0}.stats-period-divider{border:0;border-bottom:1px solid #2d3148;margin:0 0 16px}.stats-filters{overflow:visible;position:relative;padding:14px 16px;margin:0;display:flex;flex-direction:column;gap:14px}.stats-filters-toolbar{margin-bottom:0}.stats-date-sep{color:#64748b}.stats-filters select.stats-date-input{position:relative;z-index:41;min-width:140px}.stats-cards-live{margin-bottom:16px}.stats-card-delta{font-size:11px;color:#64748b;margin-top:6px;min-height:14px}.stats-card-delta.positive{color:#4ade80}.stats-card-delta.negative{color:#f87171}.stats-val-success{color:#4ade80!important}.stats-val-error{color:#f87171!important}.stats-val-warn{color:#fb923c!important}.stats-rate-good{color:#4ade80!important}.stats-rate-warn{color:#fbbf24!important}.stats-rate-bad{color:#f87171!important}.stats-zone{margin:0 0 18px;padding:14px 14px 8px;border-radius:12px;border:1px solid #2d3148}.stats-zone-live{border-color:#334155;background:linear-gradient(180deg,#38bdf80f,#16192226)}.stats-zone-period{border-color:#2d3148;background:#16192259}.stats-zone-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.stats-zone-head .stats-section-title{margin-bottom:0}.stats-zone-sub{margin:0;font-size:12px;color:#94a3b8;line-height:1.4}.stats-chart-card-full{width:100%;margin-bottom:16px}.stats-chart-hint{font-size:11px;margin-top:8px}.stats-cards-summary{margin-bottom:16px}.stats-cards .stats-card,.stats-cards-timing .stats-card{min-height:88px}.stats-empty{color:#64748b;font-size:13px;padding:8px 0}.stats-health-banner{flex-shrink:0;display:flex;flex-direction:column;gap:4px;margin:0 0 12px;padding:12px 16px;border-radius:10px;border:1px solid #2d3148;background:#161922}.stats-health-banner[hidden],.stats-action-items[hidden]{display:none!important}.stats-health-banner.is-healthy{border-color:#14532d;background:linear-gradient(90deg,#14532d59,#16192233)}.stats-health-banner.is-warning{border-color:#854d0e;background:linear-gradient(90deg,#854d0e47,#16192233)}.stats-health-banner.is-critical{border-color:#7f1d1d;background:linear-gradient(90deg,#7f1d1d52,#16192233)}.stats-health-banner-status{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600}.stats-health-banner.is-healthy .stats-health-label,.stats-health-banner.is-healthy .stats-health-icon{color:#4ade80}.stats-health-banner.is-warning .stats-health-label,.stats-health-banner.is-warning .stats-health-icon{color:#fbbf24}.stats-health-banner.is-critical .stats-health-label,.stats-health-banner.is-critical .stats-health-icon{color:#f87171}.stats-health-icon{width:18px;height:18px}.stats-health-reasons{margin:0;font-size:12px;color:#94a3b8;line-height:1.45}.stats-action-items{flex-shrink:0;display:flex;flex-direction:column;gap:8px;margin:0 0 14px}.stats-action-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;border:1px solid #2d3148;background:#161922}.stats-action-item.is-critical{border-color:#7f1d1d}.stats-action-item.is-warning{border-color:#854d0e}.stats-action-item-icon{flex-shrink:0;width:18px;height:18px;color:#94a3b8}.stats-action-item.is-critical .stats-action-item-icon{color:#f87171}.stats-action-item.is-warning .stats-action-item-icon{color:#fbbf24}.stats-action-item-body{flex:1;min-width:0}.stats-action-item-text{font-size:13px;color:#e2e8f0;line-height:1.4}.stats-action-item-count{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;background:#1e2130;color:#cbd5e1}.stats-action-item-cta{flex-shrink:0}.stats-flash{animation:stats-flash-pulse 1.2s ease}@keyframes stats-flash-pulse{0%,to{box-shadow:none}30%{box-shadow:0 0 0 2px #6366f1b3}}.stats-period-btn.active{background:#312e81;border-color:#6366f1;color:#e0e7ff}.stats-charts-row{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-bottom:20px;align-items:stretch}@media(max-width:1100px){.stats-charts-row{grid-template-columns:1fr}}.stats-chart-head{font-size:13px;color:#64748b;margin-bottom:12px;flex-shrink:0}.stats-chart-wrap{position:relative;flex:1;min-height:200px}.stats-chart-tooltip{position:absolute;pointer-events:none;z-index:5;background:#1e2130;border:1px solid #3d4468;border-radius:8px;padding:8px 10px;font-size:12px;color:#e2e8f0;line-height:1.5;box-shadow:0 8px 24px #0006;white-space:nowrap}.stats-cards-timing{grid-template-columns:repeat(4,1fr);margin-bottom:20px}.stats-cards-storage{grid-template-columns:repeat(3,1fr);margin-bottom:12px}@media(max-width:900px){.stats-cards-timing{grid-template-columns:repeat(2,1fr)}.stats-filters-row{flex-wrap:wrap}.stats-filter-actions{margin-left:0;width:100%}.stats-zone{padding:12px 10px 6px}.stats-chart-wrap--main{height:280px;min-height:280px}}@media(max-width:560px){.stats-cards-live,.stats-cards-summary,.stats-cards-storage{grid-template-columns:repeat(2,1fr)}.stats-cards-timing{grid-template-columns:1fr 1fr}}.stats-card-sm{padding:14px 16px}.stats-card-val-sm{font-size:20px!important}.stats-tables-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}@media(max-width:1100px){.stats-tables-row{grid-template-columns:1fr}}.stats-table-card{padding:16px}.stats-mini-table{width:100%;font-size:12px;border-collapse:collapse}.stats-mini-table th,.stats-mini-table td{padding:6px 8px;text-align:left;border-bottom:1px solid #2d3148}.stats-mini-table th{color:#64748b;font-weight:600;font-size:10px;text-transform:uppercase}.stats-mini-table tr.stats-row-clickable{cursor:pointer}.stats-mini-table tr.stats-row-clickable:hover td{background:#6366f114}.stats-mini-table-wrap{margin-bottom:20px}.stats-card.is-clickable{cursor:pointer;outline:none}.stats-card.is-clickable:hover{border-color:#6366f1}.stats-card.is-clickable:focus-visible{border-color:#818cf8;box-shadow:0 0 0 2px #6366f159}.stats-offline-list{list-style:none;margin:0;padding:0}.stats-offline-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #2d3148;font-size:13px;color:#e2e8f0}.stats-offline-item:last-child{border-bottom:none}.stats-recent-errors{padding:16px;margin-bottom:20px}.stats-recent-row{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid #2d3148;font-size:13px}.stats-recent-row:last-child{border-bottom:none}.stats-recent-meta{flex:1;min-width:0}.stats-recent-title{color:#e2e8f0;font-weight:500}.stats-recent-log{color:#64748b;font-size:12px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-recent-actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.settings-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-bottom:10px}.bot-reports-list{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.bot-report-row{display:flex;flex-direction:column;gap:8px;padding:10px;background:#0f1117;border:1px solid #2d3148;border-radius:8px}.bot-report-row-top{display:grid;grid-template-columns:minmax(110px,140px) 1fr auto;gap:8px;align-items:end}.bot-report-fields{display:grid;gap:8px}.bot-report-fields.is-relative{grid-template-columns:repeat(3,minmax(0,1fr))}.bot-report-fields label,.bot-report-cron label{display:block;font-size:11px;color:#64748b;margin-bottom:4px}.bot-report-row select,.bot-report-row input[type=number],.bot-report-row input[type=text]{width:100%;background:#0f1117;border:1px solid #2d3148;border-radius:8px;padding:6px 10px;color:#e2e8f0;font-size:13px}.settings-disk-panel{background:#0f1117;border:1px solid #2d3148;border-radius:8px;padding:14px;margin-bottom:20px}.settings-disk-row{display:flex;justify-content:space-between;margin-bottom:6px;font-size:13px}.settings-disk-row span:first-child{color:#94a3b8}.settings-disk-free{padding-top:8px;margin-bottom:10px;border-top:1px solid #2d3148}.header-storage{display:flex;align-items:stretch;gap:0;max-width:140px;flex-shrink:0}.header-storage-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;padding-left:6px}.header-storage-title{display:flex;align-items:center;gap:4px;min-width:0}.header-storage-icon{width:13px;height:13px;flex-shrink:0;color:#64748b}.header-storage-name{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.header-storage-bar{width:100%;min-width:64px;height:6px;border-radius:3px;background:#2d3148;position:relative;overflow:hidden}.header-storage-usage{font-size:10px;color:#64748b;white-space:nowrap;line-height:1.2}.header-storage-quota{font-size:9px;color:#818cf8;white-space:nowrap;line-height:1.2}.storage-bar-track{height:6px;border-radius:3px;background:#2d3148;position:relative;overflow:hidden;margin-bottom:8px}.bar-used{position:absolute;left:0;top:0;height:100%;background:#6366f1;border-radius:3px;transition:width .3s,background .3s}.header-storage-sep{display:block;flex-shrink:0;align-self:stretch;width:1px;min-height:100%;background:#3d4260;border-radius:1px;margin:0 2px}.header-storage-unavailable{color:#475569}.alert-banner{display:block;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}.alert-banner-success{background:#14532d;color:#4ade80}.alert-banner-warn{background:#451a03;color:#fbbf24}.alert-banner-info{background:#1e3a5f;color:#60a5fa}svg.lucide{display:inline-block;vertical-align:middle;width:14px;height:14px;stroke-width:2.2;flex-shrink:0}.btn-icon-only svg.lucide{width:16px;height:16px}#page-explorer.active{overflow:hidden}.explorer-scroll{flex:1;overflow-y:auto;min-height:0;padding-right:4px;padding-bottom:8px}.explorer-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.explorer-summary[hidden]{display:none!important}.explorer-summary-chip{display:flex;flex-direction:column;gap:2px;min-width:96px;padding:10px 14px;background:#1a1d27;border:1px solid #2d3148;border-radius:12px}.explorer-summary-chip.is-clickable{cursor:pointer;outline:none}.explorer-summary-chip.is-clickable:hover{border-color:#6366f1}.explorer-summary-chip.is-clickable:focus-visible{border-color:#818cf8;box-shadow:0 0 0 2px #6366f159}.explorer-summary-chip.is-warn{border-color:#854d0e}.explorer-summary-chip.is-error{border-color:#7f1d1d}.explorer-summary-chip.is-muted{opacity:.72}.explorer-summary-val{font-size:16px;font-weight:700;color:#f8fafc;line-height:1.2;font-variant-numeric:tabular-nums}.explorer-summary-chip.is-warn .explorer-summary-val{color:#fbbf24}.explorer-summary-chip.is-error .explorer-summary-val{color:#f87171}.explorer-summary-lbl{font-size:11px;color:#64748b}.explorer-summary-incomplete{flex:1 1 100%;margin:0;font-size:12px;color:#94a3b8;line-height:1.4}.explorer-filters{padding:12px 14px;margin-bottom:12px}.explorer-filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.explorer-search-input{flex:1 1 200px;min-width:160px;height:36px;padding:0 12px;border-radius:8px;border:1px solid #2d3148;background:#0f1117;color:#e2e8f0;font-size:13px}.explorer-filter-select{height:36px;min-width:160px;padding:0 10px;border-radius:8px;border:1px solid #2d3148;background:#0f1117;color:#e2e8f0;font-size:13px}.explorer-filter-toggle{display:inline-flex;align-items:center;gap:6px;height:36px;font-size:13px;color:#cbd5e1;user-select:none;white-space:nowrap;padding:0 12px;border-radius:8px;border:1px solid #2d3148;background:#0f1117}.explorer-filter-toggle input{accent-color:#6366f1}.explorer-filter-toggle.is-active{border-color:#854d0e;background:#f59e0b1a;color:#fbbf24}.explorer-filter-toggle.is-active input{accent-color:#f59e0b}.explorer-filter-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin:0 0 12px;padding:28px 20px;text-align:center;font-size:13px;background:#1a1d27;border:1px solid #2d3148;border-radius:12px}.explorer-filter-empty[hidden]{display:none!important}.explorer-filter-empty p{margin:0;color:#64748b}.explorer-hint{font-size:12px;color:#64748b;margin:0 0 10px;line-height:1.45;max-width:640px}.explorer-loading{display:flex;align-items:center;justify-content:center;min-height:120px;font-size:13px;color:#64748b;margin-bottom:12px;background:#1a1d27;border:1px solid #2d3148;border-radius:12px}.explorer-list{display:flex;flex-direction:column;gap:12px}.explorer-list>.empty-state{background:#1a1d27;border:1px solid #2d3148;border-radius:12px}.explorer-breadcrumb{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin:0 0 12px;padding:10px 14px;background:#1a1d27;border:1px solid #2d3148;border-radius:12px;font-size:13px;overflow-x:auto;-webkit-overflow-scrolling:touch}.explorer-breadcrumb[hidden]{display:none!important}.explorer-crumb{border:none;background:transparent;color:#818cf8;padding:4px 6px;border-radius:6px;cursor:pointer;font:inherit;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.explorer-crumb:hover{background:#0f1117}.explorer-crumb:focus-visible{outline:none;box-shadow:0 0 0 2px #6366f159}.explorer-crumb.is-current{color:#e2e8f0;cursor:default;font-weight:600}button.explorer-crumb.is-current{cursor:default}.explorer-crumb-sep{color:#475569;user-select:none;flex-shrink:0}.explorer-dir-list{display:flex;flex-direction:column;gap:8px}.explorer-dir-row-wrap{display:flex;align-items:stretch;gap:8px}.explorer-dir-row{flex:1;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:52px;text-align:left;padding:12px 16px;background:#1a1d27;border:1px solid #2d3148;border-radius:12px;color:#e2e8f0;cursor:pointer;font:inherit}.explorer-dir-row:hover{border-color:#6366f1;background:#1e2235}.explorer-dir-row:focus-visible{outline:none;border-color:#818cf8;box-shadow:0 0 0 2px #6366f159}.explorer-dir-row-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}.explorer-loc-icon,.explorer-folder-icon{width:18px;height:18px;flex-shrink:0}.explorer-loc-icon{color:#818cf8}.explorer-folder-icon{color:#94a3b8}.explorer-dir-name{font-size:14px;font-weight:600;color:#f8fafc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explorer-dir-row-meta{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-shrink:0;color:#94a3b8;font-size:12px;font-variant-numeric:tabular-nums}.explorer-dir-meta-size{min-width:4.5rem;text-align:right}.explorer-dir-chevron{width:16px;height:16px;color:#64748b;flex-shrink:0}.explorer-dir-row-action{flex-shrink:0;align-self:center;min-width:40px;min-height:40px}.explorer-dir-row-action:disabled{opacity:.45;cursor:not-allowed}.explorer-files-view{display:flex;flex-direction:column;gap:10px}.explorer-folder-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:10px 16px;background:#1a1d27;border:1px solid #2d3148;border-radius:12px}.explorer-folder-toolbar-meta{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.explorer-folder-label{font-size:14px;font-weight:600;color:#f8fafc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explorer-size{flex-shrink:0;font-size:12px;font-weight:500;color:#64748b;font-variant-numeric:tabular-nums}.explorer-count{flex-shrink:0;font-size:11px;font-weight:500;color:#94a3b8;background:#0f1117;border:1px solid #2d3148;border-radius:999px;padding:2px 8px;line-height:1.3;font-variant-numeric:tabular-nums}.explorer-chk-col{display:flex;align-items:center;justify-content:center}.explorer-chk-col input[type=checkbox]{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}.explorer-file-list{max-height:min(420px,55vh);overflow-x:hidden;overflow-y:auto;background:#1a1d27;border:1px solid #2d3148;border-radius:12px}.explorer-file-head,.explorer-file-row{display:grid;grid-template-columns:2.5rem minmax(0,1fr) minmax(5.5rem,9.5rem) 6.5rem 4.5rem minmax(5.5rem,7rem) 2.75rem;column-gap:10px;align-items:center;padding:0 12px;min-width:0;box-sizing:border-box}.explorer-file-head{position:sticky;top:0;z-index:1;min-height:40px;background:#161824;border-bottom:1px solid #2d3148;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:500}.explorer-file-cell-meta{display:contents}.explorer-file-meta-config,.explorer-file-meta-date,.explorer-file-meta-size,.explorer-file-meta-ret{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explorer-file-meta-date,.explorer-file-meta-size{font-variant-numeric:tabular-nums}.explorer-file-meta-size{text-align:right}.explorer-file-row{min-height:48px;border-top:1px solid #2d3148;font-size:13px;color:#cbd5e1}.explorer-file-body>.explorer-file-row:nth-child(2n):not(.explorer-row-orphan){background:#0f111747}.explorer-file-row:hover{background:#1e2235}.explorer-file-row.explorer-row-orphan{background:#1c191759}.explorer-file-row.explorer-row-orphan:hover{background:#2925248c}.explorer-file-row.explorer-row-has-public .explorer-public-flag{opacity:1}.explorer-file-cell-name{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0;width:100%;overflow:hidden}.explorer-filename{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0;width:100%;overflow:hidden;font-family:ui-monospace,Cascadia Code,monospace;font-size:12px;color:#cbd5e1}.explorer-filename-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.explorer-public-flag{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border-radius:6px;background:#6366f126;border:1px solid rgba(99,102,241,.35);color:#a5b4fc}.explorer-public-flag i,.explorer-public-flag svg{width:13px;height:13px}.explorer-file-cell-actions{display:flex;align-items:center;justify-content:flex-end}.explorer-file-status{grid-column:1 / -1;padding:28px 16px;text-align:center;color:#64748b;font-size:13px;border-top:none;min-height:0}.explorer-file-status:hover{background:transparent}.explorer-file-status.explorer-folder-error{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;text-align:left}.explorer-config-link{border:none;background:none;padding:0;margin:0;color:#93c5fd;font:inherit;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:2px;max-width:100%}.explorer-config-link:hover{color:#bfdbfe}.explorer-config-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explorer-orphan{display:inline-flex;align-items:center;gap:6px;max-width:100%}.explorer-orphan-badge,.explorer-artifact-badge{flex-shrink:0;font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;padding:2px 6px;border-radius:4px;line-height:1.25}.explorer-orphan-badge{background:#1c1917;color:#a8a29e}.explorer-artifact-full{background:#14532d;color:#4ade80}.explorer-artifact-incr{background:#1e3a5f;color:#93c5fd}.explorer-artifact-wal{background:#2d1b4e;color:#c4b5fd}.explorer-sort-btn{display:inline-flex;align-items:center;gap:4px;width:100%;min-height:32px;padding:4px 0;border:none;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;text-align:left}.explorer-sort-btn:hover{color:#e2e8f0}.explorer-sort-btn.is-sorted{color:#a5b4fc}.explorer-sort-icon{width:14px;height:14px;opacity:.55;flex-shrink:0}.explorer-sort-btn.is-sorted .explorer-sort-icon{opacity:.95}.explorer-loc-error{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.explorer-folder-error{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px}#page-stats.is-refreshing .stats-filter-refresh i{animation:explorer-refresh-spin .8s linear infinite}#page-explorer.is-refreshing .explorer-list{transition:opacity .15s ease}#page-explorer.is-refreshing #explorer-refresh-btn i{animation:explorer-refresh-spin .8s linear infinite}@keyframes explorer-refresh-spin{to{transform:rotate(360deg)}}.explorer-row-menu{position:relative;display:inline-block}.explorer-row-menu-panel{display:none;position:fixed;z-index:200;min-width:220px;max-width:min(280px,calc(100vw - 16px));background:#1a1d27;border:1px solid #2d3148;border-radius:8px;padding:6px;box-shadow:0 8px 24px #00000059}.explorer-row-menu.open .explorer-row-menu-panel{display:block}.explorer-row-menu-item{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:10px 12px;border:none;border-radius:6px;background:transparent;color:#cbd5e1;font-size:13px;cursor:pointer;text-align:left}.explorer-row-menu-item:hover{background:#252840}.explorer-row-menu-item i,.explorer-row-menu-item svg{width:16px;height:16px;flex-shrink:0;opacity:.85}.explorer-row-menu-item-danger{color:#f87171}.explorer-row-menu-divider{height:1px;background:#2d3148;margin:6px 4px}.config-row-highlight td{background:#6366f124}.explorer-muted{color:#64748b;font-size:13px}.explorer-warn{color:#fbbf24;font-size:13px}.explorer-retention-ok{color:#94a3b8;font-size:12px;font-variant-numeric:tabular-nums}.explorer-panel-empty{margin:0;padding:24px 16px;text-align:center;font-size:13px;color:#64748b;background:#1a1d27;border:1px solid #2d3148;border-radius:12px}.explorer-table-empty{padding:28px 16px!important;text-align:center;color:#64748b}@media(max-width:768px){.explorer-filters-row{gap:8px}.explorer-search-input{flex:1 1 100%;min-width:0}.explorer-filter-select{flex:1 1 calc(50% - 4px);min-width:0}.explorer-dir-row{flex-wrap:wrap;gap:8px 12px;padding:12px 14px}.explorer-dir-row-meta{width:100%;justify-content:flex-start;padding-left:28px}.explorer-dir-row-action{min-width:44px;min-height:44px}.explorer-file-list{max-height:min(360px,45vh)}.explorer-file-head{display:none}.explorer-file-row{grid-template-columns:2.25rem minmax(0,1fr) 2.75rem;grid-template-rows:auto auto;column-gap:8px;row-gap:6px;padding:10px 12px;align-items:start}.explorer-file-cell-chk{grid-column:1;grid-row:1 / span 2;padding-top:2px}.explorer-file-cell-name{grid-column:2;grid-row:1}.explorer-file-cell-actions{grid-column:3;grid-row:1 / span 2;padding-top:0}.explorer-file-cell-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;grid-column:2;grid-row:2;font-size:12px;color:#94a3b8}.explorer-file-meta-size{text-align:left}.explorer-file-status{grid-column:1 / -1;grid-row:auto}.explorer-folder-toolbar{padding:10px 14px}.code-block-wrap{flex-direction:column;align-items:stretch}.code-block-wrap>.btn{align-self:flex-end}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 20px;text-align:center}.empty-state-compact{padding:20px 12px}.empty-state-icon{width:36px;height:36px;color:#64748b;stroke-width:1.8}.empty-state-text{font-size:14px;color:#64748b;line-height:1.5;max-width:320px}.empty-state-cta{margin-top:4px}#nodes-list .empty-state{padding:16px 8px}#page-welcome.active{overflow:hidden}.dashboard-scroll{flex:1;overflow-y:auto;min-height:0;padding-right:4px}.dashboard-loading{margin-bottom:16px}.dashboard-loading-text{margin:12px 0 0;font-size:13px}.dash-skel-banner{height:56px;border-radius:12px;background:linear-gradient(90deg,#1a1d27,#252840,#1a1d27);background-size:200% 100%;animation:dash-skel 1.2s ease-in-out infinite;margin-bottom:14px}.dash-skel-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.dash-skel-card{height:88px;border-radius:12px;background:linear-gradient(90deg,#1a1d27,#252840,#1a1d27);background-size:200% 100%;animation:dash-skel 1.2s ease-in-out infinite}@keyframes dash-skel{0%{background-position:100% 0}to{background-position:-100% 0}}.dash-load-error{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;margin-bottom:16px;border:1px solid #7f1d1d;border-radius:12px;background:#1a1214;color:#fca5a5;font-size:13px}.dash-load-error[hidden]{display:none!important}.dash-load-error p{margin:0;flex:1;min-width:160px}#page-welcome.is-refreshing .dash-body{opacity:.72;transition:opacity .15s ease;pointer-events:none}.dash-body{min-height:120px}.dash-ops{display:flex;flex-direction:column;gap:0}.dash-health-banner{margin-bottom:14px;padding:12px 16px}.dash-action-items{margin-bottom:16px}.dash-live-section{margin-bottom:20px}.dash-live-cards{grid-template-columns:repeat(4,1fr);margin-bottom:0}.dash-card-clickable{outline:none}.dash-card-clickable.is-clickable{cursor:pointer}.dash-card-clickable.is-clickable:hover{border-color:#6366f1}.dash-card-clickable.is-clickable:focus-visible{border-color:#818cf8;box-shadow:0 0 0 2px #6366f159}.dash-recent-section{padding:16px;margin-bottom:20px}.dash-recent-section .dashboard-section-title{margin-bottom:10px}.dash-recent-row .stats-recent-actions{flex-wrap:wrap;justify-content:flex-end}.dash-quick-section{margin-bottom:20px}.dash-quick-actions{display:flex;flex-wrap:wrap;gap:8px}.dash-quick-btn{min-height:36px}.dashboard-section-title{font-size:13px;font-weight:600;color:#e2e8f0;margin:0 0 14px}.dashboard-checklist{padding:18px 20px;margin-bottom:20px}.onboarding-checklist{list-style:none;display:flex;flex-direction:column;gap:10px}.onboarding-step{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid #2d3148;border-radius:10px;background:#0f1117}.onboarding-step.done{opacity:.72;border-color:#14532d}.onboarding-step-num{flex-shrink:0;width:24px;height:24px;border-radius:999px;background:#252840;color:#94a3b8;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center}.onboarding-step.done .onboarding-step-num{background:#14532d;color:#4ade80}.onboarding-step-body{flex:1;min-width:0}.onboarding-step-title{font-size:14px;font-weight:500;color:#e2e8f0;margin-bottom:2px}.onboarding-step-desc{font-size:12px;color:#64748b;line-height:1.45}.onboarding-step-action{flex-shrink:0;align-self:center}.dashboard-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.dashboard-card{background:#1a1d27;border:1px solid #2d3148;border-radius:12px;padding:20px;min-height:88px}.dashboard-card-wide{grid-column:1 / -1}.dashboard-card-val{font-size:28px;font-weight:700;color:#f8fafc;line-height:1.1;margin-bottom:6px}.dashboard-card-lbl{font-size:13px;color:#64748b}.dashboard-card-lbl-top{margin-bottom:8px}.dashboard-card-detail{font-size:14px;color:#cbd5e1;line-height:1.45;word-break:break-word}.dashboard-card-detail.muted{color:#64748b}.dashboard-card-detail.error{color:#f87171}@media(max-width:767px){.sidebar-toggle{display:inline-flex}#app-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:90;width:min(280px,86vw);max-width:86vw;transform:translate(-105%);transition:transform .22s ease;box-shadow:none}#app.sidebar-open #app-sidebar{transform:translate(0);box-shadow:8px 0 32px #00000073}#app.sidebar-open .sidebar-backdrop{display:block}#app.sidebar-open{overflow:hidden}.node-item,.add-node-btn{min-height:44px}.content{padding:16px}.dashboard-cards{grid-template-columns:1fr}.dash-live-cards,.dash-skel-cards{grid-template-columns:repeat(2,1fr)}.dash-quick-btn{min-height:44px;min-width:44px}.dash-recent-row{flex-wrap:wrap}.dash-recent-row .stats-recent-actions{width:100%;justify-content:stretch}.dash-recent-row .stats-recent-actions .btn{flex:1;min-height:44px;justify-content:center}.explorer-filters-row{gap:8px}.explorer-search-input,.explorer-filter-select{width:100%;min-width:0}.explorer-filter-toggle{min-height:44px}.explorer-summary-chip{min-width:calc(50% - 4px);flex:1 1 calc(50% - 4px)}.explorer-row-menu-toggle{min-height:44px;min-width:44px}.explorer-row-menu-item,.explorer-sort-btn{min-height:44px}.explorer-file-list{max-height:min(420px,55vh)}.onboarding-step{flex-wrap:wrap}.onboarding-step-action{width:100%;margin-top:4px}.onboarding-step-action .btn{width:100%;min-height:44px;justify-content:center}.header-dropdown-label{display:none}.user-menu-name{max-width:72px}.header-dropdown-trigger{min-height:44px;min-width:44px}.job-status-cell{max-width:160px}}@media(min-width:768px){#app-sidebar{position:static;transform:none;box-shadow:none}.sidebar-backdrop{display:none!important}}@media(max-width:1100px){.header-toolbar{max-width:100%}.header-left{flex-wrap:wrap}}.presets-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.modal-preset-constructor{display:flex;flex-direction:column;max-height:min(90vh,880px)}.modal-preset-constructor .pc-body{flex:1;overflow-y:auto;min-height:180px;padding-right:2px}.pc-steps{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.pc-step-pill{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:999px;border:1px solid #2d3148;color:#64748b;background:#0f1117}.pc-step-pill.active{color:#c7d2fe;border-color:#6366f1;background:#312e81}.pc-step-pill.done{color:#94a3b8;border-color:#3d4468}.pc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.pc-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;border:1px solid #2d3148;border-radius:10px;background:#0f1117;color:#e2e8f0;cursor:pointer;text-align:left;font-size:13px;transition:border-color .12s,background .12s}.pc-card:hover{border-color:#6366f1;background:#161824}.pc-card.selected{border-color:#6366f1;background:#1e1b4b;box-shadow:inset 0 0 0 1px #6366f1}.pc-card:disabled,.pc-card.disabled{opacity:.4;cursor:not-allowed}.pc-card i,.pc-card svg{width:20px;height:20px;color:#818cf8}.pc-card-title{font-weight:600}.pc-os-row{display:flex;flex-wrap:wrap;gap:10px}.pc-os-btn{min-width:140px;justify-content:center}.pc-os-row .pc-os-btn.btn-primary{background:#6366f1;border-color:#6366f1;color:#fff}.pc-os-row .pc-os-btn.btn-primary:hover{background:#4f46e5;border-color:#4f46e5;color:#fff}.pc-option-group{margin-bottom:14px}.pc-option-group label.pc-option-heading{display:block;font-size:12px;color:#94a3b8;margin-bottom:8px}.pc-preview-block{background:#0f1117;border:1px solid #2d3148;border-radius:8px;padding:12px 14px;margin-bottom:10px}.pc-preview-block pre{margin:6px 0 0;white-space:pre-wrap;word-break:break-word;font-size:12px;color:#a5f3fc;font-family:ui-monospace,Cascadia Code,monospace;max-height:160px;overflow:auto}.pc-preview-meta{font-size:13px;color:#94a3b8;margin-bottom:4px}.pc-section-title{font-size:14px;font-weight:600;margin:0 0 12px;color:#e2e8f0}.pc-token-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.pc-token-btn{font-size:12px}.pc-arg-list,.pc-env-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.pc-arg-row,.pc-env-row{display:flex;align-items:center;gap:6px}.pc-arg-row input,.pc-env-row input{flex:1;min-width:0;background:#0f1117;border:1px solid #2d3148;border-radius:8px;color:#e2e8f0;padding:8px 10px;font-size:13px;font-family:ui-monospace,Cascadia Code,monospace}.pc-arg-row input:focus,.pc-env-row input:focus{outline:none;border-color:#6366f1}.pc-env-row input:first-child{flex:0 0 28%}.pc-sample-fields{margin-bottom:12px}.pc-test-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#pc-resolved-preview pre{margin:6px 0 0;white-space:pre-wrap;word-break:break-word;font-size:12px;color:#a5f3fc;font-family:ui-monospace,Cascadia Code,monospace;max-height:140px;overflow:auto}.inc-chains-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.inc-chains-filter-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#94a3b8}.inc-chains-filter{background:#0f172a;border:1px solid #334155;color:#e2e8f0;border-radius:6px;padding:6px 10px;font-size:13px}.inc-chains-empty{padding:28px 12px;text-align:center;color:#94a3b8;font-size:14px}.inc-chains-list{display:flex;flex-direction:column;gap:12px;max-height:min(55vh,480px);overflow-y:auto;padding-right:2px}.inc-chain-card{border:1px solid #334155;border-radius:8px;padding:12px 14px;background:#0f172a}.inc-chain-card.is-broken{border-color:#7f1d1d;background:#1c0a0a}.inc-chain-card.is-force-soon{border-color:#854d0e;background:#1c1408}.inc-chain-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.inc-chain-card-title{display:flex;flex-direction:column;gap:4px;min-width:0}.inc-chain-config-name{font-size:14px;font-weight:600;color:#f1f5f9}.inc-chain-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.inc-chain-strategy{font-size:11px;font-family:ui-monospace,Cascadia Code,monospace}.inc-chain-health{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.inc-chain-health-ok{background:#14532d;color:#4ade80}.inc-chain-health-broken{background:#450a0a;color:#f87171}.inc-chain-health-force_full_soon,.inc-chain-health-incr_near_full{background:#422006;color:#fbbf24}.inc-chains-tip{margin:0 0 12px;padding:10px 12px;border-radius:8px;background:#fbbf2414;border:1px solid rgba(251,191,36,.25);color:var(--text-muted, #a3a3a3);font-size:.85rem;line-height:1.4}.inc-chains-tip p{margin:0 0 6px}.inc-chains-tip p:last-child{margin-bottom:0}.inc-chain-step.is-near-full .inc-chain-step-size{color:#fbbf24}.inc-chain-near-full{font-size:.7rem;color:#fbbf24;margin-left:4px}.inc-chain-stats{font-size:12px;color:#94a3b8;white-space:nowrap}.inc-chain-timeline{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px}.inc-chain-step{display:inline-flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:6px;background:#1e293b;border:1px solid #334155;min-width:72px;position:relative}.inc-chain-step-top{display:flex;align-items:center;justify-content:space-between;gap:4px}.inc-chain-step-delete{flex-shrink:0;width:22px;height:22px;padding:0;opacity:.55}.inc-chain-step-delete:hover{opacity:1;color:#f87171}.inc-chain-step-kind{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.inc-chain-step-kind.full{color:#4ade80}.inc-chain-step-kind.incr{color:#93c5fd}.inc-chain-step-kind.wal{color:#c4b5fd}.inc-chain-step-date{font-size:11px;color:#cbd5e1}.inc-chain-step-size{font-size:10px;color:#64748b}.inc-chain-arrow{color:#475569;font-size:14px;user-select:none}.inc-chain-no-artifacts{font-size:12px;color:#64748b;margin-bottom:10px}.inc-chain-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}.inc-chain-restore-btn[disabled]{opacity:.55;cursor:not-allowed}.inc-chain-step.is-tip{border-color:#475569}.restore-wizard-body{display:flex;flex-direction:column;gap:14px;max-height:min(60vh,520px);overflow-y:auto;padding-right:2px}.restore-meta{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:13px;color:#e2e8f0}.restore-meta code{color:#a5f3fc;font-size:12px}.restore-target-path{display:block;background:#0f1117;border:1px solid #2d3148;border-radius:8px;padding:10px 12px;color:#a5f3fc;font-size:13px;word-break:break-all}.restore-target-path-input{width:100%;box-sizing:border-box;background:#0f1117;border:1px solid #2d3148;border-radius:8px;padding:10px 12px;color:#a5f3fc;font-size:13px;font-family:ui-monospace,Cascadia Code,monospace}.restore-target-path-input:focus{outline:none;border-color:#6366f1}.restore-target-path-input[readonly]{opacity:.75}.restore-points{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto}.restore-point-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #2d3148;border-radius:8px;background:#0f1117;cursor:pointer}.restore-point-row.selected{border-color:#6366f1;background:#161824}.restore-point-row.is-empty{opacity:.72;cursor:not-allowed;border-style:dashed}.restore-point-row.is-empty.selected{border-color:#3d4468;background:#0f1117}.restore-point-row input{margin-top:3px;accent-color:#6366f1}.restore-point-main{display:flex;flex-direction:column;gap:2px;min-width:0}.restore-point-title{font-size:13px;color:#f8fafc;font-weight:600;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.restore-no-artifact-badge{background:#1c1917;color:#a8a29e;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.restore-point-file{color:#94a3b8;font-size:11px;word-break:break-all}.restore-point-row.is-empty .restore-point-file{color:#64748b;font-style:italic}.restore-pit-hint{margin-top:10px}.restore-point-meta{font-size:12px;color:#94a3b8}.restore-apply-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.restore-apply-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;padding:6px 0;border-bottom:1px solid #1e2235}.restore-apply-list li:last-child{border-bottom:none}.restore-apply-list code{color:#cbd5e1;word-break:break-all}.restore-progress{border-radius:8px;padding:12px 14px;border:1px solid #2d3148}.restore-progress.is-running{background:#1e3a5f;border-color:#1e3a5f}.restore-progress.is-success{background:#14532d;border-color:#14532d}.restore-progress.is-error{background:#450a0a;border-color:#450a0a}.restore-progress-title{font-size:13px;font-weight:600;color:#f8fafc}.restore-progress-detail{margin-top:4px;font-size:12px}.restore-empty{padding:18px 8px;text-align:center;color:#94a3b8;font-size:14px}.restore-warn{margin:0}
