:root{--c-bg: #f5f6f8;--c-surface: #ffffff;--c-surface-muted: #f1f3f6;--c-surface-sunken: #f9fafb;--c-border: #e3e6ea;--c-border-strong: #cdd3dc;--c-text: #101828;--c-text-muted: #475467;--c-text-subtle: #667085;--c-text-invert: #ffffff;--c-primary: #4f46e5;--c-primary-hover: #4338ca;--c-primary-active: #3730a3;--c-primary-soft: #eef2ff;--c-primary-ink: #3538cd;--c-success: #067647;--c-success-soft: #ecfdf3;--c-warning: #b54708;--c-warning-soft: #fffaeb;--c-danger: #d92d20;--c-danger-soft: #fef3f2;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-full: 999px;--sh-xs: 0 1px 2px rgba(16, 24, 40, .05);--sh-sm: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);--sh-md: 0 4px 8px -2px rgba(16, 24, 40, .1), 0 2px 4px -2px rgba(16, 24, 40, .06);--sh-lg: 0 12px 16px -4px rgba(16, 24, 40, .08), 0 4px 6px -2px rgba(16, 24, 40, .03);--sh-float: 0 16px 32px -8px rgba(16, 24, 40, .18);--fs-2xs: 11px;--lh-2xs: 1.5;--fs-xs: 12px;--lh-xs: 1.5;--fs-sm: 13px;--lh-sm: 1.55;--fs-base: 14px;--lh-base: 1.6;--fs-md: 15px;--lh-md: 1.6;--fs-lg: 16px;--lh-lg: 1.5;--fs-xl: 18px;--lh-xl: 1.45;--fs-2xl: 20px;--lh-2xl: 1.4;--fs-3xl: 24px;--lh-3xl: 1.3;--fs-4xl: 30px;--lh-4xl: 1.25;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--icon-sm: 16px;--icon-md: 20px;--icon-lg: 24px;--z-sticky: 40;--z-panel: 60;--z-overlay: 100;--z-toast: 200;--header-h: 60px;--content-max: 1180px;--content-mid: 880px;--content-narrow: 440px;--nav-bg: #26215c;--nav-hover: #3c3489;--nav-ink: #afa9ec;--gap: var(--sp-4);--gap-lg: var(--sp-6);--gap-xl: var(--sp-8);--radius-sm: var(--r-sm);--radius: var(--r-md);--radius-lg: var(--r-lg);--radius-full: var(--r-full);--shadow-sm: var(--sh-xs);--shadow: var(--sh-sm);--bg: var(--c-bg);--surface: var(--c-surface);--surface-muted: var(--c-surface-muted);--border: var(--c-border);--border-strong: var(--c-border-strong);--text: var(--c-text);--text-muted: var(--c-text-muted);--text-subtle: var(--c-text-subtle);--accent: var(--c-primary);--accent-hover: var(--c-primary-hover);--accent-soft: var(--c-primary-soft);--accent-ink: var(--c-primary-ink);--success: var(--c-success);--success-soft: var(--c-success-soft);--warning: var(--c-warning);--warning-soft: var(--c-warning-soft);--danger: var(--c-danger);--danger-soft: var(--c-danger-soft);--ok-ink: var(--c-success);--warn-ink: var(--c-warning);--danger-ink: var(--c-danger);--fg: var(--c-text);--fg-strong: var(--c-primary-ink);--fg-dim: var(--c-text-subtle);--bg-dim: rgba(16, 24, 40, .05);--line: rgba(16, 24, 40, .12);--toast-bg: #1d2939;--stage-bg: #0d1117}.theme-dark{--c-bg: #0b0f19;--c-surface: #111827;--c-surface-muted: #1a2233;--c-surface-sunken: #0f1623;--c-border: #232c3d;--c-border-strong: #33415a;--c-text: #f9fafb;--c-text-muted: #b3bccb;--c-text-subtle: #8b95a5;--c-text-invert: #0b0f19;--c-primary: #818cf8;--c-primary-hover: #a5b4fc;--c-primary-active: #c7d2fe;--c-primary-soft: rgba(129, 140, 248, .14);--c-primary-ink: #a5b4fc;--c-success: #6ee7b7;--c-success-soft: rgba(52, 211, 153, .14);--c-warning: #fcd34d;--c-warning-soft: rgba(251, 191, 36, .12);--c-danger: #fca5a5;--c-danger-soft: rgba(248, 113, 113, .14);--sh-xs: none;--sh-sm: none;--sh-md: none;--sh-lg: none;--sh-float: 0 16px 32px -8px rgba(0, 0, 0, .5);--gap: var(--sp-4);--gap-lg: var(--sp-6);--gap-xl: var(--sp-8);--radius-sm: var(--r-sm);--radius: var(--r-md);--radius-lg: var(--r-lg);--radius-full: var(--r-full);--shadow-sm: none;--shadow: none;--bg: var(--c-bg);--surface: var(--c-surface);--surface-muted: var(--c-surface-muted);--border: var(--c-border);--border-strong: var(--c-border-strong);--text: var(--c-text);--text-muted: var(--c-text-muted);--text-subtle: var(--c-text-subtle);--accent: var(--c-primary);--accent-hover: var(--c-primary-hover);--accent-soft: var(--c-primary-soft);--accent-ink: var(--c-primary);--success: var(--c-success);--success-soft: var(--c-success-soft);--warning: var(--c-warning);--warning-soft: var(--c-warning-soft);--danger: var(--c-danger);--danger-soft: var(--c-danger-soft);--ok-ink: var(--c-success);--warn-ink: var(--c-warning);--danger-ink: var(--c-danger);--fg: var(--c-text);--fg-strong: var(--c-primary);--fg-dim: var(--c-text-subtle);--bg-dim: rgba(255, 255, 255, .06);--line: rgba(255, 255, 255, .12);--toast-bg: #1f2937;--stage-bg: #05080f}.theme-dark,.theme-dark .input{color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--c-bg);color:var(--c-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;font-size:var(--fs-md);line-height:var(--lh-md);font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{margin:0;font-weight:var(--fw-semibold);color:var(--c-text)}h1{font-size:var(--fs-3xl);line-height:var(--lh-3xl)}h2{font-size:var(--fs-xl);line-height:var(--lh-xl)}h3{font-size:var(--fs-lg);line-height:var(--lh-lg)}h4{font-size:var(--fs-base);line-height:var(--lh-base)}p{margin:0}ul,ol{margin:0;padding:0}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}b,strong,.tabular{font-variant-numeric:tabular-nums;font-weight:var(--fw-semibold)}:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--c-primary-soft);color:var(--c-primary-ink)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-header{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);height:var(--header-h);padding:0 var(--sp-6);background:var(--c-surface);border-bottom:1px solid var(--c-border)}.brand{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--c-text);letter-spacing:-.01em;white-space:nowrap;min-width:0}.brand-mark{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border-radius:var(--r-md);background:var(--c-primary);color:#fff;font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1}.header-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end}.who{padding:0 var(--sp-2);font-size:var(--fs-sm);color:var(--c-text-subtle);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.container{width:min(var(--content-max),100%);margin:0 auto;padding:var(--sp-8) var(--sp-6) var(--sp-12)}.container-narrow{width:min(var(--content-narrow),100%);margin:0 auto}.container-wide{width:min(var(--content-mid),100%);margin:0 auto}.view{display:none;min-height:calc(100vh - var(--header-h))}.view.is-active{display:block}.view-centered{display:none;padding:var(--sp-12) var(--sp-6)}.view-centered.is-active{display:block}.page-head{margin-bottom:var(--sp-6);text-align:center}.page-title{font-size:var(--fs-3xl);line-height:var(--lh-3xl);font-weight:var(--fw-semibold);letter-spacing:-.02em}.page-sub{margin-top:var(--sp-2);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--c-text-muted);max-width:46ch;margin-inline:auto}.section-title{font-size:var(--fs-lg);line-height:var(--lh-lg);font-weight:var(--fw-semibold)}.jm-grid,.wf-plan-row,.aud-filters{display:grid;gap:var(--sp-4)}.jm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jm-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card,.panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs)}.panel{padding:var(--sp-6)}.card{padding:var(--sp-5)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-4);border:1px solid transparent;border-radius:var(--r-md);background:var(--c-surface);color:var(--c-text);font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-medium);line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.btn:hover{text-decoration:none}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff;box-shadow:var(--sh-xs)}.btn-primary:hover:not(:disabled){background:var(--c-primary-hover);border-color:var(--c-primary-hover)}.btn-primary:active:not(:disabled){background:var(--c-primary-active);border-color:var(--c-primary-active)}.btn-subtle{background:var(--c-surface);border-color:var(--c-border-strong);color:var(--c-text)}.btn-subtle:hover:not(:disabled){background:var(--c-surface-muted)}.btn-ghost{background:transparent;border-color:transparent;color:var(--c-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--c-surface-muted);color:var(--c-text)}.btn-danger-ghost{background:transparent;border-color:transparent;color:var(--c-danger)}.btn-danger-ghost:hover:not(:disabled){background:var(--c-danger-soft)}.btn-sm{height:30px;padding:0 var(--sp-3);font-size:var(--fs-sm)}.btn-lg{height:42px;padding:0 var(--sp-5);font-size:var(--fs-md)}.btn-block{width:100%}.btn[aria-current=page]{background:var(--c-primary-soft);border-color:transparent;color:var(--c-primary-ink);font-weight:var(--fw-medium)}.btn[aria-current=page]:hover{background:var(--c-primary-soft);color:var(--c-primary-ink)}.field{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.field-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:var(--lh-sm);color:var(--c-text)}.field-note,.field-hint{margin:0;font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-subtle)}.field-hint{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.jm-checkbox,.wf-inline,.tm-checkbox{flex-direction:row;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--c-text-muted);cursor:pointer}.jm-checkbox input[type=checkbox],.wf-inline input[type=checkbox],.tm-checkbox input[type=checkbox]{width:var(--icon-sm);height:var(--icon-sm);margin:1px 0 0;flex-shrink:0;accent-color:var(--c-primary);cursor:pointer}.input{width:100%;min-width:0;height:36px;padding:0 var(--sp-3);background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-md);color:var(--c-text);font-family:inherit;font-size:var(--fs-base);line-height:var(--lh-base);transition:border-color .15s ease,box-shadow .15s ease}textarea.input{height:auto;min-height:72px;padding:var(--sp-2) var(--sp-3);resize:vertical;line-height:var(--lh-base)}.input::placeholder{color:var(--c-text-subtle)}.input:hover:not(:disabled):not(:focus){border-color:var(--c-text-subtle)}.input:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-soft)}.input:disabled{background:var(--c-surface-muted);color:var(--c-text-subtle);opacity:.6;cursor:not-allowed}.input-code{height:46px;text-align:center;font-size:var(--fs-lg);font-weight:var(--fw-medium);letter-spacing:.12em;text-transform:uppercase}select.input{cursor:pointer;appearance:none;padding-right:var(--sp-8);background-image:linear-gradient(45deg,transparent 50%,var(--c-text-subtle) 50%),linear-gradient(135deg,var(--c-text-subtle) 50%,transparent 50%);background-position:calc(100% - 18px) 16px,calc(100% - 13px) 16px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.form-error{margin:0;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--c-danger)}.form-error:empty{display:none}.wf-status,.jm-hint,.aud-note,.dev-hint,.wf-hint,.ai-hint,.rec-hint{margin:0;font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-subtle)}.wf-status:empty,.jm-hint:empty,.dev-hint:empty{display:none}.tm-badge,.app-badge{display:inline-flex;align-items:center;gap:var(--sp-1);height:20px;padding:0 var(--sp-2);border-radius:var(--r-full);background:var(--c-surface-muted);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium);line-height:1;white-space:nowrap}.tm-badge.is-on{background:var(--c-success-soft);color:var(--c-success)}.tm-badge.is-off{background:var(--c-warning-soft);color:var(--c-warning)}.jm-empty,.aud-empty,.tm-empty,.dev-empty,.app-empty,.wf-hint[id$=empty]{margin:0;padding:var(--sp-6) var(--sp-4);border:1px dashed var(--c-border-strong);border-radius:var(--r-md);background:var(--c-surface-sunken);color:var(--c-text-subtle);font-size:var(--fs-sm);line-height:var(--lh-sm);text-align:center}.jm-empty:empty,.aud-empty:empty,.tm-empty:empty,.dev-empty:empty,.app-empty:empty{display:none}.toast{position:fixed;left:50%;bottom:var(--sp-6);transform:translate(-50%,12px);max-width:min(92vw,460px);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-md);background:var(--toast-bg);color:#fff;font-size:var(--fs-base);line-height:var(--lh-base);box-shadow:var(--sh-float);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:var(--z-toast)}.toast.is-visible{opacity:1;transform:translate(-50%)}.toast.is-error{background:var(--c-danger)}.toast.is-success{background:var(--c-success)}.device-dot{width:8px;height:8px;border-radius:var(--r-full);background:var(--c-success);flex-shrink:0}.device-dot.offline{background:var(--c-text-subtle)}.divider{height:1px;margin:var(--sp-5) 0;background:var(--c-border);border:0}.remote{display:flex;flex-direction:column;height:calc(100vh - var(--header-h));padding:var(--sp-4);gap:var(--sp-4)}.remote-stage{flex:1;position:relative;display:grid;place-items:center;min-height:0;background:var(--stage-bg);border-radius:var(--r-lg);overflow:hidden}#screen{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;background:var(--stage-bg);display:block;transform-origin:0 0;will-change:transform}.remote-stage.is-panning #screen{transition:none;user-select:none;cursor:grabbing}#screen.fit-cover{object-fit:cover}.remote-stage.is-waiting #screen{opacity:0}.stage-placeholder{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);color:#8b949e;text-align:center;padding:var(--sp-6)}.remote-stage.is-waiting .stage-placeholder{display:flex}.spinner{width:28px;height:28px;border:2.5px solid rgba(255,255,255,.15);border-top-color:#58a6ff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stage-placeholder .stage-title{font-size:var(--fs-md);font-weight:var(--fw-medium);color:#c9d1d9}.stage-placeholder .stage-hint{font-size:var(--fs-sm);max-width:34ch;line-height:var(--lh-sm)}.remote-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-2) var(--sp-3);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-xs);flex-wrap:wrap}.session-status{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--c-text-muted);min-width:0}.session-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.mode-switch{display:inline-flex;padding:2px;background:var(--c-surface-muted);border:1px solid var(--c-border);border-radius:var(--r-full);flex-shrink:0}.mode-btn{height:30px;padding:0 var(--sp-4);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-text-muted);background:transparent;border:0;border-radius:var(--r-full);cursor:pointer;white-space:nowrap;transition:color .15s ease,background .15s ease}.mode-btn:hover:not(.is-active){color:var(--c-text)}.mode-btn.is-active{color:var(--c-text);background:var(--c-surface);box-shadow:var(--sh-xs)}.remote-stage.is-ai:after{content:"AI 正在帮你操作";position:absolute;top:var(--sp-3);left:var(--sp-3);z-index:5;padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--c-primary-ink);background:var(--c-primary-soft);border:1px solid var(--c-primary);border-radius:var(--r-full);pointer-events:none}.remote-stage.is-ai #screen{pointer-events:none;cursor:default}.dock,.file-panel,.rec-panel,.ai-panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-float);z-index:var(--z-panel)}.file-panel,.rec-panel,.ai-panel{position:fixed;top:calc(var(--header-h) + var(--sp-4));right:var(--sp-5);bottom:var(--sp-5);width:min(92vw,380px);display:flex;flex-direction:column;overflow:hidden}.rec-panel{bottom:auto}.file-panel[hidden],.rec-panel[hidden],.ai-panel[hidden]{display:none}.dock{position:fixed;right:var(--sp-5);bottom:var(--sp-5);width:min(92vw,340px);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.dock[hidden]{display:none}.dock.dragging{box-shadow:var(--sh-lg);opacity:.92}.dock-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--c-text-muted);cursor:move;user-select:none}.dock-row{display:flex;gap:var(--sp-2)}.quick-row{display:flex;gap:var(--sp-2);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.quick-row::-webkit-scrollbar{display:none}.quick-btn{flex:0 0 auto;height:28px;padding:0 var(--sp-3);font-family:inherit;font-size:var(--fs-xs);line-height:1;color:var(--c-text-muted);background:var(--c-surface-muted);border:1px solid var(--c-border);border-radius:var(--r-full);cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease,background .15s ease}.quick-btn:hover:not(:disabled){color:var(--c-text);border-color:var(--c-primary);background:var(--c-primary-soft)}.quick-btn:disabled{opacity:.45;cursor:not-allowed}.quick-btn.is-busy{opacity:.55;pointer-events:none}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border);font-size:var(--fs-base);font-weight:var(--fw-medium);flex-shrink:0}.file-list{list-style:none;margin:0;padding:var(--sp-2);overflow-y:auto;flex:1}.file-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-base);line-height:var(--lh-base)}.file-list li:hover{background:var(--c-surface-muted)}.file-list .size{color:var(--c-text-subtle);font-size:var(--fs-xs);flex-shrink:0;font-variant-numeric:tabular-nums}.file-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--c-border);display:flex;flex-direction:column;gap:var(--sp-2);flex-shrink:0}.rec-body{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4)}.rec-status{margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--c-surface-muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--c-text)}.rec-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.rec-actions .btn{flex:1 1 auto}.ai-body{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);overflow-y:auto;flex:1}.ai-field{display:flex;flex-direction:column;gap:var(--sp-1)}.ai-field[hidden]{display:none}.ai-field-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--c-text-muted)}.ai-task{resize:vertical;min-height:64px;font-family:inherit;line-height:var(--lh-base)}.ai-actions{display:flex;gap:var(--sp-2)}.ai-actions .btn{flex:1}.ai-log{list-style:none;margin:0;padding:var(--sp-2) var(--sp-3);min-height:120px;max-height:40vh;overflow-y:auto;background:var(--c-surface-muted);border:1px solid var(--c-border);border-radius:var(--r-sm);font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-muted)}.ai-log li{padding:2px 0;word-break:break-word}.ai-log li.is-head{color:var(--c-text);font-weight:var(--fw-medium)}.ai-log li.is-ok{color:var(--c-success)}.ai-log li.is-warn{color:var(--c-warning)}.ai-log li.is-err{color:var(--c-danger)}.jm-toolbar,.wf-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);margin-bottom:var(--sp-5)}.jm-toolbar-field{flex:1;max-width:320px;margin:0}.jm-section-title{font-size:var(--fs-xl);line-height:var(--lh-xl);font-weight:var(--fw-semibold)}.jm-sub-title{margin:var(--sp-5) 0 var(--sp-2);font-size:var(--fs-base);line-height:var(--lh-base);font-weight:var(--fw-medium);color:var(--c-text-muted)}.jm-item-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.jm-item-head .jm-section-title{margin:0}.jm-history-tools,.tm-head-ops,.aud-filter-ops,.aud-sum-ops,.tm-ops{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.jm-dash{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-3)}.jm-dash-sub{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--c-border);grid-template-columns:repeat(6,minmax(0,1fr))}.jm-dash-sub .jm-dash-num{font-size:var(--fs-xl);font-weight:var(--fw-medium)}.jm-dash-cell{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-4) var(--sp-3);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-md);font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-muted);text-align:center;min-width:0}.jm-dash-num{font-size:var(--fs-3xl);line-height:var(--lh-3xl);font-weight:var(--fw-semibold);color:var(--c-text);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.jm-list,.wf-items,.wf-steps,.wf-versions,.dev-list,.tm-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-3)}.jm-item{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-md)}.jm-item-ops,.jm-ctrl,.wf-step-nav,.tm-form-ops{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.tm-form-ops{justify-content:flex-end;margin-top:var(--sp-5)}.jm-inline-field{flex-direction:row;align-items:center;gap:var(--sp-2);margin:0;min-width:132px}.jm-inline-field .input{width:auto;min-width:120px;height:30px;font-size:var(--fs-sm)}.jm-weekdays{display:flex;gap:var(--sp-3);flex-wrap:wrap;font-size:var(--fs-sm);color:var(--c-text-muted)}.jm-weekdays label{display:inline-flex;align-items:center;gap:var(--sp-1);cursor:pointer}.jm-weekdays input[type=checkbox]{width:var(--icon-sm);height:var(--icon-sm);accent-color:var(--c-primary);cursor:pointer}.jm-pre,.wf-preview-events{margin:0;padding:var(--sp-3);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-muted);white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.jm-steps{gap:var(--sp-2);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--fs-xs);line-height:var(--lh-xs)}.jm-step{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-left:3px solid var(--c-border-strong);border-radius:var(--r-sm);white-space:pre-wrap;word-break:break-all}.jm-step-rerun{flex-shrink:0;font-family:inherit}.jm-ctrl:not(:empty){font-size:var(--fs-xs);color:var(--c-warning);border-left:2px solid var(--c-warning);padding-left:var(--sp-2)}.wf-nav{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--fs-base)}.wf-nav a{color:var(--c-text-muted);text-decoration:none}.wf-nav a:hover{color:var(--c-text)}.wf-plan-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4);align-items:end;margin:var(--sp-3) 0}.wf-plan-row>.btn{height:36px;width:100%}.wf-plan-row .input{width:100%}.wf-section-title{font-size:var(--fs-lg);line-height:var(--lh-lg);font-weight:var(--fw-semibold)}.wf-sub{margin:var(--sp-6) 0 var(--sp-2);font-size:var(--fs-base);line-height:var(--lh-base);font-weight:var(--fw-medium);color:var(--c-text-muted)}.wf-hint{margin:var(--sp-3) 0}.wf-split{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:var(--sp-5);align-items:start}.wf-list,.wf-editor{min-width:0}.wf-item{border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);transition:border-color .15s ease,background .15s ease}.wf-item:hover{border-color:var(--c-primary);background:var(--c-primary-soft)}.wf-item-btn{display:block;width:100%;padding:var(--sp-3) var(--sp-4);background:none;border:0;border-radius:var(--r-md);font-family:inherit;font-size:var(--fs-base);color:var(--c-text);text-align:left;cursor:pointer}.wf-params{display:flex;flex-direction:column;gap:var(--sp-2)}.wf-param-row,.wf-inline{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.wf-param-row .input{flex:1 1 200px}.wf-mini{height:28px;padding:0 var(--sp-3);font-size:var(--fs-xs)}.wf-steps{gap:var(--sp-3)}.wf-step{padding:var(--sp-3) var(--sp-4);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:var(--lh-sm)}.wf-step .field{display:block;margin-top:var(--sp-2)}.wf-step-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;font-weight:var(--fw-medium)}.wf-step-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-xs);color:var(--c-text-subtle)}.wf-step-type{padding:0 var(--sp-2);border-radius:var(--r-full);background:var(--c-surface-muted);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium)}.wf-step-summary{margin-top:var(--sp-2);color:var(--c-text-muted)}.wf-status{margin:var(--sp-3) 0;min-height:18px;font-size:var(--fs-sm)}.wf-status-ok{color:var(--c-success)}.wf-status-bad{color:var(--c-danger)}.wf-provider{margin-top:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-md);font-size:var(--fs-sm)}.wf-provider summary{cursor:pointer;color:var(--c-text-muted)}.wf-versions{gap:var(--sp-1)}.wf-versions li{padding:var(--sp-2) var(--sp-3);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--c-text-muted)}.aud-section-title{font-size:var(--fs-lg);line-height:var(--lh-lg);font-weight:var(--fw-semibold);margin-bottom:var(--sp-4)}.aud-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.aud-filter{min-width:0;margin:0}.aud-filter-date{grid-column:span 1}.aud-filter-ops{grid-column:1 / -1;justify-content:flex-end;margin-top:var(--sp-1)}.aud-sum-row{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;padding-bottom:var(--sp-4);margin-bottom:var(--sp-4);border-bottom:1px solid var(--c-border);font-size:var(--fs-sm);color:var(--c-text-muted)}.aud-sum-cell b{color:var(--c-text)}.aud-sum-blocked,.aud-sum-blocked b{color:var(--c-warning)}.aud-sum-failed,.aud-sum-failed b{color:var(--c-danger)}.aud-sum-ops{margin-left:auto}.aud-table-wrap{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--r-md);-webkit-overflow-scrolling:touch}.aud-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.aud-table th,.aud-table td{padding:var(--sp-2) var(--sp-3);text-align:left;border-bottom:1px solid var(--c-border);vertical-align:top;white-space:nowrap}.aud-table th{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--c-text-muted);background:var(--c-surface-muted)}.aud-table tbody tr:last-child td{border-bottom:none}.aud-table tbody tr:hover{background:var(--c-surface-muted)}.aud-row-bad{color:var(--c-text-subtle)}.aud-row-bad td:first-child{box-shadow:inset 2px 0 0 var(--c-warning)}.aud-table-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-4);font-size:var(--fs-xs);color:var(--c-text-subtle)}.aud-note{padding-top:var(--sp-3);margin-top:var(--sp-3);border-top:1px dashed var(--c-border)}.aud-empty[hidden]{display:none}.tm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.tm-filter{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.tm-filter .input{width:auto;min-width:200px}.tm-item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-md)}.tm-main{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;flex:1 1 auto}.tm-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--c-text)}.tm-meta{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-subtle);word-break:break-all}.tm-flow{margin-top:var(--sp-2);border:1px solid var(--c-border);border-radius:var(--r-sm);overflow:hidden}.tm-flow>summary{cursor:pointer;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);color:var(--c-text)}.tm-flow-body{margin:0;padding:var(--sp-3);background:var(--c-surface);font:inherit;font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-muted);white-space:pre-wrap;word-break:break-all}.tm-form-card{margin-top:var(--sp-5);padding:var(--sp-6)}.tm-form-title{margin:0 0 var(--sp-4);font-size:var(--fs-lg);line-height:var(--lh-lg);font-weight:var(--fw-semibold)}.tm-tabs{display:flex;gap:var(--sp-1);padding:var(--sp-1);background:var(--c-surface-muted);border:1px solid var(--c-border);border-radius:var(--r-md);overflow-x:auto;scrollbar-width:none;margin-bottom:var(--sp-5)}.tm-tabs::-webkit-scrollbar{display:none}.tm-tab{flex:0 0 auto;height:32px;padding:0 var(--sp-4);background:transparent;border:0;border-radius:var(--r-sm);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-text-muted);cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.tm-tab:hover:not(.is-active){color:var(--c-text)}.tm-tab.is-active{background:var(--c-surface);color:var(--c-text);box-shadow:var(--sh-xs)}.tmk-summary{margin:0 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--c-text-muted)}.tmk-seq{flex-shrink:0;padding:1px var(--sp-2);border-radius:var(--r-full);background:var(--c-primary-soft);color:var(--c-primary-ink);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.tmk-label{font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--c-text-muted)}.tmk-label:before{content:"· "}.dev-list{gap:var(--sp-3)}.dev-item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4);background:var(--c-surface);border:1px solid var(--c-border);border-left:3px solid var(--c-border-strong);border-radius:var(--r-md);box-shadow:var(--sh-xs);flex-wrap:wrap}.dev-online{border-left-color:var(--c-success)}.dev-off{border-left-color:var(--c-text-subtle);opacity:.62}.dev-zombie{border-left-color:var(--c-warning)}.dev-zombie .dev-state{color:var(--c-warning)}.dev-main{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;flex:1 1 auto}.dev-name{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-meta{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-subtle);word-break:break-all}.dev-reconcile{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-subtle)}.dev-state{font-size:var(--fs-xs);color:var(--c-text-muted)}.dev-connect,.dev-reconcile{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.dev-connect{padding:0 var(--sp-4);border:1px solid var(--c-primary);border-radius:var(--r-sm);background:transparent;color:var(--c-primary);font-family:inherit;font-size:var(--fs-sm);cursor:pointer;white-space:nowrap}.dev-connect:hover:not(:disabled){background:var(--c-primary-soft)}.dev-connect:disabled{opacity:.4;cursor:not-allowed}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.app-nav{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-5) var(--sp-4);background:var(--nav-bg);border-right:1px solid var(--c-border);position:sticky;top:0;height:100vh}.app-brand{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-2);font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:#fff}.app-brand .brand-mark{width:28px;height:28px;border-radius:var(--r-md);background:var(--nav-hover);color:#fff;display:grid;place-items:center;font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.app-nav-list{display:flex;flex-direction:column;gap:var(--sp-1)}.app-nav-item{display:flex;align-items:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-3);border-radius:var(--r-md);color:var(--nav-ink);font-size:var(--fs-base);font-weight:var(--fw-medium);text-decoration:none;transition:background .15s ease,color .15s ease}.app-nav-item:hover{background:var(--nav-hover);color:#fff;text-decoration:none}.app-nav-item.is-active{background:var(--nav-hover);color:#fff}.app-main{display:flex;flex-direction:column;min-width:0}.app-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);height:var(--header-h);padding:0 var(--sp-6);background:var(--c-surface);border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:var(--z-sticky)}.app-search-wrap{position:relative;flex:1 1 auto;max-width:420px;min-width:0}.app-search{width:100%;font-size:var(--fs-sm)}.app-topbar-right{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0;min-width:0}.app-badge{background:var(--c-danger);color:#fff;min-width:20px;justify-content:center}.app-tenant{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-xs);color:var(--c-text-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.app-user{font-size:var(--fs-sm);color:var(--c-text-muted);white-space:nowrap}.app-view{flex:1;padding:var(--sp-6);background:var(--c-bg);min-width:0}.app-page{width:min(var(--content-max),100%);margin:0 auto}.app-page-title{margin:0 0 var(--sp-5);font-size:var(--fs-2xl);line-height:var(--lh-2xl);font-weight:var(--fw-semibold);letter-spacing:-.01em}.app-view-error{width:min(var(--content-max),100%);margin:0 auto var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--c-danger-soft);border:1px solid var(--c-danger);color:var(--c-danger);font-size:var(--fs-sm)}.app-view-error:empty{display:none}.app-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4);margin-bottom:var(--sp-5)}.app-metric{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-5);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs)}.app-metric-label{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-muted)}.app-metric-value{font-size:var(--fs-3xl);line-height:var(--lh-3xl);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;color:var(--c-text)}.app-card{padding:var(--sp-5);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);margin-bottom:var(--sp-5)}.app-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.app-card-title{margin:0;font-size:var(--fs-lg);line-height:var(--lh-lg);font-weight:var(--fw-semibold)}.app-card-head .app-card-title{margin-bottom:0}.app-card-note{margin:0;color:var(--c-text-muted);font-size:var(--fs-base);line-height:var(--lh-base)}.app-run-list{display:flex;flex-direction:column;gap:var(--sp-2);list-style:none}.app-run-item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-md);cursor:pointer;font-size:var(--fs-sm);flex-wrap:wrap}.app-run-item:hover{border-color:var(--c-border-strong)}.app-run-item.is-selected{border-color:var(--c-primary);background:var(--c-primary-soft);cursor:default}.app-run-main{font-weight:var(--fw-medium);color:var(--c-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-run-sub{font-size:var(--fs-xs);color:var(--c-text-subtle);white-space:nowrap;font-variant-numeric:tabular-nums}.app-empty{color:var(--c-text-subtle);font-size:var(--fs-sm);padding:var(--sp-2) 0}.app-overlay{position:fixed;inset:0;z-index:var(--z-overlay);display:flex;flex-direction:column;background:var(--c-bg)}.app-overlay-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);background:var(--c-surface);border-bottom:1px solid var(--c-border);flex-wrap:wrap;flex-shrink:0}.app-overlay-title{font-size:var(--fs-lg);line-height:var(--lh-lg);font-weight:var(--fw-semibold)}.app-overlay-sub{font-size:var(--fs-xs);color:var(--c-text-subtle);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.app-overlay-tabs{display:flex;gap:var(--sp-1);padding:var(--sp-2) var(--sp-5) 0;background:var(--c-surface);border-bottom:1px solid var(--c-border);flex-shrink:0}.app-overlay-tab{height:32px;padding:0 var(--sp-4);background:transparent;border:0;border-radius:var(--r-sm) var(--r-sm) 0 0;font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-text-muted);cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.app-overlay-tab:hover{color:var(--c-text)}.app-overlay-tab.is-active{background:var(--c-bg);color:var(--c-text);box-shadow:inset 0 2px 0 var(--c-primary)}.app-overlay-body{flex:1;min-height:0;position:relative}.app-overlay-pane{position:absolute;inset:0;display:none}.app-overlay-pane.is-active{display:block}.app-overlay .remote{height:100%}.app-overlay .ai-panel{top:calc(var(--header-h) + var(--sp-4));bottom:var(--sp-5)}.app-overlay .rec-panel{top:calc(var(--header-h) + var(--sp-4))}.app-overlay .file-panel{position:static;width:auto;height:100%;border:none;border-radius:0;box-shadow:none}.app-overlay-pane .app-card{width:min(var(--content-mid),100%);margin:var(--sp-5) auto}.app-search-results{position:absolute;top:calc(100% + var(--sp-2));left:0;right:0;max-height:60vh;overflow-y:auto;padding:var(--sp-1);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-float);z-index:var(--z-panel)}.app-search-results:empty{display:none}.app-search-group{padding:var(--sp-2) var(--sp-3) var(--sp-1);font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--c-text-subtle);text-transform:uppercase;letter-spacing:.04em}.app-search-item{display:flex;align-items:baseline;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);border:0;background:transparent;color:var(--c-text);font-family:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;border-radius:var(--r-sm)}.app-search-item:hover{background:var(--c-surface-muted)}.app-search-kind{flex-shrink:0;padding:0 var(--sp-2);border-radius:var(--r-full);background:var(--c-surface-muted);color:var(--c-text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-medium)}.app-search-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sub-banner{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);margin-bottom:var(--sp-5);border-radius:var(--r-md);background:var(--c-warning-soft);border:1px solid var(--c-warning);color:var(--c-warning);font-size:var(--fs-sm);line-height:var(--lh-sm);flex-wrap:wrap}.app-sub-banner[data-level=expired]{background:var(--c-danger-soft);border-color:var(--c-danger);color:var(--c-danger)}.app-sub-banner[data-level=none]{background:var(--c-primary-soft);border-color:var(--c-primary);color:var(--c-primary-ink)}.app-sub-banner span{flex:1;min-width:0}.app-sub-banner .btn{flex-shrink:0}.app-legacy{height:100%;overflow:auto;padding:var(--sp-5);background:var(--c-bg);color:var(--c-text);min-height:100%;border-radius:var(--r-lg)}.grounding-layer{position:absolute;inset:0;pointer-events:none;z-index:4}.grounding-box{position:absolute;border:2px solid var(--c-primary);border-radius:var(--r-sm);background:#4f46e51a;box-shadow:0 0 0 1px #00000059;transition:border-color .15s ease,background .15s ease}.grounding-box.is-pickable{pointer-events:auto;cursor:pointer}.grounding-box.is-pickable:hover{background:#4f46e53d}.grounding-box.is-regret{border-color:var(--c-warning);background:#b747081f;animation:ground-pulse .5s ease-in-out infinite alternate}@keyframes ground-pulse{0%{box-shadow:0 0 0 1px #00000059,0 0 8px #b7470859}to{box-shadow:0 0 0 2px #00000059,0 0 18px #b74708b3}}.grounding-tag{position:absolute;top:-22px;left:-2px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px var(--sp-2);border-radius:var(--r-sm) var(--r-sm) var(--r-sm) 0;background:var(--c-primary);color:#fff;font-size:var(--fs-2xs);font-weight:var(--fw-medium);line-height:18px}.grounding-box.is-near-top .grounding-tag{top:auto;bottom:-22px;border-radius:0 var(--r-sm) var(--r-sm) var(--r-sm)}.grounding-tip{position:absolute;left:50%;bottom:var(--sp-4);transform:translate(-50%);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);background:var(--toast-bg);color:#fff;font-size:var(--fs-xs);line-height:var(--lh-xs);max-width:280px;box-shadow:var(--sh-float)}.grounding-cancel{pointer-events:auto;position:absolute;left:50%;bottom:56px;transform:translate(-50%);padding:var(--sp-2) var(--sp-4);border:1px solid var(--c-primary);border-radius:var(--r-md);background:var(--c-surface);color:var(--c-primary);font-family:inherit;font-size:var(--fs-xs);cursor:pointer}.grounding-cancel:hover{background:var(--c-primary-soft)}.download-box{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-6);padding:var(--sp-5);background:var(--c-surface-sunken);border:1px solid var(--c-border);border-radius:var(--r-lg);text-align:center}.download-title{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--c-text)}.download-hint{margin-top:var(--sp-1);font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text-subtle)}.download-meta{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);flex-wrap:wrap;font-size:var(--fs-2xs);color:var(--c-text-subtle)}.download-note{padding:0 var(--sp-2);border:1px solid var(--c-border);border-radius:var(--r-full)}@media (max-width: 1024px){.jm-dash,.jm-dash-sub{grid-template-columns:repeat(3,minmax(0,1fr))}.jm-grid-4,.wf-plan-row,.aud-filters,.app-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.wf-split{grid-template-columns:minmax(0,1fr)}.container,.app-view,.app-topbar{padding-inline:var(--sp-5)}}@media (max-width: 860px){.app{grid-template-columns:minmax(0,1fr)}.app-nav{position:static;height:auto;flex-direction:row;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-right:0;border-bottom:1px solid var(--c-border);overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav-list{flex-direction:row}.app-brand{padding:0;white-space:nowrap}.app-user,.app-tenant{display:none}}@media (max-width: 640px){:root{--gap-lg: var(--sp-4);--gap-xl: var(--sp-6)}body{font-size:var(--fs-base)}h1,.page-title{font-size:var(--fs-2xl);line-height:var(--lh-2xl)}.app-header{padding:0 var(--sp-4);gap:var(--sp-2)}.header-actions .btn-sm{height:32px}.view-centered{padding:var(--sp-8) var(--sp-4)}.container,.app-view,.app-topbar,.app-legacy{padding:var(--sp-5) var(--sp-4)}.panel,.card{padding:var(--sp-4)}.jm-grid,.jm-grid-4,.wf-plan-row,.aud-filters,.jm-dash,.jm-dash-sub,.app-metrics,.wf-split{grid-template-columns:minmax(0,1fr)}.jm-dash-cell,.app-metric{padding:var(--sp-3)}.btn{height:40px}.btn-sm{height:34px}.input{height:40px;font-size:var(--fs-lg)}.input-code{height:48px}.quick-btn,.mode-btn{height:34px}.remote,.remote-bar{padding:var(--sp-2);gap:var(--sp-2)}.session-actions .btn-sm,.remote-bar .btn-sm{height:36px;padding:0 var(--sp-3)}.dock,.file-panel,.rec-panel,.ai-panel{right:var(--sp-2);left:var(--sp-2);width:auto}.dock{bottom:var(--sp-2)}.file-panel,.ai-panel{top:calc(var(--header-h) + var(--sp-2));bottom:var(--sp-2)}.rec-panel{top:calc(var(--header-h) + var(--sp-2))}#screen{object-fit:cover}#screen.fit-contain{object-fit:contain}.ai-log{max-height:30vh}.aud-sum-ops{margin-left:0;width:100%}.aud-sum-row{gap:var(--sp-3)}.dev-item{flex-direction:column;align-items:stretch}.dev-connect,.dev-reconcile{width:100%}.dev-connect .btn,.dev-reconcile .btn{flex:1}.app-overlay-tabs{width:100%;overflow-x:auto;padding-inline:var(--sp-4)}.app-search-results{width:calc(100vw - var(--sp-10))}}@media (max-height: 480px) and (orientation: landscape){.remote{padding:var(--sp-1);gap:var(--sp-1)}.remote-bar{flex-direction:row;align-items:center;padding:var(--sp-1) var(--sp-2)}.session-actions .btn{flex:0 1 auto}.stage-placeholder{padding:var(--sp-3);gap:var(--sp-2)}.view-centered{padding:var(--sp-4)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
