:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-synthesis:none;color-scheme:light;--tint: rgb(255 255 255 / 78%);--tint-soft: #eef2ff;--brand: #6366f1;--brand-strong: #4f46e5;--ink: #0f172a;--ink-muted: #64748b;--border: #e2e8f0;--canvas: #f6f7fb;--success: #059669;--surface-primary: #ffffff;--surface-secondary: #f8fafc;--surface-tertiary: #f1f5f9;--header-subtle: #64748b;--text-soft: #334155;--text-danger: #dc2626;--text-disabled: #94a3b8;--status-pill-bg: #eef2ff;--status-pill-border: #c7d2fe;--table-header-bg: #f1f5f9;--selection-bg: #c7d2fe;--selection-text: #1e1b4b;--masthead-button-border: #cbd5e1;--masthead-button-hover: #f1f5f9;--avatar-border: #c7d2fe;--status-dot-ring: rgb(5 150 105 / 18%);--secondary-button-border: #cbd5e1;--button-disabled-bg: #e2e8f0;--button-primary-text: #ffffff;--toggle-border: #cbd5e1;--toggle-bg: rgb(255 255 255 / 70%);--toggle-bg-hover: #f1f5f9;--toggle-track-bg: #cbd5e1;--auth-glow: rgb(99 102 241 / 10%);--overlay-scrim: rgb(15 23 42 / 40%);--warn: #d97706;--danger: var(--text-danger);--ok: var(--success);--text: var(--ink);--muted: var(--ink-muted);--line: var(--border);--accent: var(--brand);--wait-a: #6366f1;--wait-b: #06b6d4;--font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius: 10px;--radius-lg: 16px;--shadow: 0 1px 2px rgb(15 23 42 / 4%), 0 8px 24px rgb(15 23 42 / 6%);--shadow-hover: 0 2px 4px rgb(15 23 42 / 6%), 0 14px 36px rgb(15 23 42 / 12%)}:root[data-theme=dark]{color-scheme:dark;--tint: rgb(15 18 28 / 78%);--tint-soft: rgb(129 140 248 / 14%);--brand: #818cf8;--brand-strong: #a5b4fc;--ink: #e6e9f2;--ink-muted: #94a3b8;--border: #272d3f;--canvas: #0b0e17;--success: #34d399;--surface-primary: #121624;--surface-secondary: #171c2d;--surface-tertiary: #1e2438;--header-subtle: #a5afc6;--text-soft: #cbd5e1;--text-danger: #fb7185;--text-disabled: #5b6578;--status-pill-bg: rgb(129 140 248 / 14%);--status-pill-border: rgb(129 140 248 / 40%);--table-header-bg: #171c2d;--selection-bg: #818cf8;--selection-text: #0b0e17;--masthead-button-border: rgb(255 255 255 / 14%);--masthead-button-hover: rgb(255 255 255 / 8%);--avatar-border: rgb(129 140 248 / 45%);--status-dot-ring: rgb(52 211 153 / 22%);--secondary-button-border: #343b52;--button-disabled-bg: #232a3e;--button-primary-text: #0b0e17;--toggle-border: rgb(255 255 255 / 14%);--toggle-bg: rgb(255 255 255 / 5%);--toggle-bg-hover: rgb(255 255 255 / 10%);--toggle-track-bg: rgb(255 255 255 / 18%);--auth-glow: rgb(129 140 248 / 10%);--overlay-scrim: rgb(3 5 10 / 66%);--warn: #fbbf24;--wait-a: #818cf8;--wait-b: #22d3ee;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 8px 24px rgb(0 0 0 / 28%);--shadow-hover: 0 2px 4px rgb(0 0 0 / 40%), 0 14px 36px rgb(0 0 0 / 40%)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;color:var(--ink);font-family:inherit;background:radial-gradient(1000px 420px at 12% -8%,var(--auth-glow),transparent 60%),var(--canvas);background-attachment:fixed;-webkit-font-smoothing:antialiased}::selection{background:var(--selection-bg);color:var(--selection-text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 55%,transparent);outline-offset:2px}.app-shell{display:flex;min-height:100dvh;flex-direction:column;background:var(--canvas)}.app-masthead{z-index:40;display:flex;min-height:64px;flex-shrink:0;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.25rem;position:sticky;top:0;border-bottom:1px solid var(--border);background:var(--tint);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px)}.app-masthead:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:"";background:linear-gradient(90deg,transparent,var(--brand),transparent);opacity:.55}.masthead-brand{display:flex;min-width:0;align-items:center;gap:.85rem}.masthead-logo{height:40px;width:auto;flex-shrink:0}.app-masthead .masthead-logo{height:36px}.masthead-brand-copy{min-width:0}.masthead-brand-copy strong{display:block;overflow:hidden;color:var(--ink);font-size:.95rem;font-weight:700;letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap}.masthead-brand-copy span{display:block;color:var(--header-subtle);font-size:.75rem;font-weight:400}.masthead-actions{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.app-body{display:flex;min-height:0;flex:1;flex-direction:column}.app-main{flex:1;width:min(1180px,100%);margin:0 auto;padding:1.5rem 1.25rem 3rem}.app-masthead .nav{margin:0 auto}.nav{display:flex;flex-wrap:wrap;gap:.35rem}.nav a{display:inline-flex;min-height:38px;align-items:center;border:1px solid transparent;border-radius:var(--radius);padding:.45rem .9rem;color:var(--ink-muted);font-size:.875rem;font-weight:700;transition:color .15s ease,border-color .15s ease,background .15s ease}.nav a:hover{color:var(--ink);background:var(--surface-tertiary)}.nav a.active{border-color:color-mix(in srgb,var(--brand) 45%,transparent);background:var(--tint-soft);color:var(--ink)}.loading-panel{position:relative;display:flex;width:min(100%,480px);align-items:center;flex-direction:column;gap:.85rem;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem clamp(1.25rem,6vw,3rem);background:var(--surface-primary);box-shadow:var(--shadow);text-align:center}.eyebrow{margin:0;color:var(--brand);font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.loading-line{display:block;width:120px;height:3px;margin:.35rem 0;overflow:hidden;border-radius:999px;background:var(--border)}.loading-line:after{display:block;width:40%;height:100%;content:"";background:var(--brand);animation:loading-slide 1.1s ease-in-out infinite}.loading-panel .masthead-logo{animation:wait-breathe 2.4s ease-in-out infinite}.loading-panel .sync-track{margin:.35rem 0 .45rem}@keyframes loading-slide{0%{transform:translate(-120%)}to{transform:translate(280%)}}.spinner{position:relative;display:inline-grid;place-items:center;flex-shrink:0;width:1em;height:1em;vertical-align:-.15em}.spinner-sm{width:.95rem;height:.95rem}.spinner-md{width:1.35rem;height:1.35rem}.spinner-lg{width:2rem;height:2rem}.spinner-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:conic-gradient(from 210deg,transparent 0%,var(--wait-a) 38%,var(--wait-b) 68%,transparent 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));animation:spinner-spin .72s linear infinite}.sync-track{display:flex;align-items:center;gap:.5rem;width:7.6rem;height:1.5rem}.sync-hub{flex-shrink:0;width:.68rem;height:.68rem;border-radius:50%}.sync-hub-src{background:var(--wait-a);box-shadow:0 0 0 4px color-mix(in srgb,var(--wait-a) 22%,transparent);animation:hub-pulse 1.5s ease-in-out infinite}.sync-hub-dst{background:var(--wait-b);box-shadow:0 0 0 4px color-mix(in srgb,var(--wait-b) 28%,transparent);animation:hub-pulse 1.5s ease-in-out infinite .75s}.sync-path{position:relative;flex:1;height:2px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--border) 85%,transparent)}.sync-packet{position:absolute;top:50%;left:0;width:.55rem;height:.55rem;margin-top:-.275rem;border-radius:3px;background:var(--wait-b);box-shadow:0 0 10px color-mix(in srgb,var(--wait-a) 45%,var(--wait-b));animation:packet-run 1.15s cubic-bezier(.45,0,.55,1) infinite}.wait-block{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 1rem;text-align:center;animation:fade .28s ease both}.wait-block p,.page-wait-label{margin:0;color:var(--ink-muted);font-size:.9rem;font-weight:600}.wait-block-compact{flex-direction:row;justify-content:center;padding:.85rem}.page-wait{display:flex;flex-direction:column;align-items:center;gap:.85rem;padding:1.75rem 1rem 1.25rem;animation:rise .35s ease both}.skeleton-table{display:flex;width:min(100%,640px);flex-direction:column;gap:.7rem;margin-top:.5rem}.skeleton-row{display:grid;grid-template-columns:1.2fr .7fr 1.6fr .8fr;gap:.75rem}.skeleton-row span{display:block;height:.72rem;border-radius:6px;background:linear-gradient(100deg,color-mix(in srgb,var(--border) 55%,transparent),color-mix(in srgb,var(--wait-b) 40%,var(--border)) 42%,color-mix(in srgb,var(--border) 55%,transparent));background-size:220% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-row-head span{height:.55rem;opacity:.65}.skeleton-row:nth-child(2) span{animation-delay:80ms}.skeleton-row:nth-child(3) span{animation-delay:.16s}.skeleton-row:nth-child(4) span{animation-delay:.24s}.btn.is-busy{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;overflow:hidden;pointer-events:none}.btn.is-busy:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:linear-gradient(100deg,transparent 20%,rgb(255 255 255 / 28%) 50%,transparent 80%);transform:translate(-120%);animation:sheen 1.15s ease-in-out infinite;pointer-events:none}.btn-primary.is-busy .spinner-ring{background:conic-gradient(from 210deg,transparent 0%,#fff 40%,var(--wait-b) 72%,transparent 100%)}.panel.is-waiting{position:relative}.panel.is-waiting:after{position:absolute;top:0;right:0;left:0;height:3px;content:"";background:linear-gradient(90deg,transparent 0%,var(--wait-a) 40%,var(--wait-b) 58%,transparent 100%);background-size:220% 100%;animation:panel-scan 1.1s linear infinite;pointer-events:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.job-log.is-refreshing{position:relative}.job-log.is-refreshing:before{position:absolute;top:0;right:0;left:0;z-index:1;height:2px;content:"";background:linear-gradient(90deg,transparent,var(--wait-a),transparent);background-size:200% 100%;animation:panel-scan 1s linear infinite}.badge.warn.badge-live{animation:badge-pulse 1.6s ease-in-out infinite}.job-modal-status{display:flex;flex-direction:column;align-items:flex-end;gap:.45rem;min-width:9rem}.job-progress{display:flex;align-items:center;gap:.45rem;min-width:6.5rem;max-width:11rem}.job-progress-wide{min-width:9rem;max-width:14rem;width:100%}.job-progress-track{position:relative;flex:1 1 auto;height:.45rem;border-radius:999px;background:color-mix(in srgb,var(--border) 70%,transparent);overflow:hidden}.job-progress-fill{height:100%;width:0;border-radius:inherit;background:color-mix(in srgb,var(--warn) 75%,var(--surface-primary));transition:width .35s ease}.job-progress-fill.ok{background:color-mix(in srgb,var(--ok) 80%,transparent)}.job-progress-fill.fail{background:color-mix(in srgb,var(--danger) 80%,transparent)}.job-progress-fill.warn{background:color-mix(in srgb,var(--warn) 75%,var(--surface-primary))}.job-progress-fill.is-live{animation:job-progress-pulse 1.6s ease-in-out infinite}.job-progress.is-indeterminate .job-progress-fill{width:35%;animation:job-progress-indeterminate 1.2s ease-in-out infinite}.job-progress-label{flex:0 0 auto;font-size:.75rem;color:var(--muted);min-width:2.4rem;text-align:right}@keyframes job-progress-pulse{0%,to{opacity:1}50%{opacity:.72}}@keyframes job-progress-indeterminate{0%{transform:translate(-120%)}to{transform:translate(280%)}}.preview-panel.is-loading{display:flex;align-items:center;gap:.65rem;animation:rise .25s ease both}@keyframes spinner-spin{to{transform:rotate(360deg)}}@keyframes packet-run{0%{left:0;opacity:0;transform:scale(.6)}14%{opacity:1;transform:scale(1)}86%{opacity:1}to{left:calc(100% - .55rem);opacity:0;transform:scale(.6)}}@keyframes hub-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes wait-breathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.04);opacity:.88}}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes panel-scan{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes sheen{0%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes badge-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--warn) 35%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--warn) 0%,transparent)}}@keyframes flash-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.spinner-ring,.sync-packet,.sync-hub,.loading-line:after,.loading-panel .masthead-logo,.skeleton-row span,.panel.is-waiting:after,.job-log.is-refreshing:before,.targets-tag-list.is-refreshing:before,.badge.warn.badge-live,.job-progress-fill.is-live,.job-progress.is-indeterminate .job-progress-fill,.flash,.page-wait,.wait-block,.preview-panel.is-loading,.btn.is-busy:after,.table tbody tr,.target-item,.modal,.modal-backdrop{animation:none!important}.sync-packet{left:50%;margin-left:-.275rem;opacity:1;transform:none}}.theme-toggle{display:inline-flex;width:46px;min-width:46px;min-height:38px;align-items:center;justify-content:center;border:1px solid var(--toggle-border);border-radius:999px;padding:.3rem;background:var(--toggle-bg);color:var(--ink);cursor:pointer;transition:background .15s ease,border-color .15s ease}.theme-toggle:hover{border-color:var(--ink);background:var(--toggle-bg-hover)}.theme-toggle-icon-wrap{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:999px;background:var(--toggle-track-bg);box-shadow:inset 0 0 0 1px #ffffff0f}.theme-toggle-icon{width:16px;height:16px}.panel{background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.35rem;transition:transform .2s ease,box-shadow .2s ease;animation:rise .4s ease both}.panel:hover{box-shadow:var(--shadow-hover)}.panel+.panel{margin-top:1rem}.panel-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.panel-head h2{margin:0;color:var(--ink);font-size:1.15rem;font-weight:700;letter-spacing:-.02em}.panel-head p{margin:.3rem 0 0;color:var(--ink-muted);font-size:.9rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--secondary-button-border);border-radius:var(--radius);padding:.55rem 1rem;background:var(--surface-primary);color:var(--ink);font-size:.875rem;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease}.btn:hover{border-color:var(--ink);background:var(--tint-soft);transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn:disabled{cursor:not-allowed;background:var(--button-disabled-bg);border-color:var(--border);color:var(--text-disabled);transform:none}.btn-primary{border-color:transparent;background:var(--brand);color:var(--button-primary-text);box-shadow:0 4px 12px color-mix(in srgb,var(--brand) 35%,transparent)}.btn-primary:hover{border-color:transparent;background:var(--brand-strong);box-shadow:0 6px 18px color-mix(in srgb,var(--brand) 45%,transparent)}.btn-danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.btn-ghost{background:transparent}.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem}.grid-form .full{grid-column:1 / -1}label.field,.field{display:flex;flex-direction:column;gap:.4rem;color:var(--ink-muted);font-size:.82rem;font-weight:700}label.field input,label.field select,label.field textarea,.field input:not([type=checkbox]),.field select,.field textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius);padding:.65rem .75rem;background:var(--surface-secondary);color:var(--ink);outline:none}.table th.select-cell,.table td.select-cell{width:1%;padding-right:0;text-align:center;vertical-align:top}.table th.num-cell,.table td.num-cell{width:1%;text-align:right;color:var(--ink-muted);font-variant-numeric:tabular-nums;padding-right:.85rem;white-space:nowrap}.num-inline{color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-right:.15rem}.table .select-cell input[type=checkbox]{width:1rem;height:1rem;margin:0;cursor:pointer;accent-color:var(--brand)}.table tr.is-selected>td{background:color-mix(in srgb,var(--brand) 7%,transparent)}.clear-secret{display:flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:400;color:var(--ink-muted);cursor:pointer}.clear-secret input[type=checkbox]{width:auto;margin:0;cursor:pointer}.field input:disabled,.field textarea:disabled{opacity:.5;cursor:not-allowed}label.field textarea,.field textarea{min-height:110px;font-family:var(--font-mono);font-size:.85rem;font-weight:400;resize:vertical}label.field input:focus,label.field select:focus,label.field textarea:focus,.field input:not([type=checkbox]):focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.field-hint{font-size:.75rem;font-weight:400;color:var(--ink-muted)}.check-list{display:flex;flex-direction:column;gap:.35rem;max-height:11.5rem;overflow:auto;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-secondary)}.check-item{display:flex;align-items:center;gap:.55rem;margin:0;font-size:.9rem;font-weight:400;color:var(--ink);cursor:pointer}.check-item input[type=checkbox]{width:auto;margin:0;flex-shrink:0;accent-color:var(--brand)}.image-map-list{display:flex;flex-direction:column;gap:.5rem;margin:.45rem 0 .55rem}.image-map-head,.image-map-row{display:grid;grid-template-columns:1.15fr auto 1fr .9fr auto;gap:.45rem;align-items:center}.image-map-head{font-size:.72rem;font-weight:700;color:var(--ink-muted);letter-spacing:.02em}.image-map-row input{min-width:0}.image-map-arrow{color:var(--ink-muted);font-weight:600}.rule-route{margin-top:.35rem}.preview-image{margin-top:.65rem}.preview-image-title{margin:0 0 .35rem;font-size:.82rem;color:var(--ink)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table tbody tr{transition:background-color .15s ease;animation:rise .32s cubic-bezier(.22,1,.36,1) both}.table tbody tr:nth-child(1){animation-delay:0ms}.table tbody tr:nth-child(2){animation-delay:35ms}.table tbody tr:nth-child(3){animation-delay:70ms}.table tbody tr:nth-child(4){animation-delay:105ms}.table tbody tr:nth-child(5){animation-delay:.14s}.table tbody tr:nth-child(6){animation-delay:175ms}.table tbody tr:nth-child(7){animation-delay:.21s}.table tbody tr:nth-child(8){animation-delay:245ms}.table tbody tr:nth-child(n+9){animation-delay:.27s}.table tbody tr:hover{background-color:color-mix(in srgb,var(--tint) 8%,var(--surface-primary))}.table th,.table td{text-align:left;padding:.75rem .65rem;border-bottom:1px solid var(--border);vertical-align:top}.table th{background:var(--table-header-bg);color:var(--ink-muted);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.mono{font-family:var(--font-mono);font-size:.85rem;font-weight:400;overflow-wrap:anywhere;word-break:break-word}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .55rem;border:1px solid var(--status-pill-border);border-radius:999px;background:var(--status-pill-bg);color:var(--ink-muted);font-size:.75rem;font-weight:700}.badge.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,var(--border));background:color-mix(in srgb,var(--ok) 10%,transparent)}.badge.fail{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger) 10%,transparent)}.badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,var(--border));background:color-mix(in srgb,var(--warn) 10%,transparent);animation:badge-pulse 2s infinite ease-in-out}.search-bar{position:relative;display:flex;align-items:center;flex:1 1 12rem;min-width:0;width:min(100%,280px);max-width:360px;transition:width .22s cubic-bezier(.22,1,.36,1)}.search-bar:focus-within,.search-bar.has-value{width:min(100%,360px)}.search-icon{position:absolute;left:.75rem;width:1rem;height:1rem;color:var(--ink-muted);pointer-events:none;transition:color .15s ease,transform .15s ease}.search-bar:focus-within .search-icon{color:var(--brand);transform:scale(1.06)}.search-input{width:100%;min-height:38px;padding:.45rem 2.1rem .45rem 2.25rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-primary);color:var(--ink);font-size:.85rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-input:focus{outline:none;border-color:var(--brand);background:var(--surface-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)}.search-bar.is-disabled{opacity:.55;pointer-events:none}.search-clear{position:absolute;right:.35rem;display:grid;place-items:center;width:1.45rem;height:1.45rem;border:0;border-radius:999px;padding:0;background:transparent;color:var(--ink-muted);font-size:1.05rem;line-height:1;cursor:pointer}.search-clear:hover{background:color-mix(in srgb,var(--border) 45%,transparent);color:var(--ink)}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem}.flash{margin-bottom:.9rem;padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-secondary);animation:flash-in .35s cubic-bezier(.22,1,.36,1) both}.flash.error{border-color:color-mix(in srgb,var(--danger) 40%,var(--border));color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface-primary))}.flash.ok{border-color:color-mix(in srgb,var(--ok) 40%,var(--border));color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,var(--surface-primary))}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag-list code{font-family:var(--font-mono);font-size:.8rem;padding:.3rem .55rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--tint-soft);color:var(--ink)}.targets-layout{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:1rem;align-items:start}.targets-list{display:flex;flex-direction:column;gap:.55rem;max-height:min(70vh,720px);overflow:auto}.target-item{display:flex;width:100%;flex-direction:column;gap:.35rem;border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .85rem;background:var(--surface-secondary);color:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease;animation:rise .32s cubic-bezier(.22,1,.36,1) both}.targets-list>.target-item:nth-child(1){animation-delay:0ms}.targets-list>.target-item:nth-child(2){animation-delay:40ms}.targets-list>.target-item:nth-child(3){animation-delay:80ms}.targets-list>.target-item:nth-child(4){animation-delay:.12s}.targets-list>.target-item:nth-child(5){animation-delay:.16s}.targets-list>.target-item:nth-child(n+6){animation-delay:.2s}.target-item:hover{border-color:var(--ink)}.target-item.is-active{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,var(--surface-primary));box-shadow:inset 3px 0 0 var(--brand)}.target-item-title-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.target-item-title{font-weight:700;color:var(--ink)}.target-item-ref{color:var(--ink-muted);font-size:.78rem;word-break:break-all}.target-item-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:var(--ink-muted);font-size:.78rem}.targets-detail{min-height:280px;border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;background:var(--surface-primary)}.target-dest-list{display:flex;flex-direction:column;gap:.85rem}.target-dest{border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;background:var(--surface-secondary)}.target-dest-title{margin:0;font-size:1rem;font-weight:700;color:var(--ink)}.targets-tags-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.targets-tag-list{max-height:min(52vh,480px);overflow:auto;padding:.15rem}.target-dest .targets-tag-list{max-height:min(36vh,320px)}.targets-tag-list.is-refreshing{position:relative}.targets-tag-list.is-refreshing:before{position:absolute;top:0;right:0;left:0;z-index:1;height:2px;content:"";background:linear-gradient(90deg,transparent,var(--wait-a),transparent);background-size:200% 100%;animation:panel-scan 1s linear infinite}@media(max-width:900px){.targets-layout{grid-template-columns:1fr}.targets-list{max-height:240px}}.empty{color:var(--ink-muted);padding:1.75rem 0;text-align:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1.25rem;background:var(--overlay-scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .2s ease both}.modal{width:min(720px,100%);max-height:min(90vh,900px);overflow:auto;border:1px solid var(--border);border-radius:var(--radius);padding:1.35rem;background:var(--surface-primary);box-shadow:var(--shadow);animation:modal-in .28s cubic-bezier(.22,1,.36,1) both}.modal-wide{width:min(920px,100%)}.modal h3{margin:0 0 1rem;color:var(--ink);font-size:1.2rem;font-weight:700}.modal-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.1rem}.job-log{max-height:min(48vh,420px);overflow:auto;border:1px solid var(--border);border-radius:var(--radius);padding:.65rem .75rem;background:var(--surface-secondary)}.tag-n{color:var(--ink-muted);font-variant-numeric:tabular-nums}.job-log-line{display:grid;grid-template-columns:2.25rem minmax(12rem,16rem) 3.5rem 1fr;gap:.55rem;padding:.28rem 0;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);font-size:.8rem;line-height:1.4}.job-log-n{color:var(--ink-muted);text-align:right;font-variant-numeric:tabular-nums}.job-log-line:last-child{border-bottom:0}.job-log-time{color:var(--ink-muted)}.job-log-level{font-weight:700;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em}.job-log-info .job-log-level{color:var(--ink)}.job-log-warn .job-log-level{color:var(--warn)}.job-log-error .job-log-level{color:var(--danger)}.job-log-msg{color:var(--ink);word-break:break-word}@media(max-width:700px){.job-log-line{grid-template-columns:1fr;gap:.15rem}}.preview-panel{position:relative;z-index:1;margin-top:1rem;border:1px solid var(--status-pill-border);border-radius:var(--radius);padding:.85rem 1rem;background:var(--tint-soft)}.preview-panel-title{margin:0 0 .65rem;color:var(--ink);font-size:.85rem;font-weight:700}.preview-panel-empty{margin:0;color:var(--ink-muted);font-size:.85rem}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media(max-width:960px){.app-masthead{flex-wrap:wrap;row-gap:.5rem}.app-masthead .nav{order:3;width:100%}}@media(max-width:800px){.grid-form,.image-map-head,.image-map-row{grid-template-columns:1fr}.image-map-head,.image-map-arrow{display:none}.table{display:block;overflow-x:auto}}@media(max-width:640px){.app-masthead{padding-right:.8rem;padding-left:.8rem}.app-masthead .masthead-brand-copy span{display:none}}
