:root{--bg-primary:#ffffff;--bg-secondary:#f1f3f5;--bg-tertiary:#e5e7eb;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#94a3b8;--border-primary:#d1d5db;--border-secondary:#9ca3af;--border-focus:#3b82f6;--shadow-light:rgba(15,23,42,0.08);--shadow-medium:rgba(15,23,42,0.16);--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#dbeafe;--hero-cream:#f2f0ea;--hero-blue:#2b4ad6;--hero-blue-hover:#2340bd;--hero-ink:#0e0e11;--color-success:#10b981;--color-success-hover:#059669;--color-success-bg:#d1fae5;--color-success-text:#047857;--color-warning:#f59e0b;--color-warning-hover:#d97706;--color-warning-bg:#fef3c7;--color-warning-text:#92400e;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-danger-bg:#fee2e2;--color-danger-text:#dc2626;--color-secondary:#6b7280;--color-secondary-hover:#4b5563;--input-bg:#ffffff;--input-border:#d1d5db;--input-focus-shadow:rgba(59,130,246,0.15);--hover-bg:rgba(0,0,0,0.05);--active-bg:#3b82f6;--nav-text:var(--text-primary);--nav-text-hover:var(--text-primary);--nav-active-bg:#1a73ff;--nav-active-hover:#1565e0;--nav-active-glow:0 4px 12px -4px rgba(26,115,255,0.7);--nav-hover-bg:#f1f3f7;--edge-faint:rgba(15,23,42,0.05);--edge-soft:rgba(15,23,42,0.07);--edge:rgba(15,23,42,0.08);--edge-card:rgba(15,23,42,0.09);--edge-control:rgba(15,23,42,0.13);--edge-control-hover:rgba(15,23,42,0.28);--signature-bg:#ffffff;--signature-border:#d1d5db;--job-list-border:#d1d5db;--color-danger-pulse:#f8b4b4}[data-theme=dark]{--bg-primary:#1d1d1d;--bg-secondary:#171717;--bg-tertiary:#1f1f1f;--text-primary:#ffffff;--text-secondary:#e4e4e7;--text-tertiary:#a1a1aa;--text-muted:#71717a;--border-primary:#27272a;--border-secondary:#3f3f46;--border-focus:#60a5fa;--shadow-light:rgba(0,0,0,0.3);--shadow-medium:rgba(0,0,0,0.5);--color-primary:#3b82f6;--color-primary-hover:#3b82f6;--color-primary-light:#1e3a8a;--color-success:#34d399;--color-success-hover:#10b981;--color-success-bg:#064e3b;--color-success-text:#a7f3d0;--color-warning:#fbbf24;--color-warning-hover:#f59e0b;--color-warning-bg:#78350f;--color-warning-text:#fde68a;--color-danger:#f87171;--color-danger-hover:#ef4444;--color-danger-bg:#7f1d1d;--color-danger-text:#fca5a5;--color-secondary:#6b7280;--color-secondary-hover:#9ca3af;--input-bg:#0f0f0f;--input-border:#404040;--input-focus-shadow:rgba(96,165,250,0.25);--hover-bg:rgba(255,255,255,0.05);--active-bg:#3b82f6;--nav-text:#a1a1aa;--nav-text-hover:#e4e4e7;--nav-active-bg:#1a73ff;--nav-active-hover:#1565e0;--nav-active-glow:0 4px 12px -4px rgba(26,115,255,0.45);--nav-hover-bg:rgba(255,255,255,0.06);--edge-faint:rgba(255,255,255,0.05);--edge-soft:rgba(255,255,255,0.07);--edge:rgba(255,255,255,0.08);--edge-card:rgba(255,255,255,0.09);--edge-control:rgba(255,255,255,0.13);--edge-control-hover:rgba(255,255,255,0.28);--signature-bg:#f5f5f5;--signature-border:#9ca3af;--job-list-border:#171717;--color-danger-pulse:#991b1b}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:block;src:url(/fonts/material-symbols-outlined.woff2) format("woff2")}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased}.sync-status-panel-backdrop{position:fixed;inset:0;z-index:10001;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:24px;font-family:Poppins,sans-serif;animation:sync-status-panel-fade-in .18s ease-out}.sync-status-panel{background:#ffffff;color:#0f172a;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.25);width:100%;max-width:560px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;animation:sync-status-panel-slide-in .22s ease-out}.sync-status-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 0;flex:0 0 auto}.sync-status-panel-title{margin:0;font-size:17px;font-weight:600;color:#0f172a}.sync-status-panel-close{background:transparent;border:none;font-size:24px;line-height:1;color:#64748b;cursor:pointer;padding:4px 8px;border-radius:6px}.sync-status-panel-close:hover{background:#f1f5f9;color:#0f172a}.sync-status-panel-body{overflow-y:auto;flex:1 1 auto;padding:4px 20px 20px;overscroll-behavior:contain}.sync-status-panel-section+.sync-status-panel-section{margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0}.sync-status-panel-section-title{margin:12px 0 4px;font-size:13px;font-weight:600;color:#0f172a}.sync-status-panel-section-hint{margin:0 0 12px;font-size:12px;color:#475569;line-height:1.45}.sync-status-panel-empty{padding:32px 20px;text-align:center;font-size:14px;color:#64748b}.sync-status-panel-allclear{padding:32px 24px 36px;text-align:center}.sync-status-panel-tick{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:12px;border-radius:50%;background:#dcfce7;color:#166534;font-size:22px;font-weight:700}.sync-status-panel-allclear-title{margin:0;font-size:15px;font-weight:600;color:#0f172a}.sync-status-panel-allclear-sub{margin:4px 0 0;font-size:12px;color:#64748b}.sync-status-panel-list{list-style:none;margin:0;padding:0}.sync-status-panel-item{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:10px;background:#f8fafc}.sync-status-panel-item-failed{border-color:#fecaca;background:#fffbfb}.sync-status-panel-dot{flex:0 0 auto;width:8px;height:8px;margin-top:6px;border-radius:50%}.sync-status-panel-dot-waiting{background:#f59e0b;animation:sync-status-panel-pulse 2s ease-in-out infinite}.sync-status-panel-dot-failed{background:#dc2626}.sync-status-panel-item-body{flex:1 1 auto;min-width:0}.sync-status-panel-item-title{font-size:14px;font-weight:600;color:#0f172a;line-height:1.3;word-break:break-word}.sync-status-panel-item-error{margin-top:4px;font-size:12px;color:#b91c1c;line-height:1.4;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.sync-status-panel-item-meta{margin-top:6px;font-size:11px;color:#64748b;display:flex;flex-wrap:wrap;gap:10px}.sync-status-panel-item-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.sync-status-panel-actions{display:flex;justify-content:flex-end;margin-bottom:10px}.sync-status-panel-btn{border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;white-space:nowrap}.sync-status-panel-btn-primary{background:#2563eb;color:#ffffff}.sync-status-panel-btn-primary:hover:not(:disabled){background:#1d4ed8}.sync-status-panel-btn-danger{background:transparent;color:#b91c1c;border:1px solid #fecaca}.sync-status-panel-btn-danger:hover:not(:disabled){background:#fef2f2}.sync-status-panel-btn:disabled{opacity:.55;cursor:not-allowed}.sync-status-panel-footer{margin:16px 0 0;font-size:11px;color:#94a3b8;text-align:center}@keyframes sync-status-panel-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sync-status-panel-slide-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes sync-status-panel-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.sync-status-panel,.sync-status-panel-backdrop,.sync-status-panel-dot-waiting{animation:none}}@media (max-width:480px){.sync-status-panel-backdrop{padding:12px}.sync-status-panel{max-height:calc(100vh - 24px)}.sync-status-panel-header{padding:14px 16px 0}.sync-status-panel-body{padding-left:16px;padding-right:16px}.sync-status-panel-item-actions{flex-direction:row}}.offline-banner-stack{position:fixed;bottom:16px;right:16px;z-index:10000;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:8px;max-width:calc(100vw - 32px);pointer-events:none}.offline-banner{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:#f59e0b;color:#1f2937;font-family:Poppins,sans-serif;font-size:13px;font-weight:500;line-height:1;border-radius:999px;box-shadow:0 4px 12px rgba(0,0,0,.18);animation:offline-banner-slide-in .25s ease-out;pointer-events:auto}.offline-banner-dot{display:inline-block;width:8px;height:8px;background:#dc2626;border-radius:50%;animation:offline-banner-pulse 1.5s ease-in-out infinite;flex-shrink:0}button.offline-banner{border:none;cursor:pointer;font-family:inherit;font-size:inherit;transition:filter .15s ease;-webkit-tap-highlight-color:transparent}button.offline-banner:hover{filter:brightness(.93)}button.offline-banner:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}.offline-banner.offline-banner-syncing{background:#2563eb;color:#ffffff}.offline-banner.offline-banner-syncing .offline-banner-dot{background:#bfdbfe}.offline-banner.offline-banner-synced{background:#16a34a;color:#ffffff}.offline-banner.offline-banner-synced .offline-banner-icon{font-size:13px;font-weight:700;line-height:1}.offline-banner-sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button.offline-banner.offline-banner-failed{background:#ea580c;color:#ffffff;border:none;cursor:pointer;font-family:inherit;transition:background .15s ease}button.offline-banner.offline-banner-failed:hover{background:#c2410c}.offline-banner.offline-banner-failed .offline-banner-icon{font-size:14px;line-height:1}.offline-banner.offline-banner-failed .offline-banner-meta{border-left-color:rgba(255,255,255,.45);opacity:.95}a.offline-banner.offline-banner-auth{background:#ef4444;color:#ffffff;text-decoration:none;cursor:pointer;transition:background .15s ease}a.offline-banner.offline-banner-auth:hover{background:#dc2626}.offline-banner.offline-banner-auth .offline-banner-dot{background:#fef2f2;animation:none}.offline-banner.offline-banner-auth .offline-banner-meta{border-left-color:rgba(255,255,255,.45);opacity:.95}.offline-banner-text{flex:0 1 auto;white-space:nowrap}.offline-banner-meta{font-size:11px;opacity:.8;font-weight:400;flex-shrink:0;white-space:nowrap;padding-left:6px;border-left:1px solid rgba(31,41,55,.25)}.offline-banner.offline-banner-syncing .offline-banner-meta{border-left-color:rgba(255,255,255,.45);opacity:.95}@keyframes offline-banner-slide-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes offline-banner-pulse{0%,to{opacity:1}50%{opacity:.4}}@media (max-width:480px){.offline-banner-stack{bottom:12px;right:12px;gap:6px}.offline-banner{padding:5px 10px;font-size:12px}.offline-banner-meta{font-size:10px}}.odp-fab{position:fixed;bottom:16px;left:16px;z-index:10001;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid #334155;border-radius:999px;background:#0f172a;color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600;letter-spacing:.02em;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.28)}.odp-fab:hover{background:#1e293b}.odp-fab-sim{background:#b45309;border-color:#f59e0b;color:#fff}.odp-fab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#38bdf8;color:#0f172a;font-size:11px}.odp-panel{position:fixed;bottom:16px;left:16px;z-index:10001;display:flex;flex-direction:column;width:380px;max-width:calc(100vw - 32px);max-height:min(80vh,720px);border:1px solid #334155;border-radius:10px;background:#0f172a;color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.45;box-shadow:0 10px 30px rgba(0,0,0,.4)}.odp-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #1e293b;flex:0 0 auto}.odp-title{font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:11px;color:#94a3b8}.odp-header-actions{display:flex;gap:4px}.odp-icon-btn{width:24px;height:24px;border:1px solid #334155;border-radius:5px;background:transparent;color:#cbd5e1;font-size:14px;line-height:1;cursor:pointer}.odp-icon-btn:hover{background:#1e293b}.odp-body{flex:1 1 auto;overflow-y:auto;padding:4px 12px 12px;overscroll-behavior:contain}.odp-section{padding:10px 0;border-bottom:1px solid #1e293b}.odp-section:last-of-type{border-bottom:none}.odp-section-title{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.odp-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:1px 0}.odp-row-label{color:#94a3b8}.odp-row-value{text-align:right;word-break:break-all}.odp-tone-ok{color:#4ade80}.odp-tone-warn{color:#fbbf24;font-weight:700}.odp-tone-muted{color:#64748b}.odp-tone-strong{color:#38bdf8;font-weight:700}.odp-note{margin:6px 0 0;color:#64748b;font-size:11px;line-height:1.4}.odp-empty{padding:6px 0;color:#64748b}.odp-table{width:100%;margin:6px 0;border-collapse:collapse}.odp-table td,.odp-table th{padding:2px 0;text-align:left;border-bottom:1px solid #1e293b}.odp-table th{color:#64748b;font-weight:500}.odp-num{text-align:right}.odp-total-row td{border-bottom:none;color:#38bdf8;font-weight:700}.odp-queue{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.odp-queue li{padding:6px 8px;border:1px solid #1e293b;border-radius:6px;background:#111c33}.odp-queue-failed{border-color:#7f1d1d;background:#1f1213}.odp-queue-top{display:flex;align-items:baseline;gap:6px}.odp-tag{flex:0 0 auto;padding:1px 5px;border-radius:4px;background:#1e3a5f;color:#7dd3fc;font-size:10px}.odp-queue-endpoint{word-break:break-all;color:#cbd5e1}.odp-queue-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:3px;color:#64748b;font-size:11px}.odp-queue-error{margin-top:4px;color:#fca5a5;font-size:11px;word-break:break-word}.odp-kv{margin:0;padding:0;list-style:none}.odp-kv li{display:flex;justify-content:space-between;gap:10px;padding:1px 0}.odp-kv code{color:#94a3b8;word-break:break-all}.odp-kv span{text-align:right;color:#cbd5e1;word-break:break-all}.odp-actions{display:flex;flex-wrap:wrap;gap:6px}.odp-btn{padding:5px 10px;border:1px solid #334155;border-radius:6px;background:#1e293b;color:#e2e8f0;font-family:inherit;font-size:11px;cursor:pointer}.odp-btn:hover:not(:disabled){background:#334155}.odp-btn:disabled{opacity:.5;cursor:default}.odp-btn-warn{background:#b45309;border-color:#f59e0b;color:#fff}.odp-btn-danger{border-color:#7f1d1d;color:#fca5a5}.odp-btn-ghost{background:transparent;color:#64748b}.odp-input{flex:1 1 140px;min-width:0;padding:5px 8px;border:1px solid #334155;border-radius:6px;background:#0b1220;color:#e2e8f0;font-family:inherit;font-size:11px}.odp-input:focus{outline:none;border-color:#38bdf8}.odp-footer{padding:8px 0 0;color:#475569;font-size:11px}@media (max-width:640px){.odp-panel{width:calc(100vw - 32px);max-height:60vh}}.tour-layer{inset:0;z-index:9000}.tour-layer,.tour-spotlight{position:fixed;pointer-events:none}.tour-spotlight{border-radius:10px;box-shadow:0 0 0 9999px rgba(15,23,42,.55),0 0 0 2px var(--color-primary) inset;transition:top .15s ease,left .15s ease,width .15s ease,height .15s ease}.tour-tip{position:fixed;pointer-events:auto;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:12px;padding:16px;box-shadow:0 12px 32px -8px var(--shadow-medium);font-family:Poppins,sans-serif}.tour-tip-count{margin:0 0 6px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-primary)}.tour-tip-title{margin:0 0 6px;font-size:15px;font-weight:600;color:var(--text-primary)}.tour-tip-body{margin:0 0 14px;font-size:13px;line-height:1.5;color:var(--text-secondary)}.tour-tip-actions{align-items:center;justify-content:space-between}.tour-tip-actions,.tour-tip-nav{display:flex;gap:8px}.tour-tip button{font-family:inherit;font-size:13px;border-radius:8px;cursor:pointer;padding:7px 14px;border:1px solid transparent}.tour-tip-skip{background:none;color:var(--text-tertiary);padding-left:0!important}.tour-tip-skip:hover{color:var(--text-primary)}.tour-tip-back{background:var(--bg-secondary);border-color:var(--border-primary)!important;color:var(--text-secondary)}.tour-tip-back:hover{background:var(--bg-tertiary)}.tour-tip-next{background:var(--color-primary);color:#fff;font-weight:600}.tour-tip-next:hover{background:var(--color-primary-hover)}.tour-tip:after{content:"";position:absolute;left:50%;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;background:var(--bg-primary);border:1px solid var(--border-primary)}.tour-tip.below:after{top:-6px;border-right:0;border-bottom:0}.tour-tip.above:after{bottom:-6px;border-left:0;border-top:0}.tour-tip.pinned:after{display:none}.tour-tip.floating{top:50%;left:50%;width:300px;transform:translate(-50%,-50%)}.tour-tip.floating:after{display:none}@media (max-width:480px){.tour-tip.floating{left:50%!important;right:auto;width:calc(100% - 24px)!important}.tour-tip{width:auto!important;left:12px!important;right:12px}.tour-tip:after{display:none}}