
:root{font:16px/1.55 system-ui,"Segoe UI","Microsoft YaHei",sans-serif;color:#243247;background:#f4f6f8}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,select{font:inherit}button{border:1px solid #2563eb;background:#2563eb;color:#fff;padding:9px 16px;border-radius:8px;cursor:pointer;white-space:nowrap}button:hover{filter:brightness(.96)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus,select:focus{outline:2px solid #93b4fa;outline-offset:2px}.secondary{background:#fff;color:#334155;border-color:#cbd5e1}.danger{color:#b42318;background:#fff;border-color:#f1b8b1}aside{width:220px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid #dce2ea;padding:26px 18px;display:flex;flex-direction:column}.brand{font-size:22px;font-weight:700;color:#2563eb}.brand span{margin-left:10px;color:#18263a;font-size:18px}.overline{font-size:13px;color:#64748b;letter-spacing:1px;margin:24px 0 12px}.nav{width:100%;display:block;text-align:left;border:0;background:transparent;color:#475569;margin:5px 0;padding:12px}.nav.active{background:#eaf1ff;color:#1d4ed8}.aside-bottom{margin-top:auto;font-size:14px;color:#64748b}a{color:#2563eb}main{margin-left:220px;padding:28px 32px;max-width:1900px}header,.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px}header .overline{margin:0}h1{font-size:26px;font-weight:650;margin:4px 0}h2{font-size:20px;margin:0}.muted{font-size:14px;color:#64748b;margin:7px 0}.panel{background:#fff;border:1px solid #dce2ea;border-radius:8px;padding:24px}.login{max-width:440px;margin:30px auto;display:grid;gap:20px}.login>div{width:100%}.login-heading{margin-bottom:4px}.login button{width:100%}label{display:block;font-size:14px;font-weight:500;color:#334155}input,select{display:block;width:100%;margin-top:7px;padding:9px 10px;color:#18263a;background:#fff;border:1px solid #bdc8d5;border-radius:8px}#notice{margin:18px 0;min-height:25px;font-size:15px;color:#326647}#notice.error{color:#b42318}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#dce2ea;border:1px solid #dce2ea;margin-bottom:24px}.stats article{background:#fff;padding:18px 22px}.stats span{color:#64748b;font-size:14px}.stats strong{display:block;font-size:30px;font-weight:600;margin-top:6px;color:#243247}#stat-errors{color:#b42318}.filters{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:12px 0 16px}.filters label{flex:1;min-width:150px;font-size:13px}.filters input,.filters select{font-size:14px;line-height:1.4;height:36px;margin-top:4px;padding:6px 9px}.filters button{font-size:14px;line-height:1.4;min-height:36px;padding:6px 12px}.log-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.filter-buttons{display:flex;flex-wrap:wrap;gap:8px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-weight:600;background:#f5f7fa;color:#475569;padding:13px 14px;white-space:nowrap;border-bottom:1px solid #dce2ea}td{padding:15px 14px;border-bottom:1px solid #e6ebf1;vertical-align:top}tbody tr:hover{background:#fafcff}td strong{font-weight:600;display:block;font-size:15px}td small{display:block;font-size:13px;color:#64748b;overflow-wrap:anywhere}.row-actions{display:flex;flex-wrap:wrap;gap:7px}.row-actions button{font-size:14px;padding:6px 9px}.badge{display:inline-block;padding:3px 8px;border-radius:6px;background:#edf1f5;color:#475569;font-size:13px;white-space:nowrap}.badge.active,.badge.INFO{background:#e9f5ee;color:#236443}.badge.ERROR{background:#fcecea;color:#b42318}.badge.WARN{background:#fff3d8;color:#865b00}.badge.DEBUG{background:#eaf1ff;color:#2857a0}.pager{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:20px;font-size:14px;color:#64748b}.pager>div{display:flex;gap:10px}.empty{text-align:center;padding:48px;color:#64748b}.message{min-width:160px;max-width:360px;white-space:pre-wrap;overflow-wrap:anywhere}input[type=checkbox]{width:18px;height:18px;margin:3px 0;accent-color:#2563eb}.log-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;color:#64748b;font-size:14px}dialog{border:1px solid #cbd5e1;border-radius:12px;padding:26px;width:min(640px,calc(100vw - 32px));color:#243247;max-height:85vh;overflow:auto}dialog::backdrop{background:#172b4d66}dialog label{margin:16px 0}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}pre{background:#f5f7fa;border:1px solid #e1e7ee;padding:16px;font:14px/1.7 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:50vh;overflow:auto}footer{text-align:center;margin:28px 0;color:#64748b;font-size:13px}.task-stats{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.task-stats button{font-size:14px;padding:6px 12px}#task-search label:last-of-type{flex:2}.signed-out aside,.signed-out header,.signed-out #workspace,.signed-out footer{display:none!important}.signed-out main{margin:0 auto;padding:24px;width:min(100%,490px)}.signed-out{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f4f6f8}.signed-out .login{margin:0}.signed-out #notice{text-align:center;margin-bottom:0}.signed-out .login-heading h1{font-size:25px}
@media(max-width:1100px){main{padding:22px 20px;margin-left:190px}aside{width:190px}.log-filters{grid-template-columns:1fr 1fr}.stats article{padding:16px}.filters label{min-width:140px}}
@media(max-width:720px){aside{position:static;width:auto;padding:16px;border-right:0;border-bottom:1px solid #dce2ea}aside .overline,.aside-bottom{display:none}nav{display:flex;gap:6px}.nav{font-size:14px;padding:10px 8px}main{margin:0;padding:20px 12px}.stats{grid-template-columns:1fr 1fr}.panel{padding:16px}.section-head{align-items:flex-start}.log-filters{grid-template-columns:1fr}.pager{flex-wrap:wrap}.filter-buttons{flex-wrap:wrap}h1{font-size:24px}.two-columns{grid-template-columns:1fr}}

.panel{border-radius:12px}.stats{border-radius:12px;overflow:hidden}.table-wrap{border-radius:8px;border:1px solid #e6ebf1}.nav{border-radius:8px}pre{border-radius:8px}.login{border-radius:16px}
[v-cloak]{display:none!important}#admin-app{width:100%}

/* Task status colors are scoped to the task list; log levels retain their styles. */
.badge.task-status-WAREHOUSED{background:#f1f5f9;color:#475569}
.badge.task-status-COLLECTING{background:#dbeafe;color:#1d4ed8}
.badge.task-status-COLLECTED{background:#cffafe;color:#155e75}
.badge.task-status-VERIFYING{background:#fef3c7;color:#92400e}
.badge.task-status-VERIFIED{background:#ccfbf1;color:#115e59}
.badge.task-status-PUSHING{background:#ede9fe;color:#6d28d9}
.badge.task-status-PUSHED{background:#dcfce7;color:#166534}
.badge.task-status-ERROR{background:#fee2e2;color:#b91c1c}
.badge.task-status-RESUBMIT{background:#ffedd5;color:#9a3412}

.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:16px;margin:22px 0}.metric-grid article{border:1px solid #dce2ea;border-radius:12px;background:#fff;padding:18px}.metric-grid span{font-size:14px;color:#64748b}.metric-grid strong{display:block;font-size:28px;font-weight:600;margin-top:6px;color:#243247}.analytics-section{margin-top:22px}.analytics-section .table-wrap{margin-top:18px}.status-grid{display:flex;gap:14px;flex-wrap:wrap;margin:20px 0}.status-grid>div{display:flex;align-items:center;gap:14px;border:1px solid #e6ebf1;border-radius:8px;padding:12px}.status-grid strong{font-size:20px}.analytics-scroll{max-height:460px}.analytics-scroll th{position:sticky;top:0}progress{display:block;width:90px;height:7px;margin-top:6px;accent-color:#16865c}.completion{white-space:nowrap}h3{font-size:17px;font-weight:600;margin:28px 0 14px}
@media(max-width:720px){nav{flex-wrap:wrap}.nav{width:auto;flex:1 0 28%}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid article{padding:14px}}
/* Reference-inspired multi-panel analytics, using the existing light theme. */
.visual-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);gap:18px;margin:24px 0}.chart-card{min-width:0;padding:20px;display:flex;flex-direction:column}.chart-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.chart-heading h3{font-size:16px;margin:0;padding-left:10px;border-left:3px solid #2563eb;white-space:nowrap}.chart-heading>span{font-size:12px;color:#64748b;text-align:right}.chart-note{font-size:13px;color:#64748b;margin:16px 0 0;line-height:1.6}.donut-layout{display:flex;flex-direction:column;align-items:center;gap:22px}.status-donut{width:174px;height:174px;border-radius:50%;padding:21px;flex-shrink:0}.status-donut>div{background:#fff;border-radius:50%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.status-donut strong{font-size:30px;font-weight:600}.status-donut span{color:#64748b;font-size:13px}.chart-legend{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;width:100%;font-size:13px}.chart-legend li{display:flex;align-items:center;gap:7px}.chart-legend strong{margin-left:auto;font-weight:600}.chart-legend i,.inline-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0}.activity-total{display:flex;align-items:baseline;gap:9px;margin:18px 0 24px}.activity-total>strong{font-size:38px;font-weight:600}.activity-total>span{font-size:13px;color:#64748b}.activity-total b{margin-left:auto;font-size:23px;color:#2563eb;font-weight:600}.activity-total small{display:block;font-size:12px;color:#64748b;font-weight:400}.wide-meter{height:14px;display:flex;background:#e2e8f0;border-radius:7px;overflow:hidden}.inline-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px;color:#64748b;margin-top:16px}.inline-legend>span{display:flex;gap:6px;align-items:center}.mini-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:36px 0 24px;padding:20px 0;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5}.mini-metrics strong{font-size:24px;font-weight:600;display:block}.mini-metrics span{font-size:12px;color:#64748b}.stack-track{display:flex;height:12px;background:#f1f5f9;border-radius:5px;overflow:hidden}.stack-track>span{height:100%}.device-ranking{list-style:none;margin:0;padding:0}.device-ranking li{margin-bottom:19px}.rank-button{width:100%;padding:0;background:transparent;border:0;color:#334155;display:flex;align-items:center;gap:10px;text-align:left}.rank-button b{display:grid;place-items:center;width:22px;height:22px;flex-shrink:0;border-radius:6px;background:#eff6ff;color:#2563eb;font-size:12px}.rank-button>span{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-button>strong{font-size:14px;margin-left:auto;white-space:nowrap}.rank-button small{font-weight:400;color:#64748b}.rank-track{height:7px;border-radius:4px;background:#edf1f5;margin:9px 0 5px 32px;overflow:hidden}.rank-track>span{display:block;height:100%;background:#4f83ed;border-radius:4px}.device-ranking li>small{display:block;margin-left:32px;font-size:12px;color:#64748b}.column-chart{display:flex;align-items:flex-end;gap:12px;min-height:210px;padding:16px 0 0;border-bottom:1px solid #e2e8f0;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#f1f5f9 49px,#f1f5f9 50px)}.column-item{flex:1;min-width:0;text-align:center}.column-track{height:170px;display:flex;align-items:flex-end;justify-content:center}.column-fill{width:65%;max-width:42px;background:#4f83ed;border-radius:5px 5px 0 0;position:relative;min-height:1px}.column-fill strong{position:absolute;top:-24px;left:50%;transform:translateX(-50%);font-size:12px;color:#334155;font-weight:500}.column-item>span{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#fff;padding-top:10px;height:32px}.trend-chart{width:100%;min-height:210px;display:block}.trend-chart text{font-size:12px;fill:#64748b}.model-stacks{display:flex;flex-direction:column;gap:18px}.stack-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:13px}.stack-label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stack-label>strong{font-weight:500;color:#64748b}.board-actions{display:flex;justify-content:flex-end;margin:18px 0}#data-panel>.section-head{margin-bottom:4px}#dashboard-panel>.metric-grid{margin-top:18px}
@media(min-width:1600px){.donut-layout{flex-direction:row;align-items:center;margin:auto 0}.chart-legend{grid-template-columns:1fr}.visual-board{gap:20px}.chart-card{padding:24px}}
@media(max-width:1200px){.visual-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.visual-board{grid-template-columns:minmax(0,1fr)}.chart-card{padding:18px}.donut-layout{flex-direction:row}.chart-legend{grid-template-columns:1fr}.status-donut{width:150px;height:150px;padding:18px}.activity-total>strong{font-size:32px}}
@media(max-width:400px){.donut-layout{flex-direction:column}.chart-legend{grid-template-columns:1fr 1fr}.mini-metrics strong{font-size:20px}}
.log-pagination{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0;color:#64748b;font-size:14px}.log-pagination>div{display:flex;align-items:center;gap:12px}
.task-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(900px,100vw);height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;padding:0;border:0;border-left:1px solid #e2e8f0;border-radius:18px 0 0 18px;background:#fff;overflow:hidden;box-shadow:-12px 0 40px #172b4d1a;font-size:15px}
.task-drawer[open]{display:flex;flex-direction:column;animation:task-drawer-enter .24s ease-out}.task-drawer::backdrop{background:#172b4d55}body:has(.task-drawer[open]){overflow:hidden}
.drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 28px;border-bottom:1px solid #e8edf3;flex-shrink:0}.drawer-eyebrow{margin:0 0 6px;color:#64748b;font-size:13px}.drawer-heading h2{font-size:21px;font-weight:600;overflow-wrap:anywhere}.drawer-close{width:36px;height:36px;padding:0;border:0;border-radius:10px;background:#f1f5f9;color:#64748b;font-size:26px;line-height:1;flex-shrink:0}
.drawer-content{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px 28px}.drawer-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:24px;color:#64748b}.drawer-section{margin:0 0 24px}.drawer-section h3{font-size:15px;font-weight:600;margin:0 0 14px;color:#243247}.task-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin:0;padding:20px;background:#f7f9fc;border:1px solid #e8edf3;border-radius:12px}.task-facts dt{font-size:13px;color:#64748b;margin-bottom:5px}.task-facts dd{margin:0;overflow-wrap:anywhere}.fact-wide{grid-column:1/-1}.task-copy{padding:16px 18px;border:1px solid #e2e8f0;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.task-raw summary{color:#64748b;cursor:pointer;font-size:14px}.task-raw pre{border-radius:10px;max-height:none}.drawer-footer{display:flex;justify-content:flex-end;padding:16px 28px;border-top:1px solid #e8edf3;background:#fff;flex-shrink:0}
@keyframes task-drawer-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}
@media(max-width:600px){.task-drawer{border-radius:0}.drawer-heading,.drawer-content{padding:20px}.drawer-footer{padding:16px 20px}.task-facts{grid-template-columns:minmax(0,1fr);padding:16px}}
@media(prefers-reduced-motion:reduce){.task-drawer[open]{animation:none}}

.drawer-heading h2{font-size:18px}.drawer-error{color:#b42318;background:#fff1f2;padding:12px;border-radius:8px}.task-identifiers{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.task-identifiers>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:12px;align-items:center;padding:12px 16px}.task-identifiers>div+div{border-top:1px solid #e2e8f0}.task-identifiers span{font-size:13px;color:#64748b}.task-identifiers strong{font-weight:500;overflow-wrap:anywhere;white-space:pre-wrap}.task-identifiers button{padding:4px 9px;font-size:12px}.shopping-section{padding:16px;background:#fffbf2;border:1px solid #f5d48c;border-radius:12px}.shopping-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.shopping-heading h3{margin:0}.shopping-heading>span{font-size:12px;color:#996300;background:#fff0c7;border-radius:20px;padding:3px 10px}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-card{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid #eadfc7;border-radius:10px;background:white;min-width:0}.product-card img{width:76px;height:76px;object-fit:contain;border-radius:8px;flex-shrink:0}.product-card>div{min-width:0}.product-card strong{display:block;font-size:14px;font-weight:600;overflow-wrap:anywhere}.product-card small{display:block;color:#64748b;font-size:12px;margin:4px 0;overflow-wrap:anywhere}.product-price{color:#df3657;font-size:14px}.task-answer{max-height:420px;overflow:auto;background:#fafbfd}.task-share-link{display:block;overflow-wrap:anywhere;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px}.reference-list{margin:0;padding:6px 10px 6px 32px;border:1px solid #e2e8f0;border-radius:8px;max-height:260px;overflow:auto;overscroll-behavior:contain;font-size:13px;line-height:1.45}.reference-list li{padding:6px 8px;margin:0;border-bottom:1px solid #e8edf3}.reference-list li:last-child{border-bottom:0}.reference-list li::marker{color:#64748b;font-size:12px}.reference-list a,.reference-list span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reference-list small{display:block;color:#94a3b8;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.task-image-preview{border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;padding:12px;max-height:650px;overflow:auto}.task-image-preview img{display:block;width:100%;height:auto}.task-facts{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:760px){.task-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.product-grid{grid-template-columns:1fr}}@media(max-width:420px){.task-identifiers>div{grid-template-columns:minmax(0,1fr)}.task-identifiers span{grid-column:1/-1}.task-facts{grid-template-columns:1fr}}

.task-row{cursor:pointer}.task-row:hover{background:#f5f8ff}.task-row:focus-visible{outline:2px solid #93b4fa;outline-offset:-2px;background:#f5f8ff}
.drawer-footer{gap:10px;flex-wrap:wrap}

main>header{margin-bottom:16px}.header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.header-actions button{font-size:14px;padding:6px 12px}#dashboard-panel>.metric-grid{margin-top:0}

.nav{display:flex;align-items:center;gap:10px;text-align:left}.nav-icon{display:block;width:20px;height:20px;flex:0 0 20px}.nav>span{line-height:1.5}
