hzl-web 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +131 -13
- package/dist/server.js.map +1 -1
- package/dist/ui/assets/index-DJffz6ON.css +1 -0
- package/dist/ui/assets/index-I-QPMo7E.js +69 -0
- package/dist/ui/index.html +2 -2
- package/package.json +4 -3
- package/dist/ui/assets/index-C4c0s3wO.js +0 -69
- package/dist/ui/assets/index-D1zzT9HN.css +0 -1
package/dist/server.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ export interface ServerOptions {
|
|
|
7
7
|
eventStore: EventStore;
|
|
8
8
|
searchService: SearchService;
|
|
9
9
|
statsService: StatsService;
|
|
10
|
+
gatewayUrl?: string;
|
|
11
|
+
gatewayToken?: string;
|
|
12
|
+
configDir?: string;
|
|
10
13
|
}
|
|
11
14
|
export interface ServerHandle {
|
|
12
15
|
close: () => Promise<void>;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,UAAU,EAGV,aAAa,EACb,YAAY,EAEb,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,UAAU,EAGV,aAAa,EACb,YAAY,EAEb,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAiLD,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAovBpE"}
|
package/dist/server.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createServer } from 'http';
|
|
2
2
|
import { EventType, AmbiguousPrefixError, } from 'hzl-core';
|
|
3
|
+
import { GatewayClient } from 'hzl-core/services/gateway-client.js';
|
|
3
4
|
import { normalizeDurationLabel, parseDurationToMinutes } from 'hzl-core/utils/duration.js';
|
|
4
5
|
import { UI_FILES, LEGACY_DASHBOARD_HTML } from './ui-embed.js';
|
|
5
6
|
// Date filter presets in days
|
|
@@ -56,19 +57,6 @@ function json(res, data, status = 200) {
|
|
|
56
57
|
});
|
|
57
58
|
res.end(JSON.stringify(data));
|
|
58
59
|
}
|
|
59
|
-
function text(res, body, contentType, status = 200, cacheControl) {
|
|
60
|
-
const bodyLength = Buffer.byteLength(body);
|
|
61
|
-
const headers = {
|
|
62
|
-
'Content-Type': contentType,
|
|
63
|
-
'X-Content-Type-Options': 'nosniff',
|
|
64
|
-
'Content-Length': String(bodyLength),
|
|
65
|
-
};
|
|
66
|
-
if (cacheControl) {
|
|
67
|
-
headers['Cache-Control'] = cacheControl;
|
|
68
|
-
}
|
|
69
|
-
res.writeHead(status, headers);
|
|
70
|
-
res.end(body);
|
|
71
|
-
}
|
|
72
60
|
function bytes(res, body, contentType, status = 200, cacheControl) {
|
|
73
61
|
const headers = {
|
|
74
62
|
'Content-Type': contentType,
|
|
@@ -92,10 +80,91 @@ function writeSseEvent(res, event, data) {
|
|
|
92
80
|
res.write(`event: ${event}\n`);
|
|
93
81
|
res.write(`data: ${JSON.stringify(data)}\n\n`);
|
|
94
82
|
}
|
|
83
|
+
function parseBody(req) {
|
|
84
|
+
return new Promise((resolve, reject) => {
|
|
85
|
+
const chunks = [];
|
|
86
|
+
req.on('data', (chunk) => chunks.push(chunk));
|
|
87
|
+
req.on('end', () => {
|
|
88
|
+
try {
|
|
89
|
+
const body = Buffer.concat(chunks).toString('utf-8');
|
|
90
|
+
resolve(body ? JSON.parse(body) : {});
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
reject(new Error('Invalid JSON body'));
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
req.on('error', reject);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
95
99
|
export function createWebServer(options) {
|
|
96
100
|
const { port, host = '0.0.0.0', allowFraming = false, taskService, eventStore, searchService, statsService } = options;
|
|
97
101
|
const sockets = new Set();
|
|
98
102
|
const activeStreamResponses = new Set();
|
|
103
|
+
// Gateway client (lazy-init)
|
|
104
|
+
let gatewayClient = null;
|
|
105
|
+
function getOrCreateGatewayClient() {
|
|
106
|
+
if (!gatewayClient) {
|
|
107
|
+
const configDir = options.configDir ?? '.';
|
|
108
|
+
const url = options.gatewayUrl ?? 'ws://127.0.0.1:18789';
|
|
109
|
+
gatewayClient = new GatewayClient({ url, token: options.gatewayToken, configDir });
|
|
110
|
+
}
|
|
111
|
+
return gatewayClient;
|
|
112
|
+
}
|
|
113
|
+
// Gateway API route handlers
|
|
114
|
+
async function handleGatewayStatus(_req, res) {
|
|
115
|
+
if (!gatewayClient && !options.gatewayUrl) {
|
|
116
|
+
json(res, { status: 'unconfigured' });
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const client = getOrCreateGatewayClient();
|
|
120
|
+
// If configured but not yet connected, trigger a connection attempt
|
|
121
|
+
if (client.getStatus() === 'disconnected') {
|
|
122
|
+
try {
|
|
123
|
+
await client.call('ping');
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// Connection failed — status will reflect 'disconnected'
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
json(res, { status: client.getStatus() });
|
|
130
|
+
}
|
|
131
|
+
async function handleGatewayConfig(req, res) {
|
|
132
|
+
const body = await parseBody(req);
|
|
133
|
+
if (!body.url) {
|
|
134
|
+
json(res, { error: 'url is required' }, 400);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const client = getOrCreateGatewayClient();
|
|
138
|
+
client.configure(body.url, body.token);
|
|
139
|
+
// Try to connect
|
|
140
|
+
try {
|
|
141
|
+
await client.call('ping').catch(() => { });
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// Connection attempt may fail, that's ok — status reflects it
|
|
145
|
+
}
|
|
146
|
+
json(res, { status: client.getStatus() });
|
|
147
|
+
}
|
|
148
|
+
async function handleGatewayProxy(method, req, res) {
|
|
149
|
+
const client = getOrCreateGatewayClient();
|
|
150
|
+
try {
|
|
151
|
+
const body = req.method === 'POST' ? await parseBody(req) : undefined;
|
|
152
|
+
const params = body && typeof body === 'object' && Object.keys(body).length > 0
|
|
153
|
+
? body
|
|
154
|
+
: undefined;
|
|
155
|
+
const result = await client.call(method, params);
|
|
156
|
+
json(res, result ?? {});
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
const message = err instanceof Error ? err.message : 'Gateway error';
|
|
160
|
+
if (message.includes('not configured') || message.includes('disconnected')) {
|
|
161
|
+
json(res, { error: 'gateway_unavailable', message }, 503);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
json(res, { error: message }, 502);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
99
168
|
// Route handlers
|
|
100
169
|
function handleTasks(params, res) {
|
|
101
170
|
const dueMonth = params.get('due_month');
|
|
@@ -571,6 +640,43 @@ export function createWebServer(options) {
|
|
|
571
640
|
handleAgentEvents(agentEventsMatch[1], params, res);
|
|
572
641
|
return;
|
|
573
642
|
}
|
|
643
|
+
// Gateway API routes
|
|
644
|
+
if (pathname === '/api/gateway/status' && req.method === 'GET') {
|
|
645
|
+
void handleGatewayStatus(req, res).catch((e) => serverError(res, e));
|
|
646
|
+
return;
|
|
647
|
+
}
|
|
648
|
+
if (pathname === '/api/gateway/config' && req.method === 'POST') {
|
|
649
|
+
void handleGatewayConfig(req, res).catch((e) => serverError(res, e));
|
|
650
|
+
return;
|
|
651
|
+
}
|
|
652
|
+
if (pathname === '/api/gateway/agents' && req.method === 'POST') {
|
|
653
|
+
void handleGatewayProxy('agents.list', req, res).catch((e) => serverError(res, e));
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
if (pathname === '/api/gateway/cron/list' && req.method === 'POST') {
|
|
657
|
+
void handleGatewayProxy('cron.list', req, res).catch((e) => serverError(res, e));
|
|
658
|
+
return;
|
|
659
|
+
}
|
|
660
|
+
if (pathname === '/api/gateway/cron/add' && req.method === 'POST') {
|
|
661
|
+
void handleGatewayProxy('cron.add', req, res).catch((e) => serverError(res, e));
|
|
662
|
+
return;
|
|
663
|
+
}
|
|
664
|
+
if (pathname === '/api/gateway/cron/update' && req.method === 'POST') {
|
|
665
|
+
void handleGatewayProxy('cron.update', req, res).catch((e) => serverError(res, e));
|
|
666
|
+
return;
|
|
667
|
+
}
|
|
668
|
+
if (pathname === '/api/gateway/cron/remove' && req.method === 'POST') {
|
|
669
|
+
void handleGatewayProxy('cron.remove', req, res).catch((e) => serverError(res, e));
|
|
670
|
+
return;
|
|
671
|
+
}
|
|
672
|
+
if (pathname === '/api/gateway/cron/run' && req.method === 'POST') {
|
|
673
|
+
void handleGatewayProxy('cron.run', req, res).catch((e) => serverError(res, e));
|
|
674
|
+
return;
|
|
675
|
+
}
|
|
676
|
+
if (pathname === '/api/gateway/cron/status' && req.method === 'GET') {
|
|
677
|
+
void handleGatewayProxy('cron.status', req, res).catch((e) => serverError(res, e));
|
|
678
|
+
return;
|
|
679
|
+
}
|
|
574
680
|
// Catch-all for unknown /api/ paths
|
|
575
681
|
if (pathname.startsWith('/api/')) {
|
|
576
682
|
notFound(res);
|
|
@@ -595,6 +701,13 @@ export function createWebServer(options) {
|
|
|
595
701
|
serverError(res, error);
|
|
596
702
|
}
|
|
597
703
|
}
|
|
704
|
+
// Eagerly connect to gateway if configured (don't wait for frontend to poll)
|
|
705
|
+
if (options.gatewayUrl) {
|
|
706
|
+
const client = getOrCreateGatewayClient();
|
|
707
|
+
client.call('ping').catch(() => {
|
|
708
|
+
// Connection or handshake failed — pairing message already printed if needed
|
|
709
|
+
});
|
|
710
|
+
}
|
|
598
711
|
const server = createServer(handleRequest);
|
|
599
712
|
server.on('connection', (socket) => {
|
|
600
713
|
sockets.add(socket);
|
|
@@ -605,6 +718,11 @@ export function createWebServer(options) {
|
|
|
605
718
|
server.listen(port, host);
|
|
606
719
|
return {
|
|
607
720
|
close: () => new Promise((resolve, reject) => {
|
|
721
|
+
// Dispose gateway client
|
|
722
|
+
if (gatewayClient) {
|
|
723
|
+
gatewayClient.dispose();
|
|
724
|
+
gatewayClient = null;
|
|
725
|
+
}
|
|
608
726
|
for (const streamRes of activeStreamResponses) {
|
|
609
727
|
if (!streamRes.writableEnded && !streamRes.destroyed) {
|
|
610
728
|
streamRes.end();
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.nav-rail{width:140px;min-width:140px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between;height:100%;z-index:110;transition:width .15s ease,min-width .15s ease}.nav-rail.collapsed{width:48px;min-width:48px}.nav-rail-top{display:flex;flex-direction:column}.nav-rail-logo{display:flex;align-items:center;justify-content:center;height:58px;border-bottom:1px solid var(--border);flex-shrink:0}.logo-full{font-weight:700;font-size:15px;color:var(--accent);letter-spacing:.5px}.logo-mark{font-weight:700;font-size:15px;color:var(--accent)}.nav-rail-items{display:flex;flex-direction:column;gap:2px;padding:8px 6px}.nav-rail-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;border-left:2px solid transparent;background:transparent;color:var(--text-secondary);font-family:var(--font-mono);font-size:12px;border-radius:0;cursor:pointer;transition:color .12s ease,border-color .12s ease;white-space:nowrap;overflow:hidden}.nav-rail.collapsed .nav-rail-item{justify-content:center;padding:10px}.nav-rail-item:hover{color:var(--text-primary)}.nav-rail-item.active{color:var(--text-primary);font-weight:600;border-left-color:var(--accent)}.nav-rail-icon{display:flex;align-items:center;flex-shrink:0}.nav-rail-label{overflow:hidden;text-overflow:ellipsis}.nav-rail-toggle{display:flex;align-items:center;justify-content:center;height:40px;border:none;border-top:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:color .12s ease}.nav-rail-toggle:hover{color:var(--text-primary)}.nav-bottom-bar{display:none;position:fixed;bottom:0;left:0;right:0;height:56px;background:var(--bg-secondary);border-top:1px solid var(--border);z-index:110}.nav-bottom-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;border:none;background:transparent;color:var(--text-muted);font-family:var(--font-mono);font-size:10px;cursor:pointer;padding:6px 0}.nav-bottom-item.active{color:var(--accent)}.nav-bottom-icon{display:flex;align-items:center}.nav-bottom-label{line-height:1}@media(max-width:768px){.nav-rail{display:none}.nav-bottom-bar{display:flex}}.graph-legend{position:absolute;bottom:16px;left:16px;display:flex;gap:2px;padding:3px;background:#252525eb;border:1px solid #404040;border-radius:8px;font:11px ui-monospace,monospace;color:#a3a3a3;z-index:10}.graph-legend-item{display:flex;align-items:center;gap:5px;padding:4px 10px;border:none;border-radius:6px;background:transparent;color:#a3a3a3;font:11px ui-monospace,monospace;cursor:pointer;transition:background .15s,color .15s,opacity .15s}.graph-legend-item:hover{background:#ffffff14;color:#e5e5e5}.graph-legend-item.active{background:#ffffff1f;color:#e5e5e5}.graph-legend-item.dimmed{opacity:.4}.graph-legend-item.dimmed:hover{opacity:.8}.graph-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.graph-controls{position:absolute;bottom:16px;right:16px;display:flex;flex-direction:column;gap:2px;z-index:10}.graph-control-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#252525eb;border:1px solid #404040;color:#a3a3a3;font:16px ui-monospace,monospace;cursor:pointer;transition:background .15s,color .15s}.graph-control-btn:first-child{border-radius:6px 6px 0 0}.graph-control-btn:last-child{border-radius:0 0 6px 6px}.graph-control-btn:hover{background:#404040f2;color:#e5e5e5}.graph-control-btn:active{background:#505050f2}.graph-control-btn svg{display:block}.agent-ops{display:flex;flex-direction:column;min-height:calc(100vh - 53px)}.agent-ops-fleet-label{display:flex;align-items:center;gap:.4rem;color:var(--text-primary);font-size:13px;font-weight:500}.agent-ops-fleet-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.agent-ops-fleet-separator{color:var(--text-secondary);margin:0 .15rem}.agent-ops-panels{display:flex;flex:1;min-height:0}.agent-ops-roster{width:320px;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border);background:var(--bg-primary);scrollbar-width:none;-ms-overflow-style:none}.agent-ops-roster::-webkit-scrollbar{display:none}.agent-ops-detail{flex:1;overflow-y:auto;background:var(--bg-primary);scrollbar-width:none;-ms-overflow-style:none}.agent-ops-detail::-webkit-scrollbar{display:none}.agent-ops-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:200px;color:var(--text-secondary);font-size:13px;gap:4px}.agent-ops-placeholder-hint{color:var(--text-muted);font-size:11px}.agent-roster{display:flex;flex-direction:column}.agent-roster-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:200px;color:var(--text-secondary);font-size:13px}.agent-roster-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;border-left:3px solid transparent;border-bottom:1px solid var(--border);background:transparent;color:var(--text-primary);cursor:pointer;text-align:left;width:100%;font-family:inherit;font-size:inherit;transition:background .1s}.agent-roster-row:hover{background:var(--bg-secondary)}.agent-roster:focus{outline:none}.agent-roster-row.focused{box-shadow:inset 0 0 0 2px var(--accent)}.agent-roster-row.selected{background:var(--bg-card);border-left-color:var(--accent)}.agent-roster-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.agent-roster-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.agent-roster-id{font-family:var(--font-mono);font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-roster-task{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-secondary);min-width:0}.agent-roster-task-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.agent-roster-more{flex-shrink:0;font-size:.7rem;color:var(--accent);font-weight:500}.agent-roster-idle{font-size:.75rem;color:var(--text-muted)}.agent-roster-stale-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-in-progress);margin-right:4px;vertical-align:middle}.agent-roster-task-title.stale{color:var(--status-in-progress)}.agent-roster-duration{flex-shrink:0;font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);white-space:nowrap}.event-timeline{display:flex;flex-direction:column}.event-timeline-empty{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--text-muted);font-size:12px}.event-timeline-list{display:flex;flex-direction:column}.event-timeline-row{padding:8px 12px;border-bottom:1px solid var(--border)}.event-timeline-row.clickable{cursor:pointer}.event-timeline-row.clickable:hover{background:var(--bg-secondary)}.event-timeline-row-main{display:flex;align-items:center;gap:8px;min-width:0}.event-timeline-time{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);width:72px;flex-shrink:0;text-align:right}.event-timeline-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap;flex-shrink:0;text-transform:lowercase;background:var(--bg-primary);color:var(--text-secondary)}.event-badge-created{color:var(--status-ready)}.event-badge-in-progress{color:var(--status-in-progress)}.event-badge-done{color:var(--status-done)}.event-badge-blocked{color:var(--status-blocked)}.event-badge-ready{color:var(--status-ready)}.event-badge-backlog{color:var(--status-backlog)}.event-badge-comment{color:var(--accent)}.event-badge-checkpoint{color:var(--text-secondary)}.event-badge-updated{color:var(--text-primary)}.event-badge-moved{color:var(--status-ready)}.event-badge-archived{color:var(--text-muted)}.event-badge-dep,.event-badge-default{color:var(--text-secondary)}.event-timeline-desc{font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.event-timeline-task-ctx{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;flex-shrink:0}.event-timeline-load-more{width:100%;padding:10px;background:var(--bg-primary);border:1px dashed var(--border);border-radius:4px;color:var(--text-secondary);font-family:var(--font-mono);font-size:12px;cursor:pointer;margin-top:4px;transition:border-color .15s,color .15s}.event-timeline-load-more:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.event-timeline-load-more:disabled{opacity:.5;cursor:not-allowed}.agent-detail{display:flex;flex-direction:column;height:100%}.agent-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:200px;color:var(--text-secondary);font-size:13px;gap:8px}.agent-detail-empty-arrow{font-size:20px;color:var(--text-muted)}.agent-detail-header{padding:16px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.agent-detail-header-top{display:flex;align-items:center;gap:10px}.agent-detail-id{font-family:var(--font-mono);font-size:1rem;font-weight:600;color:var(--text-primary)}.agent-detail-status-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;text-transform:lowercase}.agent-detail-status-badge.active{background:#f59e0b26;color:var(--status-in-progress)}.agent-detail-status-badge.idle{background:#6b728026;color:var(--status-backlog)}.agent-detail-current-task{margin-top:6px;font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-detail-task-count{margin-left:6px;font-size:11px;color:var(--accent);font-weight:500}.agent-detail-tabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--border);background:var(--bg-secondary);padding:0 16px;gap:0}.agent-detail-tab{padding:8px 14px;font-size:12px;font-weight:500;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap;font-family:inherit}.agent-detail-tab:hover{color:var(--text-primary)}.agent-detail-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.agent-detail-tab-badge{display:inline-block;margin-left:5px;font-size:10px;font-weight:500;color:var(--text-muted);background:var(--bg-primary);padding:1px 6px;border-radius:8px}.agent-detail-tab.active .agent-detail-tab-badge{color:var(--accent)}.agent-detail-tab-content{flex:1;min-height:0;overflow-y:auto}.agent-detail-tasks{padding:12px 16px}.agent-detail-tasks-list{display:flex;flex-direction:column;gap:8px}.agent-detail-tasks-empty{font-size:12px;color:var(--text-muted);padding:8px 0}.agent-detail-task-group{display:flex;flex-direction:column}.agent-detail-task-group-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;padding:4px 0}.agent-detail-task-group-count{font-size:10px;font-weight:500;color:var(--text-muted)}.agent-detail-task-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot-in_progress{background:var(--status-in-progress)}.status-dot-blocked{background:var(--status-blocked)}.status-dot-ready{background:var(--status-ready)}.status-dot-backlog{background:var(--status-backlog)}.agent-detail-task-row{display:flex;align-items:center;gap:8px;padding:5px 8px 5px 20px;border-radius:4px;transition:background .1s}.agent-detail-task-row.clickable{cursor:pointer}.agent-detail-task-row.clickable:hover{background:var(--bg-secondary)}.agent-detail-task-title{font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.agent-detail-task-project{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;flex-shrink:0}.agent-detail-timeline{flex:1;min-height:0;overflow-y:auto;padding:12px 16px}.agent-detail-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px}.agent-detail-metrics{flex-shrink:0;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.agent-detail-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.agent-detail-metric-card{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--bg-card);border-radius:6px;border:1px solid var(--border)}.agent-detail-metric-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.agent-detail-metric-value{font-family:var(--font-mono);font-size:16px;font-weight:600;color:var(--text-primary)}.cron-section{padding:12px 16px}.cron-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cron-section-header-left{display:flex;align-items:center;gap:6px}.cron-section-header-left .agent-detail-section-label{margin-bottom:0}.cron-section-header-actions{display:flex;align-items:center;gap:4px}.cron-job-count{font-size:10px;font-weight:500;color:var(--text-muted);background:var(--bg-secondary);padding:1px 6px;border-radius:8px}.cron-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.cron-status-dot-connected{background:var(--status-done)}.cron-status-dot-connecting{background:var(--status-in-progress)}.cron-status-dot-disconnected{background:var(--status-blocked)}.cron-setup-ui{display:flex;flex-direction:column;gap:8px}.cron-setup-message{font-size:12px;color:var(--text-secondary)}.cron-setup-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.cron-setup-input{flex:1;min-width:140px;padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:12px;font-family:var(--font-mono)}.cron-setup-input:focus{outline:none;border-color:var(--accent)}.cron-setup-button{padding:6px 14px;background:var(--accent);border:none;border-radius:4px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap}.cron-setup-button:disabled{opacity:.5;cursor:not-allowed}.cron-action-btn{padding:3px 8px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:11px;cursor:pointer;transition:border-color .15s,color .15s}.cron-action-btn:hover{border-color:var(--accent);color:var(--accent)}.cron-create-btn{color:var(--accent);border-color:var(--accent);font-weight:500}.cron-delete-btn{color:var(--status-blocked)}.cron-delete-btn:hover{border-color:var(--status-blocked);color:var(--status-blocked)}.cron-job-list{display:flex;flex-direction:column}.cron-job-row{border-bottom:1px solid var(--border);padding:6px 0}.cron-job-row.disabled{opacity:.5}.cron-job-row-main{display:flex;align-items:center;gap:8px}.cron-job-toggle{position:relative;display:inline-block;width:28px;height:16px;flex-shrink:0}.cron-job-toggle input{opacity:0;width:0;height:0}.cron-job-toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--border);border-radius:16px;transition:background .2s}.cron-job-toggle-slider:before{content:"";position:absolute;width:12px;height:12px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:transform .2s}.cron-job-toggle input:checked+.cron-job-toggle-slider{background:var(--accent)}.cron-job-toggle input:checked+.cron-job-toggle-slider:before{transform:translate(12px)}.cron-job-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cron-job-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cron-job-schedule{font-size:11px;color:var(--text-muted)}.cron-job-next-inline{color:var(--text-muted)}.cron-job-state{flex-shrink:0}.cron-job-status-indicator{font-size:11px;font-weight:500;color:var(--text-muted)}.cron-job-status-indicator.status-ok{color:var(--status-done)}.cron-job-status-indicator.status-error{color:var(--status-blocked)}.cron-job-error-count{margin-left:2px;font-size:9px;color:var(--status-blocked)}.cron-job-timing{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}.cron-job-next,.cron-job-duration{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);white-space:nowrap}.cron-job-actions{display:flex;gap:3px;flex-shrink:0}.cron-delete-confirm{display:flex;align-items:center;gap:8px;padding:6px 0 2px;font-size:11px;color:var(--text-secondary)}.cron-loading,.cron-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;font-size:12px;color:var(--text-muted)}.cron-error{font-size:11px;color:var(--status-blocked);padding:4px 0}.cron-scheduler-warning{font-size:11px;color:var(--status-in-progress);padding:6px 0 0}.cron-modal-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:300}.cron-modal{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 48px);overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 28px #00000073}.cron-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.cron-modal-title{font-size:14px;font-weight:600;color:var(--text-primary)}.cron-modal-close{border:none;background:transparent;color:var(--text-muted);font-size:18px;cursor:pointer;line-height:1}.cron-modal-close:hover{color:var(--text-primary)}.cron-modal-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px}.cron-modal-field{display:flex;flex-direction:column;gap:4px}.cron-modal-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.cron-modal-input{padding:6px 10px;height:32px;box-sizing:border-box;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:12px;font-family:var(--font-mono)}.cron-modal-input:focus{outline:none;border-color:var(--accent)}.cron-modal-textarea{padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:12px;font-family:var(--font-mono);resize:vertical;min-height:80px}.cron-modal-textarea:focus{outline:none;border-color:var(--accent)}.cron-modal-row{display:flex;gap:8px}.cron-modal-toggle-field{align-items:center;justify-content:center;flex:0 0 auto;min-width:60px}.cron-modal-advanced-toggle{background:none;border:none;color:var(--text-secondary);font-size:11px;cursor:pointer;padding:4px 0;text-align:left}.cron-modal-advanced-toggle:hover{color:var(--text-primary)}.cron-modal-advanced{display:flex;flex-direction:column;gap:10px;padding:8px 0 0;border-top:1px solid var(--border)}.cron-modal-checkbox{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);margin-top:4px}.cron-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.cron-modal-btn{padding:6px 16px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border)}.cron-modal-btn-cancel{background:transparent;color:var(--text-secondary)}.cron-modal-btn-cancel:hover{color:var(--text-primary)}.cron-modal-btn-save{background:var(--accent);border-color:var(--accent);color:#fff}.cron-modal-btn-save:disabled{opacity:.5;cursor:not-allowed}.shortcuts-modal-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:300}.shortcuts-modal{width:min(460px,calc(100vw - 24px));background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 28px #00000073;overflow:hidden}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.shortcuts-title{font-size:14px;font-weight:600;color:var(--text-primary)}.shortcuts-close{border:none;background:transparent;color:var(--text-muted);font-size:18px;cursor:pointer;line-height:1}.shortcuts-close:hover{color:var(--text-primary)}.shortcuts-body{padding:14px 16px 16px}.shortcuts-list{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:center}.shortcut-key{display:inline-block;min-width:34px;padding:1px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:11px;text-align:center;font-weight:600}.shortcut-desc{color:var(--text-secondary);font-size:12px}.shortcuts-note{margin-top:12px;font-size:11px;color:var(--text-muted)}.hamburger{display:none;background:none;border:none;color:var(--text-primary);font-size:20px;cursor:pointer}.status-backlog{color:var(--status-backlog)}.status-blocked{color:var(--status-blocked)}.status-ready{color:var(--status-ready)}.status-in-progress{color:var(--status-in-progress)}.status-done{color:var(--status-done)}@media(max-width:768px){.mobile-tabs{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:0 8px}.mobile-tabs::-webkit-scrollbar{display:none}.mobile-tab{flex:0 0 auto;padding:12px 16px;font-size:12px;color:var(--text-muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.mobile-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.mobile-tab-badge{background:var(--bg-primary);padding:1px 6px;border-radius:8px;font-size:10px;margin-left:6px}.mobile-cards{display:none;padding:12px;flex-direction:column;gap:8px}.mobile-cards.active{display:flex}.card-assignee{max-width:110px}}@media(min-width:769px){.mobile-tabs,.mobile-cards-container{display:none!important}}@media(max-width:768px)and (hover:hover){.mobile-tabs{scrollbar-width:thin;scrollbar-color:transparent transparent}.mobile-tabs:hover{scrollbar-color:var(--border) transparent}.mobile-tabs::-webkit-scrollbar{display:block;height:4px}.mobile-tabs::-webkit-scrollbar-thumb{background:transparent;border-radius:999px}.mobile-tabs:hover::-webkit-scrollbar-thumb{background:var(--border)}.mobile-tabs::-webkit-scrollbar-track{background:transparent}}:root{--bg-primary: #1a1a1a;--bg-secondary: #252525;--bg-card: #2d2d2d;--text-primary: #e5e5e5;--text-secondary: #a3a3a3;--text-muted: #919191;--accent: #f59e0b;--accent-dim: #b45309;--border: #404040;--status-backlog: #6b7280;--status-blocked: #ef4444;--status-ready: #3b82f6;--status-in-progress: #f59e0b;--status-done: #22c55e;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-mono);font-size:13px;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;overflow:hidden}.app{display:flex;flex-direction:row;height:100%}.main-area{display:flex;flex-direction:column;flex:1;min-width:0;height:100%;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.main-area::-webkit-scrollbar{display:none}.top-bar{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:8px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.top-bar-right{display:flex;align-items:center;gap:12px;margin-left:auto;flex-shrink:0}.header-filters{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.filter-group{display:flex;align-items:center;gap:8px;position:relative}select{font-family:var(--font-mono);font-size:12px;background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);padding:0 32px 0 12px;border-radius:6px;cursor:pointer;min-height:42px;line-height:1.2;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23a3a3a3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}select:focus{outline:none;border-color:var(--accent)}#dateFilter{min-width:150px}#projectFilter{min-width:180px}#assigneeFilter{min-width:150px}#tagFilter{min-width:130px}.filters-inline{display:flex;align-items:center;gap:8px}.filters-collapsed{display:none;position:relative}.filter-toggle{display:flex;align-items:center;justify-content:center;position:relative;background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border);width:42px;height:42px;padding:0;border-radius:6px;cursor:pointer}.filter-toggle:hover,.filter-toggle.has-active{border-color:var(--accent);color:var(--text-primary)}.filter-badge{position:absolute;top:-4px;right:-4px;background:var(--accent);color:var(--bg-primary);font-size:10px;font-weight:700;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}.filter-popover{display:none;position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:12px;z-index:100;min-width:200px}.filter-popover.open{display:block}.filter-popover-content{display:flex;flex-direction:column;gap:8px}.filter-popover-content .filter-group{width:100%}.filter-popover-content select{width:100%;min-width:unset}@media(max-width:768px){.app{flex-direction:column}.main-area{flex:none;height:calc(100% - 56px)}.top-bar{flex-wrap:nowrap;gap:6px;padding:6px 12px}.top-bar-right{gap:8px}.filters-inline{display:none}.filters-collapsed{display:block}.header-filters{flex:0 0 auto;min-width:0}.filter-popover{right:auto;left:0}.task-search-input{width:140px}.task-search-meta,.settings-group{display:none}.graph-wrapper{min-height:300px}.agent-ops-panels{flex-direction:column}.agent-ops-roster{width:100%;border-right:none;border-bottom:1px solid var(--border);max-height:40vh}.activity-panel{width:100%;right:-100%}}@media(min-width:769px)and (max-width:1100px){.filters-inline{display:none}.filters-collapsed{display:block}}.task-search-group{gap:6px}.task-search-input{width:220px;font-family:var(--font-mono);font-size:12px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);padding:0 12px;border-radius:6px;min-height:42px}.task-search-input:focus{outline:none;border-color:var(--accent)}.task-search-clear{border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-secondary);font-family:var(--font-mono);font-size:12px;line-height:1;padding:4px 8px;cursor:pointer}.task-search-clear:hover{border-color:var(--accent);color:var(--text-primary)}.task-search-meta{min-width:0;width:0;overflow:hidden;font-size:11px;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;transition:width .12s ease}.task-search-group.active .task-search-meta{width:56px}.connection-indicator{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);min-width:85px;justify-content:flex-end}.connection-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.connection-dot.live{background:var(--status-done)}.connection-dot.error{background:var(--status-blocked)}.activity-btn{font-family:var(--font-mono);font-size:12px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);min-height:42px;padding:0 14px;border-radius:6px;cursor:pointer}.activity-btn:hover{border-color:var(--accent)}.settings-group{position:relative}.settings-toggle{display:flex;align-items:center;justify-content:center;background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border);width:42px;height:42px;padding:0;border-radius:6px;cursor:pointer}.settings-toggle:hover{border-color:var(--accent);color:var(--text-primary)}.settings-dropdown{display:none;position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:12px;z-index:100;min-width:180px}.settings-dropdown.open{display:block}.settings-section{margin-bottom:12px}.settings-section:last-child{margin-bottom:0}.settings-label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.settings-section select{width:100%;font-family:var(--font-mono);font-size:12px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);padding:4px 8px;border-radius:4px}.column-checkboxes{display:flex;flex-direction:column}.column-checkbox{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer;font-size:12px;color:var(--text-primary)}.column-checkbox:hover{color:var(--accent)}.column-checkbox input{accent-color:var(--accent)}.collapse-parents-actions{display:flex;gap:6px;margin-top:2px}.collapse-parents-btn{flex:1;font-family:var(--font-mono);font-size:11px;background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border);padding:5px 6px;border-radius:4px;cursor:pointer}.collapse-parents-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--accent)}.collapse-parents-btn:disabled{opacity:.45;cursor:not-allowed}.collapse-parents-meta{margin-top:5px;font-size:10px;color:var(--text-muted)}.settings-shortcuts-btn{width:100%;font-family:var(--font-mono);font-size:12px;background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border);padding:6px 8px;border-radius:4px;cursor:pointer;text-align:left;white-space:nowrap}.settings-shortcuts-btn:hover{color:var(--text-primary);border-color:var(--accent)}.board{display:flex;gap:12px;padding:16px;overflow-x:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.board::-webkit-scrollbar{height:6px}.board::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.board::-webkit-scrollbar-track{background:transparent}.column{flex:1 1 220px;min-width:220px;max-width:320px;background:var(--bg-secondary);border-radius:8px;display:flex;flex-direction:column;max-height:100%}.column.hidden{display:none}.column-header{padding:12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.column-title{font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.column-count{font-size:11px;color:var(--text-muted);background:var(--bg-primary);padding:2px 8px;border-radius:10px}.column-cards{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.column-cards::-webkit-scrollbar{width:6px}.column-cards::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.column-cards::-webkit-scrollbar-track{background:transparent}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:12px 14px;cursor:pointer;transition:border-color .15s}.card:hover{border-color:var(--accent)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.card-header-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.card-header-right{display:flex;align-items:center;gap:4px;min-width:0;flex-shrink:0}.card-emoji{font-size:12px;flex-shrink:0}.card-parent{box-shadow:0 0 0 1px var(--family-color)}.card-stale{border-left:3px solid var(--status-in-progress)}.card-id{font-size:10px;color:var(--text-muted)}.card-title{font-size:13px;line-height:1.4;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:8px}.card-meta{display:flex;align-items:center;justify-content:flex-start;gap:8px;font-size:11px;color:var(--text-muted)}.card-project{display:inline-block;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;background:var(--bg-primary);padding:2px 6px;border-radius:3px}.card-assignee{display:inline-block;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;padding:2px 8px;border-radius:3px;background:var(--bg-primary);line-height:1.2}.card-assignee.assigned{color:var(--accent)}.card-progress-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.card-progress-track{flex:1;height:3px;border-radius:2px;background:var(--bg-primary);overflow:hidden}.card-progress-fill{height:100%;border-radius:2px;background:var(--accent);transition:width .3s}.card-progress-fill.complete{background:var(--status-done)}.card-progress-label{font-size:10px;color:var(--accent);flex-shrink:0;line-height:1}.card-progress-label.complete{color:var(--status-done)}.card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.card-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:1px 6px;border-radius:3px;background:color-mix(in srgb,var(--tag-color) 15%,transparent);color:var(--tag-color);white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis}.card-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--tag-color);flex-shrink:0}.card-tag-overflow{font-size:10px;color:var(--text-muted);padding:1px 4px}.card-subtask-count{font-size:11px;color:var(--text-muted);margin-bottom:6px}.card-subtask-toggle{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-muted);font-family:var(--font-mono);font-size:11px;padding:2px 6px;margin-bottom:6px;cursor:pointer}.card-subtask-toggle:hover{color:var(--text-primary);border-color:var(--accent)}.empty-column{text-align:center;color:var(--text-muted);padding:24px 12px;font-size:12px}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200;padding:24px}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;max-width:800px;width:100%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{padding:16px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between}.modal-title-wrap{min-width:0;display:flex;flex-direction:column;gap:6px}.modal-title{font-size:16px;font-weight:600}.modal-task-id-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--text-muted)}.modal-task-id-value{font-family:var(--font-mono);font-size:11px;color:var(--text-primary);background:var(--bg-primary);padding:2px 8px;border-radius:999px;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-task-id-copy{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-muted);border-radius:4px;font-size:11px;line-height:1.3;padding:2px 8px;cursor:pointer;transition:color .12s ease,border-color .12s ease}.modal-task-id-copy:hover:not(:disabled){color:var(--text-primary)}.modal-task-id-copy:disabled{opacity:.55;cursor:default}.modal-task-id-copy.copied{color:var(--status-done);border-color:var(--status-done)}.modal-task-id-copy.failed{color:var(--status-blocked);border-color:var(--status-blocked)}.modal-close{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:16px;overflow-y:auto;flex:1}.modal-section{margin-bottom:16px}.modal-section:last-child{margin-bottom:0}.modal-section-title{font-size:11px;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;letter-spacing:.5px}.modal-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.modal-meta-item{background:var(--bg-primary);padding:8px 10px;border-radius:4px}.modal-meta-label{font-size:10px;color:var(--text-muted);margin-bottom:2px}.modal-meta-value{font-size:12px}.modal-meta-fallback{color:var(--text-muted)}.modal-progress{color:var(--accent);background:#f59e0b26;padding:2px 8px;border-radius:4px}.modal-progress.complete{color:var(--status-done);background:#22c55e26}.modal-description{background:var(--bg-primary);padding:12px;border-radius:4px;font-size:12px;line-height:1.6}.modal-description h1,.modal-description h2,.modal-description h3,.modal-description h4,.modal-description h5,.modal-description h6{margin:16px 0 8px;font-weight:600;line-height:1.3}.modal-description h1:first-child,.modal-description h2:first-child,.modal-description h3:first-child{margin-top:0}.modal-description h1{font-size:18px}.modal-description h2{font-size:16px}.modal-description h3{font-size:14px}.modal-description h4,.modal-description h5,.modal-description h6{font-size:12px}.modal-description p{margin:8px 0}.modal-description p:first-child{margin-top:0}.modal-description p:last-child{margin-bottom:0}.modal-description ul,.modal-description ol{margin:8px 0;padding-left:20px}.modal-description li{margin:4px 0}.modal-description code{background:var(--bg-secondary);padding:2px 6px;border-radius:3px;font-family:var(--font-mono);font-size:11px}.modal-description pre{background:var(--bg-secondary);padding:12px;border-radius:4px;overflow-x:auto;margin:12px 0}.modal-description pre code{background:none;padding:0;font-size:11px;line-height:1.5}.modal-description blockquote{border-left:3px solid var(--accent);margin:12px 0;padding:8px 12px;background:var(--bg-secondary);color:var(--text-secondary)}.modal-description blockquote p{margin:0}.modal-description a{color:var(--accent);text-decoration:none}.modal-description a:hover{text-decoration:underline}.modal-description hr{border:none;border-top:1px solid var(--border);margin:16px 0}.modal-description table{border-collapse:collapse;width:100%;margin:12px 0;font-size:11px}.modal-description th,.modal-description td{border:1px solid var(--border);padding:6px 10px;text-align:left}.modal-description th{background:var(--bg-secondary);font-weight:600}.modal-description img{max-width:100%;height:auto}.task-modal-stale-warning{padding:8px 12px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:4px;color:#f59e0b;font-size:13px;margin-bottom:12px}.modal-tags{display:flex;flex-wrap:wrap;gap:6px}.modal-blocked-list{display:flex;flex-direction:column;gap:4px}.modal-blocked-item{display:block;text-align:left;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;padding:6px 10px;color:var(--accent);font-size:13px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-blocked-item:hover{border-color:var(--accent)}.modal-comments{display:flex;flex-direction:column;gap:8px}.comment{background:var(--bg-primary);padding:10px;border-radius:4px;border-left:2px solid var(--accent)}.comment-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;font-size:11px;color:var(--text-muted)}.comment-author{color:var(--accent)}.comment-text{font-size:12px;white-space:pre-wrap}.modal-checkpoint-list,.modal-task-activity-list{display:flex;flex-direction:column;gap:10px}.modal-checkpoint-entry,.modal-task-activity-entry{background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;padding:10px 12px}.modal-checkpoint-header,.modal-task-activity-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.modal-checkpoint-name,.modal-task-activity-type{font-size:12px;font-weight:600;color:var(--text-primary);line-height:1.3}.modal-entry-time{color:var(--text-muted);font-size:11px;white-space:nowrap;line-height:1.3;margin-top:1px}.modal-checkpoint-data{margin:0;font-family:var(--font-mono);font-size:11px;line-height:1.45;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;padding:8px;white-space:pre-wrap;overflow-wrap:anywhere}.modal-task-activity-author{color:var(--text-secondary);font-size:11px;margin-bottom:4px}.modal-task-activity-detail{color:var(--text-primary);font-size:12px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.show-more-btn{width:100%;padding:8px;background:var(--bg-primary);border:1px dashed var(--border);border-radius:4px;color:var(--text-secondary);font-family:var(--font-mono);font-size:12px;cursor:pointer;transition:border-color .15s,color .15s}.show-more-btn:hover{border-color:var(--accent);color:var(--accent)}.modal-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:12px}.modal-tab{padding:8px 16px;background:none;border:none;color:var(--text-muted);font-family:var(--font-mono);font-size:12px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.modal-tab:hover{color:var(--text-primary)}.modal-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.modal-tab:disabled{opacity:.4;cursor:not-allowed}.modal-tab-count{background:var(--bg-primary);padding:1px 6px;border-radius:8px;font-size:10px;margin-left:6px}.activity-panel{position:fixed;top:0;right:-400px;width:400px;height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border);z-index:150;transition:right .2s ease;display:flex;flex-direction:column}.activity-panel.open{right:0}.activity-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.activity-title{font-weight:600;font-size:14px}.activity-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer}.activity-filters{display:flex;flex-direction:column;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border)}.activity-filters select,.activity-filters input{width:100%;box-sizing:border-box}.activity-filters input{font-family:var(--font-mono);font-size:12px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);padding:4px 8px;border-radius:4px}.activity-filters input:focus{outline:none;border-color:var(--accent)}.activity-list{flex:1;overflow-y:auto;padding:8px}.activity-item{padding:10px;border-bottom:1px solid var(--border);cursor:pointer}.activity-item:last-child{border-bottom:none}.activity-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.activity-type{font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:3px;background:var(--bg-primary)}.activity-type.status_changed{color:var(--status-in-progress)}.activity-type.task_created{color:var(--status-ready)}.activity-type.comment_added{color:var(--accent)}.activity-type.checkpoint_recorded{color:var(--text-secondary)}.activity-time{font-size:10px;color:var(--text-muted)}.activity-task{font-size:12px;color:var(--text-primary);margin-top:4px}.activity-detail{font-size:11px;color:var(--text-muted);margin-top:2px}.graph-wrapper{flex:1;position:relative;min-height:400px;background:var(--bg-primary);overflow:hidden}.graph-container{position:absolute;inset:0}.graph-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary)}.graph-loading .spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.calendar-container{padding:16px 24px;max-width:1200px;margin:0 auto}.calendar-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.calendar-nav-btn{font-family:var(--font-mono);font-size:14px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;padding:4px 10px;cursor:pointer}.calendar-nav-btn:hover{background:var(--bg-secondary)}.calendar-month-label{font-size:18px;font-weight:600;color:var(--text-primary);min-width:200px;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden}.calendar-day-header{background:var(--bg-card);color:var(--text-muted);font-size:12px;font-weight:600;text-align:center;padding:8px 4px;text-transform:uppercase}.calendar-day{background:var(--bg-card);min-height:100px;padding:4px;display:flex;flex-direction:column}.calendar-day.other-month{opacity:.35}.calendar-day.today{border:2px solid var(--accent);border-radius:2px}.calendar-day-number{font-size:12px;color:var(--text-secondary);margin-bottom:4px;font-weight:500}.calendar-day.today .calendar-day-number{color:var(--accent);font-weight:700}.calendar-day-tasks{display:flex;flex-direction:column;gap:2px;flex:1}.calendar-mini-card{background:var(--bg-primary);border-left:3px solid var(--text-muted);border-radius:3px;padding:2px 4px;cursor:pointer;display:flex;align-items:center;gap:4px;overflow:hidden}.calendar-mini-card[data-status=backlog]{border-left-color:var(--status-backlog)}.calendar-mini-card[data-status=ready]{border-left-color:var(--status-ready)}.calendar-mini-card[data-status=in_progress]{border-left-color:var(--status-in-progress)}.calendar-mini-card[data-status=blocked]{border-left-color:var(--status-blocked)}.calendar-mini-card[data-status=done]{border-left-color:var(--status-done)}.calendar-mini-card:hover{background:var(--bg-secondary)}.calendar-mini-title{font-size:11px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.calendar-mini-project{font-size:9px;color:var(--text-muted);background:var(--bg-card);padding:0 4px;border-radius:3px;white-space:nowrap;flex-shrink:0}.calendar-more-link{font-size:11px;color:var(--accent);cursor:pointer;padding:1px 4px}.calendar-more-link:hover{text-decoration:underline}.calendar-popover{position:absolute;z-index:100;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #0000004d;padding:8px;min-width:200px;max-width:280px;max-height:300px;overflow-y:auto;top:100%;left:0}.calendar-popover-header{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--border)}.calendar-popover .calendar-mini-card{margin-bottom:2px}.calendar-empty-state{text-align:center;color:var(--text-muted);padding:32px 16px;font-size:14px}@media(max-width:768px){.board{display:none}}
|