:root{--uw-purple: #4b2e83;--uw-purple-deep: #32006e;--uw-gold: #ffc700;--uw-gold-text: #7a5c00;--ink: #241c33;--ink-muted: #6b6478;--ink-faint: #9992a3;--border: #e4dfe9;--surface-subtle: #f3f0f6;--page-bg: #f8f6fb;--accent-pink-bg: #fdeef8;--accent-pink-text: #99206f;--accent-teal-bg: #e3faf9;--accent-teal-text: #0d6e68;--accent-green-bg: #eef8d9;--accent-green-text: #4a6b0a;--accent-lavender-bg: #f2eefa;--accent-gold-bg: #fff8e0;--error-bg: #fef2f2;--error-border: #fecaca;--error-text: #991b1b;--font-display: "Encode Sans Compressed", sans-serif;--font-body: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--surface: #ffffff;--surface-hover: #faf8fd;--input-border: #d6cfe0;--header-bg: #4b2e83;--header-border: #ffc700;--btn-primary-text: #ffffff;--status-inprogress-bg: #d2bcff;--shadow-rec: rgba(75, 46, 131, .1);color-scheme:light}:root[data-theme=dark]{--uw-purple: #b79ce8;--uw-purple-deep: #cbb6f2;--uw-gold: #ffd24d;--uw-gold-text: #ffd98a;--ink: #ece9f2;--ink-muted: #a49db5;--ink-faint: #7d7590;--border: #322b40;--surface-subtle: #241f30;--page-bg: #17141f;--surface: #201b2b;--surface-hover: #2a2436;--input-border: #3d3550;--header-bg: #120f18;--header-border: #ffc700;--btn-primary-text: #17141f;--status-inprogress-bg: #3a2d5c;--shadow-rec: rgba(0, 0, 0, .45);--accent-pink-bg: #3a1e30;--accent-pink-text: #f0a8d4;--accent-teal-bg: #123230;--accent-teal-text: #6fd8d0;--accent-green-bg: #24310f;--accent-green-text: #b6d97a;--accent-lavender-bg: #2c2440;--accent-gold-bg: #332a12;--error-bg: #3a1d1d;--error-border: #5c2b2b;--error-text: #f0a0a0;color-scheme:dark}html{scrollbar-gutter:stable}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-body);font-size:15px;line-height:1.5;color:var(--ink);background-color:var(--page-bg);-webkit-font-smoothing:antialiased}a{color:var(--uw-purple);text-decoration:none}a:hover{text-decoration:underline;color:var(--uw-purple-deep)}button{font-family:inherit;font-size:inherit}h1,h2,h3{font-family:var(--font-display)}:focus-visible{outline:2px solid var(--uw-purple);outline-offset:2px}.app-header{background:var(--header-bg);border-bottom:3px solid var(--header-border)}.app-header-inner{max-width:1200px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:32px}.app-title{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:.01em;color:#fff}.app-title:hover{text-decoration:none;color:#fff}.app-nav{display:flex;gap:20px;flex:1}.app-nav a{color:#ffffffbf;font-weight:500;padding:4px 0;border-bottom:2px solid transparent}.app-nav a.active{color:#fff;border-bottom-color:var(--uw-gold)}.app-nav a:hover{text-decoration:none;color:#fff}.app-user{font-size:14px;color:#ffffffb3;display:flex;align-items:center;gap:12px}.app-user a{color:#ffffffd9;text-decoration:underline}.app-user a:hover{color:#fff}.theme-toggle{background:none;border:none;padding:0;margin:0;cursor:pointer;display:inline-flex;align-items:center;-webkit-tap-highlight-color:transparent}.theme-toggle-track{position:relative;display:inline-flex;align-items:center;justify-content:space-between;width:52px;height:26px;padding:0 6px;border-radius:999px;background:#ffffff29;border:1px solid rgba(255,255,255,.28);transition:background .15s ease}.theme-toggle:hover .theme-toggle-track{background:#ffffff3d}.theme-toggle-icon{font-size:12px;line-height:1;color:#fff;z-index:1}.theme-toggle-sun{opacity:.95}.theme-toggle-moon{opacity:.7}.theme-toggle-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--uw-gold);box-shadow:0 1px 2px #00000059;transition:transform .18s ease}:root[data-theme=dark] .theme-toggle-thumb{transform:translate(26px)}.theme-toggle:focus-visible{outline:none}.theme-toggle:focus-visible .theme-toggle-track{outline:2px solid var(--uw-gold);outline-offset:2px}@media (prefers-reduced-motion: reduce){.theme-toggle-thumb{transition:none}}.page-container{max-width:1200px;margin:0 auto;padding:24px}.page-loading,.loading{text-align:center;padding:60px 20px;color:var(--ink-faint)}.error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);padding:16px;border-radius:6px;margin:20px 0}.empty-state,.empty{background:var(--surface);border:1px solid var(--border);padding:40px;border-radius:8px;text-align:center;color:var(--ink-faint)}.page-banner{margin-bottom:18px}.page-banner h1{position:relative;margin:0 0 6px;padding-left:16px;font-size:28px;font-weight:700;letter-spacing:.01em}.page-banner h1:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:2px;background:var(--uw-gold)}.page-banner p{margin:0;color:var(--ink-muted)}.page-banner-with-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.export-actions{display:flex;gap:8px;flex-wrap:wrap}.export-actions .btn-secondary{text-decoration:none;white-space:nowrap}.filter-bar{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.filter-bar label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500;color:var(--ink-muted);min-width:140px}.filter-bar select{padding:6px 8px;border:1px solid var(--input-border);border-radius:6px;background:var(--surface);color:var(--ink);font-size:14px}.filter-bar-active{display:flex;align-items:center;gap:8px;background:var(--accent-lavender-bg);border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:13px;color:var(--uw-purple);margin-bottom:16px}.filter-bar-active button{background:none;border:none;color:var(--uw-purple);cursor:pointer;font-weight:500;padding:0;text-decoration:underline}.recommendations-layout{display:flex;align-items:flex-start;gap:20px}.recommendations-main{flex:1;min-width:0}.filter-pane{flex:0 0 220px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 18px;position:sticky;top:16px}.filter-pane-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:12px}.filter-pane-header h2{font-size:15px;font-weight:700;margin:0;color:var(--ink)}.filter-pane-clear{background:none;border:none;color:var(--uw-purple);cursor:pointer;font-size:12px;font-weight:500;padding:0;text-decoration:underline}.filter-pane-group{border:none;margin:0 0 18px;padding:0}.filter-pane-group:last-child{margin-bottom:0}.filter-pane-group legend{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);padding:0;margin-bottom:8px}.filter-pane-accordion>summary{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none}.filter-pane-accordion>summary::-webkit-details-marker{display:none}.filter-pane-accordion>summary:after{content:"";width:7px;height:7px;border-right:1.5px solid var(--ink-muted);border-bottom:1.5px solid var(--ink-muted);transform:rotate(-45deg);transition:transform .15s ease}.filter-pane-accordion[open]>summary:after{transform:rotate(45deg)}.filter-pane-accordion-body{margin-top:8px}.filter-pane-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);padding:2px 0;cursor:pointer}.filter-pane-checkbox input[type=checkbox]{accent-color:var(--uw-purple);cursor:pointer}.filter-pane-date{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--ink-muted);padding:3px 0}.filter-pane-date span{flex-shrink:0}.filter-pane-date input[type=date]{flex:1;min-width:0;padding:5px 8px;border:1px solid var(--input-border);border-radius:6px;background:var(--surface);color:var(--ink);font-size:13px}@media (max-width: 780px){.recommendations-layout{flex-direction:column}.filter-pane{flex:1 1 auto;width:100%;position:static}}.recommendations-list{display:flex;flex-direction:column;gap:10px}.rec-row{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:inherit;overflow:hidden;transition:border-color .1s,box-shadow .1s}.rec-row:hover{text-decoration:none;border-color:var(--input-border);box-shadow:0 1px 3px var(--shadow-rec)}.rec-row-body{flex:1;min-width:0;padding:15px 20px}.rec-row-summary{font-size:15px;color:var(--ink);line-height:1.45;margin-bottom:7px;font-weight:100}.rec-row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;font-size:13px;color:var(--ink-muted)}.rec-row-meta strong{font-weight:600;color:var(--ink)}.rec-row-gutter{flex:0 0 auto;min-width:132px;padding:15px 20px;border-left:1px solid var(--border);display:flex;flex-direction:column;align-items:flex-start;gap:12px}.rec-row-created{font-size:13px;color:var(--ink-muted)}.rec-row-created strong{display:block;color:var(--ink);font-weight:600}@media (max-width: 560px){.rec-row{flex-direction:column}.rec-row-gutter{border-left:none;border-top:1px solid var(--border);flex-direction:row;align-items:center;justify-content:space-between;width:100%}}.rec-service,.rec-category,.detail-service,.detail-category{font-size:13px;color:var(--ink-muted);background:var(--surface-subtle);padding:2px 8px;border-radius:4px}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500;letter-spacing:.01em;white-space:nowrap}.type-kb_gap{background:var(--accent-pink-bg);color:var(--accent-pink-text)}.type-support_question_cluster{background:var(--accent-teal-bg);color:var(--accent-teal-text)}.type-not_uwit_cluster{background:var(--surface-subtle);color:var(--ink-muted)}.type-trending_topic{background:var(--accent-gold-bg);color:var(--uw-gold-text)}.type-keyword_signal{background:var(--accent-lavender-bg);color:var(--uw-purple)}.type-spam_query_signal,.status-open{background:var(--surface-subtle);color:var(--ink-muted)}.status-in_progress{background:var(--status-inprogress-bg);color:var(--uw-purple)}.status-actioned{background:var(--accent-green-bg);color:var(--accent-green-text)}.status-rejected{background:var(--error-bg);color:var(--error-text)}.status-deferred{background:var(--accent-gold-bg);color:var(--uw-gold-text)}.detail-back{margin-bottom:16px;font-size:14px}.detail-header{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 20px;margin-bottom:18px}.detail-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.detail-summary{position:relative;padding-left:16px;font-family:var(--font-display);font-size:22px;font-weight:700;margin:0 0 12px;line-height:1.4}.detail-summary:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:2px;background:var(--uw-gold)}.detail-meta{font-size:14px;color:var(--ink-muted)}.detail-section{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 20px;margin-bottom:12px}.detail-section h2{position:relative;padding-left:13px;font-size:17px;font-weight:700;margin:0 0 12px;color:var(--ink)}.detail-section h2:before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:3px;border-radius:2px;background:var(--uw-gold)}.help-content{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px 28px;max-width:720px}.help-content h1{font-size:22px;margin:0 0 12px}.help-content h2{font-size:18px;margin:28px 0 10px}.help-content h2:first-child{margin-top:0}.help-content h3{font-size:15px;margin:16px 0 8px;color:var(--ink-muted)}.help-content p{line-height:1.6;margin:0 0 12px;color:var(--ink)}.help-content ul{margin:0 0 12px;padding-left:22px;line-height:1.6}.help-content li{margin-bottom:4px}.help-content code{background:var(--surface-subtle);padding:1px 6px;border-radius:4px;font-size:13px}.help-content a{color:var(--uw-purple)}.details-list{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:8px 24px}.details-item{display:contents}.details-item dt{font-weight:500;color:var(--ink-muted)}.details-item dd{margin:0;color:var(--ink);word-break:break-word}.value-list{margin:0;padding-left:20px}.value-json{background:var(--surface-subtle);border:1px solid var(--border);border-radius:4px;padding:8px 12px;font-size:13px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;overflow-x:auto;margin:0}.muted{color:var(--ink-faint)}.events-table{width:100%;border-collapse:collapse;font-size:14px}.events-table th{text-align:left;font-weight:500;color:var(--ink-muted);padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px}.events-table td{padding:8px 12px;border-bottom:1px solid var(--surface-subtle);vertical-align:top}.events-table tr:last-child td{border-bottom:none}.event-query{font-weight:500}.event-flag{display:inline-block;margin-left:8px;padding:1px 6px;background:var(--accent-gold-bg);color:var(--uw-gold-text);border-radius:4px;font-size:11px;font-weight:500}.event-collapse{margin-left:6px;color:var(--ink-muted);font-size:12px}.event-results .zero-result{color:var(--error-text)}.action-panel{display:flex;flex-direction:column;gap:16px}.action-fields{display:flex;gap:20px;align-items:flex-start}.action-field{display:flex;flex-direction:column;gap:4px}.action-field>span{font-size:13px;font-weight:500;color:var(--ink-muted)}.action-field select{padding:6px 8px;border:1px solid var(--input-border);border-radius:6px;background:var(--surface);font-size:14px;min-width:160px}.action-field-comment{flex:1}.action-field textarea{padding:8px 12px;border:1px solid var(--input-border);border-radius:6px;font-family:inherit;font-size:14px;resize:vertical;min-height:70px}.action-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);padding:8px 12px;border-radius:6px;font-size:14px}.action-actions{display:flex;justify-content:flex-end}.btn-primary{background:var(--uw-purple);color:var(--btn-primary-text);border:none;border-radius:6px;padding:8px 18px;font-weight:500;cursor:pointer}.btn-primary:hover{background:var(--uw-purple-deep)}.btn-primary:disabled{background:#c3b3dc;cursor:not-allowed}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.activity-item{padding:10px 14px;background:var(--surface-subtle);border-radius:6px;font-size:14px}.activity-header{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline;margin-bottom:4px}.activity-action{color:var(--ink-muted)}.activity-time{font-size:12px;color:var(--ink-faint);margin-left:auto}.activity-comment{color:var(--ink);margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.date-range-control input[type=date]{padding:5px 8px;border:1px solid var(--input-border);border-radius:6px;background:var(--surface);color:var(--ink);font-size:14px}.time-period-row{display:flex;align-items:stretch;gap:14px;margin-bottom:20px}.time-period-row .filter-bar{margin-bottom:0;flex:1}.time-period-row .dashboard-stat-card-compact{flex-shrink:0;display:flex;flex-direction:column;justify-content:center;padding:10px 20px;min-width:200px}.time-period-row .dashboard-stat-card-compact .dashboard-card-label{margin-bottom:4px}.time-period-row .dashboard-stat-card-compact .dashboard-stat-value{font-size:28px}@media (max-width: 780px){.time-period-row{flex-direction:column}}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (max-width: 900px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 20px}.dashboard-card-label{font-size:15px;font-weight:900;color:var(--ink-muted);margin-bottom:14px}.dashboard-card-sublabel{font-weight:400;color:var(--ink-faint)}.dashboard-card-hint{font-size:12px;color:var(--ink-faint);margin-top:8px}.dashboard-card-empty{color:var(--ink-faint);font-size:14px}.dashboard-stat-value{font-family:var(--font-display);font-size:38px;font-weight:700;color:var(--uw-purple);letter-spacing:-.01em}.dashboard-rank-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.dashboard-rank-list li{display:flex;align-items:baseline;gap:12px;font-size:14px}.dashboard-rank-sources{display:flex;gap:4px;flex-shrink:0;justify-content:flex-end}.zero-results-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.zero-results-column-head{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.zero-results-list{display:grid;grid-template-columns:1fr auto;align-items:baseline;row-gap:10px;column-gap:12px}.zero-results-list li{display:contents}.dashboard-rank-item{cursor:pointer;border-radius:4px;padding:2px 6px;margin:0 -6px}.high-results-list{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;row-gap:10px;column-gap:12px}.high-results-list li{display:contents}.dashboard-rank-freq{color:var(--ink-faint);font-size:13px;font-variant-numeric:tabular-nums;flex-shrink:0;text-align:right}.dashboard-rank-item:hover{background:var(--surface-subtle)}.dashboard-rank-item:focus-visible{outline:2px solid var(--uw-purple);outline-offset:1px}.dashboard-rank-item.is-active{background:var(--accent-lavender-bg)}.dashboard-rank-item.is-active .dashboard-rank-name{color:var(--uw-purple);font-weight:500}.query-detail-pane{margin-top:14px}.query-detail-pane-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.query-detail-pane-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.btn-secondary{background:var(--surface);color:var(--uw-purple);border:1px solid var(--uw-purple);border-radius:6px;padding:6px 14px;font-weight:500;font-size:13px;cursor:pointer}.btn-secondary:hover{background:var(--accent-lavender-bg)}.btn-secondary:disabled{color:var(--ink-faint);border-color:var(--border);cursor:not-allowed;background:var(--surface)}.dashboard-rank-name{flex:1;min-width:0;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-rank-count{color:var(--ink-muted);font-weight:500;font-variant-numeric:tabular-nums;flex-shrink:0;text-align:right}.batches-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;font-size:14px}.batches-table th{text-align:left;font-weight:500;color:var(--ink-muted);padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface-subtle);font-size:13px}.batches-table td{padding:10px 14px;border-bottom:1px solid var(--surface-subtle)}.batches-table tr:last-child td{border-bottom:none}.batch-status{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.batch-status-in_progress{background:var(--accent-gold-bg);color:var(--uw-gold-text)}.batch-status-completed{background:var(--accent-green-bg);color:var(--accent-green-text)}.batch-status-failed{background:var(--error-bg);color:var(--error-text)}.batch-status-cancelled{background:var(--surface-subtle);color:var(--ink-muted)}.trigger-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 20px;margin-bottom:20px}.trigger-panel-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.trigger-file-label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500;color:var(--ink-muted)}.trigger-file-label input[type=file]{font-size:13px}.trigger-file-name{font-size:13px;color:var(--ink-muted);background:var(--surface-subtle);padding:4px 10px;border-radius:4px}.trigger-go-btn{margin-left:auto;padding:10px 28px;font-size:15px}.trigger-range-row{margin-top:14px;padding-top:14px;border-top:1px solid var(--surface-subtle)}.trigger-range-label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500;color:var(--ink-muted)}.trigger-range-label input[type=date]{padding:5px 8px;border:1px solid var(--input-border);border-radius:6px;background:var(--surface);color:var(--ink);font-size:14px}.trigger-range-label input[type=date]:disabled{background:var(--surface-subtle);color:var(--ink-faint)}.trigger-range-clear{align-self:flex-end;background:none;border:none;color:var(--uw-purple);cursor:pointer;font-weight:500;padding:6px 0;text-decoration:underline}.trigger-range-clear:disabled{color:var(--ink-faint);cursor:not-allowed}.trigger-source-radios{display:flex;flex-direction:column;gap:4px;border:none;margin:0;padding:0}.trigger-source-radios legend{font-size:13px;font-weight:500;color:var(--ink-muted);padding:0;margin-bottom:4px}.trigger-source-radios:disabled,.trigger-source-radios[disabled]{opacity:.6}.trigger-source-radio{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:400;color:var(--ink);min-width:0;cursor:pointer}.trigger-source-radio input[type=radio]{accent-color:var(--uw-purple);cursor:pointer}.batches-table td.load-origin{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trigger-panel-hint{margin:12px 0 0;font-size:13px;color:var(--ink-faint)}.trigger-error{margin-top:12px;background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);padding:8px 12px;border-radius:6px;font-size:14px}.progress-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 20px;margin-bottom:24px}.progress-panel-failed{border-color:var(--error-border)}.progress-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.progress-panel-header-right{display:flex;align-items:center;gap:10px}.btn-cancel{background:var(--surface);color:var(--error-text);border:1px solid var(--error-border);border-radius:6px;padding:4px 12px;font-size:13px;font-weight:500;cursor:pointer}.btn-cancel:hover{background:var(--error-bg)}.btn-cancel:disabled{color:var(--ink-faint);border-color:var(--border);cursor:not-allowed}.progress-phase-label{font-family:var(--font-display);font-weight:600;color:var(--ink)}.progress-latest{font-size:13px;color:var(--ink-muted);margin-bottom:12px}.progress-heartbeat{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-faint);margin-bottom:12px}.progress-heartbeat-dot{width:6px;height:6px;border-radius:50%;background:var(--uw-purple);animation:heartbeat-pulse 1.6s ease-in-out infinite}@keyframes heartbeat-pulse{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.progress-heartbeat-dot{animation:none}}@media print{.app-header,.filter-pane,.filter-bar-active,.no-print{display:none!important}.recommendations-layout{display:block}.rec-row{break-inside:avoid;page-break-inside:avoid}}.progress-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);padding:8px 12px;border-radius:6px;font-size:13px;margin-bottom:12px}.progress-log{max-height:220px;overflow-y:auto;background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;padding:10px 14px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.6}.progress-log-line{white-space:pre-wrap;word-break:break-word}.progress-log-time{color:var(--ink-faint);margin-right:8px}.progress-log-phase{color:var(--uw-purple);margin-right:6px}.admin-section{margin-bottom:32px}.admin-section-title{position:relative;padding-left:13px;font-size:18px;font-weight:700;margin:0 0 6px;color:var(--ink)}.admin-section-title:before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:2px;background:var(--uw-gold)}.admin-section-desc{margin:0 0 16px;max-width:760px;font-size:14px;color:var(--ink-muted)}.trigger-file-label input[type=text]{padding:6px 8px;border:1px solid var(--input-border);border-radius:6px;background:var(--surface);color:var(--ink);font-size:14px}.admin-field-grow{flex:1 1 220px;min-width:0}.admin-input-mono{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}.admin-row-actions{text-align:right;white-space:nowrap}.batches-table code{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;background:var(--surface-subtle);padding:2px 6px;border-radius:4px;word-break:break-all}.badge.match-regex{background:var(--accent-lavender-bg);color:var(--uw-purple)}.badge.match-exact{background:var(--accent-teal-bg);color:var(--accent-teal-text)}.perennial-form-actions{display:flex;align-items:flex-end;gap:8px;margin-left:auto}.perennial-picker{margin-top:14px}.perennial-picker-label{font-size:13px;font-weight:500;color:var(--ink-muted);margin-bottom:6px}.perennial-picker-box{max-height:260px;overflow-y:auto;border:1px solid var(--input-border);border-radius:6px;padding:10px 14px;background:var(--surface);display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 20px;align-content:start}.perennial-picker-group{border:none;margin:0;padding:0;break-inside:avoid}.perennial-picker-group legend{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);padding:0;margin:8px 0 4px}.perennial-picker-option{display:flex;align-items:flex-start;gap:7px;font-size:13px;color:var(--ink);padding:2px 0;cursor:pointer;line-height:1.35}.perennial-picker-option input[type=checkbox]{accent-color:var(--uw-purple);margin-top:2px;cursor:pointer;flex-shrink:0}.perennial-chips{display:flex;flex-wrap:wrap;gap:6px}.perennial-chip{font-size:12px;color:var(--ink-muted);background:var(--surface-subtle);border:1px solid var(--border);padding:2px 8px;border-radius:4px}.btn-link{background:none;border:none;color:var(--uw-purple);cursor:pointer;font-weight:500;padding:0;margin-right:12px;text-decoration:underline;font-size:inherit}.replay-btn{background:var(--surface);color:var(--uw-purple);border:1px solid var(--uw-purple);border-radius:5px;padding:3px 10px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap}.replay-btn:hover{background:var(--accent-lavender-bg)}.replay-btn:disabled{color:var(--ink-faint);border-color:var(--border);background:var(--surface);cursor:default}.replay-split{position:relative;display:inline-flex;white-space:nowrap}.replay-main,.replay-caret{background:var(--surface);color:var(--uw-purple);border:1px solid var(--uw-purple);font-size:12px;font-weight:500;cursor:pointer}.replay-main{border-radius:5px 0 0 5px;border-right:none;padding:3px 10px}.replay-caret{border-radius:0 5px 5px 0;padding:3px 7px;display:inline-flex;align-items:center;line-height:1}.replay-main:hover,.replay-caret:hover{background:var(--accent-lavender-bg)}.replay-main:disabled,.replay-caret:disabled{color:var(--ink-faint);border-color:var(--border);background:var(--surface);cursor:default}.replay-menu{position:absolute;top:100%;left:0;margin-top:3px;z-index:20;min-width:130px;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 2px 8px #0000001f;overflow:hidden;display:flex;flex-direction:column}.replay-menu-item{background:none;border:none;text-align:left;padding:7px 12px;font-size:12px;color:var(--ink);cursor:pointer;white-space:nowrap}.replay-menu-item:hover{background:var(--accent-lavender-bg)}.replay-external{color:var(--uw-purple);font-size:12px;font-weight:500;text-decoration:none;white-space:nowrap}.replay-external:hover{text-decoration:underline}.replay-btn+.replay-external,.replay-split+.replay-external{margin-left:8px}.replay-detail-row>td{background:var(--surface-subtle);padding:12px 14px;border-bottom:1px solid var(--border)}.replay-result{display:flex;flex-direction:column;gap:8px}.replay-result-note{color:var(--ink-muted);font-size:13px}.replay-result-error{color:var(--error-text);font-size:13px}.replay-result-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.replay-result-source{font-size:12px;color:var(--ink-faint)}.replay-verdict-ok{background:var(--accent-green-bg);color:var(--accent-green-text)}.replay-verdict-warn{background:var(--accent-gold-bg);color:var(--uw-gold-text)}.replay-verdict-bad{background:var(--error-bg);color:var(--error-text)}.replay-result-smoking{margin:0;font-size:13px;color:var(--ink)}.replay-result-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:13px}.replay-result-list li{display:flex;align-items:baseline;gap:8px}.replay-result-kb{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;color:var(--ink-faint)}.replay-result-title{color:var(--ink)}.replay-result-offtopic .replay-result-title{color:var(--error-text)}.replay-offtopic-tag{flex-shrink:0;padding:0 6px;border-radius:4px;background:var(--error-bg);color:var(--error-text);font-size:11px;font-weight:500}.replay-result+.replay-result{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.replay-result-title a{color:inherit;text-decoration:none}.replay-result-title a:hover{text-decoration:underline}
