:root{--color-ink:#171717;--color-ink-secondary:#737373;--color-ink-tertiary:#969696;--color-line:#ececec;--color-bg:#f9f8fd;--color-surface:#fff;--color-accent:#7c5dff;--color-accent-strong:#5940d8;--color-accent-tint:#efecff;--status-good:#15a866;--status-alert:#d93955;--text-1:var(--color-ink);--text-2:#5f5f66;--text-3:var(--color-ink-secondary);--text-disabled:var(--color-ink-tertiary);--text-inverse:#fff;--text-on-accent:#fff;--line:var(--color-line);--line-table:#e2e2e6;--line-strong:#d4d4da;--surface:var(--color-surface);--surface-sunken:var(--color-bg);--surface-fill:#f6f6f8;--surface-header:#fafafb;--surface-hover:#fafafb;--accent-fill:#6a48f5;--accent-fill-hover:#5940d8;--accent-fill-active:#4a34c4;--accent-tint:var(--color-accent-tint);--link:var(--color-accent-strong);--focus:var(--color-accent);--selected-row:#f5f2ff;--selected-mark:var(--color-accent);--good-fill:var(--status-good);--good-text:#0e7a48;--good-bg:#e8f6ee;--alert-fill:var(--status-alert);--alert-text:#c22b45;--alert-bg:#fdecef;--warn-fill:#f0a92a;--warn-text:#7a4a00;--warn-bg:#fdf3e3;--info-fill:#4e8cff;--info-text:#1e4fa8;--info-bg:#eaf0ff;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-page:22px;--lh-page:28px;--ls-page:-.02em;--fs-section:18px;--lh-section:24px;--ls-section:-.01em;--fs-body:13px;--lh-body:20px;--fs-meta:12px;--lh-meta:16px;--fs-label:11px;--lh-label:16px;--fs-metric:24px;--lh-metric:28px;--ls-metric:-.04em;--fs-button:14px;--lh-button:20px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:48px;--sp-10:64px;--r-xs:8px;--r-sm:6px;--r-md:12px;--r-pill:999px;--h-control-sm:26px;--h-control:30px;--h-control-lg:34px;--h-row:32px;--h-topbar:44px;--h-tab:34px;--w-sidebar:224px;--w-drawer:400px;--shadow-overlay:0 8px 24px #1717171a;--shadow-drawer:-8px 0 24px #1717170f;--motion-fast:.12s;--motion-panel:.18s;--ease:cubic-bezier(.2, 0, .2, 1)}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0s;--motion-panel:0s}}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-1);background:var(--surface-sunken);-webkit-font-smoothing:antialiased;margin:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-radius:var(--r-xs)}.shell{height:100%;display:flex;overflow:hidden}.sidebar{width:var(--w-sidebar);flex-direction:column;flex:0 0 var(--w-sidebar);background:var(--surface);border-right:1px solid var(--line);display:flex}.brand{align-items:center;gap:var(--sp-2);height:var(--h-topbar);padding:0 var(--sp-4);border-bottom:1px solid var(--line);display:flex}.brand-mark{width:18px;height:20px;color:var(--text-1)}.brand-name{letter-spacing:.1em;font-size:13px;font-weight:700}.brand-tag{margin-left:var(--sp-1);border-radius:var(--r-sm);background:var(--accent-tint);height:16px;color:var(--color-accent-strong);letter-spacing:.08em;text-transform:uppercase;align-items:center;padding:0 5px;font-size:9px;font-weight:700;display:inline-flex}.nav{padding:var(--sp-2) 0}.nav-item{align-items:center;gap:var(--sp-2);width:100%;height:30px;padding:0 var(--sp-4);color:var(--text-2);text-align:left;cursor:pointer;white-space:nowrap;transition:background var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease);background:0 0;border:0;border-left:2px solid #0000;display:flex}.nav-item:hover{background:var(--surface-fill);color:var(--text-1)}.nav-item.active{background:var(--accent-tint);border-left-color:var(--selected-mark);color:var(--color-accent-strong);font-weight:600}.nav-icon{flex:0 0 16px;width:16px;height:16px;display:inline-flex}.nav-icon svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.sidebar-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--line);color:var(--text-3);font-size:var(--fs-label);line-height:var(--lh-label);margin-top:auto}.sidebar-foot .tag{margin-bottom:var(--sp-1);border-radius:var(--r-sm);background:var(--accent-tint);color:var(--color-accent-strong);letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;font-size:10px;font-weight:600;display:inline-block}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{align-items:center;gap:var(--sp-3);height:var(--h-topbar);flex:0 0 var(--h-topbar);padding:0 var(--sp-5);background:var(--surface);border-bottom:1px solid var(--line);display:flex}.crumbs{color:var(--text-1);font-size:var(--fs-meta);font-weight:600}.topbar-right{align-items:center;gap:var(--sp-2);margin-left:auto;display:flex}.status-dot{background:var(--line-strong);border-radius:50%;width:6px;height:6px}.status-dot.online{background:var(--good-fill)}.session{color:var(--text-3);font-size:var(--fs-label)}.content{padding:var(--sp-5);flex:1;overflow:auto}.placeholder{max-width:640px;padding:var(--sp-6);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xs)}.placeholder h1{margin:0 0 var(--sp-2);font-size:var(--fs-page);line-height:var(--lh-page);letter-spacing:var(--ls-page);font-weight:600}.placeholder p{margin:0 0 var(--sp-3);color:var(--text-2)}.placeholder .muted{color:var(--text-3);font-size:var(--fs-meta)}.placeholder code{font-family:var(--font-mono);font-size:var(--fs-label);background:var(--surface-fill);border-radius:4px;padding:1px 4px}@media (width<=1180px){:root{--w-sidebar:56px}.sidebar .brand{justify-content:center;gap:0;padding:0}.brand-name,.brand-tag,.nav-label,.sidebar-foot{display:none}.nav-item{justify-content:center;padding:0}}.auth-shell{min-height:100vh;padding:var(--sp-6);background:var(--surface-sunken);justify-content:center;align-items:center;display:flex}.auth-card{width:440px;max-width:100%;padding:var(--sp-7);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-overlay)}.auth-brand{align-items:center;gap:var(--sp-2);display:flex}.auth-brand .brand-mark{width:24px;height:26px}.auth-brand .brand-name{font-size:18px}.auth-sub{margin:var(--sp-1) 0 var(--sp-5);color:var(--text-2);font-size:var(--fs-meta)}.auth-config{gap:var(--sp-1);margin-bottom:var(--sp-4);padding:var(--sp-3);background:var(--surface-fill);border-radius:var(--r-xs);font-size:var(--fs-label);line-height:var(--lh-label);display:grid}.auth-config>div{gap:var(--sp-2);display:flex}.auth-config span{color:var(--text-3);min-width:56px}.auth-config code{color:var(--text-2);font-family:var(--font-mono);word-break:break-all;font-size:11px}.auth-error{margin-bottom:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-xs);background:var(--alert-bg);color:var(--alert-text);font-size:var(--fs-meta)}.segmented{margin-bottom:var(--sp-4);background:var(--surface-fill);border:1px solid var(--line);border-radius:var(--r-xs);gap:2px;padding:2px;display:inline-flex}.segmented button{height:26px;padding:0 var(--sp-3);color:var(--text-2);font-size:var(--fs-meta);cursor:pointer;background:0 0;border:0;border-radius:6px}.segmented button.on{background:var(--surface);border:1px solid var(--line);color:var(--text-1);font-weight:600}.auth-form{gap:var(--sp-3);flex-direction:column;display:flex}.field{gap:var(--sp-1);flex-direction:column;display:flex}.field>span{font-size:var(--fs-label);line-height:var(--lh-label);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);font-weight:600}.input{height:var(--h-control);padding:0 var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--r-xs);background:var(--surface);color:var(--text-1);transition:border-color var(--motion-fast) var(--ease), box-shadow var(--motion-fast) var(--ease)}.input:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px #7c5dff29}.input.mono{font-family:var(--font-mono);font-size:var(--fs-meta)}.btn{height:var(--h-control);padding:0 var(--sp-3);justify-content:center;align-items:center;gap:var(--sp-2);border:1px solid var(--line-strong);border-radius:var(--r-xs);background:var(--surface);color:var(--text-1);font-size:var(--fs-button);line-height:var(--lh-button);cursor:pointer;transition:background var(--motion-fast) var(--ease), border-color var(--motion-fast) var(--ease);font-weight:600;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-fill)}.btn.primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--text-on-accent)}.btn.primary:hover:not(:disabled){background:var(--accent-fill-hover);border-color:var(--accent-fill-hover)}.btn:disabled{color:var(--text-disabled);background:var(--surface);border-color:var(--line);cursor:default}.btn.primary:disabled{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--text-on-accent);opacity:.6}.auth-note{margin:var(--sp-5) 0 0;padding-top:var(--sp-4);border-top:1px solid var(--line);color:var(--text-3);font-size:var(--fs-label);line-height:1.6}.auth-note code{font-family:var(--font-mono);background:var(--surface-fill);border-radius:3px;padding:0 3px;font-size:10px}.auth-title{font-size:var(--fs-section);line-height:var(--lh-section);margin-bottom:var(--sp-2);font-weight:600}.auth-text{margin:0 0 var(--sp-4);color:var(--text-2)}.page-head{align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-4);display:flex}.page-title{font-size:var(--fs-page);line-height:var(--lh-page);letter-spacing:var(--ls-page);margin:0 0 2px;font-weight:600}.page-sub{color:var(--text-2);font-size:var(--fs-meta);line-height:var(--lh-meta)}.page-actions{gap:var(--sp-2);margin-left:auto;display:flex}.toolbar{align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0 var(--sp-3);border-bottom:1px solid var(--line-table);flex-wrap:wrap;display:flex}.toolbar .grow{flex:260px;max-width:460px}.toolbar-meta{color:var(--text-2);font-size:var(--fs-meta);margin-left:auto}.toolbar-meta b{color:var(--text-1)}.table-wrap{margin-top:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xs);overflow:auto}table.data-table{border-collapse:collapse;white-space:nowrap;width:100%}table.data-table th{z-index:1;height:30px;padding:0 var(--sp-3);text-align:left;font-size:var(--fs-label);line-height:var(--lh-label);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);background:var(--surface-header);border-bottom:1px solid var(--line-table);font-weight:600;position:sticky;top:0}table.data-table td{height:var(--h-row);padding:0 var(--sp-3);border-bottom:1px solid var(--line);font-size:var(--fs-body)}table.data-table tbody tr{cursor:pointer}table.data-table tbody tr:hover td{background:var(--surface-hover)}table.data-table tbody tr.selected td{background:var(--selected-row)}table.data-table tbody tr.selected td:first-child{box-shadow:inset 2px 0 0 var(--selected-mark)}table.data-table tbody tr:last-child td{border-bottom:none}table.data-table .mono{font-family:var(--font-mono);font-size:var(--fs-meta)}table.data-table .strong{font-weight:600}table.data-table .num{font-variant-numeric:tabular-nums}table.data-table .dim{color:var(--text-3)}table.data-table .right{text-align:right}table.data-table .ellipsis{text-overflow:ellipsis;max-width:240px;overflow:hidden}table.data-table td.actions{text-align:right}.btn.small{height:var(--h-control-sm);padding:0 var(--sp-2);font-size:var(--fs-meta)}.pagination{align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);color:var(--text-2);font-size:var(--fs-meta);display:flex}.pagination span{font-variant-numeric:tabular-nums}.footnote{margin:var(--sp-3) 0 0;color:var(--text-3);font-size:var(--fs-label);line-height:1.6}.notice{margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-left:2px solid var(--color-accent);border-radius:var(--r-xs);background:var(--surface);color:var(--text-2);font-size:var(--fs-meta)}.notice.error{border-left-color:var(--alert-fill);background:var(--alert-bg);color:var(--alert-text)}.empty-state{margin-top:var(--sp-3);padding:var(--sp-6);text-align:center;color:var(--text-2);background:var(--surface);border:1px dashed var(--line-table);border-radius:var(--r-xs)}.empty-state .btn{margin-left:var(--sp-3)}.drawer{top:var(--h-topbar);width:var(--w-drawer);background:var(--surface);border-left:1px solid var(--line-table);box-shadow:var(--shadow-drawer);z-index:20;flex-direction:column;display:flex;position:fixed;bottom:0;right:0}.drawer-head{align-items:center;gap:var(--sp-2);height:var(--h-topbar);padding:0 var(--sp-4);border-bottom:1px solid var(--line);display:flex}.drawer-title{font-size:var(--fs-section);line-height:var(--lh-section);font-weight:600}.drawer-head .btn{margin-left:auto}.drawer-body{padding:var(--sp-4);overflow:auto}.drawer-foot{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--line);margin-top:auto;display:flex}.kv{gap:var(--sp-2) var(--sp-3);font-size:var(--fs-meta);line-height:var(--lh-meta);grid-template-columns:132px 1fr;margin:0;display:grid}.kv dt{color:var(--text-3)}.kv dd{color:var(--text-1);margin:0}.kv dd.mono{font-family:var(--font-mono);font-size:var(--fs-meta)}.kv dd.wrap{word-break:break-all}.kv dd.num{font-variant-numeric:tabular-nums}.drawer .notice{margin-top:var(--sp-3)}.overlay{z-index:30;background:#17171752;justify-content:center;align-items:flex-start;padding-top:6vh;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-md);width:760px;max-width:calc(100vw - 48px);box-shadow:var(--shadow-overlay);flex-direction:column;display:flex;overflow:hidden}.modal.narrow{width:460px}.modal-head{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--line);display:flex}.modal-title{font-size:var(--fs-section);line-height:var(--lh-section);font-weight:600}.modal-head .btn{margin-left:auto}.modal-body{padding:var(--sp-5);max-height:64vh;overflow:auto}.modal-foot{gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--line);background:var(--surface-header);justify-content:flex-end;display:flex}.dropzone{align-items:center;gap:var(--sp-2);padding:var(--sp-5);margin-bottom:var(--sp-4);text-align:center;color:var(--text-2);background:var(--surface-sunken);border:1px dashed var(--line-strong);border-radius:var(--r-xs);flex-direction:column;display:flex}.form-grid{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid .wide{grid-column:1/-1}.transfer-progress{height:6px;margin-top:var(--sp-2);background:var(--surface-fill);border-radius:var(--r-pill);overflow:hidden}.transfer-progress>span{background:var(--accent-fill);height:100%;display:block}.btn.danger{border-color:var(--alert-fill);color:var(--alert-text);background:var(--surface)}.btn.danger:hover:not(:disabled){background:var(--alert-bg)}.btn.danger:disabled{border-color:var(--line);color:var(--text-disabled)}.drawer-foot{flex-wrap:wrap}.progress-card{margin:var(--sp-3) 0 var(--sp-4);padding:var(--sp-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xs)}.progress-card-head{align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.progress-value{font-size:var(--fs-metric);line-height:var(--lh-metric);letter-spacing:var(--ls-metric);font-variant-numeric:tabular-nums;font-weight:600}.progress-label{color:var(--text-2);font-size:var(--fs-meta)}.progress-track{background:var(--surface-fill);border-radius:var(--r-pill);height:6px;overflow:hidden}.progress-track>span{background:var(--accent-fill);height:100%;display:block}.metric-row{gap:var(--sp-6);margin-top:var(--sp-4);flex-wrap:wrap;display:flex}.metric-value{font-size:var(--fs-section);line-height:var(--lh-section);font-variant-numeric:tabular-nums;font-weight:600}.metric-label{color:var(--text-3);font-size:var(--fs-label)}.plan-grid{gap:var(--sp-4);grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);align-items:start;display:grid}.stack{gap:var(--sp-4);flex-direction:column;display:flex}.timeline{margin:0;padding:0;list-style:none}.timeline-item{gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--line);display:flex}.timeline-item:last-child{border-bottom:none}.timeline-dot{border:1px solid var(--line-strong);background:var(--surface);width:22px;height:22px;color:var(--text-3);font-variant-numeric:tabular-nums;border-radius:50%;flex:0 0 22px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.timeline-item.is-done .timeline-dot{background:var(--good-fill);border-color:var(--good-fill);color:#fff}.timeline-item.is-progress .timeline-dot{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff}.timeline-item.is-blocked .timeline-dot{background:var(--warn-bg);border-color:var(--warn-fill);color:var(--warn-text)}.timeline-body{min-width:0}.timeline-title{align-items:center;gap:var(--sp-2);font-weight:600;display:flex}.timeline-item.is-next .timeline-title,.timeline-item.is-later .timeline-title{color:var(--text-2);font-weight:500}.timeline-detail{color:var(--text-3);font-size:var(--fs-meta);line-height:var(--lh-meta)}.state-tag{border-radius:var(--r-sm);letter-spacing:.04em;text-transform:uppercase;background:var(--surface-fill);color:var(--text-3);padding:0 5px;font-size:10px;font-weight:600}.state-tag.tag-done{background:var(--good-bg);color:var(--good-text)}.state-tag.tag-progress{background:var(--accent-tint);color:var(--color-accent-strong)}.state-tag.tag-blocked{background:var(--warn-bg);color:var(--warn-text)}.plan-text{margin:0 0 var(--sp-2);color:var(--text-2);font-size:var(--fs-meta);line-height:1.65}.plan-text code{font-family:var(--font-mono);background:var(--surface-fill);border-radius:3px;padding:0 3px;font-size:11px}.plan-list{padding-left:var(--sp-4);color:var(--text-2);font-size:var(--fs-meta);margin:0;line-height:1.7}.plan-list li{margin-bottom:var(--sp-1)}.panel{padding:var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xs)}.panel-head{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);font-size:var(--fs-label);line-height:var(--lh-label);letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);font-weight:600;display:flex}.chip{align-items:center;gap:var(--sp-1);height:20px;padding:0 var(--sp-2);border-radius:var(--r-pill);background:var(--surface-fill);color:var(--text-2);font-size:var(--fs-label);line-height:var(--lh-label);white-space:nowrap;font-weight:600;display:inline-flex}.chip.ok{background:var(--good-bg);color:var(--good-text)}.chip.warn{background:var(--warn-bg);color:var(--warn-text)}.chip.alert{background:var(--alert-bg);color:var(--alert-text)}.chip.accent{background:var(--accent-tint);color:var(--color-accent-strong)}.chip.outline{border:1px solid var(--line);color:var(--text-2);background:0 0}.page-title-row{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.back-link{height:var(--h-control-sm);padding:0 var(--sp-2);border:1px solid var(--line);border-radius:var(--r-xs);background:var(--surface);color:var(--text-2);font-size:var(--fs-meta);cursor:pointer}.back-link:hover{background:var(--surface-hover)}.segmented.flush{margin-bottom:0}.toolbar.split{flex-wrap:wrap;justify-content:space-between}.toolbar-group{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.toolbar-label{color:var(--text-3);font-size:var(--fs-meta)}.kv.wide{grid-template-columns:168px 1fr}.card-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;display:grid}.stack.snug{gap:var(--sp-2)}.row-split{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.bar-cell{align-items:center;gap:var(--sp-2);min-width:140px;display:flex}.bar-track{border-radius:var(--r-pill);background:var(--surface-fill);flex:1;min-width:60px;height:8px;overflow:hidden}.bar-fill{background:var(--color-accent);height:100%;display:block}.coverage-day{gap:var(--sp-3);padding:var(--sp-1) 0;grid-template-columns:56px minmax(0,1fr) 96px;align-items:center;display:grid}.coverage-day .day-name{color:var(--text-2);font-size:var(--fs-meta);font-variant-numeric:tabular-nums}.coverage-day .day-total{color:var(--text-3);font-size:var(--fs-meta);text-align:right;font-variant-numeric:tabular-nums}.coverage-bar{border:1px solid var(--line);border-radius:var(--r-xs);background:var(--surface-fill);gap:1px;height:18px;padding:1px;display:flex}.coverage-bucket{cursor:pointer;background:0 0;border:0;border-radius:1px;flex:1 1 0;min-width:0;padding:0}.coverage-bucket.observed{background:var(--status-good)}.coverage-bucket.partial{background:var(--status-good);opacity:.45}.coverage-bucket.gap{background:var(--status-alert)}.coverage-bucket.outside{cursor:default;background:0 0}.coverage-bucket.selected{outline:2px solid var(--focus);outline-offset:1px}.coverage-legend{gap:var(--sp-4);color:var(--text-3);font-size:var(--fs-label);flex-wrap:wrap;display:flex}.legend-dot{width:8px;height:8px;margin-right:var(--sp-1);vertical-align:1px;border-radius:2px;display:inline-block}.legend-dot.observed{background:var(--status-good)}.legend-dot.gap{background:var(--status-alert)}.legend-dot.outside{background:var(--surface-fill);border:1px solid var(--line)}.segment-row{gap:var(--sp-2);font-size:var(--fs-meta);font-variant-numeric:tabular-nums;grid-template-columns:92px 150px minmax(0,1fr) 92px;padding:2px 0;display:grid}.segment-row .kind{color:var(--text-3)}.segment-row.kind-gap .kind{color:var(--alert-text)}.segment-row.kind-observed .kind{color:var(--good-text)}.field-error{color:var(--alert-text);font-size:var(--fs-label);line-height:var(--lh-label)}.field-hint{color:var(--text-3);font-size:var(--fs-label);line-height:var(--lh-label)}.check-row{gap:var(--sp-3);flex-wrap:wrap;display:flex}.check{align-items:center;gap:var(--sp-1);color:var(--text-2);font-size:var(--fs-meta);display:inline-flex}.check input{margin:0}.json-editor{width:100%;min-height:460px;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-xs);background:var(--surface-sunken);color:var(--text-1);font-family:var(--font-mono);resize:vertical;tab-size:2;font-size:12px;line-height:1.5}.issue-list{padding-left:var(--sp-4);color:var(--alert-text);font-size:var(--fs-meta);margin:0;line-height:1.6}.panel-actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.stack-trace{padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-xs);background:var(--surface-sunken);max-height:360px;color:var(--text-1);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;margin:0;font-size:11px;line-height:1.55;overflow:auto}.stack-trace.unavailable{color:var(--text-2);font-style:italic}
