﻿:root{--bg:#f4f6f9;--surface:#fff;--surface-soft:#f8fafc;--text:#17243a;--muted:#637083;--line:#dce3eb;--brand:#1a3558;--brand-strong:#10243e;--accent:#087da8;--shadow:0 14px 36px rgba(16,36,62,.08)}*{box-sizing:border-box}[v-cloak]{display:none}html{background:var(--bg)}body{margin:0;color:var(--text);background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(244,246,249,.98) 320px),linear-gradient(135deg,rgba(26,53,88,.08),rgba(8,125,168,.05) 38%,transparent 39%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;letter-spacing:0}h1,h2,p{margin:0}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(520px,100%)}.login-card .el-card__body{padding:34px}.login-logo{width:260px;max-width:100%;display:block;margin-bottom:24px}.login-form{display:grid;gap:12px;margin-top:22px}.muted{color:var(--muted);line-height:1.65}.app-frame{min-height:100vh}.sidebar{min-height:100vh;display:grid;grid-template-rows:auto auto 1fr;gap:22px;padding:24px 18px;background:rgba(255,255,255,.88);border-right:1px solid var(--line);position:sticky;top:0}.sidebar-logo{width:188px;max-width:100%;display:block}.side-menu{border-right:0;background:transparent}.side-menu .el-menu-item{height:42px;margin-bottom:8px;border-radius:8px;font-weight:800;gap:10px}.side-menu .el-menu-item.is-active{background:#eef6fb;color:var(--brand)}.sidebar-note{align-self:end;display:grid;gap:6px;padding:12px;background:#f7fafc;border:1px solid var(--line);border-radius:8px}.sidebar-note span,.sidebar-note small{color:var(--muted);font-size:12px}.sidebar-note strong{color:var(--brand)}.app-shell{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 28px 0}.topbar h1{color:var(--brand-strong);font-size:28px;font-weight:850;line-height:1.15}.topbar p{margin-top:5px;color:var(--muted);font-size:13px}.summary-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.summary-band div{min-height:86px;display:grid;align-content:center;gap:6px;padding:18px;border-right:1px solid var(--line)}.summary-band div:last-child{border-right:0}.summary-band span{color:var(--muted);font-size:13px}.summary-band strong{color:var(--brand);font-size:22px}.panel-card{border-color:var(--line);box-shadow:var(--shadow)}.panel-card .el-card__header{padding:18px 20px}.panel-card .el-card__body{padding:20px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.card-header h2{color:var(--brand-strong);font-size:20px;line-height:1.2}.eyebrow{margin:0 0 4px;color:var(--accent);font-size:12px;font-weight:800;text-transform:uppercase}.full{width:100%}.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;width:100%}.checkbox-grid .el-checkbox{margin-right:0}.search-setting{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:14px 16px;background:#fff8e8;border:1px solid #ead3a5}.search-setting div{display:grid;gap:3px}.search-setting strong{color:var(--brand-strong)}.search-setting span{color:var(--muted);font-size:13px}.upload-title{color:var(--brand-strong);font-weight:800}.upload-text{color:var(--muted);line-height:1.6}.task-table,.source-table{width:100%}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px;background:var(--surface-soft);border:1px solid var(--line)}.table-search{width:360px}.table-meta{color:var(--muted);font-size:13px;white-space:nowrap}.source-alert{margin-bottom:16px}.table-subtext{margin-top:3px;color:var(--muted);font-size:12px}.snippet{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted)}.el-form-item__label{color:var(--text);font-weight:800}.el-upload,.el-upload-dragger{width:100%}.el-main{padding:22px 28px 32px}.task-expand{padding:10px 28px 20px;background:#fbfdff}.workflow-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.artifact-list{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.artifact-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.assistant-fab{position:fixed;right:22px;bottom:22px;width:56px;height:56px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--brand);box-shadow:var(--shadow);font-size:22px;z-index:20;cursor:pointer}.assistant-panel{position:fixed;right:22px;bottom:90px;width:520px;max-width:calc(100vw - 44px);height:680px;display:grid;grid-template-rows:auto 1fr auto;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);z-index:21}.assistant-panel header{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--line)}.assistant-messages{padding:14px;overflow:auto;background:#f8fafc}.assistant-msg{max-width:86%;margin-bottom:10px;padding:10px 12px;border-radius:8px;line-height:1.55;font-size:13px}.assistant-msg.user{margin-left:auto;background:#1f6feb;color:#fff}.assistant-msg.bot{background:#fff;border:1px solid var(--line)}.assistant-input{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border-top:1px solid var(--line)}@media(max-width:960px){.app-frame{display:block}.sidebar{min-height:auto;height:auto;position:static}.summary-band{grid-template-columns:1fr 1fr}.table-toolbar{align-items:stretch;flex-direction:column}.table-search{width:100%}}@media(max-width:560px){.topbar{align-items:flex-start;flex-direction:column;padding:18px 16px 0}.el-main{padding:16px}.summary-band,.checkbox-grid{grid-template-columns:1fr}.summary-band div{border-right:0;border-bottom:1px solid var(--line)}}

.login-actions{display:flex;align-items:center;gap:12px;margin-top:24px}.login-actions .el-button{min-width:82px}.auth-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-mode-actions{display:flex;align-items:center;gap:8px}.auth-mode-actions .el-button{min-width:72px}@media(max-width:560px){.login-card .el-card__body{padding:28px 24px}.login-actions{align-items:stretch;flex-direction:column}.login-actions .el-button{width:100%;margin-left:0}.auth-toolbar{align-items:stretch;flex-direction:column}.auth-mode-actions{display:grid;grid-template-columns:1fr 1fr}.auth-mode-actions .el-button{width:100%;margin-left:0}}

.detail-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px}.detail-panel{min-width:0}.detail-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.detail-fields div{display:grid;gap:3px;padding:10px 12px;background:#fff;border:1px solid var(--line)}.detail-fields span{color:var(--muted);font-size:12px}.detail-fields strong{color:var(--brand-strong);font-size:13px;font-weight:750;overflow-wrap:anywhere}.detail-note{margin-top:12px;padding:10px 12px;background:#fff;border:1px solid var(--line);color:var(--muted);line-height:1.6}.artifact-list>strong{display:block;margin-bottom:8px;color:var(--brand-strong)}@media(max-width:960px){.detail-grid{grid-template-columns:1fr}.detail-fields{grid-template-columns:1fr}}

.assistant-drag-handle{cursor:move;user-select:none}.assistant-panel{touch-action:none}.source-table .el-link{word-break:break-all}

.task-table{container-type:inline-size}
.task-table .task-expand{width:100cqi;max-width:100%}

.task-recovery { margin-bottom: 18px; padding: 18px; border: 1px solid #e8c98b; border-radius: 10px; background: #fffcf5; }
.task-recovery > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.task-recovery h3 { margin: 0 0 6px; color: var(--brand-strong); font-size: 17px; }
.task-recovery header p, .recovery-note { color: var(--muted); font-size: 12px; line-height: 1.7; white-space: normal; }
.recovery-saved { margin-top: 14px; color: var(--brand-strong); font-size: 13px; line-height: 1.8; white-space: normal; }
.recovery-issue { margin-top: 14px; padding: 14px; border: 1px solid #eee2ca; border-radius: 8px; background: #fff; }
.recovery-issue h4 { margin: 0 0 10px; color: var(--brand-strong); font-size: 14px; }
.recovery-issue dl { display: grid; gap: 8px; margin: 0; }
.recovery-issue dl > div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; }
.recovery-issue dt { color: var(--muted); font-size: 12px; }
.recovery-issue dd { margin: 0; color: var(--text); font-size: 13px; line-height: 1.7; white-space: normal; overflow-wrap: anywhere; }
.recovery-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.recovery-actions .el-button { margin: 0; }
.recovery-run-notice { margin-top: 14px; color: var(--muted); font-size: 12px; line-height: 1.8; white-space: normal; }
.recovery-run-notice summary { cursor: pointer; color: var(--brand); }
.recovery-run-notice p { margin-top: 8px; }
@media (max-width: 560px) {
  .task-recovery { padding: 12px; }
  .task-recovery > header { flex-wrap: wrap; }
  .recovery-issue { padding: 12px; }
  .recovery-issue dl > div { grid-template-columns: 1fr; gap: 3px; }
}

.task-filter-toolbar { flex-wrap: wrap; gap: 12px; }
.task-filter-toolbar .table-meta { white-space: normal; }
.task-filter-controls { display: flex; flex: 1 1 640px; flex-wrap: wrap; justify-content: flex-end; gap: 10px; min-width: 0; }
.task-filter-controls .task-filter-keyword { flex: 1 1 240px; min-width: 180px; }
.task-filter-controls .task-filter-select { flex: 0 1 150px; width: 150px; }
.task-filter-controls .el-button { margin: 0; }
@media (max-width: 960px) {
  .task-filter-controls { flex: none; width: 100%; justify-content: flex-start; }
}
@media (max-width: 560px) {
  .task-filter-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-filter-controls .task-filter-keyword { grid-column: 1 / -1; min-width: 0; }
  .task-filter-controls .task-filter-select { width: 100%; min-width: 0; }
  .task-filter-controls .el-button { grid-column: 1 / -1; min-height: 36px; }
}

.task-row-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 8px; }
.task-row-actions .el-button { margin: 0; min-height: 30px; }
.table-scroll-hint { display: none; }
@media (max-width: 960px) {
  .table-scroll-hint { display: block; margin: 0 0 12px; color: var(--muted); font-size: 12px; }
  /* Keep the project title readable while the small-screen table scrolls. */
  .task-table .el-table-fixed-column--right { position: static !important; }
  .task-table .el-table-fixed-column--right::before { display: none; }
  .task-row-actions .el-button { min-height: 44px; }
  .pagination-bar .el-pagination { flex-wrap: wrap; justify-content: flex-end; row-gap: 8px; }
}
.primary-result-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}
.secondary-detail-grid{margin-top:18px;grid-template-columns:1fr}
.result-panel{padding:16px;background:#f8fbfd;border:1px solid #cfdce8}
.workflow-panel{padding:16px;background:#fff;border:1px solid var(--line)}
.primary-artifacts{margin-top:0;border-top:0;padding-top:0}
.primary-artifacts .artifact-item{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:10px;margin-bottom:8px;padding:12px 14px;background:#fff;border:1px solid var(--line)}
.artifact-title{min-width:0;color:var(--brand-strong);font-weight:800;line-height:1.6;white-space:normal;overflow-wrap:anywhere}
.artifact-statuses,.artifact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.artifact-statuses:empty{display:none}
.primary-artifacts .artifact-statuses>.el-button,.primary-artifacts .artifact-actions>.el-button{margin-left:0}
.primary-artifacts .artifact-statuses>.el-button,.primary-artifacts .artifact-statuses>.el-tag{max-width:100%;height:auto;min-height:24px;white-space:normal;line-height:1.5;overflow-wrap:anywhere}
.primary-artifacts .artifact-statuses>.el-button{padding:4px 8px}
.primary-artifacts .artifact-statuses>.el-tag{padding:2px 8px}
.artifact-statuses>.el-button>span,.artifact-statuses>.el-tag>.el-tag__content{min-width:0;white-space:normal;overflow-wrap:anywhere}
.artifact-actions{padding-top:2px}
.primary-artifacts .el-button{min-width:76px}
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.review-panel{padding:16px;background:#fbfdff;border:1px solid var(--line)}
.review-panel h3{margin:0 0 14px;color:var(--brand-strong);font-size:16px}
.assistant-fab{width:100px;height:100px;overflow:hidden;padding:0}
.assistant-fab img{width:100%;height:100%;display:block;object-fit:cover}
.trace-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.trace-meta .el-link{max-width:100%;word-break:break-all;font-size:12px}
.trace-scroll{max-height:560px;overflow:auto;padding-right:6px}
.trace-item{padding:2px 0 8px}
.trace-heartbeat{margin:0 0 2px -8px;padding:8px 10px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px}
.trace-heartbeat p{color:#166534}
.trace-stale{background:#fffbeb;border-color:#fde68a}
.trace-stale p{color:#92400e}
.live-dot{width:8px;height:8px;display:inline-block;margin-right:7px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 rgba(34,197,94,.5);animation:heartbeatPulse 1.4s ease-out infinite}
@keyframes heartbeatPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.45)}70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.pagination-bar{display:flex;justify-content:flex-end;margin-top:14px}
.review-project-table{margin-bottom:12px}
.review-current{margin:12px 0 16px}
.review-inline{padding:12px 18px 18px;background:#f8fbfd;border:1px solid var(--line)}
.assistant-fab{cursor:grab;user-select:none;touch-action:none}
.assistant-fab:active{cursor:grabbing}
@media(max-width:960px){.primary-result-grid,.review-grid{grid-template-columns:1fr}}

.assistant-panel{max-height:calc(100dvh - 140px);border-radius:12px;overflow:hidden}.assistant-shortcuts{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px}.assistant-shortcuts .el-button{margin-left:0}.assistant-footer{border-top:1px solid var(--line)}.assistant-footer .assistant-input{border-top:0}.assistant-messages{touch-action:pan-y}

.assistant-sources{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:12px}.assistant-sources>span{display:block;color:var(--muted);margin-bottom:6px}.assistant-sources a{display:block;padding:7px 0;color:var(--brand);text-decoration:none;overflow-wrap:anywhere}.assistant-sources strong{font-weight:600}.assistant-sources small{display:block;margin-top:3px;color:var(--muted);line-height:1.6}


/* Immediate, persistent feedback for user-requested operations. */
.operation-feedback { display: grid; gap: 8px; margin-bottom: 16px; min-width: 0; }
.operation-pending, .operation-error { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px; background: #f0f7fc; color: var(--brand); font-size: 13px; line-height: 1.6; }
.operation-pending span, .operation-error > div { min-width: 0; overflow-wrap: anywhere; }
.operation-pending > i { flex-shrink: 0; }
.operation-error { align-items: flex-start; justify-content: space-between; background: #fff5f3; border-color: #f2d2cb; color: #913e2f; }
.operation-error p { margin: 3px 0; }
.operation-error small { font-size: 12px; }
.review-inline .el-skeleton { padding: 16px 0; }
.review-project-table { container-type: inline-size; }
.review-project-table .review-inline { width: 100cqi; max-width: 100%; box-sizing: border-box; white-space: normal; }
.review-inline .el-alert__content { min-width: 0; }
.review-inline .el-alert__description, .review-inline .el-alert__title { white-space: normal; overflow-wrap: anywhere; }
@media (prefers-reduced-motion: reduce) { .operation-pending .fa-spin { animation: none; } }
