:root{--font-sans: "Inter", "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", Meiryo, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-bg: #f4f5f7;--color-surface: #ffffff;--color-surface-muted: var(--color-gray-50);--color-text: var(--color-gray-800);--color-text-muted: var(--color-gray-500);--color-text-subtle: var(--color-gray-400);--color-border: var(--color-gray-200);--color-border-strong: var(--color-gray-300);--color-hairline: var(--color-gray-100);--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-active: #1e40af;--color-accent-soft: #eff6ff;--color-accent-border: #bfdbfe;--color-signal-collecting: #3b82f6;--color-signal-collecting-fg: #1d4ed8;--color-signal-trend-positive: #eab308;--color-signal-trend-positive-fg: #a16207;--color-signal-trend-negative: #f97316;--color-signal-trend-negative-fg: #c2410c;--color-signal-win: #22c55e;--color-signal-win-fg: #15803d;--color-signal-loss: #ef4444;--color-signal-loss-fg: #b91c1c;--color-signal-inconclusive: #9ca3af;--color-signal-inconclusive-fg: #4b5563;--color-success: #16a34a;--color-success-fg: #15803d;--color-danger: #dc2626;--color-danger-fg: #b91c1c;--color-danger-soft: #fef2f2;--color-danger-border: #fecaca;--color-warning: #d97706;--color-warning-fg: #b45309;--dt-popup-bg: #eff6ff;--dt-popup-fg: #2563eb;--dt-inline-bg: #eef2ff;--dt-inline-fg: #4338ca;--dt-rewrite-bg: #fff7ed;--dt-rewrite-fg: #c2410c;--goal-boost-bg: #eff6ff;--goal-boost-fg: #1d4ed8;--goal-retain-bg: #fffbeb;--goal-retain-fg: #b45309;--goal-segment-bg: #f5f3ff;--goal-segment-fg: #6d28d9;--goal-other-bg: var(--color-gray-100);--goal-other-fg: var(--color-gray-600);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 1px rgba(16, 24, 40, .04);--shadow-md: 0 4px 12px rgba(16, 24, 40, .08), 0 2px 4px rgba(16, 24, 40, .05);--shadow-lg: 0 12px 28px rgba(16, 24, 40, .12), 0 4px 10px rgba(16, 24, 40, .06);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-16: 64px;--motion-fast: .15s;--motion: .2s;--motion-slow: .25s;--ease-out: cubic-bezier(.16, 1, .3, 1);--topbar-height: 43px}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root,.app-shell{min-height:100vh}.topbar{background:var(--color-surface-muted);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:20;-webkit-backdrop-filter:saturate(1.2);backdrop-filter:saturate(1.2)}.topbar-inner{max-width:1080px;margin:0 auto;padding:var(--space-2) var(--space-6);display:flex;align-items:center;justify-content:space-between}.topbar-menu{position:relative}.topbar-account{display:inline-flex;align-items:center;gap:var(--space-2);border:1px solid transparent;background:transparent;border-radius:var(--radius-pill);padding:var(--space-1) var(--space-2);cursor:pointer;font-size:13px;color:var(--color-text-muted);transition:background var(--motion-fast) var(--ease-out)}.topbar-account:hover{background:var(--color-gray-100)}.topbar-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:12px;font-weight:700}.topbar-email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.topbar-dropdown{position:absolute;right:0;top:calc(100% + 6px);z-index:31;min-width:200px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-1);animation:page-fade-in var(--motion-fast) var(--ease-out)}.topbar-dropdown-email{padding:var(--space-2) var(--space-3);font-size:12px;color:var(--color-text-muted);border-bottom:1px solid var(--color-hairline);word-break:break-all}.topbar-dropdown-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:var(--space-2) var(--space-3);font-size:13px;color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm)}.topbar-dropdown-item:hover{background:var(--color-surface-muted)}.site-origin-sub{font-size:12px;color:var(--color-text-muted);word-break:break-all;margin-bottom:var(--space-1)}.topbar-logo{display:inline-flex;align-items:center;border-radius:var(--radius-sm);transition:opacity var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.topbar-logo img{height:26px;display:block}.topbar-logo:hover{opacity:.75}.topbar-logo:active{transform:scale(.98)}.site-select-brand{margin-bottom:var(--space-6)}.site-select-brand img{height:40px;display:block}@keyframes page-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.dashboard{max-width:1080px;margin:0 auto;padding:var(--space-6);animation:page-fade-in var(--motion-fast) var(--ease-out)}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.dashboard-header h1{font-size:20px;letter-spacing:-.01em;margin:0}.dashboard-actions{display:flex;gap:var(--space-2)}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);gap:var(--space-4)}.filter-tabs{display:flex;gap:var(--space-1)}.filter-tab{border:none;background:transparent;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;color:var(--color-text-muted);transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.filter-tab:hover{background:var(--color-gray-100);color:var(--color-text)}.filter-tab.active{background:var(--color-gray-800);color:#fff}.filter-tab:focus-visible,.experiment-row:focus-visible,button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.search-input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:14px;min-width:220px;transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out)}.search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.experiment-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--motion-fast) var(--ease-out)}.experiment-table:hover{box-shadow:var(--shadow-md)}.experiment-table th{text-align:left;font-size:12px;font-weight:600;color:var(--color-text-muted);padding:var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.experiment-table td{padding:var(--space-3);border-bottom:1px solid var(--color-hairline);height:48px;vertical-align:middle}.experiment-row{transition:background var(--motion-fast) var(--ease-out)}.experiment-row:hover{background:var(--color-surface-muted);cursor:pointer}.cell-name{min-width:220px}.exp-name-row{display:flex;align-items:center;gap:var(--space-2)}.exp-seq{font-size:11px;font-weight:600;color:var(--color-text-subtle);font-variant-numeric:tabular-nums;flex-shrink:0}.cell-impressions,.cell-started{font-size:11px;color:var(--color-text-subtle);font-variant-numeric:tabular-nums;margin-top:2px}.col-hint-mark{font-size:10px;color:var(--color-text-subtle);cursor:help}.cell-actions{width:1%;white-space:nowrap;text-align:right}.row-actions{display:inline-flex;align-items:center;gap:var(--space-1);opacity:0;transition:opacity var(--motion-fast) var(--ease-out)}.experiment-row:hover .row-actions,.experiment-row:focus-within .row-actions{opacity:1}.row-action{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-gray-700);border-radius:var(--radius-sm);padding:3px var(--space-2);font-size:12px;cursor:pointer;transition:background var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.row-action:hover{background:var(--color-surface-muted)}.row-action:active{transform:scale(.96)}.row-confirm{font-size:12px;color:var(--color-warning-fg)}.exp-name{font-weight:600}.exp-headline{font-size:12px;color:var(--color-text-muted);max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;padding-left:32px}.goal-badge{font-size:12px;background:var(--goal-other-bg);color:var(--goal-other-fg);border-radius:var(--radius-pill);padding:2px var(--space-2);white-space:nowrap}.goal-badge[data-goal=boost]{background:var(--goal-boost-bg);color:var(--goal-boost-fg)}.goal-badge[data-goal=retain]{background:var(--goal-retain-bg);color:var(--goal-retain-fg)}.goal-badge[data-goal=segment_switch]{background:var(--goal-segment-bg);color:var(--goal-segment-fg)}.status-badge{font-size:13px;white-space:nowrap}.signal-badge{font-size:14px;font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-pill)}.signal-badge[data-signal=collecting]{background:color-mix(in srgb,var(--color-signal-collecting) 12%,transparent);animation:signal-pulse 2s ease-in-out infinite}.signal-badge[data-signal=trend_positive]{background:color-mix(in srgb,var(--color-signal-trend-positive) 15%,transparent)}.signal-badge[data-signal=trend_negative]{background:color-mix(in srgb,var(--color-signal-trend-negative) 14%,transparent)}.signal-badge[data-signal=win]{background:color-mix(in srgb,var(--color-signal-win) 14%,transparent)}.signal-badge[data-signal=loss]{background:color-mix(in srgb,var(--color-signal-loss) 12%,transparent)}.signal-badge[data-signal=inconclusive]{background:color-mix(in srgb,var(--color-signal-inconclusive) 16%,transparent)}@keyframes signal-pulse{0%,to{opacity:1}50%{opacity:.6}}.signal-cell-btn{border:none;background:transparent;padding:0;cursor:pointer;border-radius:var(--radius-pill);transition:transform var(--motion-fast) var(--ease-out)}.signal-cell-btn:hover{transform:scale(1.05)}.signal-none{color:var(--color-text-subtle);font-weight:400}.signal-final-tag{font-size:10px;font-weight:500;color:var(--color-gray-700);background:var(--color-gray-200);border-radius:var(--radius-sm);padding:1px 5px}.lift-label{font-variant-numeric:tabular-nums;font-weight:600}.lift-positive{color:var(--color-success)}.lift-negative{color:var(--color-danger)}.lift-none{color:var(--color-text-subtle);font-weight:400}.cell-days{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.generated-at{text-align:right;font-size:12px;color:var(--color-text-subtle);margin-top:var(--space-2)}.summary-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.summary-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;transition:box-shadow var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.summary-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.summary-card:active{transform:translateY(0)}.summary-count{font-size:24px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--color-text)}.summary-label{display:inline-flex;align-items:center;gap:var(--space-1);font-size:12px;color:var(--color-text-muted)}.summary-card[data-tone=running]{border-top:3px solid var(--color-signal-win)}.summary-card[data-tone=draft]{border-top:3px solid var(--color-gray-400)}.summary-card[data-tone=win]{border-top:3px solid var(--color-signal-win)}.summary-card[data-tone=attention]{border-top:3px solid var(--color-signal-trend-negative)}.summary-card.active{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-soft)}.col-sort{display:inline-flex;align-items:center;gap:var(--space-1);border:none;background:transparent;padding:0;font:inherit;font-size:12px;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:color var(--motion-fast) var(--ease-out)}.col-sort:hover{color:var(--color-text)}.col-sort.active{color:var(--color-accent)}.col-sort-arrow{font-size:9px;opacity:.5}.col-sort.active .col-sort-arrow{opacity:1}.display-type-chip{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:56px;height:22px;padding:0 var(--space-2);flex-shrink:0;border-radius:var(--radius-pill);background:var(--color-gray-100);color:var(--color-gray-600);transition:background var(--motion-fast) var(--ease-out)}.display-type-chip svg{width:16px;height:16px;flex-shrink:0;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none}.display-type-chip-label{font-size:11px;font-weight:600;line-height:1}.btn-primary,.btn-secondary,.btn-link{font-size:14px;font-family:inherit;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;border:1px solid transparent;transition:background var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.btn-primary{background:var(--color-gray-800);color:#fff}.btn-primary:hover{background:var(--color-gray-900);box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-gray-700)}.btn-secondary:hover{background:var(--color-surface-muted);border-color:var(--color-gray-400)}.btn-link{background:transparent;color:var(--color-accent);padding:var(--space-1)}.btn-link:hover{color:var(--color-accent-hover)}.btn-primary:active,.btn-secondary:active,.btn-link:active{transform:scale(.98)}.btn-large{font-size:16px;padding:var(--space-3) var(--space-6)}button:disabled{opacity:.6;cursor:not-allowed;transform:none}@keyframes spin{to{transform:rotate(360deg)}}button[aria-busy=true]{pointer-events:none;cursor:progress}button[aria-busy=true]:before{content:"";display:inline-block;width:13px;height:13px;margin-right:6px;vertical-align:-2px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;opacity:.9;animation:spin .6s linear infinite}.skeleton{height:14px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-gray-100) 25%,var(--color-gray-200) 37%,var(--color-gray-100) 63%);background-size:400% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.error-banner{display:flex;align-items:center;gap:var(--space-3);background:var(--color-danger-soft);color:var(--color-danger-fg);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.empty-state{text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-16) var(--space-6);box-shadow:var(--shadow-sm)}.empty-icon{font-size:48px;margin-bottom:var(--space-2)}.empty-state h2{font-size:18px;margin:var(--space-2) 0}.empty-state p{color:var(--color-text-muted)}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4)}.site-card{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);cursor:pointer;font-size:14px;box-shadow:var(--shadow-sm);transition:box-shadow var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out)}.site-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong);transform:translateY(-2px)}.site-card:active{transform:translateY(0)}.site-name{font-weight:600;font-size:15px;margin-bottom:var(--space-1);word-break:break-all}.tag-ok{color:var(--color-success);font-size:12px}.tag-ng{color:var(--color-warning);font-size:12px}.me-email{color:var(--color-text-muted);font-size:13px}.editor{max-width:720px}.step-indicator{display:flex;gap:var(--space-1);list-style:none;padding:0;margin:0 0 var(--space-5)}.step-indicator li{flex:1;text-align:center;font-size:12px;color:var(--color-text-subtle);padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-bottom:3px solid var(--color-border);transition:color var(--motion) var(--ease-out),border-color var(--motion) var(--ease-out),background var(--motion) var(--ease-out)}.step-indicator li.active{color:var(--color-gray-800);font-weight:600;background:var(--color-accent-soft);border-bottom-color:var(--color-accent)}.step-indicator li.done{color:var(--color-success);border-bottom-color:var(--color-signal-win)}.step-num{display:inline-block;min-width:18px}.editor-body{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm);min-height:320px}.editor-step{border:none;padding:0;margin:0}.field{margin-bottom:var(--space-5)}.field-label{display:block;font-weight:600;margin-bottom:var(--space-2)}.field-required{font-size:10px;color:var(--color-danger);background:var(--color-danger-soft);border-radius:var(--radius-sm);padding:1px 5px;margin-left:var(--space-2);vertical-align:middle}.field input[type=text],.field input[type=search],.field input[type=url],.field select,.field textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.field textarea{font-family:var(--font-mono)}.field-error input,.field-error textarea{border-color:var(--color-danger)}.field-error-text{display:block;color:var(--color-danger);font-size:12px;margin-top:var(--space-1)}.field-hint{display:block;color:var(--color-text-subtle);font-size:12px;margin-top:var(--space-1)}.position-picker{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(3,40px);gap:var(--space-1);padding:var(--space-2);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);width:fit-content}.position-cell{display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;transition:border-color var(--motion-fast) var(--ease-out),background var(--motion-fast) var(--ease-out)}.position-cell:hover{border-color:var(--color-accent-border)}.position-cell.active{border-color:var(--color-accent);background:var(--color-accent-soft)}.position-dot{width:10px;height:10px;border-radius:3px;background:var(--color-gray-400)}.position-cell.active .position-dot{background:var(--color-accent)}.radio-row{display:flex;flex-direction:column;gap:var(--space-2)}.radio-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.url-rule-row{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}.url-rule-row select{width:140px;flex-shrink:0}.url-rule-row input{flex:1;min-width:0}.url-rule-remove{flex-shrink:0;color:var(--color-text-muted);padding:0 4px}.url-rule-add{align-self:flex-start;margin-top:2px}.inline-place{display:flex;flex-direction:column;gap:var(--space-2)}.inline-place-tabs{display:inline-flex;gap:2px;padding:2px;background:var(--color-gray-100, #f3f4f6);border-radius:var(--radius-md, 10px);align-self:flex-start}.inline-place-tab{border:none;background:none;padding:6px 14px;font-size:13px;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted)}.inline-place-tab.is-active{background:var(--color-surface, #fff);color:var(--color-gray-900);font-weight:600;box-shadow:0 1px 2px #00000014}.inline-place-body{display:flex;flex-direction:column;gap:var(--space-1)}.freq{display:flex;flex-direction:column;gap:var(--space-2)}.freq-presets{display:flex;gap:var(--space-2);flex-wrap:wrap}.freq-preset{flex:1;min-width:120px;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md, 10px);background:var(--color-surface, #fff);cursor:pointer;text-align:left;transition:border-color var(--motion-fast) var(--ease-out),background var(--motion-fast) var(--ease-out)}.freq-preset.is-active{border-color:var(--color-accent);background:var(--color-accent-soft)}.freq-preset-label{font-weight:700;font-size:13px;color:var(--color-gray-900)}.freq-preset-hint{font-size:11px;color:var(--color-text-muted)}.freq-readout{margin:2px 0 0;font-size:13px;color:var(--color-text-muted);background:var(--color-gray-100, #f3f4f6);border-radius:var(--radius-sm);padding:8px 10px}.freq-detail>summary{cursor:pointer;font-size:12px;color:var(--color-accent)}.freq-detail-body{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) 0 0}.confirm-url-list{margin:0;padding-left:1.1em}.slider-row{display:flex;align-items:center;gap:var(--space-3)}.slider-row input[type=range]{flex:1;accent-color:var(--color-accent)}.slider-value{font-weight:600;min-width:48px;font-variant-numeric:tabular-nums}.confirm-list{display:grid;grid-template-columns:140px 1fr;gap:var(--space-2) var(--space-4);margin:var(--space-4) 0}.confirm-list dt{color:var(--color-text-muted)}.confirm-list dd{margin:0;font-weight:500;word-break:break-all}.editor-footer{display:flex;justify-content:space-between;margin-top:var(--space-4)}.editor-footer-right{margin-left:auto}.detail-meta-row{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.report-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4);transition:box-shadow var(--motion-fast) var(--ease-out)}.report-card:hover{box-shadow:var(--shadow-md)}.card-title{font-size:15px;margin:0 0 var(--space-3)}.report-signal-row{display:flex;align-items:center;gap:var(--space-4);font-size:18px}.report-headline{font-size:15px;margin:var(--space-3) 0 var(--space-1)}.report-remaining{color:var(--color-text-muted);font-size:13px}.samples-table{width:100%;border-collapse:collapse;margin-top:var(--space-3)}.samples-table th,.samples-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-hairline);font-variant-numeric:tabular-nums}.samples-table th{font-size:12px;color:var(--color-text-muted)}.review-list{margin:var(--space-2) 0 0;padding-left:var(--space-5)}.detail-summary .card-title{margin-top:var(--space-3)}.detail-summary .card-title:first-child{margin-top:0}.detail-match-note{font-size:12px;color:var(--color-text-muted);margin:0 0 var(--space-2)}.detail-rule-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.detail-rule-list li{font-size:14px}.detail-url-link{color:var(--color-accent);text-decoration:none;word-break:break-all}.detail-url-link:hover{text-decoration:underline}.detail-url-code{font-family:var(--font-mono);font-size:13px;background:var(--color-gray-100);border-radius:var(--radius-sm);padding:1px var(--space-1);word-break:break-all}.detail-rule-type{color:var(--color-text-muted);font-size:13px}.detail-cv-value{margin:0;font-size:14px}.detail-confirm{justify-content:space-between;gap:var(--space-4)}.detail-confirm-actions{display:flex;gap:var(--space-2);flex-shrink:0}.snippet-box{background:var(--color-gray-800);color:var(--color-gray-200);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:12.5px;font-family:var(--font-mono);overflow-x:auto;white-space:pre-wrap;word-break:break-all;margin:var(--space-2) 0 var(--space-3)}.snippet-actions{display:flex;gap:var(--space-2)}.verify-ok{color:var(--color-success);margin-top:var(--space-3)}.verify-ng{color:var(--color-warning-fg);margin-top:var(--space-3)}.verify-pending{color:var(--color-text-muted);margin-top:var(--space-3)}.key-row{display:flex;align-items:center;gap:var(--space-3)}.site-key{background:var(--color-gray-100);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:13px;font-family:var(--font-mono)}.site-create-form{border:1px solid var(--color-border-strong);margin-bottom:var(--space-5)}.preview-frame{width:100%;height:280px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.preview-empty{display:flex;align-items:center;justify-content:center;color:var(--color-text-subtle);font-size:13px;background:var(--color-surface-muted)}.preview-page{max-width:1200px}.preview-urlbar{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4)}.preview-url-input{flex:1;min-width:0}.preview-open-link{white-space:nowrap}.preview-cb{position:relative;flex:1;min-width:0}.preview-cb .preview-url-input{width:100%;flex:none}.preview-cb-list{position:absolute;top:100%;left:0;right:0;z-index:50;margin:4px 0 0;padding:4px;list-style:none;background:var(--color-surface, #fff);border:1px solid var(--color-border-strong);border-radius:var(--radius-md, 10px);box-shadow:0 12px 32px #00000024;max-height:340px;overflow-y:auto}.preview-cb-item{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer}.preview-cb-item.is-highlight{background:var(--color-accent-soft)}.preview-cb-url{display:flex;align-items:center;gap:8px}.preview-cb-url-text{font-weight:600;font-size:13px;color:var(--color-gray-900);word-break:break-all}.preview-cb-prefix{flex:none;font-size:11px;color:var(--color-text-muted);background:var(--color-gray-100, #f3f4f6);border-radius:999px;padding:1px 8px;white-space:nowrap}.preview-cb-exps{display:flex;flex-wrap:wrap;gap:4px 12px}.preview-cb-exp{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted)}.preview-cb-exp-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-cb-empty{padding:8px 10px;font-size:12px;color:var(--color-text-muted)}.preview-body{display:grid;grid-template-columns:300px 1fr;gap:var(--space-4);align-items:start}.preview-left{display:flex;flex-direction:column;gap:var(--space-3)}.preview-cat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.preview-cat-title{font-size:12px;font-weight:700;color:var(--color-text-muted);padding:var(--space-2) var(--space-3);background:var(--color-surface-muted);border-bottom:1px solid var(--color-border)}.preview-cat-body{display:flex;flex-direction:column}.preview-cat-empty{padding:var(--space-3);font-size:12px;color:var(--color-text-subtle)}.preview-exp{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-hairline);transition:background var(--motion-fast) var(--ease-out)}.preview-exp:last-child{border-bottom:none}.preview-exp.is-active{background:var(--color-accent-soft)}.preview-exp-rank{font-size:11px;font-weight:700;color:var(--color-text-subtle);width:16px;text-align:center;font-variant-numeric:tabular-nums}.preview-exp-main{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:none;background:transparent;cursor:pointer;text-align:left;min-width:0}.preview-exp-badge{font-size:10px;font-weight:700;color:var(--color-text-muted)}.preview-exp.is-active .preview-exp-badge{color:var(--color-success)}.preview-exp-name{font-size:13px;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.preview-exp-status{font-size:10px;color:var(--color-text-subtle)}.preview-exp-actions{display:flex;flex-direction:column}.preview-right{display:flex;flex-direction:column;gap:var(--space-3)}.preview-controls{display:flex;gap:var(--space-3);justify-content:flex-end}.preview-toggle{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);overflow:hidden}.preview-toggle-btn{border:none;background:var(--color-surface);padding:var(--space-1) var(--space-3);font-size:13px;color:var(--color-text-muted);cursor:pointer;transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.preview-toggle-btn.active{background:var(--color-gray-800);color:#fff}.preview-stage-wrap{display:flex;justify-content:center;padding:var(--space-5);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:640px}.preview-stage{position:relative;height:640px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;transition:width var(--motion-slow) var(--ease-out)}.preview-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none}.preview-bg-fallback{display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-6);color:var(--color-text-subtle);font-size:12px;background:repeating-linear-gradient(135deg,var(--color-gray-100),var(--color-gray-100) 12px,var(--color-gray-200) 12px,var(--color-gray-200) 24px)}.preview-layer{position:absolute;top:0;right:0;bottom:0;left:0}.preview-layer-popup{z-index:2}.preview-creative-frame{width:100%;height:100%;border:none;background:transparent}.preview-inline-band{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2);background:color-mix(in srgb,var(--color-accent) 12%,transparent)}.preview-inline-badge{font-size:11px;font-weight:600;color:var(--color-accent-active);background:var(--color-surface);border:1px solid var(--color-accent-border);border-radius:var(--radius-pill);padding:2px var(--space-2)}.builder{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden;box-shadow:var(--shadow-sm)}.builder-toolbar{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.builder-main{display:grid;grid-template-columns:120px 1fr 260px;min-height:280px}.builder-palette{border-right:1px solid var(--color-border);padding:var(--space-3) var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.builder-palette-title{font-size:11px;font-weight:700;color:var(--color-text-muted);padding:0 var(--space-1) var(--space-1)}.builder-palette-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;font-size:13px;color:var(--color-gray-700);text-align:left;transition:background var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.builder-palette-item:hover{background:var(--color-gray-100);border-color:var(--color-gray-400)}.builder-palette-item:active{transform:scale(.98)}.builder-palette-icon{width:18px;text-align:center}.builder-canvas{padding:var(--space-3);background:var(--color-surface-muted);overflow-y:auto}.builder-canvas-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:200px;color:var(--color-text-subtle);font-size:13px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm)}.builder-item-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}@keyframes builder-land{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:none}}.builder-item{display:flex;align-items:stretch;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden;animation:builder-land var(--motion) var(--ease-out);transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out)}.builder-item:hover{border-color:var(--color-border-strong)}.builder-item.is-selected{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.builder-item-select{flex:1;display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:var(--space-2) var(--space-3);border:none;background:transparent;cursor:pointer;text-align:left}.builder-item-type{font-size:11px;font-weight:700;color:var(--color-text-muted)}.builder-item-summary{font-size:13px;color:var(--color-gray-700)}.builder-item-actions{display:flex;align-items:center;gap:2px;padding:0 var(--space-2);border-left:1px solid var(--color-hairline)}.builder-drag-handle{display:flex;align-items:center;padding:0 var(--space-2);color:var(--color-text-subtle);cursor:grab;font-size:14px;-webkit-user-select:none;user-select:none;touch-action:none}.builder-drag-handle:active{cursor:grabbing}.builder-item.is-dragging{opacity:.4}.builder-palette-item.is-dragging{opacity:.5}.builder-palette-hint{font-size:10px;color:var(--color-text-subtle);padding:var(--space-1)}.builder-canvas.is-drop-over{outline:2px dashed var(--color-accent);outline-offset:-6px}.builder-item.is-removing{animation:builder-remove .18s var(--ease-out) forwards;pointer-events:none}@keyframes builder-remove{to{opacity:0;transform:scale(.9)}}.builder-drag-ghost{padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-accent);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);font-size:13px;color:var(--color-text);opacity:.95;cursor:grabbing}.builder-undo-toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:var(--space-3);background:var(--color-gray-900);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:13px;animation:page-fade-in var(--motion-fast) var(--ease-out)}.builder-undo-toast .btn-link{color:#93c5fd}.builder-props{border-left:1px solid var(--color-border);padding:var(--space-3);overflow-y:auto}.builder-props-empty{display:flex;align-items:center;justify-content:center;text-align:center;color:var(--color-text-subtle);font-size:13px}.builder-props-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.builder-delete{color:var(--color-danger-fg);transition:transform var(--motion-fast) var(--ease-out)}.builder-delete:active{transform:scale(.9)}.builder-props-errors{list-style:none;margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-danger-soft);color:var(--color-danger-fg);font-size:12px}.builder-fields{display:flex;flex-direction:column;gap:var(--space-3)}.builder-field{display:flex;flex-direction:column;gap:var(--space-1);font-size:12px;color:var(--color-text-muted)}.builder-field input,.builder-field textarea,.builder-field select{padding:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:13px;color:var(--color-gray-900);transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out)}.builder-field input:focus,.builder-field textarea:focus,.builder-field select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.builder-field input[type=color]{padding:2px;height:32px}.builder-field-row{display:flex;gap:var(--space-2)}.builder-field-row .builder-field{flex:1}.builder-check{flex-direction:row;align-items:center;gap:var(--space-2)}.builder-pad{display:flex;flex-direction:column;gap:var(--space-1)}.builder-pad-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--color-text-muted)}.builder-pad-link{border:1px solid var(--color-border-strong);background:var(--color-surface, #fff);border-radius:var(--radius-sm);padding:2px 8px;font-size:11px;cursor:pointer;color:var(--color-text-muted);transition:border-color var(--motion-fast) var(--ease-out),background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.builder-pad-link.is-on{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.builder-acc-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm)}.builder-acc-item-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--color-text-muted)}.builder-preview{border-top:1px solid var(--color-border);padding:var(--space-3);background:var(--color-surface)}.builder-preview .preview-frame{height:640px;min-height:640px;resize:vertical;overflow:auto}@media (min-width: 1280px){.editor:has(.builder-main){max-width:1200px}.builder{display:grid;grid-template-columns:minmax(0,1fr) 520px;grid-template-areas:"toolbar preview" "main    preview";align-items:start;overflow:visible}.builder-toolbar{grid-area:toolbar}.builder-main{grid-area:main}.builder-preview{grid-area:preview;position:sticky;top:64px;align-self:start;max-height:calc(100vh - 88px);overflow:auto;border-top:none;border-left:1px solid var(--color-border)}.builder-preview .preview-frame{height:560px;min-height:560px}}.builder-preview-title,.builder-props-header strong{font-size:13px;color:var(--color-gray-700)}.builder-preview-title{font-weight:700;margin-bottom:var(--space-2)}.tpl-picker-lead{font-size:13px;color:var(--color-text-muted);margin:0 0 var(--space-3)}.tpl-picker-section{font-size:12px;font-weight:700;color:var(--color-text-muted);margin:var(--space-3) 0 var(--space-2)}.tpl-size-filter{display:flex;gap:var(--space-1);margin-bottom:var(--space-3)}.tpl-size-chip{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-muted);border-radius:var(--radius-pill);padding:3px var(--space-3);font-size:12px;cursor:pointer;transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out)}.tpl-size-chip:hover{background:var(--color-surface-muted)}.tpl-size-chip.active{background:var(--color-gray-800);color:#fff;border-color:var(--color-gray-800)}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}.tpl-size-badge{position:absolute;top:var(--space-1);right:var(--space-1);z-index:1;font-size:10px;font-weight:700;color:var(--color-gray-700);background:#ffffffe6;border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:1px var(--space-2)}.tpl-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;transition:box-shadow var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.tpl-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-accent-border);transform:translateY(-2px)}.tpl-card:active{transform:translateY(0)}.tpl-card-preview{position:relative;height:150px;overflow:hidden;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-muted)}.tpl-card-scale{position:absolute;top:0;left:0;width:200%;height:300px;transform:scale(.5);transform-origin:top left;pointer-events:none}.tpl-card-scale .preview-frame{height:300px;border:none;border-radius:0}.tpl-mini{position:relative;height:150px;overflow:hidden;background:var(--color-surface-muted);border-bottom:1px solid var(--color-border)}.tpl-mini-scale{position:absolute;top:0;left:0;width:200%;height:300px;transform:scale(.5);transform-origin:top left;pointer-events:none}.tpl-mini-scale .preview-frame{height:300px;border:none;border-radius:0}.tpl-mini-badge{position:absolute;top:var(--space-1);right:var(--space-1);z-index:1;font-size:10px;font-weight:700;color:var(--color-gray-700);background:#ffffffeb;border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:1px var(--space-2)}.tpl-blank-preview{display:flex;align-items:center;justify-content:center;font-size:40px;color:var(--color-text-subtle);border-style:dashed}.tpl-card-name{font-size:13px;font-weight:600;color:var(--color-text)}.tpl-card-desc{font-size:11px;color:var(--color-text-muted);line-height:1.4}.builder-reselect-row{margin-bottom:var(--space-2)}.builder-reselect-confirm{display:inline-flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--color-warning-fg);background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.site-layout{display:flex;min-height:calc(100vh - var(--topbar-height))}.site-main{flex:1;overflow-y:auto;min-width:0}.sidenav{width:220px;flex-shrink:0;background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:var(--topbar-height);height:calc(100vh - var(--topbar-height));overflow-y:auto}.sidenav-section-label{font-size:10px;font-weight:700;color:#9ca3af;letter-spacing:.1em;text-transform:uppercase;padding:0 8px;margin-bottom:8px}.sidenav-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;font-size:13px;color:#374151;text-decoration:none;cursor:pointer;transition:background .15s,color .15s;border:none;background:transparent;width:100%;text-align:left;line-height:1}.sidenav-item:hover{background:#f3f4f6;color:#111827}.sidenav-item.active{background:#eff6ff;color:#2563eb;font-weight:500}.sidenav-icon{font-size:15px;flex-shrink:0;width:18px;text-align:center}.sidenav-badge{margin-left:auto;background:#2563eb;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:9999px;min-width:18px;text-align:center}.sidenav-divider{border:none;border-top:1px solid #e5e7eb;margin:8px 0}.sidenav-new-btn{color:#2563eb;font-weight:500}.sidenav-new-btn:hover{background:#eff6ff}.sidenav-bottom{margin-top:auto;padding-top:12px;border-top:1px solid #e5e7eb}.sidenav-settings svg{width:16px;height:16px;flex-shrink:0}.template-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;padding-bottom:32px}.template-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;cursor:pointer;transition:box-shadow .15s,transform .1s;display:flex;flex-direction:column}.template-card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.template-card-preview{background:#f4f5f7;height:90px;display:flex;align-items:center;justify-content:center}.template-size-badge{font-size:11px;color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:4px;padding:2px 8px}.template-card-body{padding:12px 14px 8px;flex:1}.template-card-name{font-size:13px;font-weight:600;color:#111827;margin-bottom:4px}.template-card-desc{font-size:12px;color:#6b7280;line-height:1.4}.template-card-actions{display:flex;gap:8px;margin:8px 14px 14px}.template-preview-btn{flex-shrink:0;padding:7px 12px;border-radius:7px;background:#fff;color:#374151;font-size:12px;font-weight:500;border:1px solid #d1d5db;cursor:pointer;transition:background .15s,border-color .15s}.template-preview-btn:hover{background:#f9fafb;border-color:#9ca3af}.template-card-btn{flex:1;padding:7px 0;border-radius:7px;background:#1f2937;color:#fff;font-size:12px;font-weight:500;border:none;cursor:pointer;transition:background .15s}.template-card-btn:hover{background:#111827}.template-count-label{font-size:13px;color:#6b7280;padding:5px 12px;background:#f3f4f6;border-radius:20px}.template-card-size{font-size:11px;color:#9ca3af;margin-top:6px}.gallery-filters{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-4)}.gallery-filter-group{display:flex;flex-wrap:wrap;gap:var(--space-1)}.gallery-filter-chip{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-muted);border-radius:var(--radius-pill);padding:4px var(--space-3);font-size:12px;cursor:pointer;transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out)}.gallery-filter-chip:hover{background:var(--color-surface-muted)}.gallery-filter-chip.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.tpl-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#11182799;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;animation:page-fade-in var(--motion-fast) var(--ease-out)}.save-tpl-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#1118278c;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;animation:page-fade-in var(--motion-fast) var(--ease-out)}.save-tpl-dialog{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(440px,96vw);display:flex;flex-direction:column;overflow:hidden}.save-tpl-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.save-tpl-close{border:none;background:none;cursor:pointer;font-size:16px;color:var(--color-text-muted)}.save-tpl-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.save-tpl-foot{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.save-tpl-error{color:var(--color-danger, #dc2626);font-size:13px;margin:0}.save-tpl-done{font-size:14px;margin:0}.confirm-save-tpl{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--color-border)}.my-tpl-empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg)}.my-tpl-confirm{font-size:12px;color:var(--color-danger, #dc2626)}.my-tpl-delete{color:var(--color-text-muted)}.my-tpl-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-top:2px}.my-tpl-chip{font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;white-space:nowrap}.my-tpl-chip-popup{background:#eff6ff;color:#1d4ed8}.my-tpl-chip-inline{background:#ecfdf5;color:#047857}.my-tpl-chip-rewrite{background:#fef3c7;color:#92400e}.tpl-modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(1100px,96vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden}.tpl-modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.tpl-modal-title{font-size:16px;font-weight:700;color:var(--color-text)}.tpl-modal-sub{font-size:12px;color:var(--color-text-muted);margin-top:2px}.tpl-modal-close{border:none;background:transparent;font-size:24px;line-height:1;color:var(--color-text-muted);cursor:pointer;padding:0 var(--space-1);border-radius:var(--radius-sm)}.tpl-modal-close:hover{background:var(--color-surface-muted);color:var(--color-text)}.tpl-modal-stage{flex:1;min-height:0;background:var(--color-surface-muted)}.tpl-modal-stage .preview-frame{height:62vh;border:none;border-radius:0}.tpl-modal-foot{display:flex;justify-content:flex-end;padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border)}
